(57)【特許請求の範囲】
【請求項１】
時刻を配信する複数のマスタ装置のうちの１台である第１のマスタ装置から配信される時刻を管理する時刻情報管理部と、
前記複数のマスタ装置のうち前記第１のマスタ装置以外の少なくとも１台の第２のマスタ装置から配信される時刻と、前記時刻情報管理部が管理する時刻と、を比較し、前記第２のマスタ装置から配信される時刻の精度情報を判定する時刻精度判定部と、
前記時刻精度判定部の比較により得られた、前記精度情報を保持するマスタ装置管理部と、を有し、
前記第１のマスタ装置とは時刻同期のためのメッセージを継続的に送受信して時刻の配信を受け続け、前記第２のマスタ装置とは前記時刻同期のためのメッセージを間欠的に送受信して時刻の配信を受け、
前記マスタ装置管理部は、前記精度情報に基づいて、前記第２のマスタ装置を前記第１のマスタ装置に替えて時刻同期のためのメッセージを継続的に送受信するマスタ装置の候補とするか否かを決定することを特徴とする通信装置。
【請求項２】
前記マスタ装置管理部は、前記第２のマスタ装置から通知される、前記第２のマスタ装置が配信する時刻の精度情報を保持することを特徴とする請求項１に記載の通信装置。
【請求項３】
前記マスタ装置管理部は、前記時刻精度判定部の比較により得られた時刻の精度情報と、前記第２のマスタ装置から通知される時刻の精度情報とを、前記第２のマスタ装置ごとに比較し、当該精度情報どうしの差分が所定の閾値より大きい前記第２のマスタ装置は、前記第１のマスタ装置に替わる候補としないことを特徴とする請求項２に記載の通信装置。
【請求項４】
前記マスタ装置管理部は、
少なくとも２台の前記第２のマスタ装置それぞれについて、前記時刻精度判定部の比較により得られた時刻の精度情報と、当該第２のマスタ装置から通知される時刻の精度情報との差分を求め、
前記少なくとも２台の前記第２のマスタ装置の精度情報の前記差分それぞれが、当該差分を計算した前記第２のマスタ装置から通知される時刻の精度情報から想定される誤差よりも大きい場合に、前記第１のマスタ装置に替えて複数の前記第２のマスタ装置のうちの１台との間で継続的に時刻同期のためのメッセージを送受信して時刻の配信を受け続けることを特徴とする請求項２に記載の通信装置。
【請求項５】
前記第２のマスタ装置が複数ある場合、ラウンドロビン方式により１台の前記第２のマスタ装置を順番に選択して、当該選択した前記第２のマスタ装置との間で前記時刻同期のためのメッセージを送受信して時刻の配信を受け、前記時刻精度判定部により当該選択した前記第２のマスタ装置の前記時刻の精度情報を得ることを特徴とする請求項１に記載の通信装置。
【請求項６】
前記第２のマスタ装置の前記時刻の精度情報を得ると、前記時刻同期のためのメッセージの送受信を停止することを要求するメッセージを当該第２のマスタ装置に対して送信することを特徴とする請求項５に記載の通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マスタ装置との間で時刻同期を行う通信装置に関する。
【背景技術】
【０００２】
情報通信ネットワークの広域化及び高速化に伴い、ネットワークの信頼性を高める目的でシステム内ノードによる時刻情報の送受信を行い、高精度に時刻同期する技術が考えられている。高精度の時刻同期を実現する技術としてＩＥＥＥ（Ｔｈｅ  Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ：以下ＩＥＥＥと称する）１５８８ｖ２が規定されている。
【０００３】
ＩＥＥＥ１５８８ｖ２では時刻配信元である時刻マスタ（以下、マスタ）となるマスタノード（以下、マスタ候補ノード）と、それを受信しマスタの時刻に同期する時刻スレーブであるスレーブノードとを備える。スレーブノードは自ノードがアクセス可能なマスタ候補ノードの中から、各マスタ候補ノードが供給可能な時刻の精度情報を基にマスタとなるマスタ候補ノードを選択する。選択されたマスタ候補ノードは、時刻同期用パケット（ＰＴＰ（Ｐｒｅｓｉｔｉｏｎ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ）パケット）をスレーブノードに送信し、パケットを受信したスレーブノードはパケットに印加された時刻情報を自ノードの時刻情報と比較し、自ノードの時刻を合わせ込むことでマスタ候補ノードの時刻に同期させる。
【０００４】
時刻同期ネットワークにおいて高精度な時刻同期を実現するためには、スレーブノードはより精度が良いと思われる時刻を配信するマスタ候補ノードに同期し、且つ、その精度が正しく保持されるようにする必要がある。特許文献１では、マスタ候補ノード間で同期精度を比較し、接続された各スレーブノードが同期すべきより高精度な時刻を配信可能なマスタ候補ノードを選択するよう指示することで、各スレーブノードがそれぞれ同一のマスタ候補ノードに接続されている場合のマスタ候補ノード選択を一律で行う手段を記載している。また、特許文献２においてはマスタ候補ノードに同期したスレーブノードの同期精度を評価するため、マスタのマスタ候補ノードへの折り返し送信について記載している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−１９９６０３号公報
【特許文献２】特開２０１４−４５２８８公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
複数のマスタ候補ノードに接続されたスレーブノードはＩＥＥＥ１５８８ｖ２にて規定されているＢＭＣ（Ｂｅｓt  Ｍａｓｔｅｒ  Ｃｌｏｃｋ）方式によりマスタ候補ノードの中からマスタとなるマスタ候補ノードを選択することができる。ＢＭＣ方式では、各マスタ候補ノードからスレーブノードに向けて自ノードが送信する時刻の精度情報（以下時刻精度情報）を通知するためのＡｎｎｏｕｎｃｅメッセージが送信され、それを受信したスレーブノードはマスタ候補ノード同士の時刻精度情報を比較し、最も精度良く時刻を送信可能である思われるマスタ候補ノードをマスタとして選択する。
【０００７】
Ａｎｎｏｕｎｃｅメッセージにてスレーブノードに通知される時刻精度情報は特許文献１においてもマスタ候補ノード間で互いの送信可能な時刻情報の精度を比較するために用いられている。しかし、この時刻精度情報はマスタ候補ノードがＡｎｎｏｕｎｃｅメッセージ送信のタイミングで実際に送信可能な時刻の精度に合わせて動的に変化するものではなく、マスタノード内にてパラメータとして保持している値を送信し続ける。このため、何らかのタイミングに発生したマスタ候補ノードの故障等により現実に送信可能な時刻精度が著しく低下したような場合でも、マスタ候補ノードは故障前のパラメータとして保持している時刻精度を送信可能だとしてスレーブノードへの時刻精度情報通知を続けてしまう。
【０００８】
想定されるケースとして、時刻を低精度でしか送信できないにも関わらず最も高い精度で時刻を送信可能だとする時刻精度情報を通知するマスタ候補ノード１と、通知する時刻精度情報はマスタ候補ノード１より劣るが、マスタ候補ノード１が実際に送信する時刻と比較して高精度な時刻を実際に送信できるマスタ候補ノード２が一つのスレーブノードに接続されている場合、スレーブノードは前者の時刻精度と通知する時刻精度情報に乖離があるマスタ候補ノード１をマスタとして選択してしまい、低精度な時刻で動作してしまうことが考えられる。この時、スレーブノードはＡｎｎｏｕｎｃｅメッセージにより通知された時刻精度情報でしかマスタノードの時刻精度を判定できないためマスタノードの時刻精度の乖離を知る手段は無く、異常マスタノードの発見は困難となる。
【０００９】
本発明は、送信する時刻の実精度と通知する時刻精度情報の間に乖離があるマスタノードを判別し、実際に送信可能である時刻が高精度なマスタ候補ノードをマスタとして選択する技術の実現を目的とする。
【課題を解決するための手段】
【００１０】
本発明のスレーブ側となる通信装置は、時刻を配信する複数のマスタ装置のうちの１台である第１のマスタ装置から配信される時刻を管理する時刻情報管理部と、前記複数のマスタ装置のうち前記第１のマスタ装置以外の少なくとも１台の第２のマスタ装置から配信される時刻と、前記時刻情報管理部が管理する時刻と、を比較する時刻精度判定部と、前記時刻精度判定部の比較により得られた、前記第２のマスタ装置から配信される時刻の精度情報を保持するマスタ装置管理部と、を備えるよう構成される。
【発明の効果】
【００１１】
マスタ装置がスレーブノードに通知している時刻精度と実際に配信する時刻の精度とに乖離がある場合でも、スレーブ側で配信時刻の精度を監視することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】時刻同期システムの接続形態の例を示す。
【図２】本実施例が適用されない場合のマスタ候補ノード１１及びマスタ候補ノード１２とスレーブノード２１間の時刻同期メッセージ送受信シーケンス例を示す。
【図３】本実施例が適用された場合のマスタ候補ノード１２及びマスタ候補ノード１２とスレーブノード間の時刻同期メッセージ送受信シーケンス例を示す。
【図４】本実施例におけるスレーブノードのブロック図を示す。
【図５】本実施例においてスレーブノードが各マスタ候補ノードの時刻情報比較を行うまでのフローチャートを示す。
【図６】スレーブノードが保持するマスタ候補ノードの情報の一例を示す。
【図７】本実施例の時刻情報比較結果によりスレーブノードがマスタ候補ノード４を異常と判定した場合のマスタ候補ノードの情報例を示す。
【図８】本実施例の時刻情報比較結果によりスレーブノードがマスタを異常と判定した場合のマスタ候補ノードの情報例を示す。
【発明を実施するための形態】
【００１３】
以下、本発明の実施例について図面を用いて説明する。なお、実質同一部位には同じ参照番号を振り、説明は繰り返さない。
【００１４】
本実施例は図１に示すように、複数のマスタ候補ノード１１〜１５が接続されたスレーブノード２１により構成される。スレーブノード２１はマスタ候補ノード１１〜１５のいずれかをマスタとして選択し、時刻同期を行う。
【００１５】
図２は本実施例が適用されない場合のマスタ候補ノード１１及びマスタ候補ノード１２と、スレーブノード３１間の時刻同期メッセージ送受信シーケンスである。スレーブノード３１はマスタ候補ノード１１とマスタ候補ノード１２からそれぞれが送信可能な時刻の精度情報を通知するＡｎｎｏｕｎｃｅメッセージ２１０、２２０を受信する。スレーブノード２１は接続されたマスタ候補ノードからの精度情報を受信するとそれらの比較を行い、最も精度が良いと思われるマスタ候補ノードをマスタとして選択する（２３０）。本図２ではマスタ候補ノード１１が最も良い時刻精度情報を送信したものとして、マスタ候補ノード１１をマスタに選択した場合のシーケンスを説明している。
【００１６】
スレーブノード３１はマスタ候補ノード１１に同期するため、マスタ候補ノード１１に向けて時刻同期用メッセージ送信要請であるＳｉｇｎａｌｉｎｇメッセージ２１１を送信する。Ｓｉｇｎａｌｉｎｇメッセージ２１１を受信したマスタ候補ノード１１は、スレーブノード３１を自ノードのスレーブとして認識し、マスタ候補ノード１１とスレーブノード３１の間で同期用メッセージであるＳｙｎｃメッセージ２１２、Ｄｅｌａｙ＿Ｒｅｑメッセージ２１３、Ｄｅｌａｙ＿Ｒｅｓｐメッセージ２１４の送受信を開始する。なお、各同期用メッセージ２１２〜２１４の詳細についてはＩＥＥＥ１５８８ｖ２にて規定されている通りとなるので省略する。また、同期用メッセージとして用いられるＦｏｌｌｏｗ＿ｕｐメッセージについては記載していないが、Ｆｏｌｌｏｗ＿ｕｐメッセージの使用によらず本実施例の効果は同様となるため省略している。
【００１７】
時刻同期メッセージ２１２〜２１４のやりとりによりマスタ候補ノード１１の時刻情報を得たスレーブノード３１は、マスタ候補ノード１１の時刻情報を自ノードの時刻情報と比較し、自ノードの時刻を合わせ込むことで自ノードの時刻をマスタ候補ノード１１の時刻に同期させる（２３１）。スレーブノード３１がマスタ候補ノード１１に対して同期が完了した後も、マスタ候補ノード１１とスレーブノード３１は継続して時刻同期用メッセージ２１２〜２１４の送受信を行うことで同期状態を保つ。スレーブノードがマスタ候補ノード１１をマスタとして選択した後、マスタ候補ノード１２及びマスタとして選択されなかったマスタ候補ノードに対しては時刻同期用メッセージの送信要請は実施しない。
【００１８】
図３は本実施例が適用された場合のマスタ候補ノード１１及びマスタ候補ノード１２と、スレーブノード２１間の時刻同期メッセージ送受信シーケンスの実施例である。図３のシーケンスは、スレーブノード２１は自ノードがマスタであるマスタ候補ノード１１に同期する引用符号２３１の処理までは本実施例が適用されない場合の図２のシーケンスと同様となる。引用符号２３１の処理以降、図２のシーケンス同様マスタ候補ノード１１との時刻同期用メッセージの送受信は継続し、スレーブノード２１はマスタ候補ノード１１と時刻同期をし続ける。さらに、スレーブノード２１はこれと同時にマスタとして選択されていないマスタ候補ノード１２を一つ選択し、自ノードと該マスタ候補ノード１２との時刻を比較し、自ノードに対して該マスタ候補ノード１２の時刻がどの程度ずれているかの情報を得るため、一時的に時刻同期用メッセージの送受信を開始する。
【００１９】
本図３でスレーブノード２１は、マスタ候補ノード１２を選択し、マスタ候補ノード１２に対して時刻同期メッセージ送信要請であるＳｉｇｎａｌｉｎｇメッセージ２２１を送信する。その後、マスタ候補ノード１１と行っているように時刻情報比較（２３２）が完了するまでの期間２４０において、マスタ候補ノード１２とも時刻同期用メッセージ２２２〜２２４の送受信を行う。スレーブノード２１はマスタ候補ノード１２から受信した時刻同期用メッセージ２２２〜２２４に付与された時刻情報を基にマスタ候補ノード１２と自ノード時刻情報との比較を行い、時刻情報比較（２３２）にて終了したと認識した後、スレーブノード２１はマスタ候補ノード１２に時刻同期用メッセージの送信停止依頼であるＳｉｇｎａｌｉｎｇメッセージ２２５を送信する。該Ｓｉｇｎａｌｉｎｇメッセージ２２５を受信したマスタ候補ノード１２とスレーブノード２１はそれ以降時刻同期用メッセージ２２２〜２２４のやりとりを行わない。スレーブノード２１はマスタ候補ノード１２以外にもマスタとして選択されていない他のマスタ候補ノードがいる場合、新たに別のマスタ候補ノードを一つ選択し、同様に時刻同期用メッセージをやりとりし、自ノードとの時刻情報比較を行う。
【００２０】
図４はスレーブノード２１のブロック図を示す。マスタ候補ノード１１に着目した場合、スレーブノード２１はパケット送受信部４１１にてマスタ候補ノード１１とのメッセージ送受信を行う。スレーブノード２１は時刻精度情報抽出部４１３において、マスタ候補ノード１１が送信したＡｎｎｏｕｎｃｅメッセージから時刻精度情報を抽出し、マスタ候補ノード管理部４０４にて保持する。マスタ候補ノード管理部４０４は、接続された各マスタ候補ノードの時刻精度情報を基に、各マスタ候補ノードのうちどれをマスタとするかを判定し、マスタとしたマスタ候補ノードを記憶する。マスタ候補ノード管理部４０４は、ＣＰＵとメモリを兼ね備えた機能ブロックでも良いし、ＣＰＵとメモリを別に構成しこれらを組み合わせて構成しても良い。また、マスタ候補ノード管理部４０４とは別に制御部（図示せず）を設け、マスタ候補ノード管理部４０４は単純にメモリ等の情報を記憶する機能だけを備えるようにしても良い。この場合、当該制御部がマスタ候補ノード管理部４０４に記憶された情報を参照してデータの比較や判断を行う。
【００２１】
スレーブノード２１は時刻同期用メッセージをマスタ候補ノード１１から受信した場合、時刻情報抽出部４１２において時刻情報を抽出する。スレーブノード２１は、抽出したマスタ候補ノード１１の時刻情報と、自ノード時刻情報管理部４０１にて管理している自ノードの時刻とを時刻情報比較部４０２にて比較する。スレーブノード２１はマスタ候補ノード管理部４０４を参照し、マスタ候補ノード１１がマスタであった場合、時刻情報比較部４０２の比較結果を自ノード時刻情報管理部４０１にフィードバックし、自ノードの時刻をマスタ候補ノード１１に同期させる。スレーブノード２１はマスタ候補ノード管理部４０４を参照し、マスタ候補ノード１１がマスタではなかった場合、時刻精度判定部４０３においてマスタ候補ノード１１の時刻精度を判定し、得られた判定結果をマスタ候補ノード管理部４０４にて管理する。スレーブノード２１は接続された各マスタノード１１〜１５について同様の処理を行う。
【００２２】
図５は本実施例におけるスレーブノード２１が複数選択されたマスタ候補ノードからマスタを選択し、時刻情報比較部４０２にて自ノードの時刻とマスタを含む各マスタ候補ノードから受信した時刻情報を比較する際のシーケンスを示す。スレーブノード２１は２つ以上のマスタ候補ノードからＡｎｎｏｕｎｃｅメッセージを受信すると（５０１）、それぞれの時刻精度情報を抽出しマスタ候補ノード管理部４０４にて時刻精度情報を比較し（５０２）、比較した結果を基に、マスタ候補ノード管理部４０４にて接続されたマスタ候補ノードの中からマスタを選択する（５０３）。スレーブノード２１はマスタに時刻同期するため、マスタへ時刻同期用メッセージ送信要請Ｓｉｇｎａｌｉｎｇメッセージを送信する（５０４）。
【００２３】
マスタとなったマスタ候補ノードに時刻同期が完了した後（５０５）、マスタ候補ノード管理部４０４は非マスタのマスタ候補ノードの内一つを選択する（５０６）。スレーブノード２１は選択したマスタ候補ノードに時刻同期用フレーム送信要請Ｓｉｇｎａｌｉｎｇメッセージを送信し（５０７）、時刻同期用メッセージのやりとりをすることで、時刻情比較部４０２にて自ノードとの時刻情報の比較を行う（５０８）。時刻情報の比較が完了した後、スレーブノード２１はステップ５０６にて選択したマスタ候補ノードへの時刻同期用メッセージ送信停止Ｓｉｇｎａｌｉｎｇメッセージを送信する（５０９）ことで、該マスタ候補ノードとの時刻同期用メッセージの送受信を停止する。マスタ候補ノード管理部４０４は、ステップ５０７〜５０９にて得られた該マスタ候補ノードとの時刻情報比較結果を判定し（５１０）、判定結果を保持する。マスタ候補ノード管理部４０４は、この判定結果により、該マスタ候補ノードがマスタとして選択対象外となった場合は他のマスタ候補ノードをマスタとして選択する。マスタ候補ノード管理部４０４は別の非マスタのマスタ候補ノードを選択し、５０６〜５１０を繰り返す。
【００２４】
なお、ステップ５０６でのマスタ候補ノードの選択方法は、例えばラウンドロビン方式を用いることでスレーブノード２１がマスタ候補ノード管理部４０４にて管理しているマスタ候補ノードを順番に選択する方法が考えられる。また、本シーケンスはシーケンスの途中でマスタとして選択していたマスタ候補ノードとの接続断等によりマスタを再選択する場合については含んでいない。そのような場合には再度接続されたマスタ候補ノードについて時刻精度情報比較（５０２）を行い、その後はシーケンスに従うこととする。
【００２５】
図６はスレーブノード２１のマスタ候補ノード管理部４０４にて管理される情報の一例を示す。マスタ候補ノード６０は、スレーブノード２１に登録されているマスタ候補ノードの識別情報を保持する。ここに登録されたマスタ候補ノードについて、Ａｎｎｏｕｎｃｅメッセージでスレーブノード２１に通知される時刻精度情報６１、時刻精度情報５１を基に判定する自ノードに対するマスタ・非マスタ判定結果６２、及び図５のシーケンスにより得られた時刻情報の比較結果６３の情報を保持・管理する。
【００２６】
なお、図６ではスレーブノード２１が自ノードの時刻情報と各マスタ候補ノード１１〜１５の時刻情報を比較した結果、マスタ候補ノード１１〜１５全てについて、スレーブノード２１に送信された時刻情報が時刻精度情報から乖離が無かった例を示している。本実施例において、マスタ候補ノードから通知される時刻精度情報６１と、時刻情報の比較結果６３の乖離については、実施対象となる時刻同期システムに応じてどの程度を乖離と見なすかが変わるため具体的な規定はしていない。本実施例にて記載している例においては、時刻情報の比較結果６３にて得られた精度が時刻精度情報６１に対して例えば１／１０以下の精度だと判定された場合に乖離があるとしている。
【００２７】
図７はスレーブノード２１が自ノードの時刻情報とマスタ候補ノード１１〜１５の時刻情報を比較した結果、マスタ候補ノード１４が送信する時刻精度情報７１と時刻情報比較結果７３の間に乖離がある場合の例を示している。スレーブノード２１は時刻情報を比較した結果７３と各マスタ候補ノードから通知される時刻精度情報７１を参照し、例えばその差分が所定の閾値より大きい場合には、マスタ候補ノード１４を異常と見なす。スレーブノード２１はマスタ候補ノード１４のマスタ／非マスタ判定７２において選択対象外として管理し、例えばマスタ候補ノード１１〜１３が接続断等によりマスタとして選択できなくなった場合においても、マスタ候補ノード１４はマスタとしては選択せず、マスタ候補ノード１５をマスタとして選択する。これにより低精度な時刻情報を送信するマスタ候補ノード１４をマスタとして選択することを避けることが可能となる。なお、
図８はスレーブノード２１が自ノードの時刻情報とマスタ候補ノード１１〜１５の時刻情報を比較した結果、マスタであるマスタ候補ノード１１を除いたマスタ候補ノード１２〜１５全てについて時刻情報を比較した結果８３と各マスタ候補ノードから通知される時刻精度情報８１に乖離がある場合に、マスタ候補ノード管理部４０４にて管理される情報の一例を示す。スレーブノード２１は、例えば自ノードに対して通知する時刻精度情報８１が誤差±１００ｎｓ以内としている、ある程度高精度な時刻情報が配信可能なマスタ候補ノードであるマスタ候補ノード１２および１３に着目する。
【００２８】
図８の例ではマスタ候補ノード１２の時刻情報比較結果８３は誤差±１．０ｍｓ以内、マスタ候補ノード１３の時刻情報比較結果８３は誤差±２．５ｍｓ以内であり、スレーブノード２１が自ノード時刻情報管理部４０１で保持する時刻情報と、これらマスタ候補ノード１２、１３から配信される時刻情報との間には乖離がある。このとき、これら高精度な時刻情報を通知するとしているマスタ候補ノード１２および１３が同時に異常な時刻情報を通知する確率は低いと考えられる。このため、スレーブノード２１が時刻配信マスタとしているマスタ候補ノード１１から受信している時刻情報に狂いが生じていることが推測される。スレーブノード２１は自ノードがマスタとしているマスタ候補ノード１１から通知される時刻精度情報と時刻情報の間に乖離があるために生じていると判断し、マスタ／非マスタ判定８２においてマスタ候補ノード１１を選択対象外とする。これによりスレーブノード２１は次のマスタ候補であったマスタ候補ノード１２をマスタとすることで、通知される時刻精度情報と時刻情報の間に乖離の無いマスタ候補ノードへの時刻同期を可能とする。なお、ある程度高精度な時刻情報が配信可能なマスタ候補ノードであるとして着目するマスタ候補ノードの範囲は本実施例が適用される時刻同期システム毎に判定するものとし、本実施例内では特に規定しない。
【００２９】
ここまで説明したように本実施例のスレーブノード２１は、複数のマスタ候補ノードに接続され、各マスタ候補ノードから送信されるＡｎｎｏｕｎｃｅメッセージにより通知された時刻精度情報を保持するマスタ候補ノード管理部４０４を備る。スレーブノード２１は、保持した時刻精度情報の中で最良の時刻精度情報を送信したマスタ候補ノードをマスタとして時刻同期を行う機能を有し、マスタとの時刻同期が完了したと認識した後にマスタ以外のマスタ候補ノードと一時的な時刻同期用メッセージのやりとりを開始する。スレーブノード２１は該マスタ候補ノードから送信される時刻と自ノード時刻を比較する時刻情報比較部４０２を備え、同手順で接続された複数のマスタ候補ノードと順番に時刻情報比較を行ない、各マスタ候補ノードについて得られた時刻情報比較結果６３を基に、それぞれのマスタ候補ノードがマスタとして選択可能か否かを判定する時刻精度判定部４０３を備える。
【００３０】
また、同スレーブノードは特定の閾値以上の時刻精度で時刻情報を送信可能であると通知しているマスタ候補ノードがマスタを除いて２つ以上接続されている場合、各マスタ候補ノードとの時刻同期用メッセージのやりとりにより得られた時刻情報比較結果の中から該マスタ候補ノードの時刻情報比較結果を選出し、その選出された全てのマスタ候補ノードにおいて、通知されている時刻精度情報と自ノードの時刻と比較した結果との乖離が大きい場合には、同時に複数のマスタ候補ノードにおいて同様の異常（通知する時刻精度情報と実際に送信する時刻情報の間に乖離がある）となることは考え難いという前提により、自ノードがマスタとしているマスタノードの時刻精度が異常であると見なし、次のマスタ候補をマスタとして選択する。
【００３１】
本実施例により、複数のマスタ候補ノードが接続されているスレーブノードにおいて、高品質時刻同期ネットワーク構築の阻害要因となり得る、スレーブノードに通知している時刻精度とは乖離がある、異常な精度で時刻を送信するマスタ候補ノードをマスタとして選択しないようにすることが可能であり、代わりにスレーブノードに通知している時刻精度情報と実際に送信可能な時刻情報の間に乖離がないマスタ候補ノードを選択することが可能である。
【００３２】
また、同期後も継続して時刻同期用メッセージの送受信が必要となる従来のマスタノード―スレーブノードの時刻同期時とは異なり、マスタ候補ノード（非マスタ）―スレーブノード（非従ノード）間では、スレーブノードが自ノードのクロック精度と比較を行った後は時刻同期用メッセージ送受信を強制的に中断することで、ネットワークに膨大な負荷をかけずに効果を得ることが可能である。
【符号の説明】
【００３３】
１１〜１５  マスタ候補ノード
２１  スレーブノード
２１０、２２０  Ａｎｎｏｕｎｃｅメッセージ（時刻精度情報通知用）
２１１、２２１  Ｓｉｇｎａｌｉｎｇメッセージ（時刻同期用メッセージ送信要請用）
２１２、２２２  Ｓｙｎｃメッセージ（時刻同期用）
２１３、２２３  Ｄｅｌａｙ＿Ｒｅｑメッセージ（時刻同期用）
２１４、２２４  Ｄｅｌａｙ＿Ｒｅｓｐメッセージ（時刻同期用）
２２５  Ｓｉｇｎａｌｉｎｇメッセージ（時刻同期用メッセージ送信停止要請用）
２３０  時刻精度情報比較及びマスタ選択タイミング
２３１  マスタとの時刻同期完了タイミング
２３２  非マスタのマスタ候補ノードの時刻情報比較完了
２４０  非マスタのマスタ候補ノードとの時刻同期用メッセージの送受信期間
４０１  自ノード（スレーブノード）時刻情報管理部
４０２  時刻情報比較部
４０３  時刻精度判定部
４０４  マスタ候補ノード管理部
４１１、４２１、４５１  パケット送受信部
４１２、４２２  時刻情報抽出部
４１３、４２３  時刻精度情報抽出部
【図１】
0006488195.tif 000002
【図２】
0006488195.tif 000003
【図３】
0006488195.tif 000004
【図４】
0006488195.tif 000005
【図５】
0006488195.tif 000006
【図６】
0006488195.tif 000007
【図７】
0006488195.tif 000008
【図８】
0006488195.tif 000009