(57)【特許請求の範囲】
【請求項１】
ネットワーク内でデータを転送するネットワークノードであって、
複数のポートを有するネットワークインタフェースと、転送制御部と、時刻同期部と、揺らぎ計測部と、クロックと、を備え、
前記時刻同期部は、
受信した時刻同期パケットに含まれる時刻によって前記クロックの時刻を修正し、
前記クロックの時刻の修正量を取得し、
前記揺らぎ計測部は、前記時刻同期部が取得した修正量の揺らぎと所定の閾値とを比較した結果に基づいて、前記受信した時刻同期パケットに含まれる時刻の精度を判定することを特徴とするネットワークノード。
【請求項２】
前記時刻同期部は、前記判定された時刻の精度を用いて、前記クロックを同期するための前記時刻同期パケットの送信元である同期元の他のネットワークノードを選択することを特徴とする請求項１に記載のネットワークノード。
【請求項３】
前記時刻同期部は、前記判定された時刻の精度を用いて、前記クロックを同期するための前記時刻同期パケットの転送経路を選択することを特徴とする請求項１に記載のネットワークノード。
【請求項４】
前記時刻同期部は、
前記揺らぎ計測部は、
前記修正量の揺らぎと所定の閾値とを比較した結果に基づいて、同期元のネットワークノードを変更するか否かを判定し、
現在の同期元以外のネットワークノードから送信された時刻同期パケットの受信可否によって、別の同期元のネットワークノードの有無を判定し、
前記時刻同期部は、前記判定結果に基づいて、現在の同期元のネットワークノードから送信された同期信号を無視し、新しい同期元のネットワークノードとの同期処理を開始することを特徴とする請求項１に記載のネットワークノード。
【請求項５】
前記揺らぎ計測部は、前記修正量の標準偏差を用いて、受信した前記時刻同期パケットに含まれる時刻の精度を判定することを特徴とする請求項１に記載のネットワークノード。
【請求項６】
前記時刻同期部は、少なくとも第１の時刻同期部及び第２の時刻同期部を含み、
前記第１の時刻同期部及び前記第２の時刻同期部は、
異なるネットワークノードから送信された、又は、同一の他のネットワークノードから異なる経路で転送された前記時刻同期パケットを受信し、
前記揺らぎ計測部は、前記受信した時刻同期パケットに含まれる時刻の精度を判定することを特徴とする請求項１から５のいずれか一つに記載のネットワークノード。
【請求項７】
前記クロックは、第１のクロック及び第２のクロックを含み、
前記第１の時刻同期部は前記第１のクロックを同期させ、
前記第２の時刻同期部は前記第２のクロックを同期させることを特徴とする請求項６に記載のネットワークノード。
【請求項８】
前記第１の時刻同期部及び前記第２の時刻同期部は、異なるネットワークノードから異なる経路で転送された前記時刻同期パケットを受信することを特徴とする請求項６に記載のネットワークノード。
【請求項９】
前記時刻同期部は、前記判定された時刻の精度が高い時刻同期パケットに前記クロックが同期された場合、下流のネットワークノードに送信する時刻同期パケットを生成することを特徴とする請求項６に記載のネットワークノード。
【請求項１０】
ネットワーク内でデータを転送するネットワークノードにおける時刻同期方法であって、
前記ネットワークノードは、複数のポートを有するネットワークインタフェースと、転送制御部と、時刻同期部と、クロックと、を有し、
前記方法は、
前記時刻同期部が、受信した時刻同期パケットに含まれる時刻によって前記クロックの時刻を修正する同期ステップと、
前記時刻同期部が、前記クロックの時刻の修正量を取得する監視ステップと、
前記揺らぎ計測部が、前記時刻同期部が取得した修正量の揺らぎと所定の閾値とを比較した結果に基づいて、前記受信した時刻同期パケットに含まれる時刻の精度を判定ステップと、を含むことを特徴とする時刻同期方法。
【請求項１１】
前記方法は、さらに、前記時刻同期部が、前記判定された時刻の精度を用いて、前記クロックを同期するための前記時刻同期パケットの送信元である同期元の他のネットワークノードを選択するステップを含むことを特徴とする請求項１０に記載の時刻同期方法。
【請求項１２】
前記方法は、さらに、前記時刻同期部が、前記判定された時刻の精度を用いて、前記クロックを同期するための前記時刻同期パケットの転送経路を選択するステップを含むことを特徴とする請求項１０に記載の時刻同期方法。
【請求項１３】
前記判定ステップでは、
前記前記揺らぎ計測部が、前記修正量の揺らぎと所定の閾値とを比較した結果に基づいて、同期元のネットワークノードを変更するか否かを判定し、
前記前記揺らぎ計測部が、現在の同期元以外のネットワークノードから送信された時刻同期パケットの受信可否によって、別の同期元のネットワークノードの有無を判定し、
前記前記揺らぎ計測部が、前記判定結果に基づいて、現在の同期元のネットワークノードから送信された同期信号を無視し、新しい同期元のネットワークノードとの同期処理を開始することを特徴とする請求項１０に記載の時刻同期方法。
【請求項１４】
前記判定ステップでは、前記揺らぎ計測部が、前記修正量の標準偏差を用いて、受信した前記時刻同期パケットに含まれる時刻の精度を判定することを特徴とする請求項１０に記載の時刻同期方法。
【請求項１５】
前記時刻同期部は、少なくとも第１の時刻同期部及び第２の時刻同期部含み、
前記第１の時刻同期部及び前記第２の時刻同期部は、異なるネットワークノードから送信された、又は、同一の他のネットワークノードから異なる経路で転送された前記時刻同期パケットを受信し、
前記第１の時刻同期部及び前記第２の時刻同期部は、前記受信した時刻同期パケットに含まれる時刻の精度を判定することを特徴とする請求項１０から１４のいずれか一つに記載の時刻同期方法。
【請求項１６】
前記クロックは、第１のクロック及び第２のクロックを含み、
前記第１の時刻同期部は前記第１のクロックを同期させ、
前記第２の時刻同期部は前記第２のクロックを同期させることを特徴とする請求項１５に記載の時刻同期方法。
【請求項１７】
前記第１の時刻同期部及び前記第２の時刻同期部は、異なるネットワークノードから異なる経路で転送された前記時刻同期パケットを受信することを特徴とする請求項１５に記載の時刻同期方法。
【請求項１８】
前記時刻同期部は、前記判定された時刻の精度が高い時刻同期パケットに前記クロックが同期された場合、下流のネットワークノードに送信する時刻同期パケットを生成することを特徴とする請求項１５に記載の時刻同期方法。
【請求項１９】
ネットワーク内でデータを転送する複数のネットワークノードと、前記ネットワーク内に時刻を供給するグランドマスタークロックとを備えるネットワークシステムであって、
前記ネットワークノードは、少なくとも第１のネットワークノード、第２のネットワークノード、第３のネットワークノード及び第４のネットワークノードを含み、
前記各ネットワークノードは、複数のポートを有するネットワークインタフェースと、転送制御部と、時刻同期部と、揺らぎ計測部と、クロックと、を有し、
前記第１のネットワークノードは、
前記第２のネットワークノードから送信された時刻同期パケットを受信し、前記受信した時刻同期パケットに含まれる時刻によって前記クロックの時刻を修正し、前記クロックの時刻の修正量を取得し、
前記取得した修正量の揺らぎと所定の閾値とを比較した結果に基づいて、前記第２のネットワークノードから送信された時刻同期パケットに含まれる時刻の精度を判定し、
前記時刻の精度が低いと判定した場合、同期元のネットワークノードを第３のネットワークノードに変更し、
前記第３のネットワークノードから送信された時刻同期パケットに前記クロックを同期した後、前記クロックからの信号に基づいて、第４のネットワークノードに送信する時刻同期パケットを生成することを特徴とするネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータネットワークに関し、特に、ネットワーク上の装置の時刻を同期する技術に関する。
【背景技術】
【０００２】
コンピュータネットワーク上の機器の同期を実現するための技術として、基準クロックとの通信を利用した方法がある。特に、時刻同期には、広範囲に適用でき、高精度に同期でき、安価であることなどが求められており、これらの要求を満たすために新しい方式の標準化が行われてきた。この代表的な標準の一つとしてＩＥＥＥ１５８８  ｖｅｒｓｉｏｎ２  Ｐｒｅｃｉｓｉｏｎ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ（ＩＥＥＥ１５８８  ｖ２）がある。
【０００３】
ＩＥＥＥ１５８８  ｖ２は、通信時のタイムスタンプの差から通信路における遅延時間を計測し、同期用の時刻を通知するパケットを受信し、受信した時刻同期パケットに遅延時間を考慮することによって時刻を同期する。ＩＥＥＥ１５８８  ｖ２には、ネットワーク上に設けられた一つのグランドマスタークロックを基準として、全てのネットワーク機器が時刻を同期する。このとき、ＩＥＥＥ１５８８  ｖ２のプロトコルに従って、グランドマスタークロックは、最も高いクロック精度を有するノードが自動的に選択される。
【０００４】
また、特許文献１には、ネットワーク上の経路を意識して時刻を同期する方法が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−６５５７９公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＩＥＥＥ１５８８  ｖ２では、定期的な双方向の通信による通信路上での遅延時間の計測と、時刻同期パケットを送受信する。このとき、同期のための経路が自動的に決定されるため、より高い精度の時刻同期パケットを選択することができない。
【０００７】
本発明は、より高い精度の同期信号を選択し、時刻同期精度を高めることを目的とする。
【課題を解決するための手段】
【０００８】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、ネットワーク内でデータを転送するネットワークノードであって、複数のポートを有するネットワークインタフェースと、転送制御部と、時刻同期部と、揺らぎ計測部と、クロックと、を備え、前記時刻同期部は、受信した時刻同期パケットに含まれる時刻によって前記クロックの時刻を修正し、前記クロックの時刻の修正量を取得し、前記揺らぎ計測部は、前記時刻同期部が取得した修正量の揺らぎと所定の閾値とを比較した結果に基づいて、前記受信した時刻同期パケットに含まれる時刻の精度を判定する。
【発明の効果】
【０００９】
本発明の代表的な実施の形態によれば、より高い精度の同期信号を有するノード又は同期経路を選択することができる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態のネットワークシステムの構成を示すブロック図である。
【図２】第１の実施形態のネットワークノードの構成を示すブロック図である。
【図３】第１の実施形態の時刻同期パケットの処理のシーケンス図である。
【図４】第１の実施形態の時刻同期パケットの処理のフローチャートである。
【図５】第２の実施形態のネットワークシステムの構成を示すブロック図である。
【図６】第２の実施形態のネットワークノードの構成を示すブロック図である。
【図７】第２の実施形態のテーブルの構成を説明する図である。
【図８】第３の実施形態のネットワークノードの構成を示すブロック図である。
【発明を実施するための形態】
【００１１】
＜実施形態１＞
図１は、本発明の第１の実施形態のネットワークシステムの構成を示すブロック図である。図１に示すネットワークでは、同期プロトコルが動作している。
【００１２】
第１の実施形態のネットワークシステム１０は、グランドマスタークロック１、複数の端末２ａ〜２ｄ、ネットワークノード３ａ〜３ｆ及びネットワークノード４を有し、これらの各構成はネットワーク回線によって接続されている。
【００１３】
グランドマスタークロック１は、高精度のクロックを有し、時刻を提供するネットワークノードであり、ネットワークシステム１０の中で、最も高精度のクロックを有するノードである。この高精度のクロックは、ＧＰＳ等の外部の時刻との同期によって取得したり、原子時計などの高精度な時計を搭載することによって実現できる。グランドマスタークロック１は、クロックを有する隣接ノードとの間で、同期プロトコルの時刻同期手順により時刻を同期する。
【００１４】
端末２は、ネットワークに接続されたネットワークノードであり、ネットワークを介して通信可能である。なお、端末２は、同期プロトコルに対応する時刻同期機能を有する場合、ネットワークを介して時刻を同期することができるが、本実施形態では、端末２の時刻同期機能は必須ではない。
【００１５】
ネットワークノード３は、ネットワークを構成し、ネットワーク上の通信を伝送するネットワーク機器（例えば、スイッチ、ルータ）である。以下では、ネットワーク上を転送されるデータをパケットと総称する。ネットワークノード３は、同期プロトコルに対応する時刻同期機能を有することが必要であるが、時刻同期の経路が成立する限りは、一部のノードが時刻同期機能を有さなくてもよい。ＩＥＥＥ１５８８  ｖ２に対応するネットワークノードは、Ｂｏｕｎｄａｒｙ  ＣｌｏｃｋとＴｒａｎｓｐａｒｅｎｔ  Ｃｌｏｃｋとがある。Ｂｏｕｎｄａｒｙ  Ｃｌｏｃｋは、それ自体がクロックを有しており、Ｔｒａｎｓｐａｒｅｎｔ  Ｃｌｏｃｋは、同期信号を中継する機能を有する。本実施形態では、原則として、全てのネットワークノード３がＢｏｕｎｄａｒｙ  Ｃｌｏｃｋである場合について説明する。なお、Ｔｒａｎｓｐａｒｅｎｔ  Ｃｌｏｃｋが含まれる場合の影響については後述する。
【００１６】
ネットワークノード４は、同期プロトコルに対応する時刻同期機能を有するネットワークノードを改良したネットワークノードで、Ｂｏｕｎｄａｒｙ  Ｃｌｏｃｋと同様に内部にクロックを有する。ネットワークノード４は、時刻同期の精度を監視し、同期精度が低いと判定した場合、同期の経路を変更することによって、より良い同期精度を得ることを試みる。
【００１７】
図１において、矢印は、時刻同期のための信号の流れを示す。時刻同期は、グランドマスタークロック１を起点として、各ネットワークノード３ａ〜３ｆの少なくとも一つを介して、端末２へと至る。ネットワークノード４は、ネットワークノード３ｂをマスターとして時刻を同期している。このとき、ネットワークノード４は、ネットワークノード３ｂから送信された同期信号を受信した際に、自らのクロックを修正し、クロックの修正量（差分）を計測する。この差分の値から、同期信号の揺らぎを計測し、揺らぎが大きい場合に同期精度が低いと判定する。
【００１８】
ネットワークノード４は、受信した同期信号の精度が低いと判定した場合、隣接する別のネットワークノード３ａ〜３ｆのうち、ネットワークノード４に対してマスターとなることができるノードと、新たに時刻同期を試みる。図１に示す例では、ネットワークノード３ｂから送信された同期信号を無視し、ネットワークノード３ｆからの同期信号を用いて、該ネットワークノード３ｆとの間で新たに同期を開始する。そして、ネットワークノード３ｆからの同期信号によって同期精度が改善するかを判定する。
【００１９】
図２は、第１の実施形態のネットワークノード４の構成を示すブロック図である。
【００２０】
ネットワークノード４は、プログラムを実行するプロセッサ、プロセッサによって実行されるプログラム及びデータを格納するメモリ、及び、ネットワークと接続されるインタフェースを有し、検索部４１、転送部４２、ネットワークインタフェース部４３、時刻同期部４４及び揺らぎ計測部４５を有する。検索部４１、転送部４２、時刻同期部４４及び揺らぎ計測部４５は、プロセッサが所定のプログラムを実行することによって、実装される。なお、これらの構成の一部又は全部をハードウェアロジック又はファームウェアによって構成してもよい。
【００２１】
ネットワークインタフェース部４３は、ネットワークノード４宛に送信されたパケットを受信し、受信したパケットを転送部４２に送る。転送部４２は、パケットを一時的に保存し、パケットのヘッダ部分を検索部４１に送る。検索部４１は、パケットの宛先を検索し、検索結果を転送部４２に送る。転送部４２は、検索部４１から検索結果を受信すると、受信した検索結果に基づいて、保存されたパケットを適切な宛先に転送する。このとき、当該パケットが通常のデータパケットであれば、ネットワークインタフェース部４３を介して宛先に対応するポートからネットワークへ送出される。一方、パケットが同期用パケットであれば、当該パケットは時刻同期部４４に転送される。
【００２２】
時刻同期部４４は、クロックを有する。クロックは、例えば、リアルタイムクロックのように時刻データを出力する回路によって実現することができる。また、一定周期の信号を出力する水晶発振器（例えば、プログラマブルオシレータ）でもよい。なお、クロックは時刻同期部４４の内部に設けたが、時刻同期部４４の外部に設けてもよい。時刻同期部４４及び揺らぎ計測部４５は、時刻同期処理を実行する。
【００２３】
図３は、第１の実施形態の時刻同期パケットの処理のシーケンス図である。
【００２４】
マスターのネットワークノード３ｂは、スレーブのネットワークノード４に遅延計測パケット（Ｓｙｎｃメッセージ）を送信する（３０１）。この遅延計測パケットは、マスターノード３ｂの現在時刻Ｔ１を含む。なお、遅延計測パケットとして、Ｓｙｎｃメッセージの他に、Ｆｏｌｌｏｗ＿ｕｐメッセージを送信してもよい。
【００２５】
時刻同期部４４は、マスターノード３ｂから遅延計測パケットを受信すると、クロックに時刻を問い合わせ（３０２）、遅延計測パケットの受信時刻Ｔ２を記録する（３０３）。
【００２６】
時刻同期部４４は、マスターノード３ｂに遅延応答パケット（Ｄｅｌａｙ＿Ｒｅｑメッセージ）を送信する（３０４）。この遅延応答パケットは、マスターノードのタイムスタンプＴ１、スレーブノードのタイムスタンプＴ２及びスレーブノードの現在時刻（Ｔ３）を含む。
【００２７】
マスターノード３ｂは、遅延応答メッセージを受信すると、スレーブノード４に遅延確定パケット（Ｄｅｌａｙ＿Ｒｅｓｐメッセージ）を送信する（３０５）。この遅延確定パケットは、マスターノード３ｂとスレーブノード４との間の伝送遅延時間Δｔを含む。この伝送遅延時間は、Δｔ＝（Ｔ４−Ｔ３＋Ｔ２−Ｔ１）／２で計算される。
【００２８】
その後、時刻同期部４４は、同期用プロトコルの処理を行う。すなわち、マスターノード３ｂは、定期的に、スレーブノード４に同期信号（Ｓｙｎｃメッセージ）を送信する（３０６）。この同期信号は、マスターノード３ｂの現在時刻Ｔ５を含む。
【００２９】
時刻同期部４４は、マスターノード３ｂから同期信号を受信すると、クロックに時刻補正を指示する（３０７）。この時刻補正指示は、マスターノード３ｂの現在時刻Ｔ５を含む。時刻同期部４４のクロックは、時刻補正指示に含まれるマスターノードのタイムスタンプＴ５に基づいて時刻を補正し、マスターノードの時刻と同期し、クロックの修正時間（補正量）を時刻同期部４４に通知する（３０８）。時刻同期部４４は、マスターノードと同期する毎に、クロックの修正時間を揺らぎ計測部４５に通知する（３０９）。
【００３０】
この時刻補正を複数回繰り返した後、揺らぎ計測部４５は、この修正時間によって、受信している同期信号の揺らぎを計測する。その結果、揺らぎ計測部４５は、所定時間の修正時間の計測によって揺らぎが大きいと判定した場合、時刻同期部４４に通知する（３１０）。
【００３１】
揺らぎの大きさの判定には、例えば、修正時間の大きさの絶対値や、修正時間のばらつき（例えば、標準偏差）などを用いることができる。揺らぎが大きい原因は、例えば、一つ目には、同期信号が転送される経路においてネットワークノード４よりクロック精度が低いネットワークノード３が存在していること、二つ目には、ネットワークノード３が多くのトラフィックを受信し輻輳状態にあることがある。
【００３２】
時刻同期部４４は、揺らぎ計測部４５から「揺らぎ大」の通知を受けると、隣接するネットワークノードの中で同期プロトコルに対応しており、かつ、現時点でネットワークノード４との関係がマスターでもスレーブでもないネットワークノードが存在しているかを判定する。図１に示す例では、ネットワークノード３ｆは、ネットワークノード４とマスターでもスレーブでもなく、当該ネットワークノード３ｆとの間では同期をしていない。
【００３３】
時刻同期部４４は、該当するネットワークノード３ｆに時刻同期を要求し（３１１）、これまで時刻を同期していたネットワークノード３ｄからの同期信号３１２を無視する。これによって、ネットワークノード３ｆを経由して新たに同期が開始し、同期信号を無視したネットワークノード３ｄとの間の時刻同期は、同期信号３１３のタイムアウトによって停止する。
【００３４】
ネットワークノード３ｆは、時刻同期を要求を受けると、ネットワークノード４に遅延計測パケットを送信する（３１４）。時刻同期部４４は、クロックに時刻を問い合わせ（３１５）、遅延計測パケットの受信時刻Ｔ２を記録する（３１６）。時刻同期部４４は、マスターノード３ｆに遅延応答パケットを送信する（３１７）。マスターノード３ｆは、スレーブノード４に遅延確定パケットを送信する（３１８）。
【００３５】
この遅延計測パケット、遅延応答パケット及び遅延確定パケットによる時刻同期シーケンスは、前述したマスターノード３ｂとスレーブノード４との間のシーケンス３０１〜３０５と同じである。
【００３６】
その後、新たにマスターとなったネットワークノード３ｆは、スレーブノード４に同期信号を送信する（３１９）。
【００３７】
さらに、ネットワークノード４は、スレーブとなるネットワークノードがある場合、該スレーブノードに対して、同期したクロックを用いて同期信号を作成し、作成した同期信号を時刻同期プロトコルに従って送信する。
【００３８】
図４は、第１の実施形態の時刻同期パケットの処理のフローチャートである。この時刻同期処理は、ネットワークノード４のプロセッサが所定のプログラムを実行することによって、行われる。
【００３９】
まず、転送部４２が受信した同期パケットを分離して、分離された同期パケットを時刻同期部４４に送る（４０１）。
【００４０】
時刻同期部４４は、分離された同期パケットを解析し、受信した同期パケットの送信元を識別する（４０２）。その結果、受信した同期パケットの送信元が同期対象のノードでなければ（４０３でＮＯ）、受信した同期パケットを無視する（４０４）。
【００４１】
一方、受信した同期パケットの送信元が同期対象のノードであれば（４０３でＹＥＳ）、時刻同期部４４は、受信した同期パケットの内容を判定する（４０５）。
【００４２】
受信した同期パケットが遅延計測パケットであれば、クロックから時刻を取得し（４０６）、クロックから取得した時刻を含む遅延応答パケットを送信元のマスターノード３ｂに返信する（４０７）。
【００４３】
一方、受信した同期パケットが同期信号（時刻同期パケット）であれば、受信した同期信号に含まれる時刻をクロックに通知し、クロックの時刻を修正する（４０８）。その後、クロックは、時刻の修正量を時刻同期部４４に通知する（４０９）。
【００４４】
時刻同期部４４は、クロックから通知された時刻の修正量の所定回数分の平均値を計算し（４１０）、計算された平均値から修正量の偏差を求める（４１１）。本実施形態の時刻同期処理では、修正量の平均値から求めた偏差を精度にしたが、修正量のバラツキが分かるような他の統計処理の結果を用いることができる。
【００４５】
そして、揺らぎ計測部４５は、計算された精度と所定の閾値とを比較する（４１２）。その結果、精度が所定の閾値より良好であれば、現在のマスターノードとの時刻同期によって所定の時刻精度が確保できるので、揺らぎ計測部４５は、現在のマスターノードとの時刻同期を継続することを決定する（４１３）。
【００４６】
一方、精度が所定の閾値より悪ければ、現在のマスターノードとの時刻同期によって所定の時刻精度が確保できないので、揺らぎ計測部４５は、時刻同期をするマスターノードの変更を検討する（４１４）。このため、まず、揺らぎ計測部４５は、別のマスターノードがあるか否かを判定する（４１５）。
【００４７】
揺らぎ計測部４５は、現在のマスターノード以外のノードから送信された同期信号が受信できなければ、別のマスターノードはないので、現在のマスターノードとの時刻同期を継続する（４１３）。
【００４８】
一方、揺らぎ計測部４５は、現在のマスターノード以外のノードから送信された同期信号が受信できれば、別のマスターノードはあるので、同期すべきマスターノードの情報を更新し（４１６）、旧マスターノードから送信された同期信号を無視する（４１７）。そして、新しいマスターノードに同期開始要求を送信し（４１８）、新しいマスターノードから遅延計測パケットを受信し、新しい同期が開始する（４１９）。
【００４９】
第１の実施形態では、同期信号に含まれる時刻の精度を用いて、マスターノードを選択したが、同様の手順によって、同じマスターノードから送信された同期信号の転送経路を選択することもできる。すなわち、同じマスターノードから送信された同期信号であっても、転送経路によって遅延量及びそのバラツキが異なる。よって、あるポートを経由して受信した同期信号の精度を計算し、計算された精度に基づいて、同期信号を受信するポートを変更する。
【００５０】
また、転送部４２は、ネットワークインタフェース部４３のポート毎にパケット転送量を測定し、輻輳が検出された場合に、時刻同期部４４が同期元のノードを切り替えてもよい。
【００５１】
以上に説明したように、第１の実施形態では、上位のネットワークノードから送信された同期信号によるクロックの修正量の偏差によって時刻同期の精度を監視し、時刻同期の精度が低いことが検出された場合、他のノードから送信された又は他の同期経路を転送された同期信号を選択して、より高い精度の同期信号を選択することができる。
【００５２】
また、ＩＥＥＥ１５８８  ｖ２に準拠するプロトコルを使用するネットワークにおいて、広範囲、自律的かつ安価に高い精度の時刻同期をすることができる。
【００５３】
＜実施形態２＞
次に、本発明の第２の実施形態について説明する。
【００５４】
第２の実施形態のネットワークノード４は、前述した第１の実施形態のネットワークノードと異なり、各々が異なるノードと時刻同期する二つの時刻同期部を有する。なお、本実施形態では、二つの時刻同期部を有する例を説明するが、三つ以上の時刻同期部を有してもよい。
【００５５】
図５は、本発明の第２の実施形態のネットワークシステムの構成を示すブロック図である。図５に示すネットワークでは、同期プロトコルが動作している。なお、第２の実施の形態において、前述した第１の実施の形態と同じ構成には同じ符号を付し、それらの説明は省略する。
【００５６】
第２の実施形態のネットワークシステム１０は、グランドマスタークロック１、複数の端末２ａ〜２ｄ、ネットワークノード３ａ〜３ｆ及びネットワークノード４を有し、これらの各構成はネットワーク回線によって接続されている。
【００５７】
ネットワークノード４は、同期プロトコルに対応する時刻同期機能を有するネットワークノードを改良したネットワークノードで、Ｂｏｕｎｄａｒｙ  Ｃｌｏｃｋと同様に内部にクロックを有する。ネットワークノード４は、内部に複数の同期用クロックを有し、複数の経路からの同期を可能とし、複数の経路からの同期の精度を比較し最適な同期経路を選択する機能を有する。
【００５８】
図５において、ネットワークノード４は、マスターのネットワークノード３ｂから送信された同期信号を受信した際に、クロックを修正し、クロックの修正量（差分）を計測する。この差分の値から、同期信号の揺らぎを計測する。また、ネットワークノード３ｆから送信された同期信号を受信した際に、クロックを修正することなく、クロックとの差分を計測する。この差分の値から、同期信号の揺らぎを計測する。
【００５９】
これらのネットワークノード３ｂ及び３ｆから送信された同期信号の揺らぎが大きい場合に、ネットワークノード４は、精度が高い同期信号を送信するネットワークノードをマスターとして同期するように、マスターノードを切り替える。すなわち、ネットワークノード４は、受信した同期信号の精度が低いと判定した場合、隣接する別のネットワークノード３ａ〜３ｆのうち、ネットワークノード４に対してマスターとなることができるノードをマスターとして時刻を同期する。図５に示す例では、クロックからの信号を使用して、ネットワークノード３ｂをマスターとして同期しつつ、ネットワークノード３ｆにも同期する。そして、ネットワークノード３ｆからの同期信号の精度が、ネットワークノード３ｂからの同期信号の精度より良ければ、マスターノードを切り替えて、ネットワークノード３ｆをマスターとしてクロックを同期する。その際、時刻を同期できる他の隣接ネットワークノードを探索する。
【００６０】
図６は、第２の実施形態のネットワークノード４の構成を示すブロック図である。
【００６１】
ネットワークノード４は、プログラムを実行するプロセッサ、プロセッサによって実行されるプログラム及びデータを格納するメモリ、及び、ネットワークと接続されるインタフェースを有し、検索部４１、転送部４２、ネットワークインタフェース部４３、時刻同期部Ａ（４４ａ）、時刻同期部Ｂ（４４ｂ）、揺らぎ計測部４５、同期パケット振り分け部４６、テーブル４７及びクロック４８を有する。
【００６２】
検索部４１、転送部４２、時刻同期部４４ａ及び４４ｂ、揺らぎ計測部４５及び同期パケット振り分け部４６は、プロセッサが所定のプログラムを実行することによって、実装される。なお、これらの構成の一部又は全部をハードウェアロジック又はファームウェアによって構成してもよい。クロック４８は、例えば、リアルタイムクロックのように時刻データを出力する回路によって実現することができる。また、一定周期の信号を出力する水晶発振器（例えば、プログラマブルオシレータ）でもよい。
【００６３】
テーブル４７は、図７に示すように、ノード識別子４７１、ノードアドレス４７２、担当時刻同期部４７３、接続ポート４７４及び同期精度情報４７５を含む。
【００６４】
ノード識別子４７１は、マスターとなることができるネットワークノードの識別子である。ノードアドレス４７２は、ノード識別子４７１で識別されるネットワークノードのアドレスであり、例えば、ＩＰアドレスを用いることができる。担当時刻同期部４７３は、ノード識別子４７１で識別されるネットワークノードの同期信号を処理する時刻同期部の識別子である。接続ポート４７４は、ノード識別子４７１で識別されるネットワークノードが接続されるポートの識別子である。同期精度情報４７５は、ノード識別子４７１で識別されるネットワークノードから送信された同期信号の精度である。
【００６５】
ネットワークインタフェース部４３は、ネットワークノード４宛に送信されたパケットを受信し、受信したパケットを転送部４２に送る。転送部４２は、パケットを一時的に保存し、パケットのヘッダ部分を検索部４１に送る。検索部４１は、パケットの宛先を検索し、検索結果を転送部４２に送る。転送部４２は、検索部４１から検索結果を受信すると、受信した検索結果に基づいて、保存されたパケットを適切な宛先に転送する。このとき、当該パケットが通常のデータパケットであれば、ネットワークインタフェース部４３を介して宛先に対応するポートからネットワークへ送出される。一方、当該パケットが同期信号であれば、当該パケットは同期パケット振り分け部４６に転送される。同期パケット振り分け部４６は、転送部４２から転送された同期信号の送信元及び送信経路情報を参照し、当該パケットの転送先の時刻同期部（すなわち、時刻同期部Ａ（４４ａ）に転送するか、時刻同期部Ｂ（４４ｂ）に転送するか、廃棄するか）を選択する。すなわち、同期パケット振り分け部４６は、テーブル４７を参照し、各ノードから受信した同期信号を時刻同期部Ａ（４４ａ）又は時刻同期部Ｂ（４４ｂ）に転送する。
【００６６】
時刻同期部Ａ（４４ａ）及び時刻同期部Ｂ（４４ｂ）は、それぞれ、担当するノードからの同期信号を用いて時刻を同期する。ただし、時刻を実際の同期には、良好な精度が得られる、一方の時刻同期部からの時刻のみを用いる。そして、時刻同期部Ａ（４４ａ）及び時刻同期部Ｂ（４４ｂ）は、時刻の修正量（差分）を計測し、この差分の値から、同期信号の揺らぎを計測し計測された揺らぎの情報を、揺らぎ計測部４５に送信する。
【００６７】
揺らぎ計測部４５は、二つの時刻同期部４４ａ、４４ｂの同期精度を比較し、同期精度の良好度を判定する。判定の結果、現在のマスターノードからの同期信号の精度が、他のネットワークノードからの同期信号の精度より悪ければ、マスターノードを切り替えて、他のネットワークノードをマスターとしてクロック４８を同期する。
【００６８】
第２の実施形態では、同期信号に含まれる時刻の精度を用いて、マスターノードを選択したが、同様の手順によって、同じマスターノードから送信された同期信号の転送経路を選択することもできる。すなわち、ポート毎に受信した同期信号の精度を計算し、計算された精度に基づいて、同期信号を受信するポートを変更する。
【００６９】
また、前述と同様に、転送部４２は、ネットワークインタフェース部４３のポート毎にパケット転送量を測定し、輻輳が検出された場合に、時刻同期部４４が同期元のノードを切り替えてもよい。
【００７０】
以上に説明したように、第２の実施形態によれば、第１の実施形態の効果に加え、ネットワークノードが複数の時刻同期部を有するので、一方の時刻同期部４４ａをメインで動作しつつ、他方の時刻同期部４４ｂで、複数のノード（同期信号の経路）のうち、精度の高いノード又は経路を探索することができる。このため、切替後の同期信号の品質を、切替前に知った上で、切り替えをするか否かを判定することができる。
【００７１】
＜実施形態３＞
次に、本発明の第３の実施形態について説明する。
【００７２】
第３の実施形態のネットワークノード４は、第２の実施形態のネットワークノードと異なり、各時刻同期部に時刻を供給する二つのクロックを有する。なお、第３の実施形態において、前述した第１及び第２の実施の形態と同じ構成には同じ符号を付し、それらの説明は省略する。
【００７３】
図８は、第３の実施形態のネットワークノード４の構成を示すブロック図である。
【００７４】
ネットワークノード４は、プログラムを実行するプロセッサ、プロセッサによって実行されるプログラム及びデータを格納するメモリ、及び、ネットワークと接続されるインタフェースを有し、検索部４１、転送部４２、ネットワークインタフェース部４３、時刻同期部Ａ（４４ａ）、時刻同期部Ｂ（４４ｂ）、揺らぎ計測部４５、同期パケット振り分け部４６、テーブル４７及びクロック４８ａ及び４８ｂを有する。
【００７５】
検索部４１、転送部４２、時刻同期部４４ａ、４４ｂ、揺らぎ計測部４５及び同期パケット振り分け部４６は、プロセッサが所定のプログラムを実行することによって、実装される。なお、これらの構成の一部又は全部をハードウェアロジック又はファームウェアによって構成してもよい。クロック４８ａ及び４８ｂは、各々、時刻同期部Ａ（４４ａ）、時刻同期部Ｂ（４４ｂ）によって制御される。クロック４８ａ及び４８ｂは、例えば、リアルタイムクロックのように時刻データを出力する回路によって実現することができる。また、一定周期の信号を出力する水晶発振器（例えば、プログラマブルオシレータ）でもよい。なお、クロックは時刻同期部４４ａ、４４ｂの外部に設けたが、時刻同期部４４ａ、４４ｂの内部に設けてもよい。
【００７６】
時刻同期部Ａ（４４ａ）及び時刻同期部Ｂ（４４ｂ）は、それぞれ、担当するノードから送信された同期信号を用いて、対応するクロック４８ａ、４８ｂの時刻を同期する。そして、時刻同期部Ａ（４４ａ）及び時刻同期部Ｂ（４４ｂ）は、時刻の修正量（差分）を計測し、この差分の値から、同期信号の揺らぎを計測し計測された揺らぎの情報を、揺らぎ計測部４５に送信する。
【００７７】
揺らぎ計測部４５は、二つの時刻同期部４４ａ、４４ｂの同期精度を比較し、揺らぎが最も小さい同期時刻を採用する時刻として選択し、選択された時刻を担当する時刻同期部４４に通知する。選択された時刻同期部４４は、下位の端末２ｂに送信される同期信号を生成する。
【００７８】
また、揺らぎ計測部４５は、判定の結果、現在のマスターノードからの同期信号の精度が、他のネットワークノードからの同期信号の精度より悪ければ、マスターノードを切り替える。その間、マスターノードと同期していない時刻同期部は、時刻を同期できる他の隣接ネットワークノードを探索する。
【００７９】
以上に説明したように、第３の実施形態によれば、第１及び第２の実施形態の効果に加え、揺らぎ計測部４５における処理を簡単にすることができる。
【００８０】
＜変形例＞
なお、第１〜第３の実施形態では、隣接するノードとの間で時刻を同期し、段階的に同期範囲を広げるＩＥＥＥ１５８８  ｖ２に準拠する同期プロトコルに対して適用可能である。さらに、本発明の実施の形態の時刻同期方法に対応した機器と、通常のＩＥＥＥ１５８８  ｖ２に準拠する同期プロトコルに対応した機器とが混在して運用可能である。一方、時刻同期サーバを配置して、サーバ−クライアント方式で時刻同期を要求する旧来の時刻同期プロトコルの場合、途中の中継ノードは時刻同期を行っておらず、意図的に異なる経路で同期を確立することができなかった。
【００８１】
以上説明した実施形態では、ネットワークノード３がＢｏｕｎｄａｒｙ  Ｃｌｏｃｋとして動作しているが、一部のネットワークノード３がＴｒａｎｓｐａｒｅｎｔ  Ｃｌｏｃｋである場合も、本発明の時刻同期を適用することができる。この場合、Ｔｒａｎｓｐａｒｅｎｔ  Ｃｌｏｃｋは透過的に扱われ、隣接するＢｏｕｎｄａｒｙ  Ｃｌｏｃｋとの間で、同期プロトコルを用いて時刻を同期する。例えば、第１の実施形態（図１）のネットワークノード３ｂ及びネットワークノード３ｆが共にＴｒａｎｓｐａｒｅｎｔ  Ｃｌｏｃｋである場合、時刻同期部４４がマスターノードとして選択可能なネットワークノード３ａ及び３ｅとなる。
【００８２】
さらに、ネットワークノード３ｄ及び３ｅもＴｒａｎｓｐａｒｅｎｔ  Ｃｌｏｃｋである場合、ネットワークノード４に隣接するＢｏｕｎｄａｒｙ  Ｃｌｏｃｋ（マスターノード）は二つの経路のどちらを選択する場合もネットワークノード３ａとなる。この場合、二つの経路を見分けるために、時刻同期部４４は経路を特定するためにＩＰアドレスなどの宛先情報に加えて、前述したように、同期信号を受信するポートや、対向するネットワークノードのＭＡＣアドレスの情報を転送部４２から受け、精度の悪い経路で転送された同期信号を特定し、遮断するとよい。
【符号の説明】
【００８３】
１  グランドマスタークロック
２ａ〜２ｄ  端末
３ａ〜３ｆ  ネットワークノード
４  ネットワークノード
４１  検索部
４２  転送部
４３  ネットワークインタフェース部
４４、４４ａ、４４ｂ  時刻同期部
４５  揺らぎ計測部
４６  同期パケット振り分け部
４７  テーブル
４８、４８ａ、４８ｂ  クロック
【図１】
0005358813.tif 000002
【図２】
0005358813.tif 000003
【図３】
0005358813.tif 000004
【図４】
0005358813.tif 000005
【図５】
0005358813.tif 000006
【図６】
0005358813.tif 000007
【図７】
0005358813.tif 000008
【図８】
0005358813.tif 000009