Mô hình OSI có 7 lớp khác nhau, trong bài viết này mình sẽ tập trung đi vào giải thích cụ thể về lớp số 4 – Transport Layer. Đây là lớp vận chuyển và là câu trả lời cho câu hỏi : “tại sao các tin nhắn thô từ ứng dụng như Messenger có thể gửi từ máy tính của bạn tới máy tính khác?”
Chức năng của lớp vận chuyển
Trong khi các lớp mạng trên như lớp ứng dụng (Application), trình bày(Presentation), lớp phiên (session) có trách nhiệm chuẩn bị và gửi dữ liệu thô. Các lớp mạng thấp hơn nhứ Lớp mạng (Network), lớp liên kết (data Link) và lớp vật lý (physical) chịu trách nhiệm đóng gói dữ liệu thô bằng cách sử dụng tiêu đề để các thiết bị mạng như bộ định tuyến hay Switch có thể hiểu và chuyển lưu lượng truy cập đến đúng thiết bị.
Trong quá trình chuyển dữ liệu, lớp vận chuyển chịu trách nhiệm kết nối từ điểm đầu đến điểm cuối qua mạng và cung cấp dịch vụ cho các giao thức lớp trên (lớp ứng dụng). Tức là nó sẽ cung cấp kết nối điểm – điểm giữa máy chủ nguồn và máy chủ đích chứ không phải kiểu hop-to-hop.
Lưu ý: Transport Layer cung cấp giao tiếp logic giữa các ứng dụng chạy trên các máy chủ khác nhau bằng cách thêm tiêu đề truyền tải vào dữ liệu thô. Đơn vị dữ liệu giao thức (PDU) hiện được gọi là Segment (phân đoạn).
Các thiết bị Router hay Switch và các thiết bị đầu cuối (máy tính, máy in, máy chủ,…) có hạn chế về lượng dữ liệu chèn vào gói IP. Lớp vận chuyển sẽ phân đoạn và tập hợp lại dữ liệu (tin nhắn) giữa người gửi và nhận.
Khi máy chủ gửi tin nhắn, lớp vận chuyển sẽ chuẩn bị và tác dữ liệu thô thành các thành phần nhỏ hơn và gửi. Khi máy chủ khác nhận được, lớp vận chuyển lại tập hợn các thành đó và gửi chúng lên các lớp trên (lớp ứng dụng).
Các lớp ứng dụng có rất nhiều giao thức nhận dạng chức năng cho từng dữ liệu. Các dữ liệu Email sử dụng giao thức SMTP hoặc POP3. Trong khi các trình duyệt web sử dụng các giao thức HTTP và HTTPS.
Nếu ứng dụng nhận được 1 giao thức khác thì nó sẽ loại bỏ dữ liệu đấy. Chẳng hạn như máy chủ Web nhận dữ liệu giao thức SMTP thì dữ liệu này sẽ bị loại vì máy chủ chỉ nhận giao thức HTTP và HTTPS. Lớp vận chuyển sẽ đóng vai trò đảm rằng dữ liệu được truyền và phân phối đến đúng ứng dụng.
Trách nhiệm của lớp vận chuyển
Transport Layer đảm nhiệm các nhiệm vụ sau:
- Xử lý quy trình chuyển tin
- Kết nối máy chủ đầu cuối
- Ghép kênh và phân kênh
- Điều khiển tắc nghẽn băng thông
- Bảo đảm tính toàn vẹn của dữ liệu và sửa lỗi
- Kiểm soát lưu lượng
1. Xử lý vận chuyển tin
Lớp liên kết dữ liệu yêu cầu địa chỉ MAC (địa chỉ 48 bit) của máy chủ nguồn và đích để phân phối chính xác một frame; lớp mạng thì yêu cầu địa chỉ IP để định tuyến gói tin thích hợp.
Lớp vận chuyển yêu cầu số Cổng để phân phối chính xác các phân đoạn dữ liệu đến đúng quy trình trong nhiều quy tình đang chạy trên 1 máy chủ cụ thể. Số cổng là địa chỉ 16 bit để nhận dạng bất kỳ chương trình máy khách hay máy chủ.
2. Kết nối máy chủ đầu cuối
Transport Layer chịu trách nhiệm cho kết nối đầu cuối giữa các máy chủ và chủ yếu sử dụng giao thức TCP và UDP. TCP là giao thức hướng kết nối, có nghĩa là nó đảm bảo việc gửi tin nhắn, trong khi UDP là giao thức không kết nối gửi dữ liệu mà không sửa lỗi.
Trong TCP và UDP là số cổng được sử dụng để phân biệt loại ứng dụng cụ thể. Một số cổng cụ thể được đính kèm khi gửi dữ liệu để dữ liệu sẽ được nhận chính xác đến ứng dụng dự định. Sơ đồ bên dưới hiển thị một phân đoạn trong đó dữ liệu thô được đóng gói bởi tiêu đề truyền tải (cổng nguồn và cổng đích).
3. Ghép kênh và phân kênh
Ghép kênh là ghép nhiều dữ liệu từ các kênh khác nhau thành 1. Điều này xảy ra khi dữ liệu được được lấy từ một số các quy trình từ người gửi và được hợp thành 1 gói tin cùng với các tiêu đề và được đóng gói trong 1 gói duy nhất.
Ngược lại, phân kênh là việc tách 1 gói tin ra thành các dữ liệu khác nhau. Quá trình này xảu ra khi máy ở người nhận phân phối gói tin nhận được thành các loại dữ liệu cho các ứng dụng khác nhau.
4. Kiểm soát tắc nghẽn băng thông
Tắc nghẽn mạng là khi có quá nhiều nguồn trên mạng cố gắng gửi dữ liệu cùng lúc và bộ đệm của Router bị tràn do mất gói tin. Điều này khiến phải truyền lại các gói tin bị mất từ các nguồn, do đó mà tắc càng thêm tắc.
Lúc này, Lớp vận chuyển sẽ kiểm soát tắc nghẽn bằng nhiều cách. Nó sử dụng điều khiển tắc nghẽn vòng hở để ngăn ngừa tắc nghẽn và điều khiển tắc nghẽn vòng kín để loại bỏ tắc nghẽn mạng khi nó xảy ra.
TCP cung cấp AIMD (kỹ thuật cộng tăng giảm nhân và kỹ thuật nhóm rò rỉ để kiểm soát tắc nghẽn).
5. Bảo đảm tính toàn vẹn của dữ liệu và sửa lỗi
Transport Layer kiểm tra lỗi trong các tin nhắn đến lớp ứng dụng bằng cách sử dụng mã phát hiện lỗi và tính toán tổng kiểm tra. Lớp vận chuyển sẽ kiểm tra dữ liệu nhận được có bị lỗi hay không? Và sử dụng ACK và NACK để thông báo cho người gửi biết nếu dữ liệu đến hoặc không?
6. Kiểm soát luồng lưu lượng
Lớp vận chuyển có cơ chế điều khiển luồng lưu lượng giữa các lớp liền kề của mô hình TCP/IP. Giao thức TCP cũng ngăn ngừa mất dữ liệu do người dùng gửi nhanh hoặc người nhận nhận chậm bằng cách áp dụng một số kỹ thuật kiểm soát luồng.
Nó sử dụng các phương pháp giao thức cửa sổ trượt được người nhận thực hiện bằng cách gửi lại một cửa sổ cho người gửi để thông báo kích thước dữ liệu mà người nhận có thể nhận.
Tổng Kết:
Lớp vận chuyển là lớp thứ 4 trong mô hình OSI và là lớp thứ 2 trong mô hình TCP/IP. Lớp này có chức năng quan trọng trong việc gửi tin nhắn dữ liệu giữa các ứng dụng với nhau. Mong rằng qua bài viết này bạn đã hiểu rõ hơn về Transport Layer và chức năng của nó!
Xem thêm các bài viết khác: