短縮版
私のホームネットワークは、すべてが少なくとも9000バイトまでのジャンボフレームをサポートするデバイスを備えた純粋なギガビットです。SynologyのMTUジャンボフレーム設定を6000(バイト)に増やすと、パフォーマンスが向上します(書き込み810Mbps、読み取り945Mbps)。値を7000に設定すると、読み取りパフォーマンスのみが破壊されます(これにより、4Mbpsまでずっと低下します)。書き込みパフォーマンスは高速のままです。
ほとんどのジャンボフレームの問題には方向性が関連付けられておらず、通常は全部か何もないため(パケットがどこから来たかに関係なく、スイッチでドロップされます)、これは予期しないことです。そこではありません任意のすべてで起こってIPフラグメンテーションが、TCP層は本当に不幸です。この非対称/不安定な動作の原因は何ですか?すべての機器がサポートするはずの9000バイトMTU全体をサポートするように修正するにはどうすればよいですか?
ロングバージョン
これらは、これを理解しようとしているときに取った私の編集したメモです。
クライアント
Realtek PCIe GBEファミリーコントローラーRTL8167
ジャンボフレーム:9KB MTU
$ netsh interface ipv4 show subinterfaces
MTU MediaSenseState Bytes In Bytes Out Interface
------ --------------- --------- --------- -------------
9198 1 32501506 11275394 Local Area Connection
(9198には14バイトのイーサネットヘッダーが含まれていないようです)
$ 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
ジャンボフレームを有効にする:「有効」
実際にサポートしているジャンボフレームのサイズを判別できません。少なくとも9000のようです
クライアントからのping要求を1514バイトで断片化します(ただし、ルーターへのpingにより、LANスイッチの動作ではなく、WANルーターの動作がトリガーされる可能性があります)。
管理されていないスイッチ
TP-LINK TL-SG1008D
ジャンボフレーム(スペックシート):9KB(ウェブサイトには15KBとありますが、別のデバイスのように見えます)
サーバ
Synology DS1815 +-DSM 5.2-5565 Update 1
ジャンボフレーム:9000
クライアントへのSynologyからのファイルの読み取りパケット
サイズ:大部分が(両方向で)9014バイト
IPフラグます。Doフラグメントではない
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によって断片化され、busybox pingにはno-fragmentオプションなので
わかりにくい)[60、9014]フラグメント化されていないIP
[ 0、59 ]?(busybox pingが少なくとも18バイトと42バイトのヘッダーを置くため、生成できません)
その他のデータ
- クライアントMTUを8KBに変更しても解決しませんでした
- サーバーのMTUを6000(素晴らしい、945Mbps)から7000(ひどい、4Mbps)に変更すると、サーバーの読み取り速度が崖から落ちる
- サーバーの書き込み速度は、基本的にすべてのサーバーMTU設定で影響を受けません(常に700から825 Mbpsの間)。
- Synologyには結合ネットワークがあります(4つのポートのうち2つ)
- ケーブルはすべてCat6またはCat5eです。