Ứng dụng email sử dụng dịch vụ nào của tầng giao vận ?

Bộ giao thức TCP/IP, [tiếng Anh: TCP/IP protocol suite] hay còn gọi là bộ giao thức Internet [tiếng Anh: Internet protocol suite hoặc IP suite] là một mô hình khái niệm [conceptual model] và một tập hợp các giao thức truyền thông dùng trong mạng Internet và các hệ thống mạng máy tính tương tự. Tên gọi TCP/IP đến từ hai giao thức nền tảng của bộ giao thức là TCP [Transmission Control Protocol] và IP [Internet Protocol]. TCP và IP cũng là hai giao thức đầu tiên được định nghĩa.

Tầng ứng dụng trong TCP/IP là nơi các chương trình mạng thường dùng làm việc nhất nhằm liên lạc giữa các nút trong một mạng.

Giao tiếp xảy ra trong tầng này là tùy theo các ứng dụng cụ thể và dữ liệu được truyền từ chương trình, trong định dạng được sử dụng nội bộ bởi ứng dụng này, và được đóng gói theo một giao thức tầng giao vận.

Do chồng TCP/IP không có tầng nào nằm giữa ứng dụng và các tầng giao vận, tầng ứng dụng trong bộ TCP/IP phải bao gồm các giao thức hoạt động như các giao thức tại tầng trình diễn và tầng phiên của mô hình OSI. Việc này thường được thực hiện qua các thư viện lập trình.

Dữ liệu thực để gửi qua mạng được truyền cho tầng ứng dụng, nơi nó được đóng gói theo giao thức tầng ứng dụng. Từ đó, dữ liệu được truyền xuống giao thức tầng thấp tại tầng giao vận.

Hai giao thức tầng thấp thông dụng nhất là TCP và UDP. Mỗi ứng dụng sử dụng dịch vụ của một trong hai giao thức trên đều cần có cổng. Hầu hết các ứng dụng thông dụng có các cổng đặc biệt được cấp sẵn cho các chương trình phục vụ [server][HTTP - Giao thức truyền siêu văn bản dùng cổng 80; FTP - Giao thức truyền tệp dùng cổng 21, v.v..] trong khi các trình khách [client] sử dụng các cổng tạm thời [ephemeral port].

Các thiết bị định tuyến và thiết bị chuyển mạch không sử dụng tầng này nhưng các ứng dụng điều chỉnh thông lượng [bandwidth throttling] thì có dùng.

Nằm giữa tầng ứng dụng và tầng mạng, tầng giao vận là tầng trung tâm trong kiến trúc phân tầng với nhiệm vụ cung cấp dịch vụ truyền thông giữa các tiến trình ứng dụng chạy trên các máy tính khác nhau. Chương này nghiên cứu tất cả dịch vụ của tầng giao vận cũng như các nguyên tắc cơ bản thực hiện điều này theo nhiều cách tiếp cận khác nhau. Chúng ta sẽ xem các dịch vụ này được triển khai trong các giao thức như thế nào. Tầng giao vận của Internet có hai giao thức quan trọng là TCP và UDP.

Hai chương trước đã nói về vai trò và những dịch vụ mà tầng giao vận cung cấp vậy cho đến bây giờ, chúng ta đã biết gì về tầng giao vận?

Hình 3.1 Tầng giao vận cung cấp dịch vụ truyền thông logic cho các tiến trình ứng dụng

Giao thức tầng giao vận cung cấp một kênh truyền logic [ảo] giữa các tiến trình ứng dụng chạy trên máy tính khác nhau. Gọi là logic vì không tồn tại một đường truyền vật lý thực sự giữa hai tiến trình. Các tiến trình ứng dụng sẽ sử dụng đường truyền ảo này để trao đổi thông điệp mà không phải bận tâm về cơ sở hạ tầng của môi trường vật lý thực sự. Hình 3.1 minh họa điều này.

Trên hình 3.1, tầng giao vận nằm trên các thiết bị đầu cuối chứ không phải ở các Router hoạt động ở tầng mạng.

Ở phía gửi, thực thể giao vận chèn thông điệp mà nó nhận được từ tiến trình ứng dụng vào các 4-PDU [là đơn vị dữ liệu của giao thức tầng giao vận – Protocol Data Unit]. Công việc được thực hiện bằng cách chia thông điệp thành nhiều đoạn nhỏ, bổ sung vào đầu mỗi đoạn tiêu đề của tầng giao vận để tạo ra gói dữ liệu của tầng giao vận [4-PDU]. Sau đó tầng giao vận truyền gói dữ liệu [4-PDU] xuống tầng mạng, tại đây mỗi gói này được đặt trong gói dữ liệu của tầng mạng [3-PDU]. Ở phía nhận, tầng giao vận nhận gói dữ liệu từ tầng mạng, loại bỏ phần tiêu đề của gói dữ liệu 4-PDU, ghép chúng lại thành một thông điệp hoàn chỉnh và chuyển cho tiến trình ứng dụng nhận.

Trên mạng máy tính có thể có nhiều giao thức hoạt động ở tầng giao vận. Mỗi giao thức có thể cung cấp các dịch vụ với chất lượng khác nhau cho ứng dụng.

Tất cả giao thức tầng giao vận đều cung cấp dịch vụ dồn kênh [multiplex]phân kênh [demultiplex], điều này sẽ nói cụ thể trong các phần sau. Như đã nói trong phần 2.1 , ngoài dịch vụ dồn kênh/phân kênh, tầng giao vận còn có thể cung cấp các dịch vụ khác cho tiến trình ứng dụng như truyền dữ liệu tin cậy, đảm bảo bằng thông hay giới hạn độ trễ.

1. Quan hệ giữa tầng giao vận và tầng mạng.

Tầng giao vận nằm ở trên tầng mạng. Nếu giao thức tầng giao vận cung cấp đường truyền logic giữa các tiến trình chạy trên các máy tính khác nhau, thì giao thức tầng mạng cung cấp đường truyền giữa các máy tính. Điểm khác biệt nhỏ này tuy khó nhận biết nhưng rất quan trọng, xét ví dụ dưới đây.

Giả sử có hai nhà: một ở bờ biển phía đông, một ở bờ biển phía tây nước Mĩ, trong mỗi nhà có 12 đứa trẻ là anh em họ với nhau. Hàng tuần chúng trao đổi thư cho nhau, mỗi thư được đặt trong một phong bì riêng và được dịch vụ bưu chính gửi đi theo địa chỉ ghi trên phong bì. Hàng tuần mỗi nhà sẽ nhận 144 lá thư từ nhà bên kia [bọn trẻ có thể tiết kiệm được tiền nếu chúng sử dụng email]. Ở mỗi nhà có một đứa trẻ chịu trách nhiệm thu thập và phân phát thư – Ann trong nhà phía tây, Bill trong nhà phía đông. Mỗi tuần, Ann lấy thư từ bọn trẻ trong nhà mình và chuyển cho nhân viên bưu cục – người thường xuyên ghé qua nhà để lấy và chuyển thư. Khi nhận thư từ nhân viên bưu tá, Ann chuyển tiếp thư cho người nhận. Bill cũng sẽ thực hiện công việc tương tự như vậy.

Trong ví dụ trên, dịch vụ bưu chính cung cấp đường truyền logic giữa hai nhà – chuyển thư từ nhà này đến nhà kia, chứ không phải từ người này đến người kia. Còn Ann và Bill cung cấp đường truyền logic giữa từng người trong hai nhà. Đối với lũ trẻ, Ann và Bill là dịch vụ chuyển thư mặc dù Ann và Bill chỉ là một phần [phần đầu mút] của cả hệ thống chuyển thư. Qua ví dụ này ta hiểu được quan hệ giữa tầng giao vận và tầng mạng:

