Коротка версія
Моя домашня мережа - це чистий гігабіт із пристроями, які підтримують джомбові кадри розміром не менше ~ 9000 байт. Підвищення налаштування фрейму MTU для синхронізу в Synology до 6000 (байт) збільшує продуктивність (запис 810 Мбіт / с і зчитування 945 Мбіт / с). Встановлення значення в 7000 знищує лише продуктивність читання (що знижується аж до 4 Мбіт / с); Виконання запису залишається швидким.
Це несподівано, тому що більшість проблем з кадром jumbo не мають спрямованості, пов'язаної з ними, і, як правило, всі або нічого (пакети скидаються на комутатор незалежно від того, звідки вони прийшли). Здається, взагалі не відбувається жодної фрагментації IP, але рівень TCP насправді нещасний. Що може спричинити таку асиметричну / невмілу поведінку і як я можу виправити це, щоб підтримувати повний 9000 байт MTU, що все моє обладнання повинно підтримувати?
Довга версія
Це мої відредаговані замітки, зроблені під час спроби з'ясувати це.
Клієнт
Сімейний контролер Realtek PCIe GBE RTL8167
Рамка Jumbo: 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: "Увімкнути"
Не можу зрозуміти, який розмір рамки jumbo він насправді підтримує, здається, щонайменше 9000
Він фрагментує запити від ping від клієнта прямо на рівні 1514 байт (але пінггінг маршрутизатора може викликати його поведінку маршрутизатора WAN замість поведінки комутатора локальної мережі?)
Некерований комутатор
TP-LINK TL-SG1008D
Jumbo Frames (специфікаційні листи): 9 КБ (їхній веб-сайт говорить про 15 КБ, але це схоже на інший пристрій)
Сервер
Synology DS1815 + - DSM 5.2-5565 Оновлення 1
рамка Jumbo: 9000
Файли зчитування файлів від Synology до клієнтського
розміру: більшість - це 9014 байт (в обох напрямках)
IP-прапори: Не фрагмент
виявлено Wireshark: TCP Spurious Retransmission, TCP Попередній сегмент не захоплений, TCP Out-Of-Order, TCP Fast Retransmission, і нормальні (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, request] запит надіслано, відповідь надіслана, відповідь не отримано
[9015, 9018] фрагментований IP-запит (ймовірно, фрагментований Synology, pіnboxbox ping не має опція без фрагментів, тому важко сказати)
[60, 9014] нефрагментований IP
[0, 59]? (не вдається генерувати, оскільки ping зайнятий ящик ставить мінімум 18 байт плюс 42 байт заголовки)
Різні дані
- Зміна MTU клієнта до 8 КБ не допомогло
- Швидкість зчитування Сервера падає з обриву при зміні MTU сервера з 6000 (чудово, 945Mbps) на 7000 (жахливо, 4Mbps)
- Швидкість запису сервера в основному не впливає на всі налаштування MTU сервера (завжди від 700 до 825 Мбіт / с)
- Synology має зв’язану мережу (2 з 4 портів)
- Кабелі всі Cat6 або Cat5e