Средняя потеря UDP-пакетов и переупорядочение пакетов

Я бы хотел собрать опыт SO'ers в отношении проблемы потери пакета UDP (или выпадающего).

Вначале я понимаю, что для прямых соединений точка-точка, где сетевые карты подключены через кроссоверный кабель и достаточный буфер на сетевых адаптерах и своевременную обработку упомянутых буферов, что "не должно быть проблем с потерями пакетов или пакетов". Я считаю, что это также относится к одному хорошему/высокоуровневому коммутатору между точками.

  • Исключая вышеуказанный сценарий, какова ожидаемая средняя потеря UDP-пакетов по локальной сети

  • Какие сценарии вызывают проблемы с упорядочением пакетов UDP?

Ответ 1

Отсутствует идея об UDP-пакете в средних локальных сетях. Я предполагаю, что на современных коммутируемых сетях достаточно низкий уровень, в противном случае ваша локальная сеть или конечные точки слишком загружены.:)

Переупорядочение, вероятно, проще всего, когда маршруты поднимаются и опускаются; скажем, один из коммутаторов в вашей организации находится на достаточной нагрузке, что реорганизация дерева имеет смысл, и трафик отправляется через разные коммутаторы. Скорее всего, ваши партнеры-поставщики услуг Интернета приходят и уходят, или достигают ограничений по трафику, и приоритет пакетов через них меняются - старые пакеты находились в полете по сильно загруженной сети, новые пакеты находятся в полете по более легкой сети, и они выходят из строя.

Ответ 2

Я тоже ищу ожидаемого среднего. Я обнаружил, что с прямой связи (с ПК на ПК) потеря пакетов происходит очень редко, хотя это определенно происходит. Доступность была примерно 99,9% при пакетах 1 кБ при 50 Гц.

Я видел переупорядочение только путем отправки и получения по одному и тому же сетевому интерфейсу. Я пришел к выводу, что это происходит потому, что каждый пакет обрабатывается асинхронно, так что есть вероятность того, что только что полученный пакет будет обработан до того, как пакеты будут получены до вновь принятого.

Ответ 3

В моей базовой коммутируемой локальной сети с гигабитной сетью я получаю нулевую потерю пакетов даже на 50 000 пакетов в секунду, используя FreeBSD, Solaris или Linux.

Однако Windows является чем-то особенным, я легко вижу потерю пакетов на точно таком же аппаратном обеспечении на низких скоростях, например, 10 000 в секунду. Это происходит главным образом из-за переполнения буфера между WinSock и NIC, если вы управляете пакетами быстрее, чем теряете больше, если вы выделяете пакеты, которые вы теряете меньше.

Нет волшебного числа, моя ситуация, вероятно, хуже из-за того, что Broadcom имеет ужасные драйверы Windows.

Вы можете легко увидеть проблемы с упорядочением пакетов, однако почти всегда переключаются только последние два пакета. Это артефакт работы коммутаторов.

Интересно, что вы не упомянули в Wi-Fi, радиосигналы сильно подвержены помехам и условиям окружающей среды.