JP5635117B2 - 動的接続された移送サービス - Google Patents

動的接続された移送サービス Download PDF

Info

Publication number
JP5635117B2
JP5635117B2 JP2012539444A JP2012539444A JP5635117B2 JP 5635117 B2 JP5635117 B2 JP 5635117B2 JP 2012539444 A JP2012539444 A JP 2012539444A JP 2012539444 A JP2012539444 A JP 2012539444A JP 5635117 B2 JP5635117 B2 JP 5635117B2
Authority
JP
Japan
Prior art keywords
connection
destination
packet
initiator
dynamic
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.)
Active
Application number
JP2012539444A
Other languages
English (en)
Other versions
JP2013511884A (ja
Inventor
クルプニコフ、ディエゴ
カガン、ミカエル
シャハール、アリエル
ブロッチ、ノアム
チャップマン、ヒレル
Original Assignee
メラノックス テクノロジーズ リミテッド
メラノックス テクノロジーズ リミテッド
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by メラノックス テクノロジーズ リミテッド, メラノックス テクノロジーズ リミテッド filed Critical メラノックス テクノロジーズ リミテッド
Publication of JP2013511884A publication Critical patent/JP2013511884A/ja
Application granted granted Critical
Publication of JP5635117B2 publication Critical patent/JP5635117B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/324Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13389LAN, internet

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、コンピュータネットワークに関し、特にこのようなネットワーク上でのプロセス通信に関するするものである。
インフィニバンド(InfiniBand;登録商標;IB)は、高性能コンピューティングで主に使用されるスイッチトファブリック通信リンクである。これはインフィニバンド業協会により標準化されて来た。コンピュータデバイス(ホストプロセッサや周辺機器)はIBファブリックにネットワークインタフェースアダプタ経由で接続し、それはIB語法ではチャネルアダプタと呼ばれる。ホストプロセッサ(又はホスト)は、ホストチャネルアダプタ(HCA)を使用し、一方周辺機器は行先チャネルアダプタ(TCA)を使用する。
インフィニバンドは拡張可能なスイッチベースのポイントツーポイント接続構造であり、それは層化ハードウェアプロトコル(物理層、リンク層、ネットワーク層、移送層)及びソフトウェア層の両方を定義し、それは初期化とデバイス間の通信を管理する。移送層は順次パケット配信、区画割り、チャネルマルチプレクシング、及び移送サービスを行う。移送層はまた、送信時にトランザクションデータのセグメント化を行い、受信時に再組立を行う。
経路の最大転送ユニット(MTU)に基づいて、移送層はデータを適切な寸法のパケットに分割する。受信側は、パケットを行先待ち行列(キュー)ペア及びパケット連続番号を含むベース移送ヘッダー(BTH)に基づいて再組立てする。受信側はパケットを認識し、送信側は完成待ち行列(キュー)をオペレーションの状態で更新すると共に、これらの受信確認を受け取る。
インフィニバンドは次の移送サービスを特定している:
・信頼できる接続(RC)。RCは2つのエンティティ間の信頼できるデータ転送を提供する。RC移送はRDMA操作、不可分操作(アトミック操作)、チャネルセマンティック(意味解釈)を提供する。接続指向の移送として、RCは要求側(リクエスタ)及び応答側(レスポンダ)プロセスのそれぞれのペアに対し独自のキューペア(QP)を必要とする。
・信頼できない接続(UC).UCは、2つのエンティティ間の信頼できないデータ転送を促進する。RCと異なり、UCメッセージは失われる可能性がある。UCはRDMA能力を提供するが、順序又は信頼性を保証しない。接続されたそれぞれのプロセスペアは、独自のキューペア(QP)を必要とする。
・信頼できるデータグラム(RD)。RDの使用は、1つのQPが、1つ以上のQPからのメッセージを、RDチャネル(RDC)を使用してRDドメイン(RDD)間でメッセージを送受信することを可能にする。RDは信頼できる接続(RC)の殆どの特徴を提供するが、それぞれのプロセスに対し独自のQPを必要としない。
・信頼できないデータグラム(UD)。UDを使用して、1つのQPは、1つ以上のQPからのメッセージを送受信可能であるが、メッセージは失われる可能性がある。UDは無接続であり、単一のQPが他のどの同位QPとも通信することを許容する。UDはメッセージ寸法が有限であり、順序又は信頼性を保証しない。
・未処理データグラム。未処理データグラムとは、翻訳されない未処理データグラムメッセージを送受信する能力を1つのQPに提供するデータリンク層サービスである。
インフィニバンドの最新の改良点は、拡張信頼接続(XRC)移送サービスである(例えば、非特許文献1に記載され、それは参照としてここに採り入れられる)。XRCは、単一の受信側QPが、所定のホスト上を走る1つ以上のプロセスを横断する多重共有受信側キュー(SRQ)により共有されることを可能にする。結果的に、それぞれのプロセスは単一の送信QPを、それぞれの遠隔プロセスに対してよりは、むしろ、それぞれのホストに対し維持可能である。受信側QPは、遠隔送信QPごとに確立され、そのホスト上の全てのプロセスで共有可能である。
「インフィニバンドアーキテクチャ規格の補足、第1.2.1版、分冊A14:拡張信頼接続(XRC)移送サービス」2009年Rev.1.0
本発明の1実施形態では、通信方法は、第1及び第2のデータを、1つ以上の行先ノード上で走る第1及び第2の行先プロセスに、パケットネットワーク経由でそれぞれ送信する、第1及び第2の要求を、イニシエータホスト上で走る1つのイニシエータプロセスから、イニシエータホストに接続するネットワークインタフェース装置で受信するステップを有する。第1及び第2の要求の両方に使用される単一の動的接続されたイニシエータコンテキストが割り当てられる。第1の行先プロセスと第1の動的接続を開通するため、動的接続されたイニシエータコンテキストを参照し第1の行先プロセス向きの第1の接続パケットがネットワークインタフェース装置からパケットネットワーク上で送信される。その後、第1のデータが第1の動的接続上で送信される。第1のデータの送信後、第1の動的接続が閉鎖され、そして、第2の行先プロセスと第2の動的接続を開通するため、動的接続されたイニシエータコンテキストを参照し第2の行先プロセス向けの第2の接続パケットが送信され、その後、第2のデータが送信される。
ある実施形態では、方法は、第1の行先プロセスが走っている行先ノードの1つからデータの送信に応答して受信確認パケットを受信するステップを有する。ネットワークインタフェース装置が典型的に、行先ノードのいずれからの受信確認を待つことなく、第1のデータを第1の動的接続上で送信する。
または或いは、第1の動的接続を閉鎖するステップは、ネットワークインタフェース装置が受信確認パケットを受信するまで第1の動的接続の閉鎖を待つ。
開示された実施形態では、第1の動的接続を閉鎖するステップは、切断パケットを第1の動的接続上で第1の行先プロセスに送信するステップを含む。典型的に、1つ以上の行先ノードは前記切断パケットの受信確認をせず、そして、前記第2の接続パケットは前記切断パケットの送信後すぐに送信される。
ある実施形態では、第1及び第2の要求を受信するステップは、ネットワークインタフェース装置による実行に対し、第1の行先プロセスを参照する1つ以上の第1の作業待ち行列項目(WQE)を行列待ちし、その後、第2の行先プロセスを参照する1つ以上の第2の作業待ち行列項目(WQE)を行列待ちするステップを有し、ネットワークインタフェース装置は実行のための第2の作業待ち行列項目(WQE)の最初の1つに到達すると第1の動的接続を閉鎖する。
方法は、第1の接続パケットを行先ノードで受信すると、記行先ノードで第1のデータを受信するための1つの動的接続された受信側コンテキストを割り当てるステップと、そして、更なるデータを別の1つの動的接続されたイニシエータから受信するため、第1の動的接続を閉鎖後、動的接続された受信側コンテキストを行先ノードにおいて再度割り当てるステップと、を含む。開示された実施形態では、動的接続された受信側コンテキストを割り当てるステップは、動的接続された受信側コンテキストを、第1の接続パケットにより特定された動的接続の1つの行先に属する1群の動的接続された受信側コンテキストから選択するステップを有する。他の実施形態では、第1の接続パケットを受信するステップは、ネットワークインタフェース装置による再試行に応答して、行先ノードにおいて動的接続されたイニシエータコンテキストからの多重の接続パケットを受信しカウントするステップと、そして、全ての接続パケットが受信された後に、動的接続された受信側コンテキストを再度割り当てるステップと、を有する。
本発明の1実施形態によれば、ネットワーク通信装置であって、
ホストインタフェースと、
ホストインタフェースは、パケットネットワーク経由で第1及び第2のデータを1つ以上の行先ノードで走る第1と第2の行先プロセスにそれぞれ送信するという、イニシエータホスト上で走るイニシエータプロセスからの、第1及び第2の要求を、イニシエータホストから受信するように接続され、
パケットネットワークに接続されたネットワークインタフェースと、
処理回路と、
処理回路は、第1及び第2の要求の両方に使用されるように割り当てられた単一の動的接続されたイニシエータコンテキストを使用して、第1の行先プロセスと第1の動的接続を開通するため、動的接続されたイニシエータコンテキストを参照しかつ第1の行先プロセスを行先とする第1の接続パケットを、ネットワークインタフェース経由で送信し、その後、第1のデータを第1の動的接続上で送信し、そして第1のデータの送信後、第1の動的接続を閉鎖し、そして、第2の行先プロセスと第2の動的接続を開通するため、動的接続されたイニシエータコンテキストを参照しかつ第2の行先プロセスを行先とする第2の接続パケットをネットワークインタフェース経由で送信し、その後、第2のデータを第2の動的接続上で送信する、ように構成され、
を有することを特徴とする装置、が提供される。
本発明の1実施形態によれば、ネットワーク通信システムであって、
第1のネットワークインタフェース装置と;
第1のネットワークインタフェース装置は、パケットネットワーク経由で第1及び第2のデータを1つ以上の行先ノード上で走る第1と第2の行先プロセスにそれぞれ送信するという、イニシエータホスト上で走るイニシエータプロセスからの、第1及び第2の要求を受信するため、イニシエータホストに接続され、
第1のネットワークインタフェース装置は、第1及び第2の要求の両方に使用されるように割り当てられた単一の動的接続されたイニシエータコンテキストを使用して、前記第1の行先プロセスと第1の動的接続を開通するため、動的接続されたイニシエータコンテキストを参照しかつ第1の行先プロセスを行先とする第1の接続パケットを、ネットワークインタフェース経由で送信し、その後、第1のデータを第1の動的接続上で送信し、そして第1のデータの送信後、第1の動的接続を閉鎖し、そして、第2の行先プロセスと第2の動的接続を開通するため、動的接続されたイニシエータコンテキストを参照しかつ第2の行先プロセスを行先とする第2の接続パケットをネットワークインタフェース経由で送信し、その後、第2のデータを第2の動的接続上で送信する、ように構成され、
第2のネットワークインタフェース装置と;
第2のネットワークインタフェース装置は、行先ノード上の行先ホストに接続され、第1の接続パケットを受信すると、行先ノードにおいて第1のデータを受信するための1つの動的接続された受信側コンテキストを割り当て、そして、第1の動的接続を閉鎖した後、更なるデータを他の動的接続されたイニシエータから受信するため、動的接続された受信側コンテキストを再度割り当てる、ように構成され、
を有することを特徴とするシステムが提供される。
本発明は、例示のみを目的とする実施形態により、下図を参照して説明される:
本発明の実施形態に基づく、動的接続(DC)された移送サービスを採用して作動するシステムの概略ブロック図である。 本発明の実施形態における、動的接続(DC)キュー(待ち行列)ペアを確立するホストチャネルアダプタ(HCA)の機能要素を示すブロック図である。 本発明の実施形態に基づく、基礎的なDC接続−データ−切断シークエンスを示すはしご型図表である。 本発明の実施形態に基づくDC移送サービスを使用する作業要求を処理する方法を示すフロー図である。 本発明の実施形態に基づくDC移送サービスで受信したパケットの処理方法を示すフロー図である。 本発明の実施形態に基づく、1つのイニシエータHCAと2つの応答側HCAとの間のDCデータ転送を示すはしご型図表である。 本発明の実施形態に基づく、DCイニシエータコンテキストの状態マシンを概略示す状態図である。 本発明の実施形態に基づく、DC応答側コンテキストの状態マシンを概略示す状態図である。
以下の記号が本出願を通じて使用される:
(記号) (定義)
ACK 受信確認
AV アドレスベクトル
BTH ベース移送ヘッダー
DC 動的接続
DCT 動的接続された行先
FCP ファイバーチャネルプロトコル
HCA ホストチャネルアダプタ
I/O 入出力
IB インフィニバンド(登録商標)
LAN ラン(ローカルエリアネットワーク)
MTU 最大転送ユニット
NACK 否定確認
PSN パケット交換ネットワーク
QP キューペア
RC 信頼できる接続
RD 信頼できるデータグラム
RDC 信頼できるデータグラムチャネル
RDD 信頼できるデータグラムドメイン
RDMA リモートダイレクトメモリアクセス
RQ 送信キュー
SAN 記憶領域ネットワーク
SQ 受信キュー
SRQ 共用受信キュー
TCA 行先チャネルアダプタ
UC 信頼できない接続
UD 信頼できないデータグラム
WAN 広域ネットワーク
WQE 作業キュー(待ち行列)項目
WR 作業要求
XRC 拡張信頼接続
インフィニバンドネットワークのノード上で実行されるプロセスは、キュー(行列)に基づくモデルを使用して互いに通信する。送受信プロセスは、1つの送信キュー(SQ)及び1つの受信キュー(RQ)からなる1つのキューペア(QP)を確立する。ホストによる送受信作業要求は、インフィニバンドチャネルアダプタによる処理のため、作業待ち行列項目(WQE)がこれらのキュー(待ち行列)にロードされるようにする。QP上のメッセージを送受信するため、受信バッファがそのQPに入力される。
ここに記載される本発明の実施形態では、動的接続(DC)された移送サービスが、信頼できる接続(RC)のセマンティックを維持しながら末端ノード当りの必要QP数を減少させるために使用される。動的接続(DC)された移送サービスは、動的接続(DC)QPが多重の遠隔ノード内の多重の遠隔プロセスに到達することを許容する、データグラム様モデルを提供する。動的接続(DC)送信キュー(待ち行列)に作業依頼された各作業要求(WR)は、行先となる遠隔行先プロセスを識別する情報を含む。動的接続(DC)されたコンテキストはそれにより、ネットワークを横断して互いに動的に結び付けられ、動的(即ち、一時的)な信頼できる接続(RC)と同等の接続を生成し、それは信頼性を持って1つ以上のメッセージを送達するのに使用される。イニシエータ(即ち送信末端ノードのホストチャネルアダプタ(HCA))が、さらに実行すべき作業待ち行列項目(WQE)がないか、又は次の作業待ち行列項目(WQE)が他のプロセス向けである(可能性として他のノード内の)かである、送信キュー(待ち行列)のある点に到達すると、動的接続は破断される。同一の動的接続(DC)されたコンテキストが、もう1つの行先プロセスに対して新規の動的接続を確立するのに使用される。
本発明の実施形態により提供された動的接続(DC)された移送サービスは、各プロセスが、それが独占的に所有する、それ自身の独自の動的接続(DC)されたコンテキストのセットを維持することを可能にする。動的接続(DC)された移送サービスは、各動的接続(DC)された移送コンテキストが多重の遠隔ノード内の多重の遠隔プロセスを行先とすることを許容する。信頼できる送達セマンティックを提供するため、動的接続(DC)されたコンテキストはネットワークを横切って動的に互いに結び付き、そして信頼を持って1つ以上のメッセージを送達するのに使用される、一時的な信頼できる接続(RC)と同等の接続を生成する。チャネルアダプタは、別個の信号手続を要求するよりはむしろ、接続それ自体を通ってパケットを送信することによりバンド内の動的接続を生成する。このバンド内接続手法は後続のデータ通信トラフィックのパイプライン化を手助けし、それにより3方向ハンドシェイクの待機時間コストを消滅させる。一度特定の行先に入力される全てのメッセージが完了すると、動的接続(DC)は破断され、そして動的接続(DC)されたコンテキストは新しい接続に対し使用可能になる。
動的接続(DC)された移送サービスにおいて、完全な接続性のために各ノードにより必要とされる1つのクラスタ内の動的接続(DC)されたコンテキストの数は、クラスタの寸法に影響されない。各プロセスは典型的に、プロセスが並行して駆動可能な接続の数のオーダーの多くの動的接続(DC)されたコンテキスト、及び入ってきた要求を処理するための追加の動的接続(DC)されたコンテキストを必要とする。各末端ノードに対する動的接続(DC)されたコンテキストの必要数は、従ってそれぞれの終点ノードの能力により左右される。
動的接続(DC)された移送サービスがデータグラム様の接続性モデルを許容するため(接続コンテキストにおいて)、動的接続(DC)を取り扱う場合、QPの伝統的概念は変更されるべきである。動的接続(DC)されたイニシエータ及び応答側コンテキストは、ペアとして結び付けられず、かつそのようにも生成されない、独立のエンティティとして取り扱われるべきである。1つの動的接続(DC)されたイニシエータがある所与の遠隔ノードの1つの動的接続(DC)された応答側と結び付けられている場合、それは同時に1つの逆方向の相補的接続がなければならないことを意味しない。この動的接続(DC)の特徴により、1つのプロセスに対し、接続性要求を満足させるために必要な動的接続(DC)されたイニシエータと動的接続(DC)された応答側のコンテキストの数を独立して決定することが可能となる。それはまた、それらが厳密に一方向であるため、動的接続(DC)のセマンティックを単純化する。
(システムの記述)
図1は、本発明の実施形態に基づく、動的接続(DC)された移送サービスを使用して作動するシステム10の概略ブロック図である。システム10は、ネットワーク18上にノード12,14及び16を有する。この事例では、ノード12はイニシエータノードであり、ノード14と16は応答側ノードである(典型的にではあるが、どの所定のノードも同時にイニシエータと応答側になりうる)。ネットワーク18はインフィニバンドスイッチトファブリック通信ネットワークのようなパケットネットワークである。
この事例では、ホスト24上で実行する一群のプロセス22からの1つのイニシエータプロセスが、1つのメッセージをホスト30上で実行する一群のプロセス28からの1つの応答側プロセスに送る、1つの作業要求をホストチャネルアダプタ(HCA)26に依頼する。作業要求を受け取ると、ホストチャネルアダプタ(HCA)26は、下記のように、「動的接続(DC)接続」パケットを送信することにより、応答側ノードのHCA32と動的接続を確立するように試みる。「動的接続(DC)接続」パケットを送信後、HCA26は、作業要求を完遂するため、1つ以上のデータパケットを動的接続上で応答側プロセスに送信する。データパケットを受信すると、HCA32は1つ以上の受信確認パケットを動的に接続されたHCA26の受信キュー(待ち行列)に送信することにより応答する。この応答側プロセスに関する全てのHCA26上の作業待ち行列項目(WQE)が一度実行されると、HCA26及びHCA32はイニシエータプロセスと応答側プロセス間の連結を破断し、そしてHCA26上のその動的接続(DC)されたコンテキストは他のプロセスと接続に使用可能となる。
従って、例えば、ホスト24上で実行する一群のプロセス22の1つのイニシエータプロセスが、1つ以上のメッセージをホスト30上で実行する一群のプロセス28の第1の応答側プロセスに送信する、第1の作業要求をホストチャネルアダプタ(HCA)26に送信し、その後、1つ以上のメッセージをホスト36上で実行する一群のプロセス34の第2の応答側プロセスに送信する、第2の作業要求をHCA26に依頼する。第1の作業要求を受信すると、HCA26はHCA32と動的接続を確立し、そして上記のようにデータパケットを運ぶ。一度HCA26が第1の作業要求に関する全ての作業待ち行列項目(WQE)の実行を完了し、そして異なる応答側プロセスを行先とする第2の作業待ち行列項目(WQE)を検知すると、HCA26は、応答側プロセスと動的接続(DC)されたコンテキストの繋がりを破断するため、動的接続(DC)脱接続パケットをHCA32に送信する。
HCA26はその後、動的接続(DC)接続パケットを送信することにより、第2の応答側ノードのHCA38と動的接続(DC)を確立するように試みる。動的接続(DC)接続パケットを送信後、HCA26は、第2の作業要求を遂行するため、1つ以上のデータパケットを動的接続(DC)上で第2の応答側プロセスに送信する。それぞれのメッセージデータパケットを受信すると、HCA38は動的に接続されたHCA26の受信キュー(待ち行列)に受信確認を送信する。第2の応答側プロセスに関する全ての作業待ち行列項目(WQE)が実行されると、応答側プロセスと動的接続(DC)されたコンテキストの繋がりを破断するため、HCA26は動的接続(DC)脱接続パケットをHCA38に送信する。
上記の簡単な事例はイニシエータプロセスと2つの逐次的応答側プロセスの間の単一動的接続に関しているが、単一動的接続(DC)されたコンテキストは、単一行先ノード上の、又は多重の異なる行先ノード上の、3つ以上の応答プロセスを逐次接続するのに使用可能である。さらに、1つの所与のイニシエータプロセスは、多重の動的接続(DC)されたコンテキストをこの種の多重の動的接続(DC)上で同時に使用可能である。
図2は、本発明の実施形態における、動的接続(DC)されたイニシエータ及び応答側キュー(待ち行列)の確立に関与する(イニシエータノード12の)HCA26の機能要素を示すブロック図40である。(応答側ノード14のHCA32及び応答側ノード16のHCA38も同様の構成である。)この事例では、HCA26は、ホストCPU42からのRDMA要求のような作業要求をホストインタフェース経由で受信する。その作用要求の実行は、ホストメモリ46からのデータを含む1つ以上のメッセージのネットワーク18への送信を含む。ここに図示され記述されるHCA26の構造は、高度に単純化されており、HCAの署名処理機能が如何に実行されるかを理解するのに必要な要素しか含まない。実行は例示のためであり、他の実行も当業者には自明であり、本発明の請求の範囲に含まれる。
処理回路50はホスト24上で実行する1つのプロセスへの接続を確立するため、典型的にDC移送コンテキストキャッシュ52に保持される、1つの動的接続(DC)されたイニシエータコンテキストを使用する。接続は、HCA26上で使用可能な1群のDCキュー54から選択される、1つの動的接続(DC)されたイニシエータキュー(待ち行列)を使用する。各プロセスは典型的に、それが独占的に所有する自身の1組の1つ以上の独自のDCコンテキストを維持する。HCA26はホストメモリ46からのこれらDCコンテキストをDCコンテキストキャッシュ52に必要に応じて転送する。
HCA26はメッセージデータパケットを、ネットワークインタフェース56経由で応答側ノード14に送信する。HCA26が全てのメッセージデータパケットの送信を完了すると、HCA32の処理回路50はDC応答側コンテキスト接続を破断し、そのDC応答側コンテキストは新規の接続に対し使用可能となる。
受信側では、HCA32(又はHCA38)がDC接続パケット及びメッセージデータパケットを、ネットワーク18よりネットワークインタフェース56経由で受信する。パケットはHCA32上の1つのDC行先(DCT)に向けられ、そのことは、単一ロジカルエンティティに属し、そしてそのDCT向けの接続要求に均等に使用可能な個々のDC応答側コンテキストのグループ化を可能にする。受信側HCAはDCTグループからの1つのDC応答側コンテキストを接続に対し機能するために割り当てる。DC要求側により送信されたデータパケットと、関連する所定の接続に対し現在機能している特定のDC応答側コンテキストの関連付けは、ソースキューペア番号及び要求側のネットワークアドレスに基づいて、応答側により維持される。
HCA32上の処理回路50は、典型的に、割り当てられたDC応答側コンテキストをDC移送コンテキストキャッシュ52内に維持する。ネットワークインタフェース56経由で受信されたメッセージデータパケットは、HCAにより行列待ちされ処理され、その後データはホストインタフェース48経由で応答側プロセスに送信される。切断パケットを受信すると、処理回路50はDC接続の応答側を破断する。
(動的接続されたパケット転送及び管理)
図3は、本発明の実施形態に基づく、基礎的なDC接続−データ−破断シークエンスを示すはしご型図表60である。イニシエータプロセス62が作業要求を依頼し、それは結果的に、ネットワーク18のノード14上で実行する1つのプロセスに送信されるメッセージを呼び出す、HCA26による実行用の作業待ち行列項目(WQE)64,66の行列待ちとなる。WQE64を受信すると、HCA26は自分がDC行先に接続していないことを認識し、それゆえDC接続パケットをHCA32に送信する。接続パケットはDC行先(DCT)により行先プロセスを識別し、DCTは作業待ち行列項目(WQE)より選択され、そしてHCA26により接続パケット内のベース移送ヘッダー(BTH)の行先キューペア(QP)フィールド内に挿入される。HCA32はDC応答側(DCR)コンテキストを割り当て、そして、受信確認(ACK)データパケットをHCA26に返信する。(しかし、典型的に受信側はDC接続パケットを受信確認せず、その後のデータパケットの幾つかを受信確認する。何故ならば、それぞれのACKパケットは従前にこの接続上で送信された接続パケット及びデータパケットの全てを暗黙裡に受信確認するからである。)DC接続パケットを送信後、HCA26はWQE64,66に対応するメッセージデータパケットをHCA32に、HCA32からの受信確認(ACK)を待つことなく、送信する。
DC送信キュー(待ち行列)の最後のWQEであるWQE66を実行後、HCA26はHCA32からメッセージデータパケットの受信確認(明示的又は暗黙的な)を受信するのを待つ。HCA26が予定の受信確認(ACK)を受信できない場合、HCA26は、そのパケットの全て又は一部を信頼できる接続プロトコルに従って再送信する。最後の受信確認(ACK)(即ち、全てのパケットがHCA32に受信されたことを示す受信確認)を受信後、HCA26は切断パケットをHCA32に送信する。切断パケットを受信後、HCA32はDC行先(DCT)コンテキストを破断するが、他の1つの受信確認(ACK)パケットでの応答はしない。
図4は、本発明の実施形態に基づく動的接続(DC)された移送サービスの作業要求を処理する方法を示すフロー図である。方法は明確化のため、従前の図に示された機能ブロック及びデータ構造を参照して記載されるが、以下の記述を読んだ当業者には明らかなように、本方法は他の回路やデータ構造を使用しても実現可能である。
HCA26は第1の作業待ち行列項目(WQE)を、ホスト12上で実行するイニシエータプロセスからホストインタフェース48経由で受信する(ステップ70)。そのWQEは、ホスト14上で実行する1つのプロセスへ送信される1つのメッセージを示す。HCA26は1つの応答側コンテキストに接続されていないことを検知し、従って1つの接続パケットを応答側HCA32にネットワークインタフェース56経由でネットワーク上で送信する(ステップ72)。このパケットはHCA26上のイニシエータDCコンテキストとHCA32上のDC行先(DCT)の接続を確立する。HCA26はその後、作業要求からのメッセージデータパケットをDCイニシエータコンテキストを通じて、ネットワークインタフェース56経由で送信する(ステップ74)。
DCイニシエータ送信キュー(待ち行列)に追加のWQEが有る場合(ステップ76)、HCA26は次のWQEを引き出す(ステップ78)。引き出されたWQEが接続されている応答側DC行先(DCT)を参照する場合(ステップ80)、方法はステップ74に戻る。そうでない場合は、HCA26は、HCA26が送信した全てのパケットに対する現在の応答側からの(明示的又は暗黙的な)受信確認の受信を待つ(ステップ81)。期待された受信確認を受信すると、HCA26はDC接続を破断するため、切断パケットをHCA32に送信し(ステップ82)、そして方法はステップ72に戻る。ステップ76に戻って、DCイニシエータ送信キュー(待ち行列)に追加のWQEが無い場合、HCA26は現在の応答側からの受信確認(ACK)パケットの受信を待ち(ステップ83)、その後切断パケットをHCA32に送信する(ステップ84)。
HCA26は典型的に接続要求のすぐ後にデータパケットを送信する。データパケットは、接続それ自体と同一のリンク層のパラメータを使用するお陰で、(対応する接続の後は)順番に到着することが保証されている。この保証された順序は、HCA26が、それぞれの接続又はメッセージデータパケットを送信した後、次のWQEの処理前に、受信確認(ACK)を待つ必要性を無くする。切断パケットを送信する前に、HCA26は(ステップ81又は83で)HCA32から接続パケット及び全てのメッセージデータパケットに対する受信確認(ACK)を受信したかを確認する。対応する受信確認(ACK)パケットを適当な時間切れ期間内に受信しなかった場合、HCAは接続パケット及び/又は1つ以上のデータパケットを再送信してもよい。しかし、HCA26が切断パケットを送信した後は、受信確認(ACK)を待つ必要はない。
図5は、本発明の実施形態に基づく動的接続(DC)された移送サービスで受信したパケットの処理方法を示すフロー図である。HCA32(即ち、応答側HCA)は接続パケットをHCA26からネットワーク18上でネットワークインタフェース56を経由して受信する(ステップ90)。DC接続パケットは、行先ノードにおいて送信側DCイニシエータと1つのDC応答側コンテキストの間の一時的関係を確立するのに必要な全ての情報を運搬する。1つの接続要求パケットを受信すると、行先ノードは、接続要求で行先とされたDC行先(DCT)内の応答側プールから1つのDC応答側コンテキストを割り当てる。処理回路50は適切なDC応答側コンテキストをコンテキストキャッシュ52の中に発見し、そしてDCキュー54からの適切な受信キュー(待ち行列)を使用して接続を確立する(ステップ92)。(多重の受信キューが単一のDC行先(DCT)に付随する可能性が有り、また単一の共有受信キューに付随する移送コンテキストが他のDC行先(DCT)に付随する可能性がある。)割り当てが成功すると、動的コンテキストが作動状態にされ、入力される要求パケットを処理する準備が完了する。HCA32は、接続パケットの受信を確認する受信確認(ACK)データパケットをHCA26に返信してもよいが、通常は、その後のデータパケットに応答した受信確認(ACK)のみを送信する。違反が検知されると、又はその要求を取り扱う使用可能なコンテキストが無い場合、否定応答(NAK)がイニシエータに返信される。
接続パケットに続いて、HCA32は第1のメッセージデータパケットをHCA26からネットワーク18上でネットワークインタフェース56を経由して受信する(ステップ96)。受信したデータパケットが切断パケットでない場合(ステップ98)、HCA32は受信したメッセージデータを、ホスト30上で実行する適切な応答側プロセスに送信する(ステップ100)。HCA32はHCA26に、メッセージデータパケット受信を確認する受信確認(ACK)パケットを返信してもよい(ステップ102)。そして方法はステップ96に戻る。しかしステップ98において受信したデータパケットが切断パケットである場合、或いは、接続上に更なるパケットを受信することなく既定の時間が切れてしまった場合、処理回路50は応答側プロセスとDC応答側コンテキストとの間の関連付けを破断する(ステップ104)。その後そのコンテキストは、イニシエータプロセスからの追加の接続に対し使用可能になる。
典型的に、切断パケットは応答側HCAにより受信確認(ACK)されない。このアプローチは、切断パケットが遺失されず、そして行先に必要な時間内に到達するという通常の場合に対する最適化を意味する。切断受信確認(ACK)を待たないことにより、(次の作業待ち行列項目(WQE)上に異なる行先を検知した時に)従前に接続していた応答側からの切断に続いて、後続の接続要求が直ちに進行可能となる。切断パケットが応答側に到達しないという稀に起こる場合は、処理サーキット50内の応答側時間切れ機構が結果的にDC応答側コンテキストをいずれにせよ解放する。
図6は、本発明の実施形態に基づく、1つのイニシエータHCAと2つの応答側HCAとの間のDCデータ転送を示す、はしご型図表110である。1つのイニシエータプロセス112は一連の作業要求を送信し、それは結果的にHCA26による実行に対する作業待ち行列項目(WQE)114,116,118の行列待ちを引き起こす。作業待ち行列項目(WQE)は、ノード14(本図中ではノード「A」)上で実行する1つのプロセスに送信される2つのメッセージと、それに続くネットワーク18上のノード16(本図中ではノード「B」)上で実行する他の1つのプロセスに送信される1つのメッセージを特定する。WQE114の処理に当ってHCA26は、それが特定のDC行先(DCT)に接続されていないことを認識し、そして従ってDC接続パケットをHCA32に送信する。DC接続パケットを送信後、HCA26はWQE114と116により特定されたメッセージデータパケットをHCA32に送信する。WQE118は異なる応答側プロセスを行先とするため、HCA26はHCA32からそのメッセージデータパケットに対する期待される受信確認(ACK)を受信するのを待ち、そしてDC切断パケットをHCA32に送信する。
WQE118の処理に当って、HCA26はDC接続パケットをHCA38に送信する。DC接続パケットを送信後、HCA26はWQE118により特定されたメッセージデータパケットをHCA32に送信する。WQE118がDC送信キューの中で最後のWQEであるため、HCA26はHCA38からそのメッセージデータパケットに対する期待される受信確認(ACK)を受信するのを待ち、そしてDC切断パケットをHCA38に送信する。切断パケットを受信後、HCA38は応答側DCコンテキストを破断するが、受信確認(ACK)データパケットでの応答はしない。
図7は、本発明の実施形態による動的接続(DC)されたイニシエータコンテキストの状態マシン120を概略示す状態図である。各DCイニシエータはアイドル状態においてスタートする。DC WQEが入力されると、DCイニシエータは、そのアドレスがWQEにおいて特定された遠隔ピアにDC接続パケットを送信し、そしてイニシエータを不確実接続状態124に移動させる。この状態でHCA26はデータパケットを送信し、応答側からの受信確認(ACK)パケットを待つ。受信確認(ACK)が既定の時間切れ期間内に受信されない場合、HCA26は応答が受信されるまでデータパケットを再送信する。或いは、本図に示すように、HCA26はDC接続パケットを再送信してもよい。しかし他の実施形態では、CD接続パケットは所定の応答側に一度だけ送信され;そして受信確認(ACK)が受信されない場合、HCA26は、単にホスト24上の要求側ソフトウェアプロセスに対し接続の試みが失敗したと伝える。
応答側から受信確認(ACK)を受け取ると、DCイニシエータは接続状態126に移動する。この状態で、DCイニシエータは全ての信頼できる接続(RC)移送および保護チェックとアクション(例えば、移送エラーの場合の再送信、受信側準備未完了(RnR)、否定確認(NACK)等)を実行する。信頼できる接続(RC)キューペア(QP)の終了を通常引き起こすエラー状態(例えば、アクセス違反、再試行、超過等)は、同様にDC接続の終了に繋がる。このような場合、HCA26はDC切断パケットを送信し、送信キューをクリアし、そして送信キューをエラー状態に置く。
送信キューの最後に到達するか、又は現在の接続に適合しないアドレスベクターに到達すると、DCイニシエータは受信確認(ACK)待ち状態128に移動する。この状態では、DCイニシエータは、全ての処理中のメッセージに対する受信確認(ACK)を受信するまで、信頼できる接続(RC)移送および保護チェックとアクションを継続する。前と同じアドレスベクターの新規のWQEを受信することなく、全ての受信確認(ACK)が受信された場合、DCイニシエータはDC切断パケットを受信側に送信し、そしてアイドル状態122に戻る。(状態128におけるエラー動作は接続状態126におけるのと同様である。)
不確実接続状態124に戻って、例えば応答側DC行先(DCT)が利用可能でない場合、DCイニシエータがDC接続パケットに対し否定応答(NAK応答)を受信することが起こる。この場合DCイニシエータはDC−受信側準備未完了(RnR)待機状態130に移動し、そして既定の時間が経過するまでこの状態を維持する。待ち時間は構成可能なDC−受信側準備未完了(RnR)タイマーにより制御される。時間が過ぎると、DCイニシエータはDC接続パケットを再送信し、そして状態124に戻る。
図8は、本発明の実施形態に基づく、動的接続(DC)された応答側コンテキストの状態マシン140を概略示す状態図である。この例では、DC応答側はHCA32上で走る。各DC応答側(即ち、DC行先(DCT)を伴う各受信キュー(待ち行列))はアイドル状態142から始まる。接続パケットを受信すると、DC受信側は活性状態144に移動する。活性状態において、DC応答側は受信確認(ACK)パケットを、要求通りDCイニシエータに送信する。DC応答側は通常、切断パケットを受信するまで、又は更なるパケットをDCイニシエータから受信することなく制限時間が経過するまで、活性状態を維持し、その後アイドル状態142に戻る。
図7を参照して前述した通り、ある実施形態では、DCイニシエータがDC接続を再試行することを促すある一定の状態がありうる。通常はこのような再試行は従前のDC接続パケットが遺失した場合に起こるが、1つ以上の従前のDC接続パケットが意図された行先に到着せず、まだインフィニバンド(IB)ファブリック内にある(例えば、ルーティングテーブルの暫定的再構成の結果として)場合も、起り難いとしても起り得る。このような状況下では、従前のDC接続パケット(ここでは「ゴースト接続」と呼ばれる)は結果的に元々の行先を見つける可能性がある。このようなゴースト接続パケットの取り扱いは、完全性のため本図に示され又以下に記載される;しかしこのような取り扱いは、上記のように、要求側HCAが、失敗を要求側ソフトウェアプロセスに報告する以前において単一のDC接続パケットしか送信しない、他の実施形態では一般的に不要である。
応答側HCA32によるゴースト接続を新規の接続要求と誤認識する可能性を防止するため、活性状態144にあるDC応答側は、それが受信するDC接続パケットを追跡し、そして全てのDC接続のインスタンスをまだ受信していないそれら接続に対し(切断パケットを受信した後も)DC行先(DCT)コンテキストを存続させておいてもよい。接続コンテキストを活性に保つことにより、(それらのパケット連番が接続コンテキストに適合しているため)応答側がゴースト接続を識別し、そしてそれらを新規の接続要求として取り扱うことを回避することができる。DC応答側は、時間切れにより繰り返された要求のみをカウントして(即ち、明示的否定応答をカウントせず)、ゴースト接続の数をカウントする。
HCA32がDC切断パケットを活性状態144で受信する場合、それはDCイニシエータにより示された繰り返しDC接続パケットの数が、DC応答側が受信した数に適合するか否かをチェックする。適合していれば、応答側HCA32はDC応答側コンテキストを安全に閉鎖し、アイドル状態142に戻る。そうでない場合は、DC応答側は、残りの全てのDC接続パケットが受信されるまで、又は既定の時間切れ期間が経過するまで、「検疫」状態146に移動してもよい。
或いは、ゴースト接続の取り扱いが必要とされない実施形態では、状態146は不要であり、その場合、DC応答側は、単純にDC切断パケットの受信後直ちにアイドル状態142に戻る。
請求項における関連する構造、材料、行動、及び全ての手段またはステップ及び機能要素は、各請求項において特定される他の要素と組み合わせて、機能を実行するためのいかなる構造、材料又は行動を含むことを意図されている。
本発明の記述は表示と記載の目的だけのために提出され、従って、他を除外し又は本発明の範囲を限定する目的ではない。当業者にとっては、本発明の範囲及び精神から外れることなく多くの変形や変更が自明である。実施形態は、本発明の原理及び現実的実施例を最適に説明し、種々に変更された実施形態が特定の使用に適することを他の当業者が理解するために選択された。
付属の特許請求の範囲は、本発明の精神と範囲に含まれる全ての特徴及び利点をカバーすることを意図している。多くの変更及び変化が当業者に容易に想起されるため、本発明はここに記載された実施形態に限定されない。従って、全ての適合する変化形、変更、及び同等品は本発明の精神と範囲に含まれることを理解されたい。

Claims (20)

  1. 第1及び第2のデータを、1つ以上の行先ノード上で走る第1及び第2の行先プロセスに、パケットネットワーク経由でそれぞれ送信するという、イニシエータホスト上で走る1つのイニシエータプロセスからの第1及び第2の要求を、前記イニシエータホストに接続されたネットワークインタフェース装置において受信するステップと、
    前記ネットワークインタフェース装置に、前記第1及び第2の要求の両方に使用されるように、多重の異なる行先プロセスに順次接続するための動的接続された一のイニシエータコンテキストを割り当てるステップと、
    ここにおいて動的接続とは一時的な接続を意味し、
    前記第1の行先プロセスとの第1の動的接続を開通するため、前記動的接続されたイニシエータコンテキストを参照しかつ前記第1の行先プロセスを行先とする第1の接続パケットを、前記ネットワークインタフェース装置から前記パケットネットワーク上で送信し、その後、前記第1のデータを前記第1の動的接続上で送信するステップと、
    前記第1のデータの送信後、前記第1の動的接続を閉鎖し、そして、前記第2の行先プロセスとの第2の動的接続を開通するため、多重の異なる行先プロセスに順次接続するための動的接続された前記イニシエータコンテキストを参照しかつ前記第2の行先プロセスを行先とする第2の接続パケットを送信し、その後、前記第2のデータを前記第2の動的接続上で送信するステップと、
    を有することを特徴とする通信方法。
  2. 前記第1の行先プロセスが走っている前記行先ノードの1つから、前記データの送信に応答して1つの受信確認パケットを受信するステップを有する、ことを特徴とする請求項1に記載の方法。
  3. 前記ネットワークインタフェース装置が、前記行先ノードの1つからの受信確認を待つことなく、前記第1のデータを前記第1の動的接続上で送信する、ことを特徴とする請求項2に記載の方法。
  4. 前記第1の動的接続を閉鎖するステップは、前記ネットワークインタフェース装置が前記受信確認パケットを受信するまで前記第1の動的接続の閉鎖をせずに待機するステップを含む、ことを特徴とする請求項2に記載の方法。
  5. 前記第1の動的接続を閉鎖するステップは、切断パケットを前記第1の動的接続上で前記第1の行先プロセスに送信するステップを含む、ことを特徴とする請求項1に記載の方法。
  6. 前記1つ以上の行先ノードは前記切断パケットの受信確認をせず、そして、前記第2の接続パケットは前記切断パケットの送信後すぐに送信される、ことを特徴とする請求項5に記載の方法。
  7. 前記第1及び第2の要求を受信するステップは、前記ネットワークインタフェース装置による処理に対し、前記第1の行先プロセスを参照する1つ以上の第1の作業待ち行列項目(WQE)を行列待ちし、その後、前記第2の行先プロセスを参照する1つ以上の第2の作業待ち行列項目(WQE)を行列待ちするステップを有し、そして、
    前記ネットワークインタフェース装置は、前記ネットワークインタフェース装置により処理されるべき前記第2の作業待ち行列項目(WQE)の最初の1つに到達すると前記第1の動的接続を閉鎖する、ことを特徴とする請求項1に記載の方法。
  8. 前記第1の接続パケットを1つの行先ノードで受信した時に、前記1つの行先ノードで前記第1のデータを受信するため、多重の異なるイニシエータプロセスに順次接続するための動的接続されたつの受信側コンテキストを割り当てるステップと、そして、前記第1の動的接続を閉鎖後、更なるデータを別の1つの多重の異なる行先プロセスに順次接続するための動的接続されたイニシエータから受信するため、前記1つの行先ノードにおいて多重の異なるイニシエータプロセスに順次接続するための動的接続された前記受信側コンテキストを再度割り当てるステップと、を有することを特徴とする請求項1−7のいずれかに記載の方法。
  9. 多重の異なるイニシエータプロセスに順次接続するための動的接続された前記受信側コンテキストを割り当てるステップは、多重の異なるイニシエータプロセスに順次接続するための動的接続された前記受信側コンテキストを、前記第1の接続パケットにより特定された動的接続の1つの行先に属する1群の多重の異なるイニシエータプロセスに順次接続するための動的接続された受信側コンテキストから選択するステップを有する、ことを特徴とする請求項8に記載の方法。
  10. 前記第1の接続パケットを受信するステップは、前記ネットワークインタフェース装置による再試行に応答して、多重の異なる行先プロセスに順次接続するための動的接続された前記イニシエータコンテキストからの多重の接続パケットを前記行先ノードにおいて受信しカウントするステップと、そして、全ての前記接続パケットが受信された後に、多重の異なるイニシエータプロセスに順次接続するための動的接続された前記受信側コンテキストを再度割り当てるステップと、を有することを特徴とする請求項8に記載の方法。
  11. ネットワーク通信装置であって、
    ホストインタフェースと、
    前記ホストインタフェースは、第1及び第2のデータを、1つ以上の行先ノード上で走る第1と第2の行先プロセスにそれぞれパケットネットワーク経由で送信するという、イニシエータホスト上で走るイニシエータプロセスからの、第1及び第2の要求を、前記イニシエータホストから受信するように接続され、
    前記パケットネットワークに接続されたネットワークインタフェースと、
    処理回路と、
    前記処理回路は、前記第1及び第2の要求の両方に使用されるように割り当てられた、多重の異なる行先プロセスに順次接続するための動的接続された一のイニシエータコンテキストを使用して、前記第1の行先プロセスとの第1の動的接続を開通するため、多重の異なる行先プロセスに順次接続するための動的接続された前記イニシエータコンテキストを参照しかつ前記第1の行先プロセスを行先とする第1の接続パケットを、前記ネットワークインタフェース経由で送信し、その後、前記第1のデータを前記第1の動的接続上で送信し、そして前記第1のデータの送信後、前記第1の動的接続を閉鎖し、そして、前記第2の行先プロセスとの第2の動的接続を開通するため、多重の異なる行先プロセスに順次接続するための動的接続された前記イニシエータコンテキストを参照しかつ前記第2の行先プロセスを行先とする第2の接続パケットを前記ネットワークインタフェース経由で送信し、その後、前記第2のデータを前記第2の動的接続上で送信する、ように構成され、
    ここにおいて動的接続とは一時的な接続を意味し、
    を有することを特徴とする装置。
  12. 前記処理回路は、前記第1の行先プロセスが走っている前記行先ノードの1つから、前記第1の接続パケットの送信に応答して1つの受信確認パケットを受信しそして処理するように構成される、ことを特徴とする請求項11に記載の装置。
  13. 前記処理回路は、前記行先ノードの1つからの前記受信確認を待つことなく、前記第1のデータを前記第1の動的接続上で送信するように構成される、ことを特徴とする請求項12に記載の装置。
  14. 前記処理回路は、前記受信確認パケットを受信するまで前記第1の動的接続の閉鎖をせずに待機するように構成される、ことを特徴とする請求項12に記載の装置。
  15. 前記処理回路は、前記第1の動的接続を閉鎖するため、1つの切断パケットを前記第1の動的接続上で前記第1の行先プロセスに送信するように構成される、ことを特徴とする請求項11に記載の装置。
  16. 前記1つ以上の行先ノードは前記切断パケットの受信確認をせず、そして、前記第2の接続パケットは前記切断パケットの送信後すぐに送信される、ことを特徴とする請求項15に記載の装置。
  17. 前記処理回路は、前記第1の行先プロセスを参照する1つ以上の第1の作業待ち行列項目(WQE)と、その後の前記第2の行先プロセスを参照する1つ以上の第2の作業待ち行列項目(WQE)と、からなる1つの待ち行列を処理し、そして、前記ネットワーク通信装置により処理されるべき前記第2の作業待ち行列項目(WQE)の最初の1つに到達すると前記第1の動的接続を閉鎖する、ように構成されることを特徴とする請求項11−16のいずれかに記載の装置。
  18. ネットワーク通信システムであって、
    第1のネットワークインタフェース装置と;
    前記第1のネットワークインタフェース装置は、第1及び第2のデータを1つ以上の行先ノード上で走る第1と第2の行先プロセスにパケットネットワーク経由でそれぞれ送信するという、1つのイニシエータホスト上で走る1つのイニシエータプロセスからの、第1及び第2の要求を受信するため、前記イニシエータホストに接続され、
    前記第1のネットワークインタフェース装置は、前記第1及び第2の要求の両方に使用されるように割り当てられた、多重の異なる行先プロセスに順次接続するための動的接続された一のイニシエータコンテキストを使用して、前記第1の行先プロセスとの第1の動的接続を開通するため、多重の異なる行先プロセスに順次接続するための動的接続された前記イニシエータコンテキストを参照しかつ前記第1の行先プロセスを行先とする第1の接続パケットを、前記ネットワークインタフェース経由で送信し、その後、前記第1のデータを前記第1の動的接続上で送信し、そして前記第1のデータの送信後、前記第1の動的接続を閉鎖し、そして、前記第2の行先プロセスとの第2の動的接続を開通するため、多重の異なる行先プロセスに順次接続するための動的接続された前記イニシエータコンテキストを参照しかつ前記第2の行先プロセスを行先とする第2の接続パケットを前記ネットワークインタフェース経由で送信し、その後、前記第2のデータを前記第2の動的接続上で送信する、ように構成され、
    ここにおいて動的接続とは一時的な接続を意味し、
    第2のネットワークインタフェース装置と;
    前記第2のネットワークインタフェース装置は、1つの行先ノード上の1つの行先ホストに接続され、前記第1の接続パケットを受信すると、前記行先ノードにおいて前記第1のデータを受信するため、多重の異なるイニシエータプロセスに順次接続するための動的接続されたつの受信側コンテキストを割り当て、そして、前記第1の動的接続を閉鎖した後、更なるデータを多重の異なる行先プロセスに順次接続するための動的接続された他のイニシエータから受信するため、前記動的接続された受信側コンテキストを再度割り当てる、ように構成され、
    を有することを特徴とするシステム。
  19. 前記第2のネットワークインタフェース装置は、多重の異なるイニシエータプロセスに順次接続するための動的接続された前記受信側コンテキストを、前記第1の接続パケットにより特定された動的接続の1つの行先に属する1群の多重の異なるイニシエータプロセスに順次接続するための動的接続された受信側コンテキストから選択するように構成される、ことを特徴とする請求項18に記載のシステム。
  20. 前記第2のネットワークインタフェース装置は、前記ネットワークインタフェース装置による再試行に応答して、前記行先ノードにおいて多重の異なる行先プロセスに順次接続するための動的接続された前記イニシエータコンテキストから受信した多重の接続パケットをカウントし、そして、全ての前記接続パケットが受信された後に、多重の異なるイニシエータプロセスに順次接続するための動的接続された前記受信側コンテキストを再度割り当てる、ように構成されることを特徴とする請求項18に記載のシステム。
JP2012539444A 2009-11-19 2010-10-21 動的接続された移送サービス Active JP5635117B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/621,523 2009-11-19
US12/621,523 US8213315B2 (en) 2009-11-19 2009-11-19 Dynamically-connected transport service
PCT/IB2010/054768 WO2011061649A1 (en) 2009-11-19 2010-10-21 Dynamically-connected transport service

Publications (2)

Publication Number Publication Date
JP2013511884A JP2013511884A (ja) 2013-04-04
JP5635117B2 true JP5635117B2 (ja) 2014-12-03

Family

ID=44011259

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012539444A Active JP5635117B2 (ja) 2009-11-19 2010-10-21 動的接続された移送サービス

Country Status (3)

Country Link
US (1) US8213315B2 (ja)
JP (1) JP5635117B2 (ja)
WO (1) WO2011061649A1 (ja)

Families Citing this family (80)

* Cited by examiner, † Cited by third party
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
GB0408876D0 (en) 2004-04-21 2004-05-26 Level 5 Networks Ltd User-level stack
GB0408868D0 (en) 2004-04-21 2004-05-26 Level 5 Networks Ltd Checking data integrity
GB0505300D0 (en) * 2005-03-15 2005-04-20 Level 5 Networks Ltd Transmitting data
GB0506403D0 (en) 2005-03-30 2005-05-04 Level 5 Networks Ltd Routing tables
GB0505297D0 (en) 2005-03-15 2005-04-20 Level 5 Networks Ltd Redirecting instructions
EP1861778B1 (en) 2005-03-10 2017-06-21 Solarflare Communications Inc Data processing system
US7634584B2 (en) 2005-04-27 2009-12-15 Solarflare Communications, Inc. Packet validation in virtual network interface architecture
WO2006134373A2 (en) 2005-06-15 2006-12-21 Solarflare Communications Incorporated Reception according to a data transfer protocol of data directed to any of a plurality of destination entities
US7984180B2 (en) 2005-10-20 2011-07-19 Solarflare Communications, Inc. Hashing algorithm for network receive filtering
GB0600417D0 (en) 2006-01-10 2006-02-15 Level 5 Networks Inc Virtualisation support
US8116312B2 (en) 2006-02-08 2012-02-14 Solarflare Communications, Inc. Method and apparatus for multicast packet reception
EP2552081B1 (en) 2006-07-10 2015-06-17 Solarflare Communications Inc Interrupt management
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
GB0621774D0 (en) 2006-11-01 2006-12-13 Level 5 Networks Inc Driver level segmentation
GB0723422D0 (en) * 2007-11-29 2008-01-09 Level 5 Networks Inc Virtualised receive side scaling
GB0802126D0 (en) 2008-02-05 2008-03-12 Level 5 Networks Inc Scalable sockets
GB0823162D0 (en) 2008-12-18 2009-01-28 Solarflare Communications Inc Virtualised Interface Functions
US9256560B2 (en) 2009-07-29 2016-02-09 Solarflare Communications, Inc. Controller integration
US9210140B2 (en) 2009-08-19 2015-12-08 Solarflare Communications, Inc. Remote functionality selection
EP2309680B1 (en) 2009-10-08 2017-07-19 Solarflare Communications Inc Switching API
US8743877B2 (en) 2009-12-21 2014-06-03 Steven L. Pope Header processing engine
US9600429B2 (en) 2010-12-09 2017-03-21 Solarflare Communications, Inc. Encapsulated accelerator
US10873613B2 (en) 2010-12-09 2020-12-22 Xilinx, Inc. TCP processing for devices
US9003053B2 (en) 2011-09-22 2015-04-07 Solarflare Communications, Inc. Message acceleration
US9258390B2 (en) 2011-07-29 2016-02-09 Solarflare Communications, Inc. Reducing network latency
US8996644B2 (en) 2010-12-09 2015-03-31 Solarflare Communications, Inc. Encapsulated accelerator
US9674318B2 (en) 2010-12-09 2017-06-06 Solarflare Communications, Inc. TCP processing for devices
US9008113B2 (en) 2010-12-20 2015-04-14 Solarflare Communications, Inc. Mapped FIFO buffering
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
US9391840B2 (en) 2012-05-02 2016-07-12 Solarflare Communications, Inc. Avoiding delayed data
US8761189B2 (en) 2012-06-28 2014-06-24 Mellanox Technologies Ltd. Responding to dynamically-connected transport requests
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
US20140160954A1 (en) * 2012-12-12 2014-06-12 International Business Machines Corporation Host ethernet adapter frame forwarding
US9426124B2 (en) 2013-04-08 2016-08-23 Solarflare Communications, Inc. Locked down network interface
US10742604B2 (en) 2013-04-08 2020-08-11 Xilinx, 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
US10110518B2 (en) 2013-12-18 2018-10-23 Mellanox Technologies, Ltd. Handling transport layer operations received out of order
US9925492B2 (en) 2014-03-24 2018-03-27 Mellanox Technologies, Ltd. Remote transactional memory
US9699067B2 (en) 2014-07-22 2017-07-04 Mellanox Technologies, Ltd. Dragonfly plus: communication over bipartite node groups connected by a mesh network
US9128779B1 (en) * 2014-07-31 2015-09-08 Splunk Inc. Distributed tasks for retrieving supplemental job information
US9699110B2 (en) 2014-08-11 2017-07-04 Mellanox Technologies, Ltd. Accelerating and offloading lock access over a network
WO2016135919A1 (ja) * 2015-02-26 2016-09-01 株式会社日立製作所 ストレージ装置
US9894005B2 (en) 2015-03-31 2018-02-13 Mellanox Technologies, Ltd. Adaptive routing controlled by source node
US10284383B2 (en) 2015-08-31 2019-05-07 Mellanox Technologies, Ltd. Aggregation protocol
US9973435B2 (en) 2015-12-16 2018-05-15 Mellanox Technologies Tlv Ltd. Loopback-free adaptive routing
US10819621B2 (en) 2016-02-23 2020-10-27 Mellanox Technologies Tlv Ltd. Unicast forwarding of adaptive-routing notifications
US10521283B2 (en) 2016-03-07 2019-12-31 Mellanox Technologies, Ltd. In-node aggregation and disaggregation of MPI alltoall and alltoallv collectives
US10642780B2 (en) 2016-03-07 2020-05-05 Mellanox Technologies, Ltd. Atomic access to object pool over RDMA transport network
CN107204908A (zh) * 2016-03-17 2017-09-26 阿里巴巴集团控股有限公司 一种基于通信接口框架的消息发送、接收方法及装置
US10178029B2 (en) 2016-05-11 2019-01-08 Mellanox Technologies Tlv Ltd. Forwarding of adaptive routing notifications
US10148581B2 (en) * 2016-05-30 2018-12-04 Mellanox Technologies, Ltd. End-to-end enhanced reliable datagram transport
US10200294B2 (en) 2016-12-22 2019-02-05 Mellanox Technologies Tlv Ltd. Adaptive routing based on flow-control credits
US10552367B2 (en) 2017-07-26 2020-02-04 Mellanox Technologies, Ltd. Network data transactions using posted and non-posted operations
US10644995B2 (en) 2018-02-14 2020-05-05 Mellanox Technologies Tlv Ltd. Adaptive routing in a box
US11277455B2 (en) 2018-06-07 2022-03-15 Mellanox Technologies, Ltd. Streaming system
US11005724B1 (en) 2019-01-06 2021-05-11 Mellanox Technologies, Ltd. Network topology having minimal number of long connections among groups of network elements
US11625393B2 (en) 2019-02-19 2023-04-11 Mellanox Technologies, Ltd. High performance computing system
EP3699770A1 (en) 2019-02-25 2020-08-26 Mellanox Technologies TLV Ltd. Collective communication system and methods
US11463547B2 (en) * 2019-12-12 2022-10-04 Google Llc Reliable transport protocol and hardware architecture for datacenter networking
US11750699B2 (en) 2020-01-15 2023-09-05 Mellanox Technologies, Ltd. Small message aggregation
US11252027B2 (en) 2020-01-23 2022-02-15 Mellanox Technologies, Ltd. Network element supporting flexible data reduction operations
US11876885B2 (en) 2020-07-02 2024-01-16 Mellanox Technologies, Ltd. Clock queue with arming and/or self-arming features
US11575594B2 (en) 2020-09-10 2023-02-07 Mellanox Technologies, Ltd. Deadlock-free rerouting for resolving local link failures using detour paths
US10999364B1 (en) * 2020-10-11 2021-05-04 Mellanox Technologies, Ltd. Emulation of memory access transport services
US11411911B2 (en) 2020-10-26 2022-08-09 Mellanox Technologies, Ltd. Routing across multiple subnetworks using address mapping
US11556378B2 (en) 2020-12-14 2023-01-17 Mellanox Technologies, Ltd. Offloading execution of a multi-task parameter-dependent operation to a network device
US11451493B2 (en) 2021-01-06 2022-09-20 Mellanox Technologies, Ltd. Connection management in a network adapter
US11533267B2 (en) 2021-01-21 2022-12-20 Mellanox Technologies, Ltd. Out-of-order packet processing
US11870682B2 (en) 2021-06-22 2024-01-09 Mellanox Technologies, Ltd. Deadlock-free local rerouting for handling multiple local link failures in hierarchical network topologies
US11765103B2 (en) 2021-12-01 2023-09-19 Mellanox Technologies, Ltd. Large-scale network with high port utilization
US11622004B1 (en) 2022-05-02 2023-04-04 Mellanox Technologies, Ltd. Transaction-based reliable transport
US11922237B1 (en) 2022-09-12 2024-03-05 Mellanox Technologies, Ltd. Single-step collective operations
US12132665B2 (en) 2022-11-21 2024-10-29 Mellanox Technologies, Ltd. Handling of out-of-order transport-layer packets using reorder buffer

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60102934T2 (de) * 2000-08-04 2005-03-10 Xtradyne Technologies Ag Verfahren und system für sitzungsbasierte berechtigung und zugangskontrolle für vernetzte anwendungsobjekte
US6944786B2 (en) * 2001-07-27 2005-09-13 International Business Machines Corporation Network node failover using multicast address or port
US7748002B1 (en) * 2001-10-31 2010-06-29 Juniper Networks, Inc. Systems and methods for scheduling applications
US7430211B2 (en) 2002-10-18 2008-09-30 Broadcom Corporation System and method for receive queue provisioning
US20060007926A1 (en) * 2003-12-19 2006-01-12 Zur Uri E System and method for providing pooling or dynamic allocation of connection context data
US7688838B1 (en) * 2004-10-19 2010-03-30 Broadcom Corporation Efficient handling of work requests in a network interface device
US7835380B1 (en) * 2004-10-19 2010-11-16 Broadcom Corporation Multi-port network interface device with shared processing resources
JP4516439B2 (ja) * 2005-02-01 2010-08-04 富士通株式会社 中継プログラム、中継方法および中継装置
US7805543B2 (en) * 2005-06-30 2010-09-28 Intel Corporation Hardware oriented host-side native command queuing tag management
CA2655545A1 (en) 2006-06-19 2007-12-27 Liquid Computing Corporation Secure handle for intra-and inter-processor communications
US7817634B2 (en) * 2006-06-30 2010-10-19 Intel Corporation Network with a constrained usage model supporting remote direct memory access

Also Published As

Publication number Publication date
US20110116512A1 (en) 2011-05-19
WO2011061649A1 (en) 2011-05-26
JP2013511884A (ja) 2013-04-04
US8213315B2 (en) 2012-07-03

Similar Documents

Publication Publication Date Title
JP5635117B2 (ja) 動的接続された移送サービス
US11470000B2 (en) Medical device communication method
US20220311544A1 (en) System and method for facilitating efficient packet forwarding in a network interface controller (nic)
US10148581B2 (en) End-to-end enhanced reliable datagram transport
US9031086B2 (en) Responding to dynamically-connected transport requests
US10430374B2 (en) Selective acknowledgement of RDMA packets
US9503383B2 (en) Flow control for reliable message passing
CN113490927B (zh) 具有硬件集成和乱序放置的rdma输送
CN114520711B (zh) 数据包的选择性重传
EP4027249A1 (en) Connection management in a network adapter
US8150996B2 (en) Method and apparatus for handling flow control for a data transfer

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130620

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140522

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140625

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140821

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: 20141008

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141015

R150 Certificate of patent or registration of utility model

Ref document number: 5635117

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250