Bài 3: Các thành phần của mạng máy tính ( tiếp)

0

Ví dụ về cấu trúc thứ bậc của giao thức

Xem xét một ví dụ khác liên quan đến hệ thống truyền tập tin từ máy tính X sang máy Y. Hai máy này được nối với nhau bởi một dây cáp tuần tự. Chúng ta xem xét một mô hình gồm 3 tầng:

  • Người sử dụng muốn truyền một tập tin sẽ thực hiện một lời gọi đến tầng A nhờ vào một hàm đã được định nghĩa sẵn, send_file(fileName, destination). Trong đó fileName là tập tin cần truyền đi, destination là điạ chỉ của máy tính nhận tập tin.
  • Tầng A phân chia tập tin thành nhiều thông điệp và truyền từng thông điệp nhờ lệnh send_message(MessageNo, destination) do tầng B cung cấp.
  • Tầng B quản lý việc gởi các thông điệp, đảm nhiệm việc phân chia các thông điệp thành nhiều đơn vị truyền tin, gọi là các khung (frame); gởi các khung giữa X và Y tuân theo luật đã định trước (protocol) như tần suất gởi, điều khiển luồng, chờ báo nhận của bên nhận, điều khiển lỗi.
A : Tầng ứng dụng
B : Tầng quản lý thông điệp
C : Tầng vật lý
  • Tầng B giao cho tầng C một chuỗi các bit mà chúng sẽ được truyền lên đường truyền vật lý, không quan tâm gì về ý nghĩa của các bit, để đến nơi nhận.

Thông tin được truyền trên một kênh truyền đơn giản hoặc phức tạp và được định hướng đến nơi nhận. Bên nhận thực hiện ngược lại tiến trình của bên gởi. Cả bên nhận và bên gởi cùng có số lần gởi/nhận giống nhau.

                                                                Đơn vị truyền dữ liệu qua các tầng

Ta cũng chú ý rằng, kích thước của các đơn vị truyền tin trong từng tầng là khác nhau. Ở tầng A đơn vị là một tập tin. Tầng B, đơn vị truyền tin là các khung theo một cấu trúc đã được định nghĩa. Tầng C, đơn vị truyền tin là các tín hiện được truyền trên đường truyền vật lý.

Dịch vụ mạng

Hầu hết các tầng mạng đều cung cấp một hoặc cả hai kiểu dịch vụ: Định hướng nối kết và Không nối kết.

  • Dịch vụ định hướng nối kết (Connection-oriented): Đây là dịch vụ vận hành theo mô hình của hệ thống điện thoại. Đầu tiên bên gọi phải thiết lập một nối kết, kế đến thực hiện nhiều cuộc trao đổi thông tin và cuối cùng thì giải phóng nối kết.
  • Dịch vụ không nối kết (Connectionless): Đây là dịch vụ vận hành theo mô hình kiểu thư tín. Dữ liệu của bạn trước tiên được đặt vào trong một bao thư trên đó có ghi rõ địa chỉ của người nhận và địa chỉ của người gởi. Sau đó sẽ gởi cả bao thư và nội dung đến người nhận.

Một số những dịch vụ thường được cung cấp ở mỗi tầng mạng cho cả hai loại có nối kết và không nối kết được liệt kê ở bảng dưới đây:

Mỗi loại dịch vụ được cung cấp với chất lượng khác nhau. Các loại dịch vụ có nối kết thường đảm bảo thứ tự đến nơi của thông tin như thứ tự chúng đã được gởi đi, cũng như đảm bảo dữ liệu luôn đến nơi. Hai điều này thường không được đảm bảo trong các dịch vụ loại không nối kết.

Các phép toán của dịch vụ

Một dịch vụ thường được mô tả bằng một tập hợp các hàm cơ bản (primitives) hay đôi khi còn gọi là các tác vụ (operations) sẵn có cho các khách hàng sử dụng. Một số các hàm cơ bản thường có cho một dịch vụ định hướng nối kết như sau:

Hàm cơ bản Chức năng
LISTEN Nghẽn để chờ một yêu cầu nối kết gởi đến
CONNECT Yêu cầu thiết lập nối kết với bên muốn giao tiếp
RECIEVE Nghẽn để chờ nhận các thông điệp gởi đến
SEND Gởi thông điệp sang bên kia
DISCONNECT Kết thúc một nối kết

Quá trình trao đổi thông tin giữa Client, người có nhu cầu sử dụng dịch vụ và server, người cung cấp dịch vụ được thực hiện bằng cách sử dụng các hàm cơ sở trên được mô tả như kịch bản sau:

                                                                Mô hình dịch vụ có nối kết

Sự khác biệt giữa dịch vụ và giao thức

Giao thức và dịch vụ là hai nền tảng rất quan trọng trong việc thiết kết và xây dựng một hệ thống mạng. Cần hiểu rõ ý nghĩa và phân biệt sự khác biệt giữa chúng.

  • Dịch vụ: là một tập các phép toán mà một tầng cung cấp cho tầng phía trên của nó gọi sử dụng.
  • Giao thức: là một tập các luật mô tả khuôn dạng dữ liệu, ý nghĩa của các gói tin và thứ tự các gói tin được sử dụng trong quá trình giao tiếp.
  • Chú ý: Cùng một service có thể được thực hiện bởi các protocol khác nhau; mỗi protocol có thể được cài đặt theo một cách thức khác nhau ( sử dụng cấu trúc dữ liệu khác nhau, ngôn ngữ lập trình là khác nhau, vv…)

                                                               Quan hệ giữa dịch vụ và giao thức

Mô hình tham khảo OSI

Để dễ dàng cho việc nối kết và trao đổi thông tin giữa các máy tính với nhau, vào năm 1983, tổ chức tiêu chuẩn thế giới ISO đã phát triển một mô hình cho phép hai máy tính có thể gởi và nhận dữ liệu cho nhau. Mô hình này dựa trên tiếp cận phân tầng (lớp), với mỗi tầng đảm nhiệm một số các chức năng cơ bản nào đó.

Để hai máy tính có thể trao đổi thông tin được với nhau cần có rất nhiều vấn đề liên quan. Ví dụ như cần có Card mạng, dây cáp mạng, điện thế tín hiệu trên cáp mạng, cách thức đóng gói dữ liệu, điều khiển lỗi đường truyền vv…  Bằng cách phân chia các chức năng này vào những tầng riêng biệt nhau, việc viết các phần mềm để thực hiện chúng trở nên dễ dàng hơn. Mô hình OSI giúp đồng nhất các hệ thống máy tính khác biệt nhau khi chúng trao đổi thông tin. Mô hình này gồm có 7 tầng:

Tầng 7: Tầng ứng dụng (Application Layer)

Đây là tầng trên cùng, cung cấp các ứng dụng truy xuất đến các dịch vụ mạng. Nó bao gồm các ứng dụng của người dùng, ví dụ như các Web Browser (Netscape Navigator, Internet Explorer ), các Mail User Agent (Outlook Express, Netscape Messenger, …)  hay các chương trình làm server cung cấp các dịch vụ mạng như các Web Server (Netscape Enterprise, Internet Information Service, Apache, …),  Các FTP Server, các Mail server (Send mail, MDeamon). Người dùng mạng giao tiếp trực tiếp với tầng này.

Tầng 6: Tầng trình bày (Presentation Layer)

Tầng này đảm bảo các máy tính có kiểu định dạng dữ liệu khác nhau vẫn có thể trao đổi thông tin cho nhau. Thông thường các mày tính sẽ thống nhất với nhau về một kiểu định dạng dữ liệu trung gian để trao đổi thông tin giữa các máy tính. Một dữ liệu cần gởi đi sẽ được tầng trình bày chuyển sang định dạng trung gian trước khi nó được truyền lên mạng. Ngược lại, khi nhận dữ liệu từ mạng, tầng trình bày sẽ chuyển dữ liệu sang định dạng riêng của nó.

Tầng 5: Tầng giao dịch (Session Layer)

Tầng này cho phép các ứng dụng thiết lập, sử dụng và xóa các kênh giao tiếp giữa chúng (được gọi là giao dịch). Nó cung cấp cơ chế cho việc nhận biết tên và các chức năng về bảo mật thông tin khi truyền qua mạng.

Tầng 4: Tầng vận chuyển (Transport Layer)

