(57)【特許請求の範囲】
【請求項１】
パケット交換通信ネットワークのノード（Ｎ、Ｎ１）において受信された同期パケット（ＳＰ）の累積滞留時間（ＣＲＴ）を更新するための方法であって、前記累積滞留時間（ＣＲＴ）が、前記同期パケット（ＳＰ）を生成した別のノードと前記ノード（Ｎ、Ｎ１）の間に介在する前記パケット交換ネットワークのノードでの前記同期パケット（ＳＰ）の滞留時間の累積和に等しく、前記ノード（Ｎ、Ｎ１）が、前記同期パケット（ＳＰ）を受信するように構成された入口回路（ＩＣ）と、前記同期パケット（ＳＰ）を前記パケット交換通信ネットワークのさらに別のノード（Ｎ２）に送信するように構成された出口回路（ＥＣ、ＥＣ１）とを備え、前記方法が、
ａ）前記出口回路（ＥＣ、ＥＣ１）において、前記同期パケット（ＳＰ）を前記入口回路（ＩＣ）から受け取るステップと、
ｂ）前記出口回路（ＥＣ、ＥＣ１）の出口タイムスタンプ生成器（ＴＳＧｅｇ、ＴＳＧ１ｅｇ）において、出口タイムスタンプ（ＴＳ（ＥＧ，ＬＯＧ）、ＴＳ１（ＥＧ，ＰＨＹ）、ＴＳ１（ＥＧ，ＬＯＧ））を生成するステップと、
ｃ）前記出口回路（ＥＣ、ＥＣ１）において、前記出口タイムスタンプ（ＴＳ（ＥＧ，ＬＯＧ）、ＴＳ１（ＥＧ，ＰＨＹ）、ＴＳ１（ＥＧ，ＬＯＧ））と、前記出口タイムスタンプ生成器（ＴＳＧｅｇ、ＴＳＧ１ｅｇ）の下流に配置されるバッファ（Ｂｅｇ、Ｂ１ｅｇ、Ｂ２ｉｎ）におけるバッファリングが原因で、前記同期パケット（ＳＰ）によって経験されると推定される可変遅延とに基づいて、仮想タイムスタンプ（ＶＩＲＴＵＡＬ＿ＴＳ（ＥＧ，ＰＨＹ）、ＶＩＲＴＵＡＬ＿ＴＳ２（ＩＮ，ＬＯＧ））を計算するステップと、
ｄ）前記出口回路（ＥＣ、ＥＣ１）において、前記同期パケット（ＳＰ）を前記さらに別のノード（Ｎ２）に送信する前に、前記累積滞留時間（ＣＲＴ）を更新するために前記仮想タイムスタンプ（ＶＩＲＴＵＡＬ＿ＴＳ（ＥＧ，ＰＨＹ）、ＶＩＲＴＵＡＬ＿ＴＳ２（ＩＮ，ＬＯＧ））を使用するステップと
を含む、方法。
【請求項２】
前記ステップｂ）が、出口論理タイムスタンプ（ＴＳ（ＥＧ，ＬＯＧ）、ＴＳ１（ＥＧ，ＬＯＧ））を生成するステップを含む、請求項１に記載の方法。
【請求項３】
前記ステップｃ）が、前記出口論理タイムスタンプ（ＴＳ（ＥＧ，ＬＯＧ）、ＴＳ１（ＥＧ，ＬＯＧ））と、前記出口回路（ＥＣ、ＥＣ１）に含まれ、前記出口タイムスタンプ生成器（ＴＳＧｅｇ、ＴＳＧ１ｅｇ）の下流に配置される、出口バッファ（Ｂｅｇ、Ｂ１ｅｇ）におけるバッファリングが原因で、前記同期パケット（ＳＰ）によって経験されると推定される可変遅延とに基づいて、仮想出口物理タイムスタンプ（ＶＩＲＴＵＡＬ＿ＴＳ（ＥＧ，ＰＨＹ））を計算するステップを含む、請求項２に記載の方法。
【請求項４】
前記ステップｃ）が、前記仮想出口物理タイムスタンプ（ＶＩＲＴＵＡＬ＿ＴＳ（ＥＧ，ＰＨＹ））と、前記また別のノード（Ｎ２）の別の入口回路（ＩＣ２）に含まれる入口バッファ（Ｂ２ｉｎ）におけるバッファリングが原因で、前記同期パケット（ＳＰ）によって経験されると推定される可変遅延とに基づいて、仮想入口論理タイムスタンプ（ＶＩＲＴＵＡＬ＿ＴＳ２（ＩＮ，ＬＯＧ））を計算するステップをさらに含む、請求項３に記載の方法。
【請求項５】
前記ステップｂ）が、出口物理タイムスタンプ（ＴＳ１（ＥＧ，ＰＨＹ））を生成するステップを含む、請求項１に記載の方法。
【請求項６】
前記ステップｃ）が、前記出口物理タイムスタンプ（ＴＳ１（ＥＧ，ＰＨＹ））と、前記また別のノード（Ｎ２）の別の入口回路（ＩＣ２）に含まれる入口バッファ（Ｂ２ｉｎ）におけるバッファリングが原因で、前記同期パケット（ＳＰ）によって経験されると推定される可変遅延とに基づいて、仮想入口論理タイムスタンプ（ＶＩＲＴＵＡＬ＿ＴＳ２（ＩＮ，ＬＯＧ））を計算するステップを含む、請求項５に記載の方法。
【請求項７】
前記ステップａ）の前に、前記入口回路（ＩＣ）が前記同期パケット（ＳＰ）を受信したときに、前記入口回路（ＩＣ）において入口タイムスタンプ（ＴＳ（ＩＮ，ＰＨＹ））を生成するステップをさらに含む、請求項１から６のいずれかに記載の方法。
【請求項８】
前記ステップａ）の前に、前記入口回路（ＩＣ）において前記入口タイムスタンプ（ＴＳ（ＩＮ，ＰＨＹ））を前記同期パケット（ＳＰ）に書き込むステップをさらに含む、請求項７に記載の方法。
【請求項９】
前記ステップｄ）が、前記入口タイムスタンプ（ＴＳ（ＩＮ，ＰＨＹ））を前記同期パケット（ＳＰ）から読み取るステップと、前記仮想タイムスタンプ（ＶＩＲＴＵＡＬ＿ＴＳ（ＥＧ，ＰＨＹ）、ＶＩＲＴＵＡＬ＿ＴＳ２（ＩＮ，ＬＯＧ））と前記入口タイムスタンプ（ＴＳ（ＩＮ，ＰＨＹ））の間の差として、滞留時間（ＲＴ、ＲＴ’、ＲＴ”）を計算するステップと、前記滞留時間（ＲＴ、ＲＴ’、ＲＴ”）を前記累積滞留時間（ＣＲＴ）に加算することによって、前記累積滞留時間（ＣＲＴ）を更新するステップとを含む、請求項８に記載の方法。
【請求項１０】
前記ステップａ）の前に、前記入口回路（ＩＣ）において前記入口タイムスタンプ（ＴＳ（ＩＮ，ＰＨＹ））を前記累積滞留時間（ＣＲＴ）から減算するステップをさらに含む、請求項７に記載の方法。
【請求項１１】
前記ステップｄ）が、前記仮想タイムスタンプ（ＶＩＲＴＵＡＬ＿ＴＳ（ＥＧ，ＰＨＹ）、ＶＩＲＴＵＡＬ＿ＴＳ２（ＩＮ，ＬＯＧ））を前記累積滞留時間（ＣＲＴ）に加算するステップを含む、請求項１０に記載の方法。
【請求項１２】
前記ステップｄ）が、前記同期パケット（ＳＰ）を前記また別のノード（Ｎ２）に送信する前に、前記更新された累積滞留時間（ＣＲＴ）を前記同期パケット（ＳＰ）に書き込むステップをさらに含む、請求項１から１１のいずれかに記載の方法。
【請求項１３】
請求項１から１２のいずれかに記載の方法のステップをコンピュータに実行させるためのコンピュータ実行可能命令を含む、コンピュータプログラム。
【請求項１４】
パケット交換通信ネットワークのためのノード（Ｎ、Ｎ１）であって、
−  同期パケット（ＳＰ）を受信するように構成された入口回路（ＩＣ）であって、累積滞留時間（ＣＲＴ）を、前記同期パケット（ＳＰ）を生成した別のノードと前記ノード（Ｎ、Ｎ１）の間に介在する前記パケット交換ネットワークのノードでの前記同期パケット（ＳＰ）の滞留時間の累積和に等しく関連付ける、入口回路（ＩＣ）と、
−  前記同期パケット（ＳＰ）を前記入口回路（ＩＣ）から受け取り、前記同期パケット（ＳＰ）を前記パケット交換通信ネットワークのまた別のノード（Ｎ２）に送信するように構成された出口回路（ＥＣ、ＥＣ１）であって、
−  出口タイムスタンプ（ＴＳ（ＥＧ，ＬＯＧ）、ＴＳ１（ＥＧ，ＰＨＹ）、ＴＳ１（ＥＧ，ＬＯＧ））を生成するように構成された出口タイムスタンプ生成器（ＴＳＧｅｇ、ＴＳＧ１ｅｇ）と、
−  前記出口タイムスタンプ（ＴＳ（ＥＧ，ＬＯＧ）、ＴＳ１（ＥＧ，ＰＨＹ）、ＴＳ１（ＥＧ，ＬＯＧ））と、前記出口タイムスタンプ生成器（ＴＳＧｅｇ、ＴＳＧ１ｅｇ）の下流に配置されるバッファ（Ｂｅｇ、Ｂ１ｅｇ、Ｂ２ｉｎ）におけるバッファリングが原因で、前記同期パケット（ＳＰ）によって経験されると推定される可変遅延とに基づいて、仮想タイムスタンプ（ＶＩＲＴＵＡＬ＿ＴＳ（ＥＧ，ＰＨＹ）、ＶＩＲＴＵＡＬ＿ＴＳ２（ＩＮ，ＬＯＧ））を計算するように構成された計算モジュール（ＣＭ、ＣＭ１）と
を備える、出口回路（ＥＣ、ＥＣ１）とを備え、
前記出口回路（ＥＣ、ＥＣ１）が、前記累積滞留時間（ＣＲＴ）を更新するために前記仮想タイムスタンプ（ＶＩＲＴＵＡＬ＿ＴＳ（ＥＧ，ＰＨＹ）、ＶＩＲＴＵＡＬ＿ＴＳ２（ＩＮ，ＬＯＧ））を使用するようにさらに構成される、
ノード（Ｎ、Ｎ１）。
【請求項１５】
請求項１４に記載のノード（Ｎ、Ｎ１）を含む、パケット交換通信ネットワーク。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、通信ネットワークの分野に関する。詳細には、本発明は、パケット交換通信ネットワークを介して送信されるパケットの累積滞留時間の更新に関する。
【背景技術】
【０００２】
パケット交換通信ネットワークでは、マスタノードは、１つまたは複数のスレーブノードに、同期プロトコルに従ってフォーマットされた同期情報を送信することができる。特に、マスタノードは、典型的には、自らのローカルクロックに関係する同期情報（周波数および／または１日の時刻）を生成し、この情報を、同期パケットに収めて、スレーブノードに送信する。同期情報がスレーブノードにおいて受信されると、同期情報は、スレーブノードが、それぞれのクロックの周波数および／または１日の時刻を、マスタノードのローカルクロックの周波数および／または１日の時刻に同期させることを可能にする。
【０００３】
知られた同期プロトコルの例は、「ネットワークタイムプロトコル（Ｎｅｔｗｏｒｋ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ）」、ＮＴＰ、または「高精度時間プロトコル（Ｐｒｅｃｉｓｉｏｎ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ）」、ＰＴＰとして知られ、ＩＥＥＥ  Ｉｎｓｔｒｕｍｅｎｔａｔｉｏｎ  ａｎｄ  Ｍｅａｓｕｒｅｍｅｎｔｓ  Ｓｏｃｉｅｔｙによる文献「ＩＥＥＥ  Ｓｔａｎｄａｒｄ  ｆｏｒ  ａ  Ｐｒｅｃｉｓｉｏｎ  Ｃｌｏｃｋ  Ｓｙｎｃｈｒｏｎｉｚａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ  ｆｏｒ  Ｎｅｔｗｏｒｋｅｄ  Ｍｅａｓｕｒｅｍｅｎｔｓ  ａｎｄ  Ｃｏｎｔｒｏｌ  Ｓｙｓｔｅｍｓ」、２００８年７月２４日において定義されている、ＩＥＥＥ  １５８８（ＴＭ）−２００８プロトコルである。
【０００４】
ＩＥＥＥ  １５８８（ＴＭ）−２００８プロトコル（上掲の文献の３２−３４ページ、６章、６．６．３段落を参照）によれば、マスタノードは、Ｓｙｎｃパケットをスレーブノードに送信し、マスタノードがＳｙｎｃパケットを送信した時刻を示す第１のタイムスタンプｔ１を生成する。いわゆる「１ステップクロック」メカニズムによれば、第１のタイムスタンプｔ１は、Ｓｙｎｃパケット自体に収めて、スレーブノードに送信される。他方、いわゆる「２ステップクロック」メカニズムによれば、第１のタイムスタンプｔ１は、マスタノードがＳｙｎｃパケットの後にスレーブノードに送信するＦｏｌｌｏｗ−Ｕｐパケット自体に収めて、スレーブノードに送信される。今度は、スレーブノードが、Ｓｙｎｃパケットを受信し、スレーブノードがＳｙｎｃパケットを受信した時刻を示す第２のタイムスタンプｔ２を生成する。その後、スレーブノードは、マスタノードにＤｅｌａｙ＿Ｒｅｑパケットを送信し、スレーブノードがそのようなパケットを送信した時刻を示す第３のタイムスタンプｔ３を生成する。マスタノードは、Ｄｅｌａｙ＿Ｒｅｑパケットを受信し、マスタノードがそのようなパケットを受信した時刻を示す第４のタイムスタンプｔ４を生成し、今度は、第４のタイムスタンプｔ４を、Ｄｅｌａｙ＿Ｒｅｓｐパケットに収めて、スレーブノードに送信する。
【０００５】
上で説明したパケット交換の終了時には、４つのタイムスタンプｔ１、ｔ２、ｔ３、ｔ４が、スレーブノードにおいて利用可能である。上で説明したパケット交換は、一般に定期的に繰り返される。４つのタイムスタンプｔ１、ｔ２、ｔ３、ｔ４を使用することによって、スレーブノードは、自らのローカルクロックの周波数および１日の時刻を、マスタノードの周波数および１日の時刻に同期させることができる。
【０００６】
例えば、イーサネット（登録商標）ネットワークなど、パケット交換ネットワークを介してトランスポートされるパケットは、一般に、ネットワークトラフィック状態に依存する遅延変動によって影響を受ける。実際に、パケット交換ネットワークノードは、事前に予測可能ではない可変遅延を発生させるデバイスを含む。
【０００７】
例えば、パケット交換ネットワークのノードでは、各パケットは、入口物理インタフェースによって受信され、その後、ＯＳＩモデルの「媒体アクセス制御」（ＭＡＣ）層の入口ＦＩＦＯバッファに格納される。その後、パケットは、ノード内で処理される。次に、パケットは、ＭＡＣ層の出口ＦＩＦＯバッファに格納され、その後、出口物理インタフェースによって送信される。ＦＩＦＯバッファは、トラフィック優先順位付けメカニズムを有さない。したがって、パケットは、予測不能な時間にわたってＦＩＦＯバッファに格納され、その場合、ノード内で予測不能な滞留時間を経験する。
【０００８】
上記の考察は、データパケットと同期パケットの両方に当てはまる。同期パケットに関する限り、予測不能な遅延変動は、特に重大な意味をもつが、その理由は、予測不能な遅延変動は、スレーブノードが、マスタノードによって生成された同期情報を許容可能な精度で回復することを妨げ、したがって、スレーブノードのクロックをマスタノードのローカルクロックに同期させることを妨げるからである。
【０００９】
ＩＥＥＥ  １５８８（ＴＭ）−２００８プロトコルは、パケット交換ネットワークの各ノードにおける「透過的クロック」メカニズムを定義している（上掲の文献の６章、６．５．４段落を参照）。このメカニズムは、ノード内での同期パケットの（特にＳｙｎｃパケットおよびＤｅｌａｙ＿Ｒｅｑパケットの）滞留時間を測定することを可能にする。このようにして、各スレーブノードは、パケット交換ネットワークのノード内での同期パケットの滞留時間を、したがって、関連する遅延変動も考慮することによって、同期を回復することができる。実際に、ノードは、同期パケットを受信したとき、入口タイムスタンプを生成し、パケットを送信するとき、出口タイムスタンプを生成する。その後、ノード内での同期パケットの滞留時間が、出口タイムスタンプと入口タイムスタンプの間の差として計算される。上で言及した１ステップクロックメカニズムによる場合、ＩＥＥＥ  １５８８（ＴＭ）−２００８プロトコルは、同期パケットがノードによって転送される前に、同期パケット自体の補正フィールドの内容を更新するために滞留時間を使用することを規定している。他方、上で言及した２ステップクロックメカニズムによる場合、ＩＥＥＥ  １５８８（ＴＭ）−２００８プロトコルは、同期パケットを転送し、その同期パケットに関連付けられた後続パケット（Ｆｏｌｌｏｗ＿ＵｐパケットまたはＤｅｌａｙ＿Ｒｅｓｐパケット）の補正フィールドの内容を更新するために同期パケットの滞留時間を使用することを規定している。
【先行技術文献】
【非特許文献】
【００１０】
【非特許文献１】ＩＥＥＥ  Ｉｎｓｔｒｕｍｅｎｔａｔｉｏｎ  ａｎｄ  Ｍｅａｓｕｒｅｍｅｎｔｓ  Ｓｏｃｉｅｔｙ、「ＩＥＥＥ  Ｓｔａｎｄａｒｄ  ｆｏｒ  ａ  Ｐｒｅｃｉｓｉｏｎ  Ｃｌｏｃｋ  Ｓｙｎｃｈｒｏｎｉｚａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ  ｆｏｒ  Ｎｅｔｗｏｒｋｅｄ  Ｍｅａｓｕｒｅｍｅｎｔｓ  ａｎｄ  Ｃｏｎｔｒｏｌ  Ｓｙｓｔｅｍｓ」、２００８年７月２４日
【発明の概要】
【発明が解決しようとする課題】
【００１１】
滞留時間の計算は、同期パケットがノードの入口物理インタフェースにおいて受信されたまさにその時に、入口タイムスタンプが生成され、同期パケットがノードの出口物理インタフェースによって送信されたまさにその時に、出口タイムスタンプが生成されるという事実に基づいている。したがって、ノードの入口物理インタフェースおよび出口物理インタフェースが、それぞれのタイムスタンプ生成器と適切に連携することが必要とされる。
【００１２】
しかし、不都合なことに、現在のパケット交換ネットワークのほとんどのノードは、タイムスタンプ生成器と適切に連携する物理インタフェースを提供しない。
【００１３】
原理的には、ノード内での同期パケットの滞留時間は、ノードの入口物理インタフェースおよび出口物理インタフェースにおいてではなく、ノードに含まれる（すなわち、入口物理インタフェースと出口物理インタフェースの間に配置される）他の２つのデバイスにおいて生成される２つのタイムスタンプの間の差として、計算することができる。
【００１４】
しかし、不都合なことに、この計算された滞留時間は、おそらくは入口物理インタフェースおよび出口物理インタフェースとタイムスタンプが生成されるデバイスとの間に介在するコンポーネント（例えば、ＭＡＣ層の入口ＦＩＦＯバッファおよび出口ＦＩＦＯバッファ）によって導入される遅延を考慮していない。上で言及したように、これらの遅延は、ノードにおけるトラフィック状態に応じて、予測不能な方法で変動する。したがって、この場合、計算された滞留時間は、不都合なことに、変動する予測不能な誤差による影響を受けるので、正確ではない。
【００１５】
したがって、発明者らは、上述の難点を克服する、受信パケット（排他的にではないが、特に同期パケット）の累積滞留時間をパケット交換通信ネットワークのノードにおいて更新するための方法を提供するという問題に取り組んだ。
【００１６】
特に、発明者らは、入口タイムスタンプおよび出口タイムスタンプが必ずしも入口物理インタフェースおよび出口物理インタフェースにおいて生成されない、受信パケット（排他的にではないが、特に同期パケット）の累積滞留時間をパケット交換通信ネットワークのノードにおいて更新するための方法であるとともに、同時に正確な累積滞留時間も提供する方法を提供するという問題に取り組んだ。
【課題を解決するための手段】
【００１７】
本明細書および特許請求の範囲では、「入口物理タイムスタンプ」および「出口物理タイムスタンプ」という表現は、ノードの入口／出口物理インタフェース（すなわち、ＯＳＩモデルのレイヤ１において動作するインタフェース）と適切に連携するタイムスタンプ生成器によって生成されるタイムスタンプを指す。他方、「入口論理タイムスタンプ」および「出口論理タイムスタンプ」という表現は、ＯＳＩモデルのレイヤ１よりも高位のレイヤ（例えばレイヤ２）においてパケットを処理するノードのデバイスと適切に連携するタイムスタンプ生成器によって生成されるタイムスタンプを指す。
【００１８】
さらに、「仮想論理／物理タイムスタンプ」という表現は、計算モジュールによって計算される論理／物理タイムスタンプの推定値を指す。
【００１９】
第１の態様によれば、本発明は、パケット交換通信ネットワークのノードにおいて受信された同期パケットの累積滞留時間を更新するための方法を提供し、累積滞留時間は、同期パケットを生成した別のノードとノードの間に介在するパケット交換ネットワークのノードでの同期パケットの滞留時間の累積和に等しく、ノードは、同期パケットを受信するように構成された入口回路と、同期パケットをパケット交換通信ネットワークのまた別のノードに送信するように構成された出口回路とを備え、方法は：
ａ）出口回路において、同期パケットを入口回路から受け取るステップと、
ｂ）出口回路の出口タイムスタンプ生成器において、出口タイムスタンプを生成するステップと、
ｃ）出口回路において、出口タイムスタンプと、出口タイムスタンプ生成器の下流に配置されるバッファにおけるバッファリングが原因で、同期パケットによって経験されると推定される可変遅延とに基づいて、仮想タイムスタンプを計算するステップと、
ｄ）出口回路において、同期パケットをまた別のノードに送信する前に、累積滞留時間を更新するために仮想タイムスタンプを使用するステップと
を含む。
【００２０】
好ましくは、ステップｂ）は、出口論理タイムスタンプを生成するステップを含む。
【００２１】
好ましくは、ステップｃ）は、出口論理タイムスタンプと、出口回路に含まれ、出口タイムスタンプ生成器の下流に配置される、出口バッファにおけるバッファリングが原因で、同期パケットによって経験されると推定される可変遅延とに基づいて、仮想出口物理タイムスタンプを計算するステップを含む。
【００２２】
好ましくは、ステップｃ）は、仮想出口物理タイムスタンプと、また別のノードの別の入口回路に含まれる入口バッファにおけるバッファリングが原因で、同期パケットによって経験されると推定される可変遅延とに基づいて、仮想入口論理タイムスタンプを計算するステップをさらに含む。
【００２３】
好ましくは、ステップｂ）は、出口物理タイムスタンプを生成するステップを含む。
【００２４】
好ましくは、ステップｃ）は、出口物理タイムスタンプと、また別のノードの別の入口回路に含まれる入口バッファにおけるバッファリングが原因で、同期パケットによって経験されると推定される可変遅延とに基づいて、仮想入口論理タイムスタンプを計算するステップを含む。
【００２５】
好ましくは、方法は、ステップａ）の前に、入口回路が同期パケットを受信したときに、入口回路において入口タイムスタンプを生成するステップをさらに含む。
【００２６】
好ましくは、方法は、ステップａ）の前に、入口回路において入口タイムスタンプを同期パケットに書き込むステップをさらに含む。
【００２７】
好ましくは、ステップｄ）は、入口タイムスタンプを同期パケットから読み取るステップと、仮想タイムスタンプと入口タイムスタンプの間の差として、滞留時間を計算するステップと、滞留時間を累積滞留時間に加算することによって、累積滞留時間を更新するステップとを含む。
【００２８】
好ましくは、方法は、ステップａ）の前に、入口回路において入口タイムスタンプを累積滞留時間から減算するステップをさらに含む。
【００２９】
好ましくは、ステップｄ）は、仮想タイムスタンプを累積滞留時間に加算するステップを含む。
【００３０】
好ましくは、ステップｄ）は、同期パケットをまた別のノードに送信する前に、更新された累積滞留時間を同期パケットに書き込むステップをさらに含む。
【００３１】
本発明の第２の態様によれば、本発明は、コンピュータ上でプログラムが実行された場合に、上で説明した方法のステップを実行するための、コンピュータ実行可能命令を含む、コンピュータプログラム製品を提供する。
【００３２】
本発明の第３の態様によれば、本発明は、パケット交換通信ネットワークのためのノードを提供し、ノードは：
−  同期パケットを受信するように構成された入口回路であって、累積滞留時間を、同期パケットを生成した別のノードとノードの間に介在するパケット交換ネットワークのノードでの同期パケットの滞留時間の累積和に等しく関連付ける、入口回路と、
−  同期パケットを入口回路から受け取り、同期パケットをパケット交換通信ネットワークのまた別のノードに送信するように構成された出口回路であって：
−  出口タイムスタンプを生成するように構成された出口タイムスタンプ生成器と、
−  出口タイムスタンプと、出口タイムスタンプ生成器の下流に配置されるバッファにおけるバッファリングが原因で、同期パケットによって経験されると推定される可変遅延とに基づいて、仮想タイムスタンプを計算するように構成された計算モジュールと
を備える、出口回路とを備え、
出口回路は、累積滞留時間を更新するために仮想タイムスタンプを使用するようにさらに構成される。
【００３３】
本発明の第４の態様によれば、本発明は、上で説明したノードを含む、パケット交換通信ネットワークを提供する。
【００３４】
本発明の実施形態は、添付の図面を参照して読まれる、限定としてではなく、実施例として与えられた、以下の詳細な説明を読むことによって、より良く理解される。
【図面の簡単な説明】
【００３５】
【図１】本発明の第１の実施形態による、パケット交換通信ネットワークのノードのブロック図である。
【図２ａ】本発明の第１の実施形態の第１の変形による、図１のノードの動作を説明するフローチャートである。
【図２ｂ】本発明の第１の実施形態の第２の変形による、図１のノードの動作を説明するフローチャートである。
【図３ａ】図１のノードによって受信される同期パケットのフォーマットを概略的に示す図である。
【図３ｂ】図１のノードによって受信される同期パケットのフォーマットを概略的に示す図である。
【図４】図１のノードの動作を説明する３つの時間ダイアグラムである。
【図５】本発明の第２の実施形態による、パケット交換通信ネットワークの１対のノードのブロック図である。
【図６ａ】本発明の第２の実施形態の第１の変形による、図５の１対のノードの動作を説明するフローチャートである。
【図６ｂ】本発明の第２の実施形態の第２の変形による、図５の１対のノードの動作を説明するフローチャートである。
【図７】本発明の第３の実施形態による、パケット交換通信ネットワークの１対のノードのブロック図である。
【図８ａ】本発明の第３の実施形態の第１の変形による、図７の１対のノードの動作を説明するフローチャートである。
【図８ｂ】本発明の第３の実施形態の第２の変形による、図７の１対のノードの動作を説明するフローチャートである。
【発明を実施するための形態】
【００３６】
図１は、本発明の第１の実施形態による、パケット交換通信ネットワークのノードＮを示している。好ましくは、パケット交換通信ネットワークは、上で言及したＩＥＥＥ  １５８８（ＴＭ）−２００８同期プロトコルをサポートする、イーサネットネットワークである。
【００３７】
ノードＮは、好ましくは、入口回路ＩＣを備え、今度は、その入口回路ＩＣが、カスケード接続される、入口物理インタフェースＰＨＹｉｎと、入口バッファＢｉｎと、入口パケットプロセッサＰＰｉｎとを備える。入口物理インタフェースＰＨＹｉｎは、好ましくは、パケット交換通信ネットワークの別のノード（図示せず）に、物理リンクを介して接続される。ノードＮは、入口物理インタフェースＰＨＹｉｎと入口パケットプロセッサＰＰｉｎの間に介在する、図１には示されていない、さらなる入口ブロックを備えることができる。さらに、ノードＮは、好ましくは、出口回路ＥＣを備え、今度は、その出口回路ＥＣが、カスケード接続される、出口パケットプロセッサＰＰｅｇと、出口バッファＢｅｇと、出口物理インタフェースＰＨＹｅｇとを備える。出口物理インタフェースＰＨＹｅｇは、好ましくは、パケット交換通信ネットワークのまた別のノード（図示されず）に、別の物理リンクを介して接続される。ノードＮは、出口パケットプロセッサＰＰｅｇと出口物理インタフェースＰＨＹｅｇの間に介在する、図１には示されていない、さらなる出口ブロックを備えることができる。
【００３８】
好ましくは、ノードＮは、入口回路ＩＣと出口回路ＥＣの間に介在する他のハードウェアブロックおよび／またはソフトウェアブロックをさらに備える。これらのブロックは、本明細書には関係がないので、図示されていない。
【００３９】
好ましくは、入口パケットプロセッサＰＰｉｎと出口パケットプロセッサＰＰｅｇは、１つまたは複数のＦＰＧＡ（「フィールドプログラマブルゲートアレイ」）デバイス内に、例えば、ノードＮの（図１には示されていない）ネットワークプロセッサ内に実装される。
【００４０】
入口回路ＩＣは、好ましくは、入口タイムスタンプ生成器ＴＳＧｉｎをさらに備え、出口回路ＥＣは、好ましくは、出口タイムスタンプ生成器ＴＳＧｅｇをさらに備える。本発明の第１の実施形態によれば、これ以降、本明細書でより詳細に説明するように、入口タイムスタンプ生成器ＴＳＧｉｎは、入口物理タイムスタンプを生成するために、入口物理インタフェースＰＨＹｉｎと適切に連携し、一方、出口タイムスタンプ生成器ＴＳＧｅｇは、出口論理タイムスタンプを生成するために、出口パケットプロセッサＰＰｅｇと適切に連携する。
【００４１】
好ましくは、出口回路ＥＣは、出口パケットプロセッサＰＰｅｇと出口タイムスタンプ生成器ＴＳＧｅｇとに接続された、計算モジュールＣＭも備える。好ましくは、計算モジュールＣＭは、ＦＰＧＡデバイス内に、例えば、ノードＮの（図１には示されていない）ネットワークプロセッサ内に実装される。
【００４２】
図２ａ、図３ａ、および図３ｂを参照しながら、本発明の第１の実施形態の第１の変形によるノードＮの動作が今から説明される。
【００４３】
ノードＮは、その入口物理インタフェースＰＨＹｉｎを介して、ノードＮに隣接する上で言及した別のノードからパケットを受信すると仮定される。これらのパケットは、データパケットおよび／または同期パケットを含むことができる。同期パケットは、好ましくは、例えば、ＩＥＥＥ  １５８８（ＴＭ）−２００８プロトコルなどの、同期プロトコルに従ってフォーマットされる。
【００４４】
具体的には、ステップ２００において、ノードＮの入口物理インタフェースＰＨＹｉｎが、同期パケットＳＰを受信する。同期パケットＳＰは、好ましくは、図３ａに示されるようにフォーマットされる。好ましくは、同期パケットＳＰは、ヘッダＨ−ＳＰと、ボディＢ−ＳＰとを含む。
【００４５】
好ましくは、ボディＢ−ＳＰは、タイムスタンプ（例えば、ＩＥＥＥ  １５８８（ＴＭ）−２００８プロトコルによって提供されるタイムスタンプｔ１）と、おそらくは他の情報とを含むが、他の情報は、本明細書に関係しないので、図３ａおよび図３ｂには示されていない。
【００４６】
好ましくは、ヘッダＨ−ＳＰは、調整フィールドＡＦと、他のフィールドとを含むが、他のフィールドは、本明細書に関係しないので、図３ａおよび図３ｂには示されていない。好ましくは、同期パケットＳＰが、ＩＥＥＥ  １５８８（ＴＭ）−２００８プロトコルパケットである場合、調整フィールドＡＦは、「補正フィールド」である。同期パケットＳＰが、ノードＮにおいて受信されたとき、調整フィールドＡＦは、好ましくは、同期パケットＳＰを生成したノードとノードＮの間に介在するパケット交換ネットワークのノードでの同期パケットＳＰの滞留時間の累積和に等しい累積滞留時間ＣＲＴを含む。
【００４７】
同期パケットＳＰが入口物理インタフェースＰＨＹｉｎによって受信されると、実質的に同時に、入口タイムスタンプ生成器ＴＳＧｉｎが、入口物理タイムスタンプＴＳ（ＩＮ，ＰＨＹ）を生成する（ステップ２０１）。その後、入口物理インタフェースＰＨＹｉｎは、好ましくは、入口物理タイムスタンプＴＳ（ＩＮ，ＰＨＹ）を同期パケットＳＰのフィールドに書き込む（ステップ２０１ａ）。好ましくは、そのフィールドは、ヘッダＨ−ＳＰの（図３ａには示されていない）専用フィールドである。
【００４８】
その後、同期パケットＳＰは、入口バッファＢｉｎに格納される（ステップ２０２）。その後、好ましくは、同期パケットＳＰは、同期パケットＳＰを処理する入口パケットプロセッサＰＰｉｎに転送される（ステップ２０３）。
【００４９】
その後、同期パケットＳＰは、出口パケットプロセッサＰＰｅｇに到達し、出口パケットプロセッサＰＰｅｇは、同期パケットＳＰを処理する（ステップ２０４）。出口パケットプロセッサＰＰｅｇは、図１に示された入口パケットプロセッサＰＰｉｎからだけでなく、ノードＮに含まれる（図１には示されていない）他の入口パケットプロセッサからも、パケットを受け取ることに留意されたい。ステップ２０４の間に、出口パケットプロセッサＰＰｅｇは、好ましくは、同期パケットＳＰにシーケンス番号ＳＮを関連付けるが、シーケンス番号ＳＮは、パケットが出口パケットプロセッサＰＰｅｇにおいて受け取られた順番を考慮している。さらに、その処理の間に、出口パケットプロセッサＰＰｅｇは、好ましくは、入口物理タイムスタンプＴＳ（ＩＮ，ＰＨＹ）を同期パケットＳＰから読み取る（ステップ２０４ａ）。
【００５０】
その後、出口タイムスタンプ生成器ＴＳＧｅｇが、好ましくは、出口論理タイムスタンプＴＳ（ＥＧ，ＬＯＧ）を生成する（ステップ２０５）。その後、計算モジュールＣＭが、好ましくは、同期パケットＳＰが出口物理インタフェースＰＨＹｅｇによって実際に送信される時刻を実質的に表す、仮想出口物理タイムスタンプＶＩＲＴＵＡＬ＿ＴＳ（ＥＧ，ＰＨＹ）を計算する（ステップ２０６）。その後、計算モジュールＣＭは、好ましくは、滞留時間ＲＴを、仮想出口物理タイムスタンプＶＩＲＴＵＡＬ＿ＴＳ（ＥＧ，ＰＨＹ）と入口物理タイムスタンプＴＳ（ＩＮ，ＰＨＹ）の差、すなわち：
ＲＴ＝ＶＩＲＴＵＡＬ＿ＴＳ（ＥＧ，ＰＨＹ）−ＴＳ（ＩＮ，ＰＨＹ）  ［２］
として計算する（ステップ２０７）。
【００５１】
その後、出口パケットプロセッサＰＰｅｇは、好ましくは、滞留時間ＲＴを使用して、図３ｂに示されるように、同期パケットＳＰのヘッダＨ−ＳＰの調整フィールドＡＦに含まれる累積滞留時間ＣＲＴに滞留時間ＲＴを加算することによって、累積滞留時間ＣＲＴを更新する（ステップ２０８）。
【００５２】
その後、同期パケットＳＰは、出口パケットプロセッサＰＰｅｇによって、出口バッファＢｅｇに転送され、同期パケットＳＰは、出口バッファＢｅｇに格納される（ステップ２０９）。その後、同期パケットＳＰは、出口物理インタフェースＰＨＹｅｇに転送され、出口物理インタフェースＰＨＹｅｇは、同期パケットＳＰを、ノードＮに隣接する上で言及したまた別のノードに送信する（ステップ２１０）。
【００５３】
これ以降、本明細書では、ステップ２０６において計算モジュールＣＭによって実施される、仮想出口物理タイムスタンプＶＩＲＴＵＡＬ＿ＴＳ（ＥＧ，ＰＨＹ）の計算が、詳細に説明される。
【００５４】
好ましくは、計算モジュールＣＭは、出口バッファＢｅｇに関連する多数のパラメータを知っている。この多数のパラメータは、好ましくは、以下のパラメータの１つまたは複数を含む：
−  書き込みビットレートＷＲ。
−  読み取りビットレートＲＲ。
−  書き込み粒度ＷＧ、すなわち、出口バッファＢｅｇに並列して書き込まれるビットの数。
−  読み取り粒度ＲＧ、すなわち、出口バッファＢｅｇから並列して読み取られるビットの数。
−  書き込みカットスルー待ち時間ＷＣ、すなわち、パケットが出口バッファＢｅｇに書き込まれるときに経験する一定の遅延。
−  読み取りカットスルー待ち時間ＲＣ、すなわち、パケットが出口バッファＢｅｇから読み取られるときに経験する一定の遅延。
−  書き込みビットレートＷＲと読み取りビットレートＲＲの間の差を考慮する調整係数Ａ。特に、書き込みビットレートＷＲと読み取りビットレートＲＲが等しい（例えば、両方が同じＰＬＬにロックされている）理想的なケースでは、Ａは１に等しい。しかし、一般に、ＷＲとＲＲの間の差は＋／−２００ｐｐｍであり、したがって、Ａは１よりも大きい。
【００５５】
ステップ２０６の間に、計算モジュールＣＭは、好ましくは、以下のサブステップを実行する：
ａ）計算モジュールＣＭは、同期パケットＳＰのシーケンス番号ＳＮとビット数Ｌ（ＳＮ）とを検出する。
ｂ）計算モジュールＣＭは、同期パケットＳＰが出口バッファＢｅｇに完全に書き込まれる時刻ＴＴ（ＳＮ）を、以下の式を用いて計算する：
ＴＴ（ＳＮ）＝ＴＳ（ＥＧ，ＬＯＧ）＋ＷＣ＋ＷＧ×ｃｅｉｌ（Ｌ（ＳＮ）／ＷＧ）／ＷＲ  ［３］
ここで、ｃｅｉｌ（Ｌ（ＳＮ）／ＷＧ）は、Ｌ（ＳＮ）とＷＧの間の比を下回らない最小の整数を表す。
ｃ）計算モジュールＣＭは、同期パケットＳＰが出口バッファＢｅｇに書き込まれ始める前に出口バッファＢｅｇにすでに格納されているビットを読み取る動作のみを考慮し、同期パケットＳＰを書き込む動作を考慮しない、時刻ＴＴ（ＳＮ）における出口バッファＢｅｇの充満レベルＦＬｂ（ＳＮ）を、以下の式を用いて計算する：
ＦＬｂ（ＳＮ）＝ｍａｘ｛０，［ＦＬａ（ＳＮ−１）−Ａ×ＲＲ×（ＴＴ（ＳＮ）−ＴＴ（ＳＮ−１））］｝  ［４］
ＦＬａ（ＳＮ−１）は、読み取りカットスルー待ち時間ＲＣも考慮した、同期パケットＳＰに先行するパケット（すなわち、ＳＮ−１に等しいシーケンス番号を有するパケット）が出口バッファＢｅｇに完全に書き込まれたときの、出口バッファＢｅｇの充満レベルである。表記ｍａｘ｛−｝は、ＦＬｂ（ＳＮ）が中括弧の内部に含まれる値のうちの最大値に等しいことを表し、一方、ＴＴ（ＳＮ−１）は、同期パケットＳＰに先行するパケットが出口バッファＢｅｇに完全に書き込まれた時刻である。したがって、ＦＬｂ（ＳＮ）は、充満レベルＦＬａ（ＳＮ−１）と読み取りビットレートＲＲが、時間間隔ＴＴ（ＳＮ）−ＴＴ（ＳＮ−１）において、出口バッファＢｅｇが完全に空になるようなものである場合、ゼロに等しい。
ｄ）計算モジュールＣＭは、仮想出口物理タイムスタンプＶＩＲＴＵＡＬ＿ＴＳ（ＥＧ，ＰＨＹ）を、以下の式を用いて計算する：
ＶＩＲＴＵＡＬ＿ＴＳ（ＥＧ，ＰＨＹ）＝ＴＴ（ＳＮ）＋［ＲＧ×ｃｅｉｌ（ＦＬｂ（ＳＮ）／ＲＧ）／ＲＲ］＋ＲＣ  ［５］
ｅ）計算モジュールＣＭは、同期パケットＳＰが出口バッファＢｅｇに完全に書き込まれたときの、出口バッファＢｅｇの充満レベルＦＬａ（ＳＮ）を、以下の式を用いて計算する：
ＦＬａ（ＳＮ）＝ＦＬｂ（ＳＮ）＋ＲＣ×ＲＲ＋Ｌ（ＳＮ）  ［６］
【００５６】
上記の式［５］に従って計算される仮想出口物理タイムスタンプＶＩＲＴＵＡＬ＿ＴＳ（ＥＧ，ＰＨＹ）は、同期パケットＳＰが出口バッファＢｅｇに格納されたときに同期パケットＳＰによって累積される遅延のみを考慮する。式［５］は、例えば、出口パケットプロセッサＰＰｅｇと出口物理インタフェースＰＨＹｅｇの間におそらくは介在する（図１には示されていない）他のブロックによる同期パケットＳＰの処理に起因する、他の起こり得る遅延を考慮しない。一定だが（ＴＸとＲＸの）２つの方向では異なる、これらの他の起こり得る遅延が知られている場合、それらは、ＩＥＥＥ  １５８８（ＴＭ）−２００８プロトコルによって予測されるものとして、補償することができる。
【００５７】
（上で説明したステップ２０６のサブステップａ）−ｅ）を含む）ステップ２００−２１０は、好ましくは、ノードＮで受信された同期パケット毎に繰り返される。データパケットの場合、ステップ２０６のサブステップｄ）と、ステップ２０７−２０８は、好ましくは、省略される。
【００５８】
有利なことに、本発明の第１の実施形態の第１の変形による方法は、ノードＮの出口物理インタフェースＰＨＹｅｇがタイムスタンプ生成器と適切に連携しない場合でも、同期パケットＳＰの滞留時間を計算することを可能にする。有利なことに、出口タイムスタンプは、出口物理インタフェースＰＨＹｅｇの上流で生成することができるが、その理由は、仮想出口物理タイムスタンプＶＩＲＴＵＡＬ＿ＴＳ（ＥＧ，ＰＨＹ）が、出口物理インタフェースＰＨＹｅｇと出口タイムスタンプが生成されるデバイスとの間に介在するコンポーネント（すなわち、出口バッファＢｅｇ）によって導入される遅延を考慮しているからである。仮想出口物理タイムスタンプＶＩＲＴＵＡＬ＿ＴＳ（ＥＧ，ＰＨＹ）は、同期パケット毎に計算され、したがって、その値は、ノードＮの現在のトラフィック状態によって、同期パケット毎に変化する。これは、これ以降、図４を参照して本明細書で詳細に説明される実施例から明らかなように、特にＭＡＣ層の出口バッファにおいて同期パケットＳＰによって経験される起こり得る遅延変動を考慮することによって、正確な方法で同期パケットＳＰの調整フィールドＡＦを更新することを可能にする。
【００５９】
図４は、本発明の第１の実施形態の第１の変形による、ノードＮの動作を説明する３つの例示的な時間ダイアグラムを示している。図４の時間ダイアグラムは、（図１の（ａ）によって表される）出口パケットプロセッサＰＰｅｇの入力と、（図１の（ｂ）によって表される）出口バッファＢｅｇの入力および（図１の（ｃ）によって表される）出口バッファＢｅｇの出力とに関する。実施例として、図４は、ビット数がＬ（３）の第１の同期パケットＳＰ３と、それに続く、ビット数がＬ（４）のデータパケットＤＰ４と、ビット数がＬ（５）の第２の同期パケットＳＰ５とを示している。パケットＳＰ３、ＤＰ４、ＳＰ５は、入口物理インタフェースＰＨＹｉｎを介して、または図１には示されていない他の入口物理インタフェースを介して、ノードＮにおいて受信することができる。
【００６０】
パケットＳＰ３、ＤＰ４、ＳＰ５が、出口パケットプロセッサＰＰｅｇにおいて受け取られたとき、出口パケットプロセッサＰＰｅｇは、好ましくは、パケットＳＰ３、ＤＰ４、ＳＰ５をそれぞれの連続的シーケンス番号に、すなわち、３、４、５に関連付ける。
【００６１】
第１の同期パケットＳＰ３が出口パケットプロセッサＰＰｅｇにおいて受け取られたとき（ステップ２０４）、出口タイムスタンプ生成器ＴＳＧｅｇは、出口論理タイムスタンプＴＳ３（ＥＧ，ＬＯＧ）を生成する（ステップ２０５）。その後、ステップ２０６の間に、計算モジュールＣＭは、以下のことを行う：
ａ）第１の同期パケットＳＰ３のシーケンス番号ＳＮ＝３とビット数Ｌ（３）とを検出する。
ｂ）時刻ＴＴ（３）を、上記の式［３］を用いて計算する。すなわち：
ＴＴ（３）＝ＴＳ３（ＥＧ，ＬＯＧ）＋ＷＣ＋ＷＧ×ｃｅｉｌ（Ｌ（３）／ＷＧ）／ＷＲ
ｃ）時刻ＴＴ（３）における出口バッファＢｅｇの充満レベルＦＬｂ（３）を、上記の式［４］を用いて計算する。すなわち：
ＦＬｂ（３）＝ｍａｘ｛０，［ＦＬａ（２）−Ａ×ＲＲ×（ＴＴ（３）−ＴＴ（２））］｝
ここで、ＦＬａ（２）は、第１の同期パケットＳＰ３に先行するパケット（すなわち、２に等しいシーケンス番号を有するパケット）が出口バッファＢｅｇに完全に書き込まれたときの、出口バッファＢｅｇの充満レベルである。以下においては、簡単にするために、ＦＬｂ（３）がゼロに等しいことを、すなわち、第１の同期パケットＳＰ３が出口バッファＢｅｇに完全に書き込まれたとき、他のパケットのビットは出口バッファＢｅｇ内に存在しないことを仮定する。
ｄ）仮想出口物理タイムスタンプＶＩＲＴＵＡＬ＿ＴＳ３（ＥＧ，ＰＨＹ）を、上記の式［５］を用いて計算する。すなわち：
ＶＩＲＴＵＡＬ＿ＴＳ３（ＥＧ，ＰＨＹ）＝ＴＴ（３）＋［ＲＧ×ｃｅｉｌ（ＦＬｂ（３）／ＲＧ）／ＲＲ］＋ＲＣ
ｅ）第１の同期パケットＳＰ３が出口バッファＢｅｇに完全に書き込まれたときの、出口バッファＢｅｇの充満レベルＦＬａ（３）を、上記の式［６］を用いて計算する。すなわち：
ＦＬａ（３）＝ＦＬｂ（３）＋ＲＣ×ＲＲ＋Ｌ（３）
【００６２】
先に仮定したように、第１の同期パケットＳＰ３が出口バッファＢｅｇに完全に書き込まれたとき、出口バッファＢｅｇは空である。したがって、仮想出口物理タイムスタンプＶＩＲＴＵＡＬ＿ＴＳ３（ＥＧ，ＰＨＹ）は、書き込みカットスルー待ち時間ＷＣと、読み取りカットスルー待ち時間ＲＣと、第１の同期パケットＳＰ３が出口バッファＢｅｇに書き込まれるのに必要とされる時間間隔である、ＷＧ×ｃｅｉｌ（Ｌ（３）／ＷＧ）／ＷＲのみに依存する。
【００６３】
ステップ２０６が終了すると、計算モジュールＣＭは、上記の式［２］に従って、滞留時間ＲＴ３を計算する（ステップ２０７）。その後、滞留時間ＲＴ３は、第１の同期パケットＳＰ３の調整フィールドＡＦの内容を更新するために使用される（ステップ２０８）。その後、第１の同期パケットＳＰ３の処理が、図２ａに示されたステップ２０９−２１０に従って続行される。
【００６４】
データパケットＤＰ４が出口パケットプロセッサＰＰｅｇにおいて受け取られたとき（ステップ２０４）、出口タイムスタンプ生成器ＴＳＧｅｇは、出口論理タイムスタンプＴＳ４（ＥＧ，ＬＯＧ）を生成する（ステップ２０５）。その後、ステップ２０６の間に、計算モジュールＣＭは、以下のことを行う：
ａ）データパケットＤＰ４のシーケンス番号ＳＮ＝４とビット数Ｌ（４）とを検出する。
ｂ）時刻ＴＴ（４）を、上記の式［３］を用いて計算する。すなわち：
ＴＴ（４）＝ＴＳ４（ＥＧ，ＬＯＧ）＋ＷＣ＋ＷＧ×ｃｅｉｌ（Ｌ（４）／ＷＧ）／ＷＲ
ｃ）時刻ＴＴ（４）における出口バッファＢｅｇの充満レベルＦＬｂ（４）を、上記の式［４］を用いて計算する。すなわち：
ＦＬｂ（４）＝ｍａｘ｛０，［ＦＬａ（３）−Ａ×ＲＲ×（ＴＴ（４）−ＴＴ（３））］｝
サブステップｄ）は、好ましくは、省略される。
ｅ）データパケットＤＰ４が出口バッファＢｅｇに完全に書き込まれたときの、出口バッファＢｅｇの充満レベルＦＬａ（４）を、上記の式［５］を用いて計算する。すなわち：
ＦＬａ（４）＝ＦＬｂ（４）＋ＲＣ×ＲＲ＋Ｌ（４）
【００６５】
ステップ２０６の後、計算モジュールＣＭは、ステップ２０７を省略する。ステップ２０８も、好ましくは、省略される。その後、データパケットＤＰ４の処理が、図２ａに示された次のステップ２０９−２１０に従って続行される。
【００６６】
第２の同期パケットＳＰ５が出口パケットプロセッサＰＰｅｇにおいて受け取られたとき（ステップ２０４）、出口タイムスタンプ生成器ＴＳＧｅｇは、出口論理タイムスタンプＴＳ５（ＥＧ，ＬＯＧ）を生成する（ステップ２０５）。その後、ステップ２０６の間に、計算モジュールＣＭは、以下のことを行う：
ａ）第２の同期パケットＳＰ５のシーケンス番号ＳＮ＝５とビット数Ｌ（５）とを検出する。
ｂ）時刻ＴＴ（５）を、上記の式［３］を用いて計算する。すなわち：
ＴＴ（５）＝ＴＳ５（ＥＧ，ＬＯＧ）＋ＷＣ＋ＷＧ×ｃｅｉｌ（Ｌ（５）／ＷＧ）／ＷＲ
ｃ）時刻ＴＴ（５）における出口バッファＢｅｇの充満レベルＦＬｂ（５）を、上記の式［４］を用いて計算する。すなわち：
ＦＬｂ（５）＝ｍａｘ｛０，［ＦＬａ（４）−Ａ×ＲＲ×（ＴＴ（５）−ＴＴ（４））］｝
ｄ）仮想出口物理タイムスタンプＶＩＲＴＵＡＬ＿ＴＳ５（ＥＧ，ＰＨＹ）を、上記の式［５］を用いて計算する。すなわち：
ＶＩＲＴＵＡＬ＿ＴＳ５（ＥＧ，ＰＨＹ）＝ＴＴ（５）＋［ＲＧ×ｃｅｉｌ（ＦＬｂ（５）／ＲＧ）／ＲＲ］＋ＲＣ
ｅ）第２の同期パケットＳＰ５が出口バッファＢｅｇに完全に書き込まれたときの、出口バッファＢｅｇの充満レベルＦＬａ（５）を、上記の式［６］を用いて計算する。すなわち：
ＦＬａ（５）＝ＦＬｂ（５）＋ＲＣ×ＲＲ＋Ｌ（５）
【００６７】
この後者のケースでは、仮想出口物理タイムスタンプＶＩＲＴＵＡＬ＿ＴＳ５（ＥＧ，ＰＨＹ）は、書き込みカットスルー待ち時間ＷＣと、読み取りカットスルー待ち時間ＲＣと、第２の同期パケットＳＰ５が出口バッファＢｅｇに書き込まれるのに必要とされる時間間隔である、ＷＧ×ｃｅｉｌ（Ｌ（５）／ＷＧ）／ＷＲとに加えて、データパケットＤＰ４全体を出口バッファＢｅｇから読み取り終えるのに必要とされる時間間隔である、［ＲＧ×ｃｅｉｌ（ＦＬｂ（５）／ＲＧ）／ＲＲ］にも依存する。
【００６８】
ステップ２０６が終了すると、計算モジュールＣＭは、上記の式［２］に従って、滞留時間ＲＴ５を計算する（ステップ２０７）。その後、滞留時間ＲＴ５は、第２の同期パケットＳＰ５の調整フィールドＡＦの内容を更新するために使用される（ステップ２０８）。その後、第２の同期パケットＳＰ５の処理が、図２ａに示された次のステップ２０９−２１０に従って続行される。
【００６９】
図２ｂは、本発明の第１の実施形態の第２の変形による、ノードＮの動作を示している。
【００７０】
この第２の変形によれば、ステップ２０１において、入口タイムスタンプ生成器ＴＳＧｉｎが入口物理タイムスタンプＴＳ（ＩＮ，ＰＨＹ）を生成するとき、入口物理タイムスタンプＴＳ（ＩＮ，ＰＨＹ）を同期パケットＳＰの専用フィールドに書き込む（ステップ２０１ａ）代わりに、入口物理インタフェースＰＨＹｉｎは、好ましくは、入口物理タイムスタンプＴＳ（ＩＮ，ＰＨＹ）を使用して、同期パケットＳＰの調整フィールドＡＦを更新する（ステップ２０１ａ’）。具体的には、入口物理インタフェースＰＨＹｉｎは、好ましくは、入口物理タイムスタンプＴＳ（ＩＮ，ＰＨＹ）を、調整フィールドＡＦに含まれる累積滞留時間ＣＲＴから減算する。
【００７１】
その後、ステップ２０２から２０６が、第１の変形と同様に実行される。
【００７２】
その後、仮想出口物理タイムスタンプＶＩＲＴＵＡＬ＿ＴＳ（ＥＧ，ＰＨＹ）の計算（ステップ２０６）が完了した後、滞留時間ＲＴを計算する（ステップ２０７）代わりに、仮想出口物理タイムスタンプＶＩＲＴＵＡＬ＿ＴＳ（ＥＧ，ＰＨＹ）が、出口パケットプロセッサＰＰｅｇによって直接的に使用されて、同期パケットＳＰの調整フィールドＡＦを更新する（ステップ２０８’）。具体的には、出口パケットプロセッサＰＰｅｇは、仮想出口物理タイムスタンプＶＩＲＴＵＡＬ＿ＴＳ（ＥＧ，ＰＨＹ）を累積滞留時間ＣＲＴに加算する。第２の変形のステップ２０１ａ’および２０８’で実行される動作は、第１の変形の動作２０７−２０８に基本的に対応することに留意されたい。したがって、有利なことに、この第２の変形によれば、入口物理タイムスタンプＴＳ（ＩＮ，ＰＨＹ）を出口パケットプロセッサＰＰｅｇに転送するための専用フィールドは、同期パケットＳＰに必要ではない。
【００７３】
図５は、本発明の第２の実施形態による、パケット交換ネットワークの第１のノードＮ１と第２のノードＮ２のブロック図を示している。第１のノードＮ１と第２のノードＮ２は、好ましくは、隣接している。第１のノードＮ１と第２のノードＮ２はともに、上で説明したノードＮに類似している。
【００７４】
具体的には、第１のノードＮ１は、好ましくは、出口回路ＥＣ１を備え、今度は、その出口回路ＥＣ１が、カスケード接続される、出口パケットプロセッサＰＰ１ｅｇと、出口バッファＢ１ｅｇと、出口物理インタフェースＰＨＹ１ｅｇとを備える。出口回路ＥＣ１は、好ましくは、出口タイムスタンプ生成器ＴＳＧ１ｅｇをさらに備える。この第２の実施形態によれば、これ以降、本明細書でより詳細に説明するように、出口タイムスタンプ生成器ＴＳＧ１ｅｇは、出口物理タイムスタンプを生成するために、出口物理インタフェースＰＨＹ１ｅｇと適切に連携する。好ましくは、出口回路ＥＣ１は、出口タイムスタンプ生成器ＴＳＧ１ｅｇと物理出口インタフェースＰＨＹ１ｅｇとに接続された、計算モジュールＣＭ１も備える。第１のノードＮ１の他のコンポーネントは、本明細書に関係しないので、図５には示されていない。
【００７５】
他方、第２のノードＮ２は、好ましくは、入口回路ＩＣ２を備え、今度は、その入口回路ＩＣ２が、カスケード接続される、入口物理インタフェースＰＨＹ２ｉｎと、入口バッファＢ２ｉｎと、入口パケットプロセッサＰＰ２ｉｎとを備える。入口回路ＩＣ２は、好ましくは、入口タイムスタンプ生成器ＴＳＧ２ｉｎをさらに備える。本発明のこの第２の実施形態によれば、入口タイムスタンプ生成器ＴＳＧ２ｉｎは、入口論理タイムスタンプを生成するために、入口パケットプロセッサＰＰ２ｉｎと適切に連携する。第２のノードＮ２の他のコンポーネントは、本明細書に関係しないので、図５には示されていない。
【００７６】
図６ａを参照しながら、本発明の第２の実施形態の第１の変形による第１のノードＮ１の動作が今から説明される。
【００７７】
第１のノードＮ１は、パケットを生成し、第１のノードＮ１に隣接する（図５には示されていない）さらに別のノードからパケットを受信すると仮定される。これらのパケットは、データパケットおよび／または同期パケットを含むことができる。同期パケットは、好ましくは、例えば、ＩＥＥＥ  １５８８（ＴＭ）−２００８プロトコルなどの、同期プロトコルに従ってフォーマットされる。
【００７８】
これらのパケットは、第１のノードＮ１の様々なコンポーネントを横断して転送され、最後に、その一部が、出口パケットプロセッサＰＰ１ｅｇによって受け取られ、出口パケットプロセッサＰＰ１ｅｇは、パケットを処理し、それらを出口バッファＢ１ｅｇに転送する。出口バッファＢ１ｅｇは、好ましくは、パケットを格納し、それらを出口物理インタフェースＰＨＹ１ｅｇに転送する。
【００７９】
具体的には、出口物理インタフェースＰＨＹ１ｅｇが、出口バッファＢ１ｅｇから同期パケットＳＰを受け取る（ステップ６００）。同期パケットＳＰは、好ましくは、図３ａに示され、上で説明したようにフォーマットされる。ステップ６００の間に、出口物理インタフェースＰＨＹ１ｅｇは、好ましくは、同期パケットＳＰにシーケンス番号ＳＮを関連付けるが、シーケンス番号ＳＮは、パケットが出口物理インタフェースＰＨＹ１ｅｇにおいて受け取られた順番を考慮している。さらに、ステップ６００の間に、出口物理インタフェースＰＨＹ１ｅｇは、好ましくは、同期パケットＳＰの受信時に第１のノードＮ１で生成された入口タイムスタンプを同期パケットＳＰから読み取る（ステップ６００ａ）。入口タイムスタンプは、論理的なものでも、または物理的なものでもよい。簡単にするため、これ以降、本明細書では、入口タイムスタンプは、入口物理タイムスタンプＴＳ１（ＩＮ，ＰＨＹ）であると仮定される。
【００８０】
その後、出口タイムスタンプ生成器ＴＳＧ１ｅｇが、好ましくは、出口物理タイムスタンプＴＳ１（ＥＧ，ＰＨＹ）を生成する（ステップ６０１）。その後、計算モジュールＣＭ１が、好ましくは、同期パケットＳＰが第２のノードＮ２の入口パケットプロセッサＰＰ２ｉｎによって受信される時刻を実質的に表す、仮想入口論理タイムスタンプＶＩＲＴＵＡＬ＿ＴＳ２（ＩＮ，ＬＯＧ）を計算する（ステップ６０２）。この目的で、ステップ６０２の間に、計算モジュールＣＭ１は、好ましくは、同期パケットＳＰが入口物理インタフェースＰＨＹ２ｉｎによって実際に受信される時刻を実質的に表す、仮想入口物理タイムスタンプＶＩＲＴＵＡＬ＿ＴＳ２（ＩＮ，ＰＨＹ）が、出口物理タイムスタンプＴＳ１（ＥＧ，ＰＨＹ）に等しいと仮定する（すなわち、第１のノードＮ１と第２のノードＮ２を接続する物理リンクを伝搬する同期パケットＳＰの伝搬時間が、実質的にゼロであると仮定する）。
【００８１】
その後、計算モジュールＣＭ１は、好ましくは、滞留時間ＲＴ’を、仮想入口論理タイムスタンプＶＩＲＴＵＡＬ＿ＴＳ２（ＩＮ，ＬＯＧ）と入口物理タイムスタンプＴＳ１（ＩＮ，ＰＨＹ）の差、すなわち：
ＲＴ’＝ＶＩＲＴＵＡＬ＿ＴＳ２（ＩＮ，ＬＯＧ）−ＴＳ１（ＩＮ，ＰＨＹ）  ［７］
として計算する（ステップ６０３）。
【００８２】
その後、出口物理インタフェースＰＨＹ１ｅｇは、好ましくは、同期パケットＳＰのヘッダＨ−ＳＰの調整フィールドＡＦに含まれる累積滞留時間ＣＲＴに、式［７］に従って計算された滞留時間ＲＴ’を加算することによって、累積滞留時間ＣＲＴを更新する（ステップ６０４）。その後、出口物理インタフェースＰＨＹｅｇは、同期パケットＳＰを第２のノードＮ２に送信する（ステップ６０５）。
【００８３】
これ以降、本明細書では、ステップ６０２の間に計算モジュールＣＭ１によって実施される、仮想入口論理タイムスタンプＶＩＲＴＵＡＬ＿ＴＳ２（ＩＮ，ＬＯＧ）の計算が、詳細に説明される。
【００８４】
好ましくは、計算モジュールＣＭ１は、第２のノードＮ２の入口バッファＢ２ｉｎに関連する多数のパラメータを知っている。この多数のパラメータは、好ましくは、以下のパラメータの１つまたは複数を含む：
−  書き込みビットレートＷＲ’。
−  読み取りビットレートＲＲ’。
−  書き込み粒度ＷＧ’、すなわち、入口バッファＢ２ｉｎに並列して書き込まれるビットの数。
−  読み取り粒度ＲＧ’、すなわち、入口バッファＢ２ｉｎから並列して読み取られるビットの数。
−  書き込みカットスルー待ち時間ＷＣ’、すなわち、パケットが入口バッファＢ２ｉｎに書き込まれるときに経験する一定の遅延。
−  読み取りカットスルー待ち時間ＲＣ’、すなわち、パケットが入口バッファＢ２ｉｎから読み取られるときに経験する一定の遅延。
−  調整係数Ａ’（第１の実施形態の調整係数Ａに関連して上で説明したのと同じ考察が、調整係数Ａ’にも適用されるので、それを繰り返すことはしない）。
【００８５】
ステップ６０２の間に、計算モジュールＣＭ１は、好ましくは、以下のサブステップを実行する：
ａ）計算モジュールＣＭ１は、同期パケットＳＰのシーケンス番号ＳＮとビット数Ｌ（ＳＮ）とを検出する。
ｂ）計算モジュールＣＭ１は、同期パケットＳＰが入口バッファＢ２ｉｎに完全に書き込まれる時刻ＴＴ（ＳＮ）を、以下の式を用いて計算する。
ＴＴ（ＳＮ）＝ＴＳ１（ＥＧ，ＰＨＹ）＋ＷＣ’＋ＷＧ’×ｃｅｉｌ（Ｌ（ＳＮ）／ＷＧ’）／ＷＲ’  ［８］
ここで、ｃｅｉｌ（Ｌ（ＳＮ）／ＷＧ’）は、Ｌ（ＳＮ）とＷＧ’の間の比を下回らない最小の整数を表す。
ｃ）計算モジュールＣＭ１は、同期パケットＳＰが書き込まれ始める前に入口バッファＢ２ｉｎにすでに格納されているビットを読み取る動作のみを考慮し、同期パケットＳＰを書き込む動作を考慮しない、時刻ＴＴ（ＳＮ）における入口バッファＢ２ｉｎの充満レベルＦＬｂ（ＳＮ）を、以下の式を用いて計算する：
ＦＬｂ（ＳＮ）＝ｍａｘ｛０，［ＦＬａ（ＳＮ−１）−Ａ’×ＲＲ’×（ＴＴ（ＳＮ）−ＴＴ（ＳＮ−１））］｝  ［９］
ＦＬａ（ＳＮ−１）は、読み取りカットスルー待ち時間ＲＣ’も考慮した、同期パケットＳＰに先行するパケット（すなわち、ＳＮ−１に等しいシーケンス番号を有するパケット）が入口バッファＢ２ｉｎに完全に書き込まれたときの、入口バッファＢ２ｉｎの充満レベルである。表記ｍａｘ｛−｝は、ＦＬｂ（ＳＮ）が中括弧の内部に含まれる値のうちの最大値に等しいことを表し、一方、ＴＴ（ＳＮ−１）は、同期パケットＳＰに先行するパケットが入口バッファＢ２ｉｎに完全に書き込まれた時刻である。したがって、ＦＬｂ（ＳＮ）は、充満レベルＦＬａ（ＳＮ−１）と読み取りビットレートＲＲ’が、時間間隔ＴＴ（ＳＮ）−ＴＴ（ＳＮ−１）において、入口バッファＢ２ｉｎが完全に空になるようなものである場合、ゼロに等しい。
ｄ）計算モジュールＣＭ１は、仮想入口論理タイムスタンプＶＩＲＴＵＡＬ＿ＴＳ２（ＩＮ，ＬＯＧ）を、
以下の式を用いて計算する：
ＶＩＲＴＵＡＬ＿ＴＳ２（ＩＮ，ＬＯＧ）＝ＴＴ（ＳＮ）＋［ＲＧ’×ｃｅｉｌ（ＦＬｂ（ＳＮ）／ＲＧ’）／ＲＲ’］＋ＲＣ’  ［１０］
ｅ）計算モジュールＣＭ１は、同期パケットＳＰが入口バッファＢ２ｉｎに完全に書き込まれたときの、入口バッファＢ２ｉｎの充満レベルＦＬａ（ＳＮ）を、以下の式を用いて計算する：
ＦＬａ（ＳＮ）＝ＦＬｂ（ＳＮ）＋ＲＣ’×ＲＲ’＋Ｌ（ＳＮ）  ［１１］
【００８６】
上記の式［１０］に従って計算される仮想入口論理タイムスタンプＶＩＲＴＵＡＬ＿ＴＳ２（ＩＮ，ＬＯＧ）は、入口バッファＢ２ｉｎ内において同期パケットＳＰによって累積される遅延のみを考慮する。式［１０］は、例えば、入口物理インタフェースＰＨＹ２ｉｎと入口パケットプロセッサＰＰ２ｉｎの間におそらくは介在する（図５には示されていない）他のブロックによる同期パケットＳＰの処理に起因する、他の起こり得る遅延を考慮しない。一定だが（ＴＸとＲＸの）２つの方向では異なる、これらの他の起こり得る遅延が知られている場合、それらは、ＩＥＥＥ  １５８８（ＴＭ）−２００８プロトコルによって予測されるものとして、補償することができる。
【００８７】
（上で説明したステップ６０２のサブステップａ）−ｅ）を含む）ステップ６００−６０５は、好ましくは、第１のノードＮ１によって受信され、第２のノードＮ２に転送される同期パケット毎に繰り返される。データパケットの場合、ステップ６０２のサブステップｄ）と、ステップ６０３−６０４は、好ましくは、省略される。
【００８８】
図６ｂは、本発明の第２の実施形態の第２の変形による、ノードＮ１の動作を示している。
【００８９】
この第２の変形によれば、同期パケットＳＰの受信時に第１のノードＮ１で生成された入口タイムスタンプは、同期パケットＳＰの専用フィールドに含まれていないが、（第１の実施形態の第２の変形と同様に）出口パケットプロセッサＰＰ１ｅｇにおいて受け取られる前に、同期パケットＳＰの調整フィールドＡＦに含まれる累積滞留時間ＣＲＴからすでに減算されている。したがって、この第２の変形によれば、ステップ６００ａは省略される。
【００９０】
その後、ステップ６０１および６０２が、第１の変形と同様に実行される。
【００９１】
その後、仮想入口論理タイムスタンプＶＩＲＴＵＡＬ＿ＴＳ２（ＩＮ，ＬＯＧ）の計算（ステップ６０２）が完了した後、滞留時間ＲＴ’を計算する（ステップ６０３）代わりに、仮想入口論理タイムスタンプＶＩＲＴＵＡＬ＿ＴＳ２（ＩＮ，ＬＯＧ）が、出口物理インタフェースＰＨＹ１ｅｇによって使用されて、同期パケットＳＰの調整フィールドＡＦを更新する（ステップ６０４’）。具体的には、出口物理インタフェースＰＨＹ１ｅｇは、仮想入口論理タイムスタンプＶＩＲＴＵＡＬ＿ＴＳ２（ＩＮ，ＬＯＧ）を累積滞留時間ＣＲＴに直接的に加算する。出口パケットプロセッサＰＰ１ｅｇで受け取られる前に実行される減算と、第２の変形のステップ６０４’で実行される動作は、第１の変形の動作６０３−６０４に基本的に対応することに留意されたい。したがって、有利なことに、この第２の変形によれば、入口タイムスタンプを出口物理インタフェースＰＨＹ１ｅｇに転送するための専用フィールドは、同期パケットＳＰに必要ではない。
【００９２】
図７は、本発明の第３の実施形態による、第１のノードＮ１と第２のノードＮ２の別のブロック図を示している。
【００９３】
具体的には、この第３の実施形態によれば、これ以降、本明細書でより詳細に説明するように、出口タイムスタンプ生成器ＴＳＧ１ｅｇは、出口論理タイムスタンプを生成するために、出口パケットプロセッサＰＰ１ｅｇと適切に連携する。
【００９４】
図８ａを参照しながら、本発明の第３の実施形態の第１の変形による第１のノードＮ１の動作が今から説明される。
【００９５】
第１のノードＮ１は、パケットを生成すると、また第１のノードＮ１に隣接する（図７には示されていない）別のノードからパケットを受信すると仮定される。これらのパケットは、データパケットおよび／または同期パケットを含むことができる。同期パケットは、好ましくは、例えば、ＩＥＥＥ  １５８８（ＴＭ）−２００８プロトコルなどの、同期プロトコルに従ってフォーマットされる。
【００９６】
これらのパケットは、第１のノードＮ１の様々なコンポーネントを横断して転送され、最後に、その一部が、出口パケットプロセッサＰＰ１ｅｇによって受け取られる。
【００９７】
具体的には、出口パケットプロセッサＰＰ１ｅｇが、同期パケットＳＰを受信する（ステップ８００）。同期パケットＳＰは、好ましくは、図３ａに示され、上で説明したようにフォーマットされる。ステップ８００の間に、出口パケットプロセッサＰＰ１ｅｇは、好ましくは、同期パケットＳＰにシーケンス番号ＳＮを関連付けるが、シーケンス番号ＳＮは、パケットが出口パケットプロセッサＰＰ１ｅｇにおいて受け取られた順番を考慮している。さらに、ステップ８００の間に、出口パケットプロセッサＰＰ１ｅｇは、好ましくは、同期パケットＳＰの受信時に第１のノードＮ１で生成された入口タイムスタンプを同期パケットＳＰから読み取る（ステップ８００ａ）。入口タイムスタンプは、論理的なものでも、または物理的なものでもよい。簡単にするため、これ以降、本明細書では、入口タイムスタンプは、入口物理タイムスタンプＴＳ１（ＩＮ，ＰＨＹ）であると仮定される。
【００９８】
その後、出口タイムスタンプ生成器ＴＳＧ１ｅｇが、好ましくは、出口論理タイムスタンプＴＳ１（ＥＧ，ＬＯＧ）を生成する（ステップ８０１）。その後、計算モジュールＣＭ１が、同期パケットＳＰが出口物理インタフェースＰＨＹ１ｅｇによって実際に送信される時刻を実質的に表す、仮想出口物理タイムスタンプＶＩＲＴＵＡＬ＿ＴＳ１（ＥＧ，ＰＨＹ）を計算する（ステップ８０２）。さらに、計算モジュールＣＭ１は、好ましくは、同期パケットＳＰが入口パケットプロセッサＰＰ２ｉｎによって受信される時刻を実質的に表す、仮想入口論理タイムスタンプＶＩＲＴＵＡＬ＿ＴＳ２（ＩＮ，ＬＯＧ）を計算する（ステップ８０３）。この目的で、ステップ８０３において、計算モジュールＣＭ１は、好ましくは、同期パケットＳＰが入口物理インタフェースＰＨＹ２ｉｎによって実際に受信される時刻を実質的に表す、仮想入口物理タイムスタンプＶＩＲＴＵＡＬ＿ＴＳ２（ＩＮ，ＰＨＹ）が、仮想出口物理タイムスタンプＶＩＲＴＵＡＬ＿ＴＳ１（ＥＧ，ＰＨＹ）に等しいことを仮定する（すなわち、第１のノードＮ１と第２のノードＮ２を接続する物理リンクを伝搬する同期パケットＳＰの伝搬時間が、実質的にゼロであると仮定する）。
【００９９】
その後、計算モジュールＣＭ１は、滞留時間ＲＴ”を、仮想入口論理タイムスタンプＶＩＲＴＵＡＬ＿ＴＳ２（ＩＮ，ＬＯＧ）と入口物理タイムスタンプＴＳ１（ＩＮ，ＰＨＹ）の差、すなわち：
ＲＴ”＝ＶＩＲＴＵＡＬ＿ＴＳ２（ＩＮ，ＬＯＧ）−ＴＳ１（ＩＮ，ＰＨＹ）  ［１２］
として計算する（ステップ８０４）。
【０１００】
その後、出口パケットプロセッサＰＰ１ｅｇは、好ましくは、式［１２］に従って計算された滞留時間ＲＴ”を使用して、同期パケットＳＰのヘッダＨ−ＳＰの調整フィールドＡＦに含まれる累積滞留時間ＣＲＴを更新する（ステップ８０５）。その後、同期パケットＳＰは、出口パケットプロセッサＰＰ１ｅｇによって、出口バッファＢ１ｅｇに転送され、出口バッファＢ１ｅｇに格納される（ステップ８０６）。その後、同期パケットＳＰは、出口物理インタフェースＰＨＹ１ｅｇに転送され、出口物理インタフェースＰＨＹ１ｅｇは、同期パケットＳＰを第２のノードＮ２に送信する（ステップ８０７）。
【０１０１】
ステップ８０２の間に計算モジュールＣＭ１によって実施される、仮想出口物理タイムスタンプＶＩＲＴＵＡＬ＿ＴＳ１（ＥＧ，ＰＨＹ）の計算は、本発明の第１の実施形態によるステップ２０６において実施される仮想出口物理タイムスタンプＶＩＲＴＵＡＬ＿ＴＳ（ＥＧ，ＰＨＹ）の計算と実質的に同じであり、第１のノードＮ１の出口バッファＢ１ｅｇに関連するパラメータが使用される。さらに、ステップ８０３の間に計算モジュールＣＭ１によって実施される、仮想入口論理タイムスタンプＶＩＲＴＵＡＬ＿ＴＳ２（ＩＮ，ＬＯＧ）の計算は、本発明の第２の実施形態によるステップ６０２の間に実施される仮想入口論理タイムスタンプＶＩＲＴＵＡＬ＿ＴＳ（ＩＮ，ＬＯＧ）の計算と実質的に同じであり、第２のノードＮ２の入口バッファＢ２ｉｎに関連するパラメータが使用される。したがって、仮想出口物理タイムスタンプＶＩＲＴＵＡＬ＿ＴＳ１（ＥＧ，ＰＨＹ）および仮想入口論理タイムスタンプＶＩＲＴＵＡＬ＿ＴＳ２（ＩＮ，ＬＯＧ）の計算の詳細な説明は繰り返さない。
【０１０２】
図８ｂは、本発明の第３の実施形態の第２の変形による、ノードＮ１の動作を示している。
【０１０３】
この第２の変形によれば、同期パケットＳＰの受信時に第１のノードＮ１で生成された入口タイムスタンプは、同期パケットＳＰの専用フィールドに含まれていないが、（第１および第２の実施形態の第２の変形と同様に）出口パケットプロセッサＰＰ１ｅｇにおいて受け取られる前に、同期パケットＳＰの調整フィールドＡＦに含まれる累積滞留時間ＣＲＴからすでに減算されている。したがって、この第２の変形によれば、ステップ８００ａは省略される。
【０１０４】
その後、ステップ８０１−８０３が、第１の変形と同様に実行される。
【０１０５】
その後、仮想入口論理タイムスタンプＶＩＲＴＵＡＬ＿ＴＳ２（ＩＮ，ＬＯＧ）の計算（ステップ８０３）が完了した後、滞留時間ＲＴ”を計算する（ステップ８０４）代わりに、仮想入口論理タイムスタンプＶＩＲＴＵＡＬ＿ＴＳ２（ＩＮ，ＬＯＧ）が、出口パケットプロセッサＰＰ１ｅｇによって使用されて、同期パケットＳＰの調整フィールドＡＦを更新する（ステップ８０５’）。具体的には、出口パケットプロセッサＰＰ１ｅｇは、仮想入口論理タイムスタンプＶＩＲＴＵＡＬ＿ＴＳ２（ＩＮ，ＬＯＧ）を累積滞留時間ＣＲＴに直接的に加算する。出口パケットプロセッサＰＰ１ｅｇで受け取られる前に実行される減算と、第２の変形のステップ８０５’で実行される動作は、第１の変形の動作８０４−８０５に基本的に対応することに留意されたい。したがって、有利なことに、この第２の変形によれば、入口タイムスタンプを出口パケットプロセッサＰＰ１ｅｇに転送するための専用フィールドは、同期パケットＳＰに必要ではない。
【０１０６】
したがって、第１の実施形態では（すなわち、ノードが出口物理タイムスタンプを生成できない場合）、ノード自体は、出口バッファＢｅｇによって導入される遅延を考慮して、同期パケットＳＰの滞留時間を計算することができるが、第２および第３の実施形態によれば（すなわち、ノードが入口物理タイムスタンプを生成できない場合）、ノード自体は、入口バッファＢ２ｉｎによって導入される遅延を考慮するための計算を実施することができない。これは、同期パケットＳＰを受信したとき、ノードは、入口バッファＢ２ｉｎの充満レベルがどれだか知ることができないという事実に起因する。したがって、ノードは、入口バッファＢ２ｉｎによって導入される遅延を計算することができない。
【０１０７】
第２および第３の実施形態によれば、上流ノード（すなわち、パケットがそこから受信されるノード）が、滞留時間の計算を実行し、下流ノードの入口バッファＢ２ｉｎによって導入される遅延も考慮して、同期パケットの累積滞留時間を更新するためにその滞留時間を使用する。これが可能である理由は、上流ノードは、下流ノードのトラフィック状態をあらかじめ知っており、その場合は、下流ノードの入口バッファによって導入される遅延を予測できるからである。
【０１０８】
ノードが、入口物理タイムスタンプも、出口物理タイムスタンプも生成できない場合は、上で説明した第１の実施形態と第２／第３の実施形態を組み合わせることができる。
【０１０９】
具体的には、ノードの入口バッファによって導入される遅延は、上流ノードで計算することができ、それが、（第２または第３の実施形態に従って）上流ノード内での同期パケットの滞留時間に加算される。他方、出口バッファによって導入される遅延は、ノード自体において計算され、それが、ノード自体での同期パケットの滞留時間に加算される。また、このケースでは、有利なことに、ノードの入口バッファおよび出口バッファによって導入される遅延を考慮するために、同期パケットの調整フィールドＡＦに含まれる累積滞留時間ＣＲＴを更新することが可能である。
【０１１０】
本発明の第１、第２、および第３の実施形態の上述の説明では、ノードＮ、Ｎ１は、上で言及された１ステップクロックメカニズムを実施し、すなわち、ノードＮ、Ｎ１は、同期パケットＳＰを別のノードに転送する前に、同期パケットＳＰの滞留時間を計算し、同期パケットＳＰ自体の調整フィールドを更新するためにその滞留時間を使用することが可能であると仮定された。
【０１１１】
しかし、他の有利な実施形態によれば、ノードＮ、Ｎ１は、上で言及された２ステップクロックメカニズムを実施することができる。これらの有利な実施形態によれば、ノードＮ、Ｎ１は、上で説明したように、同期パケットＳＰの滞留時間（または仮想タイムスタンプ）を計算し、その後、（おそらくはノードＮ、Ｎ１によって生成される）後続パケットの調整フィールドを更新するためにその滞留時間（または仮想タイムスタンプ）を使用する。
【０１１２】
図１、図５、および図７のノード内に示された様々な要素の機能は、専用ハードウェアのほか、適切なソフトウェアと連携する、ソフトウェアを実行可能なハードウェアの使用を通して提供することができる。プロセッサ（すなわち、パケットプロセッサ）によって提供される場合、機能は、単一の専用プロセッサによって、単一の共用プロセッサによって、または複数の、そのうちのいくつかは共用可能な、個別プロセッサによって提供することができる。さらに、「プロセッサ」という用語が明示的に使用される場合、それを、ソフトウェアを実行可能なハードウェアを排他的に指すと解釈すべきではなく、それには、限定することなく、デジタル信号プロセッサ（ＤＳＰ）ハードウェア、ネットワークプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ソフトウェアを保存するためのリードオンリメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、および不揮発性ストレージが暗黙的に含まれ得る。従来通りの、および／またはカスタマイズされた、他のハードウェアも含まれ得る。
【図１】
0005548305.tif 000002
【図２ａ】
0005548305.tif 000003
【図２ｂ】
0005548305.tif 000004
【図３ａ】
0005548305.tif 000005
【図３ｂ】
0005548305.tif 000006
【図４】
0005548305.tif 000007
【図５】
0005548305.tif 000008
【図６ａ】
0005548305.tif 000009
【図６ｂ】
0005548305.tif 000010
【図７】
0005548305.tif 000011
【図８ａ】
0005548305.tif 000012
【図８ｂ】
0005548305.tif 000013