FE EXAM

ポート番号(アプリの識別番号)

1台の機器内で通信するアプリケーションを識別するための番号。

DIAGRAM
IPアドレス(機器)
ポート番号(アプリ)
1つのIPアドレスに届いたデータを、ポート番号で各アプリへ振り分ける1台のPC(サーバ)IP: 192.168.1.10:80Webサーバ:25メールサーバ:21FTPサーバ外部から届いたデータ宛先192.168.1.10: 80IPで機器に到着 → ポートでアプリへIPアドレス=マンションの住所ポート番号=部屋番号
解説

📌
ポート番号とは

住所=IP192.168.1.10マンション:80(部屋):25(部屋)

ポート番号とは、1台の機器の中で動いている複数のアプリケーション(通信相手のソフト)を見分けるための番号です。データが機器に届いた後、「どのアプリに渡せばよいか」を判断するために使います。

通信の宛先は 192.168.1.10:80 のように「IPアドレス:ポート番号」の形で表されます。
IPアドレス(=機器の住所):どの機器に届けるかを決める
ポート番号(=アプリの窓口):機器内のどのアプリに渡すかを決める

身近な例で考えると、マンションの住所と部屋番号に似ています。住所(IPアドレス)だけでは建物までしか届きませんが、部屋番号(ポート番号)まで指定すれば特定の住人(アプリ)に荷物が届きます。上の図解では、同じIPに届いたデータがポート番号で各アプリに振り分けられる様子を示しています。

📌
範囲(0-65535)

16ビット → 2^16 = 65536 通りbbbbbbbbbbbbbbbb0 〜 65535

ポート番号は16ビットで表されます。そのため、とり得る値は 0 〜 65535 の範囲で、全部で65536通りあります(2の16乗)。

計算式は次のとおりです。
表現できる個数2^16 = 65536
最小値0
最大値65535(= 65536 − 1)

0から数え始めるので最大値は65536ではなく65535になる点に注意しましょう。IPアドレス(機器の住所)が世界に1つを指すのに対し、ポート番号は「その機器の中の窓口の番号」なので、機器ごとに同じ番号を使い回せます。たとえば、どのWebサーバも基本的に同じ80番でアクセスできます。

📌
ウェルノウン/エフェメラル

ポート番号の3つの区分ウェルノウン0-1023登録済み1024-49151エフェメラル49152-65535サーバ側=固定 / クライアント側=一時的

65536個のポート番号は、用途によって大きく3つの区分に分けられています。
ウェルノウンポート(0〜1023):HTTPやFTPなど主要なサービスにあらかじめ予約された番号
登録済みポート(1024〜49151):特定のアプリケーション用に登録された番号
エフェメラルポート(49152〜65535):通信のたびに一時的に割り当てられる番号

サービスを待ち受けるサーバ側は、相手が迷わず接続できるように決まった番号(ウェルノウンポート)を使います。一方、接続しに行くクライアント側は、その都度OSが空いている番号を一時的に貸し出します。これがエフェメラルポート(動的ポート)です。

身近な例で考えると、お店の電話番号(ウェルノウンポート)は誰でもかけられるよう固定されていますが、こちらからかける自分の電話(エフェメラルポート)はそのとき使える回線が割り当てられる、というイメージです。次のページではウェルノウンポートをくわしく見ていきます。

📌
通信を区別する仕組み

サーバ:80PC-A :51000PC-B :52000同じ:80でも送信元が違えば別の通信

通信では、宛先のポート番号だけでなく送信元のポート番号も使われます。1つの通信は、「送信元IP : 送信元ポート」と「宛先IP : 宛先ポート」の組み合わせで1本ずつ区別されています。

だから、たくさんのPCが同じWebサーバの80番に同時につないでも、通信が混ざりません。
宛先:どのPCから見ても サーバのIP : 80(固定)
送信元:PCごと・接続ごとに違うポート(例:PC-Aは 51000、PC-Bは 52000
・サーバはこの4つの情報の組で「どのPCのどの通信か」を見分ける

身近な例で考えると、お店の同じ受付窓口(80番)に複数のお客さんが同時に来ても、受付が「誰から来たか(送信元)」で取り違えずに応対できるのと同じです。上の図のように、宛先が同じ :80 でも、送信元が違えば別々の通信として扱われます。

📌
TCP・UDPごとのポート番号

ポート番号は TCP用 と UDP用 の2系統TCP用確実に届けるUDP用速さ優先方式が違うので 0〜65535 を別々に持つ

じつはポート番号には、「TCP用」と「UDP用」の2系統があります。だから TCPの80番UDPの80番 は、番号は同じでもまったく別の窓口です。

なぜ2系統に分かれているのか。それは、TCPとUDPが「データの届け方」が違う2つの方式だからです。役割が違うので、ポート番号もそれぞれが別に持っています。
TCP:確実さを重視。順番どおりに届け、抜けたら送り直す(Web・メールなど)
UDP:速さを重視。届いたか確認しない代わりに速い(動画・音声・オンラインゲームなど)

なぜ同じ番号が両方で使えるのか。データが機器に届くと、OS(=基本ソフト)はまず「TCPかUDPか」を見分け、そのあとでポート番号からアプリを選びます。つまり宛先は「方式+ポート番号」の組で決まるため、方式が違えば同じ番号でも別の相手になるのです。

たとえば DNS(=ドメイン名からIPアドレスを調べる仕組み)は、ふだんの小さな問い合わせを UDPの53番、大きなデータのやり取りを TCPの53番 というように、同じ53番をTCPとUDPで使い分けています。番号は同じでも別系統だからこそ、両方を同時に使えるのです。

📌
よく使われるポート番号

ウェルノウンポート(0〜1023)の中でも、とくによく登場する代表的なものを挙げます。番号と役割をセットで覚えておくと、通信の宛先を見たときに「何の通信か」が見当をつけられます。

ポートサービス役割
20 / 21FTPファイル転送
22SSH暗号化された遠隔操作
25SMTPメールの送信
53DNS名前解決(ドメイン名→IP)
80HTTPWeb(暗号化なし)
110POP3メールの受信(取り出す)
143IMAPメールの受信(サーバで管理)
443HTTPSWeb(暗号化あり)

たとえば https://example.com にアクセスすると、暗号化ありの HTTPS=443番 が使われます。番号を自分で入力しなくても、ブラウザがサービスごとに決まったポートへ自動でつなぎに行きます。まずは 80(HTTP)・443(HTTPS)・22(SSH)・25(SMTP)・53(DNS) から押さえると覚えやすいです。

練習問題

🎯
基本情報技術者 練習問題

Q1.ポート番号の役割の説明として最も適切なものはどれか。
A.インターネット上で機器そのものを特定するための番号
B.1台の機器の中で動く複数のアプリケーション(通信相手)を識別するための番号
C.データを暗号化するための鍵の番号
D.LANケーブルを差し込む物理的な差込口の番号
Q2.ポート番号がとり得る値の範囲として正しいものはどれか。
A.0〜255
B.0〜1023
C.0〜65535
D.1〜4294967295
Q3.Webブラウザがサーバへアクセスするとき、ブラウザ側(送信元)に一時的に割り当てられるポート番号の種類はどれか。
A.ウェルノウンポート(0〜1023)
B.エフェメラルポート(49152〜65535など)
C.MACアドレス
D.デフォルトゲートウェイ

関連コンテンツ