サービスを特定するポート番号

 「Outlook」や「Thunderburd」などの電子メールソフトウェアでは、ポート番号を入力する欄があります。

 電子メールソフトウェアでは、POP3やSMTPなどのポート番号を指定する必要があります。これらの番号は、インターネットサービスプロバイダに加入すると送られてくる設定情報に記載されています。

この番号は、何のために必要なのでしょうか?

 通信では、様々なアプリケーションのデータがやり取りされています。例えば、メーラーとブラウザを同時に起動している場合、メールデータはメーラに渡され、ホームページの閲覧結果のデータは、ブラウザに渡されています。

 メールがブラウザで表示され、ホームページの閲覧結果がメーラで表示されることもないはずです。IPでの通信では、通信相手のコンピュータまでが特定できますが、コンピュータの間でやりとりする様々なサービスを識別する仕組みがありません。

 それでは、どのようにして、受信したデータを識別して正しい宛先のアプリケーションに渡すことができたのでしょうか?

 それは、ポート番号というサービスを識別するための番号を使っているからです。逆に、ポート番号がなければ、受信するアプリケーションデータをどのアプリケーションに渡してよいのかが分からないのです。

つまり、ユーザー側のクライアントソフトがサーバのサービスを受けようとする場合

  • IPアドレス ・・・ 「どのコンピュータ」
  • ポート番号 ・・・ 「どのサービス」

かが決まるようになっています。

 これが、TCP/IPにおける通信の大原則となっています。このように、ネットワークの仕組みの中で、サービスを識別するポート番号は、重要な役割をします。

主要なプロトコルとポート番号

 ポート番号には、ウェルノウンポートと呼ばれるものがあります。この番号は、一般的によく使われる既存のサービス用に予約されているポートで、「0~1,023」番までの範囲で定義されています。

代表的なウェルノウンポート番号は、以下の通りです。

◆代表的ななTCPのウェルノウンポート

ポート番号サービス名説明
20ftp-dataFile Transfer [Default Data]
21ftpFile Transfer [Default Data]
22sshSSH Remote Login Protocol
23telnetTelnet
25smtpSimple Mail Transfer
53domainDomain Name Server
67bootpsBootstrap Protocol Server
68bootpcBootstrap Protocol Client
70gopherGopher
79fingerFinger
80www-httpWorld Wide Web HTTP
88kerberosKerberos
110pop3Post Office Protocol – Version 3
119nntpNetwork News Transfer Protocol
123ntpNetwork Time Protocol
137netbios-nsNETBIOS Name Service
138netbios-dgmNETBIOS Datagram Service
139netbios-ssnNETBIOS Session Service
161snmpSNMP
162snmptrapSNMPTRAP
179bgpBorder Gateway Protocol
443httpshttp protocol over TLS/SSL
445microsoft-dsMicrosoft-DS
636ldapsldap protocol over TLS/SSL

ポート番号は、2バイトで、「0~65,535」までの整数値をとります。

この番号には、範囲ごとに3つのカテゴリに分けられています。

ポート番号カテゴリ
0~1,023ウェルノウン(Well-Known)ポート
1,024~49,15レジスタード(Resistered)ポート
※あらかじめ予約されています。IANAに申請することで割り当てられます。
49,152~65,535ダイナミック(Dynamic)ポート、または、プライベート(Private)ポートと呼ばれています。

 ユーザーが独自のサービスを行うためにポート番号を設定する時には、予約されているポート番号を避けなければなりません。

それでは、ポート番号は、2バイトしかないため、すぐに枯渇してしまうのでは?

 と思われるかもしれませんが、ポート番号はIPアドレスとは異なり、1台のパソコンの中で完結する番号なので、枯渇の心配は、ほとんどないと言えます。