ネットワークの通信には、大きく分けてTCPとUDPという2つの方式があります。
このうちTCPは、「データがちゃんと相手に届くこと」を重視した仕組みを持っています。
この記事では、TCPが通信の信頼性を確保するために行っている3つの仕組みについて、初心者向けに解説します。
TCPとは?
TCP(Transmission Control Protocol)は、通信の信頼性を重視したプロトコルです。
データが正しい順番で、抜け漏れなく相手に届くように、いくつもの仕組みを持っています。
反対に、UDPは信頼性よりも速度を優先するプロトコルで、動画配信や音声通話など「多少データが欠けてもいいから速く届けたい」通信で使われます。
この記事では、TCPが信頼性を確保するための代表的な3つの仕組みを見ていきます。
ACKによる到達確認
データを送信すると、受け取った側は「届いたよ」という返事を送り返します。この返事を**ACK(Acknowledgement)**と呼びます。
送信側はACKが返ってくることで、相手にデータが届いたことを確認できます。
もしACKが返ってこなければ、送信側はデータが失われたと判断し、再送を行います。
届いたかどうかわからないまま送りっぱなしにするのではなく、1つ1つ確認しながら通信するのが、TCPの信頼性の核となる部分です。
ウインドウサイズを利用したフロー制御
フロー制御とは、送信側がデータを送りすぎて、受信側の処理が追いつかなくなることを防ぐ仕組みです。
TCPでは、ウインドウサイズという値を使ってこれを実現しています。ウインドウサイズは「一度に確認応答を待たずに送信できるデータ量」のことで、受信側の処理能力に応じて調整されます。
これにより、受信側がデータを取りこぼしてしまう事故を防ぐことができます。
3ウェイハンドシェイクによるコネクションの確立
TCPでは、通信を始める前に、送信側と受信側の間で次の3回のやり取りを行います。
- SYN:送信側が「通信を始めたい」と伝える
- SYN/ACK:受信側が「OK、こちらも始めたい」と返す
- ACK:送信側が「了解」と確認する
この3回のやり取りを3ウェイハンドシェイクと呼びます。
いきなりデータを送りつけるのではなく、事前にお互いの準備が整っていることを確認してから通信を始めることで、確実な通信路を作ることができます。
まとめ
今回のポイントをまとめます。
| 仕組み | 役割 |
|---|---|
| ACKによる到達確認 | データが届いたことを確認し、届かなければ再送する |
| ウインドウサイズによるフロー制御 | 受信側が処理しきれる量に送信量を調整する |
| 3ウェイハンドシェイク | 通信を始める前にお互いの準備を確認する |
この3つの仕組みが組み合わさることで、TCPは信頼性の高い通信を実現しています。
CCNAの試験でも頻出のポイントなので、それぞれの役割をセットで覚えておくとよいです。


コメント