(57)【要約】【課題】  パケット通信において、アドレス変換を含み、通信全体の高速化を目的とする。【解決手段】  アドレス変換プログラムにおいて、受信パケットを、複数のアドレス変換部のうちで、あらかじめ設定されたアドレス変換部に振り分ける手順２と、アドレス変換の対象パケットがアドレス変換部切替条件を満たすパケットであるか否かを判定する手順３と、切替条件を満たさないときに手順２以降を繰返す手順を計算機に実行させ、切替条件を満たすときにアドレス変換部を切替る手順４と、手順２以降を繰返す手順とを計算機に実行させる。【選択図】      図１
2005117503.tif 000002
【特許請求の範囲】
【請求項１】
複数のアドレス変換部を用いる計算機によって使用されるプログラムにおいて、
受信パケットをあらかじめ設定されたアドレス変換部に振り分けるパケット振り分け手順と、
アドレス変換が実行されたパケットが、あらかじめ定められたアドレス変換部切り替え条件を満たすパケットであるか否かを判定する切替条件判定手順と、
該切替条件が満たされない時、前記パケット振り分け手順以降を繰返す処理繰り返し手順を計算機に実行させ、
該切替条件が満たされた時、アドレス変換を行なうべきアドレス変換部を切替える手順と、前記パケット振り分け手順以降を繰返す処理繰り返し手順とを計算機に実行させるためのアドレス変換プログラム。
【請求項２】
前記複数のアドレス変換部が、アプリケーションレイヤにおいてアドレス変換を行なうアドレス変換部と、ＩＰレイヤにおいてアドレス変換を行なうアドレス変換部とを備えることを特徴とする請求項１記載のアドレス変換プログラム。
【請求項３】
複数のアドレス変換部を用いて、アプリケーションデータ部にアドレス変換を必要とするデータを含むパケットと、アドレス変換を必要とするデータを含まないパケットとが伝送されるコネクションに対応して、アドレス変換を行なう計算機によって使用されるプログラムにおいて、
受信パケットのアプリケーションデータ部の内容によって、アドレス変換を行なうべきアドレス変換部を判定する変換部判定手順と、
該判定されたアドレス変換部に受信パケットを振り分けるパケット振り分け手順とを計算機に実行させるためのアドレス変換プログラム。
【請求項４】
複数のアドレス変換部を用いる計算機によって使用される記憶媒体において、
受信パケットをあらかじめ設定されたアドレス変換部に振り分けるパケット振り分けステップと、
アドレス変換が実行されたパケットが、あらかじめ定められたアドレス変換部切り替え条件を満たすパケットであるか否かを判定する切替条件判定ステップと、
該切替条件が満たされない時、前記パケット振り分けステップ以降を繰返す処理繰り返しステップを計算機に実行させ、
該切替条件が満たされた時、アドレス変換を行なうべきアドレス変換部を切替えるステップと、前記パケット振り分けステップ以降を繰返す処理繰り返しステップとを計算機に実行させるためのアドレス変換プログラムを格納した計算機読出し可能可搬型記憶媒体。
【請求項５】
複数のアドレス変換部を用いて、アプリケーションデータ部にアドレス変換を必要とするデータを含むパケットと、アドレス変換を必要とするデータを含まないパケットとが伝送されるコネクションに対応して、アドレス変換を行なう計算機によって使用される記憶媒体において、
受信パケットのアプリケーションデータ部の内容によって、アドレス変換を行なうべきアドレス変換部を判定するステップと、
該判定されたアドレス変換部に受信パケットを振り分けるステップとを計算機に実行させるためのアドレス変換プログラムを格納した計算機読出し可能可搬型記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はネットワークアドレスの変換方式に係わり、更に詳しくはパケット毎にアドレス変換を行なうレイヤを変更することにより、高速にアドレス変換を行なうためのアドレス変換プログラム、および変換装置に関する。
【背景技術】
【０００２】
アドレス体系の異なるネットワークの間で通信を行なう場合には、例えばネットワークの接続点にアドレス変換装置を備え、アドレス変換を実行する必要がある。従来から使用されているＩＰｖ（インターネット・プロトコル・バージョン）４のアドレスの不足から、アドレス空間を１２８ビットに拡大したＩＰｖ６が開発されている。このＩＰｖ４ネットワークとＩＰｖ６ネットワークの間では、通信のためにアドレス変換が必要となる。
【０００３】
すなわち、ＩＰｖ６ネットワークが実用化されても、当面は既存資産の有効利用のために、ＩＰｖ４ネットワークと併用されることになり、２つのネットワークの間でのアドレス変換は不可欠の技術として利用されるものと考えられる。
【０００４】
図２８〜図３０は、アドレス変換の従来方式の説明図である。図２８はＩＰレイヤにおけるアドレス変換の説明図である。アプリケーションレイヤで処理されるべきデータの内部に、アドレス変換を行なうべきデータが存在せず、パケットのＩＰヘッダに格納されるパケットの送信元アドレス（とポート番号）、および宛先アドレス（とポート番号）を変換することによって異なるアドレス体系のネットワークとの間での通信が可能である場合には、ＩＰレイヤでアドレス変換が行なわれる。
【０００５】
図２９はアプリケーションレイヤでのアドレス変換の説明図である。パケットのアプリケーションデータの内部にアドレス変換を行なうべきデータが存在する場合、例えば相手側の通信装置との間での認証などのために、データ内部に自通信装置のアドレスを格納して通信を行なうような場合には、その通信コネクション内のパケットに対するアドレス変換をアプリケーションレイヤで行う必要がある。すなわち、パケットのヘッダ部に格納されているＩＰアドレスはＩＰレイヤで変換できるが、アプリケーションデータ内にアドレスなどが含まれている場合には、そのデータをＩＰレイヤで変換することはできない。
【０００６】
図３０はコネクションによるアドレス変換レイヤの選択の説明図である。アドレス体系の異なるネットワークの間で、それぞれのネットワーク内の通信装置の間に複数のコネクションがはられ、全体として１つの通信が行なわれる場合には、アプリケーションレイヤでアドレス変換を行なうべきコネクションと、ＩＰレイヤでアドレス変換を行なうべきコネクションに対する変換を使い分けることによって、処理全体を高速化することができる。
【０００７】
しかしながら通信が１つのコネクションとして行なわれ、そのコネクション内でアプリケーションレイヤでアドレス変換を行なうべきパケットと、ＩＰレイヤの変換で十分なパケットとが転送される場合には、従来は全てのパケットに対するアドレス変換をアプリケーションレイヤで行なわなくてはならないという問題点があった。
このようなアドレス変換の従来技術として次の文献がある。
【特許文献１】特開２０００−１５６７０９号公報「アドレス変換装置および記録媒体」
【０００８】
特許文献１には、アプリケーションデータ部にアドレス変換が必要なデータを含むパ
ケットを転送するコネクションに対しては、そのコネクションの全てのパケットのユーザデータ部内のアドレス情報の変換をアプリケーションレイヤで、データ部にアドレス変換が必要なデータが存在しないパケットのみを伝送するコネクションに対しては、その全てのパケットのアドレス変換をＩＰレイヤで行なうことによって、通信を高速化する技術が開示されている。
【０００９】
なお一般に１つの通信内の複数のコネクション、例えばファイル・トランスファー・プロトコル（ＦＴＰ）のように、制御用に１つのコネクション、データ伝送用にもう１つのコネクションを確立して通信を行なう場合には、それぞれのコネクションに異なるポート番号が割り当てられる。特許文献１においては、例えば図２に示されるように、呼制御用ポート番号を用いたコネクションと、通話ポート番号を用いたコネクションとが確立されて、全体としての通信が行なわれている。
【００１０】
しかしながら特許文献１においても、図３０で説明したようにユーザデータ部のデータに対してアドレス変換が必要なコネクション、すなわち呼制御用のコネクションの全てのパケットのユーザデータ部内のアドレス情報の変換はアプリケーションレイヤで、アドレス変換が必要なデータを含まないパケットのみを伝送する通話用のコネクションの全てのパケットに対しては、ＩＰレイヤでアドレス変換が行なわれている。
【００１１】
このように従来においては、アドレス変換が行なわれるべきレイヤを選択する場合には、コネクション単位で選択が行なわれていた。通信が１つのコネクションによって行なわれ、その中でユーザデータ部（アプリケーションデータ）にアドレス変換が必要なデータを含むパケットが伝送される場合には、アドレス変換を行なうべきレイヤを選択することができず、そのコネクションで伝送される全てのパケットのアドレス変換をアプリケーションレイヤで処理しなくてはならないため、アドレス変換に必要な処理量が増加し、高速なアドレス変換および通信を行なうことができないという問題点があった。
【００１２】
これに対してＩＰレイヤでは高速なアドレス変換および通信を行なうことができるが、アプリケーションデータの内部にアドレス変換を行なうべきデータが存在する場合にも、その事実を認識することができず、そのデータに対するアドレス変換を実行することができないという問題点があった。
【発明の開示】
【発明が解決しようとする課題】
【００１３】
本発明の課題は、上述の問題点に鑑み、パケット単位でアプリケーションデータの内部にアドレス変換が必要なデータが含まれているか否かを判定し、アプリケーションレイヤでのアドレス変換が必要なパケットのみを対象として、アプリケーションレイヤでアドレス変換を実行することによって、アドレス変換と通信全体の高速化を実現することである。
【課題を解決するための手段】
【００１４】
まず、後述する本発明の第１の実施形態に対応するアドレス変換プログラムについてその原理を説明する。このアドレス変換プログラムは、複数のアドレス変換部、例えばＩＰレイヤでアドレス変換を行なうアドレス変換部と、アプリケーションレイヤでアドレス変換を行なうアドレス変換部とを用いて、アプリケーションデータ部にアドレス変換を必要とするデータを含むパケットと、そのようなデータを含まないパケットとが伝送されるコネクションに対応して、アドレス変換を行なう計算機によって使用されるものである。
【００１５】
このプログラムは、受信パケットのデータ部の内容によってアドレス変換を行なうべきアドレス変換部を判定する手順と、判定されたアドレス変換部に受信パケットを振り分けるパケット振り分け手順とを計算機に実行させるものである。
【００１６】
この第１の実施形態のプログラムに対応して、このプログラムを格納した計算機読出し可能可搬型記憶媒体が用いられる。またこのプログラムに対応するアドレス変換方法が用いられ、更にアドレス体系の異なる２つのネットワークの接続点にアドレス変換を行なうアドレス変換装置が備えられる。
【００１７】
図１は本発明の第２の実施形態に対応するアドレス変換プログラムの原理的な機能ブロック図である。同図は複数のアドレス変換部、例えばＩＰレイヤでアドレス変換を行なうアドレス変換部と、アプリケーションレイヤでアドレス変換を行なうアドレス変換部とを用いる計算機によって実行されるプログラムである。
【００１８】
図１において、まず１で初期にアドレス変換を行なうべきアドレス変換部の設定と、アドレス変換を行なうべきアドレス変換部の切り替え条件の設定とが行なわれ、２で受信パケットを設定されているアドレス変換部に振り分ける手順が実行される。
【００１９】
次に３でアドレス変換が実行されたパケットが、前述のアドレス変換部の切り替え条件を満たすパケットであるか否かを判定する手順が実行され、切替条件を満たさない時には、２のパケット振り分け手順以降を繰返す処理繰返し手順が実行される。
【００２０】
アドレス変換部の切り替え条件が満たされた時には、４でアドレス変換を行なうべきアドレス変換部を切り替える手順が更に実行された後に、２のパケット振り分け手順以降が繰返される。
【００２１】
また前述の切り替え条件の判定手順において、アドレス変換が実行されたパケット内のアプリケーションデータの内容によって条件判定を行なうこともできる。この第２の実施形態に対応して、アドレス変換プログラムを格納した計算機読出し可能可搬型記憶媒体を用いることも、またこのプログラムに相当するアドレス変換方法を用いることも、更にアドレス体系の異なる２つのネットワークの接続点にこのようなアドレス変換を行なうアドレス変換装置を備えることも可能である。
【発明の効果】
【００２２】
本発明によれば、受信パケット毎にパケットのデータ部を参照し、パケットの種別に対応してアドレス変換を行なうレイヤをＩＰレイヤ、あるいはアプリケーションレイヤのいずれにするかを判定してアドレス変換を行なうことによって、アドレス変換の高速化が実現される。
【００２３】
また、アドレス変換を行なうべきレイヤを切り替えるべきパケット種別のパケットに対応するアドレス変換を行なった時点で、アドレス変換が行なわれるべきレイヤを切り替えることによって、例えば最初はＩＰレイヤでアドレス変換を行い、必要となった時点でアドレス変換をアプリケーションレイヤに切り替えるようなアドレス変換レイヤの切り替えを行なうことができ、通信全体のアドレス変換の高速化が実現される。
【発明を実施するための最良の形態】
【００２４】
図２以降を用いて本発明の実施の形態について更に詳細に説明する。図２は本発明におけるアドレス変換装置を含む全体的な通信システム構成図である。同図において、アドレス変換装置１０は、ホストＡ１１とホストＢ１２との間で行なわれるパケット通信におけるアドレス変換を行なうものであり、ホストＡ１１が接続された第１のネットワーク１３と、ホストＢ１２が接続された第２のネットワーク１４との接続点に、アドレス変換装置１０が備えられる。
【００２５】
図３は図２のアドレス変換装置１０の構成ブロック図である。同図において変換装置１０は、２つのネットワークとのインタフェースとなるネットワークインタフェース２０、パケットのデータ部を参照して、ＩＰレイヤとアプリケーションレイヤとのどちらでアドレス変換を行なうかを判定するためのデータ内参照部２１、その参照結果に対応してパケットのアドレス変換レイヤを切り替える変換レイヤ振り分け部２２、ＩＰレイヤアドレス変換部２３、アプリケーションレイヤアドレス変換部２４、それぞれのレイヤから変換レイヤの変更を通知するための変換レイヤ変更通知部２５、２６を備えている。
【００２６】
図３のアドレス変換装置１０によるアドレス変換がアプリケーションレイヤで行なわれる場合には、その変換はユーザ空間２９における変換に相当し、またＩＰレイヤで行なわれる場合にはカーネル空間２８における変換に相当する。
【００２７】
図４はパケット毎にアドレス変換レイヤを選択するアドレス変換方式の説明図である。同図において、データ内参照部２１によるデータ部の参照結果に対応して、変換レイヤ振り分け部２２によって、パケット毎にアドレス変換レイヤとしてＩＰレイヤ、またはアプリケーションレイヤのいずれかが選択される。ＩＰレイヤでは、データ部内にアドレス変換が必要なデータが含まれていない場合にアドレス変換が行なわれ、アプリケーションレイヤではパケットのデータ部内にアドレス変換が必要なデータが含まれているパケットに対するアドレス変換が行なわれる。
【００２８】
このようにパケット毎にアドレス変換レイヤが選択される場合が、本発明の第１の実施形態に相当する。
図５は第１の実施形態におけるアドレス変換方式の基本的な処理フローチャートである。同図において処理が開始されると、まずステップＳ１で、アプリケーションレイヤでアドレス変換が行なわれるべきパケットのデータ部内のパターン、あるいはパケットの種別が設定され、ステップＳ２でパケットが受信され、ステップＳ３でデータ部が参照され、ステップＳ４でデータ部に設定されたパターンが存在するか、あるいは設定されたパケット種別か否かが判定され、存在する場合にはステップＳ５でアドレス変換がアプリケーションレイヤで行なわれた後に、またパターンが存在しない場合にはステップＳ６でＩＰレイヤでアドレス変換が行なわれた後に、ステップＳ２以降の処理が繰返される。
【００２９】
図６は本発明の第２の実施形態、すなわちそれぞれのレイヤに備えられる変更通知部からの通知により、変換レイヤの選択が行なわれるアドレス変換方式の動作の説明図である。同図においてＩＰレイヤに備えられる変更通知部２５、またはアプリケーションレイヤに備えられる変更通知部２６からの通知によって、変換レイヤ振り分け部２２によるパケットの振り分けの変更が行なわれる。
【００３０】
例えばＩＰレイヤでアドレス変換が行なわれたパケットの次のパケットに対するアドレス変換がアプリケーションレイヤで行なわれるべきことが変更通知部２５によって判定され、その判定結果が変更レイヤ振り分け部２２に与えられることによって、その次のパケットのアドレス変換はアプリケーションレイヤで行なわれる。
【００３１】
図７は第２の実施形態における基本的なアドレス変換処理のフローチャートである。同図において、まずステップＳ１０で初期状態においてアドレス変換が行なわれるべきレイヤの設定が行なわれる。ここでは、例えばアプリケーションレイヤが設定されるものとする。続いてステップＳ１１で、アドレス変換が行なわれるべきレイヤの切り替え条件の設定が行なわれる。この条件設定については、具体例を用いて更に後述する。
【００３２】
続いてステップＳ１２でパケットが受信され、ステップＳ１３で現在設定されているレイヤ、ここではアプリケーションレイヤでのアドレス変換部、すなわち図３における変換部２４にパケットが振り分けられ、ステップＳ１４でアドレス変換が実行され、ステップＳ１５で受信パケットがアドレス変換が行なわれるレイヤを切り替えるべき条件を満たすパケットであるか否かが判定され、条件を満たすパケットの場合にはステップＳ１６で変換レイヤ振り分け部２２に対して変更通知が行なわれ、ステップＳ１７で現在アドレス変換が行なわれるべきレイヤとして設定されているレイヤがもう一方のレイヤ、ここではＩＰレイヤに切り替えられた後に、またステップＳ１５で条件を満たしていない場合には直ちに、ステップＳ１２以降の処理が繰返される。
【００３３】
次に本実施形態におけるアドレス変換方式について更に詳細に説明するために、アプリケーションに対応して図２のホストＡ１１とホストＢ１２との間で行なわれる通信処理の３つの具体例について説明する。
【００３４】
図８は第１の具体例としてのアプリケーション（１）における通信処理の説明図である。このアプリケーション（１）は、通信の開始時（通信の接続後）にホスト間で状態設定が行なわれた後に、ＩＰアドレスを用いた認証が行なわれ、認証後に具体的なデータ転送が行なわれるアプリケーションである。認証時のみパケットのデータ部に認証のためのＩＰアドレスが格納され、従って認証データ送信パケットに対してのみアプリケーションレイヤでのアドレス変換が必要になり、その他の全てのパケットに対してはＩＰレイヤでのアドレス変換が行なわれることになる。
【００３５】
図８においてホストＡ１１側からの接続要求パケットに対応してホストＢ１２側から接続応答パケットが送られ、続いてホストＡ１１側から状態設定パケット、ホストＢ１２側から状態設定完了パケットが送られる。これらのパケットに対するアドレス変換は全てＩＰレイヤで行なわれる。
【００３６】
その後、ホストＡ１１側から認証データ送信パケットがホストＢ１２に対して送られるが、このパケットに対してはアプリケーションレイヤでのアドレス変換が必要となる。その後ホストＢ１２側からの認証応答パケットや、ホストＡ１１とホストＢ１２との間でのデータ転送パケットに対するアドレス変換は全てＩＰレイヤで行なわれる。
【００３７】
図９は図８の通信において用いられるパケットのデータ構造を示す。同図においてパケットの最初にはＩＰヘッダが格納され、続いてＴＣＰヘッダが格納され、それに続いてアプリケーションのプロトコル、アプリケーションヘッダ、アプリケーションデータが格納される。ここでパケットのデータ部とはアプリケーションヘッダとアプリケーションデータとによって構成されるものとする。
【００３８】
ここで、説明しているアプリケーションの３つの例、すなわちアプリケーション（１）からアプリケーション（３）の区別は、ＴＣＰヘッダ内の宛先ポート番号によって行なわれるものとする。図１０はこのＴＣＰヘッダのフォーマットである。同図において、宛先ポート番号はＴＣＰヘッダの先頭から３バイト目と４バイト目の領域に格納され、この宛先ポート番号としてはアプリケーション（１）に対しては１０００、アプリケーション（２）に対しては２０００、アプリケーション（３）に対しては３０００が使用されるものとする。
【００３９】
図１１は図９におけるアプリケーションヘッダのフォーマットである。これはアプリケーション（１）に対するアプリケーションヘッダの例であり、図８で説明した状態設定パケット、認証データ送信パケット、およびデータ転送パケットの区別を示すパケット種別が、アプリケーションヘッダの先頭から２バイト目に格納され、このパケット種別の値が“１”である時に状態設定パケット、“２”である時に認証データ送信パケット、“３”である時にデータ転送パケットであるものとする。
【００４０】
図１２〜１４は、図９のアプリケーションデータのフォーマットである。図１２はパケット種別が状態設定パケットであるパケットのアプリケーションデータのフォーマットを示し、各種の状態情報がデータとして格納されている。
【００４１】
図１３は認証データ送信パケットに対するアプリケーションデータのフォーマットであり、その先頭から５バイト目から８バイト目にＩＰアドレスが認証のためのデータとして格納されている。
【００４２】
図１４はデータ転送パケットにおけるアプリケーションデータのフォーマットであり、データ長およびリザーブの領域の後に、転送される実際のデータが格納される。
図１５はアプリケーション（２）の通信処理の説明図である。このアプリケーション（２）では、相手側のホストのユーザに対して通信相手のＩＰアドレスを表示するために、任意のタイミングでパケットのデータ部にＩＰアドレスが格納され、そのパケットが表示用データ送信パケットとして通信相手側のホストに送信され、この表示用データ送信パケットのみに対して、アプリケーションレイヤでのアドレス変換が必要となる形式で通信が行なわれる。
【００４３】
図１５においてホストＡ１１側からの接続要求、ホストＢ１２側からの接続応答の後に、２つのホストの間でデータ送信が行なわれた後、あるタイミングでホストＡ１１からホストＢ１２に対して表示用データ送信パケットが送られる。
【００４４】
その後２つのホスト間でデータ転送パケットの送受信が繰返された後に、あるタイミングでホストＢ１２からホストＡ１１に対して表示用データ送信パケットが送られる。この表示用データ送信パケットに対してのみ、アプリケーションレイヤでのアドレス変換が必要となる。
【００４５】
アプリケーション（２）におけるパケットのデータ構造は図９におけると同じである。図１６はアプリケーションヘッダのフォーマットであり、図１１と異なり、アプリケーションヘッダの先頭２バイトにパケット種別が格納されている。このパケット種別の値が“１”である時に表示用データ送信パケットであることが、また“２”である時にはデータ転送パケットであることが示される。
【００４６】
図１７はアプリケーション（２）における表示用データ送信パケットのアプリケーションデータのフォーマットである。各種の表示用情報の後で、先頭から９バイト目から１２バイト目にＩＰアドレスが格納される。アプリケーション（２）におけるデータ転送パケットのフォーマットは図１４と同じである。
【００４７】
図１８はアプリケーション（３）における通信処理の説明図である。アプリケーション（３）は、通常はパケットのデータ部にアドレス変換が必要なデータが格納されず、アドレス変換がＩＰレイヤで行なわれているものとし、ある特定の期間だけ相手側に対してアドレス変換が必要なＩＰアドレスなどを含むデータが転送されるアプリケーションであり、この期間だけアプリケーションレイヤでのアドレス変換が必要となる。パケットのデータ部のアドレス変換が必要となるパケットの転送開始と終了のタイミングは、パケットの種別から判別可能となるものとする。
【００４８】
図１８において、ホストＡ１１側からの接続要求、ホストＢ１２側からの接続応答に続いて、２つのホストの間でデータ転送が行なわれ、あるタイミングでホストＡ１１側から情報送信開始パケットが送られる。
【００４９】
この情報送信開始パケットのデータ部には、まだアドレス変換が必要なデータは格納されておらず、アドレス変換はＩＰレイヤで行なわれるが、この変換時にアドレス変換装置は情報送信開始パケットのパケット種別から、次にホストＢ１２に対して転送されるパケットのデータ部にアドレス変換が必要なデータが格納されるものと判定する。図３の変換レイヤ振り分け部２２は、次のパケットからパケットをアプリケーションレイヤアドレス変換部２４に対して振り分け、その後のパケットに対するアドレス変換はアプリケーションレイヤで実行されることになる。
【００５０】
この時、情報送信開始パケットの転送直後から、ホストＡ１１からホストＢ１２側に送られるパケットに対しては、パケット種別として情報送信中であることが示される。そしてデータ部にアドレス変換が必要なデータを含む最後のパケットの送信時に、パケット種別として情報送信終了を示すパケットがホストＢ１２側に送られる。アドレス変換装置は、このパケットに対するアドレス変換を終了した時点で、その次のパケットからアドレス変換をＩＰレイヤで実行すべきものとして、その次のパケットから変換レイヤ振り分け部２２はパケットをＩＰレイヤアドレス変換部２３に振り分け、その後ＩＰレイヤでのアドレス変換が行なわれる。
【００５１】
アプリケーション（３）に対するパケットのデータ構造も、アプリケーション（１）に対する図９と同じである。図１９はアプリケーションヘッダのフォーマットであり、その先頭にパケット種別を示すデータが格納されている。その値が“１”である時には情報送信開始パケット、“２”である時には情報送信中パケット、“３”である時には情報送信終了パケット、“４”である時にはデータ転送パケットを示す。
【００５２】
図２０はアプリケーション（３）の情報送信中パケット、および情報送信終了
パケットにおけるアプリケーションデータのフォーマットである。アプリケーションデータの先頭４バイトにＩＰアドレスが格納され、その後に各種の情報が格納されている。
【００５３】
続いて第１、第２の実施形態におけるアドレス変換処理の詳細を、アプリケーション（１）からアプリケーション（３）のそれぞれに対応して説明する。図２１は第１の実施形態におけるアプリケーション（１）に対するアドレス変換処理のフローチャートである。
【００５４】
図２１においてまずステップＳ２１で、アプリケーションレイヤへのパケットの振り分け条件が設定される。この振り分け条件としては、図１１で説明したようにアプリケーションヘッダの先頭から２バイト目にある、１バイトのパケット種別の値が“２”であるという条件が設定される。
【００５５】
ステップＳ２２でＴＣＰパケットが受信され、ステップＳ２３で宛先ポート番号が１０００であるか、すなわちアプリケーション（１）に対する通信パケットであるか否かが判定され、１０００でない場合にはアドレス変換の対象とならないパケット、例えば自装置宛のパケットであることになり、ステップＳ２２に戻り、次のパケットの受信が行なわれる。
【００５６】
宛先ポート番号が１０００である場合には、ステップＳ２４でパケットのデータ部としてのアプリケーションヘッダの内部のパケット種別が、図１１で説明したように“２”であるか否かが判定される。
【００５７】
“２”である場合には、アプリケーション（１）における認証データ送信パケットであることになり、ステップＳ２５でそのパケットがアプリケーションレイヤアドレス変換部２４に振り分けられ、ステップＳ２６でアプリケーションレイヤでのアドレス変換、すなわち図１３で説明したアプリケーションデータの５バイト目に格納されているＩＰアドレスの変換が行なわれた後に、ステップＳ２２以降の処理が繰返される。
【００５８】
ステップＳ２４でパケット種別が“２”でない場合には、図１１で説明したように、そのパケットは状態設定パケットあるいはデータ転送パケットであることになり、そのパケットはＩＰレイヤアドレス変換部２３にステップＳ２７で振り分けられ、ステップＳ２８でＩＰレイヤでのアドレス変換が行なわれた後に、ステップＳ２２以降の処理が繰返される。
【００５９】
図２２は、第１の実施形態における、アプリケーション（２）の通信処理に対するアドレス変換処理のフローチャートである。同図においてまずステップＳ３１で、アプリケーションレイヤへの振り分け条件として、図１６で説明したパケット種別の値が“1”であるという条件が設定された後、ステップＳ３２でＴＣＰパケットが受信され、ステップＳ３３で宛先ポート番号が２０００であるか否かが判定され、２０００でない場合にはステップＳ３２以降の処理が繰返される。
【００６０】
宛先ポート番号が２０００である場合には、ステップＳ３４でアプリケーションレイヤへの振り分け条件が成立しているか、すなわちパケット種別が“１”であるか否かが判定され、“１”である場合にはステップＳ３５でパケットがアプリケーションレイヤでの変換部２４に振り分けられ、ステップＳ３６でアプリケーションレイヤでのアドレス変換として図１７で説明したＩＰアドレスの変換が行なわれた後に、またステップＳ３４でアプリケーションレイヤへの振り分け条件が成立していない場合には、ステップＳ３７でのパケットのＩＰレイヤでの変換部２３への振り分けと、ステップＳ３８のＩＰレイヤでの変換が行なわれた後に、ステップＳ３２以降の処理が繰返される。
【００６１】
図２３は第１の実施形態におけるアプリケーション（３）の通信に対するアドレス変換処理のフローチャートである。同図はアプリケーション（１）に対する図２１、アプリケーション（２）に対する図２２と類似しているが、異なる点は、ステップＳ４１でアプリケーションレイヤへの振り分け条件として、図１９で説明したパケット種別が情報送信中を示す“２”、情報送信終了を示す“３”であることが設定される点と、ステップＳ４３で宛先ポート番号が３０００であるか否かが判定される点と、ステップＳ４４でパケット種別が“２”、または“３”であるか否かが判定される点と、ステップＳ４６で図２０で説明したＩＰアドレスの変換がアプリケーションレイヤで行なわれる点が異なっている。
【００６２】
続いて第２の実施形態における、それぞれのアプリケーションに対応するアドレス変換処理について説明する。前述のように第２の実施形態では、あるパケットに対するアドレス変換が終了した後に、その次のパケットからアドレス変換が行なわれるレイヤを切り替える方式が用いられる。そこで任意のタイミングで転送されるパケットから、直ちにそのパケットに対するアドレス変換が行なわれるレイヤを切り替えなければならないアプリケーション（２）に対しては、アドレス変換処理を適切に行なうことが困難なため、アプリケーション（１）とアプリケーション（３）の２つのアプリケーションに対応するアドレス変換を説明する。
【００６３】
図２４は第２の実施形態における、アプリケーション（１）の通信に対するアドレス変換処理のフローチャートである。同図において、まずステップＳ５１で初期変換レイヤとしてアプリケーションレイヤが設定されると共に、変換レイヤ切り替え条件が設定される。この切り替え条件としては、図１１で説明したようにパケット内のアプリケーションヘッダの内部のパケット種別の値が“２”であるパケットのアドレス変換を行ったことが切り替え条件として設定される。
【００６４】
続いてステップＳ５２，Ｓ５３で、図２１におけるステップＳ２２とＳ２３と同様の処理が行なわれ、ステップＳ５４でアプリケーションレイヤでの変換部２４にパケットが振り分けられ、ステップＳ５５でアプリケーションレイヤでのアドレス変換としてステップＳ２６におけると同様の処理が行なわれ、ステップＳ５６でアドレス変換を行なったパケットのパケット種別が“２”であるか否かが判定され、“２”でない場合にはステップＳ５２以降の処理が繰返される。
【００６５】
パケット種別が“２”である場合には、図８で説明した認証データ送信パケットに対するアドレス変換を行なったことになるため、ステップＳ５７で切り替え条件を満たしたものとして、変換レイヤを切り替える処理が行なわれる。なお図２４では、ステップＳ５１で初期変換レイヤとしてアプリケーションレイヤが設定され、例えば図８で接続要求パケット、接続応答パケット、状態設定パケット、および状態設定完了パケットに対しては、本来ＩＰレイヤでのアドレス変換が行われるだけでよいはずであるが、これらのパケットに対してもアプリケーションレイヤでのアドレス変換が行われることになる。
【００６６】
しかしながら、ここでアプリケーションレイヤでアドレス変換を行なうパケットの数は少なく、全体の処理時間に対する影響はあまり大きくないために、ここではこれらのパケットに対してもアプリケーションレイヤでのアドレス変換を適用するものとする。
【００６７】
ステップＳ５７でアドレス変換レイヤがＩＰレイヤに切り替えられた後、ステップＳ５８〜Ｓ６１において図８におけるデータ転送パケット、すなわち通信の主体であり、多数のデータ転送パケットに対するＩＰレイヤでのアドレス変換が実行される。
【００６８】
図２５，および図２６は第２の実施形態における、アプリケーション（３）に対するアドレス変換処理のフローチャートである。図２５において、まずステップＳ７１で初期変換レイヤとしてＩＰレイヤが設定されると共に、変換レイヤの切り替え条件が設定される。ここでＩＰレイヤからアプリケーションレイヤへの切り替え条件は、図１９で説明したようにアドレス変換を行なったパケットのパケット種別が“１”であるという条件、アプリケーションレイヤからＩＰレイヤへの切り替え条件はアドレス変換を行なったパケットのパケット種別が“３”であるという条件が設定される。
【００６９】
続いてステップＳ７２，Ｓ７３で、図２３のステップＳ４２，Ｓ４３と同様の処理が行なわれた後、ステップＳ７４でパケットがＩＰレイヤでの変換部２３に振り分けられ、ステップＳ７５でＩＰレイヤでのアドレス変換が行なわれ、ステップＳ７６で変換を行なったパケットのパケット種別が“１”であるか否かが判定され、“１”でない場合にはステップＳ７２以降の処理が繰返される。
【００７０】
パケット種別が“１”である場合には、切り替え条件が満たされたことになるため、ステップＳ７７で変換レイヤの切り替え、すなわちアプリケーションレイヤへの切り替えが行なわれた後に、図２６の処理に移行する。
【００７１】
図２６のステップＳ７８，７９で、図２５のＳ７２，Ｓ７３と同様の処理が行なわれた後に、ステップＳ８０でパケットがアプリケーションレイヤでの変換部２４に振り分けられ、ステップＳ８１で図２３のステップＳ４６と同様にアプリケーションレイヤでのアドレス変換が行なわれた後に、ステップＳ８２でアドレス変換を行なったパケットのパケット種別が“３”であるか否かが判定され、“３”でない場合にはステップＳ７８以降の処理が繰返される。パケット種別が“３”である場合には、切り替え条件が満たされたことになるため、ステップＳ８３で変換レイヤがＩＰレイヤに切り替えられた後に、図２５のステップＳ７２以降の処理が繰返される。
【００７２】
以上の説明ではアプリケーションレイヤでのアドレス変換も、ＩＰレイヤでのアドレス変換も、ともにソフトウエアによって実現されるものとしたが、ＩＰレイヤでのアドレス変換をハードウエアによって行なうことも当然可能である。ＩＰレイヤでのアドレス変換はソフトウエアでも比較的高速であるが、ハードウエア化によってさらに高速化される。
【００７３】
以上において本発明のアドレス変換プログラム、および変換装置についてその詳細を説明したが、このアドレス変換装置は当然一般的なコンピュータシステムを基本として構成することが可能である。図２７はそのようなコンピュータシステム、すなわちハードウエア環境の構成ブロック図である。
【００７４】
図２７においてコンピュータシステムは中央処理装置（ＣＰＵ）５０、リードオンリメモリ（ＲＯＭ）５１、ランダムアクセスメモリ（ＲＡＭ）５２、通信インタフェース５３、記憶装置５４、入出力装置５５、可搬型記憶媒体の読み取り装置５６、およびこれらの全てが接続されたバス５７によって構成されている。
【００７５】
記憶装置５４としてはハードディスク、磁気ディスクなど様々な形式の記憶装置を使用することができ、このような記憶装置５４、またはＲＯＭ５１に図５，
図７，図２１〜図２６などのフローチャートに示されたプログラムや、本発明の特許請求の範囲の請求項１〜４のプログラムなどが格納され、そのようなプログラムがＣＰＵ５０によって実行されることにより、本実施形態におけるアドレス変換レイヤの設定変更などが可能となる。
【００７６】
このようなプログラムは、プログラム提供者５８側からネットワーク５９、および通信インタフェース５３を介して、例えば記憶装置５４に格納されることも、また市販され、流通している可搬型記憶媒体６０に格納され、読み取り装置５６にセットされて、ＣＰＵ５０によって実行されることも可能である。可搬型記憶媒体６０としてはＣＤ−ＲＯＭ、フレキシブルディスク、光ディスク、光磁気ディスク、ＤＶＤなど様々な形式の記憶媒体を使用することができ、このような記憶媒体に格納されたプログラムが読み取り装置５６によって読み取られることにより、本実施形態におけるパケット毎のアドレス変換レイヤの変更などが可能となる。
【００７７】
（付記１）  複数のアドレス変換部を用いる計算機によって使用されるプログラムにおいて、
受信パケットをあらかじめ設定されたアドレス変換部に振り分けるパケット振り分け手順と、
アドレス変換が実行されたパケットが、あらかじめ定められたアドレス変換部切り替え条件を満たすパケットであるか否かを判定する切替条件判定手順と、
該切替条件が満たされない時、前記パケット振り分け手順以降を繰返す処理繰り返し手順を計算機に実行させ、
該切替条件が満たされた時、アドレス変換を行なうべきアドレス変換部を切替える手順と、前記パケット振り分け手順以降を繰返す処理繰り返し手順とを計算機に実行させるためのアドレス変換プログラム。
【００７８】
（付記２）  前記複数のアドレス変換部が、アプリケーションレイヤにおいてアドレス変換を行なうアドレス変換部と、ＩＰレイヤにおいてアドレス変換を行なうアドレス変換部とを備えることを特徴とする付記１記載のアドレス変換プログラム。
【００７９】
（付記３）  前記切替条件判定手順において、前記アドレス変換が実行されたパケット内のアプリケーションデータの内容によって条件判定を行なうことを特徴とする付記１記載のアドレス変換プログラム。
【００８０】
（付記４）  複数のアドレス変換部を用いて、アプリケーションデータ部にアドレス変換を必要とするデータを含むパケットと、アドレス変換を必要とするデータを含まないパケットとが伝送されるコネクションに対応して、アドレス変換を行なう計算機によって使用されるプログラムにおいて、
受信パケットのアプリケーションデータ部の内容によって、アドレス変換を行なうべきアドレス変換部を判定する変換部判定手順と、
該判定されたアドレス変換部に受信パケットを振り分けるパケット振り分け手順とを計算機に実行させるためのアドレス変換プログラム。
【００８１】
（付記５）  複数のアドレス変換部を用いる計算機によって使用される記憶媒体において、
受信パケットをあらかじめ設定されたアドレス変換部に振り分けるパケット振り分けステップと、
アドレス変換が実行されたパケットが、あらかじめ定められたアドレス変換部切り替え条件を満たすパケットであるか否かを判定する切替条件判定ステップと、
該切替条件が満たされない時、前記パケット振り分けステップ以降を繰返す処理繰り返しステップを計算機に実行させ、
該切替条件が満たされた時、アドレス変換を行なうべきアドレス変換部を切替えるステップと、前記パケット振り分けステップ以降を繰返す処理繰り返しステップとを計算機に実行させるためのアドレス変換プログラムを格納した計算機読出し可能可搬型記憶媒体。
【００８２】
（付記６）  複数のアドレス変換部を用いて、アプリケーションデータ部にアドレス変換を必要とするデータを含むパケットと、アドレス変換を必要とするデータを含まないパケットとが伝送されるコネクションに対応して、アドレス変換を行なう計算機によって使用される記憶媒体において、
受信パケットのアプリケーションデータ部の内容によって、アドレス変換を行なうべきアドレス変換部を判定するステップと、
該判定されたアドレス変換部に受信パケットを振り分けるステップとを計算機に実行させるためのアドレス変換プログラムを格納した計算機読出し可能可搬型記憶媒体。
【００８３】
（付記７）  複数のアドレス変換部を備えるアドレス変換装置において、
受信パケットをあらかじめ設定されたアドレス変換部に振り分けるパケット振り分け手段と、
アドレス変換が実行されたパケットが、あらかじめ定められたアドレス変換部切り替え条件を満たすパケットであるか否かを判定する切替条件判定手段と、
該切替条件が満たされない時、前記パケット振り分け手段の動作以降を繰返させる第１の制御手段と、
該切替条件が満たされた時、アドレス変換を行なうべきアドレス変換部を切替えさせた後に、前記パケット振り分け手段の動作以降を繰返させる第２の制御手段とを備えることを特徴とするアドレス変換装置。
【００８４】
（付記８）  複数のアドレス変換部を備え、アプリケーションデータ部にアドレス変換を必要とするデータを含むパケットと、アドレス変換を必要とするデータを含まないパケットとが伝送されるコネクションに対応して、アドレス変換を行なうアドレス変換装置において、
受信パケットのアプリケーションデータ部の内容によって、アドレス変換を行なうべきアドレス変換部を判定する変換部判定手段と、
該判定されたアドレス変換部に受信パケットを振り分けるパケット振り分け手段とを備えることを特徴とするアドレス変換装置。
【００８５】
（付記９）  複数のアドレス変換部を用いるアドレス変換方法において、
受信パケットをあらかじめ設定されたアドレス変換部に振り分け、
アドレス変換が実行されたパケットが、あらかじめ定められたアドレス変換部切り替え条件を満たすパケットであるか否かを判定し、
該切替条件が満たされない時、前記パケット振り分け以降を繰返し、
該切替条件が満たされた時、アドレス変換を行なうべきアドレス変換部を切替えた後に、前記パケット振り分け以降を繰返すことを特徴とするアドレス変換方法。
【００８６】
（付記１０）  複数のアドレス変換部を用いて、アプリケーションデータ部にアドレス変換を必要とするデータを含むパケットと、アドレス変換を必要とするデータを含まないパケットとが伝送されるコネクションに対応して、アドレス変換を行なう方法において、
受信パケットのアプリケーションデータ部の内容によって、アドレス変換を行なうべきアドレス変換部を判定し、
該判定されたアドレス変換部に受信パケットを振り分けることを特徴とするアドレス変換方法。
【産業上の利用可能性】
【００８７】
本発明は、通信産業は当然のこととして、ネットワークの接続点などでアドレス変換を行なう必要がある通信システムを用いる全ての産業において利用可能である。
【図面の簡単な説明】
【００８８】
【図１】本発明のアドレス変換プログラムの原理的な機能ブロック図である。
【図２】アドレス変換装置を含む通信システムの全体構成ブロック図である。
【図３】アドレス変換装置の構成を示すブロック図である。
【図４】第１の実施形態におけるアドレス変換方式の説明図である。
【図５】第１の実施形態におけるアドレス変換の基本処理フローチャートである。
【図６】第２の実施形態におけるアドレス変換方式の説明図である。
【図７】第２の実施形態におけるアドレス変換の基本処理フローチャートである。
【図８】アプリケーション（１）における通信処理の説明図である。
【図９】アプリケーション（１）に対するパケットのフォーマットを示す図である。
【図１０】図９におけるＴＣＰヘッダのフォーマットを示す図である。
【図１１】図９におけるアプリケーションヘッダのフォーマットを示す図である。
【図１２】図９のアプリケーションデータ（その１）のフォーマットを示す図である。
【図１３】図９のアプリケーションデータ（その２）のフォーマットを示す図である。
【図１４】図９のアプリケーションデータ（その３）のフォーマットを示す図である。
【図１５】アプリケーション（２）に対する通信処理の説明図である。
【図１６】アプリケーション（２）に対するアプリケーションヘッダのフォーマットを示す図である。
【図１７】アプリケーション（２）に対する表示用データ送信パケットのアプリケーションデータのフォーマットを示す図である。
【図１８】アプリケーション（３）に対する通信処理の説明図である。
【図１９】アプリケーション（３）に対するアプリケーションヘッダのフォーマットを示す図である。
【図２０】アプリケーション（３）に対する情報送信中パケット、および情報送信終了パケットのアプリケーションデータのフォーマットを示す図である。
【図２１】第１の実施形態におけるアプリケーション（１）に対するアドレス変換処理のフローチャートである。
【図２２】第１の実施形態におけるアプリケーション（２）に対するアドレス変換処理のフローチャートである。
【図２３】第１の実施形態におけるアプリケーション（３）に対するアドレス変換処理のフローチャートである。
【図２４】第２の実施形態におけるアプリケーション（１）に対するアドレス変換処理のフローチャートである。
【図２５】第２の実施形態におけるアプリケーション（３）に対するアドレス変換処理のフローチャートである。
【図２６】第２の実施形態におけるアプリケーション（３）に対するアドレス変換処理のフローチャート(続き）である。
【図２７】本発明におけるプログラムのコンピュータへのローディングを説明する図である。
【図２８】アドレス変換の従来方式（その１）の説明図である。
【図２９】アドレス変換の従来方式（その２）の説明図である。
【図３０】アドレス変換の従来方式（その３）の説明図である。
【符号の説明】
【００８９】
１０      アドレス変換装置
１１      ホストＡ
１２      ホストＢ
１３      第１のネットワーク
１４      第２のネットワーク
２０      ネットワークインタフェース
２１      データ内参照部
２２      変換レイヤ振り分け部
２３      ＩＰレイヤアドレス変換部
２４      アプリケーションレイヤアドレス変換部
２５，２６      変換レイヤ通知部
２８      カーネル空間
２９      ユーザ空間
５０      ＣＰＵ
５１      ＲＯＭ
５２      ＲＡＭ
５３      通信インタフェース
５４      記憶装置
５５      入出力装置
５６      読み取り装置
５７      バス
５８      プログラム提供者
５９      ネットワーク
６０      可搬型記憶媒体
【図１】
2005117503.tif 000003
【図２】
2005117503.tif 000004
【図３】
2005117503.tif 000005
【図４】
2005117503.tif 000006
【図５】
2005117503.tif 000007
【図６】
2005117503.tif 000008
【図７】
2005117503.tif 000009
【図８】
2005117503.tif 000010
【図９】
2005117503.tif 000011
【図１０】
2005117503.tif 000012
【図１１】
2005117503.tif 000013
【図１２】
2005117503.tif 000014
【図１３】
2005117503.tif 000015
【図１４】
2005117503.tif 000016
【図１５】
2005117503.tif 000017
【図１６】
2005117503.tif 000018
【図１７】
2005117503.tif 000019
【図１８】
2005117503.tif 000020
【図１９】
2005117503.tif 000021
【図２０】
2005117503.tif 000022
【図２１】
2005117503.tif 000023
【図２２】
2005117503.tif 000024
【図２３】
2005117503.tif 000025
【図２４】
2005117503.tif 000026
【図２５】
2005117503.tif 000027
【図２６】
2005117503.tif 000028
【図２７】
2005117503.tif 000029
【図２８】
2005117503.tif 000030
【図２９】
2005117503.tif 000031
【図３０】
2005117503.tif 000032