(57)【特許請求の範囲】
【請求項１】
ノードが受信したデータストリームを処理する方法であって：
複数のマーカーパケットを時間間隔をおいて前記データストリームに挿入するステップであって、各マーカーパケットは、該マーカーパケットが挿入された時間を表す第１のタイムスタンプより成るところのステップ；
前記データストリーム中の複数のデータパケットのそれぞれが当該ノードに入った時間を表す第２のタイムスタンプで、該複数のデータパケットのそれぞれをマーキングするステップ；及び
少なくとも１つのデータパケットについて、現在のシステム時間と、該少なくとも１つのデータパケットの前に前記データストリームに挿入された最新の前記マーカーパケットの前記第１のタイムスタンプと該少なくとも１つのデータパケットに挿入された前記第２のタイムスタンプとに基づいて、該少なくとも１つのデータパケットが当該ノードに滞在した時間の推定値を算出するステップ；
を有する方法。
【請求項２】
前記第１のタイムスタンプが前記第２のタイムスタンプより多くのビット数を有する；
ことを特徴とする請求項１記載の方法。
【請求項３】
データストリームを受信するよう動作するノード；及び
前記ノードに結合されるプロセッサ；
を備え、
前記プロセッサは：
複数のマーカーパケットを時間間隔をおいて前記データストリームに挿入するステップであって、各マーカーパケットは、該マーカーパケットが挿入された時間を表す各自の第１のタイムスタンプより成るところのステップ；
前記データストリーム中の複数のデータパケットのそれぞれが当該ノードに入った時間を表す第２のタイムスタンプで、該複数のデータパケットのそれぞれをマーキングするステップ；及び
少なくとも１つのデータパケットについて、現在のシステム時間と、該少なくとも１つのデータパケットの前に前記データストリームに挿入された最新の前記マーカーパケットの前記第１のタイムスタンプと該少なくとも１つのデータパケットに挿入された前記第２のタイムスタンプとに基づいて、該少なくとも１つのデータパケットが当該ノードに滞在した時間の推定値を算出するステップ；
を実行することが可能なデータパケットを処理するシステム。
【請求項４】
受信したデータストリームを処理するノードで実行されるプログラムであって：
当該ノードに読み込まれると、
複数のマーカーパケットを時間間隔をおいて前記データストリームに挿入するステップであって、各マーカーパケットは、該マーカーパケットが挿入された時間を表す各自の第１のタイムスタンプより成るところのステップ；
前記データストリーム中の複数のデータパケットのそれぞれが当該ノードに入った時間を表す第２のタイムスタンプで、該複数のデータパケットのそれぞれをマーキングするステップ；及び
少なくとも１つのデータパケットについて、現在のシステム時間と、該少なくとも１つのデータパケットの前に前記データストリームに挿入された最新の前記マーカーパケットの前記第１のタイムスタンプと該少なくとも１つのデータパケットに挿入された前記第２のタイムスタンプとに基づいて、該少なくとも１つのデータパケットが当該ノードに滞在した時間の推定値を算出するステップ；
を実行するプログラム。
【請求項５】
受信したデータストリームを処理するノードであって：
複数のマーカーパケットを時間間隔をおいて前記データストリームに挿入する手段であって、各マーカーパケットは、該マーカーパケットが挿入された時間を表す各自の第１のタイムスタンプより成るところの手段；
前記データストリーム中の複数のデータパケットのそれぞれが当該ノードに入った時間を表す第２のタイムスタンプで、該複数のデータパケットのそれぞれをマーキングするステップ；及び
少なくとも１つのデータパケットについて、現在のシステム時間と、該少なくとも１つのデータパケットの前に前記データストリームに挿入された最新の前記マーカーパケットの前記第１のタイムスタンプと該少なくとも１つのデータパケットに挿入された前記第２のタイムスタンプとに基づいて、該少なくとも１つのデータパケットが当該ノードに滞在した時間の推定値を算出する手段；
を備えるノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にデータ通信の技術分野に関し、特にマーカーを用いてデータパケットを処理することに関する。
【背景技術】
【０００２】
あるノードでデータパケットを処理するには、一般に、そのデータパケットの年齢を監視する必要がある。データパケットを監視するには、古いデータパケットが待ち行列空間を費やすことを防止すること、及び古い（ｓｔａｌｅ）データが意図されないユーザにより受信されることを防止することを必要とする。データパケットの年齢（新しさ）を監視する既存の技術は、データパケットにタイムスタンプを付けることを含む。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、タイムスタンプに少数のビットが使用されることに起因して、記憶された時間が、そのパケットの年齢とは異なる時間を表現するものとして解釈されるかもしれないので、従来のタイムスタンプ法は、エイリアシング又はロールオーバを招いてしまう虞がある。データパケットに使用するビット数を増やせばロールオーバを軽減できるかもしれないが、必要とする帯域を増やしてしまう。
【課題を解決するための手段】
【０００４】
本発明の一態様によれば、データパケットを処理するステップは、データストリームにマーカーパケット又は印付けパケットを時間間隔をおいて挿入するステップを含む。マーカーパケットの各々は、そのマーカーパケットが挿入された時間を表す各自の第１タイムスタンプを含む。データパケットの年齢の推定は、現在時間システム及び最新のマーカーパケットの各第１タイムスタンプに基づいて算出され、そのマーカーパケットはそのデータパケットの前にデータストリームに挿入されたものである。
【発明の効果】
【０００５】
本発明の一態様によれば、１以上の技術的な利益が得られる。一態様による技術的な利益は、マーカーパケットに長いタイムスタンプを用いることで、データパケットのロールオーバが回避されることである。一態様による別の技術的な利益は、データストリームにマーカーパケットを挿入することで、データパケット年齢の信頼性の高い推定を行ないつつ、帯域の実効的な増加を最小に抑制することである。
【０００６】
本発明による実施態様は、上記の技術的利益の全部又は一部を備えていてもよいし、全く備えていなくてもよい。１以上の他の技術的な利益は、図面、明細書及び特許請求の範囲により、当業者に充分に明確になるであろう。
【発明を実施するための最良の形態】
【０００７】
本発明並びにその特徴及び利益をより完全に理解するために、添付図面に関連して以下の説明が参照される。
【０００８】
本発明の実施例及びその利点は、図１乃至図４を参照することで最良に理解され、各図を通じて同様な参照番号は同様な又は対応する部分に使用される。
【０００９】
図１は、本発明にて使用可能なシステムの一例を示すブロック図である。概して、マーカー５０がデータストリーム１５に挿入され、ノード２０に入るデータパケット４０の年齢が監視される。
【００１０】
図１に示されるように、本実施例では、ノード２０は、時間拘束（ｂｏｕｎｄｅｄ  ｔｉｍｅ）領域２２と、時間非拘束領域２４と、それらに結合されたプロセッサを含む。プロセッサ３０は、データストリーム１５中のデータパケット各々の年齢を計算するために使用されるマーカーパケット５０を生成する。本実施例で使用されているように、「各々」又は「各」は、ある集合のメンバの各々又はある集合の部分集合のメンバの各々を表す。動作時にあっては、ノード２０はデータパケット４０より成るデータストリーム１５を受信する。ノード２０に入ると、各データパケットにタイムスタンプが付される。プロセッサ３０は、マーカー時間スタンプを含むマーカーパケットを生成し、データストリーム１５が非拘束時間領域２４に入る際に、マーカーパケット５０をデータストリーム１５に挿入する。以下に詳細に説明されるように、プロセッサ３０は、マーカータイムスタンプを用いて各データパケットの年齢をモニタする。
【００１１】
拘束時間領域２２は、データストリーム１５を受信し、そのデータストリームを非拘束時間領域２４に転送する。図示の実施例によれば、データパケット４０は、拘束時間領域２２内で一定期間を費やし、その期間は、データパケット４０がノード２０にて生存することが許可された最大許容時間ＴＡよりもしばしば実質的に小さい。
【００１２】
非拘束時間領域２４は、データストリーム１５からデータパケット４０を受信する。一実施例によれば、非拘束時間領域２４は、先入れ先出し（ＦＩＦＯ）待ち行列（明示的には図示せず）のような列の長い（ｄｅｅｐ）データ記憶部を含むが；本発明の範囲から逸脱せずに、他のいかなる適切なデータ格納領域部が使用されてもよい。
【００１３】
プロセッサ３０は、短期的なタイムスタンプ及び長期的なタイムスタンプを生成する。短期的なタイムスタンプはデータパケット４０に挿入され、長期的なタイムスタンプはマーカーパケット５０に挿入される。プロセッサ３０は、各データパケットについて、ｎビットの短期的タイムスタンプを生成する。短期的タイムスタンプは、システムクロックの第ｎの最下位ビットのスナップショットを含む。例えば、短期的なタイムスタンプは、４ビット、８ビット、１２ビットその他短期的なスタンプパケットを搬送するのに適したいかなるビット数でもよい。図示の例では、データパケットのタイムスタンプは４ビットより成る。一実施例では、利用可能な短期的タイムスタンプを与えるのに充分なビット数は、次式（１）に従って算出されてもよい：
【００１４】
【数１】
0004634079.tif 000002
ここで、ＴＡは、データパケットがノード２０で居残ることの可能な時間に対応する最大許容時間を表し、Ｒｅｓは、カウンタが増やす時間周期として定義されるシステム分解能を表現する。例えば、４分の１秒のような所定の分解能Ｒｅｓを用いて、短期的なタイムスタンプビットサイズは、最大許容時間ＴＡの少なくとも２倍を含むことができるように選択されてもよい。一実施例によれば、４ビットの短期的タイムスタンプは、２秒の最大許容時間ＴＡ及び２５０ミリ秒の分解能Ｒｅｓを用いることによって、数式（１）から得られる。本発明の範囲から逸脱せずに、他の任意の最大許容時間ＴＡ及び分解能Ｒｅｓの値が使用されてもよい。
【００１５】
また、プロセッサ３０は、時間を反映するのに十分なビット数を有する長期的なタイムスタンプも生成し、その時間は、マーカーパケットが生成され且つデータストリーム１５に挿入された時間である。一実施例では、各マーカパケット５０は、４０ビットのタイムスタンプを搬送する長期的なタイムスタンプであり、それは、マーカーパケットが生成され且つデータストリーム１５に挿入された時間に対応する現在のシステム時間を反映する。図示の実施例では、本発明の範囲から逸脱せずに、ロールオーバを充分に回避するのに適切ないかなるビット数を使用してもよい。例えば、本発明の範囲から逸脱せずに、長期的タイムスタンプは、４０より多くてもよいし、４０ビットより少なくてもよい。
【００１６】
プロセッサ３０は、マーカーパケットを時間インターバル（時間間隔）をおいてデータストリーム１５に挿入する。プロセッサ３０は、挿入されるマーカーパケット５０が少なくともサイクル毎に１回検出されることを保証するのに充分な時間間隔を決定する。データストリーム１５におけるサイクルは、データパケット４０がノード２０内で残存することが期待されるが、最大許容時間ＴＡを超えない最大時間として定義されてもよい。プロセッサ３０は、少なくとも１つのマーカーパケットをサイクル毎に挿入してもよい。例えば、プロセッサ３０は、最大許容時間ＴＡが２秒であるならば、少なくとも２秒で１つのマーカーパケット５０を挿入する。しかしながら、本発明の範囲から逸脱せずに、サイクルは、より短くてもよい。マーカーパケットの挿入は、図２の（Ａ）及び（Ｂ）に、より具体的に記述されている。
【００１７】
マーカーパケット５０がデータストリーム１５に挿入されると、非拘束時間領域２４は、データストリーム１５を受信し、そこで構築されたデータパケット４０をそれらの優先度に従って処理する。例えば、非拘束時間領域２４は、入力の優先度でパケットを処理するＦＩＦＯキューから構成されてもよい。使用されてもよいＦＩＦＯキューの別の例は制限的再生列ＦＩＦＯであり、それは図３を参照しながら更に説明される。プロセッサ３０は、非拘束時間領域２４に結合され、マーカーパケット５０を検出し、検出したマーカーパケットのタイムスタンプを記憶し、そして非拘束時間領域２４の出口でデータパケットの年齢を計算する。
【００１８】
データストリーム１５が非拘束時間領域２４を出るときに、プロセッサ３０は、データストリーム１５に挿入されたマーカーパケット５０を検出する。図示の例では、プロセッサ３０は、マーカーパケット識別ビットを含むマーカーパケットを利用してマーカーパケット５０を検出する。本発明の範囲から逸脱せずに、マーカーパケットを検出するのに適切な任意の技法がプロセッサで実行されてもよい。プロセッサ３０は、検出されたマーカーパケット５０のタイムスタンプを記憶するように非拘束時間領域２４に指示する。マーカーパケットのタイムスタンプは、非拘束時間領域２４のデータ格納部、ノード２０のメモリ領域その他適切な任意のノード２０のデータ格納部に格納されてもよい。
【００１９】
非拘束時間領域２４を最も最近に出たマーカーパケット５０の記憶済みマーカーパケットタイムスタンプ、データパケットタイムスタンプ及び現在のシステム時間を用いて、プロセッサ３０は、データストリーム１５の各データパケット４０の年齢を計算する。図示の例では、以前に検出したマーカーパケット５０のマーカータイムスタンプに関連して、マーカーパケット５０がノード２０で費やした時間の長さと、データパケット４０がノード２０にいた時間の長さとを判別することで、プロセッサは各データパケット４０の年齢を計算する。これらの判定内容を用いて、プロセッサ３０は、データパケット４０がノード２０にどの程度長く滞在したかを効果的に計算できる。
【００２０】
各データパケット４０の年齢を判別することで、各データパケット４０が非拘束時間領域２４を出て行く際に、プロセッサ３０はデータパケット４０が破棄されるべきか否かを決定してもよい。データパケット４０が出力データストリームに許容されるべきか否か又はデータパケット４０が破棄されるべきか否かを判別するために、プロセッサ３０は、各データパケット４０について計算された年齢を最大許容時間ＴＡと比較する。例えば、データパケット４０の年齢が最大許容時間ＴＡより少ない場合には、プロセッサ３０は、データパケット４０が出力データストリーム５５に許容されてもよいことを決定する。別の例として、計算した年齢が最大許容時間ＴＡに等しい又は超過する場合には、プロセッサ３０は、データパケット４０が破棄されてもよいことを決定する。破棄されたデータパケット４０は、出力データストリーム５５に転送されない。本発明の範囲から逸脱せずに、一実施例によれば、破棄されたデータパケット４０は、ノード２０内のどこかに格納されてもよい。
【００２１】
別の実施例によれば、プロセッサ３０はマーカーパケット５０を非同期方式で挿入してもよい。例えば、作成したマーカーパケット５０がデータストリーム１５に挿入されないかもしれない程度に、非拘束時間領域２４におけるキューが混雑するかもしれない。プロセッサ３０は、輻輳状態が改善されるまで、到来するデータパケット４０をドロップ（ｄｒｏｐ）する又は落としてもよい。キューがマーカーパケット５０を挿入するための容量を有する状況のように、輻輳状態が改善されると、プロセッサ３０は、新たなデータパケット４０をストリーム１５に挿入する前に、現在のシステム時間でマーカーパケット５０を最初に挿入してもよい。非拘束時間領域２４での混雑を処理するために、適切な他のいかなる方法を使用してもよい。例えば、輻輳期間の間に、輻輳状態が改善されるまで、データパケット４０を破棄することに加えて、以前に受信済みのマーカーパケット５０を新たなマーカーパケット５０で上書きしてもよい。
【００２２】
本発明の範囲から逸脱せずに、修正、付加又は省略がシステム１０になされてもよい。例えば、拘束時間領域２２は省略されてもよい。別の例として、いかなる数のデータストリーム１５をも受信するため及びいかなる数の出力データストリーム５５をも出力するために、１以上の非拘束時間領域２４がノード２０に使用されてもよい。更なる別の例として、プロセッサ３０は、ノード２０に含まれてもよいところの、拘束時間領域２２、非拘束時間領域２４及び他のいかなるモジュール、メモリ並びにアプリケーションレイヤに結合されてもよい。更に、ソフトウエアより成る論理、ハードウエア、他の論理、又はそれらの適切な任意の組合せをの内の適切な任意のものを用いて機能が実行されてもよい。
【００２３】
本発明によるマーカーパケットを組み込むデータストリーム１５の例示は、図２（Ａ），（Ｂ）に関して記述される。本発明で使用されてもよい先入れ先出し（ＦＩＦＯ）キュー及び対応するデータストリーム１５の例示は、図３に関して記述される。本発明で使用されてもよいところの、データパケット４０の処理方法例を説明するフローチャートは、図４に関して記述される。
【００２４】
図２（Ａ），（Ｂ）は、本発明によってマーカーパケット５０が挿入されるデータストリーム１５の例を示す。プロセッサ３０は、データストリーム１５の中でマーカーパケット５０を挿入する時間間隔を決定する。本発明の範囲から逸脱せずに、適切な任意数のマーカーパケット５０を含むデータストリーム１５の変形例が使用されてもよい。
【００２５】
図２（Ａ）は、サイクル毎に少なくとも１つのマーカーパケット５０を挿入するデータストリーム例を示す図である。図１を参照しながら説明されたように、プロセッサ３０はサイクル４５毎に少なくとも１回マーカーパケット５０を挿入する。図示の例によれば、サイクル４５は、４つのデータパケット４０と１つのマーカーパケット５０とを含む。
【００２６】
サイクル４５は、より多い又はより少ないデータパケット４０を、及びより多くのマーカーパケット５０を含むように修正されてもよい。例えば、本発明の範囲から逸脱せずに、サイクル４５は、少ないデータパケット４０と多くのマーカーパケット５０を含むように修正されてもよい。
【００２７】
図２（Ｂ）は、サイクル４５ａ，４５ｂ、マーカーパケット５０ａ，５０ｂ、５０ｃ及びデータパケット４０より成る。図１を参照しながら説明したように、プロセッサ３０は複数のマーカーパケット５０をデータストリーム１５に挿入してもよい。図示の例によれば、プロセッサ３０はサイクル４５毎に２つのマーカーパケット５０ａ，５０ｂを挿入し、例えば、マーカーパケット５０ａ，５０ｂがデータストリーム１５のサイクル４５ａにて挿入されてもよい。サイクル４５は最大許容時間ＴＡから構成されてもよい。例えば、最大許容時間ＴＡが２秒であるならば、少なくとも１つのマーカーパケット５０が２秒毎に挿入されてもよい。別の実施例によれば、サイクル４５の時間間隔は、最大許容時間より少なくてもよい。本発明の範囲から逸脱せずに、プロセッサ３０は、適切ないかなる時間間隔を使用してもよい。
【００２８】
図２（Ａ）を参照しながら説明されたように、図２（Ｂ）のデータストリームは、設計内容及び用途に依存して、サイクル４５当たりのデータパケット４０の数を増やすように、サイクル毎のマーカーパケット４５の数を増やすように、及びサイクル４５の長さを変更するように修正されてもよい。一例では、サイクル４５は、同期誤差Ｔｓｙｎｃに合わせて調整されてもよい。同期誤差Ｔｓｙｎｃは、プロセッサ３０がデータパケット４０の年齢を計算するために使用するタイムスタンプ値の間の時間差を定める。システム１０は、同期誤差Ｔｓｙｎｃが次式（２）に記述されるように合わせられる：
Ｔｉｎ−Ｔｓｔａｍｐ＜ΓＲ／２−Ｔｓｙｎｃ  ・・・（２）
ここで、Ｔｉｎはデータパケット４０の非拘束時間領域２４への到来時間を表し、Ｔｓｔａｍｐはデータパケットのタイムスタンプを表し、ΓＲは短期的タイムスタンプのロールオーバー時間である。数式（２）を用いると、サイクル４５を決定するために使用する最大許容時間ＴＡは、次式（３）に記述されるように調整されてもよい：
ＴＡ＝ΓＲ／２−Ｔｓｙｎｃ  ・・・（３）
サイクル４５ａ，４５ｂは実質的に同様であってもよい。しかしながら、サイクル４５ａ，４５ｂは互いに異なる長さであってもよい。例えば、サイクル４５ａがある特定の長さであり、サイクル４５ｂが別の長さであってもよい。
【００２９】
図３は、非拘束時間領域２４の一例を示す図であり、非拘束時間領域は、本発明にて使用されてもよい制限的再配列ＦＩＦＯキュー６０及び対応するデータストリーム６２より成る。制限的再配列ＦＩＦＯキュー６０は、データストリーム１５及び出力スレッド６５を含むように示される。一実施例によれば、非拘束時間領域２４は制限的再配列ＦＩＦＯキュー６０より成り、データパケット４０は、データパケット４０の入力順序とは異なるデータパケット４０の出力順序になるように並べ換えられる。図示の例では、データストリーム６５は、挿入されたマーカーパケット５０ａ，５０ｂ，５０ｃと、１以上のデータパケットより成るデータパケット群４０ａ，４０ｂとを含む。
【００３０】
制限的再配列ＦＩＦＯキュー６０は、概して、基本的なＦＩＦＯキューと実質的に同様に動作する。しかしながら、キュー６０のスレッド６５からのパケットは、異なる順序で処理される。例えば、キュー内でスレッドＢからのデータパケット群４０ａが処理された後に、スレッドＡからのデータパケット群４０ａが処理されてもよい。未処理データパケット群及び対応するデータパケット４０は、それらがキューに入った順序で残る。即ち、例えば、データパケット４０及びデータパケット群４０ｂは並べ換えられない。
【００３１】
一実施例によれば、データスレッド６５の各スレッドはデータストリーム６２を形成してもよい。例えば、図示のデータストリーム６２はデータスレッド６５のスレッドＡに転送され、他のデータストリーム６２（図示せず）はスレッドＢに転送されてもよい。本発明の範囲から逸脱せずに、データスレッド６５におけるデータストリーム６２の他の適切ないかなる配列が使用されてもよい。更に、データパケット及びデータパケット群が同じＦＩＦＯの順序に維持される限り、優先度のような適切な任意の基準に従って並べ換えが行なわれてもよい。
【００３２】
図示の実施例によれば、マーカーパケット５０ａは、データパケット群４０ａのデータパケット４０の年齢を計算するために使用されるが、マーカーパケット５０ｂは、データパケット群４０ｂのデータパケットの年齢を計算するために使用される。本発明の範囲から逸脱せずに、いかなる数のデータパケット４０もデータパケット群の一部であってもよく、いかなる数のデータパケット群も修正されたデータストリーム６２に含まれてもよい。更に、制限的再配列ＦＩＦＯキュー６０は、本発明の範囲から逸脱せずに、適切ないかなる数のデータスレッド６５を含んでもよい。
【００３３】
本発明の範囲から逸脱せずに、制限的再配列ＦＩＦＯキュー６０に修正、付加又は省略がなされてもよい。例えば、任意数のデータパケット４０、任意数５０のマーカーパケットを用いて、及び任意の長さのサイクル４５に従って、修正されたデータストリーム６２が作成されてもよい。別の例として、制限的再配列ＦＩＦＯキュー６０は、優先度のようなデータパケット群を並べ換える適切ないかなる基準を使用してもよい。更に、ソフトウエアより成る論理（ロジック）、ハードウエア、他の論理又はそれらの適切な任意の組合せの内の適切な任意のものを用いて、機能が実行されてもよい。
【００３４】
図４は、本発明に使用可能なデータパケット４０の処理に使用する方法例を示すフローチャートである。概して、データパケット４０より成るデータストリーム１５はノード２０で受信される。データパケット４０がノード２０に入った時間を示すために、データパケット４０にタイムスタンプが付される。プロセッサ３０はデータストリーム１５にマーカーパケット５０を挿入し、マーカーパケット５０は、マーカーパケット５０が非拘束時間領域２４に入った時間を示すマーカータイムスタンプより成る。マーカータイムスタンプ、データパケットタイムスタンプ及び現在のシステム時間を利用して、データストリーム１５は、データパケット４０の年齢を判別するように処理される。計算されたデータパケット４０の年齢は、データパケット４０が破棄されるか否か又は出力データストリームに伝送されることを許可されるか否かを判別するために使用される。マーカーパケット５０としてデータストリーム１５に長期的タイムスタンプを挿入することで、ロールオーバを回避しつつ、実効的な帯域を維持する。
【００３５】
本方法は、ノードがデータストリーム１５を受信するステップ１００から始まる。本方法はステップ１０２に進み、プロセッサ３０は、到着時間に従って、データストリーム１５のデータパケット４０にタイムスタンプを割り当てる。各データパケット４０に割り当てられるタイムスタンプは、データパケット４０が領域に入った時間を示す短期的タイムスタンプから構成されてもよい。一実施例によれば、タイムスタンプは、ある時間を示してもよく、その時間は、データパケット４０がノードに、拘束時間領域２２に、非拘束時間領域２４に、若しくはそれらの全部若しくは一部に入った時間、又は何れでもない時間である。図１を参照しながら説明したように、データパケット４０に割り当てられた短期的タイムスタンプは、本発明の範囲から逸脱せずに、適切ないかなるビット数から構成されてもよい。
【００３６】
ステップ１０４では、プロセッサはマーカ情報を生成する。マーカー情報は、マーカーパケット５０が領域に入った時間を示す長期的タイムスタンプより成る。図示の例によれば、マーカータイムスタンプは、ある時間を示してもよく、その時間は、マーカーパケット５０がノード２０に、拘束時間領域２２に、非拘束時間領域２４に、若しくはそれらの全部若しくは一部に挿入された時間、又は何れでもない時間である。図１を参照しながら説明したように、マーカーパケット５０の長期的タイムスタンプは、短期タイムスタンプより多くのビット数を搬送する。例えば、長期的タイムスタンプは４０ビットで構成され、短期的タイムスタンプは４ビットで構成されてもよい。一実施例によれば、マーカーパケット５０は２４バイトパケットから構成され、その２４バイトパケットは、ヘッダ、誤り訂正情報、パケット情報終了部及び４０ビットのタイムスタンプを含む。本発明の範囲から逸脱せずに、適切ないかなるビット数をもマーカーパケット５０に含めてもよい。
【００３７】
本方法はステップ１０６に進み、そこでは、プロセッサ３０が、生成されたマーカーパケット５０を時間間隔に従ってデータストリーム１５に挿入する。図示の例によれば、その時間間隔は、最大許容時間ＴＡに実質的に等しい時間周期より成る。しかしながら、図２（Ａ），（Ｂ）を参照しながら特に説明したように、データストリーム１５のサイクル４５につき含まれ得るマーカーパケット数を増やすために、時間間隔は最大許容時間ＴＡより少なくてもよい。
【００３８】
ステップ１０８では、プロセッサ３０は、非拘束時間領域２４の出口でマーカーパケット５０を検出する。本方法はステップ１１０に進み、そこでは、検出されたマーカーパケット５０に対応するマーカー情報が格納される。
【００３９】
ステップ１１２では、プロセッサ３０は、特定のタイムスタンプに関連するデータパケット４０を検出する。例えば、マーカーパケット５０を検出した後に、プロセッサ３０は、特定のタイムスタンプに関連する後続のデータパケット４０の各々を検出してもよい。プロセッサ３０は、ステップ１１４にてマーカー情報及び現在のシステム時間を用いて、受信したデータパケット４０の年齢を計算する。図示の例によれば、データパケットの年齢は、４０ビット減算のようなＮビット減算を先ず実行することで算出される。現在のシステム時間ＴＣマイナスマーカタイムスタンプ値ＴｍのＮビット減算は、マーカーパケット５０がノード２０にてどの程度長く居残るかを示す時間を与える。一実施例によれば、以下の数式（４）に記述されるＮビット減算は、データパケット４０の推定年齢を効果的に与えるかもしれない。
【００４０】
別の実施例によれば、マーカーパケットのタイムスタンプ値ＴｍマイナスデータパケットタイムスタンプＴｓｔａｍｐのｎビット減算を実行することで、プロセッサ３０は、最後に検出されたマーカーパケット５０に対するデータパケット４０の年齢を判別する。ｎビット減算の結果は、数式（４）に従って、フレーム又はデータパケット４０がノード２０に滞在する合計時間を決定するために、Ｎビットに符号拡張される：
【００４１】
【数２】
0004634079.tif 000003
本方法はステップ１１６に進み、そこでは、プロセッサ３０は、算出した年齢が最大許容時間ＴＡより少ないか否かを判別する。数式（４）により、プロセッサ３０は、算出した年齢が最大許容時間ＴＡを下回るか否かを判別する。算出した年齢が最大許容時間ＴＡより少ないならば、ステップ１１８にて、プロセッサ３０はデータパケット４０を許容し、そのデータパケット４０を出力データストリーム５５に転送する。
【００４２】
ステップ１１６において、算出した年齢が最大許容時間ＴＡよりも少なくなかったならば、プロセッサ３０は、ステップ１２０にて、データパケット４０を破棄するように非拘束時間領域２４に命令する。ステップ１１４にて算出した年齢が許容される最長時間ＴＡに等しい又はそれを上回る場合に、データパケット４０が破棄されてもよい。例えば、２秒間の最大許容時間ＴＡに関し、算出された年齢が２秒に等しい又はそれより大きかったならば、プロセッサ３０はデータパケット４０を破棄するように非拘束時間領域２４に指示する。
【００４３】
ステップ１２２に本方法は進み、処理することを要する次のパケットの存否を判別する。ステップ１２２にて、処理する後続のパケットが存在したならば、本方法はステップ１２２４に進み、プロセッサ３０はその処理される次のパケットがマーカーパケット５０であるか否かを判別する。ステップ１２４にて、次のマーカーパケット５０が検出されたならば、本方法はステップ１２６に進み、ステップ１１０で記憶されたマーカー情報が、その検出された次のマーカーパケット５０に対応するマーカー情報で更新される。ステップ１２４にて、処理する次のパケットがマーカパケット５０でなかったならば、本方法はステップ１１２に戻り、プロセッサは次のデータパケット４０を検出する。ステップ１２２にて、処理する次のいかなるパケットも無かったならば、本方法は終了する。
【００４４】
本発明の範囲から逸脱せずに、ステップが付加され、省略され、修正され、又は適切ないかなる順序で実行されてもよい。例えば、ステップ１０４にて非拘束時間領域２４の入口でマーカー情報を生成することは、ステップ１０６における時間間隔に従ってマーカーパケット５０をデータストリーム１５に挿入することと同時に行なわれてもよい。別の例として、ステップ１１０にて、検出したマーカーパケット５０に対応するマーカー情報を格納することは、省略されてもよい。更なる他の例として、図１に関して説明されたように、非拘束時間領域２４にて渋滞が生じているか否かを判別し、データパケット４０がキューに入ることをプロセッサ３０が防ぐようにするステップが付加されてもよい。更に、ソフトウエアより成る論理、ハードウエア、他の論理又はそれらの任意の適切な組合せの内の適切な任意のものを用いて、機能が実行されてもよい。
【００４５】
本発明の所定の実施例は、１以上の技術的な恩恵をもたらす。一実施例による技術的な利点は、マーカーパケットに長期的タイムスタンプを用いることによって、データパケットのロールオーバが回避されることである。一実施例による別の技術的な利点は、マーカーパケットをデータストリームに挿入することが、データパケット年齢の信頼性の高い監視を可能にする一方、帯域の実効的な増加を最小に抑制することである。
【００４６】
以上本発明の実施例及びその利点が詳細に説明されたが、添付の特許請求の範囲に記載されているような本発明の精神及び範囲から逸脱せずに、当業者は様々な変更、付加及び省略をなし得るであろう。
【００４７】
以下、本発明により教示される手段が例示的に列挙される。
【００４８】
（付記１）
データストリーム中の複数のデータパケットを、ある時間を表す各自の第１のタイムスタンプでマーキングするステップであって、前記の時間は、ノード、前記ノードの拘束領域及び前記ノードの非拘束領域より成る群から選択された領域に前記データパケットが入った時間であり、前記第１のタイムスタンプは第１のビット数より成るところのステップ；
複数のマーカーパケットを時間間隔をおいてデータストリームに挿入するステップであって、各マーカーパケットは、ある時間を表す各自の第２のタイムスタンプより成り、前記の時間はノード、前記ノードの拘束領域及び前記ノードの非拘束領域より成る群から選択された領域に前記マーカーパケットが入った時間であり、前記第２のタイムスタンプは第２のビット数より成り、前記第２のビット数は前記第１のビット数より大きく、前記時間間隔は、最大許容時間に実質的に等しいもの及び前記最大許容時間を実質的に下回るものより成る群から選択された期間より成り、前記マーカーパケットは更に複数の誤り訂正ビットより成るところのステップ；
データパケットの前にデータストリームに挿入された最新のマーカーパケットに関する、現在のシステム時間、前記各自の第１のタイムスタンプ及び前記各自の第２のタイムスタンプに基づいて、少なくとも１つのデータパケットについて、データパケットの年齢の推定値を算出するステップであって、前記データパケットの前記年齢の算出は：
【００４９】
【数３】
0004634079.tif 000004
の数式に従って求められ、Ｔｃは現在のシステム時間であり、Ｔｍは各自の第２のタイムスタンプであり、Ｔｓｔａｍｐは各自の第１のタイムスタンプであり、Ｎは第２のビット数に対応し、ｎは第１のビット数に対応するところのステップ；
算出した年齢が最大許容時間に等しい又は超過する場合に前記データパケットを破棄するステップ；及び
算出した年齢が最大許容時間を下回る場合に前記データパケットを許容するステップ；
を有することを特徴とするデータパケットを処理するのに使用する方法。
【００５０】
（付記２）
複数のマーカーパケットを時間間隔をおいてデータストリームに挿入するステップであって、各マーカーパケットは、マーカーパケットが挿入された時間を表す各自の第１のタイムスタンプより成るところのステップ；及び
現在のシステム時間と、データパケットの前にデータストリームに挿入された最新のマーカーパケットの前記各自の第１のタイムスタンプとに基づいて、少なくとも１つのデータパケットについて、データパケットの年齢の推定値を算出するステップ；
を有することを特徴とするデータパケットを処理するのに使用する方法。
【００５１】
（付記３）
データパケットがノードに入った時間を表す各自の第２のタイムスタンプで、前記データストリーム中の複数のデータパケットをマーキングするステップを更に有し；前記第１のタイムスタンプが前記第２のタイムスタンプより多くのビット数を有し；少なくとも１つのデータパケットについて、データパケットの年齢の推定値を算出するステップが、現在のシステム時間、前記各自の第１のタイムスタンプ及び前記各自の第２のタイムスタンプに基づいて、データパケットの年齢の推定値を算出するステップより成る
ことを特徴とする付記２記載の方法。
【００５２】
（付記４）
算出した年齢の推定値が最大許容時間に等しい又は超過する場合に、データパケットを破棄するステップ
を更に有することを特徴とする付記２記載の方法。
【００５３】
（付記５）
算出した年齢の推定値が最大許容時間を下回る場合に、データパケットを許容するステップ
を更に有することを特徴とする付記２記載の方法。
【００５４】
（付記６）
データパケットが前記ノードに入った時間を表す前記各自の第２のタイムスタンプは、前記ノード、前記ノードの拘束領域及び前記ノードの非拘束領域から選択された領域にデータパケットが入った時間を表す
ことを特徴とする付記２記載の方法。
【００５５】
（付記７）
マーカーパケットが挿入された時間を表す前記各自の第１のタイムスタンプは、前記ノード、前記ノードの拘束領域及び前記ノードの非拘束領域から選択された領域にマーカーパケットが入った時間を表す
ことを特徴とする付記２記載の方法。
【００５６】
（付記８）
データパケットの年齢の推定値を算出するステップが：
前記現在のシステム時間及び前記各自の第１のタイムスタンプの間の第１の差分を算出するステップ；
前記各自の第１のタイムスタンプ及び前記各自の第２のタイムスタンプの間の第２の差分を算出するステップ；及び
前記第１の差分及び前記第２の差分を加えるステップ；
を更に有することを特徴とする付記２記載の方法。
【００５７】
（付記９）
前記時間間隔が、最大許容時間に実質的に等しい期間より成る
ことを特徴とする付記２記載の方法。
【００５８】
（付記１０）
前記時間間隔が、最大許容時間より短い期間より成る
ことを特徴とする付記２記載の方法。
【００５９】
（付記１１）
前記マーカーパケットが更に複数の誤り訂正ビットより成る
ことを特徴とする付記２記載の方法。
【００６０】
（付記１２）
データストリームを受信するよう動作するノード；及び
前記ノードに結合されるプロセッサ；
を備え、前記プロセッサは：
複数のマーカーパケットを時間間隔をおいてデータストリームに挿入するステップであって、各マーカーパケットは、マーカーパケットが挿入された時間を表す各自の第１のタイムスタンプより成るところのステップ；及び
現在のシステム時間と、データパケットの前にデータストリームに挿入された最新のマーカーパケットの前記各自の第１のタイムスタンプとに基づいて、少なくとも１つのデータパケットについて、データパケットの年齢の推定値を算出するステップ；
を実行することが可能なデータパケットを処理するシステム。
【００６１】
（付記１３）
データパケットがノードに入った時間を表す各自の第２のタイムスタンプで、前記データストリーム中の複数のデータパケットをマーキングするステップであって；前記第１のタイムスタンプが前記第２のタイムスタンプより多くのビット数を有するところのステップ；及び
現在のシステム時間、前記各自の第１のタイムスタンプ及び前記各自の第２のタイムスタンプに基づいて、データパケットの年齢の推定値を算出するステップ；
を前記プロセッサが更に実行可能であることを特徴とする付記１２記載のシステム。
【００６２】
（付記１４）
算出した年齢の推定値が最大許容時間に等しい又は超過する場合に、データパケットを破棄するステップ
を前記プロセッサが更に実行可能であることを特徴とする付記１２記載のシステム。
【００６３】
（付記１５）
算出した年齢の推定値が最大許容時間を下回る場合に、データパケットを許容するステップ
を前記プロセッサが更に実行可能であることを特徴とする付記１２記載のシステム。
【００６４】
（付記１６）
データパケットが前記ノードに入った時間を表す前記各自の第２のタイムスタンプは、前記ノード、前記ノードの拘束領域及び前記ノードの非拘束領域から選択された領域にデータパケットが入った時間を表す
ことを特徴とする付記１２記載のシステム。
【００６５】
（付記１７）
マーカーパケットが挿入された時間を表す前記各自の第１のタイムスタンプは、前記ノード、前記ノードの拘束領域及び前記ノードの非拘束領域から選択された領域にマーカーパケットが入った時間を表す
ことを特徴とする付記１２記載のシステム。
【００６６】
（付記１８）
前記現在のシステム時間及び前記各自の第１のタイムスタンプの間の第１の差分を算出するステップ；
前記各自の第１のタイムスタンプ及び前記各自の第２のタイムスタンプの間の第２の差分を算出するステップ；及び
前記第１の差分及び前記第２の差分を加えるステップ；
を実行することで、前記プロセッサが、データパケットの年齢の推定値を算出するように更に実行可能であることを特徴とする付記１２記載のシステム。
【００６７】
（付記１９）
前記時間間隔が、最大許容時間に実質的に等しい期間より成る
ことを特徴とする付記１２記載のシステム。
【００６８】
（付記２０）
前記時間間隔が、最大許容時間より短い期間より成る
ことを特徴とする付記１２記載のシステム。
【００６９】
（付記２１）
前記マーカーパケットが更に複数の誤り訂正ビットより成る
ことを特徴とする付記１２記載のシステム。
【００７０】
（付記２２）
複数のマーカーパケットを時間間隔をおいてデータストリームに挿入するステップであって、各マーカーパケットは、マーカーパケットが挿入された時間を表す各自の第１のタイムスタンプより成るところのステップ；及び
現在のシステム時間と、データパケットの前にデータストリームに挿入された最新のマーカーパケットの前記各自の第１のタイムスタンプとに基づいて、少なくとも１つのデータパケットについて、データパケットの年齢の推定値を算出するステップ；
を実行させる、データパケットを処理する論理プログラム。
【００７１】
（付記２３）
データパケットがノードに入った時間を表す各自の第２のタイムスタンプで、前記データストリーム中の複数のデータパケットをマーキングするステップであって；前記第１のタイムスタンプが前記第２のタイムスタンプより多くのビット数を有するところのステップ；及び
現在のシステム時間、前記各自の第１のタイムスタンプ及び前記各自の第２のタイムスタンプに基づいて、データパケットの年齢の推定値を算出するステップ；
を更に実行させることを特徴とする付記２２記載の論理プログラム。
【００７２】
（付記２４）
算出した年齢の推定値が最大許容時間に等しい又は超過する場合に、データパケットを破棄するステップ
を更に実行させることを特徴とする付記２２記載の論理プログラム。
【００７３】
（付記２５）
算出した年齢の推定値が最大許容時間を下回る場合に、データパケットを許容するステップ
を更に実行させることを特徴とする付記２２記載の論理プログラム。
【００７４】
（付記２６）
データパケットが前記ノードに入った時間を表す前記各自の第２のタイムスタンプは、前記ノード、前記ノードの拘束領域及び前記ノードの非拘束領域から選択された領域にデータパケットが入った時間を表す
ことを特徴とする付記２２記載の論理プログラム。
【００７５】
（付記２７）
マーカーパケットが挿入された時間を表す前記各自の第１のタイムスタンプは、前記ノード、前記ノードの拘束領域及び前記ノードの非拘束領域から選択された領域にマーカーパケットが入った時間を表す
ことを特徴とする付記２２記載の論理プログラム。
【００７６】
（付記２８）
前記現在のシステム時間及び前記各自の第１のタイムスタンプの間の第１の差分を算出するステップ；
前記各自の第１のタイムスタンプ及び前記各自の第２のタイムスタンプの間の第２の差分を算出するステップ；及び
前記第１の差分及び前記第２の差分を加えるステップ；
を実行させ、データパケットの年齢の推定値を算出させることを特徴とする付記２２記載の論理プログラム。
【００７７】
（付記２９）
前記時間間隔が、最大許容時間に実質的に等しい期間より成る
ことを特徴とする付記２２記載の論理プログラム。
【００７８】
（付記３０）
前記時間間隔が、最大許容時間より短い期間より成る
ことを特徴とする付記２２記載の論理プログラム。
【００７９】
（付記３１）
前記マーカーパケットが更に複数の誤り訂正ビットより成る
ことを特徴とする付記２２記載の論理プログラム。
【００８０】
（付記３２）
複数のマーカーパケットを時間間隔をおいてデータストリームに挿入する手段であって、各マーカーパケットは、マーカーパケットが挿入された時間を表す各自の第１のタイムスタンプより成るところの手段；及び
現在のシステム時間と、データパケットの前にデータストリームに挿入された最新のマーカーパケットの前記各自の第１のタイムスタンプとに基づいて、少なくとも１つのデータパケットについて、データパケットの年齢の推定値を算出する手段；
を備えることを特徴とするデータパケットを処理するのに使用するシステム。
【図面の簡単な説明】
【００８１】
【図１】本発明にて使用可能なシステム例のブロック図である。
【図２】本発明によるマーカーパケットを組み込むデータストリームを示す図である。
【図３】本発明にて使用可能な先入れ先出し（ＦＩＦＯ）キュー及び対応するデータストリームの一例を示す図である。
【図４】本発明にて使用されるデータパケット処理で使用される方法例を示すフローチャートである。
【符号の説明】
【００８２】
１０  システム
１５  入力データストリーム
２０  ノード
２２  時間拘束領域
２４  時間非拘束領域
３０  プロセッサ
４０  データパケット
４５  サイクル
５０  マーカーパケット
６０  制限的再配列ＦＩＦＯキュー
６２，６５  データストリーム
【図１】
0004634079.tif 000005
【図２】
0004634079.tif 000006
【図３】
0004634079.tif 000007
【図４】
0004634079.tif 000008