TCP(Transmission Control Protocol)
TCP(Transmission Control Protocol)はコネクション型の通信で、
エンド to エンドにバーチャルサーキットを確立し、信頼性の高いポート間の通信を提供する。
そのため、ネットワークの品質の差にかかわらず、プロセス間で信頼性の高い通信路を提供することができる。
TCP の機能は、
信頼性の保障のほかにも、
ウィンドウサイズのダイナミックな制御などによるフロー制御や再送制御機能を持っている。
要するに、
TCP 通信の発信側は受信側にちゃんと届くかどうか、あるいは届いたかどうかを逐次確認する。
そして、受信側も逐次その確認に応答しなければならない。
そのため、パケットが途中で欠落したり、パケットの届く順番がバラバラになっても
ちゃんとした順番に並べ替えることができる。
つまり、通信の信頼性が高いと言える。
その代わり、確認などに手間がかかる分、
UDP に比べて、一回のパケットで送ることができるデータ量も少なく、処理も遅い。
TCP は通信の仕組みとして、SYN, ACK, FIN などのフラグやシーケンス番号などを使用する。
これらを発信側と受信側で相互のやり取りし合い、チェックし合うことで、
別の通信と入りくったりしないようにしたり、
パケットを正しい順番で処理したりして、
通信の信頼性を高めている。
ファイアウォールやパケットフィルタリングでは、このフラグやシーケンス番号などを重要で、
これらをチェックすることで TCP の通信における発信のパケットなのか、
応答のパケットなのかを判断したり、
または、不正なパケットかどうかを判断することができる。
これをステートフルインスペクションと呼ぶ。
TCP を使用する代表的なプロトコル
TELNET, FTP, SMTP
TCP について、知っておきたいキーワード
・スリーウェイハンドシェイク
・ウィンドウサイズ
・ウィンドウスケール
UDP(User Datagram Protocol)についてはこちら