(57)【特許請求の範囲】
【請求項１】
中継装置であって、
時刻同期のための同期メッセージを受信する受信部と、
前記中継装置において前記同期メッセージの送信前に送信するパケットデータが存在する場合には前記中継装置における中継処理時間が所定値となるように前記同期メッセージを遅延させて送信し、前記中継装置において前記同期メッセージの送信前に送信するパケットデータが存在しない場合には前記同期メッセージを遅延させずに送信する送信部と、
を有することを特徴とする中継装置。
【請求項２】
前記同期メッセージについて、前記中継装置における遅延時間を測定する遅延測定部と、
複数の前記同期メッセージについての前記遅延時間を取得し、取得された複数の前記遅延時間に基づいて、前記中継処理時間の前記所定値に相当する中継時間設定値を算出する中継時間算出部と、
前記同期メッセージについての前記遅延時間と前記中継時間設定値に基づいて、挿入遅延時間を算出する挿入遅延算出部と、
をさらに有し、前記送信部は、
前記受信部から前記受信された同期メッセージを受けとり、前記算出された挿入遅延時間に基づいて遅延を挿入する遅延挿入制御部と、
を含むことを特徴とする請求項１記載の中継装置。
【請求項３】
前記中継時間算出部は、前記中継時間設定値として、所定の測定期間内に測定された複数の前記遅延時間の最大値を算出することを特徴とする請求項２記載の中継装置。
【請求項４】
前記中継時間算出部は、前記中継時間設定値として、所定の測定期間内に測定された複数の前記遅延時間の平均値を算出することを特徴とする請求項２記載の中継装置。
【請求項５】
前記挿入遅延算出部は、前記中継時間設定値と前記遅延時間の差分に相当する時間を、前記挿入遅延時間として算出することを特徴とする請求項２記載の中継装置。
【請求項６】
前記遅延挿入制御部は、前記遅延時間が前記中継時間設定値よりも長いとき、前記受信された同期メッセージを廃棄することを特徴とする請求項２記載の中継装置。
【請求項７】
前記遅延挿入制御部が、前記算出された挿入遅延時間に基づいて前記遅延を挿入したとき、前記同期メッセージに、前記遅延の挿入を示すフラグ情報を付与するフラグ付与部
をさらに有することを特徴とする請求項２記載の中継装置。
【請求項８】
前記中継時間算出部は、前記同期メッセージが転送されるセッションごとに、前記中継時間設定値を算出し、
前記挿入遅延算出部は、前記セッションごとに算出された前記中継時間設定値と、前記同期メッセージについての前記遅延時間に基づいて、前記セッションごとに前記挿入遅延時間を算出することを特徴とする請求項２記載の中継装置。
【請求項９】
前記中継時間算出部は、前記同期メッセージが転送される上りの伝送経路と前記同期メッセージが転送される下りの伝送経路について独立して、前記中継時間設定値を算出し、
前記中継装置は、
前記上りの伝送経路についての前記中継時間設定値と、前記下りの伝送経路についての前記中継時間設定値を比較し、前記比較された２つの中継時間設定値のうちの大きい方の中継時間設定値を選択する中継時間比較部
をさらに有し、
前記挿入遅延算出部は、前記選択された中継時間設定値に基づいて、前記上りの伝送経路と前記下りの伝送経路について独立して、前記挿入遅延時間を算出することを特徴とする請求項２記載の中継装置。
【請求項１０】
中継装置において、時刻同期のための同期メッセージを受信し、
前記中継装置において前記同期メッセージの送信前に送信するパケットデータが存在する場合には前記中継装置における中継処理時間が所定値となるように前記同期メッセージを遅延させて送信し、
前記中継装置において前記同期メッセージの送信前に送信するパケットデータが存在しない場合には前記同期メッセージを遅延させずに送信する
ことを特徴とする中継方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施例の一側面において開示する技術は、中継装置及び中継方法に関する。
【背景技術】
【０００２】
近年、ルータやスイッチのようなパケット技術を用いた中継装置によって構成され伝送網において、伝送網上の各拠点に設けられた情報処理装置の間で、時刻同期や周波数同期を行う需要が高まっている。
【０００３】
このようなパケット伝送網において時刻同期や波数同期を行う方式として、ＩＥＥＥ１５８８が知られている。ＩＥＥＥ１５８８は、マイクロ秒オーダの高精度の時刻同期を可能にするポテンシャルを有するものであり、特に、携帯基地局間の時刻同期や周波数同期等への利用が期待されている。
【０００４】
図１は、ＩＥＥＥ１５８８における時刻同期方式を説明するための図である。図１に示したように、ＩＥＥＥ１５８８における時刻同期方式では、スレーブ装置とマスタ装置との間で、ルータやスイッチ等の中継装置を介して、ＰＴＰ（Precision Time Protocol）メッセージと呼ばれる、専用の同期メッセージが交換される。スレーブ装置はマスタ装置と、その同期メッセージを用いて、送信タイムスタンプ（Time Stamp）及び受信タイムスタンプを双方向で交換することにより、マスタ装置とスレーブ装置の間の転送時間ｔ‐ｍｓ、ｔ−ｓｍを測定する。スレーブ装置は、測定した転送時間ｔ‐ｍｓ、ｔ−ｓｍに基づいて、マスタ装置に対する時刻オフセット量Ｏｆｆｓｅｔを算出し、時刻の同期処理を行う。
【０００５】
図２は、ＩＥＥＥ１５８８のマスタ装置とスレーブ装置を含むパケット伝送網２００の一例を示す図である。パケット伝送網２００は、ＩＥＥＥ１５８８のマスタ装置２０２、スレーブ装置２０４（２０４‐１、２０４−２）、中継装置２０６（２０６−１〜５）、及び情報処理装置２０８‐１〜３を含む。スレーブ装置２０４側に位置する情報処理装置２０８‐１、２０８‐２は例えば、無線端末の無線基地局であり、マスタ装置２０２側に位置する情報処理装置２０８−３は例えば、無線局側装置である。
【０００６】
パケット伝送網２００において、マスタ装置２０２とスレーブ装置２０４との間の伝送経路に位置する中継装置２０６は、マスタ装置２０２とスレーブ装置２０４との間で交換される同期メッセージを中継する。図２では、破線で示したように、マスタ装置２０２とスレーブ装置２０４−１が、同期メッセージを中継装置２０６−１〜３を介して交換する例が示されている。スレーブ装置２０４‐１はマスタ装置２０２と、同期メッセージを用いて、送信タイムスタンプ及び受信タイムスタンプを交換することにより、マスタ装置に対する時刻オフセット量を推定し、時刻の同期処理を行う。スレーブ装置２０４‐１は、時刻同期処理によって得られた時刻情報を情報処理装置２０８‐１に出力し、情報処理装置２０８‐１はその時刻情報に基づいて時刻の内部設定を補正する。
【０００７】
ここで、中継装置２０６‐１〜３が同期メッセージを中継する際に、各中継装置２０６‐１〜３において、ユーザデータ（パケットデータ）のトラフィックが、同期メッセージ（パケットデータ）の入力ポート以外の入力ポートから入力され、同期メッセージと同一の出力ポートから出力するというように、同期メッセージとユーザトラフィックが合流する場合が起こり得る。図２では、一点鎖線で示したように、情報処理装置２０８‐１と２０８−３との間で、ユーザデータのトラフィックが発生した例が示されており、中継装置２０６‐１〜３の各々において、同期メッセージとユーザトラフィックの合流が生じている。
【０００８】
図３は、中継装置２０６の内部構成の一例を示す図である。中継装置２０６は、セレクタ３０２、書き込み制御部３０４、読み出し制御部３０６、複数のキュー３０８（３０８‐１〜ｋ）、及びセレクタ３１０を含む。複数のキュー３０８（３０８‐１〜ｋ）及びセレクタ３１０はメモリ３１２によって実現される。
【０００９】
中継装置２０６の複数の入力ポート＃１〜＃Ｎに入力されたパケットデータはセレクタ３０２によって選択される。選択されたパケットデータは、そのパケットデータの優先度に応じて、書き込み制御部３０４によって、複数のキュー３０８−１〜ｋの中の１つのキューに格納される。例えば、上述の同期メッセージの優先度がユーザデータの優先度よりも高く設定されており、同期メッセージは優先クラスキュー３０８‐１に格納され、他のユーザデータは非優先クラスキュー３０８−ｋに格納される。セレクタ３１０は、読み出し制御部３０６の優先制御を受けて、パケットデータが格納されているキューの中から出力対象として１つのキューを選択し、選択されたキューに格納されたパケットデータを中継装置２０６の出力ポートを介して外部に出力する。
【００１０】
従って、例えば、同期メッセージよりも先に同一の中継装置２０６に到着したユーザデータがすでにキュー３０８から読み出し中である場合、同期メッセージは優先クラスキュー３０８−１に格納される場合であっても、対応するキュー３０８に格納された後すぐに、そのキューから読み出すことはできずに、ユーザデータの読み出しが完了した後にようやく読み出されることになる。
【００１１】
すなわち、上述のように、同期メッセージと先に到着したユーザデータとの間で競合が発生した場合は、同期メッセージは対応するキュー３０８において出力を待たされ、その競合に起因する待ち時間の分だけ、同期メッセージの中継に遅延が生じることになる。この同期メッセージに生じる中継の遅延は、ユーザデータのパケット長や、ユーザデータと同期メッセージが同一の中継装置に合流するタイミングといった競合状態に依存するため、その中継遅延量は競合事態に応じて変動したものになる．このような中継遅延量の変動は、ＰＤＶ（Packet Delay Variation）と呼ばれる。
【００１２】
図４は、同期メッセージにおけるＰＤＶを説明するための図である。図４に示したように、同期メッセージがマスタ装置から中継装置を経由してスレーブ装置に転送されるまでの転送時間は、マスタ装置とスレーブ装置の間の伝送路を同期メッセージが伝播するのに要する伝播時間に加えて、中継装置内の各部を経由して同期メッセージを中継する一連の処理に要する処理遅延時間と、他のパケットデータとの競合に起因する競合遅延時間を含むものとなる。
【００１３】
転送時間のうち、伝播時間と処理遅延時間は、伝送路や中継装置の特性によって定まるものであり、転送される同期メッセージによらず固定された値となるが、競合遅延時間は上述のように、同期メッセージの競合状態に応じて大きく変動するものである。よって、競合遅延が小さい場合は、中継装置内の中継時間の値も小さくなり、全体の転送時間の値も小さくなるが、一方、競合遅延が大きい場合には、中継装置の中継時間の値も大きくなり、全体の転送時間の値も大きくなってしまう。その結果、同期メッセージの中継装置内の中継時間は、競合遅延の大きさに依存して変動してしまう。
【００１４】
尚、図４ではマスタ装置からスレーブ装置に向けて同期メッセージが転送される場合を示したが、スレーブ装置からマスタ装置に向けて同期メッセージが転送される場合も同様に、中継装置において中継時間の変動が発生する。
【００１５】
よって、スレーブ装置が図１に示した式（１）に基づいて時刻オフセット量を算出するとき、同期メッセージの中継装置内の中継時間の変動に起因して、転送時間ｔ‐ｍｓ、ｔ−ｓｍに測定誤差が生じる。この測定誤差は算出される時刻オフセット量の誤差に直結する。従って、中継装置における中継時間の変動を抑えることが望ましい。
【００１６】
図５は、このような中継装置内の中継時間の変動を吸収することが可能な技術の一例を説明するための図である。図５に示したように、中継装置においては、中継時間について基準値（一定値）を予め設定しておき、中継装置内の全体の中継時間が、その基準値に等しくなるように、同期メッセージの中継に対して遅延を挿入している。
【００１７】
より詳細には、中継時間の基準値（一定値）は、同期メッセージの競合状態に依存した競合遅延の変動を考慮し、処理遅延時間と競合遅延時間の合計値がその基準値を超えないように、一定のマージンを持たせた大きめの値に設定しておく。その上で、中継装置は内部で同期メッセージごとに、競合遅延時間を算出し、中継時間の基準値（一定値）と、処理遅延時間（固定値）と算出された競合遅延時間の合計値との差分値を算出する。中継装置は内部で同期メッセージを中継する際に、算出された差分値に相当する遅延を挿入する。よって、中継装置は、競合遅延が小さい場合は、より大きい遅延を挿入し、競合遅延が大きい場合は逆に、より小さい遅延を挿入する。
【００１８】
よって、図５に示した例では、中継装置は同期メッセージごとに、同期メッセージの全体の中継時間が予め定められた一定の基準値となるように、競合遅延時間に応じた遅延を挿入することにより、中継時間の変動を吸収することができる。
【００１９】
尚、図５に示した、中継装置内の中継時間の変動吸収に関する技術は、例えば、下記特許文献１に開示されている。
【先行技術文献】
【特許文献】
【００２０】
【特許文献１】特開２００８‐０２２１３１号公報
【発明の概要】
【発明が解決しようとする課題】
【００２１】
図６は、図５に示した、中継時間の変動吸収に関する技術の問題点を説明するための図である。
【００２２】
図６（ａ）に示したように、競合トラフィックが小さい場合、同期メッセージの競合頻度が少なく、他のパケットとの競合が無い同期メッセージの数も多くなる。このため、競合遅延時間の分布は狭くなり、競合遅延時間の値も全体として小さいものとなる。
【００２３】
これに対して、図６（ｂ）に示したように、競合トラフィックが大きい場合、同期メッセージの競合頻度が多く、他のパケットとの競合が無い同期メッセージの数も少なくなる。このため、競合遅延時間の分布は広くなり、競合遅延時間の値も全体として大きなものとなる。
【００２４】
ここで、上述のように、競合遅延は同期メッセージの競合状態に依存して変動するため、中継時間の基準値（一定値）は、処理遅延時間と競合遅延時間の合計値がその基準値を超えないように、一定のマージンを持たせた大きめの値に設定されている。図６に示した例では、中継時間の基準値（一定値）は、図６（ｂ）に示したような、競合トラフィックの帯域が大きく、競合遅延が大きくなる場合に合わせて設定される。
【００２５】
このため、図６（ａ）に示したような、競合トラフィックの帯域が小さく、競合遅延が小さくなる場合には、中継時間の基準値は過剰に大きな値となり、中継装置における中継時間が不要に長いものになってしまう。とりわけ、中継装置において同期メッセージと他のパケットの間の競合が無い場合においても、中継装置における中継時間が、事前設定された中継時間の基準値（一定値）に等しくなるように、その基準値と処理遅延時間の値との差分値が遅延として挿入される。競合が無い場合、中継装置における中継時間は本来、中継装置内の処理遅延時間にすぎないにもかかわらず、中継時間の基準値に合わせた遅延が挿入される結果、中継時間は著しく長いものになってしまう。
【００２６】
中継装置における同期メッセージの中継時間が長くなると、マスタ装置からスレーブ装置に向けて同期メッセージが転送される場合、マスタ装置から同期メッセージを送信してから、スレーブ装置において同期メッセージが受信されるまでの時間が長くなってしまう。すなわち、図１において、マスタ装置からスレーブ装置までの転送時間ｔ‐ｍｓが長くなってしまう。スレーブ装置からマスタ装置に向けて同期メッセージが転送される場合も同様であり、スレーブ装置からマスタ装置までの転送時間ｔ‐ｓｍが長くなってしまう。
【００２７】
一方、スレーブ装置は自身が有する発振器によってクロックを生成し、その生成されたクロックを基づいて、自身が参照する時刻を生成することにより、時刻同期処理を行うが、発振器は一般に周波数偏差を有する。周波数偏差とは、温度変化や電源電圧の変動などの動作条件の変化等によって発振周波数が基準値からずれてしまうことをいう。この周波数偏差に起因する、スレーブ装置における時刻の誤差は、図１において、スレーブ装置によって取得される時刻ｔ２、ｔ４、ｔ５に影響を与える。
【００２８】
従って、同期メッセージの転送時に中継装置における中継時間が長くなると、転送時間ｔ‐ｍｓも長くなることから、送信時刻ｔ１を基準にしたときに時刻ｔ２に蓄積される、周波数偏差に起因する時刻の誤差の量が多くなる。そのため、転送時間ｔ‐ｍｓの測定値に蓄積される時刻の誤差の量も多くなる。よって、転送時間ｔ‐ｍｓの測定誤差が大きくなるため、算出される時刻オフセット量の誤差が大きくなり、スレーブ装置における時刻同期処理の誤差につながってしまう。
【００２９】
また、同期メッセージの転送時に中継装置における中継時間が長くなると、スレーブ装置において時刻オフセット量の算出が行われる算出時刻ｔ５や同期メッセージの受信時刻ｔ４と、同期メッセージの送信時刻ｔ３との間の時間差が大きくなる。そのため、送信時刻ｔ３を基準にしたときに受信時刻ｔ４及び算出時刻ｔ５に蓄積される時刻の誤差の量もそれぞれ多くなる。よって、時刻ｔ５における本来の時刻オフセット量の値と、時刻ｔ５より以前の時刻情報（時刻ｔ３、ｔ４等）に基づいて算出される時刻オフセット量の間のずれが大きくなり、このずれがスレーブ装置における時刻同期処理の誤差につながってしまう。
【００３０】
尚、高価な発振器を用いたことにより、発振器の周波数偏差を小さくすることができるが、高価な発振器を用いるのは、スレーブ装置のコストを増加させることになるため、好ましくない。
【００３１】
また、同期メッセージの転送時に中継装置における中継時間が長くなると、その分、同期メッセージが中継装置に滞留する時間が長くなり、中継装置に滞留する同期メッセージの数も多くなる。そのため、中継装置において、同期メッセージを保持するためのメモリの回路規模も増えてしまう。
【００３２】
従って、本実施例の一側面においては、中継装置における中継時間を不要に長くすることなく中継時間の変動を吸収し、スレーブ装置によって実行される時刻同期処理において、高価な発振器を用いることなく、発振器の周波数偏差の影響を小さくし、処理精度を向上させることを目的とする。
【課題を解決するための手段】
【００３３】
本実施例の一側面における中継装置は、パケットデータを受信する受信部と、
受信した前記パケットデータが時刻同期のための同期メッセージを含む場合、前記中継装置において前記パケットデータに送信待ちが発生した場合には前記中継装置における中継処理時間が所定値となるように前記パケットデータを遅延させて送信し、前記中継装置において前記パケットデータに送信待ちが発生しない場合には前記パケットデータを遅延させずに送信する送信部を含むものである。
【発明の効果】
【００３４】
本実施例の一側面における中継装置においては、スレーブ装置によって実行される時刻同期処理において、発振器の周波数偏差の影響を小さくし、処理精度を向上させることができる。
【図面の簡単な説明】
【００３５】
【図１】ＩＥＥＥ１５８８における時刻同期方式を説明するための図である。
【図２】ＩＥＥＥ１５８８のマスタ装置とスレーブ装置を含むパケット伝送網２００の一例を示す図である。
【図３】中継装置２０６の内部構成の一例を示す図である。
【図４】同期メッセージにおけるＰＤＶを説明するための図である。
【図５】中継装置内の中継時間の変動を吸収することが可能な技術の一例を説明するための図である。
【図６】図５に示した、中継時間の変動吸収に関する技術の問題点を説明するための図である。
【図７】第１実施例に係る中継装置７００の構成例を示す図である。
【図８】ＩＥＥＥ１５８８におけるＰＴＰメッセージのフォーマットを説明するための図である。
【図９】中継時間算出部７１０において中継時間設定値を算出する処理の一例を説明するための図である。
【図１０】中継装置７００によって行われる遅延挿入制御処理の一例を説明するための図である。
【図１１】中継装置７００における同期メッセージの中継処理を説明するためのフローチャートである。
【図１２】中継時間算出部７１０において中継時間設定値を算出する処理の他の例を説明するための図である。
【図１３】中継装置７００によって行われる遅延挿入制御処理の他の例を説明するための図である。
【図１４】第２実施例に係る中継装置１４００の構成例を示す図である。
【図１５】第３実施例に係る中継装置１５００の構成例を示す図である。
【図１６】第４実施例に係る中継装置１６００の構成例を示す図である。
【図１７】第５実施例に係る中継装置１７００の構成例を示す図である。
【発明を実施するための形態】
【００３６】
以下、本発明の実施例について説明する。
【実施例】
【００３７】
［１．第１実施例］
以下、第１実施例に係る中継装置及び中継方法について説明する。
【００３８】
［１−１．中継装置］
まず、第１実施例に係る中継装置７００の構成について説明する。図７は、第１実施例に係る中継装置７００の構成例を示す図である。
【００３９】
尚、図７に示した中継装置１７００の構成は、全体の装置構成の中の、１つの出力ポートに対応する部分を示したものである。よって、中継装置７００は、複数の出力ポートを有する場合には、図７に示したものと同様の構成を出力ポートの数だけ有する。以下の各実施例においても同様である。
【００４０】
図７に示したように、中継装置７００は、伝送装置であって、同期メッセージ（以下、ｍｓｇとも称する。）識別部７０２（７０２‐１〜Ｎ）、７０４、出力制御部７０６、遅延測定部７０８、中継時間算出部７１０、挿入遅延算出部７１２、及び遅延挿入制御部７１４を含む。
【００４１】
出力制御部７０６は、セレクタ７２２、書き込み制御部７２４、同期メッセージ識別部７２６、読み出し制御部７２８、複数のキュー７３４（７３４‐１〜ｋ）及びセレクタ７３６を含む。読み出し制御部７２８は競合判定部７３０を含む。また、複数のキュー７３４（７３４‐１〜ｋ）及びセレクタ７３６はメモリ７３２によって実現される。
【００４２】
遅延挿入制御部７１４は、書き込み制御部７４２、読み出し制御部７４４、同期メッセージ用のバイパスキュー７４８、同期メッセージ用の遅延挿入キュー７５０、及び同期メッセージ以外のパケット用のタイミング調整キュー７５２を含む。バイパスキュー７４８、遅延挿入キュー７５０、及びタイミング調整キュー７５２はメモリ７４６によって実現される。
【００４３】
尚、同期メッセージ識別部７０２‐１〜Ｎ、７０４、出力制御部７０６、遅延測定部７０８、中継時間算出部７１０、挿入遅延算出部７１２、及び遅延挿入制御部７１４などの、図７に示した中継装置に含まれる各部は、専用又は汎用のハードウェア（電気・電子回路（ＡＳＩＣ、ＦＰＧＡなど））を用いて、１個のハードウェア又は複数のハードウェアの組合せとして実現される。或いは、上述した各部は、ソフトウェア処理、すなわち、ＣＰＵ（Central Processing Unit）、ＤＳＰ（Digital Signal Processor）のようなプロセッサ（マイクロプロセッサ）が、ストレージ（ＲＯＭ、フラッシュメモリなど）に記憶されたプログラムをＲＡＭにロードして実行することによって得られる機能として実現されることもできる。
【００４４】
また、メモリ７３２、７４６については、中継装置７００内の他の部分とは独立したメモリによって実現することも可能であり、例えばＲＡＭ（Random Access Memory）によって実現することができる。
【００４５】
後述する各々の実施例においても、中継装置に含まれる各部は、同様にして実現される。
【００４６】
複数の入力ポート＃１〜＃Ｎには、ＩＥＥＥ１５８８のＰＴＰメッセージなどの同期メッセージを含む複数のパケットデータが入力される。以下、同期メッセージがＩＥＥＥ１５８８におけるＰＴＰメッセージである場合を例にとって説明するが、同期メッセージはＰＴＰメッセージには限定されない。
【００４７】
ここで、ＩＥＥＥ１５８８におけるＰＴＰメッセージのフォーマットについて、図８を用いて説明する。
【００４８】
図８に示したように、ＰＴＰメッセージにはＭＡＣヘッダが付加されている。ＭＡＣヘッダは、ＰＴＰメッセージの宛先ＭＡＣアドレスを示すＭＡＣアドレス情報ＭＡＣ  ＤＡ、ＰＴＰメッセージの発信元ＭＡＣアドレスを示すＭＡＣアドレス情報ＭＡＣ  ＳＡ、及びパケットデータの種別を示すタイプ値Ｔｙｐｅを含む。
【００４９】
ＰＴＰメッセージはＰＴＰジェネラルヘッダとメッセージフィールドを含む。ＰＴＰジェネラルヘッダは、ＰＴＰメッセージの種別を示すＰＴＰメッセージタイプ値ｍｅｓｓａｇｅＴｙｐｅと、ＰＴＰメッセージのシリアル番号を示すシーケンス識別情報ｓｅｑｕｅｎｃｅＩｄを含む。また、ＰＴＰジェネラルヘッダは、いくつかのｒｅｓｅｒｖｅｄ領域を含む。
【００５０】
ＰＴＰメッセージの種別には、Ｓｙｎｃメッセージ、Ｄｅｌａｙ‐Ｒｅｑメッセージ、及びＤｅｌａｙ‐Ｒｅｓｐメッセージが含まれる。図１に示したＩＥＥＥ１５８８の時刻同期方式において、Ｓｙｎｃメッセージは、マスタ装置からスレーブ装置に転送される同期メッセージであって、マスタ装置の送信時刻ｔ１を示す送信タイムスタンプを含むものである。Ｄｅｌａｙ‐Ｒｅｑメッセージは、Ｓｙｎｃメッセージを受信したスレーブ装置からＳｙｎｃメッセージを発信したマスタ装置に転送される同期メッセージであって、スレーブ装置の送信時刻ｔ３を示す送信タイムスタンプを含むものである。Ｄｅｌａｙ‐Ｒｅｓｐメッセージは、Ｄｅｌａｙ‐Ｒｅｑメッセージを受信したマスタ装置からＤｅｌａｙ‐Ｒｅｑメッセージを発信したスレーブ装置に転送される同期メッセージであって、マスタ装置の受信時刻ｔ４を示す受信タイムスタンプを含むものである。
【００５１】
図１に示したＩＥＥＥ１５８８の時刻同期方式では、スレーブ装置はマスタ装置と、Ｓｙｎｃメッセージ、Ｄｅｌａｙ‐Ｒｅｑメッセージ及びＤｅｌａｙ‐Ｒｅｓｐメッセージを用いて、送信タイムスタンプｔ１、ｔ３及び受信タイムスタンプｔ２、ｔ４を取得することにより、同期メッセージの送信及び受信に関する時刻情報を取得し、マスタ装置とスレーブ装置の間の転送時間ｔ−ｍｓ及びｔ-ｓｍを測定する。スレーブ装置は、例えば、図１に示した式（１）を用いて、測定した転送時間に基づいて、マスタ装置に対する時刻オフセット量を推定し、時刻同期処理を行う。
【００５２】
ＰＴＰメッセージのメッセージフィールドは、Ｓｙｎｃメッセージ、Ｄｅｌａｙ−Ｒｅｑメッセージ、及びＤｅｌａｙ−Ｒｅｓｐメッセージの場合に、対応する送信タイムスタンプ又は受信タイムスタンプを格納するタイムスタンプ情報ＴｉｍｅＳｔａｍｐを含む。
【００５３】
図７に戻って、複数の同期メッセージ識別部７０２‐１〜Ｎは、複数の入力ポート＃１〜＃Ｎから、同期メッセージを含む複数のパケットデータを受けとり、受信されたパケットデータが同期メッセージであるか否かを判定する。同期メッセージであるか否かの判定は例えば、ＰＴＰジェネラルヘッダに含まれるＰＴＰメッセージタイプ値ｍｅｓｓａｇｅＴｙｐｅを参照することにより行われる。すなわち、ＰＴＰメッセージタイプ値ｍｅｓｓａｇｅＴｙｐｅが、Ｓｙｎｃメッセージ、Ｄｅｌａｙ‐Ｒｅｑメッセージ、又はＤｅｌａｙ‐Ｒｅｓｐメッセージのいずれかを示す場合、同期メッセージ識別部７０２‐１〜Ｎは、受信されたパケットデータは同期メッセージであると判定する。また、同期メッセージであるか否かの判定は、ＰＴＰメッセージのシリアル番号を示すシーケンス識別情報ｓｅｑｕｅｎｃｅＩｄや、ＭＡＣヘッダに含まれるタイプ値Ｔｙｐｅを参照することにより行うようにしてもよい。
【００５４】
同期メッセージ識別部７０２‐１〜Ｎはそれぞれ、受けとったパケットデータが同期メッセージであった場合、同期メッセージに含まれる同期メッセージ識別情報を抽出し、抽出した同期メッセージ識別情報を遅延測定部７０８に出力する。抽出される同期メッセージ識別情報は、ＰＴＰジェネラルヘッダのシーケンス識別情報ｓｅｑｕｅｎｃｅＩｄによって示される、ＰＴＰメッセージのシリアル番号や、ＭＡＣヘッダのＭＡＣアドレス情報ＭＡＣ  ＤＡ、ＭＡＣ  ＳＡによって示される発信元ＭＡＣアドレス及び宛先ＭＡＣアドレスを含む。
【００５５】
出力制御部７０６は、複数の入力ポート＃１〜＃Ｎと同期メッセージ識別部７０２‐１〜Ｎを介して同期メッセージを含む複数のパケットデータを受信する受信部の機能を有する。出力制御部７０６は、複数の同期メッセージ識別部７０２‐１〜Ｎから、同期メッセージを含む複数のパケットデータを受けとり、受けとった複数のパケットデータを、同期メッセージ識別部７０４を介して遅延挿入制御部７１４に出力する出力タイミングを制御する。
【００５６】
セレクタ７２２は、複数の同期メッセージ識別部７０２‐１〜Ｎから、同期メッセージを含む複数のパケットデータを受けとる。セレクタ３０２は、複数の同期メッセージ識別部７０２‐１〜Ｎの中から１つを選択し、選択した同期メッセージ識別部に入力されたパケットデータを書き込み制御部７２４に供給する。
【００５７】
書き込み制御部７２４は、供給されたパケットデータの優先度に応じて、メモリ７３２内の複数のキュー７３４‐１〜ｋの中の１つのキューにそのパケットデータを格納する。ここでは、同期メッセージには他のパケットデータよりも高い優先度が与えられているものとする。従って、例えば、同期メッセージは優先クラスキュー７３４‐１に格納され、他のパケットデータは非優先クラスキュー７３４‐ｋに格納される。書き込み制御部７２４は、格納されるパケットデータについて、パケット識別情報、パケット長情報、及び格納先のキューのキュー識別情報を読み出し制御部７２８に出力する。
【００５８】
同期メッセージ識別部７２６は、書き込み制御部７３４から、優先クラスキュー７３１−１に格納される同期メッセージを受けとり、受けとった同期メッセージに含まれる同期メッセージ識別情報を抽出する。同期メッセージ識別部７２６は、抽出した同期メッセージ識別情報を、読み出し制御部７２８の競合判定部７３０に出力する。
【００５９】
読み出し制御部７２８は、書き込み制御部７２４からパケット識別情報、パケット長情報、及びキュー識別情報を受けとり、受けとった各情報に基づいて、複数のキュー７３４‐１〜ｋに格納されたパケットデータについて、優先度の高いパケットデータから優先的に読み出し処理を実行する優先制御処理を行う。読み出し制御部７２８は優先制御により、複数のキュー７３４‐１〜ｋの中から読み出し対象のキューを決定し、その決定されたキューに格納されたパケットデータの読み出しタイミングを制御する。読み出し制御部７２８は、優先制御により決定されたタイミングで、読み出し対象のキューのキュー識別情報と、読み出し対象となるパケットデータのパケット識別情報を含む選択制御情報と、キューに格納されたデータの読み出しを指示する読み出し命令を、セレクタ７３６に出力する。
【００６０】
セレクタ７３６は読み出し制御部７２８から選択制御情報及び読み出し命令を受けとり、受けとった選択制御情報及び読み出し命令に基づいて、複数のキュー７３４‐１〜ｋの中から読み出し対象のキューを選択し、選択されたキューに格納されたパケットデータを同期メッセージ識別部７０４に出力する。
【００６１】
競合判定部７３０は、同期メッセージ識別部７２６から同期メッセージ識別情報を受けとる。競合判定部７３０は同期メッセージ識別情報を受けとったとき、セレクタ７３６において複数のキュー７３４‐１〜ｋの中の１つのキューからパケットデータが出力されている最中であるか否かを判定する。すなわち、競合判定部７３０は、読み出し制御部７２８がセレクタ７３６に上述の選択制御信号を出力した後、セレクタ７３６によるデータの読み出しが完了するまでに要する期間（読み出し期間）内に、同期メッセージ識別情報を受けとったか否かを判定する。
【００６２】
競合判定部７３０は、同期メッセージ識別情報を受けとったとき、セレクタ７３６においてパケットデータが出力されている最中である場合、同期メッセージと他のパケットデータとの間に競合が有ると判定し、同期メッセージに送信待ちが発生したと判断する。一方、競合判定部７３０は、同期メッセージ識別情報を受けとったとき、セレクタ７３６においてパケットデータが出力されていない場合、対応するキュー７３４−１に格納された同期メッセージは他のキューの影響を受けずにセレクタ７３６から出力されるので、同期メッセージと他のパケットデータとの間に競合は無いと判定し、同期メッセージに送信待ちが発生していないと判断する。競合判定部７３０は、競合の有無を示す競合判定情報を、受けとった同期メッセージ識別情報とともに、中継時間算出部７１０と遅延挿入制御部７１４（書き込み制御部７４２、読み出し制御部７４４）に出力する。
【００６３】
ここで、同期メッセージと先に到着したパケットデータとの間で競合が発生した場合は、そのパケットデータの対応するキューからの出力が完了するまで、同期メッセージは対応するキュー７３４‐１において出力を待たされ、その競合に起因する待ち時間の分だけ、同期メッセージの出力が遅延されることになる。同期メッセージの出力遅延は、中継装置７００から同期メッセージが送信されるタイミングに影響を与えることから、競合が発生した場合には、同期メッセージに送信待ちが発生する。この待ち時間の発生は、出力制御部７０６が上述の優先制御処理を行ったとしても避けることはできず、例えば同期メッセージの優先度を最高クラスに設定しても、すでに優先度の低いクラスのパケットデータの出力が行われている場合は、そのパケットデータの出力が終わるまでは、同期メッセージを出力することはできない。同期メッセージよりも高い優先度を設定されたパケットデータが他に存在する場合は、優先制御処理の結果、待ち行列等の影響により、上述の競合に起因する待ち時間はさらに長くなり、同期メッセージの送信待ちはさらに長くなる。
【００６４】
同期メッセージ識別部７０４は、セレクタ７３６から、読み出し対象のキューに格納されたパケットデータを受けとり、受けとったパケットデータが同期メッセージであるか否かを判定する。同期メッセージであるか否かの判定は、同期メッセージ識別部７０２の場合と同様である。同期メッセージ識別部７０４は、受けとったパケットデータが同期メッセージであった場合、同期メッセージに含まれる同期メッセージ識別情報を抽出し、抽出した同期メッセージ識別情報を遅延測定部７０８に出力する。抽出される同期メッセージ識別情報は、同期メッセージ識別部７０２の場合と同様である。
【００６５】
遅延測定部７０８は、同期メッセージ識別部７０２‐１〜Ｎ、７０４から同期メッセージ識別情報を受けとる。遅延測定部７０８は、同一の同期メッセージについて、同期メッセージ識別部７０２から同期メッセージ識別情報を受けとった時刻と、同期メッセージ識別部７０４から同期メッセージ識別情報を受けとった時刻を取得し、取得された２つの時刻の差分の時間を算出することにより、出力制御部７０６による出力タイミング制御に起因する、同期メッセージの遅延時間を測定する。遅延測定部７０８は、測定された遅延時間を示す遅延時間情報を、対応する同期メッセージの同期メッセージ識別情報とともに、中継時間算出部７１０と挿入遅延算出部７１２に出力する。
【００６６】
尚、遅延測定部７０８で測定される遅延時間は、同期メッセージを入力ポートから入力してから、出力制御部７０６内の各部を経由して同期メッセージを出力ポートに出力するまでに要する最小の処理サイクルに相当する処理遅延時間と、先に到着した他のパケットデータとの競合により、同期メッセージが対応するキュー７３４‐１において出力を待たされることに起因する競合遅延時間を含むものである。処理遅延時間は、出力制御部７０６の各部の特性によって定まるものであり、入力される同期メッセージによらず固定値となるが、競合遅延時間は、同期メッセージと他のパケットデータとの間に競合が無い場合には発生せず、競合が有る場合には、その値は同期メッセージの競合状態に応じて大きく変動するものである。競合遅延時間は、同期メッセージの送信待ちの時間に対応する。
【００６７】
中継時間算出部７１０は、競合判定部７３０から競合判定情報及び対応する同期メッセージ識別情報を受けとり、遅延測定部７０８から遅延時間情報及び対応する同期メッセージ識別情報を受けとる。中継時間算出部７１０は、受けとった遅延時間情報に基づいて、競合を有する同期メッセージに対する中継時間の設定値（中継時間設定値）を算出する。例えば、中間時間算出部７１０は、以下のように、予め定められた測定期間内に測定された遅延時間の最大値を、中継時間設定値として算出する。中間時間算出部７１０は、算出した中継時間設定値を示す中継時間情報を挿入遅延算出部７１２に出力する。
【００６８】
図９は、中継時間算出部７１０において中継時間設定値を算出する処理の一例を説明するための図である。
【００６９】
図９に示した例では、中継時間算出部７１０は、遅延時間の測定期間を予め定めておき、定められた測定期間内に、遅延測定部７０８から、複数の同期メッセージに対応する複数の遅延時間情報を受けとることにより、遅延時間値を含む一定量の遅延時間データを収集する。図９（a）及び（ｂ）は、中継時間算出部７１０によって収集された遅延時間データの例を示すものである。
【００７０】
中継時間算出部７１０は、収集された遅延時間データに基づいて、測定期間内に遅延測定部７０８によって測定された遅延時間の値の中の最大値を算出し、算出された遅延時間の最大値を中継時間設定値として設定する。
【００７１】
図９から分かるように、中継時間算出部７１０によって算出される中継時間設定値は、中継装置７００における競合トラフィックの帯域の大きさによって異なる。すなわち、競合トラフィックの帯域が小さいときは、遅延時間データにおいて、競合遅延時間の分布は狭くなり、競合遅延時間の最大値も小さいものとなるため、中継時間設定値はより小さいものとなる。これに対して、競合トラフィックの帯域が大きいときは、遅延時間データにおいて、競合遅延時間の分布は広くなり、競合遅延時間の最大値も大きなものとなる結果、中継時間設定値はより大きいものとなる。
【００７２】
以上のように、中継時間算出部７１０では、中継時間設定値を同期メッセージの競合状態に応じた最適値に設定することができるので、中継時間設定値が一定のマージンを持たせた大きめの値に設定され、不要に大きな値に設定されるのを防止することができる。
【００７３】
挿入遅延算出部７１２は、中継時間算出部７１２から中継時間設定値を示す中継時間情報を受けとり、遅延測定部７０８から遅延時間情報及び対応する同期メッセージ識別情報を受けとる。挿入遅延算出部７１２は、受けとった同期メッセージ識別情報に対応する同期メッセージについて、受けとった中継時間情報によって示される中継時間設定値と、受けとった遅延時間情報によって示される遅延時間に基づいて、挿入遅延時間の値を算出する。例えば、挿入遅延算出部７１２は、同期メッセージ識別情報に対応する同期メッセージについて、対応する中継時間設定値と遅延時間の差分値を、挿入遅延時間の値として算出する。すなわち、挿入遅延時間は、以下の式（２）により算出される。
【００７４】
挿入遅延時間＝中継時間設定値−遅延時間
＝中継時間設定値−処理遅延時間−競合遅延時間
・・・（２）
挿入遅延算出部７１２は、算出した挿入遅延時間を示す挿入遅延情報を遅延挿入制御部７１４（読み出し制御部７４４）に出力する。
【００７５】
また、挿入遅延算出部７１２は、遅延測定部７０８によって測定された遅延時間の値が、中継時間算出部７１０によって設定された中継時間設定値よりも大きく、上述の式（２）によって算出される挿入遅延時間の値が負の値となる場合、対応する同期メッセージの廃棄を決定する。挿入遅延算出部７１２は、同期メッセージの廃棄を決定した場合、算出した挿入遅延時間の情報に代えて、同期メッセージの廃棄指示を示す情報を、挿入遅延情報として、読み出し制御部７４４に出力する。
【００７６】
遅延挿入制御部７１４は、出力ポートを介して同期メッセージを含むパケットデータを送信する送信部の機能を有する。遅延挿入制御部７１４において、書き込み制御部７４２は同期メッセージ識別部７０４から、セレクタ７３６から出力された、同期メッセージを含むパケットデータを受けとり、競合判定部７３０から、競合判定情報と、対応する同期メッセージ識別情報を受けとる。書き込み制御部７４２は、競合判定情報によって示される競合の有無と、同期メッセージ識別情報に基づいて、受けとったパケットデータを、同期メッセージ用のバイパスキュー７４８、同期メッセージ用の遅延挿入キュー７５０、及び同期メッセージ以外のパケット用のタイミング調整キュー７５２のいずれかに格納する。書き込み制御部７４２は、格納されるパケットデータについて、パケット識別情報、パケット長情報、及び格納先のキューのキュー識別情報を読み出し制御部７４４に出力する。
【００７７】
書き込み制御部７４２は、受けとったパケットデータが同期メッセージであって、かつ、受けとった競合判定情報が、競合が無いことを示す場合には、受けとった同期メッセージをバイパスキュー７４８に格納する。書き込み制御部７４２は、受けとったパケットデータが同期メッセージであって、かつ、受けとった競合判定情報が、競合が有ることを示す場合には、受けとった同期メッセージを遅延挿入キュー７５０に格納する。書き込み制御部７４２は、受けとったパケットデータが同期メッセージ以外のパケットデータである場合には、受けとったパケットデータをタイミング調整キュー７５２に格納する。
【００７８】
読み出し制御部７４４は、競合判定部７３０から、競合判定情報と、対応する同期メッセージ識別情報を受けとり、挿入遅延算出部７１２から挿入遅延情報を受けとる。また、読み出し制御部７４４は、書き込み制御部７４２からパケット識別情報、パケット長情報、及びキュー識別情報を受けとる。
【００７９】
読み出し制御部７４４は、受けとった競合判定情報が、競合が無いことを示すとき、バイパスキュー７４８を読み出し対象のキューとして決定する。読み出し制御部７４４は、書き込み制御部７４２から上述の各情報を受けとった後、最小の処理サイクル経過後、バイパスキュー７４８のキュー識別情報と、読み出し対象となる同期メッセージのパケット識別情報を含む選択制御情報と、キューに格納されたデータの読み出しを指示する読み出し命令をセレクタ７５４に出力する。
【００８０】
セレクタ７５４は、読み出し制御部７４４から選択制御情報及び読み出し命令を受けとり、受けとった選択制御情報及び読み出し命令に基づいて、バイパスキュー７４８に格納された同期メッセージを出力ポートに出力する。すなわち、バイパスキュー７４８に格納された同期メッセージは、読み出し制御部７４４の制御の下で、バイパスキュー７４８に格納された後、最小の処理サイクルで遅滞なく出力される。
【００８１】
従って、受信された同期メッセージと他のパケットデータとの間に競合が無い場合、遅延挿入制御部７１４において遅延が挿入されないため、中継装置７００における中継時間はおおよそ、上述の処理遅延時間に等しいものとなる。
【００８２】
一方、読み出し制御部７４４は、受けとった競合判定情報が、競合が有ることを示すとき、遅延挿入キュー７５０を読み出し対象のキューとして決定する。読み出し制御部７４４は、書き込み制御部７４２から上述の各情報を受けとった後、受けとった挿入遅延情報によって示される挿入遅延時間に対応した処理サイクル分だけ遅延させたタイミングで、遅延挿入キュー７５０のキュー識別情報と、読み出し対象となる同期メッセージのパケット識別情報を含む選択制御情報と、キューに格納されたデータの読み出しを指示する読み出し命令を、セレクタ７５４に出力する。
【００８３】
セレクタ７５４は、読み出し制御部７４４から選択制御情報及び読み出し命令を受けとり、受けとった選択制御情報及び読み出し命令に基づいて、遅延挿入キュー７５０に格納された同期メッセージを出力ポートに出力する。すなわち、遅延挿入キュー７５０に格納された同期メッセージは、読み出し制御部７４４の制御の下で、遅延挿入キュー７５０に格納された後、出力タイミングを挿入遅延時間に対応した処理サイクル分だけ遅延させた上で、出力される。
【００８４】
従って、受信された同期メッセージと他のパケットデータとの間に競合が有る場合、中継装置７００における全体の中継時間が、中継時間算出部７１０によって算出された中継時間設定値に等しくなるように、遅延挿入制御部７１４において遅延が挿入されるため、中継装置７００における中継時間はおおよそ、中継時間算出部７１０によって算出された中継時間設定値に等しいものとなる。
【００８５】
但し、読み出し制御部７４４は、受けとった挿入遅延情報が同期メッセージの廃棄指示を示すとき、遅延挿入キュー７５０に格納された同期メッセージの廃棄を決定する。読み出し制御部７４４は、遅延挿入キュー７５０のキュー識別情報と、廃棄対象となる同期メッセージのパケット識別情報を含む選択制御情報と、キューに格納されたデータの廃棄を指示する廃棄命令を、セレクタ７５４に出力する。
【００８６】
セレクタ７５４は、読み出し制御部７４４から選択制御情報及び廃棄命令を受けとり、受けとった選択制御情報及び廃棄命令に基づいて、遅延挿入キュー７５０に格納された同期メッセージを廃棄する。すなわち、遅延挿入キュー７５０に格納された同期メッセージは出力ポートに出力されない。
【００８７】
尚、読み出し制御部７４４は、同期メッセージ以外のパケットデータがタイミング調整キュー７５２に格納されたときは、タイミング調整キュー７５２を読み出し対象のキューとして決定する。タイミング調整キュー７５２に格納されたパケットデータは、読み出し制御部７４４の制御の下で、タイミング調整キュー７５２に格納された後、パイパスキュー７４８及び遅延挿入キュー７５０のどちらからも同期メッセージが出力されていないタイミングで、出力される。
【００８８】
以上のように、中継装置７００の遅延挿入制御部７１４では、出力制御部７０６における同期メッセージの競合の有無や競合の度合いに応じて、同期メッセージの中継に対して挿入される遅延時間を最適化し、同期メッセージの中継時間を、競合の有無に応じた最適な固定値に設定することができる。すなわち、遅延挿入制御部７１４は、同期メッセージの競合が無い場合は、遅延を挿入することなく、中継時間を中継装置７００の最小中継時間である処理遅延時間に等しいものとし、競合が有る場合は、最適化された遅延を挿入することにより、中継時間を中継時間算出部７１０によって算出された必要最小限の中継時間設定値に等しいものとすることができる。このため、中継装置７００では、同期メッセージの中継時間を不要に長くすることなく、中継時間の変動を吸収することができる。
【００８９】
よって、スレーブ装置において、図１に示したＩＥＥＥ１５８８の時刻同期方式に従って時刻同期処理を行うときに、高価な発振器を用いることなく、スレーブ装置に設けられた発振器の周波数偏差の影響を小さくすることができ、スレーブ装置における時刻同期処理の精度を向上させることができる。
【００９０】
特に、図９（ａ）や図１２（ａ）のように競合トラフィックの帯域が小さい場合は、同期メッセージが受信されたときに競合が無い場合の発生確率が大きくなるので、中継装置７００は相対的に多くの同期メッセージを、中継時間を中継装置７００の最小中継時間である処理遅延時間に等しいものとした状態で、スレーブ装置に転送することができる。また、競合を有する同期メッセージであっても、中継装置７００は上述のように、中継時間を必要最小限の中継時間設定値に等しいものとして状態で、スレーブ装置に転送することができる。
【００９１】
ここで、スレーブ装置はマスタ装置と、一定量の同期メッセージを交換し、交換された同期メッセージごとに、時刻オフセット量を算出する。これにより、スレーブ装置は一定のサンプル数の時刻オフセット量を取得し、取得した時刻オフセット量のサンプルに対して統計処理等を施すことにより、時刻同期処理に使用する時刻オフセット量を決定する。
【００９２】
よって、競合トラフィックの帯域が小さい場合は、競合が無く、中継時間がより短い同期メッセージに基づいて算出された時刻オフセット量のサンプル数を増やすことができるので、スレーブ装置において、高価な発振器を用いることなく、スレーブ装置に設けられた発振器の周波数偏差の影響を小さくする効果が大きくなり、スレーブ装置における時刻同期処理の精度をさらに向上させることができる。
【００９３】
さらに、中継時間設定値を遅延時間の最大値に設定した場合には、後述するように、遅延時間の平均値に設定した場合に比べて、中継時間設定値をより大きい値に設定することができる。よって、受信された同期メッセージの中で、上述の式（２）によって算出される挿入遅延時間の値が負の値となる結果、挿入遅延算出部７１２によって廃棄と判定される同期メッセージの数を減らすことができる。よって、中継時間の変動を吸収しながら、中継装置からマスタ装置及びスレーブ装置に、より多くの同期メッセージを転送することができる。
ここで、後述するように、スレーブ装置は、取得した一定数の時刻オフセット量のサンプルに対して統計処理等を施すことにより、時刻同期処理に使用する時刻オフセット量を決定する。
【００９４】
ここで、上述のように、スレーブ装置は、取得した一定数の時刻オフセット量のサンプルに対して統計処理等を施すことにより、時刻同期処理に使用する時刻オフセット量を決定する。
【００９５】
従って、中継装置において中継時間設定値を遅延時間の最大値に設定した場合には、スレーブ装置において、より多くの同期メッセージサンプルに基づいて、時刻同期処理に使用する時刻オフセット量を決定することができるので、スレーブ装置における時刻同期処理の精度を向上させることができる。
【００９６】
［１−２．中継装置の遅延挿入制御］
図１０は、中継装置７００によって行われる遅延挿入制御処理の一例を説明するための図である。
【００９７】
図１０に示したように、中継装置７００が動作を開始すると、まず、遅延時間測定期間が始まる。
【００９８】
遅延時間測定期間においては、中継装置７００は、遅延測定部７０８によって、入力ポートにおいて受信される各々の同期メッセージについて遅延時間を測定する。図１０から分かるように、同期メッセージの遅延時間は競合の有無によって異なり、競合が無い場合は、競合遅延時間が発生しないため、遅延時間は短くなる。一方、競合が有る場合は、発生する競合遅延時間の長さに応じて、遅延時間の長さも変動する。
【００９９】
そして、中継装置７００は、中継時間算出部７１０によって、測定された種々の遅延時間を収集し、収集された遅延時間の値の中の最大値を算出する。中継時間算出部７１０は、算出された遅延時間の最大値を中継時間設定値として設定する。
【０１００】
尚、遅延時間測定期間においては、中継装置７００は遅延挿入制御処理を行わないため、遅延挿入制御部７１４では遅延挿入キュー７５０は使用されず、同期メッセージは全てバイパスキュー７４８を介して出力ポートに出力されることになる。
【０１０１】
遅延時間測定期間が終了すると、遅延挿入制御期間に移行する。
【０１０２】
遅延挿入制御期間においては、中継装置７００は、中継時間算出部７１０によって算出された中継時間設定値に基づいて、遅延挿入制御部７１４において遅延挿入制御処理を行う。中継装置７００は、各々の同期メッセージについて、算出された中継時間設定値に基づいて、挿入遅延算出部７１２によって挿入遅延時間を算出する。
【０１０３】
図１０に示したように、中継装置７００は、同期メッセージの競合が無い場合は、同期メッセージの中継に対して遅延を挿入せず、中継時間を中継装置７００の処理遅延時間に設定する。一方、競合が有る場合は、同期メッセージの中継に対して、挿入遅延算出部７１２によって算出された挿入遅延時間を挿入することにより、中継時間を、中継時間算出部７１０によって算出された中継時間設定値に設定する。すなわち、中継装置７００は、同期メッセージの競合の有無に応じて、その中継時間を異なる固定値に設定する。
【０１０４】
ここで、遅延時間測定期間は、中継装置７００の動作開始後だけでなく、一定期間ごとに定期的に設定されるのが好ましい。遅延時間測定期間を定期的に設定することにより、中継時間設定値を定期的に更新することができ、時間の経過に伴って中継装置７００における競合状態が変化した場合であっても、中継時間設定値を競合状態に応じた最適な値に設定することができるからである。
【０１０５】
これにより、競合状態が変化した場合であっても、中継装置７００における中継時間が不要に長くなることはなく、高価な発振器を用いることなく、スレーブ装置に設けられた発振器の周波数偏差の影響を小さくすることができ、スレーブ装置における時刻同期処理の精度を向上させることができる。
【０１０６】
尚、図１０ではマスタ装置からスレーブ装置に向けて同期メッセージが転送される場合を示したが、スレーブ装置からマスタ装置に向けて同期メッセージが転送される場合も、中継装置７００は、同様の遅延挿入制御処理を行う。
【０１０７】
［１−３．スレーブ装置の時刻同期処理］
ここで、図１及び図１０を参照しながら、スレーブ装置の時刻同期処理について説明する。
【０１０８】
スレーブ装置は、図１に示したＩＥＥＥ１５８８の時刻同期方式に従って、式（１）に基づいて時刻オフセット量を算出し、算出された時刻オフセット量に基づいて、時刻同期処理を実行する。
【０１０９】
一方、図１０において説明したように、中継装置７００における中継時間は、同期メッセージの競合の有無に応じて異なる固定値となる。すなわち、競合が無い場合、中継時間は処理遅延時間に固定され、競合が有る場合、中継時間は、処理遅延時間よりも長い中継時間設定値に固定される。
【０１１０】
従って、図１において、マスタ装置からスレーブ装置に転送される同期メッセージと、スレーブ装置からマスタ装置に転送される同期メッセージの間で、競合の有無の状態が異なる場合には、双方の同期メッセージの間で中継装置７００における中継時間が異なることとなり、マスタ装置からスレーブ装置までの転送時間ｔ‐ｍｓと、スレーブ装置からマスタ装置までの転送時間ｔ‐ｓｍの間には、少なくとも、中継時間設定値と処理遅延時間値の間の差分値に相当する測定誤差が生じることなる。例えば、ＰＴＰメッセージ（同期メッセージ）のうち、マスタ装置からスレーブ装置に転送されるＳｙｎｃメッセージについては、競合は無いが、スレーブ装置からマスタ装置に転送されるＤｅｌａｙ‐Ｒｅｑメッセージについては、競合が有るというような場合である。
【０１１１】
よって、スレーブ装置では、転送時間ｔ‐ｍｓと転送時間ｔ‐ｓｍの間の測定誤差により、式（１）に基づいて、時刻オフセット量を正確に算出することができない。
【０１１２】
そこで、スレーブ装置は、マスタ装置からスレーブ装置に転送される同期メッセージと、スレーブ装置からマスタ装置に転送される同期メッセージの間で、競合の有無の状態が同一であるか否かを判定し、競合の有無の状態が同一の場合にのみ、時刻オフセット量の算出を行ない、双方の同期メッセージの間で競合の有無の状態が異なる場合には、時刻オフセット量の算出を行わないようにする。そして、スレーブ装置は、双方の同期メッセージの間で競合の有無の状態が同一の場合に算出された時刻オフセット量に基づいて、時刻同期処理を実行する。
【０１１３】
尚、スレーブ装置は例えば、転送時間ｔ‐ｍｓと転送時間ｔ‐ｓｍの間の差分値を監視し、その差分値が予め定められた閾値より大きい場合に、競合の有無の状態が異なると判定し、時刻オフセット量の算出を行わないようにする。
【０１１４】
また、上述のように、スレーブ装置はマスタ装置と一定量の同期メッセージを交換することにより、一定のサンプル数の時刻オフセット量を取得し、取得した時刻オフセット量のサンプル対して統計処理等を施すことにより、時刻同期処理に使用する時刻オフセット量を決定する。従って、スレーブ装置において、一部の同期メッセージについて時刻オフセット量の算出を行わないこととしても、スレーブ装置において統計的に十分なサンプル数の時刻オフセット量を取得できる限り、時刻同期処理に与える影響は小さい。
【０１１５】
［１−４．中継装置７００における同期メッセージの中継処理］
図１１は、中継装置７００における同期メッセージの中継処理を説明するためのフローチャートである。図１１に示した同期メッセージの中継処理は、中継装置７００内の同期メッセージ識別部７０２、７０４、出力制御部７０６、遅延測定部７０８、中継時間算出部７１０、挿入遅延算出部７１２及び遅延挿入制御部７１４が相互に連携して実行する処理である。
【０１１６】
まず、ステップＳ１１０２において、中継装置７００の同期メッセージ識別部７０２‐１〜Ｎは、入力されたパケットデータが同期メッセージであることを識別することにより、同期メッセージの検出を行う。
【０１１７】
次に、ステップＳ１１０４において、出力制御部７０６の競合判定部７３０は、ステップＳ１１０２において検出した同期メッセージが、他のパケットデータとの間に競合を有するか否かを判定する。競合が有る場合はステップＳ１１０６に進み、競合が無い場合はステップＳ１１１２に進む。
【０１１８】
次に、ステップＳ１１０６において、遅延測定部７０８は、ステップＳ１１０２において検出した同期メッセージについて、出力制御部７０６による出力タイミング制御に起因する遅延時間を測定する。遅延測定部７０８で測定される遅延時間は、処理遅延時間と競合遅延時間を含むものである。処理遅延時間は、入力される同期メッセージによらず固定値であるが、競合遅延時間は、同期メッセージと他のパケットデータとの間に競合が無い場合には発生せず、競合が有る場合には、その値は同期メッセージの競合状態に応じて大きく変動するものである。
【０１１９】
また、中継時間算出部７１０は、遅延測定部７０８によって測定した遅延時間に基づいて、中継時間設定値を算出する。例えば、中継時間算出部７１０は、予め定められた測定期間内に測定された遅延時間の最大値を、中継時間設定値として算出する。
【０１２０】
そして、挿入遅延算出部７１２は、ステップＳ１１０２において検出した同期メッセージについて、中継時間算出部７１０によって算出した中継時間設定値と、遅延測定部７０８によって測定した遅延時間に基づいて、挿入遅延時間の値を算出する。例えば、挿入遅延算出部７１２は、上述の式（２）に基づいて、中継時間設定値と遅延時間の値の差分値を挿入遅延時間の値として算出する。さらに、挿入遅延算出部７１２は、算出した挿入遅延時間の値が負の値であるか否か、すなわち、遅延時間の値が中継時間設定値より大きいか否かを判定する。遅延時間の値が中継時間設定値より大きい場合、処理はステップＳ１１１０に進み、小さい場合、処理はステップＳ１１０８に進む。
【０１２１】
次に、ステップＳ１１０８において、遅延挿入制御部７１４は、ステップＳ１１０２において検出した同期メッセージを遅延挿入キュー７５０から、遅延挿入キュー７５０に格納した後、挿入遅延算出部７１２によって算出した挿入遅延時間だけ遅延させたタイミングで読み出し、出力ポートを介して送信する。この場合、中継装置７００における中継時間はおおよそ、中継時間算出部７１０によって算出された中継時間設定値に等しいものとなる。
【０１２２】
また、ステップＳ１１１０において、遅延挿入制御部７１４は、ステップＳ１１０２において検出した同期メッセージの廃棄を決定し、遅延挿入キュー７５０に格納された同期メッセージを出力ポートに出力しない。
【０１２３】
一方、ステップＳ１１１２において、遅延挿入制御部７１４は、ステップＳ１１０２において検出した同期メッセージをバイパスキュー７４８から、バイパスキュー７４８に格納された後、遅滞なく読み出し、出力ポートを介して送信する。この場合、中継装置７００における中継時間はおおよそ、処理遅延時間に等しいものとなる。
【０１２４】
以上説明したように、図１１に示した同期メッセージの中継処理によれば、同期メッセージの競合の有無に応じて遅延挿入の有無を決定しているので、同期メッセージの中継時間を、競合の有無に応じた最適な固定値に設定することができ、中継時間を不要に長くすることなく、中継時間の変動を吸収することができる。
【０１２５】
よって、スレーブ装置において、図１に示したＩＥＥＥ１５８８の時刻同期方式に従って時刻同期処理を行うときに、高価な発振器を用いることなく、スレーブ装置に設けられた発振器の周波数偏差の影響を小さくすることができ、スレーブ装置における時刻同期処理の精度を向上させることができる。
【０１２６】
［１−５．中継時間設定値の算出処理の他の例］
図１２は、中継時間算出部７１０において中継時間設定値を算出する処理の他の例を説明するための図である。
【０１２７】
図９に示した例では、中継時間算出部７１０は、予め定められた測定期間内に遅延測定部７０８によって測定された遅延時間の値の中の最大値を算出したが、図１２に示した例では、予め定められた測定期間内に遅延測定部７０８によって測定された遅延時間の値の平均値を算出する。
【０１２８】
より詳細には、図１２に示した例では、中継時間算出部７１０は、予め定められた測定期間内に、遅延測定部７０８から、複数の同期メッセージに対応する複数の遅延時間情報を受けとることにより、一定量の遅延時間値を含む遅延時間データを収集する。中継時間算出部７１０は、収集された遅延時間データに基づいて、測定期間内に遅延測定部７０８によって測定された遅延時間の値の平均値を算出し、算出された遅延時間の平均値を中継時間設定値として設定する。
【０１２９】
図１２から分かるように、中継時間算出部７１０によって算出される中継時間設定値は、中継装置７００における競合トラフィックの帯域の大きさによって異なる。すなわち、競合トラフィックの帯域が小さいときは、遅延時間データにおいて、競合遅延時間の分布が狭くなり、競合遅延時間の平均値は小さいものとなるため、中継時間設定値もより小さいものとなる。これに対して、競合トラフィックの帯域が大きいときは、遅延時間データにおいて、競合遅延時間の分布は広くなり、競合遅延時間の平均値は大きなものとなるので、中継時間設定値はより大きいものとなる。
【０１３０】
図１３は、中継装置７００によって行われる遅延挿入制御処理の他の例を説明するための図である。図１０に示した例では、中継時間設定値を測定された遅延時間の最大値に設定したが、図１３に示した例では、中継時間設定値を測定された遅延時間の平均値に設定している点が異なる。
【０１３１】
図１３に示した例では、図１０の場合と同様に、遅延時間測定期間において、中継装置７００は、遅延測定部７０８によって、入力ポートにおいて受信される各々の同期メッセージについて遅延時間を測定する。そして、中継装置７００は、中継時間算出部７１０によって、測定された種々の遅延時間を収集し、収集された遅延時間の値の中の平均値を算出する。中継時間算出部７１０は、算出された遅延時間の平均値を中継時間設定値として設定する。
【０１３２】
次に、遅延挿入制御期間においては、中継装置７００は、中継時間算出部７１０によって算出された中継時間設定値に基づいて、遅延挿入制御部７１４において遅延挿入制御処理を行う。中継装置７００は、各々の同期メッセージについて、算出された中継時間設定値に基づいて、挿入遅延算出部７１２によって挿入遅延時間を算出する。図１３に示したように、中継装置７００は、同期メッセージの競合の有無に応じて、その中継時間を、処理遅延時間又は中継時間設定値の固定値に設定する。
【０１３３】
尚、図１３ではマスタ装置からスレーブ装置に向けて同期メッセージが転送される場合を示したが、スレーブ装置からマスタ装置に向けて同期メッセージが転送される場合も、中継装置７００は、同様の遅延挿入制御処理を行う。
【０１３４】
以上説明したように、中継時間設定値を測定された遅延時間の平均値に設定した場合においても、中継時間算出部７１０では、中継時間設定値を同期メッセージの競合状態に応じた最適値に設定することができるので、中継時間設定値が一定のマージンを持たせた大きめの値に設定され、不要に大きな値に設定されるのを防止することができる。
【０１３５】
さらに、中継時間設定値を遅延時間の平均値に設定した場合には、遅延時間の最大値に設定した場合に比べて、中継時間設定値をより小さい値に設定することができる。よって、中継時間の変動を吸収しながら、中継装置における中継時間をより短い時間に固定することができる。
【０１３６】
これにより、マスタ装置とスレーブ装置の間の同期メッセージの転送時間をより短くすることができるので、スレーブ装置において、図１に示したＩＥＥＥ１５８８の時刻同期方式に従って時刻同期処理を行うときに、高価な発振器を用いることなく、スレーブ装置に設けられた発振器の周波数偏差の影響をより小さくすることができ、時刻同期処理の精度をさらに向上させことができる。
【０１３７】
［１−６．その他の変形例］
以下、第１実施例に係る中継装置７００の種々の変形例について説明する。
【０１３８】
［１−６−１．競合判定部７３０］
競合判定部７３０は、同期メッセージ識別部７２６から同期メッセージ識別情報を受けとったとき、セレクタ７３６においてパケットデータが出力されている最中であって、競合が発生している場合であっても、その競合に起因する同期メッセージの待ち時間が所定の閾値より短いときは、同期メッセージと他のパケットデータの間に競合が無いと判定するようにしてもよい。
【０１３９】
すなわち、競合判定部７３０は、読み出し制御部７２８がセレクタ７３６に選択制御信号を出力してから同期メッセージ識別情報を受けとるまでの期間が、所定の競合判定期間よりも長い場合には、セレクタ７３６においてパケットデータが出力されているか否かによらず、競合は無いと判定する。ここで、競合判定期間は上述の読み出し期間よりも短く設定される。
【０１４０】
スレーブ装置が図１に示した式（１）に基づいて時刻オフセット量を算出するときに、同期メッセージの待ち時間によって生じる競合遅延時間が、転送時間ｔ‐ｍｓ又はｔ−ｓｍの測定誤差として許容し得る範囲内のものであれば、遅延挿入制御部７１４において遅延を挿入しても、中継時間を不要に長くすることになるためである。
【０１４１】
［１−６−２．中継時間算出部７１０］
中継時間算出部７１０は、遅延時間測定期間を定期的に設定することにより、中継時間設定値を定期的に更新する際に、遅延測定部７０８によって測定された遅延時間に基づいて算出された遅延時間値（中継時間の更新値）と、中継時間設定値の現在値との間の変化量を算出し、算出した変化量が予め定められた閾値を超えた場合に、その算出された更新値により、中継時間設定値を更新するようにしてもよい。
【０１４２】
また、中継時間算出部７１０は、中継時間設定値としてとり得る値を予め離散的な値として定めておき、遅延測定部７０８によって測定された遅延時間に基づいて算出される遅延時間値と、実際に設定される中継時間設定値の関係を階段関数として設定しておいてもよい。この場合、中継時間算出部７１０は、遅延時間測定期間を定期的に設定することにより、中継時間設定値を定期的に更新する際に、算出される遅延時間値をそのまま中継時間設定値の更新値とするのではなく、算出される遅延時間値が増加したとき、設定された階段関数に従って、中継時間設定値を増加させる。
【０１４３】
上述の２つの場合、中継時間算出部７１０によって中継時間設定値に更新する際に、現在値からの、算出された中継時間設定値の更新値の変化量が小さい場合には、中継時間設定値は変化せずに同一の値のまま固定され、中継装置７００における中継時間は同一の値に固定され安定する。
【０１４４】
これにより、スレーブ装置が図１に示したＩＥＥＥ１５８８の時刻同期方式に従って、式（１）に基づいて時刻オフセット量を算出するときに、転送時間ｔ‐ｍｓと転送時間ｔ‐ｓｍの間の測定誤差を小さくすることができ、時刻オフセット量の算出誤差を小さくすることができる。よって、スレーブ装置は、時刻同期処理を行うときに、時刻オフセット量をより簡単かつ正確に算出することができ、スレーブ装置における時刻同期処理の処理精度を向上させることができる。
【０１４５】
さらに、中継時間算出部７１０は、図９や図１２に示した例では、測定期間内に測定された遅延時間の最大値や平均値を中継時間設定値として算出したが、中継時間設定値の算出方法はこれに限定されない。中継時間算出部７１０は、測定期間内に測定された遅延時間の最大値や平均値にさらに、予め定められた演算処理を施すことによって得られる値を中継時間設定値としてもよく、例えば、遅延時間の最大値の８０％に相当する値を中継時間設定値とするようにしてもよい。
【０１４６】
［２．第２実施例］
以下、第２実施例に係る中継装置及び中継方法について説明する。
【０１４７】
図１４は、第２実施例に係る中継装置１４００の構成例を示す図である。図１４に示した中継装置１４００は、伝送装置であって、図７に示した中継装置７００と、フラグ付与部１４６２が追加され、遅延挿入制御部７１４及び読み出し制御部７４４の代わりに、遅延挿入制御部１４１４及び読み出し制御部１４４４が設けられている点で異なるが、それ以外の部分は同様である。図７に示した中継装置７００と同一又は対応する部分は、同一の符号で示されている。図７において同一の符号で示した部分の動作や機能は、図７において説明したとおりであるので、詳細な説明は省略する。
【０１４８】
中継装置１４００において、遅延挿入制御部１４１４の読み出し制御部１４４４は、図７に示した読み出し制御部７１４と同一の機能に加えて、セレクタ７５４からの同期メッセージの出力に対して遅延が挿入されたか否かを示すフラグ設定情報を、対応する同期メッセージの同期メッセージ識別情報とともに、フラグ付与部１４６２に出力する。
【０１４９】
フラグ付与部１４６２は、セレクタ７５４から、バイパスキュー７４８、遅延挿入キュー７５０又は及びタイミング調整キュー７５２のいずれか１つのキューに格納されたパケットデータを受けとる。また、フラグ付与部１４６２は、読み出し制御部１４４４から、フラグ設定情報及び対応する同期メッセージ識別情報を受けとる。
【０１５０】
フラグ付与部１４６２は、受けとったパケットデータが、受けとった同期メッセージ識別情報を含む同期メッセージである場合、受けとった同期メッセージに遅延挿入フラグを付与する。フラグ付与部１４０２は、遅延挿入フラグを付与した後の同期メッセージを出力ポートに出力する。
【０１５１】
遅延挿入フラグは例えば、図８に示したＰＴＰメッセージ（同期メッセージ）のｒｅｓｅｒｖｅｄ領域の中に予め設定された専用のフィールドに格納される。フラグ付与部１４６２は、受けとったフラグ設定情報が、遅延が挿入されたことを示す場合に、受けとった同期メッセージに、遅延が挿入されたことを示す遅延挿入フラグを付与する。
【０１５２】
以上説明したように、中継装置１４００においては、フラグ付与部１４６２により、遅延挿入制御部１４１４において出力に対して遅延が挿入されたか否かを示す遅延挿入フラグを付与した状態で、同期メッセージをマスタ装置又はスレーブ装置に転送することができる。
【０１５３】
よって、遅延挿入制御部１４１４において遅延が挿入されたということは、出力制御部７０６において同期メッセージの競合が有ったということを意味するので、スレーブ装置は、中継装置１４００を経由した同期メッセージを受けとり、図１に示したＩＥＥＥ１５８８の時刻同期方式に従って、式（１）に基づいて時刻オフセット量を算出するときに、受けとった同期メッセージの遅延挿入フラグを監視することにより、マスタ装置からスレーブ装置に転送される同期メッセージと、スレーブ装置からマスタ装置に転送される同期メッセージの間で、競合の有無の状態が同一であるか否かを、より簡単かつ正確に判定することができる。
【０１５４】
スレーブ装置は、例えば、ＰＴＰメッセージ（同期メッセージ）のＳｙｎｃメッセージに含まれる遅延挿入フラグと、Ｄｅｌａｙ−Ｒｅｓｐメッセージに含まれる遅延挿入フラグが同一の内容を示すとき、競合の有無の状態が同一であると判定する。尚、マスタ装置は、Ｄｅｌａｙ‐Ｒｅｑメッセージを受けとったとき、受けとったＤｅｌａｙ‐Ｒｅｑメッセージに付与された遅延挿入フラグをそのまま、Ｄｅｌａｙ‐Ｒｅｓｐメッセージに付与し、Ｄｅｌａｙ‐Ｒｅｑメッセージと同一の遅延挿入フラグを含むＤｅｌａｙ‐Ｒｅｓｐメッセージをスレーブ装置にする。
【０１５５】
従って、スレーブ装置は、時刻同期処理を行うときに、時刻オフセット量をより簡単かつ正確に算出することができるので、スレーブ装置における時刻同期処理について、処理の負荷を軽減するとともに、処理精度を向上させることができる。
【０１５６】
［３．第３実施例］
以下、第３実施例に係る中継装置及び中継方法について説明する。
【０１５７】
図１５は、第３実施例に係る中継装置１５００の構成例を示す図である。図１５に示した中継装置１５００は、伝送装置であって、図１４に示した中継装置１４００と、フラグ付与部１４６２及び中継時間算出部７１０の代わりに、フラグ付与部１５６２及び中継時間算出部１５１０が設けられている点で異なるが、それ以外の部分は同様である。図１４に示した中継装置１４００と同一又は対応する部分は、同一の符号で示されている。図１４において同一の符号で示した部分の動作や機能は、図７及び図１４において説明したとおりであるので、詳細な説明は省略する。
【０１５８】
中継装置１５００において、中継時間算出部１５１０は、図７に示した中継時間算出部１５１０と同一の機能に加えて、挿入遅延算出部７１２に供給する中継時間設定値を変更したことを示す中継時間変更情報をフラグ付与部１５６２に出力する。
【０１５９】
フラグ付与部１５６２は、セレクタ７５４から、バイパスキュー７４８、遅延挿入キュー７５０又は及びタイミング調整キュー７５２のいずれか１つのキューに格納されたパケットデータを受けとる。また、フラグ付与部１５６２は、読み出し制御部１４４４から、フラグ設定情報及び対応する同期メッセージ識別情報を受けとり、中継時間算出部１５１０から中継時間変更情報を受けとる。
【０１６０】
フラグ付与部１５６２は、受けとったパケットデータが、受けとった同期メッセージ識別情報を含む同期メッセージである場合、受けとった同期メッセージに、遅延挿入フラグと中継遅延時間変更フラグを付与する。フラグ付与部１４０２は、遅延挿入フラグ及び中継時間変更フラグを付与した後の同期メッセージを出力ポートに出力する。
【０１６１】
遅延挿入フラグと中継時間変更フラグは例えば、それぞれ図８に示したＰＴＰメッセージ（同期メッセージ）のｒｅｓｅｒｖｅｄ領域の中に予め設定された専用のフィールドに格納される。フラグ付与部１５６２は、受けとったフラグ設定情報が、遅延が挿入されたことを示すものである場合、受けとった同期メッセージに、遅延が挿入されたことを示す遅延挿入フラグを付与し、受けとった中継時間変更情報が、中継時間設定値が変更されたことを示す場合、受けとった同期メッセージに、中継装置１５００において設定される中継時間が変更されたことを示す中継時間変更フラグを付与する。
【０１６２】
以上説明したように、中継装置１５００においては、フラグ付与部１５６２により、遅延挿入制御部１４１４において出力に対して遅延が挿入されたか否かを示す遅延挿入フラグに加えて、中継装置１５００において設定される中継時間が変更されたか否かを示す中継時間変更フラグを付与した状態で、同期メッセージをマスタ装置又はスレーブ装置に転送することができる。
【０１６３】
よって、スレーブ装置は、図１に示したＩＥＥＥ１５８８の時刻同期方式に従って、式（１）に基づいて時刻オフセット量を算出するときに、受けとった同期メッセージの遅延挿入フラグを監視することにより、マスタ装置からスレーブ装置に転送される同期メッセージと、スレーブ装置からマスタ装置に転送される同期メッセージの間で、競合の有無の状態が同一であるか否かを、より簡単かつ正確に判定することができる。
【０１６４】
さらに、スレーブ装置は、同期メッセージの競合が有る場合に、式（１）に基づいて時刻オフセット量を算出するときに、受けとった同期メッセージの中継時間変更フラグを監視することにより、中継装置１５００において設定される中継時間が変更されたか否かに応じた算出制御をすることができる。
【０１６５】
スレーブ装置は、例えば、受信した同期メッセージに付与された中継時間変更フラグが、中継時間が変更されたことを示すか否かを監視し、中継時間変更フラグが、中継時間が変更されたことを示す場合は、受信した同期メッセージを用いた時刻オフセット量の算出を行わないようにする。
【０１６６】
あるいは、スレーブ装置は、中継時間変更フラグが、中継時間が変更されたことを示す場合、マスタ装置からスレーブ装置までの同期メッセージの転送時間ｔ‐ｍｓと、スレーブ装置からマスタ装置までの同期メッセージの転送時間ｔ‐ｓｍの間の差分値を算出する。スレーブ装置は、その差分値が予め定められた閾値より大きい場合には、転送時間ｔ‐ｍｓと転送時間ｔ‐ｓｍの間の測定誤差が許容範囲を超えたと判定し、時刻オフセット量の算出を行わないようにすることも可能である。
【０１６７】
従って、スレーブ装置は、時刻同期処理を行うときに、時刻オフセット量をより簡単かつ正確に算出することができるので、スレーブ装置における時刻同期処理について、処理の負荷を軽減するとともに、処理精度を向上させることができる。
【０１６８】
［４．第４実施例］
以下、第４実施例に係る中継装置及び中継方法について説明する。
【０１６９】
図１６は、第４実施例に係る中継装置１６００の構成例を示す図である。図１６に示した中継装置１６００は、伝送装置であって、図７に示した中継装置７００と、測定遅延部７０８、中継時間算出部７１０及び遅延挿入算出部７１２がマスタ装置とスレーブ装置の間のセッションごとに独立して設けられている点で異なるが、それ以外の部分は同様である。図７に示した中継装置７００と同一又は対応する部分は、同一の符号で示されている。図７において同一の符号で示した部分の動作や機能は、図７において説明したとおりであるので、詳細な説明は省略する。
【０１７０】
中継装置１６００においては、中継装置１６００を経由してパケットデータが転送される複数のセッションが確立される場合に対応して、複数のセッションごとに、複数の遅延測定部１６０８（１６０８‐１〜ｍ）、複数の中継時間算出部１６１０（１６１０‐１〜ｍ）、及び複数の挿入遅延算出部１６１２（１６１２‐１〜ｍ）がセッションごとに独立して設けられている。
【０１７１】
遅延測定部１６０８‐１、中継時間算出部１６１０‐１、及び挿入遅延算出部１６１２‐１は１番目のセッション（セッション＃１）に対応して設けられ、セッション＃１に属する同期メッセージについて、出力制御部７０６による出力タイミング制御に起因する遅延時間を測定し、測定された遅延時間に基づいて中継時間設定値を設定し、挿入遅延時間を算出する。
【０１７２】
同様に、遅延測定部１６０８‐ｍ、中継時間算出部１６１０‐ｍ、及び挿入遅延算出部１６１２‐ｍはｍ番目のセッション（セッション＃ｍ）に対応して設けられ、セッション＃ｍに属する同期メッセージについて、出力制御部７０６による出力タイミング制御に起因する遅延時間を測定し、測定された遅延時間に基づいて中継時間設定値を設定し、挿入遅延時間を算出する。
【０１７３】
例えば、図２に示したパケット伝送網２００において、マスタ装置２０２とスレーブ装置２０４‐１との間のセッションと、マスタ装置２０２とスレーブ装置２０４‐２との間のセッションが確立されている場合には、中継装置２０６‐１においては、２つのセッションに対して、遅延測定部１６０８、中継時間算出部１６１０、及び挿入遅延算出部１６１２のセットが別々に割り当てられる。
【０１７４】
セッションの識別は例えば、遅延測定部１６０８−１〜ｍによって、同期メッセージ識別部７０２、７０４から出力される同期メッセージ識別情報に含まれるＭＡＣアドレス情報ＭＡＣ  ＤＡ、ＭＡＣ  ＳＡ基づいて行われる。遅延測定部１６０８‐１〜ｍはそれぞれ、ＭＡＣアドレス情報ＭＡＣ  ＤＡ、ＭＡＣ  ＳＡによって示される、発信元ＭＡＣアドレス及び宛先ＭＡＣアドレスに基づいて、セッションを識別し、発信元ＭＡＣアドレス及び宛先ＭＡＣアドレスが同一である場合に、その同期メッセージは同一のセッションに属すると判定する。
【０１７５】
尚、遅延測定部１６０８‐１〜ｍ、中継時間算出部１６１０‐１〜ｍ、及び挿入遅延算出部１６１２‐１〜ｍの各々の動作はそれぞれ、図７に示した遅延測定部７０８、中継時間算出部７１０及び遅延挿入算出部７１２と同様であるので、詳細な説明は省略する。
【０１７６】
以上説明したように、中継装置１６００では、マスタ装置とスレーブ装置の間の異なるペアの間で複数のセッションが確立され、複数のセッションに対応する同期メッセージが１つの中継装置を経由して転送される場合に、セッションごとに独立して出力制御部７０６による出力タイミング制御に起因する遅延時間を測定し、中継時間設定値を設定することができる。よって、中継装置１６００では、中継時間設定値をセッションごとに最適化された値に設定することができるので、中継時間の変動を吸収しながら、中継装置における中継時間を、セッションのトラフィック状況に応じた、より短い時間に固定することができる。
【０１７７】
これにより、マスタ装置とスレーブ装置の間の同期メッセージの転送時間をより短くすることができるので、スレーブ装置において、図１に示したＩＥＥＥ１５８８の時刻同期方式に従って時刻同期処理を行うときに、高価な発振器を用いることなく、スレーブ装置に設けられた発振器の周波数偏差の影響をより小さくすることができ、時刻同期処理の精度を向上させことができる。
【０１７８】
［５．第５実施例］
以下、第５実施例に係る中継装置及び中継方法について説明する。
【０１７９】
図１７は、第５実施例に係る中継装置１７００の構成例を示す図である。図１７に示した中継装置１７００は、伝送装置であって、上り経路処理部１７７２、下り経路処理部１７７４、及び中継時間比較部１７７６を含む。
【０１８０】
上り経路処理部１７７２は、中継装置１７００を経由する双方向の伝送経路のうちの一方の経路（上り経路）を伝播するパケットデータを処理する部分であり、例えば、スレーブ装置からマスタ装置への経路を伝播するパケットデータを処理する部分である。下り経路処理部１７７４は、双方向の伝送経路の他方の経路（下り経路）を伝播するパケットデータを処理する部分であり、例えば、マスタ装置からスレーブ装置への経路を伝播するパケットデータを処理する部分である。
【０１８１】
尚、多くの場合、中継装置１７００においては、上り側、下り側ともに、複数の出力ポートが設けられ、上り側出力ポートの数と同じ数だけ上り経路処理部１７７２が設けられ、下り側出力ポートの数と同じ数だけ下り経路処理部１７７４が設けられる。しかしながら、中継時間比較部１７７６がその間に設けられる上り経路処理部１７７２と下り経路処理部１７７４は、互いに同一のセッションに属する同期メッセージを中継するものであることが好ましく、同一のマスタ装置とスレーブ装置の間で交換される同期メッセージを中継するものであることが好ましい。
【０１８２】
上り経路処理部１７７２及び下り経路処理部１７７４はそれぞれ、図７に示した中継装置７００と同一の構成を有するものであり、図７に示した中継装置７００と同一又は対応する部分は、同一の符号で示されている。図７において同一の符号で示した部分の動作や機能は、図７において説明したとおりであるので、詳細な説明は省略する。
【０１８３】
中継時間比較部１７７６は、上り経路処理部１７７２と下り経路処理部１７７４の間に設けられ、上り経路処理部１７７２の中継時間算出部７１０と、下り処理経路部１７７４の中継時間算出部７１０からそれぞれ、中継時間情報を受けとる。中継時間比較部１７７６は、受けとった２つの中継時間情報に基づいて、上り経路処理部１７７２において設定された中継時間設定値と、下り経路処理部１７７４において設定された中継時間設定値を比較する。中継時間比較部１７７６は、比較により、大きい方の中継時間設定値を選択し、選択された大きい方の値を中継時間設定値の更新値として、上り経路処理部１７７２の挿入遅延算出部７１２と、下り経路処理部１７７４の挿入遅延算出部７１２にそれぞれ出力する。
【０１８４】
上り経路処理部１７７２の挿入遅延算出部７１２と、下り経路処理部１７７４の挿入遅延算出部７１２はそれぞれ、中継時間比較部１７７６から、中継時間設定値の更新値を受けとり、受けとった中継時間設定値の更新値に基づいて、挿入遅延時間の算出処理を行う。
【０１８５】
以上説明したように、中継装置１７００においては、上り経路処理部１７７２と下り経路処理部１７７４において設定される中継時間設定値を同一の値とすることができるので、中継装置１７００における上り経路の中継時間と下り経路の中継時間を互いに等しくすることができる。
【０１８６】
これにより、スレーブ装置が、図１に示したＩＥＥＥ１５８８の時刻同期方式に従って、式（１）に基づいて時刻オフセット量を算出するときに、マスタ装置からスレーブ装置までの同期メッセージの転送時間ｔ‐ｍｓと、スレーブ装置からマスタ装置までの転送時間ｔ‐ｓｍを等しくすることができ、転送時間ｔ‐ｍｓとｔ‐ｓｍの間の測定誤差を０（零）に近づけることができる。
【０１８７】
従って、スレーブ装置は、時刻同期処理を行うときに、時刻オフセット量をより正確に算出することができるので、スレーブ装置における時刻同期処理の精度をさらに向上させることができる。
【０１８８】
尚、図１７に示した例では、１つの上り経路処理部１７７２と、１つの下り経路処理部１７７４の間に中継時間比較部１７７６を設ける例を示したが、これには限定されない。
【０１８９】
中継装置１７００においては、多くの場合、複数の出力ポートが設けられ、上り側出力ポートの数と同じ数だけ上り経路処理部１７７２が設けられ、下り側出力ポートの数と同じ数だけ下り経路処理部１７７４が設けられる。
【０１９０】
そのため、複数の上り経路処理部１７７２と複数の下り経路処理部１７７４の間に中継時間比較部１７７６を設け、中継時間比較部１７７６が複数の上り経路処理部１７７２と複数の下り経路処理部１７７４からそれぞれ、中継時間情報を受けとるようにしてもよい。この場合、中継時間比較部１７７６は、受けとった中継時間情報によって示される全ての中継時間設定値の中の最大値を算出する。中継時間比較部１７７６は、算出された中継時間設定値の最大値を複数の上り経路処理部１７７２と複数の下り経路処理部１７７４の間に中継時間比較部１７７６に出力する。
【０１９１】
以上、本発明の例示的な実施形態の中継装置、及び中継方法について説明したが、本発明は、具体的に開示された実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。各実施例に開示された技術は、相互に矛盾することがない限り、適宜組合せることが可能であるものである。
【０１９２】
以上の第１ないし第５実施例を含む実施形態に関し、さらに以下の付記を開示する。
（付記１）
中継装置であって、
パケットデータを受信する受信部と、
受信した前記パケットデータが時刻同期のための同期メッセージを含む場合、前記中継装置において前記パケットデータに送信待ちが発生した場合には前記中継装置における中継処理時間が所定値となるように前記パケットデータを遅延させて送信し、前記中継装置において前記パケットデータに送信待ちが発生しない場合には前記パケットデータを遅延させずに送信する送信部と、
を有することを特徴とする中継装置。
（付記２）
前記受信されたパケットデータが前記同期メッセージのとき、前記同期メッセージについて、前記中継装置における遅延時間を測定する遅延測定部と、
複数の前記同期メッセージについての前記遅延時間を取得し、取得された複数の前記遅延時間に基づいて、前記中継処理時間の前記所定値に相当する中継時間設定値を算出する中継時間算出部と、
前記受信されたパケットデータが前記同期メッセージのとき、前記同期メッセージについての前記遅延時間と前記中継時間設定値に基づいて、挿入遅延時間を算出する挿入遅延算出部と、
をさらに有し、前記送信部は、
前記受信部から前記受信された同期メッセージを受けとり、前記受信された同期メッセージに前記送信待ちが発生したとき、前記算出された挿入遅延時間に基づいて遅延を挿入し、前記受信された同期メッセージに前記送信待ちが発生しないとき、前記遅延を挿入しない遅延挿入制御部と、
を含むことを特徴とする付記１記載の中継装置。
（付記３）
前記中継時間算出部は、前記中継時間設定値として、所定の測定期間内に測定された複数の前記遅延時間の最大値を算出することを特徴とする付記２記載の中継装置。
（付記４）
前記中継時間算出部は、前記中継時間設定値として、所定の測定期間内に測定された複数の前記遅延時間の平均値を算出することを特徴とする付記２記載の中継装置。
（付記５）
前記挿入遅延算出部は、前記同期メッセージごとに、前記中継時間設定値と前記遅延時間の差分に相当する時間を、前記挿入遅延時間として算出することを特徴とする付記２記載の中継装置。
（付記６）
前記遅延挿入制御部は、前記受信されたパケットデータが、前記送信待ちが発生した前記同期メッセージであって、かつ、前記同期メッセージについての前記遅延時間が前記中継時間設定値よりも長いとき、前記受信された同期メッセージを廃棄することを特徴とする付記２記載の中継装置。
（付記７）
前記遅延測定部は、前記同期メッセージについての前記遅延時間を測定する測定期間を定期的に設定し、
前記中継時間算出部は、前記測定期間内に測定された複数の前記遅延時間に基づいて、前記中継時間設定値を定期的に更新することを特徴とする付記２記載の中継装置。
（付記８）
前記中継時間算出部は、前記中継時間設定値を更新するとき、前記中継時間設定値を、複数の離散した設定値の中の１つの値に設定することを特徴とする付記７記載の中継装置。
（付記９）
前記遅延挿入制御部が、前記算出された挿入遅延時間に基づいて前記遅延を挿入したとき、前記送信待ちが発生した前記同期メッセージに、前記遅延の挿入を示す第１フラグ情報を付与するフラグ付与部
をさらに有することを特徴とする付記２記載の中継装置。
（付記１０）
前記フラグ付与部はさらに、前記中継時間算出部が前記中継時間を更新したとき、前記送信待ちが発生した前記同期メッセージに、前記中継時間設定値の更新を示す第２フラグ情報を付与することを特徴とする付記９記載の中継装置。
（付記１１）
前記中継時間算出部は、前記同期メッセージが転送されるセッションごとに、前記中継時間設定値を算出し、
前記挿入遅延算出部は、前記セッションごとに算出された前記中継時間設定値と、前記同期メッセージについての前記遅延時間に基づいて、前記セッションごとに前記挿入遅延時間を算出することを特徴とする付記２記載の中継装置。
（付記１２）
前記中継時間算出部は、前記同期メッセージが転送される上りの伝送経路と前記同期メッセージが伝送される下りの伝送経路について独立して、前記中継時間設定値を算出し、
前記中継装置は、
前記上りの伝送経路についての前記中継時間設定値と、前記下りの伝送経路についての前記中継時間設定値を比較し、前記比較された２つの中継時間設定値のうちの大きい方の中継時間設定値を選択する中継時間比較部
をさらに有し、
前記挿入遅延算出部は、前記選択された中継時間設定値に基づいて、前記上りの伝送経路と前記下りの伝送経路について独立して、前記挿入遅延時間を算出することを特徴とする付記２記載の中継装置。
（付記１３）
前記受信部は、
前記受信されたパケットデータを前記遅延挿入制御部に出力する出力タイミングを制御し、前記受信されたパケットデータが前記同期メッセージのとき、前記受信された同期メッセージが、前記受信された他のパケットデータとの間に競合を有するか否かを判定し、前記競合が有るとき、前記送信待ちが発生したと判断する出力制御部
を含み、
前記出力制御部は、前記受信された同期メッセージより前に受信された他のパケットデータを前記遅延挿入制御部に出力するタイミングで、前記同期メッセージを受信したときに、前記競合が有ると判定することを特徴とする付記２記載の中継装置。
（付記１４）
前記出力制御部は、前記受信された同期メッセージが、前記同期メッセージより前に受信された他のパケットデータによって前記遅延挿入制御部への出力を待たされる時間が所定の閾値より短いとき、前記競合が無いと判定することを特徴とする付記１３記載の中継装置。
（付記１５）
前記出力制御部は、
前記受信されたパケットデータが前記同期メッセージであるか否かを識別する同期メッセージ識別部と、
前記受信された複数のパケットデータを格納する第１格納部と、
前記第１格納部に格納された前記複数のパケットデータの読み出しを制御する第１読み出し制御部と、
前記受信されたパケットデータが前記同期メッセージのとき、前記受信された同期メッセージが、前記受信された他のパケットデータとの間に競合を有するか否かを判定する競合判定部と
を有し、
前記競合判定部は、前記第１読み出し制御部が前記第１格納部に、前記第１格納部に格納された前記複数のパケットの１つの読み出しを指示するタイミングで、前記同期メッセージ識別部が前記受信されたパケットデータが前記同期メッセージであることを識別したとき、前記競合が有ると判定することを特徴とする付記１３記載の中継装置。
（付記１６）
前記競合検出部は、前記第１読み出し制御部が前記格納部に、前記第１格納部に格納された前記複数のパケットデータの１つの読み出しを指示するタイミングと、前記同期メッセージ識別部が前記受信されたパケットデータが前記同期メッセージであることを識別したタイミングの間の時間差が所定の閾値より大きいとき、前記競合が無いと判定することを特徴とする付記１５記載の中継装置。
（付記１７）
前記遅延挿入制御部は、
前記出力制御部から出力された前記複数のパケットデータを格納する第２格納部と、
前記第２格納部に格納された前記複数のパケットデータの読み出しを制御する第２読み出し制御部と、
を有し、
前記第２読み出し制御部は、前記第２格納部に格納された前記同期メッセージが前記競合を有するとき、前記算出された挿入遅延時間に基づいて、前記同期メッセージを前記第２格納部から読み出すタイミングを遅延させ、
前記第２格納部に格納された前記同期メッセージが前記競合を有しないとき、前記同期メッセージを前記第２格納部から、最小の遅延時間により読み出すことを特徴とする付記２記載の中継装置。
（付記１８）
前記同期メッセージは、前記同期メッセージの発信元であるマスタ装置から、前記同期メッセージの宛先であるスレーブ装置に向けて、前記同期メッセージが発信された時刻を示す時刻情報を含むことを特徴とする付記１記載の中継装置。
（付記１９）
前記同期メッセージは、ＩＥＥＥ１５８８におけるＰＴＰメッセージであることを特徴とする付記１記載の中継装置。
（付記２０）
中継装置において、パケットデータを受信し、
受信した前記パケットデータが時刻同期のための同期メッセージを含む場合であって、前記中継装置において前記パケットデータに送信待ちが発生した場合には前記中継装置における中継処理時間が所定値となるように前記パケットデータを遅延させて送信し、
受信した前記パケットデータが時刻同期のための同期メッセージを含む場合であって、前記中継装置において前記パケットデータに送信待ちが発生しない場合には前記パケットデータを遅延させずに送信する
を有することを特徴とする中継方法。
【符号の説明】
【０１９３】
２００  パケット伝送網、
２０２  マスタ装置、
２０４‐１、２０４−２  スレーブ装置、
２０６−１〜５  中継装置、
２０８‐１〜３  情報処理装置、
３０２  セレクタ、
３０４  書き込み制御部、
３０６  読み出し制御部、
３０８‐１〜ｋ  キュー、
３１０  セレクタ、
３１２  メモリ、
７００  中継装置、
７０２‐１〜Ｎ、７０４  同期メッセージ（ｍｓｇ）識別部、
７０６  出力制御部、
７０８  遅延測定部、
７１０  中継時間算出部、
７１２  挿入遅延算出部、
７１４  遅延挿入制御部、
７２２  セレクタ、
７２４  書き込み制御部、
７２６  同期メッセージ（ｍｓｇ）識別部、
７２８  読み出し制御部、
７３０  競合判定部
７３２  メモリ、
７３４‐１〜ｋ  複数のキュー、
７３６  セレクタ、
７４２  書き込み制御部、
７４４  読み出し制御部、
７４６  メモリ、
７４８  バイパスキュー、
７５０  遅延挿入キュー、
７５２  タイミング調整キュー、
１４００  中継装置、
１４１４  遅延挿入制御部、
１４４４  読み出し制御部、
１４６２  フラグ付与部、
１５００  中継装置、
１５１０  中継時間算出部、
１５６２  フラグ付与部、
１６００  中継装置、
１６０８‐１〜ｍ  遅延測定部、
１６１０‐１〜ｍ  中継時間算出部、
１６１２‐１〜ｍ  挿入遅延算出部、
１７００  中継装置、
１７７２  上り経路処理部、
１７７４  下り経路処理部、
１７７６  中継時間比較部
【図１】
0005768624.tif 000002
【図２】
0005768624.tif 000003
【図３】
0005768624.tif 000004
【図４】
0005768624.tif 000005
【図５】
0005768624.tif 000006
【図６】
0005768624.tif 000007
【図７】
0005768624.tif 000008
【図８】
0005768624.tif 000009
【図９】
0005768624.tif 000010
【図１０】
0005768624.tif 000011
【図１１】
0005768624.tif 000012
【図１２】
0005768624.tif 000013
【図１３】
0005768624.tif 000014
【図１４】
0005768624.tif 000015
【図１５】
0005768624.tif 000016
【図１６】
0005768624.tif 000017
【図１７】
0005768624.tif 000018