1. Giới thiệu

OSI là mô hình được sử dụng để hiểu những giao thức mạng làm việc như thế nào.

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 .

  • Network : những lớp của nhóm này là những lớp mức thấp mà có nhiệm vụ truyền và nhận dữ liệu trên mạng .
  • Transport : lớp này với nhiệm vụ của nhận dữ liệu đến từ mạng và biến đổi chúng trong định dạng gần hơn tới định dạng dữ liệu mà chương trình có thể hiểu được . Khi máy tính của bạn đang truyền dữ liệu , lớp này sẽ nhận dữ liệu và chia chúng thành vài gói để truyền chúng lên mạng . Khi máy tính của bạn đang nhận dữ liệu , lớp này sẽ nhận những gói đến và đặt chúng lại với nhau .
  • Application : những lớp mức cao này đặt dữ liệu vào trong định dạng dữ liệu để chương trình sử dụng .

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 .

 

  • Lớp 7 – Application : lớp ứng dụng làm giao diện giữa chương trình mà đang gửi hoặc đang nhận dữ liệu với “Nhóm giao thức” . Khi bạn Download hoặc gửi Email , chương trình Email tiếp xúc lớp của nó .
  • Lớp 6 – Presentation : cũng được gọi là lớp chuyển . Lớp này biến đổi định dạng dữ liệu được nhận từ lớp Application tới định dạng chung cho “Nhóm giao thức “ sử dụng . Ví dụ , nếu chương trình đang dùng trang mã không phải ASCII , lớp này sẽ chịu trách nhiệm biến đổi dữ liệu nhận thành mã ASCII . Lớp này có thể dùng để nén dữ liệu và thêm mã hoá . Việc nén dữ liệu cho phép tăng tốc độ mạng bởi vì ít thông tin được gửi tới lớp bên dưới ( lớp thứ 5 ) . Nếu mã hoá được sử dụng , tất cả thông tin giữa lớp 5 và lớp 1 sẽ được mã hoá và chúng sẽ chỉ được giải mã trong lớp thứ 6 của máy tính tại vị trí cuối khác .
  • Lớp 5 – Session : Lớp này cho phép hai chương trình trong những máy tính khác nhau để thiết lập giao dịch liên lạc . Trong giao dịch này hai chương trình định nghĩa truyền dữ liệu như thế nào sẽ được làm , thêm vào đó những đánh dấu quá trình vào dữ liệu được truyền . Nếu mạng bị lỗi , hai máy tính khởi động lại việc truyền dữ liệu này từ đánh dấu nhận lần cuối cùng tốt nhất mà không phải truyền lại tất cả dữ liệu một lần nữa . Ví dụ , bạn đang Download thư tín và mạng của bạn bị lỗi . Thay vì việc tải lại tất cả thư lại một lần nữa , chương trình của bạn sẽ tự động khởi động lại từ lần tải về tốt nhất lần cuối cùng . Chú ý không phải tất cả giao thức đều có đặc điểm này .
  • Lớp 4 – Transport : Trên những mạng dữ liệu được chia thành vài gói . Khi bạn đang truyền một file lớn , File này cắt thành nhiều vài gói nhỏ , và sau đó máy tính tại vị trí nhận cuối cùng sẽ nhận những gói đó và đặt thành File quay trở lại . Lớp Transport có nhiệm vụ nhận dữ liệu gửi từ lớp Session và chia chúng thành những gói mà sẽ được truyền trên mạng . Tại máy tính nhận , lớp này có nhiệm vụ đặt những gói theo thứ tự và chúng sẽ kiểm tra tính nguyên vẹn của dữ liệu , thông thường việc gửi tín hiệu điều khiển tới thiết bị truyền được gọi là Chấp nhận hoặc đơn giản nói rằng gói đã đến và dữ liệu còn nguyên vẹn . Lớp này hoàn toàn riêng biệt với những lớp Application ( lớp 5 tới 7 ) từ những lớp Network ( những lớp 1 tới 3 ) . Những lớp Network có liên quan cho biết dữ liệu được truyền và được nhận trên mạng như thế nào , có nghĩa là những gói dữ liệu được truyền , trong khi những lớp Application liên quan tới những gì bên trong những gói . Lớp 4 , Transport , làm giao diện giữa hai nhóm đó .
  • Lớp 3 – Network : Lớp này có nhiệm vụ địa chỉ hoá gói , biến đổi những địa chỉ Logic thành những địa chỉ vật lí , làm cho nó có khả năng để gói dữ liệu tới nơi đến ở đích của nó . Lớp này cũng có nhiệm vụ định hướng những gói sẽ dùng để đến nơi đích , dựa trên những yếu tố như sự đi lại và những mức độ ưu tiên .
  • Lớp 2 – Data Link : Lớp này nhận những gói dữ liệu được gửi từ lớp Network và biến đổi chúng thành những khung mà sẽ gửi ra tới phương tiện truyền thông mạng , thêm vào những địa chỉ vật lí của Card mạng của máy tính , những địa chỉ vật lí của Card mạng của máy tính đích , dữ liệu điều khiển và dữ liệu Checksum ( kiểm tra , hoặc cũng còn được gọi là CRC ) . Những khung được tạo từ lớp này được gửi tới lớp Physical , ở đó khung sẽ được biến đổi thành những tín hiệu điện ( hoặc tín hiệu sóng điện từ , nếu bạn dùng mạng không dây ) . Lớp Data Link trên máy tính nhận sẽ tính toán lại Checksum và kiểm tra , nếu tính toán Checksum mới khớp với giá trị được gửi thì máy tính nhận sẽ gửi tín hiệu Chấp nhận ( Acknowledge ) tới máy tính truyền dữ liệu  . Ngoài ra máy tính truyền sẽ phải truyền lại khung đó nếu như nó không đến đích hoặc nó đến những dữ liệu bị hỏng .
  • Lớp 1- Physical : Lớp này lấy những khung được gửi từ lớp Data Link biến đổi chúng thành những tín hiệu tương thích với phương thức truyền dữ liệu . Nếu là sợi Cable kim loại được dùng để truyền dữ liệu thì nó sẽ biến đổi thành tín hiệu điện . Nếu là sợi Cable quang được dùng thì nó sẽ biến đổi dữ liệu thành tín hiệu ánh sáng . Nếu là mạng không dây được dùng thì nó sẽ biến đổi thành tín hiệu điện từ trường . Khi dữ liệu được nhận , lớp này sẽ nhận tín hiệu và biến đổi thành 0 và 1 để gửi chúng tới lớp Data Link, mà sẽ đặt khung quay trở lại và kiểm tra tính toàn vẹn của nó .

       

            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

 

  • Application : như chúng ta đã đề cập , chương trình nói chuyện với lớp này . Có một vài giao thức khác nhau có thể được dùng ở lớp này , phụ thuộc vào chương trình bạn sử dụng . Thông dụng nhất bao gồm giao thức HTTP ( cho lướt Web ) , SMTP ( để gửi và nhận thư Email ) và FTP ( để truyền những File ) .
  • Transport : Mọi điều chúng ta đã nói về lớp Transport trong mô hình tham khảo OSI là hoàn toàn hợp lệ cho lớp Transport của TCP/IP . Hai giao thức khác nhau được dùng trong lớp này đó là : TCP ( Transmission Control Protocol) và UDP (User Datagram Protocol) . TCP được dùng để truyền dữ liệu của người dùng ( như lướt Web và Email ) trong khi UDP được dùng để cho dữ liệu điều khiển quá trình truyền .
  • Internet : Mọi thứ chúng ta nói về lớp Network trong mô hình OSI cũng hợp lệ với lớp Internet của TCP/IP . Có một vài giao thức có thể được dùng trong lớp này nhưng hay sử dụng hơn cả chính là giao thức IP .
  • Network Interface : Lớp này có nhiệm vụ gửi dữ liệu tới phương tiện truyền thông . Bên trong lớp này sẽ phụ thuộc vào kiểu mạng của bạn . Nếu dùng mạng Ethernet ( hầu hết mạng dùng kiểu này ) , bạn sẽ tìm thấy ba lớp Ethernet ( LLC , MAC và Physical  – LLC được viết từ Logic Link Control và  MAC được viết tắt từ Media Access Control) bên trong lớp TCP/IP này . Lớp Physical của mạng Ethernet phù hợp với lớp Physical của mô hình OSI , trong khi hai lớp khác ( LLC và MAC ) lại phù hợp với lớp Data Link trong mô hình OSI .

Nguồn: tuvantinhoc1088.com