web-dev-qa-db-ja.com

ジャンボフレームがレイテンシーを損なうのはなぜですか?

最近、ジャンボフレームについて読んでいて、いくつかの場所で混乱しました。私が理解している限り、衝突検出を有効にするには、フレームが宛先に到達している間もフレームを送信する必要があるため、「ストアアンドフォワード」ポイント(レイヤー2ブリッジ)間のイーサネットフレームサイズには下限があります。この制限は、ジャンボフレーム設定の影響を受けません。

ジャンボフレームは、フレームサイズの上限を1500B +ヘッダーからより大きな値(たとえば、4000Bまたは9000B +ヘッダー)に増やします。

フレームが大きいほどオーバーヘッドなどは低くなりますが、エラー訂正機能を超えて、転送中に単一のパケットが破損する可能性が高くなります。パケットが破損している場合は、再送信する必要があり(全体)、遅延が増加します。また、CPUに転送したり転送したりする前に完全に受信する必要があるため、パケットの送信には時間がかかります。ただし、遅延の影響を受けやすいアプリケーションは通常、UDPとカスタムパケットサイズを使用するため、ジャンボフレームを使用しないため(MTU検出を行わない限り)、フレームが短くなるため、ジャンボフレームの影響を受けないようにする必要があります。

ジャンボフレームを読んだことで、レイテンシーが測定可能な程度に損なわれることを考えると、何がこの影響を引き起こしているのか疑問に思い始めました。

5

ジャンボフレームがレイテンシーを損なう可能性があるいくつかの方法があります。あなたはすでにそれらのいくつかを知っていました:

  1. 9kBのジャンボフレームは、最大の標準イーサネットフレームである1500バイトの6倍の大きさです。したがって、同じビットエラーレートでは、ジャンボフレームでエラーが発生する可能性が6倍高くなり、エラーが発生した場合は、6倍大きいフレーム全体を再送信する必要があります。

  2. イーサネットフレームチェックシーケンス(FCS)のCRC32アルゴリズム用に選択された多項式は、最大1500バイトのフレームサイズに調整されます。フレームサイズが大きい場合は効果が低くなりますが、ジャンボフレームの人々は多項式を変更しませんでした。そのため、ジャンボフレームのビットエラーはMAC層で検出されない可能性が高く、後で上位層(UDP/IPの場合はアプリケーション層)で検出する必要があります。これにより、再送信までの待ち時間がさらに長くなります。が要求されます。

  3. 遅延の影響を受けやすいパケットがメディアにアクセスするためにフルサイズフレームの後ろにキューイングされることになった場合、そのフルサイズフレームが標準の1500バイトではなく9kBジャンボフレームであると、メディアに到達するのに6倍の時間がかかります。フレーム。

  4. 遅延に敏感なプロトコルがジャンボフレームを使用し、帯域幅効率のためにそれらを埋めようとした場合、フレームが構築される前に、フレームの最後のバイトが構築されるのを待っている間、フレームの最初のバイトの配信が大幅に遅延します。ワイヤーに送られます。おそらく最悪の例として、一部の高効率音声コーデックは2kbpsビットレートを使用できるため、1つの9kフレームは約36秒の音声になります。これが原因で、VoIP通話に36秒の遅延があると想像してください。もちろん、あなたが指摘したように、このように遅延に敏感なプロトコルを設計することは非常に愚かであり、これは言及するにはあまりにも明白に思えます。それでも、ジャンボフレームを使用するとレイテンシーが低下する可能性があります。

パスMTUディスカバリーはIP層のものであるため、TCP固有ではないことにも注意してください。したがって、UDPベースのプロトコルはPath MTUDiscoveryから「恩恵を受ける」ことができます。また、ローカルリンクのMTUを知るためにPMTUDを実行する必要がないことにも注意してください。したがって、送信ホストがジャンボフレームイーサネット上にある場合、PMTUDを実行しなくても、MTUは(最大)9000バイトに設定されます。 。あなたがあなたの質問を書いた方法についての何かが私にあなたがそれを知らないかもしれないと私に思わせました。

P.S.はい。FCSは最後に来てフレーム全体で計算されるため、フレームはさらに処理する前に完全に受信する必要があります。また、イーサネットではエラーはありません訂正、検出のみです。

6
Spiff

大きなフレームをエンドツーエンドでそのまま送信するには、パス上のすべてのコンポーネントがそのフレームサイズをサポートする必要があると思います。つまり、すべてのルーターとスイッチがそれをサポートする必要があります。そうしないと、このフレームがドロップされます。それがあなたの質問に答えることを願っています。

0
AKarpun