ヘッドオブラインブロッキング


Head-of-line_blocking
コンピュータネットワークのヘッドオブラインブロッキング(HOLブロッキング)は、パケットのラインが最初のパケットによってキューに保持されたときに発生するパフォーマンス制限現象です。例としては、入力バッファリングされたネットワークスイッチ、順不同の配信、 HTTPパイプラインでの複数のリクエストなどが

コンテンツ
1 ネットワークスイッチ
2 故障した配達
3 HTTPで
4 も参照してください
5 参考文献

ネットワークスイッチ
image"
  ヘッドオブラインブロッキングの例:1番目と3番目の入力フローは、同じ出力インターフェイスにパケットを送信するために競合しています。この場合、スイッチングファブリックが3番目の入力フローからパケットを転送することを決定した場合、1番目の入力フローを同じタイムスロットで処理することはできません。最初の入力フローは、処理に使用できる出力インターフェイス3のパケットをブロックしていることに注意して
スイッチは、バッファリングされた入力ポート、スイッチファブリック、およびバッファリングされた出力ポートで構成されます。先入れ先出し(FIFO)入力バッファが使用されている場合、転送に使用できるのは最も古いパケットのみです。宛先出力がビジーであるために最も古いパケットを転送できない場合、より最近の到着を転送することはできません。出力の競合がある場合、出力がビジーである可能性が
HOLブロッキングがないと、新しい到着は、スタックした最も古いパケットの周りでそれぞれの宛先に転送される可能性がHOLブロッキングは、入力バッファシステムでパフォーマンスを低下させる影響をもたらす可能性が
この現象により、スイッチのスループットが制限されます。FIFO入力バッファの場合、均一に分散された宛先への固定サイズのセルの単純なモデルでは、リンクの数が多くなるため、スループットが全体の58.6%に制限されます。
この制限を克服する1つの方法は、仮想出力キューを使用することです。
HOLブロッキングが発生する可能性があるのは、入力バッファリングを備えたスイッチのみです。十分な内部帯域幅があれば、入力バッファリングは不要です。すべてのバッファリングは出力で処理され、HOLブロッキングは回避されます。この入力バッファなしのアーキテクチャは、中小規模のイーサネットスイッチで一般的です。

故障した配達
順不同の配信は、シーケンスされたパケットが順不同で到着したときに発生します。これは、パケットがたどるパスが異なるため、またはパケットがドロップされて再送されるために発生する可能性がHOLブロッキングは、パケットの並べ替えを大幅に増やす可能性が
多数のピア間で損失のあるネットワークを介してメッセージを確実にブロードキャストすることは難しい問題です。アトミックブロードキャストアルゴリズムは集中型サーバーの単一障害点の問題を解決しますが、これらのアルゴリズムはヘッドオブラインブロッキングの問題を引き起こします。ゴシッププロトコルを使用するランダム化アルゴリズムであるバイモーダルマルチキャストアルゴリズムは、一部のメッセージを順不同で受信できるようにすることで、行頭ブロッキングを回避します。

HTTPで
HTTP / 1.1でのHOLブロッキングの1つの形式は、ブラウザーで許可されている並列要求の数が使い果たされ、後続の要求が前の要求が完了するのを待つ必要がある場合です。HTTP / 2は、リクエストの多重化を通じてこの問題に対処します。これにより、アプリケーション層でのHOLブロッキングが排除されますが、HOLは依然としてトランスポート(TCP)層に存在します。 HTTP / 3は、TCPの代わりにQUICを使用して、トランスポート層のHOLブロッキングを削除します。

も参照してくださいBufferbloat FIFO
HTTPパイプライン
ネットワークスケジューラ
パイプラインストール

参考文献
^ M.カロ; M. Hluchyj; S.モーガン(1987年12月)。「スペースディビジョンパケットスイッチでの入力キューイングと出力キューイング」。通信に関するIEEEトランザクション。35(12):1347–1356。土井:10.1109/TCOM.1987.1096719。
^ ニックマッケオン; Adisak Mekkittikul ; ヴェンカット・アナンタラム; Jean Walrand(1999年8月)。「入力キュースイッチで100%のスループットを達成する」(PDF)。通信に関するIEEEトランザクション。47(8):1260–1267。CiteSeerX10.1.1.18.7529。_ 土井:10.1109/26.780463。
  ^ ジョンCRベネット; クレイグパートリッジ; ニコラス・シェクトマン(1999年12月)。「パケットの並べ替えは、病的なネットワークの動作ではありません」。ネットワーク上のIEEE/ACMトランザクション。7(6):789–798。CiteSeerX10.1.1.461.7629。_ 土井:10.1109/90.811445。S2CID26573611。_    ^ ベネット、JCR; パートリッジ、C .; シェクトマン、N。。サリスキー、ダン(編)。「パケットの並べ替えは病理学的ネットワーク動作ではありません」(PDF)。SCNリサーチ。2017年8月20日にオリジナル(PDF)からアーカイブされました。
^ Defago、X .; シパー; A.、Urban、P。(2004)。「全順序ブロードキャストおよびマルチキャストアルゴリズム:分類法と調査」(PDF)。ACM Computing Surveys 36(4):372-421。土井:10.1145/1041680.1041682。S2CID207155989。_
  ^ タイラーマクマレン(2015)。「おそらく動作します」。ACMキュー。
^ Grigorik、Ilya。「HTTP2.0でWebを高速化する」。ACMキュー。11(10):40 . doi:10.1145/2542661.2555617。S2CID34623442 。_   ^ ハビエルガルザ。「HTTP/2はヘッドオブラインブロッキング(HOL)の問題をどのように解決しますか」。”