JP2005524264A - ネットワークにおけるデータ転送を管理するデータ処理システムおよび方法 - Google Patents

ネットワークにおけるデータ転送を管理するデータ処理システムおよび方法 Download PDF

Info

Publication number
JP2005524264A
JP2005524264A JP2004500192A JP2004500192A JP2005524264A JP 2005524264 A JP2005524264 A JP 2005524264A JP 2004500192 A JP2004500192 A JP 2004500192A JP 2004500192 A JP2004500192 A JP 2004500192A JP 2005524264 A JP2005524264 A JP 2005524264A
Authority
JP
Japan
Prior art keywords
end node
logical connection
packet
instance number
node
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
Application number
JP2004500192A
Other languages
English (en)
Other versions
JP4099170B2 (ja
Inventor
ビューケマ、ブルース、リロイ
グレッグ、トーマス、アンソニー
ニール、ダニー、マーヴィン
レシオ、レナト、ジョン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2005524264A publication Critical patent/JP2005524264A/ja
Application granted granted Critical
Publication of JP4099170B2 publication Critical patent/JP4099170B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • 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/326Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the transport layer [OSI layer 4]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Radar Systems Or Details Thereof (AREA)
  • Computer And Data Communications (AREA)
  • General Factory Administration (AREA)
  • Small-Scale Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】 データ処理システムにおいて第1のエンド・ノードから第2のエンド・ノードへ伝送するデータを管理する、データ処理システムにおける方法、システム、および製品を提供する。
【解決手段】 第1のエンド・ノードと第2のエンド・ノードとの間でデータを伝送する前に、第1のエンド・ノードと第2のエンド・ノードとの間に論理接続を確立する。あるインスタンス番号を、この論理接続に関連付けるとともに、この接続が維持されている間に伝送する各パケットに含める。インスタンス番号はこの接続の間は一定に保たれるが、これらのエンド・ノード間に論理接続が再確立されるごとに、たとえばそれをインクリメントすることにより、変化させる。各パケットはこの論理接続という特定の事実に関連付けられている。パケットを受信すると、そのインスタンス番号を用いて当該パケットが、これらのエンド・ノード間の以前の論理接続の間に伝送された長期経過のパケットであるか否かを判断する。

Description

本発明は一般にコンピュータ・システムの分野に関し、特にネットワークにおけるデータ転送を管理するデータ処理システム、方法、および製品に関する。
既存の多くのコンピュータ・システムでは、コンピュータ・システム内の様々なプロセッサやI/O装置の間で内部的にデータを伝送する手段として共用バス・アーキテクチャ(たとえばPCI(Peripheral Component Interconnect))を使用している。これら既存の共用バス・アーキテクチャは通常のプロセッサの性能の増大に追随することができないでいる。その結果、コンピュータ・システム内のプロセッサやI/O装置の間で内部的にデータを伝送するために、通常「Infiniband」と呼ばれている新たなアーキテクチャが開発された。この新たなアーキテクチャによって、より広い帯域幅が実現するとともに拡張性が増大する。
新たなアーキテクチャによって、チャネルに基づいたスイッチ・ファブリック技術を含むシステム・エリア・ネットワークが実現する。このようなシステム・エリア・ネットワーク(SAN)では、パケットから成るメッセージを介してデータを伝送する。プロセッサかI/O装置かを問わず、各装置はチャネル・アダプタを備えている。メッセージはある装置のチャネル・アダプタから別の装置のチャネル・アダプタへスイッチを介して伝送する。各チャネル・アダプタは「エンド・ノード」とも呼ばれる。
図1は従来技術による、各々が1つのキュー対を備えた2つのエンド・ノードを示す図である。エンド・ノードAがエンド・ノードBへデータを伝送する必要がある場合、エンド・ノードAに含まれるキュー対とエンド・ノードBに含まれるキュー対との間に論理接続を確立する。次いで、エンド・ノードA中のキュー対の送信キューからエンド・ノードB中のキュー対の受信キューへデータを送信する。エンド・ノードB中のキュー対の送信キューからエンド・ノードA中のキュー対の受信キューへ応答を送信する。エンド・ノードA100はキュー対102を備えている。キュー対102は送信キュー104と受信キュー106を備えている。エンド・ノードB108はキュー対110を備えている。キュー対110は受信キュー112と送信キュー114を備えている。要求は送信キューから受信キューへ送付し、応答は受信キューから送信キューへ送付する。要求116には応答118が確認応答する。要求120には応答122が確認応答する。
メッセージ(したがってパケット)は次に示す5つの異なるトランスポート種別のうちの1つを用いて伝送する。すなわち、RC(Reliable Coneected: 高信頼接続)、RD(Reliable Datagram: 高信頼データグラム) 、UC(Unreliable Connected: 非信頼接続)、UD(Unreliable Datagram: 非信頼データグラム) 、およびRawD(RawDatagram : 非加工データグラム)である。RCトランスポート種別を用いる場合、各パケットにはシーケンス番号を含め、パケット転送を確認応答する。
2つのエンド・ノードの間に論理接続を確立したら、開始シーケンス番号を確立する。パケットを送信するごとに、シーケンス番号をインクリメントし当該パケットに含める。したがって、パケットのシーケンス番号を用いることにより、パケット列内における当該パケットの位置を特定することができる。
従来技術では、シーケンス番号を表わすために、特定のビットの組(すなわちフィールド)を各パケットに含めている。したがって、シーケンス番号とはこのビット組全体のことである。
要求116に含まれるパケット・シーケンス番号(PSN)は応答118に含まれるPSNと同じものである。要求120に含まれるPSNは応答122に含まれるPSNと同じものである。要求116および応答118に含まれるPSNと要求120および応答122に含まれるPSNとは、それらがすべて同じ組のキュー対を使用しているにもかかわらず、関係がない。
通常、要求者ノードは各要求パケットを送信するごとにPSNを1だけインクリメントする。応答者ノードは受信した要求中のPSNと応答者も要求パケットを受信するごとに1だけインクリメントしているそれ自身のPSN(予期PSN)とを比較する。PSNが一致したら、応答者は確認応答すべき要求パケットに含まれていたのと同じPSNを用いて要求に対する応答(確認応答)を送信する。次いで、要求者に戻り、応答中のPSNと要求者の応答PSNとを比較してそれが要求者も1だけインクリメントしているそれ自身の応答PSN(予期PSN)と同じであるか否かを判断する。
要求者は応答パケットを受信しなくとも複数のパケットを送信することが許されている。応答パケットは後刻、要求者が受信するが、これら応答パケット中のPSNを要求者の応答PSNカウント値と比較する。要求パケットのすべてのPSNが応答者の内部PSNと一致し、応答パケットのすべてのPSNが要求者の内部PSNと一致する場合、パケットはすべてあるエンド・ノードから別のエンド・ノードへ(送信キューから受信キューへ)成功裏に送付されている。
高信頼性動作を保証するために、応答者において検出して解決すべき異常状態が2つある。第1の状態は重複パケットであり、第2の状態は不正パケットである。
重複パケットは要求者が複数のパケットを送信したときに応答者において検出される。要求者が複数のパケットを送信するのはそれが当該パケットが失われたことを検出した場合である。図2は従来技術に従い重複パケットを伝送する様子を示すはしご図である。PSN=1を含む要求パケット204はエンド・ノード200が送信し、応答者(エンド・ノード202)が受信する。応答(PSN=1を含む確認応答206)は失われるか遅延するかしている。この場合、要求者(エンド・ノード200)はタイムアウト状態を検出し、同じPSN(PSN=1)を含む要求208と同じ要求を再送する。応答者(エンド・ノード202)はPSNが重複している(すなわちそのPSNはエンド・ノード202の内部カウント値より「若い(earlier)」)と判断する。そして、応答者は同じPSN(PSN=1)を有する応答を確認応答として再度送信する。
不正パケットは応答者がその内部カウント値よりも「ふけた(ahead)」PSNを有するパケットを受信したときに応答者において検出される。図3は従来技術に従い不正パケットを受信する様子を示すはしご図である。要求者(エンド・ノード300)はPSN=1を含む要求304、PSN=2を含む要求308、およびPSN=3を含む要求310を送信する。要求304はPSN=1を含む確認応答306によって適切に確認応答される。PSN=2を含む要求308はファブリック中で失われている。したがって、応答者(エンド・ノード302)はPSN=1を有する要求304の次にPSN=3を有する要求310を見る。それゆえ、要求310は不正パケットである。この場合、応答者(エンド・ノード302)はPSN=1を有する要求パケットに対して確認応答312を再送する。そして、要求者はPSN=2を有する要求314で始まるパケットをすべて再送する。
要求者において、応答パケットにも同様の規則が適用される。要求者が検出した重複パケットは破棄する。この場合が生じるのは要求パケットは失われず要求者がそれを再送するのに十分なほど長くファブリック中で遅延した場合のみである。重複したPSNを有する第2の応答は破棄する。要求者において不正PSNが発生しうるのは複数のパケット応答中の少なくとも1つのパケットがファブリック中で失われたときである。この場合、要求者は当該要求を再送する。
PSNでは、各パケットに含まれるトランスポート・ヘッダにおいて固定かつ有限のビットを使用している。したがって、カウンタがPSNをその最大値から0に巻き戻して生成するから、PSNは継続的に再使用されている。未処理のパケット数よりもはるかに大きなPSNを使用することにより、要求者と応答者は重複範囲と不正範囲中にある範囲のパケット・シーケンス番号を確立する。
2つのエンド・ノード間の論理接続を終了(切断)したのちパケットが伝送中に再確立すると、問題が生じる。この場合、古く長期経過の接続に由来するパケットが応答者に到着する可能性がある。それが実際に古い接続に由来する長期経過のパケットである場合、応答者は当該パケットを有効なパケットであると解釈してしまう。
従来技術で述べられている解決策の1つは2つの特定のキュー対組の間に確立された論理接続の切断とこれら2つの同じキュー対組の間における論理接続の再確立との間に待ち受け状態を付加することである。したがって、エンド・ノードは古い接続に由来する潜在的に長期経過のパケットがすべて期限切れになるのに十分なほど長く待ち受けることになる。この解決策はたしかに問題を解決するが、特に接続の切断と再確立を頻繁に行なう場合、エンド・ノードの性能に顕著に影響する可能性がある。
したがって、ネットワークにおけるデータ転送を効率的に管理する方法、システム、および製品が求められている。
第1の側面において、本発明は次に示す方法を提供する。
データ処理システムにおいて第1のエンド・ノードから第2のエンド・ノードへ伝送するデータを管理する方法であって、
前記第1のエンド・ノードと前記第2のエンド・ノードとの間でデータを伝送する前に、前記第1のエンド・ノードと前記第2のエンド・ノードとの間に論理接続を確立するステップと、
あるインスタンス番号と前記論理接続とを関連付けるステップと、
前記論理接続の確立状態を維持しながら、前記第1のエンド・ノードと前記第2のエンド・ノードとの間で伝送する各パケットに前記インスタンス番号を含めるステップであって、前記インスタンス番号は前記論理接続の間、一定に保たれる、ステップと
を備えた
方法。
前記方法は、さらに、
前記第1のエンド・ノードと前記第2のエンド・ノードとの間に前記論理接続を再確立するステップと、
前記インスタンス番号をインクリメントするステップであって、前記インクリメントしたインスタンス番号は前記再確立した論理接続に関連付けられている、ステップと、
前記再確立した論理接続の間に、前記第1のエンド・ノードと前記第2のエンド・ノードとの間で伝送する各パケットに前記インクリメントしたインスタンス番号を含めるステップであって、前記インクリメントしたインスタンス番号は前記再確立した論理接続の間、一定に保たれる、ステップと
を備えているのが望ましい。
前記第1のエンド・ノードと前記第2のエンド・ノードとの間に論理接続を確立する前記ステップが、さらに、
前記第1のエンド・ノード中のキュー対と前記第2のエンド・ノード中のキュー対とを関連付けるステップ
を備えているのが望ましい。
前記第1のエンド・ノード中のキュー対と前記第2のエンド・ノード中のキュー対とを関連付ける前記ステップが、さらに、
前記第1のエンド・ノード中にキュー対のテーブルを確立するステップと、
前記第1のエンド・ノード中の前記キュー対と前記第2のエンド・ノード中のキュー対との間の関連付けを前記テーブル内に格納するステップと
を備えているのが望ましい。
前記方法は、さらに、
特定の論理接続を用いて前記第2のエンド・ノードから前記第1のエンド・ノードへパケットを送信するステップと、
前記第1のエンド・ノードを用いて前記パケットを受信するステップと、
前記テーブルを用いて前記特定の論理接続が以前に確立していたか否かを判断するステップと
を備えているのが望ましい。
前記テーブルを用いて前記特定の論理接続が以前に確立していたか否かを判断する前記ステップが、さらに、
前記第1のエンド・ノード中のキュー対と前記第2のエンド・ノード中のキュー対との間の関連付けの表示が前記テーブルに格納されているか否かを判断するステップ
を備えているのが望ましい。
前記方法は、さらに、
前記論理接続の間に前記第1のエンド・ノードと前記第2のエンド・ノードとの間で伝送する各パケット中のトランスポート・ヘッダに前記インスタンス番号を含めるステップ
を備えているのが望ましい。
前記方法は、さらに、
前記論理接続の間に前記第1のエンド・ノードと前記第2のエンド・ノードとの間で伝送する各パケット中のトランスポート・ヘッダ中のシーケンス番号フィールドに前記インスタンス番号を含めるステップ
を備えているのが望ましい。
前記方法は、さらに、
前記論理接続の間に前記第1のエンド・ノードと前記第2のエンド・ノードとの間で伝送する各パケットに含まれる各シーケンス番号に前記インスタンス番号を含めるステップ
を備えているのが望ましい。
前記方法は、さらに、
前記論理接続が前記第1のエンド・ノードと前記第2のエンド・ノードとの間における最初の論理接続であるか否かを判断するステップと、
前記論理接続は最初の論理接続であるという判断に応答して、
あるインスタンス番号と前記論理接続とを関連付けるステップと、
前記論理接続の間に前記第1のエンド・ノードと前記第2のエンド・ノードとの間で伝送する各パケットに前記インスタンス番号を含めるステップと、
前記インスタンス番号を現在のインスタンス番号として使用するステップと、
前記論理接続は最初の論理接続ではないという判断に応答して、
前記現在のインスタンス番号をインクリメントするステップと、
前記インクリメントした現在のインスタンス番号を現在のインスタンス番号として使用するステップと、
前記論理接続の間に前記第1のエンド・ノードと前記第2のエンド・ノードとの間で伝送する各パケットに前記インクリメントした現在のインスタンス番号を含めるステップと
を備えているのが望ましい。
前記方法は、さらに、
前記論理接続を切断するステップと、
前記第1のエンド・ノードと前記第2のエンド・ノードとの間に前記論理接続を再確立するステップであって、前記論理接続の切断と前記論理接続の再確立との間に待ち受け状態を実行しない、ステップと
を備えているのが望ましい。
前記方法は、さらに、
前記第1のエンド・ノードから前記第2のエンド・ノードへパケットを伝送するステップと、
現在のインスタンス番号を前記パケットに含めるステップと
を備えているのか望ましい。
前記方法は、さらに、
前記第2のエンド・ノードがパケットを受信するステップと、
前記第2のエンド・ノードを用いて前記受信したパケットに含まれているインスタンス番号を特定するステップと、
現在のインスタンス番号を確認するステップと、
前記受信したパケットに含まれているインスタンス番号が前記現在のインスタンス番号であるか否かを判断するステップと、
前記受信したパケットに含まれているインスタンス番号は前記現在のインスタンス番号であるという判断に従って、前記第2のエンド・ノードが前記パケットを通常通りに処理するステップと、
前記受信したパケットに含まれているインスタンス番号は前記現在のインスタンス番号ではないという判断に従って、前記第2のエンド・ノードが前記パケットを破棄するステップと
を備えているのが望ましい。
前記方法は、さらに、
前記論理接続を確立したのち、前記第1のエンド・ノードがシーケンス番号を設定するステップと、
前記第1のエンド・ノードから前記第2のエンド・ノードへのパケットの各伝送ののちに、前記シーケンス番号をインクリメントするステップと、
前記第1のエンド・ノードから前記第2のエンド・ノードへのパケットの各伝送ののちに、前記インクリメントしたシーケンス番号と等しい現在のシーケンス番号を設定するステップと、
前記第1のエンド・ノードから前記第2のエンド・ノードへ伝送する各パケットに現在のシーケンス番号を含めるステップと
を備えているのが望ましい。
第2の側面において、本発明は次に示す方法を提供する。
データ処理システムにおいて第1のエンド・ノードから第2のエンド・ノードへ伝送するデータを管理する方法であって、
前記第1のエンド・ノードと前記第2のエンド・ノードとの間でデータを伝送する前に、前記第1のエンド・ノードと前記第2のエンド・ノードとの間に論理接続を確立するステップと、
前記第1のエンド・ノードから前記第2のエンド・ノードへ伝送する各パケットに現在のシーケンス番号を含めるステップであって、前記現在のシーケンス番号は前記第1のエンド・ノードから前記第2のエンド・ノードへパケットを伝送するごとにインクリメントする、ステップと、
あるインスタンス番号と前記論理接続とを関連付けるステップと、
各シーケンス番号に前記インスタンス番号を含めるステップと
を備えた
方法。
前記方法は、さらに、
前記第1のエンド・ノードと前記第2のエンド・ノードとの間に前記論理接続を再確立するステップと、
前記インスタンス番号をインクリメントするステップであって、前記インクリメントしたインスタンス番号は前記再確立した論理接続と関連付けられている、ステップと、
前記インクリメントしたインスタンス番号を各シーケンス番号に含めるステップであって、前記インクリメントしたインスタンス番号は前記再確立した論理接続の間、一定に保たれる、ステップと
を備えているのが望ましい。
前記第1のエンド・ノードと前記第2のエンド・ノードとの間に前記論理接続を確立する前記ステップが、さらに、
前記第1のエンド・ノード中のキュー対と前記第2のエンド・ノード中のキュー対とを関連付けるステップ
を備えているのが望ましい。
前記第1のエンド・ノード中のキュー対と前記第2のエンド・ノード中のキュー対とを関連付ける前記ステップが、さらに、
前記第1のエンド・ノードにキュー対のテーブルを確立するステップと、
前記第1のエンド・ノード中のキュー対と前記第2のエンド・ノード中のキュー対との間の関連付けの表示を前記テーブル内に格納するステップと
を備えているのが望ましい。
前記方法は、さらに、
特定の論理接続を用いて前記第2のエンド・ノードから前記第1のエンド・ノードへパケットを伝送するステップと、
前記第1のエンド・ノードを用いて前記パケットを受信するステップと、
前記テーブルを用いて前記特定の論理接続が以前に確立していたか否かを判断するステップと
を備えているのが望ましい。
前記テーブルを用いて前記特定の論理接続が以前に確立していたか否かを判断する前記ステップが、さらに、
前記第1のエンド・ノード中のキュー対と前記第2のエンド・ノード中のキュー対との間の関連付けの表示が前記テーブルに格納されているか否かを判断するステップ
を備えているのが望ましい。
前記論理接続が前記第1のエンド・ノードと前記第2のエンド・ノードとの間における最初の論理接続であるか否かを判断するステップと、
前記論理接続は最初の論理接続であるという判断に応答して、
あるインスタンス番号と前記論理接続とを関連付けるステップと、
前記論理接続の間に前記第1のエンド・ノードと前記第2のエンド・ノードとの間で伝送する各シーケンス番号に前記インスタンス番号を含めるステップと、
前記インスタンス番号を現在のインスタンス番号として使用するステップと、
前記論理接続は最初の論理接続ではないという判断に応答して、
前記現在のインスタンス番号をインクリメントするステップと、
前記インクリメントした現在のインスタンス番号を現在のインスタンス番号として使用するステップと、
前記論理接続の間に前記第1のエンド・ノードと前記第2のエンド・ノードとの間で伝送する各シーケンス番号に前記インクリメントした現在のインスタンス番号を含めるステップと
を備えているのが望ましい。
前記方法は、さらに、
前記論理接続を切断するステップと、
前記第1のエンド・ノードと前記第2のエンド・ノードとの間に前記論理接続を再確立するステップであって、前記論理接続の切断と前記論理接続の再確立との間に待ち受け状態を実行しない、ステップと
を備えているのが望ましい。
前記方法は、さらに、
前記第2のエンド・ノードがパケットを受信するステップと、
前記第2のエンド・ノードを用いて前記受信したパケットに含まれているインスタンス番号を特定するステップと、
現在のインスタンス番号を確認するステップと、
前記受信したパケットに含まれているインスタンス番号が前記現在のインスタンス番号であるか否かを判断するステップと、
前記受信したパケットに含まれているインスタンス番号は前記現在のインスタンス番号であるという判断に従って、前記第2のエンド・ノードが前記パケットを通常通りに処理するステップと、
前記受信したパケットに含まれているインスタンス番号は前記現在のインスタンス番号ではないという判断に従って、前記第2のエンド・ノードが前記パケットを破棄するステップと
を備えているのが望ましい。
第3の側面において、本発明は次に示すデータ処理システムを提供する。
データ処理システムにおいて第1のエンド・ノードから第2のエンド・ノードへ伝送するデータを管理するデータ処理システムであって、
前記第1のエンド・ノードと前記第2のエンド・ノードとの間でデータを伝送する前に、前記第1のエンド・ノードと前記第2のエンド・ノードとの間に論理接続を確立する手段と、
あるインスタンス番号と前記論理接続とを関連付ける手段と、
前記論理接続の確立状態を維持しながら、前記第1のエンド・ノードと前記第2のエンド・ノードとの間で伝送する各パケットに前記インスタンス番号を含める手段であって、前記インスタンス番号は前記論理接続の間、一定に保たれる、手段と
を備えた
データ処理システム。
前記システムは、さらに、
前記第1のエンド・ノードと前記第2のエンド・ノードとの間に前記論理接続を再確立する手段と、
前記インスタンス番号をインクリメントする手段であって、前記インクリメントしたインスタンス番号は前記再確立した論理接続に関連付けられている、手段と、
前記再確立した論理接続の間に、前記第1のエンド・ノードと前記第2のエンド・ノードとの間で伝送する各パケットに前記インクリメントしたインスタンス番号を含める手段であって、前記インクリメントしたインスタンス番号は前記再確立した論理接続の間、一定に保たれる、手段と
を備えているのが望ましい。
前記第1のエンド・ノードと前記第2のエンド・ノードとの間に論理接続を確立する前記手段が、さらに、
前記第1のエンド・ノード中のキュー対と前記第2のエンド・ノード中のキュー対とを関連付ける手段
を備えているのが望ましい。
前記第1のエンド・ノード中のキュー対と前記第2のエンド・ノード中のキュー対とを関連付ける前記手段が、さらに、
前記第1のエンド・ノード中にキュー対のテーブルを確立する手段と、
前記第1のエンド・ノード中の前記キュー対と前記第2のエンド・ノード中のキュー対との間の関連付けを前記テーブル内に格納する手段と
を備えているのが望ましい。
前記システムは、さらに、
特定の論理接続を用いて前記第2のエンド・ノードから前記第1のエンド・ノードへパケットを送信する手段と、
前記第1のエンド・ノードを用いて前記パケットを受信する手段と、
前記テーブルを用いて前記特定の論理接続が以前に確立していたか否かを判断する手段と
を備えているのが望ましい。
前記テーブルを用いて前記特定の論理接続が以前に確立していたか否かを判断する前記手段が、さらに、
前記第1のエンド・ノード中のキュー対と前記第2のエンド・ノード中のキュー対との間の関連付けの表示が前記テーブルに格納されているか否かを判断する手段
を備えているのが望ましい。
前記システムは、さらに、
前記論理接続の間に前記第1のエンド・ノードと前記第2のエンド・ノードとの間で伝送する各パケット中のトランスポート・ヘッダに前記インスタンス番号を含める手段
を備えているのが望ましい。
前記システムは、さらに、
前記論理接続の間に前記第1のエンド・ノードと前記第2のエンド・ノードとの間で伝送する各パケット中のトランスポート・ヘッダ中のシーケンス番号フィールドに前記インスタンス番号を含める手段
を備えているのが望ましい。
前記システムは、さらに、
前記論理接続の間に前記第1のエンド・ノードと前記第2のエンド・ノードとの間で伝送する各パケットに含まれる各シーケンス番号に前記インスタンス番号を含める手段
を備えているのが望ましい。
前記システムは、さらに、
前記論理接続が前記第1のエンド・ノードと前記第2のエンド・ノードとの間における最初の論理接続であるか否かを判断する手段と、
前記論理接続は最初の論理接続であるという判断に応答して、
あるインスタンス番号と前記論理接続とを関連付ける手段と、
前記論理接続の間に前記第1のエンド・ノードと前記第2のエンド・ノードとの間で伝送する各パケットに前記インスタンス番号を含める手段と、
前記インスタンス番号を現在のインスタンス番号として使用する手段と、
前記論理接続は最初の論理接続ではないという判断に応答して、
前記現在のインスタンス番号をインクリメントする手段と、
前記インクリメントした現在のインスタンス番号を現在のインスタンス番号として使用する手段と、
前記論理接続の間に前記第1のエンド・ノードと前記第2のエンド・ノードとの間で伝送する各パケットに前記インクリメントした現在のインスタンス番号を含める手段と
を備えているのが望ましい。
前記システムは、さらに、
前記論理接続を切断する手段と、
前記第1のエンド・ノードと前記第2のエンド・ノードとの間に前記論理接続を再確立する手段であって、前記論理接続の切断と前記論理接続の再確立との間に待ち受け状態を実行しない、手段と
を備えているのが望ましい。
前記システムは、さらに、
前記第1のエンド・ノードから前記第2のエンド・ノードへパケットを伝送する手段と、
現在のインスタンス番号を前記パケットに含める手段と
を備えているのか望ましい。
前記システムは、さらに、
前記第2のエンド・ノードがパケットを受信する手段と、
前記第2のエンド・ノードを用いて前記受信したパケットに含まれているインスタンス番号を特定する手段と、
現在のインスタンス番号を確認する手段と、
前記受信したパケットに含まれているインスタンス番号が前記現在のインスタンス番号であるか否かを判断する手段と、
前記受信したパケットに含まれているインスタンス番号は前記現在のインスタンス番号であるという判断に従って、前記第2のエンド・ノードが前記パケットを通常通りに処理する手段と、
前記受信したパケットに含まれているインスタンス番号は前記現在のインスタンス番号ではないという判断に従って、前記第2のエンド・ノードが前記パケットを破棄する手段と
を備えているのが望ましい。
前記システムは、さらに、
前記論理接続を確立したのち、前記第1のエンド・ノードがシーケンス番号を設定する手段と、
前記第1のエンド・ノードから前記第2のエンド・ノードへのパケットの各伝送ののちに、前記シーケンス番号をインクリメントする手段と、
前記第1のエンド・ノードから前記第2のエンド・ノードへのパケットの各伝送ののちに、前記インクリメントしたシーケンス番号と等しい現在のシーケンス番号を設定する手段と、
前記第1のエンド・ノードから前記第2のエンド・ノードへ伝送する各パケットに現在のシーケンス番号を含める手段と
を備えているのが望ましい。
第4の側面において、本発明は次に示すシステムを提供する。
データ処理システムにおいて第1のエンド・ノードから第2のエンド・ノードへ伝送するデータを管理するシステムであって、
前記第1のエンド・ノードと前記第2のエンド・ノードとの間でデータを伝送する前に、前記第1のエンド・ノードと前記第2のエンド・ノードとの間に論理接続を確立する手段と、
前記第1のエンド・ノードから前記第2のエンド・ノードへ伝送する各パケットに現在のシーケンス番号を含める手段であって、前記現在のシーケンス番号は前記第1のエンド・ノードから前記第2のエンド・ノードへパケットを伝送するごとにインクリメントする、手段と、
あるインスタンス番号と前記論理接続とを関連付ける手段と、
各シーケンス番号に前記インスタンス番号を含める手段と
を備えた
システム。
前記システムは、さらに、
前記第1のエンド・ノードと前記第2のエンド・ノードとの間に前記論理接続を再確立する手段と、
前記インスタンス番号をインクリメントする手段であって、前記インクリメントしたインスタンス番号は前記再確立した論理接続と関連付けられている、手段と、
前記インクリメントしたインスタンス番号を各シーケンス番号に含める手段であって、前記インクリメントしたインスタンス番号は前記再確立した論理接続の間、一定に保たれる、手段と
を備えているのが望ましい。
前記第1のエンド・ノードと前記第2のエンド・ノードとの間に前記論理接続を確立する前記手段が、さらに、
前記第1のエンド・ノード中のキュー対と前記第2のエンド・ノード中のキュー対とを関連付ける手段
を備えているのが望ましい。
前記第1のエンド・ノード中のキュー対と前記第2のエンド・ノード中のキュー対とを関連付ける前記手段が、さらに、
前記第1のエンド・ノードにキュー対のテーブルを確立する手段と、
前記第1のエンド・ノード中のキュー対と前記第2のエンド・ノード中のキュー対との間の関連付けの表示を前記テーブル内に格納する手段と
を備えているのが望ましい。
前記システムは、さらに、
特定の論理接続を用いて前記第2のエンド・ノードから前記第1のエンド・ノードへパケットを伝送する手段と、
前記第1のエンド・ノードを用いて前記パケットを受信する手段と、
前記テーブルを用いて前記特定の論理接続が以前に確立していたか否かを判断する手段と
を備えているのが望ましい。
前記テーブルを用いて前記特定の論理接続が以前に確立していたか否かを判断する前記手段が、さらに、
前記第1のエンド・ノード中のキュー対と前記第2のエンド・ノード中のキュー対との間の関連付けの表示が前記テーブルに格納されているか否かを判断する手段
を備えているのが望ましい。
前記論理接続が前記第1のエンド・ノードと前記第2のエンド・ノードとの間における最初の論理接続であるか否かを判断する手段と、
前記論理接続は最初の論理接続であるという判断に応答して、
あるインスタンス番号と前記論理接続とを関連付ける手段と、
前記論理接続の間に前記第1のエンド・ノードと前記第2のエンド・ノードとの間で伝送する各シーケンス番号に前記インスタンス番号を含める手段と、
前記インスタンス番号を現在のインスタンス番号として使用する手段と、
前記論理接続は最初の論理接続ではないという判断に応答して、
前記現在のインスタンス番号をインクリメントする手段と、
前記インクリメントした現在のインスタンス番号を現在のインスタンス番号として使用する手段と、
前記論理接続の間に前記第1のエンド・ノードと前記第2のエンド・ノードとの間で伝送する各シーケンス番号に前記インクリメントした現在のインスタンス番号を含める手段と
を備えているのが望ましい。
前記システムは、さらに、
前記論理接続を切断する手段と、
前記第1のエンド・ノードと前記第2のエンド・ノードとの間に前記論理接続を再確立する手段であって、前記論理接続の切断と前記論理接続の再確立との間に待ち受け状態を実行しない、手段と
を備えているのが望ましい。
前記システムは、さらに、
前記第2のエンド・ノードがパケットを受信する手段と、
前記第2のエンド・ノードを用いて前記受信したパケットに含まれているインスタンス番号を特定する手段と、
現在のインスタンス番号を確認する手段と、
前記受信したパケットに含まれているインスタンス番号が前記現在のインスタンス番号であるか否かを判断する手段と、
前記受信したパケットに含まれているインスタンス番号は前記現在のインスタンス番号であるという判断に従って、前記第2のエンド・ノードが前記パケットを通常通りに処理する手段と、
前記受信したパケットに含まれているインスタンス番号は前記現在のインスタンス番号ではないという判断に従って、前記第2のエンド・ノードが前記パケットを破棄する手段と
を備えているのが望ましい。
第5の側面において、本発明は次に示すコンピュータ・プログラムを提供する。
コンピュータ・システムにロードしその上で実行したときに、第1の側面および第2の側面の方法のうちの任意のもののステップを実行するコンピュータ・プログラム。
前記コンピュータ・プログラムの好適な特徴は第1の側面および第2の側面の方法の好適なステップ群に対応している。
データ処理システムにおいて第1のエンド・ノードから第2のエンド・ノードへ伝送するデータを管理する、データ処理システムにおける方法、システム、および製品を開示する。第1のエンド・ノードと第2のエンド・ノードとの間でデータを伝送する前に、第1のエンド・ノードと第2のエンド・ノードとの間に論理接続を確立する。あるインスタンス番号をこの論理接続に関連付ける。このインスタンス番号はこの接続が維持されている間に前記エンド・ノード間で伝送する各パケットに含める。このインスタンス番号はこの接続の間は一定に保たれる。このインスタンス番号はこれらのエンド・ノード間に論理接続が再確立されるごとに、たとえばそれをインクリメントすることにより、変化させる。したがって、各パケットはこの論理接続という特定の事実に関連付けられている。パケットを受信すると、当該パケットに含まれているインスタンス番号を用いて、当該パケットが、これらのエンド・ノード間の以前の論理接続の間に伝送された長期経過のパケットであるか否かを判断する。
好適な実例においては、インスタンス番号はシーケンス番号の一部として含まれている。本発明によれば、各パケット内にシーケンス番号として指定されているビット群をシーケンス番号およびインスタンス番号に分割する。インスタンス番号は特定の論理接続の間にすべてのパケットについて一定に保たれるが、インスタンス番号ビットを用いて表わされる。シーケンス番号は各伝送パケットについてインクリメントされるが、シーケンス番号ビットを用いて表わされる。
上述した本発明の目的、特徴、および利点、ならびに本発明のさらなる目的、特徴、および利点は次に示す詳細な説明中で明らかになる。
本発明の好適かつ典型的な実施形態は第1のエンド・ノードから第2のエンド・ノードへ伝送するデータを管理する、データ処理システムにおける方法、システム、および製品を提供するものである。第1のエンド・ノードと第2のエンド・ノードとの間でデータを伝送する前に両エンド・ノード間に論理接続を確立する。この論理接続は第1のエンド・ノードに含まれる特定のキュー対と第2のエンド・ノードに含まれる特定のキュー対との間に確立する。
これら2つの特定のキュー対組の間に確立する論理接続にインスタンス番号を関連付ける。このインスタンス番号はこの論理接続が確立されている間にエンド・ノード間で伝送される各パケットに含める。これら2つのキュー対組の間で論理接続を再確立するごとに、このインスタンス番号をインクリメントする。パケットはパケットを伝送するごとにインクリメントするパケット・シーケンス番号も含んでいる。
本発明の好適かつ典型的な実施形態では、既存のシーケンス番号の一部としてインスタンス番号を実現している。従来技術のシーケンス番号用に予約されているビット組をシーケンス番号ビット組とインスタンス番号ビット組に分割する。本発明のインスタンス番号はインスタンス番号ビット組によって表わす。本発明のシーケンス番号はシーケンス番号ビット組によって表わす。したがって、本発明によると、既存の従来技術のシーケンス番号を用いてインスタンス番号およびシーケンス番号の双方を表わすことができる。インスタンス番号ビット組は同じ論理接続を通じて一定に保たれる。シーケンス番号ビット組は、従来技術について上述したように、パケットを送信するごとにインクリメントする。
シーケンス番号ビット組は最大シーケンス番号をインクリメントするとき、従来技術において知られた方法で0に巻き戻す。インスタンス番号はシーケンス番号をインクリメントすることまたは0に巻き戻すことによって影響されない。インスタンス番号は論理接続が再確立されないかぎり一定に保たれる。したがって、既存のシーケンス番号ビットの一部がインスタンス番号用に予約されているから、最大シーケンス番号はシーケンス番号ビットをすべて使って表わすことのできた従来の番号よりも小さくなる。
本発明の好適かつ典型的な実施形態はエンド・ノード、スイッチ、ルータ、およびこれらのコンポーネントを相互接続するリンクを備えた分散コンピューティング・システムを提供するものである。各エンド・ノードはメッセージを送受信するために送信キューと受信キューの対を使用している。エンド・ノードはメッセージをパケット群に分割し、それらのパケット群をリンク上に送信する。スイッチとルータはエンド・ノードを相互接続し、パケットを適切なエンド・ノードに送付する。送信先のエンド・ノードはパケット群をメッセージに再組立する。
本発明の好適な実施形態では、インスタンス番号と特定のキュー対組間の論理接続とをキュー対を用いて関連付ける。まず第1のエンド・ノードと第2のエンド・ノードとの間で論理接続を確立したら、通常、キュー対テーブルを用いて第1のエンド・ノード中のキュー対と第2のエンド・ノード中のキュー対とを関連付ける。したがって、2つのキュー対組間で論理接続を確立するごとに、これら2つのキュー対組がすでに関連付けられているか否かをキュー対テーブルを用いて判断する。これら2つのキュー対組がすでに関連付けられている場合、これら2つのキュー対組の間の論理接続は再確立中であるから、インスタンス番号をインクリメントする。
図4は本発明に従いデータを伝送する、チャネルに基づいたスイッチ・ファブリック・アーキテクチャを実現するデータ処理システムを示す図である。本発明を実現するコンピュータ・システムは1つのプロセッサと数個の入出力(I/O)アダプタを備えた小型サーバから数百または数千のプロセッサと数千のI/Oアダプタを備えた大型並列スーパコンピュータまで多岐にわたりうる。また、本発明はインターネットまたはイントラネットで接続された遠隔コンピュータ・システムのインフラストラクチャにおいて実現することができる。
データ処理システム402はストレージ・エリア・ネットワーク424を備えている。ストレージ・エリア・ネットワークは「サブネット」とも呼ばれる。サブネットは一群のエンド・ノードと単一のユニットとして管理されるカスケード接続されたスイッチとから成る。通常、サブネットは単一の地理的領域または機能領域を占める。たとえば、1つの室内に置かれた単一のコンピュータ・システムはサブネットであると定義することができる。
データ処理システム402は分散コンピュータ・システム内のノード群を相互接続する広帯域かつ低遅延のネットワークを備えている。ノードとはネットワークの少なくとも1つのリンクに取り付けられ、ネットワーク内においてメッセージの送信元および/または送信先を形成している任意のコンポーネントのことである。(「Aおよび/またはB」は「AおよびB、A、またはB」を表わす。)図示した例では、データ処理システム402はホスト・プロセッサ・ノード406、ホスト・プロセッサ・ノード408、RAID(redundant array independent disk)サブシステム・ノード462、およびI/Oシャーシ・ノード412の形態をしたノードを備えている。図4に示すノードは例示のみを目的としたものにすぎない。というのは、SAN424は独立したプロセッサ・ノード、I/Oアダプタ・ノード、およびI/O装置ノードのうちの任意の種類のものを任意個数接続することができるからである。すべてのノードはエンド・ノードとして機能することができる。エンド・ノードとはここではSAN424においてメッセージまたはパケットを創造または最終利用する装置として定義する。
SAN424はI/Oおよびプロセッサ間通信(IPC)の双方をサポートする通信・管理インフラストラクチャを備えている。SAN424は安全で遠隔管理された環境において多くの装置が広帯域かつ低遅延でデータを同時並行的に転送するのを可能にするスイッチ通信ファブリックを備えている。エンド・ノードはSAN424を通じて複数のポートと通信しうるとともに複数の経路を利用しうる。
SAN424はホスト・チャネル・アダプタ(HCA)426、428、430、432、目標チャネル・アダプタ(TCA)458、460、468、スイッチ414、416、452、およびルータ420を備えている。スイッチとは複数のリンクを相互に接続するとともに小さなヘッダであるDLID(Destination Local Identifier) フィールドを用いてサブネット内においてあるリンクから別のリンクへのパケットの送付を可能にする装置のことである。一般に、スイッチはあるポートから同じスイッチ上の他の任意のポートへパケットを送付することができる。
ルータとは複数のサブネットを相互に接続するとともに大きなヘッダであるDGUID(Destination Globally Unique Identifier)を用いて第1のサブネット中のあるリンクから第2のサブネット中の別のリンクへパケットを送付することのできる装置のことである。
リンクとは任意の2つのネットワーク・ファブリック構成要素(たとえばエンド・ノード、スイッチ、ルータなど)の間の全二重チャネルのことである。リンクの好適な例としては銅ケーブル、光ケーブル、およびバックプレーンや印刷回路板上の印刷回路用銅図形を挙げることができるが、これらに限定されない。
データ処理システム402中の各ノードは少なくとも1つのチャネル・アダプタ(CA)を備えている。各チャネル・アダプタはストレージ・エリア・ネットワーク(SAN)424を用いて伝送される送信元パケットまたは送信先パケットに対するチャネル・アダプタ・インタフェースを十分詳細に実現するエンド・ポイントである。SAN424はファブリックとも呼ばれる。プロセッサ・ノードに含まれるチャネル・アダプタはホスト・チャネル・アダプタ(HCA)である。プロセッサ・ノード以外のノードに含まれるチャネル・アダプタは目標チャネル・アダプタ(TCA)である。
ホスト・プロセッサ・ノード406はホスト・チャネル・アダプタ426およびホスト・チャネル・アダプタ428の形態をしたチャネル・アダプタを備えている。ホスト・プロセッサ・ノード408はホスト・チャネル・アダプタ430およびホスト・チャネル・アダプタ432の形態をしたチャネル・アダプタを備えている。ホスト・プロセッサ・ノード406は中央処理装置434、436、およびバス・システム442によって相互接続されたメモリ440も備えている。同様に、ホスト・プロセッサ・ノード408は中央処理装置444、446、およびバス・システム450によって相互接続されたメモリ448を備えている。
ホスト・チャネル・アダプタ426はスイッチ414への接続を提供している。ホスト・チャネル・アダプタ428はスイッチ414、416への接続を提供している。ホスト・チャネル・アダプタ430はスイッチ414、416への接続を提供している。そして、ホスト・チャネル・アダプタ432はスイッチ416への接続を提供している。
ホスト・チャネル・アダプタはハードウェアで実現するのが望ましい。この実現方法では、ホスト・チャネル・アダプタを構成するハードウェアによって、中央処理装置とI/Oアダプタの通信オーバヘッドの大部分をなくすことができる。このようにホスト・チャネル・アダプタをハードウェアで実現することにより、通信プロトコルに付随する既存のオーバヘッドに煩わされることなくスイッチト・ネットワークを通じて複数の同時平行通信を行なうことが可能になる。
I/Oシャーシ412はアダプタ・カードをSAN424に接続するI/Oスイッチ452をI/Oアダプタ・バックプレーン中に備えるとともに、複数のI/Oモジュール454、456を備えている。この例では、I/Oモジュールはアダプタ・カードの形態をしている。
アダプタ・カードにはSCSIアダプタ・カード、ファイバ・チャネル・ハブ装置およびFC−AL(fiber channel-arbitrated loop)装置へのアダプタ・カード、イーサネット・アダプタ・カード、グラフィックス・アダプタ・カード、ビデオ・アダプタ・カードなどがある。既存の任意の種類のアダプタ・カードを実現することができる。
各I/Oモジュールは目標チャネル・アダプタを備えている。I/Oモジュール454は目標チャネル・アダプタ(TCA)458を備えており、I/Oモジュール456は目標チャネル・アダプタ(TCA)460を備えている。
データ処理システム402にはRAIDサブシステム・ノード462も含まれている。ノード462はプロセッサ464、メモリ466、目標チャネル・アダプタ(TCA)468、および複数の冗長および/またはストライプ(stripe)されたストレージ・ディスク装置470を備えている。目標チャネル・アダプタ468には完全に動作可能なホスト・チャネル・アダプタを用いることができる。
SAN424は分散コンピュータ・システムにおけるI/Oおよびプロセッサ間通信(IPC)の利用者にオペレーティング・システムのカーネル・プロセスを含めることなくプロセッサで複製しない(zero processor-copy)データ転送を提供するとともに、高信頼性かつ耐障害性通信を実現するハードウェアを採用している。
図5は本発明によるホスト・プロセッサ・ノードの機能ブロック図である。ホスト・プロセッサ・ノード500はホスト・プロセッサ・ノード(たとえば図4に示したホスト・プロセッサ・ノード406、408)の一例である。
ホスト・プロセッサ・ノード500はホスト・プロセッサ・ノード500上で実行されているプロセスである1組の利用者502、504、506、508を備えている。ホスト・プロセッサ・ノード500はチャネル・アダプタ510、512も備えている。チャネル・アダプタ510はポート514、516を備え、チャネル・アダプタ512はポート518、520を備えている。各ポートはリンクに接続している。
利用者502〜508はバーブズ(verb: 動詞)インタフェース522とメッセージ・データ・サービス524を介してSAN(たとえばSAN424)にメッセージを転送する。バーブズ・インタフェースはホスト・チャネル・アダプタの機能を実質的に抽象的に記述したものである。オペレーティング・システムはバーブ機能の一部または全部をそのプログラミング・インタフェースによって公開している。このインタフェースはホストの振舞いを規定するものである。メッセージ・データ・サービス524はバーブ層よりも高次のインタフェースであり、チャネル・アダプタ510、512を通じて受信したメッセージとデータを処理するために使用する。メッセージ・データ・サービス524はメッセージおよび他のデータを処理するインタフェースを利用者502〜508に提供するものである。
図6は本発明による要求トランザクションと確認応答トランザクションの一例を示す分散コンピュータ・システムの一部分を示す図である。図6の分散コンピュータ・システム600はホスト・プロセッサ・ノード602とホスト・プロセッサ・ノード604を備えている。ホスト・プロセッサ・ノード602はホスト・チャネル・アダプタ606を備えている。ホスト・プロセッサ・ノード604はホスト・チャネル・アダプタ608を備えている。図6の分散コンピュータ・システムはSANファブリック610を備えている。SANファブリック610はスイッチ612とスイッチ614を備えている。SANファブリックはホスト・チャネル・アダプタ605をスケジューラ612へ接続するリンク、スイッチ612をスイッチ614へ接続するリンク、およびホスト・チャネル・アダプタ608をスイッチ614へ接続するリンクを備えている。
このトランザクションの例では、ホスト・プロセッサ・ノード602はクライアント・プロセスAを備えている。ホスト・プロセッサ・ノード604はクライアント・プロセスBを備えている。クライアント・プロセスAはキュー対620を通じてホスト・チャネル・アダプタ606と相互作用する。クライアント・プロセスBはキュー対622を通じてハードウェア・チャネル・アダプタ608と相互作用する。
キュー対620、622は各々が送信キューと受信キューを備えた構造体である。キュー対は通常、チャネル・アダプタ内に制御レジスタを備えている。キュー対620は送信キュー624と受信キュー626を備えている。キュー対622は送信キュー628と受信キュー630を備えている。
まず、プロセスAがキュー対620の送信キュー624にキュー要素を入れることにより、メッセージ要求を開始する。ホスト・チャネル・アダプタ606中のハードウェアがこのキュー要素を受信キュー630において受信する。次いで、プロセスBがこのキュー要素を読み取り、そのメッセージをパケット(たとえば図8に示すパケット)に分割する。プロセスBはキュー要素を送信キュー628に入れることにより、メッセージを開始する。次いで、プロセスAがこのキュー要素を受信キュー626によって受信する。
パケットはSANファブリックを通じて送付し、高信頼の転送サービスのために、最終送信先のエンド・ノードが確認応答する。連続的に(successively)確認応答されない場合、送信元ノードが当該パケットを再送信する。パケットは送信元エンド・ノードが生成し、送信先エンド・ノードが利用する。
図7は本発明に従い分散プロセス間の通信を行なうために高信頼接続サービスを採用した分散コンピュータ・システム100の一部分を示す図である。
あるキュー対を生成すると、当該キュー対は特定のトランスポート・サービスを提供するように設定される。本発明の好適な実施形態を実現した分散コンピュータ・システムは次に示す4種類のトランスポート・サービスをサポートしている。すなわち、RC(reliable connected: 高信頼接続)、UC(unreliable connected: 非信頼接続)、UD(unreliable datagram:非信頼データグラム)、およびRD(reliable datagram:高信頼データグラム)である。
高信頼接続サービスおよび非信頼接続サービスはローカル・キュー対をたった1つのリモート・キュー対に関連付ける。接続サービスはキュー対を生成するプロセスを必要とする。それは当該プロセスを用いSANファブリックを通じて別のプロセスと通信しうるようにするためである。したがって、N個のホスト・プロセッサ・ノードの各々がP個のプロセスを備え、各ノード上のP個のプロセスがすべて他のすべてのノード上のすべてのプロセスと通信する必要がある場合、各ホスト・プロセッサ・ノードはP2 ×(N−1)個のキュー対を必要とする。また、プロセスはあるキュー対を同じホスト・チャネル・アダプタ上の別のキュー対に接続することができる。
図7の分散コンピュータ・システム700はホスト・プロセッサ・ノード1、ホスト・プロセッサ・ノード2、およびホスト・プロセッサ・ノード3を備えている。ホスト・プロセッサ・ノード1はプロセスA710を備えている。ホスト・プロセッサ・ノード2はプロセスC720とプロセスD730を備えている。ホスト・プロセッサ・ノード3はプロセスE740を備えている。
ホスト・プロセッサ・ノード1はキュー対4、6、7を備えている。各キュー対は送信キューと受信キューを備えている。ホスト・プロセッサ・ノード2はキュー対2、5を備えており、ホスト・プロセッサ・ノード3はキュー対9を備えている。分散コンピュータ・システム700の高信頼接続(RC)サービスはローカル・キュー対をたった1つのリモート・キュー対に関連付ける。したがって、キュー対4を用いてキュー対2と通信することができ、キュー対7を用いてキュー対5と通信することができ、そしてキュー対6を用いてキュー対9と通信することができる。
高信頼接続(RC)サービスが高信頼に作られているのは、ハードウェアがシーケンス番号を保守するとともにすべてのパケット転送に対して確認応答するからである。ハードウェアとSANドライバ・ソフトウェアの組み合わせによって、失敗した通信をすべて再試行する。キュー対のプロセス・クライアントはビット・エラー、受信アンダーラン、およびネットワーク輻輳(ふくそう)がある場合であっても高信頼通信を実現している。SANファブリック中に別の経路が存在すれば、ファブリックのスイッチ、リンク、またはチャネル・アダプタ・ポートが故障した場合であっても高信頼通信を維持することができる。
また、SANファブリックをまたいで高信頼にデータを配送するために確認応答を採用している。この確認応答はプロセス・レベルの確認応答(すなわち受信したプロセスがデータを利用したことを確認する確認応答)であってもよいしそうでなくともよい。
あるいは、この確認応答はデータがその送信先に到達したことを表わすだけのものであってもよい。
図8は本発明によるパケットを示す図である。ここで使用するメッセージとはデータ交換のアプリケーション定義単位のことであり、協働するプロセス間における通信の基本単位である。メッセージはパケット群に分割される。パケットとはネットワーキング・プロトコルのヘッダおよび/またはトレーラによって封緘されたデータの1単位のことである。ヘッダは一般にパケットをSAN中において方向付けるための制御情報とルーティング情報を備えている。トレーラは一般にパケットが破損したコンテンツを配送していないことを保証する制御データとCRC(cyclic redundancy check)データを備えている。
パケットとはSANファブリック中を転送される情報の単位のことである。パケットはエンド・ノード・ツー・エンド・ノードの構成体であるから、エンド・ノードが生成しエンド・ノードが利用する。(ホストまたは目標)チャネル・アダプタに宛てたパケットの場合、SANファブリック中のスイッチとルータは当該パケットを生成することもないし利用することもない。そうではなく、チャネル・アダプタに宛てたパケットの場合、スイッチとルータはプロセスにおいてバリアント・リンク・ヘッダ・フィールドを変更することにより、要求パケットまたは確認応答パケットを最終送信先のより近くに移動させるだけである。パケットがサブネット境界を横切るとき、ルータはパケットのネットワーク・ヘッダの変更も行なう。サブネットを横切るとき、単一のパケットは単一のサービス・レベルに留まる。
高信頼サービス種別(たとえば高信頼接続(RC)トランスポート・サービスなど)の場合、エンド・ノード(たとえばホスト・プロセッサ・エンド・ノードやI/Oアダプタ・エンド・ノードなど)は要求パケットを生成し確認応答パケットを返す。スイッチとルータはパケットを送信元から送信先へ受け渡す。ネットワーク中の各ステージで更新されるバリアントCRCトレーラ・フィールドを除き、スイッチはパケットを無変更で受け渡す。ルータはパケットを転送するとき、ヘッダ中のバリアントCRCトレーラ・フィールドを更新する。
外出メッセージは少なくとも1つのパケットに分割する。チャネル・アダプタ・ハードウェアは各パケットにトランスポート・ヘッダとネットワーク・ヘッダを付加する。本発明によれば、トランスポート・ヘッダはシーケンス番号、インスタンス番号、および他のトランスポート情報を含む。ネットワーク・ヘッダはルーティング情報(たとえば送信先IPアドレス、および他のネットワーク・ルーティング情報)を含む。リンク・ヘッダはDLID(Destination Local Identifier)または他のローカル・ルーティング情報を含む。パケットには適切なリンク・ヘッダを常に付加する。送信先エンド・ノードが遠隔のサブネットに存在する場合、所定のパケットに適切なグローバル・ネットワーク・ヘッダを付加する。
高信頼トランスポート・サービスを採用している場合、要求パケットがその送信先エンド・ノードに到達すると、送信先エンド・ノードが確認応答パケットを用いて要求データ・パケットの送信者に当該要求データ・パケットは送信先において確認され受領されたことを知らせる。確認応答データ・パケットは少なくとも1つの確認され受領されたデータ・パケットを確認応答するものである。要求者は確認応答を受信する前に未処理の要求データ・パケットを複数個所有することができる。一実施形態では、複数の未処理のメッセージ(すなわち要求データ・パケット)の個数はキュー対を生成するときに決める。
パケット800はルーティング・ヘッダ802、トランスポート・ヘッダ804、パケット・ペイロード806、およびCRC808を備えている。ルーティング・ヘッダ802はパケット・ペイロード806用に送信元エンド・ノードおよび送信先エンド・ノード内のポートを特定するために使用する。
トランスポート・ヘッダ804はパケット・ペイロード806用に送信先キュー対を特定する。シーケンス番号フィールド810はトランスポート・ヘッダ804に配置されている。従来技術では、シーケンス番号フィールド810に含まれるすべてのビットによってシーケンス番号を表していた。しかし、本発明によれば、シーケンス番号フィールド810のすべてのビットによってシーケンス番号およびインスタンス番号の双方を表わす。本発明によれば、シーケンス番号はインスタンス部812およびシーケンス部814の双方を含んでいる。したがって、本発明のシーケンス番号は各パケットごとにインクリメントするシーケンス部、および各論理接続の間、一定に保たれるインスタンス部の双方を含んでいる。トランスポート・ヘッダ804は操作コードなどの情報およびパケット・ペイロード806用の区画も提供している。CRC808はエラー検査用に使用する。
操作コードはパケットが最初のものであるか、最後のものであるか、中間のものであるか、あるいは1つのメッセージから成る唯一のパケットであるかを特定するものである。操作コードは当該操作が送信RDMAライト(send RDMA write)であるか、リードであるか、あるいはアトミックであるかの特定も行なう。
本発明によれば、インスタンス番号は各パケットごとにフィールド812に格納する。インスタンス番号は1つの論理接続という事実(instance)が継続する間、一定に保たれる。論理接続が切断され後刻再確立された場合、インスタンス番号をインクリメントする。次いで、このインクリメントしたインスタンス番号をフィールド812に格納する。これにより、この再確立した論理接続を用いて各パケットを伝送することが可能になる。
パケットを送信するごとに、シーケンス部814をインクリメントする。
図9は本発明に従いインスタンス番号を各パケットに含める様子を示す高次のフローチャートを示す図である。プロセスはブロック900で示すように開始したのち、プロセッサ・ノードにおける利用者の実行の開始を示すブロック902へ進む。次いで、ブロック904が示すように、プロセッサ・エンド・ノードと第2のエンド・ノードとの間に論理接続を確立する。これらのエンド・ノード間の論理接続が確立したら、第1のエンド・ノード中の送信・受信キュー対と第2のエンド・ノード中の送信・受信キュー対とを関連付ける。この関連付けは各エンド・ノードにおいてエンド・ノードの通信マネージャが保守しているキュー対のテーブルを用いて行なう。
その後、ブロック906が示すように、プロセッサ・エンド・ノード中の特定のキュー対と第2のエンド・ノード中の特定のキュー対との間で論理接続が確立したのはこれが初めてであるか否かをプロセッサ・エンド・ノードが判断する。エンド・ノードはキュー対のテーブルを用いて論理接続が確立したのはこれが初めてであるか否かを判断する。キュー対のテーブルはある論理接続がすでに確立しているか否かを示すことができる。論理接続が切断されると、両エンド・ノードにおけるキュー対はアイドル状態になり、もはや相互に関連付けられていない。各エンド・ノード中のキュー対テーブルはアイドル状態にあるキュー対を反映することになる。
論理接続がすでに確立しており切断されたことがない場合、各エンド・ノード中のキュー対は相互に関連付けられたままである。各エンド・ノード中のキュー対テーブルは当該キュー対は相互に関連付けられたままであることを示すことになる。
エンド・ノードがそのキュー対テーブルを用いて行なう、論理接続がすでに確立済みであるか否かの判断は、キュー対が第2のエンド・ノード中のキュー対と関連付けられているか否かを判断することにより行なう。このノード中のキュー対が第2のノード中のキュー対と関連付けられている場合、これらのエンド・ノード間の論理接続はすでに確立されている。このノード中のキュー対が第2のノード中のキュー対と関連付けられていない場合、これらのエンド・ノード間の論理接続はまだ確立されていない。
再度、ブロック906を参照する。これら2つの特定のキュー対組の間で論理接続が確立されたのはこれが初めてであると判断された場合、プロセスはブロック908へ進む。ブロック908に示すように、各エンド・ノード用の論理接続マネージャは開始インスタンス番号を交換する。この開始インスタンス番号は現在のインスタンス番号になり、この論理接続の確立が維持されている間、一定に保たれる。
次いで、プロセスはブロック910へ進む。そして、ブロック910に示すように、論理接続マネージャ達はそれらの開始シーケンス番号を交換する。シーケンス番号はシーケンス番号フィールドのシーケンス番号部に格納されており、一定値を維持しない。それはパケットを送信するごとにインクリメントする。また、各エンド・ノードはそれ自身のシーケンス番号を選定するが、それは他のエンド・ノードが選定するシーケンス番号とは関係がない。インスタンス番号はシーケンス番号フィールドのインスタンス番号部に格納されており、この論理接続が確立状態を維持する限り一定に保たれる。
その後、ブロック912に示すように、エンド・ノード間でパケットを伝送するが、各パケットのシーケンス番号部に格納されているパケット・シーケンス番号をインクリメントする。次いで、ブロック914に示すように、現在のインスタンス番号を各パケットに含める。インスタンス番号はこの論理接続の間に伝送される各パケットごとに一定に保たれる。
次いで、ブロック916に示すように、現在の論理接続が失われているか否かを判断する。現在の論理接続が失われていないと判断された場合、プロセスはブロック912へ戻る。再度ブロック916を参照して、現在の論理接続が失われていると判断された場合、プロセスはブロック918へ進む。ブロック918に示すように、これら2つのキュー対の間に論理接続を再確立すべきか否かを判断する。これら2つのキュー対の間に論理接続を再確立すべきでないと判断された場合、プロセスはブロック920へ進む。再度ブロック918を参照して、これら2つのキュー対の間に論理接続を再確立すべきであると判断された場合、プロセスはブロック922へ進む。ブロック922に示すように、これら2つのキュー対の間に論理接続を再確立するが、その際、待ち受け状態を実行する必要はない。プロセスはブロック906へ戻る。
再度ブロック906を参照して、これら2つの特定のキュー対の間でこのサービスについて論理接続が確立されたのは初めてではなかったと判断された場合、プロセスはブロック934へ進む。ブロック934に示すように、これら2つの特定のキュー対用に最後の論理接続が確立していた間の伝送用に使用したインスタンス番号を確認する。次いで、ブロック936に示すように、最後のインスタンス番号を新たなインスタンス番号に変更する。以後、この新たなインスタンス番号を現在のインスタンス番号として使用する。インスタンス番号は通常、インスタンス番号をインクリメントすることにより変更するが、インスタンス番号は任意の手段によって、たとえばインスタンス番号をデクリメントすることによって変更してもよい。次いで、プロセスはブロック910へ進む。
図10は本発明に従い、受信したパケットが現在の論理接続の間に送信されたものであるか否かをエンド・ノードが判断する様子を示す高レベルのフローチャートを示す図である。図示するように、プロセスはブロック1000で開始したのち、ブロック1002へ進む。ブロック1002に示すように、エンド・ノードが、インスタンス番号を含むパケットを受信する。次いで、ブロック1004に示すように、エンド・ノードは現在のインスタンス番号を確認する。その後、ブロック1006に示すように、エンド・ノードは現在のインスタンス番号と受信したパケットに含まれるインスタンス番号とを比較する。次いで、プロセスはブロック1008へ進む。ブロック1008に示すように、当該パケットが現在のインスタンス番号を含んでいるか否かを判断する。当該パケットが現在のインスタンス番号を含んでいると判断された場合、プロセスはブロック1010へ進む。ブロック1010に示すように、エンド・ノードは当該パケットを通常通りに処理する。次いで、プロセスはブロック1002へ戻る。再度ブロック1008を参照して、当該パケットが現在のインスタンス番号を含んでいないと判断された場合、プロセスはブロック1012へ進む。ブロック1012に示すように、エンド・ノードは当該パケットを破棄する。次いで、プロセスはブロック1002へ戻る。
本発明は論理接続が切断されたのちに再確立されたときは常に使用することができる。論理接続は様々な理由で切断され再確立される。多くの理由はエンド・ノードにおいて検出されるエラー状態であるが、パケットを再送するだけでは回復することができない。たとえば、誤った形式のパケットや順序付けエラーによって、キュー対がこのエラー状態になる可能性がある。
接続を切断したのち再確立する別の理由としてファブリックにおける経路MTUの変更がある。あるリンク上を伝送しうる最大パケット・ペイロードのサイズは最大伝送単位(MTU)と呼ばれている。たとえば、ファブリック内の単一のリンクを考える。リンクの一方の側のパケット・バッファが最大512バイトのパケット・ペイロードを処理し、リンクの他方の側のパケット・バッファが最大1025バイトのパケット・ペイロードを処理する場合、このリンクを通じて伝送しうる最大パケット・ペイロードはリンクの2つの側のより小さい方である512バイトにしかならない。説明を簡明にするために、パケット・ペイロード・サイズはパケットのサイズを記述するときにも使用する。
あるノードから別のノードに至る経路にスイッチおよび/またはルータがある場合、その経路には複数のリンクが存在する。この場合、このMTUは経路MTUと呼ばれ、経路中のすべてのリンクのうちで最小のMTUになる。たとえば、経路中の1つリンクのMTUが512バイトであり、他のすべてのリンクのMTUが4096バイトである場合、当該経路を伝送しうる最大パケットはたったの512バイトにすぎない。
フェイルオーバの結果として経路MTUが増大する場合、接続は枯渇状態にある(drained)(新たな要求パケットは生成されず、未処理のパケットはすべて確認応答済みである)か、新たなより大きな経路MTUを利用するために切断・再確立しているに違いない。この状況は長期経過のパケット待ち受け期間がもはや不必要であるから、本発明を効率的に利用することができる。論理接続は待ち受け状態を必要とすることなく、切断後直ちに再確立することができる。
重要な留意点を挙げると、完全に機能するデータ処理システムの文脈で本発明を説明したが、当業者が認識しうるように、本発明のプロセスは命令群から成るコンピュータ読み取り可能な媒体の形態および様々な形態で配付することができ、また、本発明は配付を実行するのに実際に使用する信号担持媒体の特定の種別とは無関係に等しく適用することができる。コンピュータ読み取り可能な媒体の例としては記録型媒体(たとえばフロッピー・ディスク、ハード・ディスク駆動装置、RAM、CD−ROM、DVD−ROM)および伝送型媒体(ディジタル通信リンクおよびアナログ通信リンク、伝送形態〔たとえば無線周波数伝送や光波伝送〕を使用する有線通信リンクまたは無線通信リンク)を挙げることができる。コンピュータ読み取り可能な媒体は特定のデータ処理システムで実際に使用するためにデコードされるコード済みフォーマットの形態をとることができる。
以上、説明と記述を目的に本発明の記述を呈示したが、ここに開示した形態の発明で尽きているということはないしそれに限定されることもない。当業者にとって、多くの変更例と変形例が明らかになる。実施形態は本発明の原理、実際的な応用を最もよく説明しうるように、そして特定の用途に好適であると考えうる様々な変更を伴った様々な実施形態について当業者が本発明を理解しうるように選定して説明した。
従来技術による、各々が1つのキュー対を備えた2つのエンド・ノードを示す図である。 従来技術に従い重複パケットを伝送する様子を示すはしご図である。 従来技術に従い不正パケットを受信する様子を示すはしご図である。 本発明に従いデータを伝送する、チャネルに基づいたスイッチ・ファブリック・アーキテクチャを実現するデータ処理システムを示す図である。 本発明によるホスト・プロセッサ・ノードの機能ブロック図である。 本発明による要求トランザクションと確認応答トランザクションの一例を示す分散コンピュータ・システムの一部分を示す図である。 本発明に従い分散プロセス間の通信を行なうために高信頼接続(RC)サービスを採用した分散コンピュータ・システムの一部分を示す図である。 本発明によるパケットを示す図である。 本発明に従いインスタンス番号を各パケットに含める様子を示す高次のフローチャートを示す図である。 本発明に従い、受信したパケットが現在の論理接続の間に送信されたものであるか否かをエンド・ノードが判断する様子を示す高レベルのフローチャートを示す図である。
符号の説明
100 エンド・ノードA
104 送信キュー
106 受信キュー
108 エンド・ノードB
112 受信キュー
114 送信キュー
116 要求
118 応答
120 要求
122 応答
200 エンド・ノードA
202 エンド・ノードB
204 要求
206 確認応答
208 要求
210 確認応答
300 エンド・ノードA
302 エンド・ノードB
304 要求
306 確認応答
308 要求
310 要求
402 データ処理システム
406 プロセッサ・ノード
408 プロセッサ・ノード
412 I/Oシャーシ
414 スイッチ
416 スイッチ
420 ルータ
426 HCA
428 HCA
430 HCA
432 HCA
434 プロセッサ
436 プロセッサ
440 メモリ
444 プロセッサ
446 プロセッサ
448 メモリ
452 スイッチ
454 I/Oモジュール
456 I/Oモジュール
458 TCA
460 TCA
462 RAIDサブシステム
464 プロセッサ
466 メモリ
468 TCA
470 トライブ
500 ホスト・プロセッサ・ノード
502 利用者
504 利用者
506 利用者
508 利用者
510 チャネル・アダプタ(エンドノード)
514 ポート
516 ポート
512 チャネル・アダプタ(エンドノード)
518 ポート
520 ポート
522 バーブズ
524 メッセージ・データ・サービス
602 ホスト・プロセッサ・ノード
604 ホスト・プロセッサ・ノード
606 HCA
608 HCA
612 スイッチ
614 スイッチ
624 送信
626 受信
628 送信
630 受信
710 プロセスA
720 プロセスC
730 プロセスD
740 プロセスE
800 パケット
802 ルーティング・ヘッダ
804 トランスポート・ヘッダ
810 シーケンス番号フィールド
812 インスタンス番号
814 シーケンス番号
806 パケット・ペイロード
808 CRC

Claims (10)

  1. データ処理システムにおいて第1のエンド・ノードから第2のエンド・ノードへ伝送するデータを管理する方法であって、
    前記第1のエンド・ノードと前記第2のエンド・ノードとの間でデータを伝送する前に、前記第1のエンド・ノードと前記第2のエンド・ノードとの間に論理接続を確立するステップと、
    あるインスタンス番号と前記論理接続とを関連付けるステップと、
    前記論理接続の確立状態を維持しながら、前記第1のエンド・ノードと前記第2のエンド・ノードとの間で伝送する各パケットに前記インスタンス番号を含めるステップであって、前記インスタンス番号は前記論理接続の間、一定に保たれる、ステップと
    を備えた
    方法。
  2. さらに、
    前記第1のエンド・ノードと前記第2のエンド・ノードとの間に前記論理接続を再確立するステップと、
    前記インスタンス番号をインクリメントするステップであって、前記インクリメントしたインスタンス番号は前記再確立した論理接続に関連付けられている、ステップと、
    前記再確立した論理接続の間に、前記第1のエンド・ノードと前記第2のエンド・ノードとの間で伝送する各パケットに前記インクリメントしたインスタンス番号を含めるステップであって、前記インクリメントしたインスタンス番号は前記再確立した論理接続の間、一定に保たれる、ステップと
    を備えた、
    請求項1に記載の方法。
  3. 前記第1のエンド・ノードと前記第2のエンド・ノードとの間に論理接続を確立する前記ステップが、さらに、
    前記第1のエンド・ノード中のキュー対と前記第2のエンド・ノード中のキュー対とを関連付けるステップ
    を備えた、
    請求項1に記載の方法。
  4. 前記第1のエンド・ノード中のキュー対と前記第2のエンド・ノード中のキュー対とを関連付ける前記ステップが、さらに、
    前記第1のエンド・ノード中にキュー対のテーブルを確立するステップと、
    前記第1のエンド・ノード中の前記キュー対と前記第2のエンド・ノード中のキュー対との間の関連付けを前記テーブル内に格納するステップと
    を備えた、
    請求項3に記載の方法。
  5. さらに、
    特定の論理接続を用いて前記第2のエンド・ノードから前記第1のエンド・ノードへパケットを送信するステップと、
    前記第1のエンド・ノードを用いて前記パケットを受信するステップと、
    前記テーブルを用いて前記特定の論理接続が以前に確立していたか否かを判断するステップと
    を備えた、
    請求項4に記載の方法。
  6. 前記テーブルを用いて前記特定の論理接続が以前に確立していたか否かを判断する前記ステップが、さらに、
    前記第1のエンド・ノード中のキュー対と前記第2のエンド・ノード中のキュー対との間の関連付けの表示が前記テーブルに格納されているか否かを判断するステップ
    を備えた、
    請求項5に記載の方法。
  7. さらに、
    前記論理接続の間に前記第1のエンド・ノードと前記第2のエンド・ノードとの間で伝送する各パケット中のトランスポート・ヘッダに前記インスタンス番号を含めるステップ
    を備えた、
    請求項1に記載の方法。
  8. さらに、
    前記論理接続が前記第1のエンド・ノードと前記第2のエンド・ノードとの間における最初の論理接続であるか否かを判断するステップと、
    前記論理接続は最初の論理接続であるという判断に応答して、
    あるインスタンス番号と前記論理接続とを関連付けるステップと、
    前記論理接続の間に前記第1のエンド・ノードと前記第2のエンド・ノードとの間で伝送する各パケットに前記インスタンス番号を含めるステップと、
    前記インスタンス番号を現在のインスタンス番号として使用するステップと、
    前記論理接続は最初の論理接続ではないという判断に応答して、
    前記現在のインスタンス番号をインクリメントするステップと、
    前記インクリメントした現在のインスタンス番号を現在のインスタンス番号として使用するステップと、
    前記論理接続の間に前記第1のエンド・ノードと前記第2のエンド・ノードとの間で伝送する各パケットに前記インクリメントした現在のインスタンス番号を含めるステップと
    を備えた、
    請求項1に記載の方法。
  9. データ処理システムにおいて第1のエンド・ノードから第2のエンド・ノードへ伝送するデータを管理するデータ処理システムであって、
    前記第1のエンド・ノードと前記第2のエンド・ノードとの間でデータを伝送する前に、前記第1のエンド・ノードと前記第2のエンド・ノードとの間に論理接続を確立する手段と、
    あるインスタンス番号と前記論理接続とを関連付ける手段と、
    前記論理接続の確立状態を維持しながら、前記第1のエンド・ノードと前記第2のエンド・ノードとの間で伝送する各パケットに前記インスタンス番号を含める手段であって、前記インスタンス番号は前記論理接続の間、一定に保たれる、手段と
    を備えた
    データ処理システム。
  10. コンピュータ・システムにロードしその上で実行したときに、請求項1〜8のうちの1項に記載の方法のすべてのステップを実行するコンピュータ・プログラム。
JP2004500192A 2002-04-25 2003-04-01 ネットワークにおけるデータ転送を管理するデータ処理システムおよび方法 Expired - Lifetime JP4099170B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/132,456 US7149220B2 (en) 2002-04-25 2002-04-25 System, method, and product for managing data transfers in a network
PCT/GB2003/001416 WO2003091888A2 (en) 2002-04-25 2003-04-01 System, method, and product for managing data transfers in a network

Publications (2)

Publication Number Publication Date
JP2005524264A true JP2005524264A (ja) 2005-08-11
JP4099170B2 JP4099170B2 (ja) 2008-06-11

Family

ID=29248774

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004500192A Expired - Lifetime JP4099170B2 (ja) 2002-04-25 2003-04-01 ネットワークにおけるデータ転送を管理するデータ処理システムおよび方法

Country Status (13)

Country Link
US (1) US7149220B2 (ja)
EP (1) EP1499984B1 (ja)
JP (1) JP4099170B2 (ja)
KR (1) KR100651571B1 (ja)
CN (1) CN1633647B (ja)
AT (1) ATE314691T1 (ja)
AU (1) AU2003214470A1 (ja)
CA (1) CA2483197C (ja)
DE (1) DE60303026T2 (ja)
IL (1) IL164724A0 (ja)
MX (1) MXPA04010437A (ja)
TW (1) TWI252651B (ja)
WO (1) WO2003091888A2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9769093B2 (en) 2014-05-08 2017-09-19 Fujitsu Limited Apparatus and method for performing InfiniBand communication between user programs in different apparatuses
JP2019504557A (ja) * 2015-12-29 2019-02-14 アマゾン テクノロジーズ インコーポレイテッド ネットワーキング技術
US10645019B2 (en) 2015-12-29 2020-05-05 Amazon Technologies, Inc. Relaxed reliable datagram
US10673772B2 (en) 2015-12-29 2020-06-02 Amazon Technologies, Inc. Connectionless transport service
US10917344B2 (en) 2015-12-29 2021-02-09 Amazon Technologies, Inc. Connectionless reliable transport
US11451476B2 (en) 2015-12-28 2022-09-20 Amazon Technologies, Inc. Multi-path transport design

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9094226B2 (en) 2000-08-30 2015-07-28 Broadcom Corporation Home network system and method
EP1346513B1 (en) 2000-08-30 2010-10-20 Tmt Coaxial Networks Inc. A home network system and method
US8724485B2 (en) 2000-08-30 2014-05-13 Broadcom Corporation Home network system and method
US7430623B2 (en) * 2003-02-08 2008-09-30 Hewlett-Packard Development Company, L.P. System and method for buffering data received from a network
US7673070B1 (en) * 2003-03-17 2010-03-02 Network Equipment Technologies, Inc. Method of sharing telecommunications node equipment facilities
US7620693B1 (en) * 2004-03-29 2009-11-17 Sun Microsystems, Inc. System and method for tracking infiniband RDMA read responses
US8055818B2 (en) * 2004-08-30 2011-11-08 International Business Machines Corporation Low latency queue pairs for I/O adapters
CN100442256C (zh) * 2004-11-10 2008-12-10 国际商业机器公司 提供用于i/o适配器的队列对的方法、系统和存储介质
US20060259570A1 (en) * 2005-05-13 2006-11-16 Microsoft Corporation Method and system for closing an RDMA connection
US7761619B2 (en) * 2005-05-13 2010-07-20 Microsoft Corporation Method and system for parallelizing completion event processing
US20070011287A1 (en) * 2005-05-16 2007-01-11 Charbel Khawand Systems and methods for seamless handover in a streaming data application
US7742495B2 (en) 2006-11-20 2010-06-22 Broadcom Corporation System and method for retransmitting packets over a network of communication channels
US7782850B2 (en) 2006-11-20 2010-08-24 Broadcom Corporation MAC to PHY interface apparatus and methods for transmission of packets through a communications network
US8090043B2 (en) 2006-11-20 2012-01-03 Broadcom Corporation Apparatus and methods for compensating for signal imbalance in a receiver
US8345553B2 (en) * 2007-05-31 2013-01-01 Broadcom Corporation Apparatus and methods for reduction of transmission delay in a communication network
US9112717B2 (en) 2008-07-31 2015-08-18 Broadcom Corporation Systems and methods for providing a MoCA power management strategy
US20100097931A1 (en) * 2008-10-21 2010-04-22 Shakeel Mustafa Management of packet flow in a network
US8254413B2 (en) 2008-12-22 2012-08-28 Broadcom Corporation Systems and methods for physical layer (“PHY”) concatenation in a multimedia over coax alliance network
US8238227B2 (en) * 2008-12-22 2012-08-07 Broadcom Corporation Systems and methods for providing a MoCA improved performance for short burst packets
US8213309B2 (en) 2008-12-22 2012-07-03 Broadcom Corporation Systems and methods for reducing latency and reservation request overhead in a communications network
US8553547B2 (en) 2009-03-30 2013-10-08 Broadcom Corporation Systems and methods for retransmitting packets over a network of communication channels
US20100254278A1 (en) 2009-04-07 2010-10-07 Broadcom Corporation Assessment in an information network
US8730798B2 (en) 2009-05-05 2014-05-20 Broadcom Corporation Transmitter channel throughput in an information network
US8867355B2 (en) 2009-07-14 2014-10-21 Broadcom Corporation MoCA multicast handling
US8942250B2 (en) 2009-10-07 2015-01-27 Broadcom Corporation Systems and methods for providing service (“SRV”) node selection
US8611327B2 (en) 2010-02-22 2013-12-17 Broadcom Corporation Method and apparatus for policing a QoS flow in a MoCA 2.0 network
US8514860B2 (en) 2010-02-23 2013-08-20 Broadcom Corporation Systems and methods for implementing a high throughput mode for a MoCA device

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06303257A (ja) * 1993-02-17 1994-10-28 Mitsubishi Electric Corp データ転送方法
JPH0746287A (ja) * 1993-06-29 1995-02-14 Toshiba Corp オンラインシステム
WO1997028505A1 (en) * 1996-01-31 1997-08-07 Ipsilon Networks, Inc. Improved method and apparatus for dynamically shifting between routing and switching packets in a transmission network
JPH10177548A (ja) * 1996-12-18 1998-06-30 Casio Comput Co Ltd セッション管理システム
JPH10336242A (ja) * 1997-05-29 1998-12-18 Mitsubishi Electric Corp データ通信システム
JPH10336272A (ja) * 1997-05-29 1998-12-18 Mitsubishi Electric Corp データ通信システム及びデータ通信方法
JP2000156707A (ja) * 1998-11-19 2000-06-06 Nec Corp パケット交換局及びパケット交換ネットワークシステム
JP2000242434A (ja) * 1998-12-22 2000-09-08 Hitachi Ltd 記憶装置システム
JP2000347965A (ja) * 1999-06-07 2000-12-15 Toshiba Corp モバイル通信システム、及びモバイル通信方法
JP2001057583A (ja) * 1999-08-17 2001-02-27 Mitsubishi Electric Corp データ転送制御方法およびデータ転送制御装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5857188A (en) * 1996-04-29 1999-01-05 Ncr Corporation Management of client requests in a client-server environment
US6493343B1 (en) 1998-01-07 2002-12-10 Compaq Information Technologies Group System and method for implementing multi-pathing data transfers in a system area network
US6545981B1 (en) * 1998-01-07 2003-04-08 Compaq Computer Corporation System and method for implementing error detection and recovery in a system area network
US6798742B1 (en) * 1998-01-16 2004-09-28 Paradyne Corporation System and method for the measurement of service quality in a communication network
US6483804B1 (en) 1999-03-01 2002-11-19 Sun Microsystems, Inc. Method and apparatus for dynamic packet batching with a high performance network interface

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06303257A (ja) * 1993-02-17 1994-10-28 Mitsubishi Electric Corp データ転送方法
JPH0746287A (ja) * 1993-06-29 1995-02-14 Toshiba Corp オンラインシステム
WO1997028505A1 (en) * 1996-01-31 1997-08-07 Ipsilon Networks, Inc. Improved method and apparatus for dynamically shifting between routing and switching packets in a transmission network
JPH10177548A (ja) * 1996-12-18 1998-06-30 Casio Comput Co Ltd セッション管理システム
JPH10336242A (ja) * 1997-05-29 1998-12-18 Mitsubishi Electric Corp データ通信システム
JPH10336272A (ja) * 1997-05-29 1998-12-18 Mitsubishi Electric Corp データ通信システム及びデータ通信方法
JP2000156707A (ja) * 1998-11-19 2000-06-06 Nec Corp パケット交換局及びパケット交換ネットワークシステム
JP2000242434A (ja) * 1998-12-22 2000-09-08 Hitachi Ltd 記憶装置システム
JP2000347965A (ja) * 1999-06-07 2000-12-15 Toshiba Corp モバイル通信システム、及びモバイル通信方法
JP2001057583A (ja) * 1999-08-17 2001-02-27 Mitsubishi Electric Corp データ転送制御方法およびデータ転送制御装置

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9769093B2 (en) 2014-05-08 2017-09-19 Fujitsu Limited Apparatus and method for performing InfiniBand communication between user programs in different apparatuses
US11451476B2 (en) 2015-12-28 2022-09-20 Amazon Technologies, Inc. Multi-path transport design
JP2019504557A (ja) * 2015-12-29 2019-02-14 アマゾン テクノロジーズ インコーポレイテッド ネットワーキング技術
JP2019092217A (ja) * 2015-12-29 2019-06-13 アマゾン テクノロジーズ インコーポレイテッド ネットワーキング技術
JP2019092218A (ja) * 2015-12-29 2019-06-13 アマゾン テクノロジーズ インコーポレイテッド ネットワーキング技術
US10645019B2 (en) 2015-12-29 2020-05-05 Amazon Technologies, Inc. Relaxed reliable datagram
US10673772B2 (en) 2015-12-29 2020-06-02 Amazon Technologies, Inc. Connectionless transport service
US10917344B2 (en) 2015-12-29 2021-02-09 Amazon Technologies, Inc. Connectionless reliable transport
US11343198B2 (en) 2015-12-29 2022-05-24 Amazon Technologies, Inc. Reliable, out-of-order transmission of packets
US11770344B2 (en) 2015-12-29 2023-09-26 Amazon Technologies, Inc. Reliable, out-of-order transmission of packets

Also Published As

Publication number Publication date
JP4099170B2 (ja) 2008-06-11
CN1633647B (zh) 2010-09-08
IL164724A0 (en) 2005-12-18
EP1499984A2 (en) 2005-01-26
KR20040105224A (ko) 2004-12-14
US20030202519A1 (en) 2003-10-30
WO2003091888A3 (en) 2004-03-04
ATE314691T1 (de) 2006-01-15
KR100651571B1 (ko) 2006-11-29
EP1499984B1 (en) 2005-12-28
DE60303026D1 (de) 2006-02-02
TWI252651B (en) 2006-04-01
DE60303026T2 (de) 2006-07-27
AU2003214470A1 (en) 2003-11-10
US7149220B2 (en) 2006-12-12
CN1633647A (zh) 2005-06-29
MXPA04010437A (es) 2004-12-13
WO2003091888A2 (en) 2003-11-06
TW200306719A (en) 2003-11-16
AU2003214470A8 (en) 2003-11-10
CA2483197C (en) 2010-07-13
CA2483197A1 (en) 2003-11-06

Similar Documents

Publication Publication Date Title
JP4099170B2 (ja) ネットワークにおけるデータ転送を管理するデータ処理システムおよび方法
US7165110B2 (en) System and method for simultaneously establishing multiple connections
US6766467B1 (en) Method and apparatus for pausing a send queue without causing sympathy errors
US7876751B2 (en) Reliable link layer packet retry
US7936753B1 (en) Method and system for reliable multicast
US9590923B2 (en) Reliable link layer for control links between network controllers and switches
US6941350B1 (en) Method and apparatus for reliably choosing a master network manager during initialization of a network computing system
US7095750B2 (en) Apparatus and method for virtualizing a queue pair space to minimize time-wait impacts
US8743878B2 (en) Path resolve in symmetric infiniband networks
US20030031183A1 (en) Queue pair resolution in infiniband fabrics
US6898638B2 (en) Method and apparatus for grouping data for transfer according to recipient buffer size
US20020198927A1 (en) Apparatus and method for routing internet protocol frames over a system area network
US6980551B2 (en) Full transmission control protocol off-load
US7099955B1 (en) End node partitioning using LMC for a system area network
US20020078265A1 (en) Method and apparatus for transferring data in a network data processing system
US20040267960A1 (en) Force master capability during multicast transfers
CN117354253A (zh) 一种网络拥塞通知方法、装置及存储介质
JP2005527898A (ja) チャネル・アダプタ障害に対する冗長性を提供する方法
WO2024022243A1 (zh) 数据传输方法、网络设备、计算机设备及存储介质

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070416

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070516

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070730

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20070730

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20070730

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20070731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071101

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080107

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20080107

TRDD Decision of grant or rejection written
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20080307

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20080307

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080307

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080314

R150 Certificate of patent or registration of utility model

Ref document number: 4099170

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110321

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110321

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110321

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120321

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130321

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140321

Year of fee payment: 6

EXPY Cancellation because of completion of term