Máy tính [hay thiết bị đầu cuối] = Ngôi nhà.

Tiến trình = Từng người trong ngôi nhà.

Thông điệp ứng dụng = Thư trong phong bì.

Giao thức tầng mạng = Dịch vụ bưu chính [gồm nhân viên bưu chính].

Giao thức tầng giao vận = Ann và Bill.

Trong ví dụ trên, Ann và Bill thực hiện công việc phân phát thư tại chính ngôi nhà của chúng, nhưng không thực hiện những việc như sắp xếp thư tại các bưu cục [và các trạm trung chuyển trên đường đi] hay gửi thư từ bưu cục này tới bưu cục khác. Tương tự, giao thức tầng giao vận chỉ hoạt động ở các thiết bị đầu cuối. Tại thiết bị đầu cuối, giao thức tầng giao vận chuyển dữ liệu từ tiến trình ứng dụng xuống tầng mạng và ngược lại nhưng không biết thông điệp được truyền đi như thế nào trong tầng mạng. Trên hình 3.1, các router không xử lý bất kỳ thông tin tiêu đề nào mà tầng giao vận chèn vào bên cạnh thông điệp ứng dụng.

Giả sử Ann và Bill đi vắng, Susan và Harvey làm thay. Nhưng thật đáng tiếc hai đứa trẻ này còn quá nhỏ, không làm việc được cẩn thận như Ann và Bill. Chúng làm mất thư. Tương tự như vậy, mạng máy tính có thể có nhiều giao thức giao vận, mỗi giao thức cung cấp các dịch vụ với chất lượng khác nhau cho chương trình ứng dụng.

Dịch vụ mà Ann và Bill cung cấp phụ thuộc vào dịch vụ của bưu điện. Ví dụ nếu bưu điện không đảm bảo thời gian chuyển thư giữa hai nhà thì Ann và Bill cũng sẽ không đảm bảo được thời gian chuyển thư giữa hai người trong hai nhà. Tương tự, dịch vụ của giao thức tầng giao vận cung cấp sẽ phụ thuộc vào dịch vụ của tầng mạng bên dưới. Nếu giao thức tầng mạng không đảm bảo thời gian trễ hay đảm bảo về băng thông cho gói dữ liệu 4-PDU trong quá trình gửi giữa các máy tính, thì giao thức tầng giao vận cũng không thể cung cấp những dich vụ đó khi gửi thông điệp giữa các tiến trình ứng dụng.

Tuy nhiên, tầng giao vận vẫn có thể cung cấp những dịch vụ mà tầng mạng không cung cấp được. Những dich vụ như thế được nghiên cứu ngay trong chương này, ví dụ giao thức tầng giao vận cung cấp dịch vụ truyền dữ liệu tin cậy cho tầng ứng dụng ngay cả khi tầng mạng không đáng tin cậy – làm mất, gửi lỗi hay gửi trùng lặp dữ liệu. Một dịch vụ khác sẽ nghiên cứu trong chương 7 [An ninh mạng] là khả năng mã hoá thông điệp của tầng giao vận để đảm bảo thông điệp không bị đọc trộm, trong khi tầng mạng không thực hiện được điều này.

2. Tổng quan về tầng giao vận trong Internet.

Trong mạng Internet hay mạng TCP/IP nói chung có hai giao thức ở tầng giao vận: UDP và TCP. UDP [User Datagram Protocol] cung cấp dịch vụ truyền không tin cậy và không hướng nối và TCP [Transmission Control Protocol] cung cấp dịch vụ tin cậy và hướng nối cho ứng dụng. Người thiết kế ứng dụng phải lựa chọn một trong hai giao thức trên cho ứng dụng của mình.

