この記事では、ネットワークやコンピュータに関する用語「ポート(PORT)」について、以下の内容を図を用いてわかりやすく解説します。
- ポートとは
- ポートが必要な理由
- 代表的なポート番号
- ポートの種類
- サーバー側のポートの特徴
- パソコン側(クライアント)のポートの特徴
ポートとは
ポート(PORT)は、ネットワークからコンピュータにデータを送受信する際に使われる「扉(ドア)」のようなものです。
コンピュータを家に例えて考えると分かりやすいです。
- IPアドレスは「家」の「住所」に相当します。
- ポート番号は「家」の「部屋のドア番号」に相当します。
「家(コンピュータ)」の「住所(IPアドレス)」に「郵便物(データ)」が届くとき、それがどの「部屋(アプリケーションやサービス)」に届けるべきかをポート番号が教えてくれます。
ポートが必要な理由
結論から述べると、ポート番号が必要な理由は、IPアドレスだけでは通信相手の「どのサービス」や「どのアプリケーション」にデータを送るべきかを特定できないからです。実際には、IPアドレスで通信相手の「住所」を特定し、ポート番号で通信相手の「部屋(アプリケーションやサービス)」を指定して通信しています。
IPアドレスはインターネット上の「住所」に相当します。例えば、郵便物を送るときに相手の家の「住所」が必要なように、インターネットでデータを送るには相手のIPアドレスが必要です。上図の例だと192.168.1.1
がIPアドレス、example.com
がそのホスト名です。
しかし、IPアドレスだけでは通信相手の「どのサービス」や「どのアプリケーション」にデータを送るべきかを特定できません。その特定を行うのがポート番号の役割です。ポート番号は、IPアドレス(住所)の「部屋番号」に相当します。たとえば、以下に示すようにポート番号を指定することで、データは適切なサービスやアプリケーションに届けられます。
- Webページ(HTTP通信):ポート番号80
- 暗号化されたWebページ(HTTPS通信):ポート番号443
- ファイル転送(FTP):ポート番号21
- メール送信(SMTP):ポート番号25
代表的なポート番号
以下に代表的なポート番号を表形式でまとめました。
ポート番号 | プロトコル | 説明 |
20, 21 | FTP | ファイル転送 (20はデータ送信用、21はFTPの制御用) |
22 | SSH | 暗号化されたリモートログイン用 |
23 | Telnet | 暗号化されないリモートログイン用 (現在はほとんど使用されない) |
25 | SMTP | メール送信用 |
53 | DNS | ドメイン名をIPアドレスに変換 |
67, 68 | DHCP | IPアドレスの動的割り当て (67: サーバー用、68: クライアント用) |
80 | HTTP | Webページ表示用 |
110 | POP3 | メール受信用 (サーバーからメールを取得) |
143 | IMAP | メール受信用 (サーバー上で管理) |
443 | HTTPS | 暗号化されたWebページ表示用 |
ポートの種類
ポートは、その用途によって、ウェルノウンポート、登録ポート、ダイナミックポート(エフェメラルポート)があります。
- 0~1023(ウェルノウンポート)
- 一般的なサービスに使用されるポート番号です。
- 1024~49151(登録ポート)
- 特定のアプリケーションが登録して使用するポート番号です。
- 例えば、MySQLでは3306番を使用します。
- 49152〜65535(ダイナミックポート、エフェメラルポート)
- クライアント側(パソコンなど)が自動で割り当てるポート番号です。
サーバー側のポートの特徴
サーバー側のポート(ドア番号)は、固定された番号が使用されており、常に開いた状態で外部からの通信を受け付けています。これにより、特定のサービスやアプリケーションにデータを届けることができます。
たとえば、通常のホームページの表示を行うhttp://~
は「80番」ポートが入り口となっており、80番ポートが常に開かれた状態でアクセスがあるのを待っています。
同様に、https://~
は「443番」ポートが入り口となっており、443番ポートが常に開かれた状態でアクセスがあるのを待っています。なお、443番ポートが開いていないサーバーにhttps://
でアクセスしてもエラーとなります。
サーバー側では、必要なポートだけを開き、それ以外は閉じることで安全な通信が可能になります。
パソコン側(クライアント)のポートの特徴
パソコン側(クライアント)は、セキュリティ等のため、ポート番号が動的に割り当てられます。通信が必要なときだけ毎回異なる番号(例: 49152~65535)のポート(ドア番号)を開けて、通信終了後に閉じられます。動的に割り当てをするため、ポート番号を指定することができません。
例えば、Webページ(例: http://example.com
)を表示する場合に、ポートがどのようになっているのかを説明します。
Webページが表示されるまでの流れ
- パソコン側(クライアント)が、自分の動的なポート番号(例:49230番)を開く。
- サーバーの80番ポートに「このWebページを見せて!」とリクエストを送る。
- サーバーは、80番ポートでリクエストを受け取り、Webページのデータをパソコンに返す。
- パソコンはデータを受け取った後、Webページを表示して、動的に開いた「49230番ポート」を閉じる。
パソコン側(クライアント)では、使用の都度ポートを開閉することで安全な通信が可能になります。ポートを開けたままだと、外部からの侵入リスクが高まります。
本記事のまとめ
この記事では「ポート(PORT)」について、以下の内容を説明しました。
- ポートとは
- ネットワークからコンピュータにデータを送受信する際に使用される「扉」のような役割。
- IPアドレス:家の「住所」に例えられる。
- ポート番号:家の「部屋のドア番号」に例えられる。
- ポートが必要な理由
- IPアドレスだけでは、通信相手の「どのサービス」や「アプリケーション」を特定できないため。
- ポート番号によってデータが適切なサービスに届けられる。
- 例:HTTPはポート80、HTTPSはポート443。
- ポートの種類
- ウェルノウンポート(0〜1023):一般的なサービス用(例:HTTP=80、HTTPS=443)。
- 登録ポート(1024〜49151):特定アプリケーション用(例:MySQL=3306)。
- ダイナミックポート(49152〜65535):クライアントが動的に割り当て。
- サーバー側のポート
- 必要なポートを固定して開放することで、外部からの通信を受け付ける。
- 開けたままのポートはサービスの玄関口として機能する(例:HTTP=80)。
- クライアント側のポート
- 動的に割り当てられ、通信終了後に閉じることでセキュリティを確保。
- 例:Webページ表示時はクライアントがポートを開閉して通信。
- 安全な通信のポイント
- サーバー側では不要なポートを閉じる。
- クライアント側では通信終了後にポートを閉じる。
お読み頂きありがとうございました。