ポート番号(ポートバンゴウ)とは | 意味や読み方など丁寧でわかりやすい用語解説
ポート番号(ポートバンゴウ)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。
読み方
日本語表記
ポート番号 (ポートバンゴー)
英語表記
port number (ポートナンバー)
用語解説
「ポート番号」は、ネットワーク通信において、IPアドレスと並び、データが正しく目的のサービスやアプリケーションに届けられるために不可欠な識別子である。IPアドレスがインターネット上の「どのコンピュータ」を特定するかを示す住所だとすれば、ポート番号はそのコンピュータ内部の「どのサービス、どのアプリケーション」にデータを送るか、あるいはそこからデータを受け取るかを識別するための「ドアの番号」のようなものだと理解できる。具体的には、TCP/IPプロトコルにおいて、TCP(Transmission Control Protocol)やUDP(User Datagram Protocol)のヘッダに含まれる16ビットの数値で、0から65535までの範囲で利用される。これにより、一台のコンピュータが同時に複数のネットワークサービスを提供したり、複数のクライアントアプリケーションが同時にネットワーク通信を行ったりすることが可能になる。
なぜポート番号が必要なのか、その詳細を見ていこう。現代のコンピュータは、Webブラウザ、メールクライアント、ファイル転送プログラムなど、多数のアプリケーションを同時に実行できる。また、サーバコンピュータは、Webサーバ、メールサーバ、データベースサーバなど、複数の異なるサービスを同時に提供するのが一般的である。もしIPアドレスだけで通信相手を特定するならば、あるコンピュータに届いたデータが、どのアプリケーション宛てなのか、あるいはどのサービス宛てなのかを区別する方法がない。そこでポート番号が導入された。データがIPアドレスによって宛先コンピュータに到達した後、ポート番号がそのデータを受け取るべきアプリケーションやサービスを正確に指定する役割を果たす。これにより、WebサーバはHTTPリクエストを、メールサーバはSMTPリクエストを、それぞれ自身の担当ポートで待ち受け、適切な処理を行うことができる。クライアント側も同様に、Webブラウザからの応答はWebブラウザが利用しているポートで受け取り、メールクライアントからの応答はメールクライアントが利用しているポートで受け取ることで、複数の通信が混在することなく円滑に処理される。
ポート番号には、送信元ポート番号と宛先ポート番号の二種類がある。宛先ポート番号は、文字通りデータが送られる先のアプリケーションやサービスが待ち受けているポートを指定する。例えば、Webサイトを閲覧する際には、通常HTTP通信であれば80番ポート、HTTPS通信であれば443番ポートが宛先ポート番号として使用される。これらのポートは、そのサービスに固有の「予約された番号」として広く知られており、「ウェルノウンポート」と呼ばれる。一方、送信元ポート番号は、データを送信する側のアプリケーションが一時的に使用するポートである。これは通常、49152から65535の範囲で動的に割り当てられ、「エフェメラルポート」または「動的ポート」と呼ばれる。この送信元ポート番号があることで、一台のクライアントコンピュータから同じWebサーバに対して複数のタブで接続したり、複数のクライアントが同時に同じWebサーバに接続したりしても、それぞれの通信セッションが混同されることなく区別され、適切な応答が正しいクライアント、正しいアプリケーションに戻される仕組みが実現されている。
ポート番号はその用途によって大きく三つのカテゴリに分けられる。 一つ目は「ウェルノウンポート(Well-known ports)」で、0から1023までの範囲のポートである。これらはインターネット上で広く利用される代表的なサービスに割り当てられており、IANA(Internet Assigned Numbers Authority)という組織によって管理・公開されている。例えば、WebサーバがHTTP通信で利用するポート番号は80番、HTTPS通信では443番、ファイル転送プロトコル(FTP)では21番、セキュアシェル(SSH)では22番、電子メール送信プロトコル(SMTP)では25番、ドメイン名システム(DNS)では53番、電子メール受信プロトコル(POP3)では110番といった具合である。これらの番号を知ることで、クライアントは特定のサービスに接続する際にどのポートを指定すればよいかを迷うことなく判断できる。 二つ目は「登録済みポート(Registered ports)」で、1024から49151までの範囲のポートである。これらは特定のアプリケーションやサービスのためにIANAに登録されることがあるが、ウェルノウンポートほど厳密な制約はなく、開発者が独自のアプリケーションのために比較的自由に利用することも多い。 三つ目は「動的/プライベートポート(Dynamic/Private ports)」で、49152から65535までの範囲のポートである。これらは「エフェメラルポート」とも呼ばれ、クライアントが通信を開始する際にOSが一時的に割り当てるポートとして使用される。これらのポートは通信が終了すると解放され、再利用される。サーバがサービスを提供する際にこの範囲のポートを固定的に利用することは通常ない。
ポート番号は、ネットワークセキュリティにおいても重要な役割を担っている。ファイアウォールは、特定のIPアドレスからの通信だけでなく、特定のポート番号への、または特定のポート番号からの通信を許可したり、ブロックしたりすることで、不正なアクセスやサービスへの攻撃を防ぐことができる。例えば、WebサーバがHTTP(80番ポート)とHTTPS(443番ポート)のみを提供している場合、ファイアウォールでこれら以外のポートへの通信をすべてブロックすることで、不要なサービスへのアクセス経路を閉じ、セキュリティリスクを低減できる。また、攻撃者がネットワーク上のコンピュータがどのようなサービスを提供しているかを調べるために「ポートスキャン」という手法を用いることがある。これは、あるIPアドレスに対して様々なポート番号への接続を試み、応答があったポートから稼働しているサービスを特定する試みである。このように、ポート番号は単なる識別子にとどまらず、ネットワークの構成、運用、そしてセキュリティ管理において、その存在が不可欠な要素となっている。IPアドレスがデータの大まかな届け先を示すのに対し、ポート番号はその届け先コンピュータ内でデータを処理すべき最終的なサービスやアプリケーションをピンポイントで指定することで、複雑なネットワーク環境における正確で効率的なデータ伝送を実現しているのである。