Để đơn giản, trong mô hình Internet ta coi 4-PDU là một segment. Tuy vậy, nhưng trong các khuyến nghị RFC thì 4-PDU được coi là segment đối với TCP và datagram đối với UDP. Nói chung thuật ngữ datagram thường sử dụng đối cho PDU ở tầng mạng nhưng trong một quyển sách nhập môn như thế này, nói chung ít xảy ra nhầm lẫn khi sử dụng thuật ngữ segment cho cả TCP PDU và UDP PDU.

Trước khi tiếp tục, chúng ta nói qua về tầng mạng của Internet [Tầng mạng sẽ được nghiên cứu chi tiết trong chương 4]. Giao thức của tầng mạng là IP [Internet Protocol]. IP cung cấp đường truyền 1ogic giữa các máy tính và mô hình dịch vụ của nó theo kiểucố gắng tối đa [best effort delivery service]. Nghĩa là IP cố gắng gửi các segment giữa các máy tính – hay thiết bị đầu cuối khác nhau, nhưng không đảm bảo điều này. Nói cụ thể hơn, IP không đảm bảo về thứ tự truyền, về tính toàn vẹn của dữ liệu trong segment. Chính vì thế người ta xem IP là dịch vụ không tin cậy. Mỗi máy tính có một địa chỉ IP xác định. Trong chương này ta chỉ cần biết rằng mỗi máy tính phải có một địa chỉ IP xác định duy nhất.

Nhiệm vụ chính của UDP và TCP là mở rộng dịch vụ IP – truyền dữ liệu giữa hai thiết bị đầu cuối – thành dịch vụ truyền dữ liệu giữa hai tiến trình chạy trên thiết bị đầu cuối. Việc mở rộng từ truyền dữ liệu giữa các máy tính [host-to-host] đến truyền dữ liệu giữa các tiến trình [process-to-process] được gọi là quá trình dồn kênh [multipiex] và phân kênh [demuitip/ex]. Vấn đề này sẽ nghiên cứu ở phần sau. UDP và TCP kiểm soát tính toàn vẹn [hay tính đúng đắn] của dữ liệu nhờ trường phát hiện lỗi đặt trong tiêu đề gói dữ liệu. UDP chỉ cung cấp dịch vụ phân phối dữ liệu giữa hai tiến trình và kiểm tra lỗi. Tương tự IP, UDP là dịch vụ không tin cậy, không đảm bảo dữ liệu được truyền đi một cách đúng đắn giữa các tiến trình. UDP được thảo luận kỹ trong phần 3.1.

Ngoài phân kênh, dồn kênh, TCP còn cung cấp một số dịch vụ khác cho ứng dụng. Dịch vụ đầu tiên và quan trọng nhất là truyền dữ liệu tin cậy [reliable data transfer]. Các cơ chế điều khiển lưu lượng, đánh số thứ tự, số thứ tự biên nhận, bộ định thời sẽ giúp TCP đảm bảo dữ liệu được truyền từ tiến trình gửi đến tiến trình nhận chính xác và đúng thứ tự. Như vậy giao thức TCP đã biến dịch vụ truyền không tin cậy giữa các thiết bị đầu cuối [IP] thành dịch vụ truyền dữ liệu tin cậy giữa các tiến trình.

Giao thức cung cấp dịch vụ truyền dữ liệu tin cậy và kiểm soát tắc nghẽn rất phức tạp. Các phần từ 3.4 đến 3.8 trình bày nguyên tắc chung của các dịch vụ trên và giao thức TCP. Cách tiếp cận của chương này là giới thiệu xen kẽ các nguyên lý cơ bản với giao thức TCP. Ví dụ chúng ta nói tổng quan cách thức cung cấp dịch vụ truyền dữ liệu tin cậy sau đó mới nghiên cứu TCP thực hiện điều này như thế nào. Chúng ta sẽ bắt đầu bằng công việc dồn kênh/phân kênh với dữ liệu từ tầng ứng dụng.

Video liên quan

Chủ Đề