(57)【要約】【課題】構内ネットワーク上のサーバへのポート割当て要求に対してグローバルポート番号を動的に取得して割り当てる。【解決手段】端末３９０は予め公開されているサーバ２１０のグローバルＩＰアドレスおよびグローバルポート番号を用いてポート割当て要求を行う。このポート割当て要求に応答して、サーバ２１０は新たにローカルポート番号を取得してアプリケーション層のプロトコルによりパケットを作成して通知する。アドレス変換装置１００はこのパケットを解析してローカルポート番号をグローバルポート番号に差し替えてパケットを生成して端末３９０に出力する。【選択図】　　　図１
2004072291.tif 000002
【特許請求の範囲】
【請求項１】
第１のネットワークと第２のネットワークとを接続するアドレス変換装置であって、トランスポート層より高位のプロトコルにおいて交換される前記第２のネットワークの第２のポート番号を前記第１のネットワークの第１のポート番号に差し替えることを特徴とするアドレス変換装置。
【請求項２】
前記プロトコルにおけるポート割当て要求に応答して前記第１のポート番号を取得して割り当てることを特徴とする請求項１記載のアドレス変換装置。
【請求項３】
第１のネットワークと第２のネットワークとを接続するアドレス変換装置であって、
トランスポート層より高位のプロトコルにおいて交換される前記第２のネットワークの第２のポート番号を前記第２のネットワークのパケットから抽出するパケット解析手段と、
前記第２のポート番号を前記第１のネットワークの第１のポート番号に差し替えて第１のネットワークへのパケットを生成する通信手段と
を具備することを特徴とするアドレス変換装置。
【請求項４】
前記プロトコルはＴＣＰプロトコルより高位のプロトコルであることを特徴とする請求項３記載のアドレス変換装置。
【請求項５】
前記プロトコルはＵＤＰプロトコルより高位のプロトコルであることを特徴とする請求項３記載のアドレス変換装置。
【請求項６】
前記プロトコルはアプリケーション層のプロトコルであることを特徴とする請求項３記載のアドレス変換装置。
【請求項７】
前記プロトコルはＨＴＴＰプロトコルであることを特徴とする請求項３記載のアドレス変換装置。
【請求項８】
前記プロトコルはＲＴＳＰプロトコルであることを特徴とする請求項３記載のアドレス変換装置。
【請求項９】
前記プロトコルはＳＩＰプロトコルであることを特徴とする請求項３記載のアドレス変換装置。
【請求項１０】
前記第１のネットワークからのポート割当て要求を受けて前記第１のポート番号を取得して割り当てるポート割当て処理手段をさらに具備することを特徴とする請求項３記載のアドレス変換装置。
【請求項１１】
前記ポート割当て処理手段は、
アドレス変換テーブルにおいて既に設定されている第１のポート番号を検索する設定ポート検索手段と、
この設定ポート検索手段により設定されていないことが確認された第１のポート番号の中から前記割当て要求におけるポート数に従って第１のポート番号を取得する制御手段とを具備することを特徴とする請求項１０記載のアドレス変換装置。
【請求項１２】
前記ポート割当て処理手段は、
アドレス変換テーブルにおいて既に設定されている第１のポート番号を検索する設定ポート検索手段と、
ポート状態テーブルにおいて既に使用されている第１のポート番号を検索する使用中ポート検索手段と、
前記設定ポート検索手段により設定されていないことが確認され且つ前記使用中ポート検索手段により使用されていないことが確認された第１のポート番号の中から前記割当て要求におけるポート数に従って第１のポート番号を取得する制御手段とを具備することを特徴とする請求項１０記載のアドレス変換装置。
【請求項１３】
前記割当て要求は、割り当てる第１のポート番号の開始番号の指定の有無を含み、
前記制御手段は、前記開始番号の指定が無い場合にはポート初期値を乱数により発生して、このポート初期値を開始番号として第１のポート番号を取得する
ことを特徴とする請求項１２記載のアドレス変換装置。
【請求項１４】
前記割当て要求は、割り当てる第１のポート番号の開始番号の指定を含み、
前記制御手段は、前記割当て要求に含まれる開始番号から第１のポート番号を取得する
ことを特徴とする請求項１２記載のアドレス変換装置。
【請求項１５】
前記ポート割当て処理手段は、
取得対象となる第１のポート番号の最小値と最大値とを保持するポート定義ファイルをさらに具備し、
前記制御手段は、前記ポート定義ファイルにおける前記最小値から前記最大値の範囲において前記第１のポート番号の取得を行う
ことを特徴とする請求項１２記載のアドレス変換装置。
【請求項１６】
前記割当て要求は、割り当てる第１のポート番号の開始番号の指定を含み、
前記制御手段は、前記割当て要求に含まれる開始番号が前記最小値から前記最大値の範囲にあるか否かを判断して、前記最小値から前記最大値の範囲にあれば前記開始番号から第１のポート番号を取得し、前記最小値から前記最大値の範囲になければ開始番号指定エラーを通知する
ことを特徴とする請求項１５記載のアドレス変換装置。
【請求項１７】
前記割当て要求は、割り当てる第１のポート番号を連続番号に限るか否かの指定を含み、
前記制御手段は、前記割当て要求が前記連続番号に限る旨の指定を含む場合には第１のポート番号として連続番号を取得できなければ取得失敗とし、前記割当て要求が前記連続番号に限る旨の指定を含まない場合には連続番号を取得できなければ非連続番号の取得を行う
ことを特徴とする請求項１２記載のアドレス変換装置。
【請求項１８】
前記第２のネットワークに接続されるサーバの記憶領域のコピーを保持するプロキシ記憶手段と、
このプロキシ記憶手段を参照して、前記割当て要求におけるポート数に従い第２のポート番号を取得して前記第２のネットワークのパケットを生成するサーバ代理手段と
をさらに具備することを特徴とする請求項３記載のアドレス変換装置。
【請求項１９】
前記第１のネットワークから前記第１のポート番号の割当て要求を受けて前記第１のポート番号を取得して割り当てるポート割当て処理手段をさらに具備することを特徴とする請求項１８記載のアドレス変換装置。
【請求項２０】
トランスポート層より高位のプロトコルにおいて交換される第２のネットワークの第２のポート番号を前記第２のネットワークのパケットから抽出する手順と、
前記第２のポート番号を第１のネットワークの第１のポート番号に差し替えて前記第１のネットワークへのパケットを生成する手順と
を具備することを特徴とするポート番号差替え方法。
【請求項２１】
トランスポート層より高位のプロトコルにおいて交換される第２のネットワークの第２のポート番号を前記第２のネットワークのパケットから抽出する手順と、
第１のネットワークの第１のポート番号を取得して割り当てる手順と、
前記第２のポート番号を前記第１のポート番号に差し替えて前記第１のネットワークへのパケットを生成する手順と
を具備することを特徴とするポート番号差替え方法。
【請求項２２】
第１のネットワークからポート割当て要求を受ける手順と、
アドレス変換テーブルにおいて既に設定されている第１のポート番号を検索する手順と、
前記アドレス変換テーブルにおいて既に設定されていない第１のポート番号の中から前記割当て要求におけるポート数に従って第１のポート番号を取得して割り当てる手順と
を具備することを特徴とするポート番号割当て方法。
【請求項２３】
第１のネットワークからポート割当て要求を受ける手順と、
アドレス変換テーブルにおいて既に設定されている第１のポート番号を検索する手順と、
ポート状態テーブルにおいて既に使用されている第１のポート番号を検索する手順と、
前記アドレス変換テーブルにおいて既に設定されていなく且つ前記ポート状態テーブルにおいて既に使用されていない第１のポート番号の中から前記割当て要求におけるポート数に従って第１のポート番号を取得して割り当てる手順と
を具備することを特徴とするポート番号割当て方法。
【請求項２４】
第１のネットワークからポート割当て要求を受ける手順と、
ポート初期値を乱数により発生する手順と、
アドレス変換テーブルにおいて既に設定されている第１のポート番号を検索する手順と、
ポート状態テーブルにおいて既に使用されている第１のポート番号を検索する手順と、
前記アドレス変換テーブルにおいて既に設定されていなく且つ前記ポート状態テーブルにおいて既に使用されていない第１のポート番号の中から前記割当て要求におけるポート数に従って前記ポート初期値を開始番号として第１のポート番号を取得して割り当てる手順と
を具備することを特徴とするポート番号割当て方法。
【請求項２５】
前記第１のポート番号を取得する手順は、ポート定義ファイルに保持された取得対象となる第１のポート番号の最小値から最大値の範囲において前記第１のポート番号の取得を行うことを特徴とする請求項２４記載のポート番号割当て方法。
【発明の詳細な説明】
【発明の属する技術分野】
本発明は、広域ネットワークと構内ネットワークとを接続するアドレス変換装置ならびにこのアドレス変換装置におけるポート番号差替え方法およびポート番号割当て方法に関する。
【０００１】
【従来の技術】
インターネット接続などに使用されるＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ　Ｃｏｎｔｒｏｌ　Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ　Ｐｒｏｔｏｃｏｌ）と呼ばれるプロトコルでは、ネットワーク層においてＩＰ（Ｉｎｔｅｒｎｅｔ　Ｐｒｏｔｏｃｏｌ）プロトコルが使用され、トランスポート層においてＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ　Ｃｏｎｔｒｏｌ　Ｐｒｏｔｏｃｏｌ）プロトコルまたはＵＤＰ（Ｕｓｅｒ　Ｄａｔａｇｒａｍ　Ｐｒｏｔｏｃｏｌ）プロトコルが使用される。ＩＰプロトコルにおいては、コンピュータ間でデータをやりとりする際にＩＰアドレスと呼ばれる３２ビット（ＩＰｖ４の場合）のアドレスが使用される。また、ＴＣＰプロトコルおよびＵＤＰプロトコルでは、アプリケーションごとのデータを区別するためにポートと呼ばれるデータの出入り口が決められている。
【０００２】
広域ネットワーク（ＷＡＮ：ワイドエリアネットワーク、例えば、インターネット）と構内ネットワーク（ＬＡＮ：ローカルエリアネットワーク）とを接続するアドレス変換装置は、広域ネットワークにおけるアドレスと構内ネットワークにおけるアドレスとを相互に変換する。上述のように、ＴＣＰ／ＩＰプロトコルではネットワーク上のコンピュータおよびアプリケーションを特定するためにＩＰアドレスおよびポート番号が使用されるため、アドレス変換装置の多くはこれらＩＰアドレスおよびポート番号を変換する機能を採用している。このＩＰアドレスおよびポート番号の変換機能は、ＮＡＰＴ（Ｎｅｔｗｏｒｋ　Ａｄｄｒｅｓｓ　Ｐｏｒｔ　Ｔｒａｎｓｌａｔｉｏｎ）、ＥＮＡＴ（Ｅｎｈａｎｃｅｄ　Ｎｅｔｗｏｒｋ　Ａｄｄｒｅｓｓ　Ｔｒａｎｓｌａｔｉｏｎ）またはＩＰマスカレードなどと呼ばれる。一方、ＩＰアドレスだけを変換する機能は、ＮＡＴ（Ｎｅｔｗｏｒｋ　Ａｄｄｒｅｓｓ　Ｔｒａｎｓｌａｔｉｏｎ）などと呼ばれる。本出願におけるアドレス変換とは、これらＮＡＴおよびＮＡＰＴなどを含む広義のアドレス変換を意味するものとする。
【０００３】
アドレス変換装置を介して構内ネットワーク上のサーバを広域ネットワークに接続する場合、広域ネットワークからサーバにアクセスするための広域ＩＰアドレス（以下、グローバルＩＰアドレスという。）と広域ポート番号（以下、グローバルポート番号という。）とを知らせておく必要がある。アドレス変換装置は、広域ネットワーク上の端末（クライアント）からサーバへのパケットを受けて、送信先のグローバルＩＰアドレスおよびグローバルポート番号をサーバの構内ＩＰアドレス（以下、ローカルＩＰアドレスという。）および構内ポート番号（以下、ローカルポート番号という。）にそれぞれ変換する。また、アドレス変換装置は、サーバから広域ネットワーク上の端末へのパケットについて、送信元のローカルＩＰアドレスおよびローカルポート番号をグローバルＩＰアドレスおよびグローバルポート番号にそれぞれ変換する。
【０００４】
【発明が解決しようとする課題】
上述の従来技術では、広域ネットワークからサーバにアクセスするためのグローバルＩＰアドレスおよびグローバルポート番号が固定されていることを前提としている。しかしながら、動的にポート番号を生成して通信を行うプロトコルも存在する。例えば、インターネット放送に使用されるＲＴＳＰ（Ｒｅａｌ　Ｔｉｍｅ　Ｓｔｒｅａｍｉｎｇ　Ｐｒｏｔｏｃｏｌ）プロトコルでは、一旦サーバにアクセスしてストリーミング用のポート番号を生成した後で、そのポート番号を使用してストリーミングを行うようになっている。この場合、構内で生成されたポート番号はアプリケーション層のＲＴＳＰプロトコルにおいて交換されるため、従来のアドレス変換装置の変換対象とならず、ローカルポート番号そのものが広域ネットワークに通知されることになる。通常はローカルポート番号とグローバルポート番号とは別個のものであるため、広域ネットワーク側からローカルポート番号を使用してもアクセスが許可されない。また、ポート番号を変換せずローカルポート番号とグローバルポート番号を同じものとした場合には、構内ネットワークに接続する複数のサーバ間でポート番号が重複するおそれがある。
【０００５】
本発明の目的は、構内ネットワーク上のサーバへのポート割当て要求に対してグローバルポート番号を動的に取得して割り当てることにある。
【０００６】
【課題を解決するための手段】
上記課題を解決するために本発明のアドレス変換装置は、第１のネットワーク（例えば、広域ネットワーク）と第２のネットワーク（例えば、構内ネットワーク）とを接続するアドレス変換装置であって、トランスポート層より高位のプロトコルにおいて交換される上記第２のネットワークの第２のポート番号（例えば、構内ポート番号）を上記第１のネットワークの第１のポート番号（例えば、広域ポート番号）に差し替える。これにより、第２のネットワーク上のサーバへのポート割当て要求に対して第１のポート番号を動的に割り当てるという作用をもたらす。
【０００７】
また、本発明の他のアドレス変換装置は、上記プロトコルにおけるポート割当て要求に応答して上記第１のポート番号を取得して割り当てる。これにより、アドレス変換装置において動的に生成した第１のポート番号を割り当てるという作用をもたらす。
【０００８】
また、本発明の他のアドレス変換装置は、第１のネットワークと第２のネットワークとを接続するアドレス変換装置であって、トランスポート層より高位のプロトコルにおいて交換される上記第２のネットワークの第２のポート番号を上記第２のネットワークのパケットから抽出するパケット解析手段と、上記第２のポート番号を上記第１のネットワークの第１のポート番号に差し替えて第１のネットワークへのパケットを生成する通信手段とを備える。これにより、トランスポート層より高位のプロトコルにおいて交換される第２のポート番号を第１のポート番号に差し替えて第１のネットワークへ通知するという作用をもたらす。
【０００９】
また、本発明の他のアドレス変換装置において、上記プロトコルはＴＣＰプロトコルより高位のプロトコルである。すなわち、ＴＣＰプロトコルより高位のプロトコルにおいて交換される第２のポート番号を第１のポート番号に差し替えて第１のネットワークへ通知するという作用をもたらす。
【００１０】
また、本発明の他のアドレス変換装置において、上記プロトコルはＵＤＰプロトコルより高位のプロトコルである。すなわち、ＵＤＰプロトコルより高位のプロトコルにおいて交換される第２のポート番号を第１のポート番号に差し替えて第１のネットワークへ通知するという作用をもたらす。
【００１１】
また、本発明の他のアドレス変換装置において、上記プロトコルはアプリケーション層のプロトコルである。すなわち、アプリケーション層のプロトコルにおいて交換される第２のポート番号を第１のポート番号に差し替えて第１のネットワークへ通知するという作用をもたらす。
【００１２】
また、本発明の他のアドレス変換装置において、上記プロトコルはＨＴＴＰプロトコルである。すなわち、ＨＴＴＰプロトコルにおいて交換される第２のポート番号を第１のポート番号に差し替えて第１のネットワークへ通知するという作用をもたらす。
【００１３】
また、本発明の他のアドレス変換装置において、上記プロトコルはＲＴＳＰプロトコルである。すなわち、ＲＴＳＰプロトコルにおいて交換される第２のポート番号を第１のポート番号に差し替えて第１のネットワークへ通知するという作用をもたらす。
【００１４】
また、本発明の他のアドレス変換装置において、上記プロトコルはＳＩＰプロトコルである。すなわち、ＳＩＰプロトコルにおいて交換される第２のポート番号を第１のポート番号に差し替えて第１のネットワークへ通知するという作用をもたらす。
【００１５】
また、本発明の他のアドレス変換装置は、上記第１のネットワークからのポート割当て要求を受けて上記第１のポート番号を取得して割り当てるポート割当て処理手段をさらに具備する。これにより、アドレス変換装置において動的に生成した第１のポート番号を割り当てるという作用をもたらす。
【００１６】
また、本発明の他のアドレス変換装置において、上記ポート割当て処理手段は、アドレス変換テーブルにおいて既に設定されている第１のポート番号を検索する設定ポート検索手段と、この設定ポート検索手段により設定されていないことが確認された第１のポート番号の中から上記割当て要求におけるポート数に従って第１のポート番号を取得する制御手段とを具備する。これにより、設定済みの第１のポート番号を割り当てることを回避するという作用をもたらす。
【００１７】
また、本発明の他のアドレス変換装置は、上記ポート割当て処理手段は、アドレス変換テーブルにおいて既に設定されている第１のポート番号を検索する設定ポート検索手段と、ポート状態テーブルにおいて既に使用されている第１のポート番号を検索する使用中ポート検索手段と、上記設定ポート検索手段により設定されていないことが確認され且つ上記使用中ポート検索手段により使用されていないことが確認された第１のポート番号の中から上記割当て要求におけるポート数に従って第１のポート番号を取得する制御手段とを具備する。これにより、設定済みまたは使用中の第１のポート番号を割り当てることを回避するという作用をもたらす。
【００１８】
また、本発明の他のアドレス変換装置において、上記割当て要求は、割り当てる第１のポート番号の開始番号の指定の有無を含み、上記制御手段は、上記開始番号の指定が無い場合にはポート初期値を乱数により発生して、このポート初期値を開始番号として第１のポート番号を取得する。これにより、ポート初期値から規則性を取り除き、セキュリティレベルを向上させるという作用をもたらす。
【００１９】
また、本発明の他のアドレス変換装置において、上記割当て要求は、割り当てる第１のポート番号の開始番号の指定を含み、上記制御手段は、上記割当て要求に含まれる開始番号から第１のポート番号を取得する。これにより、アプリケーションの仕様に応じたポート番号を割り当てるという作用をもたらす。
【００２０】
また、本発明の他のアドレス変換装置において、上記ポート割当て処理手段は、取得対象となる第１のポート番号の最小値と最大値とを保持するポート定義ファイルをさらに具備し、上記制御手段は、上記ポート定義ファイルにおける上記最小値から上記最大値の範囲において上記第１のポート番号の取得を行う。これにより、任意の範囲において第１のポート番号の割当てを実現するという作用をもたらす。
【００２１】
また、本発明の他のアドレス変換装置において、上記割当て要求は、割り当てる第１のポート番号の開始番号の指定を含み、上記制御手段は、上記割当て要求に含まれる開始番号が上記最小値から上記最大値の範囲にあるか否かを判断して、上記最小値から上記最大値の範囲にあれば上記開始番号から第１のポート番号を取得し、上記最小値から上記最大値の範囲になければ開始番号指定エラーを通知する。これにより、指定された第１のポート番号の開始番号を適切なものに保つという作用をもたらす。
【００２２】
また、本発明の他のアドレス変換装置において、上記割当て要求は、割り当てる第１のポート番号を連続番号に限るか否かの指定を含み、上記制御手段は、上記割当て要求が上記連続番号に限る旨の指定を含む場合には第１のポート番号として連続番号を取得できなければ取得失敗とし、上記割当て要求が上記連続番号に限る旨の指定を含まない場合には連続番号を取得できなければ非連続番号の取得を行う。これにより、アプリケーションの仕様に応じた第１のポート番号を割り当てるという作用をもたらす。
【００２３】
また、本発明の他のアドレス変換装置は、上記第２のネットワークに接続されるサーバの記憶領域のコピーを保持するプロキシ記憶手段と、このプロキシ記憶手段を参照して、上記割当て要求におけるポート数に従い第２のポート番号を取得して上記第２のネットワークのパケットを生成するサーバ代理手段とをさらに具備する。これにより、アドレス変換装置自身で第２のポート番号を割り当てるという作用をもたらす。
【００２４】
また、本発明のポート番号差替え方法は、トランスポート層より高位のプロトコルにおいて交換される第２のネットワークの第２のポート番号を上記第２のネットワークのパケットから抽出する手順と、上記第２のポート番号を第１のネットワークの第１のポート番号に差し替えて上記第１のネットワークへのパケットを生成する手順とを具備する。これにより、トランスポート層より高位のプロトコルにおいて交換される第２のポート番号を第１のポート番号に差し替えて第１のネットワークへ通知するという作用をもたらす。
【００２５】
また、本発明の他のポート番号差替え方法は、トランスポート層より高位のプロトコルにおいて交換される第２のネットワークの第２のポート番号を上記第２のネットワークのパケットから抽出する手順と、第１のネットワークの第１のポート番号を取得して割り当てる手順と、上記第２のポート番号を上記第１のポート番号に差し替えて上記第１のネットワークへのパケットを生成する手順とを具備する。これにより、アドレス変換装置において動的に生成した第１のポート番号を通知するという作用をもたらす。
【００２６】
また、本発明のポート番号割当て方法は、第１のネットワークからポート割当て要求を受ける手順と、アドレス変換テーブルにおいて既に設定されている第１のポート番号を検索する手順と、上記アドレス変換テーブルにおいて既に設定されていない第１のポート番号の中から上記割当て要求におけるポート数に従って第１のポート番号を取得して割り当てる手順とを具備する。これにより、設定済みの第１のポート番号を割り当てることを回避するという作用をもたらす。
【００２７】
また、本発明の他のポート番号割当て方法は、第１のネットワークからポート割当て要求を受ける手順と、アドレス変換テーブルにおいて既に設定されている第１のポート番号を検索する手順と、ポート状態テーブルにおいて既に使用されている第１のポート番号を検索する手順と、上記アドレス変換テーブルにおいて既に設定されていなく且つ上記ポート状態テーブルにおいて既に使用されていない第１のポート番号の中から上記割当て要求におけるポート数に従って第１のポート番号を取得して割り当てる手順とを具備する。これにより、設定済みまたは使用中の第１のポート番号を割り当てることを回避するという作用をもたらす。
【００２８】
また、本発明の他のポート番号割当て方法は、第１のネットワークからポート割当て要求を受ける手順と、ポート初期値を乱数により発生する手順と、アドレス変換テーブルにおいて既に設定されている第１のポート番号を検索する手順と、ポート状態テーブルにおいて既に使用されている第１のポート番号を検索する手順と、上記アドレス変換テーブルにおいて既に設定されていなく且つ上記ポート状態テーブルにおいて既に使用されていない第１のポート番号の中から上記割当て要求におけるポート数に従って上記ポート初期値を開始番号として第１のポート番号を取得して割り当てる手順とを具備する。これにより、ポート初期値から規則性を取り除き、セキュリティレベルを向上させるという作用をもたらす。
【００２９】
また、本発明の他のポート番号割当て方法において、上記第１のポート番号を取得する手順は、ポート定義ファイルに保持された取得対象となる第１のポート番号の最小値から最大値の範囲において上記第１のポート番号の取得を行う。これにより、任意の範囲で第１のポート番号の割当てを実現するという作用をもたらす。
【００３０】
【発明の実施の形態】
次に本発明の実施の形態について図面を参照して詳細に説明する。
【００３１】
図１を参照すると、本発明の実施の形態におけるアドレス変換装置１００は、信号線２０１を介して構内ネットワーク２００に接続し、信号線３０１を介して広域ネットワーク３００に接続する。構内ネットワーク２００には、サーバ２１０および端末２９０が接続される。また、広域ネットワーク３００には端末３９０が接続される。
【００３２】
例えば広域ネットワーク３００をインターネットとすると、広域ネットワーク３００上のコンピュータ（例えば、端末３９０）は、グローバルＩＰアドレスにより特定される。一方、構内ネットワーク上のコンピュータ（例えば、サーバ２１０および端末２９０）には、ローカルＩＰアドレス（プライベートＩＰアドレスともいう。）が与えられる。
【００３３】
インターネットで使用されるＴＣＰ／ＩＰプロトコルでは、ネットワーク層でＩＰプロトコルを用いてＩＰアドレスによるコンピュータの特定を行う他、トランスポート層ではＴＣＰプロトコルまたはＵＤＰプロトコルを用いてポート番号によるアプリケーションの特定を行う。このポートはＴＣＰプロトコルおよびＵＤＰプロトコルのそれぞれに１６ビット分割当てられており、それぞれ０から６５５３５の範囲でポート番号を割当てることができる。したがって、コンピュータ間の通信においては、送信元ＩＰアドレス、送信先ＩＰアドレス、送信元ポート番号、送信先ポート番号、および、プロトコル（ＴＣＰまたはＵＤＰ）、の５つにより送信元と送信先が特定されることになる。
【００３４】
例えば、サーバ２１０のローカルＩＰアドレスが１９２．１６８．０．３であってＷＷＷ（Ｗｏｒｌｄ−Ｗｉｄｅ−Ｗｅｂ）サーバとしてのローカルポート番号がＴＣＰ８０８０の場合、ローカルＩＰアドレスが１９２．１６８．０．１５の端末２９０からローカルポート番号１２３４でアクセスするときには、「送信元ＩＰアドレス＝１９２．１６８．０．１５、送信先ＩＰアドレス＝１９２．１６８．０．３、送信元ポート番号＝１２３４、送信先ポート番号＝８０８０、プロトコル＝ＴＣＰ」を含むパケットが端末２９０からサーバ２１０に送られる。
【００３５】
一方、例えば、サーバ２１０のグローバルＩＰアドレスが２０２．２３８．９５．６５であってＷＷＷサーバとしてのグローバルポート番号がＴＣＰ８０の場合、グローバルＩＰアドレスが２１６．２３４．１８８．７５の端末３９０からローカルポート番号１９６３でアクセスするときには、「送信元ＩＰアドレス＝２１６．２３４．１８８．７５、送信先ＩＰアドレス＝２０２．２３８．９５．６５、送信元ポート番号＝１９６３、送信先ポート番号＝８０、プロトコル＝ＴＣＰ」を含むパケットが端末３９０からアドレス変換装置１００に送られる。そして、アドレス変換装置１００においてアドレス変換が行われ、「送信元ＩＰアドレス＝２１６．２３４．１８８．７５、送信先ＩＰアドレス＝１９２．１６８．０．３、送信元ポート番号＝１９６３、送信先ポート番号＝８０８０、プロトコル＝ＴＣＰ」を含むパケットがアドレス変換装置１００からサーバ２１０に送られる。
【００３６】
図２を参照すると、アドレス変換装置１００は、パケットの受け渡しを行う通信部１１０と、パケットの解析を行うパケット解析部１２０と、アドレス変換テーブル１３０と、ポート状態テーブル１４０とポート割当て処理部１５０とを備えている。通信部１１０は、信号線３０１を介して広域ネットワーク３００からパケットを受け取り、グローバルアドレス（グローバルＩＰアドレスおよびグローバルポート番号）からローカルアドレス（ローカルＩＰアドレスおよびローカルポート番号）へのアドレス変換を行って構内ネットワーク２００へのパケットを信号線２０１に出力する。また、通信部１１０は、信号線２０１を介して構内ネットワーク２００からパケットを受け取り、ローカルアドレスからグローバルアドレスへのアドレス変換を行って広域ネットワーク３００へのパケットを信号線３０１に出力する。
【００３７】
パケット解析部１２０は、構内ネットワーク２００のパケットを信号線１１２を介して通信部１１０から受け取り、ＴＣＰプロトコルやＵＤＰプロトコルよりも高位のプロトコルにより交換されるデータ領域を主に解析する。すなわち、ＴＣＰ／ＩＰプロトコルにおいて交換されるパケットは、ＩＰヘッダ、ＴＣＰまたはＵＤＰヘッダ、および、データ領域から構成されるが、パケット解析部１２０はこのデータ領域を主に解析する。より具体的には、データ領域において、サーバ２１０のローカルポート番号が示されている場合、その表示位置を特定して通信部１１０に知らせる。通信部１１０はこれを受けてローカルポート番号をグローバルポート番号に差し替える。
【００３８】
ポート割当て処理部１５０は、制御部１５１と、ポート定義ファイル１５２と、設定ポート検索部１５３と、使用中ポート検索部１５４とを備える。制御部１５１は、信号線１１５を介して通信部１１０からポート割当て要求を受け、グローバルポート番号の取得を行う。ポート定義ファイル１５２は、グローバルポート番号の割当てを行う際の割当て対象となるポート番号の最大値および最小値を保持する。設定ポート検索部１５３は、アドレス変換テーブル１３０を参照して、アドレス変換テーブル１３０に既に設定されているポート番号を検索する。使用中ポート検索部１５４は、ポート状態テーブル１４０を参照して、ポート状態テーブル１４０において既に使用されているポート番号を検索する。
【００３９】
図３を参照すると、アドレス変換テーブル１３０は、グローバルＩＰアドレス１３１と、グローバルポート番号１３２と、ローカルＩＰアドレス１３３と、ローカルポート番号１３４と、プロトコル１３５との対応関係を保持する。例えば、第１番目のエントリでは、グローバルＩＰアドレス「２０２．２３８．９５．６５」のＴＣＰポート番号「８０」が、ローカルＩＰアドレス「１９２．１６８．０．３」のＴＣＰポート番号「８０８０」に対応することがわかる。
【００４０】
通信部１１０は、このアドレス変換テーブル１３０に基づいて、グローバルアドレスからローカルアドレスへのアドレス変換およびローカルアドレスからグローバルアドレスへのアドレス変換を行う。また、設定ポート検索部１５３は、このアドレス変換テーブル１３０を参照することにより、既に設定済みのポート番号を検索する。
【００４１】
図４を参照すると、ポート状態テーブル１４０は、アドレス変換装置１００のグローバルポート番号１４１と、プロトコル１４２と、ポートの状態１４３と、接続先のグローバルアドレス１４４とを保持する。このポート状態テーブル１４０によって管理されるポートは全てアドレス変換装置１００のポートであるため、ＩＰアドレスは省略されている。
【００４２】
例えば、第１番目のエントリでは、アドレス変換装置１００のＴＣＰポート番号「２２」が広域ネットワーク３００に対して接続待ち状態（ＬＩＳＴＥＮ）となっていることがわかる。また、第２番目のエントリでは、アドレス変換装置１００のＴＣＰポート番号「８０」に対してグローバルＩＰアドレス「２１６．２３４．１８８．７５」のＴＣＰポート番号「１９６３」が接続中（ＥＳＴＡＢＬＩＳＨＥＤ）であることがわかる。
【００４３】
使用中ポート検索部１５４は、このポート状態テーブル１４０を参照することにより、接続待ちポートまたは接続中ポートとして既に使用されているポート番号を検索する。
【００４４】
次に本発明の実施の形態における一動作例について説明する。
【００４５】
図５を参照すると、まず、広域ネットワーク３００上の端末３９０はサーバ２１０に対するポート割当て要求３９０１を含むパケットを出力する。このポート割当て要求３９０１としては、例えば、ＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ　Ｔｒａｎｓｆｅｒ　Ｐｒｏｔｏｃｏｌ）からＣＧＩ（Ｃｏｍｍｏｎ　Ｇａｔｅｗａｙ　Ｉｎｔｅｒｆａｃｅ）を用いて、ポート取得を行うプログラムを起動することが考えられる。また、インターネット放送などのストリーミングを行うＲＴＳＰでは、予めストリーミング用のポートを確保しておく必要があり、ストリーミングを開始する前にクライアントからサーバに対してポート割当て要求としてＳＥＴＵＰコマンドが発行される。また、インターネット電話などに使用されるＳＩＰでは、予め発呼側と着信側との間の呼設定をしておく必要があり、事前にクライアントからサーバに対して呼設定要求としてＩＮＶＩＴＥコマンドが発行される。なお、このポート割当て要求３９０１を受けるサーバのグローバルＩＰアドレスおよびグローバルポート番号は、事前に利用者に知らされているものとする。
【００４６】
ポート割当て要求３９０１を受けたアドレス変換装置１００は、アドレス変換テーブル１４０を参照してパケットのアドレス変換１０１を行う。すなわち、ＩＰヘッダにおける送信先ＩＰアドレスをグローバルＩＰアドレスからローカルＩＰアドレスに変換するとともに、ＴＣＰヘッダにおける送信先ポート番号をグローバルポート番号からローカルポート番号に変換する。アドレス変換装置１００は、このようにしてアドレス変換されたパケットをポート割当て要求１００１としてサーバ２１０に出力する。
【００４７】
ポート割当て要求１００１を受けたサーバ２１０は、ローカルポート番号の取得処理２１１を行い、その結果をリプライ２１０１としてアドレス変換装置１００に出力する。ここでは、上述のように、例えばＨＴＴＰではＣＧＩによりポート取得のためのプログラムが実行され、ＲＴＳＰではＳＥＴＵＰコマンドが実行され、また、ＳＩＰではＩＮＶＩＴＥコマンドが実行される。
【００４８】
次にアドレス変換装置１００は、グローバルポート番号の取得処理１０２を行う。この処理内容については後述する。アドレス変換装置１００は、このグローバルポート番号の取得処理１０２により取得されたグローバルポート番号とローカルポート番号の取得処理２１１により取得されたローカルポート番号との対応関係をアドレス変換テーブル１４０に設定する（１０３）。この設定により、グローバルポート番号およびローカルポート番号が正式に割り当てられたことになる。
【００４９】
アドレス変換装置１００は、このようにして得られたグローバルポート番号とローカルポート番号との対応関係に基づいて、パケットのデータ領域におけるローカルポート番号をグローバルポート番号に差し替える（１０４）。アドレス変換装置１００は、さらにアドレス変換テーブル１４０を参照してパケットのアドレス変換１０５を行う。すなわち、ＩＰヘッダにおける送信元ＩＰアドレスをローカルＩＰアドレスからグローバルＩＰアドレスに変換するとともに、ＴＣＰヘッダにおける送信元ポート番号をローカルポート番号からグローバルポート番号に変換する。アドレス変換装置１００は、このようにしてアドレス変換されたパケットをリプライ１００２として端末３９０に出力する。
【００５０】
端末３９０はリプライ１００２に含まれるポート番号を用いてサーバ２１０に対するサービスの要求３９０２を含むパケットを出力する。このサービスの要求３９０２としては、例えば、ＲＴＳＰではストリーミングの開始のためにＰＬＡＹコマンドが発行される。また、ＳＩＰでは呼設定の確認応答のためにＡＣＫコマンドが発行される。
【００５１】
サービス要求３９０２を受けたアドレス変換装置１００は、アドレス変換テーブル１４０を参照してパケットのアドレス変換１０６を行う。すなわち、ＩＰヘッダにおける送信先ＩＰアドレスをグローバルＩＰアドレスからローカルＩＰアドレスに変換するとともに、ＴＣＰヘッダにおける送信先ポート番号をグローバルポート番号からローカルポート番号に変換する。アドレス変換装置１００は、このようにしてアドレス変換されたパケットをサービス要求１００３としてサーバ２１０に出力する。
【００５２】
サービス要求１００３を受けたサーバ２１０は、要求されたサービスに応じたデータ２１０２を送信する。例えば、ＲＴＳＰではストリーミングデータとして音声データや画像データなどが送信される。また、ＳＩＰでは通話データとして音声データなどが送信される。
【００５３】
データ２１０２を含むパケットを受け取ったアドレス変換装置１００は、アドレス変換テーブル１４０を参照してパケットのアドレス変換１０７を行う。すなわち、ＩＰヘッダにおける送信元ＩＰアドレスをローカルＩＰアドレスからグローバルＩＰアドレスに変換するとともに、ＴＣＰヘッダにおける送信元ポート番号をローカルポート番号からグローバルポート番号に変換する。アドレス変換装置１００は、このようにしてアドレス変換されたパケットをデータ１００４として端末３９０に出力する。
【００５４】
次に図５におけるグローバルポート番号の取得処理１０２の一動作例について説明する。
【００５５】
ポート割当て要求には、割り当てるポートの数（Ｎｕｍ）、開始ポート番号（Ｐｓｔａｒｔ）の指定、ならびに、連続番号に限る旨の指定を含めることができるものとする。すなわち、開始ポート番号の指定がされている場合には、指定された開始ポート番号から要求された数のポートを取得できなければポート取得に失敗したことになる。また、連続番号に限る旨の指定がされている場合には、要求された数のポートを連続番号により取得できなければポート取得に失敗したことになる。
【００５６】
なお、この取得処理１０２では、ポート番号を仮に「取得」するものであり、このようにして取得されたポート番号は、アドレス変換テーブル１３０への設定１０３が行われることにより正式に「割り当て」られる。
【００５７】
図６を参照すると、まずポート割当て要求において開始ポート番号の指定がされているか否かを判断する（ステップＳ９０１）。開始ポート番号の指定がされていなければポート初期値を発生する（ステップＳ９１１）。このポート初期値の発生にはセキュリティの都合上、乱数を用いることがより好ましい。
【００５８】
一方、開始ポート番号の指定がされていればその開始ポート番号からポート取得を試みるが、それに先立ってその開始ポート番号が取得対象の範囲内であるか否かを判断する（ステップＳ９０２）。すなわち、ポート定義ファイル１５２（図２）に保持された最小値をＰｍｉｎ、最大値をＰｍａｘとすると、
Ｐｍｉｎ≦Ｐｓｔａｒｔ≦Ｐｍａｘ−Ｎｕｍ＋１
を満たしていれば取得対象の範囲内とする。もし、開始ポート番号が取得対象の範囲外である場合には、指定値に誤りがあるとしてその旨が返信される（ステップＳ９４０）。
【００５９】
指定された開始ポート番号が取得対象の範囲内であれば（ステップＳ９０２）、設定ポート検索部１５３および使用中ポート検索部１５４（図２）によりそれぞれアドレス変換テーブル１３０およびポート状態テーブル１４０を検索して取得可能なポート番号を調べる（ステップＳ９０３）。その結果、指定された開始ポート番号からポート数Ｎｕｍ個分のポート番号を連続して取得することが可能であれば（ステップＳ９０４）、ポート番号取得は成功する（ステップＳ９２０）。一方、連続して取得することが不可能であれば（ステップＳ９０４）、連続番号に限る旨の指定がされているか否かを調べ（ステップＳ９０５）、連続番号に限る旨の指定がされていなければ非連続番号によるポート番号取得の可能性を調べる（ステップＳ９０６）。その結果、非連続番号によるポート番号取得が可能であれば（ステップＳ９０６）、ポート番号取得は成功する（ステップＳ９２０）。これに対し、連続して取得することが不可能で且つ連続番号に限る旨の指定がされている場合（ステップＳ９０５）ならびに非連続番号によるポート番号取得が不可能な場合（ステップＳ９０６）には、ポート番号取得は失敗したものとしてその旨が返信される（ステップＳ９３０）。
【００６０】
一方、開始ポート番号の指定がされずにポート初期値を発生した場合（ステップＳ９１１）、そのポート初期値を開始ポート番号Ｐｓｔａｒｔとして、設定ポート検索部１５３および使用中ポート検索部１５４（図２）によりそれぞれアドレス変換テーブル１３０およびポート状態テーブル１４０を検索して取得可能なポート番号を調べる（ステップＳ９１２）。その結果、発生したポート初期値から最大値Ｐｍａｘの間でポート数Ｎｕｍ個分のポート番号を連続して取得することが可能であれば（ステップＳ９１３）、ポート番号取得は成功する（ステップＳ９２０）。発生したポート初期値Ｐｓｔａｒｔからのポート番号取得が不可能であれば、最小値Ｐｍｉｎから「Ｐｓｔａｒｔ＋Ｎｕｍ−２」までの間でポート数Ｎｕｍ個分のポート番号を連続して取得することが可能であれば（ステップＳ９１３）、ポート番号取得は成功する（ステップＳ９２０）。一方、何れによっても連続してポート番号取得することが不可能であれば（ステップＳ９１３、Ｓ９１４）、連続番号に限る旨の指定がされているか否かを調べ（ステップＳ９１５）、連続番号に限る旨の指定がされていなければ非連続番号によるポート番号取得の可能性を調べる（ステップＳ９１６）。その結果、非連続番号によるポート番号取得が可能であれば（ステップＳ９１６）、ポート番号取得は成功する（ステップＳ９２０）。これに対し、連続して割当てることが不可能で且つ連続番号に限る旨の指定がされている場合（ステップＳ９１５）ならびに非連続番号によるポート番号取得が不可能な場合（ステップＳ９１６）には、ポート番号取得は失敗したものとしてその旨が返信される（ステップＳ９３０）。
【００６１】
次に本発明の実施の形態における処理の具体例について説明する。
【００６２】
図７を参照すると、ポート割当て要求３９０１（図５）のパケット３９００の一例は、ＩＰヘッダ３９１０と、ＴＣＰヘッダ３９２０と、データ領域３９３０とを備える。ＩＰヘッダ３９１０は、送信元ＩＰアドレス３９１１と、送信先ＩＰアドレス３９１２とを含む。また、ＩＰヘッダ３９１０は、（図示しない）プロトコル指定を含む。図７の例ではＴＣＰプロトコルが指定されたものとしているが、これはＵＤＰプロトコルであってもよい。ＵＤＰプロトコルが指定された場合にはＩＰヘッダ３９１０の次にはＵＤＰヘッダが存在することになる。ＴＣＰヘッダ３９２０は、送信元ポート番号３９２１と、送信先ポート番号３９２２とを含む。ＵＤＰヘッダの場合もＴＣＰヘッダと同様に送信元ポート番号および送信先ポート番号が含まれる。
【００６３】
これにより、端末３９０からサーバ２１０に対するパケットでは、端末３９０のグローバルＩＰアドレスおよびグローバルポート番号がそれぞれ送信元ＩＰアドレス３９１１および送信元ポート番号３９２１に格納され、サーバ２１０のグローバルＩＰアドレスおよびグローバルポート番号がそれぞれ送信先ＩＰアドレス３９１２および送信先ポート番号３９２２に格納される。そして、アドレス変換装置１００において、送信先ＩＰアドレス３９１２および送信先ポート番号３９２２の部分がサーバ２１０のローカルＩＰアドレスおよびローカルポート番号に置き換えられてサーバ２１０に送信される。
【００６４】
また、データ領域３９３０は、ポート要求割当てコマンド３９３１を含む。このポート要求割当てコマンド３９３１は、アプリケーション層において指示されるものであり、アプリケーション層のプロトコルに依存する。
【００６５】
図８を参照すると、リプライ２１０１（図５）のパケット２１００の一例は、ＩＰヘッダ２１１０と、ＴＣＰヘッダ２１２０と、データ領域２１３０とを備える。ＩＰヘッダ２１１０は、図７のパケット３９００と同様に、送信元ＩＰアドレス２１１１と、送信先ＩＰアドレス２１１２とを含み、さらに（図示しない）プロトコル指定を含む。また、ＴＣＰヘッダ２１２０は、図７のパケット３９００と同様に、送信元ポート番号２１２１と、送信先ポート番号２１２２とを含む。
【００６６】
これにより、サーバ２１０から端末３９０に対するパケットでは、サーバ２１０のローカルＩＰアドレスおよびローカルポート番号がそれぞれ送信元ＩＰアドレス２１１１および送信元ポート番号２１２１に格納され、端末３９０のグローバルＩＰアドレスおよびグローバルポート番号がそれぞれ送信先ＩＰアドレス２１１２および送信先ポート番号２１２２に格納される。そして、アドレス変換装置１００において、送信元ＩＰアドレス２１１２および送信元ポート番号２１２２の部分がサーバ２１０のグローバルＩＰアドレスおよびグローバルポート番号に置き換えられて端末３９０に送信される。
【００６７】
また、データ領域２１３０は、サーバポート番号２１３２を含む。このサーバポート番号２１３２は、アプリケーション層において交換されるものであり、アプリケーション層のプロトコルに依存する。サーバ２１０から端末３９０に対するパケットでは、サーバポート番号２１３２にサーバ２１０のローカルポート番号が格納されているが、アドレス変換装置１００において、サーバ２１０のグローバルポート番号に差し替えられて端末３９０に送信される。
【００６８】
図９および図１０はＨＴＴＰによる一具体例である。ＨＴＴＰの場合、図７のポート割当て要求コマンド３９３１として、図９の第１行目のようにＧＥＴコマンドを用いることができる。この場合、ポート割当てを実現するプログラムがサーバ２１０に保持されており、ＣＧＩにより実行される。そのプログラムの実行ファイルを指定しているのが第２行目の「実行ファイル」である。また、このプログラムのパラメータが第３行目に示されている。ここでは、パラメータとして、割り当てるポートの個数、開始ポート番号、連続番号に限る旨の指定が可能となっており、図９の例ではそれぞれ、ポートの個数が「３」、開始ポート番号の指定は「なし」、連続番号に「限る」旨の指定がされている。これらパラメータで指定される項目は、そのポートを利用するアプリケーションに依存するものであり、この時点で適正なポートを割り当てておく必要がある。
【００６９】
このようにしてＨＴＴＰによるポート割当て要求コマンドを実行すると、図１０のデータ領域２１３４に示されるような応答が得られる。第１行目は処理が正常に終了したことを示すステータス行であり、第２行目は続くボディ部のデータがＨＴＭＬ（ＨｙｐｅｒＴｅｘｔ　Ｍａｒｋ−ｕｐ　Ｌａｎｇｕａｇｅ）形式であることを表すものである。第３行目の空白行に続く第４行目以降がＨＴＭＬ形式で記述されたデータである。この例では、３０００から３００２の連続する３つのポート番号がローカルポート番号として割り当てられている。
【００７０】
アドレス変換装置１００は、データ領域２１３４を含むパケットを受けると、データ領域２１３４を解析して、ポート番号を表示している位置を明らかにする。そして、図６のフローによって割り当てられたグローバルポート番号を、パケット内のポート番号の表示位置に埋め込むことにより、図１０のデータ領域２１３５を得る。すなわち、ローカルポート番号３０００乃至３００２が、グローバルポート番号５０００乃至５００２に差し替えられる。
【００７１】
この様子を表したのが図１１である。図１１を参照すると、ローカルＩＰアドレス「１９２．１６８．０．３」のサーバ２１０はＨＴＴＰ用ポート番号として「８０８０」を用意しており、これらはアドレス変換装置１００によりグローバルＩＰアドレス「２０２．２３８．９５．６５」のポート番号「８０」に変換されて公開されているものとする。そして、このグローバルＩＰアドレス「２０２．２３８．９５．６５」のポート番号「８０」にポート割当て要求があると、サーバ２１０はローカルポート番号として３つのポート番号「３０００乃至３００２」を割り当てる。また、アドレス変換装置１００はグローバルポート番号として３つのポート番号「５０００乃至５００２」を割り当てる。これらの対応関係をアドレス変換装置１００がアドレス変換装置１３０（図２）に設定することにより、それ以降グローバルＩＰアドレス「２０２．２３８．９５．６５」のポート番号「５０００乃至５００２」がサービス提供に使用されるようになる。
【００７２】
図１２および図１３はＲＴＳＰによる一具体例である。ＲＴＳＰの場合、図７のポート割当て要求コマンド３９３１として、図１２の第１行目のようにＳＥＴＵＰコマンドを用いることができる。このＳＥＴＵＰコマンドはセッションの初期化を行うコマンドであり、第２行目に示されるストリームサーバに対して伝送方法の設定を指示する。このとき、第３行目のようにクライアント側の接続先ポート番号が指定される。この例では、クライアント側のポート番号として４０００乃至４００１の連続する２つのポート番号が指定されている。したがって、サーバ側のポート番号としても連続する２つのポート番号を割り当てなければならない。
【００７３】
このようにしてＲＴＳＰによるポート割当て要求コマンドを実行すると、図１３のデータ領域２１３６に示されるような応答が得られる。第１行目は処理が正常に終了したことを示すステータス行であり、第２および３行目はそれぞれＲＴＳＰによるメッセージの連続番号および一連の通信に与えられるセッション番号である。第４行目以降のトランスポートパラメータにおいてポートの属性が定義されており、この例では、クライアント側のポート番号４０００乃至４００１に対して、サーバ側のローカルポート番号としてポート番号３０００乃至３００１が割り当てられている。
【００７４】
アドレス変換装置１００は、データ領域２１３６を含むパケットを受けると、データ領域２１３６を解析して、ポート番号を表示している位置を明らかにする。そして、図６のフローによって割り当てられたグローバルポート番号を、パケット内のポート番号の表示位置に埋め込むことにより、図１３のデータ領域２１３７を得る。すなわち、サーバ側のローカルポート番号３０００乃至３００１が、グローバルポート番号６０００乃至６００１に差し替えられる。
【００７５】
図１４および図１５はＳＩＰによる一具体例である。ＳＩＰの場合、図７のポート割当て要求コマンド３９３１として、図１４の第１行目のようにＩＮＶＩＴＥコマンドを用いることができる。このＩＮＶＩＴＥコマンドは呼設定を行うコマンドであり、第２行目に示される着信側（例えば、端末２９０）に対して、第３行目に示されるサーバを経由して通話するよう設定を指示する。このとき、第４行目のようにメディア属性として発呼側の送信者情報が記述される。このような記述はＳＤＰ（Ｓｅｓｓｉｏｎ　Ｄｅｓｃｒｉｐｔｉｏｎ　Ｐｒｏｔｏｃｏｌ）として知られている。この例では、音声用のポート番号として２０００が指定されている。したがって、着信側としても音声用のポート番号を１つ割り当てる必要がある。
【００７６】
このようにしてＳＩＰによるポート割当て要求コマンドを実行すると、図１５のデータ領域２１３８に示されるような応答が得られる。第１行目は処理が正常に終了したことを示すステータス行であり、第２行目から４行目にかけてはサーバおよび発呼側と着信側の情報が記述されている。最終行が着信側の情報を表すメディア属性である。この例では、着信側のローカルポート番号としてポート番号３０００が割り当てられている。
【００７７】
アドレス変換装置１００は、データ領域２１３８を含むパケットを受けると、データ領域２１３８を解析して、ポート番号を表示している位置を明らかにする。そして、図６のフローによって割り当てられたグローバルポート番号を、パケット内のポート番号の表示位置に埋め込むことにより、図１５のデータ領域２１３９を得る。すなわち、着信側のローカルポート番号３０００が、グローバルポート番号７０００に差し替えられる。
【００７８】
このように、本発明の実施の形態によれば、アプリケーション層で交換されるパケット２１００のデータ領域２１３０におけるローカルポート番号２１３２をアドレス変換装置１００がグローバルポート番号に差し替えることにより、アプリケーション層におけるポート番号の変換を行うことができる。
【００７９】
また、この実施の形態によれば、ポート割当てのパラメータとして、割り当てるポートの個数、開始ポート番号、連続番号に限る旨の指定ができ、アプリケーションの仕様に合わせたポート割当てを実現できる。
【００８０】
次に本発明の実施の形態の第１の変形例について説明する。
【００８１】
図１６を参照すると、この第１の変形例では、アドレス変換装置１００におけるグローバルポート番号の取得処理１０２は、サーバ２１０におけるローカルポート番号の取得処理２１１の結果を待たずに実行される。図２のパケット解析部１２０は、端末３９０からのポート割当て要求３９０１を含むパケットを解析し、割り当てるべきポート番号の条件を抽出する。そして、その条件に合致するグローバルポート番号を取得する。サーバ２１０におけるローカルポート番号の取得処理２１１は、アドレス変換装置１００におけるグローバルポート番号の取得処理１０２と並行して行われる。したがって、図１６の第１の変形例によれば、図５の例のようにサーバ２１０におけるローカルポート番号の取得処理２１１とアドレス変換装置１００におけるグローバルポート番号の取得処理１０２とを逐次的に行うよりも高速に処理することができる。
【００８２】
次に本発明の実施の形態の第２の変形例について説明する。
【００８３】
図１７を参照すると、本発明の実施の形態の第２の変形例におけるアドレス変換装置１００は、図２の構成例に加えて、サーバ代理部１６０と、プロキシ記憶部１７０とをさらに備えている。サーバ代理部１６０は、サーバ２１０の代理サーバ（プロキシサーバ）として機能するものであり、サーバ２１０に代わってサービスを提供する。プロキシ記憶部１７０は、サーバ２１０の記憶領域（例えば、ディスク領域）のコピーを保持するものである。サーバ２１０に対するサービス要求が通信部１１０から信号線１１６を介してされると、サーバ代理部１６０は、修正時刻が古くないことを条件としてプロキシ記憶部１７０の内容を用いてサービスの提供を行う。
【００８４】
図１８を参照すると、この第２の変形例におけるアドレス変換装置１００は、プロキシ記憶部１７０を参照し、サーバ２１０に代わってローカルポート番号の取得処理１０９を行う。この取得結果はアドレス変換装置１００からサーバ２１０に報告される（１００９）。この報告はグローバルポート番号の取得処理１０２と並行して実行できるため、この第２の変形例によれば、アドレス変換装置１００とサーバ２１０の間の通信時間を隠蔽することが可能となる。
【００８５】
なお、本発明の実施の形態では、ＨＴＴＰプロトコル、ＲＴＳＰプロトコルおよびＳＩＰプロトコルを例として説明したが、これらはトランスポート層より高位のプロトコルの一例であり、本発明はこれらに限られず、トランスポート層より高位のプロトコルについて広く適用される。
【００８６】
【発明の効果】
以上の説明で明らかなように、本発明によると、構内ネットワーク上のサーバへのポート割当て要求に対してグローバルポート番号を動的に取得して割り当てるという効果が得られる。
【図面の簡単な説明】
【図１】本発明によるアドレス変換装置を用いたシステム構成を示す図である。
【図２】本発明によるアドレス変換装置の実施の形態の構成を示すブロック図である。
【図３】本発明におけるアドレス変換テーブルの構成例を示す図である。
【図４】本発明におけるポート状態テーブルの構成例を示す図である。
【図５】本発明によるアドレス変換装置の実施の形態の動作例を示すシーケンス図である。
【図６】本発明におけるグローバルポート番号割当て処理手順を示すフローチャートである。
【図７】本発明におけるポート割当て要求コマンドを含むパケットの構成例を示す図である。
【図８】本発明における割当てポート番号を含むパケットの構成例を示す図である。
【図９】本発明におけるＨＴＴＰによるポート割当て要求コマンドの構成例を示す図である。
【図１０】本発明におけるＨＴＴＰによるポート番号割当て結果報告の構成例を示す図である。
【図１１】本発明におけるＨＴＴＰによるポート番号割当て結果の対応例を示す図である。
【図１２】本発明におけるＲＴＳＰによるポート割当て要求コマンドの構成例を示す図である。
【図１３】本発明におけるＲＴＳＰによるポート番号割当て結果報告の構成例を示す図である。
【図１４】本発明におけるＳＩＰによるポート割当て要求コマンドの構成例を示す図である。
【図１５】本発明におけるＳＩＰによるポート番号割当て結果報告の構成例を示す図である。
【図１６】本発明によるアドレス変換装置の実施の形態の第１の変形例における動作例を示すシーケンス図である。
【図１７】本発明によるアドレス変換装置の実施の形態の第２の変形例の構成を示すブロック図である。
【図１８】本発明によるアドレス変換装置の実施の形態の第２の変形例における動作例を示すシーケンス図である。
【符号の説明】
１００　アドレス変換装置
１１０　通信部
１２０　パケット解析部
１３０　アドレス変換テーブル
１３１　グローバルＩＰアドレス
１３２　グローバルポート番号
１３３　ローカルＩＰアドレス
１３４　ローカルポート番号
１３５　プロトコル
１４０　ポート状態テーブル
１４１　ポート番号
１４２　プロトコル
１４３　ポート状態
１４４　接続先
１５０　ポート割当て処理部
１５１　制御部
１５２　ポート定義ファイル
１５３　設定ポート検索部
１５４　使用中ポート検索部
１６０　サーバ代理部
１７０　プロキシ記憶部
２００　構内ネットワーク
２１０　サーバ
２９０　端末
３００　広域ネットワーク
３９０　端末
２１００、３９００　パケット
２１１０、３９１０　ＩＰヘッダ
２１２０、３９２０　ＴＣＰヘッダ
２１３０、３９３０　データ領域
２１１１、３９１１　送信元ＩＰアドレス
２１１２、３９１２　送信先ＩＰアドレス
２１２１、３９２１　送信元ポート番号
２１２２、３９２２　送信先ポート番号
２１３２　ポート番号
３９３１　ポート割当て要求コマンド
【図１】
2004072291.tif 000003
【図２】
2004072291.tif 000004
【図３】
2004072291.tif 000005
【図４】
2004072291.tif 000006
【図５】
2004072291.tif 000007
【図６】
2004072291.tif 000008
【図７】
2004072291.tif 000009
【図８】
2004072291.tif 000010
【図９】
2004072291.tif 000011
【図１０】
2004072291.tif 000012
【図１１】
2004072291.tif 000013
【図１２】
2004072291.tif 000014
【図１３】
2004072291.tif 000015
【図１４】
2004072291.tif 000016
【図１５】
2004072291.tif 000017
【図１６】
2004072291.tif 000018
【図１７】
2004072291.tif 000019
【図１８】
2004072291.tif 000020