(57)【要約】  システム及びシステムを動作させる方法であって、システムは、複数のデータ受信要素を有し、各受信要素は、データコネクション及び他の受信要素からデータパケットを受信し、２つのデータパケットを他の受信要素に所定の順番で転送する。もし、ある時点で、１つのデータパケットのみを受信したならば、ある期間の経過が許容され、第２のデータパケットが受信されたならば、２つのデータパケットが順番に出力される。そうでない場合には、受信したデータパケットが出力される。
2013513271.tif 000002
【特許請求の範囲】
【請求項１】
データコネクションから所定の順番で受信した複数のデータパケットを順番付け且つ出力する装置であって、
複数の解析要素であって、
各解析要素が、
データコネクションからデータパケットを受信する第１受信手段と、
他の前記解析要素からデータパケットを受信する第２受信手段と、
前記第１及び第２受信手段によって受信されたデータパケットを出力する出力手段と、
を有する複数の解析要素と、
制御要素であって、
ある時点で、データパケットが前記第１受信手段及び／又は前記第２受信手段によって受信されたかを判断し、
もし、前記ある時点で、データパケットが前記第１受信手段及び前記第２受信手段の両方によって受信されていれば、２つのデータパケットの順番を決定し、前記出力手段に指示して２つのデータパケットを決定された順番で出力させ、
もし、前記ある時点で、データパケットが前記第１受信手段及び前記第２受信手段の内の一方のみから受信されていれば、所定の期間を待機して、
もし、前記所定の期間内又は前記所定の期間後に、データパケットが前記第１受信手段及び前記第２受信手段の内の他方によって受信されていれば、２つのデータパケットの順番を決定し、前記出力手段に指示して２つのデータパケットを決定された順番で出力させ、
その他の場合には、前記所定の期間後に、前記出力手段に指示して受信したデータパケットを出力させる制御要素と、
を備える装置。
【請求項２】
複数の前記解析要素は、２つの端部を有するデイジーチェイン構造で配置されており、第１の前記解析要素は、一方の端部に位置しており、他の前記解析要素からデータパケットを受信せず、第２の前記解析要素は、他方の端部に位置しており、データパケットをデータコネクションに出力する、請求項１に記載の装置。
【請求項３】
異なる前記解析要素の前記所定の期間は、異なっている請求項１又は２に記載の装置。
【請求項４】
それぞれの前記解析要素は、前記第１受信手段によって受信されたデータパケットを解析し、そこから前記決定手段によって使用される情報を導出する手段を有する請求項１〜３の何れか一項に記載の装置。
【請求項５】
前記出力手段は、第１受信手段によって受信されたデータパケットと一緒に、導出された前記情報を出力するように適合しており、前記第２受信手段も、各データパケットに関係する導出された前記情報を受信するように適合されている請求項４に記載の装置。
【請求項６】
前記制御要素は、順番において最後に出力したデータパケットの位置を記憶するように適合しており、もし、順番において次に隣接する位置を有するデータパケットが、前記第１又は第２受信手段によって受信された場合、前記出力手段に指示してそのデータパケットを出力させる請求項１〜５の何れか一項に記載の装置。
【請求項７】
前記制御要素は、前記所定の期間内又は前記所定の期間後に、データパケットが前記第１受信手段及び前記第２受信手段の内の他方から受信されない時に対応する情報を出力するように適合しており、前記制御要素は、第２の時点で、データパケットが前記第２受信手段から受信されており且つデータパケットが前記第１受信手段から受信されていない時に、待機することなく前記出力手段に指示してデータパケットを出力させる請求項１〜６の何れか一項に記載の装置。
【請求項８】
前記制御要素は、複数の異なる時点で、２つのデータパケットの順番を決定し、前記出力手段に指示して２つのデータパケットを決定された順番で出力させることを実行するように適合している請求項１〜７の何れか一項に記載の装置。
【請求項９】
請求項１〜８の何れか一項に記載の装置と、
記憶装置と、
を備えており、
前記第１受信手段は、前記記憶装置からデータパケットを読み出し／デキューするように適合しているアセンブリ。
【請求項１０】
前記記憶装置は、待ち行列の２つのエンドポイントのポインタに関係する情報と共に、複数のデータパケットを待ち行列内に保持しており、読み出し／デキューする手段は、少なくとも１つのポインタを読み出し且つアップデートするように適合している請求項９に記載のアセンブリ。
【請求項１１】
データコネクションから受信した複数のデータパケットを順番付け且つ出力する方法であって、
所定の順番でデータパケットを出力することと、
複数の解析要素を動作させることと、
を備え、
各解析要素は、
データコネクションから第１データパケットを受信するステップと、
他の前記解析要素から第２データパケットを受信するステップと、
第１データパケット及び第２データパケットを出力するステップと、
を有し、
前記出力するステップは、
ある時点で、第１及び／又は第２データパケットを受信したかを判断し、
もし、前記ある時点で、第１及び第２データパケットの両方を受信していれば、第１及び第２データパケットの順番を決定し、第１及び第２データパケットを決定された順番で出力し、
もし、前記ある時点で、第１又は第２データパケットのみが受信されていれば、所定の期間を待機して、
前記所定の期間内又は前記所定の期間後に、第１及び第２データパケットの内の他方が受信されていれば、受信した第１及び第２データパケットの順番を決定し、第１データパケット及び第２データパケットを決定された順番で出力し、
その他の場合には、前記所定の期間後に、受信したデータパケットを出力する、方法。
【請求項１２】
複数の前記解析要素は、２つの端部を有するデイジーチェイン構造で配置されており、第１の前記解析要素は、一方の端部に位置しており、他の前記解析要素からデータパケットを受信せず、第２の前記解析要素は、他方の端部に位置しており、データパケットをデータコネクションに出力する、請求項１１に記載の方法。
【請求項１３】
異なる前記解析要素の前記所定の期間は、異なっている請求項１１又は１２に記載の方法。
【請求項１４】
更に、第１データパケットを解析し、そこから前記出力するステップの決定に使用される情報を導出するステップを有する請求項１１〜１３の何れか一項に記載の方法。
【請求項１５】
前記出力するステップは、第１データパケットと一緒に、導出された前記情報を出力するステップを有し、
第２データパケットを受信する前記ステップも、受信した各データパケットに関係する導出された前記情報を受信するステップを有する、請求項１４に記載の方法。
【請求項１６】
前記出力するステップは、順番において最後に出力したデータパケットの位置を記憶するステップを有し、もし、順番において次に隣接する位置を有する第１又は第２データパケットを受信した場合、そのデータパケットを出力する、請求項１１〜１５の何れか一項に記載の方法。
【請求項１７】
前記所定の期間内又は前記所定の期間後に、第１及び第２データパケットの内の他方が受信されない時に、対応する情報がデータパケットと共に出力され、前記出力するステップは、第２の時点で、第２データパケットが対応する情報と共に受信されており且つ第１データパケットが受信されない時に、待機することなく受信した第２データパケットを出力するステップを有する請求項１１〜１６の何れか一項に記載の方法。
【請求項１８】
前記解析要素は、複数の異なる時点で、第１及び第２データパケットの順番を決定し、第１及び第２データパケットを決定された順番で出力することを実行するように適合している請求項１１〜１７の何れか一項に記載の方法。
【請求項１９】
第１データパケットを受信する前記ステップは、記憶装置から第１データパケットを読み出し／デキューするステップを有する請求項１１〜１８の何れか一項に記載の方法。
【請求項２０】
前記記憶装置は、待ち行列の２つのエンドポイントのポインタに関係する情報と共に、複数のデータパケットを待ち行列内に保持しており、読み出し／デキューする前記ステップは、少なくとも１つのポインタを読み出し且つアップデートするステップを有する請求項１９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データパケットを並列に読み出し／解析し、パケットの順番付けを行い、所望の順番でこれらのパケットを連続して出力する方法に関する。
【発明の概要】
【０００２】
第１態様では、本発明は、
データコネクションから所定の順番で受信した複数のデータパケットを順番付け且つ出力する装置であって、
複数の解析要素であって、
各解析要素が、
データコネクションからデータパケットを受信する第１受信手段と、
他の解析要素からデータパケットを受信する第２受信手段と、
第１及び第２受信手段によって受信されたデータパケットを出力する出力手段と、
を有する複数の解析要素と、
制御要素であって、
ある時点で、データパケットが第１受信手段及び／又は第２受信手段によって受信されたかを判断し、
もし、ある時点で、データパケットが第１受信手段及び第２受信手段の両方によって受信されていれば、２つのデータパケットの順番を決定し、出力手段に指示して２つのデータパケットを決定された順番で出力させ、
もし、ある時点で、データパケットが第１受信手段及び第２受信手段の内の一方のみから受信されていれば、所定の期間を待機して、
もし、所定の期間内又は所定の期間後に、データパケットが第１受信手段及び第２受信手段の内の他方によって受信されていれば、２つのデータパケットの順番を決定し、出力手段に指示して２つのデータパケットを決定された順番で出力させ、
その他の場合には、所定の期間後に、出力手段に指示して受信したデータパケットを出力させる制御要素と、
を備える装置に関する。
【０００３】
本明細書では、装置は、１つのハウジング内のハードウェア単体であっても良いし、又は、データを交換するように相互に接続された複数の個別の要素によって形成されていても良い。このデータ交換は、ＴＣＰ、イーサネット（登録商標）、ブルートゥース（登録商標）等のような任意のデータ転送プロトコルの元で、有線又は無線の任意のタイプのデータ転送を用いて行われても良い。
【０００４】
また、解析要素は、個別のＰＣＢ、プロセッサ、ＦＰＧＡ等によって具体化されたような個別の単体のハードウェアによって提供されても良い。代わりに、同じＰＣＢ／プロセッサ／ＦＰＧＡが、多様な解析要素を形成しても良い。また、制御ユニットは、解析要素の他の部分に統合されても良いし、個別のエンティティであっても良い。
【０００５】
データパケットは、ネットワーク、データケーブル、データバス、トランク（ｔｒｕｎｋ）等によって、送信又はトランスポートされる任意のタイプのデータユニットであり得る。通常、データユニットは、複数の異なる標準又はＵＤＰ及びＴＣＰデータパケットのようなデータパケットタイプを傘下におさめるイーサネット（登録商標）規格のような、１つ又は複数の標準に適合する。普通、データパケットは、アドレスデータ、ペイロード等のような複数の異なる情報項目又はタイプを有しており、それぞれはデータパケット内に明確に定義されるか又は既知の位置に配置される。通常、そのような位置及びタイプはデータパケットタイプごとに異なるが、普通、データパケットタイプ及びその個別の内容の位置は、実際のデータパケットから決定されて、その後、アドレス及び／又はペイロードのような個別のデータ項目は、解析において導出され、変更され、及び／又は使用され得る。例えばパケットの特定のデータ項目がタイプ／規格を識別する時、タイプ又は規格がデータパケットから直接導出され得る。又は、パケットの特定のデータ項目は、データパケットのデータ項目のタイプ及び位置の認識及び続いてそのようなデータがそのような位置で見つけられ得るデータパケットのタイプ又は規格の決定に基づいて、データパケットから導出されたデータにより導出され得る。
【０００６】
本明細書では、データコネクションは、任意のデータ転送プロトコルを用い、有線及び／又は無線であり、コンピュータ、サーバ、ネットワーク又は記憶装置に接続されたデータケーブル又はトランク（ｔｒｕｎｋ）のような、任意のタイプのデータ転送コネクションであり得る。
【０００７】
データパケットは、データコネクションに転送されて、任意の方法で任意の分配スキーム等を用いて、個別の第１手段に取り込まれ得る。
【０００８】
本明細書では、データパケットの順番付けは、データパケットがデータコネクションを介して記憶装置から読み出される順番のように、データパケットがデータコネクションから受信されるか又はデータコネクションに取り込まれるものであり得る。また、この順番はデータパケットから決定可能であり、解析要素が、任意の２つのデータパケットから、どちらのデータパケットが最初に出力されるかという順番にデータパケットの相対位置を続いて決定可能であることが好ましい。
【０００９】
データパケットは、多様な方法で且つ多様の理由により順番づけされ得る。普通、コンピュータ間のデータ交換は、ファイル交換、ＴＣＰ転送、ＶｏＩＰ等であり、個別のパケットの順番は重要である普通、そのような転送は、ストリーム（ｓｔｒｅａｍ）と呼ばれる。
【００１０】
通常、データパケットのストリームは、単一の送信機から１つ又は複数の受信機に送信されるデータパケットの列である。これらのデータパケットは、パケットのペイロードである小さな部分で送信される、例えば単一のファイル等に関係する。普通、送信機及び受信機又は任意の中間ネットワーク要素は、パケット内にも示されるアドレスを有する。また、個別のデータパケット規格に依存して、データパケット内には、他のストリーム識別情報が存在し得る。
【００１１】
従って、ストリームは、例えばアドレス及び／又はストリーム識別情報に基づいて識別され得る。それによって、もし一貫性を用いれば、同じ情報が導出されて、続くプロセスは単に情報からストリームを識別するだろう。
【００１２】
他の状況では、データパケットは、シーケンス番号又はタイムスタンプのような、データパケットの中にその順番を定義する情報を備える。従って、この情報は、パケットを順番づけるために使用され得る。タイムスタンプの長所は、任意の２つのパケットが互いの関係において順番付けられ得ることである。シーケンス番号は、連続で適用された時、更に後述されるが、２つのパケットが列において隣接しているかどうか、又は、更なるパケットがこれら２つのパケットの間に配置しているかどうかということを決定可能であるという長所を更に有する。
【００１３】
複数の第１手段が使用される。しかし、これらの手段は、例えばデータパケットが同じサイズを有する必要はないという事実によって、異なる速度及び遅延を有して動作し得る。それによって、解析要素がデータパケットを受信する順番は、データパケットが記憶装置から出力される順番には対応しない。従って、装置がデータパケットを求められる順番で出力するために、再度の順番付けが望まれる。
【００１４】
複数の解析要素が存在すると、並列の読み出し／デキューすること及び／又は順番付けが実行され得る。２，３，４，５，６，７，８，１０，１５，２０又はそれ以上のような任意の数の解析要素が使用され得る。これら全ての解析要素は、更に後述するが、同じか又はほとんど同じか、又は、それらは異なる動作を有する異なる回路として例示されるか又は生成され得る。
【００１５】
当然、データパケットは、コネクション／ＰＣ／サーバ／ネットワーク／記憶装置から個別の第１受信手段に対して、イーサネット（登録商標）、ブルートゥース（登録商標）、ＴＣＰ、ＰＣＩｅ等の任意の所望の公の又は独占所有権のあるプロトコルを用いて、有線及び／又は無線のデータコネクション／バスのような任意の方法で転送される。各第１手段はコネクションからデータパケットを直接受信しても良いし、又は、第１手段がデイジーチェインとして提供されており、データパケットが正しい第１手段に到達するまでデイジーチェインに沿って転送されても良い。
【００１６】
解析要素間のデータパケットの転送は、第２受信手段及び出力手段によって実行される。この転送は、有線又は無線、アナログ又はデジタル、シリアル又はパラレルのような任意のタイプのデータ転送を用いて、及び、イーサネット（登録商標）、ブルートゥース（登録商標）、ＰＣＩｅ又はＰＣマザーボード又はＰＣ内リソース間等で用いられる他のプロトコルのような任意のプロトコルのもとで、実行され得る。
【００１７】
データパケットを並列に受信した時、異なる処理遅延又は転送遅延が生じ得るので、データパケットを再度順番付けることが可能であることが求められる。本発明によれば、ある時点で、データパケットが、第１及び第２手段の内の両方によって受信されたのか、又は、それらの内の一方のみによって受信されたのかが決定される。データが受信されていなければ、動作は求められない。
【００１８】
更に後述されるように、当然、この決定及び後続の動作は、周期的のように複数回実行されることが好ましい。代わりに、手続は、データパケットが受信される度に行われても良い。
【００１９】
もし、データパケットが、第１及び第２受信手段の両方によって受信されていれば、これらのデータパケットは、遅延無く出力され得る。データパケットは、順番において最初のものが、最初に出力される。当然、複数のデータパケットが、第１及び第２手段の内の一方又は両方によって受信され得る。この状況では、最初の２つのデータパケットの間で最も早いデータパケットから出力されるという決定がなされる。そして、再度、最初の２つのデータパケットに対して決定がなされる、即ち、データパケットの内で最も早いデータパケットを受信した第１又は第２手段から次のデータパケットが決定されるというように等。
【００２０】
もし、ある時点で１つのデータパケットのみが受信された場合、他方のデータパケットによってとられた経路に沿った受信の遅延がその受信されたデータパケットによる遅延よりも長い時に、順番において本当はより早いこの他方のデータパケットが第１及び第２手段の内の他方から受信され得る。従って、すでに受信されたパケットは直ぐには出力されず、処理ユニットは、データパケットが第１及び第２手段の内の他方において受信されるかを所定の期間待機する。もしデータパケットが受信されれば、データパケットは、上述したように順番付けられて出力される。もしデータパケットが受信されなければ、すでに受信したデータパケットが出力される。当然、もし、データパケットが第１及び第２手段の内の他方から受信されれば、制御ユニットは、データパケットを出力する前に、全ての期間を待機する必要はない。
【００２１】
一般に、所定の期間は、所望により選択され得る。長い期間は、大きなバッファメモリを必要とするが、全てのパケットを順番付けするより高い確率を提供し、一方、短い期間は反対となる。現在の所、所定の期間は、０．１ｍｓと１００ｍｓとの間、好ましくは０．２ｍｓと５０ｍｓとの間のような、０ｍｓと１０００ｍｓの間である。更に後述するように、所定の期間は、異なる解析要素間では異なり得る。
【００２２】
状況及び設定に依存して、出力手段は、データパケットを他の解析要素の第２受信手段又は他の要素に出力し得る。
【００２３】
ある状況では、複数の解析要素は、２つの端部を有するデイジーチェイン構造で配置されており、第１の解析要素は、一方の端部に位置しており、他の解析要素からデータパケットを受信せず、第２の解析要素は、他方の端部に位置しており、デイジーチェインから受信データコネクションにデータパケットを出力する。
【００２４】
この点において、デイジーチェインは、解析要素がデータパケットをひもで繋がれた真珠のように解析要素から解析要素に直線構造に沿って転送するように適合しているという設定である。当然、データパケットは、デイジーチェインの一方の端部から全て出力される。デイジーチェインの他方の端部の解析要素は他の解析要素からデータパケットを受信せず、データコネクションのみから受信する。
【００２５】
このようにして、並列な受信／読み出し／デキューすることが実行される一方で、データパケットの単一のシリアル／連続した出力が順番に実行される。この点において、データパケットを受信データコネクションに出力することは、解析要素間とは異なる方法で又は（プロトコルのような）異なるタイプのデータ通信を用いて実行され得ることに留意されたい。受信データコネクションは、既知のデータ通信タイプ及びプロトコルを用いた、任意のタイプのデータネットワーク又は任意のタイプのコンピュータに対する有線又は無線コネクションのような任意のデータコネクションであり得る。普通、データコネクションは、（コンピュータ内部で使用されるバスタイプのような）コンピュータバス又はＷＡＮ、ＬＡＮ、ＷＷＷ等のコンピュータネットワークへのイーサネット（登録商標）接続の何れかである。
【００２６】
特に好ましい実施形態では、異なる解析要素の所定の期間は、異なっている。これは、通常、データコネクションから解析要素の第１及び第２受信手段へのデータパケットの転送の遅延における差が、解析要素毎に異なるという事実によるものである。好ましくは、特に上述のデイジーチェインの例では、期間は、実際の解析要素（ａｃｔｕａｌ  ａｎａｌｙｚｉｎｇ  ｅｌｅｍｅｎｔ）と第２の解析要素との間に配置された解析要素の数と共に増加する。データコネクションから第１手段においてデータパケットを受信する全ての解析要素において、同じ遅延、ｄ−ｌｉｎｋ、が存在し得る一例がある。しかし、第２手段によって受信されるデータパケットは、デイジーチェインに沿った解析要素の位置に依存して異なるだろう。データパケットの出力と共に、遅延、ｄ−ｄｅｔ、が解析のための解析要素によって見られだろう。また、受信したパケットは、既に待機しているだろう。この特定の状況は、更に後で扱われる。
【００２７】
そして、データコネクションからデータパケットを受信する受信解析要素の遅延によって生じる遅延、ｄ−ｌｉｎｋ、と共に、第１の解析要素ではない解析要素は、例えば、第２手段によって受信されるデータパケットが移動する解析要素の数とｄ−ｄｅｔとの積の遅延を経験するか又は予想するだろう。この点において、第１手段において受信されたデータパケットの遅延は、ｄ−ｌｉｎｋのみである。
【００２８】
そして、所定の期間は、データコネクションから解析要素の第１手段及び第２手段へのデータパケットの転送時間における最大の遅延のような差として選択され得る。
【００２９】
ある実施形態では、それぞれの解析要素は、受信したパケットを解析し、そこから制御要素によって使用される情報を導出する手段を有する。本明細書では、解析は、データパケットに含まれるデータから、所定の値、状況、タイプ、アイデンティテイ等の決定であり得る。解析は、データパケットの内容を変更をしても良いし、変更しなくても良い。データパケット内の任意のタイプの情報が、決定手段において使用され得る。
【００３０】
導出された情報は、データパケットから直接コピーされたか又は読み出されたデータ／情報であり得る。又は、導出された情報は、例えばデータパケットのタイプ又はデータパケットが従う規格に関係するデータであり得る。パケットの特定のデータ項目がタイプ／規格を特定する時には、タイプ又は規格は、データパケットから直接導出され得る。又は、タイプ又は規格は、データパケットのデータ項目のタイプ及び位置の認識及び続いてそのようなデータがそのような位置で見つけられるデータパケットのタイプ又は規格の決定に基づいて、データパケットから導出されたデータから導出され得る。
【００３１】
情報は、データパケットが、既知のデータパケットのストリームに属するかを決定するために使用され得る。続いて、情報が、同じストリームの複数のデータパケットから導出されて、例えばストリーム内のこれらのデータパケットの相対的位置を決定し得る。
【００３２】
この状況では、データパケットと一緒に導出された情報を出力するように適合されている出力手段、及び受信した各データパケットに関係する導出された情報を受信するように適合されている第２受信手段を有することが求められる。このように、導出された情報は、後続の解析要素において再使用され得る。
【００３３】
１つのみのデータパケットが受信されても、制御要素を待機させることが求められない複数の例外が存在する。ある状況では、制御要素は、順番において最後に出力したデータパケットの位置を記憶するように適合しており、もし、受信したデータパケットが順番において次に隣接する位置を有する場合、出力手段に指示してそのデータパケットを出力させる。この状況では、データパケットから、順番におけるその実際の位置を導出可能である。ある状況では、このことは、データパケットが、欠番のない一貫した／連続した列番号を有している時に可能である。他の状況は、隣接する前又は後のデータパケットを識別する他のデータがデータパケット内に存在する場合である。この状況では、最後に出力したパケットの列番号が記憶されて、列における次のパケットが受信された場合、このパケットは遅延なく出力され得る。
【００３４】
第２の状況では、制御要素は、所定の期間内又は所定の期間後に、データパケットが第１受信手段及び第２受信手段の内の他方から受信されない時に対応する情報を出力するように適合しており、制御要素は、第２の時点で、データパケットが第２受信手段から受信されており且つデータパケットが第１受信手段から受信されていない時に、待機することなく出力手段に指示してデータパケットを出力させる。本明細書では、「待機することなく」は、遅延がないことを意図する意味である。
【００３５】
そして、データパケットがある制御要素で待機していたならば、それは、更なる遅延を有さずに、後続の解析要素において出力され得る。この理由は、一度遅延があると、データパケットは、後続の解析要素によって受信された時、更に順番に沿っていることが保証されており、解析要素によって将来受信されるデータパケットがあると見なされ得るということである。
【００３６】
当然、第２の時点で、第２受信手段からデータパケットが受信されており且つこのデータパケットが待機している時に、第１受信手段からデータパケットが既に受信されており且つこのデータパケットが待機しているならば、これら２つのデータパケットの順番が決定され得る。第１受信手段からのデータパケットが、第２受信手段から受信されたデータパケットよりも順番が早いならば、両方のデータパケットが順番に出力され得る。この点では、第１受信手段からのデータパケットは、例え待機することになっていても、更なる遅延なく出力される。
【００３７】
一方、第２の時点で、もし、第１受信手段からのデータパケットが待機しており、待機している第２受信手段からのデータパケットよりも順番において遅いならば、待機しているデータパケットは、上述したように決定可能となる状況において、順番において次のパケットとなるまで待機を続ける。後者の状況では、両方のパケットが、更なる遅延を有さずに、正しい順番で出力され得る。
【００３８】
上述したように、制御要素は、複数の異なる時点で、２つのデータパケットの順番を決定し、出力手段に指示して２つのデータパケットを決定された順番で出力させることを実行するように適合していることが好ましい。データコネクションから出力されるデータパケットの数は非常に多いので、決定及び動作は長期の期間に亘ることが求められる。各制御要素における決定は周期的に実行されるか、単純に動作が完了後再開する（ループ化）ことが好ましい。個別の制御要素の動作は、同期していることを決して必要としないことに留意されたい。
【００３９】
他の態様では、本発明は、第１態様の装置と、記憶装置と、を備えており、第１受信手段は、記憶装置からデータパケットを読み出し／デキューするように適合しているアセンブリに関係する。
【００４０】
当然、読み出し／デキューすることは、記憶装置及びデータパケットが記憶装置に記憶される方法に依存している。更に後述するように、データパケットは待ち行列（ｑｕｅｕｅ：キュー）で記憶されることが好ましい。このように、読み出し／デキューされる次のデータパケットのアドレスは、デキューするべき次のデータパケットを再度指し示すように続いてアップデートされるポインタによって識別され得る。
【００４１】
代わりに、データパケットは、各「リンク」がデータパケット及び次のリンクのアドレスを有するリンクリストに記憶され得る。又は、データパケットのアドレスは、別個の記憶装置又は別個の記憶装置の一部に記憶される。データパケットは、所望の順番又は所望ではない順番で記憶され得る。
【００４２】
この状況では、記憶装置は、待ち行列の２つのエンドポイントのポインタに関係する情報と共に、複数のデータパケットを待ち行列内に保持しており、第１手段は、少なくとも１つのポインタを読み出し且つアップデートするように適合していることが好ましい。従って、あるポインタは、デキューされるべき次のデータパケットを指し示し、他のポインタは、待ち行列内に記憶するデータパケットの次の位置を指し示し得る。読み出しポインタは、データパケットを読み出し／デキューする解析要素によって使用され且つアップデートされ、書き込みポインタは、待ち行列にデータパケットを書き込むプロセス、ＣＰＵ、コンピュータ、サーバ又は解析要素によって、アップデートされ得る。また、ポインタは、記憶装置に記憶されて、解析要素によって利用可能である。
【００４３】
記憶装置内の全てのデータの読み出し／デキュー／アップデートは、ＤＭＡによって実行されることが好ましい。
【００４４】
本発明の第３態様は、
データコネクションから受信した複数のデータパケットを順番付け且つ出力する方法であって、
所定の順番でデータパケットを出力することと、
複数の解析要素を動作させることと、
を備え、
各解析要素は、
データコネクションから第１データパケットを受信するステップと、
他の解析要素から第２データパケットを受信するステップと、
第１データパケット及び第２データパケットを出力するステップと、
を有し、
出力するステップは、
ある時点で、第１及び／又は第２データパケットを受信したかを判断し、
もし、ある時点で、第１及び第２データパケットの両方を受信していれば、第１及び第２データパケットの順番を決定し、第１及び第２データパケットを決定された順番で出力し、
もし、ある時点で、第１又は第２データパケットのみが受信されていれば、所定の期間を待機して、
所定の期間内又は所定の期間後に、第１及び第２データパケットの内の他方が受信されていれば、受信した第１及び第２データパケットの順番を決定し、第１データパケット及び第２データパケットを決定された順番で出力し、
その他の場合には、所定の期間後に、受信したデータパケットを出力する、方法に関係する。
【００４５】
上述したように、好ましくは記憶装置であるデータコネクションからのデータパケットの受信、読み出し又はデキューすることは、データパケットがどのように出力されるか又はデータパケットがどのように記憶装置に記憶されるかに依存するだろう。しかし、記憶／読み出し／デキューする既知の転送技術が、既知のデータ通信の方法で、解析要素とコネクション／記憶装置との間及び個別の解析要素間、解析要素からデータパケットを出力する時に使用され得る。
【００４６】
上述したように、パケットの順番付けは、データパケットが出力／読み出し／デキューされる順番付けである。当然、データパケットは記憶装置に記憶されて所定の順番で出力され得るが、このことは決して要求されるものではない。
【００４７】
ある状況では、複数の解析要素が、２つの端部を有するデイジーチェイン構造で配置されており、第１の解析要素は、一方の端部に位置しており、他の解析要素からデータパケットを受信せず、第２の解析要素は、他方の端部に位置しており、データパケットを受信データコネクションに出力する。従って、１つを除いた全ての解析要素は、残りの解析要素又は解析要素間のデータ通信と比べて、異なる出力手段を有し得る。残りの解析要素の他は、同じであり得る。代わりに、解析要素は、複数のプロトコルを用いてデータパケットを出力するように適合され得る。
【００４８】
従って、第１の解析要素によって受信されたデータパケットは、第２の解析要素に到達する前に全ての他の解析要素を通って送られて、第２の解析要素から出力される。
【００４９】
また上述したように、異なる解析要素の所定の期間は異なっていることが好ましい。好ましくは、特に上述のデイジーチェインの例では、期間は、例えばデイジーチェインに沿って、実際の解析要素と第２の解析要素との間に配置された解析要素の数と共に増加する。一般に、期間は、実際の解析要素によって受信されるデータパケットが通って移動する解析要素の数と共に増加する。
【００５０】
上述したように、第１データパケットを解析し、そこから出力するステップの決定に使用される情報を導出するステップを有することが好ましい。この状況では、出力するステップは、第１データパケットと一緒に、導出された情報を出力するステップを有し、受信するステップも、受信した各データパケットに関係する導出された情報を受信するステップを有することが好ましい。この情報は、データパケットから再導出する代わりに、後続の解析において使用され得る。
【００５１】
上述したように、所定の期間を待機することを望まずに遅延無くデータパケットを出力する例外が存在し得る。そのような状況では、出力するステップは、順番において最後に出力したデータパケットの位置を記憶するステップを有し、もし、順番において次に隣接する位置を有する第１又は第２データパケットを受信した場合、そのデータパケットを出力する。
【００５２】
他の状況では、所定の期間内又は所定の期間後に、第１又は第２データパケットが受信されない時に、対応する情報がデータパケットと共に出力され、出力するステップは、第２の時点で、第２データパケットが対応する情報と共に受信されており且つ第１データパケットが受信されない時に、好ましくは対応する情報と共に、待機することなく受信した第２データパケットを出力するステップを有する。この状況では、第２データパケットは、任意の第１データパケットと比較され得る。第１データパケットが順番において早ければ、第１データパケットは、第２データパケットの前に、遅延無く出力され得る。代わりに、第１データパケットが順番において遅く且つ待機していれば、第２データパケットが出力され、第１データパケットは、第２データパケットが出力されていないかのように、待機することが許容され得る。
【００５３】
当然、コネクションからデータパケットを受信することは、長期の期間に亘って起きるプロセスなので、頻繁ではないならば、解析要素は、複数の異なる時点で、第１及び第２データパケットの順番を決定し、第１及び第２データパケットを決定された順番で出力することを実行するように適合していることが好ましい。
【００５４】
受信するステップは、記憶装置からデータパケットを読み出し／デキューするステップを有することが好ましく、特に、記憶装置は、待ち行列の２つのエンドポイントのポインタに関係する情報と共に、複数のデータパケットを待ち行列内に保持しており、読み出し／デキューするステップは、少なくとも１つのポインタを読み出し且つアップデートするステップを有する。
【００５５】
以下、好ましい実施形態が図面を参照して説明される。
【図面の簡単な説明】
【００５６】
【図１】図１は、データパケットの転送のみを用いる実施形態を示す。
【図２】図２は、データパケットの受信、解析及び記憶を示す。
【図３】図３は、図１及び２のシステムの組み合わせを示す。
【発明を実施するための形態】
【００５７】
図１には、アセンブリ１０の実施形態が示されており、複数のアダプタ１２が、共通のデータコネクション又は任意のタイプのデータ記憶装置３０からデータパケットを読み出し、受信し又はデキューする。
【００５８】
読み出し／デキューされたデータパケットは、コネクション３０に取り込まれ、及び／又は、アダプタ１２からデータパケットの出力が求められる順番で、記憶装置３０の待ち行列から読み出される。しかし、更に後述するように、アダプタは、順番、又は、順番におけるデータパケットの少なくとも相対的な位置を自身で決定するように適合している。
【００５９】
ファイル転送、ＶｏＩＰ等のような複数のタイプのデータ転送は、所定の順番で出力され、同じ順番で受信され且つ使用されることが求められる複数のデータパケットの交換を含む。その趣旨で、パケットの順番付けは、維持されるべきである。ある状況では、この順番におけるパケットの位置はパケットから決定可能であるか、又は、順番における２つのパケットの相対的位置が決定され得る。他の状況では、パケットの受信のタイムスタンプ（又は単に相対的な番号）を提供することによって順番が維持され、（タイムスタンプから）受信の順番に待ち行列にパケットを記憶するか又はタイムスタンプと一緒にパケットを記憶して、出力の順番が、待ち行列内の順番付けから、若しくは、データパケット内又はデータパケットと共に記憶されたタイムスタンプから、導出され得ることが求められる。
【００６０】
従って、データパケットのアドレス又はタイムスタンプ等は、データパケットと共に個別のアダプタ１２に転送される。
【００６１】
アダプタ１２は、データコネクション又は記憶装置３０からデータフレームを読み出し又はデキューするように適合している転送要素２８を有する。ある状況では、読み出し又はデキューすることは、ＤＭＡによって操作され、それによってデータパケットの直接の読み出しが容易になる。この状況では、転送要素２８は、データパケットの実際のアドレスを認識する。このアドレスは、記憶装置３０の領域から受信され、アダプタ１２は、データフレームをデキュー又は読み出す時に、記憶装置３０においてアドレス又はポインタをアップデートし得る。普通、データフレームは待ち行列で提供され、読み出しポインタはデータフレームがデキューされた時にアップデートされる。また、プロセス又はプロセッサ又はアダプタ１２は、データフレームを、待ち行列又はデータ記憶装置３０に追加し、アドレス又はポインタをアップデートして、記憶装置３０に更にデータが追加されたことをアダプタ１２に間接的に通知し得る。
【００６２】
データパケットを読み出した後、データパケットは解析要素２６に転送される。任意のタイプの処理又は解析が実行され得る。ある状況では、順番におけるパケットの位置が、データパケットの内容によって決定可能である。そして、この内容は、解析要素２６によって導出され得る。
【００６３】
また、データパケットの順番付けと関係しているだけでなくデータパケットの内容（受信器、送信機、ペイロード等）とも関係している他のタイプの解析が行われ得る。解析しないことは、全く要求されないことに留意されたい。
【００６４】
データパケットは、マージングユニット（ｍｅｒｇｉｎｇ  ｕｎｉｔ）２４に転送される。真ん中のアダプタ１２’及び上部のアダプタ１２のマージングユニット２４は、下側のアダプタ１２'／１２’’及びアダプタ自身の解析要素２６の両方からデータフレームを受信することが分かる。下側のアダプタ１２’’のマージングユニット２４は、受信したデータパケットを真ん中のアダプタ１２’に単に転送するだけである。
【００６５】
一般に、マージングユニットは、下側のアダプタ及び解析要素からデータパケットを受信して、そのようなパケットの順番を決定すると共に正しい順番でパケットを出力するように作動する。
【００６６】
真ん中のアダプタ１２’のマージングユニット２４は、全てのデータパケットを受信しないので、データパケットの順番に「穴」が存在するという事実から目をそらされないことに留意されたい。利用できるデータパケットは、正しい順番で上側のアダプタ１２に転送される。
【００６７】
全てのマージングユニット２４の動作は、同じであり、受信したパケットを順番付けることを目的とし得る。
【００６８】
一般に、マージングユニット２４は、もし解析要素２６及び下側に位置するアダプタ１２'／１２’’の両方からデータパケットを受信するならば、２つのデータパケットの順番を決定し、その順番でこれらのデータパケットを出力するだろう。
【００６９】
しかし、もし１つのデータパケットのみが利用可能であれば、マージングユニット２４は、所定の期間を待機するだろう。このことは、異なる可能性のあるチャネルを経由して、コネクション又は記憶装置３０からマージングユニット２４へのデータ転送に存在し得る異なる遅延によるだろう。当然、任意のマージングユニット２４は、付属する解析要素２６からデータパケットを受信し得る。しかし、データパケットは、下側に位置するアダプタ１２'／１２’’から受信され、この下側に位置するアダプタは、解析要素２６を介して直接にデータパケットを受信するか又は下側に位置するアダプタから更にデータパケットを受信し得る。従って、示されたデイジーチェインにおけるアダプタの位置が上側にある程、又は、そこを経由して現在のアダプタがデータパケットを受信し得るアダプタの数が多い程、待機する期間が長いことが好ましい。
【００７０】
ある状況では、チャネル／記憶装置３０からデータパケットを直接受信した時、２つのマージングユニット２４間で経験される遅延は、５０〜５００ｎｓ、特に１００〜２５０ｎｓであり得る。１つのマージングユニット２４において、データパケットの解析及びその転送のための遅延時間は、１０〜１００ｎｓ、特に２５〜７５ｎｓのオーダであり得る。従って、アダプタ１２’が、例えば５００ｎｓの間を待機する一方で、アダプタ１２は、例えば５００＋５０ｎｓの間を待機し得る。もし、図１においてアダプタ１２よりも上側に追加のアダプタが配置された場合、このアダプタは例えば５００＋５０＋５０ｎｓの間を待機し得る。
【００７１】
下側のマージングユニット２４及び解析要素２６以外からデータパケットが受信された場合、それ以上の待機は求められず、順番における出力が進められる。
【００７２】
更なるデータパケットが待機期間内に受信されなければ、受信したデータパケットが出力される。
【００７３】
従って、順番において本当はより早い他のデータパケットが受信されないことを確認するために待機している間に局所的順番が生じて、順番が狂って転送される。
【００７４】
当然、設定された期間を待機し、マージングユニット２４においてデータパケットが十分に遅延していることが確認又は見なされたので、１つのパケットのみが利用可能であっても、そのデータパケットを次ぎのマージングユニット２４において待機させることは要求されない。従って、データパケットがあるマージングユニット２４における全ての期間を待機した時には、データパケットにそのようにタグを付け、続いて、利用可能なデータパケットの順番において、後続の上側に位置するマージングユニット２４から待機することなく出力することが好ましい。もし、後続のマージングユニット２４においてデータパケットが待機している場合には、このデータパケットは、もし受信されたタグが付いたデータパケットよりも順番が早いならば、即座に出力され得る。もし、待機しているデータパケットが順番において遅いならば、タグが付いたデータパケットの出力とは関係なく待機し続ける。
【００７５】
また、マージングユニット２４は、順番において最後に出力したデータパケットの位置を記憶し得る。このことは、パケットが例えば列番号を有していれば可能である。この状況では、もし、次の列番号を有する１つの利用可能なデータパケットが受信された場合、順番においてより早い他のデータパケットを受信しないことが確かなので、期間を待機することを要求されず、このデータパケットは遅延無く出力され得る。
【００７６】
いわゆるマスタアダプタ１２と呼ばれる上側の解析器１２のマージングユニット２４から出力されるデータパケットは、標準的なＰＨＹ２２を用いて、ＷＷＷへ又はＷＷＷを介して、外部の受信データコネクションに出力される。
【００７７】
図２は、コネクション１４からデータパケットを受信し、解析し且つ記憶する全てが同じ構造の使用を示す。この実施形態１０’では、データパケットは、ＰＨＹ２２によって受信されて、スピルオーバユニット（ｓｐｉｌｌ−ｏｖｅｒ  ｕｎｉｔ）２４’に転送される。このスピルオーバユニット２４’は、解析器２６’／転送要素２８’が操作可能なデータパケットと同数のデータパケットを、マスタアダプタ１２の解析器２６’又は転送要素２８’へ転送する。もし、より多くのデータパケットが受信された場合、これらのデータパケットは、次のアダプタ１２’のスピルオーバユニット２４’にあふれ出て、次のアダプタ１２’のスピルオーバユニット２４’が同じ機能を実行する。以下、同様である。
【００７８】
上述したように、ＰＨＹ２２によって受信されたデータパケットの順番付けは、パケットにタイムスタンプすることによって登録され得る。
【００７９】
解析器２６’で実行される解析は、共通のコネクション又は記憶装置３０を用いて、共通の記憶装置に転送する前のパケットのプレ解析のような適切な解析であり、そこからプロセッサ／プロセス（図示せず）が追加の解析を実行し得る。
【００８０】
１つのタイプの解析は、データパケットを記憶装置３０内に記憶するアドレスを決定することであり得る。
【００８１】
そして、解析されたデータパケットは、記憶ユニット２８’を用いて、記憶装置に記憶されるか、又は、単にデータコネクションに出力される。
【００８２】
図３には、図１及び２の実施形態が１つの実施形態１０’’に組み合わされている。
【００８３】
一般に、全てのアダプタ１２は、同一であり、個別の電子回路として配置されるか、又は、同じ回路に配置され得ることに留意されたい。
【００８４】
アダプタの動作は、特にマスタアダプタ１２の動作は、このアダプタが他のアダプタと電子的に同じであるようにソフトウェア又はハードウェアでプログラムされ得る。代わりに、２つ以上の異なるタイプの回路が提供され得る。
【図１】
2013513271.tif 000003
【図２】
2013513271.tif 000004
【図３】
2013513271.tif 000005
【国際調査報告】
2013513271.tif 000006
2013513271.tif 000007
2013513271.tif 000008