ポート番号は、TCP/IP通信において、コンピュータが通信に使用するプログラムを識別するための番号です。 ポート番号は16ビットの整数で、0番~65535番まであります。 TCP/IP通信においては、 IPアドレスがあればネットワーク上のコンピュータを一意に識別することができますが、 該当コンピュータのどのプログラムに通信パケットを届けるかは、IPアドレスだけでは決定できません。 どのプログラムに通信パケットを渡すのかを決定するために、ポート番号を使用します。
例えば、クライアントがHTTPを使って通信する際は、該当サーバのIPアドレスとポート番号80番を指定してパケットを送ります。 ここで、ポート番号80番を指定するのは、HTTPのサーバは、80番ポートでパケットを待っていることが多いためです。 サーバ側では、80番ポートが宛先となっているパケットが届くと、 事前に指定しておいたそのポート宛のパケットを処理するプログラム(ApacheやIISなど)が動き、 パケットの中身を処理します。
上記のような仕組みにより、クライアントからのパケットを受け取ったサーバは、 宛先のポート番号が80番であることからWebサービスを提供すれば良いことがわかり、 適切なプログラムで処理を行うことができます。 また、サーバがクライアント端末にパケットを返す時にも、そのクライアント端末のIPアドレスとポート番号を指定して通信を行います。 このように、 TCP/IPネットワーク上でコンピュータ同士が通信を行う際には、 IPアドレスとポート番号をセットで用いて通信を行います。
ポート番号には、下記のような三つの種別があります。
WELL KNOWN PORT NUMBERS(ウェルノウンポート番号)は、0番~1023番までで、使用目的が定められたポート番号であり、 Internet Assigned Numbers Authority (IANA)が管理しています。 先ほど例に挙げたポート番号80番も、このWELL KNOWN PORT NUMBERSに該当します。
REGISTERED PORT NUMBERS(登録ポート番号)は、1024番~49151番までで、IANAが登録を受け付け、公開しています。
DYNAMIC AND/OR PRIVATE PORTS(ダイナミック/プライベートポート番号)は、49152番~65535番までで、 ポート番号の一覧はIANAのWebサイトで見ることができます。 実際に通信を行う際には、上記の種別を踏まえた上で、通信プログラムの性質に応じて柔軟にポート番号を使用します。