今回はTCPプロトコルについて学習していきます。
TCPプロトコルとは

TCPはOSI基本参照モデルの第4層のトランスポート層で使われるプロトコルです。
トランスポート層では品質を重視するTCPとスピードを重視するUDPの2つがあります。
TCPプロトコルの特徴

TCPプロトコルはTransmission Control Protocolの略称です。
TCPはIPと共にインターネットを支える代表的なプロトコルです。
TCPでは信頼性の高い通信を実現するため、受信側に送ったデータがちゃんと届いているか確認しながら送っていきます。
届いていない場合は再送してちゃんと送られるようにします。
TCPプロトコルの開始シーケンス

TCPプロトコルの開始は3ウェイハンドシェイクとも呼ばれています。
送信側が「私と通信しませんか?」と、要求します。
受信側は「はい、構いませんよ」と応答を返します。
送信側が「ありがとう」とACKを送信することでアプリケーション同士のコネクションが確立されて通信ができるようになります。
TCPプロトコルの終了シーケンス

アプリケーションはデータの送信が終わると、「データを送り終わったので終了します」と終了要求を出します。
これに対して「はい、承知しました」とACK応答で返します。
ACKを送った方もデータを送り終わると終了要求を出し、終了要求を受け取った側がACK応答を返してコネクションが切断されます。