(57)【要約】【課題】  高速ネットワークの非侵襲な計測を目的としてネットワーク上のデータパケットに高精度の時間情報を付与するタイムスタンプ装置を提供する。【解決手段】  時間同期情報生成部２０は高精度の外部クロック信号から同期信号及び時間信号を生成する。タイムカウント部３０は時間信号を用いて所定の間隔でカウントアップする。ネットワークインターフェース部１０はネットワーク上のデータ信号をパケットに変換してパケット処理部４０を通過させる。パケット処理部４０は、カットスルー方式により、通過するデータパケットのうち所定の識別番号を持つパケットの固定長のペイロード部にタイムカウント部３０で処理されたカウンタ値をタイムスタンプ情報として格納し、カウンタ値格納後のチェックサム演算結果がパケットに設定された所定値となるための補償値を演算し、パケット末尾に格納する。【選択図】  図１
2006115153.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上のデータパケットに高精度のタイムスタンプ情報を挿入するタイムスタンプ装置であって、
高精度の外部クロック信号から同期信号及び時間信号を生成する時間同期信号生成手段と、
前記時間信号を用いて所定の間隔でタイムカウントするタイムカウント手段と、
ネットワーク上のデータ信号をビットストリームに変換する第１のネットワークインターフェース手段と、
前記ビットストリームをデータ信号に変換してネットワークへ送出する第２のネットワークインタフェース手段と、
前記同期信号を用いて、前記第１のネットワークインターフェース手段及び前記第２のネットワークインターフェース手段の間を通過する前記ビットストリームをカットスルー方式により処理するパケット処理手段とを備え、
前記パケット処理手段は、前記ビットストリームで構成されるデータパケットの所定の識別情報を検出し、前記識別情報が検出されたデータパケットの固定長のペイロード部に前記タイムカウント手段によるタイムカウント情報を格納し、前記時間情報の格納後のチェックサム演算結果が前記データパケットに設定された所定値となるための補償値を演算して前記データパケットの末尾の所定部に格納する
ことを特徴とするタイムスタンプ装置。
【請求項２】
前記パケット処理手段は、前記パケットデータのペイロード部にタイムカウント情報が格納されている場合に、前記格納されたタイムカウント情報の後ろに追加してタイムカウント情報を格納する
ことを特徴とする請求項１記載のタイムスタンプ装置。
【請求項３】
前記パケット処理手段は、前記データパケットから所定のモード値を検出し、前記モード値に応じて、少なくともタイムカウント情報を含む所定の情報を前記ペイロード部に格納する
ことを特徴とする請求項１記載のタイムスタンプ装置。
【請求項４】
前記パケット処理手段は、さらに、前記ビットストリームをキャプチャし、データ記憶手段に保存するパケットキャプチャ手段を備える
ことを特徴とする請求項１記載のタイムスタンプ装置。
【請求項５】
タイムスタンプ用データパケットを生成するタイムスタンプ用パケット生成装置であって、
タイム情報を格納するために所定のデータサイズのペイロード部を備え、所定の識別情報を格納したデータグラム型のデータパケットを生成するパケット生成手段と、
前記データパケットをデータ信号に変換してネットワークへ送出するネットワークインタフェース手段とを備える
ことを特徴とするタイムスタンプ用パケット生成装置。
【請求項６】
高精度の外部クロック信号から同期信号及び時間信号を生成する時間同期信号生成手段と、
前記時間信号を用いて所定の間隔でタイムカウントするタイムカウント手段と、
前記データパケットのペイロード部に前記タイムカウント手段によるタイムカウント情報を格納するタイムスタンプ付与手段とを備える
ことを特徴とする請求項５記載のタイムスタンプ用パケット生成装置。
【請求項７】
前記ネットワークインターフェース手段は、任意の間隔で前記データパケットをネットワークへ送出する
ことを特徴とする請求項５記載のタイムスタンプ用パケット生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク上の所定のデータパケットに高精度なタイムスタンプ情報を挿入するタイムスタンプ装置、及び高精度なタイムスタンプ情報を格納するためのデータパケットを生成するタイムスタンプ用パケット生成装置に関する。より詳しくは、本発明は、ネットワークの非侵襲な計測、即ち伝送遅延の変動への影響を最小限にした高精度の監視、解析などの計測処理を目的として、ネットワーク上のデータパケットに高精度の時刻や時間などのタイムスタンプ情報を付与するタイムスタンプ装置、及び前記データパケットの生成装置に関する。
【背景技術】
【０００２】
１ギガビットイーサネット（1 gigabit Ethernet）上で最小のイーサネット・フレーム（７２バイト＝MAC22bytes＋NetworkPDU46bytes＋CRC4bytes）を伝送するための所要時間は、５７６ナノ秒である。このような高速広帯域ネットワークの計測を可能にするために、１０ナノ秒単位の高精度タイムスタンプ処理が要求されている。
【０００３】
イーサネット上のＩＰパケットのタイムスタンプ処理として、ＩＰパケットのヘッダ部のタイムスタンプオプションがある（ＲＦＣ７８１参照）。このタイムスタンプオプションによる精度はミリ秒程度しかない。さらに、ＩＰパケットのヘッダ部へのタイムスタンプの挿入はパケット長の変化を伴い、伝送遅延の変動を生じるため、高精度なネットワーク計測のためのタイムスタンプ処理には適していない。
【０００４】
タイムスタンプ処理の精度を向上させるために、様々な改良が行われている。例えば、ソフトウェアのみによるタイムスタンプ処理として、ネットワーク・デバイスドライバ内にタイムスタンプ機能を設け、ＣＰＵのタイムスタンプカウンタを使用してタイムスタンプ情報を挿入する手法があり、精度は１マイクロ秒近くまで改良されている。
【０００５】
しかし、コンピュータ（ＰＣ）内の水晶発振回路の周波数は温度によって変化するため、この周波数の揺らぎがタイムスタンプ情報の精度を低下させてしまうという問題がある。そこで、水晶発振回路の周波数の揺らぎをソフトウェアによって補償する改良手法がある。また、水晶発振回路の代わりに安定性が改良されているセシウム原子時計を使用する改良手法もある。例えば、ＤＡＧと呼ばれるハードウェアをベースにしたネットワーク計測システムでは、セシウム原子時計を利用したハードウェアのタイムスタンプ処理が行われる（非特許文献１参照）。
【非特許文献１】Jorg Micheel, Stephen Donnelly, and Ian Graham著、「Precision timestamping of network packets 」p.p. 54-97、In proceedings of the ACM SIGCOMM Internet Measurement Workshop, San Francisco、２００１年１１月
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ネットワーク計測や時刻同期をはじめとする各種のネットワークアプリケーションでは、高精度な時間情報が必要とされる。例えば、ギガビットイーサネットでは、１バイト当たりのネットワーク通過時間は８ナノ秒であり、１０ギガビットイーサネットでは、僅か０．８ナノ秒にすぎない。
【０００７】
非特許文献１に開示されているＤＡＧシステムのハードウェアのタイムスタンプ装置の精度は最大で１００ナノ秒程度とされている。これは、大気中のシンチレーションがＧＰＳ信号を変動させ、さらにＧＰＳ上のセシウム電子時計を変化させることなどが原因となっている。他方、ギガビットイーサネットのＬＡＮにおけるジッタ（伝送遅延の変動）は、１００ナノ秒に満たない程度である。そのため、ＧＰＳを利用したハードウェアのタイムスタンプ装置は、このような高速ネットワークの計測には適していない。
【０００８】
また、非特許文献１のＤＡＧシステムのタイムスタンプ装置は、タイムスタンプ情報をパケットとは別にホストＰＣに取り込む構造であるため、ネットワーク上の複数の経由地で挿入された時間情報を１つのパケットに格納して転送することはできない。
【０００９】
本発明の目的は、高速ネットワークの計測において伝送遅延に変動を与えないような非侵襲な計測を可能とするために、高精度な時間情報を付与するタイムスタンプ装置を提供することである。
【００１０】
また、本発明の目的は、高精度の時間情報を格納し、伝送時間の変動を生じさせないようなデータパケットを生成するタイムスタンプ用パケット生成装置を提供することである。
【課題を解決するための手段】
【００１１】
上記目的を達成するため、本発明は、ネットワーク上のデータパケットに高精度のタイムスタンプ情報を挿入するタイムスタンプ装置であって、１）高精度の外部クロック信号から同期信号及び時間信号を生成する時間同期信号生成手段と、２）前記時間信号を用いて所定の間隔でタイムカウントするタイムカウント手段と、３）ネットワーク上のデータ信号をビットストリームに変換する第１のネットワークインターフェース手段と、４）前記ビットストリームをデータ信号に変換してネットワークへ送出する第２のネットワークインタフェース手段と、５）前記同期信号を用いて、前記第１のネットワークインターフェース手段及び前記第２のネットワークインターフェース手段の間を通過する前記ビットストリームをカットスルー方式により処理するパケット処理手段とを備える。
【００１２】
そして、前記パケット処理手段は、前記ビットストリームで構成されるデータパケットの所定の識別情報を検出し、前記識別情報が検出されたデータパケットの固定長のペイロード部に前記タイムカウント手段によるタイムカウント情報をタイムスタンプ情報として格納し、前記時間情報の格納後のチェックサム演算結果が前記データパケットに設定された所定値となるための補償値を演算して前記データパケットの末尾の所定部に格納する。
【００１３】
本発明のタイムスタンプ装置は、高精度の外部クロック信号として、例えば、セシウム原子時計の１０ＭＨｚクロック信号を利用する。そして、タイムカウント手段は、例えば６４ビットのカウンタを備えて、前記クロック信号を増幅した１００ＭＨｚの時間信号を用いて、所定の間隔のタイムカウントを行う。このタイムカウント情報（カウンタ値）をタイムスタンプ情報とする。
【００１４】
そして、ネットワーク上のデータ信号は、前記第１のネットワークインターフェース手段によってビットストリームに変換され、前記パケット処理手段を通過し、前記第２のネットワークインターフェース手段によってデータ信号に変換されてネットワーク上に送出される。さらに、パケット処理手段では通過するビットストリームに対して、カットスルー方式によって以下の処理が施される。
【００１５】
前記パケット処理手段は、ビットストリームで構成されるデータパケットの所定の識別情報を用いて特定のタイムスタンプ用のデータパケットを検出する。そして、識別情報が検出されたデータパケットの固定されたサイズのペイロード部に、タイムカウント手段により供給されたタイムカウント情報（カウンタ値）を格納する。さらに、タイムカウント情報の格納後に行うチェックサム演算結果が、前記データパケットに設定されている所定のチェックサム値となるように補償値を演算し、データパケットの末尾の所定部に前記補償値を格納する。
【００１６】
その後、パケット処理手段によって処理されたデータパケットは、第２のネットワークインターフェース手段によってデータ信号に変換されてネットワークへ送出される。
【００１７】
なお、識別情報を検出しなかったビットストリームはそのまま第２のネットワークインターフェース手段によってネットワークへ送出される。
【００１８】
本発明のタイムスタンプ装置において、タイムカウント手段では、例えば、セシウム原子時計の１０ＭＨｚクロック信号のような高精度の外部クロック信号をもとに増幅された任意の周波数を用いて、例えば１０ナノ秒単位など任意の間隔によるタイムカウント情報を生成し、パケット処理手段では、ストアアンドフォワード方式ではなくカットスルー方式によって、高精度のタイムカウント情報を用いたタイムスタンプ情報を特定のパケットに格納する。また、本発明のタイムスタンプ装置では、パケット処理手段の処理対象は、所定の識別情報が設定された任意の固定されたデータサイズのペイロード部を有するデータパケットであり、例えば、ＵＤＰなどのデータグラム型のデータパケットを使用する。
【００１９】
これにより、高速ネットワークの計測において、高精度なタイムスタンプ情報を使用した伝送時間の高精度な計測を実現することができる。また、パケットサイズの変化やバッファリング時間の変動による伝送遅延の変動を生じさせないため、伝送遅延ジッタに影響を及ぼさない非侵襲な計測を実現することができる。
【００２０】
さらに、前記パケット処理手段は、前記パケットデータのペイロード部にタイムカウント情報が格納されている場合に、前記格納されたタイムカウント情報の後ろに追加してタイムカウント情報を格納する。これにより、１つのデータパケットに複数の経由地でのタイムスタンプ情報を格納して転送できるため、１つのデータパケットでネットワークの伝送時間を監視・計測することができる。
【００２１】
また、前記パケット処理手段は、前記データパケットから所定のモード値を検出し、前記モード値に応じて、少なくともタイムカウント情報を含む所定のタイムスタンプ情報を前記ペイロード部に格納する。例えば、各経由地のタイムカウント情報（カウンタ値）を順次格納するモード、カウンタ値と共にカウンタ値を時間情報に変換するパラメタを格納するモード、カウンタ値と共に計測値などの所定のデータを格納するモードなどを指定することができる。これにより、高精度のタイムスタンプ情報を、ネットワーク計測だけでなく、正確な時間管理が必要な計測データの転送などにも利用することができる。
【００２２】
また、前記パケット処理手段は、さらに、前記ビットストリームをキャプチャし、データ記憶手段に保存するパケットキャプチャ手段を備える。これにより、ネットワーク上を通過するビットストリームを保存して、ネットワークの監視や解析などに使用することができる。
【００２３】
また、本発明は、タイムスタンプ用データパケットを生成するタイムスタンプ用パケット生成装置であって、１）タイム情報を格納するために所定のデータサイズのペイロード部を備え、所定の識別情報を格納したデータグラム型のデータパケットを生成するパケット生成手段と、２）前記データパケットをデータ信号に変換してネットワークへ送出するネットワークインタフェース手段とを備える。
【００２４】
また、本発明のタイムスタンプ用パケット生成装置は、さらに、３）高精度の外部クロック信号から同期信号及び時間信号を生成する時間同期信号生成手段と、４）前記時間信号を用いて所定の間隔でタイムカウントするタイムカウント手段と、５）前記データパケットのペイロード部に前記タイムカウント手段によるタイムカウント情報を格納するタイムスタンプ付与手段とを備える。
【００２５】
これにより、前記タイムスタンプ装置で処理対象となるデータパケットを提供することができる。
【００２６】
また、前記タイムスタンプ用パケット生成装置のネットワークインターフェース手段は、任意の間隔で前記データパケットをネットワークへ送出する。これにより、正確な時報や１ｐｐｓ（packet per second）信号に相当するパケットを、送出又はブロードキャストすることができる。
【発明の効果】
【００２７】
本発明のタイムスタンプ装置によれば、従来のタイムスタンプ処理の１００ナノ秒の精度に比べて、より高精度（例えば、１０ナノ秒r.m.s.）でタイムスタンプ情報を付与する処理を実現することができ、高速ネットワークに対する高精度の計測が可能となる。
【００２８】
また、本発明のタイムスタンプ装置によれば、通過する特定のデータパケットに対してカットスルー方式により高精度のタイムスタンプ情報を格納することができ、高速ネットワークに対する非侵襲な計測が可能となる。
【００２９】
また、本発明のタイムスタンプ用パケット生成装置は、高精度なタイムスタンプ情報を格納するパケットを任意の間隔で送出することができ、例えば、１ｐｐｓパケットなどにより、ネットワーク家電、情報機器の時計合わせや１ｐｐｓ信号を必要とする精密計測機器、同期システムへの正確な時刻情報の伝送・提供が可能となる。
【発明を実施するための最良の形態】
【００３０】
以下、本発明を実施するための最良の形態例を、図を用いて説明する。
【００３１】
本発明のタイムスタンプ装置１は、ネットワーク上を通過する所定のデータパケットに、高精度のタイムスタンプ情報を挿入し、又は、タイムスタンプ情報を挿入するためのデータパケットを作成する装置である。
【００３２】
タイムスタンプ装置１が付与するタイムスタンプ情報は、高精度な外部クロック信号にもとづく所定の間隔でカウントアップしたカウンタ値とする。所定の間隔をＧＴＳ（Generalize Time Stamp）とし、本例では、１０ナノ秒間隔のカウンタ値とする。タイムスタンプ情報として挿入される値が、ナノ秒の累乗ではなく所定の間隔（ＧＴＳ）のカウント数である理由は、処理コストを軽減でき、ジッタを少なくすることができるからである。
【００３３】
タイムスタンプ装置１で処理対象とする所定のデータパケット、又は、生成するデータパケットは、特定のポート番号を有するＵＤＰ（User Datagram Protocol）パケットであってＩＰｖ４及びＩＰｖ６の両方に対応しているものとする。この特定のデータパケットのフォーマットの詳細は後述する。
【００３４】
図１は、本発明のタイムスタンプ装置の構成例を示す図である。
【００３５】
タイムスタンプ装置１は、ＰＣＩ（Peripheral Component Interconnect）規格カードサイズのＦＰＧＡをベースに実施され、ネットワークインターフェース部１０、時間同期情報生成部２０、タイムカウンタ部３０、パケット処理部４０、及びホストインターフェース部５０を備える。
【００３６】
ネットワークインターフェース部１０は、１ギガビット・イーサネット・インターフェースを備える２つのポートを持ち、ネットワーク上のデータ信号をビットストリームに変換し、又は、変換したビットストリームをデータ信号に変換してネットワークへ送出する処理を全二重動作で行う手段である。
【００３７】
具体的には、ネットワークインターフェース部１０は、それぞれ、コネクタ（ＲＪ４５）１１−１及び物理層処理部（ＰＨＹ）１２−１のポート＃１、コネクタ（ＲＪ４５）１１−２及び物理層処理部（ＰＨＹ）１２−２のポート＃２からなる２つの１０００Ｂａｓｅ−Ｔのインターフェースを備え、ＩＰパケットが２つのインターフェース（ポート＃１及びポート＃２）の間を通過する構造となっている。
【００３８】
時間同期情報生成部２０は、外部信号入力部２１、位相同期部（ＰＬＬ）２２を備え、外部信号入力部２１が入力した高精度の基準クロック信号を位相同期部２２で増幅して所定の周波数の同期信号及び時間信号を生成する処理手段である。
【００３９】
外部信号入力部２１は、高精度の基準クロック信号として、セシウム電子時計の１０ＭＨｚクロック信号を使用する。又は、ルビジウム原子発振器、タイムスタンプ装置１内に備えるオーブンタイプ水晶発信回路（図示せず）のクロック信号を使用してもよい。なお、装置内のオーブンタイプ水晶発振回路は、外部の１０ＭＨｚ信号を使用せずに、温度調整された室内で１０―８の精度を維持できる性能を備える。
【００４０】
また、外部信号入力部２１は、高精度な１ｐｐｓ信号（１秒パルス）を入力することができる。
【００４１】
位相同期部２２は、外部信号入力部２１で入力された高精度な基準クロック信号を増幅し、物理層処理部１２−１，１２−２、パケット処理部４０に対し２５ＭＨｚの同期信号を、タイムカウンタ部３０に対し１００ＭＨｚの同期信号又は１ｐｐｓの時間信号を送出する。また、ホストインターフェース部５０に４０ＭＨｚの同期信号を送出する。
【００４２】
タイムカウンタ部３０は、６４ビットのタイムカウンタを持ち、同期信号及び時間信号を用いて、所定の間隔（ＧＴＳ）でカウントアップする。１カウントは、１０ナノ秒単位であり、カウント数は、最大２２７×１０ナノ秒となる。
【００４３】
また、タイムカウンタ部３０は、タイムスタンプ装置１の電源投入時又は最初の１ｐｐｓ時間信号に対してカウンタ値を０にリセットする。また、１ｐｐｓの時間信号が２の冪に達する度に、タイムスタンプ値を１ｐｐｓ数で除した値を計算し、６４ビットの計算結果をカウンタレートとして保持する。
【００４４】
パケット処理部４０は、ネットワークインターフェース部１０の２つのポート＃１及びポート＃２の間のパイプラインを通過するＩＰパケット（ビットストリーム）のうち、予め定められた特定のポート番号を持つＧＴＳパケットをカットスルー方式により処理する処理手段である。
【００４５】
パケット処理部４０は、タイムスタンプ付与部４１、チェックサム補償部４２、パケットキャプチャ部４３、パケット生成部４４を備える。
【００４６】
タイムスタンプ付与部４１は、通過するＩＰパケットの所定の位置を検出して、特定のポート番号を持つＧＴＳパケットのみに対して、ペイロード部の所定位置に設定されたモード指定に従って、所定のタイムスタンプ情報をＧＴＳパケットに格納する処理手段である。タイムスタンプ付与部４１は、タイムスタンプ情報として、そのＧＴＳパケットのイーサネットフレームの先頭が、コネクタ１１−１、１１−２に到着した時点でタイムカウンタ部３０によりカウントアップされたカウンタ値を使用する。
【００４７】
チェックサム補償部４２は、タイムスタンプ情報の格納後に、ＣＲＣ（Cyclic Redundancy Check）チェックサムの演算結果がＧＴＳパケットのヘッダ部に設定されるチェックサム値となるための補償値を演算し、ＧＴＳパケットのトレイラに格納する処理手段である。
【００４８】
パケットキャプチャ部４３は、ネットワークインターフェース部１０の２つのポートを通過するイーサネットフレーム（ビットストリーム）をキャプチャし、所定のデータ記憶部に、例えばtcpdumpフォーマットで保存する処理手段である。パケットキャプチャ部４３は、ワイヤーレートで１０００万個以上のイーサネットフレームをキャプチャする。
【００４９】
パケット生成部４４は、タイムスタンプ情報を格納する所定のデータサイズのペイロード部を備え、所定のポート番号が設定されたデータグラム型のデータパケット、すなわちＧＴＳパケットを生成する処理手段である。また、パケット生成部４４は、生成したＧＴＳパケットを、ネットワークインターフェース部１０を通じて任意の間隔でネットワークに送出される。
【００５０】
なお、パケット処理部４０は、ＧＴＳパケット以外のＩＰパケットには何も処理を加えずにそのまま通過させる。
【００５１】
パケット処理部４０の処理対象となるＧＴＳパケットは所定のデータサイズのペイロード部を持つ。ペイロード部のフォーマットは、０〜７ｂｙｔｅに、バージョン番号（Ver#）、モード（mode）、ＴＳ数（n）、シリアル番号（serial#）が設定され、８ｂｙｔｅ以降にタイムスタンプ情報が格納されるように構成される。
【００５２】
バージョン番号は、ＧＴＳパケットのフォーマットのバージョンを示すフィールド、モードはタイムスタンプ付与処理の種別を示すフィールド、ＴＳ数はペイロード部に格納されるタイムスタンプ数となるホップ数を示すフィールド、シリアル番号は一連のＧＴＳパケットの当該パケットの順序を示すフィールドである。各値は、ネットワークのバイトオーダすなわちbig-endianで格納される。
【００５３】
図２〜図４に、各モードでのＧＴＳパケットのペイロード部のフォーマットを示す。
【００５４】
モードの指定は、例えば、パッシングモード（0x02）、タイムコンバージョンモード（0x04）、イベントタイムスタンプモード（0x10、0x11）などがある。
【００５５】
〔パッシングモード〕
パッシングモードは、ペイロード部に複数の経由地のタイムスタンプ情報を格納できるモードである。
【００５６】
図２（Ａ）に示すように、コンピュータＴＸからコンピュータＲＸへネットワークＮを通過してパケットが伝送されるとする。コンピュータＴＸ側とコンピュータＲＸ側に、それぞれタイムスタンプ装置１―１、１−２を設置し、コンピュータＴＸからコンピュータＲＸへと伝送されるＧＴＳパケットにパッシングモードのものを使用する。
【００５７】
タイムスタンプ装置１−１では、このパッシングモードのＧＴＳパケットにタイムスタンプ情報（timestamp#0）を格納し、タイムスタンプ装置１−２で同じパケットにタイムスタンプ情報（timestamp#1）を格納する。
【００５８】
これにより、１つのＧＴＳパケットで、コンピュータＴＸとコンピュータＲＸの間のネットワークＮの伝送時間を計測することができる。
【００５９】
図２（Ｂ）は、パッシングモード指定のペイロード部のフォーマットを示す図である。
【００６０】
タイムスタンプ付与部４１は、モード指定としてパッシングモード（xxxxxxxx＝00000010）の指定を検出すると、ペイロード部のＴＳ数（ホップ数）ｎ（yyyyyyyy）の値から、ペイロード部の所定の格納位置（8*(yyyyyyyy＋１)）バイト目にタイムスタンプ情報を格納し、ＴＳ数（ホップ数）ｎ（yyyyyyyy）を１つインクリメントする。なお、ＧＴＳパケットのサイズが、「8*(yyyyyyyy＋１)」バイト以下であれば、パケット最後部８バイトにタイムスタンプ情報を格納する。
【００６１】
〔タイムコンバージョンモード〕
タイムコンバージョンモードは、タイムスタンプ情報として、ＧＴＳによるカウンタ値及びカウンタ値から時間情報へ変換するための値を格納するモードである。
【００６２】
本発明では、処理コスト及びジッタ抑制のために、タイムカウンタ部３０によるカウンタ値をタイムスタンプ情報として使用する。カウンタ値ｃは、以下の式（１）で簡単に秒単位系での時間ｔに変換することができる。
【００６３】
ｔ＝ｃ／ｒ＋ｏ    （１）
タイムコンバージョンモードでは、タイムスタンプ情報として、タイムカウンタ部３０のカウント値及び時間ｔへの変換に必要なパラメタの組をペイロード部に格納する。
【００６４】
図３は、タイムコンバージョンモード指定のペイロード部のフォーマットを示す図である。
【００６５】
タイムスタンプ付与部４１は、モード指定としてタイムコンバージョンモード（xxxxxxxx＝00000100）の指定を検出すると、タイムスタンプ情報として、タイムカウンタ部３０のカウンタ値（ｃ）、１秒間のカウント数レートを示すカウンタレート（rate（ｒ））、カウンタが０にセットされた時間を示すオフセット（offset（ｏ））、及びカウンタ値から算出する時間の単位（time）をペイロード部の所定の位置（１６バイト目）に格納する。
【００６６】
これにより、タイムコンバージョンモードのＧＴＳパケットを取得したホストコンピュータは、カウンタ値ｃから時間ｔを算出することができる。
【００６７】
〔イベントタイムスタンプモード〕
イベントタイムスタンプモードは、タイムスタンプ情報として、ＧＴＳによるカウンタ値及び所定のデータを格納するモードである。
【００６８】
図４は、イベントタイムスタンプモード指定のペイロード部のフォーマット例を示す図である。
【００６９】
タイムスタンプ付与部４１は、モード指定としてタイムコンバージョンモードのアンロック状態（xxxxxxxx＝00010000）の指定を検出すると、タイムスタンプ情報として、タイムカウンタ部３０によるカウンタ値及び所定の計測値の組をペイロード部の所定の位置（８バイト目）に格納し、モードをタイムコンバージョンのロック状態（xxxxxxxx＝00010001）に書き換える。
【００７０】
一方、タイムスタンプ付与部４１は、モード指定としてタイムコンバージョンモードのロック状態（xxxxxxxx＝00010001）の指定を検出した場合には、ペイロード部へのタイムスタンプ情報の格納は行わない。
【００７１】
これにより、ホストコンピュータが計測したデータなどを、イーサネットを通じて他のコンピュータに転送する場合に、イベントタイムスタンプモードのＧＴＳパケットのペイロード部に、カウンタ値及び転送するデータの組を格納することで、転送データに正確なタイムスタンプを付与することができる。
【００７２】
なお、いずれのモードにおいても、パケット処理部４０の処理性能は、パケット長とは無関係であり、ほぼ一定して４００ナノ秒である。ただし、最大で２０ナノ秒のジッタ（１１ナノ秒r.m.s）が生じる。ファストイーサネットの伝送周波数が２５ＭＨｚに起因するものである。
【００７３】
図５に、本発明による、１００ＭイーサネットのＧＴＳパケットのジッタの計測結果の例を示す。１００Ｍイーサネットのネットワークのキャリアは２５ＭＨｚであり、本発明が、予想される範囲のジッタを正確に計測していることがわかる。
【００７４】
ホストインターフェース部５０は、タイムスタンプ装置１が挿入されているホストコンピュータとのデータ及び制御のやりとりをＰＣＩによって行う処理手段である。ホストインターフェース部５０は、ＰＣＩバスにより電源を供給し、タイムスタンプ装置１の各処理部の設定又はリセットを行う。
【００７５】
ホストコンピュータは、ホストインターフェース部５０を通じて、タイムスタンプ装置１の位相同期部２２のクロック、１０ＭＨｚ外部クロック信号の有無など各処理手段の状態を確認し、リモートからファームウェアアップデートをすることができる。
【００７６】
以下、本発明の適用例を説明する。本発明を、ネットワーク・デバイスの転送ジッタの計測、コンピュータにおけるタイムスタンプ処理の評価、及びネットワーク使用率の評価の各処理に適用した。
【００７７】
〔ネットワーク・デバイスの転送ジッタの計測〕
図６は、本発明を適用したネットワーク・デバイスの転送ジッタの計測を説明するための図である。図６（Ａ）に示すように、コンピュータＴＸからコンピュータＲＸへネットワーク装置ＮＤを通過してパケットが伝送される場合に、ネットワーク装置ＮＤのパケット転送のジッタを計測した。数台のＧｂＥスイッチングハブ、Ｌ２／３スイッチを計測するため、計測対象を挟んでコンピュータＴＸ側とコンピュータＲＸ側に、それぞれタイムスタンプ装置１―１、１−２を設置し、コンピュータＴＸからコンピュータＲＸへ向けてパッシングモードのＧＴＳパケットを伝送した。
【００７８】
図６（Ｂ）に示す計測結果は、スイッチングハブのジッタは約４０ナノ秒であり、Ｌ２／３スイッチのジッタは１００〜２００ナノ秒であることを示している。この結果から、いくつかのスイッチングハブでは、接続するＬＡＮにおける伝送遅延のジッタが１００ナノ秒単位を超えないことがわかる。１００ナノ秒のジッタは、ＧＰＳによる時間同期の限界である。したがって、ＧＰＳを使用することなく、ワイヤード・ネットワークでの１００ナノ秒未満の時間同期を達成することが可能であることがわかる。
【００７９】
〔コンピュータにおけるタイムスタンプ処理の評価〕
図７は、本発明を適用したコンピュータにおけるタイムスタンプ処理の評価を説明するための図である。
図７（Ａ）に示すように、コンピュータＴＸからコンピュータＲＸへパケットが伝送されるとする。
【００８０】
パケットにタイムスタンプ処理を行うために、プログラム可能性及び多様性を備えるコンピュータが使用されることも多い。コンピュータを用いたタイムスタンプ処理の精度を向上させるための代表的な手法として、２つの手法がある。
【００８１】
１つは、gettimeofday()関数の代りに、プロセッサ・サイクル・カウンタを使用する手法である。近年のＭＰＵは、各ＣＰＵのクロックサイクルをインクリメントする高精度なカウンタを備え、このカウンタは、ＧＴＳに相当する。
【００８２】
もう１つは、ネットワークインターフェースのデバイスにタイムスタンプ機能を実装する手法である。デバイスドライバは、プログラム中では最終段階であり、デバイスドライバ内でのタイムスタンプ処理は、プロセススケジュールによる影響がほとんどない。
【００８３】
そこで、コンピュータＴＸのネットワークの出入り口にタイムスタンプ装置１を接続して、コンピュータＴＸにおける、前記手法によるタイムスタンプ処理の精度について評価した。すなわち、ユーザプログラム領域（user land）でgettimeofday()関数を用いた処理、ユーザプログラム領域でのＲＤＴＳＣ（あるＭＰＵにおいて、プロセッサ・サイクル・カウンタを読み出す命令）による処理、及びネットワークインターフェース・ドライバ（ＮＩＣ）でのＲＤＴＳＣによる処理を評価した。
【００８４】
テスト対象のコンピュータＴＸは、２．４ＧＨｚのＭＰＵ及びＦＳＢ４００ＭＨｚのバス（ｂｕｓ）であり、オペレーティングシステムはLinux2.4.20、ネットワークインターフェース・ドライバはtulip-0.9.14である。コンピュータＴＸは、セシウム電子時計によって駆動されている。
【００８５】
図７（Ｂ）に評価結果を示す。この評価結果から、ＮＩＣ内でのＲＤＴＳＣによるタイムスタンプ処理の精度は、ＧＰＳベースのハードウェアのタイムスタンプ処理よりも、１００ナノ秒以上よいことがわかる。なお、高精度が維持される時間は、コンピュータ内の水晶発振回路に依存するので、長期間安定した処理精度を維持するためには、水晶発振回路の交換が必要となる。
【００８６】
〔ネットワーク使用率の推定〕
図８は、本発明を適用したネットワークの使用率の推定を説明するための図である。
【００８７】
図８（Ａ）に示すように、ネットワーク上のハブＡとハブＢとの間のラインの使用率を推定するために、ハブＡ及びハブＢにそれぞれタイムスタンプ装置１−１、１−２を接続し、タイムスタンプ装置１−１からタイムスタンプ装置１−２へＧＴＳパケットをプローブパケットとして送出して、ハブＡからハブＢへのトラヒックを計測した。
【００８８】
プローブパケットの伝送遅延から、パケットが転送待ちとなったかどうかを確認できる。例えば、バックグラウンドのトラヒックのパケットサイズを定数Ｐとし、ラインの通信速度をＲとすると、図８（Ｂ）の上部に示すように、ハブＡからハブＢへ伝送されるバックグラウンドのトラヒックでは、パケットがラインを占有する。
【００８９】
その場合に、図８（Ｂ）の下部に示すように、待ちによる遅延はゼロからＰ／Ｒまでの間で一様となり、プローブパケットが待ち状態ではないならば、伝送遅延は最小となるはずである。したがって、最小の容量に含まれるパケットの割合が、ラインの不使用率を示す。
【００９０】
図８（Ｃ）に、１Ｇｂｐｓのラインで、パケットサイズＰ＝1500バイトのバックグラウンドのパケットの占有率が50％である場合におけるプローブパケットの実計測の待ち時間を示す。このヒストグラムは、おおむね、図８（Ｂ）の下部に示す理論上のヒストグラムに類似し、一方、推定値50.2％も実際のトラヒックにかなり近いことがわかる。
【００９１】
以上、本発明をその実施の形態により説明したが、本発明はその主旨の範囲において種々の変形が可能であることは当然である。例えば、タイムスタンプ装置１のネットワークインターフェース部１０の２つのポートは、XENPAC仕様の光モジュールによる１０ギガビットイーサネットのインターフェースのポートであってもよい。また、外部信号入力部２１が入力するクロック信号は１０ＭＨｚに限られない。
【図面の簡単な説明】
【００９２】
【図１】本発明のタイムスタンプ装置の構成例を示す図である。
【図２】パッシングモード指定のＧＴＳパケットのペイロード部のフォーマットを示す図である。
【図３】タイムコンバージョンモード指定のＧＴＳパケットのペイロード部のフォーマットを示す図である。
【図４】イベントタイムスタンプモード指定のＧＴＳパケットのペイロード部のフォーマットを示す図である。
【図５】１００ＭイーサネットのＧＴＳパケットのジッタの計測結果の例を示す図である。
【図６】本発明を適用したネットワーク・デバイスの転送ジッタの計測を説明するための図である。
【図７】本発明を適用したコンピュータにおけるタイムスタンプ処理の評価を説明するための図である。
【図８】本発明を適用したネットワークの使用率の推定を説明するための図である。
【符号の説明】
【００９３】
１  タイムスタンプ装置
１０  ネットワークインターフェース部
１１−１、１１−２  コネクタ
１２−１、１２−２  物理層処理部
２０  時間同期情報生成部
２１  外部信号入力部
２２  位相同期部
３０  タイムカウンタ部
４０  パケット処理部
４１  タイムスタンプ付与部
４２  チェックサム補償部
４３  パケットキャプチャ部
４４  パケット生成部
５０  ホストインターフェース部
【図１】
2006115153.tif 000003
【図２】
2006115153.tif 000004
【図３】
2006115153.tif 000005
【図４】
2006115153.tif 000006
【図５】
2006115153.tif 000007
【図６】
2006115153.tif 000008
【図７】
2006115153.tif 000009
【図８】
2006115153.tif 000010