NWNW STUDYネットワークスペシャリスト 過去問演習演習へ戻る →

NETWORK BASICS / TCP-UDP

TCPとUDPの違い

TCPとUDPは、どちらもポート番号で通信先のアプリケーションを識別します。違いは「速い・遅い」だけで覚えず、何をプロトコルが担当するかで整理しましょう。

読む目安 5分 · 更新:2026年10月12日 · 文責:NW STUDY運営者

POINT 01

TCPとUDPを並べて比べる

トランスポート層の役割の違い
観点TCPUDP
データの扱い順序のあるバイト列独立したデータグラム
接続の確立接続状態を管理するUDP自体に接続確立手順はない
再送・順序制御備えるUDP自体は備えない
フロー・輻輳制御備える必要に応じて上位の仕組みで対応
ヘッダー長通常20バイト以上8バイト
共通する情報送信元・宛先ポート番号、チェックサム

TCPではアプリケーションが1回で送った単位と、相手が1回で読み取る単位は一致するとは限りません。UDPはデータグラム単位を保ちますが、到達や順序は保証しません。

POINT 02

シーケンス番号は「バイト数」で進む

TCPのシーケンス番号はパケットの個数ではなく、データの位置を示します。ACKの確認応答番号は、通常、相手が次に受信したい位置です。

説明用の例

シーケンス番号1,000から500バイトを送り、相手がそこまで連続して受信できた場合:

送信側SEQ 1,000 + 500バイト →受信側
送信側← ACK 1,500受信側

次に送るデータの先頭も1,500です。SYNとFINはそれぞれシーケンス空間を1つ消費するので、接続開始・終了を含む設問では別に数えます。

POINT 03

MTUからデータ長を求める

MTUが1,500バイト、IPv4ヘッダーが20バイト、TCPヘッダーが20バイトと指定されている場合、1つのIPパケットに入るTCPデータは次の長さです。

1,500 − 20 − 20 = 1,460バイト

この計算では、MTUに含まれるIPヘッダーとTCPヘッダーを差し引きます。ヘッダーのオプションやIPv6など、条件が変わる場合は問題文の値を使います。「いつでも1,460」と暗記しないことが大切です。

POINT 04

「何を守る制御か」で区別する

フロー制御は受信側が処理できる量を考慮し、輻輳制御はネットワークの混雑を考慮して送信を調整します。受信側に余裕があっても、途中の経路が混雑していれば送信量の調整が必要です。

TCPの接続開始はSYN → SYN+ACK → ACKの流れです。接続要求を待つサーバーの状態はLISTEN。過去問では、番号の計算・状態遷移・制御の目的を別々に整理すると読みやすくなります。

「UDPだから必ず速い」とは限らない

実際の性能は通信条件と上位の処理にも依存します。またDNSはUDPだけでなくTCPも使います。「このアプリケーションは常にこの方式」と決めつけず、設問の条件を確認しましょう。

NEXT / 過去問で確かめる

学んだ内容を、問題で使ってみる。

午前Ⅱの関連過去問を6問出題します。順番はランダムです。

関連する過去問 6問へ →
対象の過去問を見る(6件)
  • TCPの輻輳制御BBR(2023春 問4)
  • TCPデータの最大長(2023春 問5)
  • TCPのシーケンス番号(2024春 問9)
  • TCPとUDPの共通フィールド(2024春 問10)
  • UDPを使うRIP(2025春 問10)
  • TCPサーバーの待受状態(2025春 問11)

参考資料

仕組みの確認に用いた技術仕様です。本文の計算例・図解は当サイトによる説明で、IPAの公式解説ではありません。

誤記に気づいた場合は、記事名と該当箇所をお問い合わせフォームからお知らせください。