(57)【特許請求の範囲】
【請求項１】
他の通信装置と同期ネットワークを構成する通信装置であって、
前記他の通信装置と前記通信装置とがルーティング装置を介して接続されているかを判定する第１の判定手段と、
前記第１の判定手段による判定の結果に基づいて、前記通信装置と前記他の通信装置が同期するための同期メッセージの送信方法を決定する決定手段と、
前記決定手段により決定された送信方法に従って、前記同期メッセージを送信する送信手段と、
を有することを特徴とする通信装置。
【請求項２】
前記同期ネットワークにルーティング装置が存在するかを確認する第１の確認手段と、
前記第１の確認手段により前記同期ネットワークにルーティング装置が存在することが確認された場合、当該ルーティング装置が管理するサブネットワークに前記他の通信装置が属するか否かを確認する第２の確認手段と、
を更に有し、
前記第１の判定手段は、前記第１の確認手段による確認の結果と前記第２の確認手段による確認の結果とに基づいて、前記他の通信装置と前記通信装置とがルーティング装置を介して接続されているかを判定することを特徴とする請求項１に記載の通信装置。
【請求項３】
前記第１の確認手段は、ＩＣＭＰ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ）に準拠したメッセージを送信することにより、前記同期ネットワークにルーティング装置が存在するかを確認することを特徴とする請求項２に記載の通信装置。
【請求項４】
前記第２の確認手段は、ＡＲＰ（Ａｄｄｒｅｓｓ  Ｒｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）に準拠したメッセージを送信することにより、前記ルーティング装置が管理するサブネットワークに前記他の通信装置が属するか否かを確認することを特徴とする請求項２または３に記載の通信装置。
【請求項５】
複数の他の通信装置と同期ネットワークを構成する通信装置であって、
前記複数の他の通信装置の各々と前記通信装置とがルーティング装置を介して接続されているかを判定する第１の判定手段と、
前記第１の判定手段による判定の結果に基づいて、前記複数の他の通信装置に送信する、前記通信装置と前記複数の他の通信装置の各々とが同期するための同期メッセージの送信方法を決定する決定手段と、
前記決定手段により決定された送信方法に従って、前記同期メッセージを送信する送信手段と、
を有することを特徴とする通信装置。
【請求項６】
前記決定手段は、前記第１の判定手段による判定の結果に基づいて、前記複数の他の通信装置の各々について、前記同期メッセージの送信方法を決定することを特徴とする請求項５に記載の通信装置。
【請求項７】
他の通信装置と同期ネットワークを構成する通信装置であって、
前記同期ネットワークにルーティング装置が存在するか否かを判定する第１の判定手段と、
前記第１の判定手段による判定の結果に基づいて、前記通信装置と前記他の通信装置が同期するための同期メッセージの送信方法を決定する決定手段と、
前記決定手段により決定された送信方法に従って、前記同期メッセージを送信する送信手段と、
を有することを特徴とする通信装置。
【請求項８】
前記決定手段は、前記同期メッセージを送信するフレームに、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ヘッダを含めるか否かを決定することを特徴とする請求項１から７のいずれか１項に記載の通信装置。
【請求項９】
前記決定手段は、前記同期メッセージを、イーサネットフレームのペイロードとして送信するか、ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）／ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）パケットのペイロードとして送信するかを決定することを特徴とする請求項１から７のいずれか１項に記載の通信装置。
【請求項１０】
他の通信装置と同期ネットワークを構成する通信装置であって、
前記同期ネットワークのネットワーク構成を判定する第１の判定手段と、
前記第１の判定手段による判定の結果に基づいて、前記通信装置と前記他の通信装置が同期するための同期メッセージのフレームに、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ヘッダを含めるか否かを決定する決定する決定手段と、
前記決定手段により決定された前記同期メッセージを送信する送信手段と、
を有することを特徴とする通信装置。
【請求項１１】
前記送信手段は、前記同期メッセージを含むイーサネットフレームを送信することを特徴とする請求項１から１０のいずれか１項に記載の通信装置。
【請求項１２】
他の通信装置と同期ネットワークを構成する通信装置であって、
前記同期ネットワークのネットワーク構成を判定する第１の判定手段と、
前記第１の判定手段による判定の結果に基づいて、前記通信装置と前記他の通信装置が同期するための同期メッセージのフレームを、イーサネットフレームのペイロードとして送信するか、ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）／ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）パケットのペイロードとして送信するかを決定する決定手段と、
前記決定手段により決定された前記同期メッセージを送信する送信手段と、
を有することを特徴とする通信装置。
【請求項１３】
前記第１の判定手段による判定を周期的に繰り返すことを特徴とする請求項１から１２のいずれか１項に記載の通信装置。
【請求項１４】
前記同期メッセージは、ＰＴＰ（Ｐｒｅｃｉｓｉｏｎ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ）に準拠したメッセージであることを特徴とする請求項１から１３のいずれか１項に記載の通信装置。
【請求項１５】
他の通信装置と同期ネットワークを構成する通信装置の制御方法であって、
前記他の通信装置と前記通信装置とがルーティング装置を介して接続されているかを判定する判定工程と、
当該判定の結果に基づいて、前記通信装置と前記他の通信装置が同期するための同期メッセージの送信方法を決定する決定工程と、
前記決定工程において決定された送信方法に従って、前記同期メッセージを送信する送信工程と、
を有することを特徴とする制御方法。
【請求項１６】
複数の他の通信装置と同期ネットワークを構成する通信装置の制御方法であって、
前記複数の他の通信装置の各々と前記通信装置とがルーティング装置を介して接続されているかを判定する判定工程と、
当該判定の結果に基づいて、前記複数の他の通信装置に送信する、前記通信装置と前記複数の他の通信装置の各々とが同期するための同期メッセージの送信方法を決定する決定工程と、
前記決定工程において決定された送信方法に従って、前記同期メッセージを送信する送信工程と、
を有することを特徴とする制御方法。
【請求項１７】
他の通信装置と同期ネットワークを構成する通信装置の制御方法であって、
前記同期ネットワークにルーティング装置が存在するか否かを判定する判定工程と、
当該判定の結果に基づいて、前記通信装置と前記他の通信装置が同期するための同期メッセージの送信方法を決定する決定工程と、
前記決定工程において決定された送信方法に従って、前記同期メッセージを送信する送信工程と、
を有することを特徴とする制御方法。
【請求項１８】
他の通信装置と同期ネットワークを構成する通信装置の制御方法であって、
前記同期ネットワークのネットワーク構成を判定する判定手段と、
当該判定の結果に基づいて、前記通信装置と前記他の通信装置が同期するための同期メッセージのフレームに、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ヘッダを含めるか否かを決定する決定する決定工程と、
前記決定工程において決定された前記同期メッセージを送信する送信工程と、
を有することを特徴とする制御方法。
【請求項１９】
他の通信装置と同期ネットワークを構成する通信装置の制御方法であって、
前記同期ネットワークのネットワーク構成を判定する判定工程と、
当該判定の結果に基づいて、前記通信装置と前記他の通信装置が同期するための同期メッセージのフレームを、イーサネットフレームのペイロードとして送信するか、ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）／ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）パケットのペイロードとして送信するかを決定する決定工程と、
前記決定工程において決定された前記同期メッセージを送信する送信工程と、
を有することを特徴とする制御方法。
【請求項２０】
コンピュータを、請求項１から１４のいずれか１項に記載の通信装置として動作させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、同期制御を行う通信装置に関する。
【背景技術】
【０００２】
ネットワークに接続された各装置間の時刻同期を可能とするプロトコルとして、ＩＥＥＥ１５８８  Ｐｒｅｃｉｓｉｏｎ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ（以下、ＰＴＰ）がある。
【０００３】
ＰＴＰでは、基準時刻を提供するマスタ装置と、マスタ装置と同期するスレーブ装置とが定義されている。スレーブ装置は、マスタ装置とスレーブ装置との間で送受信されるＰＴＰメッセージに基づいてスレーブ装置が有する時計の時刻を補正して、マスタ装置と同期する。
【０００４】
ここで、マスタ装置から送信されるＰＴＰメッセージは、イーサネット（登録商標）フレームによりスレーブ装置へ伝達される。
【０００５】
特許文献１に記載されているように、マスタ装置は、ＰＴＰメッセージをイーサネットフレームのペイロードとして送信する。また、マスタ装置は、ＰＴＰメッセージをイーサネットフレームに含まれるＵＤＰ／ＩＰパケットのペイロードとして送信することもできる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−２０１８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
マスタ装置とスレーブ装置の間の通信経路にルーティング装置（ルータ）が存在する場合がある。このような場合、マスタ装置がＰＴＰメッセージをイーサネットフレームのペイロードとして送信してしまうと、当該イーサネットフレームがスレーブ装置に届かない場合がある。一般的にルータは、レイヤ３以上のアドレスに関する通信経路制御を行うため、ＵＤＰ／ＩＰヘッダを含まないイーサネットフレームは転送されないからである。
【０００８】
一方、マスタ装置が、ＰＴＰメッセージをイーサネットフレームに含まれるＵＤＰ／ＩＰパケットのペイロードとして送信する場合、各装置はＵＤＰ／ＩＰの処理を行う必要があるため、処理負荷が高くなってしまう。その結果、ネットワークにおける同期精度が低下してしまう場合がある。
【０００９】
上記の課題を鑑み、本発明は、ネットワーク構成に応じた送信方法で同期メッセージを送信できるようにすることを目的とする。
【課題を解決するための手段】
【００１０】
本発明の通信装置は、他の通信装置と同期ネットワークを構成する通信装置であって、前記他の通信装置と前記通信装置とがルーティング装置を介して接続されているかを判定する第１の判定手段と、前記第１の判定手段による判定の結果に基づいて、前記通信装置と前記他の通信装置が同期するための同期メッセージの送信方法を決定する決定手段と、前記決定手段により決定された送信方法に従って、前記同期メッセージを送信する送信手段と、を有する。
また、本発明の別の側面の通信装置は、複数の他の通信装置と同期ネットワークを構成する通信装置であって、前記複数の他の通信装置の各々と前記通信装置とがルーティング装置を介して接続されているかを判定する第１の判定手段と、前記第１の判定手段による判定の結果に基づいて、前記複数の他の通信装置に送信する、前記通信装置と前記複数の他の通信装置の各々とが同期するための同期メッセージの送信方法を決定する決定手段と、前記決定手段により決定された送信方法に従って、前記同期メッセージを送信する送信手段と、を有する。
また、本発明の別の側面の通信装置は、他の通信装置と同期ネットワークを構成する通信装置であって、前記同期ネットワークにルーティング装置が存在するか否かを判定する第１の判定手段と、前記第１の判定手段による判定の結果に基づいて、前記通信装置と前記他の通信装置が同期するための同期メッセージの送信方法を決定する決定手段と、前記決定手段により決定された送信方法に従って、前記同期メッセージを送信する送信手段と、
を有する。
また、本発明の別の側面の通信装置は、他の通信装置と同期ネットワークを構成する通信装置であって、前記同期ネットワークのネットワーク構成を判定する第１の判定手段と、前記第１の判定手段による判定の結果に基づいて、前記通信装置と前記他の通信装置が同期するための同期メッセージのフレームに、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ヘッダを含めるか否かを決定する決定する決定手段と、前記決定手段により決定された前記同期メッセージを送信する送信手段と、を有する。
また、本発明の別の側面の通信装置は、他の通信装置と同期ネットワークを構成する通信装置であって、前記同期ネットワークのネットワーク構成を判定する第１の判定手段と、前記第１の判定手段による判定の結果に基づいて、前記通信装置と前記他の通信装置が同期するための同期メッセージのフレームを、イーサネットフレームのペイロードとして送信するか、ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）／ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）パケットのペイロードとして送信するかを決定する決定手段と、前記決定手段により決定された前記同期メッセージを送信する送信手段と、を有する。
【発明の効果】
【００１１】
本発明によれば、ネットワーク構成に応じた送信方法で同期メッセージを送信することができる。
【図面の簡単な説明】
【００１２】
【図１】同期ネットワークのシステム構成図
【図２】ＰＴＰメッセージのフレームフォーマットを示す図
【図３】マスタ装置のハードウェア構成図
【図４】ＰＴＰメッセージによる時刻同期のシーケンス図
【図５】マスタ装置が実現するフローチャート
【発明を実施するための形態】
【００１３】
図１に、ＩＥＥＥ１５８８  Ｐｒｅｃｉｓｉｏｎ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ（以下、ＰＴＰ）に準拠した同期ネットワークの構成を示す。
【００１４】
同期ネットワーク１００は、同期ネットワーク１００における基準時刻を提供するマスタ装置１０１と、マスタ装置１０１と同期するスレーブ装置１０２〜１０５とを有する。なお、ＩＥＥＥ１５８８では、ネットワーク上の複数のマスタ候補装置の中から１台のマスタ装置を選択するアルゴリズムが規定されている。マスタ装置１０１は前述のアルゴリズムによって選択された装置である。
【００１５】
スイッチングハブ１１１、１１２は、受信したイーサネットフレームに含まれる宛先ＭＡＣアドレスを解析し、イーサネットフレームを転送するブリッジ機能を有する。
【００１６】
ルーティング装置（以下、ルータ）１２１は、受信したイーサネットフレームに含まれる宛先ＩＰヘッダを解析し、イーサネットフレームを転送するルーティング機能を有する。なお、ＩＰとはＩｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌの略である。
【００１７】
ルータ１２１は、ＩＰヘッダの解析を行ってイーサネットフレームを転送するので、受信したイーサネットフレームにＩＰヘッダが含まれていない場合、当該イーサネットフレームを転送することが出来ない。
【００１８】
マスタ装置１０１とスレーブ装置１０２〜１０５は、ＰＴＰに準拠したメッセージ（ＰＴＰメッセージ）を送受信する。そして、スレーブ装置１０２〜１０５の各々は、ＰＴＰメッセージに基づいてスレーブ装置が有する時計の時刻を補正して、マスタ装置１０１と同期する。
【００１９】
同期処理を行う。即ち、ＰＴＰメッセージは、同期情報を含む同期メッセージであると言うことができる。なお、本実施形態においてＰＴＰメッセージは、イーサネットフレームに格納されたデータとして送受信される。
【００２０】
ＰＴＰメッセージをイーサネットフレームのデータとして格納する方法には、図２に示す２種類がある。１つは、イーサネットフレームがＵＤＰ／ＩＰパケットを含み、ＵＤＰ／ＩＰパケットのペイロードとしてＰＴＰメッセージを格納する方法である。ここで、ＵＤＰとはＵｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌの略である。
【００２１】
この場合、イーサネットフレームはＵＤＰ／ＩＰパケットを含むため、当該イーサネットフレームには後述するＩＰヘッダやＵＤＰヘッダが含まれる。このように、ＵＤＰ／ＩＰパケットのペイロードとしてＰＴＰメッセージを格納する場合、ＰＴＰメッセージがＵＤＰ／ＩＰパケットのペイロードであると称する。
【００２２】
もう１つの方法は、イーサネットフレームのペイロードとして、ＰＴＰメッセージをそのまま格納する方法である。この方法によれば、ＩＰヘッダやＵＤＰヘッダはイーサネットフレームに含まれない。このように、イーサネットフレームのペイロードとして、ＰＴＰメッセージをそのまま格納する場合、ＰＴＰメッセージがイーサネットフレームのペイロードであると称する。このようなイーサネットフレームにはＩＰヘッダが含まれないため、ルータ１２１は当該イーサネットフレームを転送することができない。
【００２３】
これら２種類の方法のメリットとデメリットをまとめると次のようになる。
【００２４】
ＰＴＰメッセージがＵＤＰ／ＩＰパケットのペイロードである場合、各装置は、ＵＤＰ／ＩＰに関するプロトコル処理を実行する必要があるため、各装置の処理負荷が増加し、同期精度が低下しやすいというデメリットがある。一方、当該ＰＴＰメッセージはルータ１２１によって転送されるというメリットがある。
【００２５】
また、ＰＴＰメッセージがイーサネットフレームのペイロードである場合、各装置は、ＵＤＰ／ＩＰに関するプロトコル処理を実行する必要が無いため、各装置の処理負荷の増加が抑えられ、同期精度が高いというメリットがある。一方、当該ＰＴＰメッセージはルータ１２１によって転送されないというデメリットがある。
【００２６】
ここで、ＰＴＰメッセージを含むイーサネットフレームのフレームフォーマットについて、図２を用いて簡単に説明する。プリアンブルフィールド２０１は、イーサネットフレームの始まりを示す８バイトのフィールドである。
【００２７】
ＤＡ（Ｄｅｓｔｉｎａｔｉｏｎ  Ａｄｄｒｅｓｓ）フィールド２０２は、宛先ＭＡＣアドレスを示す６バイトのフィールドである。ＳＡ（Ｓｏｕｒｃｅ  Ａｄｄｒｅｓｓ）フィールド２０３は、送信元ＭＡＣアドレスを示す６バイトのフィールドである。
【００２８】
ＴＹＰＥフィールド２０４は、イーサネットフレームの種別を示す４バイトのフィールドである。なお、一般的に、ＤＡフィールド２０２、ＳＡフィールド２０３およびＴＹＰＥフィールド２０４を総称してイーサネットヘッダと呼ばれる。
【００２９】
ＩＰヘッダフィールド２０５には、イーサネットフレームの発信元ＩＰアドレスおよび宛先ＩＰアドレスが含まれる。さらに、パケット長やヘッダチェックサムなども、ＩＰヘッダフィールド２０５に含まれる。
【００３０】
ＵＤＰヘッダフィールド２０６には、発信元ポート番号、宛先ポート番号、ＵＤＰデータ長およびチェックサム値が含まれる。ＰＴＰメッセージ２０７には、後述するＳｙｎｃ／Ｆｏｌｌｏｗ＿ｕｐ／Ｄｅｌａｙ＿Ｒｅｑ／Ｄｅｌａｙ＿Ｒｅｓｐの４種類のメッセージのいずれかが含まれる。ＦＣＳフィールド２０８は、フレームの誤りを検出するためのチェックサム値を含む４バイトのフィールドである。
【００３１】
図３に、マスタ装置１０１のハードウェア構成を示す。下記に示す各ハードウェアブロックは、バス３００を介して互いにアクセスやデータ転送が可能である。なお、下記に示す１つのハードウェアブロックを複数のハードウェアモジュールで構成してもよいし、複数のハードウェアブロックを１つのハードウェアモジュールで構成してもよい。
【００３２】
記憶部３０１はＲＯＭやＲＡＭ等のメモリにより構成され、後述する各種動作を行うためのプログラムを格納する。また、記憶部３０１は、データ用のバッファメモリとしての役割も担う。なお、記憶部３０１として、ＲＯＭ、ＲＡＭ等のメモリの他に、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＤＶＤなどの記憶媒体を用いてもよい。また、記憶部３０１が複数のメモリ等を備えていてもよい。
【００３３】
制御部３０２はＣＰＵやＭＰＵ等のプロセッサにより構成され、記憶部３０１に記憶されたプログラムを実行することによりマスタ装置１０１全体を制御する。なお、ＣＰＵはＣｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略であり、Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略である。
【００３４】
また、制御部３０２は、記憶部３０１に記憶されたプログラムとＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）との協働によりマスタ装置１０１全体を制御するようにしてもよい。また、制御部３０２がマルチコア等の複数のプロセッサを備え、複数のプロセッサによりマスタ装置１０１全体を制御するようにしてもよい。
【００３５】
また、制御部３０２は、スレーブ装置１０２〜１０５に同期処理を行わせるための各主処理、例えば、ＰＴＰメッセージの生成処理や受信処理等を行う。また、制御部３０２は、機能部３０３を制御して、撮像や印刷、投影等の所定の処理を実行する。機能部３０３は、マスタ装置１０１が所定の処理を実行するためのハードウェアである。例えば、マスタ装置１０１がネットワークカメラである場合、機能部３０３は撮像部であり、撮像処理を行う。
【００３６】
時刻部３０４は、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）信号などの時刻基準信号に基づいて、マスタ装置１０１内の時刻情報を補正し、管理する。なお、時刻基準信号として、ＣＤＭＡ（Ｃｏｄｅ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ）に準拠した時刻基準信号を用いてもよい。通信部３０５は、マスタ装置１０１をネットワークに接続する。各種データの送受信およびＰＴＰメッセージの送受信は、通信部３０５を介して行われる。計測部３０６は、制御部３０２の負荷、例えばマスタ装置１０１のＣＰＵの使用率を計測する。また、計測部３０６は、通信部３０５の負荷、例えば単位時間当たりの通信量を計測する。
【００３７】
図４に、ＰＴＰメッセージを利用した時刻同期のシーケンス図を示す。
【００３８】
ＰＴＰでは、Ｓｙｎｃ／Ｆｏｌｌｏｗ＿ｕｐ／Ｄｅｌａｙ＿Ｒｅｑ／Ｄｅｌａｙ＿Ｒｅｓｐの４種類のＰＴＰメッセージが定義されている。これらのメッセージを利用して、スレーブ装置１０２〜１０５は、自装置が計測する時刻と、マスタ装置１０１が計測する時刻との時刻差（時刻オフセット）を導出し、時刻同期を行う。
【００３９】
ここでは、マスタ装置１０１とスレーブ装置１０２との間のシーケンス図を用いて説明するが、マスタ装置１０１とスレーブ装置１０３〜１０５も同様のシーケンスを実行することにより時刻同期を行う。
【００４０】
まず、マスタ装置１０１は、時刻Ｔ１にＳｙｎｃメッセージをスレーブ装置１０２に送信する（Ｓ４０１）。この際、マスタ装置１０１はＳｙｎｃメッセージを送信した時刻Ｔ１を記憶する（Ｓ４０２）。次に、マスタ装置１０１は、時刻Ｔ１を含むＦｏｌｌｏｗ＿ｕｐメッセージをスレーブ装置１０２に送信する（Ｓ４０３）。
【００４１】
なお、Ｓｙｎｃメッセージ、および、Ｆｏｌｌｏｗ＿ｕｐメッセージは、各々、ユニキャストにより送信されてもよいし、マルチキャスト（同報送信）により送信されてもよい。
スレーブ装置１０２は、マスタ装置１０１からＳｙｎｃメッセージを受信すると、受信時刻Ｔ２を記憶する（Ｓ４０４）。続いて、スレーブ装置１０２は、Ｆｏｌｌｏｗ＿ｕｐメッセージを受信し、該Ｆｏｌｌｏｗ＿ｕｐメッセージから、Ｓｙｎｃメッセージの送信時刻Ｔ１を取得する（Ｓ４０５）。
【００４２】
これにより、スレーブ装置１０２は、マスタ装置１０１からスレーブ装置１０２までの通信遅延Ｔｍｓｄを計算することができる。具体的には、マスタ装置１０１に対するスレーブ装置１０２の時刻オフセットをＴｍｓとすると、マスタ装置１０１からスレーブ装置１０２までの通信遅延Ｔｍｓｄは次に示す式のように表わすことができる。
【００４３】
Ｔｍｓｄ＝（Ｔ２＋Ｔｍｓ）−Ｔ１＝（Ｔ２−Ｔ１）＋Ｔｍｓ    （１）
Ｆｏｌｌｏｗ＿ｕｐメッセージを受信したスレーブ装置１０２は、時刻Ｔ３にＤｅｌａｙ＿Ｒｅｑメッセージをマスタ装置１０１に送信する（Ｓ４０６）。この際、スレーブ装置１０２はＤｅｌａｙ＿Ｒｅｑメッセージを送信した時刻Ｔ３を記憶する（Ｓ４０７）。
【００４４】
マスタ装置１０１は、Ｄｅｌａｙ＿Ｒｅｑメッセージを受信すると、Ｄｅｌａｙ＿Ｒｅｑメッセージの受信時刻Ｔ４を記憶する（Ｓ４０８）。次に、マスタ装置は、受信時刻Ｔ４を含むＤｅｌａｙ＿Ｒｅｓｐメッセージをスレーブ装置１０２に送信する（Ｓ４０９）。
【００４５】
スレーブ装置１０２は、マスタ装置１０１からＤｅｌａｙ＿Ｒｅｓｐメッセージを受信し、該Ｄｅｌａｙ＿Ｒｅｓｐメッセージから、マスタ装置１０１におけるＤｅｌａｙ＿Ｒｅｓｐメッセージの受信時刻Ｔ４を取得する（Ｓ４１０）。
【００４６】
これにより、スレーブ装置１０２は、スレーブ装置１０２からマスタ装置１０１までの通信遅延Ｔｓｍｄを次のように計算することができる。
【００４７】
Ｔｓｍｄ＝Ｔ４−（Ｔ３＋Ｔｍｓ）＝（Ｔ４−Ｔ３）−Ｔｍｓ    （２）
なお、Ｔｍｓはマスタ装置に対するスレーブ装置の時刻オフセットである。
【００４８】
式（１）（２）からだけでは、時刻オフセットＴｍｓを求めることはできない。そこで、通信経路が対称的であると仮定し、通信遅延をＴｄとする。
【００４９】
Ｔｍｓｄ＝Ｔｓｍｄ＝Ｔｄ    （３）
そして、式（１）（２）（３）の連立方程式を解くことにより、通信遅延Ｔｄと時刻オフセットＴｍｓを求めることができる。
【００５０】
【数１】
0006676460.tif 000002
【００５１】
【数２】
0006676460.tif 000003
スレーブ装置１０２は、式（５）に基づいて時刻オフセットを導出し、自装置の時計を補正し、マスタ装置１０１の時計と同期を取る。以上のように、時刻同期は実行される。
【００５２】
図５は、記憶部３０１に記憶されたプログラムを制御部３０２が読み出し、それを実行することで実現される処理の流れを示すフローチャートである。当該フローチャートは、ＩＥＥＥ１５８８に規定されたアルゴリズムに従ってマスタ装置１０１が、ＩＥＥＥ１５８８に規定されたマスタ装置として選択された際に実現される。
【００５３】
本フローにより、マスタ装置１０１は、スレーブ装置に対し、ＰＴＰメッセージをイーサネットフレームのペイロードとして送信するか、ＵＤＰ／ＩＰパケットのペイロードとして送信するかを決定する。
【００５４】
また、図５に示すフローチャートの少なくとも一部をハードウェアにより実現してもよい。ハードウェアにより実現する場合、例えば、所定のコンパイラを用いることで、各ステップを実現するためのプログラムからＦＰＧＡ上に自動的に専用回路を生成すればよい。ＦＰＧＡとは、Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙの略である。また、ＦＰＧＡと同様にしてＧａｔｅ  Ａｒｒａｙ回路を形成し、ハードウェアとして実現するようにしてもよい。また、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）により実現するようにしてもよい。この場合、以下のフローチャートにおける各ブロックは、ハードウェアブロックとして見做すことができる。
【００５５】
マスタ装置１０１は、ネットワーク上にルータが存在するかを判定する（Ｓ５０１）。ここでは、マスタ装置１０１は、インターネット制御メッセージプロトコル（ＩＣＭＰ）のルータ発見メッセージを送信し、応答を受信したかを確認する。応答を受信した場合には、ネットワーク上にルータが存在すると判定され、応答を受信しなかった場合には、ネットワーク上にルータが存在しないと判定される。なお、ＩＣＭＰとはＩｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌの略である。
【００５６】
ルータが存在しない場合、マスタ装置１０１は、ＰＴＰメッセージをイーサネットフレームのペイロードとして送信しても、全てのスレーブ装置まで、当該ＰＴＰメッセージを届けることができる。従って、ルータが存在しないと判定された場合（Ｓ５０２のＮｏ）、マスタ装置１０１は、スレーブ装置に対し、ＰＴＰメッセージをイーサネットフレームのペイロードとして送信すると決定する（Ｓ５１０）。この結果、各装置の処理負荷の増加が抑えられ、高い同期精度を得ることができる。その後、マスタ装置１０１は、スレーブ装置に対し、ＰＴＰメッセージをイーサネットフレームのペイロードとして送信する（Ｓ５１１）。
【００５７】
一方、ルータが存在すると判定された場合（Ｓ５０１のＹｅｓ）、マスタ装置１０１は、ルータが管理するサブネットワークに属する各装置からの応答を要求する問合せ信号を送信する（Ｓ５０２）。なお、複数のルータが存在する場合には、複数のルータの各々のサブネットワークに問合せ信号を送信する。ここでは、マスタ装置１０１は、ルータ１２１が管理するサブネットワークにＡＲＰ信号を送信する。ここで、ＡＲＰとはＡｄｄｒｅｓｓ  Ｒｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌの略であり、ＡＲＰ信号とはアドレス解決プロトコル（ＡＲＰ）要求である。
【００５８】
そして、マスタ装置１０１は、問合せ信号に対する応答の有無を確認する（Ｓ５０３）。
【００５９】
問合せ信号に対する応答がなかった場合（Ｓ５０３のＮｏ）、マスタ装置１０１とルータを介して接続されたスレーブ装置は存在しないと考えられる。そこで、このような場合、マスタ装置１０１は、スレーブ装置に対し、ＰＴＰメッセージをイーサネットフレームのペイロードとして送信すると決定する（Ｓ５１０）。その後、マスタ装置１０１は、スレーブ装置に対し、ＰＴＰメッセージをイーサネットフレームのペイロードとして送信する（Ｓ５１１）。
【００６０】
一方、問合せ信号に対する応答があった場合（Ｓ５０３のＹｅｓ）、マスタ装置１０１とルータを介して接続された装置が存在する。本実施形態においては、マスタ装置１０１は、スレーブ装置１０５からＡＲＰ信号に対する応答を受信することで、マスタ装置１０１とルータを介して接続された装置が存在すると判定する。
【００６１】
このような場合、マスタ装置１０１は、マスタ装置１０１とルータを介して接続された装置に対して、ＰＴＰメッセージをＵＤＰ／ＩＰパケットのペイロードとして送信する（Ｓ５０４）。ここでは、マスタ装置１０１は、Ｓｙｎｃメッセージ、および、Ｆｏｌｌｏｗ＿ｕｐメッセージをスレーブ装置１０５へ送信する。その後、マスタ装置１０１は、マスタ装置１０１とルータを介して接続された装置（本実施形態におけるスレーブ装置１０５）からのＤｅｌａｙ＿Ｒｅｑメッセージを、所定時間、待ち受ける（Ｓ５０５）。
【００６２】
そして、マスタ装置１０１は、マスタ装置１０１とルータを介して接続された装置（本実施形態におけるスレーブ装置１０５）からＤｅｌａｙ＿Ｒｅｑメッセージを受信したかを確認する（Ｓ５０６）。
【００６３】
Ｄｅｌａｙ＿Ｒｅｑメッセージを受信しなかった場合（Ｓ５０６のＮｏ）、マスタ装置１０１とルータを介して接続された装置は、同期処理を行うスレーブ装置ではないと考えられる。従って、マスタ装置１０１とルータを介して接続されたスレーブ装置は存在しないと考えられるため、マスタ装置１０１は、スレーブ装置に対し、ＰＴＰメッセージをイーサネットフレームのペイロードとして送信すると決定する（Ｓ５１０）。その後、マスタ装置１０１は、スレーブ装置に対し、ＰＴＰメッセージをイーサネットフレームのペイロードとして送信する（Ｓ５１１）。
【００６４】
一方、Ｄｅｌａｙ＿Ｒｅｑメッセージを受信した場合（Ｓ５０６のＹｅｓ）、マスタ装置１０１とルータを介して接続された装置は、同期処理を行うスレーブ装置であると考えられる。このようなスレーブ装置に対して、マスタ装置１０１がＰＴＰメッセージをイーサネットフレームのペイロードとして送信してしまうと、ルータにおいてＰＴＰメッセージが転送されず、スレーブ装置まで届かない。そこで、マスタ装置１０１はＰＴＰメッセージをＵＤＰ／ＩＰパケットで送信する必要がある。
【００６５】
マスタ装置１０１は、計測部３０６が計測したマスタ装置１０１の負荷が所定の閾値を超えているかを判定する（Ｓ５０７）。なお、当該閾値は、マスタ装置１０１がＰＴＰメッセージをイーサネットフレームのペイロードとして送信すると共にＵＤＰ／ＩＰパケットのペイロードとして送信した場合に、マスタ装置１０１の同期精度に影響を与えるか否かを基準に選択された値である。マスタ装置１０１の負荷は、スレーブ装置が多数存在することによるＰＴＰメッセージの増加や、同期コンテンツの通信量が多い場合などに、高くなる。
【００６６】
なお、ここでは、マスタ装置１０１のＣＰＵの使用率が所定の閾値（第１の閾値）を超えているかを判定する。しかしながら、当該判定に代えて、通信部３０５における単位時間当たりの通信量が所定の閾値（第２の閾値）を超えているかを判定するようにしてもよい。また、スイッチングハブから単位時間当たりの通信量の情報を取得し、当該通信量が所定の閾値（第３の閾値）を超えているかを判定するようにしてもよい。
【００６７】
マスタ装置１０１の負荷が所定の閾値を超えていない場合（Ｓ５０７のＮｏ）、ＰＴＰメッセージをイーサネットフレームのペイロードとして送信すると共に、ＵＤＰ／ＩＰパケットのペイロードとして送信すると決定する（Ｓ５０８）。具体的には、マスタ装置１０１とルータを介して接続されたスレーブ装置１０５に対しては、ＰＴＰメッセージをＵＤＰ／ＩＰパケットのペイロードとして送信すると決定する。そして、その他のスレーブ装置１０２〜１０４に対してはＰＴＰメッセージをイーサネットフレームのペイロードとして送信すると決定する。その後、マスタ装置１０１は、各スレーブ装置に対し、上述のように決定された送信方法に従ってＰＴＰメッセージを送信する（Ｓ５１１）。
【００６８】
このように、スレーブ装置の接続形態に応じて、適切な方式でＰＴＰメッセージを送信する。前述したように、ＰＴＰメッセージはイーサネットフレームのペイロードとして送信した方が、同期精度が高い。例えば、図４に示した同期ネットワーク１００の中でスレーブ装置１０２のみ性能が低く、同期精度が低い場合、ＰＴＰメッセージをＵＤＰ／ＩＰパケットのペイロードとして送信するのでは、要求する同期精度を満たせない可能性がある。このよう場合、スレーブ装置１０２は、同期から外れてしまう。しかし、ＰＴＰメッセージはイーサネットフレームのペイロードとして送信することで同期精度が向上し、スレーブ装置１０２も同期から外れる可能性を低減させることができる。
【００６９】
一方、マスタ装置１０１の負荷が所定の閾値を超えている場合（Ｓ５０７のＹｅｓ）、ＰＴＰメッセージをＵＤＰ／ＩＰパケットのペイロードとして送信すると決定する（Ｓ５０９）。その後、マスタ装置１０１は、スレーブ装置に対し、ＰＴＰメッセージをＵＤＰ／ＩＰパケットのペイロードとして送信する（Ｓ５１１）。
【００７０】
この場合、ＰＴＰメッセージに関する処理負荷を抑えるため、マスタ装置１０１は、ＰＴＰメッセージをイーサネットフレームのペイロードとして送信することはしない。これにより、マスタ装置１０１の処理負荷が抑えられるので、マスタ装置１０１の処理負荷によってネットワーク内の同期精度の劣化を防ぐことが可能である。
【００７１】
このように、ネットワークの構成に合わせて、ＰＴＰメッセージ送信のフレームフォーマットを選択することで、ネットワークの同期精度の低下を抑えることが可能である。
【００７２】
なお、マスタ装置１０１は当該フローチャートを周期的に繰り返すようにしてもよい。また、これに代えて、もしくは、加えて、マスタ装置１０１が新規のスレーブ装置からＰＴＰメッセージを受信した場合や、ネットワーク構成が変更された場合に、当該フローチャートを実行してもよい。
【００７３】
ネットワークの構成が変更されたかは、例えば、マスタ装置１０１が問合せ信号（例えば、ＡＲＰ信号）を送信し、その応答を受信した際に、いずれの装置から応答を受信したかを確認することによって、判定することができる。即ち、新規の装置から応答を受信した場合には、ネットワーク構成が変更されたと判定することができる。また、マスタ装置１０１がＡＲＰ信号を送信したにも拘わらず、その応答を既存の装置の少なくとも一部から受信できなかったことに応じて、ネットワーク構成が変更されたと判定することができる。
【００７４】
このようにすることで、ネットワーク構成が変更されたことに追随して、適切なＰＴＰメッセージ送信のフレームフォーマットを選択でき、ネットワークの同期精度の低下を抑えることが可能である。
【００７５】
また、上述のフローチャートにおけるＳ５０２〜５０６を省略してもよい。これによれば、マスタ装置１０１の処理負荷を軽減することができる。
【００７６】
また、Ｓ５０７に代えて、ユーザ設定に従ってＳ５０８もしくはＳ５０９に進むようにしてもよい。これによれば、ネットワーク構成とユーザ設定に基づいて、適切なＰＴＰメッセージ送信のフレームフォーマットを選択することができる。
【００７７】
また、Ｓ５０７に代えて、各スレーブ装置の機能情報や負荷情報に基づいてＳ５０８もしくはＳ５０９に進むようにしてもよい。具体的には、最も機能の低いスレーブ装置が有する機能が所定の閾値を超えている場合にはＳ５０８に進み、超えていない場合にはＳ５０９に進む。この際、最も機能の低いスレーブ装置が有する機能に代えて、マスタ装置とスレーブ装置のうち、最も機能の低い装置が有する機能としてもよい。
【００７８】
もしくは、最も負荷の高いスレーブ装置の負荷が所定の閾値を超えている場合にはＳ５０８に進み、超えていない場合にはＳ５０９に進む。この際、最も負荷の高いスレーブ装置の負荷に代えて、マスタ装置とスレーブ装置のうち、最も負荷の高い装置の負荷としてもよい。これにより、ネットワークを構成する装置の状況に応じたＰＴＰメッセージ送信のフレームフォーマットを選択することができる。
【００７９】
上述のようにして、ネットワーク構成に応じた送信方法で同期メッセージを送信することができる。
【００８０】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００８１】
１００  同期ネットワーク
１０１  マスタ装置
１０２  スレーブ装置Ａ
１０３  スレーブ装置Ｂ
１０４  スレーブ装置Ｃ
１０５  スレーブ装置Ｄ
１２１  ルータ
【図１】
0006676460.tif 000004
【図２】
0006676460.tif 000005
【図３】
0006676460.tif 000006
【図４】
0006676460.tif 000007
【図５】
0006676460.tif 000008