TCPとUDPは、一言でいうと何が違う?
TCP(Transmission Control Protocol)は、相手と接続を確立し、届かなかったデータを再送して順番どおりに渡すトランスポート層のプロトコルです。UDP(User Datagram Protocol)は、接続を確立せずにデータグラムを送り出す、機能を絞った軽いプロトコルです。
どちらもIPの上で動き、ポート番号で通信相手のアプリを区別する点は同じです。違うのは「届いたかどうかの面倒をプロトコル自身が見るか、上のアプリに任せるか」という役割分担です。TCPは確認と再送の手間をかける代わりに、アプリが欠落を気にせずに済みます。UDPは手間を省く代わりに、必要な確認はアプリ側で行います。
現行の仕様は、TCPが2022年8月発行のRFC 9293(1981年のRFC 793などを置き換えたもの)、UDPが1980年8月発行のRFC 768です。RFC 9293はTCPを「信頼性があり、順序どおりの、バイトストリーム」を提供するものと位置づけています。この「バイトストリーム」という性質は後の表と確認問題で使うので、覚えておいてください。

接続・再送・順序・用途は、表にするとどう違う?
- 1
SYN
クライアントが接続を求める
- 2
SYN/ACK
サーバが応じ、確認を返す
- 3
ACK
クライアントが確認を返し、接続が確立する
- 4
データの送受信
シーケンス番号と ACK で欠落を見つけて再送する
UDP にはこの手順がなく、最初のデータからいきなり送る。
| 観点 | TCP | UDP |
|---|---|---|
| 接続 | 送る前に3ウェイハンドシェイク(SYN → SYN/ACK → ACK)で接続を確立する | 接続の確立はない。最初のデータからいきなり送る |
| 到達確認と再送 | シーケンス番号と確認応答(ACK)で欠落を見つけ、再送する | 行わない。届いたかどうかをUDP自身は確かめない |
| 順序 | 受信側で並べ直してからアプリに渡す | 保証しない。届いた順にアプリへ渡る |
| データの単位 | バイトストリーム。送信側の書き込みの区切りは保たれない | データグラム単位。1回の送信が1つのまとまりになる |
| 流量の調整 | ウィンドウによるフロー制御と、輻輳制御がある | ない。必要ならアプリ側で調整する |
| ヘッダ | 最小20バイト | 8バイト(送信元ポート・宛先ポート・長さ・チェックサムの4項目) |
| 主な用途の例 | Web(HTTP/1.1・HTTP/2)、メール、ファイル転送 | DNSの問い合わせ、音声・映像のリアルタイム伝送(RTP)、QUIC(HTTP/3) |
用途の欄は「必ずそうなる」という意味ではありません。たとえばDNSはUDPだけで動くと覚えがちですが、RFC 7766(2016年3月)は汎用のDNS実装にUDPとTCPの両方への対応を求めています。「DNSはTCPを使わない」と言い切る選択肢があれば、疑ってよい部分です。
リアルタイムの音声や映像でUDPが選ばれるのは、遅れて届いたデータが役に立たないからです。再送を待っている間に再生のタイミングが過ぎてしまえば、その断片は捨てるしかありません。RTP(RFC 3550)も、多くの場合UDPの上で使われると仕様に書かれています。
開始する側
待ち受ける側
1. 開始する側 → 待ち受ける側
SYN
接続の開始を要求する
2. 待ち受ける側 → 開始する側
SYN + ACK
相手の開始を確認し、自分の開始も知らせる
3. 開始する側 → 待ち受ける側
ACK
相手の開始を確認する
接続開始の手続きを3段階で確認する。UDP自身はこの接続手続きを行わない。
本文とRFC 9293に基づく通常の接続開始の省略図。同時オープンなどは省略。 矢印の長さと段の間隔は、時間・距離を表しません。
HTTP/3のQUICは、なぜTCPではなくUDPを使うの?
QUIC(RFC 9000、2021年5月)は、QUICパケットをUDPデータグラムの中に入れて運びます。再送・順序制御・フロー制御はQUIC自身が行い、暗号化にはTLS 1.3を組み込んでいます(RFC 9001)。つまり UDPの上に、TCPとTLSが担っていた仕事を作り直した 形です。
UDPを土台にする利点は、次の3つに整理できます。
HTTP/1.1・HTTP/2
- アプリケーションHTTP/1.1・HTTP/2
- 再送・順序制御を担うTCP
- トランスポート層TCP
- ネットワーク層IP
HTTP/3
- アプリケーションHTTP/3
- 再送・順序制御を担うQUIC(TLS 1.3 も組み込む)
- トランスポート層UDP
- ネットワーク層IP
HTTP/3 は QUIC の上、QUIC は UDP の上。TCP と TLS が担っていた仕事を、QUIC が UDP の上に作り直した。
- 既存のネットワークを通しやすい:新しいトランスポートプロトコル番号を使うより、広く通っているUDPに載せたほうが、途中の機器に止められにくい。RFC 9000も、既存ネットワークへの展開を容易にするためにUDPに入れると説明しています。
- 1つの欠落が全体を止めない:TCPはバイトストリームなので、1か所が欠けると後ろのデータも待たされます。QUICはストリームごとに再送と順序制御を行うため、影響をそのストリームに閉じ込められます(HTTP/3のRFC 9114が、HTTP/2の弱点として説明している点です)。
- IPアドレスが変わっても続けられる:QUICは接続をコネクションIDで識別します。Wi-Fiからモバイル回線に切り替わってアドレスが変わっても、同じ接続として通信を続けられます(RFC 9000の版では、移動できるのはクライアント側)。
HTTPのバージョンとの関係は「HTTP/1.1とHTTP/2はTCPの上、HTTP/3はQUICの上、QUICはUDPの上」と一続きで覚えると混乱しません。HOLブロッキングの詳しい違いはHTTP/2とHTTP/3(QUIC)の違いで整理しています。
モバイル2級では、どの範囲でどう問われる?
TCPとUDPは、モバイル2級の出題カテゴリ「ワイヤレス通信の原理とネットワーク技術」に当たります。MCPCの試験ページの図では、このカテゴリの出題比率は15%です(2026年9月27日確認)。100問・100分の試験なので、カテゴリ全体で15問前後という目安になりますが、その中でTCPとUDPが何問あるかは公表されていません。
公式テキスト(モバイルシステム技術テキスト第11版)の目次では、第5章「インターネット基盤技術」が近い範囲です。ただし章と出題カテゴリの対応は当サイトの推定で、当サイトが使っているのは目次の章名だけです。テキストの本文や公式サンプル問題の文は使っていません。
4択でどう確かめられるかは公表されていないため、以下は当サイトが想定している形です。
- 説明文から名称を選ぶ:「接続を確立してから送る」「到達確認をしない」といった説明に当てはまるプロトコルを選ぶ。
- 用途との組合せ:Web閲覧・音声通話・名前解決などと、使われるプロトコルの組合せを選ぶ。
- 適切でない記述を選ぶ:「のみ」「必ず」「常に」で言い切った記述の誤りを見抜く。
- 上位プロトコルとの関係:HTTP/3やCoAPのようにUDPの上で動くプロトコルを、TCPと取り違えさせる。
IPの層の違いはIPv4とIPv6の違い、IoTでUDPの上に載るプロトコルの例はCoAPの解説で確認できます。試験全体の形式はモバイルシステム技術検定2級の概要にまとめています。
TCPとUDPで、間違えやすいのはどこ?
| 取り違えやすい記述 | 正しい整理 | 見分けるコツ |
|---|---|---|
| UDPでは信頼できる通信は作れない | UDP自体は再送しないが、QUICのように上の層で再送や順序制御を作れる | 「UDP自体は」か「UDPを使う仕組み全体は」かを読む |
| TCPは送信側の区切りを保って届ける | TCPはバイトストリーム。区切りはアプリ側(HTTPのヘッダなど)で表す | 「データグラム」はUDPの側の言葉 |
| DNSはUDPだけを使う | 汎用のDNS実装はUDPとTCPの両方への対応が必要(RFC 7766) | 「だけ」「必ず」の言い切りに注意 |
| UDPも3ウェイハンドシェイクで接続する | 接続を確立するのはTCP。UDPには接続の手順がない | SYN・ACKが出たらTCPの話 |
| ポート番号を持つのはTCPだけ | UDPヘッダにも送信元・宛先のポート番号がある | UDPヘッダの4項目を言えるようにする |
| HTTP/3はTCPの上で動く | HTTP/3はQUICの上、QUICはUDPの上で動く | TCPを使うのはHTTP/2まで、と区切る |
| TCPのほうが常に遅い | 確認や再送の分だけ待ちは生じうるが、速さは回線と用途で変わる | 「常に」で比べる記述は条件を確かめる |
確認問題1
TCPの説明として最も適切なものは?
次のうち、TCPの説明として最も適切なものを選んでください。
選択肢を準備しています。「正解と解説を見る」は先に開けます。
正解と解説を見る
正解:1。TCPは3ウェイハンドシェイクで接続を確立し、シーケンス番号と確認応答で欠落を見つけて再送し、順序どおりにアプリへ渡します(RFC 9293)。
2は接続を確立しない・到達確認をしないという点でUDPの説明です。3もUDPのヘッダの説明で、TCPのヘッダは最小でも20バイトあります。4はQUICの説明です。QUICは暗号化(TLS 1.3)とストリーム多重化を内蔵し、UDPの上で動きます。
確認問題2
TCPとUDPについて適切でない記述は?
TCPとUDPに関する次の記述のうち、適切でないものを選んでください。
選択肢を準備しています。「正解と解説を見る」は先に開けます。
正解と解説を見る
正解:3。RFC 7766は、汎用のDNS実装はUDPとTCPの両方に対応しなければならないとしています。問い合わせの多くがUDPで行われることと、「TCPを使う場面はない」ことは別の話です。
1は適切です。UDPヘッダの4項目のうち2つが送信元ポートと宛先ポートです。2も適切で、確認応答と再送はTCPの信頼性の中心です。4も適切です。遅れて届いた音声は再生に間に合わないため、再送を待たないUDPが向いています。
確認問題3
QUICが接続を続けるための仕組みは?
スマートフォンがWi-Fiからモバイル回線に切り替わり、IPアドレスが変わりました。このときQUICが同じ接続として通信を続けるために使う仕組みはどれでしょうか。
選択肢を準備しています。「正解と解説を見る」は先に開けます。
正解と解説を見る
正解:2。QUICは接続をコネクションIDで識別するため、下の層のIPアドレスやポートが変わっても、同じ接続のパケットだと判断できます(RFC 9000。この版で移動できるのはクライアント側)。
1のポート番号は、アドレスと同じく途中の機器(NATなど)で変わることがあり、接続を識別する目印になりません。3のシーケンス番号は、データの順序と欠落を管理するためのTCPの仕組みです。4の3ウェイハンドシェイクはTCPの接続を確立する手順で、アドレスが変わった通常のTCPは接続を張り直すことになります。
確認問題を解いたら、次に何をする?
3問のうち迷ったものがあれば、比較表の該当する行に戻って「どの言葉で見分けたか」を1行メモしておくと、別の言い回しで出されたときにも使えます。
本番と同じ4択の形式で、ほかの分野と混ぜて解いてみたい場合は、モバイル2級の無料お試し20問が登録不要で使えます。出題カテゴリを参考に組んだ独自の20問で、全問に解説がついています。少数の問題のため、本番と同じ出題配分にはなりません。
関連する用語は、HTTP/2とHTTP/3(QUIC)の違い、IPv4とIPv6の違いの順に読むと、IP→トランスポート→アプリケーションの流れで整理できます。
TCPで送るデータの大きさを考える
MTUとMSSの違いでは、IPヘッダとTCPヘッダを引く条件付き計算を扱います。MSSをUDPの機能として読み替えないよう確認してください。
関連する資料・判断をもう一段深める
新しい名前を追加しても解決できない場合の学習には、DNSのネガティブキャッシュとTTLも使えます。問い合わせ先・応答の種類・取得時刻をそろえ、権威側とキャッシュ側を分けて読みます。