(57)【特許請求の範囲】
【請求項１】
ネットワークを介して送信データを送信する方法であって、前記送信データに、前記送信データのシーケンス番号及び送信データの直前に送信されたデータのシーケンス番号である予想シーケンス番号を有するシーケンス情報と、を付加してリモートサイトに送信する段階と；前記送信データ及び前記シーケンス情報を前記リモートサイトで受信する段階と；前記リモートサイトで、送信データと一緒に送信された前記シーケンス情報の前記予想シーケンス番号と当該送信データの直前に送信されたデータのシーケンス番号とが一致した場合に、当該受信したデータを受け付ける段階と；を有する方法。
【請求項２】
前記リモートサイトで、送信データと一緒に送信された前記シーケンス情報の前記予想シーケンス番号と当該送信データの直前に送信されたデータのシーケンス番号とが一致しない場合に、当該受信したデータを受け付けない段階を、更に有する請求項１記載の方法。
【請求項３】
ネットワークを介してデータを送信する方法であって、第１データにシーケンス番号を付加する段階と；前記ネットワークを介して直前に送信された第２データのシーケンス番号である予想シーケンス番号を、前記第１データに付加する段階と；前記ネットワークを介して前記第１データ、前記シーケンス番号及び前記予想シーケンス番号を送信する段階と；前記第１データがリモートサイトによる受付に成功したことを示す応答を受信する段階と；前記第１データがリモートサイトによる受付に成功せず、前記第１データの再送を指示に対して応答する段階と、を有する方法。
【請求項４】
ネットワークを介して送信されたデータを受信する方法であって、第１データ、第１シーケンス番号及び第１予想シーケンス番号を有する第１データパケットを受信する段階と；第２データ、第２シーケンス番号及び直前に送信された前記第１データのシーケンス番号である第２予想シーケンス番号を有する第２データパケットを受信する段階と；前記第２予想シーケンス番号と前記第１シーケンス番号が一致するかを判定する段階と；第２予想シーケンス番号が前記第１シーケンス番号に一致しているという判定に応答し、前記第２データを保存する段階と；を有する方法。
【請求項５】
ネットワークを介して受信した第１データをバスに接続されたデバイスに書き込む方法であって、前記第１データのシーケンス情報を判定する段階であって、前記第１データのシーケンス番号を判定する段階と、前記第１データの予想シーケンス番号を判定する段階と、を備える段階と；前記予想シーケンス番号が直前に受信した第２データのシーケンス番号に一致するかどうかを判定する段階と；前記第２データのシーケンス番号に前記第１データの予想シーケンス番号が一致した時に、前記第１データを前記バスに書き込む段階及びアクノリッジメッセージを送信する段階と：前記第２データのシーケンス番号に前記第１データの予想シーケンス番号が一致しない時に、リトライ要求メッセージを送信する段階と；を有する方法。
【請求項６】
データ、シーケンス番号、予想シーケンス番号を有するデータパケットをネットワークを介して送るシステムであって、前記データパケットをネットワークを介して送信する送信モジュールであって、前記データをバスから受信するバス通信モジュールと、前記シーケンス番号及び前記予想シーケンス番号を、前記予想シーケンス番号が前記送信モジュールが同一の送信先に直前に送信したデータのシーケンス番号になるように、前記データパケットに割り当てるシーケンシングモジュールと、前記データパケットをネットワークを介して受信モジュールに送るデータ送信モジュールと、を備える送信モジュールと；前記ネットワークに接続され、前記データパケットを受信する受信モジュールであって、前記予想シーケンス番号が同一送信モジュールから最後に受信したデータパケットの前記シーケンス番号に一致すれば前記データパケットは正しい順番で受信され、前記データパケットが正しい順番でなければ再送要求を送るという具合に前記データパケットが正しい順番で受信されたかどうかを判定するシーケンステーブルモジュールと、前記データを保存するデータバッファと、前記データパケットが正しい順番で受信された時に前記送信モジュールにアクノリッジを送信するアクノリッジモジュールと、を備える受信モジュールと；を有するシステム。
【請求項７】
前記受信モジュールは、前記データパケットに関連するヘッダ情報を保存する要求バッファと；前記データをバスに書き込むＤＭＡエンジンと；を更に有する請求項６に記載のシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はバス及びメモリに接続された入出力デバイス間における命令の通信に関する。
【０００２】
【従来の技術】
コンピュータシステムに取り付けたデバイス（例：ディスクドライブ、サウンドカード、モデム等）は、システムバスを介してコンピュータのプロセッサに接続されている。このバスの種類としては、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ Ｃｏｍｐｏｎｅｎｔ Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスがあり、これ以外にもＩＳＡ（Ｉｎｄｕｓｔｒｙ Ｓｔａｎｄａｒｄ Ａｒｃｈｉｔｅｃｔｕｒｅ）やＶＥＳＡローカルバス等のバスがある。
【０００３】
一方、ネットワーク環境においては、複数のコンピュータシステムがＬＡＮやＷＡＮ等のネットワークを介して相互に接続されており、これらシステムのペリフェラル（周辺装置）から、ネットワークに接続されている別のコンピュータのリモートメモリに頻繁にデータが送信される。通常、これらのデータは、複数のデータパケットに分割される。これらのパケットは、ポストライトフォーマットで送信される（即ち、前のパケットを受信したというリモートコンピュータからの確認を待つことなく、順番に送信される）。例えば、データが３つのパケットに分割されている場合、２番目及び３番目のパケットは、通常、最初のパケットのアクノリッジ（受信確認）を受信する前に送信される。こういう複数パケットの同時送信は、ネットワーク及びリモートコンピュータシステムにおけるレイテンシー（待ち時間）によって発生する遅延を削減するために実施されているものである。
【０００４】
【発明が解決しようとする課題】
しかしながら、受信側のコンピュータがデータを効率的に使用できるよう、データパケットの順番を維持しなければならない。即ち、受信したパケットの順番が乱れていたり、伝送中にパケットが消失すると、そのストリーム全体が使用できなくなるからである。この問題に対する従来技術による最も簡単な解決策としては、パケットの受信が確認されるまで次のパケットを送信しないという方式が考えられる。しかしながら、この解決策は実現に要するレイテンシーのため、実際に使用する上ではあまりに高コストである。
【０００５】
この問題に対する従来技術による別の解決策としては、パケットを一度に送信し、受信側のコンピュータが受信できなかったパケットだけを再送する方法が考えられる。これを行うには、パケットにシーケンス番号を格納する必要があり、シーケンスの中の１つのパケットを受信側のコンピュータが受信しなかった場合、該コンピュータが「リトライ要求」又は「ｎａｃｋ」と呼ばれるメッセージを送信側のコンピュータに送信し、該送信側のコンピュータはこのメッセージに応答してその消失パケットを再送する。この解決策の欠点は、受信側のコンピュータが、受信したシーケンスのすべてのパケットのカウントを保持すると共にパケットの消失の有無を判定しなければならない点にある。多数のコンピュータが同一の受信側コンピュータに同時にデータパケットを送信する場合、該受信側コンピュータは、各々の送信側のコンピュータごとにこのリストを保持しなければならず、この結果、受信側のコンピュータにおけるこのシーケンステーブルは、非常に大きなものになるか、或いはそうでないにしてもデータ消失のリスクが存在している。これらはいずれも好ましい結果をもたらさず、つまりは、この解決策も十分なものとはいえない。
【０００６】
従来技術による別の解決策として、送信側のコンピュータシステムにいくつかの「クレジット」を割り当てる方法がある。要求側は、データサイズがそのクレジットカウントに達するまでパケットを送信し、受信側は、バッファスペースで次のパケットを受信する準備が整うごとにクレジットを返す。この解決策においては、やはりレイテンシーが問題となり、これはクレジットの割り当てに要するセットアップに存在している。例えば、データサイズが４ＫＢ（キロバイト）の場合、レイテンシーは入出力の書き込みが発生するごとに約１〜２μｓ（マイクロ秒）になる。
【０００７】
以上のことから、レイテンシー問題が発生せず、不要なデータパケットの送信を繰り返す必要のない、バス間でネットワークを介してデータを効率的に送信する方法が現在求められている。
【０００８】
【課題を解決するための手段】
本発明は、バスデバイス間でネットワークを介してデータを効率的に書き込むシステム及び方法を提供するものである。本発明は、ＰＣＩバス等の「後書き（ｐｏｓｔｅｄ ｗｒｉｔｅ）」又は「遅延書き込み（ｄｅｌａｙｅｄ ｗｒｉｔｅ）」をサポートするタイプのバスに適用可能である。送信するデータパケットを、順番に並べ、シーケンス番号及び予想シーケンス番号を割り当てる。データパケットに割り当てるこの予想シーケンス番号は、現在のデータパケットの直前のデータパケットに割り当てられたシーケンス番号に対応している。そして、データパケットが受信側のバスに到着すると、該パケットの予想シーケンス番号を直前に受信したデータパケットのシーケンス番号と比較し、既に受信済みのデータパケットが新しく到着したデータパケットの予想シーケンス番号に対応するシーケンス番号を有している場合に、新しく到着したデータが保存され、アクノリッジが送信される。一方、両者が一致しない場合には、リトライ要求メッセージが送信される。
【０００９】
【発明の実施の形態】
図１は本発明によるシステム１００の好適な実施例のブロックダイアグラムである。本実施例においては、システム１００は、ネットワークルーター１０３、ＰＣＩネットワークアダプタ１３０Ａ〜Ｃ、ＰＣＩバス１２０Ａ〜Ｃ、デバイス１１０Ａ〜Ｈを備えている。尚、本実施例においてはＰＣＩタイプのバスを備えているが、別の実施例においては、システム１００は、後書き又は遅延書き込みプロトコルをサポートするその他のタイプのバス（例：ＡＧＰバス）を備えてもよい。即ち、本開示における説明は、本発明の範囲がＰＣＩアーキテクチャに限定されることを意味するものではなく、わかりやすくするためにＰＣＩアーキテクチャによる実施例を説明しているに過ぎない。
【００１０】
デバイス１１０の各々は、ＰＣＩバス１２０等の従来技術によるバスに接続されている。例えば、この図示されている実施例においては、デバイスＡ、Ｃ、ＤはＰＣＩバス１２０Ａに接続されており、デバイスＢ及びＥはＰＣＩバス１２０Ｂに接続され、デバイスＦ、Ｇ、ＨはＰＣＩバス１２０Ｃに接続されている。これらのバスの各々には２〜３個のデバイス１００が図示されているが、当業者であれば、所望のアプリケーション又はシステム性能に応じて、個々のバスに、より少ない又はより多くのデバイス１００を接続できることを理解するであろう。バス１２０の各々はネットワークアダプタ１３０に接続されており、該ネットワークアダプタは従来技術によるプロトコル及び命令規則を実装するインターフェイスを提供する。これらのＰＣＩネットワークアダプタ１３０Ａ〜１３０Ｃは、ネットワークルーター１０３に接続されている。ここにおいても、図１には３つのＰＣＩネットワークアダプタ１３０が示されているが、別の実施例においては、そのアプリケーション要件に応じて、異なる数のアダプタ及び異なるバスアーキテクチャを採用することが可能である。
【００１１】
デバイス１１０Ａ〜１１０Ｈの各々は、ディスプレイ、ディスクドライブ、サウンドカード、又はＳＣＳＩアダプタ等の従来技術によるデバイスであってよい。更には、デバイス１１０はネットワークに接続された従来技術によるワークステーション又はパーソナルコンピュータであってもよく、或いは、１つのネットワークであってもよい。更には、デバイス１１０は特殊なノードであってもよく、例えば、デバイス１１０はＤＭＡ（Ｄｉｒｅｃｔ Ｍｅｍｏｒｙ Ａｃｃｅｓｓ：直接メモリ操作）デバイスを有するデータボールト又は１つ以上のストレージデバイスに接続されたディスクコントローラカードであってもよい。或いは、デバイス１１０は入出力デバイス等の非インテリジェントノード、又は、内蔵ＣＰＵ（中央処理装置）又はマイクロコントローラ装置を有するインテリジェントノートであってもよい。即ち、デバイス１１０は、どのようなデバイス又はノード構成であってもよい。
【００１２】
次に、バスはプロセッサとメモリ及び／又はペリフェラルデバイスを接続するコンピュータ業界で通常使用されている拡張バスである。そして、ネットワークアダプタ１３０は、リモート読み取り及び書き込み要求を受信し、これらの処理を行うが、該ＰＣＩネットワークアダプタ１３０については後程詳述する。ネットワークルーター１０３は、インターネット、イントラネット、ローカルエリアネットワーク等のネットワーク環境におけるデータ転送に使用する従来技術によるタイプのルーターである。各種デバイス１１０は、バス１２０を介してネットワークアダプタ１３０にリモート読み取り及び／又は書き込み要求を送信する。該ネットワークアダプタ１３０は、これらの要求を後述するように処理した後にネットワークルーター１０３を介して各々の宛先アドレスに送信する。要求をこのように処理することにより、受信側のネットワークアダプタ１３０は、伝送中における要求の消失や順番の乱れを認識することができる。
【００１３】
図２はネットワークアダプタ１３０の詳細なブロックダイアグラムを示している。ネットワークアダプタ１３０は、送信モジュール２０２及び受信モジュール２０４を有している。このネットワークアダプタ１３０にはデータの送信及び受信能力の両方を有するものが望ましいため、本好適な実施例においては、送信及び受信モジュールの両方を備えている。別の実施例においては、このネットワークアダプタ１３０を、送信又は受信のいずれかのみを実行するように構成してもよい。
【００１４】
図３は送信モジュール２０２の詳細なブロックダイアグラムを示している。該送信モジュール２０２は、シーケンシングモジュール２１０、データ送信モジュール２１２、バス通信モジュール２１４を有している。これらの各モジュールの機能については、後程図６を参照しつつ詳述する。
【００１５】
図４は受信モジュール２０４の詳細なブロックダイアグラムを示している。該受信モジュール２０４は、データバッファ２２１、要求バッファ２３０、シーケンステーブルモジュール２２４、アクノリッジモジュール２２６、ＤＭＡ（Ｄｉｒｅｃｔ Ｍｅｍｏｒｙ Ａｃｃｅｓｓ）エンジン２２８を有している。シーケンステーブルモジュール２２４は、本好適な実施例においては、後述のごとくデータパケットに関するシーケンス情報とそのデータパケットの送信者を識別するノードＩＤを保存するシーケンステーブルを有している。これらの図示されている各モジュールの機能については、後程図７を参照しつつ詳述する。
【００１６】
次に図５を参照すれば、データパケット３００が図示されている。本好適な実施例においては、データパケット３００は、パケットタイプ３０２、ノードＩＤ３０４、シーケンス番号３０６、予想シーケンス番号３０８、データ３１０を有している。パケットタイプ３０２は、そのパケットに格納されているデータのタイプを識別する識別子である。本好適な実施例においては、パケット３００は書き込み要求パケットであり、これはＷＴ＿ＲＱという識別子で識別される。別の実施例においては、その他の適切な識別子を使用する。ノードＩＤ３０４は、そのデータパケットを送信するバスを示している。このフィールドを保持することにより、シーケンステーブルモジュールにおいて、後述するように各ノード情報を個別に保持する必要がなくなる。シーケンス番号３０６は、そのデータパケットの識別子であり、後述するように受信モジュール２０４はこれを使用してパケットの順序付けを行う。予想シーケンス番号３０８は、現在のデータパケット３００の直前に送信されたデータパケットの識別子である。後述するように、該予想シーケンス番号も、受信したパケットの検証と順序付けに受信モジュール２０４が使用する。データ３１０は、送信モジュール２０２が受信モジュール２０４に送信する実際のデータである。
【００１７】
次に図６を参照すれば、本発明の実施例による送信モジュール２０２の処理フローチャートが示されている。第１デバイス１１０Ａは、データをＰＣＩバス１２０Ａ上に出力することによってネットワークルーター１０３を介したデバイス１１０Ｆへの送信を起動するが、このデータは送信モジュール２０２によって処理される。本好適な実施例においては、このデータはまず前述のようにネットワークアダプタ１３０の構成要素である送信モジュール２０２のバス通信モジュール２１４（図３）に向かう。
【００１８】
そして、該データはシーケンシングモジュール２１０によってデータパケットのシーケンスに分割された後にネットワーク１０３を介して送信する待ち行列に収容される。システム１００は、段階４０２においてネットワークを介して送信するデータパケット３００を識別し、段階４０４において、システム１００が採用しているシーケンス番号付けアルゴリズムに従ってこのデータパケットにシーケンス番号３０６を割り当てる。本好適な実施例においては、シーケンス番号３０６はデータパケットを送信する順番を表している。別の実施例においては、シーケンス番号をランダムに、或いはその他の制約に従って生成してもよい。又、システム１００は予想シーケンス番号３０８をも割り当てるが、本好適な実施例においては、該番号は現在のデータパケットの直前に送信されたデータパケットのシーケンス番号に対応している。例えば、データパケットに０、１、２、３と番号が振られており、現在のパケットにシーケンス番号２が割り当てられている場合、該パケットには予想シーケンス番号１が割り当てられる。即ち、当業者であれば、システム１００がシーケンスの直前のデータパケットに対応する予想シーケンス番号を割り当てる限り、シーケンス番号の実際の値は重要ではないことを理解するであろう。段階４０６において、このデータパケットがデータシーケンスにおける最初のパケットであると判定した場合は、本好適な実施例においては、送信モジュール２０２は、段階４０８において該パケットに対してシーケンス内に先行するパケットが存在しないことを意味する「ｔｏｐ」等の特別な予想シーケンス番号３０８を割り当てる。一方、最初のパケットでない場合は、送信モジュール２０２は、段階４１０において直前のシーケンス番号を予想シーケンス番号３０８として割り当てる。そして、これらのシーケンス番号及び予想シーケンス番号をデータパケット３００に割り当てた後に、送信モジュール２０２は、段階４１２においてデータパケットを受信モジュール２０４に送信し、段階４１４において該受信モジュールからステータスメッセージを受信する。このステータスメッセージが再送要求である場合は（段階４１６）、送信モジュール２０２は段階４１２に戻り、受信が成功するまでデータパケット３００を受信モジュール２０４に再送し続ける。
【００１９】
尚、図６においては、わかりやすくするために送信モジュール２０２から受信モジュール２０４に単一のデータパケットを送信する段階のみを示している。本好適な実施例においては、送信モジュール２０２は、多数のデータパケットを高速で連続的に送信し、段階４１２で次のパケットを送信する前に段階４１４においてステータスメッセージの受信を待つことはない。
【００２０】
次に図７を参照すれば、本発明の実施例による受信モジュール２０４の処理フローチャートを示している。受信モジュール２０４が、段階５０２において到着パケットを受信すると、本好適な実施例においては、該パケットがそのシーケンスにおける第１パケットでない場合（段階５０５）には、シーケンステーブルが一杯になっていない場合（段階５０４）にのみ処理される。シーケンステーブルが一杯であり、且つ該データがシーケンスにおける最初のパケットの場合は、データパケット３００は、段階５０７においてシーケンステーブルの直前のエントリ（入力項目）を置換する。データパケットがシーケンスにおける最初のパケットではなく、且つシーケンステーブルが一杯の場合は、データパケット３００は、段階５０６においてリジェクトされ、送信モジュール２０４にリトライ要求メッセージが送信される。
【００２１】
尚、シーケンステーブルモジュール２２４のシーケンステーブルのサイズは、データ３１０のサイズ及びデータバッファ２２１のサイズに応じて実施例ごとに異なることに留意されたい。例えば、データサイズが６４バイトであり、データバッファが５１２バイトの好適な実施例においては、シーケンステーブルの保存可能エントリ数は最大８となる。即ち、８を超えるノードが書き込みデータを送信すると、このシーケンステーブルはオーバーフローする。シーケンステーブル内にデータを保存する余裕があるかどうかを判定するために、シーケンステーブルモジュール２２４は、有効ビットが設定されていないエントリをテーブル内で検索する。該有効ビットが設定されていなければ、そのエントリ内のデータは安全に上書きすることができる。段階５０４において、シーケンステーブルが一杯の場合は、上述のとおり、該データパケットがシーケンスにおける最初のパケットである場合には、データパケット３００によってテーブル内の失効したエントリを置換し、最初のパケットでない場合には、段階５０６において該データパケットはリジェクトされ、リトライ要求メッセージが送信モジュール２０４に送信される。一方、シーケンステーブルが一杯でない場合には、シーケンステーブルモジュール２２４はその受信したデータパケットをチェックし、そのデータパケット３００の予想シーケンス番号３０８がそのデータパケットがシーケンス内の最初のパケットあることを示しているかどうかを確認するか、或いはこの代わりに、段階５１０においてその予想シーケンス番号３０８が直前に受信して既にシーケンステーブル内に存在しそのノードＩＤ３０４に対応するノードＩＤを備えている受信済みデータパケットのシーケンス番号３０６と一致するかどうかを確認する。そして、シーケンステーブル内でこの一致が検出されなければ、そのデータパケット３００は、段階５０６においてリジェクトされ、リトライ要求メッセージが送信モジュール２０４に送信される。一方、一致を検出した場合は、段階５１０においてバッファをチェックし、そのデータを保存する余裕があるかどうかを確認する。余裕がなければ、段階５０６においてそのデータパケットはリジェクトされ、リトライ要求が送信モジュール２０４に送信される。余裕がある場合は、段階５１２においてそのデータパケットのシーケンス情報がシーケンステーブルに保存される。該シーケンステーブルには、データパケット３００のシーケンス番号３０６と共に、そのデータパケット３００と関連する送信モジュール２０４を識別するノードＩＤ３０４も保存される。又、該シーケンステーブルはテーブル内のエントリごとに有効ビットを備えており、データパケットに関連するシーケンス情報を保存した後に、この新しく保存したシーケンスデータが有効であることを示す有効ビットが設定される。
【００２２】
段階５１２において、シーケンスモジュール２２４がシーケンステーブルにシーケンスデータを保存すると、データ３１０がバッファ２２１に送信される。本好適な実施例においては、データはデータバッファ２２１に送信され、ヘッダ情報は要求バッファ２３０に送信される。別の実施例においては、データとヘッダ情報を一緒に保存するか、或いは別の形態で個別に保存してもよい。最後に、段階５１６において、データを受け付けたことを示すアクノリッジが送信モジュールに送信される。別の実施例においては、データパケットがシーケンスにおける最後のパケットであるかどうかを判定する更なるチェックを実行し、最後のパケットである場合は、シーケンステーブルの有効ビットを設定解除することも可能である。
【００２３】
前述のとおり、サイズｎのシーケンステーブルのケースで、ｎを超える数のノードからの要求を受信する場合には、ｎを超える数の送信モジュール２０２から受信モジュール２０４に対して略同時にｎを超える数のデータパケット３００が到着する可能性がある。この場合には、シーケンステーブルが即時に一杯になる。この状態が発生すると、本好適な実施例においては、シーケンステーブルモジュール２２４は最初のｎ個のデータパケット３００を受け付けた後、それ以降のパケットをリジェクトする。これら以降のパケットは、その他の受信されなかったパケットと同様にリトライ要求に応えて送信モジュール２０２が再送する。
【００２４】
当業者であれば、ネットワークルーター１０３に接続されている各々のバス１２０が一意のノードＩＤ番号を備えているため、受信モジュール２０４内のシーケンステーブルのサイズは、ノードＩＤ番号を保存しないテーブルに必要なサイズよりもかなり削減できることを理解するであろう。即ち、ノードＩＤを使用することにより、ノードごとに個別のシーケンスサブテーブルを保存する必要がなく、テーブル内の各エントリは、テーブル内の保存場所に関係なく、その元のノードＩＤと関連付けられている。
【００２５】
又、各々のデータパケットが自分自身のシーケンス番号と共に予想シーケンス番号３０８を格納しているため、受信モジュール２０４は、その予想シーケンス番号３０８を直前に受信したデータパケットのシーケンス番号と比較するだけで順番の乱れたデータパケットを受信したかどうかを即座に判定することができる。
【００２６】
当業者であれば理解し得るように、本発明は、その精神及び本質的な特徴を逸脱することなく、様々な態様で実施することが可能であり、例えば、バス１２０は図１に示しているよりも、より多くの、或いは、より少ないデイバス１１０を備えてもよく、又、シーケンス番号を各種データパケットに多様な方法で割り当てることも可能である。同様に、モジュール、プロトコル、機能、属性、データ構造における特定の大文字の使用や名前等は、必須又は重要ではなく、本発明又はその機能を実現するメカニズムは別の名前や形式を取り得るものである。従って、本発明に関わる本開示は、本発明の範囲を例証するものではあるがこれを限定するものではなく、その請求範囲は請求項に規定するとおりである。
【００２７】
付記
本発明による好適な実施例は、次のとおりである。
【００２８】
１．ネットワークを介してデータを送信する方法であって、シーケンス番号及び予想シーケンス番号を有するシーケンス情報を前記データに関連付ける段階と；前記データ及び関連シーケンス情報をリモートサイトに送信する段階と；前記送信データ及び関連シーケンス情報を前記リモートサイトで受信する段階と；前記関連シーケンス情報に基づいて、受信した前記送信データを受け付けるかどうかを判定する段階と；を有することを特徴とする方法。
【００２９】
２．前記関連シーケンス情報に基づいて、受信した前記送信データを受け付けるかどうかを判定する段階は、前記受信した送信データに関連する前記予想シーケンス番号が前記リモートサイトで直前に受信したデータに関連するシーケンス番号と一致した場合に、前記受信した送信データを受け付ける段階を更に有する付記１記載の方法。
【００３０】
３．前記関連シーケンス情報に基づいて、受信した前記送信データを受け付けるかどうかを判定する段階は、前記受信した送信データに関連する前記予想シーケンス番号が前記リモートサイトで直前に受信したデータに関連するシーケンス番号と一致しない場合に、前記受信した送信データをリジェクトする段階を更に有する付記１記載の方法。
【００３１】
４．受信したデータを受け付けるという判定に応答し、該データを受け付ける段階と；該データを受け付けたことを示すアクノリッジを送信する段階と；を更に有する付記１記載の方法。
【００３２】
５．受信したデータを受け付けないという判定に応答し、該データを受け付けなかったことを示すリトライ要求を送信する段階を更に有する付記１記載の方法。
【００３３】
６．ネットワークを介してデータを送信する方法であって、シーケンス番号を前記データに関連付ける段階と；前記ネットワークを介して直前に送信されたデータに関連する予想シーケンス番号を前記データに関連付ける段階と；前記ネットワークを介して前記データ、前記関連付けられたシーケンス番号及び前記予想シーケンス番号を送信する段階と；を有することを特徴とする方法。
【００３４】
７．リモート受信サイトにおいてデータの受信に成功したかどうかを示す応答を受信する段階と；データの受信に成功しなかったという通知に応答し、該データを再送する段階と；を更に有する付記６記載の方法。
【００３５】
８．ネットワークを介して送信されたデータを受信する方法であって、データ、シーケンス番号、予想シーケンス番号、ノードＩＤを有する第１データパケットを受信する段階と；前記第１データパケットの予想シーケンス番号に対応するシーケンス番号を有する第２データパケットが既に受信されているかどうかを判定する段階と；第２データパケットが既に受信されているという判定に応答し、前記第１データパケットのデータを保存する段階と；を有することを特徴とする方法。
【００３６】
９．前記第１データパケットが保存されたことを示すアクノリッジを送信する段階を更に有する付記８記載の方法。
【００３７】
１０．前記第２データパケットが受信されていないという判定に応答し、前記第１データパケットが受け付けられていないことを示すリトライ要求を送信する段階を更に有する付記８記載の方法。
【００３８】
１１．ネットワークを介してデータを送信する方法において、該データはバスに接続された第１デバイスから送信され、該データは第２バスに接続された第２デバイスに書き込まれ、前記第１バス及び第２バスの各々はネットワークに接続されており、前記方法は、
シーケンス番号を前記データに関連付ける段階と、前記ネットワークを介して直前に送信された別のデータに関連する予想シーケンス番号を前記データに関連付ける段階とを備えるデータのシーケンス情報を判定する段階と；前記ネットワークを介して前記データを送信する段階と；前記データが受け付けられたかどうかを示す応答情報を受信する段階と；前記データが受け付けられなかったという通知に応答し、前記データを再送する段階と；を有することを特徴とする方法。
【００３９】
１２．ネットワークを介して受信した第１データをバスに接続されたデバイスに書き込む方法であって、前記第１データに関連するシーケンス番号を判定する段階と、前記第１データに関連する予想シーケンス番号を判定する段階とを備える前記第１データに関連するシーケンス情報を判定する段階と；前記予想シーケンス番号が直前に受信した第２データのシーケンス番号に対応するかどうかを判定する段階と；前記第２データのシーケンス番号に対応する前記予想シーケンス番号に応答し、前記第１データを前記バスに書き込む段階と、
アクノリッジメッセージを送信する段階と；前記第２データのシーケンス番号に対応しない前記予想シーケンス番号に応答し、リトライ要求メッセージを送信する段階と；を有することを特徴とする方法。
【００４０】
１３．バスに接続されたデバイスにデータを書き込む方法であって、シーケンス番号及び第１データを有する第１データパケットをネットワークを介して受信する段階と；予想シーケンス番号及び第２データを有する第２データパケットをネットワークを介して受信する段階と；前記シーケンス番号に対応する前記予想シーケンス番号に応答し、前記第２データを保存する段階と；を有することを特徴とする方法。
【００４１】
１４．前記第２データが保存されたことを示すアクノリッジメッセージを送信する段階を更に有する付記１３記載の方法。
【００４２】
１５．前記シーケンス番号に対応しない前記予想シーケンス番号に応答し、前記第２データがリジェクトされたことを示すリトライ要求メッセージを送信する段階を更に有する付記１３記載の方法。
【００４３】
１６．データ、シーケンス番号、予想シーケンス番号を有するデータパケットをネットワークを介して転送するシステムにおいて、前記データパケットをネットワークを介して送信する送信モジュールであって、前記データをバスから受信するバス通信モジュールと、前記シーケンス番号及び予想シーケンス番号を前記データパケットに割り当てるシーケンシングモジュールと、前記データパケットをネットワークを介して受信モジュールに転送するデータ送信モジュールと、を備える送信モジュールと；前記ネットワークに接続され、前記データパケットを受信する受信モジュールであって、前記データパケットが正しい順番で受信されたかどうかを判定するシーケンステーブルモジュールと、前記データを保存するデータバッファと、前記送信モジュールにアクノリッジを送信するアクノリッジモジュールと、を備える受信モジュールと；を有することを特徴とするシステム。
【００４４】
１７．前記受信モジュールは、前記データパケットに関連するヘッダ情報を保存する要求バッファと；前記データをバスに書き込むＤＭＡエンジンと；を有する付記１６記載のシステム。
１８．データ、シーケンス番号、予想シーケンス番号を有するデータパケットをネットワークを介して送信する装置であって、前記データをバスから受信するバス通信モジュールと；前記シーケンス番号及び前記予想シーケンス番号を前記データパケットに割り当てるシーケンシングモジュールと；前記データパケットをネットワークを介して受信モジュールに転送するデータ送信モジュールと；を有することを特徴とする装置。
１９．データ、シーケンス番号、予想シーケンス番号を有するデータパケットをネットワークを介して受信する装置であって、前記データパケットが正しい順番で受信されたかどうかを判定するシーケンステーブルモジュールと；前記データを保存するデータバッファと；アクノリッジを送信モジュールに送信するアクノリッジモジュールと；を有することを特徴とする装置。
【図面の簡単な説明】
【図１】本発明の好適な実施例によるシステムのブロックダイアグラムである。
【図２】本発明の実施例によるネットワークアダプタのブロックダイアグラムである。
【図３】本発明の実施例による送信モジュールのブロックダイアグラムである。
【図４】本発明の実施例による受信モジュールのブロックダイアグラムである。
【図５】本発明の実施例によるデータパケットのブロックダイアグラムである。
【図６】本発明の実施例によるデータ送信の段階を示すフローチャートである。
【図７】本発明の実施例によるデータ受信の段階を示すフローチャートである。
【符号の説明】
１０３…ネットワークルーター
１２０Ａ〜Ｃ…ＰＣＩバス
１３０Ａ〜Ｃ…ＰＣＩネットワークアダプタ
１１０Ａ〜Ｈ…デバイス
【図１】
0003863456.tif 000002
【図２】
0003863456.tif 000003
【図３】
0003863456.tif 000004
【図４】
0003863456.tif 000005
【図５】
0003863456.tif 000006
【図６】
0003863456.tif 000007
【図７】
0003863456.tif 000008