ポート番号とは?やさしく図解 — IPアドレスとの違い・ソケット
「IPアドレスは分かるけど、ポート番号って何のためにあるの?」——ポート番号は、1台のコンピュータの中で「どのサービスに届けるか」を表す番号です。IPアドレスが建物の住所なら、ポートは部屋番号。この記事では、ポートの役割から、主要な番号、送信元ポート、そして接続を見分けるソケットまでを図解します。手を動かすなら ポート番号の可視化 もどうぞ。
ポート番号とは — 「どのサービスか」を表す番号
データを相手に届けるには、「どのコンピュータか」だけでは足りません。1台のサーバーは、Webサイト・メール・SSHなどを同時に動かせるからです。そこで、「その中のどのサービスに渡すか」を表す0〜65535の番号が使われます。これがポート番号です。宛先は必ず IPアドレス:ポート番号(例 203.0.113.5:443)の形で指定されます。
IPアドレスとポート番号の違い
2つは担当する層(OSI)が違い、役割が分かれています。IPアドレスの詳細は IPアドレスの仕組み で解説しています。
| IPアドレス | ポート番号 | |
|---|---|---|
| 表すもの | どのコンピュータ(機器)か | その中のどのサービス(アプリ)か |
| 層(OSI) | 第3層(ネットワーク層) | 第4層(トランスポート層) |
| たとえ | 建物の住所 | 部屋番号・入口のドア |
| 範囲 | 32ビット(IPv4) | 0〜65535(16ビット) |
IPアドレスで「相手の機器」まで届き、ポート番号で「その中の正しいアプリ」へ渡される——両方そろって初めて通信相手が決まります。
ウェルノウンポート(代表的な番号)
主要なサービスには、世界共通でポート番号が決められています(0〜1023=ウェルノウンポート)。だから https:// と書くだけで、ブラウザは自動的に443番へつなぎます。試験でも実務でも頻出なので、主要なものは覚えておくと便利です。
| ポート | サービス | 用途 |
|---|---|---|
| 20 / 21 | FTP | ファイル転送 |
| 22 | SSH | 安全なリモート操作 |
| 25 | SMTP | メール送信 |
| 53 | DNS | 名前解決(ドメイン→IP) |
| 80 | HTTP | Web(暗号化なし) |
| 110 | POP3 | メール受信 |
| 443 | HTTPS | Web(暗号化あり) |
ポート番号の範囲は3つに区分されます:0〜1023=ウェルノウン(主要サービス)、1024〜49151=登録済み(特定アプリ用)、49152〜65535=動的/エフェメラル(一時利用)。
送信元ポート(エフェメラルポート)
ここが見落とされがちな点です。宛先(サーバー側)のポートは固定ですが(Webなら443)、送信元(クライアント側)のポートは、接続のたびにOSが空いている番号を一時的に割り当てます。これをエフェメラルポート(動的ポート)と呼び、通信が終わると解放されます。「行きの宛先は443固定、でも自分の送信元ポートは毎回変わる」というわけです。
接続を見分ける「ソケット」— 4つ組
では、1台のPCから同じサイト(同じIP・同じ443番)へ同時に何本も接続したら、応答はどう区別されるのでしょう? 答えがソケットです。1つの接続は、次の4つの組(+プロトコル)で一意に識別されます。
宛先が同じでも、送信元ポートが違えば別の接続。だからブラウザで同じサイトのタブを何個開いても、どの応答がどのタブのものか取り違えません。実際に送るたびに送信元ポートが変わる様子は ポート番号の可視化 で見られます。
TCPとUDP、そしてNAPTとの関係
ポート番号はトランスポート層(TCP・UDP)のヘッダに入ります。TCPの80番とUDPの80番は別物で、独立して管理されます。だから接続の識別には、IP・ポートに加えてプロトコル(TCPかUDPか)も含めます。また、家庭や会社で1つのグローバルIPを多数の端末で共有できるのは、NAPT(IPマスカレード)がポート番号を付け替えて各端末を見分けているからです。この仕組みは NATの可視化 で確認できます。TCPの接続確立(3ウェイハンドシェイク)は TCPコネクションの可視化 をどうぞ。
基本情報技術者試験ではこう出る
「ポート番号は何を識別するか(→アプリケーション/サービス)」「HTTP=80、HTTPS=443、SSH=22、DNS=53、SMTP=25 の対応」「IPアドレスとポート番号の組で通信相手を特定する(ソケット)」「ポート番号は何ビットか(→16ビット、0〜65535)」が定番です。ポート番号がトランスポート層(TCP/UDP)のものである点、NAPTがポート番号で端末を見分ける点もよく問われます。
よくある質問
Q. ポート番号はいくつまで?
A. 16ビットなので 0〜65535 です。0〜1023がウェルノウン、1024〜49151が登録済み、49152〜65535が動的(エフェメラル)ポートです。
Q. なぜ「:80」や「:443」を省略できるの?
A. ブラウザが「httpなら80、httpsなら443」と知っているためです。http://example.com は example.com:80、https://example.com は example.com:443 を意味します。標準以外のポートで動かすときは example.com:8080 のように明示します。
Q. 「ポートが開いている/閉じている」とは?
A. そのポートでサービスが待ち受けているかということです。待ち受けていれば接続でき(開いている)、いなければ拒否されます(閉じている)。使わないポートを開けっぱなしにすると攻撃の入口になるため、ファイアウォールで不要なポートを閉じるのが基本です(ネットワークセキュリティの基礎参照)。
まとめ
ポート番号は、1台のコンピュータの中で「どのサービスに届けるか」を表す番号(0〜65535)。IP=住所、ポート=部屋番号です。宛先はIP:ポートで指定、主要サービスはウェルノウンポート(80/443/22/53…)、送信元ポートは毎回変わるエフェメラルポート、接続はソケット(4つ組)で識別——これらを押さえれば、通信の宛先の考え方がクリアになります。可視化で送るたびの動きを確かめておきましょう。
関連ページ: ポート番号の可視化 / TCPコネクションの可視化 / NATの可視化 / IPアドレスとMACアドレスの違い / 記事一覧