STUDY · NETWORK GUIDE

1-7 TCP・UDP・ポート番号

ホスト内部のサービスを識別するポート番号と、その上に立つ TCP・UDP の役割を 1 ページで整理する。

1. ポート番号とは

IP アドレスはホストを一意に識別する番号でした。しかし現実のホストでは、Web サーバやメールサーバ、SSH など複数のサービスが同時に動作しています。届いたパケットをどのサービスへ渡すかを区別する仕組みが、トランスポート層で用いられる ポート番号 です。

ポート番号は 16 ビットの整数で、0 から 65535 までの値を取ります。IP アドレスがホストを指すのに対し、ポート番号は同一ホスト内のどのサービスに紐づくかを示します。両者を組にした 「IP アドレス + ポート番号」ソケット と呼び、これにより通信の終端が一意に定まります。サーバはサービスごとに固定のポートで待ち受け、クライアントは接続ごとに一時的なポートを確保します。


2. ポート番号の 3 区分

ポート番号は IANA (Internet Assigned Numbers Authority) により次の 3 区分で管理されています。

範囲名称代表例
0 〜 1023ウェルノウンポートHTTP=80 / HTTPS=443 / SSH=22 / DNS=53
1024 〜 49151登録済みポートPostgreSQL=5432 / Redis=6379
49152 〜 65535動的・私用ポートクライアント側の一時利用

ウェルノウンポートは主要サービス用に予約され、サーバ側で使われます。登録済みポートはベンダー登録された特定アプリケーション用の範囲です。動的・私用ポートは エフェメラルポート とも呼ばれ、クライアントが接続ごとに一時的に確保します。Web ブラウザが 443 番に接続する際も、自身の送信元ポートはこのエフェメラルポート範囲から空きを選びます。IANA が定める動的・私用範囲は 49152〜65535 ですが、実際に使う範囲は OS 実装・設定で異なります(たとえば Linux は ip_local_port_range で既定範囲を持ちます)。


3. TCP(Transmission Control Protocol)

TCP は コネクション指向信頼性 を保証するトランスポート層プロトコルです。通信に先立ち、送信側と受信側で論理的なコネクションを確立します。この手順は 3-way ハンドシェイク と呼ばれ、SYN、SYN/ACK、ACK の 3 つのセグメントを往復させて互いの準備を確認します。

確立後はデータを シーケンス番号 で順序付けし、受信側は ACK で到達を通知します。セグメントが失われた場合は 再送 で補い、データは順序通り欠落なく届くことが保証されます。加えて、受信側の処理能力に合わせて送信量を調整する フロー制御、混雑を検出して送信レートを抑える 輻輳制御 も組み込まれています。輻輳制御には Reno や CUBIC などのアルゴリズムがあります。これらの仕組みは信頼性と引き換えに、確立時の往復遅延と 20 バイト以上のヘッダオーバーヘッドを伴います。

TCP の 3-way ハンドシェイク


4. UDP(User Datagram Protocol)

UDP は コネクションレス でシンプルなトランスポート層プロトコルです。ハンドシェイクを行わず、送信側はデータグラムと呼ばれる独立したパケットをそのまま送出します。順序保証も再送もフロー制御も行わず、必要があればアプリケーション側で実装します。

ヘッダは送信元ポート、宛先ポート、長さ、チェックサムの 4 フィールドのみで、合計 8 バイト と最小限です。確立の往復も発生しないため遅延が小さく、低遅延が要件となる通信や、損失をある程度許容できる通信に適します。


5. TCP と UDP の使い分け

両者の特性を整理すると以下のとおりです。

比較項目TCPUDP
コネクション指向(事前確立)レス(事前確立なし)
信頼性あり(再送・順序保証)なし
順序保証ありなし
ヘッダサイズ20 バイト以上8 バイト
遅延大きい小さい
代表例HTTP / HTTPS / SSH / SMTP / FTPDNS / DHCP / NTP / VoIP / 動画配信

TCP は確実な配送が要件となる通信に用いられます。Web ページの取得、メール、ファイル転送、リモートログインのように、欠落や順序入れ替わりが致命的になる用途です。一方 UDP は、問い合わせと応答が 1 往復で完結する軽量な通信や、リアルタイム性が品質を左右する通信に向きます。DNS は基本 UDP ですが、応答サイズが大きい場合やゾーン転送では TCP が使われます。

TCP と UDP の特性比較


6. 次節

続く 1-8 代表的なプロトコル群 では、土台の上で利用される代表的なアプリケーションプロトコル群 (DNS / ARP / ICMP / DHCP / HTTP・HTTPS) がどの層で何を解決するのかを並列に整理し、第 1 章の総まとめとしていきます。