(57)【要約】【課題】パケット集中によるマスタの負荷低減を図ること。【解決手段】中継装置は、マスタからスレーブ群に第１のパケット群を転送した場合に各々のスレーブからマスタに送信される第２のパケット群を受信する。中継装置は、特定のスレーブ以外のいずれかのスレーブからのパケットの受信時刻と、特定のスレーブからマスタへパケットに先行して送信される特定のパケットを受信してからマスタに送信するまでの滞留時間と、を取得する。中継装置は、第１のパケット群がマスタから送信されてから受信されるまでの伝送遅延時間と、マスタが計時する時刻からのずれ時間と、取得された受信時刻および滞留時間と、に基づいて、パケットがいずれかのスレーブからマスタに送信された場合にマスタからいずれかのスレーブに送信される応答パケットの推定送信時刻を算出する。中継装置は応答パケットを生成し、特定のスレーブに送信する。【選択図】図１
2014116672.tif 000002
【特許請求の範囲】
【請求項１】
送信元装置から送信先装置群に第１のパケット群を転送した場合に、前記送信先装置群の各々の送信先装置から前記送信元装置に送信される第２のパケット群を受信する受信部と、
前記受信部によって各送信先装置から受信された第２のパケット群のうち特定の送信先装置以外のいずれかの送信先装置からのパケットの受信時刻と、前記第２のパケット群のうち前記特定の送信先装置から前記送信元装置へ前記パケットに先行して送信される特定のパケットを受信してから前記送信元装置に送信するまでの滞留時間と、を取得する取得部と、
前記パケットを前記送信元装置に転送しないように制御する制御部と、
前記第１のパケット群が前記送信元装置から送信されてから受信されるまでの伝送遅延時間と、前記送信元装置が計時する時刻からのずれ時間と、前記取得部によって取得された受信時刻および滞留時間と、に基づいて、前記パケットが前記いずれかの送信先装置から前記送信元装置に送信された場合における前記送信元装置での前記パケットの推定受信時刻を算出する算出部と、
前記算出部によって算出された推定受信時刻を含み、かつ、前記いずれかの送信先装置を宛先とする前記パケットに対する応答パケットを生成する生成部と、
前記生成部によって生成された応答パケットを前記いずれかの送信先装置に送信する送信部と、
を有することを特徴とする中継装置。
【請求項２】
前記取得部は、前記送信元装置からの前記第１のパケット群の送信時刻と、前記送信先装置群への前記第１のパケット群の送信時刻と、前記第１のパケット群を受信してから前記送信先装置群に送信するまでの滞留時間と、前記第２のパケット群のうち前記特定の送信先装置から前記送信元装置へ前記パケットに先行して送信される特定のパケットの受信時刻と、前記特定のパケットの前記送信元装置での受信時刻と、を取得し、
前記算出部は、
前記取得部によって取得された前記送信元装置からの前記第１のパケット群の送信時刻と、前記送信先装置群への前記第１のパケット群の送信時刻と、前記第１のパケット群を受信してから前記送信先装置群に送信するまでの滞留時間と、前記特定のパケットの受信時刻と、前記特定のパケットの前記送信元装置での受信時刻と、前記特定のパケットを受信してから前記送信元装置に送信するまでの滞留時間と、に基づいて、前記伝送遅延時間を算出し、
算出された前記伝送遅延時間と、前記送信元装置が計時する時刻からのずれ時間と、前記いずれかの送信先装置からの前記パケットの受信時刻と、前記特定のパケットを受信してから前記送信元装置に送信するまでの滞留時間と、に基づいて、前記推定受信時刻を算出することを特徴とする請求項１に記載の中継装置。
【請求項３】
前記算出部は、
前記送信元装置からの前記第１のパケット群の送信時刻と、前記送信先装置群への前記第１のパケット群の送信時刻と、前記第１のパケット群を受信してから前記送信先装置群に送信するまでの滞留時間と、前記伝送遅延時間と、に基づいて、前記送信元装置が計時する時刻からのずれ時間を算出し、
前記伝送遅延時間と、算出された前記送信元装置が計時する時刻からのずれ時間と、前記いずれかの送信先装置からの前記パケットの受信時刻と、前記特定のパケットを受信してから前記送信元装置に送信するまでの滞留時間と、に基づいて、前記推定受信時刻を算出することを特徴とする請求項１または２に記載の中継装置。
【請求項４】
送信元装置から送信先装置群に第１のパケット群を転送した場合に、前記送信先装置群の各々の送信先装置から前記送信元装置に送信される第２のパケット群を受信する受信部と、
前記受信部によって各送信先装置から受信された第２のパケット群のうち特定の送信先装置以外のいずれかの送信先装置からのパケットの受信時刻と、前記パケットを受信してから前記送信元装置に送信するまでの滞留時間と、を取得する取得部と、
前記取得部による前記滞留時間の取得後に、前記パケットを前記送信元装置に転送しないように制御する制御部と、
前記第１のパケット群が前記送信元装置から送信されてから受信されるまでの伝送遅延時間と、前記送信元装置が計時する時刻からのずれ時間と、前記取得部によって取得された受信時刻および滞留時間と、に基づいて、前記パケットが前記いずれかの送信先装置から前記送信元装置に送信された場合における前記送信元装置での前記パケットの推定受信時刻を算出する算出部と、
前記算出部によって算出された推定受信時刻を含み、かつ、前記いずれかの送信先装置を宛先とする前記パケットに対する応答パケットを生成する生成部と、
前記生成部によって生成された応答パケットを前記いずれかの送信先装置に送信する送信部と、
を有することを特徴とする中継装置。
【請求項５】
前記取得部は、前記送信元装置からの前記第１のパケット群の送信時刻と、前記送信先装置群への前記第１のパケット群の送信時刻と、前記第１のパケット群を受信してから前記送信先装置群に送信するまでの滞留時間と、前記第２のパケット群のうち前記特定の送信先装置から前記送信元装置へ前記パケットに先行して送信される特定のパケットの受信時刻と、前記特定のパケットの前記送信元装置での受信時刻と、を取得し、
前記算出部は、
前記取得部によって取得された前記送信元装置からの前記第１のパケット群の送信時刻と、前記送信先装置群への前記第１のパケット群の送信時刻と、前記第１のパケット群を受信してから前記送信先装置群に送信するまでの滞留時間と、前記特定のパケットの受信時刻と、前記特定のパケットの前記送信元装置での受信時刻と、前記パケットを受信してから前記送信元装置に送信するまでの滞留時間と、に基づいて、前記伝送遅延時間を算出し、
算出された前記伝送遅延時間と、前記送信元装置が計時する時刻からのずれ時間と、前記いずれかの送信先装置からの前記パケットの受信時刻と、前記パケットを受信してから前記送信元装置に送信するまでの滞留時間と、に基づいて、前記推定受信時刻を算出することを特徴とする請求項４に記載の中継装置。
【請求項６】
前記算出部は、
前記送信元装置からの前記第１のパケット群の送信時刻と、前記送信先装置群への前記第１のパケット群の送信時刻と、前記第１のパケット群を受信してから前記送信先装置群に送信するまでの滞留時間と、前記伝送遅延時間と、に基づいて、前記送信元装置が計時する時刻からのずれ時間を算出し、
前記伝送遅延時間と、算出された前記送信元装置が計時する時刻からのずれ時間と、前記いずれかの送信先装置からの前記パケットの受信時刻と、前記パケットを受信してから前記送信元装置に送信するまでの滞留時間と、に基づいて、前記推定受信時刻を算出することを特徴とする請求項４または５に記載の中継装置。
【請求項７】
送信元装置から送信先装置群に第１のパケット群を転送した場合に、前記送信先装置群の各々の送信先装置から前記送信元装置に送信される第２のパケット群を受信する受信工程と、
前記受信工程によって各送信先装置から受信された第２のパケット群のうち特定の送信先装置以外のいずれかの送信先装置からのパケットの受信時刻と、前記第２のパケット群のうち前記特定の送信先装置から前記送信元装置へ前記パケットに先行して送信される特定のパケットを受信してから前記送信元装置に送信するまでの滞留時間と、を取得する取得工程と、
前記パケットを前記送信元装置に転送しないように制御する制御工程と、
前記第１のパケット群が前記送信元装置から送信されてから受信されるまでの伝送遅延時間と、前記送信元装置が計時する時刻からのずれ時間と、前記取得工程によって取得された受信時刻および滞留時間と、に基づいて、前記パケットが前記いずれかの送信先装置から前記送信元装置に送信された場合における前記送信元装置での前記パケットの推定受信時刻を算出する算出工程と、
前記算出工程によって算出された推定受信時刻を含み、かつ、前記いずれかの送信先装置を宛先とする前記パケットに対する応答パケットを生成する生成工程と、
前記生成工程によって生成された応答パケットを前記いずれかの送信先装置に送信する送信工程と、
を有することを特徴とする中継方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、中継装置および中継方法に関する。
【背景技術】
【０００２】
近年、基地局装置を収容する伝送網のパケット化の進展に伴い、パケットベースでの時刻同期を行う方向性が探られている。その一例として、ＩＥＥＥ（Ｔｈｅ  Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ：以下、「ＩＥＥＥ」と称する。）により規格化された高精度での時刻同期を実現するＩＥＥＥ１５８８プロトコルなどによるパケットベースでの時刻同期がある（下記非特許文献１を参照。）。
【０００３】
ＩＥＥＥ１５８８プロトコルは、時刻基準を持つマスタとそれに従属するスレーブを定義する。両装置は、定期的に時刻同期用パケット（ＰＴＰ（Ｐｒｅｓｉｔｉｏｎ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ：以下、「ＰＴＰ」と称する。）パケット）を交換する。そして、スレーブは、スレーブの時刻をマスタの時刻に対し補正する。これにより、時刻同期が実現する。
【０００４】
また、現実のネットワークは広域に及ぶため、マスタとスレーブの間に、ＴＣ（Ｔｒａｎｃｅｐａｒｅｎｔ  Ｃｌｏｃｋ）装置（以下、「ＴＣ装置」と称する）と呼ばれる中継装置が設置される。中継装置はマスタとスレーブとの間でやりとりするＰＴＰパケットに中継装置内の滞留時間を追加する。これにより、時刻同期が実現する。
【０００５】
中継装置に一般的なＬ２スイッチを用いると、中継装置内の滞留時間が時刻補正を行う上での誤差要因となり、時刻同期精度が低下する。非特許文献１で提案されている中継装置では、時刻補正手順において装置内滞留時間の補正をおこなうことにより、中継装置内の滞留時間が上り下りの経路で異なったとしても時刻補正をすることができる。
【０００６】
また、非特許文献１で時刻同期の手順はいくつか規定されているが、その中の一つにＯＮＥ  ＳＴＥＰ  ＣＬＯＣＫがある。ＯＮＥ  ＳＴＥＰ  ＣＬＯＣＫの手順では、マスタがスレーブにＳＹＮＣメッセージを送信する。スレーブは、ＳＹＮＣメッセージを受信するとＤＥＬＡＹ＿ＲＥＱメッセージをマスタに送信する。マスタは、ＤＥＬＡＹ＿ＲＥＱメッセージを受信した場合、スレーブにＤＥＬＡＹ＿ＲＥＳＰメッセージを送信する。中継装置は、この３つの手順の中で時刻補正に必要な値を収集し、伝送路の遅延およびマスタとの時刻ずれを計算する。
【０００７】
また、特許文献１では、ＰＯＮ（Ｐａｓｓｉｖｅ  Ｏｐｔｉｃａｌ  Ｎｅｔｗｏｒｋ）システム内において、ＯＮＵ（Ｏｐｔｉｃａｌ  Ｎｅｔｗｏｒｋ  Ｕｎｉｔ）をＯＬＴ（Ｏｐｔｉｃａｌ  Ｌｉｎｅ  Ｔｅｒｍｉｎａｌ）に対して時刻同期する方法が開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１２−６０２１７号公報
【非特許文献】
【０００９】
【非特許文献１】ＩＥＥＥ  ＳＴＤ  １５８８ＴＭ−２００８（ＩＥＥＥ  Ｓｔａｎｄａｒｄ  ｆｏｒ  ａ  Ｐｒｅｃｉｓｉｏｎ  Ｃｌｏｃｋ  Ｓｙｎｃｈｒｏｎｉｚａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ  ｆｏｒ  Ｎｅｔｗｏｒｋｅｄ  Ｍｅａｓｕｒｅｍｅｎｔ  ａｎｄ  Ｃｏｎｔｒｏｌ  Ｓｙｓｔｅｍｓ）
【発明の概要】
【発明が解決しようとする課題】
【００１０】
非特許文献１には、ＳＹＮＣメッセージをマルチキャストで送信する点が開示されているが、ＳＹＮＣメッセージだけが１対多の通信となり、その後のＤＥＬＡＹ＿ＲＥＱメッセージとＤＥＬＡＹ＿ＲＥＳＰメッセージはユニキャストで送信される。したがって、マスタとスレーブとの間は、論理的に１対１の通信となる。そのため、マスタに接続されるスレーブの数が増加するほど、マスタが処理しなければならないＰＴＰパケットの数が増加し、マスタの負荷が増加するという問題がある。
【００１１】
また、特許文献１では、１台のマスタに対して複数台のスレーブが接続されている場合に、マスタでのＰＴＰパケットの集中による処理負荷増加について言及されていない。
【００１２】
本発明は、パケット集中によるマスタの負荷低減を図ることを目的とする。
【課題を解決するための手段】
【００１３】
本願において開示される発明の一側面となる中継装置および中継方法は、送信元装置から送信先装置群に第１のパケット群を転送した場合に、前記送信先装置群の各々の送信先装置から前記送信元装置に送信される第２のパケット群を受信し、各送信先装置から受信された第２のパケット群のうち特定の送信先装置以外のいずれかの送信先装置からのパケットの受信時刻と、前記第２のパケット群のうち前記特定の送信先装置から前記送信元装置へ前記パケットに先行して送信される特定のパケットを受信してから前記送信元装置に送信するまでの滞留時間と、を取得し、前記パケットを前記送信元装置に転送しないように制御し、前記第１のパケット群が前記送信元装置から送信されてから受信されるまでの伝送遅延時間と、前記送信元装置が計時する時刻からのずれ時間と、取得された受信時刻および滞留時間と、に基づいて、前記パケットが前記いずれかの送信先装置から前記送信元装置に送信された場合における前記送信元装置での前記パケットの推定受信時刻を算出し、算出された推定受信時刻を含み、かつ、前記いずれかの送信先装置を宛先とする前記パケットに対する応答パケットを生成し、生成された応答パケットを前記いずれかの送信先装置に送信する。
【発明の効果】
【００１４】
本発明の代表的な実施の形態によれば、パケット集中による送信元装置の負荷低減を図ることができる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【００１５】
【図１】実施例１における時刻同期例を示す説明図である。
【図２】ＰＴＰパケットの共通ヘッダを示す説明図である。
【図３】ＳＹＮＣメッセージとＤＥＬＡＹ＿ＲＥＱメッセージで使われるフィールドを示す説明図である。
【図４】ＤＥＬＡＹ＿ＲＥＳＰメッセージで使われるフィールドを示す説明図である。
【図５】実施例１にかかる管理テーブルの記憶内容の一例を示す説明図である。
【図６】実施例１にかかる時刻同期処理例を示すシーケンス図である。
【図７】実施例１にかかる中継装置の構成例を示すブロック図である。
【図８】実施例１にかかる中継装置の中継処理手順例を示すフローチャートである。
【図９】実施例１にかかる図８に示した第２の送信パケット処理の詳細な処理手順例を示すフローチャートである。
【図１０】実施例２にかかる時刻同期処理例を示すシーケンス図である。
【図１１】実施例２にかかる管理テーブルの記憶内容の一例を示す説明図である。
【図１２】実施例２にかかる中継装置の構成例を示すブロック図である。
【図１３】実施例２にかかる図８に示した第２の送信パケット処理の詳細な処理手順例を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本実施の形態について説明する。なお、本実施の形態では、一例として、ＩＥＥＥにより規格化されたＩＥＥＥ１５８８プロトコルによるパケットベースでの時刻同期を用いて説明する。
【００１７】
図１は、実施例１における時刻同期例を示す説明図である。図１において、（Ａ）は、本実施例１の適用前の時刻同期例であり、（Ｂ）は、本実施例１の適用後の時刻同期例である。図１において、ネットワークシステムは、マスタ１０１と、中継装置１０２と、スレーブ１０３と、を含む。マスタ１０１は、基準時刻を持つ装置である。マスタ１０１は、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）衛星と通信することにより、基準時刻を取得する。マスタ１０１は、たとえば、Ｌ２スイッチ、ルータまたはブリッジである。
【００１８】
中継装置１０２は、マスタ１０１とスレーブ１０３間のパケットを中継する装置である。具体的には、たとえば、中継装置１０２は、マスタ１０１とスレーブ１０３間で定期的に通信されるＰＴＰパケットを中継する。スレーブ１０３は、マスタ１０１が持つ基準時刻により時刻補正をおこなう装置である。スレーブ１０３は、たとえば、Ｌ２スイッチ、ルータまたはブリッジである。
【００１９】
（Ａ）の時刻同期処理では、まず、マスタ１０１が、複数のスレーブ１０３に対しＳＹＮＣメッセージをマルチキャストする。中継装置１０２は、マスタ１０１からのＳＹＮＣメッセージを中継して、配下のスレーブ１０３に転送する。スレーブ１０３は、ＳＹＮＣメッセージを受信した場合、マスタ１０１に対し、ＤＥＬＡＹ＿ＲＥＱメッセージを送信する。中継装置１０２は、配下のスレーブ１０３からのＤＥＬＡＹ＿ＲＥＱメッセージを中継して、マスタ１０１に転送する。
【００２０】
マスタ１０１は、ＤＥＬＡＹ＿ＲＥＱメッセージを受信した場合、ＤＥＬＡＹ＿ＲＥＱメッセージを送信したスレーブ１０３ごとに、ＤＥＬＡＹ＿ＲＥＳＰメッセージを送信する。中継装置１０２は、マスタ１０１からのＤＥＬＡＹ＿ＲＥＳＰメッセージを中継して、配下のスレーブ１０３に転送する。スレーブ１０３は、ＤＥＬＡＹ＿ＲＥＳＰメッセージを受信する。スレーブ１０３は、ＳＹＮＣメッセージに含まれるマスタ１０１でのＳＹＮＣメッセージの送信時刻、スレーブ１０３でのＳＹＮＣメッセージの受信時刻、スレーブ１０３でのＤＥＬＡＹ＿ＲＥＱメッセージの送信時刻、ＤＥＬＡＹ＿ＲＥＳＰメッセージに含まれるマスタ１０１でのＤＥＬＡＹ＿ＲＥＱメッセージの受信時刻を用いて、当該スレーブ１０３が持つ時計の時刻を補正する。
【００２１】
（Ｂ）の時刻同期処理では、まず、マスタ１０１が、複数のスレーブ１０３Ａ、１０３Ｂに対しＳＹＮＣメッセージをマルチキャストする。中継装置１０２は、マスタ１０１からのＳＹＮＣメッセージを中継して、配下のスレーブ１０３Ａ、１０３Ｂに転送する。スレーブ１０３Ａ、１０３Ｂは、ＳＹＮＣメッセージを受信した場合、マスタ１０１に対し、ＤＥＬＡＹ＿ＲＥＱメッセージを送信する。
【００２２】
ここで、中継装置１０２は、スレーブ１０３ＡからのＤＥＬＡＹ＿ＲＥＱメッセージをマスタ１０１に送信する。そして、マスタ１０１は、スレーブ１０３ＡからのＤＥＬＡＹ＿ＲＥＱメッセージに応答して、ＤＥＬＡＹ＿ＲＥＳＰメッセージを中継装置１０２を介してスレーブ１０３Ａに送信する。スレーブ１０３Ａは、ＤＥＬＡＹ＿ＲＥＳＰメッセージを受信する。スレーブ１０３Ａは、ＳＹＮＣメッセージに含まれるマスタ１０１でのＳＹＮＣメッセージの送信時刻、スレーブ１０３ＡでのＳＹＮＣメッセージの受信時刻、スレーブ１０３ＡでのＤＥＬＡＹ＿ＲＥＱメッセージの送信時刻、ＤＥＬＡＹ＿ＲＥＳＰメッセージに含まれるマスタ１０１でのＤＥＬＡＹ＿ＲＥＱメッセージの受信時刻を用いて、当該スレーブ１０３Ａが持つ時計の時刻を補正する。すなわち、スレーブ１０３Ａについては、図１の（Ａ）と同様の時刻同期処理が実行される。
【００２３】
一方、中継装置１０２は、スレーブ１０３ＢからのＤＥＬＡＹ＿ＲＥＱメッセージをマスタ１０１に転送せずに廃棄または存在しないアドレス宛に送信する。そして、中継装置１０２は、ＤＥＬＡＹ＿ＲＥＱメッセージがマスタ１０１に転送されたと仮定した場合におけるマスタ１０１でのＤＥＬＡＹ＿ＲＥＱメッセージの推定受信時刻を算出する。推定受信時刻の算出の詳細については後述する。
【００２４】
そして、中継装置１０２は、推定受信時刻を含むＤＥＬＡＹ＿ＲＥＳＰメッセージを生成して、ＤＥＬＡＹ＿ＲＥＱメッセージを送信したスレーブ１０３ＢにＤＥＬＡＹ＿ＲＥＳＰメッセージを送信する。スレーブ１０３Ｂは、ＤＥＬＡＹ＿ＲＥＳＰメッセージを受信する。スレーブ１０３Ｂは、ＳＹＮＣメッセージに含まれるマスタ１０１でのＳＹＮＣメッセージの送信時刻、スレーブ１０３ＢでのＳＹＮＣメッセージの受信時刻、スレーブ１０３ＢでのＤＥＬＡＹ＿ＲＥＱメッセージの送信時刻、ＤＥＬＡＹ＿ＲＥＳＰメッセージに含まれる中継装置１０２が推定したマスタ１０１でのＤＥＬＡＹ＿ＲＥＱメッセージの受信時刻を用いて、当該スレーブ１０３Ｂが持つ時計の時刻を補正する。
【００２５】
このように、本実施の形態では、ＤＥＬＡＹ＿ＲＥＱメッセージをマスタ１０１に転送せずに、中継装置１０２が、マスタ１０１に替わってＤＥＬＡＹ＿ＲＥＳＰメッセージの代理応答をする。したがって、マスタ１０１のＤＥＬＡＹ＿ＲＥＱメッセージの受信負担と、マスタ１０１のＤＥＬＡＹ＿ＲＥＳＰメッセージの送信負担と、が軽減される。また、代理応答した場合、マスタ１０１と中継装置１０２間のＤＥＬＡＹ＿ＲＥＱメッセージおよびＤＥＬＡＹ＿ＲＥＳＰメッセージの通信がなくなるため、スレーブ１０３ＢへのＤＥＬＡＹ＿ＲＥＳＰメッセージの受信時間の短縮化を図ることができる。
【実施例１】
【００２６】
以下、図２〜図９を用いて、実施例１にかかる時刻同期処理について説明する。時刻同期処理では、例として、ＰＴＰパケットが用いられる。ここで、ＰＴＰパケットのデータフォーマットについて説明する。
【００２７】
図２は、ＰＴＰパケットの共通ヘッダを示す説明図である。図２において、「ｔｒａｎｃｅｐｏｒｔＳｐｅｃｉｆｉｃ」は、下位のトランスポートプロトコルで用いられる。「ｍｅｓｓａｇｅＴｙｐｅ」は、このメッセージがＳＹＮＣメッセージなのかＤＥＬＡＹ＿ＲＥＱメッセージなのかＤＥＬＡＹ＿ＲＥＳＰメッセージなのかといったメッセージのタイプを示す。「ｒｅｓｅｒｖｅｄ」は、拡張用の領域として確保される。「ｖｅｒｓｉｏｎＰＴＰ」は、ＰＴＰプロトコルのバージョンを示す。
【００２８】
「ｍｅｓｓａｇｅＬｅｎｇｔｈ」は、ＰＴＰメッセージのオクテット数を示す。「ｄｏｍａｉｎＮｕｍｂｅｒ」は、ターゲットのドメインを示す。「ｆｌａｇＦｉｅｌｄ」は、メッセージの状態を表すフラグの集合で各ビットの意味づけを定義する。「ｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ」は、ナノセカンド単位の時刻を表現するのに用いられる。「ｓｏｕｒｃｅＰｏｒｔＩｄｅｎｔｉｆｙ」は、このメッセージを生成したポート番号を示す。「ｓｅｑｕｅｎｃｅＩＤ」は、メッセージの送信元によって付与されるシーケンスＩＤを示す。「ｃｏｎｔｒｏｌＦｉｅｌｄ」は、メッセージタイプに依存して決まる値である。「ｌｏｇＭｅｓｓａｇｅＩｎｔｅｒｖａｌ」は、メッセージタイプによって決定される値である。
【００２９】
図３は、ＳＹＮＣメッセージとＤＥＬＡＹ＿ＲＥＱメッセージで使われるフィールドを示す説明図である。「ｈｅａｄｅｒ」には、図２で示した共通ヘッダが入る。「ｏｒｉｇｉｎＴｉｍｅｓｔａｍｐ」は、このメッセージの送信時刻を示す。
【００３０】
図４は、ＤＥＬＡＹ＿ＲＥＳＰメッセージで使われるフィールドを示す説明図である。「ｈｅａｄｅｒ」には図２で示した共通ヘッダが入る。「ｒｅｃｅｉｖｅＴｉｍｅｓｔａｍｐ」は、このメッセージの元となるＤＥＬＡＹ＿ＲＥＱメッセージの受信時刻を示す。「ｒｅｑｕｅｓｔｉｎｇＰｏｒｔＩｄｅｎｔｉｆｙ」は、受信したＤＥＬＡＹ＿ＲＥＱメッセージの「ｓｏｕｒｃｅＰｏｒｔＩｄｅｎｔｉｆｙ」の値がコピーされる。
【００３１】
図５は、実施例１にかかる管理テーブルの記憶内容の一例を示す説明図である。管理テーブル５００は、中継装置１０２内のメモリなどの記憶装置に記憶される。管理テーブル５００は、Ｔ１＿ＯｒｉｇｉｎＴｉｍｅｓｔａｍｐ項目、Ｔ１＿ｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ項目、Ｔａ項目、Ｔｂ項目、Ｔ４＿ＯｒｉｇｉｎＴｉｍｅｓｔａｍｐ項目、Ｔ４＿ｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ項目、ＴＣ＿ＩＶ＿ｄｅｌａｙ項目、ｍｅａｎ＿ｐａｔｈ＿ｄｅｌａｙ項目、および、Ｏｆｆｓｅｔ＿ｆｒｏｍ＿ｍａｓｔｅｒ項目を有する。
【００３２】
Ｔ１＿ＯｒｉｇｉｎＴｉｍｅｓｔａｍｐ項目には、マスタ１０１から受信されたＳＹＮＣメッセージ内のｏｒｉｇｉｎＴｉｍｅｓｔａｍｐの値が格納される。Ｔ１＿ｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ項目には、マスタ１０１から送信されるＳＹＮＣメッセージ内のｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄの値が格納される。
【００３３】
Ｔａ項目には、マスタ１０１からのＳＹＮＣメッセージを中継装置１０２が送信した時刻Ｔｓ２が格納される。Ｔｂ項目には、スレーブからのＤＥＬＡＹ＿ＲＥＱメッセージを中継装置１０２が受信した時刻が格納される。ＴＣ＿ＩＶ＿ｄｅｌａｙ項目には、ＤＥＬＡＹ＿ＲＥＱメッセージを中継装置１０２が受信してから送信するまでの装置内滞留時間が格納される。この装置内滞留時間は、中継装置１０２で算出される値である。
【００３４】
＜時刻同期処理シーケンス＞
図６は、実施例１にかかる時刻同期処理例を示すシーケンス図である。説明を単純化するため、図６では、スレーブを２台にして説明する。また、図６中、上下段の長方形内の数値は、ＰＴＰパケットに格納される時刻情報を示しており、上段が「ｏｒｉｇｉｎＴｉｍｅｓｔａｍｐ」の値を、下段が「ｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ」の値を示す。
【００３５】
図６において、スレーブ１０３Ａが、上述した代表スレーブであり、スレーブ１０３Ｂが残余のスレーブである。代表スレーブは、あらかじめ決められたスレーブである。たとえば、中継装置１０２から通信距離が最も短いスレーブが代表スレーブとなる。これにより、中継装置１０２の配下のスレーブ群のうち代表スレーブよりも中継装置１０２からの通信距離が長いスレーブについて、上述した代理応答が可能となる。
【００３６】
マスタ１０１は基準時刻としてＴｍを有する。中継装置１０２は、基準時刻Ｔｍからのずれ時間であるオフセットＴｏｆｆＴＣを有する。スレーブ１０３Ａは、基準時刻Ｔｍからのずれ時間であえるオフセットＴｏｆｆＡを有する。スレーブ１０３Ｂは、基準時刻Ｔｍからのずれ時間であるオフセットＴｏｆｆＢを有する。
【００３７】
［マスタ１０１からのＳＹＮＣメッセージの送信］
まず、マスタ１０１は、時刻Ｔ１でスレーブに対しＳＹＮＣメッセージをマルチキャストする。マスタ１０１は、スレーブごとにＳＹＮＣメッセージをユニキャストしてもよい。ここで、一例として、時刻Ｔ１＝７．５［ｎｓ］とする。時刻Ｔ１は、このままではスレーブが知りえない情報である。したがって、時刻Ｔ１のナノセカンド部分である７［ｎｓ］は、ＰＴＰパケットのｏｒｉｇｉｎＴｉｍｅｓｔａｍｐに格納され、それ以下の部分である０．５［ｎｓ］はｃｏｒｒｅｃｔｉｏｎ  Ｆｉｅｌｄに格納されて、ＳＹＮＣメッセージとして送信される。
【００３８】
ＳＹＮＣメッセージは、伝送遅延Ｔｄ１を経てマスタ１０１から中継装置１０２に送信される。伝送遅延Ｔｄ１は、一例としてＴｄ１＝０．５［ｎｓ］とする。中継装置１０２は、ＳＹＮＣメッセージを受信した場合、ＳＹＮＣメッセージ内のｏｒｉｇｉｎＴｉｍｅｓｔａｍｐの値「７」を、管理テーブル５００のＴ１＿ＯｒｉｇｉｎＴｉｍｅｓｔａｍｐ項目に格納する。
【００３９】
中継装置１０２は、受信したＳＹＮＣメッセージを各スレーブ１０３Ａ、１０３Ｂに送信する。ここで、中継装置１０２は、ＳＹＮＣメッセージの受信時と送信時にそれぞれタイムスタンプをとる。中継装置１０２での受信時刻をＴｓ１とし、中継装置１０２からのＳＹＮＣメッセージの送信時刻をＴｓ２とする。送信時刻Ｔｓ１は、一例として、Ｔｓ１＝１０８［ｎｓ］とし、送信時刻Ｔｓ２は、一例として、Ｔｓ２＝３０８［ｎｓ］とする。中継装置１０２は、ＳＹＮＣメッセージの送信時刻Ｔｓ２を、管理テーブル５００のＴａ項目に格納する。
【００４０】
また、中継装置１０２での受信から送信までの時間を滞留時間Ｔｒ１とする。滞留時間Ｔｒ１は、中継装置１０２によりＴｒ１＝Ｔｓ２−Ｔｓ１で算出される。ここで、滞留時間Ｔｒ１をＴｒ１＝２００［ｎｓ］とする。中継装置１０２は、滞留時間Ｔｒ１を、ＳＹＮＣメッセージの「ｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ」に格納する。したがって、中継装置１０２からの送信時では、ＳＹＮＣメッセージの「ｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ」の値は、２００．５［ｎｓ］となる。また、中継装置１０２は、ＳＹＮＣメッセージの「ｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ」の値である２００．５［ｎｓ］を、管理テーブル５００のＴ１＿ｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ項目に格納する。
【００４１】
ＳＹＮＣメッセージは、伝送遅延Ｔｄ２Ａを経て中継装置１０２からスレーブ１０３Ａに送信される。伝送遅延Ｔｄ２Ａは、一例としてＴｄ２Ａ＝１．０［ｎｓ］とする。また、ＳＹＮＣメッセージは、伝送遅延Ｔｄ２Ｂを経て中継装置１０２からスレーブ１０３Ｂに送信される。伝送遅延Ｔｄ２Ｂは、一例としてＴｄ２Ｂ＝３．０［ｎｓ］とする。
【００４２】
スレーブ１０３Ａは、中継装置１０２からのＳＹＮＣメッセージを受信する。ここで、スレーブ１０３Ａは、ＳＹＮＣメッセージの時刻情報であるｏｒｉｇｉｎＴｉｍｅｓｔａｍｐの値（７）とｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄの値（２００．５）を保持する。また、スレーブ１０３Ａは、ＳＹＮＣメッセージの受信時と送信時にそれぞれタイムスタンプをとる。ＳＹＮＣメッセージの受信時刻Ｔ２Ａは、一例として、Ｔ２Ａ＝２２９［ｎｓ］とする。
【００４３】
受信時刻Ｔ２Ａは、スレーブ１０３Ａにより計時された時刻である。受信時刻Ｔ２Ａは、時刻Ｔ１に、伝送遅延Ｔｄ１と、滞留時間Ｔｒ１と、伝送遅延Ｔｄ２Ａと、オフセットＴｏｆｆＡと、を加算した値と一致する。図６の例では、伝送遅延Ｔｄ１、伝送遅延Ｔｄ２Ａ、およびオフセットＴｏｆｆＡの値を明記するが、これらの値は、スレーブ１０３Ａがそのままでは知り得ない値であり、計算により求めることになる。
【００４４】
［スレーブ１０３ＡからのＤＥＬＡＹ＿ＲＥＱメッセージの送信］
スレーブ１０３Ａは、ＳＹＮＣメッセージを受信すると次のステップとしてＤＥＬＡＹ＿ＲＥＱメッセージをマスタ１０１に送信する。スレーブ１０３Ａは、ＤＥＬＡＹ＿ＲＥＱメッセージの送信時刻Ｔ３Ａを保持する。ＤＥＬＡＹ＿ＲＥＱメッセージの送信時刻Ｔ３Ａは、一例として、Ｔ３Ａ＝４８０［ｎｓ］とする。
【００４５】
ＤＥＬＡＹ＿ＲＥＱメッセージのｏｒｉｇｉｎＴｉｍｅｓｔａｍｐの値とｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄの値はともに「０」に設定される。ＤＥＬＡＹ＿ＲＥＱメッセージはＳＹＮＣメッセージと逆の経路をたどり、Ｔｄ２Ａ＝１［ｎｓ］の遅延を受けて中継装置１０２に到達する。中継装置１０２は、ＤＥＬＡＹ＿ＲＥＱメッセージの受信時とマスタ１０１への送信時にタイムスタンプとして、受信時刻Ｔｓ３Ａおよび送信時刻Ｔｓ４Ａをとる。中継装置１０２は、受信時刻Ｔｓ３Ａおよび送信時刻Ｔｓ４Ａの差分を滞留時間Ｔｒ２（＝Ｔｓ４Ａ−Ｔｓ３Ａ）として算出する。滞留時間Ｔｒ２は、一例として、１００［ｎｓ］とする。
【００４６】
中継装置１０２は、滞留時間Ｔｒ２を、ＤＥＬＡＹ＿ＲＥＱメッセージのｃｏｒｒｅｃｔｉｏｎ  Ｆｉｅｌｄに加算する。これにより、ＤＥＬＡＹ＿ＲＥＱメッセージのｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄの値は、「０」から「１００」になる。また、中継装置１０２は、滞留時間Ｔｒ２を、管理テーブル５００のＴＣ＿ＩＶ＿ｄｅｌａｙ項目に格納する。このように、中継装置１０２は、上りと下りとで個別に滞留時間Ｔｒ１、Ｔｒ２を算出するため、ＳＹＮＣメッセージとＤＥＬＡＹ＿ＲＥＱメッセージとで異なる滞留時間を計測することができる。
【００４７】
中継装置１０２で中継されたＤＥＬＡＹ＿ＲＥＱメッセージは伝送遅延Ｔｄ１＝０．５［ｎｓ］を受けてマスタ１０１に到達する。マスタ１０１は、ＤＥＬＡＹ＿ＲＥＱメッセージの受信時刻Ｔ４Ａを保持する。受信時刻Ｔ４Ａは、一例として、Ｔ４Ａ＝５６１．５［ｎｓ］とする。マスタ１０１は、ＤＥＬＡＹ＿ＲＥＱメッセージの受信時刻Ｔ４をスレーブ１０３Ａに通知するために、ＤＥＬＡＹ＿ＲＥＳＰメッセージを生成する。
【００４８】
マスタ１０１は、ＤＥＬＡＹ＿ＲＥＳＰメッセージのｏｒｉｇｉｎＴｉｍｅｓｔａｍｐに、受信時刻Ｔ４Ａのナノセカンド部分である５６１［ｎｓ］を格納し、「ｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ」に、ＤＥＬＡＹ＿ＲＥＱメッセージのｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄの値から受信時刻Ｔ４Ａのナノセカンド部分以下の値を減じた値を格納する。この例では、受信時刻Ｔ４Ａが５６１．５［ｎｓ］のため、ＤＥＬＡＹ＿ＲＥＳＰメッセージのｏｒｉｇｉｎＴｉｍｅｓｔａｍｐには「５６１」が、ｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄには、滞留時間Ｔｒ２＝１００［ｎｓ］から受信時刻Ｔ４Ａのナノセカンド部分以下の０.５［ｎｓ］を減じた９９．５［ｎｓ］が格納される。
【００４９】
［マスタ１０１からスレーブ１０３ＡへのＤＥＬＡＹ＿ＲＥＳＰメッセージの送信］
マスタ１０１は、ＤＥＬＡＹ＿ＲＥＳＰメッセージをスレーブ１０３Ａに送信する。ＤＥＬＡＹ＿ＲＥＳＰメッセージは、伝送遅延Ｔｄ１を経てマスタ１０１から中継装置１０２に送信される。中継装置１０２は、ＤＥＬＡＹ＿ＲＥＳＰメッセージ内のｏｒｉｇｉｎＴｉｍｅｓｔａｍｐの値である「５６１」を、管理テーブル５００のＴ４＿ＯｒｉｇｉｎＴｉｍｅｓｔａｍｐ項目に格納する。また、中継装置１０２は、ＤＥＬＡＹ＿ＲＥＳＰメッセージ内のｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄの値である「９９．５」を、管理テーブル５００のＴ４＿ｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ項目に格納する。このあと、中継装置１０２は、ＤＥＬＡＹ＿ＲＥＳＰメッセージをスレーブ１０３Ａに送信する。
【００５０】
ＤＥＬＡＹ＿ＲＥＳＰメッセージは、マスタ１０１で生成した時刻情報を伝搬することを目的とするため、マスタ１０１からスレーブ１０３Ａまでの経路において中継装置１０２内の滞留時間の加算等は行われない。そのためマスタ１０１の送信時の時刻情報のままスレーブ１０３Ａまで届く。なお、スレーブ１０３Ａは、ＤＥＬＡＹ＿ＲＥＳＰメッセージの時刻情報であるｏｒｉｇｉｎＴｉｍｅｓｔａｍｐの値（５６１）とｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄの値（９９．５）を保持する。
【００５１】
ここまでの手順により、中継装置１０２は、伝送遅延Ｔｄ１とオフセットＴｏｆｆＴＣを算出するための情報が収集できたことになる。すなわち、マスタ１０１におけるＤＥＬＡＹ＿ＲＥＳＰの受信時刻Ｔ４Ａは、下記式（１）により表現される。
【００５２】
Ｔ４Ａ＝Ｔ１＋Ｔｄ１＋Ｔｒ１＋（Ｔｓ３Ａ−Ｔｓ２）＋Ｔｒ２＋Ｔｄ１・・・（１）
【００５３】
伝送遅延Ｔｄ１は未知の値であるため、中継装置１０２は、式（１）を解くことにより伝送遅延Ｔｄ１を求めることができる。本例では、伝送遅延Ｔｄ１＝０．５［ｎｓ］が算出される。管理テーブル５００を参照する場合、上記式（１）は、下記式（２）のように表現される。中継装置１０２は、管理テーブル５００を参照すると、下記式（２）により伝送遅延Ｔｄ１を求めることができる。
【００５４】
Ｔｄ１＝｛（Ｔａ−Ｔｂ）
＋（ＲＥＳＰ＿Ｔｉｍｅ−ＳＹＮＣ＿Ｔｉｍｅ）
−ＳＹＮＣ＿ｃｏｒｒｅｃｔｉｏｎ
−ＲＥＳＰ＿ｃｏｒｒｅｃｔｉｏｎ｝／２・・・（２）
【００５５】
上記式（２）において、「Ｔａ」は、管理テーブル５００のＴａ項目の値である。すなわち、中継装置１０２からのＳＹＮＣメッセージの送信時刻Ｔｓ２（＝３０８）である。「Ｔｂ」は、管理テーブル５００のＴｂ項目の値である。すなわち、中継装置１０２におけるＤＥＬＡＹ＿ＲＥＱメッセージの受信時刻Ｔｓ３Ａ（＝５６１）である。送信時刻Ｔｓ２および受信時刻Ｔｓ３Ａは、中継装置１０２で計時された時刻であるため、中継装置１０２のオフセットＴｏｆｆＴＣを含むが、式（１）および式（２）では差分をとるため、オフセットＴｏｆｆＴＣは相殺される。
【００５６】
「ＲＥＳＰ＿Ｔｉｍｅ」は、管理テーブル５００のＴ４＿ＯｒｉｇｉｎＴｉｍｅｓｔａｍｐ項目の値（５６１）である。また、「ＳＹＮＣ＿Ｔｉｍｅ」は、管理テーブル５００のＴ１＿ＯｒｉｇｉｎＴｉｍｅｓｔａｍｐ項目の値（７）である。また、「ＳＹＮＣ＿ｃｏｒｒｅｃｔｉｏｎ」は、管理テーブル５００のＴ１＿ｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ項目の値（２００．５）である。また、「ＲＥＳＰ＿ｃｏｒｒｅｃｔｉｏｎ」は、管理テーブル５００のＴ４＿ｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ項目の値（９９．５）である。中継装置１０２は、算出された伝送遅延Ｔｄ１（＝０．５）を、管理テーブル５００のｍｅａｎ＿ｐａｔｈ＿ｄｅｌａｙ項目に格納する。
【００５７】
また、中継装置１０２のオフセットＴｏｆｆＴＣは、下記式（３）により表現される。
【００５８】
Ｔ１＋Ｔｄ１＋Ｔｒ１＝Ｔｓ２−ＴｏｆｆＴＣ・・・（３）
【００５９】
オフセットＴｏｆｆＴＣは未知の値であるため、中継装置１０２は、式（３）を解くことによりオフセットＴｏｆｆＴＣを求めることができる。本例では、オフセットＴｏｆｆＴＣ＝１００［ｎｓ］が算出される。管理テーブル５００を参照する場合、上記式（３）は、下記式（４）のように表現される。中継装置１０２は、管理テーブル５００を参照すると、下記式（４）によりオフセットＴｏｆｆＴＣを求めることができる。
【００６０】
ＴｏｆｆＴＣ＝Ｔａ−ＳＹＮＣ＿Ｔｉｍｅ−ｍｅａｎ＿ｐａｔｈ＿ｄｅｌａｙ
−ＳＹＮＣ＿ｃｏｒｒｅｃｔｉｏｎ・・・（４）
【００６１】
上記式（４）において、「Ｔａ」は、管理テーブル５００のＴａ項目の値である。すなわち、中継装置１０２からのＳＹＮＣメッセージの送信時刻Ｔｓ２（＝３０８）である。また、「ＳＹＮＣ＿Ｔｉｍｅ」は、管理テーブル５００のＴ１＿ＯｒｉｇｉｎＴｉｍｅｓｔａｍｐ項目の値（７）である。また、「ｍｅａｎ＿ｐａｔｈ＿ｄｅｌａｙ」は、式（２）で算出された伝送遅延Ｔｄ１の値であり、管理テーブル５００のｍｅａｎ＿ｐａｔｈ＿ｄｅｌａｙ項目の値である。また、「ＳＹＮＣ＿ｃｏｒｒｅｃｔｉｏｎ」は、管理テーブル５００のＴ１＿ｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ項目の値（２００．５）である。
【００６２】
中継装置１０２は、算出されたオフセットＴｏｆｆＴＣ（＝１００）を、管理テーブル５００のｏｆｆｓｅｔ＿ｆｒｏｍ＿ｍａｓｔｅｒ項目に格納する。中継装置１０２は、中継装置１０２が計時する時刻Ｔｍ＋ＴｏｆｆＴＣから、算出されたオフセットＴｏｆｆＴＣを引くことにより、マスタ１０１と同一の基準時刻Ｔｍに補正することができる。
【００６３】
また、ここまでの手順により、スレーブ１０３Ａは、伝送遅延Ｔｄ１と伝送遅延Ｔｄ２Ａの総和とオフセットＴｏｆｆＡとを算出するための情報が収集できたことになる。すなわち、マスタ１０１におけるＤＥＬＡＹ＿ＲＥＳＰの受信時刻Ｔ４Ａは、下記式（５）により表現される。
【００６４】
Ｔ４Ａ＝Ｔ１＋Ｔｄ１＋Ｔｒ１＋Ｔｄ２Ａ＋（Ｔ３Ａ−Ｔ２Ａ）＋Ｔｄ２Ａ＋Ｔｒ２＋Ｔｄ１・・・（５）
【００６５】
伝送遅延Ｔｄ１および伝送遅延Ｔｄ２Ａは未知の値であるため、スレーブ１０３Ａは、式（５）を解くことにより伝送遅延Ｔｄ１および伝送遅延Ｔｄ２Ａの総和を求めることができる。伝送遅延Ｔｄ１および伝送遅延Ｔｄ２Ａの総和をＴｄＡとする。スレーブ１０３Ａが取得したＳＹＮＣメッセージの時刻情報とＤＥＬＡＹ＿ＲＥＳＰメッセージの時刻情報を参照すると、上記式（５）は、下記式（６）のように表現される。中継装置１０２は、下記式（６）により伝送遅延ＴｄＡを求めることができる。
【００６６】
ＴｄＡ＝Ｔｄ１＋Ｔｄ２Ａ
＝｛（Ｔ２Ａ−Ｔ３Ａ）
＋（ＲＥＳＰ＿Ｔｉｍｅ−ＳＹＮＣ＿Ｔｉｍｅ）
−ＳＹＮＣ＿ｃｏｒｒｅｃｔｉｏｎ
−ＲＥＳＰ＿ｃｏｒｒｅｃｔｉｏｎ｝／２・・・（６）
【００６７】
上記式（６）において、「ＲＥＳＰ＿Ｔｉｍｅ」は、ＤＥＬＡＹ＿ＲＥＳＰメッセージのＯｒｉｇｉｎＴｉｍｅｓｔａｍｐの値（５６１）である。また、「ＳＹＮＣ＿Ｔｉｍｅ」は、ＳＹＮＣメッセージのＯｒｉｇｉｎＴｉｍｅｓｔａｍｐの値（７）である。また、「ＳＹＮＣ＿ｃｏｒｒｅｃｔｉｏｎ」は、ＳＹＮＣメッセージのｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄの値（２００．５）である。また、「ＲＥＳＰ＿ｃｏｒｒｅｃｔｉｏｎ」は、ＤＥＬＡＹ＿ＲＥＳＰメッセージのｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄの値（９９．５）である。
【００６８】
スレーブ１０３Ａは、上記（６）式を解くことにより、伝送遅延Ｔｄ１および伝送遅延Ｔｄ２Ａの総和ＴｄＡを算出することができる。本例の場合、ＴｄＡ＝１．５［ｎｓ］となる。
【００６９】
また、スレーブ１０３ＡのオフセットＴｏｆｆＡは、下記式（７）により表現される。
【００７０】
Ｔ１＋Ｔｄ１＋Ｔｒ１＋Ｔｄ２Ａ＝Ｔ２Ａ−ＴｏｆｆＡ・・・（７）
【００７１】
オフセットＴｏｆｆＡは未知の値であるため、スレーブ１０３Ａは、式（７）を解くことによりオフセットＴｏｆｆＡを求めることができる。スレーブ１０３Ａが取得したＳＹＮＣメッセージの時刻情報とＤＥＬＡＹ＿ＲＥＳＰメッセージの時刻情報を参照すると、上記式（７）は、下記式（８）のように表現される。中継装置１０２は、下記式（８）によりオフセットＴｏｆｆＡを求めることができる。
【００７２】
ＴｏｆｆＡ＝Ｔ２Ａ−ＳＹＮＣ＿Ｔｉｍｅ−ＴｄＡ−ＳＹＮＣ＿ｃｏｒｒｅｃｔｉｏｎ
・・・（８）
【００７３】
上記式（８）において、「ＳＹＮＣ＿Ｔｉｍｅ」は、ＳＹＮＣメッセージのＯｒｉｇｉｎＴｉｍｅｓｔａｍｐの値（７）である。また、「ＳＹＮＣ＿ｃｏｒｒｅｃｔｉｏｎ」は、ＳＹＮＣメッセージのｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄの値（２００．５）である。本例では、オフセットＴｏｆｆＡ＝２０［ｎｓ］が算出される。
【００７４】
スレーブ１０３Ａは、スレーブ１０３Ａが計時する時刻Ｔｍ＋ＴｏｆｆＡから、算出されたオフセットＴｏｆｆＡを引くことにより、マスタ１０１と同一の基準時刻Ｔｍに補正することができる。
【００７５】
［スレーブ１０３ＢからのＤＥＬＡＹ＿ＲＥＱメッセージの送信と中継装置１０２からスレーブ１０３Ｂに対するＤＥＬＡＹ＿ＲＥＳＰメッセージの代理応答］
また、図６において、中継装置１０２から送信されるＳＹＮＣメッセージは、マルチキャストであるため、スレーブ１０３Ａだけではなく、スレーブ１０３Ｂにも送信される。スレーブ１０３Ｂは、中継装置１０２からのＳＹＮＣメッセージを受信する。ここで、スレーブ１０３Ｂは、ＳＹＮＣメッセージの受信時と送信時にそれぞれタイムスタンプをとる。ＳＹＮＣメッセージの受信時刻Ｔ２Ｂは、一例として、Ｔ２Ｂ＝２５１［ｎｓ］とする。
【００７６】
受信時刻Ｔ２Ｂは、スレーブ１０３Ｂにより計時された時刻である。受信時刻Ｔ２Ｂは、時刻Ｔ１に、伝送遅延Ｔｄ１と、滞留時間Ｔｒ１と、伝送遅延Ｔｄ２Ｂと、オフセットＴｏｆｆＢと、を加算した値と一致する。図６の例では、伝送遅延Ｔｄ１、伝送遅延Ｔｄ２Ａ、およびオフセットＴｏｆｆＢの値を明記するが、これらの値は、スレーブ１０３Ｂがそのままでは知り得ない値であり、計算により求めることになる。
【００７７】
スレーブ１０３Ｂは、ＳＹＮＣメッセージを受信すると次のステップとしてＤＥＬＡＹ＿ＲＥＱメッセージをマスタ１０１に送信する。スレーブ１０３Ｂは、ＤＥＬＡＹ＿ＲＥＱメッセージの送信時刻Ｔ３Ｂを保持する。ＤＥＬＡＹ＿ＲＥＱメッセージの送信時刻Ｔ３Ｂは、一例として、Ｔ３Ｂ＝６００［ｎｓ］とする。
【００７８】
ＤＥＬＡＹ＿ＲＥＱメッセージのｏｒｉｇｉｎＴｉｍｅｓｔａｍｐの値とｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄの値はともに「０」に設定される。ＤＥＬＡＹ＿ＲＥＱメッセージはＳＹＮＣメッセージと逆の経路をたどり、Ｔｄ２Ｂ＝３［ｎｓ］の遅延を受けて中継装置１０２に到達する。中継装置１０２は、ＤＥＬＡＹ＿ＲＥＱメッセージの受信時にタイムスタンプとして、受信時刻Ｔｓ３Ｂをとる。中継装置１０２は、受信時刻Ｔｓ３Ｂを管理テーブル５００のＴｂ項目に上書きする。受信時刻Ｔｓ３Ｂは、一例として、６６３［ｎｓ］とする。
【００７９】
中継装置１０２は、スレーブ１０３Ｂから受信したＤＥＬＡＹ＿ＲＥＱメッセージをマスタ１０１に転送せずに廃棄する。これにより、マスタ１０１は、スレーブ１０３ＢからのＤＥＬＡＹ＿ＲＥＱメッセージを受信しないことになり、受信負荷の低減化を図ることができる。また、マスタ１０１は、ＤＥＬＡＹ＿ＲＥＳＰメッセージをスレーブ１０３Ｂに送信する必要がないため、送信負荷の低減化を図ることができる。
【００８０】
中継装置１０２は、スレーブ１０３Ｂから受信したＤＥＬＡＹ＿ＲＥＱメッセージをマスタ１０１に転送しないため、当該ＤＥＬＡＹ＿ＲＥＱメッセージがマスタ１０１に送信されたと仮定した場合のマスタ１０１での受信時刻を知りえない。ＤＥＬＡＹ＿ＲＥＱメッセージのマスタ１０１での受信時刻は、スレーブ１０３Ｂでの時刻補正に用いられるため、中継装置１０２は、ＤＥＬＡＹ＿ＲＥＱメッセージのマスタ１０１での推定受信時刻Ｔ４Ｂを算出する。マスタ１０１での推定受信時刻Ｔ４Ｂは、受信時刻Ｔｓ３Ｂに、中継装置１０２のオフセットＴｏｆｆＴＣと、滞留時間Ｔｒ２と、伝送遅延Ｔｄ１と、を加算した時間として、下記式（９）により算出される。
【００８１】
Ｔ４Ｂ＝Ｔｓ３Ｂ＋Ｔｒ２＋Ｔｄ１−ＴｏｆｆＴＣ・・・（９）
【００８２】
受信時刻Ｔｓ３Ｂは、管理テーブル５００のＴｂ項目に上書きされた値「６６３」である。滞留時間Ｔｒ２は、管理テーブル５００のＴＣ＿ＩＶ＿ｄｅｌａｙ項目に格納された値「１００」である。伝送遅延Ｔｄ１は、管理テーブル５００のｍｅａｎ＿ｐａｔｈ＿ｄｅｌａｙ項目に格納された値「０．５」である。オフセットＴｏｆｆＴＣは、管理テーブル５００のＴＣ＿ＩＶ＿ｏｆｆｓｅｔ＿ｆｒｏｍ＿ｍａｓｔｅｒ項目に格納された値「１００」である。これにより、中継装置１０２は、推定算出時刻Ｔ４Ｂ＝６６３．５［ｎｓ］を算出する。
【００８３】
そして、中継装置１０２は、推定算出時間Ｔ４Ｂのナノセカンド部分である「６６３」を、管理テーブル５００のＴ４＿ＯｒｉｇｉｎＴｉｍｅｓｔａｍｐ項目に上書きする。また、中継装置１０２は、管理テーブル５００のＴＣ＿ＩＶ＿ｄｅｌａｙ項目に格納された値「１００」である滞留時間Ｔｒ２から、推定算出時間Ｔ４Ｂのナノセカンド部分以下である「０．５」を引いた値「９９．５」を、管理テーブル５００のＴ４＿ｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ項目に上書きする。
【００８４】
そして、中継装置１０２は、算出された推定算出時刻Ｔ４Ｂを含むＤＥＬＡＹ＿ＲＥＳＰメッセージを生成する。具体的には、中継装置１０２は、マスタ１０１と同様の処理により、ＤＥＬＡＹ＿ＲＥＳＰメッセージを生成する。中継装置１０２は、たとえば、推定送信時刻Ｔ４Ｂのナノセカンド部分を、ＤＥＬＡＹ＿ＲＥＳＰメッセージのｏｒｇｉｎＴｉｍｅｓｔａｍｐに設定する。また、中継装置１０２は、滞留時間Ｔｒ２から推定送信時刻Ｔ４Ｂのナノセカンド以下の部分を引いた値をＴ４＿ｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ項目から読み出し、ＤＥＬＡＹ＿ＲＥＳＰメッセージのｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄに設定する。
【００８５】
たとえば、推定送信時刻Ｔ４Ｂ＝６６３．５［ｎｓ］、滞留時間Ｔｒ２＝１００［ｎｓ］とすると、ＤＥＬＡＹ＿ＲＥＳＰメッセージのｏｒｇｉｎＴｉｍｅｓｔａｍｐには、「６６３」が格納され、ＤＥＬＡＹ＿ＲＥＳＰメッセージのｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄには、「９９．５」が格納される。そして、中継装置１０２は、生成されたＤＥＬＡＹ＿ＲＥＳＰメッセージを、スレーブ１０３Ｂに送信する。これにより、中継装置１０２は、マスタ１０１に替わって、ＤＥＬＡＹ＿ＲＥＳＰメッセージの代理応答をすることができる。
【００８６】
ＤＥＬＡＹ＿ＲＥＳＰメッセージは、スレーブ１０３Ｂとの間で時刻情報の取得をする必要がないため、中継装置１０２は、ＤＥＬＡＹ＿ＲＥＳＰメッセージの送信タイミングを制御する必要はなく、準備でき次第送信すればよい。
【００８７】
また、ここまでの手順により、スレーブ１０３Ｂは、伝送遅延Ｔｄ１と伝送遅延Ｔｄ２Ｂの総和とオフセットＴｏｆｆＢとを算出するための情報が収集できたことになる。すなわち、マスタ１０１におけるＤＥＬＡＹ＿ＲＥＳＰの推定受信時刻Ｔ４Ｂは、下記式（１０）により表現される。
【００８８】
Ｔ４Ｂ＝Ｔ１＋Ｔｄ１＋Ｔｒ１＋Ｔｄ２Ｂ＋（Ｔ３Ｂ−Ｔ２Ｂ）＋Ｔｄ２Ｂ＋Ｔｒ２＋Ｔｄ１・・・（１０）
【００８９】
上記式（１０）では、スレーブ１０３ＢからのＤＥＬＡＹ＿ＲＥＱメッセージの滞留時間には、スレーブ１０３ＡからのＤＥＬＡＹ＿ＲＥＱメッセージの滞留時間Ｔｒ２を用いた。伝送遅延Ｔｄ１および伝送遅延Ｔｄ２Ｂは未知の値であるため、スレーブ１０３Ｂは、式（１０）を解くことにより伝送遅延Ｔｄ１および伝送遅延Ｔｄ２Ｂの総和を求めることができる。伝送遅延Ｔｄ１および伝送遅延Ｔｄ２Ｂの総和をＴｄＢとする。スレーブ１０３Ｂが取得したＳＹＮＣメッセージの時刻情報とＤＥＬＡＹ＿ＲＥＳＰメッセージの時刻情報を参照すると、上記式（１０）は、下記式（１１）のように表現される。中継装置１０２は、下記式（１１）により伝送遅延の総和ＴｄＢを求めることができる。
【００９０】
ＴｄＢ＝Ｔｄ１＋Ｔｄ２Ｂ
＝｛（Ｔ２Ｂ−Ｔ３Ｂ）
＋（ＲＥＳＰ＿Ｔｉｍｅ−ＳＹＮＣ＿Ｔｉｍｅ）
−ＳＹＮＣ＿ｃｏｒｒｅｃｔｉｏｎ
−ＲＥＳＰ＿ｃｏｒｒｅｃｔｉｏｎ｝／２・・・（１１）
【００９１】
上記式（６）において、「ＲＥＳＰ＿Ｔｉｍｅ」は、ＤＥＬＡＹ＿ＲＥＳＰメッセージのＯｒｉｇｉｎＴｉｍｅｓｔａｍｐの値（６６３）である。また、「ＳＹＮＣ＿Ｔｉｍｅ」は、ＳＹＮＣメッセージのＯｒｉｇｉｎＴｉｍｅｓｔａｍｐの値（７）である。また、「ＳＹＮＣ＿ｃｏｒｒｅｃｔｉｏｎ」は、ＳＹＮＣメッセージのｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄの値（２００．５）である。また、「ＲＥＳＰ＿ｃｏｒｒｅｃｔｉｏｎ」は、ＤＥＬＡＹ＿ＲＥＳＰメッセージのｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄの値（９９．５）である。
【００９２】
スレーブ１０３Ｂは、上記（１１）式を解くことにより、伝送遅延Ｔｄ１および伝送遅延Ｔｄ２Ｂの総和ＴｄＢを算出することができる。本例の場合、ＴｄＢ＝３．５［ｎｓ］となる。
【００９３】
また、スレーブ１０３ＢのオフセットＴｏｆｆＢは、下記式（１２）により表現される。
【００９４】
Ｔ１＋Ｔｄ１＋Ｔｒ１＋Ｔｄ２Ｂ＝Ｔ２Ｂ−ＴｏｆｆＢ・・・（１２）
【００９５】
オフセットＴｏｆｆＢは未知の値であるため、スレーブ１０３Ｂは、式（１２）を解くことによりオフセットＴｏｆｆＢを求めることができる。スレーブ１０３Ｂが取得したＳＹＮＣメッセージの時刻情報とＤＥＬＡＹ＿ＲＥＳＰメッセージの時刻情報を参照すると、上記式（１２）は、下記式（１３）のように表現される。スレーブ１０３Ｂは、下記式（１３）によりオフセットＴｏｆｆＢを求めることができる。
【００９６】
ＴｏｆｆＢ＝Ｔ２Ｂ−ＳＹＮＣ＿Ｔｉｍｅ−ＴｄＢ−ＳＹＮＣ＿ｃｏｒｒｅｃｔｉｏｎ
・・・（１３）
【００９７】
上記式（１３）において、「ＳＹＮＣ＿Ｔｉｍｅ」は、ＳＹＮＣメッセージのＯｒｉｇｉｎＴｉｍｅｓｔａｍｐの値（７）である。また、「ＳＹＮＣ＿ｃｏｒｒｅｃｔｉｏｎ」は、ＳＹＮＣメッセージのｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄの値（２００．５）である。本例では、オフセットＴｏｆｆＢ＝４０［ｎｓ］が算出される。
【００９８】
スレーブ１０３Ｂは、スレーブ１０３Ｂが計時する時刻Ｔｍ＋ＴｏｆｆＢから、算出されたオフセットＴｏｆｆＢを引くことにより、マスタ１０１と同一の基準時刻Ｔｍに補正することができる。
【００９９】
＜中継装置１０２の構成例＞
図７は、実施例１にかかる中継装置１０２の構成例を示すブロック図である。図７において、中継装置１０２は、計時部７００と、第１の送受信部７０１と、第２の送受信部７０２と、第１のパケット処理部７０３と、第２のパケット処理部７０４と、スイッチ７０５と、管理テーブル５００と、取得部７０６と、制御部７０７と、算出部７０８と、生成部７０９と、を有する。
【０１００】
第１の送受信部７０１は、マスタ１０１からのパケットを受信したり、マスタ１０１へパケットを送信する。第１の送受信部７０１は、具体的には、たとえば、マスタ１０１からのＳＹＮＣメッセージやＤＥＬＡＹ＿ＲＥＳＰメッセージを受信したり、スレーブからのＤＥＬＡＹ＿ＲＥＱメッセージをマスタ１０１へ送信する。第１の送受信部７０１は、具体的には、たとえば、通信ポートである。
【０１０１】
第２の送受信部７０２は、スレーブからのパケットを受信したり、スレーブへパケットを送信する。第２の送受信部７０２は、具体的には、たとえば、スレーブからのＤＥＬＡＹ＿ＲＥＱメッセージを受信したり、マスタ１０１からのＳＹＮＣメッセージやＤＥＬＡＹ＿ＲＥＱメッセージをスレーブへ送信する。第２の送受信部７０２は、具体的には、たとえば、通信ポートである。
【０１０２】
計時部７００は、時刻を計時する。計時部７００は、具体的には、たとえば、クロック源となる水晶発振器と、水晶発振器からのクロックにより計時するカウンタを有する。
【０１０３】
第１のパケット処理部７０３は、パケットの種類を識別する。第１のパケット処理部７０３は、たとえば、パケットのヘッダ内の「ｍｅｓｓａｇｅＴｙｐｅ」を参照して、処理対象のパケットがＳＹＮＣメッセージなのか、ＤＥＬＡＹ＿ＲＥＱメッセージなのか、ＤＥＬＡＹ＿ＲＥＳＰメッセージなのかを識別する。第１のパケット処理部７０３は、たとえば、組合せ回路により構成される。
【０１０４】
第２のパケット処理部７０４は、パケットの種類を識別する。第２のパケット処理部７０４は、たとえば、パケットのヘッダ内の「ｍｅｓｓａｇｅＴｙｐｅ」を参照して、処理対象のパケットがＳＹＮＣメッセージなのか、ＤＥＬＡＹ＿ＲＥＱメッセージなのか、ＤＥＬＡＹ＿ＲＥＳＰメッセージなのかを識別する。また、第２のパケット処理部７０４は、パケットの送信元が代表スレーブか否かを識別する。第２のパケット処理部７０４は、たとえば、組合せ回路により構成される。また、スイッチ７０５は、第１の送受信部７０１および第２の送受信部７０２に対し、パケットが送信されるポートを振り分ける。
【０１０５】
取得部７０６は、第１のパケット処理部７０３および第２のパケット処理部７０４により種別が特定されたパケットから、時刻情報を取得する。具体的には、たとえば、取得部７０６は、パケットの共通ヘッダ内の「ｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ」に格納されている値を取得する。また、取得部７０６は、図３および図４に示したように、パケットの「ｏｒｉｇｉｎｔｉｍｅｓｔａｍｐ」に格納されている値を取得する。たとえば、図６において、マスタ１０１からのＳＹＮＣメッセージの場合、取得部７０６は、「ｏｒｉｇｉｎｔｉｍｅｓｔａｍｐ」の値である「７」を取得し、「ｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ」の値である「０．５」を取得する。そして、取得部７０６は、取得した時刻情報を管理テーブル５００に格納する。
【０１０６】
また、取得部７０６は、第１のパケット処理部７０３および第２のパケット処理部７０４において処理されたパケットについて、タイムスタンプを取得する。具体的には、たとえば、取得部７０６は、パケットの受信時刻や送信時刻を取得する。また、取得部７０６は、同一パケットについての送信時刻から受信時刻を引いた滞留時間を取得する。取得部７０６は、取得した時刻情報を管理テーブル５００に格納する。なお、取得部７０６は、組合せ回路により構成してもよく、また、プロセッサにプログラムを実行させることにより実現してもよい。
【０１０７】
制御部７０７は、第２のパケット処理部７０４によるパケットの種別の識別結果により、当該パケットの転送を制御する。具体的には、たとえば、制御部７０７は、送信元が代表スレーブであるＤＥＬＡＹ＿ＲＥＱメッセージについては、スイッチ７０５により宛先となるマスタ１０１を指定して第１のパケット処理部７０３に渡す。一方、制御部７０７は、送信元が代表スレーブでないＤＥＬＡＹ＿ＲＥＱメッセージの場合、当該ＤＥＬＡＹ＿ＲＥＱメッセージを廃棄する。また、制御部７０７は、送信元が代表スレーブでないＤＥＬＡＹ＿ＲＥＱメッセージの場合、その宛先を存在しない宛先に設定することとしてもよい。
【０１０８】
算出部７０８は、取得部７０６によって取得されて管理テーブル５００に格納された情報を用いて、上述したように、伝送遅延Ｔｄ１、オフセットＴｏｆｆＴＣ、推定受信時刻Ｔ４Ｂを算出する。なお、伝送遅延Ｔｄ１が既知であり管理テーブル５００に格納されている場合は、算出部７０８は、管理テーブル５００から読み出すだけでよい。また、オフセットＴｏｆｆＴＣが管理テーブル５００に格納されている場合も、算出部７０８は、管理テーブル５００から読み出すだけでよい。
【０１０９】
生成部７０９は、算出部７０８によって算出された推定受信時刻Ｔ４Ｂを含むパケットを生成する。具体的には、たとえば、生成部７０９は、推定送信時刻Ｔ４Ｂのナノセカンド部分を、ＤＥＬＡＹ＿ＲＥＳＰメッセージのｏｒｇｉｎＴｉｍｅｓｔａｍｐに設定する。また、生成部７０９は、滞留時間Ｔｒ２から推定送信時刻Ｔ４Ｂのナノセカンド以下の部分を引いた値を、ＤＥＬＡＹ＿ＲＥＳＰメッセージのｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄに設定する。そして、生成部７０９は、生成したＤＥＬＡＹ＿ＲＥＱメッセージを第２のパケット処理部７０４に渡す。これにより、生成されたＤＥＬＡＹ＿ＲＥＱメッセージが、宛先となるスレーブに送信される。したがって、マスタ１０１の通信負荷の低減を図りつつ、スレーブでの時刻同期を実現することができる。
【０１１０】
なお、取得部７０６、制御部７０７、算出部７０８、および生成部７０９は、組合せ回路により構成してもよく、また、記憶装置に記憶されたプログラムをプロセッサに実行させることによりその機能を実現することとしてもよい。
【０１１１】
＜中継処理手順＞
図８は、実施例１にかかる中継装置１０２の中継処理手順例を示すフローチャートである。まず、中継装置１０２は、パケットの受信を待ち受け（ステップＳ８０１：Ｎｏ）、パケットを受信した場合（ステップＳ８０１：Ｙｅｓ）、パケットの受信処理を実行する（ステップＳ８０２）。つぎに、中継装置１０２は、受信したパケットについてタイムスタンプを取得する（ステップＳ８０３）。これにより、受信したパケットの受信時刻が得られる。
【０１１２】
このあと、中継装置１０２は、受信したパケットの種類を識別する（ステップＳ８０４）。受信したパケットがＳＹＮＣメッセージである場合（ステップＳ８０４：ＳＹ）、第１の送信パケット処理を実行する（ステップＳ８０５）。第１の送信パケット処理（ステップＳ８０５）とは、受信パケットを宛先に転送する処理である。
【０１１３】
具体的には、中継装置１０２は、配下のスレーブ群にマルチキャストする。また、中継装置１０２は、ＳＹＮＣメッセージの送信時にタイムスタンプを取得する。これにより、送信したＳＹＮＣメッセージの送信時刻が得られる。このあと、中継装置１０２は、滞留時間Ｔｒ１を取得する。そして、中継装置１０２は、管理テーブル５００を更新する。これにより、第１の送信パケット処理（ステップＳ８０５）が終了する。
【０１１４】
また、ステップＳ８０４において、受信したパケットの種類がＤＥＬＡＹ＿ＲＥＱメッセージである場合（ステップＳ８０４：ＤＱ）、第２の送信パケット処理を実行する（ステップＳ８０６）。第２の送信パケット処理（ステップＳ８０６）の詳細については、図９において後述する。
【０１１５】
また、ステップＳ８０４において、受信したパケットの種類がＤＥＬＡＹ＿ＲＥＳＰメッセージである場合（ステップＳ８０４：ＤＲ）、第３の送信パケット処理を実行する（ステップＳ８０７）。第３の送信パケット処理（ステップＳ８０７）とは、受信パケットを宛先に転送する処理である。具体的には、中継装置１０２は、代表スレーブと接続するポートを選択して、代表スレーブにＤＥＬＡＹ＿ＲＥＳＰメッセージを送信する。これにより、第３の送信パケット処理（ステップＳ８０７）が終了する。
【０１１６】
なお、代表スレーブにＤＥＬＡＹ＿ＲＥＳＰメッセージが送信された場合、代表スレーブは、当該ＤＥＬＡＹ＿ＲＥＳＰメッセージを受信する。つぎに、代表スレーブであるスレーブ１０３Ａは、上述したように、上記式（８）により、オフセットＴｏｆｆＡを算出する。そして、スレーブ１０３Ａが計時する時刻Ｔｍ＋ＴｏｆｆＡから、オフセットＴｏｆｆＡを引くことにより、スレーブ１０３Ａは、マスタ１０１と同一の基準時刻Ｔｍに補正することができる。
【０１１７】
図９は、実施例１にかかる図８に示した第２の送信パケット処理（ステップＳ８０６）の詳細な処理手順例を示すフローチャートである。まず、中継装置１０２は、受信したパケットの送信元が、特定の送信元であるか否かを判断する（ステップＳ９０１）。特定の送信元とは、たとえば、代表スレーブである。特定の送信元である場合（ステップＳ９０１：Ｙｅｓ）、中継装置１０２は、ＤＥＬＡＹ＿ＲＥＱメッセージの転送処理を実行する（ステップＳ９０２）。具体的には、中継装置１０２は、ＤＥＬＡＹ＿ＲＥＱメッセージをマスタ１０１に送信する。
【０１１８】
また、中継装置１０２は、ＤＥＬＡＹ＿ＲＥＱメッセージの送信時にタイムスタンプを取得する。これにより、送信したＤＥＬＡＹ＿ＲＥＱメッセージの送信時刻Ｔｓ４Ａが得られる。このあと、中継装置１０２は、滞留時間Ｔｒ２を取得する。そして、中継装置１０２は、管理テーブル５００を更新する。これにより、ＤＥＬＡＹ＿ＲＥＱメッセージの転送処理（ステップＳ９０２）が終了する。
【０１１９】
つぎに、中継装置１０２は、ＤＥＬＡＹ＿ＲＥＱメッセージの転送拒否設定を実行する（ステップＳ９０３）。具体的には、たとえば、中継装置１０２は、ＤＥＬＡＹ＿ＲＥＱメッセージを廃棄するか、ＤＥＬＡＹ＿ＲＥＱメッセージの宛先を存在しないアドレスに変更する。廃棄の場合は、ＤＥＬＡＹ＿ＲＥＱメッセージは送信されない。アドレス変更の場合は、ＤＥＬＡＹ＿ＲＥＱメッセージは送信されるが、マスタ１０１には到達しない。いずれにしても、マスタ１０１の通信負荷の低減化を図ることができる。
【０１２０】
そして、中継装置１０２は、転送拒否したＤＥＬＡＹ＿ＲＥＱメッセージが仮にマスタ１０１に転送され、かつ、マスタ１０１から応答としてＤＥＬＡＹ＿ＲＥＳＰメッセージが送信されてきた場合のＤＥＬＡＹ＿ＲＥＳＰメッセージの推定送信時刻Ｔ４Ｂを算出する（ステップＳ９０４）。具体的には、中継装置１０２は、上記式（９）により推定送信時刻Ｔ４Ｂを算出する。中継装置１０２は、マスタ１０１からＤＥＬＡＹ＿ＲＥＳＰメッセージを受信しなくても、ＤＥＬＡＹ＿ＲＥＳＰメッセージの送信時刻を得ることができる。
【０１２１】
このあと、中継装置１０２は、推定送信時刻Ｔ４Ｂを含むＤＥＬＡＹ＿ＲＥＳＰメッセージを生成し（ステップＳ９０５）、生成したＤＥＬＡＹ＿ＲＥＳＰメッセージを、ＤＥＬＡＹ＿ＲＥＱメッセージの送信元のスレーブに送信する（ステップＳ９０６）。これにより、マスタ１０１からＤＥＬＡＹ＿ＲＥＳＰメッセージを受信しなくても、中継装置１０２は、ＤＥＬＡＹ＿ＲＥＳＰメッセージの代理応答をすることができる。
【０１２２】
なお、ＤＥＬＡＹ＿ＲＥＳＰメッセージが代理応答された場合、宛先となるスレーブは、当該ＤＥＬＡＹ＿ＲＥＳＰメッセージを受信する。つぎに、受信したスレーブであるスレーブ１０３Ｂは、上述したように、上記式（１２）により、オフセットＴｏｆｆＢを算出する。そして、スレーブ１０３Ｂが計時する時刻Ｔｍ＋ＴｏｆｆＢから、オフセットＴｏｆｆＢを引くことにより、スレーブ１０３Ｂは、マスタ１０１と同一の基準時刻Ｔｍに補正することができる。
【０１２３】
このように、実施例１によれば、代表スレーブ以外の残余のスレーブからのＤＥＬＡＹ＿ＲＥＱメッセージの転送を拒否することにより、マスタ１０１におけるＤＥＬＡＹ＿ＲＥＳＰメッセージの受信負荷と、その応答となるＤＥＬＡＹ＿ＲＥＳＰメッセージの送信負荷の低減化を図ることができる。特に、残余のスレーブの台数が多ければ多いほど、通信負荷の低減効率を上げることができる。また、中継装置１０２が、マスタ１０１に替わってＤＥＬＡＹ＿ＲＥＳＰメッセージの代理応答をすることにより、残余のスレーブでの時刻同期処理が保証される。
【実施例２】
【０１２４】
つぎに、実施例２について説明する。実施例１では、中継装置１０２は、上記式（９）によりマスタ１０１でのＤＥＬＡＹ＿ＲＥＳＰメッセージの推定送信時刻Ｔ４Ｂを求めた。これに対し、実施例２では、代表スレーブ以外の残余のスレーブからのＤＥＬＡＹ＿ＲＥＱメッセージの滞留時間Ｔｒ３を求めてから、当該ＤＥＬＡＹ＿ＲＥＱメッセージの転送拒否を実行する。このように、中継装置１０２は、ＤＥＬＡＹ＿ＲＥＱメッセージごとに個別に滞留時間Ｔｒ３を求め、式（９）で用いた滞留時間Ｔｒ２に替えて、算出したＴｒ３を用いて、マスタ１０１でのＤＥＬＡＹ＿ＲＥＳＰメッセージの推定送信時刻Ｔ４Ｂを算出する。これにより、残余のスレーブごとに個別の時刻補正をおこなうことができ、残余のスレーブでの時刻補正の高精度化を図ることができる。
【０１２５】
以下、実施例２について詳細に説明するが、実施例１と同一内容については同一符号を付し、その説明を省略する。
【０１２６】
＜時刻同期処理シーケンス＞
図１０は、実施例２にかかる時刻同期処理例を示すシーケンス図である。実施例１との違いについて説明する。
【０１２７】
実施例１では、式（１０）において、スレーブ１０３ＢからのＤＥＬＡＹ＿ＲＥＱメッセージの滞留時間には、スレーブ１０３ＡからのＤＥＬＡＹ＿ＲＥＱメッセージの滞留時間Ｔｒ２を用いた。
【０１２８】
これに対し、実施例２では、中継装置１０２が、スレーブ１０３ＢからのＤＥＬＡＹ＿ＲＥＱメッセージをマスタ１０１へ送信した時刻Ｔｓ４Ｂを得て、滞留時間Ｔｒ３を取得する。滞留時間Ｔｒ３は、下記式（１４）により求められる。
【０１２９】
Ｔｒ３＝Ｔｓ４Ｂ−Ｔｓ３Ｂ・・・（１４）
【０１３０】
ここで、受信時刻Ｔｓ３Ｂを実施例１と同様、Ｔｓ３Ｂ＝６６３［ｎｓ］とし、送信時刻Ｔｓ４ＢをＴｓ４Ｂ＝７１３［ｎｓ］とする。
【０１３１】
中継装置１０２は、実施例１と同様、ＤＥＬＡＹ＿ＲＥＱメッセージのマスタ１０１での推定受信時刻Ｔ４Ｂを算出する。実施例２では、マスタ１０１での推定受信時刻Ｔ４Ｂは、受信時刻Ｔｓ３Ｂに、中継装置１０２のオフセットＴｏｆｆＴＣと、滞留時間Ｔｒ３と、伝送遅延Ｔｒ１と、を加算した時間として、下記式（１５）により算出される。上記式（９）との違いは、右辺第２項がＴｒ２からＴｒ３に替わった点である。
【０１３２】
Ｔ４Ｂ＝Ｔｓ３Ｂ＋Ｔｒ３＋Ｔｄ１−ＴｏｆｆＴＣ・・・（１５）
【０１３３】
受信時刻Ｔｓ３Ｂは、管理テーブル５００のＴｂ項目に上書きされた値「６６３」である。滞留時間Ｔｒ３は、上記式（１４）により算出される。ここでは、滞留時間Ｔｒ３は、Ｔｒ３＝７１３−６６３＝５０［ｎｓ］となる。算出された滞留時間Ｔｒ３は、管理テーブル５００のＴＣ＿ＩＶ＿ｄｅｌａｙ項目に上書きされる。伝送遅延Ｔｄ１は、管理テーブル５００のｍｅａｎ＿ｐａｔｈ＿ｄｅｌａｙ項目に格納された値「０．５」である。オフセットＴｏｆｆＴＣは、管理テーブル５００のＴＣ＿ＩＶ＿ｏｆｆｓｅｔ＿ｆｒｏｍ＿ｍａｓｔｅｒ項目に格納された値「１００」である。これにより、中継装置１０２は、推定算出時刻Ｔ４Ｂ＝６１３．５［ｎｓ］を算出する。
【０１３４】
実施例２では、中継装置１０２は、推定算出時間Ｔ４Ｂのナノセカンド部分である「６１３」を、管理テーブル５００のＴ４＿ＯｒｉｇｉｎＴｉｍｅｓｔａｍｐ項目に上書きする。また、中継装置１０２は、管理テーブル５００のＴＣ＿ＩＶ＿ｄｅｌａｙ項目に格納された値「５０」である滞留時間Ｔｒ２から、推定算出時間Ｔ４Ｂのナノセカンド部分以下である「０．５」を引いた値「４９．５」を、管理テーブル５００のＴ４＿ｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ項目に上書きする。
【０１３５】
そして、中継装置１０２は、算出された推定算出時刻Ｔ４Ｂを含むＤＥＬＡＹ＿ＲＥＳＰメッセージを生成する。具体的には、中継装置１０２は、マスタ１０１と同様の処理により、ＤＥＬＡＹ＿ＲＥＳＰメッセージを生成する。中継装置１０２は、たとえば、推定送信時刻Ｔ４Ｂのナノセカンド部分を、ＤＥＬＡＹ＿ＲＥＳＰメッセージのｏｒｇｉｎＴｉｍｅｓｔａｍｐに設定する。また、中継装置１０２は、滞留時間Ｔｒ２から推定送信時刻Ｔ４Ｂのナノセカンド以下の部分を引いた値をＴ４＿ｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ項目から読み出し、ＤＥＬＡＹ＿ＲＥＳＰメッセージのｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄに設定する。
【０１３６】
たとえば、推定送信時刻Ｔ４Ｂ＝６１３．５［ｎｓ］、滞留時間Ｔｒ３＝５０［ｎｓ］とすると、ＤＥＬＡＹ＿ＲＥＳＰメッセージのｏｒｇｉｎＴｉｍｅｓｔａｍｐには、「６１３」が格納され、ＤＥＬＡＹ＿ＲＥＳＰメッセージのｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄには、「４９．５」が格納される。そして、中継装置１０２は、式（１５）で算出された推定受信時刻Ｔ４Ｂを含むＤＥＬＡＹ＿ＲＥＳＰメッセージを生成し、スレーブ１０３Ｂに送信する。これにより、中継装置１０２は、マスタ１０１に替わって、ＤＥＬＡＹ＿ＲＥＳＰメッセージの代理応答をすることができる。
【０１３７】
また、実施例２の場合、スレーブ１０３Ｂからみると、マスタ１０１におけるＤＥＬＡＹ＿ＲＥＳＰの推定受信時刻Ｔ４Ｂは、下記式（１６）により表現される。上記式（１０）との違いは、右辺第７項がＴｒ２からＴｒ３に替わった点である。
【０１３８】
Ｔ４Ｂ＝Ｔ１＋Ｔｄ１＋Ｔｒ１＋Ｔｄ２Ｂ＋（Ｔ３Ｂ−Ｔ２Ｂ）＋Ｔｄ２Ｂ＋Ｔｒ３＋Ｔｄ１・・・（１６）
【０１３９】
上記式（１６）では、スレーブ１０３ＢからのＤＥＬＡＹ＿ＲＥＱメッセージの滞留時間には、スレーブ１０３ＢからのＤＥＬＡＹ＿ＲＥＱメッセージの滞留時間Ｔｒ３を用いた。伝送遅延Ｔｄ１および伝送遅延Ｔｄ２Ｂは未知の値であるため、スレーブ１０３Ｂは、式（１６）を解くことにより伝送遅延Ｔｄ１および伝送遅延Ｔｄ２Ｂの総和ＴｄＢを求めることができる。スレーブ１０３Ｂが取得したＳＹＮＣメッセージの時刻情報とＤＥＬＡＹ＿ＲＥＳＰメッセージの時刻情報を参照すると、上記式（１６）は、下記式（１７）のように表現される。中継装置１０２は、下記式（１７）により伝送遅延の総和ＴｄＢを求めることができる。
【０１４０】
ＴｄＢ＝Ｔｄ１＋Ｔｄ２Ｂ
＝｛（Ｔ２Ｂ−Ｔ３Ｂ）
＋（ＲＥＳＰ＿Ｔｉｍｅ−ＳＹＮＣ＿Ｔｉｍｅ）
−ＳＹＮＣ＿ｃｏｒｒｅｃｔｉｏｎ
−ＲＥＳＰ＿ｃｏｒｒｅｃｔｉｏｎ｝／２・・・（１７）
【０１４１】
上記式（１７）において、「ＲＥＳＰ＿Ｔｉｍｅ」は、ＤＥＬＡＹ＿ＲＥＳＰメッセージのＯｒｉｇｉｎＴｉｍｅｓｔａｍｐの値「６１３」である。また、「ＳＹＮＣ＿Ｔｉｍｅ」は、ＳＹＮＣメッセージのＯｒｉｇｉｎＴｉｍｅｓｔａｍｐの値（７）である。また、「ＳＹＮＣ＿ｃｏｒｒｅｃｔｉｏｎ」は、ＳＹＮＣメッセージのｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄの値「２００．５」である。
【０１４２】
また、「ＲＥＳＰ＿ｃｏｒｒｅｃｔｉｏｎ」は、ＤＥＬＡＹ＿ＲＥＳＰメッセージのｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄの値「４９．５」である。ＤＥＬＡＹ＿ＲＥＳＰメッセージのｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄの値「４９．５」は、滞留時間Ｔｒ３＝５０から推定受信時刻Ｔ４Ｂ＝６１３．５のナノセカンド以下の部分である０．５を引いた値である。
【０１４３】
スレーブ１０３Ｂは、上記（１７）式を解くことにより、伝送遅延Ｔｄ１および伝送遅延Ｔｄ２Ｂの総和ＴｄＢを算出することができる。本例の場合、ＴｄＢ＝３．５［ｎｓ］となる。
【０１４４】
また、スレーブ１０３ＢのオフセットＴｏｆｆＢは、実施例１と同様、上記式（１３）により求めることができる。上記式（１３）において、「ＳＹＮＣ＿Ｔｉｍｅ」は、ＳＹＮＣメッセージのＯｒｉｇｉｎＴｉｍｅｓｔａｍｐの値「７」である。また、「ＳＹＮＣ＿ｃｏｒｒｅｃｔｉｏｎ」は、ＳＹＮＣメッセージのｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄの値「２００．５」である。本例では、オフセットＴｏｆｆＢ＝４０［ｎｓ］が算出される。
【０１４５】
スレーブ１０３Ｂは、スレーブ１０３Ｂが計時する時刻Ｔｍ＋ＴｏｆｆＢから、算出されたオフセットＴｏｆｆＢを引くことにより、マスタ１０１と同一の基準時刻Ｔｍに補正することができる。このように、実施例２によれば、残余のスレーブごとに個別の時刻補正をおこなうことができ、残余のスレーブでの時刻補正の高精度化を図ることができる。
【０１４６】
＜管理テーブル５００＞
図１１は、実施例２にかかる管理テーブルの記憶内容の一例を示す説明図である。管理テーブル５００は、メモリなどの記憶装置に記憶される。中継装置１０２は、実施例１と同様、スレーブ１０３ＡからＤＥＬＡＹ＿ＲＥＱメッセージを受信すると、タイムスタンプとして取得した受信時刻Ｔｓ３Ａ＝５６１［ｎｓ］をＴｂ項目に上書きする。そして、中継装置１０２は、実施例１と同様、スレーブ１０３ＢからＤＥＬＡＹ＿ＲＥＱメッセージを受信すると、タイムスタンプとして取得した受信時刻Ｔｓ３Ｂ＝６６３［ｎｓ］をＴｂ項目に上書きする。
【０１４７】
また、中継装置１０２は、実施例１と同様、マスタ１０１からＤＥＬＡＹ＿ＲＥＳＰメッセージを受信すると、受信時刻Ｔ４Ａのナノセカンド部分である「５６１」を、管理テーブル５００のＴ４＿ＯｒｉｇｉｎＴｉｍｅｓｔａｍｐ項目に格納する。また、中継装置１０２は、管理テーブル５００のＴＣ＿ＩＶ＿ｄｅｌａｙ項目に格納された値「１００」である滞留時間Ｔｒ２から、受信時刻Ｔ４Ａのナノセカンド部分以下である「０．５」が引かれた値「９９．５」を、管理テーブル５００のＴ４＿ｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ項目に格納する。
【０１４８】
また、中継装置１０２は、スレーブ１０３ＢからＤＥＬＡＹ＿ＲＥＱメッセージを受信すると、マスタ１０１での受信時刻を推定する。当該ＤＥＬＡＹ＿ＲＥＱメッセージの推定算出時刻Ｔ４Ｂのナノセカンド部分である「６６３」を、管理テーブル５００のＴ４＿ＯｒｉｇｉｎＴｉｍｅｓｔａｍｐ項目に格納する。また、中継装置１０２は、管理テーブル５００のＴＣ＿ＩＶ＿ｄｅｌａｙ項目に格納された値「５０」である滞留時間Ｔｒ３から、推定算出時間Ｔ４Ｂのナノセカンド部分以下である「０．５」を引いた値「４９．５」を、管理テーブル５００のＴ４＿ｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄ項目に上書きする。
【０１４９】
＜中継装置１０２の構成例＞
図１２は、実施例２にかかる中継装置１０２の構成例を示すブロック図である。実施例１との違いは、制御部７０７が、第１のパケット処理部７０３に接続される点である。すなわち、制御部７０７は、第１のパケット処理部７０３により、スレーブ１０３ＢからのＤＥＬＡＹ＿ＲＥＱメッセージの送信時刻Ｔｓ４Ｂを取得してから、当該ＤＥＬＡＹ＿ＲＥＱメッセージを廃棄または存在しないアドレスに転送する。
【０１５０】
＜第２の送信パケット処理＞
図１３は、実施例２にかかる図８に示した第２の送信パケット処理（ステップＳ８０６）の詳細な処理手順例を示すフローチャートである。実施例２では、特定の送信元でない場合（ステップＳ９０１：Ｎｏ）、ＤＥＬＡＹ＿ＲＥＱメッセージの転送拒否設定（ステップＳ９０３）の前に、中継装置１０２は、タイムスタンプを取得して、滞留時間Ｔｒ３を算出する（ステップＳ１３０２）。具体的には、ＤＥＬＡＹ＿ＲＥＱメッセージの受信時刻Ｔｓ３Ｂについては、図８のステップＳ８０３で取得済みであるため、ステップＳ１３０２では、中継装置１０２は、転送拒否されるＤＥＬＡＹ＿ＲＥＱメッセージの送信時刻Ｔｓ４Ｂを取得する。そして、中継装置１０２は、上記式（１４）により滞留時間Ｔｒ３を算出する。
【０１５１】
これにより、ステップＳ１３０４では、中継装置１０２は、ステップＳ１３０２で算出された滞留時間Ｔｒ３を用いて、上記式（１５）により推定送信時刻Ｔ４Ｂを算出することになる（ステップＳ１３０４）。
【０１５２】
このように、実施例２によれば、実施例１と同様、マスタ１０１のＤＥＬＡＹ＿ＲＥＱメッセージの受信負荷と、マスタ１０１のＤＥＬＡＹ＿ＲＥＳＰメッセージの送信負荷と、の低減化を図ることができる。また、中継装置１０２は、代表スレーブ以外の残余のスレーブごとに、ＤＥＬＡＹ＿ＲＥＱメッセージの滞留時間を求め、当該滞留時間を用いて、残余のスレーブごとに推定送信時刻を求める。したがって、実施例１よりも高精度な時刻補正を実現することができる。
【０１５３】
以上説明したように、本実施の形態によれば、マスタ１０１の通信負荷の低減化を図ることができる。これにより、マスタ１０１と中継装置１０２間の通信が低減されるため、代表スレーブ以外の残余のスレーブについての時刻同期処理の短縮化を図ることができる。
【０１５４】
なお、上述した実施の形態では、伝送遅延Ｔｄ１を計算により求めたが、既知の値であれば、あらかじめメモリなどの記憶装置に格納しておき、オフセットＴｏｆｆＴＣや推定受信時刻Ｔ４Ｂの算出に用いればよい。
【０１５５】
同様に、滞留時間Ｔｒ１、Ｔｒ２、Ｔｒ３についても、既知の値であれば、あらかじめメモリなどの記憶装置に格納しておき、オフセットＴｏｆｆＴＣや推定受信時刻Ｔ４Ｂの算出に用いればよい。
【０１５６】
なお、上述した実施の形態では、ＯＮＥ  ＳＴＥＰ  ＣＬＯＣＫを例に挙げて説明したが、ＴＷＯ  ＳＴＥＰ  ＣＬＯＣＫにも適用可能である。ＴＷＯ  ＳＴＥＰ  ＣＬＯＣＫは、マスタ１０１からのＳＹＮＣメッセージの時刻Ｔ１をＳＹＮＣメッセージではなくＦＯＬＬＯＷ＿ＵＰメッセージの送信時刻とする。時刻Ｔ１はＳＹＮＣメッセージの送信時刻を示すが、ＳＹＮＣメッセージに時刻を埋め込んでから実際にＳＹＮＣメッセージが送信するまで必然的に時間のずれが発生する。誤差要因となるこのずれに対処した方法がＴＷＯ  ＳＴＥＰ  ＣＬＯＣＫである。
【０１５７】
ＴＷＯ  ＳＴＥＰ  ＣＬＯＣＫでは、マスタ１０１はＳＹＮＣメッセージに時刻Ｔ１を埋め込まない。中継装置１０２は、ＯＮＥ  ＳＴＥＰ  ＣＬＯＣＫと同様に、ＳＹＮＣメッセージに滞留時間Ｔｒ１を加算する。また、ＳＹＮＣメッセージの中継装置１０２からの送信時刻Ｔｓ２、ＳＹＮＣメッセージのスレーブ１０３Ａでの受信時刻Ｔ２Ａ、ＳＹＮＣメッセージのスレーブ１０３Ｂでの受信時刻Ｔ２Ｂとする点についても、ＯＮＥ  ＳＴＥＰ  ＣＬＯＣＫと同様である。
【０１５８】
ＴＷＯ  ＳＴＥＰ  ＣＬＯＣＫでは、この後、時刻Ｔ１がＦＯＬＬＯＷ＿ＵＰメッセージで伝達される。なお、ＦＯＬＬＯＷ＿ＵＰメッセージは中継装置１０２において滞留時間Ｔｒ１を加算されることなく、透過的にスレーブにマルチキャストされる。中継装置１０２およびスレーブは、ＦＯＬＬＯＷ＿ＵＰメッセージ内のｐｒｅｃｉｓｅＯｒｉｇｉｎＴｉｍｅｓｔａｍｐをＳＹＮＣメッセージ内のＯｒｉgｉｎ  Ｔｉｍｅｓｔａｍｐに足し合わせる。また、中継装置１０２およびスレーブは、ＦＯＬＬＯＷ＿ＵＰメッセージのｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄをＳＹＮＣメッセージのｃｏｒｒｅｃｔｉｏｎＦｉｅｌｄに足し合わせる。
【０１５９】
これにより、マスタ１０１から中継装置１０２までの伝送遅延と、マスタ１０１と中継装置１０２との時計のずれであるオフセットと、を、ＯＮＥ  ＳＴＥＰ  ＣＬＯＣＫと同様の数式により計算することができる。
【０１６０】
以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。
【符号の説明】
【０１６１】
１０１  マスタ
１０２  中継装置
１０３Ａ  スレーブ
１０３Ｂ  スレーブ
５００  管理テーブル
７００  計時部
７０１  第１の送受信部
７０２  第２の送受信部
７０３  第１のパケット処理部
７０４  第２のパケット処理部
７０５  スイッチ
７０６  取得部
７０７  制御部
７０８  算出部
７０９  生成部
【図１】
2014116672.tif 000003
【図２】
2014116672.tif 000004
【図３】
2014116672.tif 000005
【図４】
2014116672.tif 000006
【図５】
2014116672.tif 000007
【図６】
2014116672.tif 000008
【図７】
2014116672.tif 000009
【図８】
2014116672.tif 000010
【図９】
2014116672.tif 000011
【図１０】
2014116672.tif 000012
【図１１】
2014116672.tif 000013
【図１２】
2014116672.tif 000014
【図１３】
2014116672.tif 000015