Giao thức TCP vs UDP
Cả TCP và UDP đều phù hợp với lớp thứ tư trong mô hình OSI, lớp vận chuyển ngay phía trên lớp IP. TCP và UDP đều hỗ trợ truyền dữ liệu theo hai cách khác nhau, TCP là hướng kết nối và UDP là kết nối ít hơn.
Trong vận chuyển các gói có hai ràng buộc chính là một độ tin cậy và một ràng buộc khác là độ trễ. Độ tin cậy được đảm bảo phân phối gói và độ trễ là phân phối kịp thời gói. Cả hai không thể đạt được đến đỉnh cùng một lúc nhưng có thể được tối ưu hóa.
Để bắt đầu giao tiếp dữ liệu giữa hai nút, người gửi nên biết IP của người nhận cũng như số cổng. Địa chỉ IP là định tuyến gói và số cổng là để bàn giao gói cho đúng người. Giải thích thêm về kịch bản này trong một ví dụ thực tế, hãy nghĩ về một môi trường mua sắm phức tạp và ai đó đã hướng dẫn bạn mua sắm 30 (Đó là một tiệm cắt tóc), Golden Plaza, No 21 Park Ave, để đến nơi này bạn chỉ cần biết Không 21 công viên đại lộ nhưng để có được dịch vụ từ saloon bạn cần biết số cửa hàng là 30. Bạn có thể giả sử số 21 là địa chỉ IP và cửa hàng số 30 là cổng số.
Giống như trong mô hình dịch vụ ứng dụng và truyền thông dữ liệu, các ứng dụng TCP lắng nghe số cổng để chấp nhận kết nối TCP. Giống như các ứng dụng UDP cũng lắng nghe số cổng để cung cấp dịch vụ UDP.
TCP:
Được xác định trong RFC 793
TCP là giao thức định hướng kết nối để kết thúc giao thức đáng tin cậy để hỗ trợ truyền dữ liệu được bảo đảm. Từ chính cơ sở kết nối, TCP đảm bảo độ tin cậy. Một số tính năng chính của TCP là bắt tay 3 bước (SYN, SYN-ACK, ACK), Phát hiện lỗi, Khởi động chậm, Kiểm soát luồng và Kiểm soát tắc nghẽn.
TCP là một cơ chế vận chuyển đáng tin cậy, vì vậy nó sẽ được sử dụng trong đó việc phân phối gói là bắt buộc ngay cả trong các tắc nghẽn. Ví dụ điển hình cho các ứng dụng TCP và số cổng là dữ liệu FTP (20), Kiểm soát FTP (21), SSH (222), Telnet (23), Mail (25), DNS (53), HTTP (80), POP3 (110) , SNMP (161) và HTTPS (443). Đây là những ứng dụng TCP nổi tiếng.
UDP:
Được xác định trong RFC 768
UDP (Giao thức gói dữ liệu người dùng) là một giao thức truyền đơn giản cung cấp dịch vụ không đáng tin cậy. Điều đó không có nghĩa là UDP sẽ không cung cấp dữ liệu nhưng không có cơ chế giám sát kiểm soát tắc nghẽn hoặc mất gói, v.v. Vì đơn giản, nó tránh được việc xử lý trên không tại giao diện mạng. Các ứng dụng thời gian thực chủ yếu sử dụng UDP vì bỏ các gói tin tốt hơn các gói bị trì hoãn. Ví dụ điển hình là giọng nói qua các luồng phương tiện IP.
Tóm lược:
(1) TCP được định hướng kết nối và đáng tin cậy trong đó UDP là kết nối ít hơn và không đáng tin cậy.
(2) TCP cần xử lý nhiều hơn ở cấp giao diện mạng trong khi ở UDP thì không.
(3) TCP sử dụng, bắt tay 3 bước, điều khiển tắc nghẽn, điều khiển luồng và cơ chế khác để đảm bảo truyền dẫn đáng tin cậy.
(4) UDP chủ yếu được sử dụng trong trường hợp độ trễ gói nghiêm trọng hơn mất gói. (Ứng dụng thời gian thực)