Thông lượng TCP tốt hơn nhiều so với UDP


2

Tôi đang theo dõi hiệu suất của một liên kết WAN với iperf giữa hai máy windows ở hai đầu.

Đáng ngạc nhiên (đối với tôi), cửa sổ mặc định phiên đơn TCP đạt thông lượng 12Mb / giây, trong khi giới hạn UDP (mất gói 0%) là khoảng 4Mb / giây. Băng thông cao hơn 5Mbps khiến UDP bị mất gói không thể chấp nhận (> 20%).

Làm thế nào nó có thể được?

Những kết quả này cũng được xác nhận bởi một số lưu lượng thực UDP được gửi qua liên kết (ở băng thông thấp hơn dung lượng dự kiến) dẫn đến mất gói.

Cảm ơn trước cho bất kỳ đề nghị.

EDIT : quên đề cập đến một chi tiết quan trọng: đây là một mạng riêng, vì vậy nó không phải là một liên kết bị tắc nghẽn và lưu lượng truy cập thêm vào liên kết trong các thử nghiệm này (cả với iperf và với lưu lượng truy cập thực) gần như không đáng kể.

EDIT : Ai đó có thể cung cấp lời khuyên về cách khắc phục sự cố ở đâu (trong phần nào của mạng) lưu lượng này bị giảm không?


Liệu lưu lượng truy cập qua một bộ định tuyến? Điều gì khác trong đường dẫn, ví dụ: nó có vượt qua một chuyển đổi từ cổng 1 Gbps sang cổng 100 Mbps không? Có rất nhiều điểm tắc nghẽn ẩn trên mạng.
Ron Maupin

Có, nó vượt qua: một mạng chuyển mạch A ----- bộ định tuyến A ---- bộ định tuyến B ----- mạng chuyển mạch B. Thực hiện một số khắc phục sự cố, có vẻ như vấn đề trong một mạng chuyển mạch. Có, nó vượt qua các thiết bị chuyển mạch từ các cổng 1Gbps đến 100Mbps.
kuma

@kuma Nghe có vẻ như có một phần của con đường không nhất quán. TCP có thể thích ứng, UDP không thể.
David Schwartz

Có nhiều nơi giao thông bị giảm. Cổng 100 Mbps không thể theo kịp luồng lưu lượng 1 Gbps và rất nhiều khung hình sẽ bị loại bỏ (các bộ chuyển mạch có bộ đệm nhỏ). UDP không có phương pháp để yêu cầu lưu lượng bị mất phải được gửi lại vì máy chủ nhận không có kỳ vọng rằng mọi thứ thậm chí sẽ đến. TCP sẽ thông báo rằng lưu lượng đã bị hủy và nó sẽ gửi lại lưu lượng. Bộ định tuyến thường không hoạt động ở tốc độ dây và thường sẽ ưu tiên TCP hơn UDP trừ khi được cấu hình khác nhau. Không có thiết kế và cấu hình mạng, nó phải cho biết vấn đề nằm ở đâu.
Ron Maupin

Bạn có đề nghị đặt tất cả các cổng liên quan đến giao tiếp UDP này (máy chủ và bộ chuyển mạch) thành 100Mbps không?
kuma

Câu trả lời:


2

Iperf không có logic để tối đa hóa hiệu quả của lưu lượng UDP qua liên kết WAN. Windows, giống như hầu hết các hệ điều hành hiện đại, đã nỗ lực đáng kể để có được mọi thông lượng TCP có thể giảm.

TCP có các xác nhận điều chỉnh một cửa sổ, tốc độ truyền phát tinh vi, v.v. Iperf chỉ gửi các gói UDP theo định kỳ.

Không có so sánh.


Tôi hiểu tối ưu hóa được thực hiện ở cấp độ hệ điều hành. Nhưng tôi vẫn không hiểu nói ở cấp độ liên kết. Nếu điều này được dự kiến ​​sẽ cung cấp thông lượng 15Mb / giây, tại sao việc gửi UDP 5Mb / giây lại dẫn đến mất gói cao như vậy? Mặt hàng nào chịu trách nhiệm cho những tổn thất đó? Đây không phải là một triệu chứng của vấn đề mạng? Điều này cũng xảy ra với lưu lượng UDP thực (không có iperf)
kuma

1
@kuma Một lần nữa, có một lý do rất nhiều nghiên cứu và nỗ lực đã đi vào việc thiết kế TCP và kiểm soát tắc nghẽn, backoff, truyền nhịp độ, v.v. UDP không có thứ đó. Đây là lý do tại sao chúng tôi sử dụng TCP cho những thứ dữ liệu hàng loạt quan trọng (như tải xuống tệp) và chúng tôi sử dụng UDP cho các yêu cầu nhỏ, độ trễ nhạy cảm (như DNS). UDP không có cách hợp lý để phản ứng với tắc nghẽn trừ khi ứng dụng thực hiện nó. Iperf không.
David Schwartz

Tôi chỉnh sửa câu hỏi thêm một số chi tiết. Câu hỏi chủ yếu liên quan đến các vấn đề có thể xảy ra trong mạng vì liên kết được cho là không bị tắc nghẽn (kiểm tra thấp hơn dung lượng liên kết), thay vì cách thức hoạt động của TCP / UDP.
kuma
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.