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 |--------------- UDP datagram ------------>|
| |
| |
ECONNREFUSED |<-------------- ICMP port unreachable ----|
| |
| |
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 ----------------------| -*-
| |