説明

装置、アセンブリ及びデータパケットの読み出し及び順番付けをする複数の解析手段を操作する方法

システム及びシステムを動作させる方法であって、システムは、複数のデータ受信要素を有し、各受信要素は、データコネクション及び他の受信要素からデータパケットを受信し、2つのデータパケットを他の受信要素に所定の順番で転送する。もし、ある時点で、1つのデータパケットのみを受信したならば、ある期間の経過が許容され、第2のデータパケットが受信されたならば、2つのデータパケットが順番に出力される。そうでない場合には、受信したデータパケットが出力される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データパケットを並列に読み出し/解析し、パケットの順番付けを行い、所望の順番でこれらのパケットを連続して出力する方法に関する。
【発明の概要】
【0002】
第1態様では、本発明は、
データコネクションから所定の順番で受信した複数のデータパケットを順番付け且つ出力する装置であって、
複数の解析要素であって、
各解析要素が、
データコネクションからデータパケットを受信する第1受信手段と、
他の解析要素からデータパケットを受信する第2受信手段と、
第1及び第2受信手段によって受信されたデータパケットを出力する出力手段と、
を有する複数の解析要素と、
制御要素であって、
ある時点で、データパケットが第1受信手段及び/又は第2受信手段によって受信されたかを判断し、
もし、ある時点で、データパケットが第1受信手段及び第2受信手段の両方によって受信されていれば、2つのデータパケットの順番を決定し、出力手段に指示して2つのデータパケットを決定された順番で出力させ、
もし、ある時点で、データパケットが第1受信手段及び第2受信手段の内の一方のみから受信されていれば、所定の期間を待機して、
もし、所定の期間内又は所定の期間後に、データパケットが第1受信手段及び第2受信手段の内の他方によって受信されていれば、2つのデータパケットの順番を決定し、出力手段に指示して2つのデータパケットを決定された順番で出力させ、
その他の場合には、所定の期間後に、出力手段に指示して受信したデータパケットを出力させる制御要素と、
を備える装置に関する。
【0003】
本明細書では、装置は、1つのハウジング内のハードウェア単体であっても良いし、又は、データを交換するように相互に接続された複数の個別の要素によって形成されていても良い。このデータ交換は、TCP、イーサネット(登録商標)、ブルートゥース(登録商標)等のような任意のデータ転送プロトコルの元で、有線又は無線の任意のタイプのデータ転送を用いて行われても良い。
【0004】
また、解析要素は、個別のPCB、プロセッサ、FPGA等によって具体化されたような個別の単体のハードウェアによって提供されても良い。代わりに、同じPCB/プロセッサ/FPGAが、多様な解析要素を形成しても良い。また、制御ユニットは、解析要素の他の部分に統合されても良いし、個別のエンティティであっても良い。
【0005】
データパケットは、ネットワーク、データケーブル、データバス、トランク(trunk)等によって、送信又はトランスポートされる任意のタイプのデータユニットであり得る。通常、データユニットは、複数の異なる標準又はUDP及びTCPデータパケットのようなデータパケットタイプを傘下におさめるイーサネット(登録商標)規格のような、1つ又は複数の標準に適合する。普通、データパケットは、アドレスデータ、ペイロード等のような複数の異なる情報項目又はタイプを有しており、それぞれはデータパケット内に明確に定義されるか又は既知の位置に配置される。通常、そのような位置及びタイプはデータパケットタイプごとに異なるが、普通、データパケットタイプ及びその個別の内容の位置は、実際のデータパケットから決定されて、その後、アドレス及び/又はペイロードのような個別のデータ項目は、解析において導出され、変更され、及び/又は使用され得る。例えばパケットの特定のデータ項目がタイプ/規格を識別する時、タイプ又は規格がデータパケットから直接導出され得る。又は、パケットの特定のデータ項目は、データパケットのデータ項目のタイプ及び位置の認識及び続いてそのようなデータがそのような位置で見つけられ得るデータパケットのタイプ又は規格の決定に基づいて、データパケットから導出されたデータにより導出され得る。
【0006】
本明細書では、データコネクションは、任意のデータ転送プロトコルを用い、有線及び/又は無線であり、コンピュータ、サーバ、ネットワーク又は記憶装置に接続されたデータケーブル又はトランク(trunk)のような、任意のタイプのデータ転送コネクションであり得る。
【0007】
データパケットは、データコネクションに転送されて、任意の方法で任意の分配スキーム等を用いて、個別の第1手段に取り込まれ得る。
【0008】
本明細書では、データパケットの順番付けは、データパケットがデータコネクションを介して記憶装置から読み出される順番のように、データパケットがデータコネクションから受信されるか又はデータコネクションに取り込まれるものであり得る。また、この順番はデータパケットから決定可能であり、解析要素が、任意の2つのデータパケットから、どちらのデータパケットが最初に出力されるかという順番にデータパケットの相対位置を続いて決定可能であることが好ましい。
【0009】
データパケットは、多様な方法で且つ多様の理由により順番づけされ得る。普通、コンピュータ間のデータ交換は、ファイル交換、TCP転送、VoIP等であり、個別のパケットの順番は重要である普通、そのような転送は、ストリーム(stream)と呼ばれる。
【0010】
通常、データパケットのストリームは、単一の送信機から1つ又は複数の受信機に送信されるデータパケットの列である。これらのデータパケットは、パケットのペイロードである小さな部分で送信される、例えば単一のファイル等に関係する。普通、送信機及び受信機又は任意の中間ネットワーク要素は、パケット内にも示されるアドレスを有する。また、個別のデータパケット規格に依存して、データパケット内には、他のストリーム識別情報が存在し得る。
【0011】
従って、ストリームは、例えばアドレス及び/又はストリーム識別情報に基づいて識別され得る。それによって、もし一貫性を用いれば、同じ情報が導出されて、続くプロセスは単に情報からストリームを識別するだろう。
【0012】
他の状況では、データパケットは、シーケンス番号又はタイムスタンプのような、データパケットの中にその順番を定義する情報を備える。従って、この情報は、パケットを順番づけるために使用され得る。タイムスタンプの長所は、任意の2つのパケットが互いの関係において順番付けられ得ることである。シーケンス番号は、連続で適用された時、更に後述されるが、2つのパケットが列において隣接しているかどうか、又は、更なるパケットがこれら2つのパケットの間に配置しているかどうかということを決定可能であるという長所を更に有する。
【0013】
複数の第1手段が使用される。しかし、これらの手段は、例えばデータパケットが同じサイズを有する必要はないという事実によって、異なる速度及び遅延を有して動作し得る。それによって、解析要素がデータパケットを受信する順番は、データパケットが記憶装置から出力される順番には対応しない。従って、装置がデータパケットを求められる順番で出力するために、再度の順番付けが望まれる。
【0014】
複数の解析要素が存在すると、並列の読み出し/デキューすること及び/又は順番付けが実行され得る。2,3,4,5,6,7,8,10,15,20又はそれ以上のような任意の数の解析要素が使用され得る。これら全ての解析要素は、更に後述するが、同じか又はほとんど同じか、又は、それらは異なる動作を有する異なる回路として例示されるか又は生成され得る。
【0015】
当然、データパケットは、コネクション/PC/サーバ/ネットワーク/記憶装置から個別の第1受信手段に対して、イーサネット(登録商標)、ブルートゥース(登録商標)、TCP、PCIe等の任意の所望の公の又は独占所有権のあるプロトコルを用いて、有線及び/又は無線のデータコネクション/バスのような任意の方法で転送される。各第1手段はコネクションからデータパケットを直接受信しても良いし、又は、第1手段がデイジーチェインとして提供されており、データパケットが正しい第1手段に到達するまでデイジーチェインに沿って転送されても良い。
【0016】
解析要素間のデータパケットの転送は、第2受信手段及び出力手段によって実行される。この転送は、有線又は無線、アナログ又はデジタル、シリアル又はパラレルのような任意のタイプのデータ転送を用いて、及び、イーサネット(登録商標)、ブルートゥース(登録商標)、PCIe又はPCマザーボード又はPC内リソース間等で用いられる他のプロトコルのような任意のプロトコルのもとで、実行され得る。
【0017】
データパケットを並列に受信した時、異なる処理遅延又は転送遅延が生じ得るので、データパケットを再度順番付けることが可能であることが求められる。本発明によれば、ある時点で、データパケットが、第1及び第2手段の内の両方によって受信されたのか、又は、それらの内の一方のみによって受信されたのかが決定される。データが受信されていなければ、動作は求められない。
【0018】
更に後述されるように、当然、この決定及び後続の動作は、周期的のように複数回実行されることが好ましい。代わりに、手続は、データパケットが受信される度に行われても良い。
【0019】
もし、データパケットが、第1及び第2受信手段の両方によって受信されていれば、これらのデータパケットは、遅延無く出力され得る。データパケットは、順番において最初のものが、最初に出力される。当然、複数のデータパケットが、第1及び第2手段の内の一方又は両方によって受信され得る。この状況では、最初の2つのデータパケットの間で最も早いデータパケットから出力されるという決定がなされる。そして、再度、最初の2つのデータパケットに対して決定がなされる、即ち、データパケットの内で最も早いデータパケットを受信した第1又は第2手段から次のデータパケットが決定されるというように等。
【0020】
もし、ある時点で1つのデータパケットのみが受信された場合、他方のデータパケットによってとられた経路に沿った受信の遅延がその受信されたデータパケットによる遅延よりも長い時に、順番において本当はより早いこの他方のデータパケットが第1及び第2手段の内の他方から受信され得る。従って、すでに受信されたパケットは直ぐには出力されず、処理ユニットは、データパケットが第1及び第2手段の内の他方において受信されるかを所定の期間待機する。もしデータパケットが受信されれば、データパケットは、上述したように順番付けられて出力される。もしデータパケットが受信されなければ、すでに受信したデータパケットが出力される。当然、もし、データパケットが第1及び第2手段の内の他方から受信されれば、制御ユニットは、データパケットを出力する前に、全ての期間を待機する必要はない。
【0021】
一般に、所定の期間は、所望により選択され得る。長い期間は、大きなバッファメモリを必要とするが、全てのパケットを順番付けするより高い確率を提供し、一方、短い期間は反対となる。現在の所、所定の期間は、0.1msと100msとの間、好ましくは0.2msと50msとの間のような、0msと1000msの間である。更に後述するように、所定の期間は、異なる解析要素間では異なり得る。
【0022】
状況及び設定に依存して、出力手段は、データパケットを他の解析要素の第2受信手段又は他の要素に出力し得る。
【0023】
ある状況では、複数の解析要素は、2つの端部を有するデイジーチェイン構造で配置されており、第1の解析要素は、一方の端部に位置しており、他の解析要素からデータパケットを受信せず、第2の解析要素は、他方の端部に位置しており、デイジーチェインから受信データコネクションにデータパケットを出力する。
【0024】
この点において、デイジーチェインは、解析要素がデータパケットをひもで繋がれた真珠のように解析要素から解析要素に直線構造に沿って転送するように適合しているという設定である。当然、データパケットは、デイジーチェインの一方の端部から全て出力される。デイジーチェインの他方の端部の解析要素は他の解析要素からデータパケットを受信せず、データコネクションのみから受信する。
【0025】
このようにして、並列な受信/読み出し/デキューすることが実行される一方で、データパケットの単一のシリアル/連続した出力が順番に実行される。この点において、データパケットを受信データコネクションに出力することは、解析要素間とは異なる方法で又は(プロトコルのような)異なるタイプのデータ通信を用いて実行され得ることに留意されたい。受信データコネクションは、既知のデータ通信タイプ及びプロトコルを用いた、任意のタイプのデータネットワーク又は任意のタイプのコンピュータに対する有線又は無線コネクションのような任意のデータコネクションであり得る。普通、データコネクションは、(コンピュータ内部で使用されるバスタイプのような)コンピュータバス又はWAN、LAN、WWW等のコンピュータネットワークへのイーサネット(登録商標)接続の何れかである。
【0026】
特に好ましい実施形態では、異なる解析要素の所定の期間は、異なっている。これは、通常、データコネクションから解析要素の第1及び第2受信手段へのデータパケットの転送の遅延における差が、解析要素毎に異なるという事実によるものである。好ましくは、特に上述のデイジーチェインの例では、期間は、実際の解析要素(actual analyzing element)と第2の解析要素との間に配置された解析要素の数と共に増加する。データコネクションから第1手段においてデータパケットを受信する全ての解析要素において、同じ遅延、d−link、が存在し得る一例がある。しかし、第2手段によって受信されるデータパケットは、デイジーチェインに沿った解析要素の位置に依存して異なるだろう。データパケットの出力と共に、遅延、d−det、が解析のための解析要素によって見られだろう。また、受信したパケットは、既に待機しているだろう。この特定の状況は、更に後で扱われる。
【0027】
そして、データコネクションからデータパケットを受信する受信解析要素の遅延によって生じる遅延、d−link、と共に、第1の解析要素ではない解析要素は、例えば、第2手段によって受信されるデータパケットが移動する解析要素の数とd−detとの積の遅延を経験するか又は予想するだろう。この点において、第1手段において受信されたデータパケットの遅延は、d−linkのみである。
【0028】
そして、所定の期間は、データコネクションから解析要素の第1手段及び第2手段へのデータパケットの転送時間における最大の遅延のような差として選択され得る。
【0029】
ある実施形態では、それぞれの解析要素は、受信したパケットを解析し、そこから制御要素によって使用される情報を導出する手段を有する。本明細書では、解析は、データパケットに含まれるデータから、所定の値、状況、タイプ、アイデンティテイ等の決定であり得る。解析は、データパケットの内容を変更をしても良いし、変更しなくても良い。データパケット内の任意のタイプの情報が、決定手段において使用され得る。
【0030】
導出された情報は、データパケットから直接コピーされたか又は読み出されたデータ/情報であり得る。又は、導出された情報は、例えばデータパケットのタイプ又はデータパケットが従う規格に関係するデータであり得る。パケットの特定のデータ項目がタイプ/規格を特定する時には、タイプ又は規格は、データパケットから直接導出され得る。又は、タイプ又は規格は、データパケットのデータ項目のタイプ及び位置の認識及び続いてそのようなデータがそのような位置で見つけられるデータパケットのタイプ又は規格の決定に基づいて、データパケットから導出されたデータから導出され得る。
【0031】
情報は、データパケットが、既知のデータパケットのストリームに属するかを決定するために使用され得る。続いて、情報が、同じストリームの複数のデータパケットから導出されて、例えばストリーム内のこれらのデータパケットの相対的位置を決定し得る。
【0032】
この状況では、データパケットと一緒に導出された情報を出力するように適合されている出力手段、及び受信した各データパケットに関係する導出された情報を受信するように適合されている第2受信手段を有することが求められる。このように、導出された情報は、後続の解析要素において再使用され得る。
【0033】
1つのみのデータパケットが受信されても、制御要素を待機させることが求められない複数の例外が存在する。ある状況では、制御要素は、順番において最後に出力したデータパケットの位置を記憶するように適合しており、もし、受信したデータパケットが順番において次に隣接する位置を有する場合、出力手段に指示してそのデータパケットを出力させる。この状況では、データパケットから、順番におけるその実際の位置を導出可能である。ある状況では、このことは、データパケットが、欠番のない一貫した/連続した列番号を有している時に可能である。他の状況は、隣接する前又は後のデータパケットを識別する他のデータがデータパケット内に存在する場合である。この状況では、最後に出力したパケットの列番号が記憶されて、列における次のパケットが受信された場合、このパケットは遅延なく出力され得る。
【0034】
第2の状況では、制御要素は、所定の期間内又は所定の期間後に、データパケットが第1受信手段及び第2受信手段の内の他方から受信されない時に対応する情報を出力するように適合しており、制御要素は、第2の時点で、データパケットが第2受信手段から受信されており且つデータパケットが第1受信手段から受信されていない時に、待機することなく出力手段に指示してデータパケットを出力させる。本明細書では、「待機することなく」は、遅延がないことを意図する意味である。
【0035】
そして、データパケットがある制御要素で待機していたならば、それは、更なる遅延を有さずに、後続の解析要素において出力され得る。この理由は、一度遅延があると、データパケットは、後続の解析要素によって受信された時、更に順番に沿っていることが保証されており、解析要素によって将来受信されるデータパケットがあると見なされ得るということである。
【0036】
当然、第2の時点で、第2受信手段からデータパケットが受信されており且つこのデータパケットが待機している時に、第1受信手段からデータパケットが既に受信されており且つこのデータパケットが待機しているならば、これら2つのデータパケットの順番が決定され得る。第1受信手段からのデータパケットが、第2受信手段から受信されたデータパケットよりも順番が早いならば、両方のデータパケットが順番に出力され得る。この点では、第1受信手段からのデータパケットは、例え待機することになっていても、更なる遅延なく出力される。
【0037】
一方、第2の時点で、もし、第1受信手段からのデータパケットが待機しており、待機している第2受信手段からのデータパケットよりも順番において遅いならば、待機しているデータパケットは、上述したように決定可能となる状況において、順番において次のパケットとなるまで待機を続ける。後者の状況では、両方のパケットが、更なる遅延を有さずに、正しい順番で出力され得る。
【0038】
上述したように、制御要素は、複数の異なる時点で、2つのデータパケットの順番を決定し、出力手段に指示して2つのデータパケットを決定された順番で出力させることを実行するように適合していることが好ましい。データコネクションから出力されるデータパケットの数は非常に多いので、決定及び動作は長期の期間に亘ることが求められる。各制御要素における決定は周期的に実行されるか、単純に動作が完了後再開する(ループ化)ことが好ましい。個別の制御要素の動作は、同期していることを決して必要としないことに留意されたい。
【0039】
他の態様では、本発明は、第1態様の装置と、記憶装置と、を備えており、第1受信手段は、記憶装置からデータパケットを読み出し/デキューするように適合しているアセンブリに関係する。
【0040】
当然、読み出し/デキューすることは、記憶装置及びデータパケットが記憶装置に記憶される方法に依存している。更に後述するように、データパケットは待ち行列(queue:キュー)で記憶されることが好ましい。このように、読み出し/デキューされる次のデータパケットのアドレスは、デキューするべき次のデータパケットを再度指し示すように続いてアップデートされるポインタによって識別され得る。
【0041】
代わりに、データパケットは、各「リンク」がデータパケット及び次のリンクのアドレスを有するリンクリストに記憶され得る。又は、データパケットのアドレスは、別個の記憶装置又は別個の記憶装置の一部に記憶される。データパケットは、所望の順番又は所望ではない順番で記憶され得る。
【0042】
この状況では、記憶装置は、待ち行列の2つのエンドポイントのポインタに関係する情報と共に、複数のデータパケットを待ち行列内に保持しており、第1手段は、少なくとも1つのポインタを読み出し且つアップデートするように適合していることが好ましい。従って、あるポインタは、デキューされるべき次のデータパケットを指し示し、他のポインタは、待ち行列内に記憶するデータパケットの次の位置を指し示し得る。読み出しポインタは、データパケットを読み出し/デキューする解析要素によって使用され且つアップデートされ、書き込みポインタは、待ち行列にデータパケットを書き込むプロセス、CPU、コンピュータ、サーバ又は解析要素によって、アップデートされ得る。また、ポインタは、記憶装置に記憶されて、解析要素によって利用可能である。
【0043】
記憶装置内の全てのデータの読み出し/デキュー/アップデートは、DMAによって実行されることが好ましい。
【0044】
本発明の第3態様は、
データコネクションから受信した複数のデータパケットを順番付け且つ出力する方法であって、
所定の順番でデータパケットを出力することと、
複数の解析要素を動作させることと、
を備え、
各解析要素は、
データコネクションから第1データパケットを受信するステップと、
他の解析要素から第2データパケットを受信するステップと、
第1データパケット及び第2データパケットを出力するステップと、
を有し、
出力するステップは、
ある時点で、第1及び/又は第2データパケットを受信したかを判断し、
もし、ある時点で、第1及び第2データパケットの両方を受信していれば、第1及び第2データパケットの順番を決定し、第1及び第2データパケットを決定された順番で出力し、
もし、ある時点で、第1又は第2データパケットのみが受信されていれば、所定の期間を待機して、
所定の期間内又は所定の期間後に、第1及び第2データパケットの内の他方が受信されていれば、受信した第1及び第2データパケットの順番を決定し、第1データパケット及び第2データパケットを決定された順番で出力し、
その他の場合には、所定の期間後に、受信したデータパケットを出力する、方法に関係する。
【0045】
上述したように、好ましくは記憶装置であるデータコネクションからのデータパケットの受信、読み出し又はデキューすることは、データパケットがどのように出力されるか又はデータパケットがどのように記憶装置に記憶されるかに依存するだろう。しかし、記憶/読み出し/デキューする既知の転送技術が、既知のデータ通信の方法で、解析要素とコネクション/記憶装置との間及び個別の解析要素間、解析要素からデータパケットを出力する時に使用され得る。
【0046】
上述したように、パケットの順番付けは、データパケットが出力/読み出し/デキューされる順番付けである。当然、データパケットは記憶装置に記憶されて所定の順番で出力され得るが、このことは決して要求されるものではない。
【0047】
ある状況では、複数の解析要素が、2つの端部を有するデイジーチェイン構造で配置されており、第1の解析要素は、一方の端部に位置しており、他の解析要素からデータパケットを受信せず、第2の解析要素は、他方の端部に位置しており、データパケットを受信データコネクションに出力する。従って、1つを除いた全ての解析要素は、残りの解析要素又は解析要素間のデータ通信と比べて、異なる出力手段を有し得る。残りの解析要素の他は、同じであり得る。代わりに、解析要素は、複数のプロトコルを用いてデータパケットを出力するように適合され得る。
【0048】
従って、第1の解析要素によって受信されたデータパケットは、第2の解析要素に到達する前に全ての他の解析要素を通って送られて、第2の解析要素から出力される。
【0049】
また上述したように、異なる解析要素の所定の期間は異なっていることが好ましい。好ましくは、特に上述のデイジーチェインの例では、期間は、例えばデイジーチェインに沿って、実際の解析要素と第2の解析要素との間に配置された解析要素の数と共に増加する。一般に、期間は、実際の解析要素によって受信されるデータパケットが通って移動する解析要素の数と共に増加する。
【0050】
上述したように、第1データパケットを解析し、そこから出力するステップの決定に使用される情報を導出するステップを有することが好ましい。この状況では、出力するステップは、第1データパケットと一緒に、導出された情報を出力するステップを有し、受信するステップも、受信した各データパケットに関係する導出された情報を受信するステップを有することが好ましい。この情報は、データパケットから再導出する代わりに、後続の解析において使用され得る。
【0051】
上述したように、所定の期間を待機することを望まずに遅延無くデータパケットを出力する例外が存在し得る。そのような状況では、出力するステップは、順番において最後に出力したデータパケットの位置を記憶するステップを有し、もし、順番において次に隣接する位置を有する第1又は第2データパケットを受信した場合、そのデータパケットを出力する。
【0052】
他の状況では、所定の期間内又は所定の期間後に、第1又は第2データパケットが受信されない時に、対応する情報がデータパケットと共に出力され、出力するステップは、第2の時点で、第2データパケットが対応する情報と共に受信されており且つ第1データパケットが受信されない時に、好ましくは対応する情報と共に、待機することなく受信した第2データパケットを出力するステップを有する。この状況では、第2データパケットは、任意の第1データパケットと比較され得る。第1データパケットが順番において早ければ、第1データパケットは、第2データパケットの前に、遅延無く出力され得る。代わりに、第1データパケットが順番において遅く且つ待機していれば、第2データパケットが出力され、第1データパケットは、第2データパケットが出力されていないかのように、待機することが許容され得る。
【0053】
当然、コネクションからデータパケットを受信することは、長期の期間に亘って起きるプロセスなので、頻繁ではないならば、解析要素は、複数の異なる時点で、第1及び第2データパケットの順番を決定し、第1及び第2データパケットを決定された順番で出力することを実行するように適合していることが好ましい。
【0054】
受信するステップは、記憶装置からデータパケットを読み出し/デキューするステップを有することが好ましく、特に、記憶装置は、待ち行列の2つのエンドポイントのポインタに関係する情報と共に、複数のデータパケットを待ち行列内に保持しており、読み出し/デキューするステップは、少なくとも1つのポインタを読み出し且つアップデートするステップを有する。
【0055】
以下、好ましい実施形態が図面を参照して説明される。
【図面の簡単な説明】
【0056】
【図1】図1は、データパケットの転送のみを用いる実施形態を示す。
【図2】図2は、データパケットの受信、解析及び記憶を示す。
【図3】図3は、図1及び2のシステムの組み合わせを示す。
【発明を実施するための形態】
【0057】
図1には、アセンブリ10の実施形態が示されており、複数のアダプタ12が、共通のデータコネクション又は任意のタイプのデータ記憶装置30からデータパケットを読み出し、受信し又はデキューする。
【0058】
読み出し/デキューされたデータパケットは、コネクション30に取り込まれ、及び/又は、アダプタ12からデータパケットの出力が求められる順番で、記憶装置30の待ち行列から読み出される。しかし、更に後述するように、アダプタは、順番、又は、順番におけるデータパケットの少なくとも相対的な位置を自身で決定するように適合している。
【0059】
ファイル転送、VoIP等のような複数のタイプのデータ転送は、所定の順番で出力され、同じ順番で受信され且つ使用されることが求められる複数のデータパケットの交換を含む。その趣旨で、パケットの順番付けは、維持されるべきである。ある状況では、この順番におけるパケットの位置はパケットから決定可能であるか、又は、順番における2つのパケットの相対的位置が決定され得る。他の状況では、パケットの受信のタイムスタンプ(又は単に相対的な番号)を提供することによって順番が維持され、(タイムスタンプから)受信の順番に待ち行列にパケットを記憶するか又はタイムスタンプと一緒にパケットを記憶して、出力の順番が、待ち行列内の順番付けから、若しくは、データパケット内又はデータパケットと共に記憶されたタイムスタンプから、導出され得ることが求められる。
【0060】
従って、データパケットのアドレス又はタイムスタンプ等は、データパケットと共に個別のアダプタ12に転送される。
【0061】
アダプタ12は、データコネクション又は記憶装置30からデータフレームを読み出し又はデキューするように適合している転送要素28を有する。ある状況では、読み出し又はデキューすることは、DMAによって操作され、それによってデータパケットの直接の読み出しが容易になる。この状況では、転送要素28は、データパケットの実際のアドレスを認識する。このアドレスは、記憶装置30の領域から受信され、アダプタ12は、データフレームをデキュー又は読み出す時に、記憶装置30においてアドレス又はポインタをアップデートし得る。普通、データフレームは待ち行列で提供され、読み出しポインタはデータフレームがデキューされた時にアップデートされる。また、プロセス又はプロセッサ又はアダプタ12は、データフレームを、待ち行列又はデータ記憶装置30に追加し、アドレス又はポインタをアップデートして、記憶装置30に更にデータが追加されたことをアダプタ12に間接的に通知し得る。
【0062】
データパケットを読み出した後、データパケットは解析要素26に転送される。任意のタイプの処理又は解析が実行され得る。ある状況では、順番におけるパケットの位置が、データパケットの内容によって決定可能である。そして、この内容は、解析要素26によって導出され得る。
【0063】
また、データパケットの順番付けと関係しているだけでなくデータパケットの内容(受信器、送信機、ペイロード等)とも関係している他のタイプの解析が行われ得る。解析しないことは、全く要求されないことに留意されたい。
【0064】
データパケットは、マージングユニット(merging unit)24に転送される。真ん中のアダプタ12’及び上部のアダプタ12のマージングユニット24は、下側のアダプタ12'/12’’及びアダプタ自身の解析要素26の両方からデータフレームを受信することが分かる。下側のアダプタ12’’のマージングユニット24は、受信したデータパケットを真ん中のアダプタ12’に単に転送するだけである。
【0065】
一般に、マージングユニットは、下側のアダプタ及び解析要素からデータパケットを受信して、そのようなパケットの順番を決定すると共に正しい順番でパケットを出力するように作動する。
【0066】
真ん中のアダプタ12’のマージングユニット24は、全てのデータパケットを受信しないので、データパケットの順番に「穴」が存在するという事実から目をそらされないことに留意されたい。利用できるデータパケットは、正しい順番で上側のアダプタ12に転送される。
【0067】
全てのマージングユニット24の動作は、同じであり、受信したパケットを順番付けることを目的とし得る。
【0068】
一般に、マージングユニット24は、もし解析要素26及び下側に位置するアダプタ12'/12’’の両方からデータパケットを受信するならば、2つのデータパケットの順番を決定し、その順番でこれらのデータパケットを出力するだろう。
【0069】
しかし、もし1つのデータパケットのみが利用可能であれば、マージングユニット24は、所定の期間を待機するだろう。このことは、異なる可能性のあるチャネルを経由して、コネクション又は記憶装置30からマージングユニット24へのデータ転送に存在し得る異なる遅延によるだろう。当然、任意のマージングユニット24は、付属する解析要素26からデータパケットを受信し得る。しかし、データパケットは、下側に位置するアダプタ12'/12’’から受信され、この下側に位置するアダプタは、解析要素26を介して直接にデータパケットを受信するか又は下側に位置するアダプタから更にデータパケットを受信し得る。従って、示されたデイジーチェインにおけるアダプタの位置が上側にある程、又は、そこを経由して現在のアダプタがデータパケットを受信し得るアダプタの数が多い程、待機する期間が長いことが好ましい。
【0070】
ある状況では、チャネル/記憶装置30からデータパケットを直接受信した時、2つのマージングユニット24間で経験される遅延は、50〜500ns、特に100〜250nsであり得る。1つのマージングユニット24において、データパケットの解析及びその転送のための遅延時間は、10〜100ns、特に25〜75nsのオーダであり得る。従って、アダプタ12’が、例えば500nsの間を待機する一方で、アダプタ12は、例えば500+50nsの間を待機し得る。もし、図1においてアダプタ12よりも上側に追加のアダプタが配置された場合、このアダプタは例えば500+50+50nsの間を待機し得る。
【0071】
下側のマージングユニット24及び解析要素26以外からデータパケットが受信された場合、それ以上の待機は求められず、順番における出力が進められる。
【0072】
更なるデータパケットが待機期間内に受信されなければ、受信したデータパケットが出力される。
【0073】
従って、順番において本当はより早い他のデータパケットが受信されないことを確認するために待機している間に局所的順番が生じて、順番が狂って転送される。
【0074】
当然、設定された期間を待機し、マージングユニット24においてデータパケットが十分に遅延していることが確認又は見なされたので、1つのパケットのみが利用可能であっても、そのデータパケットを次ぎのマージングユニット24において待機させることは要求されない。従って、データパケットがあるマージングユニット24における全ての期間を待機した時には、データパケットにそのようにタグを付け、続いて、利用可能なデータパケットの順番において、後続の上側に位置するマージングユニット24から待機することなく出力することが好ましい。もし、後続のマージングユニット24においてデータパケットが待機している場合には、このデータパケットは、もし受信されたタグが付いたデータパケットよりも順番が早いならば、即座に出力され得る。もし、待機しているデータパケットが順番において遅いならば、タグが付いたデータパケットの出力とは関係なく待機し続ける。
【0075】
また、マージングユニット24は、順番において最後に出力したデータパケットの位置を記憶し得る。このことは、パケットが例えば列番号を有していれば可能である。この状況では、もし、次の列番号を有する1つの利用可能なデータパケットが受信された場合、順番においてより早い他のデータパケットを受信しないことが確かなので、期間を待機することを要求されず、このデータパケットは遅延無く出力され得る。
【0076】
いわゆるマスタアダプタ12と呼ばれる上側の解析器12のマージングユニット24から出力されるデータパケットは、標準的なPHY22を用いて、WWWへ又はWWWを介して、外部の受信データコネクションに出力される。
【0077】
図2は、コネクション14からデータパケットを受信し、解析し且つ記憶する全てが同じ構造の使用を示す。この実施形態10’では、データパケットは、PHY22によって受信されて、スピルオーバユニット(spill−over unit)24’に転送される。このスピルオーバユニット24’は、解析器26’/転送要素28’が操作可能なデータパケットと同数のデータパケットを、マスタアダプタ12の解析器26’又は転送要素28’へ転送する。もし、より多くのデータパケットが受信された場合、これらのデータパケットは、次のアダプタ12’のスピルオーバユニット24’にあふれ出て、次のアダプタ12’のスピルオーバユニット24’が同じ機能を実行する。以下、同様である。
【0078】
上述したように、PHY22によって受信されたデータパケットの順番付けは、パケットにタイムスタンプすることによって登録され得る。
【0079】
解析器26’で実行される解析は、共通のコネクション又は記憶装置30を用いて、共通の記憶装置に転送する前のパケットのプレ解析のような適切な解析であり、そこからプロセッサ/プロセス(図示せず)が追加の解析を実行し得る。
【0080】
1つのタイプの解析は、データパケットを記憶装置30内に記憶するアドレスを決定することであり得る。
【0081】
そして、解析されたデータパケットは、記憶ユニット28’を用いて、記憶装置に記憶されるか、又は、単にデータコネクションに出力される。
【0082】
図3には、図1及び2の実施形態が1つの実施形態10’’に組み合わされている。
【0083】
一般に、全てのアダプタ12は、同一であり、個別の電子回路として配置されるか、又は、同じ回路に配置され得ることに留意されたい。
【0084】
アダプタの動作は、特にマスタアダプタ12の動作は、このアダプタが他のアダプタと電子的に同じであるようにソフトウェア又はハードウェアでプログラムされ得る。代わりに、2つ以上の異なるタイプの回路が提供され得る。

