【選手権お題その2】この漫画の2コマ目を考えてください

RWINの事がよくわからないので質問させてもらいます。
MTUは1500でRWINを76800などに変更しても、ダウンロード最中のパケットを見てみると、データを2回受け取りACKを1回返す→またデータを2回受け取り・・・を繰り返しているみたいでここが意味不明なんです。
自分の考えだとウィンドウサイズを76800に変更しているので、データを51回ぐらい送って(1500*51<76800)そこで初めてACKを返してまたデータを51回ぐらい送って・・・の繰り返しだと思うのですが、恐らく俺の勘違いだと思うので誰かご教授願います(;´Д`)文章へたくそで申し訳ないです

A 回答 (2件)

> 11回一気に送って



「スロースタート」という言葉があるので、いきなり11回送ったりはしないと思います。最大転送速度で通信しているときはあるかもしれませんけどね。

> この時受信側の現在のRWINは16384-1454*2で13476だと思うんですが

ダウト。1454オクテットはPPPoEのMTUなので、TCPのデータサイズはそれよりも小さくなります。-32で最大1422オクテットのはず。なので、計算式は 16384 - 1422 * 2 になります。

> 16384でACKを返していて謎。

Ackを返すということは「受信したよ」ということを相手に伝えているだけです。RWINサイズは自分の余力を相手に伝えているだけなので、性能に余裕がないならともかく、そうでなければRWINは最大にして返したほうがよいですね。というわけでRWINを最大にして送っているのでしょう。
    • good
    • 0

RWINて「自分がどのくらい受信バッファを用意しているか」を相手に伝えるための情報なので、Ackを返すタイミングとは関係ないです。



Ackをいつ返すかはTCP/IPスタックの実装によったと思いますが(うろ覚え)、送信側は相手のRWINを超えてデータを先行送信することはありませんので、ちょこちょことAckを返して常にバッファをクリアしておかないと、Ackが滞った時に送信側の送信が止まってしまうことになります。

この回答への補足

回答ありがとうございます。素人の自分なりの解釈ですと
MTU1454,受信側のRwinを16384とするとまず最初に送信側は
16384÷1454=11でセグメントを11回一気に送って
受信側はデータが2個届き次第ACKを返す。(この時受信側の現在のRWINは16384-1454*2で13476だと思うんですが、Wiresharkでみると16384でACKを返していて謎。データ2個ごとにACKを返すのも謎)送信側は応答を確認し、ウィンドウをスライディングしていく
こんな流れだと思っているのですが、どうですかね?

補足日時:2007/07/24 00:18
    • good
    • 0

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


おすすめ情報