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 ----------------------| -*-
| |