TCP быстрее, чем UDP по Ethernet? - PullRequest
0 голосов
/ 04 марта 2012

Я построил программу, которая предоставляет некоторую статистику для передачи по TCP и UDP. Клиент отправляет пакет, содержащий 30 КБ данных, и 100 раз непрерывно отправляется на сервер. Клиент и сервер в этом случае связаны через Ethernet. Что меня сейчас озадачивает, так это мои результаты: TCP заканчивает работу почти в 2 раза быстрее, чем UDP.

Я провел некоторое исследование, и я видел объяснения, касающиеся MTU и тому подобное, но я не могу связать их все в своем уме. Может кто-нибудь объяснить, что происходит? Имеют ли мои результаты смысл?

1 Ответ

1 голос
/ 04 марта 2012

Скорее всего, вы видите эффект алгоритма Nagle.http://en.wikipedia.org/wiki/Nagle's_algorithm.

TCP будет «ждать» больше данных в течение короткого периода времени и отправлять их вместе в одном пакете, где UDP будет отправлять каждую отдельную дейтаграмму.

...