ネットワーク TCPとUDPの違い

目次

TCPとUDPの違い

TCPとUDPは、どちらもOSI参照モデルのトランスポート層(第4層)で使用される通信プロトコルです。

アプリケーションがネットワーク通信を行う際に、どのようにデータを届けるかを定義します。

 

TCPとUDPの概要比較

項目 TCP UDP
接続方式 コネクション型(接続確立あり) コネクションレス(接続なし)
信頼性 高い(到達保証・順序保証あり) 低い(※)(保証なし)
通信速度 制御が多く遅延が増えやすい 軽量で低遅延
主な用途 Web、メール、SSH、ファイル転送など DNS、音声通話、動画配信、ゲームなど
再送制御 あり なし
順序保証 あり なし

 

(※)UDPは信頼性が低いというより、信頼性をプロトコルが提供しないというのが正確です。

そのため、実際のシステムでは、HTTP/3(QUIC)、WebRTC、ゲームプロトコルのように、UDPの上で独自に信頼性制御を実装するケースが多くあります。

TCPとは

TCP(Transmission Control Protocol)は、信頼性の高い通信を提供するプロトコルです。

 

特徴

TCPは以下の仕組みにより、データを確実に届けます。

  • 接続確立(スリーウェイハンドシェイク)
  • 到達確認(ACK)
  • 再送制御
  • 順序制御(並び替え)
  • 重複排除
  • フロー制御
  • 輻輳制御

 

TCP通信の流れ

1.接続確立(スリーウェイハンドシェイク)

通信開始時に、次の3ステップで接続を確立します。

  1. クライアント → SYN送信
  2. サーバ → SYN+ACK応答
  3. クライアント → ACK応答

これにより、双方が通信可能な状態になります。

 

2.データ通信

TCPでは、データは複数の単位(セグメント)に分割して送信されます。

ポイント

  • 複数のセグメントを連続して送信できる(ウィンドウ制御)
  • 各セグメントに対してACKが返される
  • ACKが来ない場合は再送する
  • 順序が乱れた場合は並び替える

※1つ送って確認してから次を送るわけではなく、未確認データを管理しながら並列的に送信する仕組みです。

 

3.接続切断

通信終了時は以下の手順で接続を切断します。

FIN / ACK を使った手順(通常4ステップ)

 

TCPのメリット・デメリット

メリット データが確実に届く
順序が保証される
信頼性が非常に高い
デメリット 接続確立のオーバーヘッドがある
ACKや再送などの制御が多い
遅延が増えやすい

 

TCPが使われる例

  • HTTP/1.1、HTTP/2(Web通信)
  • HTTPS
  • SMTP(メール送信)
  • SSH
  • FTP / SFTP

※近年は、Web通信でもUDPベースのHTTP/3(QUIC)が使われるケースが増えています。

 

UDPとは

UDP(User Datagram Protocol)は、シンプルで軽量な通信を行うプロトコルです。

 

特徴

UDPは以下のような特徴を持ちます。

  • 接続確立なし(コネクションレス)
  • 再送制御なし
  • 順序保証なし
  • 到達保証なし

送信側は、宛先IPアドレスとポート番号を指定して、データグラムをそのまま送信するだけです。

 

UDP通信の流れ

  1. 送信側がデータを送る
  2. 受信側が受け取る(届かない可能性あり)

TCPのような接続確立や切断手順はありません。

 

UDPのメリット・デメリット

メリット 処理が軽く高速
低遅延
リアルタイム通信に向いている
デメリット データが届かない可能性がある
順序が保証されない
再送はアプリ側で実装する必要がある

 

    UDPが使われる例

    • DNS(通常の名前解決)
    • VoIP(音声通話)
    • 動画配信
    • オンラインゲーム
    • DHCP
    • NTP
    • HTTP/3(QUIC)

    ※DNSは通常UDPを使用しますが、以下の場合はTCPも使用されます。

    • ゾーン転送
    • 応答サイズが大きい場合

    TCPとUDPの使い分け

    特徴
    TCP データの正確性が最優先
    欠損が許されない
    順序が重要
    Webページ
    ファイル転送
    メール
    UDP 多少の欠損が許容される
    リアルタイム性が重要
    遅延を最小化したい
    音声通話
    動画ストリーミング
    ゲーム通信

    関連の記事

    ネットワーク CIDR(サイダー)とは

    △上に戻る