このページの本文へ

前へ 1 2 次へ

完全解剖「名前とアドレス」 第2回

アドレスを効率的に使う手法を学ぼう

IPアドレスの柔軟な割り当てを実現するサブネットマスク

2009年05月11日 08時00分更新

文● 遠藤哲、横山哲也、大谷イビサ(編集部)

  • この記事をはてなブックマークに追加
  • 本文印刷

アプリケーションを識別するポート

 TCP/IPを利用した通信に置いて、最終的な情報の宛先はアプリケーションソフトウェアである。IPアドレスによって目的のコンピュータに情報を送ることができたとしても、そこで最後にアプリケーションソフトウェアに情報を渡すという仕事が残っている。この仕事を行なっているのがトランスポートプロトコルのTCP/UDPである。

 IPアドレスはコンピュータそのものを指定しているが、アプリケーションまでは指定してない。アプリケーションを識別する情報がポート番号なのである(図3)。このポート番号によって通信しているアプリケーションを識別できるため、1つのコンピュータで同時に複数の通信アプリケーションを稼働させることができるのである。

図3 ポート番号の役割

ポート番号の決め方

 それではポート番号とTCP/IPアプリケーションの対応はどこで決められているのであろう。ポート番号とサーバの対応はIANA(Internet Assigned Numbers Authority)という組織が管理している。最新の情報はIANAのWebサイトから入手できる。

 ポート番号は16ビット長で0~65,535のアドレス空間がある。IANAはこれをウェルノウンポート、レジスタードポート、ダイナミック/プライベートポートの3つに分けている(表1)。

表1 ポート番号の割り当て

 「ウェルノウンポート(Well-Known Port Numbers)」は、一般的なTCP/IPアプリケーションを対象に、IANAが割り当て管理している番号である。ポート番号の範囲は0~1023番までで、インターネットでよく使われるサービスとポート番号が対応付けられている(表2)。

表2 代表的なウェルノウンポート番号

 「レジスタードポート(登録済みポート、Registered Port Numbers)」は、おもにソフトウエアベンダーが独自アプリケーション用に申請し、IANAが管理するポート番号である。ポート番号の範囲は1024~49151番の範囲である。

 この範囲には、マイクロソフトのSQL Serverの「1433」や、X Window Systemの「6000~6063」などがある。多くのポート番号が登録されているが、システムで使用していないポートは、特に支障がなければ自由に使ってよい。実際Windows系OSではクライアントのポートとして未使用のポートを動的に割り当てている。

 「ダイナミック/プライベートポート(Dynamic and/or Private Port Numbers)」は、ローカルで動的にまたはプライベートに自由に利用できるポートである。

トランスポートプロトコルとポート番号

 ポート番号が同じでも、TCPとUDPとの組み合わせでアプリケーションの動作を変えることもできる。一例としてDNSというサービスを紹介しよう。

 DNSはWebサイトのURLなどに含まれるホストの名前からIPアドレスを解決するプロトコルである。DNSへの問い合わせはUDPプロトコルで53番ポートへ送る。DNSはUDPプロトコルの53番ポートで受け取ったパケットはIPアドレスの問い合わせの処理を行ない、その応答を返す。

 一方TCPを使った53番への通信は、「ゾーン転送」と呼ばれるDNSサーバ間の名前解決のデータベースを交換する場合である。

 なぜこのようなことができるかというと、これはインターネット層がIPヘッダからトランスポートプロトコルを識別し、TCPならTCPモジュールへ、UDPならUDPモジュールへ渡し、そのあとでポート番号によりアプリケーションが識別されるからだ。

 このように、ポート番号はアプリケーションを識別するためのものである。しかし、TCPまたはUDPプロトコルとの組み合わせにより、同じポート番号でも異なるアプリケーションの機能にも利用されているのである。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事
  • 角川アスキー総合研究所
  • アスキーカード