TCPとは
TCP(Transmission Control Protocol)は、トランスポート層で動作するプロトコルです。TCPは、信頼性の高い通信を実現するために使用されるプロトコルです。トランスポート層のプロトコルにはUDPもあり、UDPは信頼性が高くない代わりに、高速性やリアルタイム性を求める通信に使用されるプロトコルです。
TCPでは通信の信頼性のために、通信先だってセッションを確立します。
3wayハンドシェイク
ポート番号の割り当て
ポート番号のタイプ | ポート番号の範囲 | 説明 |
ウェルノウンポート番号 | 0~1023 |
IANAで管理。 サーバのアプリケーションに割り当てられるポート番号。 |
登録済みポート番号 | 1024~49151 |
IANAで管理。 独自に作成したアプリケーションに割り当てられるポート番号。 |
ダイナミックポート番号 | 49152~65535 | クライアント側のアプリケーションに自動的に割り当てられるポート番号。 |
TCPヘッダの構造
TCPのフラグ
- NS (Nonce Sum) (RFC 3540)
- CWR (輻輳ウィンドウ減少) 輻輳ウィンドウ減少の通知 (RFC 3168)
- ECE (ECN-Echo) 輻輳の発生を相手に通知 (RFC 3168)
- URG (緊急フラグ) 緊急ポインターフィールドを使うよう指示
- ACK (応答確認フラグ) セグメントが応答確認を持っている
- PSH (転送強制フラグ) 受信可能になったらすぐ送信
- RST (リセットフラグ) 正しくないパケットを受け取ったときの通信リセットの指示
- SYN (同期フラグ) 先頭シーケンス番号の転送
- FIN (転送終了フラグ) 送信終了。受信は可能
参考にさせていただいたサイト
https://www.nic.ad.jp/ja/materials/iw/1999/proceedings/C03.PDF