トップ回答者
Window Server 2012 r2と2003のTCP通信プロトコルの違いについて

質問
-
L4SWとWindows Server間の通信においてWindows Server 2012 r2と2003で以下のように異なっていますが、
原因を教えて頂きたくお願いします。
ソースコードは全く同じです。
【Windows 2003】
L4SW -----SYN------> Server
L4SW <--SYN,ACK--- Server
L4SW ---FIN,ACK---> Server
L4SW <----ACK------ Server
L4SW <--FIN,ACK--- Server
L4SW -----ACK-----> Server
正常終了
【Windows 2012 r2】
L4SW -----SYN-----> Server
L4SW <--SYN,ACK--- Server
L4SW ---FIN,ACK---> Server
L4SW <----ACK------ Server
7秒後
L4SW -----RST------> Server
上記のように2012 r2ではServer側からFINを投げずに、L4SW側からのtimeoutによるRSTで終了
Windows 2012 r2では、2003のClose処理と違いがあるのでしょうか?
例えば、2003では明示的にCloseしなくてもFINが出ていたが、2012 r2では明示的にCloseしないといけないとか?
よろしくお願いします。
回答
-
チャブーンです。
残念ですが、TCPの動作仕様については、どこにも公開されていないようです。Microsoft Open Specificatiosにも仕様については記載がありませんので、どこにも載っていないでしょう。
https://msdn.microsoft.com/en-us/library/gg685446.aspx
https://msdn.microsoft.com/en-us/library/jj712081.aspxこの場合MSに直接聞いていただくしかないですが、聞き先が違います。ここは、単なるコミュニケーションスペースで、MSエンジニアは一切回答はおこないません。仮に応答があった場合も公開済みの情報をお知らせするレベルで、社内情報の開示やサポートはおこないません。MS有償サポートに聞いていただくとよいでしょう。
http://www.microsoft.com/ja-jp/services/professional.aspx
- 編集済み チャブーンMVP, Moderator 2015年2月25日 0:29
- 回答の候補に設定 佐伯玲 2015年2月26日 0:51
- 回答としてマーク 佐伯玲 2015年3月6日 1:56
すべての返信
-
上記の通信ですが、サーバ側の処理の流れとしては、
①socket生成
②bind
③listen
④accept
⑤socket close
の流れで、④⑤を繰り返すような処理になっています。
Windows2003のときには⑤のsocket closeがなかったのですが、L4SW(client側)から通信終了のFINが来たタイミングでサーバ側からもFINが投げられていました。
Windows2012R2では、⑤のsocket closeがない場合には、L4SW(Client側)から通信終了のFINが来てもサーバ側は何も処理をせず、Client側からのRSTで終了するような処理になっています。
winsocketはws2_32.dllだと思われますが、2003以降で変更があったのかどうか教えて頂きたくお願いします。
-
チャブーンです。
残念ですが、TCPの動作仕様については、どこにも公開されていないようです。Microsoft Open Specificatiosにも仕様については記載がありませんので、どこにも載っていないでしょう。
https://msdn.microsoft.com/en-us/library/gg685446.aspx
https://msdn.microsoft.com/en-us/library/jj712081.aspxこの場合MSに直接聞いていただくしかないですが、聞き先が違います。ここは、単なるコミュニケーションスペースで、MSエンジニアは一切回答はおこないません。仮に応答があった場合も公開済みの情報をお知らせするレベルで、社内情報の開示やサポートはおこないません。MS有償サポートに聞いていただくとよいでしょう。
http://www.microsoft.com/ja-jp/services/professional.aspx
- 編集済み チャブーンMVP, Moderator 2015年2月25日 0:29
- 回答の候補に設定 佐伯玲 2015年2月26日 0:51
- 回答としてマーク 佐伯玲 2015年3月6日 1:56
-