Tầng này đảm bảo truyền tải dữ liệu giữa các quá  trình. Dữ liệu gởi đi được đảm bảo không có lỗi, theo đúng trình tự, không bị mất mát, trùng lắp. Đối với các gói tin có kích thước lớn, tầng này sẽ phân chia chúng thành các phần nhỏ trước khi gởi đi, cũng như tập hợp lại chúng khi nhận được.

Tầng 3: Tầng mạng (Network Layer)

Tầng này đảm bảo các gói tin dữ liệu (Packet) có thể truyền từ máy tính này đến máy tính kia cho dù  không có đường truyền vật lý trực tiếp giữa chúng.  Nó nhận  nhiệm vụ tìm đường đi cho dữ liệu đến các đích khác nhau trong mạng.

Tầng 2: Tầng liên kết dữ liệu (Data-Link Layer)

Tầng này đảm bảo truyền tải các khung dữ liệu (Frame) giữa hai máy tính có đường truyền vật lý nối trực tiếp với nhau. Nó cài đặt cơ chế phát hiện và xử lý lỗi dữ liệu nhận.

Tầng 1: Tầng vật ký (Physical Layer)

Điều khiển việc truyền tải thật sự các bit trên đường truyền vật lý. Nó định nghĩa các tín hiệu điện, trạng thái đường truyền, phương pháp mã hóa dữ liệu, các loại đầu nối được sử dụng.

Về nguyên tắc, tầng n của một hệ thống chỉ giao tiếp, trao đổi thông tin với tầng n của hệ thống khác. Mỗi tầng sẽ có các đơn vị truyền dữ liệu riêng:

  • Tầng vật lý: bit
  • Tầng liên kết dữ liệu: Khung (Frame)
  • Tầng Mạng: Gói tin (Packet)
  • Tầng vận chuyển: Đoạn (Segment)

                                                                   Xử lý dữ liệu qua các tầng

Trong thực tế, dữ liệu được gởi đi từ tầng trên xuống tầng dưới cho đến tầng thấp nhất của máy tính gởi. Ở  đó, dữ liệu sẽ được truyền đi trên đường truyền vật lý. Mỗi khi dữ liệu được truyền xuống tầng phía dưới thì nó bị “gói” lại trong đơn vị dữ liệu của tầng dưới. Tại bên nhận, dữ liệu sẽ được truyền ngược lên các tầng cao dần. Mỗi lần qua một tầng, đơn vị dữ liệu tương ứng sẽ được tháo ra.

Đơn vị dữ liệu của mỗi tầng sẽ có một tiêu đề  (header) riêng.

OSI chỉ là mô hình tham khảo, mỗi nhà sản xuất khi phát minh ra hệ thống mạng của mình sẽ thực hiện các chức năng ở từng tầng theo những cách  thức riêng. Các cách thức này thường được mô tả dưới dạng các chuẩn mạng hay các giao thức mạng.  Như vậy dẫn đến trường hợp cùng một chức năng nhưng hai hệ thống mạng khác nhau sẽ không tương tác được với nhau. Hình dưới sẽ so sánh kiến trúc của các hệ điều hành mạng thông dụng với mô hình OSI.

Để thực hiện các chức năng ở tầng 3 và tầng 4 trong mô hình OSI, mỗi hệ thống mạng sẽ có các protocol riêng:

  • UNIX: Tầng 3 dùng giao thức IP, tầng 4 giao thức TCP/UDP
  • Netware: Tầng 3 dùng giao thức IPX, tầng 4 giao thức SPX
  • Microsoft định nghĩa giao thức NETBEUI để thực hiện chức năng của cả tầng 3 và tầng 4

Nếu chỉ dừng lại ở đây  thì các máy tính UNIX, Netware và NT sẽ không trao đổi thông tin được với nhau.  Với sự lớn mạnh của mạng Internet, các máy tính cài đặt các hệ điều hành khác nhau đòi hỏi phải giao tiếp được với nhau, tức phải sử dụng chung một giao thức. Đó chính là bộ giao thức TCP/IP, giao thức của mạng Internet.

                                            Kiến trúc của một số hệ điều hành mạng thông dụng

Nguồn: Sưu tầm

Share.

About Author

Leave A Reply