最終更新日:2026年9月22日
fe fe-technology network tcp-ip
まず結論
ポート番号は、コンピュータの中で「どの通信・プログラムにデータを届けるか」を識別するための番号です。
基本情報技術者試験では、まず次の図をイメージしてください。
行き:PC → Webサーバ
PC Webサーバ
50001 ───────────────→ 80
送信元 宛先
戻り:Webサーバ → PC
PC Webサーバ
50001 ←─────────────── 80
宛先 送信元
往復通信では、
戻りのパケットでは、行きの「送信元」と「宛先」が入れ替わる
と考えるのがポイントです。
直感的な説明
IPアドレスとポート番号は、住所と部屋番号で考えると分かりやすくなります。
IPアドレス
↓
建物の住所
ポート番号
↓
部屋番号
IPアドレスによって通信相手のコンピュータまで届けられても、そのコンピュータでは複数のプログラムが動いています。
PC
┌──────────────────┐
│ 50001番 ← Web通信 │
│ 50002番 ← 別の通信 │
│ 50003番 ← 別の通信 │
└──────────────────┘
そこでポート番号を使って、どの通信へデータを渡すかを区別します。
英語では、IP address identifies the host, port number identifies the service/process と整理するとイメージしやすいです。
Web通信を図で追ってみる
PCからWebサーバへHTTPの要求を送る例を考えます。
① PCから要求
PC Webサーバ
50001 ─── HTTP要求 ───→ 80
このとき、
- 送信元ポート番号:50001
- 宛先ポート番号:80
です。
Webサーバが返事をすると、
② Webサーバから応答
PC Webサーバ
50001 ←── HTTP応答 ──── 80
となります。
今度は、
- 送信元ポート番号:80
- 宛先ポート番号:50001
です。
つまり、
行き
50001 → 80
戻り
50001 ← 80
と考えればOKです。
定義
TCPやUDPでは、通信するアプリケーションやサービスを識別するために16ビットのポート番号を使用します。
ポート番号の範囲は0~65535です。
IANAでは、おおまかに次のように区分されています。
| 範囲 | 区分 | ポイント |
|---|---|---|
| 0~1023 | System Ports | HTTPなど代表的なサービスで使われる |
| 1024~49151 | User Ports | 登録されたアプリケーションなどで使われる |
| 49152~65535 | Dynamic/Private Ports | 一時的な通信などで利用される |
試験では、古い資料や説明で名称が異なる場合があります。まずは0~1023に代表的なサービスのポート番号があることと、クライアント側では一時的なポート番号が使われることを押さえれば十分です。
代表例として、
HTTP → 80
HTTPS → 443
があります。
送信元ポートと宛先ポート
パケットには、
送信元ポート番号
宛先ポート番号
の両方があります。
例えば、
PC:50001 → Webサーバ:80
なら、
送信元 = PCの50001
宛先 = Webサーバの80
です。
どんな場面で使う?
Webサイトを見る
ブラウザからWebサーバへHTTP通信する場合、
ブラウザ
│
│ 宛先 80
▼
Webサーバ
のように、サーバ側のサービスをポート番号で指定します。
同じPCで複数の通信を行う
同じPCから複数の通信を行っていても、ポート番号によって区別できます。
PC
50001 ───→ WebサーバA
50002 ───→ WebサーバB
50003 ───→ 別サービス
戻ってきたデータについても、宛先ポート番号を見ることで、どの通信へ渡すべきか判断できます。
よくある誤解・混同
戻りも「50001 → 80」になる
違います。
通信方向が逆になるので、
行き
PC:50001 → Server:80
戻り
PC:50001 ← Server:80
です。
表にするとさらに分かりやすくなります。
| 通信 | 送信元 | 宛先 |
|---|---|---|
| PC → Webサーバ | 50001 | 80 |
| Webサーバ → PC | 80 | 50001 |
戻りでは送信元と宛先を入れ替えると判断します。
Web通信なら両方とも80番
これも違います。
80番はHTTPサービスを提供するWebサーバ側で使われる代表的なポート番号です。
クライアント側では、その通信を識別するための別のポート番号が使われます。
PC Webサーバ
50001 ─────────→ 80
IPアドレスがあればポート番号はいらない
IPアドレスだけでは、通信先のコンピュータまでは識別できても、その中のどのサービス・通信へ届けるかを区別できません。
IPアドレス
「どのコンピュータ?」
ポート番号
「その中のどの通信・サービス?」
この2つを分けて考えます。
50001という番号を暗記する
暗記する必要はありません。
問題文で、
PC側 = 50001
Webサーバ側 = 80
と与えられているなら、重要なのは番号そのものではなく通信方向です。
まとめ(試験直前用)
- IPアドレス → どのコンピュータか
- ポート番号 → その中のどの通信・サービスか
- HTTPの代表的なポート番号は80
- パケットには送信元ポートと宛先ポートがある
- 往復通信では送信元と宛先が入れ替わる
- 問題文でクライアント側のポート番号が指定されていたら、その番号を使って考える
- 動的ポートの具体的な番号を暗記する必要はない
試験中は、問題文の横に次のように書くだけでも判断しやすくなります。
行き:50001 → 80
戻り:50001 ← 80
「戻りは矢印を逆にする」――まずこれを図にすると、送信元と宛先を取り違えにくくなります。