2

У меня есть два компьютера A и B, между ними есть TCP-соединение. Я использую TCPdump для захвата пакетов.

Я заметил, что когда A отправляет много пакетов TCP на B, каждый IP-пакет составляет 1514 байтов.

В B он получает IP-пакеты размером 2962. Затем я проверил IPID. Например, если A отправляет 4 TCP-пакета с IPID, 1000, 1001, 1002, 1003, каждый из которых составляет 1514 байтов. Тогда B получает только 2 TCP-пакета с IPID 1000, 1002, каждый из которых составляет 2962 байта.

Означает ли это, что LAN будет собирать 2 IP-пакета в 1 IP-пакет? Как это происходит? Какое устройство делает сборку?

1

1 ответ1

2

Есть два возможных ответа:

  • Скорее всего, это Большая Разгрузка Приёма (Агрегация Приёма), когда сетевой адаптер или драйвер объединяют пакеты так, чтобы было меньше прерываний, меньше DMA/ копий и меньше издержек ОС
  • гораздо менее вероятно, что промежуточное устройство (брандмауэр, IPS или прокси) проксирует и поддерживает большие кадры на последнем прыжке

Ответ заключается в том, что пакеты, скорее всего, объединяются вашей сетевой картой, это происходит до того, как данные передаются в стек, поэтому реальные (проводные) кадры не видны Wireshark.

Узнайте больше о LRO здесь:

И Generic Receive Offload (GRO), который распространяется на другие протоколы:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .