(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-20
(45)【発行日】2025-01-28
(54)【発明の名称】時刻同期方式、時刻同期方法
(51)【国際特許分類】
H04L 7/00 20060101AFI20250121BHJP
【FI】
H04L7/00 990
(21)【出願番号】P 2020159213
(22)【出願日】2020-09-24
【審査請求日】2023-02-21
(73)【特許権者】
【識別番号】000006105
【氏名又は名称】株式会社明電舎
(74)【代理人】
【識別番号】100086232
【氏名又は名称】小林 博通
(74)【代理人】
【識別番号】100092613
【氏名又は名称】富岡 潔
(74)【代理人】
【識別番号】100104938
【氏名又は名称】鵜澤 英久
(74)【代理人】
【識別番号】100210240
【氏名又は名称】太田 友幸
(72)【発明者】
【氏名】川岸 正幸
【審査官】原田 聖子
(56)【参考文献】
【文献】国際公開第2008/129593(WO,A1)
【文献】特開2013-146006(JP,A)
【文献】特開平05-167589(JP,A)
【文献】国際公開第2008/123272(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 7/00
(57)【特許請求の範囲】
【請求項1】
リング型ネットワークの特性を測定するキャリブレーションモードと、前記測定の結果に基づく同期モードとの実行により、
前記リング型ネットワーク上のスレーブ群をマスターに時刻同期させる方式であって、
前記キャリブレーションモードにおいて、
一般トラフィックが流入しない設定下で、前記マスターの送信した同期用メッセージを前記各スレーブが順次に転送・中継した後に前記マスターで受信する
リング周回を複数回にわたって実行し、
前記マスターは、前記各リング周回のリング周回時間を測定し、測定されたリング周回時間群から要求精度に応じた最短時間を標準リング周回時間として算出し、
前記同期モードにおいて、
前記マスターは、前記キャリブレーションモードと同様に前記同期用メッセージを定期的に周回させ、
前記定期的に周回される前記同期用メッセージのリング周回時間と、前記標準リング周回時間との差分を超過遅延時間として算出し、
前記超過遅延時間が事前設定の許容水準を超えていれば前記各スレーブに広告する一方、
前記各スレーブは、前記広告に応じて前記マスターのクロックで計測された前記同期用メッセージの送信時刻および受信時刻に基づき前記同期用メッセージの伝送遅延を算出し、
前記伝送遅延を用いて前記スレーブのクロックと前記マスターのクロックとの誤差を算出し、算出された誤差に基づき前記スレーブのクロックを補正する
ことを特徴とする時刻同期方式。
【請求項2】
前記キャリブレーションモードにおいて前記マスターは、自身から前記各スレーブに至るまでに経過するホップ数を算出し、
前記同期モードにおいて、前記リング周回時間を用いて前記スレーブ1台あたりの通過遅延時間を推定し、
前記推定の結果に前記ホップ数を乗算することで各スレーブまでの伝送遅延を算出する
ことを特徴とする請求項
1記載の時刻同期方式。
【請求項3】
前記同期モードにおいて前記マスターは、
前記広告により、
前記超過遅延時間の生じた前記同期用メッセージの受信時刻を破棄させることを特徴とする請求項
1または2記載の時刻同期方式。
【請求項4】
前記同期モードにおいて前記マスターは、前記同期
用メッセージの周回時間を前記スレーブに後追いで通知し、
前記ホップ数を前記スレーブに知らせるメッセージを送信することを特徴とする請求項
2記載の時刻同期方式。
【請求項5】
前記同期モードにおける時刻同期の完了後に一般トラフィックが、前記リング型ネットワークに流入可能な通常モードに遷移することを特徴とする請求項
1~4のいずれかに記載の時刻同期方式。
【請求項6】
前記通常モードへの遷移後にキャリブレーションモードまたは同期モードへフォールバック遷移が可能なことを特徴とする請求項
5記載の時刻同期方式。
【請求項7】
リング型ネットワークの特性を測定するキャリブレーションモードと、前記測定の結果に基づく同期モードとの実行により、
前記リング型ネットワーク上のスレーブ群をマスターに時刻同期させる方法であって、
前記キャリブレーションモードは、
一般トラフィックが流入しない設定下で、前記マスターの送信した同期用メッセージを前記各スレーブが順次に転送・中継した後に前記マスターで受信する
リング周回を複数回にわたって実行するステップと、
前記マスターが、前記各リング周回のリング周回時間を測定し、測定されたリング周回時間群から要求精度に応じた最短時間を標準リング周回時間として算出するステップと、
を有し、
前記同期モードは、
前記マスターが、前記キャリブレーションモードと同様に前記同期用メッセージを定期的に周回させるステップと、
前記定期的に周回される前記同期用メッセージのリング周回時間と、前記標準リング周回時間との差分を超過遅延時間として算出するステップと、
前記超過遅延時間が事前設定の許容水準を超えていれば前記各スレーブに広告するステップと、
前記各スレーブが、前記広告に応じて前記マスターのクロックで計測された前記同期用メッセージの送信時刻および受信時刻に基づき前記同期用メッセージの伝送遅延を算出するステップと、
前記伝送遅延を用いて前記スレーブのクロックと前記マスターのクロックとの誤差を算出し、算出された誤差に基づき前記スレーブのクロックを補正するステップと、
を有することを特徴とする時刻同期方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信分野におけるノード間の時刻同期に関する。
【背景技術】
【0002】
IEEE1588に規定するPTP(Precision Time Protocol)は、基本的にマスター:スレーブの二点のノード間における時刻同期を図っている(特許文献1,非特許文献1参照)。
【0003】
PTPによる時刻同期は、マスター・スレーブ間における1対1の処理で同期を取るので、トポロジー制約が無いことが利点な反面、スレーブの台数が増加するに従ってマスターへのトラフィック集中が問題となる。
【0004】
また、PTPによる時刻同期は、マスター・スレーブの二点間における往路・復路の伝送遅延が同一であることを前提としているが、一般的なイーサネット(登録商標)網では、かかる前提の成立は保証されず、時刻同期の品質が不安定となり易い。
【0005】
(1)時刻同期の基本的な考え方
図1中のマスタークロックとスレーブクロックとは、マスター・スレーブに内蔵されたクロック(時計)を示し、両クロックの偏差を「Δt」とする。ここではマスタークロックを基準時計とするため、偏差「Δt」はスレーブクロック側の「誤差」といえる。
【0006】
例えばマスタークロックの時刻を「T」・スレーブクロックの時刻を「T´」とすれば、「T´=T+Δt」と表すことができる。また、「Δt>0」の場合にはスレーブクロックの時刻が進み、「Δt<0」の場合にはスレーブクロックの時刻が遅れていることとなる。
【0007】
したがって、「時刻同期」は「Δt=0(0に限りなく近づける)」ことを意味する。このときスレーブが、自身のクロックの「Δt」を求めることができれば、その分の時刻の進み/遅れを補正することでマスタークロックと同期することが可能となる。
【0008】
(2)従来の時刻同期
図2に示す従来の時刻同期方法では、マスターからスレーブに同期用メッセージ「SYNCメッセージ」を送信する。このメッセージには、送信時刻T1が打刻されている。
【0009】
「SYNCメッセージ」を受信したスレーブは、同メッセージの受信時刻「T´」を自らのスレーブクロックで計測する。このとき「SYNCメッセージ」の伝搬時間が要求精度に比べて十分に小さければ、「Δt」は式(1)のように算出される。
【0010】
【0011】
ただし、「SYNCメッセージ」送信時刻を打刻するには、ある程度高度なハードウェア(HW)が必要となる。そこで、前記ハードウェアを持たないノードの場合には、
図3に示すように、送信時刻を後追いの「FOLLOW-UPメッセージ」で通知する。
【0012】
(3)伝送遅延の問題
前述した従来の時刻同期は、「SYNCメッセージ」の伝搬時間が要求精度に比べて十分に小さいことを前提条件とする。
図4は、かかる前提条件が満たされない場合を示している。
【0013】
図3中のマスター・スレーブ間の伝送遅延「D1≠0」とするならば、式(1)には伝送遅延成分D1が余分に含まれているので、式(2)の方程式に示すように、余分な成分(D1)を差分することで等式が成立する。
【0014】
【0015】
このとき「Δt」を求めるには「D1」の値が必要である。「D1」の値は、「T´2-T´1」なため、式(3)となる。この式(3)は右辺に変数の「Δt」が残る。
【0016】
【0017】
その結果、「Δt」を計算するには正しい「D1」の値が必要だが、「D1」の値を算出するには「Δt」が必要となる。これは「鶏と卵」のパラドックスといえる。すなわち、数学的観点からすれば、二つの変数の値を確定するには二本の方程式を必要とするが、一つしか方程式を立てられない状態であり、解が求められない問題が生じる。
【0018】
(4)PTPの解決方法
PTPでは、前記問題を解決するため、「伝送遅延が往路・復路で同じ」と仮定し、
図5の処理を実行する。ここでは従来の時刻同期方法に次の処理が追加されている。
・スレーブは、マスターに対して「DELAY REQメッセージ」を送信する。このメッセージの送信時刻「T´3」を自身のスレーブクロックで測定する。
・「DELAY REQメッセージ」を受信したマスターは、その受信時刻「T4」をスレーブに「DELAY RES」メッセージとして返信する。この返信を受信したスレーブは、同メッセージの時刻「T4」を入手する。
【0019】
その結果、「Δt=T4-T´3-D2」の新たな方程式を立てることが可能となる。これにより「未知変数×2」・「方程式×2」となり、伝送遅延「D1=D2=D」を前提に偏差「Δt」を求めている。
【0020】
具体的に偏差「Δt」の算出方法を説明すれば、まず「D1」と「D2」とは、式(4)(5)の通りであることは明らかである。
【0021】
【0022】
【0023】
つぎにマスタークロック・スレーブクロックの偏差「Δt」の定義(T´=T+Δt)から式(6)(7)が成立する。
【0024】
【0025】
【0026】
そうすると式(6)(7)を式(4)(5)に代入すれば、式(8)(9)が成立する。
【0027】
【0028】
【0029】
ここで伝送遅延「D1=D2=D」が前提なため、式(10)が成立する。
【0030】
【0031】
式(10)の値を「D」とすれば、式(8)(9)は式(11)(12)と表すことができる。
【0032】
【0033】
【0034】
「式(12)-式(11)」を評価すると、左辺の「D」が相殺され、「Δt」について解くと、式(13)が得られる。スレーブは、この偏差「Δt」に基づき自身のクロックを補正することでマスターとの時刻同期を図っている。
【0035】
【先行技術文献】
【特許文献】
【0036】
【非特許文献】
【0037】
【文献】“Endrum IEEE 1588 PTP グランドマスタークロック”,[online],令和2年9月11日検索,インターネット<URL:http://www.shoshin.co.jp/c/endrum/1588ptp.html>
【発明の概要】
【発明が解決しようとする課題】
【0038】
前述のようにPTPでは、伝送遅延「D1=D2=D」を前提に偏差「Δt」を求めている。しかしながら、イーサネットにおいて、ノード間の往路・復路の伝送遅延が同一であることは保証されず、また期待することもできない。
【0039】
イーサネットにおける伝送遅延の変動は、主にイーサネットスイッチの転送処理に起因して生じる。すなわち、PTPパケットがイーサネットスイッチを通過する際、転送先ポートに送信中のパケットが存在する否かによって変動を受ける。
【0040】
転送先ポートに送信中のパケットが存在しなければ、送信待ちが発生せずに転送される。一方、転送先ポートに送信中のパケットが存在すれば、該パケットが完全に送出されるまで後続のパケットは待機状態を強いられる。これはパケットに優先度が設定されていても同じである。
【0041】
したがって、転送先ポートに先行パケットが存在するか否か(あるいは先行パケットの長さ)に応じて伝送遅延に変動が生じ、往路・復路で伝送遅延が同一となることは期待できない。PTPでは、このような突発的な誤差(先行パケットの有無)の混入が本質的に回避できないので、移動平均などの平滑化機構を実装する必要が生じる。この平滑化機能により突発的に混入した誤差を前後の測定値で平坦に均すことは可能であるが、その代償として時刻同期にかかる時間が増大するおそれがある。
【0042】
そもそもPTPが往路・復路の伝送遅延が同一であることを前提としなければならないのは、前述のパラドックスを根本原因とする。すなわち、マスタークロック・スレーブクロック間の誤差を計算するために、その二つのクロックで時間差を測定しなければならないこと自体に矛盾が潜んでいる。
【0043】
本発明は、このような従来の問題を解決するためになされ、ノード間の往復の伝送遅延が同一であることが保証されていない状況下において、伝送遅延をマスター・スレーブのそれぞれのクロックではなく、マスタークロックのみで計測することで時刻同期の品質の安定化を図ることを解決課題としている。
【課題を解決するための手段】
【0044】
(1)本発明の一態様は、リング型ネットワーク上のスレーブ群をマスターに時刻同期させる方式であって、
前記マスターの送信した同期用メッセージを、前記各スレーブが順次に転送・中継した後に前記マスターで受信することで前記ネットワーク上を周回させ、
前記マスターのクロックで計測された前記同期用メッセージの送信時刻および受信時刻に基づき前記同期用メッセージの伝送遅延を算出し、
前記伝送遅延を用いて前記スレーブのクロックと前記マスターのクロックとの誤差を算出し、算出された誤差に基づき前記スレーブのクロックを補正することを特徴としている。
【0045】
(2)本発明の他の態様は、リング型ネットワーク上のスレーブ群をマスターに時刻同期させる方法であって、
前記マスターの送信した同期用メッセージを、前記各スレーブが順次に転送・中継した後に前記マスターで受信することで前記ネットワーク上を周回させるステップと、
前記マスターの内蔵時計で計測された前記同期用メッセージの送信時刻および受信時刻に基づき前記同期用メッセージの伝送遅延を算出するステップと、
前記伝送遅延を用いて前記スレーブの内蔵時計と前記マスターの内蔵時計との誤差を算出し、算出された誤差に基づき前記スレーブの内蔵時計を補正して前記マスターの内蔵時計と同期するステップと、を有することを特徴としている。
【発明の効果】
【0046】
本発明によれば、ノード間の往復の伝送遅延が同一であることが保証されていない状況下において、伝送遅延をマスター・スレーブのそれぞれのクロックではなく、マスターのクロックのみで計測するため、時刻同期の品質の安定化を図ることができる。
【図面の簡単な説明】
【0047】
【
図3】「FOLLOW-UPメッセージ」の後追い通知を示す模式図。
【
図4】「伝送遅延=0」とみなせない場合の模式図。
【
図6】本発明の実施形態に係る時刻同期方式(方法)の「SYNCメッセージ」送信を示す説明図。
【
図7】同 「FOLLOW-UPメッセージ」送信を示す説明図。
【
図10】(a)は「SYNCメッセージ」・「FOLLOW-UPメッセージ」・「PROBEメッセージ」を構成するイーサネットフレームの構成図、(b)は「SYNCメッセージ」のイーサネットフレームペイロードの構成図、(c)は「FOLLOW-UPメッセージ」の同ペイロードの構成図、(d)は(c)の「FLAGS」の説明図、(e)は「PROBEメッセージ」のイーサネットペイロードの構成図。
【発明を実施するための形態】
【0048】
以下、本発明の実施形態に係る時刻同期方式(方法)を説明する。この時刻同期方式(方法)は、リング型の接続形態(トポロジー)に限定することで従来問題の元凶、即ち「伝送遅延を誤差のある二つのクロック(マスタークロック・スレーブクロック)で測定する」事態の回避を図っている。
【0049】
これにより既存技術(PTP)よりも効率的で確実性の高い時刻同期を提供でき、特にTSN(Time Sensitive Networking)への適用が好適となる。
【0050】
具体的には前記時刻同期方式は、リング型ネットワーク(リング型LAN,リングトポロジー,系:以下、リングと省略する。)の円環状の伝送路で使用され、該ネットワーク上に存在するマスターノードが自身のリングポート(リングに接続される二つのポート)の一方から「SYNCメッセージ」を隣接するスレーブに送信する。
【0051】
そして、「SYNCメッセージ」を受信したスレーブが隣接するスレーブに順次にハードウェア転送(HW転送)することで「SYNCメッセージ」をリングに周回させ、マスターの他方のリングポートで受信する。これによりリングを一周するのにかかる伝送遅延は、マスターノードのグランドマスタークロックだけで測定することができ、スレーブクロックとのクロック間誤差が入り込む余地が無くなる。
【0052】
また、伝送遅延変動がない場合の周回遅延をあらかじめ測定し、運用時に許容範囲を越えて遅延した「SYNCメッセージ」の破棄を指示することで誤った時刻同期を回避し、同期精度の劣化の軽減を図っている。
【実施例】
【0053】
≪ネットワーク構成≫
図6および
図7に基づき前記時刻同期方式の実施例のネットワーク構成を説明する。
図6および
図7中の10はリングを示し、マスターノード(以下、マスターと省略する。)1と、スレーブノード(以下、スレーブと省略する。)1a~1iと、が円環状の伝送路に通信可能に接続されている。
【0054】
このリング10では、
図1に示すように、マスター1が定期的に「SYNCメッセージ」7を送信し、リング10上を周回させる。また、「SYNCメッセージ」7の周回後にマスター1は、「FOLLOW-UPメッセージ」8を送信し、リング10上を周回させる。この二つのメッセージ7,8の周回によって1回の同期処理単位を構成する。
【0055】
マスター1による「SYNCメッセージ」7および「FOLLOW-UPメッセージ」8の送信は、双方向であることが望ましいが、単方向であってもよい。また、周回(ループ)の終端箇所はマスター1となり、マスター1は一般トラフィックが無限巡回しないようにスイッチング動作を構成する。
【0056】
これは「STP」で言うところの「ブロッキングポート」に該当するが、リングポートをブロッキング状態にすると前記各メッセージ7,8も不通になるので、他の手法で実現する。
【0057】
≪マスター1・スレーブ1a~1iの構成≫
図8および
図9に基づきマスター1・スレーブ1a~1iの構成を説明する。マスター1・スレーブ1a~1iは、共に一般的なPTP対応のスイッチングハブ(スイッチ)と同類の構造を有している。
【0058】
すなわち、リング10のシンクロリングプロトコルを実行するCPU2と、パケットを転送するスイッチエンジン3と、同期対象のクロック(内蔵時計)4と、「SYNCメッセージ」の送受信を検知し、その時刻を記録するタイムスタンプレジスター5a,5bと、リング10に接続されるイーサネットポートで構成されるリングポート6a,6bとを備えている。
【0059】
ただし、マスター1のスイッチエンジン3は、一般パケットの無限巡回を防止する観点からVLAN(Virtual LAN),ACL(Access Control List)などの既存の仕組みを応用する。
【0060】
なお、タイムスタンプレジスター5a,5bについてPTPでは「SYNCメッセージ」7に直接打刻する機能も使用されるが、本実施例では必ず「FOLLOW-UPメッセージ」8の送信が必要なため、前記直接打刻は不要である。
【0061】
≪フレーム構成≫
図10(a)~(d)に基づき実施例の時刻同期処理に必要な「SYNCメッセージ」7および「FOLLOW-UPメッセージ」8の構成例を説明する。
【0062】
具体的には両メッセージ7,8は、共に
図10(a)に示すイーサネットフレームにより構成されている。
図10(b)(c)は、両メッセージ7,8のイーサネットペイロード「PAYLOAD」のフィールドを示している。表1は、前記フィールドのメッセージフォーマットを示している。
【0063】
【0064】
また、「FOLLOW-UPメッセージ」8の「FLAGS」には、
図7(d)に示すフラグがセットされる。表2は、
図7(d)のフラグの詳細を示している。
【0065】
【0066】
≪動作処理≫
本実施例のリング全体の動作として、
図11に示すように、(1)キャリブレーションモード,(2)同期モード,(3)通常動作モードが用意されている。
【0067】
すなわち、キャリブレーションモードでリングの特性を測定し、測定の結果に基づき同期モードで時刻同期を取り、通常動作モードに遷移して時刻同期の状態を維持しつつ一般トラフィックの通行を開始する。
【0068】
時刻同期の状態を維持するため、通常動作モードにおいても同期モードで行っていた時刻同期の処理を継続する。この両者の違いは、一般トラフィックをリング上に流入させるか否かのみである。
【0069】
通常動作モードにおいて、一般トラフィックの影響で時刻同期の同期品質の維持が困難となった場合には、一時的に同期モードにフォールバックして時刻同期を取り直し、改めて通常動作モードに遷移して一般トラフィックの通行を再開することができる。
【0070】
[キャリブレーションモード]
キャリブレーションモードでは、一般トラフィックがリング内に流入しないように設定した上で、リングの特性を測定する。
【0071】
一般トラフィックの流入を防止する方法としては、
・STPブロッキングステートにて遮蔽する
・VLANでリングポートを隔離する
・ACLで一般パケットを選別する
・一般ポートをシャットダウンする
・一般ポートのLANケーブルを抜く
など多様な実装が想定できる。
【0072】
キャリブレーションモードでは、以下の二つを測定項目とする。
・測定項目1:リング周回時間Tr
・測定項目2:スレーブ位置H
(1)測定項目1:リング周回時間Tr
キャリブレーションモードにおいては、一般トラフィックをリング10上から完全に排除する。したがって、スイッチにおける転送遅延時間は最短かつ無変動であることが合理的に期待される。以下、リング周回時間Trの測定処理ステップ(S01~S06)を説明する。
S01:「SYNCメッセージ」7の送信
マスター1は、リングポート6aから「SYNCメッセージ」7を隣接するスレーブ1aに送信する。表3は、「SYNCメッセージ」7のイーサネットペイロードのフィールドへの記載内容を示している。ここで「F」は「FLAGS(フラグ)」を示している。
【0073】
【0074】
「SYNCメッセージ」7がマスター1のリングポート6aを通過する際、タイムスタンプレジスター5aにより送信時刻が記録される。
PTPでは、送信時刻を「SYNCメッセージ」7に直接打刻する機能を用いる場合があるものの、前述のように本実施例では「FOLLOW-UPメッセージ」8の送信を必須とするため、前記直接打刻の機能は必要ない。すなわち、マスター1は、「SYNCメッセージ」7の送信時刻を同レジスター5aから取り出して記録する。ここで記録された時刻の値を「T1」とする。
【0075】
S02:「SYNCメッセージ」7の中継
スレーブ1aは、マスター1の送信した「SYNCメッセージ」7を受信し、さらにスイッチエンジン3によってネイバーのスレーブ1bにハードウェア転送で中継する。この中継をスレーブ1b~1iが順次に繰り返し、同メッセージ7をリング10上に周回させる。
【0076】
すなわち、各スレーブ1a~1iは、一方のリングポート6aで受信した「SYNCメッセージ」7を加工せずに対向のリングポート6bから送信する。これはマルチキャストフレームに対するフラッディング動作であり、一般的なスイッチエンジンであれば、実行することができる。
【0077】
このときリングポート6aにおいて、タイムスタンプレジスター5aが「SYNCメッセージ」7の通過時刻を記録する。ここで記録された時刻をスレーブ1a~1iごとに「Ta~Ti」とする。この「Ta~Ti」の値は、後述する「FOLLOW-UPメッセージ」8の受信時に参照される。
【0078】
「SYNCメッセージ」7は、各スレーブ1a~1iのCPU2にミラーリング(複製)される。一般的なスイッチエンジンは、予約マルチキャストパケットをCPU2でキャッチする機能を持つので、CPU2でこれを受信することは容易に実現できる。
【0079】
「SYNCメッセージ」7をCPU2でキャッチすれば、各スレーブ1a~1iは、同メッセージ7記載の「QUIETビット」および「QUIET TIMER」を参照し、これに従ってリングポート6a,6b上にトラフィックが発生しないように自身を設定する。なお、一般トラフィックの流入のみならず、自身のCPUからの送信も停止するものとする。
【0080】
S03:「SYNCメッセージ」7の帰還
S02の中継により「SYNCメッセージ」7は、リング上を一周(周回)し、最終的にはマスター1の対向側リングポート6bで受信される。このときタイムスタンプレジスター5bが受信時刻を記録する。ここで記録された時刻の値を「T2」とする。
【0081】
その結果、マスター1は、S01でタイムスタンプレジスター5aにより記録された送信時刻T1と、タイムスタンプレジスター5bにより記録された受信時刻T2に基づきリング周回時間Trを式(14)のように計算できる。
【0082】
【0083】
式(14)中の「T1」および「T2」は、いずれもマスター1のクロック4により測定した値である。したがって、式(14)で算出されるリング周回時間Trについては、マスター1・スレーブ1a~1i間のクロック間の偏差による計算誤差が発生する余地がない。
【0084】
S04:「FOLLOW-UPメッセージ」8の送信
マスター1は、S03のリング周回時間Trの計算後にリングポート6aから隣接するスレーブ1aに「FOLLOW-UPメッセージ」8を送信する。
【0085】
表4は、「FOLLOW-UPメッセージ」8のイーサネットペイロードのフィールドへの記載内容を示している。ここで「F」は「FLAGS(フラグ)」を示している。なお、キャリブレーションモードでは、クロック4の同期は実行しないので、フラグ「SYNC_FAIL」を常に「1」にセットする。
【0086】
【0087】
S05:「FOLLOW-UPメッセージ」8の中継・帰還
スレーブ1aは、「SYNCメッセージ」7と同様に「FOLLOW-UPメッセージ」8を受信し、自身のCPU2でこれをキャッチしてネイバーのスレーブ1bに転送中継する。この動作処理をスレーブ1b~1iが順次に繰り返し、同メッセージ8をリング10上に周回させ、周回後にマスター1が受信する。
【0088】
このとき各スレーブ1a~1iは、「FOLLOW-UPメッセージ」8の「SYNC_FAIL」フラグを参照し、これが「1」であることを検出して前回受信した「SYNCメッセージ」7の受信時刻を破棄する。なお、キャリブレーションモードでは時刻同期を開始することがないので、「SYNC_FAIL」フラグの値にかかわらず、「SYNCメッセージ」7の受信時刻を破棄してもよい。
【0089】
そして、「SYNCメッセージ」7の受信時刻の破棄条件を論理式展開すれば、「(SYNC_FAIL)||(MODE=CALIBRATION)」となる。ここで「||」は論理和を表している。
【0090】
S06:繰り返し測定
本実施例では、S01~S05のステップによりリング周回時間Trを測定する。このとき一般トラフィックの流入を遮断しているので、測定値は正しいと期待できるが、更なる精度向上のため、
図12に示すように、前記測定を所定回数繰り返す。
【0091】
図12では、最短時間「Tmin」を左の裾野とし、極めて微小な幅を持つ分布の山が得られている。
【0092】
この山の横幅「σ」は、要求される同期精度に比べて十分に小さくなければならない。これが成立しないような劣悪なスイッチエンジンでは、本実施例の方式を実現できない。
【0093】
この山の頂点のX座標値を標準リング周回時間「Tstd」と定義する。標準リング周回時間「Tstd」は、「SYNCメッセージ」7が転送される際に送信待ちを受けずにリング10を一周するのにかかる時間といえる。
【0094】
標準リング周回時間「Tstd」が求まるまでは、キャリブレーションモードを継続する。測定回数は、スイッチエンジンの品質やトポロジーの規模、ネットワーク管理者の考え方や過去の経験に応じて定めることができる。なお、リング10のネットワーク構成が変化した場合にはキャリブレーションをやり直すこととする。
【0095】
(2)測定項目2:スレーブ位置H
キャリブレーションモードにおいては、標準リング周回時間「Tstd」の測定とは別に、リング10上の各スレーブ1a~1iの位置測定も実施する。ここで、スレーブ1a~1iの位置は、マスター1から各スレーブ1a~1iへ至るまでに経過するホップ数である。
【0096】
図6および
図7に例示したネットワーク構成を反時計回りに評価した場合には、
・スレーブ1a=1ホップ(マスター1から1台目)
・スレーブ1b=2ホップ(同2台目)
・スレーブ1c=3ホップ(同3台目)
・スレーブ1d=4ホップ(同4台目)
・スレーブ1e=5ホップ(同5台目)
・スレーブ1f=6ホップ(同6台目)
・スレーブ1g=7ホップ(同7台目)
・スレーブ1h=8ホップ(同8台目)
・スレーブ1i=9ホップ(同9台目)
一方、時計回りに評価した場合には、
・スレーブ1i=1ホップ(マスター1から1台目)
・スレーブ1h=2ホップ(同2台目)
・スレーブ1g=3ホップ(同3台目)
・スレーブ1f=4ホップ(同4台目)
・スレーブ1e=5ホップ(同5台目)
・スレーブ1d=6ホップ(同6台目)
・スレーブ1c=7ホップ(同7台目)
・スレーブ1b=8ホップ(同8台目)
・スレーブ1a=9ホップ(同9台目)
となる。
【0097】
各スレーブ1a~1iは、自らの位置(ホップ数)を知っておく必要がある。また、マスター1は、スレーブ1a~1iの位置を知る必要はないが、各スレーブ1a~1iに自らの位置を検出させるために、
図10(a)(e)に示す「PROBEメッセージ」9をリングポート6a,6bの一方から送信する。
【0098】
表5は、「PROBEメッセージ」9のイーサネットペイロードのフィールドへの記載内容を示している。
【0099】
【0100】
「PROBEメッセージ」9は、他のメッセージとは異なり、送信先イーサネットアドレスを「01:80:C2:00:00:00」とする。これは「BPDU」といわれるフレームであり、フラッディングされずにCPU2によってのみ受信される。すなわち、リング10上の各スレーブ1a~1iのCPU2によるバケツリレーで転送される。
【0101】
「PROBEメッセージ」9を受信したスレーブ1a~1iは、
図10(e)中の「NODES」フィールドの値を1加算した値を自身の位置(マスター1からのホップ数)として記録する。ここで記録された値を「H」とする。
すなわち、スレーブ1a~1iは、ホップ数Hを「NODES」フィールドに上書きしてネイバーに転送する。これにより「NODES」フィールドの値は、各スレーブ1a~1iを通過するごとに1ずつ増加する。
このバケツリレーを繰り返すことで、全てのスレーブ1a~1iが自身の位置を把握できる。この測量は、リング10の時計回り・反時計回りのそれぞれについて実行する。ただし、前記両メッセージ7,8がどちらか1方向に限定されている場合には、その方向についてのみ実施すればよい。
「PROBEメッセージ」9は、最終的にはマスター1のリングポート6a,6bの他方に受信されて帰還する。このとき同メッセージ9に記載された「NODES」フィールドの値が、リング10上のスレーブ1a~1iの総数となり、これを「N」とする。
マスター1は、「N」の値を、前記各メッセージ7,8の「NODES」フィールドに記載してリング10の全体に広告する。「N」の測定後、マスター1・スレーブ1a~1iは、以下の検算を行う。なお、以下に示す「N’」・「H’」は、それぞれ反時計回りの「N」・「H」の値を示している。
(マスター1の検算)
マスター1は、時計回り・反時計回りでノード数「N」・「N’」が一致する否か、即ち式(15)が成立するか否かを確認する。
【0102】
【0103】
(スレーブ1a~1iの検算)
スレーブ1a~1iは、時計回りと半時計周りでの位置H,H’の和がノード数Nと一致するか否か、即ち式(16)が成立するか否かを確認する。
【0104】
【0105】
前記検算がエラーとなった場合、即ち式(15)(16)が不成立の場合にはスレーブ1a~1iの位置測定をやり直すものとする。
【0106】
[同期モード]
(1)キャリブレーションモードで標準リンク周回時間「Tstd」とノード数「N」が定まれば、同期モードに遷移する(
図11中のDONE遷移)。
【0107】
動作モードを遷移させる権限は、マスター1のみが有している。すなわち、マスター1は自らの決定を前記各メッセージ7,8の「MODE」フィールドに記載してリング10の全体に広告する。
同期モードにおいても、キャリブレーションモードと同様に前記両メッセージ7,8による処理を定期的に実行する。この実行頻度は、要求精度やリングの規模、あるいはネットワーク管理者の考え方に応じて設定されるものとする。
ただし、同期モードは、両メッセージ7,8の「SYNC_FAIL」フラグの決定方法がキャリブレーションモードと相違する。すなわち、キャリブレーションモードでは「SYNC_FAIL」フラグを常に「1」としていた。これに対して同期モードにおいては、以下の評価に従って「SYNC_FAIL」フラグの値を調整する。
(A)定期的に前記両メッセージ7,8による処理を実行し、その都度リング周回時間「Tr」を式(14)で計算する。
(B)各リング周回時間「Tr」の超過遅延「Trx」を式(17)から計算する。
【0108】
【0109】
超過遅延「Trx」の値は、「SYNCメッセージ」7がスイッチで転送される際に、先行送信中のフレームの影響で待機を強いられた時間の総計である。
(C)超過遅延時間「Trx」が負の値になった場合には、キャリブレーションモードで得られた標準リング周回時間「Tstd」が不正確と考えられるので、キャリブレーションモードにフォールバックする((
図11中のBREAK遷移)。
(5)超過遅延時間「Trx」が正の値になった場合には、要求精度に基づいて決められる足切りライン設定と比較する。この比較の結果、以下のように「SYNC_FAIL」フラグを決定する。
・足切りライン未満である場合:「SYNC_FAIL」フラグを「0」とする。
・足切りライン以上である場合:「SYNC_FAIL」フラグを「1」とする。
【0110】
これにより直近の「SYNCメッセージ」7がリング10を周回する際に、リング10上のどこかで許容できない水準の遅延が生じたか否かを確実に検出することができる。
【0111】
また、前記検出の結果をリング10上に広告することで、直近の「SYNCメッセージ」7の受信時刻を破棄させ、同期品質の劣化を防止することが可能となる。このような「SYNC_FAIL」フラグの調整を除き、マスター1はキャリブレーションモードと同じ処理を実行する。
【0112】
(2)スレーブ1a~1iは、「SYNC_FAIL」フラグ「1」の場合には、キャリブレーションモードと同じ動作処理を実行する。一方、「SYNC_FAIL」フラグ「0」の場合には、以下の動作処理を実行する。
【0113】
すなわち、「SYNC_FAIL」フラグ「0」の「FOLLOW―UPメッセージ」7を受信したスレーブ1a~1iは、自身のクロック4の誤差(偏差)「Δt」を計算する。
【0114】
ここでは「FOLLOW―UPメッセージ」7に記載された「SYNC_TIMESTAMP」を「T1」,スレーブ1a~1iが自身のクロック4で測定した直近の「SYNCメッセージ」7の受信時刻を「Ts」とする。この場合に誤差「Δt」は、式(18)で表すことができる。
【0115】
【0116】
式(18)中の「DS」は、「SYNCメッセージ」7がマスター1から当該スレーブ1a~1iに伝搬するのにかかった時間を示している。この段階の式(18)の評価式はPTPと同じであり、「DS」の求め方が相違する。
【0117】
本実施例における「DS」の計算方法と根拠を説明すれば、まず直近の「SYNCメッセージ」7がリング10を一周するのにかかった周回時間「Tr」は、「FOLLOW-UPメッセージ」8の「LAP_DELAY」フィールドに記載されている。この周回時間「Tr」は、式(19)に示すように、標準リング周回時間「Tstd」に超過遅延「Trx」が付加された値といえる。
【0118】
【0119】
つぎに前述のように超過遅延時間「Trx」は、マスター1によって高精度に測定されている。また、「SYNC_FAIL」フラグ「0」の場合は、超過遅延時間「Trx」は、要求精度に比べて十分に小さいことが確認されている。
【0120】
そうすると要求精度のオーダーからみれば、超過遅延時間「Trx」は「0」に近似(「Trx≒0」)し、式(20)が成立する。
【0121】
【0122】
さらに標準リンク周回時間「Tstd」の値は、キャリブレーションモードにおいてスイッチエンジン3の遅延ゼロ、かつ無変動の場合にかかる時間として算出されている。そのため、1ホップごとに生じる遅延「Dhop」は、各スレーブ1a~1iで均等と推定でき、式(21)に示すように、近似する。
【0123】
【0124】
式(21)中の「N」はリング10上のスレーブ1a~1iの総数を示している。「N」の値は、前記両メッセージ7,8の「NODES」フィールドに記載されているため、常に読み出すことができる。
【0125】
このときスレーブ1a~1iは、マスター1から自身に至るまでのホップ数Hを「PROBEメッセージ」9により把握している。このホップ数Hの値を用いれば、「SYNCメッセージ」7がマスター1からスレーブ1a~1iに到着するまでに経過した時間「DS」は、式(22)のように計算することができる。
【0126】
【0127】
そして、式(18)(22)から式(23)が求められる。
【0128】
【0129】
以上から誤差「Δt」は、式(24)の計算式で求められることができる。
【0130】
【0131】
その結果、スレーブ1a~1iは、式(25)に示すように、誤差「Δt」を自身のクロック4から差し引くことでマスター1との時刻同期をとることができる。
【0132】
【0133】
PTPにおいては、突発的な誤差の混入による影響を緩和するため、移動平均等の何らかの平滑化機構の実装が必要となる。これに対して本実施例では混入した誤差「Δt」はマスター1による測定で正確に測定され、また要求精度を超過する遅延が生じた同期行程を「SYNC_FAIL」フラグ「1」のときに確実に破棄することができる。したがって、本実施例によれば、平滑化機構を必要とせず、一回の同期行程でほぼ完全な時刻同期の状態を得ることができる。
【0134】
もっとも、確実な時刻同期の状態を得るためにはネットワーク管理者が設定した条件をクリアするまでは、同期モードの状態を維持することが好ましい。例えば通常動作モードへの遷移条件の例としては、
・同期行程が3回連続で成功
・3分間ほど同期行程を繰り返し、「SYNC_FAIL」フラグ「1」の場合の回数が事前設定の値未満
などの安全基準を設けることが好ましい。
【0135】
この安全基準は、スイッチエンジン3の品質、リング10の規模、ネットワーク管理者の考え方に応じて定めればよい。この安全基準を満たした場合に通常動作モードに遷移する(
図11中のSYNCED遷移)。
【0136】
≪通常動作モード≫
同期モードにおいて時刻同期が成立した場合には、前述のSYNCED遷移により通常動作モードに移行する。
【0137】
通常動作モードにおいても、マスター1・スレーブ1a~1iは、前記両メッセージ7,8による処理を定期的に実行する。この実行頻度は、要求精度やリングの規模、ネットワーク管理者の考え方に応じて定めることができる。
【0138】
マスター1は、自身が送信する前記両メッセージ7,8の「MODE」フィールドに通常動作モードを表す整数値を設定し、通常動作モードに移行したことをリング10の全体に広告する。
【0139】
このときマスター1および通常動作モードの移行を検知したスレーブ1a~1iは、一般トラフィックがリング10上を通行できるようにスイッチエンジン3を設定変更する。これにより一般トラフィックと回線を共有しつつ、時刻同期を維持する体制が成立する。
【0140】
≪動作モードのフォールバック≫
三つの動作モード(キャリブレーションモード、同期モード、通常動作モード)では、前記両メッセージ7,8による処理を継続的に実施する点で同じであるが、同期工程の実施/一般トラフィックの流入許可の点で相違する。
【0141】
通常は、「キャリブレーションモード→同期モード→通常動作モード」の順に一方通行の状態遷移となる。ただし、キャリブレーション不良/時刻同期の不良によるキャリブレーションモードへのフォールバック遷移も想定される。このキャリブレーションまで戻る遷移条件(
図11中のBREAK)として、以下が挙げられる。
(1)ネットワーク構成が変化した場合
(2)リング周回時間Trの超過遅延「Trx」が負の値として求まった場合
通常動作モードから同期モードに戻る遷移条件(RESYNC)は、後述する同期品質の維持に黄色信号が点灯した場合が想定される。
【0142】
≪時刻同期の品質の観測≫
本実施例では、時刻同期の品質を観測するための対策を提案する。この観測結果に基づき同期モードへのフォールバック条件をネットワーク管理者が定義することが好ましい。
【0143】
(1)連続的な失敗
定期的に実施する前記両メッセージ7,8による処理を連続して失敗した場合、失敗回数に応じて同期モードにフォールバックさせる。
【0144】
例えば、ネットワーク管理者がこれを3回に設定したと仮定する。マスター1は、前記両メッセージ7,8による処理が失敗して「SYNC_FAIL」を「1」とする。この場合に失敗カウンターCに「1」を加算する。一方、前記両メッセージ7,8による処理が成功した場合には失敗カウンターCを「0」に戻す。
【0145】
そして、前記両メッセージ7,8による処理を実行するたびに「失敗カウンターC≧3」が成立するか否かを確認し、成立すれば同期モードに遷移する。このとき次回以降にマスター1の送信する前記両メッセージ7,8の「MODES」フィールドを同期モードとし、リング10の全体にこれを広告する。
【0146】
(2)連続失敗時間
前記両メッセージ7,8による処理が最後に成功した時から現在までの経過時間が事前設定の閾値を超えた場合に同期モードにフォールバックさせる。
【0147】
(3)誤差補正量
前述のように前記両メッセージ7,8による処理によりスレーブ1a~1iはその都度、誤差「Δt」を計算し、これを補正する。ただし、スレーブ1a~1iは、誤差「Δt」が同期不良を示唆する値となれば、同期モードに遷移するようにマスター1に要求する。
【0148】
同期不良と判定する基準としては、
・誤差「Δt」が、事前設定の閾値以上となった場合
・誤差「Δt」の値が、前回よりも閾値以上の割合(%)で変動した場合
・誤差「Δt」が「0」の値を継続している場合
などが想定される。
【0149】
といったようなものが考えられる。
【0150】
このような基準を単体または複合で組み合わせてフォールバック条件をネットワーク管理者が構成することで時刻同期の品質を安定させることができる。
【0151】
≪作用効果≫
本実施例によれば、以下の作用効果を得ることができる。
【0152】
(1)手続きの簡素化によるCPU2,ネットワーク帯域の負荷軽減
既存技術(PTP)では、マスター1/スレーブ1a~1i間でメッセージの二往復が必要であった。これに対して本実施例では、マスター1からの一方通行のメッセージ送信でよく、マスター1のCPU2およびネットワーク帯域の負荷を軽減することができる。
【0153】
例えば、
図6及び
図7のネットワーク構成によれば、スレーブ1a~1iは9台なため、従来技術によれば1回の同期工程で生じるマスター1の処理単位は、以下のようになる(1個のメッセージを1単位とする。)。
・1個の「SYNCメッセージ」7の送信(マルチキャストにてネットワーク全体にフラッディング)
・9個の「DELAY_REQメッセージ」をスレーブ1a~1iから受信
・9個の「DELAY_RESメッセージ」をスレーブ1a~1iに返信
・計19単位(「FOLLOW-UPメッセージ」8を行う場合には20単位)
が必要となる。
【0154】
これに対して本実施例では、
・1個の「SYNCメッセージ」7の送信(マルチキャストにてリング10の全体にフラッディング)
・1個の「FOLLOW―UPメッセージ」8の送信(マルチキャストにてリング10の全体にフラッディング)
・計2単位で済む。
【0155】
特に従来技術では、スレーブの台数に比例してマスター1の処理単位が増加する。これに対して本実施例では、スレーブの台数に係わらず常に2単位で済むこととなる。
【0156】
(2)時刻同期の品質の安定化
既存技術では1回の同期行程ごとに同期精度が変動を受けやすい。これに対して本実施例によれば、リング周回時間Trを高精度で測定できるため、誤差「Δt」の大きい同期工程を確実に破棄させることができ、時刻同期の品質維持が容易である。すなわち、処理構造が単純なため、同期精度に大きな変動を生じることがなく、この点で時刻同期の精度を安定化させることができる。
【0157】
(3)短時間で同期できる
既存技術では、平滑化機構を導入することにより、同期状態するために必要な時間が長くなる。これに対して本実施例では、理論上は1回で同期を成功させることができ、同期状態までの時間を最短化することが可能である。
【符号の説明】
【0158】
1…マスターノード(マスター)
1a~1i…スレーブノード(スレーブ)
2…CPU
3…スイッチエンジン
4…クロック(内蔵時計)
5a,5b…タイムスタンプレジスター
6a,6b…リングポート
7…SYNCメッセージ(同期メッセージ)
8…FOLLOW-UPメッセージ(後追い通知)
9…PROBEメッセージ
10…リング型ネットワーク