各種ブラウザのTCPハンドシェークフラグ操作への対応について
Posted: 2018年8月02日(木) 08:59
uNet3の各種WEBブラウザのTCPハンドシェークフラグ操作への対応について、少しアドバイスをいただけないでしょうか?
現在、uNet3 TCP/IPスタック上に、独自WEBサーバを実装中です。
ほぼ実装しておりますが、Wireshark観測結果を確認すると、各種WEBブラウザからのTCPコネクションのハンドシェークフラグ操作に応答できず、
[TCP Suprious Retransmission]が検出されています。
下記のようなケースでWEBブラウザより、「SYN」が発行されることに起因しています。
最新Google Chrome (ver 68.0.6440.75)のケースでは、HTTP GETコマンド発行時(下記④)に、
①SYN :ブラウザ→WEBサーバ
②SYN+ACK :WEBサーバ→ブラウザ
③ACK :ブラウザ→WEBサーバ
④SYN :ブラウザ→WEBサーバ ←少し後で[TCP Suprious Retransmission]として検出される
⑤RST+ACK :WEBサーバ→ブラウザ
また、GETコマンド応答返信時(下記⑦)に、
①フラグメントデータ :WEBサーバ→ブラウザ
②ACK :ブラウザ→WEBサーバ
③フラグメントデータ
④ACK
⑤フラグメントデータ
⑥ACK
⑦フラグメントデータ
⑦SYN :ブラウザ→WEBサーバ ←少し後で[TCP Suprious Retransmission]として検出される
③RST+ACK :WEBサーバ→ブラウザ
⑧ACK
⑨フラグメントデータ
⑩ACK
このように、予期せぬところで「SYN」が発行されると、「RST+ACK」がWEBサーバ側から発行されます。
通常の3Wayハンドシェーク想定外の「SYN」の発行に対応しているようなのですが、問題はないと考えてよいでしょうか?
ブラウザのこのような動作の意図をご教示いただけないでしょうか?
また、uNet3としては、このような意図を想定していますでしょうか?
ちなみに、仮WEBサーバ実装としては、問題なく機能しています。
宜しくお願いいたします。
現在、uNet3 TCP/IPスタック上に、独自WEBサーバを実装中です。
ほぼ実装しておりますが、Wireshark観測結果を確認すると、各種WEBブラウザからのTCPコネクションのハンドシェークフラグ操作に応答できず、
[TCP Suprious Retransmission]が検出されています。
下記のようなケースでWEBブラウザより、「SYN」が発行されることに起因しています。
最新Google Chrome (ver 68.0.6440.75)のケースでは、HTTP GETコマンド発行時(下記④)に、
①SYN :ブラウザ→WEBサーバ
②SYN+ACK :WEBサーバ→ブラウザ
③ACK :ブラウザ→WEBサーバ
④SYN :ブラウザ→WEBサーバ ←少し後で[TCP Suprious Retransmission]として検出される
⑤RST+ACK :WEBサーバ→ブラウザ
また、GETコマンド応答返信時(下記⑦)に、
①フラグメントデータ :WEBサーバ→ブラウザ
②ACK :ブラウザ→WEBサーバ
③フラグメントデータ
④ACK
⑤フラグメントデータ
⑥ACK
⑦フラグメントデータ
⑦SYN :ブラウザ→WEBサーバ ←少し後で[TCP Suprious Retransmission]として検出される
③RST+ACK :WEBサーバ→ブラウザ
⑧ACK
⑨フラグメントデータ
⑩ACK
このように、予期せぬところで「SYN」が発行されると、「RST+ACK」がWEBサーバ側から発行されます。
通常の3Wayハンドシェーク想定外の「SYN」の発行に対応しているようなのですが、問題はないと考えてよいでしょうか?
ブラウザのこのような動作の意図をご教示いただけないでしょうか?
また、uNet3としては、このような意図を想定していますでしょうか?
ちなみに、仮WEBサーバ実装としては、問題なく機能しています。
宜しくお願いいたします。