(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-12
(45)【発行日】2024-11-20
(54)【発明の名称】時刻同期装置、時刻同期方法およびプログラム
(51)【国際特許分類】
H04L 7/00 20060101AFI20241113BHJP
【FI】
H04L7/00 990
(21)【出願番号】P 2023556074
(86)(22)【出願日】2021-10-29
(86)【国際出願番号】 JP2021040163
(87)【国際公開番号】W WO2023073970
(87)【国際公開日】2023-05-04
【審査請求日】2024-01-29
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】100147485
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】100164471
【氏名又は名称】岡野 大和
(74)【代理人】
【識別番号】100176728
【氏名又は名称】北村 慎吾
(72)【発明者】
【氏名】山形 佳祐
(72)【発明者】
【氏名】吉原 慎一
(72)【発明者】
【氏名】矢沢 豪
(72)【発明者】
【氏名】中西 隆
【審査官】阿部 弘
(56)【参考文献】
【文献】特開2015-216438(JP,A)
【文献】特開2014-183386(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 7/00
(57)【特許請求の範囲】
【請求項1】
上位装置とのパケットの送受信により、前記上位装置の装置内時刻に自装置の装置内時刻を同期させ、下位装置の装置内時刻を前記自装置の装置内時刻に同期させる時刻同期装置であって、
前記上位装置の装置内時刻と前記自装置の装置内時刻との差であるオフセットを計算するオフセット計算部と、
前記上位装置と自装置との間で送受信されるパケットの伝送遅延時間を計算する伝送遅延時間計算部と、
前記オフセットと前記伝送遅延時間とに基づき、前記上位装置との時刻同期の障害の発生箇所を判定し、前記障害の発生箇所が前記上位装置であると判定すると、前記下位装置の装置内時刻の前記自装置の装置内時刻への同期を停止する判定部と、を備え、
前記判定部は、前記オフセットが第1の閾値より大きいか否か、および、前記伝送遅延時間が第2の閾値より大きいか否かを判定し、前記オフセットが前記第1の閾値より大きく、かつ、前記伝送遅延時間が前記第2の閾値より大きいと判定された回数または時間が、第3の閾値より大きくなるまでに、前記伝送遅延時間が前記第2の閾値以下になった場合、前記下位装置の装置内時刻の前記自装置の装置内時刻への同期を停止する、時刻同期装置。
【請求項2】
請求項
1に記載の時刻同期装置において、
前記判定部は、前記伝送遅延時間が前記第2の閾値より大きいと判定された回数または時間が、前記第3の閾値より大きくなった場合、前記下位装置の装置内時刻を、前記自装置の装置内時刻に同期させる、時刻同期装置。
【請求項3】
上位装置とのパケットの送受信により、前記上位装置の装置内時刻に自装置の装置内時刻を同期させ、下位装置の装置内時刻を前記自装置の装置内時刻に同期させる時刻同期装置であって、
前記上位装置の装置内時刻と前記自装置の装置内時刻との差であるオフセットを計算するオフセット計算部と、
前記上位装置と自装置との間で送受信されるパケットの伝送遅延時間を計算する伝送遅延時間計算部と、
前記オフセットと前記伝送遅延時間とに基づき、前記上位装置との時刻同期の障害の発生箇所を判定し、前記障害の発生箇所が前記上位装置であると判定すると、前記下位装置の装置内時刻の前記自装置の装置内時刻への同期を停止する判定部と、を備え、
前記判定部は、前記オフセットが第1の閾値より大きいか否か、および、前記伝送遅延時間が第2の閾値より大きいか否かを判定し、前記伝送遅延時間が前記第2の閾値より大きい場合、前記下位装置の装置内時刻の前記自装置の装置内時刻への同期を停止し、
前記下位装置の装置内時刻の、前記自装置の装置内時刻への同期を停止している状態で、前記オフセットが前記第1の閾値より大きく、かつ、前記伝送遅延時間が前記第2の閾値より大きいと判定された回数または時間が、第3の閾値より大きくなると、前記下位装置の装置内時刻を前記自装置の装置内時刻に同期させる、時刻同期装置。
【請求項4】
上位装置とのパケットの送受信により、前記上位装置の装置内時刻に自装置の装置内時刻を同期させ、下位装置の装置内時刻を前記自装置の装置内時刻に同期させる時刻同期方法であって、
前記上位装置の装置内時刻と前記自装置の装置内時刻との差であるオフセットを計算するステップと、
前記上位装置と自装置との間で送受信されるパケットの伝送遅延時間を計算するステップと、
前記オフセットと前記伝送遅延時間とに基づき、前記上位装置との時刻同期の障害の発生箇所を判定し、前記障害の発生箇所が前記上位装置であると判定すると、前記下位装置の装置内時刻の前記自装置の装置内時刻への同期を停止するステップと、を含
み、
前記オフセットが第1の閾値より大きいか否か、および、前記伝送遅延時間が第2の閾値より大きいか否かを判定し、前記オフセットが前記第1の閾値より大きく、かつ、前記伝送遅延時間が前記第2の閾値より大きいと判定された回数または時間が、第3の閾値より大きくなるまでに、前記伝送遅延時間が前記第2の閾値以下になった場合、前記下位装置の装置内時刻の前記自装置の装置内時刻への同期を停止する、時刻同期方法。
【請求項5】
上位装置とのパケットの送受信により、前記上位装置の装置内時刻に自装置の装置内時刻を同期させ、下位装置の装置内時刻を前記自装置の装置内時刻に同期させる時刻同期方法であって、
前記上位装置の装置内時刻と前記自装置の装置内時刻との差であるオフセットを計算するステップと、
前記上位装置と自装置との間で送受信されるパケットの伝送遅延時間を計算するステップと、
前記オフセットと前記伝送遅延時間とに基づき、前記上位装置との時刻同期の障害の発生箇所を判定し、前記障害の発生箇所が前記上位装置であると判定すると、前記下位装置の装置内時刻の前記自装置の装置内時刻への同期を停止するステップと、を含み、
前記オフセットが第1の閾値より大きいか否か、および、前記伝送遅延時間が第2の閾値より大きいか否かを判定し、前記伝送遅延時間が前記第2の閾値より大きい場合、前記下位装置の装置内時刻の前記自装置の装置内時刻への同期を停止し、
前記下位装置の装置内時刻の、前記自装置の装置内時刻への同期を停止している状態で、前記オフセットが前記第1の閾値より大きく、かつ、前記伝送遅延時間が前記第2の閾値より大きいと判定された回数または時間が、第3の閾値より大きくなると、前記下位装置の装置内時刻を前記自装置の装置内時刻に同期させる、時刻同期方法。
【請求項6】
コンピュータを、請求項1から
3のいずれか一項に記載の時刻同期装置として動作させる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、時刻同期装置、時刻同期方法およびプログラムに関する。
【背景技術】
【0002】
IEEE-1588規格で定義されたPTP(Precision Time Protocol)は、LAN(Local Area Network)上のコンピュータの時刻(装置内時刻)を高い精度で同期させるプロトコルである(非特許文献1参照)。
図6は、PTPプロトコルを用いてネットワーク上の装置の時刻を同期させる、時刻同期システム1の構成例を示す図である。
【0003】
図6に示す時刻同期システム1は、Grand Master Clock2と、従来のBoundary Clock100aと、クライアント装置3とを備える。Grand Master Clock2とBoundary Clock100aとは、LANなどのネットワークを介して通信可能である。また、Boundary Clock100aとクライアント装置3とは、LANなどのネットワークを介して通信可能である。
【0004】
Grand Master Clock2は、GPS(Global Positioning System)などの全球測位衛星システム(GNSS:Global Navigation Satellite System)の衛星からの信号(GNSS信号)を受信するGNSSアンテナを備える。Grand Master Clock2は、GNSSアンテナを介してGNSS信号を受信し、受信したGNSS信号から協定世界時(UTC:Universal Time Coordinated)を取得する。Grand Master Clock2は、ネットワークを介して、取得したUTCを基準時刻として配信するマスター機能を備える。
【0005】
Boundary Clock100aは、マスター機能を備える上位装置に対しては、上位装置から配信された時刻に自装置の装置内時刻を同期させるスレーブ機能を備える装置として機能し、スレーブ機能を備える下位装置に対してはマスター機能を備える装置として機能する。
図6に示す時刻同期システム1においては、Boundary Clock100aは、Grand Master Clock2に対してはスレーブ機能を備える装置として機能し、クライアント装置3に対してはマスター機能を備える装置として機能する。したがって、Boundary Clock100aは、Grand Master Clock2とのPTPパケットの送受信により、Grand Master Clock2から配信される時刻(基準時刻)に、Boundary Clock100aの装置内時刻を同期させる。また、Boundary Clock100aは、クライアント装置3とのPTPパケットの送受信により、装置内時刻をクライアント装置3に配信し、クライアント装置3の装置内時刻を、自装置の装置内時刻に同期させる。
【0006】
クライアント装置3は、マスター機能を備える装置から配信された時刻に、装置内時刻を同期させるスレーブ機能を備える。
図6に示す時刻同期システム1では、クライアント装置3は、Boundary Clock100aから配信された時刻に、装置内時刻を同期させる。クライアント装置3は、例えば、携帯電話網における基地局装置である。
【先行技術文献】
【非特許文献】
【0007】
【文献】IEEE Std 1588TM-2019 “IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems”
【発明の概要】
【発明が解決しようとする課題】
【0008】
図6に示すような時刻同期システム1においては、Grand Master Clock2が備えるGNSSアンテナ、Grand Master Clock2自体、あるいは、Grand Master Clock2とBoundary Clock100aの間の伝送経路で障害が発生し、Grand Master Clock2の装置内時刻とBoundary Clock100aの装置内時刻とに大きなズレが発生することがある。
【0009】
伝送経路で障害が発生した場合には、Grand Master Clock2から配信される時刻自体は正確であり、Boundary Clock100aは、誤った時刻に同期しない。
【0010】
一方、Grand Master Clock2が備えるGNSSアンテナ、あるいは、Grand Master Clock2自体に障害が発生した場合、Grand Master Clock2から配信される時刻自体が、UTCとのズレが大きい、誤った時刻となることがある。この場合、従来のBoundary Clock100aは、大きな誤差を含むGrand Master Clock2の装置内時刻に同期し、配下のクライアント装置3に、UTCとの誤差が大きく、誤った時刻を配信し続ける可能性がある。このような誤った時刻が配信されると、クライアント装置3の配下のユーザ装置の装置内時刻までずれて、システム障害あるいは通信障害が発生する可能性がある。また、クライアント装置3の配下のユーザ装置だけでなく、別のGrand Master Clock2あるいはBoundary Clock100aと同期することで装置内時刻がずれていないクライアント装置3の配下のユーザ装置に対しても、システム障害あるいは通信障害を引き起こす可能性がある。このように、誤った時刻への同期が発生すると、非常に影響が大きな問題が生じる可能性がある。
【0011】
上記のような問題点に鑑みてなされた本開示の目的は、上位装置から配信された時刻に自装置の装置内時刻を同期させ、下位装置の装置内時刻を自装置の装置内時刻に同期させる場合に、下位装置の装置内時刻を誤った時刻に同期させる可能性の低減を図ることができる時刻同期装置、時刻同期方法およびプログラムを提供することにある。
【課題を解決するための手段】
【0012】
上記課題を解決するため、本開示に係る時刻同期装置は、上位装置とのパケットの送受信により、前記上位装置の装置内時刻に自装置の装置内時刻を同期させ、下位装置の装置内時刻を前記自装置の装置内時刻に同期させる時刻同期装置であって、前記上位装置の装置内時刻と前記自装置の装置内時刻との差であるオフセットを計算するオフセット計算部と、前記上位装置と自装置との間で送受信されるパケットの伝送遅延時間を計算する伝送遅延時間計算部と、前記オフセットと前記伝送遅延時間とに基づき、前記上位装置との時刻同期の障害の発生箇所を判定し、前記障害の発生箇所が前記上位装置であると判定すると、前記下位装置の装置内時刻の前記自装置の装置内時刻への同期を停止する判定部と、を備える。
【0013】
また、上記課題を解決するため、本開示に係る時刻同期方法は、上位装置とのパケットの送受信により、前記上位装置の装置内時刻に自装置の装置内時刻を同期させ、下位装置の装置内時刻を前記自装置の装置内時刻に同期させる時刻同期方法であって、前記上位装置の装置内時刻と前記自装置の装置内時刻との差であるオフセットを計算するステップと、前記上位装置と自装置との間で送受信されるパケットの伝送遅延時間を計算するステップと、前記オフセットと前記伝送遅延時間とに基づき、前記上位装置との時刻同期の障害の発生箇所を判定し、前記障害の発生箇所が前記上位装置であると判定すると、前記下位装置の装置内時刻の前記自装置の装置内時刻への同期を停止するステップと、を含む。
【0014】
また、上記課題を解決するため、本開示に係るプログラムは、コンピュータを、上述した時刻同期装置として動作させる。
【発明の効果】
【0015】
本開示に係る時刻同期装置、時刻同期方法およびプログラムによれば、上位装置から配信された時刻に自装置の装置内時刻を同期させ、下位装置の装置内時刻を自装置の装置内時刻に同期させる場合に、下位装置の装置内時刻を誤った時刻に同期させる可能性の低減を図ることができる。
【図面の簡単な説明】
【0016】
【
図1】本開示の一実施形態に係る時刻同期装置としてのBoundary Clockの構成例を示す図である。
【
図2】
図1に示すBoundary Clockの動作の一例を示すフローチャートである。
【
図3A】Grand Master ClockとBoundary Clockとの間の伝送経路に障害が発生した場合の伝送遅延時間の変動について説明するための図である。
【
図3B】Grand Master Clock自体に障害が発生した場合の伝送遅延時間の変動について説明するための図である。
【
図4】
図1に示すBoundary Clockの動作の他の一例を示すフローチャートである。
【
図5】
図1に示すBoundary Clockのハードウェア構成の一例を示す図である。
【
図6】従来の時刻同期システムの構成例を示す図である。
【発明を実施するための形態】
【0017】
以下、本開示の実施の形態について図面を参照して説明する。
【0018】
図1は、本開示の一実施形態に係る時刻同期装置としてのBoundary Clock100の構成例を示す図である。本実施形態に係るBoundary Clock100は、
図6に示す時刻同期システム1において、Boundary Clock100aの代わりに、Grand Master Clock2から配信された時刻を、クライアント装置3に配信するものである。すなわち、本実施形態に係る時刻同期装置としてのBoundary Clock100は、上位装置(Grand Master Clock2)とのパケット(PTPパケット)の送受信により、上位装置の装置内時刻に自装置の装置内時刻を同期させ、下位装置(クライアント装置3)の装置内時刻を自装置の装置内時刻に同期させるものである。
【0019】
図1に示すように、本実施形態に係るBoundary Clock100は、パケット送受信部101,105と、オフセット計算部102と、伝送遅延時間計算部103と、時刻同期処理部104と、閾値記憶部106と、時刻ズレ判定部107と、伝送遅延カウントフラグ部108と、Clock Class書換部109と、障害箇所判定部110とを備える。時刻ズレ判定部107および障害箇所判定部110は、判定部111を構成する。
【0020】
パケット送受信部101は、Grand Master Clock2との間でPTPパケットの送受信を行う。パケット送受信部101は、Grand Master Clock2から受信したパケットをオフセット計算部102および伝送遅延時間計算部103に出力する。
【0021】
オフセット計算部102は、上位装置であるGrand Master Clock2と自装置(Boundary Clock100)の装置内時刻との差であるオフセットを計算する。具体的には、オフセット計算部102は、パケット送受信部101から出力されたパケットからタイムスタンプを取得し、取得したタイムスタンプに基づき、オフセットを計算する。以下、オフセット計算部102によるオフセットの計算について説明する。
【0022】
Grand Master Clock2は、Sync message(同期メッセージ)をBoundary Clock100に送信する。Grand Master Clock2は、Sync messageの送信時刻である時刻T1を示すタイムスタンプを、Sync messageに含めてBoundary Clock100に送信する。
【0023】
Boundary Clock100は、時刻T2において、Grand Master Clock2から送信されてきたSync messageを受信すると、時刻T3において、Delay_Req message(遅延リクエストメッセージ)をGrand Master Clock2に送信する。Boundary Clock100は、Delay_Req messageの送信時刻である時刻T3を示すタイムスタンプを、Delay_Req messageに含めてGrand Master Clock2に送信する。
【0024】
Grand Master Clock2は、時刻T4において、Boundary Clock100から送信されてきたDelay_Req messageを受信すると、Delay_Resp message(遅延レスポンスメッセージ)をBoundary Clock100に送信する。Grand Master Clock2は、Delay_Req messageの受信時刻である時刻T4を示すタイムスタンプを、Delay_Resp messageに含めてBoundary Clock100に送信する。
【0025】
オフセット計算部102は、Grand Master Clock2とBoundary Clock100との間で送受信されるPTPパケット(Sync message, Delay_Req message, Delay_Resp message)に含まれる、時刻T1,T3およびT4を示すタイムスタンプを取得する。また、オフセット計算部102は、Boundary Clock100がSync messageを受信した時刻T2を取得する。そして、オフセット計算部102は、以下の式に基づきオフセットを計算する。
オフセット=((T2-T1)-(T4-T3))/2
【0026】
オフセット計算部102は、オフセットの計算結果を時刻同期処理部104および時刻ズレ判定部107に出力する。
【0027】
伝送遅延時間計算部103は、上位装置であるGrand Master Clock2とBoundary Clock100との間で送受信されるPTPパケットの伝送遅延時間を計算する。伝送遅延時間計算部103は、例えば、Boundary Clock100がSync messageを受信した時刻T2と、Grand Master Clock2がSync messageを送信した時刻T1との差、および、Grand Master Clock2がDelay_Req messageを受信した時刻T4と、Boundary Clock100がDelay_Req messageを送信した時刻T3との差の平均を、伝送遅延時間として計算する。すなわち、伝送遅延時間計算部103は、以下の式に基づき、伝送遅延時間を計算する。
伝送遅延時間=((T2-T1)+(T4-T3))/2
【0028】
伝送遅延時間計算部103は、伝送遅延時間の計算結果を、時刻同期処理部104と、障害箇所判定部110とに出力する。
【0029】
時刻同期処理部104は、オフセット計算部102により計算されたオフセット、および、伝送遅延時間計算部103により計算された伝送遅延時間に基づき、Boundary Clock100の装置内時刻を、Grand Master Clock2の装置内時刻に同期させる。
【0030】
パケット送受信部105は、クライアント装置3との間でPTPパケットの送受信部を行う。クライアント装置3との間で送受信されるパケットには、Boundary Clock100の装置内時刻の時刻情報が含まれ、当該パケットの送受信により、クライアント装置3の装置内時刻をBoundary Clock100の装置内時刻に同期させることができる。
【0031】
閾値記憶部106は、後述する時刻ズレ判定部107および障害箇所判定部110での処理に必要となる閾値(第1の閾値TH1、第2の閾値TH2および第3の閾値TH3)を記憶する。第1の閾値TH1、第2の閾値TH2および第3の閾値TH3の設定方法としては、予め定められた固定値を設定する方法、一定期間におけるオフセットおよび伝送遅延時間のデータを取得し、その平均値を設定する方法などがある。
【0032】
時刻ズレ判定部107は、オフセット計算部102により計算されたオフセットの絶対値が第1の閾値TH1よりも大きいか否かを判定する。時刻ズレ判定部107は、オフセットが第1の閾値TH1より大きいと判定すると、Grand Master Clock2の装置内時刻と自装置の装置内時刻とのズレの発生(Grand Master Clock2との時刻同期の障害の発生)を障害箇所判定部110に通知する。
【0033】
伝送遅延カウントフラグ部108は、伝送遅延時間が後述する第2の閾値TH2より連続して大きい時間あるいは回数をカウントするためのフラグである伝送遅延カウントフラグを管理する。
【0034】
Clock Class書換部109は、障害箇所判定部110の制御に従い、Boundary Clock100の装置内時刻がGrand Master Clock2の装置内時刻に同期しているか否かを示すClock Classを書き換え、パケット送受信部105に出力する。Clock Classは、Boundary Clock100とクライアント装置3との間で送受信されるPTPパケットに含まれ、クライアント装置3に送信される。クライアント装置3では、Clock Classが、Boundary Clock100の装置内時刻がGrand Master Clock2の装置内時刻に同期していることを示す場合、クライアント装置3の装置内時刻のBoundary Clock100の装置内時刻への同期が行われる。また、Clock Classが、Boundary Clock100の装置内時刻がGrand Master Clock2の装置内時刻に同期していないことを示す場合、クライアント装置3の装置内時刻のBoundary Clock100の装置内時刻への同期が停止される。
【0035】
障害箇所判定部110は、時刻ズレ判定部107からの通知を受けると、伝送遅延時間計算部103により計算された伝送遅延時間に基づき、上位装置であるGrand Master Clock2との時刻同期の障害の発生箇所を判定する。
【0036】
時刻同期の障害の発生箇所としては、Grand Master Clock2が備えるGNSSアンテナ、Grand Master Clock2自体、あるいは、Grand Master Clock2とBoundary Clock100との間の伝送経路が考えられる。障害の発生箇所がGNSSアンテナである場合、ジャミング(妨害電波)あるいはスプーフィング(なりすまし)などの信号攻撃を受けたことが考えられる。また、障害の発生箇所がGrand Master Clock2自体である場合、Grand Master Clock2内の一部の機能が故障したことが考えられる。また、障害の発生の箇所がGrand Master Clock2とBoundary Clock100との間の伝送経路である場合、例えば、一時的にケーブル異常が発生したことが考えられる。障害箇所判定部110は、障害の発生箇所が、Grand Master Clock2(Grand Master Clock2が備えるGNSSアンテナ、あるいは、Grand Master Clock2自体)であるか、Grand Master Clock2とBoundary Clock100との間の伝送経路であるかを判定する。障害箇所判定部110による障害箇所の判定の詳細については後述する。
【0037】
障害箇所判定部110は、障害の発生箇所がGrand Master Clock2であると判定すると、クライアント装置3の装置内時刻の自装置の装置内時刻への同期を停止する。具体的には、障害箇所判定部110は、Boundary Clock100の装置内時刻がGrand Master Clock2の装置内時刻に同期していないことをClock Classが示すように、Clock Classの書き換えをClock Class書換部109に指示する。
【0038】
上述したように、時刻ズレ判定部107および障害箇所判定部110は、判定部111を構成する。したがって、判定部111は、オフセットと伝送遅延時間とに基づき、上位装置であるGrand Master Clock2との時刻同期の障害の発生箇所を判定し、障害の発生箇所がGrand Master Clock2であると判定すると、下位装置であるクライアント装置3の装置内時刻の自装置の装置内時刻への同期を停止する。
【0039】
次に、本実施形態に係るBoundary Clock100の動作について説明する。
【0040】
図2は、本実施形態に係るBoundary Clock100の動作の一例を示すフローチャートであり、Boundary Clock100による時刻同期方法を説明するための図である。
【0041】
伝送遅延時間計算部103は、パケット送受信部101から出力されたパケットからタイムスタンプを取得し、伝送遅延時間を計算する(ステップS101)。
【0042】
障害箇所判定部110は、伝送遅延時間計算部103により計算された伝送遅延時間が、閾値記憶部106に記憶されている第2の閾値TH2より大きいか否かを判定する(ステップS102)。第2の閾値TH2は、伝送遅延時間が大きく変化したか否かを判定するための閾値である。例えば、通常時には、Grand Master Clock2とBoundary Clock100とが10ns以内でPTPパケットの送受信を行っている場合、第2の閾値TH2は、例えば、10nsに設定される。この場合、障害箇所判定部110は、伝送遅延時間が10nsより大きいか否かを逐次、判定する。
【0043】
なお、上述したように、第2の閾値TH2としては、一定期間のデータの平均値が設定されてよい。例えば、Grand Master Clock2とBoundary Clock100との間でPTPでの通信が開始されてからの1分間において、1秒ごとに伝送遅延時間を計算し、その60個のデータの平均値が第2の閾値TH2として設定されてよい。
【0044】
障害箇所判定部110は、伝送遅延時間が第2の閾値TH2より大きいと連続して判定した回数をカウントする。以下では、このカウント値を伝送遅延カウントと称する。
【0045】
伝送遅延時間が第2の閾値TH2より大きいと判定した場合(ステップS102:Yes)、障害箇所判定部110は、伝送遅延カウントを1増やし、伝送遅延カウントフラグ部108で管理される伝送遅延カウントフラグをオンにする(ステップS103)。なお、既に伝送遅延カウントフラグがオンの場合、障害箇所判定部110は、伝送遅延カウントフラグをオンのままとする。ステップS103の処理の後、ステップS101から処理が繰り返される。
【0046】
伝送遅延時間が第2の閾値TH2より大きくない(伝送遅延時間が第2の閾値TH2以下である)と判定した場合(ステップS102:No)、障害箇所判定部110は、伝送遅延カウントを0にし、伝送遅延カウントフラグをオフにする(ステップS104)。伝送遅延時間が第2の閾値TH2以下である場合、伝送遅延時間に異常はないので、Boundary Clock100は処理を終了する。
【0047】
上述したステップS101からステップS104の処理と平行して、以下で説明するステップS105以降の処理が行われる。
【0048】
オフセット計算部102は、パケット送受信部101から出力されたパケットからタイムスタンプを取得し、オフセットを計算する(ステップS105)。
【0049】
時刻ズレ判定部107は、オフセット計算部102により計算されたオフセットの絶対値が、閾値記憶部106に記憶されている第1の閾値TH1より大きいか否かを判定する(ステップS106)。第1の閾値TH1は、オフセットが大きく変化したか否かを判定するための閾値である。例えば、通常時には、Grand Master Clock2の装置内時刻とBoundary Clock100の装置内時刻とのオフセットが1msより小さい場合、第1の閾値TH1は、例えば、1msに設定される。この場合、時刻ズレ判定部107は、オフセットの絶対値が1msより大きいか否かを逐次、判定する。
【0050】
なお、上述したように、第1の閾値TH1としては、一定期間のデータの平均値が設定されてよい。例えば、Grand Master Clock2とBoundary Clock100との間でPTPでの通信が開始されてからの1分間において、1秒ごとにオフセットを計算し、その60個のデータの平均値が第1の閾値TH1として設定されてよい。
【0051】
オフセットの絶対値が第1の閾値TH1より大きくない(オフセットが第1の閾値TH1以下である)と判定した場合(ステップS106:No)、オフセットに異常はないので、Boundary Clock100は処理を終了する。
【0052】
オフセットの絶対値が第1の閾値TH1より大きいと判定した場合(ステップS106:Yes)、時刻ズレ判定部107は、オフセットの絶対値が第1の閾値TH1より大きいことを障害箇所判定部110に通知する(ステップ107)。すなわち、時刻ズレ判定部107は、Grand Master Clock2の装置内時刻とBoundary Clock100自装置の装置内時刻との時刻同期の障害の発生を障害箇所判定部110に通知する。
【0053】
時刻ズレ判定部107からの通知を受けると、障害箇所判定部110は、伝送遅延カウントフラグがオンであるか否かを判定する(ステップS108)。
【0054】
伝送遅延カウントフラグがオンでない(伝送遅延カウントフラグがオフである)と判定した場合(ステップS108:No)、障害箇所判定部110は、処理を終了する。
【0055】
伝送遅延カウントフラグがオンであると判定した場合(ステップS108:Yes)、障害箇所判定部110は、伝送遅延カウントを確認する(ステップSS109)。
【0056】
障害箇所判定部110は、伝送遅延カウントが0より大きく、閾値記憶部106に記憶されている第3の閾値TH3以下である(0<伝送遅延カウント≦第3の閾値TH3)場合、ステップS109の処理を繰り返す。第3の閾値TH3は、伝送遅延時間の変化が一時的であるか否かを判定するための閾値である。第3の閾値TH3は、例えば、10回に設定される。この場合、障害箇所判定部110は、伝送遅延時間が第2の閾値TH2(例えば、10ms)よりも10回連続で大きいか否かを判定する。
【0057】
障害箇所判定部110は、伝送遅延カウントが第3の閾値TH3より大きい(伝送遅延カウント>第3の閾値TH3)と判定すると、処理を終了する。
【0058】
図3Aは、Grand Master Clock2とBoundary Clock100との間の伝送経路に障害が発生した場合の、伝送遅延時間の変動について説明するための図である。
【0059】
図3Aに示すように、Grand Master Clock2とBoundary Clock100との間の伝送経路に障害が発生した場合、Grand Master Clock2からPTPにより伝達される時刻は正しいが、伝送経路の障害により、伝送遅延時間は大きく変化する。また、Grand Master Clock2の装置内時刻もBoundary Clock100の装置内時刻も正しいままであり、かつ、伝送経路に障害が発生したままであるため、伝送遅延時間は、
図3Aに示すように、障害の発生前の元の値には戻らず一定となる。したがって、障害箇所判定部110は、オフセットが第1の閾値TH1より大きく、かつ、伝送遅延時間が大きく変動した(伝送遅延時間が第2の閾値TH2より大きくなった)後、所定時間(第3の閾値TH3)以内に元に戻らなかった場合、Grand Master Clock2とBoundary Clock100との間の伝送経路で障害が発生したと判定することができる。
【0060】
Grand Master Clock2とBoundary Clock100との間の伝送経路に障害が発生した場合、Grand Master Clock2の装置内時刻もBoundary Clock100の装置内時刻も正しいため、クライアント装置3の装置内時刻をBoundary Clock100の装置内時刻に同期させて問題は無い。したがって、障害箇所判定部110は、障害の発生箇所がGrand Master Clock2とBoundary Clock100との間の伝送経路であると判定した場合、Clock Classの書き換えを行うことなく、引き続き、クライアント装置3の装置内時刻をBoundary Clock100の装置内時刻に同期させる。
【0061】
図2を再び参照すると、障害箇所判定部110は、伝送遅延カウントが第3の閾値TH3より大きくなる前に、伝送遅延カウントが0になると、Grand Master Clock2で障害が発生したと判定する。そして、障害箇所判定部110は、Grand Master Clock2で障害が発生したことをClock Class書換部109に通知する(ステップS110)。Clock Class書換部109は、障害箇所判定部110の通知を受けると、Boundary Clock100の装置内時刻がGrand Master Clock2の装置内時刻に同期していないことをClock Classが示すように、Clock Classを書き換える。この結果、クライアント装置3の装置内時刻のBoundary Clock100の装置内時刻への同期が停止される。
【0062】
図3Bは、Grand Master Clock2(Grand Master Clock2が備えるGNSSアンテナあるいはGrand Master Clock2自体)に障害が発生した場合の、伝送遅延時間の変動について説明するための図である。
【0063】
図3Bに示すように、Grand Master Clock2に障害が発生した場合、Grand Master Clock2からPTPにより伝達される時刻が誤っているため、伝送遅延時間は大きく変化する。しかしながら、しばらく時間が経つと、Grand Master Clock2から伝達される誤った時刻にBoundary Clock100の装置内時刻が同期するため、伝送遅延時間は、障害の発生前の元の値に戻る。したがって、障害箇所判定部110は、オフセットが第1の閾値TH1より大きく、かつ、伝送遅延時間が大きく変動した後、所定時間以内に元に戻った場合、Grand Master Clock2で障害が発生したと判定することができる。
【0064】
Grand Master Clock2で障害が発生した場合、Grand Master Clock2から配信される時刻が誤っているため、その時刻にクライアント装置3の装置内時刻を同期させると、システム障害あるいは通信障害などの悪影響が生じる可能性がある。したがって、障害箇所判定部110は、障害の発生箇所がGrand Master Clock2であると判定した場合、Clock Classを書き換え、クライアント装置3の装置内時刻のBoundary Clock100の装置内時刻への同期を停止させる。
【0065】
なお、
図2においては、第3の閾値TH3は、伝送遅延時間が第2の閾値TH2より大きいと判定された回数である例を用いて説明したが、これに限られるものではない。第3の閾値TH3は、連続して伝送遅延時間が第2の閾値TH2より大きいと判定された時間であってもよい。
【0066】
このように本実施形態に係る時刻同期方法は、オフセット計算部102が、上位装置であるGrand Master Clock2の装置内時刻とBoundary Clock100の装置内時刻との差であるオフセットを計算するステップ(ステップS105)と、伝送遅延時間計算部103が、Grand Master Clock2とBoundary Clock100との間で送受信されるパケットの伝送遅延時間を計算するステップ(ステップS101)とを含む。さらに、本実施形態に係る時刻同期方法は、時刻ズレ判定部107および障害箇所判定部110からなる判定部111が、オフセットと伝送遅延時間とに基づき、Grand Master Clock2との時刻同期の障害の発生箇所を判定し(ステップS102-S104,S106-S109)、障害の発生箇所がGrand Master Clock2であると判定すると、下位装置であるクライアント装置3の装置内時刻のBoundary Clock100の装置内時刻への同期を停止するステップ(ステップS110)を含む。
【0067】
具体的には、判定部111は、オフセットが第1の閾値TH1より大きいか否か、および、伝送遅延時間が第2の閾値TH2より大きいか否かを判定する(ステップS102,S106)。そして、判定部111は、オフセットが第1の閾値TH1より大きく(ステップS106:Yes)、かつ、伝送遅延時間が第2の閾値TH2より大きいと判定された回数または時間が、第3の閾値TH3より大きくなるまでに、伝送遅延時間が第2の閾値TH2以下になった場合(ステップS109において、伝送遅延カウント=0)、障害の発生箇所がGrand Master Clock2であると判定し、クライアント装置3の装置内時刻のBoundary Clock100の装置内時刻への同期を停止する(ステップS110)。
【0068】
また、判定部111は、伝送遅延時間が第2の閾値TH2より大きいと判定された回数または時間が、第3の閾値TH3より大きくなった場合(ステップS109において、伝送遅延カウント>3)、Clock Classの書き換えを行うことなく、クライアント装置3の装置内時刻をBoundary Clock100の装置内時刻に同期させる。
【0069】
図2においては、伝送遅延時間が第2の閾値TH2より大きいと判定された回数または時間が、第3の閾値TH3より大きいかを判定してから、Clock Classの書き換えを行う。そのため、クライアント装置3の装置内時刻を、Boundary Clock100の装置内時刻に同期させるか否かの切り替えに時間がかかってしまう。そこで、判定部111は、伝送遅延時間が第2の閾値TH2よりも大きくなったら即座にClock Classの書き換えを行い、障害の発生箇所がGrand Master Clock2とBoundary Clock100との間の伝送経路である(障害の発生箇所がGrand Master Clock2でない)と判定された場合、Clock Classを再び書き換える(元に戻す)という処理を行ってもよい。
図4は、このような処理を行う場合の、Boundary Clock100の動作の一例を示すフローチャートである。
図4において、
図2と同様の処理には同じ符号を付し、説明を省略する。
【0070】
図4と
図2とを比較すると、ステップ110,S111の処理が削除され、ステップS201,S202,S203の処理が追加されている。以下では、ステップS201,S202,S203の処理を中心に説明する。
【0071】
障害箇所判定部110は、伝送遅延時間が第2の閾値TH2より大きいと判定すると(ステップS102:Yes)、Grand Master Clock2で障害が発生していると仮に判定する。そして、障害箇所判定部110は、Grand Master Clock2で障害が発生したことをClock Class書換部109に通知する(ステップS201)。Clock Class書換部109は、障害箇所判定部110の通知を受けて、Boundary Clock100の装置内時刻がGrand Master Clock2の装置内時刻に同期していないことをClock Classが示すように、Clock Classに書き換える。この結果、クライアント装置3の装置内時刻のBoundary Clock100の装置内時刻への同期が停止される。
【0072】
障害箇所判定部110は、伝送遅延カウントを確認し(ステップS109)、伝送遅延カウントが第3の閾値TH3より大きくなると(伝送遅延カウント>第3の閾値TH3)、障害の発生箇所がGrand Master Clock2とBoundary Clock100との間の伝送路である(障害の発生箇所がGrand Master Clock2でない)と判定し、Grand Master Clock2で障害が発生していないことをClock Class書換部109に通知する(ステップS202)。
【0073】
Clock Class書換部109は、障害箇所判定部110からの通知を受けて、Clock Classを再び書き換える(元に戻す)(ステップS203)。そのため、クライアント装置3の装置内時刻のBoundary Clock100の装置内時刻への同期が再開される。
【0074】
なお、上述したように、障害箇所判定部110は、伝送遅延カウントが第3の閾値TH3より大きくなる前に、伝送遅延カウントが0になると、Grand Master Clock2で障害が発生したと判定する。この場合、クライアント装置3の装置内時刻のBoundary Clock100の装置内時刻への同期が停止されているので、障害箇所判定部110はそのまま処理を終了する。
【0075】
このように、時刻ズレ判定部107および障害箇所判定部110からなる判定部111は、オフセットが第1の閾値TH1より大きいか否か、および、伝送遅延時間が第2の閾値TH2より大きいか否かを判定する。そして、判定部111は、伝送遅延時間が第2の閾値TH2より大きい場合、クライアント装置3の装置内時刻のBoundary Clock100の装置内時刻への同期を停止してよい。さらに、判定部111は、クライアント装置3の装置内時刻のBoundary Clock100の装置内時刻への同期を停止している状態で、オフセットが第1の閾値TH1より大きく、かつ、伝送遅延時間が第2の閾値TH2より大きいと判定された回数または時間が、第3の閾値TH3より大きくなると、クライアント装置3の装置内時刻をBoundary Clock100の装置内時刻に同期させてよい。
【0076】
このように本実施形態に係る時刻同期装置としてのBoundary Clock100は、オフセット計算部102と、伝送遅延時間計算部103と、判定部111と、を備える。オフセット計算部102は、上位装置であるGrand Master Clock2の装置内時刻と自装置の装置内時刻との差であるオフセットを計算する。伝送遅延時間計算部103は、Grand Master Clock2とBoundary Clock100との間で送受信されるパケットの伝送遅延時間を計算する。判定部111は、オフセットと伝送遅延時間とに基づき、Grand Master Clock2との時刻同期の障害の発生箇所を判定し、障害の発生箇所がGrand Master Clock2であると判定すると、下位装置であるクライアント装置3の装置内時刻の自装置の装置内時刻への同期を停止する。
【0077】
障害の発生箇所がGrand Master Clock2である場合、Grand Master Clock2から配信される時刻が誤っている。その時刻に自装置の装置内時刻を同期させ、クライアント装置3の装置内時刻を自装置の装置内時刻に同期させると、誤った時間をクライアント装置3に配信することになる。そこで、本実施形態においては、Boundary Clock100は、オフセットと伝送遅延時間とに基づき、障害の発生箇所がGrand Master Clock2であると判定すると、クライアント装置3の装置内時刻の自装置の装置内時刻への同期を停止する。こうすることで、上位装置から配信された時刻に自装置の装置内時刻を同期させ、下位装置の装置内時刻を自装置の装置内時刻に同期させる場合に、下位装置の装置内時刻を誤った時刻に同期させる可能性の低減を図ることができる。
【0078】
なお、本実施形態においては、本開示に係る時刻同期装置が、Grand Master Clock2とクライアント装置3との間で時刻同期を行う例を用いて説明したが、これに限られるものではない。本開示に係る時刻同期装置は、例えば、一のBoundary Clockと他のBoundary Clockとの間で時刻同期を行うものであってもよい。
【0079】
次に、本実施形態に係る時刻同期装置としてのBoundary Clock100のハードウェア構成について説明する。
【0080】
図5は、本実施形態に係る時刻同期装置としてのBoundary Clock100のハードウェア構成の一例を示す図である。
図5においては、Boundary Clock100がプログラム命令を実行可能なコンピュータにより構成される場合の、Boundary Clock100のハードウェア構成の一例を示している。ここで、コンピュータは、汎用コンピュータ、専用コンピュータ、ワークステーション、PC(Personal computer)、電子ノートパッドなどであってもよい。プログラム命令は、必要なタスクを実行するためのプログラムコード、コードセグメントなどであってもよい。
【0081】
図5に示すように、Boundary Clock100は、プロセッサ11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、ストレージ14、入力部15、表示部16および通信インタフェース(I/F)17を有する。各構成は、バス19を介して相互に通信可能に接続されている。プロセッサ11は、具体的にはCPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)、SoC(System on a Chip)などであり、同種または異種の複数のプロセッサにより構成されてもよい。
【0082】
プロセッサ11は、各構成の制御および各種の演算処理を実行する制御部である。すなわち、プロセッサ11は、ROM12またはストレージ14からプログラムを読み出し、RAM13を作業領域としてプログラムを実行する。プロセッサ11は、ROM12あるいはストレージ14に記憶されているプログラムに従って、上記各構成の制御および各種の演算処理を行う。本実施形態では、ROM12またはストレージ14には、コンピュータを本開示に係るBoundary Clock100として機能させるためのプログラムが格納されている。当該プログラムがプロセッサ11により読み出されて実行されることで、Boundary Clock100の各構成、すなわち、オフセット計算部102、伝送遅延時間計算部103,時刻同期処理部104、時刻ズレ判定部107、伝送遅延カウントフラグ部108、Clock Class書換部109および障害箇所判定部110が実現される。
【0083】
プログラムは、CD-ROM(Compact Disk Read Only Memory)、DVD-ROM(Digital Versatile Disk Read Only Memory)、USB(Universal Serial Bus)メモリなどの非一時的(non-transitory)記憶媒体に記憶された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【0084】
ROM12は、各種プログラムおよび各種データを格納する。RAM13は、作業領域として一時的にプログラムまたはデータを記憶する。ストレージ14は、HDD(Hard Disk Drive)またはSSD(Solid State Drive)により構成され、オペレーティングシステムを含む各種プログラムおよび各種データを格納する。ROM12またはストレージ14は、例えば、上述した第1の閾値TH1、第2の閾値TH2および第3の閾値TH3を記憶する。
【0085】
入力部15は、マウスなどのポインティングデバイス、およびキーボードを含み、各種の入力を行うために使用される。
【0086】
表示部16は、例えば、液晶ディスプレイであり、各種の情報を表示する。表示部16は、タッチパネル方式を採用して、入力部15として機能してもよい。
【0087】
通信インタフェース17は、他の装置(例えば、Grand Master Clock2およびクライアント装置3)と通信するためのインタフェースであり、例えば、LAN用のインタフェースである。
【0088】
上述したBoundary Clock100の各部として機能させるためにコンピュータを好適に用いることが可能である。そのようなコンピュータは、Boundary Clock100の各部の機能を実現する処理内容を記述したプログラムを該コンピュータの記憶部に格納しておき、該コンピュータのプロセッサによってこのプログラムを読み出して実行させることで実現することができる。すなわち、当該プログラムは、コンピュータを、上述したBoundary Clock100として機能させることができる。また、当該プログラムを非一時的記憶媒体に記録することも可能である。また、当該プログラムを、ネットワークを介して提供することも可能である。
【0089】
以上の実施形態に関し、更に以下の付記を開示する。
【0090】
[付記項1]
上位装置とのパケットの送受信により、前記上位装置の装置内時刻に自装置の装置内時刻を同期させ、下位装置の装置内時刻を前記自装置の装置内時刻に同期させる時刻同期装置であって、
メモリと、
前記メモリに接続された制御部と、
を備え、
前記制御部は、
前記上位装置の装置内時刻と前記自装置の装置内時刻との差であるオフセットを計算し、
前記上位装置と自装置との間で送受信されるパケットの伝送遅延時間を計算し、
前記オフセットと前記伝送遅延時間とに基づき、前記上位装置との時刻同期の障害の発生箇所を判定し、前記障害の発生箇所が前記上位装置であると判定すると、前記下位装置の装置内時刻の前記自装置の装置内時刻への同期を停止する、時刻同期装置。
【0091】
[付記項2]
付記項1に記載の時刻同期装置において、
前記制御部は、前記オフセットが第1の閾値より大きいか否か、および、前記伝送遅延時間が第2の閾値より大きいか否かを判定し、前記オフセットが前記第1の閾値より大きく、かつ、前記伝送遅延時間が前記第2の閾値より大きいと判定された回数または時間が、第3の閾値より大きくなるまでに、前記伝送遅延時間が前記第2の閾値以下になった場合、前記下位装置の装置内時刻の前記自装置の装置内時刻への同期を停止する、時刻同期装置。
【0092】
[付記項3]
付記項2に記載の時刻同期装置において、
前記制御部は、前記伝送遅延時間が前記第2の閾値より大きいと判定された回数または時間が、前記第3の閾値より大きくなった場合、前記下位装置の装置内時刻を、前記自装置の装置内時刻に同期させる、時刻同期装置。
【0093】
[付記項4]
付記項1に記載の時刻同期装置において、
前記制御部は、前記オフセットが第1の閾値より大きいか否か、および、前記伝送遅延時間が第2の閾値より大きいか否かを判定し、前記伝送遅延時間が前記第2の閾値より大きい場合、前記下位装置の装置内時刻の前記自装置の装置内時刻への同期を停止し、
前記下位装置の装置内時刻の、前記自装置の装置内時刻への同期を停止している状態で、前記オフセットが前記第1の閾値より大きく、かつ、前記伝送遅延時間が前記第2の閾値より大きいと判定された回数または時間が、前記第3の閾値より大きくなると、前記下位装置の装置内時刻を前記自装置の装置内時刻に同期させる、時刻同期装置。
【0094】
[付記項5]
上位装置とのパケットの送受信により、前記上位装置の装置内時刻に自装置の装置内時刻を同期させ、下位装置の装置内時刻を前記自装置の装置内時刻に同期させる時刻同期方法であって、
前記上位装置の装置内時刻と前記自装置の装置内時刻との差であるオフセットを計算し、
前記上位装置と自装置との間で送受信されるパケットの伝送遅延時間を計算し、
前記オフセットと前記伝送遅延時間とに基づき、前記上位装置との時刻同期の障害の発生箇所を判定し、前記障害の発生箇所が前記上位装置であると判定すると、前記下位装置の装置内時刻の前記自装置の装置内時刻への同期を停止する、時刻同期方法。
【0095】
[付記項6]
コンピュータによって実行可能なプログラムを記憶した非一時的記憶媒体であって、前記コンピュータを、付記項1から4のいずれか一項に記載の時刻同期装置として動作させる、プログラムを記憶した非一時的記憶媒体。
【0096】
上述の実施形態は代表的な例として説明したが、本開示の趣旨および範囲内で、多くの変更および置換ができることは当業者に明らかである。したがって、本発明は、上述の実施形態によって制限するものと解するべきではなく、請求の範囲から逸脱することなく、種々の変形または変更が可能である。例えば、実施形態の構成図に記載の複数の構成ブロックを1つに組み合わせたり、あるいは1つの構成ブロックを分割したりすることが可能である。
【符号の説明】
【0097】
1 時刻同期システム
2 Grand Master Clock(上位装置)
3 クライアント装置(下位装置)
11 プロセッサ
12 ROM
13 RAM
14 ストレージ
15 入力部
16 表示部
17 通信I/F
19 バス
100 Boundary Clock(時刻同期装置)
101,105 パケット送受信部
102 オフセット計算部
103 伝送遅延時間計算部
104 時刻同期処理部
106 閾値記憶部
107 時刻ズレ判定部
108 伝送遅延カウントフラグ部
109 Clock Class書換部
110 障害箇所判定部
111 判定部