11

Укороченная версия

Моя домашняя сеть является чисто гигабитной с устройствами, которые поддерживают джамбо-кадры размером не менее ~ 9000 байт. Увеличение значения параметра MTU jumbo frame в Synology до 6000 (байт) повышает производительность (запись 810 Мбит / с и чтение 945 Мбит / с). Установка значения в 7000 снижает только скорость чтения (которая уменьшается до 4 Мбит / с); производительность записи остается быстрой.

Это неожиданно, потому что большинство проблем с большими кадрами не имеют направленности, связанной с ними, и, как правило, все или ничего (пакеты отбрасываются на коммутаторе независимо от того, откуда они пришли). Похоже, что никакой фрагментации IP не происходит вообще, но уровень TCP действительно несчастен. Что может вызвать это асимметричное / нестабильное поведение и как я могу исправить его, чтобы поддерживать полный MTU 9000 байт, который должно поддерживать все мое оборудование?


Длинная версия

Это мои отредактированные заметки, сделанные при попытке выяснить это.

клиент

Контроллер семейства Realtek PCIe GBE RTL8167
Jumbo Frame: 9 КБ MTU

$ netsh interface ipv4 show subinterfaces
   MTU  MediaSenseState   Bytes In  Bytes Out  Interface
------  ---------------  ---------  ---------  -------------
  9198                1   32501506   11275394  Local Area Connection

(кажется, 9198 не включает 14-байтовый заголовок Ethernet)

$ ping -l 1500 -f 192.168.1.84

(наблюдается при использовании Wireshark на клиенте; все размеры указаны в байтовом размере)
[9213, ∞] не отправлено хостом (потребуется фрагментация)
[9019, 9212] отправлено, но ответа нет
[9015, 9018] фрагментированный IP-ответ
[42, 9014] нефрагментированный IP
[0, 41] (невозможно генерировать, так как заголовки eth+IP+ICMP = 14+20+8 = 42 байта)

Маршрутизатор (коммутатор)

Asus RT-AC68U - Прошивка 3.0.0.4.378_4585
Включить Jumbo Frame: "Включить"
Не могу понять, какой размер фрейма действительно поддерживает, по крайней мере, 9000

Он фрагментирует запросы пинга от Клиента прямо на 1514 байт (но пинг маршрутизатора может вызывать его поведение маршрутизатора WAN вместо его поведения коммутатора LAN?)

Неуправляемый коммутатор

TP-LINK TL-SG1008D
Jumbo Frames (технические характеристики): 9 КБ (на их сайте написано 15 КБ, но это выглядит как другое устройство)

сервер

Synology DS1815+ - DSM 5.2-5565, обновление 1
Jumbo Frame: 9000

Пакеты для чтения файлов из Synology в клиент
Размер: большинство - 9014 байт (в обоих направлениях)
Флаги IP: не фрагментируйте
Обнаружен Wireshark: ложная повторная передача TCP, предыдущий сегмент TCP не перехвачен, нестандартный TCP, быстрая повторная передача TCP и обычные (9014 байт) пакеты
Длина чтения ответа ответа чтения пакетов SMB2-over-NetBIOS: 65 536 (~ 8 сегментов TCP)

$ ifconfig
bond0     Link encap:Ethernet  HWaddr --:FF
          inet addr:192.168.1.84  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addrs: --/64 Scope:Link, --/64 Scope:Global, --/64 Scope:Global
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:9000  Metric:1
          RX packets:lots errors:85 dropped:0 overruns:0 frame:85
          TX packets:lots errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:237 GiB  TX bytes:117 GiB

eth2      Link encap:Ethernet  HWaddr --:00
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:9000  Metric:1
          RX packets:lots errors:19 dropped:0 overruns:0 frame:19
          TX packets:lots errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:236 GiB  TX bytes:83 GiB

eth3      Link encap:Ethernet  HWaddr --FF
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:9000  Metric:1
          RX packets:lots errors:66 dropped:0 overruns:0 frame:66
          TX packets:lots errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1 GiB  TX bytes:33 GiB

eth2 и eth3 связаны с помощью адаптивной балансировки нагрузки (без поддержки коммутатора)

$ ping -c 5 -s 1500 192.168.1.82

(наблюдается при использовании Wireshark на клиенте; все размеры указаны в байтовом размере)
[9019, ∞] запрос отправлен, ответ отправлен, ответ не получен
[9015, 9018] фрагментированный IP-запрос (вероятно, фрагментированный Synology, у ping busybox нет опции без фрагмента, поэтому трудно сказать)
[60, 9014] нефрагментированный IP
[0, 59] (невозможно сгенерировать, поскольку пинг busybox помещает как минимум 18 байтов плюс 42-байтовые заголовки)

Разные данные

  • Изменение клиентского MTU до 8 КБ не помогло
  • Скорость чтения Сервера падает с обрыва при изменении MTU Сервера с 6000 (отлично, 945 Мбит / с) до 7000 (ужасно, 4 Мбит / с)
  • Скорость записи Сервера практически не изменяется при всех настройках MTU Сервера (всегда между 700 и 825 Мбит / с)
  • Synology имеет связанную сеть (2 из 4 портов)
  • Все кабели Cat6 или Cat5e

0