プロが教える店舗&オフィスのセキュリティ対策術

マスタリングtcp/ipという本で勉強しております。
遅延確認応答において、なぜ2パケット受信してから応答を返せば受信バッファが空くのかわかりません。


> ■遅延確認応答
> データを受信したホストがすぐに確認応答をすると小さなウィンドウを返す可能性があります。
> 受信したばかりのデータで受信バッファがいっぱいになっているからです。


この問題を回避するため、実機では2パケット受信するか0.2秒程度待ってから確認応答を出すようになっているようですが、
2パケット目を受信して応答を返しても受信バッファはいっぱいになったままではないでしょうか?
1パケット分ACKを遅延させることによって何が変わるのでしょうか?

# ACKの数が減ってネットワーク効率が良くなる点は理解しております。

A 回答 (4件)

aha51 補足です


  >> パケット2つを受け取る時間>>>受信バッファを処理し空きを作る時間

     とするならば理解できるのですが・・・まったくわかりません。


パケットの時間は処理時間に比べると、気の遠くなるような長い時間です。

これ以上は実機にロジアナをつないで検証してください。
    • good
    • 0
この回答へのお礼

連続でパケットを2つ受け取る場合でもバッファ処理時間の方が速い、もしくはそのような確率は低いので問題にならないのでしょうか。

入門本としてはそれなりの評価があるこの本にも、Googleで検索しても誰も言及すらしてないので、言わずともわかって当然な事なのでしょうか。自信がなくなります。

お礼日時:2011/04/13 06:15

acha51 補足です



1.ACKを読んだ次のパケットを読み取った後、受信バッファーをクリアする。

2.リングカウンター方式として一定数、たとえば0から31(DEC)をまわし
  31の次は0に戻す、を繰り返し、ACKを読んだ次のパケットを読み取る
  受信バッファーは一定値をぐるぐる回っている。

でしょうかね

この回答への補足

パケット2つを受け取る時間>>>受信バッファを処理し空きを作る時間

とするならば理解できるのですが・・・まったくわかりません。

補足日時:2011/03/19 01:57
    • good
    • 0

acha51補足です


受信は不要データは読み捨てればよくバッファには最新のデータのみです。

この回答への補足

1パケット目受信
2パケット目受信(ACKを返す)
3パケット目受信
4パケット目受信(ACKを返す)

1パケットおきにACKを返しても受信バッファはあふれたままではないでしょうか。
まったくわかりません・・・。

補足日時:2011/03/09 10:18
    • good
    • 0

2パケット目というのは受診側が確実に待ち受けになったと見るからでしょう。


実機で0.2秒は回線速度、受信側の処理能力や必要なタイミングを計って決めますが
おおむね0.2としているのでしょう、機械ものが相手のときは、もっと待つことがあります。

この回答への補足

うーん、よくわかりません・・・
1パケット受信ごとにACKを返そうと、2パケット受信ごとに返そうと受信バッファは「パケットを受信したばかりでいっぱい」ではないのでしょうか。

補足日時:2011/02/25 21:48
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!