用語辞典・IP・アドレス

ポート番号

ポート番号とは

ポート番号は、IPアドレスで特定した端末の中で、通信を受け取るアプリケーションや接続を区別する16ビットの番号です。英語ではport number(ポート・ナンバー)と呼びます。

ポート番号は、IPアドレスで特定した端末の中で、通信を受け取るアプリケーションや接続を区別する16ビットの番号です。

一台のサーバーは、Web、メール、名前解決など複数の通信を同時に扱えます。IPアドレスが端末まで届け、ポート番号がその端末内の受け取り口を選ぶと考えると役割を分けやすくなります。ただし、ポートは物理的な差し込み口ではなく、OSが通信を振り分けるための番号です。

同じサーバーへ届いた後、番号ごとに受け取り先が分かれるアドレスとポートは、宛先を二段階で絞り込む
同じサーバーのIPアドレスへ届いた複数のパケットが、色分けされたポートの札によって端末内の異なるアプリケーションへ振り分けられる図解
図1パケットには送信元ポートと宛先ポートがあります。サーバーへ要求するときは宛先ポートが待ち受け中のサービスを示し、返信では往路の送信元ポートがクライアント側の宛先になります。

TCPとUDPは、別々のポート番号空間を持つ

TCP(Transmission Control Protocol/トランスミッション・コントロール・プロトコル)UDP(User Datagram Protocol/ユーザー・データグラム・プロトコル)は、どちらも0から65535までの16ビットのポート番号を使います。しかし、TCPの53番とUDPの53番は別の受け取り口です。

番号だけを示しても通信を一意に定められないため、設定や記録ではTCP/443UDP/53のように通信規則と組にして確認します。ほかにもSCTPなどポート番号を持つ通信規則があり、それぞれの番号空間として管理されます。

番号は三つの範囲に分けて管理される

IANAが定めるポート番号の範囲既定の連絡先と、一時的な送信元を区別する
0–1023システムポート

ウェルノウンポートとも呼ばれます。広く使われるサービスの既定番号が含まれます。

1024–49151ユーザーポート

登録済みポートとも呼ばれ、IANAへ登録されたアプリケーションの番号などがあります。

49152–65535動的ポート

プライベートポートとも呼ばれ、OSが一時的な送信元ポートとして選ぶ用途などに使われます。

図20番は予約されています。アプリがOSへ「ポート0で結び付ける」と依頼する操作は、利用可能なポートを自動選択してほしいというAPI上の指定として使われることがあり、通信相手のサービスを0番に決めることとは異なります。

クライアント側にも、送信元ポートがある

WebブラウザがサーバーのTCP/443へ接続するとき、ブラウザ側のOSは利用可能な一時ポートを選びます。同じ端末から同じサーバーへ複数の接続を作っても、送信元ポートなどが異なれば別の通信として区別できます。

TCP接続は、送信元IPアドレス、送信元ポート、宛先IPアドレス、宛先ポートの組に通信規則を加えて識別されます。ポート番号だけで「どの利用者のどの接続か」まで決まるわけではありません。

既定ポートは、通信内容を保証しない

URLでポートが省略された場合、スキームに応じた既定値が使われます。たとえばHTTPSでは通常TCP/443です。しかし、管理者は別のポートでWebサーバーを待ち受けさせることもできますし、443番で別の通信を動かすことも技術上は可能です。

ファイアウォールでポート番号を許可・拒否できますが、番号だけではアプリケーションの安全性や実際のデータ内容は分かりません。「よく使われる番号」と「その通信が本当に想定したサービスか」を分けます。

仕様の確認資料:RFC 6335「Service Name and Port Number Registry」IANA「Service Name and Transport Protocol Port Number Registry」

関連用語