TCP@L4¶
はじめに¶
本サイトにつきまして、以下をご認識のほど宜しくお願いいたします。
01. TCP メッセージ¶
TCP メッセージとは¶
トランスポート層で作成されるデータを TCP メッセージという。
TCP スリーウェイハンドシェイク¶
リクエストとレスポンスの送受信の前後に行われる TCP 接続の確立のこと。
TCP KeepAlive¶
TCP 接続のたびに、送信元と宛先間で TCP スリーウェイハンドシェイクを実施し直すのは非効率である。
そこで、宛先が TCP KeepAlive を定期的に送信し、送信元が ACK パケットを返信することにより、TCP スリーウェイハンドシェイクが切断されないようにする。

02. エラー¶
ECONNREFUSED¶
送信元が、TCP 接続を待ち受けていない宛先のポート番号へリクエストを送信したとする。
この場合に、宛先が TCP 接続を拒否し、送信元に返信するエラーである。
client(192.168.122.181) server(192.168.122.216)
| |
| |
| |
nc server 11111 |--------------- SYN --------------------->|
| |
| |
ECONNREFUSED |<-------------- RST+ACK -----------------|
| |
| |
ECONNRESET (Connection reset by peer)¶
Connection reset by peer ともいう。
TCP 接続中に宛先のプロセスが終了し、接続を強制的に切断したとする。
この場合に、宛先が接続の予期せぬ切断として送信元に返信するエラーである。
宛先は RST パケットを返信し、接続をリセットする。
client(192.168.122.181) server(192.168.122.216)
| |
| | nc -kl 11111
| |
| |
nc server 11111 |--------------- SYN --------------------->|
|<-------------- SYN+ACK ------------------|
|--------------- ACK --------------------->| -*-
| | |
| | |
| | | TCP接続確立状態
| | | (ESTABLISHED状態)
| | |
ECONNRESET |<-------------- RST ----------------------| -*-
| |