TCPとUDPの仕組みを図解で説明
〜2つの違いと使い分け〜
「TCP」と「UDP」の違いを説明できますか?
TCPは信頼性が高くて、UDPは速い、くらいの理解の人も多いと思います。
TCPとUDPの仕組みと使い分けについて、図を使って説明していきます。
TCPとUDPとは?
TCPとUDPは、データをアプリまで届けるためのプロトコルです。
TCP/IPの階層では、トランスポート層にあたります。
IPは、宛先のコンピュータまでデータを届ける役割を持っています。
その上でTCPとUDPは、ポート番号を使って、コンピュータの中のどのアプリに届けるかを決めます。
2つの大きな違いは、信頼性を重視するか、速さを重視するかです。
TCPの仕組み
TCP(Transmission Control Protocol)は、相手に確実にデータを届けるためのプロトコルです。
通信を始める前に、相手と接続を確立します。このような方式を「コネクション型」といいます。
3ウェイハンドシェイク
TCPは、通信を始める前に①〜③のやり取りで接続を確立します。
①クライアントが接続を要求(SYN)
②サーバが要求を受け付けて、クライアントにも接続を要求(SYN+ACK)
③クライアントが受け付けたことを返信(ACK)

3回のやり取りを行うので、「3ウェイハンドシェイク」といいます。
ACKは「受け取りました」という確認の合図です。
電話でいうと、「もしもし」「はい、聞こえます」「お願いします」と確認してから話し始めるイメージです。
データを確実に届ける仕組み
TCPは、接続した後も確実にデータを届けるための仕組みを持っています。
- 確認応答:相手がデータを受け取ったらACKを返す
- 再送制御:ACKが返ってこない場合は、データを送り直す
- 順序制御:番号を付けて、データを正しい順番に並べ直す
- フロー制御:相手の処理に合わせて、送る量を調整する
これらの仕組みがあるので、途中でデータが失われても受け取る側には正しいデータが届きます。

その分、やり取りが増えて処理の負担は大きくなります。
UDPの仕組み
UDP(User Datagram Protocol)は、接続の確立をせずにデータを送るプロトコルです。
このような方式を「コネクションレス型」といいます。
相手が受け取ったかどうかの確認も、再送も行いません。
手紙をポストに入れるイメージです。出した後に届いたかどうかは、UDPでは分かりません。

データが途中で失われることもありますが、やり取りが少ないので、処理が軽く遅延が小さいことが特徴です。
確認が必要な場合は、アプリ側で行います。
TCPとUDPの違い
2つの違いを簡単に説明すると、
・TCPは、接続を確立して確実に届ける。信頼性が高い
・UDPは、接続を確立せずに送る。処理が軽く、遅延が小さい
になります。
TCPとUDPの使い分け

データが欠けると困る通信には、TCPが使われます。
- Webの閲覧(HTTP、HTTPS)
- メール(SMTP、IMAP、POP3)
- ファイル転送(FTP)
少しくらいデータが欠けても、遅れないことが大切な通信には、UDPが使われます。
- 音声通話やビデオ通話
- オンラインゲーム
- ライブ配信の一部
また、短いやり取りで済む通信にも、UDPが使われます。
- DNS(名前解決、状況によってTCPも使う)
DHCP(IPアドレスの自動割り当て)もUDPを使います。まだIPアドレスを持っていない機器がブロードキャストで問い合わせるので、相手と接続を確立するTCPは使えません。
最近では、Webの通信でも新しいHTTP/3ではUDPの上に作られたQUICという仕組みを使っています。信頼性の確保や暗号化はQUIC側で行います。パケットが失われた時の影響を小さくしたり、接続を速く始めたりできることが利点です。
ポート番号の変換については、NATの仕組みを図解で説明でも説明しています。
まとめ
今回はTCPとUDPの仕組みと違いについて説明しました。
TCPは接続を確立して確実にデータを届けるプロトコルで、UDPは確認を行わず軽く速く送るプロトコルです。
どちらが優れているということではなく、通信の目的に合わせて使い分けられています。
基本情報技術者試験では、3ウェイハンドシェイクや再送制御などのTCPの仕組みと、どのプロトコルがTCPやUDPを使うのかを押さえておきましょう。
普段使っているWebやビデオ通話がどちらを使っているのかを考えてみると、理解が深まると思います。
TCPとUDPがどの階層の技術なのかは、OSI参照モデルの仕組みを図解で説明の記事で説明しています。


