TCPのコネクション管理について 「マスタリングTCP/IP入門編」ではホストAからホストBへコネクション確立要求を送り、ホストBは確認応答と確立要求を同時に送っていますが、最後ホストBは確認応答と切断要求を同時に

TCPのコネクション管理について 「マスタリングTCP/IP入門編」ではホストAからホストBへコネクション確立要求を送り、ホストBは確認応答と確立要求を同時に送っていますが、最後ホストBは確認応答と切断要求を同時に 送ることはできないのでしょうか? できれば理由もお願いします。

ベストアンサー

0

http://www.7key.jp/nw/tcpip/tcp/connection.html#release 補足しますと、相手からFINを受け取ったからと言って、TCPは勝手にFINを送信するわけにはいきません。 TCPは、上位APがデータを送り終えたかどうか分からないので、上位APからの「ソケットのクローズ」を待たなければなりません。 なので、とりあえずACKだけ返しておいて、CLOSE_WAITという状態で待つということです。 ただし、同時にCLOSEした場合は、ACKより先にFINが飛び交うこともあり得ますが、あとでACKが交互に飛んでると思われます。 見た目は、①FIN/ACK → ②FIN/ACK → ③ACKに見えますが、②のACKは、①のFINを受信したこと対するACKではない、つまり、確認応答番号は進んでないと思われます。