JP2007214670A - クライアント装置およびプログラム - Google Patents
クライアント装置およびプログラム Download PDFInfo
- Publication number
- JP2007214670A JP2007214670A JP2006029874A JP2006029874A JP2007214670A JP 2007214670 A JP2007214670 A JP 2007214670A JP 2006029874 A JP2006029874 A JP 2006029874A JP 2006029874 A JP2006029874 A JP 2006029874A JP 2007214670 A JP2007214670 A JP 2007214670A
- Authority
- JP
- Japan
- Prior art keywords
- time
- correction
- error
- time correction
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
- H04J3/0658—Clock or time synchronisation among packet nodes
- H04J3/0661—Clock or time synchronisation among packet nodes using timestamps
- H04J3/0667—Bidirectional timestamps, e.g. NTP or PTP for compensation of clock drift and for compensation of propagation delays
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Electric Clocks (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
【課題】ネットワークのトラフィックを不必要に増加させることなく、応答性よく時刻補正をすることができる技術を提供すること。
【解決手段】本発明は、時刻情報を生成する計時手段と、計時手段の誤差を算出する誤差算出手段と、算出された誤差を用いて、時刻補正に用いる補正値を算出する補正値算出手段と、算出された補正値を用いて、計時手段の時刻補正を行う時刻補正手段と、算出された誤差に基づいて時刻補正要求の送信間隔を決定し、誤差が大きくなるにつれ送信間隔が短くなるようにする送信間隔決定手段とを有するクライアント装置を提供する。
【選択図】図2
【解決手段】本発明は、時刻情報を生成する計時手段と、計時手段の誤差を算出する誤差算出手段と、算出された誤差を用いて、時刻補正に用いる補正値を算出する補正値算出手段と、算出された補正値を用いて、計時手段の時刻補正を行う時刻補正手段と、算出された誤差に基づいて時刻補正要求の送信間隔を決定し、誤差が大きくなるにつれ送信間隔が短くなるようにする送信間隔決定手段とを有するクライアント装置を提供する。
【選択図】図2
Description
本発明は、ネットワークに接続された複数の端末において、時刻の同期を行う技術に関する。
インターネットなどのTCP/IP(Transmission Control Protocol/Internet Protocol)ネットワークを介した、複数の装置間の時刻同期を行う方法として、SNTP(Simple Network Time Protocol)が知られている。SNTPを用いた、最も一般的な時刻同期の方法は次のとおりである。時刻同期を行うクライアントは、その送信時刻T1を含む要求パケットを、基準となるタイムサーバに送信する。要求パケットを受信したタイムサーバは、要求パケットを受信した時刻T2と、応答パケットの送信時刻T3とを含む応答パケットをクライアントに送信する。クライアントは、応答パケットを受信した時刻T4を取得する。クライアントは、次式(1)により、伝播による遅延時間dを算出することができる。さらに、クライアントは、次式(2)により、クライアントのローカル時計の誤差Δtを算出することができる。
d=(T4−T1)−(T2−T3) …(1)
Δt={(T2−T1)+(T3−T4)}/2 …(2)
d=(T4−T1)−(T2−T3) …(1)
Δt={(T2−T1)+(T3−T4)}/2 …(2)
SNTPによる時刻同期はネットワークを介して行われるため、ネットワークの一時的な負荷増大により影響を受けることがある。例えば、要求パケットの送信時と、応答パケットの受信時とで、ネットワークの負荷が著しく異なる場合、(2)式により算出される誤差Δtは、ローカル時計の実際の誤差とかけ離れたものになってしまうという問題がある。
このように、ネットワークの負荷に一時的な変化が生じた場合の、(2)式により算出される誤差Δtと現実の誤差との乖離を抑制する技術として、例えば特許文献1に記載の技術がある。特許文献1は、(2)式により算出された誤差に基づいてクライアントの時刻を補正する際、補正値に上限を設ける技術を開示している。これにより、一時的なネットワークの負荷により、(2)式により算出される誤差が見かけ上、現実の誤差よりも大きくなった場合でも、それに直接追従することなく、制限値に相当する補正値が用いられる。
特開2005−195507号公報
しかし、特許文献1によれば、時刻の同期は一定間隔のポーリングにより行われるため、必ずしも適切な補正ができないという問題があった。すなわち、ポーリングの間隔が長い場合には誤差が解消されるのに時間がかかってしまう。また、ポーリングの間隔が短い場合には、ネットワークのトラフィックが増大するため、ネットワークに2次的な負荷を発生させてしまう。
本発明は上述の事情に鑑みてなされたものであり、ネットワークのトラフィックを不必要に増加させることなく、応答性よく時刻補正をすることができる技術を提供する。
上述の課題を解決するため、本発明は、ネットワークを介してサーバ装置と通信するクライアント装置であって、時刻情報を生成する計時手段と、時刻補正要求を出力する際に、前記計時手段が生成した時刻情報を送信時刻T1として前記時刻補正要求に含ませて、前記ネットワークを介して前記サーバ装置に送信する要求送信手段と、前記サーバ装置が前記時刻補正要求を受信した時刻T2を含む時刻補正応答を、前記時刻補正応答を送信した時刻T3と共に送信すると、この時刻補正応答を前記時刻補正要求の応答として前記ネットワークを介して受信する応答受信手段と、前記応答受信手段が前記時刻補正応答を受信した時に前記計時手段が生成した時刻情報を受信時刻T4とし、前記送信時刻T1と、前記時刻補正応答に含まれる時刻T2およびT3と、前記受信時刻T4の4つの時刻を用いて前記計時手段の誤差を算出する誤差算出手段と、前記誤差算出手段により算出された誤差を用いて、時刻補正に用いる補正値を算出する補正値算出手段と、前記補正値算出手段により算出された補正値を用いて、前記計時手段の時刻補正を行う時刻補正手段と、前記誤差算出手段により算出された誤差に基づいて前記時刻補正要求の送信間隔を決定し、誤差が大きくなるにつれ送信間隔が短くなるようにする送信間隔決定手段とを有するクライアント装置を提供する。
このクライアント装置によれば、時刻補正要求の送信間隔は誤差に基づいて決定される。送信間隔は、誤差が大きいときは短く、誤差が小さいときは長くなるように決定される。したがって、このクライアント装置によれば、ネットワークのトラフィックを不必要に増加させることなく、時刻補正をすることができる。
このクライアント装置によれば、時刻補正要求の送信間隔は誤差に基づいて決定される。送信間隔は、誤差が大きいときは短く、誤差が小さいときは長くなるように決定される。したがって、このクライアント装置によれば、ネットワークのトラフィックを不必要に増加させることなく、時刻補正をすることができる。
好ましい態様において、このクライアント装置は、前回時刻補正を行ったときの補正値が、あらかじめ決められたしきい値を超えていたか判断する第1の判断手段と、前記誤差算出手段により算出された誤差が、補正値の制限値を超えているか判断する第2の判断手段と、前記第1の判断手段により、前回時刻補正を行ったときの補正値があらかじめ決められたしきい値を超えていたと判断され、かつ、前記第2の判断手段により、前記誤差算出手段により算出された誤差が補正値の制限値を超えていると判断された場合、その値が大きくなるように制限値を決定する制限値決定手段とをさらに有し、前記誤差算出手段により算出された誤差が前記制限値決定手段により決定された制限値を超えていた場合、前記時刻補正手段が、前記制限値を補正値として用いて時刻補正を行ってもよい。
このクライアント装置によれば、補正値の制限値も誤差に基づいて決定される。制限値は、誤差が大きいときは大きく、誤差が小さいときは小さくなるように決定される。したがって、このクライアント装置によれば、誤差に応じて高速に時刻補正をすることができる。
この態様において、前記制限値決定手段が、前回時刻補正を行ったときの制限値にあらかじめ決められた定数を加算することにより、新たな制限値を決定してもよい。あるいは、前記制限値決定手段が、前回時刻補正を行ったときの制限値に前記誤差により決定される値を加算することにより、新たな制限値を決定してもよい。
このクライアント装置によれば、補正値の制限値も誤差に基づいて決定される。制限値は、誤差が大きいときは大きく、誤差が小さいときは小さくなるように決定される。したがって、このクライアント装置によれば、誤差に応じて高速に時刻補正をすることができる。
この態様において、前記制限値決定手段が、前回時刻補正を行ったときの制限値にあらかじめ決められた定数を加算することにより、新たな制限値を決定してもよい。あるいは、前記制限値決定手段が、前回時刻補正を行ったときの制限値に前記誤差により決定される値を加算することにより、新たな制限値を決定してもよい。
また、本発明は、ネットワークを介してサーバ装置と通信し、計時手段を有するクライアント装置を、時刻補正要求を出力する際に、前記計時手段が生成した時刻情報を送信時刻T1として前記時刻補正要求に含ませて、前記ネットワークを介して前記サーバ装置に送信する要求送信手段と、前記サーバ装置が前記時刻補正要求を受信した時刻T2を含む時刻補正応答を、前記時刻補正応答を送信した時刻T3と共に送信すると、この時刻補正応答を前記時刻補正要求の応答として前記ネットワークを介して受信する応答受信手段と、前記応答受信手段が前記時刻補正応答を受信した時に前記計時手段が生成した時刻情報を受信時刻T4とし、前記送信時刻T1と、前記時刻補正応答に含まれる時刻T2およびT3と、前記受信時刻T4の4つの時刻を用いて前記計時手段の誤差を算出する誤差算出手段と、前記誤差算出手段により算出された誤差を用いて、時刻補正に用いる補正値を算出する補正値算出手段と、前記補正値算出手段により算出された補正値を用いて、前記計時手段の時刻補正を行う時刻補正手段と、前記誤差算出手段により算出された誤差に基づいて前記時刻補正要求の送信間隔を決定する送信間隔決定手段であって、誤差が大きくなるにつれ送信間隔が短くなるように前記送信間隔を決定する送信間隔決定手段として機能させるプログラムを提供する。
以下、図面を参照して本発明の実施形態について説明する。
<1.第1実施形態>
図1は、本発明の第1実施形態に係る時刻補正システム1の構成を示す図である。PC100は、ネットワーク300を介してNTP(Network Time Protocol)サーバ200と接続されたクライアント装置である。NTPサーバ200は、時刻補正を行うための内部時計を有している(図示略)。ネットワーク300を介して時刻補正を要求する要求パケット(時刻補正要求)を受信すると、NTPサーバ200は、要求パケットの送信元のクライアント装置に、時刻補正要求に対する応答(時刻補正応答)として応答パケットを送信する機能を有する。要求パケットは、クライアント装置が要求パケットを送信した時刻T1を示す情報を含んでいる。応答パケットは、NTPサーバ200が要求パケットを受信した時刻T2と、NTPサーバ200が応答パケットを送信した時刻T3とを含んでいる。ネットワーク300は、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)等のネットワークである。なお、図1においては、サーバ装置およびクライアント装置がそれぞれ1台ずつ図示されているが、ネットワーク300には、複数のサーバ装置および複数のクライアント装置が接続されていてもよい。なお、以下の説明において、「サーバ装置」とは、ネットワークを介して他の装置と接続された装置であって、他の装置から送信された要求に対して応答を返信する装置をいう。また、「クライアント装置」とは、ネットワークを介してサーバ装置に接続された装置であって、サーバ装置に対して要求を送信する装置をいう。
<1.第1実施形態>
図1は、本発明の第1実施形態に係る時刻補正システム1の構成を示す図である。PC100は、ネットワーク300を介してNTP(Network Time Protocol)サーバ200と接続されたクライアント装置である。NTPサーバ200は、時刻補正を行うための内部時計を有している(図示略)。ネットワーク300を介して時刻補正を要求する要求パケット(時刻補正要求)を受信すると、NTPサーバ200は、要求パケットの送信元のクライアント装置に、時刻補正要求に対する応答(時刻補正応答)として応答パケットを送信する機能を有する。要求パケットは、クライアント装置が要求パケットを送信した時刻T1を示す情報を含んでいる。応答パケットは、NTPサーバ200が要求パケットを受信した時刻T2と、NTPサーバ200が応答パケットを送信した時刻T3とを含んでいる。ネットワーク300は、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)等のネットワークである。なお、図1においては、サーバ装置およびクライアント装置がそれぞれ1台ずつ図示されているが、ネットワーク300には、複数のサーバ装置および複数のクライアント装置が接続されていてもよい。なお、以下の説明において、「サーバ装置」とは、ネットワークを介して他の装置と接続された装置であって、他の装置から送信された要求に対して応答を返信する装置をいう。また、「クライアント装置」とは、ネットワークを介してサーバ装置に接続された装置であって、サーバ装置に対して要求を送信する装置をいう。
図2は、PC100の機能構成を示す図である。タイマTは、時刻情報を生成する内部時計である。要求送信部101は、ネットワーク300を介して、要求パケット(時刻補正要求)を、NTPサーバ200に送信する。応答受信部102は、NTPサーバ200からネットワーク300を介して送信された応答パケット(時刻補正応答)を受信する。誤差算出部103は、上述の時刻T1〜T3と、PC100が応答パケットを受信した時刻T4とを用いて、タイマTの誤差Δtを算出する。なお、時刻T1およびT4はクライアント装置(PC100)の内部時計により計測された時刻であり、時刻T2およびT3はサーバ装置(NTPサーバ200)の内部時計により計測された時刻である。誤差Δtは、タイマTが示す時刻とNTPサーバ200の内部時計が示す時刻との差である。誤差Δtは、例えば上述の式(2)により算出される。時刻補正部104は、誤差Δtを用いて補正値を算出する。時刻補正部104は、算出した補正値を用いてタイマTの時刻補正を行う。送信間隔決定部105は、誤差Δtに基づいて要求パケットの送信間隔iを決定する。送信間隔iは時間の次元を有している。要求パケットの送信間隔iは、誤差Δtが大きくなるにつれ短くなるように決定される。要求送信部101は、送信間隔iで、要求パケットを送信する。
図3は、PC100のハードウェア構成を示す図である。CPU(Central Processing Unit)110は、CPU110の各構成要素を制御する制御装置である。ROM(Read Only Memory)120は、CPU110の起動に必要なプログラムやデータを記憶する記憶装置である。RAM(Random Access Memory)130は、CPU110の作業領域として機能する記憶装置である。IF(Interface)140は、ネットワーク300や他の装置との間でデータや制御命令の入出力を行うインターフェースである。HDD(Hard Disk Drive)150は、各種プログラムやデータを記憶する記憶装置である。タイマTは、時刻情報を生成する内部時計である。本実施形態において、HDD150は、時刻補正を行うための時刻補正プログラムを記憶している。CPU110が時刻補正プログラムを実行することによって、PC100は、図2に示される機能構成を具備する。
図4は、第1実施形態に係る時刻補正を説明する図である。時刻補正を行うため、PC100は、NTPサーバ200に要求パケットを送信する。PC100は、NTPサーバ200から応答パケットを受信する。PC100のCPU110は、前述の時刻T1〜T4および式(2)に基づいて、タイマTが示す時刻とNTPサーバ200の内部時計が示す時刻との誤差Δtを算出する。図4において、縦軸はタイマTが示す時刻とNTPサーバ200の内部時計が示す時刻との誤差を示す。図4の縦軸は、(2)式により算出される誤差ではなく、実際に発生している誤差を示している。また、図4において、横軸は基準となる時刻、ここでは、NTPサーバ200の内部時計が示す時刻を示す。図4中の黒丸(●)は、その時刻において時刻補正処理が行われたことを示す。
PC100は、送信間隔iで時刻補正処理を行っている。本実施形態において、送信間隔iは、(2)式で算出される誤差Δtに基づいて決定される変数である。詳細には、送信間隔iは、誤差Δtが大きくなるにつれ短くなるように決定される。ここでは、送信間隔iの初期値が10の場合を例として説明する。また、ここでは、(2)式により算出される誤差Δtが、タイマTが示す時刻とNTPサーバ200の内部時計が示す時刻との実際の誤差と等しい場合について説明する。
PC100のCPU110は、まず時刻0において時刻補正処理を行う。時刻0において、誤差Δt=0である。CPU110は、算出された誤差Δtを用いてタイマTの補正を行う。タイマTの補正は、算出された誤差を補償するように行われる。例えば、CPU110は、算出された誤差Δtを補正値として、タイマTの現在時刻から減算してもよい。しかし、誤差ΔtをタイマTの現在時刻から単純に減算するだけでは、適切な時刻補正が行われない場合がある。すなわち、(2)式により算出される誤差Δt(見かけ上の誤差)が、タイマTが示す時刻とNTPサーバ200の内部時計が示す時刻との実際の誤差と異なっている場合には、誤差Δtを補正値とすると、実際の誤差以上の補正値を減算することになってしまう場合がある。この場合、補正値の減算によりタイマTの誤差はさらに拡大してしまう。そこで、本実施形態においては、タイマTの現在時刻の補正に用いられる補正値の絶対値には上限Cが設けられている。上限Cはあらかじめ決められた定数である。誤差Δtが、|Δt|≧Cを満たす場合、CPU110は、補正値としてCを採用する。以下の説明では、C=4である例を用いる。補正値の正負は誤差Δtの正負と同一である。これにより、ネットワークの遅延などの理由により見かけ上誤差が大きくなった場合に、時刻補正によりかえって誤差が拡大してしまうことが避けられる。
図4の例に戻って説明をする。時刻0において、誤差Δt=0である。誤差がないので、実際には補正は行われない。さらに、CPU110は、あらかじめ決められた関数またはルックアップテーブルと、算出された誤差Δtを用いて送信間隔iを更新(決定)する。この関数は、誤差Δtが与えられたときに送信間隔iを出力する関数である。ルックアップテーブルも同様である。ここで、この関数またはルックアップテーブルは、誤差Δtが大きくなるにつれ、短い送信間隔iを出力するものである。
図5は、送信間隔と誤差との関係を例示する図である。HDD150は、誤差Δtに対してこのような送信間隔iを出力する関数またはルックアップテーブルをあらかじめ記憶している。なお、関数の形状は、図5に示されるものに限定されない。誤差Δtが大きくなるにつれ、短い送信間隔iを出力するものであれば、どのような関数であってもよい。例えば、一次式、多項式、指数関数、対数関数、あるいはこれらのうち複数の組み合わせであってもよい。
再び図4を参照して説明する。CPU110は、この関数に従って送信間隔iを更新する。ここで、Δt=0の場合、iは初期値のままである。したがって、次に時刻補正処理が行われるのは、時刻10のときである。
時刻5において、何らかの理由により、PC100のタイマTが示す時刻は、NTPサーバ200の内部時計が示す時刻より44進んでしまった。すなわち、時刻5において、+44の誤差が発生した。時刻6〜9において、誤差+44の状態が維持される。
時刻10において、CPU110は、時刻補正処理を行う。CPU110は(2)式に従って誤差Δtを算出する。時刻10においてΔt=+44である。CPU110は、まず、タイマTの時刻を補正する。いま、誤差Δtは、|Δt|≧Cを満たすので、CPU110は、タイマTの現在時刻からC(=4)を減算する。これにより、誤差ΔtはΔt=40に減少する。また、CPU110は、あらかじめ決められた関数および算出されたΔtに基づいて、送信間隔iを更新する。送信間隔iは、例えばi=1に更新される。したがって、次に時刻補正処理が行われるのは時刻11のときである。なお、タイマTが示す時刻は補正されるので、CPU110は、補正後のタイマTの時刻に対して送信間隔iを適用する。
CPU110は、送信間隔iで上述の処理を繰り返し実行する。送信間隔iは、誤差Δtが大きいときは短く、誤差Δtが小さくなると長くなるように決定される。これにより、誤差が大きい間は高い頻度で時刻補正処理が行われ、誤差が小さくなると時刻補正処理の頻度は低くなる。したがって、本実施形態によれば、クライアント装置の時計とサーバ装置の時計との誤差が小さいときには、ネットワークのトラフィックが不必要に増加することはない。
<2.第2実施形態>
続いて、本発明の第2実施形態について説明する。以下の説明では、第1実施形態との差異点を中心に説明し、第1実施形態と共通する事項についてはその説明を省略する。また、第1実施形態と共通する要素については共通の参照番号を用いて説明する。
続いて、本発明の第2実施形態について説明する。以下の説明では、第1実施形態との差異点を中心に説明し、第1実施形態と共通する事項についてはその説明を省略する。また、第1実施形態と共通する要素については共通の参照番号を用いて説明する。
図6は、第2実施形態に係るPC100の機能構成を示す図である。図2と異なっている点は、PC100が、判断部106、判断部107、および制限値決定部108を有する点である。第1実施形態において、補正値の制限値Cは定数であったが、本実施形態において、制限値Cは誤差Δtに応じて更新される。判断部106は、前回時刻補正を行ったときの補正値が、あらかじめ決められたしきい値を超えていたか判断する。判断部107は、(2)式により算出された誤差Δtが、補正値の制限値Cを超えているか判断する。制限値決定部108は、判断部106の判断結果および判断部107の判断結果がともに肯定的なものであった場合、その値が大きくなるように制限値Cを更新(決定)する。なお、PC100のハードウェア構成は図3と同一である。
図7は、第2実施形態に係る時刻補正を説明する図である。本実施形態において、CPU110は、(2)式に従って誤差Δtを算出すると、前回に時刻補正処理を行ったときの補正値があらかじめ決められたしきい値を超えていたか判断する。すなわち、CPU110は、補正処理を行う際に、補正値をRAM130に記憶させる。また、HDD150は、しきい値を特定する情報をあらかじめ記憶している。しきい値としては、例えば、制限値Cを用いることができる。すなわち、CPU110は、前回時刻補正処理を行ったときに、制限値Cに相当する時刻補正が行われたか判断する(第1の判断)。また、CPU110は、算出された誤差Δtが、|Δt|≧Cを満たすか判断する(第2の判断)。
上記第1の判断および第2の判断のいずれか一方の判断結果が否定的なものであった場合、CPU110は、制限値Cの更新を行わない。上記第1の判断および第2の判断の両方の判断結果が肯定的なものであった場合、CPU110は、制限値Cの更新を行う。制限値Cの更新は、例えば以下のように行われる。すなわち、CPU110は、制限値Cにあらかじめ決められた増加量ΔCを加算する。以下、C=4、ΔC=1である場合を例として説明を行う。
時刻0における時刻補正処理の後、時刻10において、CPU110は、時刻補正処理を行う。まず、CPU110は、(2)式に従って誤差Δtを算出する。ここで、Δt=44である。Δt≠0であるので、CPU110は、タイマTの時刻を補正する。CPU110は、前回(時刻0)時刻補正処理を行ったときに、制限値Cに相当する時刻補正が行われたか判断する。時刻0において、制限値Cに相当する時刻補正は行われていない。したがって、CPU110は制限値Cの更新を行わない。CPU110は、制限値Cの値として初期値C=4を用いて時刻補正を行う。なお、送信間隔iの更新処理については、第1実施形態で説明したとおりに行われる。ここで、例えばiはi=1と決定される。
次に、CPU110は、時刻11において時刻補正処理を行う。時刻11において、Δt=40である。Δt≠0であるので、CPU110は、タイマTの時刻を補正する。CPU110は、前回(時刻10)時刻補正処理を行ったときに、制限値Cに相当する時刻補正が行われたか判断する。時刻10において、制限値C(C=4)に相当する時刻補正が行われている。したがって、CPU110は制限値Cの更新を行う。また、CPU110は、誤差Δtが、|Δt|≧Cを満たすか判断する。いま、Δt=40かつC=4であるので、誤差Δtはこの条件を満たす。すなわち、CPU110は、制限値Cに、増加量ΔCを加算する。ここで、制限値CはC=5に更新される。また、第1実施形態で説明した方法により、送信間隔iはi=1に更新される。
次に、CPU110は、時刻12において時刻補正処理を行う。時刻12において、Δt=35である。Δt≠0であるので、CPU110は、タイマTの時刻を補正する。CPU110は、前回(時刻11)時刻補正処理を行ったときに、制限値Cに相当する時刻補正が行われたか判断する。時刻11において、制限値C(C=5)に相当する時刻補正が行われている。また、CPU110は、誤差Δtが、|Δt|≧Cを満たすか判断する。いま、Δt=35かつC=5であるので、誤差Δtはこの条件を満たす。したがって、CPU110は制限値Cの更新を行う。すなわち、CPU110は、制限値Cに、増加量ΔCを加算する。ここで、制限値CはC=6に更新される。また、第1実施形態で説明した方法により、送信間隔iはi=1に更新される。
CPU110は、以上で説明した処理を繰り返し実行する。本実施形態によれば、前回制限値に相当する補正が行われても、なお誤差Δtが制限値を超えている場合、制限値が大きくなるように制限値が更新される。これにより、制限値の初期値を低く抑えつつも、補正後の誤差がまだ制限値以上である場合には、制限値が増加される。見かけ上の誤差Δtが制限値以上の大きな値であった場合、それだけではその誤差が一時的なネットワークの負荷増大によりもたらされたものであるのか、あるいは現実にPC100の時刻とNTPサーバ200の時刻が大きくずれているのか、CPU110は判断することができない。本実施形態によれば、補正値の制限値Cは動的に更新されるので、誤差が一時的なネットワークの負荷増大による場合は、制限値は低く抑えられる。一方、現実にPC100の時刻とNTPサーバ200の時刻が大きくずれていた場合、制限値Cは徐々に増加する。これにより、迅速に時刻補正を行うことができる。なお、CPU110は、誤差Δtがあらかじめ決められた条件(例えば、Δt=0など、誤差Δtが十分小さいと判断される条件)を満たした場合、制限値Cを初期値に戻してもよい。
<3.他の実施形態>
本発明は上述の実施形態に限定されるものではなく、種々の変形実施が可能である。
上述の各実施形態において、クライアント装置が汎用のコンピュータ装置である態様について説明したが、クライアント装置はこれに限定されるものではない。いわゆる組み込み機器に対して本発明を適用することも可能である。例えば、時刻補正プログラムを記憶したROMと、この時刻補正プログラムを実行するCPUと、インターネットに接続するネットワークインターフェースとを有する自動販売機に対し、本発明を適用することも可能である。
本発明は上述の実施形態に限定されるものではなく、種々の変形実施が可能である。
上述の各実施形態において、クライアント装置が汎用のコンピュータ装置である態様について説明したが、クライアント装置はこれに限定されるものではない。いわゆる組み込み機器に対して本発明を適用することも可能である。例えば、時刻補正プログラムを記憶したROMと、この時刻補正プログラムを実行するCPUと、インターネットに接続するネットワークインターフェースとを有する自動販売機に対し、本発明を適用することも可能である。
また、上述の第2実施形態において、制限値Cは、前回の時刻補正処理に用いられた制限値Cに、定数ΔCを加算することにより更新された。しかし、制限値Cの更新方法はこれに限定されない。例えば、ΔCは定数ではなく、誤差Δtの関数であってもよい。すなわち、誤差Δtの値が大きいときにはΔCを大きくし、誤差Δtが小さくなるとΔCを小さくしてもよい。
1…時刻補正システム、100…PC、101…要求送信部、102…応答受信部、103…誤差算出部、104…時刻補正部、105…送信間隔決定部、106…判断部、107…判断部、108…制限値決定部、110…CPU、120…ROM、130…RAM、140…IF、150…HDD、200…NTPサーバ、300…ネットワーク
Claims (5)
- ネットワークを介してサーバ装置と通信するクライアント装置であって、
時刻情報を生成する計時手段と、
時刻補正要求を出力する際に、前記計時手段が生成した時刻情報を送信時刻T1として前記時刻補正要求に含ませて、前記ネットワークを介して前記サーバ装置に送信する要求送信手段と、
前記サーバ装置が前記時刻補正要求を受信した時刻T2を含む時刻補正応答を、前記時刻補正応答を送信した時刻T3と共に送信すると、この時刻補正応答を前記時刻補正要求の応答として前記ネットワークを介して受信する応答受信手段と、
前記応答受信手段が前記時刻補正応答を受信した時に前記計時手段が生成した時刻情報を受信時刻T4とし、前記送信時刻T1と、前記時刻補正応答に含まれる時刻T2およびT3と、前記受信時刻T4の4つの時刻を用いて前記計時手段の誤差を算出する誤差算出手段と、
前記誤差算出手段により算出された誤差を用いて、時刻補正に用いる補正値を算出する補正値算出手段と、
前記補正値算出手段により算出された補正値を用いて、前記計時手段の時刻補正を行う時刻補正手段と、
前記誤差算出手段により算出された誤差に基づいて前記時刻補正要求の送信間隔を決定し、誤差が大きくなるにつれ送信間隔が短くなるようにする送信間隔決定手段と
を有するクライアント装置。 - 前回時刻補正を行ったときの補正値が、あらかじめ決められたしきい値を超えていたか判断する第1の判断手段と、
前記誤差算出手段により算出された誤差が、補正値の制限値を超えているか判断する第2の判断手段と、
前記第1の判断手段により、前回時刻補正を行ったときの補正値があらかじめ決められたしきい値を超えていたと判断され、かつ、前記第2の判断手段により、前記誤差算出手段により算出された誤差が補正値の制限値を超えていると判断された場合、その値が大きくなるように制限値を決定する制限値決定手段をさらに有し、
前記誤差算出手段により算出された誤差が前記制限値決定手段により決定された制限値を超えていた場合、前記時刻補正手段が、前記制限値を補正値として用いて時刻補正を行う
ことを特徴とする請求項1に記載のクライアント装置。 - 前記制限値決定手段が、前回時刻補正を行ったときの制限値にあらかじめ決められた定数を加算することにより、新たな制限値を決定することを特徴とする請求項2に記載のクライアント装置。
- 前記制限値決定手段が、前回時刻補正を行ったときの制限値に前記誤差により決定される値を加算することにより、新たな制限値を決定することを特徴とする請求項2に記載のクライアント装置。
- ネットワークを介してサーバ装置と通信し、時刻情報を生成する計時手段を有するクライアント装置を、
時刻補正要求を出力する際に、前記計時手段が生成した時刻情報を送信時刻T1として前記時刻補正要求に含ませて、前記ネットワークを介して前記サーバ装置に送信する要求送信手段と、
前記サーバ装置が前記時刻補正要求を受信した時刻T2を含む時刻補正応答を、前記時刻補正応答を送信した時刻T3と共に送信すると、この時刻補正応答を前記時刻補正要求の応答として前記ネットワークを介して受信する応答受信手段と、
前記応答受信手段が前記時刻補正応答を受信した時に前記計時手段が生成した時刻情報を受信時刻T4とし、前記送信時刻T1と、前記時刻補正応答に含まれる時刻T2およびT3と、前記受信時刻T4の4つの時刻を用いて前記計時手段の誤差を算出する誤差算出手段と、
前記誤差算出手段により算出された誤差を用いて、時刻補正に用いる補正値を算出する補正値算出手段と、
前記補正値算出手段により算出された補正値を用いて、前記計時手段の時刻補正を行う時刻補正手段と、
前記誤差算出手段により算出された誤差に基づいて前記時刻補正要求の送信間隔を決定する送信間隔決定手段であって、誤差が大きくなるにつれ送信間隔が短くなるように前記送信間隔を決定する送信間隔決定手段と
して機能させるプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006029874A JP2007214670A (ja) | 2006-02-07 | 2006-02-07 | クライアント装置およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006029874A JP2007214670A (ja) | 2006-02-07 | 2006-02-07 | クライアント装置およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007214670A true JP2007214670A (ja) | 2007-08-23 |
Family
ID=38492754
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006029874A Pending JP2007214670A (ja) | 2006-02-07 | 2006-02-07 | クライアント装置およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007214670A (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009052968A (ja) * | 2007-08-24 | 2009-03-12 | Fujitsu Telecom Networks Ltd | Ntpによる時刻情報取得方法及び装置 |
JP2009065518A (ja) * | 2007-09-07 | 2009-03-26 | Univ Nagoya | 通信システム、通信装置及び通信方法 |
US8427907B2 (en) | 2008-09-30 | 2013-04-23 | Brother Kogyo Kabushiki Kaisha | Clock device and computer-readable record medium storing program for implementing the same |
WO2014083640A1 (ja) * | 2012-11-28 | 2014-06-05 | 三菱電機株式会社 | 通信装置、通信システムおよび時刻同期方法 |
JP2016163287A (ja) * | 2015-03-05 | 2016-09-05 | 三菱電機株式会社 | 監視制御システム、サーバ、クライアント端末および監視制御方法 |
JP2018110326A (ja) * | 2017-01-04 | 2018-07-12 | 株式会社東芝 | 同期装置、同期方法、同期プログラム、および同期システム |
JP2018112425A (ja) * | 2017-01-10 | 2018-07-19 | 株式会社デンソーテン | システム時刻同期方法 |
CN113037418A (zh) * | 2021-03-17 | 2021-06-25 | 广州虎牙科技有限公司 | 一种网络授时的误差校正方法及相关装置 |
-
2006
- 2006-02-07 JP JP2006029874A patent/JP2007214670A/ja active Pending
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009052968A (ja) * | 2007-08-24 | 2009-03-12 | Fujitsu Telecom Networks Ltd | Ntpによる時刻情報取得方法及び装置 |
JP2009065518A (ja) * | 2007-09-07 | 2009-03-26 | Univ Nagoya | 通信システム、通信装置及び通信方法 |
US8427907B2 (en) | 2008-09-30 | 2013-04-23 | Brother Kogyo Kabushiki Kaisha | Clock device and computer-readable record medium storing program for implementing the same |
WO2014083640A1 (ja) * | 2012-11-28 | 2014-06-05 | 三菱電機株式会社 | 通信装置、通信システムおよび時刻同期方法 |
CN104737490A (zh) * | 2012-11-28 | 2015-06-24 | 三菱电机株式会社 | 通信装置、通信系统和时刻同步方法 |
US9154292B2 (en) | 2012-11-28 | 2015-10-06 | Mitsubishi Electric Corporation | Communication apparatus, communication system, and time synchronization method |
JP5911601B2 (ja) * | 2012-11-28 | 2016-04-27 | 三菱電機株式会社 | 通信装置、通信システムおよび時刻同期方法 |
CN104737490B (zh) * | 2012-11-28 | 2017-09-22 | 三菱电机株式会社 | 通信装置、通信系统和时刻同步方法 |
JP2016163287A (ja) * | 2015-03-05 | 2016-09-05 | 三菱電機株式会社 | 監視制御システム、サーバ、クライアント端末および監視制御方法 |
JP2018110326A (ja) * | 2017-01-04 | 2018-07-12 | 株式会社東芝 | 同期装置、同期方法、同期プログラム、および同期システム |
JP2018112425A (ja) * | 2017-01-10 | 2018-07-19 | 株式会社デンソーテン | システム時刻同期方法 |
CN113037418A (zh) * | 2021-03-17 | 2021-06-25 | 广州虎牙科技有限公司 | 一种网络授时的误差校正方法及相关装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2007214670A (ja) | クライアント装置およびプログラム | |
JP5211987B2 (ja) | 端末装置及びその時刻調整方法 | |
US20160142481A1 (en) | Ranging scalable time stamp data synchronization | |
JP2007174676A (ja) | ネットワークの時間同期化における遅延変動の除去 | |
US20150207877A1 (en) | Time synchronization client, a system and a non-transitory computer readable medium | |
US10594424B2 (en) | Time synchronization slave apparatus capable of adjusting time synchronization period, and method of determining time synchronization period | |
WO2014147934A1 (ja) | 通信装置、通信システム及び通信方法 | |
JP5675703B2 (ja) | 通信装置、制御装置及びプログラム | |
JP2015039131A (ja) | 計測装置および方法 | |
JP6010802B2 (ja) | 時刻同期システム、時刻同期方法、スレーブノード及びコンピュータプログラム | |
US11263112B2 (en) | Method and apparatus for evaluating quality of software running environment of device | |
JP2010028684A (ja) | クライアント装置およびプログラム | |
WO2019235101A1 (ja) | 時刻付与方法、時刻付与装置及びプログラム | |
JP2010078506A (ja) | 通信装置、および通信プログラム | |
JP2020009165A (ja) | クロック調整装置及びプログラム | |
JP6085864B2 (ja) | 時刻同期システム、時刻同期方法、スレーブノード及びコンピュータプログラム | |
JP5356343B2 (ja) | クロール装置及びその方法 | |
US20160231770A1 (en) | System and methods for computer clock synchronization | |
JP6572136B2 (ja) | 通信システム、通信装置、第二装置、通信方法及びコンピュータプログラム | |
JP6478714B2 (ja) | 監視制御システム、サーバ、クライアント端末および監視制御方法 | |
JP5811663B2 (ja) | 時刻補正装置、時刻補正方法、およびプログラム | |
CN115459897B (zh) | 电力实时仿真中的步长同步校准方法、装置及相关设备 | |
WO2017068663A1 (ja) | 通信装置及び通信方法及び通信プログラム | |
EP4160948A1 (en) | Determining a skew between a master clock and a local clock | |
WO2023112141A1 (ja) | 解析装置、解析方法、記憶媒体 |