| |||||||||||||||||||||||||||||||||||||||||||||
サイト内検索
カスタム検索
|
Nagle アルゴリズムと遅延 ACKパケットの解析をする上で、TCP/IP の基礎知識が必要であることはもちろんです。 また、Nagle アルゴリズムと遅延 ACK、及びそれらによる (有名な) 問題を理解していないと、 パケットを読む上で説明できない事柄が増えてしまいます。 ここでは、Nagle アルゴリズムと遅延 ACK をとりあげます。 Nagle アルゴリズムNagle アルゴリズム は 1984 年に John Nagle 氏が提案したアルゴリズムで、 RFC 896 に既定されています。このアルゴリズムにより、 ネットワークの輻輳を引き起こす、タイニーグラムの氾濫を防ぎます。 Nagle アルゴリズムは、データをできるだけまとめて送信することにより、 通信の効率を向上させるためのアルゴリズムです。
ルールは次の通り: TCP の送信バッファ中に送達が確認されていないデータがある場合、TCP はバッファ中の 全てのデータの送達が確認されるか、MSS (Max Segment Size) 分のデータを送信できるまで、 セグメントの転送を遅延させる。 尚、BSD 系の実装では最大遅延は 200ms です。 遅延 ACK
紛らわしいので整理すると...
相互作用として問題になりうる点としては、例えば次のような例が考えられます。 要求が二つに分割されサーバーがそれに応答する場合…要求1 をサーバーが受け取った時点ではサーバーは応答データがない (要求が途中だから)。しかし、遅延 ACK により 200ms 程度応答が遅れる。一方、クライアント側は ACK が来ないから Nagle アルゴリズムにより要求 2 (論理的なリクエストの続き) を送信しない。 これによりパフォーマンスが低下する。 |
||||||||||||||||||||||||||||||||||||||||||||
|
© 2008-2010 小山圭介 All Rights Reserved.
|
|||||||||||||||||||||||||||||||||||||||||||||