イーサネットはどこにでもあり、何万ものメーカーがイーサネットをサポートする機器を製造しています。 ただし、これらのほぼすべてのデバイスには XNUMX つの共通点があります。
$ ip l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
MTU (最大送信単位) は、単一のデータ パケットの最大サイズを定義します。 一般に、LAN 上のデバイスとメッセージを交換する場合、MTU は 1500 バイト程度になり、インターネットのほぼ全体も 1500 バイトで動作します。ただし、これは、これらの通信テクノロジがより大きなパケット サイズを送信できないことを意味するものではありません。 。
たとえば、802.11 (一般的に WiFi として知られている) の MTU は 2304 バイトで、ネットワークで FDDI を使用している場合、MTU は 4352 バイトです。 イーサネット自体には「ジャイアント フレーム」という概念があり、MTU には最大 9000 バイトのサイズを割り当てることができます (NIC、スイッチ、ルーターによるこのモードのサポートあり)。
ただし、インターネットではこれは特に必要ありません。 インターネットの主要なバックボーンは主にイーサネット接続で構成されているため、他のデバイスでのパケットの断片化を避けるために、事実上の非公式の最大パケット サイズは 1500B に設定されています。
1500 という数字自体が奇妙です。たとえば、コンピューターの世界の定数は 1500 の累乗に基づいていると思われます。 では、XNUMXB はどこから来たのでしょうか、そしてなぜ今でもそれを使用しているのでしょうか?
マジックナンバー
イーサネットの世界への最初の大きな進歩は、標準の形で実現されました。
当時は競合するプロトコルが数多く存在し、ハードウェアには限界があったため、このフォーマットの作成者は、パケット バッファのメモリ要件がマジック ナンバー 1500 の出現に役割を果たしたことを認めています。
後から考えると、最大値を大きくする方がより良い解決策だったかもしれないことは明らかですが、もし早い段階で NIC のコストを引き上げていたら、イーサネットの普及は妨げられていたでしょう。
ただし、これがすべてではありません。 で
セグメント内のメッセージを送信するときに (非常にビジーな場合もあります) 遅延が大きくなりすぎず、同時にパケット数が増えすぎないような数値を選択する必要がありました。
どうやら、当時のエンジニアは最も「安全な」オプションとして 1500 B (約 12000 ビット) という数字を選択したようです。
それ以来、他のさまざまなメッセージング システムが登場しては消えていきましたが、その中でイーサネットの MTU 値が最も低い 1500 バイトでした。ネットワーク内で最小 MTU 値を超えると、パケットの断片化が発生するか、PMTUD [最大パケット サイズの検出] が発生することになります。選択したパス用]。 どちらのオプションにも、それぞれ特有の問題がありました。 場合によっては、大手 OS メーカーが MTU 値をさらに低くすることもありました。
効率係数
現在、インターネットの MTU は 1500B に制限されており、これは主に従来の遅延メトリクスとハードウェアの制限が原因であることがわかっています。 これはインターネットの効率にどの程度影響しますか?
大規模なインターネット トラフィック交換ポイント AMS-IX からのデータを見ると、送信パケットの少なくとも 20% に最大サイズがあることがわかります。 LAN トラフィックの合計を確認することもできます。
両方のグラフを組み合わせると、次のような結果が得られます (各パケット サイズ範囲のトラフィック推定値)。
または、これらすべてのヘッダーとその他のサービス情報のトラフィックを見ると、スケールが異なる同じグラフが得られます。
帯域幅のかなりの部分が、最大サイズ クラスのパケットのヘッダーに費やされます。 ピークトラフィック時の最高のオーバーヘッドは 246 GB/秒であるため、そのようなオプションがまだ存在していたときにすべてを「ジャンボ フレーム」に切り替えていたとしても、このオーバーヘッドはわずか約 41 GB/秒になると推測できます。
しかし今日、インターネットの大部分では列車はすでに出発したと思います。 また、一部のプロバイダーは MTU 9000 で動作しますが、ほとんどのプロバイダーはこれをサポートしておらず、インターネット上で何かをグローバルに変更しようとすることは、非常に困難であることが何度も証明されています。
出所: habr.com