Где отсутствуют пакеты TCP?

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

Удивительно то, что, хотя приложение на основе tcp может отправлять несколько пакетов (наблюдается по возвращаемому значению write ()), приемник пакетов tcp их никогда не получает. Зачем? Это потому, что tcp-пакеты arenot наконец отправлены сетевой картой? или пакеты tcp фактически удаляются маршрутизаторами?

Благодаря, Стив

0
nl ja de

2 ответы

Во-первых, возвращаемое значение write() не является индикатором того, были ли отправлены пакеты. Он просто указывает, что данные были буферизованы.

Во-вторых, если вы насыщаете сеть UDP-пакетами, будет много потерь пакетов, а адаптивная адаптация TCP будет адаптироваться к этому, отправив пакеты медленнее. Если потеря пакетов становится слишком высокой, TCP может вообще полностью прекратиться. Решение не должно насыщать сеть UDP-пакетами.

1
добавлено

Это упрощенный ответ. Есть много статей, которые вы можете прочитать.

UDP - это слой, построенный на IP. Тоже для TCP. Сетевая карта просто отправляет IP-пакеты. Вы можете искать различные структуры для этих пакетов.

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

Маршрутизаторы могут бесплатно отбрасывать пакеты. Это может произойти, когда сеть перегружена, сетевые соединения отключены или IP-пакет поврежден.

Поэтому, чтобы ответить на ваш вопрос, их предпочтение от UDP или IP не передается от одного конца к другому.

0
добавлено
Linux Help
Linux Help
2 686 участник(ов)

Правила: https://telegra.ph/Pravila-Linux-Help-10-15

Linux Security
Linux Security
652 участник(ов)

Данная группа принципиально про безопасность и в частности про безопасность Linux. Прочие темы просим обсуждать в профильных чатах.

Linux Gaming RUS
Linux Gaming RUS
28 участник(ов)

Русскоязычный чатик, посвящённый играм на различных дистрибутивах Linux, а также wine, proton Arch Linux RU @ArchLinuxChatRU Gnome RU @gnome_ru