(57)【要約】【課題】リモート・ノードと通信するためにローカル・ノードで行われる方法、システム、およびプログラムを提供すること。【解決手段】第１の通信プロトコルを使用してリモート・ノードと通信して、第２の通信プロトコルのための接続を確立する。リモート・ノードとの通信を可能にするデータ構造が作成されて、第２の通信プロトコルのためにリモート・ノードとの通信を確立する。第２の通信プロトコルのための拡張層が呼び出される。データ構造は拡張層に渡されて、第２の通信プロトコルを使用してリモート・ノードと通信するために使用される。【選択図】図１
2006033854.tif 000002
【特許請求の範囲】
【請求項１】
リモート・ノードと通信するためにローカル・ノードでインプリメントされるプログラムであって、前記プログラムは、
第１の通信プロトコルを使用して前記リモート・ノードと通信して、第２の通信プロトコルのための接続を確立する動作と、
前記リモート・ノードとの通信を可能にするデータ構造を作成して、前記第２の通信プロトコルのための接続を前記リモート・ノードとの間に確立する動作と、
前記第２の通信プロトコルのための拡張層を呼び出す動作と、
前記第２の通信プロトコルを使用して前記リモート・ノードと通信するために使用するために、前記データ構造を前記拡張層に渡す動作と
を実行させるプログラム。
【請求項２】
前記接続を確立するための前記リモート・ノードとの通信は、ソケット層を通じて行われる請求項１に記載のプログラム。
【請求項３】
前記第１の通信プロトコルは、前記リモート・ノードと通信するために使用されるＲＮＩＣアダプタ中にインプリメントされたネットワーキング層からなり、前記第２の通信プロトコルは、ＲＤＭＡプロトコルからなり、前記拡張層は、前記ＲＤＭＡプロトコルを使用した前記リモート・ノードとの通信を扱うｉＳＥＲ層からなる請求項１に記載のプログラム。
【請求項４】
前記接続を確立するための前記リモート・ノードとの通信は、前記第２の通信プロトコルを使用して通信するインタフェース・プロトコルを使用して行われ、前記インタフェース・プロトコルは、前記第２の通信プロトコルのための前記データ構造を作成し、
前記拡張層プロトコルにより、前記インタフェース・プロトコルを終了する呼び出しを発行する動作であって、前記拡張層は、前記インタフェース・プロトコルによって作成された前記データ構造を使用して前記リモート・ノードと通信する動作
をさらに実行させる請求項１に記載のプログラム。
【請求項５】
前記第１の通信プロトコルは、ソケット層を構成し、前記第２の通信プロトコルは、前記ＲＤＭＡプロトコルからなり、前記インタフェース・プロトコルは、ＳＤＰ層、またはＩＰｏＩＢ（ＲＣ）の上にレイヤ化されたＴＣＰからなり、前記拡張層は、前記ＲＤＭＡプロトコルを使用する前記リモート・ノードとの通信を扱うｉＳＥＲ層からなり、ＩｎｆｉｎｉＢａｎｄアダプタが使用されて前記リモート・ノードと通信する請求項４に記載のプログラム。
【請求項６】
前記ローカル・ノードは、イニシエータ・ノードを含み、前記リモート・ノードは、ターゲット・ノードを含み、前記拡張層は、前記ターゲット・ノードから前記接続を確立するための最後の応答を受信すると呼び出され、前記インタフェース・プロトコルを終了させる呼び出しは、前記拡張層を呼び出すのに応答して発行される請求項１に記載のプログラム。
【請求項７】
前記インタフェース・プロトコルを終了させる呼び出しは、前記拡張層を呼び出すのに加えて、前記インタフェース・プロトコルを使用して前記ターゲット・ノードに最後の応答メッセージを送信するのに応答して発行される請求項６に記載のプログラム。
【請求項８】
前記ローカル・ノードは、イニシエータ・ノードを含み、前記リモート・ノードは、ターゲット・ノードを含み、前記イニシエータ・ノードはさらに、
前記ターゲット・ノードから、イニシエータ・アダプタを通じて、無効にするメモリ位置の直接の参照を含むことが可能なメッセージを受信する動作であって、前記直接の参照は、前記第２の通信プロトコルと互換性があり、前記イニシエータ・アダプタは、前記参照の直接の無効化を可能にしない動作と、
前記直接の参照がマップ中の１つの参照と一致すると判定するのに応答して、前記イニシエータ・アダプタを呼び出して前記直接の参照を無効にする動作と、
前記直接の参照が前記マップ中の１つの参照と一致する、または前記直接の参照が提供されないと判定されるのに応答して、前記無効化メッセージに含まれる間接的な参照に関連付けられた、前記マップ中に示される少なくとも１つの直接の参照を無効にする動作と
を行う請求項１に記載のプログラム。
【請求項９】
前記拡張層は、前記アダプタを呼び出して前記直接の参照を無効にし、前記無効化メッセージ中の前記間接的な参照に関連付けられた少なくとも１つの参照を無効にする動作を行う請求項８に記載のプログラム。
【請求項１０】
前記拡張層はｉＳＥＲ層からなり、前記ターゲット・ノードは、ＲＮＩＣアダプタまたはＩｎｆｉｎｉＢａｎｄアダプタを含み、前記呼び出されるイニシエータ・アダプタは、ＲＮＩＣアダプタまたはＩｎｆｉｎｉＢａｎｄアダプタを含む請求項９に記載のプログラム。
【請求項１１】
前記ローカル・ノードは、ターゲット・ノードを含み、前記リモート・ノードは、イニシエータ・ノードを含み、前記拡張層は、前記イニシエータ・ノードから最後のログイン要求を受信するのに応答して呼び出される請求項１０に記載のプログラム。
【請求項１２】
前記ターゲット・ノードはさらに、
前記第１の通信プロトコルを使用して前記イニシエータ・ノードに最後のログイン応答を送信する動作
を行い、前記最後のログイン応答を送信した後に前記データ構造が前記拡張層に渡される請求項１１に記載のプログラム。
【請求項１３】
前記間接的な参照は、ＩＴＴを含み、前記直接の参照は、ＳＴａｇまたはＲ＿Ｋｅｙを含む請求項８に記載のプログラム。
【請求項１４】
リモート・ノードと通信するためにローカル・ノードで実施されるシステムであって、
（ａ）コンピュータ可読媒体と、
（ｂ）（ｉ）第１の通信プロトコル、
（ｉｉ）第２の通信プロトコル、および
（ｉｉｉ）前記第２の通信プロトコルのための拡張層、
を含むコードと、
（ｃ）前記コンピュータ可読媒体と通信する、前記ローカル・ノードにある回路であって、
（ｉ）前記第１の通信プロトコルを使用して前記リモート・ノードと通信して、前記第２の通信プロトコルのための接続を確立し、
（ｉｉ）前記コンピュータ可読媒体中にデータ構造を作成して前記リモート・ノードとの通信を可能にして、前期第２の通信プロトコルのための前記接続を前記リモート・ノードとの間に確立し、
（ｉｉｉ）前記第２の通信プロトコルのための前記拡張層を呼び出し、
（ｉｖ）前記第２の通信プロトコルを使用して前記リモート・ノードと通信するために使用するために前記データ構造を前記拡張層に渡すこと
を可能にされた回路と
を備えるシステム。
【請求項１５】
ソケット層をさらに備え、前記接続を確立するための前記リモート・ノードとの通信は、前記ソケット層を通じて行われる請求項１４に記載のシステム。
【請求項１６】
前記第１の通信プロトコルは、前記リモート・ノードと通信するために使用されるＲＮＩＣアダプタ中に実施されたネットワーキング層を含み、前記第２の通信プロトコルは、前記ＲＤＭＡプロトコルを含み、前記拡張層は、前記ＲＤＭＡプロトコルを使用した前記リモート・ノードとの通信を扱うｉＳＥＲ層からなる請求項１４に記載のシステム。
【請求項１７】
前記接続を確立するための前記リモート・ノードとの通信は、前記第２の通信プロトコルを使用して通信するインタフェース・プロトコルを使用して行われ、前記インタフェース・プロトコルは、前記第２の通信プロトコルのための前記データ構造を作成し、前記回路はさらに、
前記拡張層プロトコルにより、前記インタフェース・プロトコルを終了させる呼び出しを発行することを可能にされ、前記拡張層は、前記インタフェース・プロトコルによって作成された前記データ構造を使用して前記リモート・ノードと通信する請求項１４に記載のシステム。
【請求項１８】
前記第１の通信プロトコルは、ソケット層を含み、前記第２の通信プロトコルは、前記ＲＤＭＡプロトコルを含み、前記インタフェース・プロトコルは、ＳＤＰ層、またはＩＰｏＩＢ（ＲＣ）の上にレイヤ化されたＴＣＰを含み、前記拡張層は、前記ＲＤＭＡプロトコルを使用した前記リモート・ノードとの通信を扱うｉＳＥＲ層を含み、ＩｎｆｉｎｉＢａｎｄアダプタが使用されて、前記リモート・ノードと通信する請求項１７に記載のシステム。
【請求項１９】
前記ローカル・ノードはイニシエータ・ノードを含み、前記リモート・ノードは、ターゲット・ノードを含み、前記拡張層は、前記ターゲット・ノードから前記接続を確立するための最後の応答を受信すると呼び出され、前記インタフェース・プロトコルを終了させる呼び出しは、前記拡張層を呼び出すのに応答して発行される請求項１４に記載のシステム。
【請求項２０】
前記インタフェース・プロトコルを終了させる呼び出しは、前記拡張層を呼び出すのに加えて、前記インタフェース・プロトコルを使用して前記ターゲット・ノードに最後の応答メッセージを送信するのに応答して発行される請求項１９に記載のシステム。
【請求項２１】
前記ローカル・ノードはイニシエータ・ノードを含み、前記リモート・ノードは、ターゲット・ノードを含み、前記イニシエータ・ノードはさらに、
前記ターゲット・ノードからイニシエータ・アダプタを通じて、無効にするメモリ位置の直接の参照を含むことが可能なメッセージを受信する動作であって、前記直接の参照は、前記第２の通信プロトコルと互換性があり、前記イニシエータ・アダプタは、前記参照の直接の無効化を可能にしない動作と、
前記直接の参照がマップ中の１つの参照と一致すると判定するのに応答して、前記イニシエータ・アダプタを呼び出して前記直接の参照を無効にする動作と、
前記直接の参照が前記マップ中の１つの参照と一致する、または前記直接の参照が提供されないと判定されるのに応答して、前記無効化メッセージに含まれる間接的な参照に関連付けられた、前記マップ中に示される少なくとも１つの直接の参照を無効にする動作と
を行う請求項１４に記載のシステム。
【請求項２２】
前記拡張層は、前記アダプタを呼び出して前記直接の参照を無効にし、前記無効化メッセージ中の前記間接的な参照に関連付けられた少なくとも１つの参照を無効にする動作を行う請求項２１に記載のシステム。
【請求項２３】
前記拡張層はｉＳＥＲ層からなり、前記ターゲット・ノードは、ＲＮＩＣアダプタまたはＩｎｆｉｎｉＢａｎｄアダプタを含み、前記呼び出されるイニシエータ・アダプタは、ＲＮＩＣアダプタまたはＩｎｆｉｎｉＢａｎｄアダプタを含む請求項２２に記載のシステム。
【請求項２４】
前記ローカル・ノードはターゲット・ノードを含み、前記リモート・ノードは、イニシエータ・ノードを含み、前記拡張層は、前記イニシエータ・ノードから最後のログイン要求を受信するのに応答して呼び出される請求項２３に記載のシステム。
【請求項２５】
前記ターゲット・ノードの回路はさらに、
前記第１の通信プロトコルを使用して前記イニシエータ・ノードに最後のログイン応答を送信することを可能にされ、前記最後のログイン応答を送信した後に前記データ構造が前記拡張層に渡される請求項２４に記載のシステム。
【請求項２６】
前記間接的な参照は、ＩＴＴを含み、前記直接の参照は、ＳＴａｇまたはＲ＿Ｋｅｙを含む請求項２１に記載のシステム。
【請求項２７】
リモート・ノードと通信するためにローカル・ノードで行われる方法であって、
第１の通信プロトコルを使用して前記リモート・ノードと通信して第２の通信プロトコルのための接続を確立するステップと、
前記リモート・ノードとの通信を可能にするデータ構造を作成して、前記第２の通信プロトコルのための接続を前記リモート・ノードとの間に確立するステップと、
前記第２の通信プロトコルのための拡張層を呼び出すステップと、
前記第２の通信プロトコルを使用して前記リモート・ノードと通信するために使用するために、前記データ構造を前記拡張層に渡すステップと
を備える方法。
【請求項２８】
前記接続を確立するための前記リモート・ノードとの通信は、ソケット層を通じて行われる請求項２７に記載の方法。
【請求項２９】
前記第１の通信プロトコルは、前記リモート・ノードと通信するために使用されるＲＮＩＣアダプタ中に実施されたネットワーキング層を含み、前記第２の通信プロトコルは、前記ＲＤＭＡプロトコルを含み、前記拡張層は、前記ＲＤＭＡプロトコルを使用した前記リモート・ノードとの通信を扱うｉＳＥＲ層を含む請求項２７に記載の方法。
【請求項３０】
前記接続を確立するための前記リモート・ノードとの通信は、前記第２の通信プロトコルを使用して通信するインタフェース・プロトコルを使用して行われ、前記インタフェース・プロトコルは、前記第２の通信プロトコルのための前記データ構造を作成し、
前記拡張層プロトコルにより、前記インタフェース・プロトコルを終了する呼び出しを発行するステップであって、前記拡張層は、前記インタフェース・プロトコルによって作成された前記データ構造を使用して前記リモート・ノードと通信するステップ
をさらに備える請求項２７に記載の方法。
【請求項３１】
前記第１の通信プロトコルは、ソケット層を構成し、前記第２の通信プロトコルは、前記ＲＤＭＡプロトコルを含み、前記インタフェース・プロトコルは、ＳＤＰ層、またはＩＰｏＩＢ（ＲＣ）の上にレイヤ化されたＴＣＰを含み、前記拡張層は、前記ＲＤＭＡプロトコルを使用する前記リモート・ノードとの通信を扱うｉＳＥＲ層を含み、ＩｎｆｉｎｉＢａｎｄアダプタが使用されて前記リモート・ノードと通信する請求項３０に記載の方法。
【請求項３２】
前記ローカル・ノードは、イニシエータ・ノードを含み、前記リモート・ノードは、ターゲット・ノードを含み、前記拡張層は、前記ターゲット・ノードから前記接続を確立するための最後の応答を受信すると呼び出され、前記インタフェース・プロトコルを終了させる呼び出しは、前記拡張層を呼び出すのに応答して発行される請求項２７に記載の方法。
【請求項３３】
前記インタフェース・プロトコルを終了させる呼び出しは、前記拡張層を呼び出すのに加えて、前記インタフェース・プロトコルを使用して前記ターゲット・ノードに最後の応答メッセージを送信するのに応答して発行される請求項２７に記載の方法。
【請求項３４】
前記ローカル・ノードは、イニシエータ・ノードを含み、前記リモート・ノードは、ターゲット・ノードを含み、前記イニシエータ・ノードはさらに、
前記ターゲット・ノードからイニシエータ・アダプタを通じて、無効にするメモリ位置の直接の参照を含むことが可能なメッセージを受信するステップであって、前記直接の参照は、前記第２の通信プロトコルと互換性があり、前記イニシエータ・アダプタは、前記参照の直接の無効化を可能にしないステップと、
前記直接の参照がマップ中の１つの参照と一致すると判定するのに応答して、前記イニシエータ・アダプタを呼び出して前記直接の参照を無効にするステップと、
前記直接の参照が前記マップ中の１つの参照と一致する、または、前記直接の参照が提供されないと判定されるのに応答して、前記無効化メッセージに含まれる間接的な参照に関連付けられた、前記マップ中に示される少なくとも１つの直接の参照を無効にするステップと
を行う請求項２７に記載の方法。
【請求項３５】
前記拡張層は、前記アダプタを呼び出して前記直接の参照を無効にし、前記無効化メッセージ中の前記間接的な参照に関連付けられた少なくとも１つの参照を無効にする動作を行う請求項３４に記載の方法。
【請求項３６】
前記拡張層はｉＳＥＲ層からなり、前記ターゲット・ノードは、ＲＮＩＣアダプタまたはＩｎｆｉｎｉＢａｎｄアダプタを含み、前記呼び出されるイニシエータ・アダプタは、ＲＮＩＣアダプタまたはＩｎｆｉｎｉＢａｎｄアダプタを含む請求項３５に記載の方法。
【請求項３７】
前記ローカル・ノードは、ターゲット・ノードを含み、前記リモート・ノードは、イニシエータ・ノードを含み、前記拡張層は、前記イニシエータ・ノードから最後のログイン要求を受信するのに応答して呼び出される請求項３６に記載の方法。
【請求項３８】
前記ターゲット・ノードはさらに、
前記第１の通信プロトコルを使用して前記イニシエータ・ノードに最後のログイン応答を送信するステップを行い、前記最後のログイン応答を送信した後に前記データ構造が前記拡張層に渡される請求項３７に記載の方法。
【請求項３９】
前記間接的な参照は、ＩＴＴを含み、前記直接の参照は、ＳＴａｇまたはＲ＿Ｋｅｙを含む請求項３４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ノード間の通信を可能にする方法、システム、およびプログラムに関する。
【背景技術】
【０００２】
ストレージ環境では、ホスト・システムから、ディスクへのアクセスを管理するストレージ・コントローラにデータ・アクセス・コマンドが通信される。ストレージ・コントローラは、ホスト・システム中のカード、または別個のデバイスである。ｉＳＣＳＩ（Internet Small Computer Systems Interface）プロトコルは、イーサネット・スイッチおよびルータを含むイーサネット接続を利用するストレージ・ネットワークに使用される。本願で使用される用語「ｉＳＣＳＩ」は、ＩＥＴＦ（InternetEngineering Task Force）標準本体で定義されるｉＳＣＳＩプロトコルの構文およびセマンティックと、このプロトコルの変種を指す。ｉＳＣＳＩが利用される現在のストレージ・ネットワークでは、パケットの構成は、インターネット・プロトコル（ＩＰ）と伝送制御プロトコル（ＴＣＰ）のパッケージ層をカプセル化したイーサネット・パッケージからなり、ＩＰおよびＴＣＰのパッケージ層がさらに、１つまたは複数のＳＣＳＩコマンドを含むｉＳＣＳＩパッケージをカプセル化する。イーサネット・プロトコルは、パケットが任意のネットワーク・セグメント（リンク）上の２地点間を流れる際にリンク・レベルの誤り検査を提供して、リンクを通過する間にデータが破損したかどうかを判定する。ネットワーク・データ送信動作では、イニシエータ・デバイスが、ネットワークを介してデータまたはコマンドをターゲット・デバイスに送信する。ＴＣＰ／ＩＰパッケージは、終端間の検査を行って、送信されたパケットが送信中にスイッチとルータを通過する際に変化したかどうかを反対側で判定する誤り検出コードを含む。誤りを検出した受信側デバイスは、送信元デバイスに否定の受信通知を送信して、誤りが検出されたパケットの再送信を要求する。
【非特許文献１】ＲＤＭＡコンソーシアム発行  仕様「ＲＤＭＡプロトコルＶｅｒｂｓ仕様（バージョン１．０）」（２００３年４月）
【非特許文献２】ＲＤＭＡコンソーシアム発行「信頼性のある移送機構を通じた直接敵なデータ配置（バージョン１．０）」（２００２年１０月）
【非特許文献３】ＲＤＭＡコンソーシアム発行「ＴＣＰ仕様のためのマーカーＰＤＵの位置合わせフレーミング（バージョン１．０）」（２００２年１０月）
【非特許文献４】ＲＤＭＡコンソーシアム公表  マイケル・コー（Michael Ko）他「ＲＤＭＡ仕様のためのｉＳＣＳＩ拡張（バージョン１．０）」（２００３年７月）
【非特許文献５】「ＩｎｆｉｎｉＢａｎｄ（商標）アーキテクチャ  仕様  Ｖｏｌｕｍｅ１」公開１．１（２００２年１１月  著作権ＩｎｆｉｎｉＢａｎｄ（商標）業界団体）
【非特許文献６】「ＩＰ  ｏｖｅｒ  ＩｎｆｉｎｉＢａｎｄ：接続モード」ＩＥＴＦにより「draft-kashyap-ipoib-connected-mode-01.txt」として公表（２００３年９月）
【非特許文献７】ＲＦＣ２９６０「ストリーム制御伝送プロトコル」（Ｉｎｔｅｒｎｅｔ  Ｓｏｃｉｅｔｙ，２０００年）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ＲＭＤＡ（Remote Direct Memory Access）プロトコルは、１つのネットワーク・ノードが、メモリ・バスの帯域幅とプロセッサのオーバーヘッドの需要を可能な限り少なくして、別のネットワーク・ノードのメモリに直接情報を置くことを可能にする。ＲＤＭＡ  ｏｖｅｒ  ＴＣＰ／ＩＰ（ｉＷＡＲＰとも称される）は、標準的なＴＣＰ／ＩＰネットワークを通じたＲＤＭＡ動作を支援する相互動作可能なプロトコルを定義する。ＲＤＭＡネットワーク・インタフェース・カード（ＲＮＩＣ）は、ＲＤＭＡプロトコルを実施し、ローカルおよびリモートのメモリにデータを転送するＲＤＭＡ動作を行う。ＲＤＭＡプロトコルのさらなる詳細については、ＲＤＭＡコンソーシアム発行  仕様「ＲＤＭＡプロトコルＶｅｒｂｓ仕様（バージョン１．０）」（２００３年４月）；ＲＤＭＡコンソーシアム発行「信頼性のある移送機構を通じた直接的なデータ配置（バージョン１．０）」（２００２年１０月）；およびＲＤＭＡコンソーシアム発行「ＴＣＰ仕様のためのマーカーＰＤＵの位置合わせフレーミング（バージョン１．０）」（２００２年１０月）に記載される。これらの仕様は、参照により全体が本明細書に組み込まれる。
【０００４】
ＲＤＭＡコンソーシアム公表  マイケル・コー（Michael Ko）他「ＲＤＭＡ仕様のためのｉＳＣＳＩ拡張（バージョン１．０）」（２００３年７月）と題する仕様は、ＲＤＭＡの最上位にｉＳＣＳＩをレイヤ化することにより、ｉＳＣＳＩにＲＤＭＡのデータ転送機能を提供するプロトコルを定義する。この仕様は、参照により全体が本明細書に組み込まれる。
【０００５】
ｉＷＡＲＰとも称されるＲＤＭＡ  ｏｖｅｒ  ＴＣＰ／ＩＰの一部として定義された機能の多くは、以前にＩｎｆｉｎｉＢａｎｄネットワークにおける動作として定義されたものである。ＩｎｆｉｎｉＢａｎｄのアダプタ・ハードウェアは、ＲＤＭＡ動作をサポートする。ＩｎｆｉｎｉＢａｎｄは、通常のＴＣＰ／ＩＰソケット・アプリケーションが、ＴＣＰ／ＩＰネットワークで動作する場合と同じように、ＩｎｆｉｎｉＢａｎｄネットワークを通じてメッセージを送信することを可能にするＳＤＰ（ソケット・ダイレクト・プロトコル）と呼ばれるプロトコルのセットも定義する。ＩｎｆｉｎｉＢａｎｄおよびＳＤＰプロトコルについてのさらなる詳細は、文献「ＩｎｆｉｎｉＢａｎｄ（商標）アーキテクチャ  仕様  Ｖｏｌｕｍｅ１」公開１．１（２００２年１１月  著作権ＩｎｆｉｎｉＢａｎｄ（商標）業界団体）に記載される。同文献は、参照により全体が本明細書に組み込まれる。
【０００６】
次いで図面を参照するが、すべての図面を通じて同様の参照符合は対応する部分を表す。
【課題を解決するための手段】
【０００７】
リモート・ノードと通信するためにローカル・ノードで行われる方法、システム、およびプログラムが提供される。第１の通信プロトコルを使用してリモート・ノードと通信して、第２の通信プロトコルのための接続を確立する。リモート・ノードとの通信を可能にするデータ構造が作成されて、第２の通信プロトコルのためにリモート・ノードとの通信を確立する。第２の通信プロトコルのために拡張層が呼び出される。データ構造は拡張層に渡されて、第２の通信プロトコルを使用してリモート・ノードと通信するために使用される。
【発明を実施するための最良の形態】
【０００８】
以下の説明では、本明細書の一部をなし、本発明のいくつかの実施形態を表す添付図面を参照する。他の実施形態を利用することができ、また本発明の範囲内で構造的および動作的な変更を加えてよいことは理解されたい。
【０００９】
図１は、ネットワーク４を通じて通信する複数のコンピューティング・ノード２ａ、２ｂ，．．．，２ｎからなるネットワーク・コンピューティング環境を示す。このネットワークは、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、ストレージ・エリア・ネットワーク（ＳＡＮ）からなることができる。あるいは、ノードは、ＳＣＳＩバスなどのバスを通じて通信してもよい。
【００１０】
図１のノード２ａ、２ｂ，．．．，２ｎは、イニシエータとターゲットの両方として動作することができる。図２は、ネットワーク４を通じた通信を可能にするために、ノード２ａ、２ｂ、２ｃなどのノードに含まれるコンポーネントを表す。ノード２は、中央演算処理装置や複合体（complex）などのプロセッサ６と、オペレーティング・システム８を含む。ノード２はさらに、データベース・プログラムやサーバ・プログラムなどのユーザ・アプリケーションからなるアプリケーション１４を含む。Ｉ／Ｏ動作を行うには、アプリケーション１４は、ＳＣＳＩ層１６に対する呼び出しを行ってＳＣＳＩのＩ／Ｏ要求を生成し、その要求がｉＳＣＳＩ層１８に対する呼び出しを行う。ｉＳＣＳＩ層１８は、ｉＳＣＳＩのログイン動作を行うことにより、ターゲット・ノードとの通信を開始する。ログインするには、ｉＳＣＳＩ層は、ＴＣＰソケット層などのソケット層２０とのインタフェースをとって、リモート・ターゲット・ノードとの通信を確立し、ログインする。ソケット層２０は、ｉＳＣＳＩ層１８とアダプタ２４中のネットワーク・プロトコルとのインタフェースをとるために使用されるプログラミング・インタフェースからなる。
【００１１】
アダプタ２４は、ＲＮＩＣアダプタまたはＩｎｆｉｎｉＢａｎｄ（ＩＢ）アダプタからなることができる。アダプタ２４は、ＲＤＭＡ層２６と、ＴＣＰ層やＩｎｆｉｎｉＢａｎｄ層などのネットワーク層２８を含み、ネットワーク４を通じて送信するためにトランスポート層にパケットをパッケージし、または、ネットワーク４から受信したパケットをパッケージから取り出す。
【００１２】
アダプタ２４がＩｎｆｉｎｉＢａｎｄアダプタからなる場合、ノード２は、ソケット・ダイレクト・プロトコル（ＳＤＰ）層４２を含むことができ、ソケット層２０がＳＤＰ層４２とのインタフェースをとり、ＳＤＰ層４２が、ソケット層２０とＲＤＭＡ層２６との間のインタフェースをとる。ＩｎｆｉｎｉＢａｎｄの実施形態では、ＳＤＰ層４２が、ｉＳＣＳＩ層１８からＲＤＭＡ呼び出しを通じてＲＤＭＡ層２６に対するソケット層２０呼び出しを（直接、またはＩＢアダプタ・ドライバ４４を介して）実施することにより、ソケット層２０を使用して呼び出しを行うアプリケーション１４と、アダプタ２４中のＲＤＭＡ層２６との間のインタフェースを提供する。ＩｎｆｉｎｉＢａｎｄ実施形態とＲＮＩＣ実施形態の両方で、ｉＳＥＲ層２２が提供され、ログイン後は、ｉＳＣＳＩ層１８が、ｉＳＥＲ層２２を呼び出してＲＮＩＣ２４に対する呼び出しを行う。ｉＳＥＲ層２２は、機能呼び出しを通じて直接、またはＲＤＭＡｖｅｒｂ層を備えるＲＮＩＣドライバ４４を通じて、ＲＮＩＣ２４を呼び出すことができる。アダプタ２４がＲＮＩＣアダプタからなる実施形態では、ノード２は、ＳＤＰ層４２を含まず、一方、ＩｎｆｉｎｉＢａｎｄアダプタの実施形態では、ＳＤＰ層４２が含まれる。
【００１３】
ＲＤＭＡ層２６は、イニシエータ・ノードとターゲット・ノード中の登録されたメモリ位置に、論理的に連続した方式で（ローカルに、またはローカルかつリモートに）直接アクセスすることができる。メモリ領域やメモリ・ウィンドウなどの定義されたメモリ位置は、ＲＤＭＡ２６によって作成され、メモリ領域３２などの登録されたメモリ位置を参照するために使用されるステアリング（steering）・タグで識別される。ＲＮＩＣ実施では、ステアリング・タグは、ＳＴａｇと称され、ＩｎｆｉｎｉＢａｎｄ実施形態では、ステアリング・タグは、リモート・ステアリング・タグを表すＲ＿Ｋｅｙと、ローカル・ステアリング・タグを表すＬ＿Ｋｅｙと称される（本明細書で両方のキーに使用される汎用的な用語は＃＿Ｋｅｙである）。特定の実施形態では、メモリ領域またはメモリ・ウィンドウと称するメモリ領域のサブセットを登録することができ、登録された各メモリ位置、領域、またはウィンドウには、別個のＳＴａｇ／＃＿Ｋｅｙを関連付ける。ＲＤＭＡ層２６は、ＳＴａｇ／＃＿Ｋｅｙを使用して、参照されるメモリ位置にアクセスする。特定の実施形態では、ｉＳＥＲ層２２が、ＲＤＭＡｖｅｒｂ層４４を呼び出すことにより、アダプタ２４を呼び出してメモリ領域を登録する。ＲＤＭＡｖｅｒｂ層４４（ＲＮＩＣ／ＩＢアダプタ・ドライバ）は、オペレーティング・システム８とアダプタ２４のインタフェースをとるデバイス・ドライバを備える。例えばメモリ領域やメモリ・ウィンドウなどのメモリ位置を宣言し、登録するための、ｉＳＥＲ層２２またはＳＤＰ層４２の機能からの呼び出しに応答して、アダプタ・ドライバ４４は、アダプタ２４を呼び出す。
【００１４】
ＲＤＭＡ層２６は、メモリ変換テーブル３４を維持しており、メモリ領域を登録する時には、登録されたメモリ領域とそのメモリ領域を参照するために生成されたＳＴａｇ／＃＿Ｋｅｙを識別するエントリをメモリ変換テーブル３４に加えて、ＲＤＭＡ層２６がそのメモリ領域にＳＴａｇ／＃＿Ｋｅｙを関連付けられるようにする。メモリ変換テーブル３４は、アダプタ２４のバッファに維持しても、メモリ３０に維持してもよい。ＳＴａｇ／＃＿Ｋｅｙは、Ｉ／Ｏ動作に使用するために登録を要求するｉＳＥＲ層２２の機能に返される。
【００１５】
アダプタ２４がＳＴａｇ／＃＿Ｋｅｙを生成し、ｉＳＥＲ層２２に返すと、ｉＳＥＲ層２２は、続いてＩ／Ｏ動作を行う。ｉＳＥＲ層２２は、ｉＳＣＳＩ層１８から受け取ったパケットを、ヘッダ情報とアダプタ２４から受け取ったＳＴａｇ／Ｒ＿Ｋｅｙでラップし、そのパケットを転送のためにアダプタ２４に渡す。
【００１６】
ＲＤＭＡデータ転送を管理するために、ＲＤＭＡ層２６は、送信待ち行列３６、受信待ち行列３８、および完了待ち行列４０を保持する。送信待ち行列３６と受信待ち行列３８は、ＲＤＭＡ層２６がＲＤＭＡデータ転送要求を管理するために使用する作業待ち行列からなる。完了待ち行列４０は、複数の作業待ち行列についての１つの完了通知点を提供する完了エントリを有する１つまたは複数のエントリを含む、共用可能な待ち行列からなることができる。待ち行列３６、３８、および４０は、恐らくは各論理接続について多くのインスタンスを有する場合があり、アダプタ２４により、メモリ３０か、またはアダプタ２４のバッファに割り振られることができる。
【００１７】
図３に、諸実施形態で使用される送信パッケージのフォーマットを示す。ＳＣＳＩ層１６によって生成される（読み出しまたは書き込みコマンドなどの）ＳＣＳＩコマンド５０は、ｉＳＣＳＩ層１８でｉＳＣＳＩプロトコル・データ・ユニット（ＰＤＵ）５２の中にカプセル化され、ＰＤＵ５２はさらに、ｉＳＥＲ層２２の機能によってｉＳＥＲヘッダ５４の中にカプセル化される。ＳＣＳＩコマンド５０を含むｉＳＣＳＩ  ＰＤＵ５２はさらに、イニシエータ・タスク・タグ（ＩＴＴ）５６を含み、ｉＳＣＳＩ層１８は、そのＩＴＴを、基礎となるＳＣＳＩコマンドに関連付けられた発行されるすべてのｉＳＣＳＩタスクに割り当てて、基礎となるＳＣＳＩ  Ｉ／Ｏ動作を識別する。ＩＴＴ５６は、セッションにわたってタスクを一意に識別する。ターゲット・ノードがイニシエータからの要求に応答すると、ＩＴＴ５６が使用されて、その応答をｉＳＣＳＩ層１８で元の要求に関係付ける。例えば、ターゲットが動作を完了し、動作ステータスを返す時に送信される、ターゲットｉＳＣＳＩ層１８からのｉＳＣＳＩのＳＣＳＩ応答ＰＤＵ中のＩＴＴ５６が、イニシエータのｉＳＣＳＩ層１８によって使用されて、ターゲットのＰＤＵを元のＳＣＳＩ書き込みコマンドに関係付ける。
【００１８】
ｉＳＥＲヘッダ５４は、Ｉ／Ｏ動作に使用されるＳＴａｇ／Ｒ＿Ｋｅｙと、通知されたＳＴａｇ／Ｒ＿Ｋｅｙを受け取るリモート・ノードがそのＳＴａｇ／Ｒ＿Ｋｅｙで参照されるメモリ領域（ウィンドウ）から読み出すのか、書き込むのかを示す情報と、その要求に関連する作業待ち行列とを含む。ｉＳＥＲヘッダ５４とｉＳＣＳＩ  ＰＤＵ５２はさらに、ＴＣＰ層やＩｎｆｉｎｉＢａｎｄネットワーク・プロトコル層などの１つまたは複数の追加的なネットワーク層６０にカプセル化される。特定の実施形態では、アダプタ２４のネットワーク層２８が、ＴＣＰ、ＩＢなどのネットワーク層６０の中にｉＳＥＲヘッダ５４とＰＤＵ５２をアセンブルする。
【００１９】
ｉＳＥＲ層２２はさらに、ターゲット・ノードにＲＤＭＡチャネルを通じてデータを読み出させる、または書き込ませるための読み出しまたは書き込みＳＴａｇ／Ｒ＿Ｋｅｙなど、そのタスクのためのデータを転送するために使用されるＳＴａｇ／＃＿Ｋｅｙに、ｉＳＣＳＩタスクを表すＩＴＴを関連付けるＩＴＴとＳＴａｇ／＃＿Ｋｅｙのマップ７０（図２）をメモリ３０に維持する。図４に、その対応付けがローカルのＳＴａｇ／Ｌ＿Ｋｅｙについてか、リモートのＳＴａｇ／Ｒ＿Ｋｅｙについてかを示すローカル／リモートの指示７３を含む、マップ７０のエントリ７２の内容を示す。ローカル・マッピングのエントリは、ローカルのメモリ・ウィンドウまたはメモリ領域を参照するＳＴａｇ／Ｌ＿Ｋｅｙを、Ｉ／Ｏコマンドに関連するデータをローカルに記憶（または取り出す）するために使用されるＩＴＴに関連付け、リモート・マッピングのエントリは、リモート・ノードのメモリ領域またはウィンドウを参照するＳＴａｇ／Ｒ＿Ｋｅｙを、そのローカルのメモリ領域またはウィンドウにデータがそこから読み出される、または転送されるＩＴＴに関連付ける。対応付けのエントリ７２はさらに、ｉＳＣＳＩタスクを表す関連付けられたＩＴＴ７４と、そのタスクに関連付けられたＳＴａｇ／＃＿Ｋｅｙ７６と、そのタスクについてのステータス情報７８とを含む。
【００２０】
図５、６、７、８、９、および１０は、ここに記載される実施形態による、ＳＣＳＩ書き込みコマンドを処理する動作を表す。図５および６は、ＲＮＩＣアダプタまたはＩｎｆｉｎｉＢａｎｄアダプタ２４を含むイニシエータ・ノード２にＲＤＭＡを使用するためにターゲット・ノードに接続するために、イニシエータ・ノード２のコンポーネントによって実施される動作を示す。図５に関して、ブロック１００で制御が開始し、ｉＳＣＳＩ層１８がソケット層２０とのインタフェースをとってターゲット・ノードと通信し、新規のｉＳＣＳＩ接続に「ログイン」し、ターゲット・ノードと各種のパラメータをネゴシエートする。イニシエータ・ノードとターゲット・ノードはともに、図２に示すアーキテクチャを含むことができ、対応するＲＮＩＣアダプタまたはＩｎｆｉｎｉＢａｎｄアダプタあるいはその両方を含む。そのため、イニシエータ・ノードで行われる動作は、イニシエータ・ノード２がＲＮＩＣアダプタ２４を含むか、ＩｎｆｉｎｉＢａｎｄアダプタ２４を含むかによって決まる。上記で述べたように、イニシエータ・ノード２は、イニシエータ・ノード２にインストールされたアダプタ２４のタイプに基づいて、通信に必要とされる層とコードをロードすることができる。例えば、ノードがＩｎｆｉｎｉＢａｎｄアダプタを含む場合、ノードは、ＳＤＰ層４２をロードし、一方、ノードがＲＮＩＣアダプタのみを含む場合は、ＳＤＰ層４２はロードされなくてよい。（ブロック１０２で）ｉＳＣＳＩ層１８がＲＮＩＣアダプタ２４を介して接続する場合、ソケット層２０は（ブロック１０４で）、ＲＮＩＣアダプタ２４中のＴＣＰ２８ネットワーキング機能を介して、ターゲット・ノードにｉＳＣＳＩメッセージを渡し、受信した応答をソケット層２０を介してｉＳＣＳＩ層に返す。そうでなく、（ブロック１０２で）ｉＳＣＳＩ層１８がＩｎｆｉｎｉＢａｎｄアダプタ２４を介して接続する場合、ソケット層２０は、（ブロック１０６で）ＳＤＰ層４２を介してターゲット・ノードにｉＳＣＳＩメッセージを渡し、受け取った応答をソケット層２０を介してｉＳＣＳＩ層１８に返す。ＳＤＰ層４２は、（ブロック１０８で）待ち行列の対２６、２８、完了待ち行列４０などのＲＤＭＡ接続のためのデータ構造を作成し、ＩｎｆｉｎｉＢａｎｄアダプタ２４およびＩｎｆｉｎｉＢａｎｄネットワーク４を介して、ターゲットとの間でメッセージの送受信をする。
【００２１】
（ブロック１１０で）イニシエータ・ノード２がＲＮＩＣアダプタまたはＩｎｆｉｎｉＢａｎｄアダプタ２４のネットワーキング層を介してリモート・ノードとのＲＤＭＡセッションを確立することを望まない場合、イニシエータ・ノード２は、ネゴシエーション接続を切断し、（ブロック１１２で）ＲＤＭＡ互換の他のターゲット・ノードを見つけることを試みる。そうでなく、（ブロック１１０で）ＲＤＭＡセッションが許容される場合は、（ブロック１１４で）ＳＤＰ層４２（ＩｎｆｉｎｉＢａｎｄアダプタ２４の場合）またはネットワーク層２８（ＲＮＩＣアダプタの場合）が、（ブロック１１４で）ターゲット・ノードからの応答を返し、引き続き、ＲＮＩＣネットワーキング層２８またはＳＤＰ層４２をトリガしてターゲットとの間で追加的なログイン要求とログイン応答メッセージを送受信するために、ｉＳＣＳＩ層がソケットＡＰＩを使用できるようにする。
【００２２】
図６に関して、ログイン・パラメータが設定されると、イニシエータｉＳＣＳＩ層１８は、（ブロック１１６で）ＲＮＩＣアダプタ２４の場合はネットワーキング層（例えばＴＣＰ）により、またはＩｎｆｉｎｉＢａｎｄアダプタの場合はＳＤＰ層４２によって扱われるソケット呼び出しを介して、ターゲット・ノードに最後のログイン要求ＰＤＵを送信する。（ブロック１１８で）ターゲットからの最後のログイン応答ＰＤＵを受信すると、ｉＳＣＳＩ層１８は、ｉＳＥＲプリミティブを使用してｉＳＥＲ層２２を呼び出し、自身のソケット情報ハンドル（ＲＮＩＣアダプタ２４の場合はネットワーキング層２８の制御構造、または、ＩｎｆｉｎｉＢａｎｄアダプタの場合はＳＤＰ  ＲＤＭＡ制御構造をポイントする）を渡す。ｉＳＥＲ層２２は、次いで（ブロック１２０で）、ソケット制御構造を引き継ぎ、ｉＳＥＲ／ＲＤＭＡ動作のためにその制御構造を設定および変更する。ＩｎｆｉｎｉＢａｎｄアダプタ２４の場合は、ｉＳＥＲ層２２は、ＳＤＰセッションを終了させ、ｉＳＥＲ層２２にＳＤＰによって使用されていたＲＤＭＡ通信チャネル（待ち行列のペア、完了待ち行列など）を所有および使用させる特別な呼び出しを（ブロック１２２で）発行する。そして、ｉＳＣＳＩ層は、ターゲット・ノードで以後行われるすべての通信についてＲＤＭＡを介してｉＳＥＲと（ブロック１２４で）通信する。
【００２３】
図７および８は、ターゲット・ノードのコンポーネントによって実施される動作を示し、ターゲット・ノードは、ＲＤＭＡを使用するためにイニシエータ・ノードに接続するノード２（図２）のアーキテクチャを有することができ、ターゲット・ノード２は、ＲＮＩＣアダプタまたはＩｎｆｉｎｉＢａｎｄアダプタ２４を含む。図２に関して説明したアーキテクチャを使用して、イニシエータ・ノードとターゲット・ノード両方のコンポーネントを説明する。図７に関して、ターゲット・ノードのｉＳＣＳＩ層２０は、（ブロック１５０で）ソケット呼び出しを介して、リッスンしているポートがイニシエータ・ノードからの接触を待つことを可能にする。ソケット層２０は、ＲＮＩＣアダプタ２４のネットワーキング層２８（例えばＴＣＰ）を使用するか、またはＩｎｆｉｎｉＢａｎｄネットワークを通じて通信するＩｎｆｉｎｉＢａｎｄアダプタの場合はＳＤＰ４２を使用することにより、この接触を可能にする。同じソケット・インタフェースを介してイニシエータ・ノードのｉＳＣＳＩ層１８からの接触があると（ブロック１５２）、ターゲット・ノードは、イニシエータ・ノードとネゴシエートして、ＲＤＭＡ接続に移る同意を得る。（ブロック１５４で）ＲＤＭＡ接続が承認されない場合は、ターゲット・ノードは、ネゴシエート接続を切断し、別の接続が確立されるまで（ブロック１５６で）待機し続ける。そうでなく、ＲＤＭＡ接続が承認される場合は、例えばＴＣＰなどのターゲット・ノードのＲＮＩＣのネットワーキング層２８、またはＳＤＰ層４２が、（ブロック１６０で）イニシエータ・ノードからの応答をソケットＡＰＩを介してｉＳＣＳＩ層１８に返し、引き続き、ｉＳＣＳＩ層がＲＮＩＣネットワーキング層またはＳＤＰ層をトリガしてイニシエータとの間で追加的なログイン要求とログイン応答メッセージを送受信できるようにする。ターゲットのｉＳＣＳＩ層１８は（ブロック１６２で）、イニシエータからの最後のログイン要求を受信すると、ｉＳＥＲプリミティブを使用してｉＳＥＲ層２２を呼び出し、自身のソケット情報ハンドル（ＲＮＩＣアダプタのネットワーキング層２８の制御構造またはＳＤＰ制御構造をポイントする）と最後のログイン応答メッセージを渡す。
【００２４】
図８に関して、ｉＳＣＳＩがｉＳＥＲ層２２を呼び出すと、ｉＳＥＲ層２２は（ブロック１６４で）接続を引き継ぎ、ｉＳＥＲのＲＤＭＡ通信チャネルを確立する。ＲＮＩＣアダプタ２４の場合の接続情報は、例えばＴＣＰなどのネットワーキング層２８が以前に確立した情報であり、ＩｎｆｉｎｉＢａｎｄアダプタ２４の場合の接続情報は、ＳＤＰ層４２によって作成され、使用されたＲＤＭＡ接続とデータ構造を含む。いずれの場合も、ＲＤＭＡ  ＲＮＩＣまたはＩｎｆｉｎｉＢａｎｄアダプタのデータ／制御構造は、ｉＳＥＲ／ＲＤＭＡ動作を可能にするように変更される。ＩｎｆｉｎｉＢａｎｄアダプタ２４の場合、ｉＳＥＲ層２２は、（ブロック１６６で）ＳＤＰセッションを終了させ、ＳＤＰ層４２からＲＤＭＡ通信を引き継ぐための特別な呼び出しを発行する。通信プロセスが（ブロック１６８で）完全にｉＳＥＲ  ＲＤＭＡモードに切り替わる前に、ターゲットｉＳＣＳＩからｉＳＥＲに送信された「最後の」ログイン応答ＰＤＵが、前の接続モード（例えばＴＣＰ／ＩあるいはＳＤＰ／ＩＢ）で送信される最後のメッセージとしてイニシエータに発行される。次いで、ｉＳＣＳＩ層は、ｉＳＥＲ層を通じて（ブロック１７０で）通信し、ｉＳＥＲ層は、イニシエータ・ノードとその後行われるすべての対話にＲＤＭＡを使用する。
【００２５】
図９に、ＳＣＳＩコマンドが完了し、「送信とともに無効化（send withinvalidate）メッセージ」を送信することが可能なＲＤＭＡアダプタを有するターゲット・ノードから「送信とともに無効化」を受信すると、イニシエータ・ノード２によって行われる動作を図示する。（ブロック２００で）「送信とともに無効化」メッセージを受信すると、「送信とともに無効化」をサポートする場合、アダプタ２４は、（ブロック２０２で）、メッセージで指定されたＳＴａｇ／Ｒ＿ｋｅｙを無効にし、ここでＳＴａｇはＲＤＭＡヘッダにある。イニシエータが「送信とともに無効化」をサポートしない場合は、ＩｎｆｉｎｉＢａｎｄアダプタ２４の場合に発生する可能性があるが、その場合、メッセージは、ｉＳＥＲ層２２に転送されて処理される。イニシエータｉＳＥＲ層２２は、（ブロック２０４で）応答ＰＤＵを受信し、メッセージのＩＴＴ５６（図３）にアクセスして、ＩＴＴ／ＳＴａｇマップ７０で、アクセスされるＩＴＴに関連付けられたＳＴａｇまたはＲ＿Ｋｅｙを判定する。（ブロック２０６で）「送信とともに無効化」メッセージの中のＳＴａｇ／Ｒ＿ＫｅｙがＩＴＴ／ＳＴａｇのマッピング７０にあるＳＴａｇ／Ｒ＿Ｋｅｙと一致し、かつイニシエータのアダプタが自動的な無効化をサポートする場合、イニシエータのｉＳＥＲ層２２は、（ブロック２０８で）アダプタによって無効にされなかったマッピング７０中のＩＴＴに関連付けられた追加的なＳＴａｇ／＃＿Ｋｅｙを無効にする。アダプタが自動的な無効化をサポートしない場合、または、「送信とともに無効化」の中のＳＴａｇ／Ｒ＿Ｋｅｙがマッピング７０にあるＳＴａｇ／Ｒ＿Ｋｅｙと一致しない場合、ｉＳＥＲ層２２は、（ブロック２１０で）、直接アダプタを呼び出して、ＳＴａｇ／Ｒ＿Ｋｅｙとマッピング７０のＩＴＴに関連付けられた追加的なＳＴａｇ／＃＿Ｋｅｙを無効にする。ｉＳＥＲ層２２は次いで（ブロック２１２で）ＳＣＳＩ応答ＰＤＵをｉＳＣＳＩ層１８に渡し、自身のＩＴＴ／ＳＴａｇ／＃＿Ｋｅｙマッピング・テーブル７０をクリアする。次いで、ｉＳＣＳＩ層１８は、ＳＣＳＩ層１６に、動作の完了ステータスを通知する。
【００２６】
図１０に、ＳＣＳＩコマンドが完了し、ＩｎｆｉｎｉＢａｎｄアダプタ２４を有するターゲット・ノードから「即値データとともに送信（send with immediate data）」メッセージを受信するときの、イニシエータ・ノード２によって行われる動作を図示する。イニシエータのアダプタ２４（ＩｎｆｉｎｉＢａｎｄまたはＲＮＩＣ）がターゲットのＩｎｆｉｎｉＢａｎｄアダプタから「即値データとともに送信」メッセージまたは「送信」メッセージを（ブロック２５０で）受信すると、そのメッセージは、イニシエータ・アダプタ２４により（ブロック２５２で）ｉＳＥＲ層２２に渡され、ｉＳＥＲ層はアダプタ２４を呼び出して、ある場合にはメッセージの「即値データ」部分にあるＲ＿Ｋｅｙを無効にする。そして、ｉＳＥＲ層２２は、アダプタ２４に、それまでに無効化されなかったマッピング７０のＩＴＴに関連付けられた＃＿Ｋｅｙ／ＳＴａｇを（ブロック２５４で）無効にする。ｉＳＥＲ層２２は、（ブロック２５６で）ｉＳＣＳＩ層１８にＳＣＳＩ応答ＰＤＵを伝達し、自身のＩＴＴ／ＳＴａｇ／＃＿Ｋｅｙ対応付けテーブル７０をクリアする。ｉＳＣＳＩ層１７は次いで、ＳＣＳＩ層１６に動作の完了ステータスを通知する。
【００２７】
プロトコル・ゲートウェイ
図１１、１２、１３、および１４に、どのようにゲートウェイ３０２、３２２、３５２、および３５４を使用してノード間でメッセージを転送することができるかを表す。各ゲートウェイ３０２、３２２、３５２、および３５４は、スイッチ、ルータなどのターゲットとイニシエータがそれを通じてメッセージを通信する、再送信を行うハードウェア・デバイスからなることができる。ゲートウェイ３０２、３２２、３５２、および３５４は、１つのプロトコルから別のプロトコルに送信される、イニシエータ・ノードとターゲット・ノード間で送信されるメッセージを処理するプロトコル・コンバータ３１４、３３４、３６２、および３６４を含む。あるいは、ゲートウェイ３０２は、ターゲット・ノードのハードウェアでインプリメントしても、イニシエータ・ノードのハードウェアでインプリメントしてもよい。ゲートウェイ３０２、３２２、３５２、および３５４はさらに、ＩｎｆｉｎｉＢａｎｄなどの１つのプロトコルのメッセージと、ｉＷＡＲＰなどの別のプロトコルのメッセージとの対応付けを提供するプロトコル・マッピング３１６、３３６、３５３、および３６５を含む。
【００２８】
図１１に、ｉＷＡＲＰを使用するｉＳＣＳＩ／ｉＳＥＲ３０６を実施し、ｉＷＡＰプロトコルを使用してメッセージを送信するＲＮＩＣ３１０を含むターゲット・ノード３００を図示する。ゲートウェイ３０２は、ＩｎｆｉｎｉＢａｎｄを使用するｉＳＣＳＩ／ｉＳＥＲプロトコル３０８を実施し、ＩｎｆｉｎｉＢａｎｄアダプタ３１２を有するイニシエータ・ノード３０４を宛先とするメッセージを、ｉＷＡＲＰネットワークのターゲット・ノード３００から受信する。プロトコル・コンバータ３１４は、ｉＷＡＲＰのメッセージを、ＩｎｆｉｎｉＢａｎｄアダプタ３１２と互換性のあるＩｎｆｉｎｉＢａｎｄプロトコルに準拠したメッセージに変換する。
【００２９】
図１２に、ＩｎｆｉｎｉＢａｎｄを使用するｉＳＣＳＩ／ｉＳＥＲ３２６を実施し、ＩｎｆｉｎｉＢａｎｄプロトコルを使用してメッセージを送信するＩｎｆｉｎｉＢａｎｄアダプタ３３０を含むターゲット・ノード３２０を図示する。ゲートウェイ３２２は、ｉＷＡＲＰを使用するｉＳＣＳＩ／ｉＳＥＲプロトコル３２８を実施し、ＲＮＩＣ３３２を有するイニシエータ・ノード３２４を宛先とするＩｎｆｉｎｉＢａｎｄのメッセージを、ターゲット・ノード３２０から受信する。プロトコル・コンバータ３３４は、ＩｎｆｉｎｉＢａｎｄのメッセージを、ｉＷＡＲＰプロトコルを使用して動作するＲＮＩＣアダプタ３３２と互換性のあるｉＷＡＲＰプロトコルに準拠したメッセージに変換する。
【００３０】
図１３は、ゲートウェイ３５２と３５４が協働して、中間にあるｉＷＡＲＰネットワークで送信するためにメッセージを変換しながら、ターゲット・ノード３５０からのｉＳＥＲ／ＩＢメッセージをイニシエータ・ノード３５６に配信する実施形態を図示する。ターゲット３５０からＩｎｆｉｎｉＢａｎｄのメッセージを受信したターゲット・ゲートウェイ３５２は、そのメッセージを、ｉＷＡＲＰプロトコルと互換性のあるフォーマットに変換し、変換したメッセージをｉＷＡＲＰネットワークのイニシエータ・ゲートウェイ３５４に送信する。ｉＷＡＲＰメッセージをターゲット・ゲートウェイ３５２から受信したイニシエータ・ゲートウェイ３５４は、メッセージを、イニシエータ・ノード３５６で使用されるＩｎｆｉｎｉＢａｎｄプロトコルと互換性のあるフォーマットに変換してから、変換したメッセージをイニシエータ・ノード３５６に送信する。このようにして、ゲートウェイ３５２と３５４を使用して、ＩｎｆｉｎｉＢａｎｄプロトコルを使用し、ＩｎｆｉｎｉＢａｎｄ３５８、３６６を使用するｉＳＣＳＩ／ｉＳＥＲとＩｎｆｉｎｉＢａｎｄアダプタ３６０、３６８とを含む２つのノード３５０と３５６の間で、ｉＷＡＲＰネットワークを通じて送信するためにメッセージを変換する。さらに、代替実施形態では、イニシエータ・ノードとターゲット・ノード間には、可能な種々の通信プロトコルで使用するためにメッセージの任意数の変換を行うゲートウェイがいくつあってもよい。
【００３１】
図１４は、２つのゲートウェイ３７２と３７４が協働して、中間にあるＩｎｆｉｎｉＢａｎｄネットワークで送信するためにメッセージを変換しながら、ターゲット・ノード３７０からのｉＳＥＲ／ｉＷＡＲＰメッセージをイニシエータ・ノード３７６に伝達する実施形態を示す。ターゲット・ノード３７０からｉＷＡＲＰメッセージを受信したターゲット・ゲートウェイ３７２は、そのメッセージを、ＩｎｆｉｎｉＢａｎｄプロトコルと互換性のあるフォーマットに変換し、変換したメッセージをＩｎｆｉｎｉＢａｎｄネットワーク上のイニシエータ・ゲートウェイ３７４に送信する。ターゲット・ゲートウェイ３７２からＩｎｆｉｎｉＢａｎｄメッセージを受信したイニシエータ・ゲートウェイ３７４は、そのメッセージを、イニシエータ・ノード３７６で使用されるｉＷＡＲＰプロトコルと互換性のあるフォーマットに変換し、変換したメッセージをｉＷＡＲＰネットワークでイニシエータ３７６に送信する。このようにして、ゲートウェイ３７２と３７４を使用して、ｉＷＡＲＰプロトコルを使用し、ｉＷＡＲＰを使用するｉＳＣＳＩ／ｉＳＥＲ３７８、３９０とｉＷＡＲＰアダプタ３８０、３９２とを含む２つのノード３７０と３７６の間で、ＩｎｆｉｎｉＢａｎｄネットワークを通じて送信するためにメッセージを変換する。さらに、代替実施形態では、可能な種々の通信プロトコルで使用するためにメッセージの任意数の変換を行うゲートウェイがイニシエータ・ノードとターゲット・ノードの間にいくつあってもよい。
【００３２】
図１１、１２、１３、および１４は、ターゲット・ノードからイニシエータ・ノードへのメッセージの流れを示す。ただし、このメッセージ・フローは、イニシエータ・ノードからターゲット・ノードに進行しても、または、任意の２タイプのノード間で進行することができる。例えば、図１３のゲートウェイ３５２と３５４をこの点で繰り返すことができ、図１４のゲートウェイ３７２および３７４を繰り返すことができる。
【００３３】
図１５、１６、および１７は、メッセージの送信元のノードで使用されるプロトコルと異なるプロトコルをインプリメントしてメッセージを送信するノードで使用されるフォーマットから、メッセージを受信するノードと互換性のあるフォーマットにメッセージを変換するためにプロトコル・コンバータ３１４（図１１）、３３４（図１２）、３６２（図１３）、３６４、３８２（図１４）および３８６によって行われる動作を示す。図１５に関して、プロトコル・コンバータ３１４、３３４、３６２、３８２、および３８６（ゲートウェイ）は、（ブロック４００で）ターゲット・ノードから（または別のゲートウェイ・ノードを介してターゲット・ノードから）ｉＳＣＳＩ／ｉＳＥＲメッセージを受信する。（ブロック４０２で）メッセージの送信元がｉＳＥＲ／ｉＷＡＲＰを使用するターゲット・ノード（またはターゲットからのゲートウェイ）であり、かつ（ブロック４０８で）ｉＷＡＲＰのメッセージ・タイプがそれに相当するＩｎｆｉｎｉＢａｎｄメッセージに対応する場合、プロトコル・コンバータ３１４、３６４、または３８２は、（ブロック４１０で）ｉＷＡＲＰメッセージをそれに相当するＩｎｆｉｎｉＢａｎｄメッセージに変換し、変換したＩｎｆｉｎｉＢａｎｄメッセージを、ＩｎｆｉｎｉＢａｎｄネットワークを通じて、例えば３０４、３５６などのイニシエータ・ノード（または後にあるゲートウェイ）に転送する。プロトコル・マッピング３１６、３３６、３５３、３６５、３８４、および３８８は、例えばＩｎｆｉｎｉＢａｎｄとｉＷＡＲＰなど異なるフォーマットの対応するメッセージの対を、プロトコル・コンバータ３１４、３３４、３６２、３６４、３８２、および３８６に提供することができ、プロトコル・コンバータは、ｉＷＡＲＰからＩｎｆｉｎｉＢａｎｄへの（およびＩｎｆｉｎｉＢａｎｄからｉＷＡＲＰへの）メッセージ・タイプの対応付けを保持することができ、プロトコル・マッピングは、あるプロトコル・フォーマットのメッセージがどのように変換され、もう一方のプロトコル・フォーマットに対応するかを示す。（ブロック４０８で）ｉＷＡＲＰのメッセージ・タイプが、それに相当するＩｎｆｉｎｉＢａｎｄのメッセージに対応せず、かつ（ブロック４１２で）メッセージが、ＳＴａｇを有するｉＷＡＲＰの「送信とともに無効化」メッセージでない場合は、そのような変換はプロトコル・コンバータ３１４、３６４、３８２によって扱われないので、プロトコル・コンバータ３１４、３６４、または３８２は、（ブロック４１４で）そのメッセージを廃棄し、エラーを投げる。
【００３４】
（ブロック４１２で）メッセージが、ＳＴａｇを有するｉＷＡＲＰの「送信とともに無効化メッセージ」である場合は、プロトコル・コンバータ３１４、３６４、または３８２は、（ブロック４１６で）ＩｎｆｉｎｉＢａｎｄの「要求されるイベントを伴う（または伴わずに）送信」メッセージを作成する。プロトコル・コンバータ３１４、３６４、または３８２は、（ブロック４１８で）、ｉＷＡＲＰメッセージからＩｎｆｉｎｉＢａｎｄメッセージの即値データ・フィールドに、ターゲットまたはイニシエータ中のメモリ位置への直接の参照を参照するＳＴａｇを追加する（あるいは、ＳＴａｇを破棄し、即値データなしで送信する準備をする）。プロトコル・コンバータ３１４、３６４、または３８２は、（ブロック４２０で）、変換されたメッセージをＩｎｆｉｎｉＢａｎｄネットワークを通じてイニシエータ（またはその後にあるゲートウェイ）に送信する。ブロック４１０または４２０から、コントロールはブロック４２２に進み、ここで、後にゲートウェイがある場合は、そのようなゲートウェイが図１６のブロック４４０からの動作を行うことによりｉＳＥＲ／ＩＢメッセージをｉＳＥＲ／ｉＷＡＲＰに変換する。
【００３５】
（ブロック４０２で）ターゲット・ノードからのメッセージがＩｎｆｉｎｉＢａｎｄプロトコルであった場合は、コントロールは、図１６のブロック４４０に進む。（ブロック４４０で）送信がイニシエータに到達する前にｉＷＡＲＰネットワークを通じて例えばゲートウェイ３５２などのゲートウェイに続いており、かつ（ブロック４４２で）ＩｎｆｉｎｉＢａｎｄのメッセージ・タイプが、プロトコル・マッピング３５３にあるそれに相当するｉＷＡＲＰメッセージに対応する場合は、プロトコル・コンバータ３６２は、（ブロック４４４で）ＩｎｆｉｎｉＢａｎｄメッセージをそれに相当するｉＷＡＲＰメッセージに変換し、変換したメッセージをｉＷＡＲＰを通じて次のゲートウェイ３５４に転送する。（ブロック４４２で）ＩｎｆｉｎｉＢａｎｄのメッセージ・タイプが、プロトコル・マッピング３５３でそれに相当するｉＷＡＲＰメッセージに対応せず、かつ（ブロック４４６で）メッセージがＩｎｆｉｎｉＢａｎｄの「即値データとともに送信」メッセージでない場合は、（ブロック４４８で）エラーが投げられ、メッセージが廃棄される。
【００３６】
（ブロック４４６で）メッセージがＩｎｆｉｎｉＢａｎｄの「即値データと共に送信」メッセージである場合は、プロトコル・コンバータ３６２は、（ブロック４５０で）ｉＷＡＲＰの「送信とともに無効化」（要求されるイベントを伴う）メッセージを作成し、（ブロック４５２で）ＩｎｆｉｎｉＢａｎｄメッセージの即値データ・フィールドのＲ＿Ｋｅｙを、ｉＷＡＲＰの「送信とともに無効化メッセージ」のＳＴａｇフィールドに追加する（あるいは、Ｒ＿Ｋｅｙ（即値データ）を破棄し、ＳＴａｇなしの送信メッセージを準備する）。プロトコル・コンバータ３６２は、（ブロック４５４で）変換したメッセージを図１３に示すようにｉＷＡＲＰネットワークを通じてゲートウェイ３５４に送信する。ブロック４５４または４４４以降は、その後にあるゲートウェイが、ブロック４００からの動作を行うことにより、ｉＳＥＲ／ｉＷＡＲＰメッセージをｉＳＥＲ／ＩｎｆｉｎｉＢａｎｄメッセージに変換することができる。
【００３７】
（ブロック４４０で）、ターゲット・ノードからのＩｎｆｉｎｉＢａｎｄの送信がイニシエータ・ノードに到達する前にｉＷＡＲＰネットワークを通じてゲートウェイに続かない場合、（すなわちＩｎｆｉｎｉＢａｎｄメッセージが、それぞれ図１２および図１４に示すように、ｉＷＡＲＰネットワーク上のゲートウェイ３２２または３７４を通じて直接イニシエータ３２４または３７６に進行する場合）、コントロールは図１７のブロック４８０に進む。（ブロック４８０で）ＩｎｆｉｎｉＢａｎｄのメッセージ・タイプがそれに相当するｉＷＡＲＰのメッセージに対応する場合、プロトコル・コンバータ３３４または３８６は、（ブロック４８６で）ＩｎｆｉｎｉＢａｎｄのメッセージをそれに相当するｉＷＡＲＰメッセージに変換し、ｉＷＡＲＰを通じてイニシエータに転送する。（ブロック４８０で）ＩｎｆｉｎｉＢａｎｄのメッセージ・タイプがプロトコル・マッピング３３６または３８８でそれに対応するｉＷＡＲＰメッセージに対応せず、（ブロック４８８で）メッセージがＩｎｆｉｎｉＢａｎｄの「即値データとともに送信」メッセージでない場合は、（ブロック４９０で）エラーが投げられ、メッセージが廃棄される。
【００３８】
（ブロック４８８で）メッセージがＩｎｆｉｎｉＢａｎｄの「即値データとともに送信」メッセージである場合は、プロトコル・コンバータ３３４または３８６は、（ブロック４９２で）ｉＷＡＲＰの「送信とともに無効化」（要求されるイベントを伴う）メッセージを作成し、（ブロック４９４で）ＩｎｆｉｎｉＢａｎｄメッセージの即値データ・フィールドのＲ＿Ｋｅｙを、ｉＷＡＲＰの「送信とともに無効化」メッセージのＳＴａｇフィールドに加える（あるいは、Ｒ＿Ｋｅｙ（即値データ）を破棄し、ＳＴａｇなしで送信メッセージを準備する）。プロトコル・コンバータ３３４または３８６は、（ブロック４９６で）変換されたメッセージを図１２または１４に示すようなｉＷＡＲＰネットワークを通じてイニシエータ・ノードに送信する。
【００３９】
ここに記載される実施形態は、メッセージを処理し、必要な場合は受信側のノードで使用される通信プロトコルと互換性のあるフォーマットに変換することにより、異なる通信プロトコルを使用するネットワーク間でメッセージを送信できるようにする技術を提供する。
【００４０】
追加的な実施形態の詳細
本明細書に記載される実施形態は、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組み合わせを作製する標準的なプログラミング技術またはエンジニアリング技術あるいはその両方を使用して、方法、装置、またはプログラムとして実施することができる。本明細書で使用される用語「プログラム」は、ハードウェア・ロジック（例えば集積回路チップ、プログラマブル・ゲート・アレイ（ＰＧＡ）、特定用途集積回路（ＡＳＩＣ）など）、または、磁気記憶媒体（ハードディスク・ドライブ、フロッピー・ディスク、テープなど）、光学ストレージ（ＣＤ−ＲＯＭ、光ディスクなど）、揮発性および不揮発性のメモリ装置（ＥＥＰＲＯＭ、ＲＯＭ、ＰＲＯＭ、ＲＡＭ、ＤＲＡＭ、ＳＲＡＭ、ファームウェア、プログラマブル・ロジックなど）などのコンピュータ可読媒体にインプリメントされたコードまたはロジックを意味する。コンピュータ可読媒体中のコードは、プロセッサによってアクセスされ、実行される。好ましい実施形態がインプリメントされるコードは、さらに、伝送媒体を通じて、またはネットワークを通じてファイル・サーバからアクセスすることができる。そのような場合、コードが実施されたプログラムは、ネットワーク伝送線、無線送信媒体、空間を伝播する信号、電波、赤外線信号などを通じて伝搬する信号などの伝送媒体からなることができる。したがって、「プログラム」は、コードが具現化された媒体からなることができる。また、「プログラム」は、コードが具現化され、処理、および実行されるハードウェア・コンポーネントとソフトウェア・コンポーネントの組み合わせからなることもできる。言うまでもなく、当業者は、本発明の範囲から逸脱せずにこの構成に多くの変更を加えてよく、プログラムは、当技術分野で知られる情報担持媒体からなってよいことを理解されよう。
【００４１】
ここに記載される動作は、回路によって行うことができ、「回路」とは、ハードウェアまたはソフトウェア、またはそれらの組み合わせを指す。ここに記載される実施形態の動作を行う回路は、集積回路チップ、プログラマブル・ゲート・アレイ（ＰＧＡ）、特定用途集積回路（ＡＳＩＣ）などのハードウェア・デバイスからなることができる。回路は、集積回路などのプロセッサ・コンポーネントと、メモリなどのコンピュータ可読媒体中のコードからなることもでき、そのコードがプロセッサによって実行されて、ここに記載される実施形態の動作が行われる。
【００４２】
ここに記載される実施では、物理層は、イーサネット・プロトコルを利用した。代替の実施では、ＳＡＴＡ（Serial Advanced Technology Attachment）、ＩｎｆｉｎｉＢａｎｄ、シリアル接続ＳＣＳＩケーブルなど、パケットのリンク間のチェックサム確認／ＣＲＣ（または他のデータ検出方式）を提供する代替のプロトコルをイーサネットの代わりに使用することができる。
【００４３】
ここに記載される実施では、トランスポート層は、ｉＳＣＳＩプロトコルからなった。代替の実施では、パケットでＩ／Ｏコマンドを送信し、終端間のチェックサム確認／ＣＲＣ（または他のデータ検出方式）を提供する、当技術分野で知られる他のプロトコルを使用してよい。
【００４４】
ここに記載される実施では、パッケージされたＩ／Ｏコマンドは、ＳＣＳＩコマンドからなった。代替の実施では、このコマンドは、ＡＴＡ（Advanced Technology Attachment）など、ＳＣＳＩとは異なるＩ／Ｏコマンド・フォーマットとすることができる。
【００４５】
ここに記載される実施形態では、ｉＳＣＳＩ層がｉＳＥＲ層に呼び出しを行って、ＲＤＭＡデータ転送機能にアクセスした。追加的な実施形態では、アプリケーションまたは他のデータ転送プロトコルなどのｉＳＣＳＩ以外のデータ転送プロトコル層が、ｉＳＥＲ層を呼び出してＲＤＭＡデータ転送機能にアクセスすることができる。
【００４６】
代替実施形態では、ＩＰ  ｏｖｅｒ  ＩｎｆｉｎｉＢａｎｄプロトコル（信頼性のある接続−ＲＣ）をＳＤＰの代わりに使用して、ＩｎｆｉｎｉＢａｎｄネットワークを介して、ＴＣＰなどのプロトコルを使用して符号化されたパケットを送信することができる。ＩＰ  ｏｖｅｒ  ＩｎｆｉｎｉＢａｎｄプロトコル（信頼性のある接続−ＲＣ）についてのさらなる詳細は、文献：ＩＥＴＦにより「draft-kashyap-ipoib-connected-mode-01.txt」として公表された「ＩＰ  ｏｖｅｒ  ＩｎｆｉｎｉＢａｎｄ：接続モード」２００３年９月に記載される。同文献は、参照により全体が本明細書に組み込まれる。例えば、ＳＤＰ層を代わりにＩＰｏＩＢ（ＲＣ）実装の最上位にレイヤ化されたＴＣＰスタックに替えることができ、そのＴＣＰ／ＩＰｏＩＢの組み合わせのいずれの部分をノード２のソフトウェア中またはアダプタ２４に配置することができる。そのような実施形態では、ＩＰｏＩＢ（ＲＣ）機能は、必要に応じてＩＰｏＩＢ（ＲＣ）の仕様に従ってＲＤＭＡ層２６を呼び出すことができる。
【００４７】
追加的な実施形態では、ＳＣＴＰ（Stream ControlTransmission Protocol）など、ＴＣＰ以外のプロトコルを使用してＩＰ対応ネットワークを通じてパケットを送信することができる。ＳＣＴＰは、文献ＲＦＣ２９６０「ストリーム制御伝送プロトコル」（Ｉｎｔｅｒｎｅｔ  Ｓｏｃｉｅｔｙ，２０００年）に定義され、同文献は、参照により全体が本明細書に組み込まれる。
【００４８】
図５、６、７、８、９、および１０は、特定の順序で行われる具体的な動作を記載する。代替の実施では、特定の動作は、異なる順序で行っても、変更または除去してもよい。さらに、上記のロジックにステップを加えてもよく、なおここに記載される実施に準拠する。さらに、本明細書に記載される動作は、連続的に行っても、特定の動作を並行して処理してもよい。さらに、動作は、１つの処理装置によって行っても、分散した処理装置によって行ってもよい。
【００４９】
上記の実施の説明は、例示と説明のために提示された。この説明は、完全なものではなく、また本発明をここに開示される通りの形態に限定するものでもない。上記の教示に照らして多くの変更と変種が可能である。本発明の範囲は、この詳細な説明ではなく、頭記の特許請求の範囲によって限定されるものとする。上記の詳細な説明、例、およびデータは、本発明の構成の製造と使用についての完全な説明を提供する。本発明の主旨および範囲内で本発明の多くの実施をなすことができるので、本発明は、頭記の特許請求の範囲に存する。
【図面の簡単な説明】
【００５０】
【図１】諸実施形態が実施されるネットワーク・ノードの例を示す図である。
【図２】ここに記載される実施形態によるコンピューティング・アーキテクチャの例の図である。
【図３】パケット・フォーマットの図である。
【図４】マッピングに保持される情報である。
【図５】諸実施形態によりデータを転送するために行われる動作を説明する図である。
【図６】諸実施形態によりデータを転送するために行われる動作を説明する図である。
【図７】諸実施形態によりデータを転送するために行われる動作を説明する図である。
【図８】諸実施形態によりデータを転送するために行われる動作を説明する図である。
【図９】諸実施形態によりデータを転送するために行われる動作を説明する図である。
【図１０】諸実施形態によりデータを転送するために行われる動作を説明する図である。
【図１１】ゲートウェイを含む実施形態を説明する図である。
【図１２】ゲートウェイを含む実施形態を説明する図である。
【図１３】ゲートウェイを含む実施形態を説明する図である。
【図１４】ゲートウェイを含む実施形態を説明する図である。
【図１５】メッセージを処理し、転送するためにゲートウェイで行われる動作を説明する図である。
【図１６】メッセージを処理し、転送するためにゲートウェイで行われる動作を説明する図である。
【図１７】メッセージを処理し、転送するためにゲートウェイで行われる動作を説明する図である。
【符号の説明】
【００５１】
２ａ  コンピューティング・ノード
２ｂ  コンピューティング・ノード
２ｃ  コンピューティング・ノード
４  ネットワーク
６  プロセッサ
８  オペレーティング・システム
１４  アプリケーション
１８  ｉＳＣＳＩ層
２０  ソケット層
２２  ｉＳＥＲ層
２４  アダプタ
２６  ＲＤＭＡ層
２８  ネットワーク層
３０  メモリ
３２  メモリ領域
３４  メモリ変換テーブル
３６  送信待ち行列
３８  受信待ち行列
４０  完了待ち行列
４２  ＳＤＰ層
４４  アダプタ・ドライバ（ＲＤＭＡｖｅｒｂ層）
５０  コマンド
５２  ＰＤＵ
５４  ヘッダ
５６  ＩＴＴ
６０  ネットワーク層
７０  マップ
７２  エントリ
３００  ターゲット・ノード
３７０  ターゲット・ノード
３０４  イニシエータ・ノード
３７６  イニシエータ・ノード
３０２  ゲートウェイ
３２２  ゲートウェイ
３５２  ゲートウェイ
３５４  ゲートウェイ
３７２  ゲートウェイ
３７４  ゲートウェイ
３１２  アダプタ
３８０  アダプタ
３９２  アダプタ
３１４  プロトコル・コンバータ
３３４  プロトコル・コンバータ
３６２  プロトコル・コンバータ
３６４  プロトコル・コンバータ
３１６  プロトコル・マッピング
３３６  プロトコル・マッピング
３５３  プロトコル・マッピング
３６５  プロトコル・マッピング
【図１】
2006033854.tif 000003
【図２】
2006033854.tif 000004
【図３】
2006033854.tif 000005
【図４】
2006033854.tif 000006
【図５】
2006033854.tif 000007
【図６】
2006033854.tif 000008
【図７】
2006033854.tif 000009
【図８】
2006033854.tif 000010
【図９】
2006033854.tif 000011
【図１０】
2006033854.tif 000012
【図１１】
2006033854.tif 000013
【図１２】
2006033854.tif 000014
【図１３】
2006033854.tif 000015
【図１４】
2006033854.tif 000016
【図１５】
2006033854.tif 000017
【図１６】
2006033854.tif 000018
【図１７】
2006033854.tif 000019