Khi anh em gửi dữ liệu hay các gói tin qua mạng Internet, quá trình đằng sau nó thường liên quan đến giao thức TCP hoặc UDP. Cả 2 giao thức này đều được xây dựng dựa trên nền IP (Internet Protocol), cũng có nghĩa là khi gửi gói tin thông qua TCP hay UDP, chúng được gửi đến 1 địa chỉ IP nào đó. Dù rằng TCP và UDP không phải là 2 giao thức duy nhất hoạt động trên nền IP, nhưng chúng được ứng dụng rộng rãi nhất. Vậy sự khác biệt giữa TCP và UDP là gì?
Trước khi đi vào tìm hiểu kỹ hơn, anh em cần nắm được ý nghĩa của cổng – port. Trong thế giới máy tính và mạng Internet, port được sử dụng để giao tiếp và hình thành nên các kết nối giữa các máy tính trong mạng. Anh em đừng nhầm lẫn giữa port này và port kia – cổng vật lý RJ45 trên router chẳng hạn – mà đây là “cổng ảo”, thể hiện điểm cuối giữa 2 hoặc nhiều máy tính với nhau. Các port được đánh số và có 1 loạt số thứ tự được gán cụ thể cho những chức năng hay giao thức khác nhau.
TCP viết tắt của cụm từ Transmission Control Protocol, là giao thức hướng kết nối (connection-oriented) do nó thiết lập 1 kết nối (connection) giữa thiết bị gửi và thiết bị nhận trước khi truyền dữ liệu. Trong thế giới mạng, giao thức là “nhà cầm quyền”, đưa ra các luật lệ cũng như tiêu chuẩn chi phối cách dữ liệu được truyền dẫn giữa những thiết bị. TCP port là các port tuân thủ theo giao thức điều khiển đường truyền, trong đó có 1 số port mà chắc anh em ít nhiều cũng quen mặt như FTP (File Transfer Protocol) port 20 và 21; SMTP (Simple Mail Transfer Protocol) port 25 và IMAP (Internet Message Access Protocol) port 143 dành cho email; Secure Shell port 22...
TCP port tạo ra kết nối trước khi chia sẻ dữ liệu. Để dễ hình dung, anh em có thể liên tưởng đến cuộc gọi điện thoại. Khi anh em muốn gọi cho ba mẹ để hỏi thăm sức khỏe, anh em bấm số, nhấn gọi, điện thoại thực hiện kết nối đến số cần gọi và phía đầu dây bên kia đổ chuông, ba mẹ nhìn thấy số của anh em gọi đến và nhấn bắt máy, lúc này connection đã thành lập xong và anh em có thể hỏi thăm (truyền dữ liệu) rồi. Cách TCP port hoạt động cũng tương tự như thế, 1 kết nối bảo mật giữa bên gửi và bên nhận được đảm bảo trước khi dữ liệu gửi đi, nhưng kết nối này được tạo ra theo cách khác hơn 1 chút: three-way handshake.
Trước khi đi vào tìm hiểu kỹ hơn, anh em cần nắm được ý nghĩa của cổng – port. Trong thế giới máy tính và mạng Internet, port được sử dụng để giao tiếp và hình thành nên các kết nối giữa các máy tính trong mạng. Anh em đừng nhầm lẫn giữa port này và port kia – cổng vật lý RJ45 trên router chẳng hạn – mà đây là “cổng ảo”, thể hiện điểm cuối giữa 2 hoặc nhiều máy tính với nhau. Các port được đánh số và có 1 loạt số thứ tự được gán cụ thể cho những chức năng hay giao thức khác nhau.
TCP là gì?
TCP viết tắt của cụm từ Transmission Control Protocol, là giao thức hướng kết nối (connection-oriented) do nó thiết lập 1 kết nối (connection) giữa thiết bị gửi và thiết bị nhận trước khi truyền dữ liệu. Trong thế giới mạng, giao thức là “nhà cầm quyền”, đưa ra các luật lệ cũng như tiêu chuẩn chi phối cách dữ liệu được truyền dẫn giữa những thiết bị. TCP port là các port tuân thủ theo giao thức điều khiển đường truyền, trong đó có 1 số port mà chắc anh em ít nhiều cũng quen mặt như FTP (File Transfer Protocol) port 20 và 21; SMTP (Simple Mail Transfer Protocol) port 25 và IMAP (Internet Message Access Protocol) port 143 dành cho email; Secure Shell port 22...
TCP port tạo ra kết nối trước khi chia sẻ dữ liệu. Để dễ hình dung, anh em có thể liên tưởng đến cuộc gọi điện thoại. Khi anh em muốn gọi cho ba mẹ để hỏi thăm sức khỏe, anh em bấm số, nhấn gọi, điện thoại thực hiện kết nối đến số cần gọi và phía đầu dây bên kia đổ chuông, ba mẹ nhìn thấy số của anh em gọi đến và nhấn bắt máy, lúc này connection đã thành lập xong và anh em có thể hỏi thăm (truyền dữ liệu) rồi. Cách TCP port hoạt động cũng tương tự như thế, 1 kết nối bảo mật giữa bên gửi và bên nhận được đảm bảo trước khi dữ liệu gửi đi, nhưng kết nối này được tạo ra theo cách khác hơn 1 chút: three-way handshake.
Bắt tay 3 bước cần có 3 tương tác khác nhau với 3 thông điệp dạng SYN → SYN-ACK → ACK. Bước đầu tiên, thiết bị sẽ gửi 1 thông điệp SYN (sync, synchronize) kèm 1 số thứ tự đồng bộ hóa (synchronized sequence number) để giao tiếp với thiết bị nhận, kiểu “Alo, anh em nghe rõ không?”. Bước 2, nếu thiết bị nhận đang sẵn sàng kết nối, nó sẽ gửi lại 1 đoạn SYN-ACK, gồm xác nhận yêu cầu kết nối và 1 số thứ tự được đồng bộ hóa, kiểu “Nghe rõ rồi, có gì nói đi.”. Bước 3, thiết bị gửi sẽ gửi lại 1 đoạn ACK (acknowledge), cho biết rằng nó đã xác nhận nhận được thông điệp. Sau đó, kết nối được hình thành và bắt đầu quá trình truyền dữ liệu. Sau khi truyền xong, kết nối kết thúc.
Nhờ việc hình thành nên kết nối trước khi truyền nên các gói tin được đảm bảo nguyên vẹn và gửi đúng thứ tự. TCP đặt ưu tiên độ tin cậy lên hàng đầu bằng cách đánh số thứ tự gói tin, thiết bị nhận sẽ gửi lại thông báo rằng gói tin đã được nhận đúng và thiết bị gửi xác nhận lần nữa. Nếu có lỗi xảy ra, gói tin sẽ được gửi lại để đảm bảo phía nhận nhận được dữ liệu toàn vẹn. Các ứng dụng sử dụng giao thức TCP như HTTPS, DNS, SMTP, telnet, SNMP...
UDP là gì?
Cùng có chức năng truyền dữ liệu nhưng UDP – User Datagram Protocol – mang tính chất trái ngược với TCP. UDP là giao thức không kết nối (connectionless), thiết bị gửi tiến hành gửi dữ liệu đến thiết bị nhận mà không cần thiết lập kết nối trước đó. UDP loại bỏ tất cả những tính năng kiểm lỗi “cồng kềnh”, những thiết lập kết nối rắc rối và có độ trễ, tất cả chỉ để tập trung vào tốc độ truyền tải. Khi 1 ứng dụng sử dụng UDP, gói tin được gửi đến người nhận, và gửi liên tục, không cần biết người nhận có nhận được hay không hoặc nhận có đúng hay không. Nếu thiết bị nhận vô tình trễ hay để lạc mất gói tin, nó mất vĩnh viễn, bù lại, việc truyền dữ liệu sẽ có tốc độ nhanh hơn hẳn. Các UDP port thường gặp như DNS (Domain Name System) port 53, DHCP (Dynamic Host Configuration Protocol) port 68 và Kerberos port (88) được sử dụng cho dịch vụ gaming.
Do có tính tốc độ nên UDP thường được sử dụng cho việc streaming hoặc chơi game trực tuyến. Anh em sẽ thường gặp hiện tượng packet loss – mất gói tin khi xem livestream mà mạng lag, video phát trực tiếp sẽ bị đứng rồi sau khi có kết nối tiếp sẽ nhảy đến đúng vị trí hiện tại, những giây lag đã mất đi không thể xem được. Hay khi chơi game trực tuyến, đường truyền không tốt, gặp vấn đề cũng gây ra lag, anh em thấy nhân vật của mình hoặc người chơi khác đứng yên hoặc giật giật, nhảy lung tung trong bản đồ, đó là do các gói tin bị mất trong UDP.
Sự khác biệt giữa TCP và UDP?
Quảng cáo
Đọc đến đây thì anh em cũng đã biết được sự khác biệt giữa TCP và UDP rồi, mỗi giao thức đều có ưu điểm và khuyết điểm riêng, hướng đến các ứng dụng khác nhau. Độ tin cậy là điểm mạnh của TCP, đổi lại với tốc độ cũng như độ trễ cao, trong khi tốc độ là ưu tiên hàng đầu của UDP, nhưng gạt bỏ hết mọi tính năng đảm bảo cho tính toàn vẹn của dữ liệu. TCP được sử dụng cho các dịch vụ cần độ tin cậy và bảo mật cao, dữ liệu đảm bảo nguyên vẹn như email, hình ảnh, website... Ngược lại, livestream, live broadcast, game trực tuyến thường sử dụng UDP để tập trung vào tốc độ truyền tải cao nhất.