ポート番号とは?ゆるーくわかりやすく解説



1. ポート番号とは何か?
ポート番号は、インターネットやネットワークを通じて、さまざまなデバイスやアプリケーション間でデータの送受信を管理するための「出入り口の番号」のようなものです。データがどこに向かうか、どのアプリケーションで処理されるべきかを特定するために使われます。
ネットワーク上のデバイスには、通常、IPアドレスという住所のようなものが割り振られています。しかし、IPアドレスだけでは、どのプロトコルで通信を行うかがわかりません。そこで、ポート番号を使って、データが正しい場所に届けられるようにします。IPアドレスが「家の住所」だとしたら、ポート番号は「部屋番号」のようなものと考えるとわかりやすいでしょう。
2. ポート番号の役割
2.1. 通信の「宛先」を特定する
ネットワーク上でデータが送受信される際、どのアプリケーションにデータを届けるべきかを特定するために、ポート番号が使用されます。例えば、あるデバイスがIPアドレスを持っているとしても、そのデバイス上で複数のアプリケーションが動作している場合、ポート番号がないとデータがどのアプリケーションに向けて送信されるべきかが分かりません。ポート番号は、送信先アプリケーションの通信を識別するための「宛先ラベル」として機能します。
2.2. 複数の通信を同時に処理する
ポート番号のおかげで、同じデバイス上で複数の通信を同時に行うことが可能です。たとえば、ブラウザでWebページを閲覧しながら、同時にメールを受信したり、ファイルをダウンロードしたりすることができます。それぞれの通信には異なるポート番号が割り当てられているため、データが適切なアプリケーションに分配され、混乱なく同時に処理が行われます。
2.3. サービスの種類を判別する
一般的なサービスには決まったポート番号が割り当てられており、これによってどのサービスが利用されているかを判別できます。たとえば、Webサイトの閲覧にはHTTP(ポート80)やHTTPS(ポート443)が使われます。また、メールの送信にはSMTP(ポート25)、ファイル転送にはFTP(ポート20と21)が割り当てられています。ポート番号によってサービスが区別されることで、ネットワーク通信がよりスムーズに行われるようになっています。
3. ポート番号の構造
ポート番号は0から65535までの範囲で指定されており、16ビットの番号として扱われます。この範囲内で、役割に応じて以下のように分類されています。



3.1. ウェルノウンポート (0-1023)
ウェルノウンポートとは著名なプロトコルに割り当てられるためのポート番号です。例えば、Webサイトの閲覧に使う「HTTP」はポート80、セキュリティを強化した「HTTPS」はポート443が使用されます。
3.2. 登録ポート (1024-49151)
IANAによって割り当てられるポート番号です。例えば、データベースの「MySQL」はポート3306が使われます。また、Jupyter-labを起動したときには、ポート番号8888が使われます。
3.3. ダイナミック/プライベートポート (49152-65535)
一時的な通信のために使用されるポートで、通常はクライアントが自動的に割り当てるため、特に決まった役割はありません。


4. ポート番号の具体例
4.1. HTTP通信
Webサイトを閲覧するときに使用するHTTPは、通常、ポート80を利用します。
4.2. HTTPS通信
暗号化された通信を行うために、ポート443が使用されます。
4.3. FTP (ファイル転送プロトコル)
ファイルのアップロードやダウンロードに使われ、ポート20および21が割り当てられています。
4.4. メールの送受信
SMTP(送信)はポート25、POP3(受信)はポート110、IMAPはポート143などが使われます。
5. ポートスキャンとセキュリティ
ポートは通信の入り口であるため、悪意のある攻撃者が侵入の手がかりを得ようとポートスキャンを行うことがあります。ポートスキャンは、開いているポートを見つけ出し、利用可能なポート番号を探る手法です。セキュリティの観点から、使用しないポートは閉じるか、ファイアウォールで保護することが重要です。