Featured image of post 【超初心者向け】ポート番号とは何か?IPアドレスと組み合わせてサービスを識別する仕組みをやさしく解説

【超初心者向け】ポート番号とは何か?IPアドレスと組み合わせてサービスを識別する仕組みをやさしく解説

ポート番号とは、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番を使用