(57)【特許請求の範囲】
【請求項１】
通信制御装置であって、
第一の通信制御装置は
第一の時間計測対象同期パケットの受信時刻と識別情報と第一の補正時刻情報と、及び前記識別情報で識別される時間格納同期パケットの第一の補正時刻情報と、を第二の通信制御装置に転送し、
前記第二の通信制御装置は前記識別情報で識別される第二の前記時間計測対象同期パケットの第二の補正時刻情報及び第二の前記時間格納同期パケットの第二の補正時刻情報を取得し、前記第一の補正時刻情報との一致判定によって、
前記第二のパケットを出力する時刻に基づいて、
前記第二の時間計測対象同期パケットの時刻情報及び補正時刻情報及び前記第二の時間格納同期パケットの時刻情報及び補正時刻情報を更新し、
更にネットワークを介して他の通信制御装置と時刻同期する時刻同期制御部と、
時間を計測する計時部とを有し、
前記時刻同期制御部は、所定の周期で前記時刻同期を行い、前記周期は、物理的な特性で決定される前記計時部の同期精度、及びシステムの要求する同期精度に基づいて決定すること
を特徴とする通信制御装置。
【請求項２】
請求項１の通信制御装置において、
前記第二の通信制御装置は前記第一の通信制御装置と同期がなされるまで前記第二の時間計測対象同期パケット及び前記第二の時間格納同期パケットの送信を待機し、前記待機時間に基づいて、前記第二の時間計測対象同期パケットの時刻情報及び補正時刻情報及び前記第二の時間格納同期パケットの時刻情報及び補正時刻情報を更新することを特徴とする通信制御装置。
【請求項３】
請求項１の通信制御装置において、
前記識別情報は、通信メッセージ種別、ドメイン番号、送信元識別子、送信先識別子、順序番号、通信ポート番号、時刻情報、補正時刻情報の内、何れか一つを含むことを特徴とする通信制御装置。
【請求項４】
請求項１の通信制御装置において、
パケットを受信した通信部に応じて、前記中継装置に転送するかどうかを判定することを特徴とする通信制御装置。
【請求項５】
請求項１の通信制御装置において、
受信したパケットの識別情報に対応する時刻情報を保持しているかどうかに基づいて、前記中継装置に転送するかどうかを判定することを特徴とする通信制御装置。
【請求項６】
請求項１の通信制御装置において、
前記時間計測対象同期パケットを優先的に処理することを特徴とする通信制御装置。
【請求項７】
請求項１の通信制御装置において、
前記時間計測対象同期パケット及び時間格納同期パケットの送信元情報と送信先情報で構成される接続情報を保持し、前記接続情報に基づいて受信したパケットの転送先を決定することを特徴とする通信制御装置。
【請求項８】
請求項１の通信制御装置において、
前記受信時刻と前記第二の時間計測対象同期パケットを出力する時刻に基づいた時刻情報を任意の通信装置へ通信することを特徴とする通信制御装置。
【請求項９】
請求項１の通信制御装置において、
前記第一の時間計測対象同期パケットの受信時刻と識別情報を任意の通信装置へ通信することを特徴とする通信制御装置。
【請求項１０】
請求項１の通信制御装置において、
前記時刻同期制御部の同期した時刻に基づいて、前記第一の時間計測対象同期パケットの受信時刻と、前記第二の時間計測対象同期パケットを出力する時刻を計時することを特徴とする通信制御装置。
【請求項１１】
請求項１の通信制御装置において、
前記時刻同期制御部の通信する同期パケットを優先処理して通信処理することを特徴とする通信制御装置。
【請求項１２】
請求項１の通信制御装置において、
第一の時間計測対象同期パケットの受信時刻の送信を前記第一の通信制御装置に要求することを特徴とする通信制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は通信制御装置に関する。
【背景技術】
【０００２】
分散されて構成される制御システムにおいては、実現するアプリケーションに応じて、接続端末間の時刻を同期することが求められる場合がある。ネットワークで接続された分散制御システムの場合は、ネットワークを介した時刻同期パケットの送受信によって、時刻を同期することができる。
【０００３】
例えば、音声や映像等の信号を遠隔地へ伝送する場合、アナログ信号をデジタル化することが一般的である。その場合、共通の周波数を用いて、信号の符号処理と遠隔地での復号処理を実行する方式がある。このような方式では、送信側で使用する周波数と受信側で使用する周波数が同じで安定している必要がある。そのために、周波数同期、時刻同期が必要である。
【０００４】
また、無線通信の基地局においては、ルータ等の基地局間、基地局と携帯機器間で周波数が安定していれば、スムーズにハンドオーバーを実行することができる。そのために、基地局間の同期が求められる。
【０００５】
この他にも、時刻同期の応用としては、計測、測定の分野や、産業用製造装置、電力系統の保護制御等の分野が挙げられる。
【０００６】
ネットワークを用いた時刻同期方式として、ＮＴＰ（Ｎｅｔｗｏｒｋ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ）、ＳＮＴＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ）、ＩＥＥＥ１５８８等が挙げられる。
【０００７】
図１４にＩＥＥＥ １５８８の時刻同期プロトコルの実行手順を説明する。図１５にＩＥＥＥ １５８８におけるメッセージのやりとりを示す。
【０００８】
ＩＥＥＥ １５８８は、マスタ−スレーブ構成をとる。
【０００９】
はじめにマスタは、スレーブにSyncメッセージを送信する（Ｓ０６０）。
【００１０】
このとき、マスタはSyncメッセージの送信時刻t1を記録する（Ｓ０６１）。
【００１１】
スレーブは、Syncメッセージを受信すると、その受信時刻t2を記録する（Ｓ０６２）。
【００１２】
マスタは次のいずれかの手段でt1をスレーブに通知する（Ｓ０６３）。
【００１３】
ひとつは、Syncメッセージにt1の情報をのせる方法である。
残る手段は、Syncメッセージに続くFollow_Upメッセージにt1の情報をのせる方法である。
【００１４】
続いて、スレーブは、マスタにDelay_Reqメッセージを送信する（Ｓ０６４）。
【００１５】
このとき、スレーブはDelay_Reqメッセージの送信時刻t3を記録する（Ｓ０６５）。
【００１６】
マスタは、Delay_Reqメッセージを受信すると、その受信時刻t4を記録する（Ｓ０６６）。
【００１７】
そして、マスタはDelay_Respメッセージにt4の情報をのせ、t4をスレーブに通知する（Ｓ０６７）。
【００１８】
Delay_Respメッセージを受信したスレーブは、t1, t2, t3, t4から、マスタ、スレーブ間の通信遅延、時刻の差分を計算する（Ｓ０６８）。
【００１９】
通信遅延の計算には、マスタ、スレーブ間の通信遅延が往復路で等しいという前提がある。したがって、片道の通信遅延tdの計算は、次式で表わされる。
【００２０】
td=((t4-t3)+(t2-t1))/2  （式９）
また、マスタとスレーブの時刻の差分ｔｄｉｆｆは次式で表わされる。
【００２１】
ｔdiff = { ( t4 - t3 ) - ( t2 -t 1 )}/2 （式１０）
このｔｄｉｆｆをもって、マスタとスレーブは時刻を同期する。
【先行技術文献】
【特許文献】
【００２２】
【特許文献１】特開２０１０−６２７２９
【非特許文献】
【００２３】
【非特許文献１】IEEE 1588-2008 「IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems」
【発明の概要】
【発明が解決しようとする課題】
【００２４】
従来技術ではネットワークスイッチ等の中継装置を用いてネットワークを構成する場合に、同期精度が低下するという課題がある。ＩＥＥＥ１５８８では、同期パケットの往復の遅延が等しいか、あるいは往復の遅延に時間差がある場合でも、その時間差が既知であるという前提に基づいている。
【００２５】
しかしながら、複数の接続端末間でネットワークを共有する場合、ネットワークスイッチやルータ等の中継装置内で時刻同期パケットがキューイングされ、往復の遅延差にゆらぎが生じるという課題がある。
【００２６】
特に、インターネット等の広域網や公衆網を利用する場合、この課題への対応は、より困難となる。この課題への有効な対策の一つが非特許文献１に示すｅｎｄ−ｔｏ−ｅｎｄ  ＴＣ（Ｔｒａｎｓｐａｒｅｎｔ  Ｃｌｏｃｋ）、ｐｅｅｒ−ｔｏ−ｐｅｅｒ  ＴＣ（Ｔｒａｎｓｐａｒｅｎｔ  Ｃｌｏｃｋ）である。これらの仕組みを用いて、ネットワーク中継装置内でのパケットの転送遅延を計測することができる。この計測した転送遅延をパケット内のデータに反映することで、端末の時刻同期対応装置は、往復の通信遅延の差を算出することができる。
【００２７】
しかしながら、ｅｎｄ−ｔｏ−ｅｎｄ  ＴＣ、ｐｅｅｒ−ｔｏ−ｐｅｅｒ  ＴＣは高精度のタイムスタンプを取得して、同期パケットの情報を更新する専用の機能が必要であり、他の中継機能と組み合わせての設計は困難である。現時点で普及しているとは言い難い。
【００２８】
特許文献１は、中継装置において、入力ポートで受信された同期パケットにカウンタ値を付与し、出力ポートから送出時に、カウンタと、パケットに付与されたカウンタ値の差分を計算して、パケットに付与することで中継装置内の遅延を取得することができる。
【００２９】
しかしながら、この方法は、経由する中継装置の段数が多段の場合に遅延情報をパケットに追加していく必要がある（同じ項目を利用する場合は、前段の中継装置の遅延情報が残っており、計算があわない。正しく計算することができない。）。遅延情報をパケットに追加するために、パケットの最大長とデータ長、遅延情報のデータ長に制約される最大経由段数が制限されるという課題がある。さらに、追加される遅延情報を解釈する仕組みは、ＩＥＥＥ １５８８やＮＴＰでは規定されておらず、これらの標準規格に準拠した端末装置でのシステム構成が困難である。
【課題を解決するための手段】
【００３０】
上記課題を解決するために、本発明はパケットを中継する中継装置に接続された通信制御装置であって、パケットを受信した通信制御装置は受信時刻を保持し、前記受信時刻と前記パケットを出力する時刻に基づいてパケットを更新する機能を有することを特徴とするものである。
【００３１】
更に、本発明は通信制御装置において、第一のパケットの受信時刻と識別情報を保持し、第二のパケットの識別情報から抽出した前記受信時刻と前記第二のパケットを出力する時刻に基づいてパケットを更新する機能を有することを特徴とするものである。
【００３２】
更に、本発明は通信制御装置において、前記第一のパケットを前記中継装置に転送し、前記中継装置から受信した第二のパケットを転送することを特長とするものである。
【００３３】
更に、本発明は通信制御装置において、パケットを受信した通信部に応じて、前記中継装置に転送するかどうかを判定することを特徴とするものである。
【００３４】
更に、本発明は通信制御装置において、受信したパケットの識別情報に対応する時刻情報を保持しているかどうかに基づいて、前記中継装置に転送するかどうかを判定することを特徴とするものである。
【００３５】
更に、本発明は通信制御装置において、前記第二のパケットを優先的に処理することを特徴とするものである。
【００３６】
更に、本発明は通信制御装置において、前記第一のパケットと前記第二のパケットの送信元情報と送信先情報を保持し、前記接続情報に基づいて受信したパケットの転送先を決定することを特長とするものである。
【００３７】
更に、本発明は通信制御装置において、前記接続情報に基づいて、前記パケットを複数の通信経路へ転送することを特徴とするものである。
【００３８】
更に、本発明は通信制御装置において、前記第一のパケットの時刻情報を保持することを特徴とするものである。
【００３９】
更に、本発明は通信制御装置において、前記受信時刻と前記パケットを出力する時刻に基づいた時刻情報を通信することを特徴とするものである。
【００４０】
更に、本発明は通信制御装置において、ネットワークを介して時刻同期する時刻同期制御部を有することを特徴とするものである。
【００４１】
更に、本発明は通信制御装置において、前記第一のパケットの受信時刻と識別情報を通信することを特徴とするものである。
【００４２】
更に、本発明は通信制御装置において、前記時刻同期制御部の同期した時刻に基づいて、前記第一のパケットの受信時刻と、前記第二のパケットを出力する時刻を計時することを特徴とするものである。
【００４３】
更に、本発明は通信制御装置において、前記時刻同期制御部の通信する同期パケットを優先処理して通信処理することを特徴とするものである。
【００４４】
更に、本発明は通信制御装置において、前記時刻同期制御部の同期処理が完了するまで、前記第一のパケット、第二のパケットを保持することを特徴とするものである。
【００４５】
更に、本発明は通信制御装置において、第一のパケットの受信時刻と識別情報の送信要求を通信することを特徴とするものである。
【発明の効果】
【００４６】
本発明の通信制御装置によれば、ネットワーク中継装置を用いたネットワーク構成で、情報処理装置間の時刻を同期することが実現できる。
【図面の簡単な説明】
【００４７】
【図１】本発明の一実施形態を用いたシステム構成図である。
【図２】本発明の一実施形態でのハードウェア構成図である。
【図３】ネットワーク中継装置の利用例を示す図である。
【図４】本発明の一実施形態における通信制御装置の利用例を示す図である。
【図５】本発明の一実施形態を示す機能構成図である。
【図６】ＩＥＥＥ １５８８のヘッダフォーマットを示した図である。
【図７】本発明の一実施形態における実行手順を示した図である。
【図８】本発明の一実施形態における時刻情報保持部の保持する情報の例を示す図である。
【図９】本発明の一実施形態における実行手順を示した図である。
【図１０】本発明の一実施形態を示す機能構成図である。
【図１１】本発明の一実施形態における接続情報保持部の保持する情報の例を示す図である。
【図１２】本発明の一実施形態を用いたシステム構成図である。
【図１３】本発明の一実施形態を示す機能構成図である。
【図１４】本発明の一実施形態における時刻同期手順を示した図である。
【図１５】本発明の一実施形態における時刻同期メッセージを示した図である。
【図１６】本発明の一実施形態における実行手順を示した図である。
【図１７】本発明の一実施形態を示す機能構成図である。
【図１８】本発明の一実施形態を用いたシステム構成図である。
【図１９】本発明の一実施形態を用いたシステム構成図である。
【図２０】本発明の一実施形態を用いたシステム構成図である。
【図２１】本発明の一実施形態を用いたシステム構成図である。
【図２２】本発明の一実施形態を示す機能構成図である。
【図２３】本発明の一実施形態を示す機能構成図である。
【図２４】本発明の一実施形態を用いたシステム構成図である。
【図２５】本発明の一実施形態を示す機能構成図である。
【図２６】本発明の一実施形態を用いたシステム構成図である。
【図２７】本発明の一実施形態を用いたシステム構成図である。
【図２８】本発明の一実施形態を用いたシステム構成図である。
【発明を実施するための形態】
【００４８】
以下、本発明の実施例を図面を用いて説明する。
【実施例１】
【００４９】
図1に本発明を適用した通信制御装置１２０を用いたシステム構成を示す。通信制御装置１２０は、ネットワーク１２２を介して、他のネットワーク中継装置１２１、またはマスタ装置１２３、スレーブ装置１２４、通信端末１２５と接続し、通信する。
【００５０】
ネットワーク中継装置１２１として、ネットワークスイッチ、ルータ、ゲートウェイ、ＯｐｅｎＦｌｏｗにおけるＯｐｅｎＦｌｏｗスイッチ等が挙げられる。
【００５１】
ネットワーク１２２として、ＩＥＥＥ８０２．３、各種産業用ネットワーク、ＩＥＣ  ６１７８４、ＩＥＣ  ６１１５８等が例示される。
【００５２】
図１のシステム構成において、時刻同期プロトコルとしてＩＥＥＥ １５８８を例にとり、本発明の効果を説明する。
【００５３】
マスタ装置１２３、スレーブ装置１２４は、ＩＥＥＥ １５８８における端末装置である。マスタ装置１２３は、スレーブ装置１２４とＩＥＥＥ １５８８の通信を実行し、スレーブ装置１２４は、マスタ装置１２３と同期を取ろうとしているものとする。通信端末１２５は、ネットワークに接続する汎用の端末である。同期処理を実行しない端末として図示している。
【００５４】
なお、図１では、すべてのネットワーク中継装置１２１に通信制御装置１２０を接続しているが、一部のネットワーク中継装置１２１にのみ通信制御装置１２０を接続してもよい。その場合、通信制御装置１２０を接続していないネットワーク中継装置１２１内の遅延を計測することができないために、ネットワーク中継装置１２１を接続した通信制御装置１２０の数に応じて同期精度が変化するが、ネットワーク中継装置１２１内の通信遅延を計測して、同期精度を向上させるという本発明の効果が失われるものではない。
【００５５】
本発明は、汎用的なネットワーク中継装置１２１に接続して、入力時と出力時に時刻を計測して差分を計算することで、通信制御装置１２０、ネットワーク中継装置１２１を通過する際の通信遅延を計測し、ＩＥＥＥ １５８８におけるＴＣ（Ｔｒａｎｓｐａｒｅｎｔ  Ｃｌｏｃｋ）と同様の効果を得るものである。
【００５６】
以下、具体的に説明する。
【００５７】
図3に通信制御装置１２０の利用例を示すため、通信制御装置１２０を利用しない場合のネットワーク中継装置１２１の利用例を示し、図4に通信制御装置１２０を利用した場合の利用例を示す。
【００５８】
通信制御装置１２０は、ネットワーク中継装置の通信ポートごとに、通信ポートが２つ必要である。これは、ネットワーク中継装置の通信ポートへ入力される通信経路を受けるポートと、ネットワーク中継装置へ接続する通信経路と接続するポートが必要なためである。図３、図４のネットワーク中継装置１２１の通信ポート数を４とすれば、通信制御装置１２０は８つの通信ポートが必要である。
【００５９】
なお、ネットワーク中継装置１２１の通信ポート数が、通信制御装置１２０の通信ポートの組みの数よりも多い場合は、本発明による効果を得られないネットワーク中継装置１２１の通信ポートが現れるが、通常の通信機能に影響は生じない。
【００６０】
図２に通信制御装置１２０のハードウェア構成を示す。
【００６１】
ＣＰＵ１０１は、不揮発性記憶媒体１０９からプログラムをメモリ１０８に転送して実行する。実行処理プログラムとしては、オペレーティングシステム（以下、ＯＳと称す）やＯＳ上で動作するアプリケーションプログラムが例示される。ＣＰＵ１０１上で動作するプログラムは、経路制御部１０３の動作設定や、状態情報を取得する。
【００６２】
ＬＡＮ１０２は、ネットワーク１２２との通信機能を実装した送受信機ＩＣである。ＬＡＮ１０２は、経路制御部１０３から伝送されたパケットをネットワーク１２２へ送信することや、ネットワーク１２２から受信したパケットを経路制御部１０３へ伝送する。あるいは、ＣＰＵ１０１上で動作するプログラムから通信要求を受け取り、ネットワーク１２２に対して通信する。ＬＡＮ１０２の実装例としては、ＩＥＥＥ８０２．３規格のＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）チップ、ＰＨＹ（物理層）チップ、ＭＡＣとＰＨＹの複合チップ、ＦＰＧＡ、ＣＰＬＤ、ＡＳＩＣ、ゲートアレイ等のＩＣが例示される。なお、ＬＡＮ１０２は、ＣＰＵ１０１や、コンピュータ内部の情報経路を制御するチップセットに含まれていてもよい。
【００６３】
経路制御部１０３は、後述する本発明の仕組みによって、ＬＡＮ１０２から受信したパケットを後述する本発明の仕組みによって、経路制御し、他のＬＡＮ１０２へ転送する。経路制御部１０３は、ＦＰＧＡ、ＣＰＬＤ、ＡＳＩＣ、ゲートアレイ等のＩＣによる実装が例示される。なお、経路制御部１０３は、ＣＰＵ１０１やコンピュータ内部の情報経路を制御するチップセットに含まれていてもよい。また、ＬＡＮ１０２の構成によって、通信に必要な機能を内蔵してもよい。例えば、ＬＡＮ１０２がＰＨＹ（物理層）相当の機能であれば、経路制御部１０３がＭＡＣ層相当の機能を含むことが例示される。
【００６４】
図４に示すように、通信制御装置１２０は、ネットワーク中継装置１２１の通信ポートごとに２つの通信ポートを有するため、この組み合わせをＬＡＮ１０２ａ群〜ｄ群で示している。各ＬＡＮ１０２ｎは２つのＬＡＮ１０２で構成される。ネットワーク中継装置１２１と対向して接続するＬＡＮ１０２をＬＡＮ１０２ｎ−１（ダッシュ番号の１）で示し、他のネットワークと接続するＬＡＮ１０２をＬＡＮ１０２ｎ−２（ダッシュ番号の２）で表す。接続するＬＡＮ１０２群の数は、１つ、または複数でもよい。
【００６５】
メモリ１０８は、ＣＰＵ１０１が動作するための一時的な記憶領域であり、不揮発性記憶媒体１０９から転送したＯＳ、アプリケーションプログラム等が格納される。
【００６６】
不揮発性記憶媒体１０９は、情報の記憶媒体で、ＯＳ、アプリケーション、デバイスドライバ等や、ＣＰＵ１０１を動作させるためのプログラムの保存、プログラムの実行結果の保存に利用される。不揮発性記憶媒体１０９として、ハードディスクドライブ（ＨＤＤ）やソリッドステートドライブ（ＳＳＤ）、フラッシュメモリが例示される。また、取り外しが容易な外部記憶媒体として、フロッピーディスク（ＦＤ）、ＣＤ、ＤＶＤ、ブルーレイ（登録商標）、ＵＳＢメモリ、コンパクトフラッシュ等の利用が例示される。
【００６７】
バス１１０は、ＣＰＵ１０１、ＬＡＮ１０２、メモリ１０８、不揮発性記憶媒体１０９をそれぞれ接続する。バス１１０としては、ＰＣＩバス、ＩＳＡバス、ＰＣＩ  Ｅｘｐｒｅｓｓバス、システムバス、メモリバス等が適用可能である。
【００６８】
図５に経路制御部１０３の機能構成を示す。
【００６９】
通信部１３１は、パケットの送受信機能である。通信部の数は、通信制御装置１２０の通信ポートの数と同一である。
【００７０】
通信部１３１は、パケットの送受信機能である。通信部１３１の数は、通信制御装置１２０の通信ポートの数と同一である。
【００７１】
受信部１３２は、パケットの受信機能である。
【００７２】
送信部１３３は、パケットの送信機能である。
【００７３】
通信部１３１、送信部１３３、受信部１３２は、ＬＡＮ１０２、あるいは通信機能の一部が経路制御部１０３に含まれる場合は、ＬＡＮ１０２と経路制御部１０３で構成される。
【００７４】
パケット識別部１３４は、パケットの属性に関して識別する。入力されたパケットがＩＥＥＥ １５８８の時刻同期パケットであるかを識別する。あるいは、パケットの送信元の通信部１３１を識別する。パケット識別部１３４は、パケットを接続先に転送する際に、上記の識別した情報をあわせて出力する。なお、図５では、パケット識別部１３４ａと複数の通信部１３１を接続しているが、通信部１３１ごとに単一のパケット識別部１３４ａをもうけ、時刻情報登録部１３６、または出力経路選択部１３８に複数の接続経路をもうけてもよい。
【００７５】
計時部１３５は、時刻情報を提供する（他の機能部との接続は図示していない）。計時
部１３５は、オシレーター、ＲＴＣ（Ｒｅａｌ  ｔｉｍｅ  ｃｌｏｃｋ）やクロック用ＩＣを用いて構成してもよいし、ＣＰＵ１０１上で動作するソフトウェアで構成してもよい。オペレーティングシステムによっては、起動時にＲＴＣから時刻を取得し、ＣＰＵ１０１内の定期的なタイマ割り込みで時間を計測するソフトウェアタイマを構成する場合がある。ソフトウェアタイマの場合は、ハードウェアを用いた計時部１３５の構成に比較して、時間分解能が粗くなるため、システムに要求される時間同期精度を満足できるかをもとにソフトウェアタイマの採用可否を判定する必要がある。
【００７６】
なお、計時部１３５の提供する時刻情報は、世界共通の標準時間でもよいし、自身における時間でもよい。これは、通信遅延を計測することが目的であり、必ずしも世界共通の時間で計時する必要がないためである。
【００７７】
時刻情報登録部１３６は、パケット識別部１３４ａから通知されたタイミングに基づいて、計時部１３５から時刻情報を取得し、時刻情報保持部１３７にパケット識別情報と取得した時刻を時刻情報保持部１３７に登録する。なお、時刻情報登録部１３６にパケットが入力されたタイミングの時刻情報を時刻情報保持部１３７に登録する場合は、通信部１３１、パケット識別部１３４ａの処理時間が含まれない。そこで、より正確に通信遅延を計測する場合は、計時部１３５より取得した時刻から通信部１３１、パケット識別部１３４ａの処理時間だけ前の時刻を時刻情報保持部１３７に登録することが例示される。
【００７８】
この時、通信部１３１、パケット識別部１３４ａの処理時間は、固定遅延でパケットを処理する通信部１３１、パケット識別部１３４ａを用いて、該固定遅延の和を用いる方法が例示される。あるいは、実装部品のデータシート等に記載の処理遅延を用いてもよい。受信部１３２でパケットを受信した時点で計時部１３５より時刻を取得して、時刻情報登録部１３６で取得した時刻との差分を用いる方法が例示される。この時、受信部１３２で計時部１３５の時刻情報をパケットに付加する方法が例示される。あるいは、該処理時間を外部から任意に設定できるように、時刻情報登録部１３６に対して、所定のパラメータを設定できるようにしてもよい。これは、ＣＰＵ１０１上で動作するソフトウェアによる経路制御部１０３へのアクセスによって実現される。あるいは、経路制御部１０３内にパラメータを設定する特別なパケットフォーマットを定義してもよい。そのようなパケットフォーマットとして、時刻情報登録部１３６へ設定するパケットであることを示す識別子と、パラメータを少なくとも含むことが例示される。これは、パケット識別部１３４ａで識別されて、時刻情報登録部１３６に設定することが例示される。また、設定対象の通信制御装置１２０の識別子を含んでもよい。
【００７９】
時刻情報登録部１３６は、経路制御部１０３内に実装することが例示される。
【００８０】
時刻情報保持部１３７は、識別情報と時刻情報の組み合わせ情報を要素として保持する。保持する要素数は、０でもよいし、１つでもよいし、対象機器の計算機資源に応じて複数保持してもよい。時刻情報保持部１３７は、パケット識別情報をキーにしてアクセスされると、保持している時刻情報を返す。該当する情報がない場合は、該当する情報がないということを返す。
【００８１】
時刻情報保持部１３７は、メモリ１０８、あるいは不揮発性記憶媒体１０９、あるいは経路制御部１０３に構築することが例示される。
【００８２】
出力経路選択部１３８は、入力されたパケットに対して、パケット識別部１３４ａから通知された識別情報、時刻情報保持部１３７に保存された情報等に基づいて、パケットの出力先を選択して、パケットを出力する。出力経路選択部１３８は、パケットの出力先が決定されるまでパケットを保持する必要があり、その間、後続のパケットが入力される可能性があるため、パケットバッファを内部に有する。出力経路選択部１３８は、経路制御部１０３内に実装することが例示される。
【００８３】
パケット更新部１３９は、パケット識別部１３４ｂから通知された識別情報を用いて、時刻情報保持部１３７にアクセスして取得した時刻情報Ｔｉｎと、パケット更新部１３９から出力前に計時部１３５から時刻Ｔｏｕｔを取得して、次式より差分Ｄを求める。
【００８４】
Ｄ  ＝  Ｔｏｕｔ  −  Ｔｉｎ  （式１）
差分Dは、出力経路選択部１３８の処理遅延と、ネットワーク中継装置１２１内の処理遅延を反映した値である。
【００８５】
なお、Ｔｏｕｔには、パケット更新部１３９の計算時間、出力経路選択部１３８、通信部１３１の処理時間が含まれない。そこで、より正確に通信遅延を計測する場合は、Ｔｏｕｔより、パケット更新部１３９の計算時間、出力経路選択部１３８、通信部１３１のうちの一部または複数の処理時間だけ後の時間を加算した時刻を利用することが例示される。
【００８６】
この時、パケット更新部１３９の計算時間、出力経路選択部１３８、通信部１３１の処理時間は、固定遅延で実行する該機能部を用いて、その固定遅延を用いてもよいし、実装部品のデータシート等に記載の処理遅延を用いてもよい。
【００８７】
別な構成例として、図５では、単一のパケット識別部１３４ｂとパケット更新部１３９の構成としているが、通信部１３１ごとにパケット識別部１３４ｂとパケット更新部１３９の組みをもうけ、出力経路選択部１３８が出力経路を選択後にパケットを識別して更新してもよい。
【００８８】
この処理遅延を外部から任意に決められるように、パケット更新部１３９に対して、所定のパラメータを設定できるようにしてもよい。これはＣＰＵ１０１上で動作するソフトウェアによる経路制御部１０３へのアクセスか、あるいはパラメータを設定する特別なパケットフォーマットを定義してもよい。そのようなパケットフォーマットとして、パケット更新部１３９へ設定するパケットであることを示す識別子と、パラメータを少なくとも含むことが例示される。設定対象の通信制御装置１２０の識別子を含んでもよい。これは、パケット識別部１３４ｂで識別されて、パケット更新部１３９に設定することが例示される。
【００８９】
図7に本発明を適用した通信制御装置１２０の動作手順を示す。
【００９０】
はじめに、通信制御装置１２０はパケットを受信するまで待機する（ステップ００１：以下、S001と称す）。Ｓ００１で、パケットを受信すると、同期パケットかどうかを判定する（Ｓ００２）。これは、パケット識別部１３４ａによって識別される。
【００９１】
パケット識別部１３４ａが時刻同期パケットかどうかを判定する方法は、受信パケットが、時刻同期プロトコルのパケットフォーマットにしたがっているかどうかが例示される。例えば、ＮＴＰであれば、ＵＤＰのポート１２３番を用いる。ＩＥＥＥ １５８８において、ＩＥＥＥ ８０２．３上に利用する場合は、Ｅｔｈｔｙｐｅが８８Ｆ７（１６進数）、アドレス０１：１Ｂ：１９：００：００：００（１６進数）であり、ＵＤＰ上に利用する場合は、ＩＰアドレスのマルチキャストアドレスが２２４．０．１．１２９、ＵＤＰのポート番号は３１９番である。したがって、これらの条件に一致した場合に時刻同期パケットと判定する。
【００９２】
Ｓ００２で、同期パケットと判定した場合は、次にネットワーク中継装置１２１に転送前のパケットかどうかを判定する（Ｓ００３）。
【００９３】
ネットワーク中継装置１２１に転送前かどうかを判定する方法は、パケットを受信した通信部１３１で判定する方法が例示される。図４の利用例に示すようにネットワーク中継装置１２１の通信ポートに対向する通信制御装置１２０の通信ポート、あるいは、他のネットワークと接続する通信制御装置１２０の通信ポートは、物理的に決まっており、受信した通信ポート、すなわち、図２のＬＡＮ１０２を識別することで、ネットワーク中継装置１２１へ転送する前のパケットかどうかを判定することができる。つまり、ＬＡＮ１０２ｎ−２から受信したパケットはネットワーク中継装置１２１へ転送する前のパケットと判定する。
【００９４】
ネットワーク中継装置１２１へ転送する前のパケットかどうかを判定する別の方法としては、パケット識別部１３４ａで抽出した識別子を用いて、時刻情報保持部１３７に時刻情報が保持されているかどうかをもとに判定する方法が挙げられる。ネットワーク中継装置１２１に転送した後のパケットであれば、時刻情報保持部１３７中にネットワーク中継装置１２１へ転送前の時刻情報が存在することとなる。したがって、時刻情報保持部１３７に該当する時刻情報がなければ、ネットワーク中継装置１２１へ転送前のパケットと判断することができる。この時、時刻情報保持部１３７に保持している識別情報と時刻情報は、利用後に時刻情報保持部１３７から削除している必要がある。もし、削除していない場合は、同一の識別情報を有する以前のパケットが時刻情報保持部１３７中に残存している可能性がある。このような場合を想定し、Ｓ００３における時刻と時刻情報保持部１３７から取得された時刻の差分を計算して、しきい値と比較する方法が例示される。これは、以前に受信した全く別のパケットであれば、Ｓ００３における時刻までの時間経過が大きいと考えられるためである。しきい値をネットワーク中継装置１２１の転送遅延の最悪値に所定の余裕をもたせた値とする。そして、Ｓ００３における時刻と取得した時刻の差分が前記しきい値より大きい場合（式２）に、該時刻情報保持部１３７中の時刻情報は、対象パケットではない以前のパケットと考え、対象パケットをネットワーク中継装置１２１へ転送前のパケットと判定する。
【００９５】
Ｔｎｏｗ  −  Ｔｇｅｔ  ＞  Ｔｈ    （式２）
ここで、ＴｎｏｗはＳ００３における時刻、Ｔｇｅｔは時刻情報保持部１３７から取得した時刻、Ｔｈはしきい値を示す。
【００９６】
なお、時刻情報保持部１３７中に同一識別情報の要素を複数保持している場合には、その全てで式２を満足している必要がある。
【００９７】
Ｓ００３で、パケットがネットワーク中継装置１２１へ転送前であった場合、受信時刻を記憶する（Ｓ００４）。これは、時刻情報登録部１３６が計時部１３５から時刻Ｔｉｎを取得し、時刻情報保持部１３７へ識別情報とあわせて登録する。
【００９８】
時刻情報保持部１３７の保持する識別情報は、通信制御装置１２０を含むネットワーク中継装置１２１の通信遅延を計測するという発明の目的を果たす上で必要な情報であることが求められる。つまり、ネットワーク中継装置１２１へ入力したパケットと、ネットワーク中継装置１２１から出力されたパケットの同一性を判定できればよい。
【００９９】
図6にそのような情報として、時刻同期プロトコルにおけるパケットフォーマット上のデータを用いることが例示される。例として、ＩＥＥＥ １５８８（ＩＥＥＥ １５８８−２００８）のパケットのヘッダフォーマットを示す。
【０１００】
図６に示すパラメータの中で、入力パケットと出力パケットの同一性を判定できるパラメータを選ぶ。そのようなパラメータとして、ｍｅｓｓａｇｅＴｙｐｅ１４２、ｄｏｍａｉｎＮｕｍｂｅｒ１４５、ｓｏｕｒｃｅ  ｐｏｒｔＩｄｅｎｔｉｔｙ１４８、ｓｅｕｑｅｎｃｅＩｄ１４９等が挙げられる。ｍｅｓｓａｇｅＴｙｐｅ１４２は、ＳｙｎｃメッセージやＤｅｌａｙ＿Ｒｅｑメッセージ等の種類を表す。
【０１０１】
ｄｏｍａｉｎＮｕｍｂｅｒ１４５は、論理的に同期するマスタとスレーブのグループを表現するためのドメインの番号である。
【０１０２】
ｓｏｕｒｃｅPｏｒｔＩｄｅｎｔｉｔｙ１４８は、同期パケットの送信元の識別子である。
【０１０３】
ｓｅｕｑｅｎｃｅＩｄ１４９は、シーケンス番号である。
【０１０４】
あるいは、これらのパラメータではなく、ヘッダ全体を識別情報としてもよい。
【０１０５】
また、その他に入力パケットと出力パケットの同一性を判定するために、その他のプロトコルのヘッダ情報を用いてもよい。例えば、ＩＰヘッダのＩＰアドレスを用いることで、送信元、送信先の識別子がわかり、ＴＣＰやＵＤＰのポート番号を用いることで、マスタ装置１２３、スレーブ装置１２４の上位プロセスの通信ポート番号を識別することができる。
【０１０６】
新たに識別情報と時刻情報を入力する際、すでに同じ識別情報が存在する場合の動作について説明する。この場合、上書きすることが望ましい。なお、複数の識別情報の存在を許可して、複数の要素を保持してもよい。この場合、識別情報をキーにしてアクセスされた場合に、どの時刻情報を返すかを決定する必要があり、入力された時刻が新しい情報を返すことが例示される。
【０１０７】
図8に時刻情報保持部１３７が保持する識別子と時刻情報の例を示す。
【０１０８】
図７のＳ００４で受信時刻を時刻情報保持部１３７へ登録すると、出力ポートへパケットを転送する（Ｓ００５）。これは、出力経路選択部１３８によって実行される。出力経路選択部１３８は、パケット識別部１３４ａによる識別情報やパケットの入力経路によって転送先を判定する。
【０１０９】
Ｓ００４からＳ００５へ至る手順では、パケットはＬＡＮ１０２ｎ−２、あるいは、そのＬＡＮ１０２に該当する通信部１３１で受信しているために、他のネットワーク１２２からのパケットであることがわかり、対応するＬＡＮ１０２ｎ−１、あるいは、そのＬＡＮ１０２に対応する通信部１３１の送信部１３３へパケットを転送して、ネットワーク中継装置１２１に出力すればよい。例えば、ＬＡＮ１０２ａ−２で受信したパケットであれば、ＬＡＮ１０２ａ−１からパケットを出力する。
【０１１０】
Ｓ００３にて、ネットワーク中継装置１２１への転送前のパケットではなく、ネットワーク中継装置１２１から転送されたパケットである場合は、該パケットをネットワーク中継装置１２１へ転送前に取得した受信時刻、すなわちＳ００４におけるＴｉｎを取得する（Ｓ００６）。
【０１１１】
これは、パケット更新部１３９によって実行される。パケットがネットワーク中継装置１２１から転送されたパケットであれば、出力経路選択部１３８からパケット識別部１３４ｂへパケットが転送される。
【０１１２】
パケット識別部１３４ｂは、パケットとその識別情報をあわせてパケット更新部１３９へ転送する。
【０１１３】
パケット更新部１３９は、パケット識別部１３４ｂから転送されたパケットの識別情報を用いて、時刻情報保持部１３７から時刻情報を取得する。図8に識別情報の例としてＩＥＥＥ １５８８のヘッダを用いた例を示す。
【０１１４】
もし、時刻情報保持部１３７から識別情報を使って時刻情報が見つからない場合や、取得できなかった場合は、所定の処理を実行してＳ００５へ進む（図７に図示なし）。所定の処理とは、時刻情報を取得できなかったことを異常として、ＣＰＵ１０１上のアプリケーションによって、不揮発性記憶媒体１０９等に履歴を残すことが挙げられる。この時、記憶する情報としては、識別情報や異常の発生時刻等が挙げられる。あるいは、予め設定した宛先に、上記情報を電子メールやＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）、あるいは所定のプロトコルにしたがって通知することや、通信制御装置１２０がそなえるＬＥＤ（Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ）や、所定の音声、映像出力手段等によって外部に提示してもよい。
【０１１５】
次に、出力時刻Ｔｏｕｔを求め、Ｓ００６で取得した時刻情報Ｔｉｎとの差分Ｄを式１により求める（Ｓ００７）。求めた差分を用いて、パケットを更新する（Ｓ００８）。
【０１１６】
パケット更新部１３９は、ＩＥＥＥ １５８８の場合、図６のｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ１４７を更新する。ｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ１４７にすでに遅延情報がある場合は、その遅延情報に、算出したＤを加算した値に更新する。なお、ＩＥＥＥ ８０２．３のＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）等、データ内容の変更にともなって更新する必要のある他のプロトコルのパラメータがあれば、あわせて更新する。
【０１１７】
Ｓ００８後、Ｓ００５へ進む。この時、出力経路選択部１３８は、パケット識別部１３４ｂによる識別情報やパケットの入力経路によって転送先を判定する。Ｓ００８からＳ００５へ至る手順では、パケットはＬＡＮ１０２ｎ−１、あるいは、そのＬＡＮ１０２に該当する通信部１３１で受信しているために、ネットワーク中継装置１２１からのパケットであることがわかり、対応するＬＡＮ１０２ｎ−２、あるいは、そのＬＡＮ１０２に対応する通信部１３１の送信部１３３へパケット転送して、他のネットワーク１２２に出力すればよい。例えば、ＬＡＮ１０２ａ−１で受信したパケットであれば、ＬＡＮ１０２ａ−２からパケットを出力する。
【０１１８】
この時、パケット更新部１３９で説明したように、出力経路選択部１３８の処理時間は固定であることが望ましい。出力経路選択部１３８は、パケット更新部１３９からパケットを受信する前に、パケット更新部１３９へパケットを転送しているため、パケット更新部１３９での処理時間経過後に、パケット更新部１３９からパケットを受信することを予め知ることができる。そこで、出力経路選択部１３８での処理時間を固定化するために、パケット更新部１３９へパケットを転送後、出力経路選択部１３８は、他の入力パケットをブロック、あるいは受信して保持したまま、パケット更新部１３９からのパケットの受信を待機して優先的に処理することが例示される。このようにすれば、他のパケットの処理遅延の影響を避けることができ、同期パケットの処理時間をパケット更新部１３９の処理時間までに低減して、パケット更新部１３９からのパケットを固定時間で処理することができ、通信制御装置１２０、ネットワーク中継装置１２１における処理遅延を精度よく計測することができる。これは、マスタ装置１２３、スレーブ装置１２４の同期精度を向上させることができる。あるいは、パケット更新部１３９からパケットを受信する前に、後続のパケットの通信処理が完了する場合は、その後続のパケットを処理してもよい。
【０１１９】
図７の動作は、ＩＥＥＥ １５８８の１ステップモードの動作を仮定した。２ステップモードの場合は、Ｓｙｎｃメッセージの送信時刻（図１４のｔ１）をＦｏｌｌｏｗ＿Ｕｐメッセージに格納して送信する。同様にネットワーク中継装置１２１内の処理遅延は、Ｓｙｎｃメッセージを対象に測定し、Ｆｏｌｌｏｗ＿ＵｐメッセージのＩＥＥＥ １５８８ヘッダのｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ１４７に格納する。
【０１２０】
図9にこの場合の動作手順を示す。図７との違いは、Ｓ０１０、Ｓ０１１のステップである。Ｓ０１０では、２ステップのＳｙｎｃメッセージを判定する。２ステップのＳｙｎｃメッセージでなければ、図７と同様にＳ００８へ進む。もし、２ステップのＳｙｎｃメッセージであれば、Ｓ００７で算出した差分を時刻情報保持部１３７に識別情報とともに登録する（Ｓ０１１）。それから、Ｓ００５へ進む。
【０１２１】
なお、１ステップか２ステップかどうかは、図６に示すＩＥＥＥ １５８８パケットフォーマットのｆｌａｇField１４６のｔｗｏＳｔｅｐｆｌａｇで判定することができる。
ｔｗｏＳｔｅｐｆｌａｇがｔｒｕｅ（１）であれば、２ステップである。
【０１２２】
２ステップのＳｙｎｃメッセージを通信制御装置１２０で処理した後、Ｆｏｌｌｏｗ＿Ｕｐメッセージを図９の動作手順で処理する。Ｓ００８のステップで、時刻情報保持部１３７の識別情報を用いて、時刻情報を取得する場合、ｍｅｓｓａｇｅＴｙｐｅの違いに注意する必要がある。つまり、Ｓ０１１では、ｍｅｓｓａｇｅＴｙｐｅはＳｙｎｃであるが、Ｆｏｌｌｏｗ＿Ｕｐメッセージの処理時はＳ００８での識別情報におけるｍｅｓｓａｇｅＴｙｐｅはＦｏｌｌｏｗ＿Ｕｐである。したがって、Ｓ００８で識別情報のＦｏｌｌｏｗ＿ＵｐをＳｙｎｃに変換して時刻情報保持部１３７にアクセスしてもよいし、Ｓ０１１で時刻情報保持部１３７に保持する際に、ＳｙｎｃをＦｏｌｌｏｗ＿Ｕｐに変換して保持してもよい。
【０１２３】
あわせて、時刻情報保持部１３７に保持する識別情報として、２ステップかどうかを表す属性を追加することが例示される。
【０１２４】
なお、上記の機能はマスタ装置１２３が２ステップの場合の動作を説明したが、ＩＥＥＥ １５８８仕様では、ネットワーク中継装置１２１であるTC（Ｔｒａｎｓｐａｒｅｎｔ  Clock）自身が２ステップとなる仕様がある。この場合、マスタ装置１２３が１ステップであると、２ステップTCがＳｙｎｃメッセージの滞留時間を記録する。Ｓｙｎｃメッセージの転送後に、２ステップTC自身でＦｏｌｌｏｗ＿Ｕｐメッセージを生成して、記録したＳｙｎｃメッセージの滞留時間をＦｏｌｌｏｗ＿Ｕｐに反映して送信するものである。
【０１２５】
この動作を通信制御装置１２０に反映した場合の動作を説明する。図７、図９のS００７までの手順と同様に、Ｓｙｎｃメッセージを対象に、出力時刻と受信時刻の差分を求める。その後、Ｓｙｎｃメッセージが１ステップであれば、ネットワーク中継装置１２１でＦｏｌｌｏｗ＿Ｕｐメッセージを作成し、求めた差分を反映して送信する。この時、Ｆｏｌｌｏｗ＿Ｕｐメッセージを生成するために必要なパラメータは、Ｓｙｎｃメッセージから抽出して利用する。また、ＳｙｎｃメッセージのｆｌａｇField１４６のｔｗｏＳｔｅｐｆｌａｇをｔｒｕｅ（１）に変更する。このようにすれば、Ｓｙｎｃメッセージそのものに時刻情報を反映するという実装上の難易度を下げることができ、より簡単な構成で通信制御装置１２０を構築することができ、低コスト化できる。
【０１２６】
図２、図４に示す通信制御装置１２０は、ＬＡＮ１０２や通信部１３１の接続は予め固定として説明していた。すなわち、ネットワーク中継装置１２１に対向する通信ポートと、他のネットワークに接続する通信ポートは固定で、ＬＡＮ１０２ａ−１とＬＡＮ１０２ａ−２というように、ＬＡＮ１０２間の対応を固定としていた。
【０１２７】
これは、通信制御装置１２０に対する配線の自由度を低下させ、誤配線が許容されないために設置コストを悪化させる問題があるが、ブリッジやスイッチのポート学習の仕組みを用いることで、接続の自由度を向上させることができる。
【０１２８】
図１０にこの仕組みを実現する機能構成を示す。
【０１２９】
接続情報保持部１６０は、接続に関する情報を記憶する。図１１に接続情報保持部１６０の保持する情報の例を示す。接続情報保持部１６０の保持する情報例としては、接続先ＩＰアドレス、接続先ＭＡＣアドレス、該接続先と接続している通信制御装置１２０自身のＬＡＮ１０２、あるいは通信部１３１の識別子が挙げられる。
【０１３０】
通信制御装置１２０が何らかのパケットを受信するとパケットを受信したＬＡＮ１０２、あるいは通信部１３１、送信元のＭＡＣアドレス、送信元のＩＰアドレスの識別子をパケット識別部１３４ａが識別し、接続情報保持部１６０に記憶する。もし、接続情報保持部１６０に記憶した接続先ＭＡＣアドレスを宛先とするパケットを受信すれば、出力経路選択部１３８は、接続情報保持部１６０に記憶された通信部１３１へ出力経路選択部１３８はパケットを転送する。接続情報保持部１６０に該当する宛先の情報がなければ、全ての通信部１３１へパケットを転送する（受信した通信部１３１は除外してもよい）。あるいは，各通信部１３１からＡＲＰ（Ａｄｄｒｅｓｓ  Ｒｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）やＰｉｎｇ機能を使って、返事があった通信部１３１へ、出力経路選択部１３８は出力先の通信部１３１と判定してもよい。また、この時得られた宛先と通信部１３１の関係を接続情報保持部１６０に記憶してもよい。
【０１３１】
接続情報保持部１６０の各情報は、一定の保持期間をもうけ、保持期間後に削除してもよい。また、パケットを受信するたびに、接続情報を抽出して接続情報保持部１６０の情報を更新してもよい。
【０１３２】
なお、図７、図１１の手順では、Ｓ００３において、ネットワーク中継装置１２１へ転送前のパケットであるかを判定する必要がある。これは、ネットワーク中継装置１２１へ接続するＬＡＮ１０２群、通信部１３１群と他のネットワークへ接続する通信部１３１群の区別だけは予め物理的に固定であるように構成してもよいし、あるいはパケットの中身で判定する方法が例示される。すなわち、ネットワーク中継装置１２１を経由した場合でもＩＥＥＥ ８０２．３のデータ部分、あるいはＩＰ層のデータ部分は変わらないことに着目し、ネットワーク中継装置１２１と対向する通信部１３１かどうかを判定する。ネットワーク中継装置１２１は、中継機能の対象となるプロトコル層のヘッダ部分を変更することはあり得るが、データ部分は基本的に変更しないことにしたがっている。この場合、通信制御装置１２０はパケットを受信すると、ネットワーク中継装置１２１の対象となるプロトコル層のデータ部分を抽出して接続情報保持部１６０に該当するデータと同一の情報があるかを検索する。つまり、接続情報保持部１６０は該データ部分を接続情報として保持する。なお、接続情報保持部１６０が保持する情報はデータそのものではなく、所定のハッシュ演算を適用したハッシュ値でもよい。
【０１３３】
もし、接続情報保持部１６０に該当する情報があれば、該パケットはネットワーク中継装置１２１から転送されてきたパケットであり、受信した通信部１３１は、ネットワーク中継装置１２１に対向する通信部１３１と判定することができる。判定の確度を高めるために、接続情報保持部１６０にパケットの受信時刻をあわせて記憶するように構成し、現在の時刻との差分を求め、ネットワーク中継装置１２１の処理時間との差が妥当な所定値以内であれば接続情報保持部１６０の情報は、直前にネットワーク中継装置１２１へ転送したパケットであると考えられ、現在判定しているパケットは、そのパケットがネットワーク中継装置１２１から転送されてきたと考えることができる。以上の仕組みを用いて、通信部１３１がネットワーク中継装置１２１に対向するか、他のネットワークに接続しているかを判定する。この判定結果は接続情報保持部１６０へ保持することが例示される。
【０１３４】
これらの判定処理や記憶処理は図７、図９の動作手順と並列に実行してもよいし、図７、図９のＳ００５の出力経路選択部１３８による転送先ポートの決定時に実行してもよい。後者の場合、判定処理、記憶処理は処理時間を要するため、Ｓ００７におけるＴｏｕｔへ反映する必要がある。これらの判定処理、記憶処理は、所定の固定時間で実行できれば、その固定時間をＳ００７の差分Ｄの計算時にＴｏｕｔに足してもよいし、あるいは、Ｓ００５以降にＳ００７を実行して、判定処理、記憶処理実行後に計時部１３５から出力時刻Ｔｏｕｔを取得してもよい。
【０１３５】
なお、各通信部１３１の接続関係は、通信制御装置１２０に物理的なスイッチ手段（例えば、液晶表示とボタン、キーボード、タッチパネル等。）をもうけて、手動で接続関係を決定できるようにしてもよい。
【０１３６】
接続情報保持部１６０を利用することで別の効果を得ることができる。送信先とその送信先に接続する通信部１３１の関係を記憶するだけでなく、送信元と送信先の関係を記憶するようにする。
【０１３７】
送信元と送信先の対応関係は、パケット識別部１３４や時刻情報保持部１３７の情報を用いて、次のようにして判定することができる。
【０１３８】
ネットワーク中継装置１２１へ転送前と転送後の同一パケットを識別する。識別したパケットの送信元（例、ＩＰアドレス）と、送信先（例、ＩＰアドレス）と転送先の通信部１３１を対応づける。このように構成すれば、通信制御装置１２０で受信した同期パケットの送信元から転送先通信部１３１を選択し、転送することができる。これは、ネットワーク中継装置１２１への転送を省略することで通信遅延を短くすることができる。通信制御装置１２０で遅延を計測する場合、通信制御装置１２０の計時部１３５自体に精度のずれがあるため、計測する時間が短い方が計測した時間のずれも小さい。したがって、通信遅延を短くできれば、計測する遅延の計測精度も向上し、マスタ装置１２３、スレーブ装置１２４の同期精度を向上させることができる。
【０１３９】
前記のとおり、接続情報保持部１６０の情報は定期的に消去して学習しなおしてもよい。
【０１４０】
また、同期パケット以外のパケットについてもネットワーク中継装置１２１への転送を省略して通信制御装置１２０内で転送先に接続する通信部１３１へ出力してもよい。通信遅延短縮の効果が得られる。
【０１４１】
上記の処理において、ネットワーク中継装置１２１の対象とするプロトコル層のヘッダで変更する必要があるパラメータがあれば変更してもよい。例えば、Ｌ３スイッチ、ルータの場合は、ＴＴＬ（Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ）から１を減じる処理が例示される。ネットワーク中継装置１２１がＬ２スイッチ、ブリッジの場合は、ＭＡＣアドレスを変更しなくてもよい。
【０１４２】
なお、上記の出力先の通信部１３１を記憶してネットワーク中継装置１２１への転送を省略している最中に、本来の通信経路が変化する可能性がある。ネットワーク中継装置１２１への転送を省略している場合に通信制御装置１２０の転送先とネットワーク中継装置１２１の転送先が異なると、同期パケットが本来の通信相手に到達しない可能性がある。
【０１４３】
このような場合に備えて、接続情報保持部１６０の接続先情報を用いて受信したパケットを直接他のネットワークへ接続する通信部１３１へ転送するとともに、パケットを複製して、ネットワーク中継装置１２１へと転送する。このように構成すれば、もし、ネットワーク中継装置１２１の経路情報が変わった場合に、通信制御装置１２０は受信した通信部１３１をもとに、経路の変更を把握することができる。先に転送したパケットの送信先情報が異なれば、改めて、出力経路選択部１３８は、変更した先の通信部１３１へパケットを転送する。図７、図９のＳ００７における出力時刻Ｔｏｕｔは、ネットワーク中継装置１２１から受信したパケットを転送する際の時刻とする。経路情報が変更していなければ、ネットワーク中継装置１２１から受信したパケットを転送する必要はなく、通信制御装置１２０でパケットを破棄すればよい。
【０１４４】
この時、接続情報保持部１６０に、先に転送したパケットの転送履歴や転送時刻を記憶しておくことが例示される。
【０１４５】
このようにすれば、遅延を短くして同期精度を向上させつつ、経路情報が変更になった場合でも、ネットワーク中継装置１２１から転送されたパケットを、変更後の経路に送信することで、パケットが送信元に到達しないことを防ぐことができる。
【０１４６】
また、パケット識別部１３４ａにおいて、ＩＥＥＥ １５８８ヘッダのｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ１４７の値を抽出して、時刻情報保持部１３７で保持してもよい。
【０１４７】
これは、通信制御装置１２０の接続するネットワーク中継装置１２１がＩＥＥＥ １５８８のＴＣであった場合、本発明を適用した通信制御装置１２０による計時と、ネットワーク中継装置１２１（この場合、ＴＣを仮定）の計時によって、ネットワーク中継装置１２１の処理時間を重複して計測する可能性がある。
【０１４８】
この問題を回避するため、時刻情報保持部１３７において、ネットワーク中継装置１２１へ転送前のパケットのｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ１４７の値Ｃ１を保持し、ネットワーク中継装置１２１から転送された同期パケットのｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ１４７（Ｃ２とする）と比較する。もし、Ｃ１とＣ２が異なる値であれば、ネットワーク中継装置１２１はＴＣ機能を有していると判定する。Ｃ１とＣ２が等しければ、図７、図９に示す手順でｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ１４７を更新する。
【０１４９】
ネットワーク中継装置１２１がＴＣ機能を有している場合の対応は、複数の方法が例示される。ｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ１４７のＣ２を破棄し、Ｃ１に通信制御装置１２０で計測した差分を追加する方法が例示される。通信制御装置１２０で複数のネットワーク中継装置１２１を経由して（挟んで）パケットをネットワーク中継装置１２１へ転送、ネットワーク中継装置１２１から受信する場合は、複数のネットワーク中継装置１２１のうちのいくつかがＴＣである場合がある。Ｃ２を破棄する方法はこのような場合に有効である。
【０１５０】
また、Ｃ２のまま、ｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ１４７を変更せずにパケットを転送する方法が例示される。あるいは、Ｃ２に対して、通信制御装置１２０の処理時間を追加する方法が例示される。この時、図７、図９の手順では、通信制御装置１２０が他のネットワークからパケットを受信した時刻Ｔｉｎと、ネットワーク中継装置１２１から転送されたパケットを他のネットワークへ送信する時刻Ｔｏｕｔをもとに処理時間を計測していたが、通信制御装置１２０のみの処理時間を抽出するために、上記Ｔｉｎ、Ｔｏｕｔに加えて通信制御装置１２０からネットワーク中継装置１２１へパケットを送信する時刻Ｔｍ１、ネットワーク中継装置１２１からパケットを受信した時刻Ｔｍ２をあわせて用いる。つまり、Ｃ２を用いる場合は、次式によって、通信制御装置１２０の処理時間を追加することができる。
【０１５１】
Ｃ３  ＝  Ｃ２  ＋  （Ｔｍ１  −  Ｔｉｎ）  ＋  （Ｔｏｕｔ  −  Ｔｍ２）    （式３）
ここで、Ｃ３は、通信制御装置１２０とネットワーク中継装置１２１の処理時間を加えて、通信制御装置１２０が更新したＩＥＥＥ １５８８パケットのｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ１４７の値である。
【０１５２】
ここで、時刻情報保持部１３７は、Ｔｍ１、Ｔｍ２を保持してもよいし、（Ｔｍ１  −  Ｔｉｎ）、（Ｔｏｕｔ  −  Ｔｍ２）を保持してもよい。
【０１５３】
また、通信制御装置１２０から他のネットワークに送信する際に、式３によるＣ３に更新してもよいし、ネットワーク中継装置１２１へ転送前に、Ｔｍ１  −  Ｔｉｎを算出してＣ１に追加して、ＩＥＥＥ １５８８のｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ１４７を更新してもよい。
【０１５４】
この場合、ネットワーク中継装置１２１からパケットが折り返されて通信制御装置１２０が他のネットワークに送出する際に、残るＴｏｕｔ  −  Ｔｍ２を算出してＩＥＥＥ １５８８のｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ１４７に追加してもよい（この時、ＩＥＥＥ １５８８のｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ１４７はＣ２  ＋  （Ｔｍ１  −  Ｔｉｎ）となっている）。
【０１５５】
このように構成することで、通信制御装置１２０と接続するネットワーク中継装置１２１がＴＣであっても、誤って処理時間を計測することを防ぐことができる。
【０１５６】
なお、本発明の効果はＩＥＥＥ １５８８を想定して説明した。ＮＴＰやＳＮＴＰ等、他の同期プロトコルへの本発明の適用について述べる。ＮＴＰ等では、往復の遅延が等しいと仮定しており、往復の遅延差が存在すれば、その分、同期精度に誤差が生じる。その遅延差の主な要因の一つは、中継装置の処理遅延である。そこで、本発明を適用した通信制御装置１２０により、通信制御装置１２０、ネットワーク中継装置１２１の処理遅延を計測して活用する。ただし、ＮＴＰ等のプロトコルでは、ＩＥＥＥ １５８８のヘッダのｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ１４７に該当する項目がなく、パケット自体に通信制御装置１２０とネットワーク中継装置１２１の処理遅延を格納する手段がない。
【０１５７】
そのため、通信制御装置１２０は計測した遅延をマスタ装置１２３、スレーブ装置１２４へ通知することが例示される。これは、図７、図９のＳ００８において、パケットを更新するのではなく、遅延情報を格納したパケットをマスタ装置１２３、スレーブ装置１２４へ送信する処理に置き換わる。
【０１５８】
マスタ装置１２３、スレーブ装置１２４の宛先は、計測した対象のパケットのヘッダから取得する。また、通信制御装置１２０の遅延情報をマスタ装置１２３、あるいはスレーブ装置１２４が受信した際に、どの同期パケットに対して計測した遅延情報であるかを判別するために、同期パケットに記載されてパケットを識別可能な情報を遅延情報とあわせて送信することが例示される。これは、ＩＥＥＥ １５８８−２００２（バージョン１）も同様である。ＩＥＥＥ １５８８においても、遅延を計測したパケットの識別情報と遅延情報を別のパケットに格納して、マスタ装置１２３、スレーブ装置１２４へ送信することが例示される。
【０１５９】
マスタ装置１２３、スレーブ装置１２４のどちらに遅延情報を送るかは、遅延計算が可能で、パケットを識別可能であるかに依存する。例えば、ＮＴＰでは、スレーブ装置１２４が遅延を計算し、同期パケットの送信、受信を実行することから、同期パケットの識別も可能である。したがって、スレーブ装置１２４にのみ、遅延情報とパケット識別情報を送ればよい。マスタ装置１２３が遅延情報を受信して、スレーブ装置１２４へ通知してもよい。
【０１６０】
また、通信制御装置１２０とネットワーク中継装置１２１を接続する通信ケーブルに、ケーブル断線やコネクタが外れる等の異常が生じて、通信ができない場合に、他の通信部を利用して通信することができる。通信異常の判定は、物理層の異常判定機能を用いて判定する方法や、通信が不可である時間がしきい値をこえた場合に異常と判定する方法が例示される。また、本来パケットを受信する通信部１３１と異なる通信部１３１からパケットを受信した場合であっても、ネットワーク中継装置１２１がパケットの転送を継続できるように適切に処理することが例示される。例えば、パケットの中身やヘッダ情報を変更する処理が挙げられる。
【０１６１】
以上の構成により、本発明によれば汎用のネットワーク中継装置１２１に処理遅延の計測機能を付加することができ、ネットワークに接続する端末装置間を高精度に同期することが実現できる。
【実施例２】
【０１６２】
第２の実施例は、図１で説明した通信制御装置１２０の構成を分割した構成である。実施例に使用する符号は、特に断りのない限り、実施例１で説明した機能や要素等と同一であることを意味する。
【０１６３】
図１２に本発明を適用した通信制御装置１７０の利用例を示す。同期用ネットワーク１７１は、２つの通信制御装置１７０を同期するためのネットワークである。
【０１６４】
図１３に通信制御装置１７０の機能構成を示す。
【０１６５】
時刻同期制御部１８０は、他の通信制御装置１７０と同期用ネットワーク１７１を用いて、他の通信制御装置１７０上の時刻同期制御部１８０と通信して、同期させた時刻を計時部１３５に設定する。また時刻情報保持部１３７から時刻情報を抽出して、同期用ネットワーク１７１を経由して、他の通信制御装置１７０へ通知する。
【０１６６】
また、通信部１３１ａは他のネットワークと接続し、通信部１３１ｂはネットワーク中継装置１２１と接続している。通信部１３１ｃは同期用ネットワーク１７１と接続している。
【０１６７】
図１３における動作手順は図７と同様である。
【０１６８】
このとき、時刻同期制御部１８０は所定の周期で、他の通信制御装置１７０の時刻同期制御部１８０と時刻同期手順を実行する。時刻同期手順としては、ＩＥＥＥ １５８８（Ｐｅｅｒ  ｄｅｌａｙ方式を含む）、ＮＴＰ、ＳＮＴＰやＧＰＳが挙げられる。これらの時刻同期手順は、同期用ネットワーク１７１を用いて同期する。
【０１６９】
同期手順の実行周期は、水晶振動子等の物理的な特性で決定される計時部１３５の同期精度と、システムの要求する同期精度によって決まる。つまり、同期処理を実行しない期間でずれる精度誤差が要求同期精度より低下しないように実行周期を決める。例えば、１秒間同期処理を実行しないで、１００μ秒の同期精度誤差が生じる２つの通信制御装置１７０間で、要求同期精度が１μ秒の場合、次式より、１０ｍｓ周期で同期処理を実行する必要がある。
【０１７０】
１ｓ  ×  １μｓ／１００μｓ  ＝  １０ｍｓ  （式４）
同期等のパラメータは、図１２、図１３に図示していない入力手段で設定してもよい。例えば、キーボードや通信制御装置１７０が有線（ＬＡＮ、ＵＳＢ等）や無線（無線ＬＡＮ、Ｂｌｕｅｔｏｏｔｈ等）のインターフェースをそなえて設定できるように構成することが例示される。あるいは、独自のプロトコルによって、パケット識別部１３４ａが、時刻同期制御部１８０に対する設定パケットであることを識別して、パラメータを設定してもよい。そのようなプロトコルにしたがったパケットフォーマットでは、少なくともパラメータ設定であることを示す識別情報、設定するパラメータの識別情報（例、同期処理の実行周期）、設定する値（例、１０μ秒）が例示される。あるいは、通信制御装置１７０、時刻同期制御部１８０を識別する情報を含む。
【０１７１】
また、マスタ−スレーブ方式、あるいはサーバ−クライアント方式をとる時刻同期プロトコルであれば、どの通信制御装置１７０をマスタ、あるいはスレーブとするかを上記の周期と同様の方法で決定してもよい。ＩＥＥＥ １５８８であれば、Ｂｅｓｔ  Ｍａｓｔｅｒ  Ｃｌｏｃｋ（ＢＭＣ）アルゴリズムによって、同期用ネットワーク１７１で接続された通信制御装置１７０間で自律的にマスタ−スレーブを決定することができる。
【０１７２】
図１３の別の動作手順を図１６に示し、ここで、図７との違いを点線部に示す。
【０１７３】
図１６の動作は、通信制御装置１７０同士が同期していない場合を想定しているが、定期的に周期処理を実行し、同期している状態であってもよい。
【０１７４】
Ｓ００３において、中継装置に転送前のパケットであれば、時刻情報登録部１３６は、計時部１３５から受信時刻Ｔｉｎを取得する（Ｓ０２０）。次に、他の通信制御装置１７０と同期処理を実行して時刻を同期させる（Ｓ０２１）。それから、Ｓ０２０で取得したＴｉｎをＳ０２１で算出した同期パラメータによって、同期後の時刻Ｔｃｉｎに変換する（Ｓ０２２）。
【０１７５】
同期処理では、自身の時刻Ｌを他の通信制御装置１７０の時刻Ｓと同期させる。この時、ＳとＬは、式５、式６等によって、モデル化され、各パラメータは同期処理によって算出される。
【０１７６】
Ｓ  ＝  Ｌ  ＋  ｏｆｆｓｅｔ  （式５）
Ｓ  ＝  ｋＬ  ＋  ｏｆｆｓｅｔ  （式６）
ｏｆｆｓｅｔは、時間経過に依存しない、ＬとＳの差分に関わる項である。ｋは、Ｌに対する比例定数である。また、ＬとＳの関係は漸化式で表現してもよい。
【０１７７】
同期処理によって、各パラメータを算出すれば、同期後の時刻にＴｉｎを変換することができる。例えば、式５の形式でＬとＳの関係を定義し、ｏｆｆｓｅｔを５００μ秒として、Ｔｉｎ（Ｌ）が２０００μ秒とすれば、同期後の時刻Ｓは２５００μ秒（Ｓ＝２０００μ秒＋５００μ秒）となる。
【０１７８】
Ｓ００３において、ネットワーク中継装置に転送後のパケットであれば、Ｓ００６で受信時刻Ｔｃｉｎを取得する。その後に、同期処理を実行する（Ｓ０２４）。
【０１７９】
それから、同期された時刻Ｔｃｏｕｔを取得する（Ｓ０２５）。ＴｃｏｕｔとＳ００６で取得したＴｃｉｎの差分を求めて、パケットを更新する（Ｓ００８）。
【０１８０】
このようにすれば、同期処理の実行時間も含めて、通信制御装置１７０とネットワーク中継装置１２１の処理遅延を計測することができる。このとき、Ｓ０２１とＳ０２４の同期処理は必ずしも両方実行する必要はない。例えば、Ｓ０２１を省略し、Ｓ０２４のみ同期処理を実行してもよい。このとき、Ｓ０２４を実行する通信制御装置１７０を同期プロトコルのスレーブ（時刻を調整する側）とし、接続している他の通信制御装置１７０をマスタ（時刻の提供元）とすれば、マスタとなる通信制御装置１７０は、Ｓ０２１にて同期処理を実行する必要はない。
【０１８１】
図１２、図１３に示す通信制御装置１７０の構成は、１つの通信制御装置１７０で、ネットワーク中継装置１２１の１つの通信ポートに対応している。通信制御装置１７０として、図１３に示す構成を複数まとめて、１つの通信装置としてもよい。その場合、図１３の構成が並列に動作してもよいし、通信制御装置１７０が他の通信制御装置１７０と通信部１３１ｃで接続するように、１つにまとめた通信制御装置１７０内部で接続してもよい。また、図１２、図１３に示す通信制御装置１７０は、他の１つの通信制御装置１７０と接続しているが、もう一つの通信部１３１ｄをそなえて、デイジーチェーン（数珠つなぎ）やリングトポロジで接続してもよい。あるいは、複数の通信制御装置１７０間をネットワーク中継装置１２１で接続してもよいが、本発明の当初の課題であるネットワーク中継装置１２１内の遅延が同様に課題となるため、ＴＣの採用や本願発明の採用により、ネットワーク中継装置１２１内の遅延のゆらぎの影響が生じないように構成する必要がある。
【０１８２】
また、図１３に示す構成を複数並べた構成ではなく、図５、図１０の構成に時刻同期制御部１８０を付加してもよい。その場合、時刻情報保持部１３７と時刻同期制御部１８０を接続し、時刻同期制御部１８０は計時部１３５の時刻を、他の通信制御装置１７０の時刻同期制御部１８０と同期する。さらに、時刻同期制御部１８０は同期用ネットワーク１７１を用いて通信するための通信部１３１と接続する。
【０１８３】
また、ネットワーク中継装置１２１の全ての通信ポートに通信制御装置１７０を接続してもよいし、特定の通信ポートを選択して接続してもよい。通信ポートを選択した場合は、選択した通信ポート間で本発明の効果を得ることができる。また、複数の通信部を有する通信制御装置１７０を構成した場合は、その通信部の数が、接続するネットワーク中継装置１２１の通信ポートの数より多くてもよい。
【０１８４】
さらに、通信制御装置１７０と接続する他の通信制御装置１７０は、同じネットワーク中継装置１２１に接続している必要はなく、通信制御装置１７０間の同期用ネットワーク１７１を物理的に接続可能であれば、異なるネットワーク中継装置１２１へ接続していてもよい。
【０１８５】
通信制御装置１７０は、別の通信制御装置１７０と同期用ネットワーク１７１を用いて通信している。この同期用ネットワーク１７１を省略し、通信部１３１ｂを用いて、他の通信制御装置１７０と時刻同期する構成を図１７に示す。
【０１８６】
利用可能通信ポート取得部１９０は、接続している通信部１３１ｂが１つの場合、通信部１３１ｂに対する送信要求がないかを判定することができる。時刻同期制御部１８０が、他の通信制御装置１７０の時刻同期制御部１８０と同期しようとした場合、パケット識別部１３４ａからのパケットによって、同期パケットの送信処理が遅れれば、同期精度が低下する。そのため、通信部１３１ｂが送信処理中でないことを利用可能通信ポート取得部１９０が判定すればよい。通信部１３１ｂが利用可能かどうかを利用可能通信ポート取得部１９０が判定する方法は、パケット識別部１３４ａからの送信要求があるかどうかを見る方法や、あるいはパケット識別部１３４ａと時刻同期制御部１８０のそれぞれの送信要求をスケジューリングする方法でもよい。利用可能通信ポート取得部１９０は、必ず時刻同期制御部１８０からの送信要求を最優先とすれば、パケット識別部１３４ａの送信要求と衝突することはない。このとき、時刻同期制御部１８０は、利用可能通信ポート取得部１９０から送信要求を許可されたタイミングで、送信時刻を記録すれば、パケット識別部１３４ａからの送信要求に影響されずに同期することができる。
【０１８７】
図１７の構成において、複数の通信部１３１を用いる場合は、利用可能通信ポート取得部１９０によって、複数のネットワーク中継装置１２１に対向する通信部１３１から、利用可能な通信部を取得して、時刻同期処理を実行することができる。ただし、複数の通信制御装置１７０と接続している場合は、ネットワーク中継装置１２１を経由後にパケットが転送される通信制御装置１７０に接続する通信部１３１を用いる必要がある。通信部１３１と各通信制御装置１７０の接続情報は、事前に、図示しない時刻同期制御部１８０への入力手段によって設定する方法やパケット識別部１３４ａが識別可能なパケットによって設定する方法が例示される。このとき、設定する通信制御装置１７０と、通信部と、該通信部に接続する通信制御装置１７０の接続情報をパケットに含む必要がある。
【０１８８】
利用可能通信ポート取得部１９０による通信可能な通信部１３１の取得、通信部１３１の利用タイミングは、図１６のＳ０２１〜Ｓ０２４等の同期処理実行時である。
【０１８９】
利用可能通信ポート取得部１９０を用いることで、同期用ネットワーク１７１と通信部１３１ｃが不要となる。
【０１９０】
また、図５、図１０の構成に時刻同期制御部１８０を付加した構成に、利用可能通信ポート取得部１９０を付加してもよい。その場合、利用可能通信ポート取得部１９０と、ネットワーク中継装置１２１に接続する通信部１３１群を接続する。利用可能通信ポート取得部１９０は、時刻同期制御部１８０に利用可能な通信部１３１を通知する。
【０１９１】
また、システムの起動時は、各通信制御装置１７０同士がシステムの要求精度で同期していない場合がある。これは同期処理を未実行である場合や、同期処理実行時の過渡状態が該当する。そのような状態で通信制御装置１７０が同期パケットを受信した場合、時刻同期制御部１８０が同期するまで、同期パケットを時刻情報登録部１３６やパケット更新部１３９で保持する構成が例示される。これは、図１６のＳ０２１、Ｓ０２４で同期するまで、同期パケットの転送を待機する構成と同様である。
【０１９２】
これは、初期状態に限らず、何らかの異常により、同期が外れた場合も同様に、同期処理を完了するまでパケットをバッファリングする構成が例示される。同期処理前に計時部１３５から時刻情報を取得することで、同期処理の遅延を含めて、同期用ネットワーク１７１、ネットワーク中継装置１２１の通信遅延を計測することができる。
【０１９３】
同期精度低下を判定する基準は、最後に同期してからの経過時間が所定のしきい値以上であるかを用いる方法が例示される。この所定値は、通信制御装置１７０のクロック基準となる物理デバイス（水晶振動子など）の精度と、システム要求精度から算出できる。例えば、１秒で１０μ秒ずれる計時部１３５の精度で、システム要求精度が１μ秒であれば、１００ミリ秒ごとに同期する必要があり、しきい値として８０ミリ秒を用いることが例示される。８０ミリ秒間同期処理がなされなければ、同期精度低下の異常状態と判定する。
あるいは、他の通信制御装置１７０と定期的に時刻情報を通信し、同期処理中に算出した通信制御装置１７０間の遅延を考慮した時刻差が所定値より大きければ、同期精度が低下していると考える。例えば、同期処理によって通信制御装置１７０間の遅延を１ミリ秒と推定し、受信側と送信側の同期後の状態で、受信側が受信した時刻と、同期パケット上の送信時刻の差が１ミリ秒よりも所定のしきい値だけずれていれば同期精度低下と考える。
【０１９４】
以上の構成により、本発明を用いることで、ネットワーク中継装置１２１の処理遅延等の、通信制御装置１７０間の処理遅延を計測することができ、ネットワークに接続する端末装置間を高精度に同期することができる。さらに、複数の通信制御装置１７０を用いることで、ネットワーク中継装置１２１の特定の通信ポート間の通信遅延や、複数のネットワーク中継装置１２１の特定の通信ポート間の通信遅延を計測することができる。
【実施例３】
【０１９５】
第３の実施例は、通信経路を挟んで、図１で説明した通信制御装置１２０を分割した構成である。実施例に使用する符号は、特に断りのない限り、実施例１、実施例２で説明した機能や要素等と同一であることを意味する。
【０１９６】
図１８に本発明を適用した通信制御装置２００の利用例を示す。
【０１９７】
通信制御装置２００の機能構成は、図１３、図１７と同様である。
【０１９８】
図１３、図１７に示す機能構成を１つ、または複数組み合わせて通信制御装置２００を構成する。
【０１９９】
通信制御装置２００の動作手順は、図７、図１６と同様である。
【０２００】
そして、通信制御装置２００を用いて、図１９のようにシステムを構成してもよい。
【０２０１】
図１８、図１９のいずれの構成であっても、通信制御装置２００間で同期している必要がある。これは、図７、図１６の同期パケットの処理手順と並列して、通信制御装置２００間で通信がない場合に、同期してもよい。あるいは、図１６のＳ０２１、Ｓ０２４のように、同期パケットの処理手順中に同期してもよい。
【０２０２】
なお、通信制御装置２００間で同期するための通信パケットや、通信制御装置２００から受信時刻Ｔｉｎを取得する際の要求パケットの宛先は、通信制御装置２００間で転送された同期パケットの宛先を利用してもよい。このとき、パケットが流れる方向は逆向きとなるため、送信元と送信先を入れ替えて利用することが例示される。
【０２０３】
このとき、通信制御装置２００が自身宛てのパケットを識別できるように、データ領域に所定のフォーマットを適用して識別できるようにすることが例示される。例えば、受信時刻を取得しようとする通信制御装置２００が宛先識別子としてＩＰアドレスを用いて、受信時刻取得要求パケットを送信した場合、ＩＰデータグラム内に格納されるＵＤＰヘッダの宛先ポート番号であった場合に、通信制御装置２００ａは受信時刻Ｔｉｎを通信制御装置２００ｂに返信する。これは、ＵＤＰではなく、ＴＣＰやその他の通信プロトコル、あるいは独自のプロトコルを規定してもよい。
【０２０４】
この方法とは別に、通信制御装置２００自体で通信可能な識別子（例えば、ＩＰアドレス）を付与して宛先としてもよい。
【０２０５】
通信制御装置２００は、受信したパケットが受信時刻要求パケットであれば、受信時刻を要求元の通信制御装置２００に返送して、要求パケット自体は破棄してよい。受信時刻要求パケット以外であれば、他の通信部１３１から転送することや出力経路選択部１３８が選択した通信部１３１から転送する。
【０２０６】
通信制御装置１２０、１７０、２００は、図２０、図２１に示すように多段で構成してもよい。図２０、図２１で階層化している通信制御装置の段数は、より少ない段数でも、多い段数であっても本発明の効果が失われるものではない。
【０２０７】
図２０において、通信制御装置１７０ａから通信制御装置２００ｂまでの通信遅延は、通信制御装置１７０ａと通信制御装置１７０ｂ間で計測された遅延と、通信制御装置２００ａと通信制御装置２００ｂ間で計測された遅延の和で求められる。
【０２０８】
また、通信制御装置１７０ｂと通信制御装置２００ａは接続部分で通信部１３１が重複しているため、図２２に示す機能構成でもよい。
【０２０９】
図２１においても同様に通信制御装置２００ａから通信制御装置２００ｃまでの通信遅延は、通信制御装置２００ａと通信制御装置２００ｂ間で計測された遅延と、通信制御装置２００ｂと通信制御装置２００ｃ間で計測された遅延の和で求められる。
【０２１０】
あるいは、通信制御装置２００ａ、ｂ、ｃの時刻同期制御部１８０が全て同期して、通信制御装置２００ｃが通信制御装置２００ａに、通信制御装置２００ａの同期パケット受信時刻を問い合わせてもよい。この場合、通信制御装置２００ｃのパケット送信時刻（例えば、図１６のＳ０２５のＴｃｏｕｔ）と、通信制御装置２００ａの受信時刻（例えば、図１６のＳ０２２のＴｃｉｎ）の差分を求めることで、通信制御装置２００ｃと通信制御装置２００ａ間の通信遅延を求めることができる。
【０２１１】
図２３にこのときの機能構成を示す。基準時刻決定部２１０は、通信制御装置２００ａ、ｂ、ｃのどの計測部１３５を基準時刻とするかを決定する。
【０２１２】
基準時刻の決定方法は、ＩＥＥＥ １５８８のＢｅｓｔ Ｍａｓｔｅｒ Ｃｌｏｃｋ（ＢＭＣ）アルゴリズムや、各基準時刻決定部２１０に優先度を設定し、最も優先度の高い基準時刻決定部２１０を有する通信制御装置２００の計時部１３５を基準時刻とする方法が例示される。
【０２１３】
この時の優先度は、各通信制御装置２００の計時部１３５の精度や、通信制御装置２００の計算機性能（CPU１０１の性能やメモリ１０８、不揮発性記憶媒体１０９の容量等）に基づいて決める方法や、他の通信制御装置２００までの通信経路のホップ数、通信帯域幅、単位時間あたりの通信量、通信遅延、通信媒体等をもとに算出した統計値（平均値、最小値、最大値、分散等）に基づいて決める方法が例示される。
【０２１４】
以上の構成により、本発明を用いることで、ネットワーク中継装置１２１の処理遅延等の、通信制御装置間の処理遅延を計測することができ、ネットワークに接続する端末装置間を高精度に同期することができる。さらに、通信制御装置２００を用いて、図１８のようにシステムを構成することで、通信制御装置２００は、ネットワーク１２２ａ、ｂ、ｃの通信遅延を計測してパケットに格納することや、同期を試みる通信端末に通知することができる。これは、ＩＥＥＥ １５８８で定義されるｐｅｅｒ−ｔｏ−ｐｅｅｒ  ｔｒａ
ｎｓｐａｒｅｎｔ  ｃｌｏｃｋと同等の機能を提供することができる。通信端末は、ネットワーク１２２ａ、ｂ、ｃの通信遅延を用いて、高精度に同期することができる。例えば、ネットワーク１２２ａ、ｂ、ｃが数１０ｋｍや１００ｋｍ以上離れている長距離であっても、ネットワーク１２２上の通信遅延を計測することができ、接続された通信端末間を高精度に同期することができる。
【実施例４】
【０２１５】
第４の実施例は、図１で説明した通信制御装置１２０の各通信部で時刻同期する構成である。実施例に使用する符号は、特に断りのない限り、実施例１、実施例２、実施例３で説明した機能や要素等と同一であることを意味する。
【０２１６】
図４に本発明を適用した通信制御装置２２０を用いたシステム構成を示す。
【０２１７】
図２５に通信制御装置２２０の機能構成を示す。
【０２１８】
各通信部１３１でパケットを受信すると、パケット識別部１３４が同期パケットかどうかを判定する。もし、同期パケットであれば、時刻同期制御部１８０へ転送され、同期パケットの送信元へ、同期パケットを返送して同期プロトコルを実行し、同期パケットの送信元と同期する。
【０２１９】
このとき、多くても一つの通信部の接続先通信相手の時刻に同期して計時部１３５を補正する。残りの通信部１３１は、補正された計時部１３５に基づいて、時刻の提供元となる。各通信部１３１が時刻の提供元となるかどうかは、ＩＥＥＥ １５８８のＢＭＣアルゴリズムによって決定してもよいし、静的に決定してもよい。
【０２２０】
図２５に示す構成に対して、図１３と同様に同期ネットワーク１７１と時刻同期制御部１８０を用いてもよいし、図１７の利用可能通信ポート取得部１９０を用いた構成で、通信制御装置２２０を分割してもよい。
【０２２１】
以上の構成により、本発明を用いることで、ネットワーク中継装置１２１の処理遅延等の、通信制御装置間の処理遅延を計測することができ、ネットワークに接続する端末装置間を高精度に同期することができる。さらに、ＩＥＥＥ １５８８のように、ネットワーク中継装置１２１に対して、時刻同期のマスタ、あるいはスレーブとなりうるＢｏｕｎｄａｒｙ  Ｃｌｏｃｋ機能を付加することができる。
【実施例５】
【０２２２】
第５の実施例は、本発明を適用した通信制御装置を階層的に構成する例である。実施例に使用する符号は、特に断りのない限り、実施例１、実施例２、実施例３、実施例４で説明した機能や要素等と同一であることを意味する。
【０２２３】
図２６、図２７に本発明を適用した通信制御装置を用いたシステム構成を示す。図２６に示した通信制御装置２３０は、通信制御装置１２０、通信制御装置１７０、通信制御装置２００、通信制御装置２２０を適用可能である。これらの通信制御装置を組み合わせて、異なる機能を組み合わせることができる。例えば、通信制御装置２２０と通信制御装置１７０を組み合わせて、ＩＥＥＥ １５８８のｔｒａｎｓｐａｒｅｎｔ  ｃｌｏｃｋと、ｂｏｕｎｄａｒｙ  ｃｌｏｃｋの２つの機能を付加することができる。
【０２２４】
図２６、図２７では３段まで表示しているが、より少ない段数でも、多い段数であっても本発明の効果が失われるものではない。また、通信端末１２５のかわりに、別のネットワーク中継装置１２１を介して通信端末１２５と接続して場合であっても本発明の効果が失われるものではない。
【０２２５】
そのまま組み合わせた場合は、ｂｏｕｎｄａｒｙ  ｃｌｏｃｋが時刻同期マスタ、あるいはスレーブとなるため、接続するネットワーク中継装置１２１を超えてパケットが転送されることはない。ただし、パケットの種類や状況に応じて、各通信制御装置の機能を適用するかどうかを選択することができる。
【０２２６】
例えば、パケットの種類としては、ＩＰアドレスや、あるいはＩＥＥＥ １５８８のドメインによって、各通信制御装置の機能の適用可否を選択する構成が例示される。通信制御装置２２０と通信制御装置１７０を階層化して、図２６、図２７の構成をとった場合に、所定のＩＰアドレスを送信先とした同期パケットや、所定のドメイン番号における同期パケットに対しては、通信制御装置２２０の機能を有効とし、それ以外の同期パケットに対しては、通信制御装置１７０の機能を有効とする構成が例示される。パケットの種類の判定は、パケット識別部１３４の識別ルールによって制御される。
【０２２７】
パケットの種類だけではなく、通信制御装置の状況に応じても、各通信制御装置の機能の適用可否を選択することができる。例えば、ある通信制御装置１７０が動作中に、ネットワーク中継装置１２１を経由して接続する対向の通信制御装置１７０と同期が外れた場合に、階層化して接続している他の通信制御装置１７０によって同期パケットの遅延計測機能を提供する構成が例示される。このようにすれば、通信遅延の計測機能の信頼性を向上させることができる。
【０２２８】
通信制御装置１２０が階層化する場合もあるために、接続情報保持部１６０や式３等の計算値を用いて、誤って通信遅延を計測しないように構成する必要がある。
【０２２９】
以上の構成により、本発明を用いることで、ネットワーク中継装置１２１の処理遅延等の、通信制御装置間の処理遅延を計測することができ、ネットワークに接続する端末装置間を高精度に同期することができる。さらに、階層的に通信制御装置を用いることで、パケットの種類や状況に応じて通信制御装置の機能の適用可否を制御することで、遅延計測の設定の柔軟性を向上することや、遅延計測機能の信頼性を向上させることができる。
【実施例６】
【０２３０】
第６の実施例は、通信制御装置１７０を用いた構成において、広域での同期手段を具えて、広域網を介在した経路での通信遅延計測を可能とした構成である。実施例に使用する符号は、特に断りのない限り、実施例１、実施例２、実施例３、実施例４、実施例５で説明した機能や要素等と同一であることを意味する。
【０２３１】
図２８に本発明を適用したシステムの構成例を示す。
【０２３２】
通信制御装置１７０の機能構成は、図１３と同様である。
【０２３３】
動作手順は図１６と同様である。また、同期用ネットワーク１７１としては、専用の同期通信網や、あるいはＧｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ（ＧＰＳ）を用いた同期が例示される。
【０２３４】
以上の構成により、本発明を用いることで、ネットワーク中継装置１２１の処理遅延等の、通信制御装置間の処理遅延を計測することができ、ネットワークに接続する端末装置間を高精度に同期することができる。さらに、広域網を介した通信経路の通信遅延を計測することができ、広域網によって接続された通信端末間で同期することができる。
【符号の説明】
【０２３５】
1０１ １号ＣＰＵ、１０２…ＰＬＡＮ、１０３…Ａ経路制御部、１０８ 路制メモリ、１０９ モリ不揮発性記憶媒体、１１０ 揮発バス、１２０、１７０、２００、２２０、２３０ ス、通信制御装置、１２１ 信制ネットワーク中継装置、１２２ ットネットワーク、１２３ ットマスタ装置、１２４ スタスレーブ装置、１２５ レー通信端末、１３１…信通信部、１３２ 信部受信部、１３３ 信部送信部、１３４ 信部パケット識別部、１３５ ケッ計時部、１３６ 時部時刻情報登録部、１３７ 刻情時刻情報保持部、１３８ 刻情出力経路選択部、１３９ 力経パケット更新部、１４０ ケッＩＥＥＥ １５８８ヘッダ、１４１ ５８ｔｒａｎｓｐｏｒｔＳｐｅｃｉｆｉｃ、１４２ ｒａｍｅｓｓａｇｅＴｙｐｅ、１４３ ｅｓｖｅｒｓｉｏｎＰＴＰ、１４４ ｅｒｍｅｓｓａｇｅＬｅｎｇｔｈ、１４５ ｅｓｄｏｍａｉｎＮｕｍｂｅｒ、１４６ ｏｍｆｌａｇＦｉｅｌｄ、１４７ ｌａｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ、１４８ ｏｒｓｏｕｒｃｅＰｏｒｔＩｄｅｎｔｉｔｙ、１４９ ｏｕｓｅｑｕｅｎｃｅＩｄ、１５０ ｅｑｃｏｎｔｒｏｌＦｉｅｌｄ、１５１ ｏｎｌｏｇＭｅｓｓａｇｅＩｎｔｅｒｖａｌ、１４２、２０２ ｏｇバッファ、１５０ ッフグループ構成部、１５１ ルーネットワーク構成情報記憶部、１６０ ット接続情報保持部、１８０ 続情時刻同期制御部、１９０ 刻同利用可能通信ポート取得部、２１０ 用可基準時刻決定部
【図１】
0006326474.tif 000002
【図２】
0006326474.tif 000003
【図３】
0006326474.tif 000004
【図４】
0006326474.tif 000005
【図５】
0006326474.tif 000006
【図６】
0006326474.tif 000007
【図７】
0006326474.tif 000008
【図８】
0006326474.tif 000009
【図９】
0006326474.tif 000010
【図１０】
0006326474.tif 000011
【図１１】
0006326474.tif 000012
【図１２】
0006326474.tif 000013
【図１３】
0006326474.tif 000014
【図１４】
0006326474.tif 000015
【図１５】
0006326474.tif 000016
【図１６】
0006326474.tif 000017
【図１７】
0006326474.tif 000018
【図１８】
0006326474.tif 000019
【図１９】
0006326474.tif 000020
【図２０】
0006326474.tif 000021
【図２１】
0006326474.tif 000022
【図２２】
0006326474.tif 000023
【図２３】
0006326474.tif 000024
【図２４】
0006326474.tif 000025
【図２５】
0006326474.tif 000026
【図２６】
0006326474.tif 000027
【図２７】
0006326474.tif 000028
【図２８】
0006326474.tif 000029