JP6266982B2 - データを受信しフォワードするための装置および方法 - Google Patents

データを受信しフォワードするための装置および方法 Download PDF

Info

Publication number
JP6266982B2
JP6266982B2 JP2013546697A JP2013546697A JP6266982B2 JP 6266982 B2 JP6266982 B2 JP 6266982B2 JP 2013546697 A JP2013546697 A JP 2013546697A JP 2013546697 A JP2013546697 A JP 2013546697A JP 6266982 B2 JP6266982 B2 JP 6266982B2
Authority
JP
Japan
Prior art keywords
queue
fifo
packet
output
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013546697A
Other languages
English (en)
Other versions
JP2014504817A5 (ja
JP2014504817A (ja
Inventor
クラグ セーレン
クラグ セーレン
Original Assignee
ナパテック アクティーゼルスカブ
ナパテック アクティーゼルスカブ
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ナパテック アクティーゼルスカブ, ナパテック アクティーゼルスカブ filed Critical ナパテック アクティーゼルスカブ
Publication of JP2014504817A publication Critical patent/JP2014504817A/ja
Publication of JP2014504817A5 publication Critical patent/JP2014504817A5/ja
Application granted granted Critical
Publication of JP6266982B2 publication Critical patent/JP6266982B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6245Modifications to standard FIFO or LIFO
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5681Buffer or queue management
    • H04L2012/5683Buffer or queue management for avoiding head of line blocking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6205Arrangements for avoiding head of line blocking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6255Queue scheduling characterised by scheduling criteria for service slots or service orders queue load conditions, e.g. longest queue first

Landscapes

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

Description

本願発明は、データを受信してフォワードするための装置および方法に関し、特に、複数のデータ・ソースから受信されたデータパケットを時間順序づける方法に関するものである。
時間順序づけは、例えば米国特許第6647017号および米国特許第5337308号に見ることができる。
米国特許第6647017号 米国特許第5337308号
本願発明の第1の態様は、データのフォワーディングのためのシステムに関するものである。そのシステムは、
−複数のデータパケットを受信して、受信したデータパケットごとにタイムスタンプを提供するための受信手段と、
−各々が出口端部あるいは出力格納位置を有している、複数のFIFO入力キューと、を備え、
−入力キューで受信したデータパケットの各々を示すのに適しているフォワーディング手段と、
−前記入力キューからデータパケットをキューから取り出す手段であって、前記キューから取り出す手段は、前記出口端部/出力格納位置に表されており、すべての入力キューの前記出口端部/格納位置において、すべてのパケットのなかで最も低いタイムスタンプを有するパケットをキューから取り出すのに適応しており、前記キューから取り出す手段は、各々の入力キューが1つ以上のパケットを有するときにだけ、1つのパケットをキューから取り出すのに適応している、キューから取り出す手段と、を備え、
このシステムは、データパケットが所定の期間に前記関連入力キューにフォワードされなかったときに、入力キューに、タイムスタンプを有するダミー・パケットを伝送する生成手段を更に備える。
本願のコンテキストにおいて、このシステムはモノリシックで、単一の筐体の中に配置することができ、複数の別々の回路/素子でできている、あるいは、個々の回路、または所定の地域の上に分散するネットワーク・ユニットでできていてもよく、また、データ交換ができるように、WWWのような、または、それを含む、1つ以上のネットワークを介して相互に(配線を介して、または、無線で)接続されていてもよい。この交換は、例えば、TCP、イーサネット(登録商標)、ブルートゥース(登録商標)、その他どんなデータ転送プロトコルの下でも可能である。有線あるいは無線のいかなるタイプのデータ転送を使用することもできる。当然に、本システムの個々の手段の各々は、例えば、FPGA、ASIC、その他の1つ以上のプロセッサーにより形成することができる。あるいは、単一のそのようなプロセッサーは、複数の手段を形成し、複数のステップを実行することができる。
本願システムの機能は、単にデータのフォワーディングだけに限られない。付加的な処理として、以下でさらに記述されるように、例えば、データパケットの分析を実行することができる。
本願のコンテキストにおいて、データは、1つ以上のデータパケットでありえる。データパケットは順序付けられ、あるいは、ストリームにグループ化することができ、データは、1つ以上のそのようなストリームを含むことができる。
データパケットは、ネットワーク、データ・ケーブル、データバス、トランク、その他により、伝送され、搬送されるデータ・ユニットの任意のタイプでありえる。通常は、データ・ユニットは、例えば、いくつかの異なる標準あるいは、UDPやTCPデータパケットなどデータパケット・タイプが存在する傘であるイーサネット(登録商標)標準など、1つ以上のデータ標準に従う。データパケットは、通常、いくつかの異なる情報項目またはタイプ、例えば、アドレスデータ、ペイロード、その他を有する。各々がデータパケットの中で明確な、あるいは、既知の位置に配置される。そのような位置とタイプは、典型的には、データパケット・タイプとデータパケット・タイプにより異なる。しかし、通常は、データパケット・タイプ、および、したがって、これらの個々の内容の位置は、例えば、アドレスデータやペイロードなど、個々のデータ項目が、分析において、導出し、変更し、あるいは、使用することができたあとに、実際のデータパケットから決定することができ、例えば、データパケットのデータ項目のタイプおよび位置の認識、および、その後、そのような位置で見つかるようなデータにおけるデータパケットのタイプまたは標準の決定に基づいて、例えば、パケットの特定のデータ項目がタイプ/標準を識別するとき、あるいは、データパケットからのデータから導出できるとき、そのタイプまたは標準は、データパケットから直接に導出できる。
受信されるデータパケットは、複数の方法で、また、いくつかの理由のために、事前に順序付けされる。通常は、コンピュータの間のデータ交換は、ファイル転送、TCP転送、VoIP、その他であり、個々のパケットの順序が重要である。通常は、そのような転送は、ストリームと呼ばれている。
データパケットのストリームは、通常、単一のトランスミッターから1つ以上のレシーバーまで伝送された一連のデータパケットである。これらのデータパケットは、例えば、より小さな部分でパケットのペイロードとして伝送される単一ファイルまたはその種の他のものに関するものである。トランスミッターおよびレシーバー、あるいは、どんな中間ネットワーク・エレメントでも、通常、パケットにおいても表現されているアドレスを有する。それに加え、情報を識別している他のストリームは、個々のデータパケット標準に依存して、データパケットに存在することができる。
したがって、ストリームは、例えば、アドレスやストリーム識別情報に基づいて識別することができる。それによって、一貫して使われる場合には、同一の情報を導出することができ、どんな以降のプロセスでも、その情報だけからそのストリームを識別することができる。別の状況では、データパケットは、その中に、その順序、例えば、シーケンス番号またはタイムスタンプ、を決定する情報を備えていることができる。したがって、この情報を、パケットを順序付けするために使用することができる。
受信手段は、データまたはデータパケットを実際に受信し、格納することができる。代替的に、そのデータパケットを、別の位置において、あるいは、受信/格納装置が通信している装置において、受信あるいは格納することができる。それによって、そのデータパケットのデータが受信され、次に、他の装置に格納されているデータを読み出すことによって、遠隔でアクセスされる。データパケットが遠隔でアクセスされるので、後者は、通常より遅い処理となる。
受信手段は、通常、ネットワークからデータパケットを受信するのに適合したネットワーク要素のタイプである。したがって、イーサネット(登録商標)・データパケットが受信されるものである場合には、この手段は、PHY、MAC、その他を有することができる。多数のデータ・プロトコルが知られているが、しかし、当業者は、どんな受信手段がどのプロトコルに関して有用であるか、について理解している。受信手段はデータパケットを格納、あるいは、これらを直接、更なる処理/格納/搬送のために、そこへフィードすることができる。多くの場合、バッファがディレーを考慮するために提供されが、これは必要条件でない。
受信手段は、また、タイムスタンプを各々のデータパケットに提供する。次に、受信手段は、各々のデータパケットの受信/アクセスの時点を決定して、対応する情報を提供するのに適合している。一般に、例えば、時間の標準的な表現である時間/分/秒など、時間のいかなる表現も使用することができる。代替的に、時間は、数値によるより単純な方法において表現することができる。当然に、この数は、必要に応じてラップアラウンド(回り込み)することができる。
時間が自然に変わると、好適には時間的に等距離に増加されたり減少されたり、時間または数値は変化する。個々の決定手段の局所クロックにおける時間の経過は、時間ないし数値を増加されたり減少されたりするために用いられる周期信号によって制御することができる。この周期信号は、受信手段によって導出することができる。あるいは、外部ユニットからそれが受け取ることができる。受信手段が、1つ以上が使用される場合には、1台のクロックを、すべての受信手段のために使用することができる。あるいは、受信手段の各々はクロックを有することができ、それらのクロックの時間が同期される。
タイムスタンプは、データパケットと共に提供することができる。しかし、好適には、データパケットに対してタイムスタンプ・データを追加することによって、その中で提供される。次に、後に行われるデータパケットの分析は、いかなるものでも、データパケット自体に基づいて実行することができる。
本願発明にしたがって、複数のFIFO入力キューが提供される。本願のコンテキストにおいて、ファーストイン・ファーストアウト・キューは、例えば、順序を有する多数のデータ項目やパケットを表す。最も古い項目/パケットが、次に読出され、最後に受信された項目/パケット/識別子の後に、新しい項目/パケットが追加される。
FIFOは、入力端部から出力端部に、線形順序で、多数のストレージ位置を有するストレージにおいて実装することができる。ここで、パケットは、入力端部から出口端部の方へ移動し、出口端部から出力される。通常は、ストレージは、別々にアドレス可能要素を有し、いくつかのそのような要素は、キューを形成することができる。当然に、格納ユニットは、モノリシックな格納ユニットでもよく、または、空間的に分離したいくつかの格納要素によって組み立てられたものであってもよい。普通の格納技術は、ハードディスク、フロッピー(登録商標)ディスク、RAM、ROM、PROM、EPROM、EEPROM、Flash、メモリーカード、CD−ROM、DVD、メモリーカード、その他に基づいている。当然に、FIFOは、例えば、データ/項目は動かされないで、ポインターが入力端部と出口端部を指すように動かされる循環ストレージにおいて実装することができる。
キューは、実際のデータパケットまたはその部分を保持することができ、
あるいは、データパケットの識別子だけがキューに保持されるという意味でバーチャルであることができる。ここで、実際のデータパケットは、どこかほかに格納される。フォワーディング手段がデータパケットをフォワードするのに適している場合には、その部分は必要でなく、廃棄することができる場合には、スペースを節約できるように、データパケットの一部だけがフォワードされる必要がある。そのデータパケットが再度出力することが望まれない場合には、例えば、その中のアドレス情報は、スペースを占有しないように、適切に削除することができる。
この格納/表現は、データを格納する、ストレージまたはキューのアドレスを導出あるいは受信するフォワーディング手段を含む。上述したように、そのキュー、または、すべてのキューは、例えば、環状バッファとして、ストレージにおいて実装することができる。それによって、キューの終端にデータを追加することは、そのキューの終端ポインターのアドレスに、そのデータを追加することになる。このアドレスは、フォワーディング手段自体によって、例えば、スケジューラー、アービタまたは他のアドレス生成要素からの要求時に、導出する、あるいは、受信することができる。
好適には、データの位置、例えば、そのようなデータを示すために使われる任意のポインターなど、は、データをキューから取り出すときに、フォワーディング手段または、そのアドレスを生成する手段が、その更新された情報を利用できるように、維持される。
インプリメンテーションにかかわりなく、FIFO操作が望ましい。このFIFOは、所望の順序でそれに追加されるデータパケット/項目、例えば、時間順など、が、その順序を維持し、つぎに、その順序に出力されるという利点を有する。したがって、そのデータパケットは、それらが格納の順序で読出される限り、いかなるタイプのストレージにも追加することができる。
別々の格納ユニットが提供される場合には、アドレスは、実際の格納ユニットの識別と、その中の「局所アドレス」を記述する。
ある実施態様において、1つ以上が使用される場合、各々の受信手段は、キューのサブグループに識別子/データパケットのみをフォワードすることに適合している。ここで、異なる受信手段は、キューの異なるサブグループに識別子/データパケットをフォワードする。複数の受信要素がキューに識別子/データパケットをフォワードするのに適している状況において、各々のキューの識別子/データパケットが、それらのタイムスタンプによって指示される順序でフォワードされることを確実にするスケジューラーが提供されることが望ましい。したがって、ある実施態様において、これらの受信手段は、共有キューに対するパケット/識別子のタイムスタンプに関して、スケジューラーに情報をフォワードし、識別子/パケットがそのキューにおいて表示できるときに、スケジューラーは、関連している受信手段に指示する。
入力キューからデータパケットをキューから取り出すことは、そのキューからデータパケットまたはその部分を実際に削除することであってもよい。代替的に、キューは、データパケットを、特定の格納領域にフォワードされる必要がなく、それから削除する必要もないが、キューは、これらを移動することなく、識別されたデータパケットの順序によって定義することができるという意味でバーチャルであることができる。キューは、このようにバーチャルであり、データパケットの順序からその識別を削除することによって、データパケットを、削除したり、キューから取り出したりすることができる。
別の状況において、キューは、データパケットまたはその識別子のリスト、例えば、循環リストでありえる。ここで、キューの端部は、例えば、ポインターで識別される。したがって、キューから取り出すことは、キューから取り出されたパケット/識別子から次のものまで、終端ポインターをシフトすることでありえる。
したがって、キューから取り出す手段は、キューからデータパケットを実際に読み出す、あるいは、削除するための手段でありえる。代替的に、キューから取り出す手段は、キューの表現の上で動作し、単に、キューの中にあるキューの標示を削除するだけである。
このキューはFIFOキューであり、削除されたデータパケットは、常に、キューにおける、最も早く受信されたデータパケットである。
本願発明にしたがって、キューから取り出す手段は、データパケットを、一度に1つ、キューから取り出すのに適合している。すべてのキューが1つ以上のデータパケットを保持している場合には、キューから取り出す手段は、データパケットをキューから取り出すだけである。
また、キューから取り出す手段は、最も低いタイムスタンプを有するパケットをキューから取り出す。この点で、第1あるいはトップのデータパケットだけは見られることに留意する。また、タイムスタンプは、整数値の間隔を表す整数でありえることに注意する。それによって、タイムスタンプは、最も高い整数が、実際に、最も低い整数より低いとみなされるかもしれないように、「ラップアラウンド(回り込み)」することができる。
このように、より低いタイムスタンプのデータパケットが、別のキューに供給されることになっていて、遅れる場合には、後のパケットがキューから取り出すために到着するときに、このキューが空であるように、より高いタイムスタンプを有するデータパケットは、より低いタイムスタンプを有するデータパケットを追い越すことはできないことが保証される。例えば、データパケットの優先度などデータパケットに対するキューを選択するために、異なる戦略は選択されるかもしれないことに留意する。よって、キューは、どのような期間においても、「合法的に」空である場合があり、このことにより、プロセスを停止させることは許されない。
しかしこのタイプのシステムでは、空のキューがプロセスを停止させるという点で、ヘッド・オブ・ライン・ブロッキング(HOLブロッキング)として知られていることが起こりえる。
このタイプのブロッキングを防止するために、ダミー・パケットを、パケットが所定の期間に送信されなかったキューに送る生成手段が、提供される。
したがって、キューが空となり、システムを停止させる場合には、この状況は、ダミー・パケットをそのキューに送信する生成手段により終了され、キューから取り出す手段が動作した後に、キューからの取り出しが始まる。
この点で、たとえ、キューから取り出すことに続いて、データパケットの2つのタイプを異なるように扱うことになっても、キューから取り出す手段は、ダミー・パケットとデータパケットとを等しく扱う。
この点で、キューにダミー・パケットを追加することと、ダミー・パケットをキューから取り出すこととは、キューへのデータパケットの追加とキューから取り出しを行ないながら、実行することができる。しかしながら、ダミー・パケットの唯一の関連した部分は、タイムスタンプだけであり、そのため、ダミー・パケットはキューにおいてごくわずかなスペースしか取らなくてすむことに留意する。
本願のコンテキストにおいて、ダミー・パケットは、タイムスタンプの他に別の情報を必要としない。当然に、キューから取り出す手段が、例えば、キューから取り出されたパケットのアドレスデータを読み出し、そのうえで動作するのに適合している場合には、ダミー・パケットに、アドレスデータをも提供することが望ましい。また、ダミー・パケットが、キューから取り出されるときに、このデータから利益を得るかもしれない他の回路にフィードされる場合には、ダミー・パケットは更に、例えば、リンク情報などの他のデータである場合がある。通常、ダミー・パケットはキューのデータパケットに関するデータを提供されていない。しかし、それが置かれたキューに関して、例えば、待ち行列の長さなどのデータを提供されることがありえる。
好適には、ダミー・パケットのタイムスタンプは、ダミー・パケットの生成の実際の時点である。代替的に、それより以前の時点、例えば、実際の時点から所定の期間を引いたものを、使用することができる。代替的に、さらに後の時点を使用することができる。しかしながら、キューのすべてのパケットは、それらのタイムスタンプの順序でキューの中に配置されることが望ましいことに留意しなければならない。
当然に、所定の期間は、所望のように選択することができる。より短い期間にすると、プロセスの停止をより小さくさせることができるが、そうすると、より多くのダミー・パケットがフォワードされ、したがって、より多くの帯域幅が消費される。より長い期間にすると、使用される帯域幅を減らすことができる、しかし、停止がより長くなる。この期間は、受信手段における、いかなる最大処理遅れに関しても、この時が経過すると、すべての前のパケットがキューにおいて表されることが確実となり、ダミー・パケットが生成されるように、決定することができる。
ダミー・パケットを含むキューから取り出すこの方法は、したがって、受信手段とキューとの間で、あるいは、データパケットの受信の前にあっても、ディレーにおけるいかなる相違をも修正するために使用することができる。これは、ダミー・パケットが発生する前に、経過させることが許容される期間に反映することができる。
ある実施態様において、単一の受信手段が使われる。この点で、すべての入力キューへのデータパケット・フォワーディングが制御されているので、ダミー・パケットは、受信手段によって生成することができる。
好適な実施形態において、しかしながら、受信手段は、複数の物理的に別々の受信回路を備え、各々が、複数のデータパケットを受信し、受信したデータパケットごとにタイムスタンプを提供するのに適合しており、各々の受信回路が生成手段を備える。
複数の受信手段が提供されるときには、本願システムは、だいたいにおいて、より用途が広くなり、そのような受信手段は、システムの能力を適応させるために提供することができる。
しかしながら、この状況において、ダミー・パケットは、個々の受信手段によって生成することができる。したがって、受信手段が、それは、所定の期間の間、所定の入力キューにパケットをフォワードしなかったことを認識する場合には、他の受信手段がデータパケットかダミー・パケットをフォワードしたかどうかにかかわりなく、ダミー・パケットをフォワードすることができる。
別の実施形態では、複数の受信手段から個々の入力キューにフォワードされるデータパケットが、正しい順序でフォワードされることを確実にするために、スケジューラーが提供される。このスケジューラーは、また、すべての入力キューへのすべてのデータパケット転送をモニターすることができ、したがって、所定の期間の間にいかなる受信手段からも、この入力キューがデータパケットを受信しなかった場合にのみ、要素が入っていないキューに対して単一のダミー・パケットを生成しできるという点において、ダミー・パケットを生成するために使用することができる。
代替的に、要素が入っていない入力キューに、ダミー・パケットを生成して、フォワードするようにスケジューラーは受信手段に指示することができる。この点で、例えば、受信手段の中で最もビジーでない受信手段など、どんな受信手段でも使用することができる。受信手段に対する「ビジーの程度」は、その受信手段から、個々の受信手段からのキューまでのデータパケットの転送のための要求の数から決定することができる。
当然に、他の受信手段からデータパケットを受信していない入力キューに各々の受信手段がデータパケットをフォワードする場合には、1つの受信手段だけによる状況の場合のように、スケジューラーは、要求されず、受信手段は、キューとダミー・パケットの生成においてパケットの正しい順位付けをそれ自身で確実にすることができる。
しかしながら、各々が受信されたデータパケットにタイムスタンプするのに適合している複数の受信手段が提供されるときには、タイムスタンプが調整されることが望ましい。したがって、タイムスタンプが調整されるように、受信手段は共通のクロック信号をすべて受信することが望ましい。代替的に、または、追加的に、各々の受信手段は、すべてのそのようなクロックが時間を合わせられる局所クロックを備えることができる。
ある実施態様において、キューから取り出す手段は、ダミー・パケットを廃棄するのに適応している。したがって、キューから取り出す手段は、そのようなダミー・パケットを出力しない。一方、キューから取り出す手段は、次に出力されるキューから取り出されたデータパケットを、どの入力キューにフィードされたかにかかわらず、それらのタイムスタンプの順序で、出力するのに適合することができる。
これらの出力データパケットは、それらの分析など、使用の任意のタイプに対する出力でありえる。データパケットは、次に、それらの到着時間によって順序付けられる。それによって、例えば、データパケットのストリームの分析が容易になる。
この分析の後に、あるいは、単にキューから取り出した後に、データパケットは、いかなる望ましい方法でも、システムからの出力することができる。それは、たとえば、同一のデータ伝送リンク/ケーブル、あるいはポートであっても、パケットが同一の時間順で、受信されたので、それらへの所望出力であることができ、この状況において、本願のシステムは、その通信リンクにおいて、透明であっても、見えなくても良い。
ある実施態様において、システムは更に、各々が出口端部または出力格納位置を有している複数のFIFO出力キューと、出力キューから取り出されるデータパケットを、1つ以上の出力キューへ、入力キューから取り出された順番に、フォワーディングするのに適応している、キューから取り出す手段と、を備える。
これらの出力キューは、例えば、入力を実装しているストレージなど、共通ストレージに配置することができ、および/または、受信手段において実装することができる。システムは、小さなキューが、データパケットがキューから取り出される、受信手段に存在するようなところ、そして、より大きなキューが、受信手段のキューが供給されるところから別のストレージに存在するようなところで、使用することができる。
当然に、すべての受信された、あるいは、キューから取り出されたデータパケットが、出力キューにフォワードされる必要があるというわけではない。いくつかの状況において、混雑がある場合には、パケット・ドロッピングが、望ましく、許容されることがあり得る。パケット・ドロッピングは、通常の動作であって、これは、本願システムの透明性、非可視性に影響を与えることはありえない。
出力キューにフォワードされるデータパケットは、その入力キューから取り出された順番に、したがって、これらのタイムスタンプの順序で、それにフォワードされる。したがって、キューから取り出すこと、および、キューから取り出されたデータパケットに行われる分析などは、そのデータパケットの再順序付けを行わない。よって、このように、入力キューの場合のように、個々の出力キューのデータパケットは、それらのタイムスタンプの値によって順序付けられる。
ある実施態様において、キューから取り出す手段は、入力キューから、他の入力キューからパケットを受信していない出力キューだけにパケットをキューから取り出す。その状況において、その入力キューからのダミー・パケットは、すべてのそのような出力キューにコピーすることができる。
別の実施形態では、キューから取り出す手段は、キューから取り出されたデータパケットからタイムスタンプを導出し、ダミー・パケットを生成し、そのダミー・パケットに前記導出したタイムスタンプを提供し、データパケットが少なくとも所定の期間にフォワードされなかった出力キューにそのダミー・パケットをフォワードするのに適応している。
キューから取り出す手段は、それ自体が、信頼できるタイムスタンプを生成することができないので、このことは有利なことである。それによって、例えば、直前にまたは、新しく生成されたダミー・パケットの直後にフォワードされる出力キューにフォワードされるパッケージなど、最近のキューから取り出されたパッケージ(データまたはダミー)から1つをコピーするが、非常に容易になる。当然に、新しく生成されたダミー・パケットのタイムスタンプは、任意の、2、4、6、8、10、あるいは、50の新しくキューから取り出されたパケットのタイムスタンプであることができる。
特定の状況において、1つの入力キューと1つの出力キューを含むキューのペアが存在し、そのペアの前記キューがオーバーラップしておらず、キューから取り出す手段は、ペアの入力キューから取り出されたデータパケットを、ペアの出力キューへフィードするのに適応しており、キューから取り出す手段は、さらに、ペアの入力キューからのいかなるダミー・データパケットをも、ペアの出力キューへフィードするのに適応している。
ペアが重なっていないとは、各々の入力キューと各々の出力キューとが、もしあれば、ただ1つのペアのメンバであることを意味する。
次に、ペアの入力キューから取り出されるデータパケットとダミー・パケットとは、そのペアの対応する出力キューに供給することができる。また、パケット・ドロッピングは許されるので、入力キューと、出力キューとのパケットの間で、完全な通信である必要はない。しかし、ペアの出力キューにおけるパケットの順位付けは、ペアの入力キューでの順位付けと同じである。
一般に、システムが、更に、出力キューからデータパケットとダミー・パケットをキューから取り出すための、出力キューから取り出す手段を備えるとき、出力キューのダミー・パケットの使用が興味深い。この出力キューから取り出す手段は、前記出口端部/出力格納位置に表されており、すべての出力キューの前記出口端部/格納位置において、すべてのパケットのなかで最も低いタイムスタンプを有するパケットをキューから取り出すのに適応している。この出力キューから取り出す手段は、各々の出力キューが1つ以上のパケットを有するとき、1つのパケットをキューから取り出すだけであるのに適している。
したがって、出力キューの内容(ドロップされたパケットはどんなものでも別として)が入力キューの内容と同一でありえるとき、また、キューから取り出すことが同様に起こるとき、同一のHOLブロッキングが見られる。しかしながら、これは、出力キューに、実際にそうでなければ要素が入っていない出力キューにフィードされるダミー・パケットによって自動的に防止される。
この状況において、出力キューをキューから取り出すことは、そのキューからの取り出しを、出力キューのサブグループの中で実行することができることにおいて異なっている。ここで、1つのサブグループのキューからの取り出しは、別のサブグループのものから独立していることができる。これは、出力キューの異なるサブグループが、異なる出力、例えば、異なる受信手段など、にキューから取り出される場合の状況である。
当然に、ダミー・パケットは、入力キューに関するのと同様に、出力キューにキューから取り出されたパケットを供給するためにどのような戦略/プランが使用されるかにかかわりなく、これらが時間順に、実際にフィードされるかどうかにかかわらず、いかなる出力キューに対しても生成することができる。次に、キューから取り出されたデータパケットを、取り出す、および/または、分析するいかなるプロセッサーでも、例えば、先に述べたように、別のパケットのタイムスタンプをコピーすることによって、ダミー・パケットを生成することができる。代替的に、要求される場合には、別々のユニットあるいは要素を、出力キューをモニターして、ダミー・パケットを生成するために使用することができる。
本願発明の第2の態様は、データを受信しフォワードする方法であって、
− 複数のデータパケットを受信し、受信したデータパケットの個々にタイムスタンプを提供するステップと、
− 各々が出口端部あるいは格納位置を有している、複数のFIFO入力キューの1つ以上において、各々の受信したデータパケットを示すステップと、
− 入力キューからデータパケットを取り出すステップであって、すべての入力キューの出口端部/ストレージ位置において、すべてのパケットで最も低いタイムスタンプを有するパケットをキューから取り出すことを含み、キューから取り出すことは、各々の入力キューが1つ以上のパケットを有するときにのみ実行されるだけである、ステップと、を含み、前記方法は、さらに、データパケットが所定の期間に前記関連入力キューにフォワードされなかったときに、入力キューにタイムスタンプでダミー・パケットを伝送することを含む、方法、に関するものである。
通常は、受信ステップは、データ・ケーブルまたはリンクからデータパケットを受信することを含む。このデータ伝送は、いかなる望ましいプロトコル、いかなる望ましい技術、例えば、無線(ブルートゥース、WLAN、WAN、赤外線通信、その他)や有線(イーサネット(登録商標)など)その他、を用いてでも、実行することができる。
タイムスタンピングは、局所クロックまたは受信されたクロック信号に基づくことができる。
表現するステップは、キューにデータパケットまたはその部分を実際にフォワードすることを含むことができる。代替的に、バーチャルなキューは、どこかほかに格納することができるパケットの識別子を受信するだけに使用することができる。
同様に、キューから取り出すステップは、キューが実際にデータパケットを保持し、
データパケットが、キューから取り出した後にどこかほかで要求される状況において、キューからデータパケットを実際に読み出すこと/削除することを含むことができる。代替的に、パケットをキューから取り出すことは、キューの中のパケットの識別子の削除においてバーチャルでありえる。
このキューは、例えば、データパケットをキューから取り出すところの循環リストにおいて、実装することができる。または、その識別子は、例えば、このデータパケットまたは識別子が他のデータでその後の上書きされるように、キューにおいて占有されている位置と空いている位置との境界を意味するポインターなど単に位置の変更であることがありえる。
キューから取り出すステップは、単にデータパケットを読み出し、次に、廃棄するだけであることを含むことができる。代替的に、このキューから取り出されたデータパケットを、キューから取り出す手段により出力し、あるいは、さらに分析することができる。この手段は、プロセッサー、サーバ、プロセッサー・クラスタ、その他のあらゆるタイプのものであってもよい。次に、キューから取り出す手段は、要求されるタスクを実行することができるために、それ自身のストレージ等を有することができる。
送信するステップは、センター送信を含むことができ、それによって、単一の生成手段だけを要求することもでき、または、複数の生成手段を提供することもできる。1つの状況において、生成手段は、各々の受信手段において提供される。その状況において、複数の受信手段が、受信されたデータパケットを同一のキューに送るのに適合している場合には、所定の期間、複数の受信手段からパケットを受け取っていない場合には、複数のダミー・パケットは、キューにフォワードすることができる。これは、しかしながら、キューから取り出す手段は、ダミー・パケットを廃棄することができること、および、ダミー・パケットの送信が制限ファクターとはならいないように、そのキューへのデータパケットの欠如が、帯域幅を自動的に提供すること、における問題である必要はない。
ある実施態様において、受信するステップは、複数の物理的に別々の受信回路が、各々、複数のデータパケットを受信することと、および、タイムスタンプを、個々の受信したデータパケットのために/に対して提供することと、を含む。次に、各々の受信回路は、入力キューは、所定の期間の間データパケットを受信しなかったという事実のそれ自身の決定に基づくか、あるいは、例えば、その決定を実行したスケジューラーによって指示されるように、ダミー・パケットを送るステップを実行することができる。このスケジューラーを、複数の受信手段から同一の入力キューへのデータパケットが正しい順序でフォワードされることを確実にするために、使用することもできる。また、別々の受信回路各々は、クロックを有することができる。その状況において、クロックが同期されていることが望ましい。そのようなクロックの同期は、当業者に知られている。
この点で、各々の受信手段が、ダミー・パケットを、受信手段が識別子/データパケットにフィードするのに適している少なくともキューに送信するのに適合していることが望まれる。
ある実施態様において、前記キューから取り出すステップは、ダミー・パケットを廃棄することを含む。このように、これらのダミー・パケットまたはその中のいかなる情報も後に要求されない場合には、帯域幅は、キューからの取り出しにおいて、あるいは、後のフォワーディングまたは分析において、節約される。
ある実施態様において、キューから取り出すステップは、その入力キューから1つ以上のFIFO出力キューまでキューから取り出されたデータパケットをフォワードすることを含み、入力キューから取り出された順番に、各々が出口端部または出力格納位置を有している。
この状況において、キューから取り出す手段は、所定の期間の間パケットを受信しなかった出力キューにフォワードされるダミー・パケットを生成することができる。この状況において、キューから取り出しているステップは、キューから取り出されたデータパケットからタイムスタンプを導出することと、ダミー・パケットを生成することと、前記ダミー・パケットに前記導出したタイムスタンプを提供することと、データパケットが少なくとも所定の期間にフォワードされなかった出力キューに前記ダミー・パケットをフォワードすることと、を含むことができる。
その実施形態において、1つの入力キューと1つの出力キューを含むキューのペアが存在し、そのペアの前記キューがオーバーラップしておらず、キューから取り出すステップは、ペアの入力キューから取り出されたデータパケットを、ペアの出力キューへフィードすることを含み、キューから取り出すステップは、付加的に、そのペアの前記入力キューからのいかなるダミー・データパケットをも、そのペアの出力キューへフィーディングすることを含む、ことも、また、好ましい。
1つの入力キューからのパケットが、出力キューに取り出され、他の入力キューからパケットを受信していない状況において、入力キューからのダミー・パケットを、すべてのそのような出力キューにコピーすることができる、ことに留意する。
次に、この方法は、更に、前記出口端部/出力格納位置に表されており、パケットをキューから取り出すことによって、および、すべての出力キューの前記出口端部/格納位置において、すべてのパケットのなかで最も低いタイムスタンプを有することによって、前記出力キューからのデータパケットおよびダミー・パケットをキューから取り出すステップを含むことができる。出力キューからデータパケットをキューから取り出すこのステップは、各々の出力キューが1つ以上のパケットを有するときにのみ実行されるだけである。
以下において、本願発明の好適な実施形態が、図面を参照して記述される。
図1は、本願発明による、好適な実施形態を図示する。
図1において、システム10が、図示される。いくつかのアナライザ12、14、16が、例えば、ネットワーク、WWWやその他、あらゆるソースからのデータパケットを受信する。
アナライザ12/14/16は、これらのデータパケットにタイムスタンプを押し、各々のデータパケットまたはその少なくとも部分を、バス18を介して、キュー32/34/36の1つ以上に、フォワードする。パケット(またはその一部分)は、そのタイムスタンプで、キューで格納される。
タイムスタンプはデータパケットに提供する、あるいは、データパケットと一緒に送信することができる。ただし、データパケットの中ではない。
データパケットをキューにタイムスタンプでデータパケットのIDをフォワードして、実際に、伝送/コピーをしないときに、同一の機能が得られることに留意する。
キュー32/34/36から、データパケット(またはその部分)38は、これらのパケット(またはその部分)のいかなる所望の分析を実行することができるプロセッサー40により、キューから取り出され、必要に応じてこれらを出力する。
アナライザ12/14/16のデータパケットのタイムスタンピングが、アナライザにおいて、同期した個々のクロック(図示されない)を使用して実行される。代替的に、グローバルなクロック信号は、アナライザ12/14/16にフォワードすることができ、または、組合せが好まれる。
本願の実施形態において、プロセッサー40は、それらが受信され、タイムスタンプされた同一の時間順でデータパケット38を受信し/キューから取り出すことが望ましい。
これを確実にするために、プロセッサー40は、キュー32/34/36から、最も低いタイムスタンプを有するパケットを取り出すが、しかし、少なくとも1つのパケットが各々のキュー32/34/36に存在するときに、パケットをキューから取り出すだけである。
したがって、各々のアナライザ12/14/16が、それがそのキュー32/34/36にデータパケット(またはその部分)をフォワードしたときに、各々のキュー32/34/36に対して、追跡し、
また、所定の期間を越えた場合には、その送信の時点に対応するタイムスタンプを有するそのキューに、ダミー・パケットDがフォワードされる。
アナライザ12/14/16がスケジューラー20に、どのキュー32/34/36に、パケットとそのタイムスタンプを送信したいのかを知らせる場合には、個々のキュー32/34/36でパケット38/Dの順位付けを確実にするために、スケジューラー20を使用することができる。この後に、スケジューラー20は、アナライザ12/14/16に指示することによって、パケット38/Dを仲裁し、正しい順序でキュー32/34/36にパケット38/Dをフィードするように命令することができる。
単純な実施形態において、各々のアナライザ12/14/16は、データパケットを1つまたはキュー32/34/36のいくつかだけに送信し、および、異なるアナライザ12/14/16は、データパケットを異なるキューに送る。次に、スケジューラー20は、必要でなく、バス18は、アナライザ12/14/16から関係するキュー32/34/36への個々のデータ接続と、置き換えることができる。
ダミー・パケットを用いて、システムのどんなヘッド・オブ・ライン・ブロッキングでも所定の期間の間持続するだけであることが確実とされ、結局、キュー(以前のタイムスタンプを有する)のパケットがキューから取り出すことができる。キュー32/34/36が、例えば、複数のアナライザ12/14/16からの、いくつかのダミー・パケットDを有する場合、これらのパケットDが正しい順序でキューから取り出されて、ヘッド・オブ・ライン・ブロッキングを防止して、キュー32/34/36と、そして、一方の側で、アナライザ12/14/16との間、他の側で、プロセッサー40との間で、リンクに過剰な帯域幅を占有しないので、これは、これらのリンクが可能な限り充分な帯域幅を持つことが好適にはできなければならないという点で、また、ダミー・パケットDの存在は、これらのキュー32/34/36にフォワードされるパケットの数が少ないというサインであるという点で、問題を含まない。
したがって、キューからの取り出しのこのタイプにおけるダミー・パケットの使用は、アナライザ12/14/16からキュー32/34/36への、例えば、バス18の上になどのディレーにおける相違を考慮する助けとなる。また、アナライザ12/14/16(タイムスタンピングの後)のディレーが考慮される。
代替的なソリューションは、スケジューラー20自身が、ダミー・パケットを生成して、要素が入っていない入力キュー32/34/36にフォワードする、あるいは、アナライザ12/14/16、ビジーでないアナライザに、そうするように指示するというものである。
当然に、プロセッサー40は、帯域幅をこれらの処理に費やさないために、ダミー・パケットDを廃棄することができる。しかし、プロセッサー40からキューから取り出されたデータパケット38も出力することが望ましい場合には、実際に、プロセッサー40を通して、これらのダミー・パケットDをフィードすることが望ましいことがありえる。
プロセッサー40が、到着(タイムスタンプ)の順序でデータパケット38をキューから取り出すときに、1つ以上の出力キュー52/54/56に、同一の順序で、データパケットを出力することができる。
これらの出力キュー52/54/56は、例えば、入力キュー32/34/36と同じストレージなど、共通ストレージに配置することができ、および/または、それらは、アナライザ12/14/16において、提供することができる。ある実施態様において、小さなキューが、アナライザで提供され、より大きいキューが、データパケットが、そのアナライザにおけるそれらにフィードされるところから、アナライザからデータパケットを出力する前に、キューから取り出しが起こるところから、別のストレージにおいて提供される。次に、1つのアナライザの内でキューから取り出すことは、別のアナライザの内でキューから取り出すことから独立している。
入力キュー32/34/36における状況のように、専用リンクを、プロセッサー40とキュー52/54/56の間で使用することができる。あるいは、スケジューラー20に類似したスケジューラーを使用しているバス18に対応するバス、またはスケジューラー20を使用しているバス18を介して、使うことができる。
次に、データは、同様に、出力バッファから、キューから取り出すことができる。すなわち、キューが空でないならば、パケットは、キューから取り出されるだけである。最も低いタイムスタンプを有するデータパケットが、キューから取り出される。このレベルにおいて、ダミー・パケットDは通常廃棄される。
1つの状況において、ペアの入力バスから受信されるパケット38/Dが、ペアの出力バスへの出力であるように、入力バス32/34/36と出力バス52/54/56のペアの間に対応関係が存在する。その状況において、ダミー・パケットDは再利用することができる。すなわち、プロセッサーを通して、出力ポートにフィードすることができる。つまり、入力ポートにおいてキューを満たすパターンが、出力ポートに複製される。
特定の実施形態において、アナライザのデータ出力12/14/16は、受信されたものと同一であることが望ましい。これは、データパケット出力の順序が、そのデータパケット入力の順序と同一であることを意味する。当然に、プロセッサーその他のものが、あまりにビジーとなったが、しかし、出力されるパケットは、受信の順序で、順序付けられる場合には、データパケットをドロップすることができる。
この実施形態は、システムが「透明」、すなわち、パケットを出力し/受信しているコンピュータが、パケットがインターセプトされて、分析されていることを確認することができないような用途のためでありえる。
より一般的な実施形態においては、プロセッサー40は、いかなる出力キュー52/54/56に対しても、分析されたデータパケット38をフォワードすることに決めることができるように、入力キューと出力キューとの間の対応関係がない。この実施の形態では、好適には。プロセッサー40は、入力キュー32/34/36から取り出されたダミー・パケットDを廃棄する。しかし、新しいダミー・パケットDを、出力キュー52/54/56で使用するために生成する。
同様に、すなわち、プロセッサー40が、所定の期間に、キューにデータパケット38をフォワードしなかった場合には、ヘッド・オブ・ライン・ブロッキングを防止するために、ダミー・パケットDが、そのキューにフィードされる。この新しいダミー・パケットは、別の最近キューから取り出されたか処理されたパケットからコピーされたタイムスタンプを有することができる。
次に、出力キュー52/54/56のパケット38/Dは、時間順でキューから取り出すことができ、
ダミー・パケットDを廃棄することができ、データパケット38を、いかなる所望の方法で出力することができる。
入力キューからのパケットが、他の入力キューからパケットを受信していない出力キューにフォワードされる特別なケースでは、入力キューからのダミー・パケットを、すべてのそのような出力キューにコピーすることができる。
当然に、個々のキューは、いかなる適切な方法によって具体化することができる。特に、入力キューと出力キューのペアが形成される実施形態において、単一のメモリを、ペアの両方のキューを形成するのに用いることができる。このメモリは、キューのすべてのデータ/ダミー・パケットを保持する循環メモリでありえる。ここで、ポインターが、どのパケットが入力キューにあるか、どのパケットが出力キューにあるか、および、循環メモリのどの格納場所が空であるか、を記述するために使用される。たがって、入力キューからプロセッサー40へ、データパケットを取り出すステップは、プロセッサー40へのデータパケットの送信である、あるいは、プロセッサー40が、単にデータパケットをメモリにおける読み出しであることがあり得る。また、プロセッサー40から出力キュー52/54/56へのデータパケットの「フィーディング」は、したがって、メモリの中で、単純に、データパケットを動かす、あるいは、さらに、より単純に、データパケットが出力キューの現在の部分であることを示すために、その中のポインターをリダイレクトするために、そのメモリまたはコントローラへの命令の送信であることがありえる。
当然に、任意数のキューを、そのプロセッサーまたは各々のプロセッサーに対して使用することができる。そのようなキューはまた、優先付けされ、あるいは、異なる優先度または内容を有するデータパケットが、異なるキューにフィードされるかもしれない。したがって、混雑が見られる場合には、単にパケット38を、優先度の低いキューまたは特定のキューに送られるタイプのデータパケットにドロップすることができる。これは、時間順序づけを破壊せず、帯域幅要求を減らし、したがって、混雑を解消する。
ある実施態様において、各々が、(32/34/36に対応する)自身の入力キューを有するマルチプロセッサーが使用される。それはスケジューラー20を使用して、バス18を介して、必要に応じて、専用リンクを介して、アナライザ12/14/16または他のアナライザ(図示されない)からフィードされても、フィードされなくてもよい。この状況において、マルチプロセッサーは、分析されたパケットを廃棄するか、または、(キュー52/54/56に対応する)出力キューに、スケジューラー20に類似したスケジューラーを用いているバス18に対応したバスを介して、または、スケジューラー20を使用しているバス18を介して、データパケットをフィードすることができる。各々のプロセッサーは、他のプロセッサーがパケットを出力しないキューにデータパケットを出力することができる。または、マルチプロセッサーは、同一のキューにパケットを出力することができる場合がある。
当然に、アナライザ12/14/16は、まったくパケットを分析する必要はない。代替的に、
それらは、いかなる望ましい分析をし、データパケットに、後の使用のために、実行されたいかなる分析あるいはその結果に関連する情報を追加することができる。代替的に、その情報/結果は、データパケットによって、そして、その中でではなくフォワードすることができる。
1つの状況において、プロセッサー40は、データパケットの分析を実行することができる。この分析は、例えば、同一のデータ・フローに関係する一群のデータパケットの分析など、いかなる望ましい分析であることができる。この分析は、アナライザ12/14/16で実行される前処理に関連する、および、データパケットにより、または、その中で提供されるどんな情報にでも基づくことができる。
別の状況において、プロセッサーは、単にデータパケットをキューから取り出すだけで、その他の機能を有せず、したがって、単にキューから取り出されたパケット(廃棄されない場合には、データパケット38とダミー・パケットD)を、キューから取り出す上記の方法によって得られる時間順で出力する動作だけを行う。
現在のタイムスタンピングと時間情報は、時間のいかなる望ましい表現に基づくことができることに留意する。時間は、外界から受信されるリアルタイムであってもよく、あるいは、システムにより用いられる局所時間であってもよい。時間は絶対時間であっても、相対時間であってもよい。
好適には、時間は相対的であり、予め定められた整数範囲の中で整数により表される。最大値に達したとき、この整数はラップアラウンド(回り込み)する。この整数は、データパケットの受信の最大頻度に関して適切に選択された所定の頻度で、定期的にインクリメントされる。それは、データパケットの受信のデータ・レートまたは帯域幅、および、最小データパケット・サイズを意味する。2つのパケットを、同一のタイムスロット内で、同一のアナライザ12/14/16が受信することができないことが望ましい。

Claims (14)

  1. 複数のデータパケットを受信して、受信したデータパケットごとにタイムスタンプを提供するための受信手段と、
    各々が出口端部または出力格納位置を有している、複数のFIFO入力キューと、
    前記受信したデータパケットの部分が前記複数のFIFO入力キューの1つにおいて前記受信したデータパケットを示すように、受信したデータパケットをFIFO入力キューにフォワードするフォワーディング手段と、
    前記FIFO入力キューからデータパケットを取り出す手段であって、
    該手段は、前記FIFO入力キューの出力端部または出力格納位置において示されるデータパケットであって、すべての前記FIFO入力キューにおける出口端部または格納位置におけるすべてのデータパケットのうちで最も低いタイムスタンプを有しているデータパケットをキューから取り出すのに適しており、
    前記キューから取り出す手段は、各前記FIFO入力キューが1つ以上のデータパケットを有するときにのみ、1つのデータパケットをキューから取り出すのに適応している、手段と、を備え、
    更に、データパケットが所定の期間に、あるFIFO入力キューにフォワードされなかったときに、該FIFO入力キューに、タイムスタンプを有するダミー・パケットを伝送する伝送手段を備える、システム。
  2. 受信手段は、複数の物理的に別々の受信回路を備え、
    各々が、複数のデータパケットを受信し、受信したデータパケットごとにタイムスタンプを提供するのに適合しており、
    各々の受信回路が生成手段を備える、請求項1に記載のシステム。
  3. 前記取り出す手段は、ダミー・パケットを廃棄するのに適応している、請求項1または2に記載のシステム。
  4. 各々が出口端部または出力格納位置を有している複数のFIFO出力キューを更に備え、
    前記取り出す手段は、前記FIFO入力キューから取り出されたデータパケットを、前記FIFO入力キューから取り出された順番に、1つ以上のFIFO出力キューまでフォワードするのに適応している、請求項1ないし3のいずれか1項に記載のシステム。
  5. 前記取り出す手段は、キューから取り出されたデータパケットからタイムスタンプを導出し、
    ダミー・パケットを生成し、
    前記ダミー・パケットに前記導出したタイムスタンプを提供し、
    データパケットが少なくとも所定の期間にフォワードされなかったFIFO出力キューに前記ダミー・パケットをフォワードするのに適応している、請求項4に記載のシステム。
  6. 1つのFIFO入力キューと1つのFIFO出力キューを含むキューのペアが存在し、
    該ペアの前記キューがオーバーラップしておらず、
    前記キューから取り出す手段は、ペアの前記FIFO入力キューから取り出されたデータパケットを、前記ペアの前記FIFO出力キューへフィードするのに適応しており、
    前記取り出す手段は、さらに、前記ペアの前記FIFO入力キューからのいかなるダミー・データパケットをも、前記ペアの前記FIFO出力キューへフィードするのに適応している、請求項4に記載のシステム。
  7. 前記FIFO出力キューからデータパケットとダミー・パケットをキューから取り出すための、FIFO出力キューから取り出す手段をさらに含み、
    前記FIFO出力キューから取り出す手段は、FIFO出力キューの前記出口端部または格納位置にあり、
    すべてのFIFO出力キューの前記出口端部または格納位置において、すべてのデータパケットのなかで最も低いタイムスタンプを有するデータパケットを取り出すのに適しており、
    前記取り出す手段は、各々のFIFO出力キューが1つ以上のデータパケットを有するとき、1つのデータパケットをキューから取り出すだけであるのに適している、請求項6に記載のシステム。
  8. データを受信しフォワードする方法であって、該方法は、
    複数のデータパケットを受信するステップであって、受信したデータパケットの個々にタイムスタンプを提供するステップと、
    前記受信したデータパケットの部分が前記複数のFIFO入力キューの1つにおいて前記受信したデータパケットを示すように、各々が出口端部または出力格納位置を有している、FIFO入力キューで受信したデータパケットをFIFO入力キューにフォワードするステップと、
    前記FIFO入力キューからデータパケットをキューから取り出すステップであって、
    該ステップは、前記FIFO入力キューにおける出力端部または出力格納位置において示されるデータパケットであって,すべての前記FIFO入力キューにおける出口端部または格納位置におけるすべてのデータパケットのうちで最も低いタイムスタンプを有しているデータパケットをキューから取り出すのに適しており、
    該ステップは、各前記FIFO入力キューが1つ以上のデータパケットを有するときにのみ1つのデータパケットを取り出すのに適している、ステップと、を含み、
    前記方法は、さらに、データパケットが所定の期間に、あるFIFO入力キューにフォワードされなかったときに、該FIFO入力キュー、タイムスタンプを有するダミー・パケットを伝送することを含む、方法。
  9. 前記受信するステップは、複数の物理的に別々の受信回路が、各々、複数のデータパケットを受信することと、タイムスタンプを、個々の受信したデータパケットに対して提供することと、を含み、
    各々の受信回路は、ダミー・パケットを送るステップを実行することができる、請求項8に記載の方法。
  10. 前記取り出すステップは、ダミー・パケットを廃棄することを含む、請求項8および9のいずれか1項に記載の方法。
  11. 前記取り出すステップは、前記FIFO入力キューから取り出されるデータパケットを、複数のFIFO出力キューの1つ以上にフォワーディングすることを含み、
    各々が、前記FIFO入力キューから取り出された順番に、出口端部または出力格納位置を有している、請求項8ないし10のいずれか1項に記載の方法。
  12. 前記取り出すステップは、取り出されたデータパケットからタイムスタンプを導出することと、
    ダミー・パケットを生成することと、
    前記ダミー・パケットに前記導出したタイムスタンプを提供することと、
    データパケットが少なくとも所定の期間にフォワードされなかったFIFO出力キューに前記ダミー・パケットをフォワードすることと、ことを含む、請求項11に記載の方法。
  13. 1つのFIFO入力キューと1つのFIFO出力キューを含むキューのペアが存在し、
    該ペアの該FIFO入力キューと該FIFO出力キューとがオーバーラップしておらず、
    前記取り出すステップは、前記ペアのFIFO入力キューから取り出されたデータパケットを、前記ペアの前記FIFO出力キューへフィーディングすることを含み、
    前記取り出すステップは、付加的に、そのペアの前記FIFO入力キューからのいかなるダミー・データパケットをも、そのペアのFIFO出力キューへフィーディングすることを含む、請求項11に記載の方法。
  14. FIFO出力キューの前記出口端部または格納位置にあり、すべてのFIFO出力キューの前記出口端部または格納位置において、すべてのデータパケットのなかで最も低いタイムスタンプを有するデータパケットを取り出すことによって、前記FIFO出力キューからのデータパケットおよびダミー・パケットを取り出すステップ、をさらに含み、
    FIFO出力キューからデータパケットを取り出す前記ステップは、各々のFIFO出力キューが1つ以上のデータパケットを有するときにのみ実行されるだけである、請求項13に記載の方法。
JP2013546697A 2011-01-04 2011-12-27 データを受信しフォワードするための装置および方法 Active JP6266982B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201161429663P 2011-01-04 2011-01-04
US61/429,663 2011-01-04
PCT/EP2011/074096 WO2012093056A1 (en) 2011-01-04 2011-12-27 An apparatus and method for receiving and forwarding data

Publications (3)

Publication Number Publication Date
JP2014504817A JP2014504817A (ja) 2014-02-24
JP2014504817A5 JP2014504817A5 (ja) 2017-08-10
JP6266982B2 true JP6266982B2 (ja) 2018-01-24

Family

ID=45446045

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013546697A Active JP6266982B2 (ja) 2011-01-04 2011-12-27 データを受信しフォワードするための装置および方法

Country Status (8)

Country Link
US (1) US9246850B2 (ja)
EP (1) EP2661845B1 (ja)
JP (1) JP6266982B2 (ja)
KR (1) KR20130135894A (ja)
CN (1) CN103283193B (ja)
BR (1) BR112013017245A2 (ja)
DK (1) DK2661845T3 (ja)
WO (1) WO2012093056A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10445828B2 (en) * 2013-03-20 2019-10-15 Sagar Dinesh Chheda Method and system for generating stock price alerts based on real-time market data
KR101446441B1 (ko) 2013-08-31 2014-10-06 김태준 타임스탬프 값 조정에 의한 차별적 패킷 손실을 지원하는 가중치 기반 공정 패킷 스케줄링
US10885583B2 (en) * 2013-12-19 2021-01-05 Chicago Mercantile Exchange Inc. Deterministic and efficient message packet management
EP3217614B1 (en) * 2016-03-09 2018-09-19 Mitsubishi Electric R&D Centre Europe B.V. Multiplexing method for scheduled frames in an ethernet switch
KR102643187B1 (ko) * 2017-03-08 2024-03-05 히타치 에너지 리미티드 시간 인식 엔드-투-엔드 패킷 흐름 네트워크들에 사이버 보안을 제공하기 위한 방법들 및 디바이스들
US20190155645A1 (en) * 2019-01-23 2019-05-23 Intel Corporation Distribution of network traffic to processor cores
CN111147573A (zh) 2019-12-24 2020-05-12 网宿科技股份有限公司 一种数据传输的方法和装置

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3979733A (en) * 1975-05-09 1976-09-07 Bell Telephone Laboratories, Incorporated Digital data communications system packet switch
JPH05207062A (ja) * 1992-01-27 1993-08-13 Nec Corp パケット交換方式
US5870396A (en) * 1996-12-31 1999-02-09 Northern Telecom Limited Output queueing in a broadband multi-media satellite and terrestrial communications network
FI104671B (fi) 1997-07-14 2000-04-14 Nokia Networks Oy Kytkentäkenttäjärjestely
US6389031B1 (en) * 1997-11-05 2002-05-14 Polytechnic University Methods and apparatus for fairly scheduling queued packets using a ram-based search engine
US6088734A (en) * 1997-11-12 2000-07-11 International Business Machines Corporation Systems methods and computer program products for controlling earliest deadline first scheduling at ATM nodes
US6091709A (en) * 1997-11-25 2000-07-18 International Business Machines Corporation Quality of service management for packet switched networks
US6072772A (en) * 1998-01-12 2000-06-06 Cabletron Systems, Inc. Method for providing bandwidth and delay guarantees in a crossbar switch with speedup
JP3228708B2 (ja) 1998-04-03 2001-11-12 パイオニア株式会社 伝送システムにおける受信インターフェース装置
US6459708B1 (en) * 1999-12-21 2002-10-01 Toledo Communications, Inc. Apparatus and method for providing T1/E1 telecommunications trunks over IP networks
KR100459036B1 (ko) * 2001-12-18 2004-12-03 엘지전자 주식회사 에이티엠 스위치 시스템의 트레인 패킷 구성 방법
US7236495B2 (en) * 2002-10-25 2007-06-26 Alcatel Lucent Calendar heap system and method for efficient sorting
US7415540B2 (en) * 2002-12-31 2008-08-19 Intel Corporation Scheduling processing threads
FR2854296A1 (fr) * 2003-04-24 2004-10-29 France Telecom Procede et dispositif pour differenciation implicite de la qualite de service dans un reseau
US20050281277A1 (en) * 2004-06-22 2005-12-22 Killian Thomas J Establishing traffic priorities in a voice over IP network
US8265091B2 (en) * 2004-08-18 2012-09-11 Avaya Inc. Traffic multiplexing using timestamping
JP5192378B2 (ja) * 2005-08-04 2013-05-08 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Pet用のモジュール式信号処理バックボーン
JP4547339B2 (ja) * 2006-01-30 2010-09-22 アラクサラネットワークス株式会社 送信制御機能を備えるパケット中継装置
JP4842075B2 (ja) * 2006-09-28 2011-12-21 京セラ株式会社 音声伝送装置
US7802032B2 (en) * 2006-11-13 2010-09-21 International Business Machines Corporation Concurrent, non-blocking, lock-free queue and method, apparatus, and computer program product for implementing same
US20090097848A1 (en) * 2007-10-12 2009-04-16 Sasak Anthony L Sharing value of network variables with successively active interfaces of a communication node
US8934890B2 (en) 2008-01-11 2015-01-13 Texas Instruments Incorporated Transmission of data bursts on a constant data rate channel
US8121128B2 (en) * 2008-02-26 2012-02-21 Qualcomm Incorporated Method and apparatus for link control in a wireless communication system
CN101674174B (zh) * 2008-09-12 2013-06-05 华为技术有限公司 一种提高时钟稳定度的方法及设备
US7953004B2 (en) * 2009-01-06 2011-05-31 Alcatel Lucent Minimizing effects of packet delay variation in time-division multiplexing pseudowire services
US20120008573A1 (en) * 2010-07-08 2012-01-12 Apple Inc. Radio resource signaling during network congestion in a mobile wireless device

Also Published As

Publication number Publication date
CN103283193B (zh) 2016-01-13
BR112013017245A2 (pt) 2016-10-25
CN103283193A (zh) 2013-09-04
US20130279509A1 (en) 2013-10-24
EP2661845B1 (en) 2014-08-13
WO2012093056A1 (en) 2012-07-12
US9246850B2 (en) 2016-01-26
JP2014504817A (ja) 2014-02-24
DK2661845T3 (da) 2014-11-10
KR20130135894A (ko) 2013-12-11
EP2661845A1 (en) 2013-11-13

Similar Documents

Publication Publication Date Title
JP6266982B2 (ja) データを受信しフォワードするための装置および方法
JP2014504817A5 (ja)
JP5795592B2 (ja) 中央制御装置により制御されるデータパケットを受信し記憶する装置および方法
JP5816301B2 (ja) データパケットを受信及び転送する装置及び方法
US10560383B2 (en) Network latency scheduling
KR101738620B1 (ko) 시간 스탬핑 및 중앙 제어기를 사용한 복수의 어댑터들에 의한 데이터 프레임들의 분산 처리
US8588242B1 (en) Deficit round robin scheduling using multiplication factors
US20140317220A1 (en) Device for efficient use of packet buffering and bandwidth resources at the network edge
JP2015076889A (ja) 航空機用データ通信ネットワーク
CN103873550A (zh) 用于ecu和/或测量设备之间的数据传输的方法
CN112804157A (zh) 可编程的拥塞控制
US9667722B2 (en) Method and system for non-tagged based latency calculation
JP5814253B2 (ja) 装置、アセンブリ及びデータパケットの読み出し及び順番付けをする複数の解析手段を操作する方法
WO2012163395A1 (en) An apparatus and a method of parallel receipt, forwarding and time stamping data packets using synchronized clocks
US11310164B1 (en) Method and apparatus for resource allocation
JP5183460B2 (ja) パケットスケジューリング方法および装置
WO2011067404A1 (en) An apparatus and a method of parallel receipt, forwarding and time stamping data packets using synchronized clocks
WO2019227153A1 (en) Method and system for prioritizing network traffic data units

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150909

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150915

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20160609

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20170628

R150 Certificate of patent or registration of utility model

Ref document number: 6266982

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250