ポート番号 【port number】
概要
ポート番号(port number)とは、IPで通信する際、同じコンピュータ内で動作する複数のソフトウェアのどれが通信するかを指定するための番号。一台のコンピュータで複数の異なるソフトウェアが並行して通信できるようにする。IP(Internet Protocol)はインターネットなどで標準的に用いられるプロトコル(通信規約)で、ネットワーク上で機器を識別する「IPアドレス」という番号の体系を用意している。ネットワーク上では送信元や宛先の機器を特定するためにこのアドレスを指定する。
IP上では様々なアプリケーションやプロトコルが取り扱われるが、IPアドレスだけでは機器上で動作するどのソフトウェアによる通信なのかを識別することができない。そこで、0番から65535番まで(16ビット符号なし整数)のポート番号を指定することにより、どのソフトウェアが送信元あるいは宛先なのかを特定する。
IPの働きを補助するトランスポート層のプロトコルとして「TCP」(Transmission Control Protocol)や「UDP」(User Datagram Protocol)などがあり、ポート番号が同じでもこれらのプロトコルの種類が異なれば違う機能を指しているとみなされる。このため、実用上は「TCP/80」「UDP/53」といったようにポート番号だけでなくトランスポート層プロトコルの種類も明示する。
Web通信ではURLの一部としてポート番号を指定することができ、「https://www.example.jp:443/」のようにホスト名やIPアドレスの末尾にコロン(:)を付して追記する。ポート番号の指定を省略した場合、「http://」ならTCP80番に、SSL/TLSによる暗号化が有効な「https://」ならTCP443番にアクセスする。
用途の登録
どのポート番号を何に利用するかは、通信する二者の交渉と合意により任意に設定・変更できるが、インターネットで用いられる識別番号や識別名の登録・管理を行っているIANA(ICANN)では、一部のポート番号について推奨される用途を登録・公開している。
0番から1023番を「ウェルノウンポート」(well-known port numbers)というが、近年これは「システムポート」(system port numbers)に改名された。1024番から49151番までは「レジスタードポート」(registered port numbers:登録済みポート)あるいは「ユーザーポート」(user port numbers)という。
49152番以降はどのように用いても自由な番号で、クライアントがサーバに接続する送信元ポートなど一時的な通信のために用いることが多いため「エフェメラルポート」(ephemeral:一時的な)あるいは「動的ポート」(dynamic port numbers)とも呼ばれる。
著名なポート番号のうち、特に2桁や3桁の番号のいくつかは、広く普及しているプロトコルの標準ポート番号として用いられている。例えば、TCP/20~21はFTP、TCP/22はSSH、TCP/23はTelnet、TCP/25はSMTP、UDP/53はDNS、UDP/67~68はDHCP、TCP/80はHTTP、TCP/110はPOP3、TCP/123はNTP、UDP/137~138とTCP/139はNetBIOS、TCP/143はIMAP4、TCP/443はHTTPS、TCP/587はSMTPサブミッションポートなどとなっている。