JP2006074769A - ネットワークのポートマッピング用システム - Google Patents
ネットワークのポートマッピング用システム Download PDFInfo
- Publication number
- JP2006074769A JP2006074769A JP2005244227A JP2005244227A JP2006074769A JP 2006074769 A JP2006074769 A JP 2006074769A JP 2005244227 A JP2005244227 A JP 2005244227A JP 2005244227 A JP2005244227 A JP 2005244227A JP 2006074769 A JP2006074769 A JP 2006074769A
- Authority
- JP
- Japan
- Prior art keywords
- port
- service
- peer
- port mapping
- message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Bus Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】 アプリケーションによって指定されたターゲットサービスポートを、トランスペアレント通信に対応するサービスポートへマッピングする。
【解決手段】 エンドノード内のサービスポートの1つは、アプリケーショントランスペアレント通信プロトコルに対応するデバイスを含む。動作時に、アプリケーションによって開始されて、ターゲットサービスポートおよびこれからアクセス可能なターゲットサービスを指定するポートマッピング要求が、エンドノードの1つにより受信される。ターゲットサービスが実行されるエンドノードの特徴を記述した1組の入力パラメータがアクセスされる。エンドノードの特徴に基づき、ターゲットサービスへのアクセスに使用可能な上記デバイスを示す出力データが提供され、ターゲットサービスポートの上記デバイスに関連したサービスポートへのマッピングが可能になる。
【選択図】図2
【解決手段】 エンドノード内のサービスポートの1つは、アプリケーショントランスペアレント通信プロトコルに対応するデバイスを含む。動作時に、アプリケーションによって開始されて、ターゲットサービスポートおよびこれからアクセス可能なターゲットサービスを指定するポートマッピング要求が、エンドノードの1つにより受信される。ターゲットサービスが実行されるエンドノードの特徴を記述した1組の入力パラメータがアクセスされる。エンドノードの特徴に基づき、ターゲットサービスへのアクセスに使用可能な上記デバイスを示す出力データが提供され、ターゲットサービスポートの上記デバイスに関連したサービスポートへのマッピングが可能になる。
【選択図】図2
Description
本発明は、ネットワークのポートマッピング用システムに関する。
通信ネットワークのポートマッピングは、アプリケーションが指定したターゲットサービスポートを、そのアプリケーションにトランスペアレントなプロトコルを使用してアドレス指定できる関連したサービスポートへ変換することとして定義することができる。
リモートアプリケーションと通信したいローカルアプリケーションは、リモートアプリケーションをアドレス指定する方法を知る必要があり、また、リモートアプリケーションが実行されているシステムのネットワークアドレス(例えば、IPアドレス)も知る必要がある。
これは、サービスポート、すなわち、リモートシステムで実行されているアプリケーションを一意に特定するNビット識別子(TCP等の下位レベルプロトコルは16ビット数を使用する)を指定することによって行われる。
リモートアプリケーションと通信したいローカルアプリケーションは、リモートアプリケーションをアドレス指定する方法を知る必要があり、また、リモートアプリケーションが実行されているシステムのネットワークアドレス(例えば、IPアドレス)も知る必要がある。
これは、サービスポート、すなわち、リモートシステムで実行されているアプリケーションを一意に特定するNビット識別子(TCP等の下位レベルプロトコルは16ビット数を使用する)を指定することによって行われる。
サービスポートは、ネットワークにおいて接続を確立する目的でアプリケーション(例えば、ソケットアプリケーション)によって使用されるリスンポートである。
ソケットインターフェースは、通常、TCP/IPネットワーキングサービスにアクセスして、他のホストで実行されているプロセスへの接続を作成するのに使用されるデファクトAPI(アプリケーションプログラミングインターフェース)である。
ソケットAPIによって、アプリケーションは、ホストのポートおよびIPアドレスとバインドすることが可能になる。
ソケットインターフェースは、通常、TCP/IPネットワーキングサービスにアクセスして、他のホストで実行されているプロセスへの接続を作成するのに使用されるデファクトAPI(アプリケーションプログラミングインターフェース)である。
ソケットAPIによって、アプリケーションは、ホストのポートおよびIPアドレスとバインドすることが可能になる。
しかしながら、ポートアドレス空間は、一般に、IPアドレス当たり16ビットに限られており、RDMA(リモートダイレクトメモリアクセス)を使用するネットワークプロトコルの場合、ソケットアプリケーションの「リスン」オペレーションは、2つのリスンポートを必要とする。
1つはRDMA対応でないクライアント用の非RDMAポートであり、1つはRDMA対応のRDMAポートである。
したがって、RDMAをベースとしたプロトコルを使用すると、非RDMAリスンポートおよびRDMAリスンポートを複製することが必要となるために、限られたポート空間が消費される(したがって、有効なポート空間が縮小される)おそれがある。
上述したタイプのシステムに関係したさらに別の問題には、アプリケーションが適切なRDMAポートを発見することを可能にするポートマッピングメカニズムが必要になることが含まれ、また、ポートマッパサービスロケーションを決定する必要があること、すなわち、ポートマッピングワイヤプロトコル交換を実行するターゲットへのポートを決定する必要があることも含まれる。
1つはRDMA対応でないクライアント用の非RDMAポートであり、1つはRDMA対応のRDMAポートである。
したがって、RDMAをベースとしたプロトコルを使用すると、非RDMAリスンポートおよびRDMAリスンポートを複製することが必要となるために、限られたポート空間が消費される(したがって、有効なポート空間が縮小される)おそれがある。
上述したタイプのシステムに関係したさらに別の問題には、アプリケーションが適切なRDMAポートを発見することを可能にするポートマッピングメカニズムが必要になることが含まれ、また、ポートマッパサービスロケーションを決定する必要があること、すなわち、ポートマッピングワイヤプロトコル交換を実行するターゲットへのポートを決定する必要があることも含まれる。
複数のエンドノードを含むネットワークにおいて、アプリケーションによって指定されたターゲットサービスポートを、アプリケーショントランスペアレント通信に対応する、機能強化されたサービスポートへマッピングするシステムおよび方法が開示される。
エンドノード内のサービスポートの少なくとも1つは、アプリケーショントランスペアレント通信プロトコルに対応するトランスペアレントプロトコル対応のデバイスを含む。
エンドノード内のサービスポートの少なくとも1つは、アプリケーショントランスペアレント通信プロトコルに対応するトランスペアレントプロトコル対応のデバイスを含む。
動作時に、アプリケーションによって開始されて、ターゲットサービスポートおよび当該ポートからアクセス可能なターゲットサービスを指定するポートマッピング要求が、エンドノードの1つにおいて受信される。
次に、ターゲットサービスが実行されるエンドノードの特徴を記述した1組の入力パラメータがアクセスされる。
次に、エンドノードの特徴に基づいた、ターゲットサービスにアクセスするのに使用できるトランスペアレントプロトコル対応のデバイスを示す出力データが提供され、それによって、ターゲットサービスポートを、トランスペアレントプロトコル対応のデバイスに関連した機能強化されたサービスポートへマッピングすることが可能になる。
次に、ターゲットサービスが実行されるエンドノードの特徴を記述した1組の入力パラメータがアクセスされる。
次に、エンドノードの特徴に基づいた、ターゲットサービスにアクセスするのに使用できるトランスペアレントプロトコル対応のデバイスを示す出力データが提供され、それによって、ターゲットサービスポートを、トランスペアレントプロトコル対応のデバイスに関連した機能強化されたサービスポートへマッピングすることが可能になる。
[定義]
エンドノード:サービスを提供するのに使用されるあらゆるクラスのデバイスであり、例えば、サーバ、クライアント、ストレージアレイ、電気機器、PDA等である。
2つのエンドノードは、各エンドノードのポート間の論理接続を介して互いに通信する。
ポート:ポートは、論理接続の端部を指定するものであり、ネットワーク上を送信されるメッセージの宛先アドレスの最終部分である。
例えば、TCP環境では、ネットワークを介して送信されるあらゆるパケットが、パケット自身の送信元アドレスおよび宛先アドレスを運ぶ。
接続は、TCP接続を含めて、或るIPアドレスの特定のポートから別のIPアドレスの特定のポートへ行われる。
したがって、あらゆるTCP接続は、アドレス1、ポート1、アドレス2、ポート2の4タプルによって一意に特定される。
ここで、各アドレスはIPアドレスであり、各ポートは16ビット数である。
ポートマッピング:アプリケーションが指定したターゲットサービスポートの、関連したRDMA対応のサービスポートへのアプリケーショントランスペアレントな変換である。
サービスポートは、この文書では、接続を確立する目的でソケットアプリケーションによって使用されるリスンポートである。
ポートマッパプロトコル:ポートマッピングサービスプロバイダとクライアントとの間でポートマッピング情報を通信するのに使用されるワイヤプロトコルである。
クライアントは、PMクライアントであってもよいし、接続ピア(connecting peer)であってもよい。
接続ピア:(CP)接続確立要求を送信するピアである。
接続ピアは、ポートマッパプロトコルの状況で使用される場合、接続ピアの代わりに動作する管理エージェントとすることもできる。
受諾ピア:(AP(accepting peer))接続確立中に接続確立要求に対する応答を送信するピアである。
PMクライアント:接続ピアの代わりにポートマッパプロトコルを実施する。
PMクライアントは、CPと同じ場所に配置されてもよいし、複数の潜在的なCPに対して分散されてもよい。
PMSP:ポートマッピングサービスプロバイダである。
受諾ピアに関連付けられた管理エージェントであり、ポートマッピング機能を実施する役割を担当する。
PMSPは、ソケットダイレクトプロトコル(SDP)のリスンポートおよびIPアドレス(例えば、RDMAアドレス)がもしあれば、それらを返す。
接続ピアは、それらリスンポートおよびIPアドレスを使用して、指定された受諾ピアとのRDMAをベースとした接続を確立することができる。
ポリシー管理エージェント:通常、ソフトウェアで実施されるエンティティであり、ポリシー管理オペレーションを実行するエンティティである。
PMAは、ポートマッピングポリシーを実施し、例えば、PMSPと協力してポートマッピング機能を実行する。
エンドノード:サービスを提供するのに使用されるあらゆるクラスのデバイスであり、例えば、サーバ、クライアント、ストレージアレイ、電気機器、PDA等である。
2つのエンドノードは、各エンドノードのポート間の論理接続を介して互いに通信する。
ポート:ポートは、論理接続の端部を指定するものであり、ネットワーク上を送信されるメッセージの宛先アドレスの最終部分である。
例えば、TCP環境では、ネットワークを介して送信されるあらゆるパケットが、パケット自身の送信元アドレスおよび宛先アドレスを運ぶ。
接続は、TCP接続を含めて、或るIPアドレスの特定のポートから別のIPアドレスの特定のポートへ行われる。
したがって、あらゆるTCP接続は、アドレス1、ポート1、アドレス2、ポート2の4タプルによって一意に特定される。
ここで、各アドレスはIPアドレスであり、各ポートは16ビット数である。
ポートマッピング:アプリケーションが指定したターゲットサービスポートの、関連したRDMA対応のサービスポートへのアプリケーショントランスペアレントな変換である。
サービスポートは、この文書では、接続を確立する目的でソケットアプリケーションによって使用されるリスンポートである。
ポートマッパプロトコル:ポートマッピングサービスプロバイダとクライアントとの間でポートマッピング情報を通信するのに使用されるワイヤプロトコルである。
クライアントは、PMクライアントであってもよいし、接続ピア(connecting peer)であってもよい。
接続ピア:(CP)接続確立要求を送信するピアである。
接続ピアは、ポートマッパプロトコルの状況で使用される場合、接続ピアの代わりに動作する管理エージェントとすることもできる。
受諾ピア:(AP(accepting peer))接続確立中に接続確立要求に対する応答を送信するピアである。
PMクライアント:接続ピアの代わりにポートマッパプロトコルを実施する。
PMクライアントは、CPと同じ場所に配置されてもよいし、複数の潜在的なCPに対して分散されてもよい。
PMSP:ポートマッピングサービスプロバイダである。
受諾ピアに関連付けられた管理エージェントであり、ポートマッピング機能を実施する役割を担当する。
PMSPは、ソケットダイレクトプロトコル(SDP)のリスンポートおよびIPアドレス(例えば、RDMAアドレス)がもしあれば、それらを返す。
接続ピアは、それらリスンポートおよびIPアドレスを使用して、指定された受諾ピアとのRDMAをベースとした接続を確立することができる。
ポリシー管理エージェント:通常、ソフトウェアで実施されるエンティティであり、ポリシー管理オペレーションを実行するエンティティである。
PMAは、ポートマッピングポリシーを実施し、例えば、PMSPと協力してポートマッピング機能を実行する。
[システム環境]
本システムは、通信ネットワークのポートマッピングを行う関連した方法を含む。
一実施の形態では、本ポートマッピングシステムは、ソケットダイレクトプロトコル(SDP)等の、RDMAを使用するワイヤプロトコルと共に動作する。
ソケットダイレクトプロトコルは、本明細書で述べる例において例示のトランスポートプロトコルとして使用される。
SDPは、RDMA(リモートダイレクトメモリアクセス)を使用して、TCP等の下位レイヤプロトコル(LLP)上でSOCK_STREAMセマンティクスを提供するバイトストリームトランスポートプロトコルである。
SDPは、TCPのストリームセマンティクスをそっくりまねたものであり、本システムの例示の一実施の形態では、SDPがその上で動作するところの下位レイヤプロトコルはTCPである。
SDPによって、既存のソケットアプリケーションは、アプリケーションに対する変更を何ら必要とすることなく、データ転送についてRDMAの性能利益を得ることが可能になる。
したがって、SDPは、TCP上でのソケットの従来の実施と比較して、CPU利用およびメモリ帯域幅利用を低くすることができると同時に、現在のほとんどのネットワークアプリケーションが依拠するよく知られたバイトストリーム指向のセマンティクスを維持することができる。
本システムは、本明細書で例示の目的で使用されるSDPおよびTCP以外のトランスポートレイヤプロトコルと共に動作できることに留意すべきである。
本システムは、通信ネットワークのポートマッピングを行う関連した方法を含む。
一実施の形態では、本ポートマッピングシステムは、ソケットダイレクトプロトコル(SDP)等の、RDMAを使用するワイヤプロトコルと共に動作する。
ソケットダイレクトプロトコルは、本明細書で述べる例において例示のトランスポートプロトコルとして使用される。
SDPは、RDMA(リモートダイレクトメモリアクセス)を使用して、TCP等の下位レイヤプロトコル(LLP)上でSOCK_STREAMセマンティクスを提供するバイトストリームトランスポートプロトコルである。
SDPは、TCPのストリームセマンティクスをそっくりまねたものであり、本システムの例示の一実施の形態では、SDPがその上で動作するところの下位レイヤプロトコルはTCPである。
SDPによって、既存のソケットアプリケーションは、アプリケーションに対する変更を何ら必要とすることなく、データ転送についてRDMAの性能利益を得ることが可能になる。
したがって、SDPは、TCP上でのソケットの従来の実施と比較して、CPU利用およびメモリ帯域幅利用を低くすることができると同時に、現在のほとんどのネットワークアプリケーションが依拠するよく知られたバイトストリーム指向のセマンティクスを維持することができる。
本システムは、本明細書で例示の目的で使用されるSDPおよびTCP以外のトランスポートレイヤプロトコルと共に動作できることに留意すべきである。
SDPは、SOCK_STREAMアプリケーションの下でトランスペアレントに動作する。
SDPは、アプリケーションが、そのアプリケーションが定義したリスンポートを使用してサービスをアドバタイズすること、および、SDPのRDMA対応のリスンポートを使用してトランスペアレントに接続を行うことを可能にすることを目的とする。
一方、SDP接続ピアが、SDP通信用の接続を作成する際に使用するポートおよびIPアドレスを知らない場合、SDPは、SDP/RDMA通信に使用できるTCPポートおよびIPアドレスへの従来のSOCK_STREAM通信に使用されるTCPポートおよびIPアドレスを解決しなければならない。
この文書における「RDMA」へのその後の参照は、SDPプロトコル、および、ハードウェアトランスポートメカニズムとしてRDMAを使用する他のあらゆるプロトコルにまで及ぶことを目的としたものである。
SDPは、アプリケーションが、そのアプリケーションが定義したリスンポートを使用してサービスをアドバタイズすること、および、SDPのRDMA対応のリスンポートを使用してトランスペアレントに接続を行うことを可能にすることを目的とする。
一方、SDP接続ピアが、SDP通信用の接続を作成する際に使用するポートおよびIPアドレスを知らない場合、SDPは、SDP/RDMA通信に使用できるTCPポートおよびIPアドレスへの従来のSOCK_STREAM通信に使用されるTCPポートおよびIPアドレスを解決しなければならない。
この文書における「RDMA」へのその後の参照は、SDPプロトコル、および、ハードウェアトランスポートメカニズムとしてRDMAを使用する他のあらゆるプロトコルにまで及ぶことを目的としたものである。
図1は、本ポートマッピングシステムの動作環境を提供する従来技術のネットワーク100のハイレベルアーキテクチャを示す図である。
図1に示すように、エンドノード102(*)で実行されるアプリケーション101(*)は、各ポート103(*)、ネットワークインターフェースカード104(*)/105(*)、およびファブリック106を介して自身のピアアプリケーション101(*)と通信する。
本明細書で使用するように、参照番号に続く「ワイルドカード」指示子「(*)」は、複数の同様のエンティティの任意のものを示す。
エンドノード102(*)は、複数のポート103(*)を使用してファブリック105(*)に接続を行うことができる。
例えば、エンドノード102(1)は、ポート103(1)〜103(n)を含み、これらポートのいずれも、対応するネットワークインターフェースカードを介してファブリック106に接続することができる。
この対応するネットワークインターフェースカードは、NIC104(*)、RNIC105(*)、または、エンドノード102(*)間の通信を実施する他の任意のデバイスとすることができる。
RNIC105(*)は、RDMA(リモートダイレクトメモリアクセス)プロトコルをサポートするNIC(ネットワークインターフェースカード)である。
本明細書で使用するように、「RNIC」は、一般名称であり、RDMAプロトコルをサポートする任意のタイプの相互接続とすることができる。
例えば、相互接続の実施態様は、TCP/IP上のRDMA、SCTP上のRDMA、InfiniBand上のRDMA、またはメーカ独自のプロトコル(例えば、I/O相互接続もしくはバックプレーン相互接続)上のRDMAとすることができる。
図1に示すように、エンドノード102(*)で実行されるアプリケーション101(*)は、各ポート103(*)、ネットワークインターフェースカード104(*)/105(*)、およびファブリック106を介して自身のピアアプリケーション101(*)と通信する。
本明細書で使用するように、参照番号に続く「ワイルドカード」指示子「(*)」は、複数の同様のエンティティの任意のものを示す。
エンドノード102(*)は、複数のポート103(*)を使用してファブリック105(*)に接続を行うことができる。
例えば、エンドノード102(1)は、ポート103(1)〜103(n)を含み、これらポートのいずれも、対応するネットワークインターフェースカードを介してファブリック106に接続することができる。
この対応するネットワークインターフェースカードは、NIC104(*)、RNIC105(*)、または、エンドノード102(*)間の通信を実施する他の任意のデバイスとすることができる。
RNIC105(*)は、RDMA(リモートダイレクトメモリアクセス)プロトコルをサポートするNIC(ネットワークインターフェースカード)である。
本明細書で使用するように、「RNIC」は、一般名称であり、RDMAプロトコルをサポートする任意のタイプの相互接続とすることができる。
例えば、相互接続の実施態様は、TCP/IP上のRDMA、SCTP上のRDMA、InfiniBand上のRDMA、またはメーカ独自のプロトコル(例えば、I/O相互接続もしくはバックプレーン相互接続)上のRDMAとすることができる。
図2は、本ポートマッパシステム200の例示のハイレベルアーキテクチャを示す図である。
図2に示すように、サーバとして機能するポートマッパサービスプロバイダ(PMSP)204、およびポートマッパクライアント(PMクライアント)203は、以下で詳述するポートマッパプロトコル210を使用して通信する。
ポートマッパプロトコル210によって、接続ピアは、従来のアドレスを与えられたRDMAアドレスを発見することができる。
RDMAアドレスは、同じターゲットサービスのTCPポートおよびIPアドレスであるが、RDMAアドレスでは、RDMA上のSDP等のRDMAをベースとしたプロトコルを使用してデータを転送することが必要となる。
図2に示すように、サーバとして機能するポートマッパサービスプロバイダ(PMSP)204、およびポートマッパクライアント(PMクライアント)203は、以下で詳述するポートマッパプロトコル210を使用して通信する。
ポートマッパプロトコル210によって、接続ピアは、従来のアドレスを与えられたRDMAアドレスを発見することができる。
RDMAアドレスは、同じターゲットサービスのTCPポートおよびIPアドレスであるが、RDMAアドレスでは、RDMA上のSDP等のRDMAをベースとしたプロトコルを使用してデータを転送することが必要となる。
受諾ピア(AP)202および接続ピア(CP)201は、ポートマッパプロトコルからの結果を使用して、LLP(下位レベルプロトコル、例えばTCP)接続のセットアップを開始する。
本明細書で説明するポートマッパプロトコル210によって、接続ピア201は、ポートマッパクライアント203を通じて、ポートマッパサービスプロバイダ204と交渉し、アプリケーションが指定したターゲットサービスポートを関連したRDMAサービスポートへ変換することが可能になる。
CP201とAP202との間の通信は、バックプレーン、スイッチ、ケーブル、または無線を含む任意のファブリックタイプを介して実施することができる。
本明細書で説明するポートマッパプロトコル210によって、接続ピア201は、ポートマッパクライアント203を通じて、ポートマッパサービスプロバイダ204と交渉し、アプリケーションが指定したターゲットサービスポートを関連したRDMAサービスポートへ変換することが可能になる。
CP201とAP202との間の通信は、バックプレーン、スイッチ、ケーブル、または無線を含む任意のファブリックタイプを介して実施することができる。
ポートマッパサービスプロバイダ204は、集中化エージェント(例えば、1つもしくは2つ以上のPMクライアント203、CP201、またはAP202の代わりに動作する中央管理エージェント)を使用して実施することもできるし、あるいは、PMSP204は、分散させることもできる。
PMSP204は、ポートマッパプロトコル210を実施するのに使用される任意の管理エージェント機能を追加して含むことができる。
PMSP204は、接続ピア201または受諾ピア202と同じ場所に配置することを含めて、ネットワーク内のあらゆる場所に配置することができる。
一実施の形態では、PMSP204は、単に問い合わせサービスのみとすることができ、したがって、CP201が、AP202との通信を確立するのに必要なポートマッパプロトコル210を実施することが必要となる。
PMSP204は、ポートマッパプロトコル210を実施するのに使用される任意の管理エージェント機能を追加して含むことができる。
PMSP204は、接続ピア201または受諾ピア202と同じ場所に配置することを含めて、ネットワーク内のあらゆる場所に配置することができる。
一実施の形態では、PMSP204は、単に問い合わせサービスのみとすることができ、したがって、CP201が、AP202との通信を確立するのに必要なポートマッパプロトコル210を実施することが必要となる。
図2に示す例では、接続ピア201が、受諾ピア202とのRDMA通信用の接続を作成する際に使用するポートおよびIPアドレスを知らない場合、標準的なTCPマッピング205によって提供される(かつ、例えば従来のSOCK_STREAM通信に使用される)従来のTCPポートおよびIPアドレス207を、RDMA通信に使用できるTCPポートおよびIPアドレス(RDMAアドレス)208へのRDMAマッピング206を介して解決しなければならない。
図3Aは、ポートマッピングオペレーションを実施するための、ポートマッパサービスプロバイダ(PMSP)204とポートマッパクライアント203との間の例示の交換シーケンスを示す図である。
RDMA接続のセットアップは2段階で行われ、第1段階はスリーウェイメッセージ交換を含む。
例示の一実施の形態では、スリーウェイメッセージ交換は、以下で詳述するポートマッパプロトコル210を使用する。
クライアントの観点から、RDMA接続のセットアップの第1段階は、PMクライアント203によって実行され、CP201とAP202との間の下位レベルプロトコル(LLP)接続のセットアップに使用されるアドレス(RDMAアドレス208または従来のアドレス207のいずれか)が発見される。
RDMA接続のセットアップは2段階で行われ、第1段階はスリーウェイメッセージ交換を含む。
例示の一実施の形態では、スリーウェイメッセージ交換は、以下で詳述するポートマッパプロトコル210を使用する。
クライアントの観点から、RDMA接続のセットアップの第1段階は、PMクライアント203によって実行され、CP201とAP202との間の下位レベルプロトコル(LLP)接続のセットアップに使用されるアドレス(RDMAアドレス208または従来のアドレス207のいずれか)が発見される。
図3Aに示すように、最初に、サービスポート103(*)、接続ピアIPアドレス、および受諾ピアIPアドレスに基づいてポートマッピング機能を提供するようにPMSPに要求するために、ポートマッパ要求メッセージ(PMRequest)301がPMクライアント203からPMSP204へ送信される。
これに応答して、PMSP204は、ポートマッパ応答メッセージ(PMAccept)302をPMクライアント203へ送信する。
あるいは、PMDenyメッセージ304がPMSP204によって送信されて、ポートマッピングオペレーションが拒否された、すなわち、オペレーションを実行することができなかったことを示すこともできる。
これに応答して、PMSP204は、ポートマッパ応答メッセージ(PMAccept)302をPMクライアント203へ送信する。
あるいは、PMDenyメッセージ304がPMSP204によって送信されて、ポートマッピングオペレーションが拒否された、すなわち、オペレーションを実行することができなかったことを示すこともできる。
PMAcceptメッセージ302は、PMSP204によって使用され、マッピングされたポート、使用される接続ピアIPアドレス、使用される受諾ピアIPアドレス、および、そのマッピングが有効な状態にある期間を示す時間値を返す。
次に、PMクライアント203は、応答メッセージを受信したことを確認するポートマッパ肯定応答メッセージ(PM ACK)303を送信する。
応答メッセージで返された時間値内に肯定応答メッセージが返信されないと、マッピングは無効にされることがあり、関連した資源は解放されることがある。
応答メッセージで返された時間値内に肯定応答メッセージが返信されないと、マッピングは無効にされることがあり、関連した資源は解放されることがある。
接続をセットアップする第2段階は、接続ピア201が、第1段階で交渉したアドレスを使用して、AP202で実行されている特定のサービスへの接続の確立を試みる時に行われる。
接続のセットアップの第2段階では、接続ピア201が、図3Aのポートマッパプロトコルメッセージ交換の結果を使用して、受諾ピアのRDMAアドレスへのLLP(例えば、TCP)接続のセットアップを試みるか、または、CP201が従来のアドレスへのLLP接続のセットアップを試みる。
前者によって、RDMA接続のセットアップが開始される。
後者によって、従来のストリーミングモード通信が使用される。
接続のセットアップの第2段階では、接続ピア201が、図3Aのポートマッパプロトコルメッセージ交換の結果を使用して、受諾ピアのRDMAアドレスへのLLP(例えば、TCP)接続のセットアップを試みるか、または、CP201が従来のアドレスへのLLP接続のセットアップを試みる。
前者によって、RDMA接続のセットアップが開始される。
後者によって、従来のストリーミングモード通信が使用される。
図3Bは、接続ピア201と受諾ピア202との間の接続を確立するための、接続ピア201と受諾ピア202との間の例示の交換シーケンスを示す図である。
図3Bの例で使用されるLLPはTCPである。
図3Bに示すように、接続ピア201は、図3Aで説明したポートマッピングプロセスによって提供されたRDMAアドレスを使用して、TCP SYNメッセージを受諾ピア202へ送信することによりTCP接続を開始する。
これに応答して、受諾ピア202は、TCP SYN ACK305で応答する。
次に、接続ピア201は、受諾ピア202へTCP ACK306を送信することによって応答し、CP201とAP202との間のTCP接続を確立する。
図3Bの例で使用されるLLPはTCPである。
図3Bに示すように、接続ピア201は、図3Aで説明したポートマッピングプロセスによって提供されたRDMAアドレスを使用して、TCP SYNメッセージを受諾ピア202へ送信することによりTCP接続を開始する。
これに応答して、受諾ピア202は、TCP SYN ACK305で応答する。
次に、接続ピア201は、受諾ピア202へTCP ACK306を送信することによって応答し、CP201とAP202との間のTCP接続を確立する。
図4は、アドレス/ポート解決を実行し、接続ピア201と受諾ピア202との間の接続を確立する例示のAPI呼び出しシーケンスを示す図である。
図4に示すように、時刻410において、受諾ピア202は、listen()コール401を発行することによってリスンポート103(*)を作成する。
次に、サービス解決が、接続ピア201が発行したgetservbyname()コール402によって開始され、時間区間411の間続く。
接続フェーズ412の間、CP201およびAP202は、connect()コール403およびaccept()コール404を交換する。
交換後、CPとAPとの間の通信が、send()コール405およびreceive()コール406を交換することによって行われる。
図4に示すように、時刻410において、受諾ピア202は、listen()コール401を発行することによってリスンポート103(*)を作成する。
次に、サービス解決が、接続ピア201が発行したgetservbyname()コール402によって開始され、時間区間411の間続く。
接続フェーズ412の間、CP201およびAP202は、connect()コール403およびaccept()コール404を交換する。
交換後、CPとAPとの間の通信が、send()コール405およびreceive()コール406を交換することによって行われる。
図4に示すAPI呼び出しシーケンスでは、時間区間411の期間中であるサービス解決(例えば、getservbyname()要求により)の期間中または時間区間412の期間中である接続処理(例えば、connect()要求を介して)の期間中のいずれかで、ポートマッパサービスはトランスペアレントに起動される。
受諾ピア202は、listen()時において対応するサービスのリスンポートを作成することもできるし、ポートマッパ要求メッセージが受信されたことに応答してリスンポートを動的に作成することもできる。
接続ピア201または受諾ピア202のいずれも、使用されるポートマッピングサービスと相互作用する前、または、当該相互作用の一部として、中央ポリシー管理エージェントまたはローカルポリシー管理エージェントと相互作用することができる。
AP202は、動的なリスンポートの作成を実施することができ、CP201またはCP201の代わりに動作するエージェント501(*)(図5に示すように)に、N個の単位時間ごとに毎回問い合わせを行うか、または、永続的または一時的にキャッシュされたマッピングの結果を使用するように要求することができる。
受諾ピア202は、listen()時において対応するサービスのリスンポートを作成することもできるし、ポートマッパ要求メッセージが受信されたことに応答してリスンポートを動的に作成することもできる。
接続ピア201または受諾ピア202のいずれも、使用されるポートマッピングサービスと相互作用する前、または、当該相互作用の一部として、中央ポリシー管理エージェントまたはローカルポリシー管理エージェントと相互作用することができる。
AP202は、動的なリスンポートの作成を実施することができ、CP201またはCP201の代わりに動作するエージェント501(*)(図5に示すように)に、N個の単位時間ごとに毎回問い合わせを行うか、または、永続的または一時的にキャッシュされたマッピングの結果を使用するように要求することができる。
[ポリシー管理エージェントの構成]
図5は、ローカルポリシー管理エージェント501(A)および501(B)を使用するポートマッピングの例示の構成を示す図であり、図6は、集中化ポリシー管理エージェント601を使用する例示のポートマッピング構成を示す図である。
図5および図6において、ローカルポリシー管理エージェント501(*)は、ポートマッピングポリシーを実施し、例えばPMSP204(*)と協力してポートマッピング機能を実行する。
図5は、ローカルポリシー管理エージェント501(A)および501(B)を使用するポートマッピングの例示の構成を示す図であり、図6は、集中化ポリシー管理エージェント601を使用する例示のポートマッピング構成を示す図である。
図5および図6において、ローカルポリシー管理エージェント501(*)は、ポートマッピングポリシーを実施し、例えばPMSP204(*)と協力してポートマッピング機能を実行する。
図5に示すように、ポートマッピングサービスプロバイダ(PMSP)は、AP202(5)と同じ場所に配置されたPMSP204(L)によって示すように、各AP202と同じ場所に配置して分散させることができる。
図5の構成では、ポートマッピング情報は、CP201(5)とAP202(5)との間で直接通信される。
図5の構成では、ポートマッピング情報は、CP201(5)とAP202(5)との間で直接通信される。
代替的に、ポートマッピングサービスプロバイダは、図6に示すように集中化させることができる。
図6では、集中化ポリシー管理エージェント601を使用する集中化PMSP204(C)が示されている。
集中化ポリシー管理エージェント601は、1つまたは2つ以上のPMクライアント203(図6に図示せず)、または、矢印602/603で示すように接続ピア201(6)もしくは受諾ピア202(6)の代わりに動作することができる。
図6では、集中化ポリシー管理エージェント601を使用する集中化PMSP204(C)が示されている。
集中化ポリシー管理エージェント601は、1つまたは2つ以上のPMクライアント203(図6に図示せず)、または、矢印602/603で示すように接続ピア201(6)もしくは受諾ピア202(6)の代わりに動作することができる。
PMSP204(*)、PMクライアント203、CP201、またはAP202は、中央ポリシー管理エージェント601または同じ場所に配置されたポリシー管理エージェント501と相互作用して、負荷バランシング(例えば、サービスベース、ハードウェア資源ベース、エンドノードサービス容量ベース)、宛先の変更等のエンドノード特有のポリシーまたはサービス特有のポリシーを実施することができる。
接続ピア201で実行され、AP RDMAサービスリスンポートのアプオリの知識を有するアプリケーションは、PMSPと相互作用する必要なく、そのリスンポートをターゲットにすることができる。
このようなアプリケーションは、依然としてポリシー管理エンティティと相互作用して、好ましいCPおよびAP RNICアドレスを取得することができる。
例えば、複数のRNIC105(*)がCP201またはAP202のいずれかで利用可能である場合、ポリシー管理相互作用(以下で詳述)を使用して、どのRNIC105(*)を通信目的でターゲットとするかが決定される。
このようなアプリケーションは、依然としてポリシー管理エンティティと相互作用して、好ましいCPおよびAP RNICアドレスを取得することができる。
例えば、複数のRNIC105(*)がCP201またはAP202のいずれかで利用可能である場合、ポリシー管理相互作用(以下で詳述)を使用して、どのRNIC105(*)を通信目的でターゲットとするかが決定される。
[ポートマッピングシステムの構成]
図7は、ポートマッピングが、ローカルPMクライアント203およびローカルポリシー管理エージェント501によって接続ピア101の代わりに実行される例示の一実施態様を示す図である。
図7に示す構成では、接続ピア201は、接続ピアのローカルPMクライアント203とコンタクトし、ターゲットAP202のサービスポートをマッピングするようにPMクライアントに要求する。
PMクライアント203は、キャッシュされた有効なマッピングを有する場合、このマッピングをCP201に直ちに返すことができる。
PMクライアント203が、キャッシュされた有効なマッピングを有しない場合、または、マッピングサービスを実行する前にローカルポリシーが有効であると確認される場合、PMクライアントは、ローカルポリシー管理エージェント501とコンタクトして、必要なポートマッピング情報を取得することができる。
図7は、ポートマッピングが、ローカルPMクライアント203およびローカルポリシー管理エージェント501によって接続ピア101の代わりに実行される例示の一実施態様を示す図である。
図7に示す構成では、接続ピア201は、接続ピアのローカルPMクライアント203とコンタクトし、ターゲットAP202のサービスポートをマッピングするようにPMクライアントに要求する。
PMクライアント203は、キャッシュされた有効なマッピングを有する場合、このマッピングをCP201に直ちに返すことができる。
PMクライアント203が、キャッシュされた有効なマッピングを有しない場合、または、マッピングサービスを実行する前にローカルポリシーが有効であると確認される場合、PMクライアントは、ローカルポリシー管理エージェント501とコンタクトして、必要なポートマッピング情報を取得することができる。
PMクライアント203は、システムにローカルなポリシー管理エージェント(例えば、ローカルPMA501(A))または中央で管理されたポリシー管理エージェント601(図6に示すような)を調べて、最適な応答を決定することができる。
有効なポートマッピングが、ポリシー管理エージェント501/601によって返されると、CP201は、AP202との接続確立に直接進むことができる。
有効なポートマッピングが、ポリシー管理エージェント501/601によって返されると、CP201は、AP202との接続確立に直接進むことができる。
受諾ピア202は、(例えば、ループバック通信を介して)CP201と同じ場所に配置することもできるし、リモートとすることもできる。
本明細書で使用するように、用語「リモート」は、CP201から論理的または物理的に別個の離れたエンドノードターゲットを示す。
APとCPとの間の通信は、エンドノードのバックプレーンを横断することもできるし、I/Oベースのファブリック(有線または無線)を横断することもできる。
本明細書で使用するように、用語「リモート」は、CP201から論理的または物理的に別個の離れたエンドノードターゲットを示す。
APとCPとの間の通信は、エンドノードのバックプレーンを横断することもできるし、I/Oベースのファブリック(有線または無線)を横断することもできる。
図8は、接続ピア201および受諾ピア202がそれぞれローカルポリシー管理エージェント501(8a)/501(8b)およびローカルPMクライアント203/PMSP204をそれぞれ使用する例示のポートマッピング構成を示す図である。
図8に示すように、CP201は、PMクライアント203と同じ場所に配置することができ、PMSP204は、AP202と同じ場所に配置することができる。
これらはそれぞれ、破線のボックス801および802に示す。
図8の構成では、CP201およびAP202は、それらの各PMクライアント/ローカルPMSPと協議することができ、かつ/または、ローカルポリシー管理エージェントを直接調べることができる。
CP201およびAP202がそれらのローカルPMクライアント203/PMSP204を使用する場合、これらCPおよびAPは、ポートマッパプロトコル、およびマッピングされたポートへの接続確立プロトコルを実施する。
図8に示すように、CP201は、PMクライアント203と同じ場所に配置することができ、PMSP204は、AP202と同じ場所に配置することができる。
これらはそれぞれ、破線のボックス801および802に示す。
図8の構成では、CP201およびAP202は、それらの各PMクライアント/ローカルPMSPと協議することができ、かつ/または、ローカルポリシー管理エージェントを直接調べることができる。
CP201およびAP202がそれらのローカルPMクライアント203/PMSP204を使用する場合、これらCPおよびAPは、ポートマッパプロトコル、およびマッピングされたポートへの接続確立プロトコルを実施する。
代替的に、接続ピア201および受諾ピア202は、自身の各PMクライアント203/PMSP204を使用して、自身に代わってポートマッパプロトコルを代理させることができる。
この場合、PMクライアント203とPMSP204との間の通信(破線の矢印803によって示す)は、例示の一実施の形態では、スリーウェイUDP/IPデータグラムハンドシェークを使用する。
PMクライアント203とPMSP204との間の通信は、どのパスを介しても行うことができる。
この通信は、CPとAPとの間の通信に使用される実際のハードウェアを介して行う必要はない。
この場合、PMクライアント203とPMSP204との間の通信(破線の矢印803によって示す)は、例示の一実施の形態では、スリーウェイUDP/IPデータグラムハンドシェークを使用する。
PMクライアント203とPMSP204との間の通信は、どのパスを介しても行うことができる。
この通信は、CPとAPとの間の通信に使用される実際のハードウェアを介して行う必要はない。
図9は、PMクライアントまたはPMSP904が中央で管理される例示のポートマッピング構成を示す図である。
例示の一実施の形態では、複数のPMクライアント/PMSPインスタンス904をファブリック内に分散させることができる。
図9の矢印901および902によって示すように、中央ポリシー管理エージェント601は、CP/APローカルポリシー管理エージェント501(E)/501(F)と直接通信して、CP201またはAP202を含むエンドノード102(*)に特有のローカルポートマッピングポリシーを発見することができる。
ポートマッピングポリシーの発見プロセスの期間中、中央ポリシー管理エージェント601は、中央ポリシー管理エージェントがPMSP要求に正確に応答できるように、エンドノードの関連したハードウェア、ファブリック接続、システム使用モデル、サービス優先度等を決定する。
例えば、新たなサービスがサポートされ、その新たなサービスがRDMAに使用されるべきであることをローカルポリシーが示す場合において、資源(システム、RNIC等)がサポートを提供できるとき、AP202は中央PMSP904を更新する。
例示の一実施の形態では、複数のPMクライアント/PMSPインスタンス904をファブリック内に分散させることができる。
図9の矢印901および902によって示すように、中央ポリシー管理エージェント601は、CP/APローカルポリシー管理エージェント501(E)/501(F)と直接通信して、CP201またはAP202を含むエンドノード102(*)に特有のローカルポートマッピングポリシーを発見することができる。
ポートマッピングポリシーの発見プロセスの期間中、中央ポリシー管理エージェント601は、中央ポリシー管理エージェントがPMSP要求に正確に応答できるように、エンドノードの関連したハードウェア、ファブリック接続、システム使用モデル、サービス優先度等を決定する。
例えば、新たなサービスがサポートされ、その新たなサービスがRDMAに使用されるべきであることをローカルポリシーが示す場合において、資源(システム、RNIC等)がサポートを提供できるとき、AP202は中央PMSP904を更新する。
接続ピア201が、PMクライアント904にポートマップ要求メッセージを直接発行する場合、PMクライアントは(アプリオリの知識に基づいて)直ちに応答するか、または、PMクライアント904は、AP202および/またはAP202のローカルポリシー管理エージェント501(F)と協議して応答を生成することができる。
図10は、所与のサービスの特定のAP IPターゲットアドレスが集約アドレスである例示のポートマッピングの実施態様を示す図である。
図10に示すように、PMクライアント203は、単一のRNICを示す特定の受諾ピアのIPアドレスを含めて、所与のサービスの特定のAP IPアドレスをターゲットとすることができ、また、1つまたは2つ以上のエンドノード102上の複数のRNIC105(*)の1つを示す特定のAP IPアドレスをターゲットとすることもできる。
後者の状況では、AP IPアドレスは、複数のRNIC105(*)を集約し、AP RNICポートへのIPアドレス解決は、パケットを誤った経路で送るのを回避するために一意でなければならない。
例えば、AP202(A)およびAP202(B)は、各グループ105(A)および105(B)に複数のRNICを有することができ、各RNICグループまたはそのサブセットは、単一の集約IPアドレスを有することができる。
図10に示すように、PMクライアント203は、単一のRNICを示す特定の受諾ピアのIPアドレスを含めて、所与のサービスの特定のAP IPアドレスをターゲットとすることができ、また、1つまたは2つ以上のエンドノード102上の複数のRNIC105(*)の1つを示す特定のAP IPアドレスをターゲットとすることもできる。
後者の状況では、AP IPアドレスは、複数のRNIC105(*)を集約し、AP RNICポートへのIPアドレス解決は、パケットを誤った経路で送るのを回避するために一意でなければならない。
例えば、AP202(A)およびAP202(B)は、各グループ105(A)および105(B)に複数のRNICを有することができ、各RNICグループまたはそのサブセットは、単一の集約IPアドレスを有することができる。
PMSP204とのポートマッパプロトコル交換の結果、PMクライアント203は、当該PMクライアントが最初に選択したAP IPアドレスとは異なる「改訂された」AP IPアドレスをPMSP204から受信することができる。
図10の例では、矢印1001に示すように、PMクライアント203は、PMSP204を使用して、最初に受諾ピア202(A)の1つまたは2つ以上のRNIC105(A)を選択する。
一方、AP202(A)またはそのポリシー管理エージェント(図示せず)のいずれかは、PMクライアント203が選択したIPアドレスとは異なるIPアドレスを返す場合がある。
このような場合、PMクライアント203は、PMAcceptメッセージ302で返された、改訂されたIPアドレスを受諾し、その後のRDMA送信を、改訂されたIPアドレスのターゲット受諾ピア202へ向ける。
図10の例では、矢印1001に示すように、PMクライアント203は、PMSP204を使用して、最初に受諾ピア202(A)の1つまたは2つ以上のRNIC105(A)を選択する。
一方、AP202(A)またはそのポリシー管理エージェント(図示せず)のいずれかは、PMクライアント203が選択したIPアドレスとは異なるIPアドレスを返す場合がある。
このような場合、PMクライアント203は、PMAcceptメッセージ302で返された、改訂されたIPアドレスを受諾し、その後のRDMA送信を、改訂されたIPアドレスのターゲット受諾ピア202へ向ける。
最初に選択されたアドレスとは異なるIPアドレスを受諾することによって、AP202または当該APに代わって動作するポリシー管理エージェント501は、所望のサービスについて適切なRNIC105(*)を選択することが可能になる。
選択されたRNICは、同じエンドノードにおけるものであってもよいし、別個のエンドノードに宛先を変更されたものであってもよい。
RNIC選択ポリシーは、以下で詳述するように、システム負荷バランシングアルゴリズムまたはシステムサービス品質(QoS)パラメータに基づいて、最適なサービス配信を行うことができる。
選択されたRNICは、同じエンドノードにおけるものであってもよいし、別個のエンドノードに宛先を変更されたものであってもよい。
RNIC選択ポリシーは、以下で詳述するように、システム負荷バランシングアルゴリズムまたはシステムサービス品質(QoS)パラメータに基づいて、最適なサービス配信を行うことができる。
[ポートマッパプロトコル]
図3Aに関して前述したように、例示の一実施の形態では、ポートマッパワイヤプロトコル210は、PMクライアント203と、受諾ピア202の代わりに動作するポートマッパサービスプロバイダ(PMSP)204または受諾ピア自体との間で、スリーウェイUDP/IP(データグラム)メッセージ交換を使用する。
図11は、ポートマッパプロトコル210を介して送信される各ポートマッパメッセージの例示の共通フィールドを示す図である。
以下のフィールドは図11に示されたものである。
−OPフィールド1102は、ポートマッパメッセージタイプを特定するのに使用される2ビットオペレーションコードである。
−IPVフィールド1103は、使用中のIPアドレスのタイプを示す。
IPV=0x4は、IPv4アドレスが使用されることを示し、CplPaddrフィールドおよびAplPaddrフィールドの最初の32ビットのみが有効である。
IPV=0x6は、IPv6アドレスが使用されることを示す。
すなわち、CplPaddrフィールドおよびAplPaddrフィールドの128ビットすべてが有効である。
−PmTimeフィールド1104は、ポートマッパ受諾メッセージに使用されて、応答メッセージが生成されてからの、APポートフィールド(OP=1)が有効であるとみされる全時間を示す。
−APポートフィールド1105は、関連したポートを要求するのに使用されるか、または、マッピングされたポートを返すのに使用される。
−CPポートフィールド1106はCPのTCPポートを示す。
−AssocHandle(関連ハンドル)フィールド1107は、接続ピアがポートマッパトランザクションを一意に特定するのに使用される。
−CplPaddrフィールド1108は、RDMA/SDPセッション確立に使用されるCP IPアドレスを含む。
CplPaddrは、メッセージを送信するのにUDP/IPデータグラムヘッダに使用されるIPアドレスと異なる場合がある。
−AplPaddrフィールド1109は、RDMA/SDPセッション確立に使用されるAP IPアドレスを含む。
AplPaddrは、メッセージを送信するのにUDP/IPデータグラムヘッダに使用されるIPアドレスと異なる場合がある。
図3Aに関して前述したように、例示の一実施の形態では、ポートマッパワイヤプロトコル210は、PMクライアント203と、受諾ピア202の代わりに動作するポートマッパサービスプロバイダ(PMSP)204または受諾ピア自体との間で、スリーウェイUDP/IP(データグラム)メッセージ交換を使用する。
図11は、ポートマッパプロトコル210を介して送信される各ポートマッパメッセージの例示の共通フィールドを示す図である。
以下のフィールドは図11に示されたものである。
−OPフィールド1102は、ポートマッパメッセージタイプを特定するのに使用される2ビットオペレーションコードである。
−IPVフィールド1103は、使用中のIPアドレスのタイプを示す。
IPV=0x4は、IPv4アドレスが使用されることを示し、CplPaddrフィールドおよびAplPaddrフィールドの最初の32ビットのみが有効である。
IPV=0x6は、IPv6アドレスが使用されることを示す。
すなわち、CplPaddrフィールドおよびAplPaddrフィールドの128ビットすべてが有効である。
−PmTimeフィールド1104は、ポートマッパ受諾メッセージに使用されて、応答メッセージが生成されてからの、APポートフィールド(OP=1)が有効であるとみされる全時間を示す。
−APポートフィールド1105は、関連したポートを要求するのに使用されるか、または、マッピングされたポートを返すのに使用される。
−CPポートフィールド1106はCPのTCPポートを示す。
−AssocHandle(関連ハンドル)フィールド1107は、接続ピアがポートマッパトランザクションを一意に特定するのに使用される。
−CplPaddrフィールド1108は、RDMA/SDPセッション確立に使用されるCP IPアドレスを含む。
CplPaddrは、メッセージを送信するのにUDP/IPデータグラムヘッダに使用されるIPアドレスと異なる場合がある。
−AplPaddrフィールド1109は、RDMA/SDPセッション確立に使用されるAP IPアドレスを含む。
AplPaddrは、メッセージを送信するのにUDP/IPデータグラムヘッダに使用されるIPアドレスと異なる場合がある。
PMクライアント203とPMSP204/AP202との間のスリーウェイUDP/IPメッセージ交換で送信される最初のメッセージはPMReqメッセージ301(図3Aに示す)である。
このメッセージは、PMクライアント203によってPMSP(またはAP)へ送信され、対応するサービスポート用のRDMAリスンポートを要求する。
このメッセージは、PMクライアント203によってPMSP(またはAP)へ送信され、対応するサービスポート用のRDMAリスンポートを要求する。
PMReqメッセージフィールドは、PMクライアントによって以下のように設定される。
OPフィールド1102:0の値に設定される。
IPVフィールド1103:CplPAddrおよびAplPAddrがIPv4アドレスである場合には0x4に設定され、CplPAddrおよびAplPAddrがIPv6アドレスである場合には0x6に設定される。
PmTimeフィールド1104:0に設定され、受信においては無視される。
APポートフィールド1105:関連したサービスのリスンポートに設定される。
CPポートフィールド1106:接続ピアがサービスに接続する際に使用するローカルTCPポート番号に設定される。
AssocHandleフィールド1107:接続ピアによって、実行中のトランザクションを区別する一意の値に設定される。
CplPaddrフィールド1108:LLP接続確立を開始する接続ピアのIPアドレスに設定される。
AplPaddrフィールド1109:接続確立に使用されるターゲット受諾ピアのIPアドレスに設定される。
OPフィールド1102:0の値に設定される。
IPVフィールド1103:CplPAddrおよびAplPAddrがIPv4アドレスである場合には0x4に設定され、CplPAddrおよびAplPAddrがIPv6アドレスである場合には0x6に設定される。
PmTimeフィールド1104:0に設定され、受信においては無視される。
APポートフィールド1105:関連したサービスのリスンポートに設定される。
CPポートフィールド1106:接続ピアがサービスに接続する際に使用するローカルTCPポート番号に設定される。
AssocHandleフィールド1107:接続ピアによって、実行中のトランザクションを区別する一意の値に設定される。
CplPaddrフィールド1108:LLP接続確立を開始する接続ピアのIPアドレスに設定される。
AplPaddrフィールド1109:接続確立に使用されるターゲット受諾ピアのIPアドレスに設定される。
PMクライアント203がUDP/IPを使用してポートマッパサービスプロバイダポート103(*)をターゲットにすることにより、ポートマッパ要求(PMReq)メッセージ301が送信される。
ポートマッピングオペレーションが成功すると、PMSP204/AP202は、PMAcceptメッセージ302を返す。
PMAcceptメッセージ302は、PMRequestメッセージ301の対応するフィールド内に含まれるUDPポートおよびIPアドレスの情報を使用してUDP内にカプセル化される。
ポートマッピングオペレーションが成功すると、PMSP204/AP202は、PMAcceptメッセージ302を返す。
PMAcceptメッセージ302は、PMRequestメッセージ301の対応するフィールド内に含まれるUDPポートおよびIPアドレスの情報を使用してUDP内にカプセル化される。
ポートマッパ受諾(PMAccept)メッセージ302は、ポートマッパ要求メッセージ301に応答して、PMSP204/AP202により送信される。
PMAcceptメッセージフィールドは、PMSP/APによって以下のように設定される。
OPフィールド1102:01の値に設定される。
IPVフィールド1103:PMReqメッセージのIPVフィールドと同じ値に設定される。
PmTimeフィールド1104:応答メッセージが生成されてからの、APポートフィールド(OP=1)が有効であるとみされる全時間を示すように設定される。
APポートフィールド1105:RDMAリスンポートに設定される。
CPポートフィールド1106:対応するPMReqメッセージのCPポートフィールドと同じ値に設定される。
AssocHandleフィールド1107:対応するPMReqメッセージのAssocHandleフィールドと同じ値に設定される。
CplPaddrフィールド1108:対応するPMReqメッセージのCplPAddrフィールドと同じ値に設定される。
AplPaddrフィールド1109:接続確立で使用される受諾ピアのIPアドレスに設定される。
受諾ピアは、対応するPMReqメッセージで要求されたものと異なるAplPAddrを返すことができる。
OPフィールド1102:01の値に設定される。
IPVフィールド1103:PMReqメッセージのIPVフィールドと同じ値に設定される。
PmTimeフィールド1104:応答メッセージが生成されてからの、APポートフィールド(OP=1)が有効であるとみされる全時間を示すように設定される。
APポートフィールド1105:RDMAリスンポートに設定される。
CPポートフィールド1106:対応するPMReqメッセージのCPポートフィールドと同じ値に設定される。
AssocHandleフィールド1107:対応するPMReqメッセージのAssocHandleフィールドと同じ値に設定される。
CplPaddrフィールド1108:対応するPMReqメッセージのCplPAddrフィールドと同じ値に設定される。
AplPaddrフィールド1109:接続確立で使用される受諾ピアのIPアドレスに設定される。
受諾ピアは、対応するPMReqメッセージで要求されたものと異なるAplPAddrを返すことができる。
PMAcceptメッセージ302は、対応するPMReqメッセージ301を配信するのに使用されたUDP/IPヘッダに含まれるアドレス情報を使用して送信される。
PMクライアント203は、PMAcceptメッセージ302を受信すると、ポートマッパ肯定応答(PMAck)メッセージ303を返す。
このPMAckメッセージ303は、対応するPMAcceptメッセージ内に含まれるUDPポートおよびIPアドレスの情報を使用してUDP内にカプセル化される。
PMAckメッセージフィールドは、PMクライアントによって以下のように設定される。
OPフィールド1102:02の値に設定される。
IPVフィールド1103:対応するPMAcceptメッセージのIPVフィールドと同じ値に設定される。
PmTimeフィールド1104:0に設定され、受信においては無視される。
APポートフィールド1105:対応するPMAcceptメッセージのAPポートフィールドと同じ値に設定される。
CPポートフィールド1106:対応するPMAcceptメッセージのCPポートフィールドと同じ値に設定される。
AssocHandleフィールド1107:対応するPMAcceptメッセージのAssocHandleフィールドと同じ値に設定される。
CplPaddrフィールド1108:対応するPMAcceptメッセージのCplPAddrフィールドと同じ値に設定される。
受諾ピアの一実態態様は、CplPAddrを使用して、対応するPMAcceptメッセージで返されたAPポートとのCplPAddrの関連を通じて、その後のLLP接続要求の有効性を確認することができる。
AplPaddrフィールド1109:対応するPMAcceptメッセージのAplPAddrフィールドと同じ値に設定される。
このPMAckメッセージ303は、対応するPMAcceptメッセージ内に含まれるUDPポートおよびIPアドレスの情報を使用してUDP内にカプセル化される。
PMAckメッセージフィールドは、PMクライアントによって以下のように設定される。
OPフィールド1102:02の値に設定される。
IPVフィールド1103:対応するPMAcceptメッセージのIPVフィールドと同じ値に設定される。
PmTimeフィールド1104:0に設定され、受信においては無視される。
APポートフィールド1105:対応するPMAcceptメッセージのAPポートフィールドと同じ値に設定される。
CPポートフィールド1106:対応するPMAcceptメッセージのCPポートフィールドと同じ値に設定される。
AssocHandleフィールド1107:対応するPMAcceptメッセージのAssocHandleフィールドと同じ値に設定される。
CplPaddrフィールド1108:対応するPMAcceptメッセージのCplPAddrフィールドと同じ値に設定される。
受諾ピアの一実態態様は、CplPAddrを使用して、対応するPMAcceptメッセージで返されたAPポートとのCplPAddrの関連を通じて、その後のLLP接続要求の有効性を確認することができる。
AplPaddrフィールド1109:対応するPMAcceptメッセージのAplPAddrフィールドと同じ値に設定される。
PMAckメッセージ303は、PMクライアントが、PMAcceptメッセージを配信するのに使用されたUDP/IPヘッダに含まれるアドレス情報を使用することによって送信される。
図3Aのスリーウェイメッセージ交換は、集中化したポートマッパの実施態様または分散した(ピアツーピア)ポートマッパの実施態様のいずれかをサポートすると同時に、接続ピア201と受諾ピア202との間で交換されるパケット数を最小にする。
ポートマッパメッセージにより与えられた柔軟性により、さまざまな相互運用可能な実施態様のオプションが可能になる。
例えば、PMクライアント203は、接続ピア201の代わりに動作するエージェントとして実施することもできるし、接続ピアの一部として実施することもできる。
ポートマッピングサービスプロバイダ204も、受諾ピア202の代わりに動作するエージェントとして実施することもできるし、受諾ピアの一部として実施することもできる。
これに加えて、PMAcceptメッセージ302内のAplPAddrフィールド1109は、ローカルポリシーの決定によって、要求されたIPアドレス(すなわち、PMRequest301のAplPAddrフィールド1109)と異なることがある。
ポートマッパメッセージにより与えられた柔軟性により、さまざまな相互運用可能な実施態様のオプションが可能になる。
例えば、PMクライアント203は、接続ピア201の代わりに動作するエージェントとして実施することもできるし、接続ピアの一部として実施することもできる。
ポートマッピングサービスプロバイダ204も、受諾ピア202の代わりに動作するエージェントとして実施することもできるし、受諾ピアの一部として実施することもできる。
これに加えて、PMAcceptメッセージ302内のAplPAddrフィールド1109は、ローカルポリシーの決定によって、要求されたIPアドレス(すなわち、PMRequest301のAplPAddrフィールド1109)と異なることがある。
例えば、受諾ピア202が複数のネットワークインターフェースを含み、そのローカルポリシーがネットワークインターフェース負荷バランシングをサポートする場合、受諾ピア202は、図10に関して先に示したように、選択されたターゲットインターフェースのAplPAddr1109について、PMReqメッセージで要求されたAplPAddrとは異なるAplPAddr1109を返すことができる。
肯定応答メッセージは、応答を送信するのに使用されたUDP/IPデータグラムに含まれる送信元アドレスに返されるべきである。
PMSP204は、適切な応答を生成するために要求の宛先を別のエンドノードへ変更していることがあるので、対応するCP201またはCPの代わりに動作するエージェントは、応答メッセージ内の情報のみを使用しなければならず、元の要求メッセージの情報を使用してはならない。
肯定応答メッセージは、応答を送信するのに使用されたUDP/IPデータグラムに含まれる送信元アドレスに返されるべきである。
PMSP204は、適切な応答を生成するために要求の宛先を別のエンドノードへ変更していることがあるので、対応するCP201またはCPの代わりに動作するエージェントは、応答メッセージ内の情報のみを使用しなければならず、元の要求メッセージの情報を使用してはならない。
スリーウェイメッセージ交換によって、受諾ピア202は、接続ピアがPmTimeフィールド1104で指定された期間内しかRDMAリスンポートを利用しないという知識を用いて、当該RDMAリスンポートを動的に作成することが可能になる。
PMAckメッセージが受信されない場合、受諾ピア202は、その期間が満了すると関連した資源を解放することができる。
資源を解放できることによって、RDMAリスンポートの消費を介してサービス拒否攻撃の影響が最小にされる。
PMAckメッセージが受信されない場合、受諾ピア202は、その期間が満了すると関連した資源を解放することができる。
資源を解放できることによって、RDMAリスンポートの消費を介してサービス拒否攻撃の影響が最小にされる。
ポートマッピングオペレーションが成功しない場合、受諾ピアはPMDenyメッセージ304を返す。
このPMDenyメッセージ304は、対応するPMRequestメッセージ内に含まれるUDPポートおよびIPアドレスの情報を使用してUDP内にカプセル化される。
PMDenyメッセージフィールドは、受諾ピアによって以下のように設定される。
OPフィールド1102:03の値に設定される。
IPVフィールド1103:PMReqメッセージのIPVフィールドと同じ値に設定される。
PmTimeフィールド1104:0に設定され、受信においては無視される。
APポートフィールド1105:対応するPMReqメッセージのAPポートフィールドと同じ値に設定される。
CPポートフィールド1106:対応するPMReqメッセージのCPポートフィールドと同じ値に設定される。
AssocHandleフィールド1107:対応するPMReqメッセージのAssocHandleフィールドと同じ値に設定される。
CplPAddrフィールド1108:対応するPMReqメッセージのCplPAddrフィールドと同じ値に設定される。
AplPAddrフィールド1109:対応するPMReqメッセージのAplPAddrフィールドと同じ値に設定される。
このPMDenyメッセージ304は、対応するPMRequestメッセージ内に含まれるUDPポートおよびIPアドレスの情報を使用してUDP内にカプセル化される。
PMDenyメッセージフィールドは、受諾ピアによって以下のように設定される。
OPフィールド1102:03の値に設定される。
IPVフィールド1103:PMReqメッセージのIPVフィールドと同じ値に設定される。
PmTimeフィールド1104:0に設定され、受信においては無視される。
APポートフィールド1105:対応するPMReqメッセージのAPポートフィールドと同じ値に設定される。
CPポートフィールド1106:対応するPMReqメッセージのCPポートフィールドと同じ値に設定される。
AssocHandleフィールド1107:対応するPMReqメッセージのAssocHandleフィールドと同じ値に設定される。
CplPAddrフィールド1108:対応するPMReqメッセージのCplPAddrフィールドと同じ値に設定される。
AplPAddrフィールド1109:対応するPMReqメッセージのAplPAddrフィールドと同じ値に設定される。
PMDenyメッセージは、PMReqメッセージ301を配信するのに使用されたUDP/IPヘッダに含まれるアドレス情報を使用して送信される。
PMクライアントは、PMDenyメッセージ304を受信すると、関連したポートマッパトランザクションを完了したものとして取り扱い、PMAckメッセージを発行しない。
ポートマッパオペレーションは、例えば、このようなサービスマッピングが存在しないことや、資源を使い果たしたこと等のさまざまな理由から失敗することがある。
PMクライアントは、PMDenyメッセージ304を受信すると、関連したポートマッパトランザクションを完了したものとして取り扱い、PMAckメッセージを発行しない。
ポートマッパオペレーションは、例えば、このようなサービスマッピングが存在しないことや、資源を使い果たしたこと等のさまざまな理由から失敗することがある。
[PMクライアントの挙動]
PMクライアント203および接続ピア201の組み合わせによって、ポートマッパメッセージのAssocHandle1107、CplPAddr1108、およびCpPort1106の組み合わせが、ネットワークにおけるパケットの最大寿命内で一意となることを保証するように、当該組み合わせが選択される。
これによって、PMSP204は、遅延した複製メッセージに遭遇しないことが保証される。
PMクライアント203は、PMReqメッセージ301を送信する時にタイマを装備する。
PMReqメッセージに対する応答のタイムアウトが発生すると(すなわち、対応するPMAcceptメッセージ302もPMDenyメッセージ304も、タイムアウトが発生する前に受信されなかった)、PMクライアント203は、PMReqメッセージ301を再送し、(タイムアウトによる)最大個数の再送までのタイムアウトを再装備する。
PMクライアント203および接続ピア201の組み合わせによって、ポートマッパメッセージのAssocHandle1107、CplPAddr1108、およびCpPort1106の組み合わせが、ネットワークにおけるパケットの最大寿命内で一意となることを保証するように、当該組み合わせが選択される。
これによって、PMSP204は、遅延した複製メッセージに遭遇しないことが保証される。
PMクライアント203は、PMReqメッセージ301を送信する時にタイマを装備する。
PMReqメッセージに対する応答のタイムアウトが発生すると(すなわち、対応するPMAcceptメッセージ302もPMDenyメッセージ304も、タイムアウトが発生する前に受信されなかった)、PMクライアント203は、PMReqメッセージ301を再送し、(タイムアウトによる)最大個数の再送までのタイムアウトを再装備する。
PMクライアント203は、PMReq301のあらゆる再送において同じAssocHandle1107、ApPort1105、AplPAddr1109、CpPort1106、およびCplPAddr1108を使用する。
例示の一実施の形態では、ホストによって選ばれる最初のAssocHandle1107をランダムに選び、サードパーティがプロトコル310を妨害することをより困難にすることができる。
AssocHandle、ApPort、CpPort、AplPAddr、およびCplPAddrの組み合わせは、接続ピア201に関連したホスト内において一意である。
これによって、PMSP204は、クライアント要求を区別することが可能になる。
例示の一実施の形態では、ホストによって選ばれる最初のAssocHandle1107をランダムに選び、サードパーティがプロトコル310を妨害することをより困難にすることができる。
AssocHandle、ApPort、CpPort、AplPAddr、およびCplPAddrの組み合わせは、接続ピア201に関連したホスト内において一意である。
これによって、PMSP204は、クライアント要求を区別することが可能になる。
PMクライアント203は、最大個数のタイムアウトの後に、PMSP204からの回答を受信しないと、RDMAアドレスへの接続の試みを停止し、その代わりに、LLP接続セットアップ用の従来のアドレスを使用する。
従来のLLP接続セットアップによって、ストリーミングモードのデータ転送が開始される。
従来のLLP接続セットアップによって、ストリーミングモードのデータ転送が開始される。
PMクライアント203は、RDMAアドレスへの接続を試みている時にLLP接続リセット(例えば、TCP RSTセグメント)を受信すると、これを、PMDenyメッセージ304を受信したことと等価であるとみなし、したがって、従来のアドレスを使用してサービスへの接続を試みる。
PMクライアント203は、PMReqメッセージ301に対する応答を受信し、その後、同じ要求についての別の応答を受信すると、当該要求に対する追加されたあらゆる応答(PMAcceptまたはPMDeny)を廃棄する。
PMクライアントが、PMAccept302またはPMDeny304を受信し、このメッセージの受信に対応する関連した状態を有しない場合、そのメッセージは廃棄される。
[PMサーバの挙動]
PMSP204は、PMAcceptメッセージ302を送信する時にタイマを装備することができる。
このタイマは、PMAck303またはRDMAアドレスへのLLP接続セットアップ要求(例えば、TCP SYN)のいずれかが行われた時に無効にされる。
PMAckメッセージ303またはLLP接続セットアップ要求が、タイムアウト間隔の終了前に受信されない場合、PMReq301に関連したすべての資源は削除される。
この手続きは、一定のサービス拒否攻撃に対する保護に役立つ。
PMSP204は、PMAcceptメッセージ302を送信する時にタイマを装備することができる。
このタイマは、PMAck303またはRDMAアドレスへのLLP接続セットアップ要求(例えば、TCP SYN)のいずれかが行われた時に無効にされる。
PMAckメッセージ303またはLLP接続セットアップ要求が、タイムアウト間隔の終了前に受信されない場合、PMReq301に関連したすべての資源は削除される。
この手続きは、一定のサービス拒否攻撃に対する保護に役立つ。
PMSP204は、複製のPMReqメッセージ301を検出すると、PMAcceptメッセージ302またはPMDenyメッセージ304のいずれかで応答する。
これに加えて、PMSPは、複製されたPMReqメッセージについての前のPMAcceptメッセージを送信した時にタイマを装備していた場合、PMAcceptメッセージの再送時にそのタイマをリセットする。
これに加えて、PMSPは、複製されたPMReqメッセージについての前のPMAcceptメッセージを送信した時にタイマを装備していた場合、PMAcceptメッセージの再送時にそのタイマをリセットする。
PMSP204が、接続ピア201をサービスにアタッチしようと試みている時、そのサービスは、利用可能または利用不能の2つの状態の一方を有することができる。
PMSPは、複製のPMReqメッセージ301を受信すると、要求されたサービスの最も近時の状態を使用して、そのPMReqに対し(PMAccept302またはPMDeny304のいずれかで)応答することができる。
PMSPは、複製のPMReqメッセージ301を受信すると、要求されたサービスの最も近時の状態を使用して、そのPMReqに対し(PMAccept302またはPMDeny304のいずれかで)応答することができる。
上述した方法によって、PMSP204は、要求されたサービスに関する最も近時の状態情報の通信を試みる。
しかしながら、ポートマッパプロトコル210は、UDP/IPにマッピングされるので、受信時にメッセージを再配列できる可能性がある。
したがって、PMSPが複製のPMReqメッセージ301を受信し、PMSPがその応答をPMAcceptからPMDenyへ、または、PMDenyからPMAcceptへ変更すると、その応答は、順序通りに受信されない可能性がある。
この場合、PMクライアント203は、PMSPから受信した最初の応答を使用する。
しかしながら、ポートマッパプロトコル210は、UDP/IPにマッピングされるので、受信時にメッセージを再配列できる可能性がある。
したがって、PMSPが複製のPMReqメッセージ301を受信し、PMSPがその応答をPMAcceptからPMDenyへ、または、PMDenyからPMAcceptへ変更すると、その応答は、順序通りに受信されない可能性がある。
この場合、PMクライアント203は、PMSPから受信した最初の応答を使用する。
PMSP204が、当該PMSP204がすでにPMAccept302を返信したトランザクションのPMReq301を受信したが、AssocHandle1107が前の要求と一致しない場合、PMSPは、前の要求に関連した状態の廃棄およびクリーンアップを行い、新たなPMReqを通常通り処理する。
この要求のPMSP状態が削除された後に複製メッセージが到着すると、PMSPは、その複製メッセージを新たな要求とみなし、応答を生成することに留意されたい。
前の応答が接続ピア201による作用を受けていた場合、最新の応答は、一致した状況を有しないはずであり、したがって、PMクライアント203によって廃棄される。
この要求のPMSP状態が削除された後に複製メッセージが到着すると、PMSPは、その複製メッセージを新たな要求とみなし、応答を生成することに留意されたい。
前の応答が接続ピア201による作用を受けていた場合、最新の応答は、一致した状況を有しないはずであり、したがって、PMクライアント203によって廃棄される。
[ポートマッピングポリシー管理]
本ポートマッピングシステムでは、ポリシー管理は、所与のイベントをどのようにハンドリングするかを定義するルールによって統制される。
例えば、ポリシー管理を使用して、CP201またはAP202のいずれかが所与のサービスに使用する最適なRNIC105を決定することができる。
このように決定されたRNICは、所与のエンドノード102における複数のRNICの1つである場合もあるし、別個のエンドノードにおけるものである場合もある。
例示の一実施の形態では、PMAおよびPMSP/PMクライアントは、ツーウェイ交換要求応答通信を介して情報を交換する。
このツーウェイ交換要求応答通信では、PMSP/PMクライアントが、どのポートをマッピングするかに関する情報、および、RNICを特定するのに使用されるIPアドレスを要求する。
PMA501(*)は、1回限りの情報を返すこともできるし、PMSPが1組の資源を或る期間の間キャッシュできることを示す情報を返すこともできる。
本ポートマッピングシステムでは、ポリシー管理は、所与のイベントをどのようにハンドリングするかを定義するルールによって統制される。
例えば、ポリシー管理を使用して、CP201またはAP202のいずれかが所与のサービスに使用する最適なRNIC105を決定することができる。
このように決定されたRNICは、所与のエンドノード102における複数のRNICの1つである場合もあるし、別個のエンドノードにおけるものである場合もある。
例示の一実施の形態では、PMAおよびPMSP/PMクライアントは、ツーウェイ交換要求応答通信を介して情報を交換する。
このツーウェイ交換要求応答通信では、PMSP/PMクライアントが、どのポートをマッピングするかに関する情報、および、RNICを特定するのに使用されるIPアドレスを要求する。
PMA501(*)は、1回限りの情報を返すこともできるし、PMSPが1組の資源を或る期間の間キャッシュできることを示す情報を返すこともできる。
図12〜図15は、ポートマッピングポリシーのさまざまな態様を実施するのに使用できる例示のモデルを示している。
図12は、アウトバウンドRNIC105(1)が選択される例示のポートマッピングポリシー管理のシナリオを示す図である。
図12に示すように、CP201は、2つ以上のRNIC105(*)を含むことができる。
ターゲットサービス/リモートエンドノード102(R)は、先に示したように、サービス解決中に(例えば、getservbyname()要求によって)導出された情報、または、接続処理中に(例えば、connect()コールからのconnect()要求を介して)導出された情報から特定される。
図12は、アウトバウンドRNIC105(1)が選択される例示のポートマッピングポリシー管理のシナリオを示す図である。
図12に示すように、CP201は、2つ以上のRNIC105(*)を含むことができる。
ターゲットサービス/リモートエンドノード102(R)は、先に示したように、サービス解決中に(例えば、getservbyname()要求によって)導出された情報、または、接続処理中に(例えば、connect()コールからのconnect()要求を介して)導出された情報から特定される。
ローカルPMクライアント203は、相互接続インターフェースライブラリ1201(例示の一実施の形態ではソケットライブラリである)にアクセスして、有効なポートマッピングがあるかどうかを判断することができる。
本明細書で使用するように、「ソケットライブラリ」は、ソケットインフラストラクチャにアクセスするアプリケーションによって使用されるメカニズムの一般名称である。
本説明は、ソケットの実施態様を対象とするが、明示的なアクセスまたはトランスペアレントなアクセス(図12に示すような)をメッセージパッシングインターフェース等の他の相互接続インターフェースライブラリに適用することができる。
本明細書で使用するように、「ソケットライブラリ」は、ソケットインフラストラクチャにアクセスするアプリケーションによって使用されるメカニズムの一般名称である。
本説明は、ソケットの実施態様を対象とするが、明示的なアクセスまたはトランスペアレントなアクセス(図12に示すような)をメッセージパッシングインターフェース等の他の相互接続インターフェースライブラリに適用することができる。
PMクライアント203は、ローカルポリシー管理エージェントまたは集中化ポリシー管理エージェント(PMA)1202を調べて、アプリケーション101がRDMAポートを使用して促進されるべきかどうかを判断することができ、また、例えばRNIC105(1)といったターゲットのアウトバウンドRNICを特定することもできる。
PMA1202は、資源マネージャ1203と協力して、アプリケーション特有の資源要件および制限を決定することができ、リモートエンドノードIPアドレスを調べて、CP201に関連したRNICのいずれかがこのエンドノード102(R)に到達できるかどうかを判断することができる。
また、PMA1202は、アプリケーション特有のポリシー管理を提供する資源マネージャ1203にアクセスして、選択されたRNIC105(1)が利用可能な資源を有するかどうか、および、関連したアプリケーション101の負荷が軽減されるべきかどうかを判断することもできる。
PMA1202は、資源マネージャ1203と協力して、アプリケーション特有の資源要件および制限を決定することができ、リモートエンドノードIPアドレスを調べて、CP201に関連したRNICのいずれかがこのエンドノード102(R)に到達できるかどうかを判断することができる。
また、PMA1202は、アプリケーション特有のポリシー管理を提供する資源マネージャ1203にアクセスして、選択されたRNIC105(1)が利用可能な資源を有するかどうか、および、関連したアプリケーション101の負荷が軽減されるべきかどうかを判断することもできる。
これに加えて、PMA1202は、ルーティングテーブル(ローカルまたはリモートのいずれか(図示せず))にアクセスして、RNIC105(*)を選択することもできる。
適切なRNIC105(*)の選択は、さまざまな判定基準に基づくことができ、例えば、負荷バランシング、RNIC属性および資源、QoS(サービス品質)分離(segregation)等に基づくことができる。
例えば、RNIC105(1)は高優先度のトラフィックをハンドリングすることができる一方、RNIC105(2)はベストエフォートに基づいてトラフィックをハンドリングする。
適切なRNIC105(*)の選択は、さまざまな判定基準に基づくことができ、例えば、負荷バランシング、RNIC属性および資源、QoS(サービス品質)分離(segregation)等に基づくことができる。
例えば、RNIC105(1)は高優先度のトラフィックをハンドリングすることができる一方、RNIC105(2)はベストエフォートに基づいてトラフィックをハンドリングする。
[ポリシー管理判定基準]
例示のポリシー管理判定基準には、以下のものが含まれる。
−ターゲットサービスの検査:
サポートできるサービスの個数はエンドノードごとに変化する。
ターゲットサービスの仕事負荷は、現在のエンドノードの仕事負荷と組み合わせられるべきであり、新たなRDMAセッションが確立されるべきかどうかを判断すべきである。
サービスは、関連したユーザに応じて考慮することができる。
例えば、QoS/サービスレベルの目標ベースのポリシーは、サービス課金、公平目的でのエンドノード(または複数のエンドノード)およびファブリックにおける他のアクティビティに対するアクセス量等のユーザ属性に応じて考慮することができる。
アプリケーションのプロセッサセット(プロセッサを含めて、アプリケーションが実行される利用可能な計算素子のサブセット)には、RNIC/資源のサブセットおよびQoS、すなわち、サービス(個数およびタイプ)の選択、ターゲットRNIC等を割り当てることができる。
これを所与のプロセッサセットについて最適化して、システム自体におけるアクセスを改善することができる。
−所与のサービス用のCPの検査:
所与のCPの促進されるセッションの個数は、サービスごとにもしくはサービスを集約したものごとに制限することもできるし、サービスユーザおよびそのユーザによって実行されているトランザクションタイプと組み合わせて(例えば、ブラウジング対トランザクションサービス)制限することもできる。
−APの試験:
十分な資源が特定のAPに利用可能でなければならない。
サービスを提供できる複数のターゲットAPが存在する場合がある。
多くのエンドノードのうちの1つが、関連したサービスを提供できる場合があり、この関連したサービスは、任意の個数のRNICにわたる場合がある。
RNICは、互いに統一性がある場合、集約グループとして取り扱うことができる。
例示のポリシー管理判定基準には、以下のものが含まれる。
−ターゲットサービスの検査:
サポートできるサービスの個数はエンドノードごとに変化する。
ターゲットサービスの仕事負荷は、現在のエンドノードの仕事負荷と組み合わせられるべきであり、新たなRDMAセッションが確立されるべきかどうかを判断すべきである。
サービスは、関連したユーザに応じて考慮することができる。
例えば、QoS/サービスレベルの目標ベースのポリシーは、サービス課金、公平目的でのエンドノード(または複数のエンドノード)およびファブリックにおける他のアクティビティに対するアクセス量等のユーザ属性に応じて考慮することができる。
アプリケーションのプロセッサセット(プロセッサを含めて、アプリケーションが実行される利用可能な計算素子のサブセット)には、RNIC/資源のサブセットおよびQoS、すなわち、サービス(個数およびタイプ)の選択、ターゲットRNIC等を割り当てることができる。
これを所与のプロセッサセットについて最適化して、システム自体におけるアクセスを改善することができる。
−所与のサービス用のCPの検査:
所与のCPの促進されるセッションの個数は、サービスごとにもしくはサービスを集約したものごとに制限することもできるし、サービスユーザおよびそのユーザによって実行されているトランザクションタイプと組み合わせて(例えば、ブラウジング対トランザクションサービス)制限することもできる。
−APの試験:
十分な資源が特定のAPに利用可能でなければならない。
サービスを提供できる複数のターゲットAPが存在する場合がある。
多くのエンドノードのうちの1つが、関連したサービスを提供できる場合があり、この関連したサービスは、任意の個数のRNICにわたる場合がある。
RNICは、互いに統一性がある場合、集約グループとして取り扱うことができる。
図13は、インバウンドRNIC105(*)が選択される例示のポートマッピングポリシー管理のシナリオを示す図である。
図13に示すように、AP202は、2つ以上のRNIC105(*)を含むことができる。
PMSP204がCP201によって開始されたポートマッパ要求を受信した場合において、受信したAplPaddr1109が、例えばRNIC105(3)といった特定のAP RNICと1対1に一致するものであるとき、AP202ハードウェアは、特定されたものとみなすことができる。
受信したAplPaddr1109が、N個の受諾ピアのRNIC105(*)と1対N対応を有する場合、AP202にローカルなポリシーは、どのRNIC105(*)を選択するかを判断する。
いずれの場合も、PMSP204は、PMA1202とコンタクトし、さまざまな判定基準を使用してサービスを促進すべきかどうかを判断する。
これらローカルなポリシー判定基準には、以下で詳述するように、例えば、利用可能なRNIC属性/資源、サービスQoS要件、ならびに、APエンドノードの稼動中の負荷および特定のサービスがエンドノードの負荷に及ぼす影響が含まれ得る。
図13に示すように、AP202は、2つ以上のRNIC105(*)を含むことができる。
PMSP204がCP201によって開始されたポートマッパ要求を受信した場合において、受信したAplPaddr1109が、例えばRNIC105(3)といった特定のAP RNICと1対1に一致するものであるとき、AP202ハードウェアは、特定されたものとみなすことができる。
受信したAplPaddr1109が、N個の受諾ピアのRNIC105(*)と1対N対応を有する場合、AP202にローカルなポリシーは、どのRNIC105(*)を選択するかを判断する。
いずれの場合も、PMSP204は、PMA1202とコンタクトし、さまざまな判定基準を使用してサービスを促進すべきかどうかを判断する。
これらローカルなポリシー判定基準には、以下で詳述するように、例えば、利用可能なRNIC属性/資源、サービスQoS要件、ならびに、APエンドノードの稼動中の負荷および特定のサービスがエンドノードの負荷に及ぼす影響が含まれ得る。
PMA1202が、どの判定基準がローカルポリシーの決定に利用可能であるかを判断した後、PMSP204は、開始されるサービスを促進すべきかどうかを判断するために、当該サービスをPMAに通知する。
そのサービスが促進されるものである場合、PMSP204は、ハードウェア(RNICを論理的に特定するIPアドレスを介して)およびマッピングされたポート(RDMAリスンポート)を特定して、PMAcceptメッセージで返す。
PMSP204は、所与のサービスの適切なハードウェアを特定すると、この情報をキャッシュして、多数のセッションを予約することができる(確立または予約されたこれら多数のセッションはPMA1202が追跡することができる)。
PMSP204は、ハードウェアを特定すると、そのハードウェアの関連資源のすべておよび実行ノードも特定して、その後の接続要求(例えば、TCP SYN)を迅速に処理することを可能にすることができる。
これらのハードウェア関連資源には、接続状況、メモリマッピング、QoS目的のスケジューリングリング(scheduling ring)等が含まれる。
PMSP204は、資源をキャッシュまたは予約すると、新たなポートマップ要求ごとにPMA1202と相互作用することを回避でき、単に、自身のキャッシュから動作して、マッピング要求を完了することができる。
そのサービスが促進されるものである場合、PMSP204は、ハードウェア(RNICを論理的に特定するIPアドレスを介して)およびマッピングされたポート(RDMAリスンポート)を特定して、PMAcceptメッセージで返す。
PMSP204は、所与のサービスの適切なハードウェアを特定すると、この情報をキャッシュして、多数のセッションを予約することができる(確立または予約されたこれら多数のセッションはPMA1202が追跡することができる)。
PMSP204は、ハードウェアを特定すると、そのハードウェアの関連資源のすべておよび実行ノードも特定して、その後の接続要求(例えば、TCP SYN)を迅速に処理することを可能にすることができる。
これらのハードウェア関連資源には、接続状況、メモリマッピング、QoS目的のスケジューリングリング(scheduling ring)等が含まれる。
PMSP204は、資源をキャッシュまたは予約すると、新たなポートマップ要求ごとにPMA1202と相互作用することを回避でき、単に、自身のキャッシュから動作して、マッピング要求を完了することができる。
PMA1202は、AP202と協力して、その後のRDMAセッションの確立用に資源を予約することができる。
ポートマッピングオペレーションが成功すると、PMSP204は、適切なAplPaddr1109、および、APポートフィールド1105で示されたサービスポート103(*)を有するPMAcceptメッセージ302を返す。
ポートマッピングオペレーションが成功すると、PMSP204は、適切なAplPaddr1109、および、APポートフィールド1105で示されたサービスポート103(*)を有するPMAcceptメッセージ302を返す。
図14は、単一のターゲットIPアドレスが、複数のRNIC105(*)を表すのに使用される例示のポートマッピングポリシー管理のシナリオを示す図である。
図14では、接続ピア201(またはCP201のPMクライアント203)は、AP202における一意のAP IPポートマッピングアドレスをターゲットにする。
集中化PMSP204(またはAP202にローカルなPMSP)が、ポートマッピング要求を受信し、ローカルまたは中央のPMA1202に問い合わせを行って、アプリケーション101を促進するかどうかに関するローカルポリシーを決定し、促進する場合には、どのRNIC105(*)を使用すべきかを決定する。
PMA1202は、資源マネージャ1203と情報を交換して、ローカルポートマッピングポリシーを決定することができる。
図14では、接続ピア201(またはCP201のPMクライアント203)は、AP202における一意のAP IPポートマッピングアドレスをターゲットにする。
集中化PMSP204(またはAP202にローカルなPMSP)が、ポートマッピング要求を受信し、ローカルまたは中央のPMA1202に問い合わせを行って、アプリケーション101を促進するかどうかに関するローカルポリシーを決定し、促進する場合には、どのRNIC105(*)を使用すべきかを決定する。
PMA1202は、資源マネージャ1203と情報を交換して、ローカルポートマッピングポリシーを決定することができる。
PMSP204は、このように決定されたポリシーを適用して、図14のCP201によって示された単一のエンドノード内の複数のRNICから適切なRNIC105(*)を選択する。
この例では、単一のIPアドレスがAP202によってアドバタイズされるものと仮定し、そのアドレスはRNIC105(1)およびRNIC105(2)のIPアドレスを集約するのに使用されるものと仮定する。
CP201が、ポートマッピング用のAP IPアドレス1.2.3.4をターゲットにすると、PMSP204は、IPアドレスがターゲットIPアドレスに集約されたRNIC105(*)のうち適切なものを選択する。
次に、CP201は、PMAcceptメッセージ302のAplPaddr1109を、選択されたRNIC(例えば、図14のRNIC105(1))の対応するIPアドレスに設定し、適切なAplPaddr1109を有するPMAcceptメッセージ302でCP201に応答して、CP201とAP202との間の一意のRDMAポートの関連付けを作成する。
この例では、単一のIPアドレスがAP202によってアドバタイズされるものと仮定し、そのアドレスはRNIC105(1)およびRNIC105(2)のIPアドレスを集約するのに使用されるものと仮定する。
CP201が、ポートマッピング用のAP IPアドレス1.2.3.4をターゲットにすると、PMSP204は、IPアドレスがターゲットIPアドレスに集約されたRNIC105(*)のうち適切なものを選択する。
次に、CP201は、PMAcceptメッセージ302のAplPaddr1109を、選択されたRNIC(例えば、図14のRNIC105(1))の対応するIPアドレスに設定し、適切なAplPaddr1109を有するPMAcceptメッセージ302でCP201に応答して、CP201とAP202との間の一意のRDMAポートの関連付けを作成する。
図15は、複数のRNIC105(*)が、異なるエンドノードに存在する例示のポートマッピングポリシー管理のシナリオを示す図である。
図15に示すエンドノードの双方は受諾ピア202であるが、本明細書で説明するように、適切なRNIC105(*)を選択することは、異なるエンドノードに複数のRNICを有するCP201またはAP202のいずれにも適用可能である。
ポートマッピングポリシーが最適なエンドノードによって導出され、それによって、例えば、アプリケーションインスタンスまたはQoSベースのパス選択の機能を起動することができる。
図15に示すエンドノードの双方は受諾ピア202であるが、本明細書で説明するように、適切なRNIC105(*)を選択することは、異なるエンドノードに複数のRNICを有するCP201またはAP202のいずれにも適用可能である。
ポートマッピングポリシーが最適なエンドノードによって導出され、それによって、例えば、アプリケーションインスタンスまたはQoSベースのパス選択の機能を起動することができる。
図15では、単一の集約IPアドレスがAP202によってアドバタイズされる。
図15に示すように、エンドノードの受諾ピア202(1)および202(2)は、1.2.3.4の集約IPアドレス(AplPaddr1109)を有し、そのRNIC105(1)〜105(4)は、それぞれ1.2.3.123、1.2.3.124、1.2.3.125、および1.2.3.126のIPアドレスを有する。
受諾ピア201がPMReqメッセージ301を受信すると、関連したPMSP204は、ローカル/集中化PMA1202および/または資源マネージャ1203を含む1つまたは2つ以上のポリシー管理エンティティと協力して、最適なエンドノードおよびRNIC105(*)を決定する。
この例では、矢印1501によって示すように、IPアドレス1.2.3.125を有し、AP202(2)に存在するRNIC105(3)が、最適なRNIC/エンドノード対を構成する。
図15に示すように、エンドノードの受諾ピア202(1)および202(2)は、1.2.3.4の集約IPアドレス(AplPaddr1109)を有し、そのRNIC105(1)〜105(4)は、それぞれ1.2.3.123、1.2.3.124、1.2.3.125、および1.2.3.126のIPアドレスを有する。
受諾ピア201がPMReqメッセージ301を受信すると、関連したPMSP204は、ローカル/集中化PMA1202および/または資源マネージャ1203を含む1つまたは2つ以上のポリシー管理エンティティと協力して、最適なエンドノードおよびRNIC105(*)を決定する。
この例では、矢印1501によって示すように、IPアドレス1.2.3.125を有し、AP202(2)に存在するRNIC105(3)が、最適なRNIC/エンドノード対を構成する。
複数の接続ピア201(*)に複数のRNICが存在する場合、最適なCP201(図15に図示せず)は、所与のエンドノードで実行されているアプリケーションが決定することができ、PMA204、PMA1202、および/または資源マネージャ1203を含むポリシー管理エンティティによって選択されるように、ターゲットサービス、サービス/システムQoS、RNIC資源等の組み合わせを使用して、最適なRNIC105(*)が決定される。
[トランスペアレントなサービス移動]
ファブリックへのRNICアクセスは、ケーブルの分離または故障、スイッチの故障等を含む多くの理由によって機能しないことがある。
機能しないRNIC105(*)がマルチポートであり、他のポートが、対象となるCP201/AP202にアクセスできる場合において、十分な資源がそのRNICの当該他のポートに存在するとき、フェイルオーバをRNIC内に含めることができる。
例えば、図15の図では、受諾ピア202(2)のRNIC105(3)が機能しなくなると、破線の矢印1502によって示すように、同じエンドノード(例えば、接続ピア202(2))のRNIC105(3)からRNIC105(4)へ移動することによって、フェイルオーバを実行することができる。
ファブリックへのRNICアクセスは、ケーブルの分離または故障、スイッチの故障等を含む多くの理由によって機能しないことがある。
機能しないRNIC105(*)がマルチポートであり、他のポートが、対象となるCP201/AP202にアクセスできる場合において、十分な資源がそのRNICの当該他のポートに存在するとき、フェイルオーバをRNIC内に含めることができる。
例えば、図15の図では、受諾ピア202(2)のRNIC105(3)が機能しなくなると、破線の矢印1502によって示すように、同じエンドノード(例えば、接続ピア202(2))のRNIC105(3)からRNIC105(4)へ移動することによって、フェイルオーバを実行することができる。
マルチポートRNIC内にフェイルオーバを実行するのに十分な資源がない場合、RNICの状態を同じエンドノードの別のRNICへ移動させることができる。
ローカルなフェイルオーバが可能でなく、資源を十分に有しないRNICが稼動中である場合、RNICの状態を1つまたは2つ以上のスペアのRNICへ移動させることができる。
これらスペアのRNICは、アイドル/スタンバイのRNIC、または、コンフリクトを起こしていない利用可能な資源状態を有するアクティブなRNICのいずれかである。
ローカルなフェイルオーバが可能でなく、資源を十分に有しないRNICが稼動中である場合、RNICの状態を1つまたは2つ以上のスペアのRNICへ移動させることができる。
これらスペアのRNICは、アイドル/スタンバイのRNIC、または、コンフリクトを起こしていない利用可能な資源状態を有するアクティブなRNICのいずれかである。
ターゲットのフェイルオーバRNICは、N個のアクティブなRNICに対して単一のスタンバイのRNICが存在する場合には、N+1の配置で構成することもできるし、複数(M個)のスタンバイのまたはアクティブ/利用可能なRNICが存在する場合には、N+M個のRNICの構成とすることもできる。
スタンバイのRNICは、その追加ポートがアクティブでなく、したがって、RNICの残りと衝突なしで使用できるマルチポートRNICとすることができる。
この場合、すべてのRNICは、アクティブの場合があるが、すべてのRNICのすべてのポートがアクティブであるとは限らない。
スタンバイのRNICは、その追加ポートがアクティブでなく、したがって、RNICの残りと衝突なしで使用できるマルチポートRNICとすることができる。
この場合、すべてのRNICは、アクティブの場合があるが、すべてのRNICのすべてのポートがアクティブであるとは限らない。
図15の例には、エンドノード間のフェイルオーバも示されている。
図15の例では、受諾ピア202(2)におけるRNIC105(3)は、矢印1501によって示すように、最初にCP201によってターゲットとされる。
この例では、最初のターゲットRNIC105(3)の故障によって、AP202(2)から異なるエンドノードのAP202(1)へのRNICの移動が引き起こされる。
これによって、破線の矢印1503によって示すように、CP201は、AP202(1)のRNIC105(1)をターゲットとすることが可能になる。
エンドノード間のフェイルオーバは、RNICの移動に加えて、アプリケーション/セッション状態の移動を必要とする。
アプリケーションは、ターゲットのフェイルオーバエンドノードにおいてトランスペアレントに再開することができる。
このアプリケーションの再開は、アプリケーションの状態を使用して、故障前の優れたオペレーションを再生することによって行われ、エンドユーザが遭遇するサービスダウン時間が最小となるように行われる。
図15の例では、受諾ピア202(2)におけるRNIC105(3)は、矢印1501によって示すように、最初にCP201によってターゲットとされる。
この例では、最初のターゲットRNIC105(3)の故障によって、AP202(2)から異なるエンドノードのAP202(1)へのRNICの移動が引き起こされる。
これによって、破線の矢印1503によって示すように、CP201は、AP202(1)のRNIC105(1)をターゲットとすることが可能になる。
エンドノード間のフェイルオーバは、RNICの移動に加えて、アプリケーション/セッション状態の移動を必要とする。
アプリケーションは、ターゲットのフェイルオーバエンドノードにおいてトランスペアレントに再開することができる。
このアプリケーションの再開は、アプリケーションの状態を使用して、故障前の優れたオペレーションを再生することによって行われ、エンドユーザが遭遇するサービスダウン時間が最小となるように行われる。
図16は、予想された通信エンドノード、すなわち接続ピア201および受諾ピア202のそれぞれに関連した例示の1組のポリシー管理関数F1およびF2を示す図である。
関数F1は、PMクライアントのポリシー管理関数であり、関数F2は、AP202に関連したPMSP204のポリシー管理関数である。
関数F1およびF2は、各ポリシー管理エージェント501(1)および501(2)を介して実施される。
ポリシー管理エージェント501(1)および501(2)は、それぞれPMクライアント203のポートマッピングポリシーおよびPMサービスプロバイダ204のポートマッピングポリシーを実施する。
例示の実施の形態では、各PMA501(*)は、スタンドアロンオペレーションを行うことができるが、付加的な知能または制御が必要とされる場合には、資源マネージャ1203等の外部資源管理エンティティから入力を受け付けることもできる。
図16の実施の形態では、システムデータおよびポリシールールを含む入力パラメータ1601は、資源マネージャ1203によってアクセス可能なパラメータストレージ1600に記憶される。
スタンドアロンオペレーションでは、PMA501(*)が外部ポリシー管理源からの入力なしにポリシー管理を実施する場合、入力パラメータ1601は、PMA501(*)にとってローカルまたはリモートのいずれかでアクセス可能なメモリ1602(*)に記憶することができる。
関数F1は、PMクライアントのポリシー管理関数であり、関数F2は、AP202に関連したPMSP204のポリシー管理関数である。
関数F1およびF2は、各ポリシー管理エージェント501(1)および501(2)を介して実施される。
ポリシー管理エージェント501(1)および501(2)は、それぞれPMクライアント203のポートマッピングポリシーおよびPMサービスプロバイダ204のポートマッピングポリシーを実施する。
例示の実施の形態では、各PMA501(*)は、スタンドアロンオペレーションを行うことができるが、付加的な知能または制御が必要とされる場合には、資源マネージャ1203等の外部資源管理エンティティから入力を受け付けることもできる。
図16の実施の形態では、システムデータおよびポリシールールを含む入力パラメータ1601は、資源マネージャ1203によってアクセス可能なパラメータストレージ1600に記憶される。
スタンドアロンオペレーションでは、PMA501(*)が外部ポリシー管理源からの入力なしにポリシー管理を実施する場合、入力パラメータ1601は、PMA501(*)にとってローカルまたはリモートのいずれかでアクセス可能なメモリ1602(*)に記憶することができる。
AP202またはCP201は、入力パラメータ情報を使用して、PMA501(*)と共にポートマッピングポリシーを実施することができる。
CP201は、AP202とほぼ同じように入力パラメータ情報を使用して、例えば、サービスを促進すべきかどうか、どの資源(エンドノード、RNIC等)を使用するのか、促進するインスタンス数、PMが資源をキャッシュ/予約することが可能かどうか等を特定する。
通信チャネルのいずれかの側で使用できる入力パラメータ1601(すなわち、接続ピア201または受諾ピア202のいずれかに適用可能なパラメータ)の例には、次のものが含まれる。
−例えばRNICといった通信デバイスの個数。
−アプリケーション/サービス属性、および、所与のエンドノード/デバイスでそれらアプリケーション/サポート属性をサポートする能力。
例えば、分散データベースセッションを作成することによって、ウェブサーバセッションとは異なるレベルの資源(例えば、CPU、メモリ、I/O)が必要となることがある。
特定のサービスに関する情報を使用して、一定の資源をどのように割り当てるべきかを決定することができ、また、実行の優先度、サービスのロケーション(例えば、エンドノードおよびデバイス)を決定することもできる。
−各エンドノードおよび各エンドノードデバイスにおける現在の仕事負荷。
−サービスがトランスペアレントな高可用性サービスを必要とするかどうか。
例えば、フェイルオーバ時の資源の再バランシングが、資源の可用性に応じて実行される場合に、2つ以上のデバイス間のトランスペアレントなフェイルオーバ。
−デバイスリンクの帯域幅および予想された資源要件。
CP201は、AP202とほぼ同じように入力パラメータ情報を使用して、例えば、サービスを促進すべきかどうか、どの資源(エンドノード、RNIC等)を使用するのか、促進するインスタンス数、PMが資源をキャッシュ/予約することが可能かどうか等を特定する。
通信チャネルのいずれかの側で使用できる入力パラメータ1601(すなわち、接続ピア201または受諾ピア202のいずれかに適用可能なパラメータ)の例には、次のものが含まれる。
−例えばRNICといった通信デバイスの個数。
−アプリケーション/サービス属性、および、所与のエンドノード/デバイスでそれらアプリケーション/サポート属性をサポートする能力。
例えば、分散データベースセッションを作成することによって、ウェブサーバセッションとは異なるレベルの資源(例えば、CPU、メモリ、I/O)が必要となることがある。
特定のサービスに関する情報を使用して、一定の資源をどのように割り当てるべきかを決定することができ、また、実行の優先度、サービスのロケーション(例えば、エンドノードおよびデバイス)を決定することもできる。
−各エンドノードおよび各エンドノードデバイスにおける現在の仕事負荷。
−サービスがトランスペアレントな高可用性サービスを必要とするかどうか。
例えば、フェイルオーバ時の資源の再バランシングが、資源の可用性に応じて実行される場合に、2つ以上のデバイス間のトランスペアレントなフェイルオーバ。
−デバイスリンクの帯域幅および予想された資源要件。
各関数F1/F2の入力パラメータ1601は、ポートマッピング管理ポリシーによって決定された属性、および、現在のタイプのセッションのサービスデータレートである。
また、入力パラメータ1601は、ポートマッピングパラメータの永久的なまたは長期間のキャッシュもサポートして、高速接続の確立の使用を可能にすることもできる。
上述した入力パラメータは例であり、本システムと共に使用できる入力パラメータは本明細書で具体的に説明したものに限定されるものではないことに留意すべきである。
また、入力パラメータ1601は、ポートマッピングパラメータの永久的なまたは長期間のキャッシュもサポートして、高速接続の確立の使用を可能にすることもできる。
上述した入力パラメータは例であり、本システムと共に使用できる入力パラメータは本明細書で具体的に説明したものに限定されるものではないことに留意すべきである。
(PMクライアント203/CP201の)関数F1および/または(PMSP204/AP202の)関数F2は、通常、対応するPMA501(*)が1組のポリシー管理入力パラメータ1601を使用して実施する。
この1組のポリシー管理入力パラメータ1601は、ポリシールールを含み、例えば、資源マネージャ1203によって提供される。
各入力パラメータ1601は、簡単な値とすることができ、例えば、整数量で示された利用可能なメモリ量とすることができる。
あるいは、入力パラメータは、可変とすることもでき、かつ、所与の資源のアプリケーション使用要件、および、通信対アプリケーション実行に適用できる特定の資源の相対的な量を含む因子を考慮する関数(以下では、「主(primary)」関数F1およびF2と区別するために「サブ関数(sub-function)」と呼ぶ)によって記述することもできる。
各ポリシールールは、関数(例えば、CPの場合、F1)に関連付けられ、1つまたは2つ以上の関連したサブ関数を有することができる。
これら1つまたは2つ以上の関連したサブ関数は、関数F1またはF2の一部として評価されて、適用可能な入力パラメータ1601がポートマッピングをサポートするかどうかを判断するものである。
この1組のポリシー管理入力パラメータ1601は、ポリシールールを含み、例えば、資源マネージャ1203によって提供される。
各入力パラメータ1601は、簡単な値とすることができ、例えば、整数量で示された利用可能なメモリ量とすることができる。
あるいは、入力パラメータは、可変とすることもでき、かつ、所与の資源のアプリケーション使用要件、および、通信対アプリケーション実行に適用できる特定の資源の相対的な量を含む因子を考慮する関数(以下では、「主(primary)」関数F1およびF2と区別するために「サブ関数(sub-function)」と呼ぶ)によって記述することもできる。
各ポリシールールは、関数(例えば、CPの場合、F1)に関連付けられ、1つまたは2つ以上の関連したサブ関数を有することができる。
これら1つまたは2つ以上の関連したサブ関数は、関数F1またはF2の一部として評価されて、適用可能な入力パラメータ1601がポートマッピングをサポートするかどうかを判断するものである。
ポリシールールおよび他の入力パラメータ1601を入力として使用して、関数F1および/またはF2を評価することにより、他の要求またはイベントしきい値を更新してターゲットサービスの現在の状態を反映できるように、影響を受けたサービスの状態の変化が示される。
この新たなターゲットサービス状態は、資源が制約されるようになる場合、仕事負荷を再バランシングすべきであることをポリシーが示す場合等に、他のイベントをトリガすることもできる。
したがって、PMAは、ネットワークコンポーネントの故障によっては引き起こされないトランスペアレントなサービス移動の実行を援助することができ、また、IP差別化サービス(IP-differentiated service)パラメータを返すこともできる。
このIP差別化サービスパラメータには、特定のスケジューリングリングへの所与のセッションの割り当て、サービスレート等が含まれ得る。
この新たなターゲットサービス状態は、資源が制約されるようになる場合、仕事負荷を再バランシングすべきであることをポリシーが示す場合等に、他のイベントをトリガすることもできる。
したがって、PMAは、ネットワークコンポーネントの故障によっては引き起こされないトランスペアレントなサービス移動の実行を援助することができ、また、IP差別化サービス(IP-differentiated service)パラメータを返すこともできる。
このIP差別化サービスパラメータには、特定のスケジューリングリングへの所与のセッションの割り当て、サービスレート等が含まれ得る。
上記に示したように、PMA501(*)は、返されるIPアドレスを単に変更することによって、サービスを異なるRNICへ移動させることができ、したがって、異なる可能性のあるエンドノードへ移動させることができる。
これは、進行中の負荷バランシングの一部として行うこともできるし、過度の負荷の検出に応答して行うこともできる。
また、PMAは、セッションをスケジューリングリング等に割り当てて、PMAが消費できる資源量を変更し、負荷を削減してSLA要件に従い既存のサービスまたは新たなサービスをより良くサポートすることもできる。
これは、進行中の負荷バランシングの一部として行うこともできるし、過度の負荷の検出に応答して行うこともできる。
また、PMAは、セッションをスケジューリングリング等に割り当てて、PMAが消費できる資源量を変更し、負荷を削減してSLA要件に従い既存のサービスまたは新たなサービスをより良くサポートすることもできる。
ポリシールールは、さまざまなシステム資源および要件の態様から構成することができる。
これらの資源および要件の態様には、エンドノード内の資源および要件の態様、関連ファブリック、および/またはアプリケーションが含まれる。
ポリシールールを定式化する際に考慮できるシステムの態様には、以下のものが含まれる。
−ターゲットサービスが必要とする接続の個数をサポートするRNICの能力。
各接続は、所与のサービスに関連付けられるが、アプリケーションは、所与の時間比率において、指定された性能レベルでアプリケーションが稼動するサービスレベルの目標を満たすために、複数の接続を必要とすることがある。
ポリシールールを実施することによって、サービスが所与の性能レベルで常に稼動できるように、特定のサービスをサポートするかどうか、または、そのサービス用に多数の接続を予約するかどうかを判断することができる。
ポリシールールが常駐し、したがって、アクセスする際に待ち時間を被らないように、当該ポリシールールは、RNICに永続的に保持されるいくつかの接続状況を割り当てるのに使用することができる。
−メモリマッピング資源。
これらの資源は、制限することもできるし、オプションとしてキャッシュすることもできる。
PMAは、どれだけの量のメモリマッピング資源が必要とされるか、および、サービスをサポートできるかどうかを決定することができる。
−スケジューリングリング、所与のスケジューリングリングにおいてサービスの提供を受ける接続の個数、(異なる優先度の接続は、通常、異なるスケジューリングリングに分離されるので、リング内およびスケジューリングリング間の双方の)アービトレーションレート等のQoS資源。
PMAは、他の接続に悪影響を与えることなく、新たな接続の追加が可能かどうかを判断することができると同時に、その新たな接続が自身のSLA要件を満たすことを確実にすることができる。
−サービスの帯域幅要件。
ポートマッピング用に選択されたRNICは、ポートごとにサービスのニーズを満たす関連した帯域幅を有しなければならない。
関連して考慮すべき事項は、利用可能な帯域幅のどれだけの量が現在、他の接続/サービスによって消費されているかである。
−RNICがマルチポートである場合、帯域幅や待ち時間等のさまざまな属性に基づいて、どのポートを使用すべきであるかについて判断しなければならない。
−RNICが、PCI−XやPCI Express等のローカルI/O技術を介してアタッチされる場合、そのI/Oの関連した帯域幅および動作特性が考慮されるべきである(すなわち、リンクの効率、および、RNICがデバイスの必要な性能を発揮するかどうか)。
−サービスに利用可能なエンドノードメモリ帯域幅およびサービスレートも重要な態様である。
サービスのCPU消費は低い場合があるが、依然として、メモリ(および、I/Oがアタッチされる場合にはI/O帯域幅)の消費量は大きい場合があり、これは、そのエンドノードの他のサービスを妨害する可能性がある。
−所与のエンドノードに複数のRNICが存在する場合、PMAは、(何がどこで実行されているかを追跡することにより)各RNICの状態を評価して、新しい最適なサービス配置を決定することができる。
また、PMAは、各エンドノードの状態を追跡することもできる。
各サービスは、エンドノードに異なった影響を与えることがある。
ミドルウェアをオプションで使用して、例えば、単位時間ごとに発生するサービストランザクションの個数を追跡することにより、各エンドノードの状態を追跡することができる。
トランザクションレートが所与のレベル未満に低下すると、エンドノードは過負荷になるおそれがあり、サービスを他のエンドノードへ移動させることによるか、低い優先度のサービスのスケジューリングレートを低減させることによるか、または、その状況に注意して、過負荷が軽減されるまで新たなサービスが確実に開始されないようにすることによって、負荷バランシングを行うことができる。
他の関連したポリシーは、各RNICが、負荷バランシング技法を使用して新たな接続を適切に割り当て、所与のサービスのN個のインスタンスまたはM個の異なるサービスをサポートできることを単に示すことができるものである。
これらの資源および要件の態様には、エンドノード内の資源および要件の態様、関連ファブリック、および/またはアプリケーションが含まれる。
ポリシールールを定式化する際に考慮できるシステムの態様には、以下のものが含まれる。
−ターゲットサービスが必要とする接続の個数をサポートするRNICの能力。
各接続は、所与のサービスに関連付けられるが、アプリケーションは、所与の時間比率において、指定された性能レベルでアプリケーションが稼動するサービスレベルの目標を満たすために、複数の接続を必要とすることがある。
ポリシールールを実施することによって、サービスが所与の性能レベルで常に稼動できるように、特定のサービスをサポートするかどうか、または、そのサービス用に多数の接続を予約するかどうかを判断することができる。
ポリシールールが常駐し、したがって、アクセスする際に待ち時間を被らないように、当該ポリシールールは、RNICに永続的に保持されるいくつかの接続状況を割り当てるのに使用することができる。
−メモリマッピング資源。
これらの資源は、制限することもできるし、オプションとしてキャッシュすることもできる。
PMAは、どれだけの量のメモリマッピング資源が必要とされるか、および、サービスをサポートできるかどうかを決定することができる。
−スケジューリングリング、所与のスケジューリングリングにおいてサービスの提供を受ける接続の個数、(異なる優先度の接続は、通常、異なるスケジューリングリングに分離されるので、リング内およびスケジューリングリング間の双方の)アービトレーションレート等のQoS資源。
PMAは、他の接続に悪影響を与えることなく、新たな接続の追加が可能かどうかを判断することができると同時に、その新たな接続が自身のSLA要件を満たすことを確実にすることができる。
−サービスの帯域幅要件。
ポートマッピング用に選択されたRNICは、ポートごとにサービスのニーズを満たす関連した帯域幅を有しなければならない。
関連して考慮すべき事項は、利用可能な帯域幅のどれだけの量が現在、他の接続/サービスによって消費されているかである。
−RNICがマルチポートである場合、帯域幅や待ち時間等のさまざまな属性に基づいて、どのポートを使用すべきであるかについて判断しなければならない。
−RNICが、PCI−XやPCI Express等のローカルI/O技術を介してアタッチされる場合、そのI/Oの関連した帯域幅および動作特性が考慮されるべきである(すなわち、リンクの効率、および、RNICがデバイスの必要な性能を発揮するかどうか)。
−サービスに利用可能なエンドノードメモリ帯域幅およびサービスレートも重要な態様である。
サービスのCPU消費は低い場合があるが、依然として、メモリ(および、I/Oがアタッチされる場合にはI/O帯域幅)の消費量は大きい場合があり、これは、そのエンドノードの他のサービスを妨害する可能性がある。
−所与のエンドノードに複数のRNICが存在する場合、PMAは、(何がどこで実行されているかを追跡することにより)各RNICの状態を評価して、新しい最適なサービス配置を決定することができる。
また、PMAは、各エンドノードの状態を追跡することもできる。
各サービスは、エンドノードに異なった影響を与えることがある。
ミドルウェアをオプションで使用して、例えば、単位時間ごとに発生するサービストランザクションの個数を追跡することにより、各エンドノードの状態を追跡することができる。
トランザクションレートが所与のレベル未満に低下すると、エンドノードは過負荷になるおそれがあり、サービスを他のエンドノードへ移動させることによるか、低い優先度のサービスのスケジューリングレートを低減させることによるか、または、その状況に注意して、過負荷が軽減されるまで新たなサービスが確実に開始されないようにすることによって、負荷バランシングを行うことができる。
他の関連したポリシーは、各RNICが、負荷バランシング技法を使用して新たな接続を適切に割り当て、所与のサービスのN個のインスタンスまたはM個の異なるサービスをサポートできることを単に示すことができるものである。
ポリシールールの例として、要求されたサービスの帯域幅要件を扱うルール「R1」を考える。
このようなルールは、「Map the port (to RNIC) only if the RNIC has the associated bandwidth per port to meet the service needs.(RNICがポートごとにサービスのニーズを満たす関連した帯域幅を有する場合にのみ、ポートを(RNICへ)マッピングする。)」等の英語の説明を有することがある。
ルールR1では、以下の3つの関連した入力パラメータがある。
x1=サービスの帯域幅要件
x2=マッピングされるRNICの帯域幅
x3=他の接続/サービス用にRNIC(N)によって現在消費されている帯域幅
このようなルールは、「Map the port (to RNIC) only if the RNIC has the associated bandwidth per port to meet the service needs.(RNICがポートごとにサービスのニーズを満たす関連した帯域幅を有する場合にのみ、ポートを(RNICへ)マッピングする。)」等の英語の説明を有することがある。
ルールR1では、以下の3つの関連した入力パラメータがある。
x1=サービスの帯域幅要件
x2=マッピングされるRNICの帯域幅
x3=他の接続/サービス用にRNIC(N)によって現在消費されている帯域幅
各入力パラメータ1601は、ポートをマッピングできることをポリシールールが示すかどうかを判断する関連したサブ関数を有することができる。
例えば、以下の関数を評価することによって、マッピングされる有効なポートを決定することができる。
F1=F(X)+G(Y)+H(Z)+…
ここで、関数F(X)、G(Y)、H(Z)…はサブ関数であり、X、Y、およびZは入力パラメータ1601(ポリシールールを含む)であり、各サブ関数は、関連したパラメータまたはルールが、要求されたポートマッピングサービスをサポートできるかどうかを検査するものである。
この例では、評価されたサブ関数の結果は論理ORオペレーションを介して結合される。
これによって、ポートをマッピングすべきことを示すサブ関数があれば、ポートマッパワイヤプロトコルを介して戻る利用可能なポートを見つけ出すのに、参照関数(look-up function)を使用できるようになる。
例えば、以下の関数を評価することによって、マッピングされる有効なポートを決定することができる。
F1=F(X)+G(Y)+H(Z)+…
ここで、関数F(X)、G(Y)、H(Z)…はサブ関数であり、X、Y、およびZは入力パラメータ1601(ポリシールールを含む)であり、各サブ関数は、関連したパラメータまたはルールが、要求されたポートマッピングサービスをサポートできるかどうかを検査するものである。
この例では、評価されたサブ関数の結果は論理ORオペレーションを介して結合される。
これによって、ポートをマッピングすべきことを示すサブ関数があれば、ポートマッパワイヤプロトコルを介して戻る利用可能なポートを見つけ出すのに、参照関数(look-up function)を使用できるようになる。
関数F1/F2は、入力として、広範囲の入力パラメータ1601を取ることができる。
この入力パラメータ1601には、エンドノードタイプ、エンドノード資源、RNICタイプ/資源、アプリケーション属性(タイプ、優先度等)、RNIC、エンドノード、またはアタッチされたネットワークにおけるリアルタイム資源/負荷等が含まれる。
関数(F1またはF2)は、最良に適合したCP/AP、RNIC、ポートマッピング等を返す。
各関数F1/F2は、通常、PMA501(*)によって実施されるが、PMAが使用されない環境では、PMSP204またはPMクライアント203によって実施することができる。
この入力パラメータ1601には、エンドノードタイプ、エンドノード資源、RNICタイプ/資源、アプリケーション属性(タイプ、優先度等)、RNIC、エンドノード、またはアタッチされたネットワークにおけるリアルタイム資源/負荷等が含まれる。
関数(F1またはF2)は、最良に適合したCP/AP、RNIC、ポートマッピング等を返す。
各関数F1/F2は、通常、PMA501(*)によって実施されるが、PMAが使用されない環境では、PMSP204またはPMクライアント203によって実施することができる。
エンドノードに対するサービスの影響を求めるために、エンドノードは、所与の性能レベルで動作するのにどの資源が必要とされるかを判断できる必要がある。
1つの解は、アプリケーションレジストリ1602を使用して、サービス資源要件を追跡することである。
このようなレジストリまたは等価のアプオリな知識が利用可能である場合、ポリシー管理エージェント501(*)は、そのレジストリの情報を使用して、ポートマッパ要求で特定されたサービスを検査することができ、サービスを促進すべきかどうかを判断することができる。
レジストリ1602は、促進されるサービスポートの簡単なテーブルとすることができる。
あるいは、PMAが、サービスの現在の集まりが実行されていることを検査することができるように、かつ、この新たなサービスインスタンスがあらゆる既存のSLA要件を満たし続ける間、動作できるかどうかを判断できるように、レジストリ1602は、よりローバストなものとすることができ、PMAに付加情報を提供することができる。
1つの解は、アプリケーションレジストリ1602を使用して、サービス資源要件を追跡することである。
このようなレジストリまたは等価のアプオリな知識が利用可能である場合、ポリシー管理エージェント501(*)は、そのレジストリの情報を使用して、ポートマッパ要求で特定されたサービスを検査することができ、サービスを促進すべきかどうかを判断することができる。
レジストリ1602は、促進されるサービスポートの簡単なテーブルとすることができる。
あるいは、PMAが、サービスの現在の集まりが実行されていることを検査することができるように、かつ、この新たなサービスインスタンスがあらゆる既存のSLA要件を満たし続ける間、動作できるかどうかを判断できるように、レジストリ1602は、よりローバストなものとすることができ、PMAに付加情報を提供することができる。
図17は、ポートマッピング要求を処理する際に実行される例示の1組のハイレベルなステップを示すフローチャートである。
図17に示すように、ステップ1705では、ポートマッピング要求がPMA501(*)によって受信される。
ステップ1710では、PMAがPMクライアント/PCまたはPMSP/APに代わって機能しているかどうかについての判断が行われ、次いで、対応するステップ1715またはステップ1720が実行されて、各関数F1またはF2が実施される。
ステップ1730では、サブ関数(または、他の場所に記憶されている場合には、サブ関数のロケーションの印)を含めて、対応するPMA501(*)の適用可能なルール1601(1)のリスト、および、追加された入力パラメータ1601(2)が、パラメータストレージ1600に記憶された入力パラメータ1601から配置される。
図17に示すように、ステップ1705では、ポートマッピング要求がPMA501(*)によって受信される。
ステップ1710では、PMAがPMクライアント/PCまたはPMSP/APに代わって機能しているかどうかについての判断が行われ、次いで、対応するステップ1715またはステップ1720が実行されて、各関数F1またはF2が実施される。
ステップ1730では、サブ関数(または、他の場所に記憶されている場合には、サブ関数のロケーションの印)を含めて、対応するPMA501(*)の適用可能なルール1601(1)のリスト、および、追加された入力パラメータ1601(2)が、パラメータストレージ1600に記憶された入力パラメータ1601から配置される。
ステップ1735では、適用可能なルール1601(1)およびそれ以外の対応する入力パラメータ1601(2)が適切な関数F1またはF2に適用される。
関数F1またはF2が評価された後、有効なポートマッピングが存在すると判断されると、ステップ1740で、以下の情報の一部またはすべてを含む応答が、対応するPMSP/APまたはPMクライアント/CPに返される。
−CP201によって使用されるターゲットI/Oデバイスまたは通信チャネル、ならびに、各デバイス/チャネルが複数のIPアドレスを割り当てている可能性があるため、使用されるAPターゲットIPアドレス。
−CP201とAP202との間の通信に使用されるターゲット送信元およびリスンソケットポート。
関数F1またはF2が評価された後、有効なポートマッピングが存在すると判断されると、ステップ1740で、以下の情報の一部またはすべてを含む応答が、対応するPMSP/APまたはPMクライアント/CPに返される。
−CP201によって使用されるターゲットI/Oデバイスまたは通信チャネル、ならびに、各デバイス/チャネルが複数のIPアドレスを割り当てている可能性があるため、使用されるAPターゲットIPアドレス。
−CP201とAP202との間の通信に使用されるターゲット送信元およびリスンソケットポート。
図18は、図17のステップ1735を達成するのに実行される例示の1組のステップを示すフローチャートである。
図17のステップ1735では、適用可能なルール1601(1)およびそれ以外の対応する入力パラメータ1601(2)が適切な関数F1またはF2に適用される。
図18に示すように、ステップ1805では、マッピングされたポートが利用可能であるかどうかを判断するチェックが行われる。
RNICポートが現在利用可能でない場合には、その事実を示すPMDenyメッセージがステップ1810で返され、このポートマッピング要求についてのルールの処理は終了する。
RNICポートが現在利用可能である場合には、ステップ1815で、各適用可能なルール1601(1)について、関連したサブ関数が評価されて、入力パラメータがポートマッピングをサポートするかどうかが判断される。
図17のステップ1735では、適用可能なルール1601(1)およびそれ以外の対応する入力パラメータ1601(2)が適切な関数F1またはF2に適用される。
図18に示すように、ステップ1805では、マッピングされたポートが利用可能であるかどうかを判断するチェックが行われる。
RNICポートが現在利用可能でない場合には、その事実を示すPMDenyメッセージがステップ1810で返され、このポートマッピング要求についてのルールの処理は終了する。
RNICポートが現在利用可能である場合には、ステップ1815で、各適用可能なルール1601(1)について、関連したサブ関数が評価されて、入力パラメータがポートマッピングをサポートするかどうかが判断される。
ステップ1817では、少なくとも1つのルールが満たされる場合、適用可能なルールの処理がステップ1818で続けられ、そうでない場合、PMDenyメッセージがステップ1810で返される。
ステップ1818では、要求されたポートマッピングオペレーションの資源要件が、その後のポリシーオペレーションをガイドしてレースの故障(race failure)を回避するために記憶される。
次に、マッピングされたポートに使用される特定のRNICインスタンスおよびIPアドレスがステップ1820で特定される。
ステップ1825では、マッピングが有効である期間を示すPMTimeの値が決定される。
ステップ1818では、要求されたポートマッピングオペレーションの資源要件が、その後のポリシーオペレーションをガイドしてレースの故障(race failure)を回避するために記憶される。
次に、マッピングされたポートに使用される特定のRNICインスタンスおよびIPアドレスがステップ1820で特定される。
ステップ1825では、マッピングが有効である期間を示すPMTimeの値が決定される。
ステップ1830では、マッピングがキャッシュされること、または、PMTimeによって指定された制限時間の間有効であることを示す応答が作成され、ステップ1835では、ポートマッピング要求が受諾されたことを示すPMAcceptメッセージが返される。
PMクライアント/CPの例示の関数F1の擬似コードを以下に示す。
[PMクライアント/CPの例示の擬似コード]
If (ターゲットCPが、利用可能な資源を備えた1つまたは2つ以上のRNICを有する) then {
If (VALID(RNIC_id = F(アプリケーション(B/W要件、優先度、メモリマップ資源、必要な接続数)) {
// ポートマッピングオペレーションの確立を試みることができる
CP_connection = SELECT_CONN(RNIC_id);
予測された(projected)資源要件を記録する;
ポートマッパ要求を送信し、ポートマッパプロトコルを続ける;
} else {
// プロトコルの促進を続けることができないため、通常の接続確立パスを使用する
} else {
// プロトコルの促進を続けることができないため、通常の接続確立パスを使用する
・・・
}
ここで、F(アプリケーション(B/W要件、優先度、メモリマップ資源、必要な接続数)は、1つまたは2つ以上のパラメータ1601を入力として受け取るサブ関数であり、入力パラメータもサブ関数とすることができる。
[PMクライアント/CPの例示の擬似コード]
If (ターゲットCPが、利用可能な資源を備えた1つまたは2つ以上のRNICを有する) then {
If (VALID(RNIC_id = F(アプリケーション(B/W要件、優先度、メモリマップ資源、必要な接続数)) {
// ポートマッピングオペレーションの確立を試みることができる
CP_connection = SELECT_CONN(RNIC_id);
予測された(projected)資源要件を記録する;
ポートマッパ要求を送信し、ポートマッパプロトコルを続ける;
} else {
// プロトコルの促進を続けることができないため、通常の接続確立パスを使用する
} else {
// プロトコルの促進を続けることができないため、通常の接続確立パスを使用する
・・・
}
ここで、F(アプリケーション(B/W要件、優先度、メモリマップ資源、必要な接続数)は、1つまたは2つ以上のパラメータ1601を入力として受け取るサブ関数であり、入力パラメータもサブ関数とすることができる。
関数F1の上記コードに類似した関数F2の1組のロジックが、以下に示すように、PMSP/APによって実行される。
[PMSP/APの例示の擬似コード]
If (潜在的なターゲットAPが、利用可能な1つまたは2つ以上のRNIC資源と共に存在する) then {
If (VALID(RNIC_id = F(アプリケーション(入力パラメータ)) {
// ポートマッピングオペレーションの確立を試みることができる
Returned_AP_IP_addr = SELECT_AP_IP(ポートマッパ要求IPアドレス);
AP_RNIC = SELECT_AP_RNIC(Returned_AP_IP_addr);
予測された資源要件を記録する;
ポートマッパ応答を送信し、ポートマッパプロトコルを続ける;
} else {
// プロトコルの促進を続けることができないため、通常の接続確立パスを使用する
} else {
// プロトコルの促進を続けることができないため、通常の接続確立パスを使用する
・・・
}
[PMSP/APの例示の擬似コード]
If (潜在的なターゲットAPが、利用可能な1つまたは2つ以上のRNIC資源と共に存在する) then {
If (VALID(RNIC_id = F(アプリケーション(入力パラメータ)) {
// ポートマッピングオペレーションの確立を試みることができる
Returned_AP_IP_addr = SELECT_AP_IP(ポートマッパ要求IPアドレス);
AP_RNIC = SELECT_AP_RNIC(Returned_AP_IP_addr);
予測された資源要件を記録する;
ポートマッパ応答を送信し、ポートマッパプロトコルを続ける;
} else {
// プロトコルの促進を続けることができないため、通常の接続確立パスを使用する
} else {
// プロトコルの促進を続けることができないため、通常の接続確立パスを使用する
・・・
}
代替的な実施の形態では、関数F1およびF2は、適用可能な入力パラメータ1601を評価し、これらの関数は、論理式を評価するのではなく、単に、それらの適切な計算およびマッピングを実行して、ポートを直接返す。
ポートマッピングポリシー管理は、ローカルとしてのみまたはグローバルとしてのみ本システムで実施することもできるし、双方のハイブリッドとして本システムで実施することもでき、それによって、ローカルな最適化を可能にすると同時に中央管理の利益を得ることが可能になる。
例えば、この場合、ローカルホットプラグイベントが、利用可能な資源を変更でき、中央ポリシー管理エンティティがイベントに反応する必要がない。
ポリシー管理は、さまざまな方法で実施することができるが、その実施態様は、メッセージパッシングインターフェースで促進することができる。
このメッセージパッシングインターフェースは、ポリシー管理機能を複数のエンドノードにわたって分散させることを可能にし、既存の管理基盤の再利用を可能にする。
例えば、この場合、ローカルホットプラグイベントが、利用可能な資源を変更でき、中央ポリシー管理エンティティがイベントに反応する必要がない。
ポリシー管理は、さまざまな方法で実施することができるが、その実施態様は、メッセージパッシングインターフェースで促進することができる。
このメッセージパッシングインターフェースは、ポリシー管理機能を複数のエンドノードにわたって分散させることを可能にし、既存の管理基盤の再利用を可能にする。
本システムでは、その範囲から逸脱することなく、一定の変更を行うことができる。
上記説明に含まれるすべての事項または添付図面に示すすべての事項は、例示として解釈されるべきであり、限定する意味に解釈されるべきでないことが留意されるべきである。
例えば、図2および図5〜図16に示すシステム構成は、それら図に示すコンポーネント以外のコンポーネントを含むように解釈することができ、それらコンポーネントは、他の構成で配置することができる。
図3A、図3B、図4、図17、および図18に示す要素およびステップも、上述したシステムの趣旨から逸脱することなく、本明細書に説明した方法に従って変更することができる。
上記説明に含まれるすべての事項または添付図面に示すすべての事項は、例示として解釈されるべきであり、限定する意味に解釈されるべきでないことが留意されるべきである。
例えば、図2および図5〜図16に示すシステム構成は、それら図に示すコンポーネント以外のコンポーネントを含むように解釈することができ、それらコンポーネントは、他の構成で配置することができる。
図3A、図3B、図4、図17、および図18に示す要素およびステップも、上述したシステムの趣旨から逸脱することなく、本明細書に説明した方法に従って変更することができる。
201・・・接続ピア,
202・・・受諾ピア,
203・・・PMクライアント,
204・・・PMサービスプロバイダ,
204(L)・・・ポートマッピングサービスプロバイダ,
204(C)・・・ポートマッピングサービスプロバイダ,
205・・・TCPマッピング,
206・・・RDMAマッピング,
207・・・従来のアドレス,
208・・・RDMAアドレス,
210・・・ポートマッパプロトコル,
501(A)〜(D)・・・ローカルポリシー管理エージェント,
601・・・集中化ポリシー管理エージェント,
1201・・・相互接続インターフェースライブラリ,
1202・・・ローカルまたは中央PMA,
1203・・・資源マネージャ,
1600・・・入力パラメータ,
1602(1),(2)・・・メモリ,
1602・・・アプリケーションレジストリ,
202・・・受諾ピア,
203・・・PMクライアント,
204・・・PMサービスプロバイダ,
204(L)・・・ポートマッピングサービスプロバイダ,
204(C)・・・ポートマッピングサービスプロバイダ,
205・・・TCPマッピング,
206・・・RDMAマッピング,
207・・・従来のアドレス,
208・・・RDMAアドレス,
210・・・ポートマッパプロトコル,
501(A)〜(D)・・・ローカルポリシー管理エージェント,
601・・・集中化ポリシー管理エージェント,
1201・・・相互接続インターフェースライブラリ,
1202・・・ローカルまたは中央PMA,
1203・・・資源マネージャ,
1600・・・入力パラメータ,
1602(1),(2)・・・メモリ,
1602・・・アプリケーションレジストリ,
Claims (10)
- アプリケーションによって指定されたRDMA対応でないポート(103(*))を、複数のエンドノード(102(*))を含むネットワークのRDMA対応のポート(103(*))へマッピングするシステムであって、
前記エンドノード(102(*))のうちの第1のエンドノードに配置され、サービスポート(103(*))を介してターゲットサービスを要求する接続ピア(201)と、
前記エンドノード(102(*))のうちの第2のエンドノードに配置され、前記サービスポート(103(*))も配置されている受諾ピア(202)と、
前記アプリケーションの要件を含めて、前記エンドノード(102(*))内のシステム資源の態様および要件を記述した1組のポリシールール(1601(1))と、
前記受諾ピア(202)の代わりにサーバとして機能するポートマッピングサービスプロバイダ(204)と、
前記接続ピア(201)の代わりに前記ポートマッピングサービスプロバイダ(204)と通信し、前記ポリシールール(1601(1))によって示されたポートマッピングポリシーを実施するポートマッパクライアント(203)と
を備え、
前記接続ピア(201)は、前記ポートマッパクライアント(203)を介して、前記ポートマッピングサービスプロバイダ(204)と交渉して、前記アプリケーションによって指定された、ターゲットサービス用の前記サービスポート(103(*))を、前記受諾ピア(202)が、前記ターゲットサービスにアクセスするために使用する関連したRDMAサービスポート(103(*))に変換することによって、ポートマッピング機能を実行する
システム。 - 前記ポートマッピングサービスプロバイダ(204)は、前記受諾ピア(202)と同じ場所に配置される
請求項1に記載のシステム。 - 前記ポートマッピングサービスプロバイダ(204)は、複数の潜在的な受諾ピア(202)および接続ピア(201)に対して集中化される
請求項1に記載のシステム。 - 複数の受諾ピア(202)
を含み、
複数のローカルポリシー管理エージェント(501)
をさらに備え、
前記ポートマッピングサービスプロバイダ(204)および前記ローカルポリシー管理エージェント(501)のいずれかは、前記受諾ピア(202)と同じ場所に配置され、
前記受諾ピア(202)の前記ローカルポリシー管理エージェント(501)は、前記ポートマッピングサービスプロバイダ(204)と通信して、ポートマッピングポリシーを実施し、前記ポートマッピング機能を実行する
請求項1に記載のシステム。 - 前記ローカルポリシー管理エージェント(501)のいずれか以外が、前記ポートマッパクライアント(203)と通信して、前記ポートマッピング機能の少なくとも一部を実行する
請求項4に記載のシステム。 - 前記ポートマッピングサービスプロバイダ(204)は、前記ポートマッピングサービスプロバイダ(204)と通信して、ポートマッピングポリシーを実施し、前記ポートマッピング機能を実行する集中化ポリシー管理エージェント(501)を使用して集中化される
請求項1に記載のシステム。 - 前記ポートマッピングサービスプロバイダ(204)と通信してポートマッピングポリシーを実施し、
ポートマッピングを実行するポリシー管理エージェント(501)
を含み、
前記ポートマッピングサービスプロバイダ(204)は、前記ポリシー管理エージェント(501)と相互作用して、エンドノード特有のポリシーまたはサービス特有のポリシーを実施し、受諾ピア(202)に関連付けられ、
前記ポートマッピングサービスプロバイダ(204)は、前記接続ピア(201)が、指定された受諾ピア(202)とのRDMAベースの接続を確立するために使用できるRDMAアドレスを返す
請求項1に記載のシステム。 - ポートマッピング要求において特定されたサービスを検査して、前記サービスがマッピングされるべきかどうかを判断するために使用される情報を含んだアプリケーションレジストリ(1602)
を含む請求項1に記載のシステム。 - 前記レジストリ(1602)は、マッピングされる潜在的なサービスポート(103(*))のテーブルである
請求項8に記載のシステム。 - 前記ポリシールール(1601(1))は、一群のステップであって、
前記ターゲットサービスを検査するステップであって、サポートできるサービスの個数をエンドノード(102(*))ごとに決定するステップと、
所与のサービスの前記接続ピア(201)を検査するステップであって、所与の接続ピア(201)の同時発生のマッピングされるセッションの個数を決定するステップと、
前記APを検査するステップであって、それによって、十分な資源が所与の受諾ピア(202)に利用可能であることを保証するステップと
から成る一群のステップのうち少なくともいずれかを含むシステム態様
を含む請求項1に記載のシステム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/930,977 US20060045098A1 (en) | 2004-08-31 | 2004-08-31 | System for port mapping in a network |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006074769A true JP2006074769A (ja) | 2006-03-16 |
JP4000331B2 JP4000331B2 (ja) | 2007-10-31 |
Family
ID=35942959
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005244227A Expired - Fee Related JP4000331B2 (ja) | 2004-08-31 | 2005-08-25 | ネットワークのポートマッピング用システム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20060045098A1 (ja) |
JP (1) | JP4000331B2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009282739A (ja) * | 2008-05-22 | 2009-12-03 | Nec Computertechno Ltd | ネットワークシステム、ネットワーク接続方法、接続装置、接続カード |
JP2014104703A (ja) * | 2012-11-29 | 2014-06-09 | Seiko Epson Corp | 印刷装置、印刷装置の制御方法、及び、プログラム |
JP2016123076A (ja) * | 2014-12-18 | 2016-07-07 | インテル・コーポレーション | 共有メモリリンクの低電力エントリ |
Families Citing this family (84)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0221464D0 (en) * | 2002-09-16 | 2002-10-23 | Cambridge Internetworking Ltd | Network interface and protocol |
GB0304807D0 (en) * | 2003-03-03 | 2003-04-09 | Cambridge Internetworking Ltd | Data protocol |
GB0404696D0 (en) | 2004-03-02 | 2004-04-07 | Level 5 Networks Ltd | Dual driver interface |
GB0408868D0 (en) | 2004-04-21 | 2004-05-26 | Level 5 Networks Ltd | Checking data integrity |
GB0408876D0 (en) | 2004-04-21 | 2004-05-26 | Level 5 Networks Ltd | User-level stack |
US9264384B1 (en) | 2004-07-22 | 2016-02-16 | Oracle International Corporation | Resource virtualization mechanism including virtual host bus adapters |
US20060050717A1 (en) * | 2004-09-09 | 2006-03-09 | International Business Machines Corporation | Reducing delays associated with port binding |
US8059562B2 (en) * | 2004-10-18 | 2011-11-15 | Nokia Corporation | Listener mechanism in a distributed network system |
JP4463078B2 (ja) * | 2004-11-05 | 2010-05-12 | パナソニック株式会社 | 情報処理装置、情報処理システム、情報処理方法及びプログラム |
TWI267293B (en) * | 2005-03-09 | 2006-11-21 | Plustek Inc | Multimedia conference system and method which enables communication between private network and Internet |
GB0505300D0 (en) * | 2005-03-15 | 2005-04-20 | Level 5 Networks Ltd | Transmitting data |
WO2006095184A2 (en) * | 2005-03-10 | 2006-09-14 | Level 5 Networks Incorporated | Data processing system |
GB0505297D0 (en) | 2005-03-15 | 2005-04-20 | Level 5 Networks Ltd | Redirecting instructions |
GB0506403D0 (en) | 2005-03-30 | 2005-05-04 | Level 5 Networks Ltd | Routing tables |
JP4672405B2 (ja) * | 2005-03-17 | 2011-04-20 | パナソニック株式会社 | 通信システム、情報処理システム、接続サーバ、処理サーバ、情報処理装置、及び情報処理方法 |
US8458280B2 (en) * | 2005-04-08 | 2013-06-04 | Intel-Ne, Inc. | Apparatus and method for packet transmission over a high speed network supporting remote direct memory access operations |
US7634584B2 (en) | 2005-04-27 | 2009-12-15 | Solarflare Communications, Inc. | Packet validation in virtual network interface architecture |
DE602006013128D1 (de) | 2005-06-15 | 2010-05-06 | Solarflare Comm Inc | Empfangen von daten gemäss eines datentransferprotokolls von daten, die ein beliebiges einer mehrzahl von empgangsgeräten gerichtet sind |
US9813283B2 (en) | 2005-08-09 | 2017-11-07 | Oracle International Corporation | Efficient data transfer between servers and remote peripherals |
US7984180B2 (en) | 2005-10-20 | 2011-07-19 | Solarflare Communications, Inc. | Hashing algorithm for network receive filtering |
US20070136465A1 (en) * | 2005-12-12 | 2007-06-14 | Fernandes Lilian S | Method for allowing multiple authorized applications to share the same port |
GB0600417D0 (en) | 2006-01-10 | 2006-02-15 | Level 5 Networks Inc | Virtualisation support |
US7889762B2 (en) | 2006-01-19 | 2011-02-15 | Intel-Ne, Inc. | Apparatus and method for in-line insertion and removal of markers |
US7756943B1 (en) * | 2006-01-26 | 2010-07-13 | Symantec Operating Corporation | Efficient data transfer between computers in a virtual NUMA system using RDMA |
US7702743B1 (en) | 2006-01-26 | 2010-04-20 | Symantec Operating Corporation | Supporting a weak ordering memory model for a virtual physical address space that spans multiple nodes |
US8116312B2 (en) | 2006-02-08 | 2012-02-14 | Solarflare Communications, Inc. | Method and apparatus for multicast packet reception |
US7849232B2 (en) * | 2006-02-17 | 2010-12-07 | Intel-Ne, Inc. | Method and apparatus for using a single multi-function adapter with different operating systems |
US8316156B2 (en) | 2006-02-17 | 2012-11-20 | Intel-Ne, Inc. | Method and apparatus for interfacing device drivers to single multi-function adapter |
US8078743B2 (en) * | 2006-02-17 | 2011-12-13 | Intel-Ne, Inc. | Pipelined processing of RDMA-type network transactions |
US7685223B1 (en) * | 2006-03-02 | 2010-03-23 | Cisco Technology, Inc. | Network-wide service discovery |
US9686117B2 (en) | 2006-07-10 | 2017-06-20 | Solarflare Communications, Inc. | Chimney onload implementation of network protocol stack |
US9948533B2 (en) | 2006-07-10 | 2018-04-17 | Solarflare Communitations, Inc. | Interrupt management |
EP2552080B1 (en) * | 2006-07-10 | 2017-05-10 | Solarflare Communications Inc | Chimney onload implementation of network protocol stack |
CN100514940C (zh) * | 2006-10-23 | 2009-07-15 | 华为技术有限公司 | 对网络通信端口重定向的方法和网络通信系统 |
GB0621774D0 (en) * | 2006-11-01 | 2006-12-13 | Level 5 Networks Inc | Driver level segmentation |
US20080307109A1 (en) * | 2007-06-08 | 2008-12-11 | Galloway Curtis C | File protocol for transaction based communication |
GB0723422D0 (en) * | 2007-11-29 | 2008-01-09 | Level 5 Networks Inc | Virtualised receive side scaling |
US8031713B2 (en) * | 2008-01-29 | 2011-10-04 | International Business Machines Corporation | General multi-link interface for networking environments |
GB0802126D0 (en) * | 2008-02-05 | 2008-03-12 | Level 5 Networks Inc | Scalable sockets |
US8295204B2 (en) * | 2008-02-22 | 2012-10-23 | Fujitsu Limited | Method and system for dynamic assignment of network addresses in a communications network |
US8374188B2 (en) * | 2008-06-24 | 2013-02-12 | Microsoft Corporation | Techniques to manage a relay server and a network address translator |
US7907546B1 (en) * | 2008-11-13 | 2011-03-15 | Qlogic, Corporation | Method and system for port negotiation |
GB0823162D0 (en) * | 2008-12-18 | 2009-01-28 | Solarflare Communications Inc | Virtualised Interface Functions |
US8966090B2 (en) * | 2009-04-15 | 2015-02-24 | Nokia Corporation | Method, apparatus and computer program product for providing an indication of device to device communication availability |
US9256560B2 (en) * | 2009-07-29 | 2016-02-09 | Solarflare Communications, Inc. | Controller integration |
AU2013237722B2 (en) * | 2009-07-31 | 2015-07-09 | Google Inc. | System and method for identifying multiple paths between network nodes |
US8432801B2 (en) * | 2009-07-31 | 2013-04-30 | Google Inc. | System and method for identifying multiple paths between network nodes |
US9210140B2 (en) | 2009-08-19 | 2015-12-08 | Solarflare Communications, Inc. | Remote functionality selection |
US9973446B2 (en) | 2009-08-20 | 2018-05-15 | Oracle International Corporation | Remote shared server peripherals over an Ethernet network for resource virtualization |
EP2309680B1 (en) * | 2009-10-08 | 2017-07-19 | Solarflare Communications Inc | Switching API |
US9021510B2 (en) | 2009-12-04 | 2015-04-28 | International Business Machines Corporation | Remote procedure call (RPC) bind service with physical interface query and selection |
US8266639B2 (en) * | 2009-12-04 | 2012-09-11 | International Business Machines Corporation | Remote procedure call (RPC) bind service with physical interface query and selection |
US8743877B2 (en) | 2009-12-21 | 2014-06-03 | Steven L. Pope | Header processing engine |
HUE050495T2 (hu) * | 2010-04-21 | 2020-12-28 | Nokia Technologies Oy | Eljárás és berendezés hozzáférési pont szolgáltatási képességek meghatározására |
US8738961B2 (en) * | 2010-08-17 | 2014-05-27 | International Business Machines Corporation | High-availability computer cluster with failover support based on a resource map |
US9331963B2 (en) | 2010-09-24 | 2016-05-03 | Oracle International Corporation | Wireless host I/O using virtualized I/O controllers |
US9674318B2 (en) | 2010-12-09 | 2017-06-06 | Solarflare Communications, Inc. | TCP processing for devices |
US9258390B2 (en) | 2011-07-29 | 2016-02-09 | Solarflare Communications, Inc. | Reducing network latency |
US9600429B2 (en) | 2010-12-09 | 2017-03-21 | Solarflare Communications, Inc. | Encapsulated accelerator |
US9003053B2 (en) | 2011-09-22 | 2015-04-07 | Solarflare Communications, Inc. | Message acceleration |
US8996644B2 (en) | 2010-12-09 | 2015-03-31 | Solarflare Communications, Inc. | Encapsulated accelerator |
US10873613B2 (en) | 2010-12-09 | 2020-12-22 | Xilinx, Inc. | TCP processing for devices |
US9008113B2 (en) | 2010-12-20 | 2015-04-14 | Solarflare Communications, Inc. | Mapped FIFO buffering |
US8966057B2 (en) | 2011-01-21 | 2015-02-24 | At&T Intellectual Property I, L.P. | Scalable policy deployment architecture in a communication network |
US9384071B2 (en) | 2011-03-31 | 2016-07-05 | Solarflare Communications, Inc. | Epoll optimisations |
US8763018B2 (en) | 2011-08-22 | 2014-06-24 | Solarflare Communications, Inc. | Modifying application behaviour |
US9135097B2 (en) * | 2012-03-27 | 2015-09-15 | Oracle International Corporation | Node death detection by querying |
US9391840B2 (en) | 2012-05-02 | 2016-07-12 | Solarflare Communications, Inc. | Avoiding delayed data |
JP6363999B2 (ja) * | 2012-06-06 | 2018-07-25 | ザ・トラスティーズ・オブ・コロンビア・ユニバーシティ・イン・ザ・シティ・オブ・ニューヨーク | 統一ネットワーキングシステム及び異種モバイル環境用デバイス |
US9391841B2 (en) | 2012-07-03 | 2016-07-12 | Solarflare Communications, Inc. | Fast linkup arbitration |
US10505747B2 (en) | 2012-10-16 | 2019-12-10 | Solarflare Communications, Inc. | Feed processing |
US9083550B2 (en) | 2012-10-29 | 2015-07-14 | Oracle International Corporation | Network virtualization over infiniband |
US10742604B2 (en) | 2013-04-08 | 2020-08-11 | Xilinx, Inc. | Locked down network interface |
US9426124B2 (en) | 2013-04-08 | 2016-08-23 | Solarflare Communications, Inc. | Locked down network interface |
EP2809033B1 (en) | 2013-05-30 | 2018-03-21 | Solarflare Communications Inc | Packet capture in a network |
US10394751B2 (en) | 2013-11-06 | 2019-08-27 | Solarflare Communications, Inc. | Programmed input/output mode |
US9444747B2 (en) * | 2014-01-30 | 2016-09-13 | Telefonaktiebolaget Lm Ericsson (Publ) | Service specific traffic handling |
US10944834B1 (en) | 2016-12-27 | 2021-03-09 | Amazon Technologies, Inc. | Socket peering |
US10594570B1 (en) | 2016-12-27 | 2020-03-17 | Amazon Technologies, Inc. | Managed secure sockets |
CN108418695A (zh) * | 2018-01-10 | 2018-08-17 | 北京思特奇信息技术股份有限公司 | 一种ocs实时计费云化系统和方法 |
CN112491591B (zh) * | 2020-11-10 | 2023-05-30 | 杭州萤石软件有限公司 | 一种通用即插即用UPnP端口映射方法及系统 |
US11429548B2 (en) * | 2020-12-03 | 2022-08-30 | Nutanix, Inc. | Optimizing RDMA performance in hyperconverged computing environments |
US11831803B1 (en) * | 2022-05-04 | 2023-11-28 | T-Mobile Innovations Llc | Ghost call vulnerability during call setup silent voice over IP denial-of-service |
CN114979286B (zh) * | 2022-05-11 | 2023-09-19 | 咪咕文化科技有限公司 | 容器服务的访问控制方法、装置、设备及计算机存储介质 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6047325A (en) * | 1997-10-24 | 2000-04-04 | Jain; Lalit | Network device for supporting construction of virtual local area networks on arbitrary local and wide area computer networks |
WO1999026377A2 (en) * | 1997-11-17 | 1999-05-27 | Mcmz Technology Innovations Llc | A high performance interoperable network communications architecture (inca) |
CA2225227A1 (en) * | 1997-12-18 | 1999-06-18 | Michael Coveley | Intelligent communication and applications server |
US6286060B1 (en) * | 1998-06-26 | 2001-09-04 | Sun Microsystems, Inc. | Method and apparatus for providing modular I/O expansion of computing devices |
US6584499B1 (en) * | 1999-07-09 | 2003-06-24 | Lsi Logic Corporation | Methods and apparatus for performing mass operations on a plurality of managed devices on a network |
US6480955B1 (en) * | 1999-07-09 | 2002-11-12 | Lsi Logic Corporation | Methods and apparatus for committing configuration changes to managed devices prior to completion of the configuration change |
EP1330721A4 (en) * | 2000-08-24 | 2009-08-19 | 2Wire Inc | SYSTEM AND METHOD FOR SELECTIVELY BRIDGING AND ROUTING DATA PACKAGES BETWEEN MULTIPLE NETWORKS |
US7512686B2 (en) * | 2000-12-21 | 2009-03-31 | Berg Mitchell T | Method and system for establishing a data structure of a connection with a client |
US6658521B1 (en) * | 2000-12-22 | 2003-12-02 | International Business Machines Corporation | Method and apparatus for address translation on PCI bus over infiniband network |
US7245627B2 (en) * | 2002-04-23 | 2007-07-17 | Mellanox Technologies Ltd. | Sharing a network interface card among multiple hosts |
US7356608B2 (en) * | 2002-05-06 | 2008-04-08 | Qlogic, Corporation | System and method for implementing LAN within shared I/O subsystem |
JP4406604B2 (ja) * | 2002-06-11 | 2010-02-03 | アシシュ エイ パンドヤ | Tcp/ip、rdma、及びipストレージアプリケーションのための高性能ipプロセッサ |
US7415723B2 (en) * | 2002-06-11 | 2008-08-19 | Pandya Ashish A | Distributed network security system and a hardware processor therefor |
US7647414B2 (en) * | 2002-07-26 | 2010-01-12 | Broadcom Corporation | System and method for managing multiple stack environments |
US8631162B2 (en) * | 2002-08-30 | 2014-01-14 | Broadcom Corporation | System and method for network interfacing in a multiple network environment |
US7593996B2 (en) * | 2003-07-18 | 2009-09-22 | Netapp, Inc. | System and method for establishing a peer connection using reliable RDMA primitives |
US8776050B2 (en) * | 2003-08-20 | 2014-07-08 | Oracle International Corporation | Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes |
US8285881B2 (en) * | 2003-09-10 | 2012-10-09 | Broadcom Corporation | System and method for load balancing and fail over |
US20070067366A1 (en) * | 2003-10-08 | 2007-03-22 | Landis John A | Scalable partition memory mapping system |
US20070061441A1 (en) * | 2003-10-08 | 2007-03-15 | Landis John A | Para-virtualized computer system with I/0 server partitions that map physical host hardware for access by guest partitions |
US7631148B2 (en) * | 2004-01-08 | 2009-12-08 | Netapp, Inc. | Adaptive file readahead based on multiple factors |
-
2004
- 2004-08-31 US US10/930,977 patent/US20060045098A1/en not_active Abandoned
-
2005
- 2005-08-25 JP JP2005244227A patent/JP4000331B2/ja not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009282739A (ja) * | 2008-05-22 | 2009-12-03 | Nec Computertechno Ltd | ネットワークシステム、ネットワーク接続方法、接続装置、接続カード |
JP2014104703A (ja) * | 2012-11-29 | 2014-06-09 | Seiko Epson Corp | 印刷装置、印刷装置の制御方法、及び、プログラム |
JP2016123076A (ja) * | 2014-12-18 | 2016-07-07 | インテル・コーポレーション | 共有メモリリンクの低電力エントリ |
Also Published As
Publication number | Publication date |
---|---|
JP4000331B2 (ja) | 2007-10-31 |
US20060045098A1 (en) | 2006-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4000331B2 (ja) | ネットワークのポートマッピング用システム | |
Scharf et al. | Multipath TCP (MPTCP) application interface considerations | |
US7554992B2 (en) | Mobile device communications system and method | |
US9674054B2 (en) | Concept for providing information on a data packet association and for forwarding a data packet | |
US7644171B2 (en) | Mobile networking system and method using IPv4 and IPv6 | |
KR101099382B1 (ko) | 패킷 네트워크에서의 종단점 어드레스 변경 | |
US7693056B2 (en) | Method and system for a communication node with a plurality of network interfaces | |
US7739384B2 (en) | System and method for load balancing | |
US9473925B2 (en) | Method and apparatus for providing mobile and other intermittent connectivity in a computing environment | |
US8032641B2 (en) | Assymmetric traffic flow detection | |
JP2005537764A (ja) | 優先度及びリザーブ帯域幅プロトコルを利用したネットワークにおけるQoSを提供する機構 | |
Hesmans et al. | Smapp: Towards smart multipath tcp-enabled applications | |
US7315896B2 (en) | Server network controller including packet forwarding and method therefor | |
US20060056420A1 (en) | Communication apparatus selecting a source address | |
EP3586494A1 (en) | Load balancing in distributed computing systems | |
JP2004509539A5 (ja) | ||
US10367893B1 (en) | Method and apparatus of performing peer-to-peer communication establishment | |
CN110830461B (zh) | 基于tls长连接的跨区的rpc服务调用方法及系统 | |
JP4820940B2 (ja) | ポート群を動的に専用化するプロセッサ間通信ネットワーク | |
JP3614006B2 (ja) | 非対称経路利用通信システム、および、非対称経路利用通信方法 | |
Elattar et al. | Evaluation of multipath communication protocols for reliable internet-based cyber-physical systems | |
CN114553965B (zh) | 内网设备的调度方法、网络设备及存储介质 | |
WO2023274087A1 (zh) | 报文转发的方法、装置及系统 | |
Barreia | Multipath TCP Protocols | |
Enghardt et al. | TAPS Working Group A. Brunstrom, Ed. Internet-Draft Karlstad University Intended status: Informational T. Pauly, Ed. Expires: January 9, 2020 Apple Inc. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070705 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070731 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070813 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100817 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |