Mô hình OSI (Open Systems Interconnection) bao gồm 7 lớp cho phép người dùng hình dung dễ dàng hơn về cơ chế giao tiếp giữa các máy tính. Transport layer là một trong 7 tầng của mô hình OSI. Show
Transport layer sử dụng cơ chế phân đoạn (Segmentation) để chuẩn hóa dữ liệu theo kích thước truyền và nhận diện dịch vụ bằng port. Do đó, các bản tin của các dịch vụ khác nhau có thể được truyền trên cùng một đường truyền, tiết kiệm băng thông, tạo điều kiện truyền và cung cấp khả năng sửa lỗi cụ thể. Bài viết cùng chủ đề:
Transport layer (vận chuyển) là tầng thứ tư của mô hình OSI, chịu trách nhiệm đáp ứng các yêu cầu dịch vụ từ tầng phiên (Session) và đưa ra yêu cầu các dịch vụ từ tầng mạng (Network). Thực hiện các nhiệm vụ dồn kênh và phân kênh. Truyền và trao đổi dữ liệu giữa các máy chủ (host) qua kết nối end-to-end. Chịu trách nhiệm khắc phục lỗi (Error recovery), điều khiển luồng dữ liệu (Flow control), đảm bảo dữ liệu được truyền đi một cách hoàn hảo nhất. Nó thực hiện phân mảnh dữ liệu bằng cách đóng gói các PDU lớp cao hơn (Protocol data unit - Đơn vị dữ liệu giao thức) vào dữ liệu tầng Transport. Transport layer có hai phương thức truyền tải chính: connectionless và connection - oriented. Các giao thức đặc trưng của tầng vận chuyển: UDP (User Datagram Protocol) và TCP (Transmission Control Protocol). Các gói UDP bị phân mảnh được gọi là Datagram và TCP được gọi là Segment. 2. Các dịch vụ dồn kênh và phân kênhTransport layer thực hiện ghép kênh và tách kênh dữ liệu, cho phép nhiều chương trình chạy trên cùng một máy tính trên các số cổng khác nhau. Trong môi trường đa tác vụ hiện đại, nhiều ứng dụng mạng chạy đồng thời trên một máy tính. Do đó, chúng ta cần một cơ chế để xác định ứng dụng nào sẽ nhận được dữ liệu. Để điều này hoạt động chính xác, dữ liệu từ các ứng dụng khác nhau được ghép kênh ở lớp Transport và được gửi đến lớp ứng dụng (Application). Ngược lại, dữ liệu nhận được từ lớp ứng dụng được phân tách ở lớp vận chuyển và được gửi đến đúng ứng dụng. Điều này được thực hiện thông qua các "cổng" vận chuyển. 2.1. Dồn kênhDịch vụ dồn thực hiện nhiệm vụ nhận dữ liệu từ các tiến trình lớp ứng dụng (qua socket). Dữ liệu này được đóng gói theo giao thức của tầng vận chuyển và được gửi trên liên kết mạng. Mỗi tiến trình dịch vụ được gán một địa chỉ “cổng” khác nhau. Dữ liệu được chuyển từ tầng Application đến tầng Transport2.2. Phân kênhDữ liệu từ lớp vận chuyển gửi đến các quy trình khác nhau của lớp ứng dụng bằng cách sử dụng thông tin trong header gói tin. Tương tự như ghép kênh, các quy trình được gán các địa chỉ “cổng” khác nhau. Dữ liệu được gửi đến từ tầng Transport đến tầng Application3. Giao thức UDP (User Datagram Protocol) trong Transport layer3.1. Tổng quan UDP trong Transport layerMột trong những thường được sử dụng trong Transport layer là giao thức UDP. Đây là một giao thức vận chuyển connectionless điển hình. Phương thức này không thiết lập kết nối trước khi gửi, nó sẽ gửi ngay lập tức (gửi nỗ lực nhất). Phương thức connectionless không đảm bảo độ đáng tin cậy như: xác nhận, kiểm soát luồng (flow control), hay đánh số các gói tin bị phân mảnh trên đường truyền, v.v. Như vậy, giao thức này được sử dụng cho các gói tin như thoại và video vì chúng được truyền rất nhanh. Tuy nhiên, đường truyền này không có độ tin cậy cao và dễ bị mất gói và lỗi. 3.2. Cấu trúc dữ liệu UDP datagram trong Transport layer16 bit Source port 16 bit Destination port 16 bit UDP length 16 bit UDP checksum Data
4. Giao thức TCP (Transmission Control Protocol)4.1. Tổng quanTransmission Control Protocol (TCP) là một giao thức truyền dẫn trong Transport layer hướng kết nối (connection - oriented) với các thuộc tính sau:
4.2. Cấu trúc dữ liệu gói tin TCP SegmentCấu trúc gói tin TCP
4.3. Thủ tục bắt tay 3 bướcGiả sử máy A muốn kết nối với máy B.
Khi quá trình bắt tay đã được thiết lập, hai máy chủ A và B có thể trao đổi dữ liệu với nhau. 4.4. Cơ chế kiểm soát luồng (Flow control)Nếu máy A gửi dữ liệu quá nhanh, máy B không thể xử lý dữ liệu kịp thời và dễ bị mất dữ liệu. Để tránh mất dữ liệu, máy nhận trong phương thức TCP sẽ kích hoạt điều khiển luồng bằng cách gửi một thông báo đến máy A cho biết máy B không xử lý kịp và chưa sẵn sàng để nhận các segment mới được gửi đến. Khi nhận được thông báo này, máy A ngừng gửi các segment để đợi máy B xử lý. Sau khi máy B xử lý xong sẽ gửi thông báo sẵn sàng nhận dữ liệu và host A tiếp tục gửi các phân đoạn. 4.5. Cơ chế ACK (Acknowledgement)Máy A gửi một segment có Window size \= 1, máy B nhận segment và phản hồi lại gói ACK 2. Khi A nhận được ACK 2, nó tiếp tục gửi segment tiếp theo đi. Tiến trình tiếp tục diễn ra đến khi gửi hết gói tin. Để cải thiện hiệu suất, có thể tăng kích thước cửa sổ như hình bên dưới (Window size = 3). Trường hợp xử lý tắc nghẽn khi tăng Window size. Giả sử máy chủ A gửi segment có Window size \= 3. Máy chủ B chỉ nhận được với Windows size =2, khi đó máy B gửi tin nhắn đến máy A yêu cầu truyền lại với Windows size = 2. 5. Các ứng dụng thường chạy ở Transport layer5.1. Các ứng dụng của Transport layerTầng Transport layer sẽ đọc thông tin của gói tin thông qua TCP hoặc UDP Header để xác định dữ liệu được đóng gói bên trong mà không cần mở gói để xem nội dung bên trong. Để thực hiện được điều này, giao thức TCP/IP sẽ dùng một số port đặc trưng trong TCP/UDP Header để xác nhận giao thức lớp trên được đóng gói trong phần data. Ứng dụng Giao thức tầng ứng dụng Tầng Transport tương ứng Port Thư điện tử SMTP TCP 25 Truy cập từ xa Telnet TCP 23 Web HTTP,HTTPS TCP 80,443 Truyền file FTP TCP 20,21 File Sever NFS Thường là UDP 2049 Đa phương tiện Phụ thuộc vào hãng sản xuất Thường là UDP Điện thoại qua Internet Phụ thuộc vào hãng sản xuất Thường là UDP Quản lý mạng SNMP Thường là UDP 161 Định tuyến RIP Thường là UDP 520 Tên miền DNS Thường là UDP 53 5.2. So sánh cơ bản giữa TCP và UDPCác đặc trưng UDP TCP Tốc độ truyền Nhanh hơn TCP Chậm UDP Dung lượng gói tin Có dung lượng nặng Có dung lượng nhẹ Hướng liên kết Không Có Sử dụng phiên Không Có Độ tin cậy Không Có Xác thực Không Có Đánh thứ tự Không Có Điều khiển luồng Không Có Bảo mật Ít hơn TCP Nhiều hơn UDP Việc lựa chọn giao thức TCP hay UDP tùy thuộc vào nhu cầu và chức năng sử dụng:
6. Kết luậnTóm lại, Transport layer nằm tại tầng thứ tư của mô hình OSI, có chức năng là chia nhỏ các gói tin lớn khi truyền và tập hợp lại chúng khi nhận. Transport layer giúp đảm bảo tính toàn vẹn của dữ liệu (không mất, không lặp, đúng thứ tự) trong quá trình chia tách gói tin khi gửi và nhận. |