UDP Unicast быстрее, чем TCP? - PullRequest
       45

UDP Unicast быстрее, чем TCP?

2 голосов
/ 07 февраля 2011

Мне нужно передавать 1000 небольших объектов в секунду из серверной программы на 100 клиентов в гигабитной локальной сети, поэтому мне нужен самый быстрый подход благодаря.

Я знаю разницу между usp и TCP - у меня есть слой поверх udp, чтобы сделать его надежным и упорядоченным.

Что я должен использовать и почему? UDP одноадресной или TCP. По причине маршрутизатора я не могу использовать многоадресную передачу Udp.

Спасибо

Ответы [ 4 ]

5 голосов
/ 30 марта 2011

Могут ли клиенты общаться друг с другом? В конечном итоге у вас есть только ограниченное количество проводов от вашего сервера, что ограничивает вашу скорость. Заставление клиентов выполнять часть работы по распространению дает вам больше проводов и, следовательно, увеличивает вашу скорость больше, чем любое изменение протокола.

TCP по сути является UDP с уровнем надежности - именно то, что у вас есть. Однако TCP реализован аппаратно и доказан. Ваш уровень надежности в программном (медленнее) и непроверенном (рискованно).

3 голосов
/ 07 февраля 2011

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

Я думаю, что единственный способ убедиться в этом - тщательно протестировать оба решения в максимально реалистичной среде

0 голосов
/ 07 февраля 2011

Производительность зависит от вашего уровня поверх UDP. Если ваш уровень заново изобретает TCP с помощью трехсторонних рукопожатий, окон перегрузки, порядковых номеров и т. Д., Производительность может быть хуже.

В противном случае UDP должен быть быстрее.

(1000 мелких объектов в секунду на 100 клиентов не так уж много, ИМХО)

0 голосов
/ 07 февраля 2011

Определенно, UDP unicast, так как у вас есть надежный слой поверх него.проблема с TCP в том, что вы не можете контролировать его скорость с сервера PUSH.Это зависит от многих алгоритмов, закодированных в стеке.С помощью UDP вы можете отправлять сообщения так же быстро, как и сервер.Это клиент, который должен справиться с этой скоростью.

Это, конечно, не говоря уже о стандартной части «UDP не надежен», поскольку кажется, что вы решили, что:)

my2c.

PS: правила многоадресной рассылки UDP,жалкое сетевое оборудование так плохо настроено;)

...