【特許請求の範囲】
【請求項1】
データコネクションから所定の順番で受信した複数のデータパケットを順番付け且つ出力する装置であって、
複数の解析要素であって、
各解析要素が、
データコネクションからデータパケットを受信する第1受信手段と、
他の前記解析要素からデータパケットを受信する第2受信手段と、
前記第1及び第2受信手段によって受信されたデータパケットを出力する出力手段と、
を有する複数の解析要素と、
制御要素であって、
ある時点で、データパケットが前記第1受信手段及び/又は前記第2受信手段によって受信されたかを判断し、
もし、前記ある時点で、データパケットが前記第1受信手段及び前記第2受信手段の両方によって受信されていれば、2つのデータパケットの順番を決定し、前記出力手段に指示して2つのデータパケットを決定された順番で出力させ、
もし、前記ある時点で、データパケットが前記第1受信手段及び前記第2受信手段の内の一方のみから受信されていれば、所定の期間を待機して、
もし、前記所定の期間内又は前記所定の期間後に、データパケットが前記第1受信手段及び前記第2受信手段の内の他方によって受信されていれば、2つのデータパケットの順番を決定し、前記出力手段に指示して2つのデータパケットを決定された順番で出力させ、
その他の場合には、前記所定の期間後に、前記出力手段に指示して受信したデータパケットを出力させる制御要素と、
を備える装置。
【請求項2】
複数の前記解析要素は、2つの端部を有するデイジーチェイン構造で配置されており、第1の前記解析要素は、一方の端部に位置しており、他の前記解析要素からデータパケットを受信せず、第2の前記解析要素は、他方の端部に位置しており、データパケットをデータコネクションに出力する、請求項1に記載の装置。
【請求項3】
異なる前記解析要素の前記所定の期間は、異なっている請求項1又は2に記載の装置。
【請求項4】
それぞれの前記解析要素は、前記第1受信手段によって受信されたデータパケットを解析し、そこから前記決定手段によって使用される情報を導出する手段を有する請求項1〜3の何れか一項に記載の装置。
【請求項5】
前記出力手段は、第1受信手段によって受信されたデータパケットと一緒に、導出された前記情報を出力するように適合しており、前記第2受信手段も、各データパケットに関係する導出された前記情報を受信するように適合されている請求項4に記載の装置。
【請求項6】
前記制御要素は、順番において最後に出力したデータパケットの位置を記憶するように適合しており、もし、順番において次に隣接する位置を有するデータパケットが、前記第1又は第2受信手段によって受信された場合、前記出力手段に指示してそのデータパケットを出力させる請求項1〜5の何れか一項に記載の装置。
【請求項7】
前記制御要素は、前記所定の期間内又は前記所定の期間後に、データパケットが前記第1受信手段及び前記第2受信手段の内の他方から受信されない時に対応する情報を出力するように適合しており、前記制御要素は、第2の時点で、データパケットが前記第2受信手段から受信されており且つデータパケットが前記第1受信手段から受信されていない時に、待機することなく前記出力手段に指示してデータパケットを出力させる請求項1〜6の何れか一項に記載の装置。
【請求項8】
前記制御要素は、複数の異なる時点で、2つのデータパケットの順番を決定し、前記出力手段に指示して2つのデータパケットを決定された順番で出力させることを実行するように適合している請求項1〜7の何れか一項に記載の装置。
【請求項9】
請求項1〜8の何れか一項に記載の装置と、
記憶装置と、
を備えており、
前記第1受信手段は、前記記憶装置からデータパケットを読み出し/デキューするように適合しているアセンブリ。
【請求項10】
前記記憶装置は、待ち行列の2つのエンドポイントのポインタに関係する情報と共に、複数のデータパケットを待ち行列内に保持しており、読み出し/デキューする手段は、少なくとも1つのポインタを読み出し且つアップデートするように適合している請求項9に記載のアセンブリ。
【請求項11】
データコネクションから受信した複数のデータパケットを順番付け且つ出力する方法であって、
所定の順番でデータパケットを出力することと、
複数の解析要素を動作させることと、
を備え、
各解析要素は、
データコネクションから第1データパケットを受信するステップと、
他の前記解析要素から第2データパケットを受信するステップと、
第1データパケット及び第2データパケットを出力するステップと、
を有し、
前記出力するステップは、
ある時点で、第1及び/又は第2データパケットを受信したかを判断し、
もし、前記ある時点で、第1及び第2データパケットの両方を受信していれば、第1及び第2データパケットの順番を決定し、第1及び第2データパケットを決定された順番で出力し、
もし、前記ある時点で、第1又は第2データパケットのみが受信されていれば、所定の期間を待機して、
前記所定の期間内又は前記所定の期間後に、第1及び第2データパケットの内の他方が受信されていれば、受信した第1及び第2データパケットの順番を決定し、第1データパケット及び第2データパケットを決定された順番で出力し、
その他の場合には、前記所定の期間後に、受信したデータパケットを出力する、方法。
【請求項12】
複数の前記解析要素は、2つの端部を有するデイジーチェイン構造で配置されており、第1の前記解析要素は、一方の端部に位置しており、他の前記解析要素からデータパケットを受信せず、第2の前記解析要素は、他方の端部に位置しており、データパケットをデータコネクションに出力する、請求項11に記載の方法。
【請求項13】
異なる前記解析要素の前記所定の期間は、異なっている請求項11又は12に記載の方法。
【請求項14】
更に、第1データパケットを解析し、そこから前記出力するステップの決定に使用される情報を導出するステップを有する請求項11〜13の何れか一項に記載の方法。
【請求項15】
前記出力するステップは、第1データパケットと一緒に、導出された前記情報を出力するステップを有し、
第2データパケットを受信する前記ステップも、受信した各データパケットに関係する導出された前記情報を受信するステップを有する、請求項14に記載の方法。
【請求項16】
前記出力するステップは、順番において最後に出力したデータパケットの位置を記憶するステップを有し、もし、順番において次に隣接する位置を有する第1又は第2データパケットを受信した場合、そのデータパケットを出力する、請求項11〜15の何れか一項に記載の方法。
【請求項17】
前記所定の期間内又は前記所定の期間後に、第1及び第2データパケットの内の他方が受信されない時に、対応する情報がデータパケットと共に出力され、前記出力するステップは、第2の時点で、第2データパケットが対応する情報と共に受信されており且つ第1データパケットが受信されない時に、待機することなく受信した第2データパケットを出力するステップを有する請求項11〜16の何れか一項に記載の方法。
【請求項18】
前記解析要素は、複数の異なる時点で、第1及び第2データパケットの順番を決定し、第1及び第2データパケットを決定された順番で出力することを実行するように適合している請求項11〜17の何れか一項に記載の方法。
【請求項19】
第1データパケットを受信する前記ステップは、記憶装置から第1データパケットを読み出し/デキューするステップを有する請求項11〜18の何れか一項に記載の方法。
【請求項20】
前記記憶装置は、待ち行列の2つのエンドポイントのポインタに関係する情報と共に、複数のデータパケットを待ち行列内に保持しており、読み出し/デキューする前記ステップは、少なくとも1つのポインタを読み出し且つアップデートするステップを有する請求項19に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公表番号】特表2013−513271(P2013−513271A)
【公表日】平成25年4月18日(2013.4.18)
【国際特許分類】
【出願番号】特願2012−541529(P2012−541529)
【出願日】平成22年12月6日(2010.12.6)
【国際出願番号】PCT/EP2010/068961
【国際公開番号】WO2011/067406
【国際公開日】平成23年6月9日(2011.6.9)
【出願人】(512064675)ナパテック アクティーゼルスカブ (5)
【Fターム(参考)】