ポート番号の分類
TCP/IPプロトコル群において、ポート番号はIPの上位に位置するTCP/UDPでやり取りされる。そこで取り交わされるポート番号の範囲は0~65535で、すでに述べたように0~1023までが「ウェルノウンポート」である。そのほかユーザーが実行するサーバプログラム用として1024~49151の範囲を「登録済みポート」、49152~65535までを「動的/非公式ポート」と3つの区分に分けられている(表1)。
インターネット標準ではないが登録済みポート番号の中には、実は企業などで使われているシステムに関係した有名なポート番号がある。たとえばデータベースシステムのMicrosoft SQL Server用に1433/1434、VPNなどでリモート接続ユーザーの認証に使われるRADIUS用に1812/1813、そしてIP電話の制御用プロトコルとして使われているSIP用に5060などが割り当てられている。
登録済みポートにはこのように企業ネットワークのような閉じたネットワーク内でよく利用されるサービスのポート番号があり、サーバアプリケーションのポート番号を設定する際、重複しないよう配慮が必要である。
サーバアプリケーションを識別するためにポート番号が使われるということは、逆にサーバからの応答をユーザー側のどのクライアントソフトで処理すべきか識別する必要もある。
実はクライアントソフトに割り当てられるポート番号はウェルノウンポート以外の番号で、そのソフトウェアを起動したタイミングでOSによって任意のポート番号が割り当てられているのである。クライアント側のポート番号は任意のポート番号が割り当てられているので、それをサーバ側へ通知する必要がある。そのためポート番号をやり取りするTCP/UDPでは、制御情報を格納するヘッダと呼ばれる場所に「宛先ポート番号」「発信元ポート番号」を設定するのである。通信はクライアント側から開始されるのでサーバは要求を受信したときに返信するポート番号がわかるのである。
クライアント側でも電子メールのほか、Webブラウザのウィンドウまたはタブをいくつも開いて利用する場合があるだろう。この場合それぞれのウィンドウまたはタブにポート番号が動的に割り当てられているのである。
この連載の記事
-
第7回
ネットワーク
ドメイン名は第三者に詐称されるのですか? -
第6回
ネットワーク
WAN経由だとファイル共有が遅くなるって本当? -
第5回
ネットワーク
UDPのパケットは、途中で紛失してしまうことがある? -
第3回
ネットワーク
ネットワークに流れるデータは見えますか? -
第2回
ネットワーク
同じIPアドレスは複数のPCで使えるの? -
第1回
ネットワーク
なぜネットワークはループを作ってはいけないの? -
ネットワーク
ネットワークの常識・非常識 - この連載の一覧へ