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

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

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

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

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

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



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

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

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

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

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