Sự khác biệt giữa TCP và UDP là gì?
Bạn có thể đã thấy các tham chiếu đến TCP và UDP khi thiết lập chuyển tiếp cổng trên bộ định tuyến hoặc khi định cấu hình phần mềm tường lửa. Hai giao thức này được sử dụng cho các loại dữ liệu khác nhau.
TCP / IP là bộ giao thức được các thiết bị sử dụng để liên lạc qua Internet và hầu hết các mạng cục bộ. Nó được đặt tên theo hai trong số các giao thức ban đầu của nó - Giao thức điều khiển truyền (TCP) và Giao thức Internet (IP). TCP cung cấp cho các ứng dụng một cách để phân phối (và nhận) một luồng các gói thông tin được kiểm tra và kiểm tra lỗi qua mạng. Giao thức gói dữ liệu người dùng (UDP) được các ứng dụng sử dụng để cung cấp luồng thông tin nhanh hơn bằng cách loại bỏ kiểm tra lỗi. Khi cấu hình một số phần cứng hoặc phần mềm mạng, bạn có thể cần biết sự khác biệt.
Họ có điểm gì chung
Cả TCP và UDP đều là các giao thức được sử dụng để gửi các bit dữ liệu - được gọi là các gói - qua Internet. Cả hai giao thức đều được xây dựng dựa trên giao thức IP. Nói cách khác, cho dù bạn đang gửi một gói thông qua TCP hoặc UDP, gói đó được gửi đến một địa chỉ IP. Các gói này được xử lý tương tự, khi chúng được chuyển tiếp từ máy tính của bạn đến các bộ định tuyến trung gian và đến đích.
TCP và UDP không phải là giao thức duy nhất hoạt động trên IP. Tuy nhiên, chúng được sử dụng rộng rãi nhất.
Cách thức hoạt động của TCP
TCP là giao thức được sử dụng phổ biến nhất trên Internet.
Khi bạn yêu cầu một trang web trong trình duyệt của mình, máy tính của bạn sẽ gửi các gói TCP đến địa chỉ của máy chủ web, yêu cầu nó gửi lại trang web cho bạn. Máy chủ web phản hồi bằng cách gửi một luồng các gói TCP mà trình duyệt web của bạn ghép lại với nhau để tạo thành trang web. Khi bạn nhấp vào một liên kết, đăng nhập, đăng bình luận hoặc làm bất cứ điều gì khác, trình duyệt web của bạn sẽ gửi các gói TCP đến máy chủ và máy chủ sẽ gửi các gói TCP trở lại.
TCP là tất cả về độ tin cậy - các gói được gửi với TCP được theo dõi để không có dữ liệu nào bị mất hoặc bị hỏng trong quá trình vận chuyển. Đây là lý do tại sao tải xuống tệp không bị hỏng ngay cả khi có trục trặc mạng. Tất nhiên, nếu người nhận hoàn toàn ngoại tuyến, máy tính của bạn sẽ bỏ cuộc và bạn sẽ thấy một thông báo lỗi cho biết nó không thể giao tiếp với máy chủ từ xa.
TCP đạt được điều này theo hai cách. Đầu tiên, nó đặt hàng các gói bằng cách đánh số chúng. Thứ hai, nó kiểm tra lỗi bằng cách yêu cầu người nhận gửi phản hồi lại cho người gửi nói rằng họ đã nhận được tin nhắn. Nếu người gửi không nhận được phản hồi chính xác, họ có thể gửi lại các gói để đảm bảo người nhận nhận được chúng một cách chính xác.
Process Explorer và các tiện ích hệ thống khác có thể hiển thị loại kết nối mà quá trình tạo ra - ở đây chúng ta có thể thấy trình duyệt Chrome có kết nối TCP mở với nhiều máy chủ web khác nhau.
Cách thức hoạt động của UDP
Giao thức UDP hoạt động tương tự như TCP, nhưng nó loại bỏ tất cả các công cụ kiểm tra lỗi. Tất cả các giao tiếp qua lại giới thiệu độ trễ, làm chậm mọi thứ.
Khi một ứng dụng sử dụng UDP, các gói sẽ được gửi đến người nhận. Người gửi không chờ đợi để đảm bảo người nhận đã nhận được gói - nó chỉ tiếp tục gửi các gói tiếp theo. Nếu người nhận bỏ lỡ một vài gói UDP ở đây và ở đó, họ sẽ bị mất - người gửi sẽ không gửi lại chúng. Mất tất cả chi phí này có nghĩa là các thiết bị có thể giao tiếp nhanh hơn.
UDP được sử dụng khi tốc độ mong muốn và không cần sửa lỗi. Ví dụ: UDP thường được sử dụng cho các chương trình phát sóng trực tiếp và các trò chơi trực tuyến.
Ví dụ: giả sử bạn đang xem một luồng video trực tiếp, thường được phát bằng UDP thay vì TCP. Máy chủ chỉ gửi một luồng UDP liên tục cho các máy tính đang xem. Nếu bạn mất kết nối trong vài giây, video có thể bị đóng băng hoặc tăng vọt trong giây lát và sau đó bỏ qua bit hiện tại của chương trình phát. Nếu bạn bị mất gói nhỏ, video hoặc âm thanh có thể bị biến dạng trong giây lát vì video tiếp tục phát mà không có dữ liệu bị thiếu.
Điều này hoạt động tương tự trong các trò chơi trực tuyến. Nếu bạn bỏ lỡ một số gói UDP, các ký tự của người chơi có thể xuất hiện để dịch chuyển tức thời trên bản đồ khi bạn nhận được các gói UDP mới hơn. Không có điểm nào trong việc yêu cầu các gói cũ nếu bạn bỏ lỡ chúng, vì trò chơi đang tiếp tục mà không có bạn. Tất cả vấn đề là những gì đang xảy ra ngay bây giờ trên máy chủ trò chơi - không phải những gì đã xảy ra vài giây trước. Việc bỏ sửa lỗi của TCP giúp tăng tốc kết nối trò chơi và giảm độ trễ.
Vậy cái gì?
Việc một ứng dụng sử dụng TCP hay UDP tùy thuộc vào nhà phát triển của nó và sự lựa chọn tùy thuộc vào ứng dụng cần gì. Hầu hết các ứng dụng cần sửa lỗi và độ mạnh của TCP, nhưng một số ứng dụng cần tốc độ và giảm chi phí của UDP. Nếu bạn kích hoạt một công cụ phân tích mạng như Wireshark, bạn có thể thấy các loại gói khác nhau truyền qua lại.
Trừ khi bạn là quản trị viên mạng hoặc nhà phát triển phần mềm, điều này sẽ không ảnh hưởng đến bạn quá nhiều. Nếu bạn đang định cấu hình bộ định tuyến hoặc phần mềm tường lửa của mình và bạn không chắc liệu ứng dụng sử dụng TCP hay UDP, bạn thường có thể chọn tùy chọn của cả hai..