関連するすべてのインターフェイス(ルータおよびブリッジ)がLRO/TSOのテクニックをサポートする必要があるのはなぜですか?TCP-LRO/TSOのテクニック
答えて
ルーターはありません。橋があります。
ネットワークに外部接続されている外部ルーター、ハブ、スイッチ、またはその他のものはTSOの影響を見ることはできません。TSOのデバイス内のインターフェイスのみが影響を受けます。
ルーターは、イーサネットケーブル、光ファイバーケーブル、ワイヤレス通信などでネットワークに接続された外部デバイスです。これらの通信メディアは、イーサネットの場合は803.2、ワイヤレスの場合は803.11などの国際標準に準拠していますハードウェアデバイスは、通信方法について非常に厳しい規則を持っています。
ブリッジは内部ソフトウェア構成であり、お使いのOSに固有のものです。
803.2(イーサネット)とLinuxホストを例に挙げてみましょう。
アプリケーションは、ソケットの作成を要求してから、大きなデータチャンクをソケットにプッシュします。 Linuxカーネルは、このデータをどのインタフェースで転送すべきかを決定します。カーネルは、このインタフェースのドライバを調べてその能力を判断します。インタフェースがTSO対応の場合、カーネルは単一の "テンプレート"ヘッダと膨大なデータ(1パケット以上)を持つsk_buffをインタフェースに渡しますドライバ。
のストレート最初のハードウェアのNICに標準インターフェースを考えてみましょう:
一部のインターフェイスが持っている偽のTSO(彼らセグメントドライバにおけるパケット)と、いくつかは、真のTSO(テンプレートヘッダとデータが渡されています最小限の変更でハードウェア)。この時点で、ドライバまたはNICハードウェアは、この大量のデータを複数の標準準拠の803.2イーサネットフレームに変換します。これは、ルータ、ハブ、スイッチ、モデム、または他のホストなどの外部デバイスワイヤー上に表示されます。
今度は、ソフトウェアブリッジの背後にあるいくつかのNICを考えてみましょう:
カーネルは、低レベルで各NICを認識しているものの、ネットワークスタックは、花嫁のだけ認識している、すべてのためだけの機能基盤となるNICはブリッジに渡されなければなりません。 sk_buffがブリッジに渡された場合、ブリッジ内のすべてのインタフェースは同じsk_buffを受け取ります。私たちはカーネルがもう一度大きなTSO sk_buffをブリッジに渡したと仮定します。基礎となるインターフェースのどれかがTSOをサポートしていない場合、そのパケットは問題のハードウェアNICによって破棄される可能性が非常に高いでしょう。要約すると
:
最悪のシナリオは、ブリッジは、繰り返し壊れたインターフェイスで同じデータチャンクを送信するために再試行されますされ、アプリケーションがあきらめることを決定するまで、ブリッジ全体がロックされます。最良の場合のシナリオでは、非TSO NICは単に死んでいるように見えます。つまり、NICがドライバに安全でないコードを持っていると、システム全体を停止させる可能性のあるセグメンテーションフォルトが発生する可能性があります。
- 1. ニュースフィードのテクニック
- 2. スクロールのテクニック
- 3. JPEGエンコーディングのテクニック
- 4. モバイルジオロケーションへのテクニック
- 5. C#のエイリアシングのテクニック?
- 6. AndroidのJPanelのテクニック
- 7. PHPの解析テクニック
- 8. javascriptコードグループ化のテクニック
- 9. コード生成のテクニック
- 10. フェデレーション/ SSOテクニック
- 11. Rails - relative paths - テクニック
- 12. スライダの高さのテクニック
- 13. タイマーの反チートのテクニック
- 14. テクニック/スロー逆コンパイルに
- 15. 監査証跡テクニック
- 16. sqliteデータベースの最適化テクニック
- 17. 分離とパターンマッチングのテクニック
- 18. graphviz 2.28 Voronoiベースのテクニック
- 19. PHPの軽量fopenテクニック
- 20. scipy.integrate.quadを使用するテクニック
- 21. node.jsキャッシュ無効化テクニック
- 22. 自動コード最適化テクニック
- 23. 動的ロギングフレームワークまたはテクニック
- 24. コードフローを疎外するテクニック
- 25. 彗星のためのクライアントサイドのテクニック
- 26. ギャツビーの画像のぼかしのテクニック
- 27. jqueryの変更イベントとaureliaのテクニック
- 28. リファクタリングのためのツールとテクニック
- 29. JavascriptのOOPと継承のテクニック
- 30. 予期せぬmysqlクエリのトラブルシューティングのテクニック
私はそれが必要であるかどうかわかりません。そのような要件への参照を提供できますか? –