ポート番号とは、IPアドレスと組み合わせて「どの機器の、どのサービスへ届けるか」を指定するための番号です。同じ機器でも、Web閲覧・メール・ファイル転送などの用途ごとに別々のポート番号が割り当てられています。この記事では、ポート番号がなぜ必要なのか・どう使われているのかを、具体例を交えてやさしく解説します。
はじめに
これまでの記事で、IPアドレス(インターネット上の「住所」)、ルーター(データの「道案内役」)、DNS(ドメイン名をIPアドレスに変換する「電話帳」)について学んできました。
これらの仕組みによって、データは正しいサーバーまで届けられます。しかし、IPアドレスだけでは「サーバーのどの機能へ届けるか」を指定することができません。
その問題を解決するのが、今回のテーマ「ポート番号」です。
まず確認:スイッチングハブの「ポート」とは別物
「ポート」という言葉は、スイッチングハブの記事でも登場しました。しかし、スイッチングハブの「ポート」と今回学ぶ「ポート番号」は、まったく異なる概念です。
| スイッチングハブのポート | ポート番号 | |
|---|---|---|
| 種類 | 物理的な接続口(ケーブルを差し込む穴) | 論理的な番号(ソフトウェア上の窓口) |
| 目的 | 機器をケーブルでつなぐ | アプリケーションやサービスを識別する |
| 例 | ハブの側面にある差し込み口 | HTTP:80番、HTTPS:443番 |
スイッチングハブのポートは目に見える「物理的な穴」です。一方、ポート番号はソフトウェアの中だけに存在する「論理的な窓口番号」です。同じ「ポート」という言葉が使われていますが、まったく別の概念なので混同しないように注意してください。
なぜポート番号が必要なのか?
IPアドレスだけではデータの届け先として不十分な場面があります。その理由を見ていきましょう。
1台のサーバーは複数のサービスを同時に動かしている
1台のサーバーには、さまざまなサービスが同時に動いていることがあります。たとえば、あるサーバーが同時に「Webサイトの公開」「メールの送受信」「ファイルの転送」を行っているとします。
これら3つのサービスはすべて、同じIPアドレスを持つ同じサーバー上に存在します。IPアドレスだけでは「このサーバーへ届けてほしい」という指示しかできません。「サーバーの中の、どのサービスへ届けてほしいか」を伝える方法が別に必要です。
図:1台のサーバーが複数のサービスを同時に動かす構成
そこで使われるのが ポート番号 です。
ポート番号とは何か
ポート番号 とは、0〜65535の数字で表される識別番号です。サービスごとに番号が決まっており、データの届け先を「IPアドレス+ポート番号」の組み合わせで特定します。
インターネット通信では 192.168.1.1:80 のように「IPアドレス:ポート番号」と表記します。この場合、192.168.1.1 が機器のIPアドレス、80 がポート番号です。「このIPアドレスの機器が持つ、80番のサービスへ届けてほしい」という意味になります。
図:IPアドレスとポート番号の組み合わせで届け先のサービスが変わる
| 用語/英単語 | 意味 | イメージ・補足 |
|---|---|---|
| ポート番号 / Port Number | サービスやアプリケーションを識別するための番号(0〜65535) | 同じIPアドレスの機器でも、ポート番号が違えば届け先のサービスが変わる |
よく使われるポート番号 ― ウェルノウンポート
ポート番号の中でも 0〜1023 の範囲は、主要なサービス向けに世界共通で予約されています。これを ウェルノウンポート と呼びます。
| 用語/英単語 | 意味 | イメージ・補足 |
|---|---|---|
| ウェルノウンポート / Well-known Port | 主要なサービスに予約されたポート番号(0〜1023) | 世界共通で予約された番号。どのサーバーも同じ番号で同じサービスを提供するため、番号を指定するだけで目的のサービスへ接続できる |
代表的なウェルノウンポートを紹介します。
| ポート番号 | 名称 | 用途 |
|---|---|---|
| 80 | HTTP | Webサイトの閲覧(暗号化なし) |
| 443 | HTTPS | Webサイトの閲覧(暗号化あり) |
| 53 | DNS | ドメイン名の名前解決 |
| 22 | SSH | 機器へのリモートログイン |
| 25 | SMTP | メールの送信 |
| 110 | POP3 | メールの受信 |
URLのポート番号は「省略されている」だけ
ブラウザのアドレスバーにはポート番号が表示されませんが、実はウェルノウンポートが省略されているだけです。たとえば https://google.com にアクセスするとき、ブラウザはHTTPSのウェルノウンポートである443番を自動的に補い、https://google.com:443 として接続しています。試しにアドレスバーへ https://google.com:443 と入力してみると、通常通りページが表示されます。「http://〜」の場合は、HTTPのウェルノウンポートである80番が省略されています。
存在しないポート番号を指定するとつながらない
逆に、意図的にポート番号を指定した場合はどうなるでしょうか。https://google.com:9999 とアドレスバーに入力しても、ページは表示されません。Googleのサーバーは9999番ポートでサービスを提供していないため、その番号で待ち受けている窓口が存在しないからです。ウェルノウンポートが世界共通で決まっているのは、「どの番号を叩けばどのサービスに繋がるか」を全員が知っているからこそ通信が成立する、という理由があります。
ポート番号の3つの種類
ポート番号(0〜65535)は、用途に応じて3つの範囲に分類されています。
| 範囲 | 名称 | 用途 |
|---|---|---|
| 0〜1023 | ウェルノウンポート | HTTPやDNSなど主要なサービスに予約されている |
| 1024〜49151 | 登録済みポート | 企業や団体が申請して使用するポート番号 |
| 49152〜65535 | 動的ポート(エフェメラルポート) | 通信のたびに一時的に自動割り当てされる |
3つ目の「動的ポート」について補足します。
あなたのスマートフォンがWebサイトを開くとき、宛先のポート番号は「443(HTTPS)」です。しかしこの通信には、宛先だけでなく 送信元のポート番号 も必要です。
なぜ必要なのでしょうか。1台のコンピューターから、同時に複数の通信が発生することがあるからです。たとえば、ブラウザで3つのタブを開きながら、LINEでもWebページを閲覧しているとします。この場合、スマートフォンは4つの通信を同時に行っています。
図:1台のスマートフォンから複数の通信が同時に発生する様子
サーバーから返ってきたデータはすべて同じスマートフォン(同じIPアドレス)へ届きます。IPアドレスだけでは「どのタブへ」「LINEへ」と振り分けることができません。そこで、各通信にそれぞれ異なる送信元ポート番号を割り当てておくことで、返ってきたデータを正しいアプリ・タブへ届けられるようになります。
この送信元ポート番号に使われるのが動的ポートです。通信を始めるたびに49152〜65535の中からランダムな番号がOS(スマートフォンやパソコンの基本ソフト)によって自動的に割り当てられ、通信が終わると解放されます。
| 用語/英単語 | 意味 | イメージ・補足 |
|---|---|---|
| 動的ポート・エフェメラルポート / Ephemeral Port | 通信ごとに一時的に割り当てられる送信元ポート番号 | コンビニで受け取る「整理番号」のようなもの。用が済めば返却される |
まとめ
- ポート番号 とは、IPアドレスと組み合わせて「どのサービスへ届けるか」を識別するための番号(0〜65535)
- 同じIPアドレスの機器でも、ポート番号が違えば届け先のサービスが変わる
- スイッチングハブの「ポート」(物理的な差し込み口)とは別物なので注意
- 0〜1023は ウェルノウンポート として主要なサービスに予約されている(HTTP:80、HTTPS:443 など)
- 49152〜65535の 動的ポート は通信ごとに送信元ポートとして一時的に割り当てられる
用語表
| 用語 | 意味 |
|---|---|
| ポート番号 | IPアドレスと組み合わせてアプリケーションやサービスを識別する番号(0〜65535) |
| ウェルノウンポート | 主要なサービスに世界共通で予約されたポート番号(0〜1023)。HTTP:80、HTTPS:443など |
| 登録済みポート | 企業や団体が申請して使用するポート番号(1024〜49151) |
| 動的ポート(エフェメラルポート) | 通信のたびにOSが一時的に割り当てる送信元ポート番号(49152〜65535) |
| HTTP | Webページを送受信するための通信の取り決め。ポート番号80番を使用 |
| HTTPS | HTTPを暗号化したもの。ポート番号443番を使用 |