it-swarm-vi.tech

Sự khác biệt giữa UDP và TCP là gì?

Bộ định tuyến của tôi có hai giao thức (và tùy chọn "cả hai") mà tôi có thể chọn khi thiết lập chuyển tiếp cổng: UDP và TCP. Sự khác biệt giữa hai giao thức này là gì và khi nào bạn sẽ chọn một giao thức khác trong chuyển tiếp cổng?

47
Guy

TCP được hỗ trợ bởi acks và thử lại để đảm bảo dữ liệu của bạn sẽ đến nơi. UDP là không kết nối và "cháy và quên". UDP chủ yếu được sử dụng cho các ứng dụng loại phát trực tuyến, trong đó nếu bạn mất một số dữ liệu, bạn không cần phải cố gửi lại.

Cái nào bạn sử dụng phụ thuộc vào ứng dụng. Ví dụ: một máy chủ web sử dụng TCP.

52
user640

Bạn có thể tìm thấy một bản tóm tắt tốt ở đây:

Sự khác biệt giữa UDP và TCP giao thức internet là gì?

Cả TCP và UDP đều hoạt động ở mô hình TCP/IP lớp vận chuyển, nhưng có cách sử dụng rất khác nhau.

Sự khác biệt quan trọng nhất là:

  • Độ tin cậy :
    [.__.] TCP: hướng kết nối
    [.__.] UDP: không kết nối
  • Đã đặt hàng :
    [.__.] TCP: thứ tự nhận tin nhắn được đảm bảo
    [.__.] UDP: đơn hàng không được đảm bảo
  • Trọng lượng giao thức :
    [.__.] TCP: nặng, vì chi phí kết nối/đặt hàng
    [.__.] UDP: nhẹ, rất ít chi phí
  • Gói :
    [.__.] TCP: truyền phát, dữ liệu được đọc dưới dạng "luồng", không có gì phân biệt nơi một gói kết thúc và một gói khác bắt đầu. Có thể có nhiều gói cho mỗi cuộc gọi đọc.
    [.__.] UDP: datagram, một gói cho mỗi lần gọi đọc.

Cấu trúc khung

Khi dữ liệu được gửi qua mạng, nó cần được gói gọn trong cái gọi là "khung". Có nhiều phương pháp đóng gói khác nhau tùy thuộc vào giao thức và cấu trúc liên kết đang được sử dụng. Các hình ảnh sau đây cho thấy cấu trúc khung TCP và UDP khác nhau như thế nào.

Đây là cấu trúc khung TCP:

TCP frame

Đây là cấu trúc khung UDP, đơn giản hơn nhiều:

UDP frame

Các giao thức điển hình sử dụng TCP là HTTP, FTP và SMTP. Ví dụ về các giao thức sử dụng UDP là DNS và DHCP.

74
splattne

Và giải thích cấp CEO:

UDP là khi bạn ném giấy của bạn theo hướng chung của thùng.

TCP là khi nó bỏ lỡ, bạn ném các bản sao chính xác của cùng một tờ giấy nhiều lần cho đến khi nó rơi vào thùng. Sẽ có sự lãng phí giấy, thậm chí bực bội TCP dẫn đến lãng phí tài nguyên mạng hoặc hệ thống.

45
pgs

TCP và UDP đều là các giao thức chạy trên IP. TCP có bảo đảm giao hàng và UDP thì không. Bạn sẽ chọn cái này hoặc cái kia để chuyển tiếp cổng tùy thuộc vào dịch vụ nào bạn đang cố gắng chuyển tiếp. Không biết giao thức mà dịch vụ bạn đang cố gắng chuyển tiếp là gì, gần như chắc chắn là TCP.

7
Brian

Để trả lời phần khác của câu hỏi của bạn, bạn phải chuyển tiếp những gì ứng dụng của bạn sử dụng. Để chuyển tiếp lưu lượng HTTP, chọn TCP. Để chuyển tiếp lưu lượng TFTP, chọn UDP. Các chương trình p2p chủ yếu sử dụng cả tcp và udp, vì vậy hãy chuyển tiếp cả hai.

Tất cả phụ thuộc vào giao thức và chương trình bạn đang sử dụng.

3
hayalci

Cũng như sự khác biệt được đề cập cho đến nay TCP cũng cung cấp

kiểm soát lưu lượng. Sử dụng cơ chế cửa sổ, người nhận giới hạn số lượng octet (byte) mà nó muốn nhận từ người gửi trước khi người gửi phải chờ cấp phép để gửi thêm dữ liệu. Kích thước của cửa sổ có thể được thay đổi bởi người nhận khi cuộc trò chuyện tiếp tục. Điều này cho phép người nhận 'điều tiết' tốc độ dữ liệu đến từ người gửi: UDP không cho phép điều này và tất cả những gì người nhận có thể làm là vứt bỏ dữ liệu mà nó không thể đệm hoặc xử lý khi đến nơi.

một số phương tiện kỹ thuật khác như xác nhận không liền kề (sử dụng các xác nhận có chọn lọc để cho phép người gửi chỉ truyền lại một khung bị thiếu thay vì khung bị thiếu và các khung tiếp theo mà người nhận đã có nhưng không thể thừa nhận theo cách thông thường), xử lý tắc nghẽn và truyền lại thích ứng (điều chỉnh bộ định thời quyết định thời gian gửi lại khung truyền đi khi không nhận được xác nhận). Những điều này không liên quan đến UDP nhưng help TCP để cung cấp các dịch vụ bổ sung qua UDP mà không làm tăng đáng kể tải mạng cho cùng một khối lượng tải.

