(57)【要約】【課題】  異なるネットワーク・プロトコル間でデータ・パケットを変換するための改善された方法及び装置を提供すること。【解決手段】  １つのネットワーク・プロトコルから別のネットワーク・プロトコルにデータ・パケットを変換する方法が開示される。１組の変換テンプレートが構築される。次に、変換テンプレートが、変換テンプレート・キャッシュ内に読み込まれる。第１のネットワークからのデータ・パケットが変換ルータに到達することに応答して、データ・パケットの変換コンテキストに従って、適切な変換テンプレートが、変換テンプレート・キャッシュ内の変換テンプレートの組から選択される。次に、第１のネットワークからのデータ・パケットのヘッダ・フィールドを、変換テンプレート・キャッシュ内の適切な変換テンプレートと共に読み取ることによって、第２のネットワークへの伝送のための新しいヘッダが構築される。続いて、第１のネットワークからのデータ・パケットのデータ・ペイロードが、データ・パケットのヘッダから取り除かれ、次に、第２のネットワークの構築されたヘッドに付加される。最後に、新たに構築されたデータ・パケットが第２のネットワークに伝送される。【選択図】      図６
2007508761.tif 000002
【特許請求の範囲】
【請求項１】
１つのネットワーク・プロトコルから別のネットワーク・プロトコルにデータ・パケットを変換する方法であって、
複数の変換テンプレートを構築するステップと、
前記複数の変換テンプレートを変換テンプレート・キャッシュ内に読み込むステップと、
第１のネットワークからのデータ・パケットが変換ルータに到達することに応答して、前記データ・パケットの変換コンテキストに従って、前記変換テンプレート・キャッシュから前記複数の変換テンプレートの適切なものを選択するステップと、
前記第１のネットワークからの前記データ・パケットのヘッダ・フィールドを、前記変換テンプレート・キャッシュ内の前記複数の変換テンプレートの前記適切なものと共に読み取ることによって、第２のネットワークへの伝送のための新しいヘッダを生成するステップと、
前記第１のネットワークからの前記データ・パケットのデータ・ペイロードを前記ヘッダから取り除くステップと、
前記データ・パケットの前記データ・ペイロードを前記第２のネットワークのための前記生成されたヘッダに付加するステップと、
前記データ・パケットを前記第２のネットワークに伝送するステップと
を含む方法。
【請求項２】
前記複数の変換テンプレートが、ファイバ・チャネルのための変換テンプレート、イーサネットのための変換テンプレート、及び、ＩｎｆｉｎｉＢａｎｄのための変換テンプレートを含む、請求項１に記載の方法。
【請求項３】
前記変換テンプレート・キャッシュが、専用オンチップ・メモリである、請求項１に記載の方法。
【請求項４】
前記選択するステップが、前記データ・パケットの送信元である入線ポート番号に従って、前記変換テンプレート・キャッシュから前記複数の変換テンプレートの適切なものを選択するステップをさらに含む、請求項１に記載の方法。
【請求項５】
前記生成するステップが、前記データ・パケットの送信先である出線ポート番号に従って、第２のネットワークへの伝送のための新しいヘッダを生成するステップをさらに含む、請求項１に記載の方法。
【請求項６】
１つのネットワーク・プロトコルから別のネットワーク・プロトコルにデータ・パケットを変換するための装置であって、
複数の変換テンプレートを構築するための手段と、
前記複数の変換テンプレートを変換テンプレート・キャッシュ内に読み込むための手段と、
第１のネットワークからのデータ・パケットが変換ルータに到達することに応答して、前記データ・パケットの変換コンテキストに従って、前記変換テンプレート・キャッシュから前記複数の変換テンプレートの適切なものを選択するための手段と、
前記第１のネットワークからの前記データ・パケットのヘッダ・フィールドを、前記変換テンプレート・キャッシュ内の前記複数の変換テンプレートの前記適切なものと共に読み取ることによって、第２のネットワークへの伝送のための新しいヘッダを生成するための手段と、
前記第１のネットワークからの前記データ・パケットのデータ・ペイロードを前記ヘッダから取り除くための手段と、
前記データ・パケットの前記データ・ペイロードを前記第２のネットワークのための前記生成されたヘッダに付加するための手段と、
前記データ・パケットを前記第２のネットワークに伝送するための手段と
を備える装置。
【請求項７】
前記複数の変換テンプレートが、ファイバ・チャネルのための変換テンプレート、イーサネットのための変換テンプレート、及び、ＩｎｆｉｎｉＢａｎｄのための変換テンプレートを含む、請求項６に記載の装置。
【請求項８】
前記変換テンプレート・キャッシュが、専用オンチップ・メモリである、請求項６に記載の装置。
【請求項９】
選択するための前記手段が、前記データ・パケットの送信元である入線ポート番号に従って、前記変換テンプレート・キャッシュから前記複数の変換テンプレートの適切なものを選択するための手段をさらに含む、請求項６に記載の装置。
【請求項１０】
生成するための前記手段が、前記データ・パケットの送信先である出線ポート番号に従って、第２のネットワークへの伝送のための新しいヘッダを生成するための手段をさらに含む、請求項６に記載の装置。
【請求項１１】
データ処理システム上で実行されたときに、前記システムに、請求項１から請求項５までのいずれか１項に記載した方法を実行するように命令するための、コンピュータ使用可能媒体上に常駐するコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、ネットワーク通信に関し、具体的には、データ・パケットを変換するための方法及び装置に関する。さらに具体的には、本発明は、１つのネットワーク・プロトコルから別のネットワーク・プロトコルにデータ・パケットを変換するための方法及び装置に関する。
【背景技術】
【０００２】
混合プロトコル・ネットワーク環境においては、ネットワーク・ルータにおける処理電力のかなりの量が、１つのプロトコルから別のプロトコルにデータ・パケット情報を変換することに費やされる。パケット変換は、相対的に時間のかかるプロセスである。ネットワーク格納環境の場合には、全体的な高いシステム性能を維持するために、パケット変換を効率的な方法で行うことが重要である。
【０００３】
従来より、パケット変換プロセスを容易にするためのハードウェア解決法及びソフトウェア解決法がある。１つのハードウェア解決法は、状態機械を用いてパケット・ヘッダを構築することであるが、こうした解決法に関連する問題は、ネットワーク・プロトコルが変わるか又は移る場合に、融通性がないことである。別のハードウェア解決法は、汎用プロセッサ（ＧＰＰ）を用いてパケット・ヘッダを構築することであるが、こうした解決法に関連する問題は、プロトコル変換を実行するために、長いシーケンスのＧＰＰ命令を必要とすることである。
【０００４】
ソフトウェア解決法については、ヘッダからの情報又はパケットのコンテキスト・ブロックを用いて、ヘッダ又はフレームを構築することができる。しかしながら、こうした解決法に関連する問題は、各変換について行うことが必要とされる再計算による制約があることである。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
したがって、異なるネットワーク・プロトコル間でデータ・パケットを変換するための改善された方法及び装置を提供することが望ましい。
【課題を解決するための手段】
【０００６】
本発明は、請求項１において請求されるような方法、請求項６において請求されるような装置、及び請求項１１において請求されるようなコンピュータ・プログラムを提供するものである。
【発明を実施するための最良の形態】
【０００７】
本発明自体並びに好ましい使用モード、そのさらなる目的及び利点は、以下の例示的な実施形態の詳細な説明を添付の図面と併せて読んだときに、最もよく理解されることになるであろう。
【０００８】
ここで図面、特に図１を参照すると、本発明の好ましい実施形態が適用できるネットワーク環境のブロック図を示す。示されるように、ネットワーク環境１０は、ネットワーク１１及びネットワーク１２を含む。ネットワーク１１及びネットワーク１２の各々は、それぞれ別個のネットワーク・プロトコルを持つことができる。例えば、ネットワーク１１をイーサネットとし、ネットワーク１２をファイバ・チャネルとすることができ、或いは、ネットワーク１１をファイバ・チャネルとし、ネットワーク１２をＩｎｆｉｎｉＢａｎｄとすることができる。ネットワーク１１とネットワーク１２との間の全ての通信が、変換ルータ１５によって処理される。変換ルータ１５は、マルチプロトコル・ルータであることが好ましい。マルチプロトコル・ルータのように、変換ルータ１５の各ポートは、特定のネットワーク・プロトコルと関連付けられる。例えば、変換ルータ１５が３つのポートを有する場合、該変換ルータ１５のポート１をファイバ・チャネルと関連付け、該変換ルータ１５のポート２を転送制御プロトコル／インターネット・プロトコル（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ、ＴＣＰ／ＩＰ）と関連付け、該変換ルータ１５のポート３をＩｎｆｉｎｉＢａｎｄと関連付けることができる。このように、変換ルータ１５は、ネットワーク・パケットの送信元である入線ポート番号に基づいて、ネットワーク・パケットが属するネットワーク・プロトコルのタイプを認識する。同様に、変換ルータ１５は、ネットワーク・パケットの送信先である出線発信ポート番号に基づいて、ネットワーク・パケットを変換すべきネットワーク・プロトコルのタイプを認識する。
【０００９】
ネットワーク環境１０のようなネットワーク環境内で、処理を必要とする多数のデータ・パケットのために、処理のオーバーヘッドを相対的に高くすることができる。しかしながら、ネットワーク環境内で、上述の問題を軽減するために用い得る幾つかの特徴もある。第１に、使用されている多数のネットワーク・プロトコルがあるが、異なるネットワーク・プロトコルの総数は比較的少なく、各々のネットワーク・プロトコルの詳細は、種々の統治基準によって明確に定義される。第２に、大部分のネットワーク・プロトコルは、ネットワーク・ソース及び宛先アドレス、パケットのタイプ等のようなパケット記述情報を含むパケット内のペイロードの前に、ヘッダ構造を用いる。
【００１０】
ここで図２を参照すると、本発明の好ましい実施形態による、１つのネットワーク・プロトコルから別のネットワーク・プロトコルにデータ・パケットを変換するための装置のブロック図が示される。示されるように、装置２０は、変換テンプレート・キャッシュ２１及び変換エンジン２２を含む。変換エンジン２２は、汎用プロセッサ２５に結合され、汎用プロセッサ２５は、命令キャッシュ２３、データ・キャッシュ２４、及びシステム・メモリ２６に結合される。装置２０は、図１からの変換ルータ１５のような変換ルータ内に配置されることが好ましい。変換テンプレート・キャッシュ２１は、１つのネットワーク・プロトコルから別のネットワーク・プロトコルへのデータ・パケットの変換を容易にするための変換テンプレートを含む。基本的に、変換テンプレート・キャッシュ２１内の各変換テンプレートは、変換ルータがサポートする固有のネットワーク・プロトコルを表す。汎用プロセッサ２５の使用と比べると、変換テンプレートを使用することにより、ネットワーク・プロトコル変換を実行するために必要とされる命令がずっと少なくなる。
【００１１】
変換エンジン２２は、ソフトウェア、ファームウェア、ハードウェア、又はこれらの組み合わせとして実装することができ、パケット・ヘッダ内の情報を操作するのに必要な操作を実行し、プロトコルを変換することができる。変換テンプレート・キャッシュ２１は、１つ又はそれ以上のロックされたキャッシュ・ラインとして、又は変換エンジン２２にアクセス可能な専用メモリとして、専用オン・チップ・メモリ内に実装することができる。
【００１２】
ここで図３を参照すると、本発明の好ましい実施形態による、変換テンプレート・キャッシュ２１のブロック図が示される。示されるように、変換テンプレート・キャッシュ２１は、多数のエントリを含み、各エントリは、図１からの変換ルータ１５のような変換ルータがサポートするネットワーク・プロトコルと関連付けられた変換テンプレートを含む。各変換テンプレートは、６４バイト幅であることが好ましく、種々のネットワーク・プロトコルのデータ・パケットのヘッダを含むのに十分長いものにすべきである。
【００１３】
各プロトコルの変換のために、変換テンプレートが必要とされる。例えば、プロトコルＡを有するネットワークＡ及びプロトコルＢを有するネットワークＢを考える。ネットワークＡから受信したデータ・パケットから、ネットワークＢ内の伝送に適したデータ・パケットを生成するために、１つの変換テンプレートが必要とされる。ネットワークＢから受信したデータ・パケットから、ネットワークＡ内の伝送に適したデータ・パケットを生成するために、別の変換テンプレートが必要とされる。サポートする必要があるネットワーク・プロトコルＣを有する第３のネットワークＣがある場合には、さらに４つの変換テンプレートを構築し、変換テンプレート・キャッシュ内に読み込まなければならない。基本的に、ネットワークＡとネットワークＣとの間のプロトコル変換のために、２つの変換テンプレートが必要とされ、ネットワークＢとネットワークＣとの間のプロトコル変換のために、２つの変換テンプレートが必要とされる。
【００１４】
それぞれのネットワーク・プロトコルと関連付けられた５つの異なる変換テンプレートが、図４に示される。示されるように、エントリ１は、ファイバ・チャネル・フレーム・タイプ＃１についての変換テンプレートであり、エントリ２は、ファイバ・チャネル・フレーム・タイプ＃２についての変換テンプレートであり、エントリ３は、ＩｎｆｉｎｉＢａｎｄローカル経路指定についての変換テンプレートであり、エントリ４は、ＩｎｆｉｎｉＢａｎｄグローバル経路指定についての変換テンプレートであり、エントリ５は、ＴＣＰ／ＩＰについての変換テンプレートである。
【００１５】
例を用いて変換テンプレートの詳細を示すことができる。一般的なファイバ・チャネル・フレーム・ヘッダの制御及び情報ビットは、
Ｄ＿ＩＤ：宛先識別（ＩＤ）
Ｓ＿ＩＤ：ソースＩＤ
ＴＹＰＥ：フレーム・コンテンツのプロトコル（例えば、００００  １０００＝ＳＣＳＩ  ＦＣＰ）
Ｆ＿ＣＴＬ：フロー制御
ＳＥＱ＿ＩＤ：シーケンスＩＤ
ＤＦ＿ＣＴＬ：データ・フィールド制御
ＳＥＱ＿ＣＮＴ：シーケンス・カウント
ＯＸ＿ＩＤ：発信元交換ＩＤ
Ｒ：応答者交換ＩＤ
Ｐａｒａｍｅｔｅｒ：リンク制御フレームに特有のキャリー情報
【００１６】
このように、受信したデータ・パケットをファイバ・チャネル・プロトコルに変換するのを容易にする変換テンプレートは、全部ではないが、上述の制御及び情報ビットの大部分を含まなければならない。ここで図５を参照すると、本発明の好ましい実施形態による、受信したデータ・パケットをファイバ・チャネル・プロトコルに変換するのを容易にする変換テンプレートのブロック図が示される。示されるように、変換テンプレート４０は、宛先ＩＤフィールド４１、ソースＩＤフィールド４２、タイプ・フィールド４３、フロー制御フィールド４４、シーケンスＩＤフィールド４５、データ制御フィールド４６、シーケンス・カウント・フィールド４７、発信元交換ＩＤフィールド４８、及び応答者交換ＩＤフィールド４９を含む。示されるように、変換テンプレート４０内のフィールドは、ファイバ・チャネル・フレーム・ヘッダ内のフィールドに対応する。
【００１７】
ここで図６を参照すると、図２からの装置２０を用いて、１つのプロトコルから別のプロトコルにデータ・パケットを変換するための本発明の好ましい実施形態による方法の高レベル論理フロー図が示される。ブロック５０で開始し、ブロック５１に示されるように、変換テンプレートのグループが構築され、該変換テンプレートが変換テンプレート・キャッシュ内に読み込まれる。図５からの変換テンプレート４０のような変換テンプレートは、システムの初期構成中に構築されることが好ましく、次に、該変換テンプレートは、変換テンプレート・キャッシュ内に読み込まれる。他の場合には、変換テンプレートが変換テンプレート・キャッシュ内に読み込まれるときに、該変換テンプレートを「オン・ザ・フライ」式に構築することができる。
【００１８】
次に、ブロック５２に示されるように、図１からの変換ルータ１５のような変換ルータによって、交換属性が識別される。この時、ネットワーク・プロトコルもまた、通常、変換エンジン構成の一部として識別され、変換テンプレートが、使用可能なものとして検証される。前述のように、マルチプロトコル変換ルータは、ネットワーク・パケットの送信元である入線ポート番号に基づいて、ネットワーク・パケットが属するネットワーク・プロトコルのタイプを識別することができ、ネットワーク・パケットの送信先である出線ポート番号に基づいて、ネットワーク・パケットを変換すべきである。
【００１９】
ブロック５３に示されるように、変換ルータ内に到達する各データ・パケットとして、適切な変換テンプレートが、変換エンジンによるデータ・パケットの変換コンテキストに従って、変換テンプレート・キャッシュから選択される。
【００２０】
ブロック５４に示されるように、第１のネットワークのデータ・パケットからのデータ・パケットの適切なヘッダ・フィールドを、変換テンプレート・キャッシュ内の適切な変換テンプレートと共に読み取り、変換エンジンによって使用し、第２のネットワークへの伝送のための新しいヘッダを生成する。
【００２１】
ブロック５５に示されるように、第１のネットワークからのデータ・パケットのデータ・ペイロードが、該データ・パケットのヘッダから取り除かれ、次に、第２のネットワークのための新たに構築されたヘッダに付加される。次に、結果として生じる第２のネットワーク宛のデータ・パケットが、ネットワーク・ルータのローカル・メモリ内に配置される。
【００２２】
引き続き、第２のネットワーク宛のデータ・パケットが、ネットワーク・ルータ内のローカル・メモリからプルされる。ブロック５６に示されるように、このことは、通常、直接メモリ・アクセス（ＤＭＡ）又は汎用プロセッサを用いて実行される。第２のネットワーク宛のデータ・パケットが、第２のネットワークに送られる。
【００２３】
述べられたように、本発明は、異なるネットワーク・プロトコル間でデータ・パケットを変換するための改善された方法及び装置を提供するものである。１つのプロトコル・ドメインから別のプロトコル・ドメインへの変換を容易にするために、システム・メモリ内に制御ブロックが構築される。変換プロセスの一部として、制御ブロックに繰り返しアクセスする必要がある。本発明の場合には、多数のデータ・パケットにわたって繰り返し使用するのを容易にするように、制御ブロックがオン・チップに格納される。さらに、オン・チップ格納は、１つのプロトコル・フォーマット又は別のプロトコル・フォーマットに制限されない。このように、ファイバ・チャネル、イーサネット、及びＩｎｆｉｎｉＢａｎｄのようなプロトコルを横切ってパケットを変換することができる。
【００２４】
本発明は、完全に機能的な変換ルータの文脈において説明されたが、当業者であれば、本発明の機構を種々の形態のプログラムとして分散させ得ること、及び、実際に分散を実行するのに利用される特定のタイプの信号伝達媒体に関係なく、本発明が等しく適用されることを理解するであろう。信号伝達媒体の例は、制限なく、フロッピイ・ディスク又はＣＤ  ＲＯＭのような書き込み可能型媒体、及びアナログ又はデジタル通信リンクのような伝送型媒体を含む。
【図面の簡単な説明】
【００２５】
【図１】本発明の好ましい実施形態を適用できるネットワーク環境のブロック図である。
【図２】本発明の好ましい実施形態による、異なるネットワーク・プロトコル間でデータ・パケットを変換するための装置のブロック図である。
【図３】本発明の好ましい実施形態による、変換テンプレート・キャッシュのブロック図である。
【図４】本発明の好ましい実施形態による、変換テンプレート・キャッシュのブロック図である。
【図５】本発明の好ましい実施形態による、受信したデータ・パケットをファイバ・チャネル・プロトコルに変換するのを容易にする変換テンプレートのブロック図である。
【図６】図２の装置を用いて１つのプロトコルから別のプロトコルにデータ・パケットを変換するための本発明の好ましい実施形態による方法の高レベル論理フロー図である。
【図１】
2007508761.tif 000003
【図２】
2007508761.tif 000004
【図３】
2007508761.tif 000005
【図４】
2007508761.tif 000006
【図５】
2007508761.tif 000007
【図６】
2007508761.tif 000008
【手続補正書】
【提出日】平成17年3月11日(2005.3.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
１つのネットワーク・プロトコルから別のネットワーク・プロトコルにデータ・パケットを変換する方法であって、
各々が１つの特定のネットワーク・プロトコルから別の特定のネットワーク・プロトコルへの変換を行うように規定された複数の変換テンプレート（４０）を構築するステップ（５１）と、
前記複数の変換テンプレートを変換テンプレート・キャッシュ内に読み込むステップと、
第１のネットワークからのデータ・パケットが変換ルータに到達することに応答して、前記データ・パケットの変換コンテキストに従って、前記変換テンプレート・キャッシュから前記複数の変換テンプレートの適切なものを選択するステップ（５３）と、
前記第１のネットワークからの前記データ・パケットのヘッダ・フィールドを、前記変換テンプレート・キャッシュ内の前記複数の変換テンプレートの前記適切なものと共に読み取ることによって、第２のネットワークへの伝送のための新しいヘッダを生成するステップと、
前記第１のネットワークからの前記データ・パケットのデータ・ペイロードを前記ヘッダから取り除くステップと、
前記データ・パケットの前記データ・ペイロードを前記第２のネットワークのための前記生成されたヘッダに付加するステップ（５５）と、
前記データ・パケットを前記第２のネットワークに伝送するステップ（５６）と
を含む方法。
【請求項２】
前記複数の変換テンプレートが、ファイバ・チャネルのための変換テンプレート、イーサネットのための変換テンプレート、及び、ＩｎｆｉｎｉＢａｎｄのための変換テンプレートを含む、請求項１に記載の方法。
【請求項３】
前記変換テンプレート・キャッシュが、専用オンチップ・メモリである、請求項１に記載の方法。
【請求項４】
前記選択するステップが、前記データ・パケットの送信元である入線ポート番号に従って、前記変換テンプレート・キャッシュから前記複数の変換テンプレートの適切なものを選択するステップをさらに含む、請求項１に記載の方法。
【請求項５】
前記生成するステップが、前記データ・パケットの送信先である出線ポート番号に従って、第２のネットワークへの伝送のための新しいヘッダを生成するステップをさらに含む、請求項１に記載の方法。
【請求項６】
１つのネットワーク・プロトコルから別のネットワーク・プロトコルにデータ・パケットを変換するための装置であって、
各々が１つの特定のネットワーク・プロトコルから別の特定のネットワーク・プロトコルへの変換を行うように規定された複数の変換テンプレート（４０）を構築するための手段と、
前記複数の変換テンプレートを変換テンプレート・キャッシュ内に読み込むための手段と、
第１のネットワークからのデータ・パケットが変換ルータに到達することに応答して、前記データ・パケットの変換コンテキストに従って、前記変換テンプレート・キャッシュから前記複数の変換テンプレートの適切なものを選択する（５３）ための手段と、
前記第１のネットワークからの前記データ・パケットのヘッダ・フィールドを、前記変換テンプレート・キャッシュ内の前記複数の変換テンプレートの前記適切なものと共に読み取ることによって、第２のネットワークへの伝送のための新しいヘッダを生成するための手段と、
前記第１のネットワークからの前記データ・パケットのデータ・ペイロードを前記ヘッダから取り除くための手段と、
前記データ・パケットの前記データ・ペイロードを前記第２のネットワークのための前記生成されたヘッダに付加する（５５）ための手段と、
前記データ・パケットを前記第２のネットワークに伝送する（５６）ための手段と
を備える装置。
【請求項７】
前記複数の変換テンプレートが、ファイバ・チャネルのための変換テンプレート、イーサネットのための変換テンプレート、及び、ＩｎｆｉｎｉＢａｎｄのための変換テンプレートを含む、請求項６に記載の装置。
【請求項８】
前記変換テンプレート・キャッシュが、専用オンチップ・メモリである、請求項６に記載の装置。
【請求項９】
選択するための前記手段が、前記データ・パケットの送信元である入線ポート番号に従って、前記変換テンプレート・キャッシュから前記複数の変換テンプレートの適切なものを選択するための手段をさらに含む、請求項６に記載の装置。
【請求項１０】
生成するための前記手段が、前記データ・パケットの送信先である出線ポート番号に従って、第２のネットワークへの伝送のための新しいヘッダを生成するステップをさらに含む、請求項６に記載の装置。
【請求項１１】
データ処理システム上で実行されたときに、前記システムに、請求項１から請求項５までのいずれか１項に記載した方法を実行するように命令するための、コンピュータ使用可能媒体上に常駐するコンピュータ・プログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、ネットワーク通信に関し、具体的には、データ・パケットを変換するための方法及び装置に関する。さらに具体的には、本発明は、１つのネットワーク・プロトコルから別のネットワーク・プロトコルにデータ・パケットを変換するための方法及び装置に関する。
【背景技術】
【０００２】
混合プロトコル・ネットワーク環境においては、ネットワーク・ルータにおける処理電力のかなりの量が、１つのプロトコルから別のプロトコルにデータ・パケット情報を変換することに費やされる。パケット変換は、相対的に時間のかかるプロセスである。ネットワーク格納環境の場合には、全体的な高いシステム性能を維持するために、パケット変換を効率的な方法で行うことが重要である。こうした変換について説明する文書の例が、特許文献１である。
【０００３】
従来より、パケット変換プロセスを容易にするためのハードウェア解決法及びソフトウェア解決法がある。１つのハードウェア解決法は、状態機械を用いてパケット・ヘッダを構築することであるが、こうした解決法に関連する問題は、ネットワーク・プロトコルが変わるか又は移る場合に、融通性がないことである。別のハードウェア解決法は、汎用プロセッサ（ＧＰＰ）を用いてパケット・ヘッダを構築することであるが、こうした解決法に関連する問題は、プロトコル変換を実行するために、長いシーケンスのＧＰＰ命令を必要とすることである。
【０００４】
ソフトウェア解決法については、ヘッダからの情報又はパケットのコンテキスト・ブロックを用いて、ヘッダ又はフレームを構築することができる。しかしながら、こうした解決法に関連する問題は、各変換について行うことが必要とされる再計算による制約があることである。
【０００５】
特許文献２は、種々のネットワーク・プロトコルの相互接続をサポートするためのキャッシュ・メモリ・モジュールについて説明する。
【０００６】
【特許文献１】国際公開第ＷＯ０３／０３４６７０号パンフレット
【特許文献２】国際公開第ＷＯ０１／７１５２４号パンフレット
【発明の開示】
【発明が解決しようとする課題】
【０００７】
したがって、異なるネットワーク・プロトコル間でデータ・パケットを変換するための改善された方法及び装置を提供することが望ましい。
【課題を解決するための手段】
【０００８】
本発明は、請求項１において請求されるような方法、請求項６において請求されるような装置、及び請求項１１において請求されるようなコンピュータ・プログラムを提供するものである。
【発明を実施するための最良の形態】
【０００９】
本発明自体並びに好ましい使用モード、そのさらなる目的及び利点は、以下の例示的な実施形態の詳細な説明を添付の図面と併せて読んだときに、最もよく理解されることになるであろう。
【００１０】
ここで図面、特に図１を参照すると、本発明の好ましい実施形態が適用できるネットワーク環境のブロック図を示す。示されるように、ネットワーク環境１０は、ネットワーク１１及びネットワーク１２を含む。ネットワーク１１及びネットワーク１２の各々は、それぞれ別個のネットワーク・プロトコルを持つことができる。例えば、ネットワーク１１をイーサネットとし、ネットワーク１２をファイバ・チャネルとすることができ、或いは、ネットワーク１１をファイバ・チャネルとし、ネットワーク１２をＩｎｆｉｎｉＢａｎｄとすることができる。ネットワーク１１とネットワーク１２との間の全ての通信が、変換ルータ１５によって処理される。変換ルータ１５は、マルチプロトコル・ルータであることが好ましい。マルチプロトコル・ルータのように、変換ルータ１５の各ポートは、特定のネットワーク・プロトコルと関連付けられる。例えば、変換ルータ１５が３つのポートを有する場合、該変換ルータ１５のポート１をファイバ・チャネルと関連付け、該変換ルータ１５のポート２を転送制御プロトコル／インターネット・プロトコル（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ、ＴＣＰ／ＩＰ）と関連付け、該変換ルータ１５のポート３をＩｎｆｉｎｉＢａｎｄと関連付けることができる。このように、変換ルータ１５は、ネットワーク・パケットの送信元である入線ポート番号に基づいて、ネットワーク・パケットが属するネットワーク・プロトコルのタイプを認識する。同様に、変換ルータ１５は、ネットワーク・パケットの送信先である出線発信ポート番号に基づいて、ネットワーク・パケットを変換すべきネットワーク・プロトコルのタイプを認識する。
【００１１】
ネットワーク環境１０のようなネットワーク環境内で、処理を必要とする多数のデータ・パケットのために、処理のオーバーヘッドを相対的に高くすることができる。しかしながら、ネットワーク環境内で、上述の問題を軽減するために用い得る幾つかの特徴もある。第１に、使用されている多数のネットワーク・プロトコルがあるが、異なるネットワーク・プロトコルの総数は比較的少なく、各々のネットワーク・プロトコルの詳細は、種々の統治基準によって明確に定義される。第２に、大部分のネットワーク・プロトコルは、ネットワーク・ソース及び宛先アドレス、パケットのタイプ等のようなパケット記述情報を含むパケット内のペイロードの前に、ヘッダ構造を用いる。
【００１２】
ここで図２を参照すると、本発明の好ましい実施形態による、１つのネットワーク・プロトコルから別のネットワーク・プロトコルにデータ・パケットを変換するための装置のブロック図が示される。示されるように、装置２０は、変換テンプレート・キャッシュ２１及び変換エンジン２２を含む。変換エンジン２２は、汎用プロセッサ２５に結合され、汎用プロセッサ２５は、命令キャッシュ２３、データ・キャッシュ２４、及びシステム・メモリ２６に結合される。装置２０は、図１からの変換ルータ１５のような変換ルータ内に配置されることが好ましい。変換テンプレート・キャッシュ２１は、１つのネットワーク・プロトコルから別のネットワーク・プロトコルへのデータ・パケットの変換を容易にするための変換テンプレートを含む。基本的に、変換テンプレート・キャッシュ２１内の各変換テンプレートは、変換ルータがサポートする固有のネットワーク・プロトコルを表す。汎用プロセッサ２５の使用と比べると、変換テンプレートを使用することにより、ネットワーク・プロトコル変換を実行するために必要とされる命令がずっと少なくなる。
【００１３】
変換エンジン２２は、ソフトウェア、ファームウェア、ハードウェア、又はこれらの組み合わせとして実装することができ、パケット・ヘッダ内の情報を操作するのに必要な操作を実行し、プロトコルを変換することができる。変換テンプレート・キャッシュ２１は、１つ又はそれ以上のロックされたキャッシュ・ラインとして、又は変換エンジン２２にアクセス可能な専用メモリとして、専用オン・チップ・メモリ内に実装することができる。
【００１４】
ここで図３を参照すると、本発明の好ましい実施形態による、変換テンプレート・キャッシュ２１のブロック図が示される。示されるように、変換テンプレート・キャッシュ２１は、多数のエントリを含み、各エントリは、図１からの変換ルータ１５のような変換ルータがサポートするネットワーク・プロトコルと関連付けられた変換テンプレートを含む。各変換テンプレートは、６４バイト幅であることが好ましく、種々のネットワーク・プロトコルのデータ・パケットのヘッダを含むのに十分長いものにすべきである。
【００１５】
各プロトコルの変換のために、変換テンプレートが必要とされる。例えば、プロトコルＡを有するネットワークＡ及びプロトコルＢを有するネットワークＢを考える。ネットワークＡから受信したデータ・パケットから、ネットワークＢ内の伝送に適したデータ・パケットを生成するために、１つの変換テンプレートが必要とされる。ネットワークＢから受信したデータ・パケットから、ネットワークＡ内の伝送に適したデータ・パケットを生成するために、別の変換テンプレートが必要とされる。サポートする必要があるネットワーク・プロトコルＣを有する第３のネットワークＣがある場合には、さらに４つの変換テンプレートを構築し、変換テンプレート・キャッシュ内に読み込まなければならない。基本的に、ネットワークＡとネットワークＣとの間のプロトコル変換のために、２つの変換テンプレートが必要とされ、ネットワークＢとネットワークＣとの間のプロトコル変換のために、２つの変換テンプレートが必要とされる。
【００１６】
それぞれのネットワーク・プロトコルと関連付けられた５つの異なる変換テンプレートが、図４に示される。示されるように、エントリ１は、ファイバ・チャネル・フレーム・タイプ＃１についての変換テンプレートであり、エントリ２は、ファイバ・チャネル・フレーム・タイプ＃２についての変換テンプレートであり、エントリ３は、ＩｎｆｉｎｉＢａｎｄローカル経路指定についての変換テンプレートであり、エントリ４は、ＩｎｆｉｎｉＢａｎｄグローバル経路指定についての変換テンプレートであり、エントリ５は、ＴＣＰ／ＩＰについての変換テンプレートである。
【００１７】
例を用いて変換テンプレートの詳細を示すことができる。一般的なファイバ・チャネル・フレーム・ヘッダの制御及び情報ビットは、
Ｄ＿ＩＤ：宛先識別（ＩＤ）
Ｓ＿ＩＤ：ソースＩＤ
ＴＹＰＥ：フレーム・コンテンツのプロトコル（例えば、００００  １０００＝ＳＣＳＩ  ＦＣＰ）
Ｆ＿ＣＴＬ：フロー制御
ＳＥＱ＿ＩＤ：シーケンスＩＤ
ＤＦ＿ＣＴＬ：データ・フィールド制御
ＳＥＱ＿ＣＮＴ：シーケンス・カウント
ＯＸ＿ＩＤ：発信元交換ＩＤ
Ｒ：応答者交換ＩＤ
Ｐａｒａｍｅｔｅｒ：リンク制御フレームに特有のキャリー情報
【００１８】
このように、受信したデータ・パケットをファイバ・チャネル・プロトコルに変換するのを容易にする変換テンプレートは、全部ではないが、上述の制御及び情報ビットの大部分を含まなければならない。ここで図５を参照すると、本発明の好ましい実施形態による、受信したデータ・パケットをファイバ・チャネル・プロトコルに変換するのを容易にする変換テンプレートのブロック図が示される。示されるように、変換テンプレート４０は、宛先ＩＤフィールド４１、ソースＩＤフィールド４２、タイプ・フィールド４３、フロー制御フィールド４４、シーケンスＩＤフィールド４５、データ制御フィールド４６、シーケンス・カウント・フィールド４７、発信元交換ＩＤフィールド４８、及び応答者交換ＩＤフィールド４９を含む。示されるように、変換テンプレート４０内のフィールドは、ファイバ・チャネル・フレーム・ヘッダ内のフィールドに対応する。
【００１９】
ここで図６を参照すると、図２からの装置２０を用いて、１つのプロトコルから別のプロトコルにデータ・パケットを変換するための本発明の好ましい実施形態による方法の高レベル論理フロー図が示される。ブロック５０で開始し、ブロック５１に示されるように、変換テンプレートのグループが構築され、該変換テンプレートが変換テンプレート・キャッシュ内に読み込まれる。図５からの変換テンプレート４０のような変換テンプレートは、システムの初期構成中に構築されることが好ましく、次に、該変換テンプレートは、変換テンプレート・キャッシュ内に読み込まれる。他の場合には、変換テンプレートが変換テンプレート・キャッシュ内に読み込まれるときに、該変換テンプレートを「オン・ザ・フライ」式に構築することができる。
【００２０】
次に、ブロック５２に示されるように、図１からの変換ルータ１５のような変換ルータによって、交換属性が識別される。この時、ネットワーク・プロトコルもまた、通常、変換エンジン構成の一部として識別され、変換テンプレートが、使用可能なものとして検証される。前述のように、マルチプロトコル変換ルータは、ネットワーク・パケットの送信元である入線ポート番号に基づいて、ネットワーク・パケットが属するネットワーク・プロトコルのタイプを識別することができ、ネットワーク・パケットの送信先である出線ポート番号に基づいて、ネットワーク・パケットを変換すべきである。
【００２１】
ブロック５３に示されるように、変換ルータ内に到達する各データ・パケットとして、適切な変換テンプレートが、変換エンジンによるデータ・パケットの変換コンテキストに従って、変換テンプレート・キャッシュから選択される。
【００２２】
ブロック５４に示されるように、第１のネットワークのデータ・パケットからのデータ・パケットの適切なヘッダ・フィールドを、変換テンプレート・キャッシュ内の適切な変換テンプレートと共に読み取り、変換エンジンによって使用し、第２のネットワークへの伝送のための新しいヘッダを生成する。
【００２３】
ブロック５５に示されるように、第１のネットワークからのデータ・パケットのデータ・ペイロードが、該データ・パケットのヘッダから取り除かれ、次に、第２のネットワークのための新たに構築されたヘッダに付加される。次に、結果として生じる第２のネットワーク宛のデータ・パケットが、ネットワーク・ルータのローカル・メモリ内に配置される。
【００２４】
引き続き、第２のネットワーク宛のデータ・パケットが、ネットワーク・ルータ内のローカル・メモリからプルされる。ブロック５６に示されるように、このことは、通常、直接メモリ・アクセス（ＤＭＡ）又は汎用プロセッサを用いて実行される。第２のネットワーク宛のデータ・パケットが、第２のネットワークに送られる。
【００２５】
述べられたように、本発明は、異なるネットワーク・プロトコル間でデータ・パケットを変換するための改善された方法及び装置を提供するものである。１つのプロトコル・ドメインから別のプロトコル・ドメインへの変換を容易にするために、システム・メモリ内に制御ブロックが構築される。変換プロセスの一部として、制御ブロックに繰り返しアクセスする必要がある。本発明の場合には、多数のデータ・パケットにわたって繰り返し使用するのを容易にするように、制御ブロックがオン・チップに格納される。さらに、オン・チップ格納は、１つのプロトコル・フォーマット又は別のプロトコル・フォーマットに制限されない。このように、ファイバ・チャネル、イーサネット、及びＩｎｆｉｎｉＢａｎｄのようなプロトコルを横切ってパケットを変換することができる。
【００２６】
本発明は、完全に機能的な変換ルータの文脈において説明されたが、当業者であれば、本発明の機構を種々の形態のプログラムとして分散させ得ること、及び、実際に分散を実行するのに利用される特定のタイプの信号伝達媒体に関係なく、本発明が等しく適用されることを理解するであろう。信号伝達媒体の例は、制限なく、フロッピイ・ディスク又はＣＤ  ＲＯＭのような書き込み可能型媒体、及びアナログ又はデジタル通信リンクのような伝送型媒体を含む。
【図面の簡単な説明】
【００２７】
【図１】本発明の好ましい実施形態を適用できるネットワーク環境のブロック図である。
【図２】本発明の好ましい実施形態による、異なるネットワーク・プロトコル間でデータ・パケットを変換するための装置のブロック図である。
【図３】本発明の好ましい実施形態による、変換テンプレート・キャッシュのブロック図である。
【図４】本発明の好ましい実施形態による、変換テンプレート・キャッシュのブロック図である。
【図５】本発明の好ましい実施形態による、受信したデータ・パケットをファイバ・チャネル・プロトコルに変換するのを容易にする変換テンプレートのブロック図である。
【図６】図２の装置を用いて１つのプロトコルから別のプロトコルにデータ・パケットを変換するための本発明の好ましい実施形態による方法の高レベル論理フロー図である。
【国際調査報告】
2007508761.tif 000009
2007508761.tif 000010
2007508761.tif 000011