(57)【要約】【課題】マスタノードでの同期処理負荷およびマスタノードとスレーブノードとの時刻同期処理時の通信量を削減することを目的とする。【解決手段】マスタノードからの送信時刻の情報を含む時刻同期メッセージに基づいて時刻同期処理を行うノードは、該マスタノードから他のノード宛に送信された該時刻同期メッセージの受信時刻を計時する時計部と、該マスタノードから該他のノード宛に送信された該時刻同期メッセージを検出すると共に、検出した該時刻同期メッセージから該送信時刻の情報を抽出するメッセージ検出部と、抽出した該送信時刻の情報および該受信時刻の情報に基づいて、該時計部の時刻を補正する時刻補正部と、該受信部にて受信した該時刻同期メッセージが該他のノード宛であった場合に、該他のノードへ受信した該時刻同期メッセージを転送する転送制御部とを有する。【選択図】図３
2013017104.tif 000002
【特許請求の範囲】
【請求項１】
マスタノードからの送信時刻の情報を含む時刻同期メッセージに基づいて時刻同期処理を行うノードであって、
該マスタノードから他のノード宛に送信された該時刻同期メッセージの受信時刻を計時する時計部と、
該マスタノードから該他のノード宛に送信された該時刻同期メッセージを検出すると共に、検出した該時刻同期メッセージから該送信時刻の情報を抽出するメッセージ検出部と、
抽出した該送信時刻の情報および該受信時刻の情報に基づいて、該時計部の時刻を補正する時刻補正部と、
該受信部にて受信した該時刻同期メッセージが該他のノード宛であった場合に、該他のノードへ受信した該時刻同期メッセージを転送する転送部と
を有することを特徴とするノード。
【請求項２】
該時計部は、該他のノードが該時刻同期メッセージに応答して該マスタノード宛に送信した応答メッセージの受信時刻を計時し、
該メッセージ検出部は、該応答メッセージを検出すると共に、該他のノードが該応答メッセージを送信した応答時刻の情報を抽出し、
該時刻補正部は、該応答メッセージの受信時刻の情報および該応答時刻の情報に基づいて、該時計部の時刻を補正する
ことを特徴とする、請求項１に記載のノード。
【請求項３】
該メッセージ検出部は、該時刻同期メッセージの検出に応じて、該マスタサーバから自分宛の時刻同期メッセージ送信の停止を依頼する停止依頼信号を該マスタサーバへ送信することを特徴とする、請求項１または２に記載のノード。
【請求項４】
該メッセージ検出部は、該他のノードのアドレスを記憶し、記憶した該アドレスに基づいて、該マスタノードから受信する時刻同期メッセージを検出することを特徴とする、請求項１乃至３のいずれか一項に記載のノード。
【請求項５】
第１のノード、第２のノード、及び、該第２のノード宛のメッセージを該第１のノードを経由して送信するマスタノードを有する通信システムであって、
該マスタノードは、
該送信時刻の情報を含む時刻同期メッセージを生成する生成部と、
該時刻同期メッセージの送信時刻を計時する第１の時計部と、 
該生成部により生成された該時刻同期メッセージを該第２のノード宛に送信する第１の送信部と
を有し、
該第１のノードは、
該時刻同期メッセージの受信時刻を計時する第２の時計部と、 
該時刻同期メッセージを検出すると共に、検出した該時刻同期メッセージから該送信時刻の情報を抽出するメッセージ検出部と、
抽出した該送信時刻の情報および該受信時刻の情報に基づいて、該時計部の時刻を補正する時刻補正部と、
該メッセージ検出部にて検出した該時刻同期メッセージが、該第２のノード宛である場合、該時刻同期メッセージの宛先となる該第２のノードへ転送する転送部と
を有する通信システム。
【請求項６】
該第２のノードは、
該時刻同期メッセージに応答する応答メッセージを生成するメッセージ処理部と、
該応答メッセージを該マスタノードへ送信する応答時刻を計時する第３の時計部と
を有し、
該第２の時計部は、該第２のノードから該マスタノード宛に送信された該応答メッセージの受信時刻を計時し、
該メッセージ検出部は、該応答メッセージを検出すると共に、該第２のノードが該応答メッセージを送信した該応答時刻の情報を抽出し、
該時刻補正部は、該応答メッセージの受信時刻の情報および該応答時刻の情報に基づいて、該第２の時計部の時刻を補正する
ことを特徴とする、請求項５に記載の通信システム。
【請求項７】
該メッセージ検出部は、検出した該第２のノード宛の時刻同期メッセージが、該第１のノード宛の時刻同期メッセージと同一のクロックドメインに基づく送信時刻の情報を有する場合に、該マスタサーバから該第１のノード宛の時刻同期メッセージ送信の停止を依頼する停止依頼信号を該マスタサーバへ送信することを特徴とする、請求項５または６に記載の通信システム。
【請求項８】
該メッセージ検出部は、該第２のノードのアドレスを記憶し、記憶した該アドレスに基づいて、該マスタノードから受信する時刻同期メッセージを検出することを特徴とする、請求項５乃至７のいずれか一項に記載の通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数装置間で同期処理を行う通信システムに関する。
【背景技術】
【０００２】
ネットワーク接続された複数のノードを有する通信システムでは、イベント同期とデータ相関を簡易化するためにタイミングを正確に取る必要がある。例えばＥｔｈｅｒｎｅｔ（登録商標）は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）をはじめ、パケット網を支えるインフラ技術として、通信システムの中で利用されている。通信システムにおけるＥｔｈｅｒｎｅｔは、音声データや動画データといった伝送遅延や伝送途中でのデータのロスが、受信したデータの品質に大きく影響するデータの通信にも利用される。
【０００３】
通信システムにおけるデータ通信の伝送品質を向上させるため、伝送遅延や遅延揺らぎ、伝送途中でのデータのロスなどを監視する機能に対する要求が高まっている。伝送品質を監視する機能の一つとして、ＩＴＵ−Ｔ勧告Ｙ．１７３１で規定されているｏｎｅ−ｗａｙ  ＥＴＨ−ＤＭと呼ばれる機能を用いて伝送遅延を測定する方法がある。この方法では、伝送遅延を測定したい範囲の両端に接続されたノードの間であらかじめ時刻を同期させておく。同期後、送信側のノードは１ＤＭと呼ばれるメッセージを受信側のノードへ送信する。送信側のノードはメッセージの送信時刻を１ＤＭに挿入する。受信側のノードはメッセージ１ＤＭを受信すると、受信時刻を記憶すると共に、メッセージ１ＤＭから送信時刻を抽出する。受信側のノードは、記憶した受信時刻とメッセージから抽出した送信時刻との差分により、送信側のノードと受信側のノードとの伝送遅延時間を求めることが出来る。
【０００４】
送信時刻と受信時刻との差分から伝送遅延時間を求める方法は、送信側のノードと受信側のノードが同期していることが前提となる。ノード間の同期をとる方法として、ＩＥＥＥ１５８８に基づく時刻同期がある。ＩＥＥＥ１５８８は、Ｅｔｈｅｒｎｅｔなどのマルチキャスト対応ネットワークを介して接続されるクロックを同期するための標準プロトコルを規定する。ここでマルチキャストとは、決められた複数のノードに対し、同時にパケット送信することをいう。ＩＥＥＥ１５８８では時刻調整用のメッセージを送信する主体を交互に変更し、双方の時刻調整結果を比較する。双方の時刻調整結果にずれがある場合、そのずれを直すように時刻を補正することにより、各ノードの同期をとることが出来る。特許文献１から３には、ノード間の時刻同期に関する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２００８／１２９５９３号
【特許文献２】国際公開第２００８／１２９５９４号
【特許文献３】特開２００５−２５３０３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
通信システムにおいて、多くのサービスフローに対して伝送遅延の監視機能を提供する場合、通信システムを構成する多くのノード間で時刻同期が必要となる。基準クロックを提供するノードをマスタノードと呼び、マスタノードに同期するノードをスレーブノードと呼ぶ。１つのマスタノードに対し、複数のスレーブノードが接続されている場合、マスタノードはそれぞれのスレーブノードに対して個別に時刻同期処理を実行する。よって、接続されるスレーブノードの数が増えるほど、マスタノードの時刻同期処理量は増加する。
【０００７】
本技術では、マスタノードでの同期処理負荷およびマスタノードとスレーブノードとの時刻同期処理時の通信量を削減することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、マスタノードからの送信時刻の情報を含む時刻同期メッセージに基づいて時刻同期処理を行うノードは、該マスタノードから他のノード宛に送信された該時刻同期メッセージの受信時刻を計時する時計部と、該マスタノードから該他のノード宛に送信された該時刻同期メッセージを検出すると共に、検出した該時刻同期メッセージから該送信時刻の情報を抽出するメッセージ検出部と、抽出した該送信時刻の情報および該受信時刻の情報に基づいて、該時計部の時刻を補正する時刻補正部と、該受信部にて受信した該時刻同期メッセージが該他のノード宛であった場合に、該他のノードへ受信した該時刻同期メッセージを転送する転送制御部とを有する。
【発明の効果】
【０００９】
実施形態によれば、マスタノードでの同期処理負荷およびマスタノードとスレーブノードとの時刻同期処理時の通信量を削減することが出来る。
【図面の簡単な説明】
【００１０】
【図１】通信システム１のブロック図である。
【図２】マスタノード１０の詳細ブロック図である。
【図３】中継スレーブノード１１の詳細ブロック図である。
【図４】Ａは時刻同期メッセージ４０の構成図である。ＢはＳｙｎｃ制御信号５０の構成図である。
【図５】時刻同期処理の流れを示すシーケンス図である。
【図６】中継スレーブノード１１の同期処理を説明するシーケンス図である。
【図７】監視処理開始後の中継スレーブノード１１の動作を説明するシーケンス図である。
【図８】障害発生後の中継スレーブノード１１での同期処理を説明するシーケンス図である。
【図９】中継スレーブノード１１の処理フロー図である。
【発明を実施するための形態】
【００１１】
以下、本実施の形態について説明する。なお、各実施形態における構成の組み合わせも本発明の実施形態に含まれる。
【００１２】
図１は本実施例に係る通信システム１のブロック図である。通信システム１はマスタノード１０、スレーブノード１１、１２を有する。本実施例では、マスタノード１０に接続されたスレーブノードのうち、マスタノード１０に対し最も末端に接続されたスレーブノード１２を末端スレーブノードと呼び、マスタノード１０と末端スレーブノードとの間に接続されたスレーブノード１１を中継スレーブノードと呼ぶ。
【００１３】
マスタノード１０は、ネットワーク上で最も精度の高いマスタクロックで動作するノードである。中継スレーブノード１１、末端スレーブノード１２は、マスタノード１０にネットワーク接続されたノードである。通信システム１は、マスタノード１０のマスタクロックに、中継スレーブノード１１、末端スレーブノード１２のスレーブクロックを同期させる。図１の実施例では、１つのマスタノード１０に複数の中継スレーブノード１１が接続され、それぞれの中継スレーブノード１１に複数の末端スレーブノード１２が接続されている。本実施例においては、マスタノード１０に接続された１つの中継スレーブノード１１と、１つの中継スレーブノード１１に接続された１つの末端スレーブノード１２に着目して説明する。
【００１４】
図２はマスタノード１０の詳細ブロック図である。マスタノード１０はＤｅｍｕｌｔｉｐｌｅｘｅｒ２０、Ｓｙｎｃ／ＦｏｌｌｏｗＵｐ生成部２４、Ｓｙｎｃ抑止処理部２１、ＤｅｌａｙＲｅｓｐ生成部２２、メッセージ処理部２３、Ｍｕｌｔｉｐｌｅｘｅｒ２５、時計部２６を有する。
【００１５】
Ｄｅｍｕｌｔｉｐｌｅｘｅｒ２０は各スレーブノードから受信したパケット信号をＳｙｎｃ抑止依頼信号、ＤｅｌａｙＲｅｑメッセージ、およびその他のメッセージに分離する。Ｄｅｍｕｌｔｉｐｌｅｘｅｒ２０は分離したＳｙｎｃ抑止依頼信号をＳｙｎｃ抑止処理部２１へ、ＤｅｌａｙＲｅｑメッセージをＤｅｌａｙＲｅｓｐ生成部２２へ、その他のメッセージをメッセージ処理部２３へそれぞれ送信する。Ｓｙｎｃ抑止依頼信号は、マスタノード１０から出力されるＳｙｎｃ／ＦｏｌｌｏｗＵＰメッセージの出力停止を外部から依頼するパケット信号である。ＤｅｌａｙＲｅｑメッセージはマスタノード１０に接続された各スレーブノードから送信される信号である。その他のメッセージは、マスタノード１０に接続された各スレーブノードから送信された、時刻同期処理に関する信号以外の信号である。
【００１６】
Ｓｙｎｃ抑止処理部２１は、Ｄｅｍｕｌｔｉｐｌｅｘｅｒ２０からＳｙｎｃ抑止依頼信号を受信した場合に、Ｓｙｎｃ／ＦｏｌｌｏｗＵｐ生成部２４に対し、Ｓｙｎｃ抑止信号を送信する。Ｓｙｎｃ／ＦｏｌｌｏｗＵｐ生成部２４の数は、マルチキャスティングするスレーブノードの数に等しい。各Ｓｙｎｃ／ＦｏｌｌｏｗＵｐ生成部２４には、パケット信号送信先のスレーブノードのアドレスがあらかじめ登録されている。
【００１７】
Ｓｙｎｃ／ＦｏｌｌｏｗＵｐ生成部２４は定期的にＳｙｎｃメッセージおよびＦｏｌｌｏｗＵｐメッセージを生成し、Ｍｕｌｔｉｐｌｅｘｅｒ２５へ送信する生成部として機能する。Ｓｙｎｃ／ＦｏｌｌｏｗＵｐ生成部２４は、時計部２６からＳｙｎｃメッセージの送信時刻の時刻情報を読み出し、生成したＦｏｌｌｏｗＵｐメッセージに挿入する。Ｓｙｎｃ／ＦｏｌｌｏｗＵｐ生成部２４はＳｙｎｃ抑止処理部２１からＳｙｎｃ抑止信号を受信すると、指定されたアドレス宛のＳｙｎｃメッセージおよびＦｏｌｌｏｗＵｐメッセージの出力を停止する。
【００１８】
ＤｅｌａｙＲｅｓｐ生成部２２は、Ｄｅｍｕｌｔｉｐｌｅｘｅｒ２０からＤｅｌａｙＲｅｑメッセージを受信した場合に、ＤｅｌａｙＲｅｓｐメッセージを生成しＭｕｌｔｉｐｌｅｘｅｒ２５へ出力する。ＤｅｌａｙＲｅｓｐ生成部２２は、メッセージの送信時刻の時刻情報を時計部２６から読みとり、生成したＤｅｌａｙＲｅｓｐメッセージに挿入する。
【００１９】
メッセージ処理部２３は、Ｄｅｍｕｌｔｉｐｌｅｘｅｒ２０からメッセージを受信した場合に、メッセージの内容に対応した処理メッセージをＭｕｌｔｉｐｌｅｘｅｒ２５へ出力する。メッセージ処理部２３へ送信されるメッセージは、Ｓｙｎｃメッセージ、ＦｏｌｌｏｗＵｐメッセージ、ＤｅｌａｙＲｅｑメッセージ、およびＤｅｌａｙＲｅｓｐメッセージ以外の、ＩＥＥＥ１５８８のメッセージである。
【００２０】
時計部２６はマスタノード１０の時刻を計時する。時計部２６はＳｙｎｃ／ＦｏｌｌｏｗＵｐ生成部２４およびＤｅｌａｙＲｅｓｐ生成部２２の読み出し要求に応じて、要求時の時刻の時刻情報を送信する。
【００２１】
Ｍｕｌｔｉｐｌｅｘｅｒ２５は、Ｓｙｎｃ／ＦｏｌｌｏｗＵｐ生成部２４から送信されたＳｙｎｃメッセージおよびＦｏｌｌｏｗＵｐメッセージ、ＤｅｌａｙＲｅｓｐ生成部２２から送信されたＤｅｌａｙＲｅｓｐメッセージ、およびメッセージ処理部２３から送信されたメッセージパケットを多重化し、シリアル信号として外部へ送信する送信部として機能する。
【００２２】
以上の通りマスタノード１０は、複数のスレーブノードへメッセージをマルチキャスティングすると共に、複数の末端スレーブノードから送信されたメッセージを処理することが出来る。
【００２３】
図３は中継スレーブノード１１の詳細ブロック図である。中継スレーブノード１１は、メッセージ検出部３０、メッセージ処理部３１、転送部３２、時計部３３、時刻補正部３４を有する。本実施例において、末端スレーブノード１２は、中継スレーブノード１１と同一構成であってもよい。
【００２４】
メッセージ検出部３０は、マスタノード１０から送信されるＳｙｎｃメッセージおよびＦｏｌｌｏｗＵｐメッセージを監視する。メッセージ検出部３０は、自分以外の他のスレーブノード宛のＳｙｎｃメッセージを検出すると、時計部３３を参照することにより、メッセージの受信時刻の時刻情報を時刻補正部３４へ送信する。またメッセージ検出部３０は、自分以外の他のスレーブノード宛のＦｏｌｌｏｗＵｐメッセージを検出すると、ＦｏｌｌｏｗＵｐメッセージから抽出した時刻情報を時刻補正部３４へ送信する。
【００２５】
本実施例に示す通り中継スレーブノード１１は、複数の末端スレーブノードに接続されていても良い。中継スレーブノード１１から複数の末端スレーブノードへ接続されている場合、マスタノード１０から複数の末端スレーブノード宛に送信された複数の時刻同期メッセージが、中継スレーブノード１１を通過することとなる。
【００２６】
例えば複数の時刻同期メッセージがほぼ同一のタイミングで中継スレーブノード１１を通過する場合、すべての時刻同期メッセージを検出し時刻同期処理するのは、メッセージ検出部３０の処理負荷の増大につながる。複数の時刻同期メッセージが中継スレーブノード１１を通過する場合、メッセージ検出部３０は最初に検出したメッセージについてのみ処理を実行し、検出したメッセージの宛先アドレスを記憶する。続いて時刻同期メッセージを受信した場合、メッセージ検出部３０は、記憶した宛先アドレスのメッセージを検出し、それ以外のアドレス宛てのメッセージを無視する。以上の通りメッセージ検出部３０を設定することにより、通信システム１は、１つの中継スレーブノードから複数の末端スレーブノードへ分岐接続されている場合であっても、処理負荷を増大させること無く同期処理を実行することが出来る。
【００２７】
メッセージ処理部３１は、自分宛に送信されたメッセージを処理する。メッセージ処理部３１は、自分宛のＳｙｎｃメッセージを検出すると、時計部３３を参照することにより、メッセージの受信時刻の時刻情報を時刻補正部３４へ送信する。またメッセージ処理部３１は、自分宛のＦｏｌｌｏｗＵｐメッセージを検出すると、ＦｏｌｌｏｗＵｐメッセージから抽出した時刻情報を時刻補正部３４へ送信する。
【００２８】
メッセージ処理部３１は、マスタノード１０へ送信するメッセージを生成する。メッセージ処理部３１は、メッセージの送信時刻の時刻情報を時計部３３から読みとり、時刻補正部３４へ送信する。
【００２９】
時計部３３は特定のメッセージの送信時刻および受信時刻を計時する。時計部３３はメッセージ検出部３０およびメッセージ処理部３１の要求に応じて、計時した時刻をメッセージ検出部３０およびメッセージ処理部３１へ送信する。時計部３３は時刻補正部３４から受信した補正信号に応じて、現在時刻を修正する。
【００３０】
時刻補正部３４は、メッセージ検出部３０およびメッセージ処理部３１から同期処理に関する時刻情報を受信する。時刻補正部３４は、受信した時刻情報を記憶する。時刻補正部３４は記憶した時刻情報に基づいて、時計部３３の補正時間を算出する。時刻補正部３４は算出した補正時間に応じて、時計部３３の時刻を補正する補正信号を時計部３３へ送信する。
【００３１】
転送部３２は、中継スレーブノード１１が受信したＥｔｈｅｒｎｅｔ伝送サービスのサービスフレームを他のノードへ転送する。また転送部３２は、送信先の末端スレーブノードを特定し、メッセージを転送する。本実施例において、中継スレーブノード１に接続される末端スレーブノードは１つだが、複数の末端スレーブノードに接続されている場合、転送部３２はメッセージの宛先アドレスを読みとることにより、メッセージ転送先の末端スレーブノードを特定する。転送部３２は、例えばＩＥＥＥ８０２．１Ｑブリッジの機能を有する。
【００３２】
以上の通りスレーブノードは、マスタノードとの時刻同期メッセージに基づいて、時計部３３の時刻同期処理を実行することが出来る。
【００３３】
図４は、ＩＥＥＥ１５８８に基づく各種信号の構成図である。図４のＡは時刻同期メッセージ４０の構成図である。図４のＢはＳｙｎｃ制御信号５０の構成図である。
【００３４】
図４のＡについて、時刻同期メッセージ４０は、宛先アドレス４１、送信元アドレス４２、ＥｔｈｅｒｎｅｔＴｙｐｅ４３、ＭｅｓｓａｇｅＴｙｐｅ４４、ＤｏｍａｉｎＮｕｍｂｅｒ４５、データ４６を有する。
【００３５】
宛先アドレス４１は、時刻同期メッセージ４０の送信先ノードを示すアドレスである。例えば時刻同期メッセージ４０が末端スレーブノード１２宛に送信される場合、宛先アドレス４１には末端スレーブノード１２のアドレスが挿入される。
【００３６】
送信元アドレス４２は、時刻同期メッセージ４０の送信元ノードを示すアドレスである。時刻同期メッセージ４０がマスタノード１０から送信される場合、送信元アドレス４２にはマスタノード１０のアドレスが挿入される。
【００３７】
ＥｔｈｅｒｎｅｔＴｙｐｅ４３は、時刻同期メッセージ４０の形式を決定している規格の種類を示す符号である。本実施例の場合、ＥｔｈｅｒｎｅｔＴｙｐｅ４３はＩＥＥＥ１５８８を示す符号が挿入される。
【００３８】
ＭｅｓｓａｇｅＴｙｐｅ４４は、時刻同期メッセージ４０の種類を示す符号である。本実施例において、時刻同期メッセージ４０は、Ｓｙｎｃメッセージ、ＦｏｌｌｏｗＵｐメッセージ、ＤｅｌａｙＲｅｑメッセージ、ＤｅｌａｙＲｅｓｐメッセージの４つを含む。
【００３９】
ＤｏｍａｉｎＮｕｍｂｅｒ４５は、同期処理対象であるクロックドメインを示す符号である。例えばマスタノード１０から複数の異なるクロックドメインに対して同期処理を実行する場合、各ノードは、どのクロックドメインに対する時刻同期メッセージであるかを示す符号をＤｏｍａｉｎＮｕｍｂｅｒ４５に挿入する。
【００４０】
データ４６は、時刻同期メッセージ４０中に挿入可能なデータの格納領域である。例えばＦｏｌｌｏｗＵｐメッセージやＤｅｌａｙＲｅｓｐメッセージの場合、データ４６としてメッセージ送信時刻の時刻情報を挿入する。
【００４１】
図４のＢについて、Ｓｙｎｃ制御信号５０は、宛先アドレス５１、送信元アドレス５２、ＭｅｓｓａｇｅＴｙｐｅ５３を有する。
【００４２】
宛先アドレス５１は、時刻同期メッセージ４０の送信先ノードを示すアドレスである。例えば時刻同期メッセージ４０が末端スレーブノード１２宛に送信される場合、宛先アドレス４１には末端スレーブノード１２のアドレスが挿入される。
【００４３】
送信元アドレス５２は、時刻同期メッセージ４０の送信元ノードを示すアドレスである。時刻同期メッセージ４０がマスタノード１０から送信される場合、送信元アドレス４２にはマスタノード１０のアドレスが挿入される。
【００４４】
ＭｅｓｓａｇｅＴｙｐｅ５３は、Ｓｙｎｃ制御信号５０の種類を示す符号である。本実施例において、Ｓｙｎｃ制御信号５０は、Ｓｙｎｃ抑止依頼信号、Ｓｙｎｃ生成依頼信号の２つを含む。
【００４５】
以上の通り時刻同期メッセージ４０は、ＩＥＥＥ１５８８の規格に基づくデータ構造を有する。
【００４６】
図５は、時刻同期処理の流れを示すシーケンス図である。図１におけるマスタノード１０の時計を基準とした場合の、スレーブノード１１および１２の時刻同期処理を例に説明する。
【００４７】
マスタノード１０のＳｙｎｃ／ＦｏｌｌｏｗＵｐ生成部２４は、メッセージを送信した時刻Ｔ１の時刻情報を記憶すると共に、Ｓｙｎｃメッセージを末端スレーブノード１２へ定期的に送信する（Ｓ１０）。
【００４８】
中継スレーブノード１１のメッセージ検出部３０は、マスタノード１０から送信された末端スレーブノード１２宛のＳｙｎｃメッセージを検出すると、自身の時計部３３を参照することにより、メッセージの受信時刻Ｔ２Ａの時刻情報を作成する。メッセージ検出部３０はＳｙｎｃメッセージを受信した時刻Ｔ２Ａの時刻情報を時刻補正部３４へ送信する。時刻補正部３４は、メッセージ検出部３０から受信した時刻Ｔ２Ａの時刻情報を記憶する。中継スレーブノード１１の転送部３２は、受信したＳｙｎｃメッセージを末端スレーブノード１２へ転送する。
【００４９】
末端スレーブノード１２のメッセージ処理部３１は、中継スレーブノード１１から転送された末端スレーブノード１２宛のＳｙｎｃメッセージを受信すると、自身の時計部３３を参照することにより、メッセージの受信時刻Ｔ２Ｂの時刻情報を作成する。メッセージ処理部３１はＳｙｎｃメッセージを受信した時刻Ｔ２Ｂの時刻情報を時刻補正部３４へ送信する。時刻補正部３４は、メッセージ処理部３１から受信した時刻Ｔ２Ｂの時刻情報を記憶する。
【００５０】
マスタノード１０のＳｙｎｃ／ＦｏｌｌｏｗＵｐ生成部２４は、記憶したＳｙｎｃメッセージ送信時刻の時刻情報を含むＦｏｌｌｏｗＵｐメッセージを末端スレーブノード１２へ送信する（Ｓ１１）。
【００５１】
中継スレーブノード１１のメッセージ検出部３０は、マスタノード１０から送信された末端スレーブノード１２宛のＦｏｌｌｏｗＵｐメッセージを検出すると、メッセージ中の時刻情報を抽出する。メッセージ検出部３０は抽出した時刻情報を時刻Ｔ１Ａとして時刻補正部３４へ送信する。時刻補正部３４は、メッセージ検出部３０から受信した時刻Ｔ１Ａの時刻情報を記憶する。中継スレーブノード１１は、受信したＦｏｌｌｏｗＵｐメッセージを末端スレーブノード１２へ転送する。
【００５２】
末端スレーブノード１２のメッセージ処理部３１は、中継スレーブノード１１から転送された末端スレーブノード１２宛のＦｏｌｌｏｗＵｐメッセージを受信すると、メッセージ中の時刻情報を抽出する。メッセージ処理部３１は抽出した時刻情報を時刻Ｔ１Ｂとして時刻補正部３４へ送信する。時刻補正部３４は、メッセージ処理部３１から受信した時刻Ｔ１Ｂの時刻情報を記憶する。
【００５３】
時刻Ｔ１Ａと、時刻Ｔ２Ａとの差分（｜Ｔ２Ａ−Ｔ１Ａ｜）は、マスタノード１０のマスタクロックに対する、中継スレーブノード１１のスレーブクロックのオフセットおよびネットワーク伝搬遅延により発生する。また、時刻Ｔ１Ｂと、時刻Ｔ２Ｂとの差分（｜Ｔ２Ｂ−Ｔ１Ｂ｜）は、マスタノード１０のマスタクロックに対する、末端スレーブノード１２のスレーブクロックのオフセットおよびネットワーク伝搬遅延により発生する。
【００５４】
末端スレーブノード１２のメッセージ処理部３１は、マスタノード１０へ送信するＤｅｌａｙＲｅｑメッセージを生成する。メッセージ処理部３１は、生成したＤｅｌａｙＲｅｑメッセージをマスタノード１０へ送信する（Ｓ１２）。メッセージ処理部３３は、ＤｅｌａｙＲｅｑメッセージを送信した時刻Ｔ３Ｂの時刻情報を時計部３３から読みとる。メッセージ処理部３１は、読みとった時刻Ｔ３Ｂの時刻情報を時刻補正部３４へ送信する。時刻補正部３４は時刻Ｔ３Ｂの時刻情報を記憶する。
【００５５】
中継スレーブノード１１のメッセージ検出部３０は、マスタノード１０へ送信するＤｅｌａｙＲｅｑメッセージを検出すると、ＤｅｌａｙＲｅｑメッセージを検出した時刻Ｔ３Ａの時刻情報を時計部３３から読みとる。メッセージ検出部３０は、読みとった時刻Ｔ３Ａの時刻情報を時刻補正部３４へ送信する。時刻補正部３４は時刻Ｔ３Ａの時刻情報を記憶する。
【００５６】
マスタノード１０のＤｅｌａｙＲｅｓｐ生成部２２は、末端スレーブノード１２から送信されたＤｅｌａｙＲｅｑメッセージを受信すると、受信時刻Ｔ４の時刻情報を時計部２６から読みとる。ＤｅｌａｙＲｅｓｐ生成部２２は、時刻Ｔ４の時刻情報を挿入したＤｅｌａｙＲｅｓｐメッセージを末端スレーブノード１２へ送信する（Ｓ１３）。
【００５７】
中継スレーブノード１１のメッセージ検出部３０は、マスタノード１０から送信された末端スレーブノード１２宛のＤｅｌａｙＲｅｓｐメッセージを検出すると、メッセージ中の時刻情報を抽出する。メッセージ検出部３０は抽出した時刻情報を時刻Ｔ４Ａとして時刻補正部３４へ送信する。時刻補正部３４は、メッセージ検出部３０から受信した時刻Ｔ４Ａの時刻情報を記憶する。中継スレーブノード１１は、受信したＤｅｌａｙＲｅｓｐメッセージを末端スレーブノード１２へ転送する。
【００５８】
末端スレーブノード１２のメッセージ処理部３１は、中継スレーブノード１１から転送された末端スレーブノード１２宛のＤｅｌａｙＲｅｓｐメッセージを検出すると、メッセージ中の時刻情報を抽出する。メッセージ処理部３１は抽出した時刻情報を時刻Ｔ４Ｂとして時刻補正部３４へ送信する。時刻補正部３４は、メッセージ処理部３１から受信した時刻Ｔ４Ｂの時刻情報を記憶する。
【００５９】
時刻Ｔ３Ａと、時刻Ｔ４Ａとの差分（｜Ｔ４Ａ−Ｔ３Ａ｜）は、マスタノード１０のマスタクロックに対する、中継スレーブノード１１のスレーブクロックのオフセットおよびネットワーク伝搬遅延により発生する。また、時刻Ｔ３Ｂと、時刻Ｔ４Ｂとの差分（｜Ｔ４Ｂ−Ｔ３Ｂ｜）は、マスタノード１０のマスタクロックに対する、末端スレーブノード１２のスレーブクロックのオフセットおよびネットワーク伝搬遅延により発生する。
【００６０】
中継スレーブノード１１における時刻補正部３４は、時刻Ｔ１Ａ，Ｔ２Ａ，Ｔ３Ａ，Ｔ４Ａの時刻情報を記憶している。時刻補正部３４は記憶する時刻情報に基づいて、マスタノード１０と中継スレーブノード１１との間の伝搬遅延時間ＴＤＥＬＡＹ１１を計算する。伝搬遅延時間ＴＤＥＬＡＹ１１は、ＴＤＥＬＡＹ１１＝｛（Ｔ４Ａ−Ｔ１Ａ）−（Ｔ３Ａ−Ｔ２Ａ）｝／２により算出することが出来る。マスタノード１０と中継スレーブノード１１との時刻のずれＴＤＩＦＦ１１はＴＤＩＦＦ１１＝Ｔ２Ａ−Ｔ１Ａ−ＴＤＥＬＡＹ１１により計算することが出来る。時刻のずれＴＤＩＦＦ１１が正の値の場合、中継スレーブノード１１の時刻がマスタノード１０よりも進んでいることを示し、時刻のずれＴＤＩＦＦ１１が負の値の場合、中継スレーブノード１１の時刻がマスタノード１０よりも遅れていることを示す。
【００６１】
時刻補正部３４は計算した時刻のずれＴＤＩＦＦ１１を時計部３３に送信する。時計部３３は受信した時刻のずれＴＤＩＦＦ１１の値に基づいて、時刻を修正する。
【００６２】
以上の通り中継スレーブノードである中継スレーブノード１１は、マスタノード１０と末端スレーブノード１２との間で送受信される時刻同期用メッセージを監視することにより、マスタノード１０との時刻調整処理を実行することが出来る。
【００６３】
同様に末端スレーブノード１２における時刻補正部３４は、時刻Ｔ１Ｂ，Ｔ２Ｂ，Ｔ３Ｂ，Ｔ４Ｂの時刻情報を記憶している。時刻補正部３４は記憶する時刻情報に基づいて、マスタノード１０と末端スレーブノード１２との間の伝搬遅延時間ＴＤＥＬＡＹ１２を計算する。伝搬遅延時間ＴＤＥＬＡＹ１２は、ＴＤＥＬＡＹ１２＝｛（Ｔ４Ｂ−Ｔ１Ｂ）−（Ｔ３Ｂ−Ｔ２Ｂ）｝／２により算出することが出来る。マスタノード１０と末端スレーブノード１２との時刻のずれＴＤＩＦＦ１２はＴＤＩＦＦ１２＝Ｔ２Ｂ−Ｔ１Ｂ−ＴＤＥＬＡＹ１１により計算することが出来る。時刻のずれＴＤＩＦＦ１２が正の値の場合、末端スレーブノード１２の時刻がマスタノード１０よりも進んでいることを示し、時刻のずれＴＤＩＦＦ１２が負の値の場合、末端スレーブノード１２の時刻がマスタノード１０よりも遅れていることを示す。
【００６４】
時刻補正部３４は計算した時刻のずれＴＤＩＦＦ１２を時計部３３に送信する。時計部３３は受信した時刻のずれＴＤＩＦＦ１２の値に基づいて、時刻を修正する。以上の処理により末端スレーブノード１２は、マスタノード１０との時刻同期処理を実行することが出来る。
【００６５】
図６は、中継スレーブノード１１において、マスタノード１０と時刻同期メッセージを直接やり取りする処理から、マスタノード１０と末端スレーブノード１２との時刻同期メッセージを監視して同期処理を実行する処理への切り替え動作を説明するシーケンス図である。
【００６６】
本実施例において中継スレーブノード１１および末端スレーブノード１２は、いずれもマスタノード１０から時刻同期の提供を受けている。また本実施例において、提供される時刻同期用メッセージはすべて、同じ時刻のドメインに属している。
【００６７】
中継スレーブノード１１は、マスタノード１０からＳｙｎｃメッセージおよびＦｏｌｌｏｗＵｐメッセージを受信する（Ｓ２０、Ｓ２１）。同様に末端スレーブノード１２は、マスタノード１０からＳｙｎｃメッセージおよびＦｏｌｌｏｗＵｐメッセージを受信する（Ｓ２２、Ｓ２３）。
【００６８】
中継スレーブノード１１は、マスタノード１０から末端スレーブノード１２へ送信されるメッセージを検出する。中継スレーブノード１１は、検出したメッセージのクロックドメインが、自分宛のメッセージにおけるクロックドメインと同一である場合（Ｓ２４）、Ｓｙｎｃタイマによるカウントを開始する（Ｓ２５）。
【００６９】
中継スレーブノード１１は、Ｓｙｎｃタイマ開始と共に、マスタノード１０から末端スレーブノード１２へ送信されるメッセージの監視を開始する（Ｓ２６）。また中継スレーブノード１１は、自分宛のＳｙｎｃメッセージの送信が不要であることを依頼するＳｙｎｃ抑止依頼信号をマスタノード１０へ送信する（Ｓ２７）。
【００７０】
以上の通り中継スレーブノード１１は、メッセージの監視結果に基づいてマスタノード１０からの自分宛メッセージの送信を抑止することにより、マスタノード１０の時刻同期処理負荷を軽減することが出来る。
【００７１】
図７は、監視処理開始後の中継スレーブノード１１の動作を説明するシーケンス図である。図６のシーケンス図と同一の処理には同一番号を付し、その説明を省略する。
【００７２】
中継スレーブノード１１は、マスタノード１０から末端スレーブノード１２へ送信されるＳｙｎｃメッセージを検出すると、タイマを開始すると共にマスタノード１０へＳｙｎｃ抑止依頼信号を送信する。Ｓｙｎｃタイマに設定される値は、例えば中継スレーブノード１１が時刻同期処理を実行しなくても時刻の精度を維持できる時間に基づいて決定する。
【００７３】
タイマ開始後、一定時間経過する前にスレーブノードを通過するＳｙｎｃメッセージが検出できない場合、中継スレーブノード１１はタイムアウトを検出する（Ｓ２８）。タイムアウト検出後、中継スレーブノード１１はマスタノード１０に対し、自分宛のＳｙｎｃメッセージを送信するよう、Ｓｙｎｃ生成依頼信号を送信する（Ｓ２９）。
【００７４】
以上の通り中継スレーブノード１１は、Ｓｙｎｃ抑止処理後のタイムアウトを設けることにより、他のスレーブノードへ送信されるＳｙｎｃメッセージが検出できない場合の時刻同期処理を保障することが出来る。
【００７５】
図８は、中継スレーブノード１１と末端スレーブノード１２との間にネットワーク上の問題が発生した場合の、中継スレーブノード１１での時刻同期処理を説明するシーケンス図である。
【００７６】
中継スレーブノード１１と末端スレーブノード１２との間にネットワーク上の問題がない場合、中継スレーブノード１１は、末端スレーブノード１２からマスタノード１０へ送信されるＤｅｌａｙＲｅｑメッセージおよびマスタノード１０から末端スレーブノード１２へ送信されるＤｅｌａｙＲｅｓｐメッセージを検出することが出来る（Ｓ３１、Ｓ３２）。
【００７７】
中継スレーブノード１１は、末端スレーブノード１２からマスタノード１０へ送信されるＤｅｌａｙＲｅｑメッセージを検出するごとにＤｅｌａｙＲｅｑタイマを開始する（Ｓ３３）。ＤｅｌａｙＲｅｑタイマの値は、例えば中継スレーブノード１１が時刻同期処理を実行しなくても時刻の精度を維持できる時間に基づいて決定する。
【００７８】
中継スレーブノード１１と末端スレーブノード１２との間にネットワーク上の問題が発生すると、マスタノード１０から送信されたＳｙｎｃメッセージおよびＦｏｌｌｏｗＵｐメッセージは、中継スレーブノード１１で検出出来ても、末端スレーブノード１２へ到達しない（Ｓ３４、Ｓ３５）。また、末端スレーブノード１２からマスタノード１０へ送信されたＤｅｌａｙＲｅｑメッセージは、中継スレーブノード１１へ到達しない（Ｓ３６）。中継スレーブノード１１において、末端スレーブノード１２からマスタノード１０へ送信されたＤｅｌａｙＲｅｑメッセージが一定時間経過前に検出できない場合、中継スレーブノード１１はタイムアウトを検出する（Ｓ３７）。
【００７９】
タイムアウトを検出した中継スレーブノード１１は、マスタノード１０に対しＤｅｌａｙＲｅｑメッセージを送信する（Ｓ３８）。中継スレーブノード１１は、ＤｅｌａｙＲｅｑメッセージを送信した時刻Ｔ３Ａの時刻情報を記憶する。
【００８０】
中継スレーブノード１１からＤｅｌａｙＲｅｑメッセージを受信したマスタノード１０は、中継スレーブノード１１に対し、送信時刻Ｔ４の時刻情報を挿入したＤｅｌａｙＲｅｓｐメッセージを送信する（Ｓ３９）。中継スレーブノード１１は、受信したＤｅｌａｙＲｅｓｐメッセージから抽出した時刻情報を時刻Ｔ４Ａとして記憶する。
【００８１】
以上の通り中継スレーブノード１１は、中継スレーブノード１１と末端スレーブノード１２との間にネットワーク上の問題が生じた場合であっても、時刻同期処理を継続することが出来る。
【００８２】
図９は中継スレーブノード１１の処理フロー図である。
【００８３】
中継スレーブノード１１においてメッセージ検出部３０は、他のスレーブノード宛に送信されたＳｙｎｃメッセージを検出する（Ｓ４０：ＹＥＳ）。メッセージ検出部３０は、検出したＳｙｎｃメッセージの送信元であるマスタノードが同一であり、かつクロックドメインが同一である場合（Ｓ４１：ＹＥＳ）、他のスレーブノードのアドレスを監視対象として記憶する（Ｓ４２）。
【００８４】
メッセージ検出部３０は、Ｓｙｎｃメッセージ監視用のＳｙｎｃタイマおよびＤｅｌａｙＲｅｑメッセージ監視用のＤｅｌａｙＲｅｑタイマをそれぞれ有する。メッセージ検出部３０は監視対象となるスレーブノードのアドレスを記憶後、ＳｙｎｃタイマおよびＤｅｌａｙＲｅｑタイマを開始する（Ｓ４３）。メッセージ検出部３０はマスタノード１０に対し、Ｓｙｎｃ抑止依頼信号を送信する（Ｓ４４）。
【００８５】
Ｓｙｎｃタイマ開始後、Ｓｙｎｃメッセージを検出すると（Ｓ４５）、メッセージ検出部３０はＳｙｎｃタイマを停止させる（Ｓ５１）。メッセージ検出部３０はＳｙｎｃメッセージ受信時の時刻を時計部３３から読み出し、時刻補正部３４へ時刻Ｔ２Ａとして送信する。時刻補正部３４は、受信した時刻Ｔ２Ａの時刻情報を記憶する（Ｓ５２）。メッセージ検出部３０は停止していたＳｙｎｃタイマをリセットし、タイマを開始させる（Ｓ５３）。
【００８６】
メッセージ検出部３０はＦｏｌｌｏｗＵｐメッセージを検出すると（Ｓ４６：ＹＥＳ）、メッセージ中の時刻情報を抽出し、時刻Ｔ１Ａとして時刻情報を時刻補正部３４へ送信する。時刻補正部３４は、受信した時刻Ｔ１Ａの時刻情報を記憶する（Ｓ５４）。
【００８７】
メッセージ検出部３０はＤｅｌａｙＲｅｑメッセージを検出すると（Ｓ４７：ＹＥＳ）、ＤｅｌａｙＲｅｑタイマを停止させる（Ｓ５５）。メッセージ検出部３０はＤｅｌａｙＲｅｑメッセージを受信した時刻を時計部３３から読み出し、時刻補正部３４へ時刻Ｔ３Ａとして送信する。時刻補正部３４は、受信した時刻Ｔ３Ａの時刻情報を記憶する（Ｓ５６）。メッセージ検出部３０は停止していたＤｅｌａｙＲｅｑタイマをリセットし、タイマを開始させる（Ｓ５７）。
【００８８】
メッセージ検出部３０はＤｅｌａｙＲｅｓｐメッセージを検出すると（Ｓ４８：ＹＥＳ）、メッセージ中の時刻情報を抽出し、時刻Ｔ４Ａとして時刻情報を時刻補正部３４へ送信する。時刻補正部３４は、受信した時刻Ｔ１Ａの時刻情報を記憶する（Ｓ５８）。時刻補正部３４は、記憶している時刻Ｔ１Ａ、Ｔ２Ａ、Ｔ３Ａ、Ｔ４Ａの時刻情報に基づいて、時刻補正演算を実行する（Ｓ５９）。
【００８９】
ＤｅｌａｙＲｅｑタイマ開始後、一定時間経過する前にスレーブノードを通過するＤｅｌａｙＲｅｑメッセージが検出できない場合、メッセージ検出部３０はタイムアウトを検出する（Ｓ４９：ＹＥＳ）。タイムアウト検出後、中継スレーブノード１１のメッセージ処理部３１は、マスタノード１０に対し自分宛のＤｅｌａｙＲｅｓｐメッセージを送信するよう、ＤｅｌａｙＲｅｑメッセージを送信する（Ｓ６０）。
【００９０】
メッセージ処理部３１はＤｅｌａｙＲｅｑメッセージを創出した時刻Ｔ３Ａを時計部３３から読みとる。メッセージ処理部３１は読みとった時刻Ｔ３Ａの時刻情報を時刻補正部３４へ送信する。時刻補正部３４は受信した時刻Ｔ３Ａの時刻情報を記憶する（Ｓ６１）。
【００９１】
メッセージ処理部３１は、マスタノード１０へ送信したＤｅｌａｙＲｅｑメッセージに対する自分宛のＤｅｌａｙＲｅｓｐメッセージを検出すると（Ｓ６２：ＹＥＳ）、メッセージに挿入された時刻情報を抽出し、時刻Ｔ４Ａの時刻情報として時刻補正部３４へ送信する。時刻補正部３４は受信した時刻Ｔ４Ａの時刻情報を記憶する（Ｓ６３）。時刻補正部３４は、記憶している時刻Ｔ１Ａ、Ｔ２Ａ、Ｔ３Ａ、Ｔ４Ａの時刻情報に基づいて、時刻補正演算を実行する（Ｓ６４）。
【００９２】
Ｓｙｎｃタイマ開始後、一定時間経過する前にスレーブノードを通過するＳｙｎｃメッセージが検出できない場合、メッセージ検出部３０はタイムアウトを検出する（Ｓ５０：ＹＥＳ）。タイムアウト検出後、メッセージ検出部３０は、監視対象として記憶している、末端スレーブノードのアドレスを削除する（Ｓ６５）。メッセージ検出部３０はマスタノード１０に対し、自分宛のＳｙｎｃメッセージを送信するよう、Ｓｙｎｃ生成依頼信号を送信する（Ｓ６６）。Ｓｙｎｃ生成依頼信号を受信したマスタノード１０は、停止していた中継スレーブノード１１宛のＳｙｎｃメッセージの送信を再開する。
【００９３】
以上の通り中継スレーブノード１０は、マスタノード１０から自身宛の同期処理量を削減するとともに、必要に応じて、自身宛の同期処理を再開することが出来る。
【符号の説明】
【００９４】
１  通信システム
１０  マスタノード
１１、１２  スレーブノード
２０  Ｄｅｍｕｌｔｉｐｌｅｘｅｒ
２１  Ｓｙｎｃ抑止処理部
２２  ＤｅｌａｙＲｅｓｐ生成部
２３  メッセージ処理部
２４  Ｓｙｎｃ／ＦｏｌｌｏｗＵｐ生成部
２５  Ｍｕｌｔｉｐｌｅｘｅｒ
２６  時計部
３０  メッセージ検出部
３１  メッセージ処理部
３２  転送部
３３  時計部
３４  時刻補正部
４０  時刻同期メッセージ
４１  宛先アドレス
４２  送信元アドレス
４３  ＥｔｈｅｒｎｅｔＴｙｐｅ
４４  ＭｅｓｓａｇｅＴｙｐｅ
４５  ＤｏｍａｉｎＮｕｍｂｅｒ
４６  データ
【図１】
2013017104.tif 000003
【図２】
2013017104.tif 000004
【図３】
2013017104.tif 000005
【図４】
2013017104.tif 000006
【図５】
2013017104.tif 000007
【図６】
2013017104.tif 000008
【図７】
2013017104.tif 000009
【図８】
2013017104.tif 000010
【図９】
2013017104.tif 000011