2

У меня есть маршрутизатор Wi-Fi потребительского уровня, на котором размещена локальная сеть. Маршрутизатор подключен к Интернету через сеть кампуса (т. Е. Кабель Ethernet соединяет порт WAN с разъемом Ethernet кампуса). Я использую tcpdump на интерфейсах WLAN и WAN маршрутизатора для захвата трафика, генерируемого устройствами, подключенными к маршрутизатору.

Меня озадачивает то, что я вижу кадры, которые значительно длиннее, чем предел, определенный MTU, плюс размер заголовка уровня 2. Сначала я подумал, что это должно быть объяснено поддержкой кампусной сетью гигантских кадров Ethernet, но они (как правило) ограничены MTU 9 000 байт, и я вижу некоторые кадры длиной почти 13 000 байт.

Затем я подумал, что, поскольку устройства подключены по Wi-Fi, они не ограничены MTU Ethernet, а скорее MTU 802.11, но этот размер составляет около 2304 байта, поэтому кадр 13 КБ все еще слишком велик. Примечание: кадры отображаются в Wireshark как кадры Ethernet, но это, по-видимому, объясняется тем, что кадры 802.11 преобразуются в "поддельные" кадры Ethernet до их доставки в сетевой стек ОС, как описано здесь:

Адаптеры 802.11 часто преобразуют пакеты данных 802.11 в поддельные пакеты Ethernet перед их передачей на хост, и, даже если они этого не делают, драйверы для адаптеров часто делают это перед подачей пакетов в сетевой стек операционной системы и механизм захвата пакетов.

Некоторые интересные наблюдения, которые могут помочь вам пролить свет на это:

  • Для трассировки, захваченной на интерфейсе WLAN маршрутизатора, это только пакеты, исходящие от локального устройства и идущие к узлу Интернета, которые превышают MTU. Все входящие пакеты (Интернет-хост на локальное устройство) имеют длину 1514 или меньше.
  • Для трассировки, захваченной на интерфейсе WAN маршрутизатора, только входящий трафик (Интернет-хост к маршрутизатору) превышает Ethernet MTU.
  • Можно действительно "сопоставить" большой кадр (который превышает MTU), захваченный на одной стороне маршрутизатора, с несколькими кадрами, которые имеют размер MTU или меньше на другой стороне маршрутизатора, путем перекрестной ссылки на две трассы.
  • Это весь трафик TLS (но это не должно иметь никакого значения, поскольку это ограничение уровня 2).

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

[...] вы могли бы видеть, что TCP отправляет большие сегменты, чем MTU. Однако пакеты на проводе будут иметь размер только MTU. Вы можете убедиться в этом, захватив сетевое устройство (коммутатор) и т.д.

Я действительно выполняю захват на сетевом устройстве (маршрутизаторе), но все еще вижу большие кадры. Тем не менее, маршрутизатор работает с LEDE/OpenWrt, что, по-моему, делает его "усовершенствованным" сетевым устройством в большей степени, чем реальный хост, чем сетевое устройство ...?

Я прилагаю пример кадра, который превышает MTU. Обратите внимание, что этот кадр был захвачен на интерфейсе WAN маршрутизатора (eth0). Это просто результат TSO/GSO, или происходит что-то еще, о чем я не знаю? Кроме того, TSO/GSO работает в обоих направлениях или это относится только к исходящим пакетам? Если последнее имеет место, то TSO/GSO не может быть объяснением, так как пример пакета является входящим с точки зрения маршрутизатора.

Обновление: отключение TSO/GSO на интерфейсах WAN и WLAN маршрутизатора ничего не изменило; большие кадры все еще присутствуют при повторном запуске эксперимента.

Пример кадра, который превышает MTU

1 ответ1

3

Это только ваш маршрутизатор делает LRO (или, может быть, GRO).

Это не TSO/GSO, потому что вы видите его только на пакетах, полученных вашим маршрутизатором, а не на тех, которые он передает.

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