(57)【要約】【課題】中継装置を用いてネットワークを構成する場合に、同期パケットの遅延のゆらぎによる影響を簡易な構成で低減する。【解決手段】第一の通信制御装置が、同期パケットを受信した時刻、または、受信した同期パケットを中継装置へ送信する時刻、に関する第一の時刻情報を前記中継装置へ送信するパケットに付与する処理と、第二の通信制御装置が、中継装置を介して送られた同期パケットを受信した時刻、または、受信した同期パケットを他方の前記通信装置へ送信する時刻、に関する第二の時刻情報と、前記第一の時刻情報と、から前記同期パケットが前記第一、及び、前記第二の通信制御装置間の通信遅延に関する情報を求める処理と、求めた前記通信遅延に関する情報を前記他方の通信装置へ送信するパケットに付与する処理と、を含むことを特徴とする。【選択図】図３
2016012820.tif 000002
【特許請求の範囲】
【請求項１】
第一の通信制御装置と、前記第一の通信制御装置と中継装置を介して接続する第二の通信制御装置と、を備える通信システムであって、
前記第一、及び、前記第二の通信制御装置は、同期パケットによって時刻同期を行う通信装置間に備えられ、
前記第一の通信制御装置は、
一方の前記通信装置から送られた前記同期パケットを受信した時刻、または、受信した前記同期パケットを前記中継装置へ送信する時刻、に関する第一の時刻情報を前記中継装置へ送信するパケットに付与する時刻付与部を有し、
前記第二の通信制御装置は、
前記第一の通信制御装置から前記中継装置を介して送られた前記同期パケットを受信した時刻、または、受信した前記同期パケットを他方の前記通信装置へ送信する時刻、に関する第二の時刻情報と、前記時刻付与部によって付与された前記第一の時刻情報と、から前記同期パケットが前記第一、及び、前記第二の通信制御装置間の通信遅延に関する情報を求める通信遅延計算部と、
求めた前記通信遅延に関する情報を前記他方の通信装置へ送信するパケットに付与する通信遅延更新部と、を有する
ことを特徴とする通信システム。
【請求項２】
請求項１において、
前記時刻付与部による前記第一の時刻情報の付与とは、前記同期パケットの先頭、または、末尾に前記第一の時刻情報を付加することであり、
前記通信遅延計算部は、前記同期パケットに付加された前記第一の時刻情報に前記第二の時刻情報を加算して前記通信遅延に関する情報を求め、
前記通信遅延更新部は、前記同期パケットに付加された前記第一の時刻情報を取除き、前記通信遅延に関する情報を前記同期パケット内に格納する
ことを特徴とする通信システム。
【請求項３】
請求項１において、
前記同期パケットには、前記一方の通信装置が前記同期パケットを送信した時刻に関する情報が格納される原時刻領域と、通信経路内の通信遅延に関する情報が格納される補正領域と、が含まれることを特徴とする通信システム。
【請求項４】
請求項３において、
前記時刻付与部による前記第一の時刻情報の付与とは、前記原時刻領域、または、前記補正領域に示す時刻から前記第一の時刻情報を減算して更新することであることを特徴とする通信システム。
【請求項５】
請求項３において、
前記通信遅延計算部は、前記原時刻領域、または、前記補正領域に示す時刻に前記第二の時刻情報を加算して前記通信遅延に関する情報を求め、
前記通信遅延更新部による前記通信遅延に関する情報の付与とは、前記原時刻領域、または、前記補正領域に示す時刻を前記通信遅延に関する情報で更新することであることを特徴とする通信システム。
【請求項６】
請求項４において、
前記時刻付与部は、前記第一の時刻情報を減算において、所定時間を単位とする桁上りの有無を、前記同期パケット上の所定領域を用いて示すことを特長とする通信システム。
【請求項７】
請求項１において、
前記時刻付与部は、前記第一の時刻情報を前記同期パケットとは独立したパケットに付与することを特徴とする通信システム。
【請求項８】
請求項１において、
前記通信遅延更新部は、前記通信遅延に関する情報を前記同期パケットとは独立したパケットに付与することを特徴とする通信システム。
【請求項９】
請求項１において、
前記時刻付与部は、前記第一の時刻情報に基づいて前記同期パケット上の所定領域の値を所定数加算し、
前記通信遅延計算部は、前記第二の時刻情報に基づいて前記同期パケット上の所定領域の値を所定数減算することを特長とする通信システム。
【請求項１０】
同期パケットによって時刻同期を行う通信装置間に備えられた複数の通信制御装置による通信方法であって、
第一の通信制御装置が、
一方の前記通信装置から送られた前記同期パケットを受信した時刻、または、受信した前記同期パケットを中継装置へ送信する時刻、に関する第一の時刻情報を前記中継装置へ送信するパケットに付与する処理と、
第二の通信制御装置が、
前記第一の通信制御装置から前記中継装置を介して送られた前記同期パケットを受信した時刻、または、受信した前記同期パケットを他方の前記通信装置へ送信する時刻、に関する第二の時刻情報と、前記第一の通信制御装置によって付与された前記第一の時刻情報と、から前記同期パケットが前記第一、及び、前記第二の通信制御装置間の通信遅延に関する情報を求める処理と、
求めた前記通信遅延に関する情報を前記他方の通信装置へ送信するパケットに付与する処理と、
を含む通信方法。
【請求項１１】
請求項１０に記載の通信制御方法を前記第一、または、前記第二の通信制御装置に実行させるための通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信制御システム等に関する。
【背景技術】
【０００２】
分散されて構成される制御システムにおいては、実現するアプリケーションに応じて、接続端末間の時刻を同期することが求められる場合がある。ネットワークで接続された分散制御システムの場合は、ネットワークを介した時刻同期パケットの送受信によって、時刻を同期することができる。
【０００３】
例えば、音声や映像等の信号を遠隔地へ伝送する場合、アナログ信号をデジタル化することが一般的である。その場合、共通の周波数を用いて、信号の符号処理と遠隔地での復号処理を実行する方式がある。このような方式では、送信側で使用する周波数と受信側で使用する周波数が同じで安定している必要がある。そのために、周波数同期、時刻同期が必要である。
【０００４】
また、無線通信の基地局においては、ルータ等の基地局間、基地局と携帯機器間で周波数が安定していれば、スムーズにハンドオーバーを実行することができる。そのために、基地局間の同期が求められる。
【０００５】
この他にも、時刻同期の応用としては、計測、測定の分野や、産業用製造装置、電力系統の保護制御装置、ＩＥＤ（Ｉｎｔｅｌｌｉｇｅｎｔ  ｅｌｅｃｔｒｏｎｉｃ  ｄｅｖｉｃｅ）等の分野が挙げられる。
【０００６】
ネットワークを用いた時刻同期方式として、ＮＴＰ（Ｎｅｔｗｏｒｋ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ）、ＳＮＴＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ）、ＩＥＥＥ  １５８８（非特許文献１）等が挙げられる。
【０００７】
図１２にＩＥＥＥ  １５８８の時刻同期プロトコルの実行手順を説明する。図１３にＩＥＥＥ１５８８におけるメッセージのやりとりを示す。
【０００８】
ＩＥＥＥ１５８８は、マスタ−スレーブ構成をとる。
【０００９】
はじめにマスタは、スレーブにＳｙｎｃメッセージを送信する（Ｓ０６０）。このとき、マスタはＳｙｎｃメッセージの送信時刻ｔ１を記録する（Ｓ０６１）。スレーブは、Ｓｙｎｃメッセージを受信すると、その受信時刻ｔ２を記録する（Ｓ０６２）。マスタは次のいずれかの手段でｔ１をスレーブに通知する（Ｓ０６３）。
【００１０】
ひとつは、Ｓｙｎｃメッセージにｔ１の情報をのせる方法である。残る手段は、Ｓｙｎｃメッセージに続くＦｏｌｌｏｗ＿Ｕｐメッセージにｔ１の情報をのせる方法である。
【００１１】
続いて、スレーブは、マスタにＤｅｌａｙ＿Ｒｅｑメッセージを送信する（Ｓ０６４）。このとき、スレーブはＤｅｌａｙ＿Ｒｅｑメッセージの送信時刻ｔ３を記録する（Ｓ０６５）。マスタは、Ｄｅｌａｙ＿Ｒｅｑメッセージを受信すると、その受信時刻ｔ４を記録する（Ｓ０６６）。そして、マスタはＤｅｌａｙ＿Ｒｅｓｐメッセージにｔ４の情報をのせ、ｔ４をスレーブに通知する（Ｓ０６７）。
【００１２】
Ｄｅｌａｙ＿Ｒｅｓｐメッセージを受信したスレーブは、ｔ１，ｔ２，ｔ３，ｔ４から、マスタ、スレーブ間の通信遅延、時刻の差分を計算する（Ｓ０６８）。
【００１３】
通信遅延の計算には、マスタ、スレーブ間の通信遅延が往復路で等しいという前提がある。したがって、片道の通信遅延ｔｄの計算は、次式で表わされる。
【００１４】
ｔｄ＝（（ｔ４−ｔ３）＋（ｔ２−ｔ１））／２  （式１）
また、マスタとスレーブの時刻の差分ｔｄｉｆｆは次式で表わされる。
【００１５】
ｔｄｉｆｆ＝｛（ｔ４−ｔ３）−（ｔ２−ｔ１）｝／２  （式２）
すなわち、マスタ、スレーブ間の時刻に同期がとれていれば、（ｔ４−ｔ３）−（ｔ２−ｔ１）＝０となるはずであり、スレーブはこのｔｄｉｆｆを計算して、ｔｄｉｆｆが０になるようマスタと時刻を同期する。尚、以下の説明では、Ｓｙｎｃメッセージ、Ｆｏｌｌｏｗ＿Ｕｐメッセージ、Ｄｅｌａｙ＿Ｒｅｑメッセージ、Ｄｅｌａｙ＿Ｒｅｓｐメッセージ等の同期処理の際に必要なパケットを同期パケットと呼ぶ。  また、特許文献１では、マスタとスレーブ間に備えられた中継装置において、入力ポートで受信された同期パケットにカウンタ値を付与し、出力ポートから送出時に、カウンタと、パケットに付与されたカウンタ値の差分を計算して、パケットに付与することで中継装置内の遅延を取得することが記載されている。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特開２０１０−６２７２９
【非特許文献】
【００１７】
【非特許文献１】ＩＥＥＥ１５８８−２００８  「ＩＥＥＥ  Ｓｔａｎｄａｒｄ  ｆｏｒ  ａ  Ｐｒｅｃｉｓｉｏｎ  Ｃｌｏｃｋ  Ｓｙｎｃｈｒｏｎｉｚａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ  ｆｏｒ  Ｎｅｔｗｏｒｋｅｄ  Ｍｅａｓｕｒｅｍｅｎｔ  ａｎｄ  Ｃｏｎｔｒｏｌ  Ｓｙｓｔｅｍｓ」
【発明の概要】
【発明が解決しようとする課題】
【００１８】
しかしながら、上記の同期方法では、ネットワークスイッチ等の中継装置を用いてネットワークを構成する場合に、同期精度が低下するという課題がある。
【００１９】
例えば、ＩＥＥＥ  １５８８では、同期パケットの往復の遅延が等しいか、あるいは往復の遅延に時間差がある場合でも、その時間差が既知であるという前提に基づいている。しかし、複数の接続端末間でネットワークを共有する場合、ネットワークスイッチ等の中継装置内で時刻同期パケットがキューイングされ、往復の遅延差にゆらぎが生じるという課題がある。
【００２０】
特に、インターネット等の広域網や公衆網を利用する場合、この課題への対応は、より困難となる。この課題への有効な対策の一つが非特許文献１に示すｅｎｄ−ｔｏ−ｅｎｄ  ＴＣ（Ｔｒａｎｓｐａｒｅｎｔ  Ｃｌｏｃｋ）、ｐｅｅｒ−ｔｏ−ｐｅｅｒ  ＴＣ（Ｔｒａｎｓｐａｒｅｎｔ  Ｃｌｏｃｋ）である。これらの仕組みを用いて、ネットワーク中継装置内でのパケットの転送遅延を計測することができる。この計測した転送遅延をパケット内のデータに反映することで、端末の時刻同期対応装置は、往復の通信遅延の差を算出することができる。
【００２１】
しかしながら、ｅｎｄ−ｔｏ−ｅｎｄ  ＴＣ、ｐｅｅｒ−ｔｏ−ｐｅｅｒ  ＴＣは高精度のタイムスタンプを取得して、同期パケットの情報を更新する専用の機能が必要であるという課題がある。
【００２２】
また、特許文献１に記載の方法は、経由する中継装置の段数が多段の場合には、中継装置ごとに、遅延を計算する機能を持たせる必要があった。
【００２３】
そこで本発明は、中継装置を用いてネットワークを構成する場合に、同期パケットの遅延のゆらぎによる影響を簡易な構成で低減することを目的とする。
【課題を解決するための手段】
【００２４】
本発明は、上記課題を解決するために、同期パケットによって時刻同期を行う通信装置間に備えられた複数の通信制御装置による通信方法であって、第一の通信制御装置が、一方の前記通信装置から送られた前記同期パケットを受信した時刻、または、受信した前記同期パケットを中継装置へ送信する時刻、に関する第一の時刻情報を前記中継装置へ送信するパケットに付与する処理と、第二の通信制御装置が、前記第一の通信制御装置から前記中継装置を介して送られた前記同期パケットを受信した時刻、または、受信した前記同期パケットを他方の前記通信装置へ送信する時刻、に関する第二の時刻情報と、前記第一の通信制御装置によって付与された前記第一の時刻情報と、から前記同期パケットが前記第一、及び、前記第二の通信制御装置間の通信遅延に関する情報を求める処理と、求めた前記通信遅延に関する情報を前記他方の通信装置へ送信するパケットに付与する処理と、を含むことを特徴とする。
【発明の効果】
【００２５】
本発明によれば、中継装置を用いてネットワークを構成する場合に、同期パケットの遅延のゆらぎによる影響を簡易な構成で低減することができる。
【図面の簡単な説明】
【００２６】
【図１】本発明の一実施形態を用いたシステム構成図である。
【図２】本発明の一実施形態でのハードウェア構成図である。
【図３】本発明の一実施形態を示す機能構成図である。
【図４】本発明の一実施形態における実行手順を示した図である。
【図５】本発明の一実施形態における実行手順を示した図である。
【図６】本発明の一実施形態を示す同期パケットへの送信時刻情報の付加方法を示した図である。
【図７】ＩＥＥＥ  １５８８のパケットフォーマットを示した図である。
【図８】本発明の一実施形態を示す通信遅延の更新方法を示した図である。
【図９】本発明の一実施形態を示す通信遅延の更新方法を示した図である。
【図１０】本発明の一実施形態における判定手順を示した図である。
【図１１】本発明の一実施形態を用いたシステム構成図である。
【図１２】本発明の一実施形態における実行手順を示した図である。
【図１３】本発明の一実施形態における時刻同期メッセージを示した図である。
【図１４】本発明の一実施形態を示す機能構成図である。
【図１５】本発明の一実施形態を示す機能構成図である。
【図１６】本発明の一実施形態を用いたシステム構成図である。
【図１７】本発明の一実施形態を用いたシステム構成図である。
【図１８】本発明の一実施形態における時刻同期メッセージを示した図である。
【発明を実施するための形態】
【実施例１】
【００２７】
（＃  システム例）
図１は、本発明を適用した通信制御装置１２０を用いて構成するシステム例である。通信装置１２３は、通信制御装置１２０、ネットワーク中継装置１２１、ネットワーク１２２を介して、他の通信装置１２３と接続し、通信する。
【００２８】
ネットワーク中継装置１２１として、ネットワークスイッチ、ルータ、ゲートウェイ、ＯｐｅｎＦｌｏｗにおけるＯｐｅｎＦｌｏｗスイッチ等が挙げられる。
【００２９】
ネットワーク１２２として、ＩＥＥＥ  ８０２．３、各種産業用ネットワーク、ＩＥＣ６１７８４、ＩＥＣ  ６１１５８等が例示される。
【００３０】
（＃  ハードウェア構成）
図２は、本発明を適用した通信制御装置１２０のハードウェア構成である。
【００３１】
ＣＰＵ１０１は、不揮発性記憶媒体１０９からプログラムをメモリ１０８に転送して実行する。実行処理プログラムとしては、オペレーティングシステム（以下、ＯＳと称す）やＯＳ上で動作するアプリケーションプログラムが例示される。
【００３２】
ＬＡＮ１０２は、ネットワーク１２２との通信機能を実装した送受信機ＩＣである。ＬＡＮ１０２は、ＣＰＵ１０１上で動作するプログラムから通信要求を受け取り、ネットワーク１２２に対して通信する。ＬＡＮ１０２の実装例としては、ＩＥＥＥ８０２．３規格のＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）チップ、ＰＨＹ（物理層）チップ、ＭＡＣとＰＨＹの複合チップ、ＦＰＧＡ、ＣＰＬＤ、ＡＳＩＣ、ゲートアレイ等のＩＣが例示される。なお、ＬＡＮ１０２は、ＣＰＵ１０１や、コンピュータ内部の情報経路を制御するチップセットに含まれていてもよい。なお、ＬＡＮ１０２の個数は１つでも複数でも良い。
【００３３】
通信制御部１０３は、１つ、または複数のＬＡＮ１０２と、バス１１０に接続し、通信制御処理を実行する。通信制御処理の詳細は後述する。通信制御部１０３は、バス１１０に接続し、バス１１０経由でＬＡＮ１０２と接続してもよい。通信制御部１０３は、ＦＰＧＡ、ＣＰＬＤ、ＡＳＩＣ、ゲートアレイ等のＩＣによる実装が例示される。なお、通信制御部１０３は、ＣＰＵ１０１やコンピュータ内部の情報経路を制御するチップセットに含まれていてもよい。また、ＬＡＮ１０２の構成によって、通信に必要な機能を内蔵してもよい。例えば、ＬＡＮ１０２がＰＨＹ（物理層）相当の機能であれば、通信制御部１０３がＭＡＣ層相当の機能を含むことが例示される。
【００３４】
メモリ１０８は、ＣＰＵ１０１が動作するための一時的な記憶領域であり、不揮発性記憶媒体１０９から転送したＯＳ、アプリケーションプログラム等が格納される。
【００３５】
不揮発性記憶媒体１０９は、情報の記憶媒体で、ＯＳ、アプリケーション、デバイスドライバ等や、ＣＰＵ１０１を動作させるためのプログラムの保存、プログラムの実行結果の保存に利用される。不揮発性記憶媒体１０９として、ハードディスクドライブ（ＨＤＤ）やソリッドステートドライブ（ＳＳＤ）、フラッシュメモリが例示される。また、取り外しが容易な外部記憶媒体として、フロッピーディスク（ＦＤ）、ＣＤ、ＤＶＤ、ブルーレイ（登録商標）、ＵＳＢメモリ、コンパクトフラッシュ等の利用が例示される。
【００３６】
バス１１０は、ＣＰＵ１０１、ＬＡＮ１０２、メモリ１０８、不揮発性記憶媒体１０９をそれぞれ接続する。バス１１０としては、ＰＣＩバス、ＩＳＡバス、ＰＣＩ  Ｅｘｐｒｅｓｓバス、システムバス、メモリバス等が例示される。
【００３７】
図１８は、本実施例による通信遅延のゆらぎによる影響を補正する概念図である。図１８では、図１３に示すＩＥＥＥ１５８８に規定された同期パケットのうち、ＳｙｎｃメッセージとＤｅｌａｙ＿Ｒｅｑメッセージを例に説明する。
【００３８】
図１８に示すように通信装置１２３ａによって時刻ｔ１に送信されたＳｙｎｃメッセージは、時刻ｔ２に通信装置１２３ｂによって受信され、時刻ｔ３に通信装置１２３ｂから送信されたＤｅｌａｙ＿Ｒｅｑメッセージは、時刻ｔ４に通信装置１２３ａによって受信される。尚、本例では通信装置１２３ａがマスタ、通信装置１２３ｂがスレーブとする。
【００３９】
ここで、ＩＥＥＥ１５８８による同期処理では、マスタ、スレーブ間の通信遅延が往復路で等しいという前提があり、通信装置１２３ａと通信装置１２３ｂが同期されていれば（ｔ２−ｔ１）＝（ｔ４−ｔ３）となるはずである。
【００４０】
しかし、本実施例のようにネットワーク中継装置１２１を介してネットワークが構成される場合には、特に、同期パケットが中継装置を滞留する時間にゆらぎが生じる可能性がある。滞留時間にゆらぎが生じると、（ｔβ−ｔα）≠（ｔδ−ｔγ）となり、往路の遅延時間（ｔ２−ｔ１）と復路の遅延時間（ｔ４−ｔ３）が等しくなくなり、正確な同期処理が実行できなくなる。
【００４１】
そこで、本実施例では、ネットワーク中継装置１２１を挟むように通信制御装置１２０ａおよび通信制御装置１２０ｂを設ける。そして通信制御装置１２０ａでは、Ｓｙｎｃメッセージの受信時刻ｔαを観測し、ｔ１から減算を行う。通信制御装置１２０ｂでは、Ｓｙｎｃメッセージの送信時刻ｔβを観測し、通信装置１２０ａによって減算されたｔ１にｔβを加算して、通信装置１２３ｂへ送信する。そうすると、通信装置１２３ｂが取得する見かけ上の送信時刻ｔ１′は（式３）となり、見かけ上の通信遅延時間ｔｄ′は（式４）となる。
【００４２】
ｔ１′＝ｔ１−ｔα＋ｔβ  （式３）
ｔｄ′＝（ｔ２−ｔ１′）＝（ｔ２−ｔβ）＋（ｔα−ｔ１）  （式４）
このように、（ｔα−ｔ１）と（ｔ２−ｔβ）は、それぞれ、通信装置１２３ａから通信制御装置１２０ａまでの遅延時間、通信制御装置１２０ｂから通信装置１２３ｂまでの遅延時間であるため、ゆらぎが生じる可能性がある通信制御装置１２０ａから通信制御装置１２０ｂまでの遅延時間を排除することができる。
【００４３】
また、Ｄｅｌａｙ＿Ｒｅｑメッセージの場合も同様に、Ｄｅｌａｙ＿Ｒｅｑメッセージの受信時刻ｔγを観測し、通信制御装置１２０aでは、Ｄｅｌａｙ＿Ｒｅｑメッセージの送信時刻ｔδを観測する。観測した受信時刻ｔγ、送信時刻ｔδは、通信装置１２３ａから送信されるＤｅｌａｙ＿Ｒｅｓｐメッセージ（図１８では図示しない）を通信制御装置１２０ａ、通信制御装置１２０ｂによって転送する際に、それぞれ時刻ｔ４からｔδを減算、ｔγを加算する。
【００４４】
そうすると、通信装置１２３ｂが取得する見かけ上の受信時刻ｔ４′は（式５）となり、見かけ上の通信遅延時間ｔｄ′は（式６）となる。
【００４５】
ｔ４′＝ｔ４−ｔδ＋ｔγ  （式５）
ｔｄ′＝（ｔ４′−ｔ３）＝（ｔγ−ｔ３）＋（ｔ４−ｔδ）  （式６）
よってＳｙｎｃメッセージと同様に、（ｔγ−ｔ３）と（ｔ４−ｔδ）は、それぞれ、通信装置１２３ｂから通信制御装置１２０ｂまでの遅延時間、通信制御装置１２０ａから通信装置１２３ａまでに遅延時間であるため、ゆらぎが生じる可能性がある通信制御装置１２０ｂから通信制御装置１２０ａまでの遅延時間を排除することができる。
【００４６】
このように、ネットワーク中継装置１２１を挟むように通信制御装置１２０ａおよび通信制御装置１２０ｂを設けることによって、ネットワーク中継装置１２１による遅延時間のゆらぎを解消することができる。また、本例では、通信制御装置１２０がｔα、ｔβ、ｔγ、ｔδの時刻を観測する例で説明したが、通信制御装置１２０内での転送処理による遅延時間（ｔα′−ｔα，ｔβ′−ｔβ，ｔγ′−ｔγ，ｔδ′−ｔδ）が一定であれば、ｔα、ｔβ、ｔγ、ｔδの代わりに、ｔα′、ｔβ′、ｔγ′、ｔδ′を観測して同様の処理を行うことで、遅延時間のゆらぎを解消することができる。
【００４７】
次に、通信制御装置１２０の具体的な機能について説明する。
【００４８】
尚、以下の例では、通信制御装置１２０ａが同期パケットの送信時刻ｔα′を用い、通信制御装置１２０ｂが同期パケットの受信時刻ｔβ′を用いる例で説明する。
【００４９】
（各機能部の説明）
図３に本発明を適用した通信制御装置１２０ａの機能構成図を示す。
【００５０】
時刻同期処理部１３０は、時刻同期手順を実行する機能部である。時刻同期プロトコルを実行し、計時部１３５を他の通信装置１２３の計時部１３５と同期させる。実行する時刻同期プロトコルとしては、ＩＥＥＥ  １５８８やＮＴＰ、ＳＮＴＰが挙げられる。時刻同期処理部１３０は、ＣＰＵ１０１上のソフトウェアで実現してもよいし、ＬＡＮ１０２をＦＰＧＡやＣＰＬＤで構成した場合のハードウェア論理として実現してもよい。あるいは、ＣＰＵ１０１上のソフトウェアと、ＬＡＮ１０２の両方で構成してもよい。この場合は、パケットの送信タイミング、受信タイミングの計測機能、あるいはパケットフォーマットの生成をＬＡＮ１０２で処理することが例示される。時刻同期処理部１３０は、ネットワーク中継装置１２１経由で通信制御装置１２１ｂと同期してもよい。
【００５１】
通信部１３１は、時刻同期プロトコルにおける所定のパケットの送受信機能である。
【００５２】
送信部１３２は、時刻同期プロトコルにおける所定のパケットの送信機能であり、ネットワークを介して接続する他の装置へパケットを送信する。
【００５３】
受信部１３３は、時刻同期プロトコルにおける所定のパケットの受信機能であり、ネットワークを介して接続する他の装置からパケットを受信する。
【００５４】
通信部１３１、送信部１３２、受信部１３３は、ＬＡＮ１０２による実現が例示される。尚、図１に示すようにネットワークを構成するためには、通信制御装置１２０は、実際には２つのポートを必要とするが、図３に示す例では、ポートの記載を１つ省略して説明する。
【００５５】
同期パケット判定部１３４は、ＣＰＵ１０１、あるいは通信制御部１０３、他のＬＡＮ１０２から転送されたパケットが、時刻同期プロトコルに基づくパケットであるかを判定する。通信制御装置１２０ａにおいて、時刻同期パケットであって、当該パケットを通信装置１２３ａ側から受信した場合には送信時刻付与部１３６に転送し、当該パケットを中継装置１２１側から受信した場合には通信遅延計算部１３７に転送する。同期パケット判定部１３４は、ＣＰＵ１０１上のソフトウェア、ＬＡＮ１０２、通信制御部１０３のいずれか１つ、または複数で実現する。
【００５６】
計時部１３５は、時刻情報を提供する（他の機能部との接続は図示していない）。計時部１３５は、オシレーター、ＲＴＣ（Ｒｅａｌ  ｔｉｍｅ  ｃｌｏｃｋ）やクロック用ＩＣを用いて構成してもよいし、ＣＰＵ１０１上で動作するソフトウェアで構成してもよい。オペレーティングシステムによっては、起動時にＲＴＣから時刻を取得し、ＣＰＵ１０１内の定期的なタイマ割り込みで時間を計測するソフトウェアタイマを構成する場合がある。ソフトウェアタイマの場合は、ハードウェアを用いた計時部１３５の構成に比較して、時間分解能が粗くなるため、システムに要求される時間同期精度を満足できるかをもとにソフトウェアタイマの採用可否を判定する必要がある。
【００５７】
なお、計時部１３５の提供する時刻情報は、世界共通の標準時間でもよいし、自身における時間でもよい。これは、通信遅延を計測することが目的であり、必ずしも世界共通の時間で計時する必要がないためである。
【００５８】
計時部１３５の時刻表現形式は任意の形式で構わない。所定ビット数、所定時間単位で表現することが可能である。例えば、ＩＥＥＥ  １５８８の定める形式により、秒単位の４８ビットとナノ秒単位の３２ビットの合計８０ビットで表現することも可能である。
【００５９】
送信時刻付与部１３６は、同期された計時部１３５の時刻を送信時刻として同期パケットを更新（時刻情報の付加、あるいは変更）する。送信時刻付与部１３６は、ＣＰＵ１０１上のソフトウェア、ＬＡＮ１０２、通信制御部１０３のいずれか一つ、または複数で実現する。
【００６０】
通信遅延計算部１３７は、同期パケット判定部１３４によって転送された同期パケットの受信時刻を計時部１３５から取得する。そして、通信制御装置１２０ｂの通信遅延計算部１２７の場合、同期パケット上の通信制御装置１２０ａの送信時刻を受信時刻から減算し、通信遅延を求める。同期パケットならびに算出した通信遅延を通信遅延更新部１３８に転送する。
【００６１】
通信遅延更新部１３８は、通信遅延計算部１３７から通知された通信遅延を、同じく通信遅延計算部１３７から転送された同期パケット上に反映（同期パケットへの通信遅延の付加、あるいは遅延情報の変更）する。
【００６２】
ここで、同期パケットの遅延時間を補正する必要が一方向の通信のみでよい場合（例えば通信装置１２３ａから通信装置１２３ｂへの方向のパケット通信）には、通信制御装置１２０ａには、通信遅延計算部１３７、通信遅延更新部１３８の機能は必要なく、通信制御装置１２０ｂには、送信時刻付与部１３６の機能は必要ない。
【００６３】
（通信装置間の時刻同期手順）
図１に示す通信装置１２３ａ、１２３ｂを例に、通信装置間の時刻同期手順を説明する。時刻同期手順は以下の２つの手順をとる。
１．通信制御装置１２０ａ、１２０ｂ間の同期
２．通信装置１２３ａ、１２３ｂ間の同期
上記の手順は、順番に実行してもよいし、それぞれ独立して実行してもよい。
【００６４】
はじめに、通信制御装置１２０ａ、１２０ｂ間の同期処理について説明する。通信制御装置１２０ａ、１２０ｂ間は各通信制御装置の時刻同期処理部１３０によって同期される。時刻同期処理部１３０による時刻同期手順は、例えば特開２０１４−７８７８１に記載のようなパケットの受信間隔を監視しながら時刻同期を行う方法や、通信制御装置１２０ａ、１２０ｂそれぞれにＧＰＳ（Ｇｌｏｂａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｓｙｓｔｅｍ）を用いて同期する方法、ネットワーク中継装置１２１を経由せずに、直接結線した回線上で同期する方法が例示される。
【００６５】
これらの方法による同期処理は、一定時間ごとに実行してもよいし、あるいは通信負荷状態に応じて実行してもよい。例えば、通信負荷が低ければ、ネットワーク中継装置１２１内のパケットの衝突が起きにくく、同期しやすい。あるいは、ネットワーク全体で所定期間負荷が高まるということが既知であれば（例えば、センサ端末装置からの情報収集）、その直前に同期することが例示される。あるいは、通信装置１２３ａ、１２３ｂが同期パケットを送信する前に、通信制御装置１２０ａ、１２０ｂへ同期処理を要求することが例示される。
【００６６】
通信制御装置１２０ａ、１２０ｂ間の同期処理においては、任意の方法により、マスタ（時刻の同期先）、スレーブ（時刻同期する装置）を決定してもよい。例えば、ＩＥＥＥ  １５８８に定めるＢｅｓｔ  Ｍａｓｔｅｒ  Ｃｌｏｃｋ（ＢＭＣ）アルゴリズムが例示される。
【００６７】
次に通信装置１２３ａ、１２３ｂが同期する手順を図１３、図４、図５を用いて示す。ここでは、ＩＥＥＥ  １５８８による同期手順を例に説明するが、他の時刻同期プロトコルであっても応用可能である。
【００６８】
図４は、通信制御装置１２０ａの処理フロー図である。はじめに、同期パケットの受信を待機する（Ｓ００１）。同期パケット（例えば、Ｓｙｎｃメッセージ）は、同期パケット判定部１３４が判定する。同期パケットを受信すると、時刻同期処理部１３０が同期させた計時部１３５の時刻を送信時刻として取得する（Ｓ００２）。取得した送信時刻を同期パケットに反映する（Ｓ００３）。時間経過にともなう同期精度低下を防止するため、Ｓ００２後、ただちにＳ００３を実行することが望ましい。
【００６９】
この時、同期パケットの送信時刻更新方法として、図６に示す方法が例示される。
【００７０】
図６は、通信制御装置１２０ａによる送信時刻更新方法の例を示す図である。図６（ａ）は、送信時刻情報をパケットの末尾に付加する方法である。図６（ｂ）は、送信時刻情報をパケットの先頭に付加する方法である。図６（ｃ）は、同期パケット上のパラメータに送信時刻情報を反映する方法である。
【００７１】
それぞれの更新方法について説明する。
【００７２】
図６（ａ）について、同期パケットが所定サイズであるか、あるいはパケット全体の長さがパケット上の所定領域から取得することができれば、同期パケットを受信した通信装置１２３は、末尾に付加する時刻情報を取得することができる。
【００７３】
例えば、ＩＥＥＥ  ８０２．３形式を用いるＩＥＥＥ  １５８８パケットであれば、共通ヘッダのサイズが３４ｂｙｔｅ、送信タイムスタンプが１０ｂｙｔｅであるため、ＩＥＥＥ  ８０２．３のヘッダ直後から４５ｂｙｔｅ目以降に送信時刻情報が格納される。
【００７４】
なお、送信時刻情報の形式は計時部１３５の時刻表現形式に基づくことが例示され、ＩＥＥＥ  １５８８の時刻表現形式（８０ｂｉｔ）の適用が例示される。あるいは任意の形式でもよく、ＩＥＥＥ  １５８８に定める独自パラメータ定義に利用可能なＴＬＶ（ｔａｇ  ｌｅｎｇｔｈ  ｖａｌｕｅ）形式でもよい。
【００７５】
図６（ｂ）について、パケットの先頭に時刻情報が付与されているため、同期パケットを受信した通信装置１２３は、パケット全体を受信することなく、通信遅延を計算することができる。しかしながら、ヘッダよりも前に時刻情報が位置するため、ネットワーク中継装置１２１は、ヘッダ情報をもとにパケットの経路制御が困難である。したがって、図６（ｂ）による同期パケット更新方法は、ネットワーク中継装置１２１がヘッダ情報に依らずに経路制御が可能な場合に限定される。例えば、ネットワーク中継装置１２１の入力ポートと出力ポートの組み合わせが一意に定まる場合などである。
【００７６】
なお、送信時刻情報の位置は、図６（ａ）（ｂ）の間をとり、パケット上の任意の位置でもよい。その場合、所定のプロトコルのヘッダ領域またはデータ領域に送信時刻情報を挿入することが例示される。
【００７７】
図６（ｃ）では、同期パケット上に付されている送信タイムスタンプから、送信時刻情報を減算する。すなわち、時刻情報２に通信装置１２３ａが付した時刻情報が記憶されており、通信制御装置１２０ａは当該時刻情報２から送信時刻情報を減算する。これによって、通信制御装置１２０ｂでは、受信時刻を加算して通信遅延を求めることができる。または、同期パケット中に通信遅延時間が格納される領域である時刻情報１を設けて送信時刻情報を減算することで、同様の効果を得ることができる。
【００７８】
図７は、ＩＥＥＥ  １５８８のヘッダフォーマットを簡略化した図である。
【００７９】
図７に示すようにＩＥＥＥ  １５８８を例にすれば、ヘッダ１６０上の通信遅延時間が格納される領域であるｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ１６１と、同期パケットの送信元によってタイムスタンプが格納される領域であるｏｒｉｇｉｎＴｉｍｅｓｔａｍｐ１６２のいずれか１つ、または両方を用いることが例示される。ここで、ｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ１６１は、スレーブ側である通信装置１２３ｂによって遅延時間の補正に用いられるものであり、通信装置１２３ｂは、ｏｒｉｇｉｎＴｉｍｅｓｔａｍｐ１６２に記憶された時刻からｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ１６１に記憶された時刻を加算して、同期演算に用いる。
【００８０】
図４に戻り、Ｓ００３において、同期パケットに送信時刻情報を反映後、同期パケットを送信する（Ｓ００４）。
【００８１】
図５は、通信制御装置１２０ｂの手順を示す図である。はじめに、Ｓｙｎｃパケットの受信を待機する（Ｓ０１０）。次に、計時部１３５から受信時刻を取得する（Ｓ０１１）。次に、同期パケットから、通信制御装置１２０ａが反映した送信時刻情報を取得する（Ｓ０１２）。なお、通信制御装置１２０ａの送信時刻情報の反映方法が図６（ｃ）の場合、送信時刻情報を抽出する必要はなく、受信時刻を加算すればよい。
【００８２】
通信制御装置１２０ｂが、送信時刻情報を取得するため、事前に通信制御装置１２０ａ、１２０ｂの両方で送信時刻情報の付加位置を共有している必要がある。これは事前に通信制御装置１２０ａ、ｂに送信時刻情報の付加位置を設定してもよいし、予め所定の方法に固定してもよい。あるいは、任意のプロトコルによって送信時刻情報の位置を通知してもよい。送信時刻情報の位置の通知は、少なくとも送信時刻情報の位置を示す情報を格納する。その他、送信時刻情報の位置の通知であることを示す情報、送信時刻情報の表現形式（時間の単位、サイズなど）、送信時刻情報を付加する通信制御装置１２０ａに関する情報（ネットワークアドレス、時間精度などの計時部１３５の情報）を格納してもよい。これらの情報は、通信制御装置１２０、通信装置１２３が、本発明を共同して実現する通信制御装置を識別する処理や、目標同期精度の実現可能性を判定するために用いることができる。この通知は、通信制御装置１２０ａが所定のタイミング、あるいは定期的に送信してもよいし、通信制御装置１２０ｂが通信制御装置１２０ａに送信要求を通知してもよい。
【００８３】
あるいは同期パケット上の情報から送信時刻情報の位置を判断してもよい。例えば、図８（ａ）に示す後端付加の場合、プロトコルで規定された同期パケットの所定サイズ以降に送信時刻情報があると判断できる。さらに、ＴＬＶ形式を用いる場合は、予め定めた送信時刻情報のｔａｇの値によって、送信時刻情報の位置を判断できる。あるいは、プロトコル上の所定の領域を用いて送信時刻情報の位置を示してもよい。
【００８４】
図６（ｃ）に示す方法の場合は、送信時刻情報の位置を識別する必要はない。ただし、図６（ｃ）に示す方法を適用したかどうかを示してもよい。これは、事前に通信制御装置１２０ａ、１２０ｂに設定してもよいし、予め通信制御装置１２０ａの設定を図６（ｃ）の方法に固定してもよい。あるいは、任意のプロトコルによって、図６（ｃ）の方法を利用することを通知してもよい。あるいは、同期パケット上の情報に図６（ｃ）の方法を利用することを示してもよい。例えば、ＴＬＶ形式を用いてもよいし、プロトコルヘッダ上の未使用領域、予約領域を用いることが例示される。ネットワーク中継装置１２１が処理しない領域であれば、通信制御装置１２０ｂが送信する際に、該当領域を修正することで、未使用領域、予約領域を使用したとしても外部に影響することを防止できる。
【００８５】
Ｓ０１２で送信時刻情報を抽出すると、Ｓ０１１で取得した受信時刻と合わせて、通信遅延を算出する（Ｓ０１３）。
【００８６】
通信遅延ｄの算出は、送信時刻情報をＴｓ、受信時刻情報をＴｒとして、次式で計算する。
【００８７】
ｄ＝Ｔｒ−Ｔｓ  （式７）
なお、図６（ｃ）の方式では、Ｓ０１３の通信遅延の算出は不要である。
【００８８】
Ｓ０１３で通信遅延を算出すると、同期パケットに通信遅延を反映する（Ｓ０１４）。図６（ａ）、（ｂ）の方法を用いる場合には、通信制御装置１２０ｂは、同期パケットに付加された送信時刻情報を除去するとともに、算出した通信遅延ｄを当初のタイムスタンプに加算する、あるいは、同期パケット内の通信遅延ｄを記憶する。例えば、  ＩＥＥＥ  １５８８の場合は、ｏｒｉｇｉｎＴｉｍｅｓｔａｍｐ１６２に通信遅延ｄを加算する、あるいは、ｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ１６１に通信遅延ｄを加算する。
【００８９】
なお、図６（ｃ）の方法では、受信時刻Ｔｒを加算する。通信制御装置１２０ｂで受信時刻Ｔｒを加算し、通信制御装置１２０ａで送信時刻Ｔｓを減算することで、結果として通信遅延が同期パケットに反映される。この時、通信遅延を同期パケットに反映するためにｏｒｉｇｉｎＴｉｍｅｓｔａｍｐ１６２を用いることが例示されるが、通信遅延を反映した結果、通信制御装置１２０ａで受信する前のｏｒｉｇｉｎＴｉｍｅｓｔａｍｐ１６２と変化しないことが望ましい。
【００９０】
図６（ｃ）を用いた場合の通信遅延の算出方法について図８に示す。
【００９１】
図８は、図６（ｃ）に示す方法を用いた場合に通信遅延の算出方法の例を示す図である。尚、図では、ｏｒｉｇｉｎＴｉｍｅｓｔａｍｐ１６２をＴＳ、ｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ１６１をＣＦと記載している。
【００９２】
図８（ａ）は、ｏｒｉｇｉｎＴｉｍｅｓｔａｍｐ１６２のみを用いて送信時刻情報を更新する方法である。図８（ａ）の方法は、ｏｒｉｇｉｎＴｉｍｅｓｔａｍｐ１６２が通信制御装置１２０ａ前（パケット１４０ａの３秒２００マイクロ秒）と、通信制御装置１２０ｂ後（パケット１４０ｃの３秒４００マイクロ秒）で変化する。すなわち、通信制御装置１２０ａでは、ｏｒｉｇｉｎＴｉｍｅｓｔａｍｐ１６２の時刻から送信時刻情報を減算し、通信制御装置１２０ｂでは、さらにｏｒｉｇｉｎＴｉｍｅｓｔａｍｐ１６２の時刻から受信時刻を加算することで、通信制御装置１２０ａ、通信制御装置１２０ｂ間の通信遅延を排除することができる。ただし、通信装置１２３ｂでの同期計算は、ｏｒｉｇｉｎＴｉｍｅｓｔａｍｐ１６２とｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ１６１１を用いるため、同期は可能である。
【００９３】
図８（ｂ）は、ｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ１６１のみを用いる方法である。通信制御装置１２０ａ前と通信制御装置１２０ｂ後でｏｒｉｇｉｎＴｉｍｅｓｔａｍｐ１６２が変化しない。すなわち、通信制御装置１２０ａでは、ｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ１６１の時刻から送信時刻情報を減算し、通信制御装置１２０ｂでは、さらにｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ１６１の時刻から受信時刻を加算することで、通信装置１２３ｂでの同期計算の際に、通信制御装置１２０ａ、通信制御装置１２０ｂ間の通信遅延を排除することができる。但し、通信制御装置１２０ａ、１２０ｂの計時部１３５の時刻形式が、ｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ１６１と一致している必要がある。
【００９４】
例えば、ｏｒｉｇｉｎＴｉｍｅｓｔａｍｐ１６２のビット幅はｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ１６１よりも広いため、計時部１３５でｏｒｉｇｉｎＴｉｍｅｓｔａｍｐ１６２の形式を用いる場合は、図９（ｂ）の適用は困難である。
【００９５】
図８（ｃ）は、ｏｒｉｇｉｎＴｉｍｅｓｔａｍｐ１６２とｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ１６１の両方を用いる場合である。時刻情報を秒単位と秒未満の単位に区別し、それぞれ、ｏｒｉｇｉｎＴｉｍｅｓｔａｍｐ１６２、ｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ１６１を用いて計算する方法である。すなわち、通信制御装置１２０ａでは、ｏｒｉｇｉｎＴｉｍｅｓｔａｍｐ１６２から送信時刻情報の秒単位を減算し、ｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ１６１の時刻から送信時刻情報の秒未満の単位を減算する。そして、通信制御装置１２０ｂでは、ｏｒｉｇｉｎＴｉｍｅｓｔａｍｐ１６２から受信時刻情報の秒単位を加算し、ｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ１６１の時刻から受信時刻情報の秒未満の単位を加算する。これによって、通信装置１２３ｂでの同期計算の際に、通信制御装置１２０ａ、通信制御装置１２０ｂ間の通信遅延を排除することができる。
【００９６】
この方法の場合、通信制御装置１２０ａ、１２０ｂ間で時刻が秒単位で桁上がりする場合に、ｏｒｉｇｉｎＴｉｍｅｓｔａｍｐ１６２が変化する可能性がある（図９（ａ））。このような場合に、送信時刻情報をパケット上にのせて、桁上がりを判断する方法が例示される。例えば、送信時刻情報の秒未満がｈ‘２０００００００（１６進数表示。５３６８７０９１２）ナノ秒以上の場合に、未使用領域、予約領域（例えば、ｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ１６１の最上位ビット）を１にすることが例示される。
【００９７】
同期パケットを受信した通信制御装置１２０ｂは、受信時刻情報と該当ビットを用いることで桁上がりの有無を判定できる（図１０）。桁上がりが発生している場合は、ｏｒｉｇｉｎＴｉｍｅｓｔａｍｐ１６２の加算値を１減じ、ｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ１６１の計算に用いる（図９（ｂ））。
【００９８】
図１０に、通信制御装置１２０ａ、通信制御装置１２０ｂによる桁上りの有無を判断する処理フロー図を示す。通信制御装置１２０ａは通信遅延が所定の範囲か判断する（Ｓ０２０）。所定の範囲であれは、同期パケット中の所定領域をマークする（Ｓ０２１）。通信制御装置１２０ｂでは、所定の領域がマークされているか判断し（Ｓ０２２）、マークされていれば、通信遅延が所定の時間範囲か判断し（Ｓ０２３）、範囲であれば桁上りなしと判断し（Ｓ０２４）、範囲でなければ桁上げありと判断する（Ｓ０２５）。
【００９９】
ただし、この方法は通信制御装置１２０ａ、１２０ｂ間の通信遅延が約５００ミリ秒未満であることを前提としている。なお、通信制御装置１２０ａ、１２０ｂ間の通信遅延の最悪値が５００ミリ秒を超える場合は、図１０のＳ０２０の所定範囲を変更すればよい。あるいは、通信遅延の最悪値を保証できるようにネットワーク中継装置１２１の経路制御を設定（優先度の変更など）することが例示される。
【０１００】
そして、図５に示すＳ０１４で、通信遅延を同期パケットに反映すると同期パケットを送信する（Ｓ０１５）。
【０１０１】
同期パケットを受信した通信装置１２３ｂは、ＩＥＥＥ  １５８８にしたがい、同期パケット上のｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ１６１、ｏｒｉｇｉｎＴｉｍｅｓｔａｍｐ１６２などを用いて、時刻誤差などを計算し、同期する。
【０１０２】
ＩＥＥＥ  １５８８に定めるｐｅｅｒ  ｄｅｌａｙ方式の場合は、通信制御装置１２０ａには、通信遅延計算部１３７、通信遅延更新部１３８の機能は必要なく、通信制御装置１２０ｂには、送信時刻付与部１３６の機能は必要ない。
【０１０３】
すなわち、ｐｅｅｒ  ｄｅｌａｙ方式では、通信経路上の通信装置、中継装置が、隣接する通信経路上の通信遅延を計測して同期パケットの所定パラメータに反映する。通信装置１２３は、同期パケット上の通信遅延情報を用いて、時刻誤差を計算できるため、一方向の同期パケット（Ｓｙｎｃ）のみで同期可能である。
【０１０４】
一方で、ｄｅｌａｙ  ｒｅｑｕｅｓｔ−ｒｅｓｐｏｎｓｅ方式の場合は、双方向の同期パケットを用いて、時刻誤差を計算する。そのため、本発明を適用する場合は、通信制御装置１２０ａ、通信制御装置１２０ｂともに、送信時刻付与部１３６、通信遅延計算部１３７、通信遅延更新部１３８の機能が必要である。本方式では、Ｓｙｎｃパケットのみならず、Ｄｅｌａｙ＿Ｒｅｑパケットに対しても同様の手順を実行する。これにより、ｄｅｌａｙ  ｒｅｑｕｅｓｔ−ｒｅｓｐｏｎｓｅ方式においても時刻同期できる。
【０１０５】
以上を基本構成として、以下、本発明の応用について述べる。
【０１０６】
前述の方法では、同期した時刻に基づいて通信遅延を計算し、同期パケットに反映していた。これとは別に、通信制御装置１２０ａ、１２０ｂが同期していない状況で、図４、図５の手順を実行し、通信制御装置１２０ａ、１２０ｂの時刻誤差を後から算出して、通信装置１２３ｂに通知してもよい。この場合、通信装置１２３ｂは同期パケットとは別に時刻誤差を通知するメッセージが送信されることを判断するため、事前に設定するか、あるいは同期パケット上に、その旨を表す情報を格納してもよい。また、同期パケットと時刻誤差を通知するメッセージの数量関係は１対１でなくともよい。これは、通信制御装置１２０ａ、１２０ｂの時刻誤差は時間経過による変動はあるものの、目的の同期精度に応じて、所定期間は変動しないと見なせるためである。同期誤差の通知は、通信制御装置１２０ａ、ｂのどちらか、あるいは両方でもよい。時刻誤差を通知するメッセージの送信先の情報は、同期パケットの宛先アドレスをもとに取得することができる。
【０１０７】
また同期誤差の通知だけではなく、通信制御装置１２０ａの送信時刻情報、通信制御装置１２０ｂの受信時刻情報、あるいは通信制御装置１２０ｂで計算した通信遅延を、後から通信制御装置１２０ａ、１２０ｂそれぞれが通信装置１２３ｂに通知してもよい。この場合、同期パケット自体に通信遅延は反映されない。通信遅延は、通信装置１２３ｂで計算することが例示される。
【０１０８】
また、図１の通信制御装置１２０ａ、１２０ｂ間のネットワーク中継装置１２１は１つに限らず、複数あるいはネットワーク１２２を経由してもよい。また、通信装置１２３ａ、１２３ｂ間の経路上に複数の通信制御装置１２０ａ、ネットワーク中継装置１２１（あるいはネットワーク１２２）、通信制御装置１２０ｂがあってもよい。また、通信経路がＲＳＴＰ（Ｒａｐｉｄ  Ｓｐａｎｎｉｎｇ  Ｔｒｅｅ  Ｐｒｏｔｏｃｏｌ）などによって変更された場合でも対応可能とするため、複数経路上に通信制御装置１２０を配置する構成でもよい。通信制御装置１２０ａ、ネットワーク中継装置１２１、通信制御装置１２０ｂで構成される単位が複数あるほど、通信装置１２３ａ、１２３ｂは高精度に同期できる。
【０１０９】
あるいは、図１１に示すようにリング状のネットワークに適用してもよい。リングネットワークの規格例として、ＩＥＣ６２４３９−３（ＨＳＲ：Ｈｉｇｈ  ａｖａｉｌａｂｉｌｉｔｙ  Ｓｅａｍｌｅｓｓ  Ｒｅｄｕｎｄａｎｃｙ）や、ＩＥＥＥ  ８０２．１７のＲＰＲ（Ｒｅｓｉｌｉｅｎｔ  Ｐａｃｋｅｔ  Ｒｉｎｇ）が例示される。
【０１１０】
また、通信制御装置１２０の通信ポート数は最低２個必要であるが、それより多くても構わない。通信ポート数が２よりも多ければ、複数のネットワーク中継装置１２１の通信ポート、あるいは複数のネットワーク中継装置１２１、あるいは複数の通信装置１２３、ネットワーク１２２と接続することができる。通信ポートが２個であれば、１つはネットワーク中継装置１２１、あるいはネットワーク１２２、もう１つの通信ポートは通信装置１２３、あるいはネットワーク１２２と接続することができる（図１の通信制御装置１２０ａ、１２０ｂ）。
【０１１１】
また、本実施例では、ＩＥＥＥ  １５８８を例に説明したが、他の時刻同期プロトコルでも利用可能である。ＮＴＰ（Ｎｅｔｗｏｒｋ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ）やＳＮＴＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ）では、同期パケット上の時刻情報上に通信遅延、送信時刻情報を反映してもよいし、計測した送信時刻情報、受信時刻情報、通信遅延を後から通信装置１２３に送信してもよい。
【０１１２】
（効果）
以上の発明の適用により、ネットワーク中継装置１２１を利用する広域ネットワークにおいても、通信制御装置１２０の構成により、ネットワーク中継装置１２１の変動遅延を計算し、通信装置１２３は、高精度に同期することができる。さらに、通信装置１２３間に複数のネットワーク中継装置１２１、ネットワーク１２２を接続することができ、通信制御装置１２０の数を目的の同期精度にあわせて最適化することができる。したがって、ネットワーク中継装置１２１を全てＩＥＥＥ  １５８８専用中継装置で構成する場合に比べて、低コストにシステムを構築することができる。
【０１１３】
つまり、通信遅延にゆらぎが発生するような中継装置がネットワーク上に複数存在する場合であっても、これら中継措置を通信制御装置１２０で挟むようにネットワークを構築することで、各中継装置に専用の機能を持たせる必要なく、高精度に同期することができる。
【０１１４】
また、通信制御装置１２０の外側の通信装置１２３からみれば、同期パケットの構成や、処理手順を変更することなしに、同期処理を実行することができるため、ＩＥＥＥ  １５８８やＮＴＰ等、これらの標準規格に準拠した端末装置でのシステム構成が可能である。
【実施例２】
【０１１５】
実施例２は、通信装置内部での通信遅延を算出する例を示す。実施例に使用する符号は、特に断りのない限り、実施例１で説明した機能や要素等と同一であることを意味する。
【０１１６】
本発明を適用した通信制御装置１５０のハードウェア構成は図２と同様である。
【０１１７】
通信制御装置１５０の機能構成を図１４に示す。送信時刻付与部１３６が同期パケットに付与する送信時刻はすなわち、図１４の受信部１３３における受信時刻と同様の意味である。経路制御部１５１は、接続する経路間でパケットの転送経路を制御する。スイッチングＩＣなどの機能と等価である。
【０１１８】
送信時刻付与部１３６は図４の動作、通信遅延計算部１３７、通信遅延更新部１３８は図５の動作をすることで、通信制御装置１５０内部の転送遅延を同期パケットに反映することができる。
【０１１９】
なお、図１４では通信ポートを２つのみ表しているが、通信ポートは１つでも２つより多くても構わない。その場合、受信部１３３と送信時刻付与部１３６を接続し、送信部１３２と通信遅延更新部１３８を接続する。
【０１２０】
例えば、図１５に示すように通信ポートが３つ備える場合には、図１６に示すような構成において、ネットワーク中継装置１２１の通信遅延を求めることができる。つまり、図１５に示す３つのポートそれぞれを、通信装置１２３ａ、通信装置１２３ｂ、ネットワーク中継装置１２１へ接続することで、ネットワーク中継装置１２１の通信遅延による影響を排除することができる。
【０１２１】
（効果）
以上の構成を用いれば、通信装置内部でのパケット滞留時間を算出することができる。したがって、通信制御装置１５０をＩＥＥＥ  １５８８対応のＴＣスイッチとして利用することや、通信制御装置１５０自身が他の通信装置１２３と同期する場合に、自装置内に、同期パケット以外の通信フローが存在して同期パケットの受信処理時間に変動がある場合であっても同期することができる。
【０１２２】
また、図１６に示すようにネットワークを構築すれば、時刻同期機能に対応していない汎用のネットワーク中継装置であっても、通信遅延を計測して通信装置１２３を高精度に同期することができる。
【実施例３】
【０１２３】
実施例３は、通信制御装置１２０ａ、１２０ｂを階層的に配置する構成である。実施例に使用する符号は、特に断りのない限り、実施例１、実施例２で説明した機能や要素等と同一であることを意味する。
【０１２４】
システム構成例を図１７に示す。
【０１２５】
本実施例では、通信制御装置１２０ａ、１２０ｄ、通信制御装置１２０ｂと１２０ｃが同期しているものとする。各通信制御装置が図４、図５の動作をすると、通信制御装置１２０ｂと１２０ｃ間の通信遅延が二重に引かれるため、階層構造であることを示す必要がある。そのような方法として、事前に通信制御装置１２０の配置情報を各通信制御装置１２０に設定してもよいし、所定のメッセージを用いて、通信制御装置１２０の位置情報を通信制御装置に通知してもよい。あるいは同期パケット上に階層数を示す情報を格納してもよい。この場合、通信制御装置１２０ａから出力される際に＋１、通信制御装置１２０ｂから出力される際に＋１、通信制御装置１２０ｃから出力される際に−１、通信制御装置１２０ｄから出力される際に−１することが例示される。
【０１２６】
あるいは図６（ａ）（ｂ）の方法を用いた場合に、付加された送信時刻情報の数をもって階層数を判定してもよい。この場合、通信制御装置１２０ｂから出力されるパケットは通信制御装置１２０ａと通信制御装置１２０ｂによって付加された送信時刻情報を２つ格納する。したがって、同期パケットを受信した通信制御装置１２０ｃは送信時刻情報が２つあることをもって自身が階層化された位置にあることを判定できる。その判定結果をもって通信遅延を計算しても同期パケットに反映しない（二重に通信遅延を減算することを防止するため）ことが例示される。この場合、通信制御装置１２０ｂが付加した送信時刻情報を削除してもよいし、あるいは削除する代わりに通信制御装置１２０ｂと通信制御装置１２０ｃ間の通信遅延に置換してもよい。この場合、付加された情報が送信時刻情報か通信遅延かを示す種類を同期パケット上に格納することが例示される。
【０１２７】
通信制御装置１２０ｄは、付加された送信時刻情報、通信遅延をもとに通信制御装置１２０ａと１２０ｄ間の通信遅延を算出し、同期パケットに反映する。この場合、通信制御装置１２０ｃによって付加された通信遅延は無視してもよい。
【０１２８】
あるいは通信制御装置１２０ａと１２０ｂ、通信制御装置１２０ｂと１２０ｃ、通信制御装置１２０ｃと１２０ｄ間で同期（つまり、全ての通信制御装置１２０）し、通信制御装置１２０ｂ、１２０ｃが通信遅延を同期パケットに付加し、通信制御装置１２０ｄがそれらの通信遅延と、通信制御装置１２０ｃと通信制御装置１２０ｄ間の通信遅延を用いて、同期パケットの時刻情報に反映してもよい。
【０１２９】
以上の構成を用いることで、通信制御装置１２０が階層的に構成された場合であっても、ネットワーク中継装置１２１の通信遅延を算出し、通信装置１２３間で同期することができ、ネットワークシステムを柔軟に構成することができる。
【０１３０】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【符号の説明】
【０１３１】
１０１  …  ＣＰＵ、１０２…  ＬＡＮ、１０３…  通信制御部、１０８  …  メモリ、１０９  …  不揮発性記憶媒体、１１０  …  バス、１２０、１５０…  通信制御装置、１２１  …  ネットワーク中継装置、１２２  …  ネットワーク、１２３  …  通信装置、１３０  …  時刻同期処理部、１３１…  通信部、１３２  …  送信部、１３３  …  受信部、１３４  …  同期パケット判定部、１３５  …  計時部、１３６  …  送信時刻付与部、１３７  …  通信遅延計算部、１３８  …  通信遅延更新部、１４０  …  パケット、１５１  …  経路制御部、１６０  …  ＩＥＥＥ  １５８８ヘッダ、１６１  …  ｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ、１６２  …  ｏｒｉｇｉｎＴｉｍｅｓｔａｍｐ
【図１】
2016012820.tif 000003
【図２】
2016012820.tif 000004
【図３】
2016012820.tif 000005
【図４】
2016012820.tif 000006
【図５】
2016012820.tif 000007
【図６】
2016012820.tif 000008
【図７】
2016012820.tif 000009
【図８】
2016012820.tif 000010
【図９】
2016012820.tif 000011
【図１０】
2016012820.tif 000012
【図１１】
2016012820.tif 000013
【図１２】
2016012820.tif 000014
【図１３】
2016012820.tif 000015
【図１４】
2016012820.tif 000016
【図１５】
2016012820.tif 000017
【図１６】
2016012820.tif 000018
【図１７】
2016012820.tif 000019
【図１８】
2016012820.tif 000020