ポート番号とは
ポート番号とは、インターネット通信において、コンピュータの中で「どのアプリケーション(プログラム)が通信を待ち受けているか」を識別するための「部屋番号(窓口番号)」のことです。0から65535までの数値で表されます。
IPアドレスが「建物全体の住所」であるのに対し、ポート番号はその建物の中にある「どの部屋(サービス)宛てなのか」を指定します。これにより、1台のコンピュータが同時にWebブラウザを開き、メールを受信し、動画を再生するといった複数の異なる通信を混乱することなく処理できます。中でも、Web通信の80番やメール送信の25番など、世界的に用途が決められている有名なポート番号を「ウェルノウンポート(0〜1023)」と呼びます。
具体例
大きな総合病院(1台のサーバー)に例えて考えてみましょう。
- 病院の住所(IPアドレス)を目指して、多くの患者(データ)がやってきます。
- 病院の玄関を入ると、「内科は80番の部屋」「眼科は25番の部屋」「耳鼻科は110番の部屋」というように、目的ごとに部屋(ポート番号)が分かれています。
- Webサイトを見たいデータは「80番の部屋(Webサーバー)」へ行き、メールを送りたいデータは「25番の部屋(メールサーバー)」へ行くことで、1人の医師(コンピュータ)が複数の患者を混同せずに対応することができます。
もう少し詳しく
ポート番号は、OSI基本参照モデルの第4層(トランスポート層)で扱われる16ビットの識別子です。そのため、指定可能な数値の範囲は「0から65535」までとなります。この数値は、国際的な組織であるIANA(Internet Assigned Numbers Authority)によって管理されており、役割に応じて以下の3つのレンジに大きく分類されています。
- ウェルノウンポート(0〜1023):インターネットの基盤となる標準的なアプリケーションプログラムがあらかじめ予約して使用するポート番号です。サーバー側で稼働する各種デーモン(サービス)が固定で待ち受けます。代表例として、SSH(22番)、DNS(53番)、HTTP(80番)、POP3(110番)、HTTPS(443番)などがあります。
- 登録ポート(1024〜49151):特定のベンダーの製品や、業界で標準的な特定のサービスプログラム用にIANAに申請・登録されているポートです。例えば、Oracle Databaseの「1521番」や、Microsoft SQL Serverの「1433番」などのデータベースサーバー用ポートがこれに該当します。
- ダイナミックポート / プライベートポート(49152〜65535):特定の用途が一切決められていない自由なポートです。PCやスマホなどの「クライアント側」がサーバーにアクセスを開始する際、自身のオペレーティングシステム(OS)によって送信元ポート番号として動的・一時的にランダムな番号(例:50302番)が割り当てられます。通信が切断されると、この番号は再び空きポートとして再利用可能になります。
TCPとUDPは、トランスポート層においてそれぞれ個別にポート番号を持っています。そのため、「TCPの53番」と「UDPの53番」(どちらもDNSが利用します)は、それぞれ別の独立したソケット(通信の受け口)として扱われます。
試験でのポイント
情報処理技術者試験において、ポート番号は暗記必須の頻出分野です。特に以下の主要なアプリケーションサービスが使用する「ウェルノウンポート番号」の組み合わせは、直接的に結びつきを問う問題が毎年出題されます。
- FTP:20(データ用)および21(制御用)
- SSH:22
- DNS:53
- HTTP:80
- POP3:110
- IMAP:143
- HTTPS:443
また、セキュリティの重要な手法として「ポートスキャン」があります。これは、対象のサーバーにある「0〜65535」のポートに対してパケットを順次送信し、応答があるかどうかを確かめることで、サーバー上でどんなサービスが稼働しているか、どのポートが開いているか(脆弱性があるか)を調査する攻撃準備行為です。これに対抗するため、ファイアウォールなどの機器を用いて「不要なポートを遮断する(ポートを閉じる)」という防御設定が必須であるという点も出題ポイントです。
関連する用語
ポート番号に関連する重要な概念には、ネットワーク上の住所「IPアドレス」、信頼性のある転送「TCP」、高速な転送「UDP」、予約された代表番号「ウェルノウンポート」、ポートの稼働状態を盗み見る「ポートスキャン」、特定のポートの通信を遮断する「ファイアウォール」などがあります。