(57)【要約】【課題】処理性能が低い情報処理装置においても、効率的にプロトコルを変換する支援を行うプロトコル変換支援装置等を提供する。【解決手段】プロトコル変換支援装置１は、第１通信プロトコルに従い記述されたパケット４のヘッダが持つ第１データ量と第２通信プロトコルに従い記述されたパケット４のヘッダが持つ第２データ量との差と、パケット４におけるペイロードに存在するＩＰアドレスの数とに応じて第３データ量を算出する算出部２と、パケット４において、前記ヘッダと前記ＩＰアドレスとを前記第２通信プロトコルに従い変換し、その結果を変換パケットとする変換部３とを備える。【選択図】      図１
2014039113.tif 000002
【特許請求の範囲】
【請求項１】
第１通信プロトコルに従い記述されたパケットのヘッダが持つ第１データ量と第２通信プロトコルに従い記述された前記パケットのヘッダが持つ第２データ量との差と、前記パケットにおけるペイロードに存在するＩＰアドレスの数とに応じて第３データ量を算出する算出部と、
前記パケットにおいて、前記ヘッダと前記ＩＰアドレスとを前記第２通信プロトコルに従い変換し、その結果を変換パケットとする変換部とを備え、
前記変換パケットのデータ量は、前記パケットのデータ量と前記第３データ量との和である第４データ量以下である
プロトコル変換支援装置。
【請求項２】
前記算出部と前記変換部とは、情報処理装置の通信機能におけるデータリンク層に存在する
請求項１に記載のプロトコル変換支援装置。
【請求項３】
前記第１通信プロトコルは、インターネットプロトコルバージョン４であり、
前記第２通信プロトコルは、インターネットプロトコルバージョン６である
請求項１あるいは請求項２に記載のプロトコル変換支援装置。
【請求項４】
前記情報処理装置はメモリを有し、
前記第４データ量を前記メモリにバッファとして確保する確保部を更に備え、
前記変換部は、前記変換パケットを前記確保部に記憶させる
請求項１乃至請求項３のいずれか１項に記載のプロトコル変換支援装置。
【請求項５】
前記算出部は、
Ｂ＋Ｒ、
（ただし、
Ｒ＝Ｈ＋（Ｄ―Ｅ）×Ａ、即ち、前記第３データ量、
Ｂは、前記パケットのデータ量、
Ｈは、前記第１データ量―前記第２データ量であり、算出値が０以下のときは、０とする、
Ｄは、前記第１通信プロトコルにて記述するときのＩＰアドレスの長さ、
Ｅは、前記第２通信プロトコルにて記述するときのＩＰアドレスの長さ、
Ｄ―Ｅの算出値が０以下のときは、Ｄ―Ｅの値を０とする、
Ａは、前記ＩＰアドレスの数である）、
を前記第４データ量とする
請求項１乃至請求項４のいずれか１項に記載のプロトコル変換支援装置。
【請求項６】
前記パケットには、データリンク層ヘッダと、ネットワーク層ヘッダと、トランスポート層ヘッダと、トランスポート層ペイロードとが順に存在し、
前記変換部は、
前記バッファにおける前記Ｒ以降の領域に、前記パケットをコピーする第１処理部と、
前記バッファにおいて前記データリンク層ヘッダに対応する部分を、前記バッファの先頭部分に移動させる第２処理部と、
前記バッファにおいて前記ネットワーク層ヘッダに対応する部分を、前記第２通信プロトコルに変換し、該変換した結果と、前記バッファにおいて前記トランスポート層ヘッダに対応する部分とを、前記第２処理部が書き込んだ前記バッファ以降の領域に書き込む第３処理部と、
前記バッファにおいて前記トランスポート層ペイロードに対応するデータを読み、
前記データが、前記第１通信プロトコルに従って記述されたＩＰアドレスである場合には、前記データを前記第２通信プロトコルに変換し、変換後のデータを書き込みデータとし、
前記データが、前記第１通信プロトコルに従って記述されたＩＰアドレスでない場合には、前記データを前記書き込みデータとし、
前記書き込みデータを、前記第３処理部が書き込んだ前記バッファ以降の領域に書き込む第４処理部とを
備える請求項５に記載のプロトコル変換支援装置。
【請求項７】
請求項１乃至請求項６に記載のプロトコル変換支援装置を有し、
前記プロトコル変換支援装置が出力した結果を参照する
プロトコル変換装置。
【請求項８】
請求項７に記載の前記プロトコル変換装置を有する情報処理装置。
【請求項９】
第１通信プロトコルに従い記述されたパケットのヘッダが持つ第１データ量と第２通信プロトコルに従い記述された前記パケットのヘッダが持つ第２データ量との差と、前記パケットにおけるペイロードに存在するＩＰアドレスの数とに応じて第３データ量を算出すると共に、前記パケットにおいて、前記ヘッダと前記ＩＰアドレスとを前記第２通信プロトコルに従い変換し、その結果を変換パケットとし、前記変換パケットのデータ量は、前記パケットのデータ量と前記第３データ量との和である第４データ量以下であるプロトコル変換支援方法。
【請求項１０】
第１通信プロトコルに従い記述されたパケットのヘッダが持つ第１データ量と第２通信プロトコルに従い記述された前記パケットのヘッダが持つ第２データ量との差と、前記パケットにおけるペイロードに存在するＩＰアドレスの数とに応じて第３データ量を算出する算出機能と、
前記パケットにおいて、前記ヘッダと前記ＩＰアドレスとを前記第２通信プロトコルに従い変換し、その結果を変換パケットとする変換機能とを、
コンピュータに実現させ、
前記変換パケットのデータ量は、前記パケットのデータ量と前記第３データ量との和である第４データ量以下である
プロトコル変換支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、効率的なプロトコルの変換を支援する情報処理装置等に関する。
【背景技術】
【０００２】
図１１を参照しながら、インターネットプロトコルバージョン４（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  ｖｅｒｓｉｏｎ  ４、以降、「ＩＰＶ４」と略記する）からインターネットプロトコルバージョン６（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  ｖｅｒｓｉｏｎ  ６、以降、「ＩＰＶ６」と略記する）へ、パケットを変換する一般的な方法について説明する。図１１は、本発明に関連する一般的なプロトコル変換装置３８の構成を示すブロック図である。図１１を参照すると、プロトコル変換装置３８は、通信ドライバ処理部３４と、ＩＰＶ４処理部３５と、アプリケーションレベルゲートウェイ（以降、「ＡＬＧ」と表す）処理部３６と、ＩＰＶ６処理部３７とを有する。パケットは、レイヤ２（データリンク層とも表す、以降、「Ｌ２」と表す）ヘッダと、レイヤ３（ネットワーク層とも表す、以降、「Ｌ３」と表す）ヘッダと、レイヤ４（トランスポート層とも表す、以降、「Ｌ４」と表す）ヘッダと、Ｌ４ペイロードとを有する。
【０００３】
通信ドライバ処理部３４は、ＩＰＶ４に従い記述されたパケット（以降、「ＩＰＶ４のパケット」と略記する）を、通信コントローラーを介して受信し、受信したパケットにおいてＬ２ヘッダを特定する。次に、通信ドライバ処理部３４は、特定したＬ２ヘッダを基に、受信したパケットにおいてＬ３ヘッダを特定し、特定した先頭アドレスをＩＰＶ４処理部３５に送信する。
【０００４】
次に、ＩＰＶ４処理部３５は、通信ドライバ処理部３４が送信した先頭アドレスを受信し、該パケットのＬ３ヘッダに存在するＩＰＶ４のパケットに存在するインターネットプロトコル（以降、「ＩＰ」と表す）アドレスを読み取り、読み取ったＩＰアドレスをＩＰＶ６に変換する。次に、ＩＰＶ４処理部３５は、情報処理装置（計算処理装置、コンピュータなどとも表す）における主記憶装置（メインメモリ、以降、単に、「メモリ」と表す）に、変換後のＩＰアドレスを記憶するバッファを確保し、確保したバッファにＩＰＶ６に従い記述されたＩＰアドレス（以降、「ＩＰＶ６のパケット」と略記する）を記憶する。次に、ＩＰＶ４処理部３５は、受信したパケットにおいてＬ４ペイロードの先頭アドレスを特定し、その先頭アドレスをＡＬＧ処理部３６に送信する。
【０００５】
ＡＬＧ処理部３６は、ＩＰＶ４処理部３５が送信した先頭アドレスを受信し、その後、Ｌ４ペイロードにおけるＩＰＶ４に従い記述されたＩＰアドレスを探し、該ＩＰアドレスをＩＰＶ６に変換する。ＡＬＧ処理部３６は、変換したＩＰＶ６のＩＰアドレスを記憶するバッファ領域をメモリに確保し、確保したバッファ領域にＩＰＶ６のＩＰアドレスを記憶する。次に、ＡＬＧ処理部３６は、受信したパケットにおいてＬ３ヘッダの先頭アドレスをＩＰＶ６処理部３７に送信する。
【０００６】
ＩＰＶ６処理部３７は、ＡＬＧ処理部３６が送信したＬ３ヘッダの先頭アドレスを受信し、その後、ＩＰＶ６におけるルーティング処理に従い、ＩＰＶ６のパケットを、通信コントローラーを介して送信する。
【０００７】
例えば、上述したプロトコル変換装置には、特許文献１乃至特許文献３が開示するような装置等が存在する。
【０００８】
特許文献１が開示するアドレス変換プログラムは、パケットを受信すると、受信したパケットを解析し、その後、あらかじめ設定された複数のアドレス変換部に振り分ける。例えば、特許文献１が開示するアドレス変換プログラムにおいて、該複数のアドレス変換部は、アプリケーション層とネットワーク層とに存在する。該アドレス変換プログラムは、パケット単位でアプリケーションデータ内に変換が必要なＩＰアドレスが含まれるか否かを判定する。次に、該アドレス変換プログラムは、アプリケーション層において変換が必要なパケットのみを、アプリケーション層にて変換する。該アドレス変換プログラムは、アプリケーション層において変換が必要でないパケットを、高速なネットワーク層にて変換する。特許文献１が開示するアドレス変換プログラムは、上述のように処理することで、変換の高速化と、通信の高速化とを両立する。
【０００９】
特許文献２が開示するプロトコル変換制御装置は、ＩＰＶ４のパケットを受信する。次に該プロトコル変換制御装置は、受信したパケットにおけるヘッダ内の送信先ＩＰアドレスがプロトコル変換制御装置におけるアドレス変換テーブルにする場合に、該送信先ＩＰアドレスに関連付けされたＩＰＶ６のＩＰアドレスに変換し、その後、ＩＰＶ６のヘッダを作成する。次に、該プロトコル変換制御装置は、作成したパケットを、ＬＡＮ上に送信する。
【００１０】
特許文献３が開示するプロトコル変換装置は、受信したフレームにおける特定の部分を抜き出し、抜き出した部分と予め登録されたデータとを比較すると共に、抜き出したデータから、ヘッダの変換処理に必要なデータを算出する。次に、該プロトコル変換装置は、その比較結果に応じて、上述のように算出した結果と、変換データテーブルに存在するデータとを基に、フレームにおけるヘッダを変換し、変換後のヘッダをメモリに格納する。次に、該プロトコル変換装置は、ステータスの監視結果を基に、当該フレームを送信する。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００５−１１７５０３号公報
【特許文献２】特開２００９−２０７１８２号公報
【特許文献３】特開２０１０−１４７６１７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
トランスミッションコントロールプロトコル／インターネットプロトコル（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ、以降「ＴＣＰ／ＩＰ」と表す）を利用するアプリケーションプロトコルにおいて、セッション記述プロトコル（以下、Ｓｅｓｓｉｏｎ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｐｒｏｔｏｃｏｌ、以降、「ＳＤＰ」と表す）は異なる。ＳＤＰには、ＩＰＶ４のＩＰアドレスやＩＰＶ６のＩＰアドレスが存在する。そのため、ＩＰＶ４とＩＰＶ６とのＩＰアドレスを変換するためには、アプリケーションプロトコルごとに、ＳＤＰにおける記述を変換するためのＡＬＧ処理を行う必要がある。
【００１３】
そのため、変換対象のアプリケーションプロトコルが多くなるほど、ＡＬＧ処理を行うプログラムを記憶するリードオンリーメモリー（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ、ＲＯＭとも表す）の記憶領域は増加する。また、変換前と変換後とにおいて、二つのバッファを準備してコピーすることは、ランダムアクセスメモリー（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ、ＲＡＭとも表す）の記憶領域を増加させ、さらに、通信性能を劣化させる。特に、送受信を行うデータ量が小さく、リアルタイム性を要するシステムにおいて、必要なＲＡＭの記憶領域が増加することと、通信性能が劣化することとは、課題である。
【００１４】
そこで、本発明の主たる目的は、処理性能が低い情報処理装置においても、プロトコル変換を効率よく支援するプロトコル変換支援装置等を提供することである。
【課題を解決するための手段】
【００１５】
前述の目的を達成するために、本発明に係るプロトコル変換支援装置は、以下の構成を備えることを特徴とする。
【００１６】
即ち、本発明に係るプロトコル変換支援装置は、
第１通信プロトコルに従い記述されたパケットのヘッダが持つ第１データ量と第２通信プロトコルに従い記述された前記パケットのヘッダが持つ第２データ量との差と、前記パケットにおけるペイロードに存在するＩＰアドレスの数とに応じて第３データ量を算出する算出部と、
前記パケットにおいて、前記ヘッダと前記ＩＰアドレスとを前記第２通信プロトコルに従い変換し、その結果を変換パケットとする変換部とを備え、
前記変換パケットのデータ量は、前記パケットのデータ量と前記第３データ量との和である第４データ量以下である
ことを特徴とする。
【００１７】
また、本発明の他の見地として、本発明に係るプロトコル変換支援方法は、
第１通信プロトコルに従い記述されたパケットのヘッダが持つ第１データ量と第２通信プロトコルに従い記述された前記パケットのヘッダが持つ第２データ量との差と、前記パケットにおけるペイロードに存在するＩＰアドレスの数とに応じて第３データ量を算出すると共に、前記パケットにおいて、前記ヘッダと前記ＩＰアドレスとを前記第２通信プロトコルに従い変換し、その結果を変換パケットとし、前記変換パケットのデータ量は、前記パケットのデータ量と前記第３データ量との和である第４データ量以下である
ことを特徴とする。
【発明の効果】
【００１８】
本発明に係るプロトコル変換支援装置等によれば、処理性能が低い情報処理装置においても、効率的にプロトコルを変換する支援を行うことができる。
【発明を実施するための形態】
【００１９】
次に、発明を実施するための最良の形態について図面を参照して詳細に説明する。
【００２０】
＜第１の実施形態＞
本発明の第１の実施形態に係るプロトコル変換支援装置が有する構成と、そのプロトコル変換支援装置が行う処理とについて、図１と図２とを参照しながら詳細に説明を行う。図１は、本発明の第１の実施形態に係るプロトコル変換支援装置１の構成を示すブロック図である。図２は、本発明の第１の実施形態に係るプロトコル変換支援装置１における処理の流れを示すフローチャートである。
【００２１】
図１を参照すると、本発明の第１の実施形態に係るプロトコル変換支援装置１は、算出部２と、変換部３とを有する。プロトコル変換支援装置１は、通信コントローラー（図１には不図示）を介して第１通信プロトコルのパケット４を受信する。パケット４は、ヘッダとペイロードとから構成される。
【００２２】
算出部２は、パケット４のデータ量を測定すると共に、パケット４におけるヘッダの位置を特定する。ヘッダは、通信プロトコルごとに所定のフォーマットが定義されている。例えば、プロトコルには、ＩＰＶ４やＩＰＶ６の他、インターネットプロトコルバージョン５、インターネットプロトコルバージョン７、インターネットプロトコルバージョン８、インターネットプロトコルバージョン９、インターネットプロトコルバージョン１０、インターネットプロトコルバージョン１１、インターネットプロトコルバージョン１２、インターネットプロトコルバージョン１３、インターネットプロトコルバージョン１４、インターネットプロトコルバージョン１５、モバイルＩＰＶ４、モバイルＩＰＶ６等が存在する。通信プロトコルは、上述した例には限定されない。所定のフォーマットについては、様々な文献に記述されているため、ここでは説明を省略する。
【００２３】
第１通信プロトコルから第２通信プロトコルに変換するのに要するデータ量は、第１通信プロトコルに従い記述されたパケットのデータ量と、当該２つの通信プロトコルにおけるヘッダのデータ量の差との和である。即ち、そのヘッダのデータ量の差は、第１通信プロトコルに従い記述されたパケットのヘッダが持つ第１データ量と、第２通信プロトコルに従い記述された前記パケットのヘッダが持つ第２データ量との差である。算出部２は、必ずしもヘッダが有するデータ量の差を算出する必要はなく、ヘッダのデータ量の差を所定のヘッダのデータ量の差として算出しておくこともできる。あるいは、算出部２は、ヘッダのデータ量の差よりも大きな値を算出することもできる。
【００２４】
次に、算出部２は、例えば、ペイロードに存在する第１通信プロトコルにて記述されたＩＰアドレスの数と、測定したパケットのデータ量と、上述した所定のヘッダにおけるデータ量の差とに応じて、第１通信プロトコルから第２通信プロトコルへプロトコル変換する際の第４データ量を算出する（ステップＳ１）。
【００２５】
例えば、算出部２は、第４データ量を、式１に従い算出することができる。
【００２６】
Ｂ＋Ｒ・・・（式１）
ただし
Ｒ＝Ｈ＋（Ｄ―Ｅ）×Ａ、即ち、第３データ量、
Ｂは、パケットのデータ量、
Ｈは、第１データ量―第２データ量であり、算出値が０以下のときは、０とする、
Ｄは、第１通信プロトコルにて記述するときのＩＰアドレスの長さ、
Ｅは、第２通信プロトコルにて記述するときのＩＰアドレスの長さ、
Ｄ−Ｅの値が０以下のときは、Ｄ−Ｅの値を０とする、
Ａは、ペイロードに存在する第１通信プロトコルにて記述されたＩＰアドレス数である。
【００２７】
算出部２は、必ずしも、上述した方法で第４データ量を算出する必要はなく、例えば、上述した値に正の値を加えたり、あるいは、１以上の値を掛けたりしても良い。算出する方法は、上述した方法に限定されない。
【００２８】
次に、変換部３は、受信したパケット４におけるヘッダを、第１通信プロトコルから第２通信プロトコルに変換する（ステップＳ２）。次に、変換部３は、受信したパケット４におけるペイロードに存在するＩＰアドレスを、第１通信プロトコルから第２通信プロトコルに変換する（ステップＳ３）。
【００２９】
プロトコル変換支援装置１は、ステップＳ１にて算出した第４データ量のバッファを、外部記憶装置（図１には不図示）に確保し、確保したバッファに、変換後のパケットを記憶させることもできる。あるいは、プロトコル変換支援装置１がメモリを有する場合には、プロトコル変換支援装置１は、自装置におけるメモリにおいて、ステップＳ１にて算出した第４データ量のバッファを確保し、確保したバッファに変換後のパケットを記憶させることもできる。あるいは、プロトコル変換支援装置１は、算出した第４データ量と変換後のパケットとを外部に送信することもできる。その場合、外部の処理装置（図１には不図示）は、算出した第４データ量と変換パケットとを受信し、上述したような処理を行うこともできる。背景技術にて説明したＡＬＧ処理は、上述したようなバッファを参照することで実施される。
【００３０】
図３に示すように、プロトコル変換支援装置１は、例えば、通信機能におけるデータリンク層に設置することもできる。図３は、本発明の第１の実施形態に係るプロトコル変換支援装置１を有する情報処理装置１１における通信機能を概念的に表す図である。図３を参照すると、情報処理装置１１における通信機能は、物理層９（「レイヤ１」、「Ｌ１」とも表す）と、データリンク層８（「レイヤ２」、「Ｌ２」とも表す）と、ネットワーク層７（「レイヤ３」、「Ｌ３」とも表す）と、トランスポート層６（「レイヤ４」、「Ｌ４」とも表す）とを概念的に有する。この概念は、オープンシステムインターコネクション（Ｏｐｅｎ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ、以降、「ＯＳＩ」と表す）参照モデルとして知られており、一般の情報処理装置における通信機能を、階層構造により概念的に表したモデルである。プロトコル変換支援装置１は、例えば、データリンク層８に位置しており、受信したパケット４において、ヘッダとペイロードに関するプロトコル変換を行う。
【００３１】
特許文献１乃至特許文献３が開示する装置は、アプリケーションプロトコルごとにＩＰアドレスを変換する。そのため、それらの装置によれば、アプリケーションプロトコルが多くなるほど、変換等を処理するプログラムを記憶する記憶領域や、変換後のパケットを記憶するバッファを確保する処理が冗長に行われる。
【００３２】
一方、本発明における第１の実施形態に係るプロトコル変換支援装置１によれば、変換後のパケットに関する情報を保存する。そのため、本発明における第１の実施形態に係るプロトコル変換支援装置１によれば、アプリケーションプロトコルごとにアドレス変換等の処理を行う必要がなくなる。即ち、本発明における第１の実施形態に係るプロトコル変換支援装置１は、アドレス変換等に付随する冗長な処理を削減する。冗長な処理は、情報処理装置の処理性能が低いほど、より多くの時間を必要とする。そのため、本発明における第１の実施形態に係るプロトコル変換支援装置１は、処理性能が低い情報処理装置ほど、効率的に通信プロトコルを変換する支援を行う。
【００３３】
即ち、本発明における第１の実施形態に係るプロトコル変換支援装置によれば、処理性能が低い情報処理装置においても効率的にプロトコルを変換する支援を行うことができる。
【００３４】
＜第２の実施形態＞
次に、上述した第１の実施形態を基本とする第２の実施形態について説明する。
【００３５】
以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第１の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【００３６】
図４と図５とを参照しながら、本発明の第２の実施形態に係るプロトコル変換支援装置１２が有する構成と、プロトコル変換支援装置１２が行う処理とについて説明を行う。図４は、本発明の第２の実施形態に係るプロトコル変換支援装置１２の構成を示すブロック図である。図５は、本発明の第２の実施形態に係るプロトコル変換支援装置１２における処理の流れを示すフローチャートである。
【００３７】
図４を参照すると、プロトコル変換支援装置１２は、算出部１３と、変換部１４と、確保部１５とを有する。情報処理装置１６は、プロトコル変換支援装置１２と、メモリ１７とを有する。プロトコル変換支援装置１２は、パケット４を受け取る。次に、算出部１３は、プロトコル変換支援装置１２が受け取ったパケット４のデータ量に関する情報を得る（ステップＳ４）。次に、算出部１３は、本発明の第１の実施形態に示したような方法に従い、データ量を算出する。次に、算出部１３は、算出したデータ量に関する情報を確保部１５に送信する。
【００３８】
確保部１５は、メモリ１７に、算出部１３が送信したデータ量のバッファを確保する（ステップＳ５）。
【００３９】
次に、変換部１４は、受信したパケット４におけるヘッダを、第１通信プロトコルから第２通信プロトコルに変換し、変換後のヘッダを確保部１５が確保したバッファに記憶する（ステップＳ６）。次に、変換部１４は、受信したパケット４におけるペイロードを、第１通信プロトコルから第２通信プロトコルに変換し、変換後のペイロードを確保部１５が確保したバッファに記憶する（ステップＳ７）。
【００４０】
本発明における第２の実施形態に係るプロトコル変換支援装置１２は、上述したように、確保部１５がメモリ１７にバッファを確保し、変換後のパケットを確保したバッファに記憶させる。アプリケーションプロトコルは、そのバッファに存在するパケットを参照する。そのため、本発明における第２の実施形態に係るプロトコル変換支援装置１２によれば、異なるアプリケーションプロトコルにおける冗長な処理を減らすことができる。
【００４１】
即ち、本発明における第２の実施形態に係るプロトコル変換支援装置によれば、処理性能が低い情報処理装置においても効率的にプロトコルを変換する支援を行うことができる。
【００４２】
＜第３の実施形態＞
次に、上述した第１の実施形態を基本とする第３の実施形態について説明する。
【００４３】
以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第１の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【００４４】
図６と図７とを参照しながら、本発明の第３の実施形態に係るプロトコル変換支援装置１８が有する構成と、プロトコル変換支援装置１８が行う処理とについて説明を行う。図６は、本発明の第３の実施形態に係るプロトコル変換支援装置１８の構成を示すブロック図である。図７は、本発明の第３の実施形態に係るプロトコル変換支援装置１８における処理の流れを示すフローチャートである。
【００４５】
図６を参照すると、プロトコル変換支援装置１８は、算出部１９と、変換部３とを有する。算出部１９は、上述した式１に従い値を算出する（ステップＳ８）。算出部１９が算出した値に応じてバッファ（図６には不図示）が確保され、確保されたバッファに変換部３が変換したパケットが記憶される。
【００４６】
本発明における第３の実施形態に係る算出部１９は、変換後のパケットを記憶するために必要なバッファ領域の大きさを算出する。そのため、本発明における第３の実施形態に係るプロトコル変換支援装置は、本発明における第１の実施形態に係るプロトコル変換支援装置が持つ効果を有する。
【００４７】
即ち、本発明における第３の実施形態に係るプロトコル変換支援装置によれば、処理性能が低い情報処理装置においても効率的にプロトコルを変換する支援を行うことができる。
【００４８】
＜第４の実施形態＞
次に、上述した第１の実施形態を基本とする第４の実施形態について説明する。
【００４９】
以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第１の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【００５０】
図８と図９とを参照しながら、本発明の第４の実施形態に係るプロトコル変換支援装置１０が有する構成と、プロトコル変換支援装置１０が行う処理とについて説明を行う。図８は、本発明の第４の実施形態に係るプロトコル変換支援装置１０の構成を示すブロック図である。図９は、本発明の第４の実施形態に係るプロトコル変換支援装置１０における処理の流れを示すフローチャートである。
【００５１】
図８を参照すると、プロトコル変換支援装置１０は、確保部１５、算出部１９、変換部２１とを有する。変換部２１は、第１処理部２２と、第２処理部２３と、第３処理部２４と、第４処理部２５とを有する。情報処理装置２０は、プロトコル変換支援装置１０と、メモリ１７とを有する。受信するパケット２６は、Ｌ２ヘッダ、Ｌ３ヘッダ、Ｌ４ヘッダ、Ｌ４ペイロードに関する情報を有する。
【００５２】
まず、算出部１９は、本発明における第３の実施形態における方法に従い、データ量を算出し、その算出した値を確保部１５に送信する。次に、確保部１５は、算出部１９が算出したデータ量の大きさを持つバッファを、メモリ１７に確保する。次に、第１処理部２２は、受信したパケット２６を、バッファにおけるアドレスがＲ（式１にて定義）以降のバッファ領域にコピーする（ステップＳ９）。その後、第１処理部２２は、Ｌ２ヘッダに対応するバッファ領域の先頭アドレスを第２処理部２３に送信する。
【００５３】
次に、第２処理部２３は、第１処理部２２が送信した先頭アドレスを受信し、Ｌ２ヘッダに対応するバッファ領域を見つけ、そのバッファ領域をバッファの先頭アドレスに移動する（ステップＳ１０）。その後、第２処理部２３は、Ｌ３ヘッダに対応するバッファ領域の先頭アドレスを第３処理部２４に送信する。
【００５４】
次に、第３処理部２４は、第２処理部２３が送信した先頭アドレスを受信し、Ｌ３ヘッダとＬ４ヘッダとに対応するバッファ領域を見つける。
【００５５】
次に、第３処理部２４は、見つけたバッファ領域のデータ、即ち、Ｌ３ヘッダとＬ４ヘッダとを第２通信プロトコルに変換し、変換したデータをバッファのＬ２ヘッダの後ろに存在するバッファ領域に記憶させる（ステップＳ１１）。その後、第２処理部２３は、Ｌ４ペイロードに対応するバッファ領域の先頭アドレスを第４処理部２５に送信する。
【００５６】
次に、第４処理部２５は、第３処理部２４が送信した先頭アドレスを受信し、Ｌ４ペイロードに対応するバッファ領域を見つける。
【００５７】
次に、第４処理部２５は、見つけたバッファ領域のデータがＩＰアドレスであると判定する場合には、そのＩＰアドレスを第２通信プロトコルに変換した変換データを作成する。第４処理部２５は、見つけたバッファ領域のデータがＩＰアドレスでないと判定する場合には、そのデータを変換データとする。
【００５８】
次に、第４処理部２５は、変換データをバッファのＬ４ヘッダの後ろに記憶させる（ステップＳ１２）。
【００５９】
本発明における第４の実施形態に係るプロトコル変換支援装置１０は、複数のアプリケーションプロトコルの変換処理を実施する前に、データリンク層で変換する処理を行う。本発明における第４の実施形態に係るプロトコル変換支援装置１０は、変換後のパケットを記憶するバッファ領域の大きさをあらかじめ計算し、当該大きさのバッファを確保する。複数のアプリケーションプロトコルにおける変換処理は、確保したバッファだけを使用する。さらに、本発明における第４の実施形態に係るプロトコル変換支援装置１０によれば、変換対象のパケットを変換しやすいように、上述したような処理を行う。
【００６０】
即ち、本発明における第４の実施形態に係るプロトコル変換支援装置によれば、処理性能が低い情報処理装置においても効率的にプロトコルを変換する支援を行うことができる。
【００６１】
（ハードウェア構成例）
図１０は、本発明の各実施形態に係るプロトコル変換支援装置を実現可能な情報処理装置のハードウェア構成を、概略的に示すブロック図である。
【００６２】
次に、上述した本発明の各実施形態におけるプロトコル変換支援装置を、１つの情報処理装置（計算処理装置、コンピュータ）を用いて実現するハードウェア資源の構成例について説明する。但し、係るプロトコル変換支援装置は、物理的または機能的に少なくとも２つの情報処理装置を用いて実現してもよい。また、係るプロトコル変換支援装置は、専用の装置として実現してもよい。
【００６３】
図１０は、本発明の第１の実施形態乃至本発明の第４の実施形態に係るプロトコル変換支援装置を実現可能な情報処理装置のハードウェア構成を概略的に示す図である。情報処理装置３３は、中央処理演算装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、以降「ＣＰＵ」と表す）２７、メモリ２８、ディスク２９、不揮発性記録媒体３０、出力装置３１、および、入力装置３２を有する。
【００６４】
不揮発性記録媒体３０は、例えば、コンパクトディスク（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）、デジタルバーサタイルディスク（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ブルーレイディスク（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、ユニバーサルシリアルバスメモリ（ＵＳＢメモリ）などを指しており、電源を供給しなくても係るプログラムを保持し、持ち運びを可能にする。不揮発性記録媒体３０は、上述した媒体に限定されない。また、不揮発性記録媒体３０の代わりに、通信ネットワークを介して係るプログラムを持ち運びしても良い。
【００６５】
即ち、ＣＰＵ２７は、ディスク２９が記憶するソフトウェア・プログラム（コンピュータ・プログラム：以下、単に「プログラム」と称する）を、実行時にメモリ２８にコピーし、演算処理を実行する。ＣＰＵ２７は、プログラム実行に必要なデータをメモリ２８から読み込む。表示が必要な場合には、ＣＰＵ２７は、出力装置３１に出力結果を表示する。外部からプログラムを入力する場合、ＣＰＵ２７は、入力装置３２からプログラムを読み取る。ＣＰＵ２７は、メモリ２８にあるプロトコル変換プログラム（図２、図５、図７、図９）を解釈し実行を行う。ＣＰＵ２７は、上述した本発明の各実施形態において説明した処理を順次行う。
【００６６】
即ち、このような場合、本発明は、係るプロトコル変換プログラムによっても成し得ると捉えることができる。更に、係るプロトコル変換プログラムが記録されたコンピュータ読み取り可能な記録媒体によっても、本発明は成し得ると捕らえることができる。
【００６７】
尚、上述した各実施形態の一部又は全部は、以下の付記のようにも記載されうる。しかしながら、上述した各実施形態により例示的に説明した本発明は、以下には限られない。即ち、
（付記１）
第１通信プロトコルに従い記述されたパケットのヘッダが持つ第１データ量と第２通信プロトコルに従い記述された前記パケットのヘッダが持つ第２データ量との差と、前記パケットにおけるペイロードに存在するＩＰアドレスの数とに応じて第３データ量を算出する算出部と、
前記パケットにおいて、前記ヘッダと前記ＩＰアドレスとを前記第２通信プロトコルに従い変換し、その結果を変換パケットとする変換部とを備え、
前記変換パケットのデータ量は、前記パケットのデータ量と前記第３データ量との和である第４データ量以下である
プロトコル変換支援装置。
【００６８】
（付記２）
前記算出部と前記変換部とは、情報処理装置の通信機能におけるデータリンク層に存在する
付記１に記載のプロトコル変換支援装置。
【００６９】
（付記３）
前記第１通信プロトコルは、インターネットプロトコルバージョン４であり、
前記第２通信プロトコルは、インターネットプロトコルバージョン６である
付記１あるいは付記２に記載のプロトコル変換支援装置。
【００７０】
（付記４）
前記第１通信プロトコルは、インターネットプロトコルバージョン６であり、
前記第２通信プロトコルは、インターネットプロトコルバージョン４である
付記１あるいは付記２に記載のプロトコル変換支援装置。
【００７１】
（付記５）
前記情報処理装置はメモリを有し、
前記第４データ量を前記メモリにバッファとして確保する確保部を更に備え、
前記変換部は、前記変換パケットを前記確保部に記憶させる
付記１乃至付記４のいずれか１項に記載のプロトコル変換支援装置。
【００７２】
（付記６）
前記算出部は、
Ｂ＋Ｒ、
（ただし、
Ｒ＝Ｈ＋（Ｄ―Ｅ）×Ａ、即ち、前記第３データ量、
Ｂは、前記パケットのデータ量、
Ｈは、前記第１データ量―前記第２データ量であり、算出値が０以下のときは、０とする、
Ｄは、前記第１通信プロトコルにて記述するときのＩＰアドレスの長さ、
Ｅは、前記第２通信プロトコルにて記述するときのＩＰアドレスの長さ、
Ｄ―Ｅの算出値が０以下のときは、Ｄ―Ｅの値を０とする、
Ａは、前記ＩＰアドレスの数である）、
を前記第４データ量とする
付記１乃至付記５のいずれか１項に記載のプロトコル変換支援装置。
【００７３】
（付記７）
前記パケットには、データリンク層ヘッダと、ネットワーク層ヘッダと、トランスポート層ヘッダと、トランスポート層ペイロードとが順に存在し、
前記変換部は、
前記バッファにおける前記Ｒ以降の領域に、前記パケットをコピーする第１処理部と、
前記バッファにおいて前記データリンク層ヘッダに対応する部分を、前記バッファの先頭部分に移動させる第２処理部と、
前記バッファにおいて前記ネットワーク層ヘッダに対応する部分を、前記第２通信プロトコルに変換し、該変換した結果と、前記バッファにおいて前記トランスポート層ヘッダに対応する部分とを、前記第２処理部が書き込んだ前記バッファ以降の領域に書き込む第３処理部と、
前記バッファにおいて前記トランスポート層ペイロードに対応するデータを読み、
前記データが、前記第１通信プロトコルに従って記述されたＩＰアドレスである場合には、前記データを前記第２通信プロトコルに変換し、変換後のデータを書き込みデータとし、
前記データが、前記第１通信プロトコルに従って記述されたＩＰアドレスでない場合には、前記データを前記書き込みデータとし、
前記書き込みデータを、前記第３処理部が書き込んだ前記バッファ以降の領域に書き込む第４処理部とを
備える付記６に記載のプロトコル変換支援装置。
【００７４】
（付記８）
付記１乃至付記７に記載のプロトコル変換支援装置を有し、
前記プロトコル変換支援装置が出力した結果を参照する
プロトコル変換装置。
【００７５】
（付記９）
付記８に記載の前記プロトコル変換装置を有する情報処理装置。
【００７６】
（付記１０）
第１通信プロトコルに従い記述されたパケットのヘッダが持つ第１データ量と第２通信プロトコルに従い記述された前記パケットのヘッダが持つ第２データ量との差と、前記パケットにおけるペイロードに存在するＩＰアドレスの数とに応じて第３データ量を算出すると共に、前記パケットにおいて、前記ヘッダと前記ＩＰアドレスとを前記第２通信プロトコルに従い変換し、その結果を変換パケットとし、前記変換パケットのデータ量は、前記パケットのデータ量と前記第３データ量との和である第４データ量以下であるプロトコル変換支援方法。
【００７７】
（付記１１）
第１通信プロトコルに従い記述されたパケットのヘッダが持つ第１データ量と第２通信プロトコルに従い記述された前記パケットのヘッダが持つ第２データ量との差と、前記パケットにおけるペイロードに存在するＩＰアドレスの数とに応じて第３データ量を算出する算出機能と、
前記パケットにおいて、前記ヘッダと前記ＩＰアドレスとを前記第２通信プロトコルに従い変換し、その結果を変換パケットとする変換機能とを、
コンピュータに実現させ、
前記変換パケットのデータ量は、前記パケットのデータ量と前記第３データ量との和である第４データ量以下である
プロトコル変換支援プログラム。
【図面の簡単な説明】
【００７８】
【図１】本発明の第１の実施形態に係るプロトコル変換支援装置の構成を示すブロック図である。
【図２】本発明の第１の実施形態に係るプロトコル変換支援装置における処理の流れを示すフローチャートである。
【図３】本発明の第１の実施形態に係るプロトコル変換支援装置を有する情報処理装置における通信機能を概念的に表す図である。
【図４】本発明の第２の実施形態に係るプロトコル変換支援装置の構成を示すブロック図である。
【図５】本発明の第２の実施形態に係るプロトコル変換支援装置における処理の流れを示すフローチャートである。
【図６】本発明の第３の実施形態に係るプロトコル変換支援装置の構成を示すブロック図である。
【図７】本発明の第３の実施形態に係るプロトコル変換支援装置における処理の流れを示すフローチャートである。
【図８】本発明の第４の実施形態に係るプロトコル変換支援装置の構成を示すブロック図である。
【図９】本発明の第４の実施形態に係るプロトコル変換支援装置における処理の流れを示すフローチャートである。
【図１０】本発明の各実施形態に係るプロトコル変換支援装置を実現可能な計算処理装置のハードウェア構成を、概略的に示すブロック図である。
【図１１】本発明に関連するプロトコル変換支援装置の構成を示すブロック図である。
【符号の説明】
【００７９】
１    プロトコル変換支援装置
２    算出部
３    変換部
４    パケット
６    トランスポート層
７    ネットワーク層
８    データリンク層
９    物理層
１１    情報処理装置
１２    プロトコル変換支援装置
１３    算出部
１４    変換部
１５    確保部
１６    情報処理装置
１７    メモリ
１８    プロトコル変換支援装置
１９    算出部
２０    情報処理装置
２１    変換部
２２    第１処理部
２３    第２処理部
２４    第３処理部
２５    第４処理部
１０    プロトコル変換支援装置
２６    パケット
２７    ＣＰＵ
２８    メモリ
２９    ディスク
３０    不揮発性記録媒体
３１    出力装置
３２    入力装置
３３    情報処理装置
３４    通信ドライバ処理部
３５    ＩＰＶ４処理部
３６    ＡＬＧ処理部
３７    ＩＰＶ６処理部
３８    プロトコル変換装置
【図１】
2014039113.tif 000003
【図２】
2014039113.tif 000004
【図３】
2014039113.tif 000005
【図４】
2014039113.tif 000006
【図５】
2014039113.tif 000007
【図６】
2014039113.tif 000008
【図７】
2014039113.tif 000009
【図８】
2014039113.tif 000010
【図９】
2014039113.tif 000011
【図１０】
2014039113.tif 000012
【図１１】
2014039113.tif 000013