先に要点
TCP と UDP の違いは、どちらが速いかより「どこで困るか」で覚えた方が実務で役に立ちます。
信頼性や順序保証の違いは多くの解説に並んでいますが、障害調査で詰まるのは「TCP だからつながるはず」「UDP だから速いだけ」と雑に覚えているときです。遅延・再送・順序保証のどれを優先するか、という判断軸で見ると迷いません。
この記事では、2026年4月5日時点で MDN の TCP / UDP 解説、IETF の TCP 仕様 RFC 9293、UDP 仕様 RFC 768 を確認しながら、初心者向けに整理します。
社内ネットワーク全体の構成から見たい場合は、社内ネットワークとは?構成例・作り方・必要性をわかりやすく解説 を、ネットワーク機器の役割から押さえたい場合は ルーターとスイッチの違いは?役割・できること・社内ネットワークでの使い分けを解説 を先に読むとつながりやすいです。
80番 や 443番 や 22番って結局何なのか まで整理したい場合は、ポート番号とは?80番・443番・22番が何を意味するのか解説 もあわせて読むとつながりやすいです。
まず一言でいうと何が違うのか
一番短く言うと、違いはこうです。
この違いだけでも方向はつかめますが、実務ではもう少し具体的に見た方が判断しやすいです。
| 項目 | TCP | UDP |
|---|---|---|
| 通信の始め方 | 接続確認をしてから始める | 接続確認なしで送り始める |
| 届いたかの確認 | 行う | 基本は行わない |
| 順番保証 | ある | ない |
| 再送 | ある | 基本はない |
| 向きやすい用途 | Web、API、SSH、メール、業務系通信 | DNS、音声通話、動画配信、一部のゲーム |
数字で見る TCP と UDP の違い(ヘッダ・接続・ポート)
筆者はSEとして9年以上、Web開発を中心にサーバー運用やネットワークの切り分けにも関わってきましたが、TCP と UDP は「正確さ寄りか軽さ寄りか」という感覚だけでなく、具体的な数字で押さえておくと設計でも障害調査でも判断が速くなります。ここでは仕様レベルで確かな値だけを並べます。
まずヘッダの大きさです。TCP ヘッダはオプションなしで約20バイト、UDP ヘッダは固定で8バイトです。1パケットあたり十数バイトの差ですが、小さなデータを大量に流す通信ではこのオーバーヘッド差が効いてきます。次に接続の始め方ですが、TCP は通信の前に3ウェイハンドシェイク(SYN、SYN/ACK、ACK の3パケット)を行うため、データを送る前に最低でも往復1回分の待ちが入ります。UDP はこの手順がなく、いきなり送り始めます。再送と順序保証は TCP にはあり、UDP には標準ではありません。
代表的なポートと用途も、数字で覚えておくと現場で迷いにくいです。
| 観点 | TCP | UDP |
|---|---|---|
| ヘッダサイズ | 約20バイト(オプションなし時) | 8バイト(固定) |
| 接続前の手順 | 3ウェイハンドシェイク(3パケット、往復1回分の遅延) | なし(即送信) |
| 再送・順序保証 | あり | 標準ではなし(必要ならアプリ側で実装) |
| 代表的な用途とポート | HTTP=80番、HTTPS=443番、SSH=22番 | 動画配信・オンラインゲーム・VoIP、QUIC/HTTP3 の土台 |
| DNS(53番) | 応答が大きい場合やゾーン転送で使用 | 通常のクエリで使用 |
筆者の感覚では、要件を1つずつ「欠けたら困るか」「往復の待ちを許せるか」「ポートを通す経路は安定しているか」と数字に落として確認するのが、結局いちばん早い選び方です。HTTP/3 が UDP を土台にしているのも、TCP+TLS で増えがちな往復回数を減らしたいという、まさにこの数字の話につながっています。
TCP と UDP のキャラクター比較
それぞれの「何を優先する通信か」を並べると、選び方の感覚がつかめます。
実務で本当に重要なのはどこか
ここが一番大事です。
初心者のうちは TCP は丁寧、UDP は雑 と覚えがちですが、実務ではもう少し具体的に見ます。
1. 欠けることが困るか、遅れることが困るか
まず見るのはここです。
業務システム、管理画面、決済、ログインは、多少遅くても欠けない方が大事です。
逆に音声や映像は、少し欠けても 今の情報 が届く方が体感はよくなります。
2. 障害調査で見るポイントが変わる
TCP の障害では、接続できない、途中で切れる、再送が多くて遅い のような見方が増えます。
一方で UDP は、つながっているように見えるのに届かない 一部だけ抜ける という形で見えやすいです。
つまり、UDP は OK / NG が分かりにくい場面があります。
特にファイアウォールや NAT をまたぐ構成では、ポートを開けたはずなのに安定しない という相談が起きやすいです。
3. セキュリティや運用でも見方が変わる
どちらもセキュリティ上の注意は必要ですが、運用で気を付けるポイントは少し違います。
たとえば VPN でも、実装によって TCP を使うものと UDP を使うものがあり、使い心地はかなり変わります。
VPN だから同じ と見ない方がよいです。
よくある使い分けをざっくり整理
Web・API・業務システム
欠けると困るので、まずは TCP を前提に考えることが多いです。画面表示や登録処理は、正確さ優先です。
DNS・一部の基盤通信
DNS は代表例で、普段は UDP が多いですが、応答が大きい場合などは TCP も使います。ここは 「どちらか一方だけ」 と決めつけない方が安全です。
音声・映像・ゲーム
少し欠けても今の情報が欲しいので、UDP が向きやすいです。ただし、アプリ側で補完や制御を入れていることが多いです。
TCP / UDP に関するよくある質問
UDP の方が常に速い?
なりません。UDP はパケットあたりのオーバーヘッドが小さく、確認や再送がないので低レイテンシ寄りですが、欠けても困らない ことが前提です。アプリ側で順序保証や再送を実装するなら、その分の実装コストが上に乗ります。「とにかく UDP なら速い」ではなく、「欠けが許容できる用途で UDP は速い」と理解してください。
TCP の方が安全?
安全とは別の話です。TCP は届き方が丁寧なだけで、それ自体は暗号化していません。安全性は TLS や IPsec のような暗号化レイヤーで担保するもので、TCP の上に TLS が乗って HTTPS になります。「TCP だから盗聴されない」は誤りです。
DNS は UDP だけ?
違います。普段のクエリは UDP が多いですが、応答サイズが大きい場合(DNSSEC、ANYクエリ、大量レコード)や、ゾーン転送、信頼性が必要な場面では TCP も使われます。ファイアウォールで 53/UDP だけ開ける と DNS が一部動かなくなる事故の典型例。
HTTP/3 が UDP を使うと聞いた、なぜ?
HTTP/3 は QUIC というプロトコルの上で動き、QUIC は UDP を土台にしています。理由は、TCP の Head-of-Line Blocking 問題を回避し、接続確立のラウンドトリップを減らすため。UDP の上に独自の再送・順序保証・暗号化を載せて、TCP+TLS よりも速い接続を実現しています。「軽い UDP」と「重い TCP+TLS」を組み替えて速さを取り戻した形です。
VPN は TCP・UDP どちらを使う?
実装により異なります。OpenVPN は TCP / UDP どちらも選べ、WireGuard は UDP のみ。一般的に UDP モードのほうが速度・遅延で有利ですが、UDP がブロックされる環境(一部のホテル Wi-Fi、厳しい企業ネット)では TCP モードに切り替える必要があります。VPN 接続が不安定なときは TCP/UDP の切替も切り分けポイントです。
TCP と UDP のどちらを使うかは誰が決める?
アプリケーションの設計者です。プロトコル仕様(HTTP は TCP、DNS は UDP/TCP 両用、QUIC/HTTP/3 は UDP など)が決まっているケースもありますが、独自プロトコルを作るときは「順序保証が必要か」「再送が必要か」「リアルタイム性をどこまで取るか」で選びます。
迷ったときはどう考えるとよいか
最初に判断するときは、この3つでかなり足ります。
- 欠けると困るか
- 順番がずれると困るか
- 少し遅れてもよいか
この3つが はい なら TCP 寄りです。
逆に、多少の欠けよりリアルタイム性を優先したいなら UDP 寄りです。
ネットワーク機器や社内構成の話とつなげたい場合は、ルーターとスイッチの違いは?役割・できること・社内ネットワークでの使い分けを解説 や 社内ネットワークとは?構成例・作り方・必要性をわかりやすく解説 もあわせて読むと整理しやすいです。
また、VPN のように TCP / UDP の選び方が体感差に出やすい例は、VPNとは?仕組み・種類・脆弱性・実務での対策を解説 もつながります。
まとめ
TCP と UDP の違いは、どちらが上か ではなく、何を優先する通信か の違いです。
TCP は正確さ、UDP は軽さと即時性に寄っています。
実務で大事なのは、欠けると困るのか 遅れると困るのか を先に見ることです。
この判断ができるだけで、設計でも障害調査でもかなり迷いにくくなります。
参考リンク
- MDN: TCP
- MDN: UDP
- IETF RFC 9293: Transmission Control Protocol (TCP)
- IETF RFC 768: User Datagram Protocol