2
mas

TCP nỗ lực để đảm bảo dữ liệu được gửi đến người nhận; UDP thì không.

2
J. Polfer

Đừng bận tâm tất cả các câu trả lời giải thích cái này so với cái kia. Đối với mục đích thiết lập chuyển tiếp cổng, các quy tắc khá đơn giản: bạn cần chọn TCP, trừ khi các tài liệu cho giao thức/ứng dụng bạn đang sử dụng nói để sử dụng UDP. Thông thường những cái sử dụng UDP có liên quan đến phát trực tuyến, hoặc những thứ rất đơn giản ủng hộ các giao thức/tốc độ nhẹ hơn độ tin cậy (đặc biệt là DNS và NTP). Lưu ý rằng có các giao thức khác ngoài TCP và UDP cũng vậy - ICMP, giao thức đường hầm, v.v.

1
Lee B

Giao thức càng được biết đến nhiều thì càng có nhiều bộ định tuyến trên đường dẫn can thiệp vào giao thức. Gửi các gói tcp, và có khả năng lớn là các gói nhận được rất sai lệch. UDP thường không được xử lý sai, và các giao thức paylod IP IP khác thường hoàn toàn không bị ảnh hưởng.

1
user60557

Giao thức gói dữ liệu người dùng (UDP)

Nó là một phần của các giao thức cơ bản của Bộ giao thức Internet. Các chương trình trên máy tính nối mạng có thể gửi tin nhắn ngắn đôi khi được gọi là datagram. UDP không đảm bảo bất kỳ độ tin cậy nào (nó xảy ra datagram có thể bị lỗi, bị trùng lặp hoặc bị thiếu mà không có bất kỳ thông báo nào). Thực tế là không kiểm tra xem tất cả các gói có thực sự được phân phối hay không, UDP chứng minh là nhanh hơn và hiệu quả hơn, đối với các ứng dụng không cần phân phối được đảm bảo. UDP tìm thấy công dụng của nó trong các tình huống như vậy:

Ứng dụng nhạy cảm với thời gian. Các vấn đề do gói bị chậm được tránh

Nó cũng hữu ích cho các máy chủ trả lời các truy vấn nhỏ từ số lượng lớn khách hàng. UDP hỗ trợ truyền phát gói (truyền tải tới tất cả trên mạng cục bộ) và đa tuyến (truyền tải tới tất cả các thuê bao).

Giao thức điều khiển truyền (TCP)

Nó thường được gọi là TCP/IP do tầm quan trọng của giao thức này trong Bộ giao thức Internet. TCP hoạt động ở cấp cao hơn, chỉ liên quan đến hai hệ thống đầu cuối, (ví dụ: giữa trình duyệt web và máy chủ web). TCP cung cấp việc phân phối tuần tự một luồng dữ liệu từ một chương trình trên một máy tính sang một chương trình khác trên một máy tính khác. Các cách sử dụng phổ biến của TCP nhóm lại hỗ trợ gửi email và truyền tệp và các ứng dụng Web. Trong số các tác vụ quản lý của nó, TCP kiểm soát kích thước tin nhắn, tốc độ trao đổi tin nhắn và tắc nghẽn lưu lượng mạng. Đối với IP, nó xử lý việc truyền cấp thấp hơn từ máy tính sang máy tính dưới dạng tin nhắn được truyền qua Internet.

0
surendran

Cả hai đều là các giao thức mạng được xây dựng dựa trên thứ gọi là Giao thức Internet hoặc IP. Giao thức Internet là giao thức chính của Internet và là ví dụ cho phép chúng tôi duyệt web. Đó là lý do tại sao bạn sẽ thường thấy các giao thức này được viết dưới dạng TCP/IP hoặc UDP/IP. Chúng thực sự là các giao thức cốt lõi của internet.

Trong cả hai trường hợp, dữ liệu của bạn được chia thành các phần được gọi là các gói. TCP đảm bảo rằng các gói này đến đích và theo đúng thứ tự và không có bất kỳ lỗi nào.

Mặt khác, UDP sẽ không đảm bảo rằng gói dữ liệu sẽ đến. Nó sẽ chỉ đảm bảo rằng nếu nó đến nó sẽ không có lỗi.

Thông thường, các giao thức khác sẽ chạy trên đầu TCP và UDP và được gọi là giao thức ứng dụng vì chúng hoạt động trong một ứng dụng chứ không phải trong hệ điều hành. Trình duyệt web của bạn sử dụng giao thức HTTP sẽ sử dụng giao thức HTTP sẽ sử dụng giao thức HTTP. TCP.

Tra cứu tên miền hoặc truy vấn DNS thường sử dụng UDP nhưng cũng có thể sử dụng TCP. Một số dịch vụ phát trực tuyến sử dụng UDP bên dưới các giao thức ứng dụng khác.

Tôi hy vọng rằng câu trả lời câu hỏi của bạn bằng tiếng Anh đơn giản hơn.

0
Matt