01/10/2018, 09:26
Hỏi đáp về mô hình osi
Mình đang tìm hiểu về network, mình thấy mô hình OSI hơi mơ hồ tý, có 7 tầng nhưng không biết ngoài đời thật những tầng đó tương ứng với những gì? Các tiền bối cho mình xin ít hiểu biết về OSI được ko?
Bài liên quan
Ờ, thì mô hình OSI (tiêu chuẩn lý thuyết) gồm 7 tầng, thì nó tương đương với mô hình TCP/IP (sử dụng trong thực tế) gồm 4 tầng trong hệ thống mạng hiện nay.
Nói thật là mình học qua môn này mà vẫn không hình dung rõ được 2 mô hình này nó thế nào, chỉ hình dung được một cách mơ hồ như sau:
http://www.hocmangcoban.com/2014/04/mo-hinh-osi-va-tcpip.html
Cám ơn bạn, đọc bài viết trên mạng với wiki thấy mơ hồ quá.
Mô hình OSI là một standard chung được đưa ra nhằm phân chia một ứng dụng mạng thành các module nhỏ. Chủ yếu chuẩn này dùng để mô tả cách để chia nhỏ một ứng dụng mạng như thế nào, các thành phần giao tiếp với nhau ra sao, dữ liệu được mô hình hóa thế nào…
Tùy vào các protocol (giao thức) hay các triển khai cụ thể mà cách vận dụng OSI khác nhau. Tuy nhiên nhờ có một chuẩn chung như vậy mà khi tập trung phát triến ứng dụng lõi của một tầng thì vẫn có thể giao tiếp tốt với những ứng dụng khác viết trên các tầng khác nếu tôn trọng theo chuẩn. Về cơ bản thì không có một triển khai cụ thể hay giao thức cụ thể nào có đủ cả 7 tầng này cả. Ví dụ như TCP/IP thì chỉ có 5 tầng bằng cách gộp tầng ứng dụng, tầng trình diễn và tầng phiên vào cùng một cái với nhau và thứ tự các tầng cũng có đôi chút khác biệt (Một trong những sai lầm của người học là cố định các tầng này với nhau. Đây chỉ là cách chia vì dữ liệu có thể chạy vòng vèo giữa các tấng. Ngoài ra mấy bức tranh mô tả vẽ hai mô hình OSI rồi giao tiếp với nhau cũng gây ngộ nhận sai).
Để nhớ thì bảy tầng OSI có thể nhớ như sau:“Anh phải sống tới ngày động phòng” “Application Presenter Session Transport Network Data link Physic” “Ứng dụng Trình diễn Phiên Giao vận Mạng Dữ liệu kết nối Vật lý”
Về ví dự dễ hiểu thì bài toán thông dụng nhất thường dùng cho mô tả là bài toán người đưa thư và ví dụ về email. Vì việc mỗi triển khai email lại khác nhau nên đây chỉ là mô tả ví dụ chung chung.
Ví dụ cho tầng đầu tiên là tầng ứng dụng. Tầng này là tầng làm việc trực tiếp với người dùng. Người viết ứng dụng Gmail sẽ dùng tầng này. Sẽ viết ra trình soạn thảo mail, hộp thư, thông báo… Các tính năng của ứng dụng thì không nằm trong việc làm việc mạng. Tuy nhiên việc gửi nhận tin nhắn lại nằm trong phạm vi của tầng này. Tầng này sẽ triển khai các giao thức HTTP, FTP… Khi có một message được gửi đến thì xử lý ra sao, phản hồi lại thế nào sẽ do tầng này quyết định. Trong việc gửi thư, thì đây là người thủ thư.
Tầng trình diễn là một tầng khá khó hiểu và dễ nhầm lẫn với tầng Data link nếu chỉ hiểu mơ hồ. Tầng này quyết định giao thức chung trong việc định nghĩa dữ liệu. Ví dụ như là các định dạng dữ liệu dạng UTF-8 hay UTF-16 hay chuẩn codec của video hay các chuẩn của dữ liệu. Tầng này có nhiệm vụ là làm cho tầng ứng dụng chỉ quan tâm tới các message mà không cần quan tâm tới việc giải mã chúng. Ví dụ mail của bạn sẽ toàn các kí tự ô vuông khi viết mail bằng tiếng Nhật và gửi cho những người đang sử dụng phần mềm không có tầng trình diễn. Ví dụ về việc gửi thư thì đây chính là các nhà mật mã học. Tầng này không làm thay đổi dữ liệu hay làm việc với dữ liệu. Nó chỉ giải mã chúng. Tránh nhầm lẫn với tầng Data link.
Tầng tiếp theo là tầng phiên. Tầng này sẽ quyết định phiên làm việc. Cụ thể là trong một khoảng thời gian thì ứng dụng của bạn chỉ giao tiếp với một tập giới hạn các ứng dụng cho trước. Một phiên được tính từ lúc bắt đầu thực hiện kết nối cho đến lúc kết thúc kết nối. Phiên quy định xem mình có muốn giao tiếp với thiết bị đối diện không, các giao thức của thiết bị đối diện có làm hại gì đến các tầng khác hay không, quản lý những gì đang diễn ra trong phiên làm việc, ghi log, ngăn chặn kết nối thứ ba khi đang có phiên tồn tại. Nói chung là tầng này sẽ đảm bảo đúng người đúng việc đúng nhiệm vụ trong một phiên giao tiếp. Về việc gửi thư thì đây sẽ là ông bảo vệ.
Có thể thấy là trong ba tầng trên, để phân tách nó ra được thì sẽ rất khó để một tầng không cần biết đến tầng kia nên TCP/IP thì gộp chúng lại. Còn OSI là chuẩn nên nó phải rõ ràng.
Tầng kế đến là giao vận. Đừng nghĩ tầng này là ông chuyển thư vì ông chuyển thư là tầng vật lý rồi. Tầng này là tầng theo dõi việc vận chuyển. Ví dụ gửi thư thì hơi khó nhưng hãy ví dụ cho việc gọi taxi. Đây chính là mấy em xinh gái phòng call center sẽ ngồi điều phối các xe taxi và lâu lại hỏi có anh nào rảnh không blad blad. Tầng này có thể xuất hiện ở các nhà cung cấp dịch vụ như IPS hoặc chính nằm trong ứng dụng trong việc hỏi các DNS center xem địa chỉ IP tương ứng với Domain như thế nào. Tầng này cũng có thể nằm trong các NAT device như Hub hay Switch thậm trí là modem để phổ cập cho mấy thiết bị này nguồn tri thức về NAT table. Tầng này chính là mấy em ngồi ở phòng tổng đài hướng dẫn địa chỉ cho các anh chuyển phát thư.
Tầng mạng là tầng chịu trách nhiệm định nghĩa ra các phương thức đánh dấu nhà cửa. Đây là công việc của các bác chuyên đi thiết kế lại đường xá làm bên đô thị. Mấy bác này cũng làm việc in hãy vẽ bản đồ.
Vì đến giờ ăn rồi nên viết nhanh chút.
Tầng data sẽ phụ trách vận chuyển dữ liệu, đảm bảo dữ liệu truyền đi là hợp lệ, có các phương thức checksum để xác định toàn vẹn dữ liệu. Đây chính là nhân viên chuyển phát.
Cuối cùng là các anh vật lý. Các anh này không phải là đi kéo dây mạng hay bấm đầu mạng. Viết nên driver, định nghĩa các chuẩn kết nối, là trung gian giao tiếp giữa phần cứng và phần mềm. Admin của diễn đàn đang làm cái này.
End game đi ăn… =))
Ví dụ hay quá, bác phần tích thêm về cách 2 máy tính giao tiếp với nhau được ko?
Kiểu như gửi 1 tin nhắn từ A qua B thì tin nhắn sẽ được xử lý như nào trong máy A rồi ra dây mạng lang thang đâu để đó tới máy B ấy?
Cái này sẽ thành Off-topic rồi. Hãy đọc lại nội quy và update một câu hỏi mới. Để viết về cái bên trên sẽ cần thời gian chắc phải hai tuần nữa.