Thông thường khi chúng ta nghiên cứu mạng làm việc như thế nào thì đó chỉ là những chủ đề đầu tiên trên con đường nghiên cứu . Vấn đề ở chỗ thông thường mọi người không hiểu tại sao mô hình này tồn tại hoặc thực sự nó làm việc như thế nào , thậm trí nhiều người nhớ hết tên 7 lớp của mô hình nhưng lại nhiều khi cũng không hiểu rõ về nó . Trong bài này chúng tôi sẽ giải thích cho các bạn tại sao mô hình OSI tồn tại và nó làm việc như thế nào và sẽ giải thích một cách nhanh chóng về sự tương quan giữa TCP/IP và mô hình OSI .
Khi mạng máy tính lần đầu tiên xuất hiện trong nhiều năm trước , chúng thường dùng nhiều giải pháp độc quyền , có nghĩa là một công ty sẽ sản xuất tất cả công nghệ dùng cho mạng , chính vì thế mà nhà sản xuất đó sẽ phải cung cấp tất cả những hệ thống trên mạng . Sẽ không có sự lựa chọn để dùng từ những nhà sản xuất khác trên giải pháp đó .
Để trợ giúp cho việc kết nối với những mạng khác nhau , ISO (International Standards Organization - Tổ chức những chuẩn Quốc tế ) phát triển mô hình liên quan gọi là OSI (Open Systems Interconnection - Kết nối những hệ thống mở ) để cho phép những nhà sản xuất tạo nên những giao thức ( Protocol ) để dùng cho mô hình này . Một vài người nhầm lẫn giữa ISO và OSI . ISO là tên của một tổ chức , còn OSI là tên của mô hình để những giao thức được phát triển .
Giao thức ( Protocol ) là “ngôn ngữ “ được dùng để truyền dữ liệu trên mạng . Để hai máy tính nói chuyện được với nhau thì chúng phải cùng cùng một giao thức ( có nghĩa là cùng một ngôn ngữ ) .
Khi bạn gửi Email từ máy tính của mình đi , chương trình gửi thư ( gọi là Email client ) gửi dữ liệu ( thư của bạn ) tới Cụm giao thức - chúng ta sẽ nói nhiều về phần này - sau đó Cụm giao thức này gửi dữ liệu tới phương tiện truyền thông mạng ( thông thường gọi là dây Cable hoặc bằng không khí , đối với những mạng không dây ) , tiếp theo Cụm giao thức của một máy tính khác ( máy chủ Email ) nhận dữ liệu làm một vài xử lí – chúng ta sẽ đề cập sau – và gửi dữ liệu tới chương trình máy chủ Email .
Cụm giao thức làm nhiều điều và vai trò của mô hình OSI là hiểu những kiểu mà Cụm giao thức đã làm . Hai giao thức khác nhau có thể không tương thích với nhau nhưng nếu theo mô hình OSI , cả hai sẽ làm những điều cùng một kiểu , việc làm của nó để cho những nhà phát triển phần mềm dễ dàng để hiểu chúng làm việc như thế nào .
Bạn có thể chú ý rằng khi chúng tôi dùng từ “Cụm giao thức” . Bởi vì những giao thức như TCP/IP không phải thực sự chỉ là một giao thức mà là một vài giao thức làm việc cùng với nhau . Do vậy hầu hết tên thích hợp không đơn giản chỉ là “Giao thức” mà là “ Cụm giao thức “ .
Mô hình OSI được chia thành 7 lớp . Nó là điều rất đáng quan tâm cho thấy rằng TCP/IP ( có thể hầu như đó là giao thức mạng được dùng ngày nay ) và các giao thức “nổi tiếng” khác như IPX/SPX ( được Novell Netware sử dụng ) và NetBEUI ( những sản phẩm của Microsoft sử dụng ) không đầy đủ theo mô hình này , mà chỉ một phần trong mô hình đó. Nói một cách khác bằng việc nghiên cứu mô hình OSI bạn sẽ hiểu những giao thức làm việc như thế nào trong một hình thức chung , điều đó cũng có nghĩa nó sẽ dễ dàng để hiểu giao thức TCP/IP thực tế là làm việc như thế nào .
Một ý tưởng cơ bản của mô hình tham khảo OSI là : mỗi một lớp sẽ có một kiểu mức xử lí , và mỗi lớp chỉ nói chuyện với lớp kế nó bên trên và bên dưới . Ví dụ : lớp thứ sáu sẽ chỉ có thể nói chuyện tới lớp thứ năm và lớp thứ bảy và không bao giờ nói chuyện trực tiếp được với lớp đầu tiên .
Khi máy tính của bạn truyền dữ liệu tới mạng , một lớp được đưa sẽ nhận dữ liệu từ lớp trên , xử lí những gì nó nhận được , thêm vài thông tin điều khiển tới dữ liệu của riêng lớp đó , và gửi dữ liệu mới cùng với thông tin điều khiển được thêm vào tới lớp bên dưới .
Khi máy tính của bạn nhận dữ liệu , quá trình xử lí xảy ra ngược lại : một lớp nhận sẽ nhận dữ liệu từ lớp dưới , xử lí những gì nó nhận được , gỡ bỏ thông tin điều khiển từ dữ liệu , gửi dữ liệu mới không có thông tin điều khiển tới lớp trên .
Một điều quan trọng bạn nên nhớ rằng mỗi lớp sẽ thêm ( khi máy tính của bạn gửi dữ liệu ) hoặc sẽ gỡ ( khi máy tính của bạn nhận dữ liệu ) những thông tin điều khiển mà nó có mang trong đó .
2. Mô hình tham khảo OSI
Trong hình dưới , bạn có thể xem hình minh hoạ của mô hình OSI . Những chương trình ( Program ) chỉ nói chuyện với lớp thứ bảy , Ứng dụng ( Application ) , trong khi lớp “bên dưới “ lớp đầu tiên là phương tiện vật kí truyền thông mạng ( ví dụ : dây Cable hoặc không khí , trong trường hợp những mạng không dây ) . Cable mạng đôi khi còn được gọi là lớp 0 .
Hình 1:
Bảy lớp có thể được nhóm thành ba nhóm : Application , Transport và Network , như bạn có thể xem ở hình trên .
Bên dưới chúng tôi sẽ giải thích mỗi lớp trông mô hình OSI . Trong ví dụ đưa ra , chúng ta sẽ xem máy tính của chúng ta gửi dữ liệu trên mạng – chúng ta gửi dữ liệu Email bằng chương trình Email của chúng ta .
3. Nó làm việc như thế nào
Như chúng tôi đã giải thích trước đó , mỗi lớp chỉ nói chuyện được với lớp trên và lớp dưới kế với nó . Khi máy tính của bạn đang truyền dữ liệu , luồng thông tin là xuất phát từ chương trình tới mạng ( có nghĩa là đường dữ liệu đi từ đỉnh tới đáy ) , do đó chương trình nói chuyện với lớp thứ bảy , tiếp theo truyền tới lớp thứ sáu và cứ như vậy . Khi máy tính của chúng ta đang nhận dữ liệu , thì luồng thông tin sẽ từ mạng tới chương trình ( có nghĩa là đường dữ liệu sẽ từ đáy đi tới đỉnh ) , do đó mạng sẽ nói chuyện với lớp thứ nhất sau đó truyền tới lớp thứ hai và cứ như vậy .
Khi dữ liệu được truyền , mỗi lớp thêm một vài thông tin điều khiển tới dữ liệu mà nó được nhận từ lớp trên , và khi dữ liệu được nhận thì quá trình xảy ra ngược lại ; mỗi lớp sẽ gỡ những thông tin điều khiển từ dữ liệu nhận được từ lớp bên dưới .
Do vậy khi dữ liệu được gửi tới mạng , lớp thứ bảy nhận dữ liệu do chương trình gửi tới và thêm những thông tin điều khiển của riêng nó và gửi gói dữ liệu mới này tới lớp thứ sáu . Lớp thứ sáu sẽ thêm dữ liệu điều khiển riêng của nó vào gói dữ liệu đã nhận được ở lớp thứ bảy và gửi gói dữ liệu sau khi thêm dữ liệu điều khiển tới lớp thứ năm . Như vậy lớp thứ năm nhận được dữ liệu lúc này là dữ liệu ban đầu đã được thêm những thông tin điều khiển dữ liệu của lớp thứ bảy và lớp thứ sáu . Và cứ như vậy . Khi nhận dữ liệu quá trình diễn ra ngược lại , mỗi lớp sẽ gỡ dữ liệu điều khiển của nó khỏi dữ liệu nhận được .
Mỗi lớp chỉ hiểu dữ liệu điều khiển mà nó nhận trách nhiệm . Khi lớp nhận dữ liệu từ lớp trên nó không hiểu dữ liệu điều khiển được thêm vào từ lớp trên , do đó nó chỉ hiểu dữ liệu mà nó nhận được chỉ là một gói dữ liệu đơn lẻ .
Trong hình 2 mô tả cho chúng ta thấy thấy khi máy tính gửi dữ liệu đi như thế nào tới mạng . Mỗi số thêm vào tới dữ liệu ban đầu đại diện cho dữ liệu điều khiển được thêm vào từ lớp đó . Mỗi lớp xử lí gói mà nó nhận được từ lớp trên như là một gói dữ liệu đơn lẻ mà nó không cần phân biệt dữ liệu trong đó gồm những gì .
Hình 2
Chúng ta cũng có thể nói rằng mỗi lớp của máy tính truyền sẽ nói chuyện trực tiếp với cùng lớp của máy tính nhận . Ví dụ : lớp thứ tư của máy nhận dữ liệu sẽ nói chuyện trực tiếp tới lớp thứ tư của máy truyền dữ liệu . Chúng có có thể nói được như vậy bởi vì dữ liệu điều khiển được thêm vào từ mỗi lớp thì chỉ có cùng lớp của máy nhận mới có thể hiểu được .
4. TCP/IP và mô hình OSI
Từ khi TCP/IP được dùng cho hầu hết mọi giao thức trên mạng hiện nay , điều này dẫn đến sự tương quan giữa giao thức TCP/IP với mô hình OSI. Điều này sẽ có khả năng giúp bạn hiểu tốt hơn cả mô hình OSI với giao thức TCP/IP
Như chúng ta đẽ xem , mô hình tham khảo OSI có bảy lớp , TCP/IP , nói một cách khác , là chỉ có bốn lớp , do đó một vài lớp của giao thức TCP/IP sẽ đại diện cho nhiều hơn một lớp trong mô hình OSI .
Các bạn xem trong hình 3 về mối tương quan giữa mô hình OSI với giao thức TCP/IP
Hình 3 : Cấu trúc TCP/IP
Cũng như tương tự với mô hình OSI , trong giao thức TCP/IP khi dữ liệu truyền , chương trình nói chuyện với lớp Application sai đó kế tiếp tới lớp Transport , tiếp theo tới lớp Internet và cuối cùng tới lớp Network Interface , mà sẽ truyền những khung dữ liệu lên phương tiện truyền đại chúng ( như Cable , không khí ... )
Như chúng ta đã đề cập trước đó , TCP/IP không phải tên của một giao thức riêng biệt mà nó là “ Cụm giao thức “ , có nghĩa là nó là một tập hợp những giao thức . Mỗi giao thức riêng biệt được dùng trong cụm TCP/IP làm việc trong những lớp khác nhau . Ví dụ TCP là giao thức làm việc trong lớp Transport , trong khi IP là giao thức làm việc ở lớp Internet .
Nó có khả năng có nhiều giao thức trong một lớp . Chúng sẽ không gây sự tranh chấp với nhau bởi vì chúng được dùng trong những nhiệm vụ khác nhau . Ví dụ , khi bạn gửi ra bên ngoài những Email , chương trình Email nói chuyện với giao thức SMTP nằm ở lớp Application . Sau đó giao thức này , sau khi xử lí những Email nhận được từ chương trình , gửi chúng tới lớp bên dưới là Transport . Tại nơi đó , dữ liệu sẽ được xử lí bởi giao thức TCP . Khi bạn truy cập tới những trang Web , chương trình duyệt Web cũng sẽ nói chuyện với lớp Application , nhưng lúc này nó lại dùng giao thức khác , HTTP , là một giao thức có nhiệm vụ xử lí việc lướt những trang Web .
Dưới đây là giải thích tóm tắt những lớp của cụm giao thức TCP/IP