(57)【特許請求の範囲】
【請求項１】
基準時刻を発生する同期サーバに対して同期要求信号を送信する手段と、前記同期サーバからの当該同期要求信号に応答する同期応答信号を受信する手段と、受信した当該同期応答信号に基づき前記基準時刻に同期した周波数または時刻を発生する手段とを備えたクライアント装置において、
自クライアント装置が前記同期サーバに対して前記同期要求信号を送信した時刻をＴ１とし、前記同期サーバが当該同期要求信号を受信した時刻をＴ２とし、前記同期サーバが当該同期要求信号に応答する同期応答信号を送信した時刻をＴ３とし、自クライアント装置が当該同期応答信号を受信した時刻をＴ４としたときに、前記基準時刻を参照して自クライアント装置内の周波数または時刻を設定する際に適用する時刻差ｄＴは
ｄＴ＝（Ｔ１−Ｔ２−Ｔ３＋Ｔ４）／２
であり、自クライアント装置と前記同期サーバとの間で前記同期要求信号を往路信号とし前記同期応答信号を復路信号とするときの往復遅延時間ＲＴＴを
ＲＴＴ＝Ｔ４−Ｔ３＋Ｔ２−Ｔ１
としたときに、当該ＲＴＴの値が所定の値となる場合の時刻差ｄＴに限定して前記時刻差ｄＴを自クライアント装置内の周波数または時刻の設定に適用する手段を備え、
前記所定の値は、前記同期応答信号を受信する直前にＲＴＴが前記所定の値となった同期応答信号のＲＴＴをＲＴＴ＿ｐｒｅｖとし、予め設定した許容規格化周波数差をｙとし、前記同期応答信号を受信する直前の時刻差ｄＴの適用時刻からの経過時間をＴとして、
ＲＴＴ＿ｌｉｍ＝ＲＴＴ＿ｐｒｅｖ＋ｙ×Ｔ
ＲＴＴ＜ＲＴＴ＿ｌｉｍ
を満たすＲＴＴの値である
ことを特徴とするクライアント装置。
【請求項２】
基準時刻を発生する同期サーバに対して同期要求信号を送信する手段と、前記同期サーバからの当該同期要求信号に応答する同期応答信号を受信する手段と、受信した当該同期応答信号に基づき前記基準時刻に同期した周波数または時刻を発生する手段とを備えたクライアント装置において、
自クライアント装置が前記同期サーバに対して前記同期要求信号を送信した時刻をＴ１とし、前記同期サーバが当該同期要求信号を受信した時刻をＴ２とし、前記同期サーバが当該同期要求信号に応答する同期応答信号を送信した時刻をＴ３とし、自クライアント装置が当該同期応答信号を受信した時刻をＴ４としたときに、前記基準時刻を参照して自クライアント装置内の周波数または時刻を設定する際に適用する時刻差ｄＴは
ｄＴ＝（Ｔ１−Ｔ２−Ｔ３＋Ｔ４）／２
であり、自クライアント装置と前記同期サーバとの間で前記同期要求信号を往路信号とし前記同期応答信号を復路信号とするときの往復遅延時間ＲＴＴを
ＲＴＴ＝Ｔ４−Ｔ３＋Ｔ２−Ｔ１
としたときに、当該ＲＴＴの値が所定の値となる場合の時刻差ｄＴに限定して前記時刻差ｄＴを自クライアント装置内の周波数または時刻の設定に適用する手段を備え、
前記所定の値は、前記同期応答信号を受信する直前にＲＴＴが前記所定の値となった同期応答信号のＲＴＴをＲＴＴ＿ｐｒｅｖとし、予め設定した許容規格化周波数差をｙ１およびｙ２とし、前記同期応答信号を受信する直前の時刻差ｄＴの適用時刻からの経過時間をＴとして、
ＲＴＴ＿ｌｉｍ１＝ＲＴＴ＿ｐｒｅｖ＋ｙ１×Ｔ
ＲＴＴ＿ｌｉｍ２＝ＲＴＴ＿ｐｒｅｖ−ｙ２×Ｔ
ＲＴＴ＿ｌｉｍ２＜ＲＴＴ＜ＲＴＴ＿ｌｉｍ１
を満たすＲＴＴの値である
ことを特徴とするクライアント装置。
【請求項３】
基準時刻を発生する同期サーバに対して同期要求信号を送信する手段と、前記同期サーバからの当該同期要求信号に応答する同期応答信号を受信する手段と、受信した当該同期応答信号に基づき前記基準時刻に同期した周波数または時刻を発生する手段とを備えたクライアント装置において、
自クライアント装置が前記同期サーバに対して前記同期要求信号を送信した時刻をＴ１とし、前記同期サーバが当該同期要求信号を受信した時刻をＴ２とし、前記同期サーバが当該同期要求信号に応答する同期応答信号を送信した時刻をＴ３とし、自クライアント装置が当該同期応答信号を受信した時刻をＴ４としたときに、前記基準時刻を参照して自クライアント装置内の周波数または時刻を設定する際に適用する時刻差ｄＴは
ｄＴ＝（Ｔ１−Ｔ２−Ｔ３＋Ｔ４）／２
であり、自クライアント装置と前記同期サーバとの間で前記同期要求信号を往路信号とし前記同期応答信号を復路信号とするときの往復遅延時間ＲＴＴを
ＲＴＴ＝Ｔ４−Ｔ３＋Ｔ２−Ｔ１
としたときに、当該ＲＴＴの値が所定の値となる場合の時刻差ｄＴに限定して前記時刻差ｄＴを自クライアント装置内の周波数または時刻の設定に適用する手段を備え、
前記所定の値は、前記同期応答信号を受信する直前にＲＴＴが前記所定の値となった同期応答信号のＲＴＴをＲＴＴ＿ｐｒｅｖとし、予め設定した許容規格化周波数差をｙ１およびｙ２とし、予め設定した定数をγ（０＜γ＜１）とし、前記同期応答信号を受信する直前の時刻差ｄＴの適用時刻からの経過時間をＴとして、
ＲＴＴ＿ｌｉｍ１＝ＲＴＴ＿ｐｒｅｖ＋ｙ１×Ｔ
ＲＴＴ＿ｌｉｍ２＝ＲＴＴ＿ｐｒｅｖ×（１−γ）−ｙ２×Ｔ
ＲＴＴ＿ｌｉｍ２＜ＲＴＴ＜ＲＴＴ＿ｌｉｍ１
を満たすＲＴＴの値である
ことを特徴とするクライアント装置。
【請求項４】
閾値をＲＴＴ＿ｔｈとしたときに、
｜ＲＴＴ−ＲＴＴ＿ｐｒｅｖ｜＞ＲＴＴ＿ｔｈ
が一定期間以上継続したときに、自クライアント装置における周波数を一定に保持するホールドオーバ状態に遷移する手段を備えた
請求項１から３のいずれか１項に記載のクライアント装置。
【請求項５】
ホールドオーバ状態に遷移する以前のＲＴＴをＲＴＴ＿ｐｒｅｖ’とし、予め設定した許容規格化周波数差をｙ１およびｙ２とし、ホールドオーバ状態に遷移した時刻からの経過時間をＴ’として、
ＲＴＴ＿ｌｉｍ１＝ＲＴＴ＿ｐｒｅｖ’＋ｙ１×Ｔ’
ＲＴＴ＿ｌｉｍ２＝ＲＴＴ＿ｐｒｅｖ’−ｙ２×Ｔ’
ＲＴＴ＿ｌｉｍ２＜ＲＴＴ＜ＲＴＴ＿ｌｉｍ１
を満たすＲＴＴの値となったときに当該ホールドオーバ状態を解除する
請求項４記載のクライアント装置。
【請求項６】
前記同期応答信号を受信する直前にＲＴＴが前記所定の値となった同期応答信号のＲＴＴをＲＴＴ＿ｐｒｅｖとし、そのときの時刻差ｄＴをｄＴ＿ｐｒｅｖとし、閾値をＲＴＴ＿ｔｈとして、
｜ＲＴＴ−ＲＴＴ＿ｐｒｅｖ｜＞ＲＴＴ＿ｔｈ
が一定期間以上継続したときに、現在の時刻差ｄＴを
ｄＴ＿ｏｆｆｓｅｔ＝ｄＴ＿ｏｆｆｓｅｔ＋ｄＴ＿ｐｒｅｖ−ｄＴ
ｄＴ＝（Ｔ１−Ｔ２−Ｔ３＋Ｔ４）／２＋ｄＴ＿ｏｆｆｓｅｔ
とオフセットさせる
請求項１から３のいずれか１項に記載のクライアント装置。
【請求項７】
前記同期応答信号を受信する直前にＲＴＴが前記所定の値となった同期応答信号のＲＴＴをＲＴＴ＿ｐｒｅｖとし、そのときの時刻差ｄＴをｄＴ＿ｐｒｅｖとし、閾値をＲＴＴ＿ｔｈとして、
｜ＲＴＴ−ＲＴＴ＿ｐｒｅｖ｜＞ＲＴＴ＿ｔｈ
が一定期間以上継続したときに、現在の時刻差ｄＴを
ｄＴ＿ｏｆｆｓｅｔ＝ｄＴ＿ｏｆｆｓｅｔ＋ｄＴ＿ｐｒｅｖ−ｄＴ
ｄＴ＝（Ｔ１−Ｔ２−Ｔ３＋Ｔ４）／２＋ｍａｘ｛ｍｉｎ（ｄＴ＿ｏｆｆｓｅｔ，ｄＴ＿ｏｆｆｓｅｔ＿ｍａｘ），ｄＴ＿ｏｆｆｓｅｔ＿ｍｉｎ｝
とオフセットさせる
請求項１から３のいずれか１項に記載のクライアント装置。
【請求項８】
前記同期応答信号を受信する直前にＲＴＴが前記所定の値となった同期応答信号のＲＴＴをＲＴＴ＿ｐｒｅｖとし、そのときの時刻差ｄＴをｄＴ＿ｐｒｅｖとし、第一の閾値をＲＴＴ＿ｔｈとして、
｜ＲＴＴ−ＲＴＴ＿ｐｒｅｖ｜＞ＲＴＴ＿ｔｈ
が一定期間以上継続したときに、現在の時刻差ｄＴを
ｄＴ＿ｏｆｆｓｅｔ＝ｄＴ＿ｏｆｆｓｅｔ＋ｄＴ＿ｐｒｅｖ−ｄＴ
とし、第二の閾値をｄＴ＿ｏｆｆｓｅｔ＿ｔｈとして、
｜ｄＴ＿ｏｆｆｓｅｔ｜＞ｄＴ＿ｏｆｆｓｅｔ＿ｔｈ
の場合に、当該時刻差ｄＴを
ｄＴ＝（Ｔ１−Ｔ２−Ｔ３＋Ｔ４）／２＋ｄＴ＿ｏｆｆｓｅｔ
とオフセットさせる
請求項１から３のいずれか１項に記載のクライアント装置。
【請求項９】
片側遅延時間として
ΔＴｑ＝Ｔ２−Ｔ１
ΔＴｒ＝Ｔ４−Ｔ３
を算出し、前記同期応答信号を受信する直前にＲＴＴが前記所定の値となった同期応答信号の片側遅延時間をΔＴｑ＿ｐｒｅｖおよびΔＴｒ＿ｐｒｅｖとし、そのときの時刻差ｄＴをｄＴ＿ｐｒｅｖとし、閾値をΔＴ＿ｔｈとして、
｜ΔＴｑ−ΔＴｑ＿ｐｒｅｖ｜＞ΔＴ＿ｔｈ
または
｜ΔＴｒ−ΔＴｒ＿ｐｒｅｖ｜＞ΔＴ＿ｔｈ
が一定期間以上継続したときに、現在の時刻差ｄＴを
ｄＴ＿ｏｆｆｓｅｔ＝ｄＴ＿ｏｆｆｓｅｔ＋ｄＴ＿ｐｒｅｖ−ｄＴ
ｄＴ＝（Ｔ１−Ｔ２−Ｔ３＋Ｔ４）／２＋ｄＴ＿ｏｆｆｓｅｔ
とオフセットさせる
請求項１から３のいずれか１項に記載のクライアント装置。
【請求項１０】
片側遅延時間として
ΔＴｑ＝Ｔ２−Ｔ１
ΔＴｒ＝Ｔ４−Ｔ３
を算出し、前記同期応答信号を受信する直前にＲＴＴが前記所定の値となった同期応答信号の片側遅延時間をΔＴｑ＿ｐｒｅｖおよびΔＴｒ＿ｐｒｅｖとし、そのときの時刻差ｄＴをｄＴ＿ｐｒｅｖとし、閾値をΔＴ＿ｔｈとして、
｜ΔＴｑ−ΔＴｑ＿ｐｒｅｖ｜＞ΔＴ＿ｔｈ
または
｜ΔＴｒ−ΔＴｒ＿ｐｒｅｖ｜＞ΔＴ＿ｔｈ
が一定期間以上継続したときに、現在の時刻差ｄＴを
ｄＴ＿ｏｆｆｓｅｔ＝ｍａｘ｛ｍｉｎ（ｄＴ＿ｐｒｅｖ−ｄＴ，ｄＴ＿ｏｆｆｓｅｔ＿ｍａｘ），ｄＴ＿ｏｆｆｓｅｔ＿ｍｉｎ｝
ｄＴ＝（Ｔ１−Ｔ２−Ｔ３＋Ｔ４）／２＋ｄＴ＿ｏｆｆｓｅｔ
とオフセットさせる
請求項１から３のいずれか１項に記載のクライアント装置。
【請求項１１】
片側遅延時間として
ΔＴｑ＝Ｔ２−Ｔ１
ΔＴｒ＝Ｔ４−Ｔ３
を算出し、前記同期応答信号を受信する直前にＲＴＴが前記所定の値となった同期応答信号の片側遅延時間をΔＴｑ＿ｐｒｅｖおよびΔＴｒ＿ｐｒｅｖとし、そのときの時刻差ｄＴをｄＴ＿ｐｒｅｖとし、第一の閾値をΔＴ＿ｔｈとして、
｜ΔＴｑ−ΔＴｑ＿ｐｒｅｖ｜＞ΔＴ＿ｔｈ
または
｜ΔＴｒ−ΔＴｒ＿ｐｒｅｖ｜＞ΔＴ＿ｔｈ
が一定期間以上継続したときに、
ｄＴ＿ｏｆｆｓｅｔ＝ｄＴ＿ｏｆｆｓｅｔ＋ｄＴ＿ｐｒｅｖ−ｄＴ
とし、第二の閾値をｄＴ＿ｏｆｆｓｅｔ＿ｔｈとして、
｜ｄＴ＿ｏｆｆｓｅｔ｜＞ｄＴ＿ｏｆｆｓｅｔ＿ｔｈ
の場合に、現在の時刻差ｄＴを
ｄＴ＝（Ｔ１−Ｔ２−Ｔ３＋Ｔ４）／２＋ｄＴ＿ｏｆｆｓｅｔ
とオフセットさせる
請求項１から３のいずれか１項に記載のクライアント装置。
【請求項１２】
時刻差ｄＴによって位相を制御可能な数値制御発振器と周波数可変発振器とを備え、
前記数値制御発振器の出力と前記周波数可変発振器の出力との位相差を検出し、当該位相差が一定値になるように前記周波数可変発振器の周波数を制御する手段を備えた
請求項１から１１のいずれか１項に記載のクライアント装置。
【請求項１３】
基準時刻を発生する同期サーバと、請求項１から１２のいずれか１項に記載のクライアント装置とを備えた同期システム。
【請求項１４】
汎用の情報処理装置にインストールすることにより、その汎用の情報処理装置に、請求項１から１２のいずれか１項に記載のクライアント装置に相応する機能を実現させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、基準時刻を発生するサーバに対し、周波数または時刻を同期するクライアント装置に関する。以下の説明では、基準時刻を発生するサーバを同期サーバと呼び、この同期サーバに周波数または時刻を同期するクライアント装置を同期クライアントと呼ぶことにする。
【背景技術】
【０００２】
パケット網における同期方式として標準的に用いられているＮＴＰ(Network
Time Protocol：非特許文献１参照)やＳＮＴＰ(Simple Network Time Protocol：非特許文献２参照)の基本原理を図１に示す。
【０００３】
同期クライアントは送信時刻Ｔ１を書き込んだ同期要求パケットを同期サーバに送信する。同期サーバは同期要求パケットを受信し、同期応答パケットを同期クライアントに送信する。同期応答パケットには送信時刻Ｔ１の他に、同期要求パケットを受信した時刻Ｔ２と同期応答パケットを送信した時刻Ｔ３とが書き込まれている。
【０００４】
同期クライアントが同期応答パケットを受信した時刻をＴ４とする。ここで、Ｔ１およびＴ４はクライアント時刻発生部で測った時刻、Ｔ２とＴ３はサーバ時刻発生部で測った時刻である。同期クライアントと同期サーバとの間でパケットが往復するのに要した実効的な往復遅延時間ＲＴＴ(Round Trip Time)は
ＲＴＴ＝（Ｔ４−Ｔ１）−（Ｔ３−Ｔ２）＝Ｔ４−Ｔ３＋Ｔ２−Ｔ１
で与えられる。また、同期要求パケットの遅延時間をＤ１、同期応答パケットの遅延時間をＤ２とすると、
Ｄ１＋Ｄ２＝ＲＴＴ
となる。同期要求パケットの遅延時間と同期応答パケットの遅延時間とが等しいと仮定すると、
Ｄ１＝Ｄ２＝ＲＴＴ／２
となる。この場合には、クライアント時刻発生部とサーバ時刻発生部との誤差は、
ｄＴ＝Ｔ４−（Ｔ３＋Ｄ２）＝（Ｔ１−Ｔ２−Ｔ３＋Ｔ４）／２
と推定できる。ｄＴの値が０になるようにクライアント時刻発生部を制御することにより、時刻同期が確立できる。
【０００５】
【非特許文献１】Ｄ．Ｗ．Ｍｉｌｌｓ：“Ｎｅｔｗｏｒｋ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ（Ｖｅｒｓｉｏｎ３）Ｓｐｅｃｉｆｉｃａｔｉｏｎ，Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ  ａｎｄ  Ａｎａｌｙｓｉｓ”，ＲＦＣ１３０５，ＩＥＴＦ．
【非特許文献２】Ｄ．Ｍｉｌｌｓ：“Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ（ＳＮＴＰ）Ｖｅｒｓｉｏｎ４  ｆｏｒ  ＩＰｖ４，ＩＰｖ６  ａｎｄ  ＯＳＩ”，ＲＦＣ２０３０，ＩＥＴＦ．
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ネットワーク内のジッタや経路切替により同期要求パケットの遅延時間と同期応答パケットの遅延時間がそれぞれΔＤ１、ΔＤ２だけ変化すると、クライアント時刻発生部とサーバ時刻発生部との時間差は
ｄＴ＝（Ｔ１−Ｔ２−Ｔ３＋Ｔ４）／２＋（ΔＤ２−ΔＤ１）／２
すなわち、（ΔＤ２−ΔＤ１）／２だけ変化が生じたように見える。これをそのまま用いてクライアント時刻発生部を制御すると、クライアント時刻発生部もその影響を受けて揺らいでしまう。
【０００７】
本発明は、このような背景の下に行われたものであって、上記パケット伝搬遅延時間が変化したときの影響を取り除くことができる同期クライアントおよび同期システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明では、上記課題を解決するために、ＲＴＴに対するフィルタリングを行い、遅延時間の平均値から大きく外れるパケットを除去し、遅延時間の平均値の近傍のデータだけを用いてクライアント時刻発生部の制御を行う。
【０００９】
あるいは、ＲＴＴに対するフィルタリングを行い、前回のＲＴＴから推定される誤差範囲に収まるデータだけを用いてクライアント時刻発生部の制御を行う。
【００１０】
あるいは、ＲＴＴまたは片側遅延時間が急激に変化した場合は経路切替が発生したとみなして、ホールドオーバ動作に遷移する。すなわち、伝搬遅延時間の平均値の近傍のデータだけを用いてクライアント時刻発生部の制御を行うことにより、クライアント時刻発生部の揺らぎを小さくすることができる。
【００１１】
あるいは、前回のＲＴＴから推定される誤差範囲に収まるデータだけを用いてクライアント時刻発生部の制御を行うことにより、クライアント時刻発生部の揺らぎを小さくすることができる。
【００１２】
あるいは、ＲＴＴが急激に変化した場合は経路切替が発生したとみなしてホールドオーバ動作に遷移することにより、経路切替によるクライアント時刻発生部の出力信号の急激な位相および周波数変動を防ぐことができる。
【００１３】
あるいは、ＲＴＴまたは片側遅延時間が急激に変化した場合は経路切替が発生したとみなし、そのときのｄＴの変化分（前述した（ΔＤ２−ΔＤ１）／２に相当する量）をキャンセルするようにｄＴに対するオフセット値を与えることにより、経路切替によるクライアント時刻発生部の出力信号の急激な位相および周波数変動を防ぐことができる。
【００１４】
すなわち、本発明は、基準時刻を発生する同期サーバに対して同期要求信号を送信する手段と、同期サーバからの当該同期要求信号に応答する同期応答信号を受信する手段と、受信した当該同期応答信号に基づき基準時刻に同期した周波数または時刻を発生する手段（上記クライアント時刻発生部に相当する）とを備えた同期クライアントである。
【００１５】
ここで、本発明の特徴とするところは、自同期クライアントが同期サーバに対して同期要求信号を送信した時刻をＴ１とし、同期サーバが当該同期要求信号を受信した時刻をＴ２とし、同期サーバが当該同期要求信号に応答する同期応答信号を送信した時刻をＴ３とし、自同期クライアントが当該同期応答信号を受信した時刻をＴ４としたときに、基準時刻を参照して自同期クライアント内の周波数または時刻を設定する際に適用する時刻差ｄＴは
ｄＴ＝（Ｔ１−Ｔ２−Ｔ３＋Ｔ４）／２
であり、自同期クライアントと同期サーバとの間で同期要求信号を往路信号とし同期応答信号を復路信号とするときの往復遅延時間ＲＴＴを
ＲＴＴ＝Ｔ４−Ｔ３＋Ｔ２−Ｔ１
としたときに、当該ＲＴＴの値が所定の値となる場合の時刻差ｄＴに限定して時刻差ｄＴを自同期クライアント内の周波数または時刻の設定に適用する手段（上記クライアント時刻発生部の有する手段）を備え、所定の値は、同期応答信号を受信する以前のＲＴＴの平均値ＲＴＴ＿ｍｅａｎを算出し、予め設定したジッタ許容値をδとしたときに、
ＲＴＴ＿ｌｉｍ１＝ＲＴＴ＿ｍｅａｎ＋δ
ＲＴＴ＿ｌｉｍ２＝ＲＴＴ＿ｍｅａｎ−δ
ＲＴＴ＿ｌｉｍ２＜ＲＴＴ＜ＲＴＴ＿ｌｉｍ１
を満たすＲＴＴの値であるところにある。
【００１６】
あるいは、所定の値は、同期応答信号を受信する直前にＲＴＴが所定の値となった同期応答信号のＲＴＴをＲＴＴ＿ｐｒｅｖとし、予め設定した許容規格化周波数差をｙとし、同期応答信号を受信する直前の時刻差ｄＴの適用時刻からの経過時間をＴとして、
ＲＴＴ＿ｌｉｍ＝ＲＴＴ＿ｐｒｅｖ＋ｙ×Ｔ
ＲＴＴ＜ＲＴＴ＿ｌｉｍ
を満たすＲＴＴの値である。
【００１７】
あるいは、所定の値は、同期応答信号を受信する直前にＲＴＴが所定の値となった同期応答信号のＲＴＴをＲＴＴ＿ｐｒｅｖとし、予め設定した許容規格化周波数差をｙ１およびｙ２とし、同期応答信号を受信する直前の時刻差ｄＴの適用時刻からの経過時間をＴとして、
ＲＴＴ＿ｌｉｍ１＝ＲＴＴ＿ｐｒｅｖ＋ｙ１×Ｔ
ＲＴＴ＿ｌｉｍ２＝ＲＴＴ＿ｐｒｅｖ−ｙ２×Ｔ
ＲＴＴ＿ｌｉｍ２＜ＲＴＴ＜ＲＴＴ＿ｌｉｍ１
を満たすＲＴＴの値である。
【００１８】
あるいは、所定の値は、同期応答信号を受信する直前にＲＴＴが所定の値となった同期応答信号のＲＴＴをＲＴＴ＿ｐｒｅｖとし、予め設定した許容規格化周波数差をｙ１およびｙ２とし、予め設定した定数をγ（０＜γ＜１）とし、同期応答信号を受信する直前の時刻差ｄＴの適用時刻からの経過時間をＴとして、
ＲＴＴ＿ｌｉｍ１＝ＲＴＴ＿ｐｒｅｖ＋ｙ１×Ｔ
ＲＴＴ＿ｌｉｍ２＝ＲＴＴ＿ｐｒｅｖ×（１−γ）−ｙ２×Ｔ
ＲＴＴ＿ｌｉｍ２＜ＲＴＴ＜ＲＴＴ＿ｌｉｍ１
を満たすＲＴＴの値である。
【００１９】
また、本発明を同期システムとしての観点から観ることもできる。すなわち、本発明は、基準時刻を発生する同期サーバと、本発明の同期クライアントとを備えた同期システムである。
【００２０】
また、本発明をプログラムとしての観点から観ることもできる。すなわち、本発明は、汎用の情報処理装置にインストールすることにより、その汎用の情報処理装置に、本発明の同期クライアントの少なくとも一部の機能に相応する機能を実現させるプログラムである。
【００２１】
本発明のプログラムは記録媒体に記録されることにより、前記汎用の情報処理装置は、この記録媒体を用いて本発明のプログラムをインストールすることができる。あるいは、本発明のプログラムを保持するサーバからネットワークを介して直接前記汎用の情報処理装置に本発明のプログラムをインストールすることもできる。
【００２２】
これにより、汎用の情報処理装置を用いて、本発明の同期クライアントの少なくとも一部の機能に相応する機能を実現することができる。
【００２３】
なお、本発明のプログラムは、汎用の情報処理装置によって直接実行可能なものだけでなく、ハードディスクなどにインストールすることによって実行可能となるものも含む。また、圧縮されたり、暗号化されたりしたものも含む。
【発明の効果】
【００２４】
本発明によれば、伝送遅延揺らぎや経路切替のあるネットワーク環境でも安定した周波数・時刻同期を実現できる。
【発明を実施するための最良の形態】
【００２５】
（第一実施例）
本発明における同期クライアントを用いた周波数・時刻同期システムの構成を図２に示す。同期クライアント１０は、同期要求パケット送信部２から送信時刻Ｔ１を書き込んだ同期要求パケットを同期サーバ２０に送信する。
【００２６】
同期サーバ２０は、同期要求パケット受信部１３で同期要求パケットを受信し、同期応答パケット送信部１２から同期応答パケットを同期クライアント１０に送信する。
【００２７】
同期応答パケットには前記のＴ１の他、同期要求パケット受信部１３が同期要求パケットを受信した時刻Ｔ２と同期応答パケット送信部１２が同期応答パケットを送信した時刻Ｔ３とが書き込まれている。
【００２８】
同期クライアント１０が同期応答パケット受信部３で同期応答パケットを受信した時刻をＴ４とする。ここで、Ｔ１およびＴ４はクライアント時刻発生部１で発生させた時刻であり、Ｔ２およびＴ３はサーバ時刻発生部１１で発生させた時刻である。
【００２９】
クライアント時刻制御部４はＴ１、Ｔ２、Ｔ３、Ｔ４に基づき、以前の往復遅延時間の平均値ＲＴＴ＿ｍｅａｎを算出し、予め設定したジッタ許容値をδとして、
ＲＴＴｌｉｍ１＝ＲＴＴｍｅａｎ＋δ
ＲＴＴｌｉｍ２＝ＲＴＴｍｅａｎ−δ
ＲＴＴｌｉｍ２＜ＲＴＴ＜ＲＴＴｌｉｍ１
の条件を満足する同期応答信号の時刻差ｄＴだけを透過させ、この時刻差ｄＴに限定して同期クライアントの周波数または時刻の設定に適用するためのＲＴＴフィルタリング処理を行う。
【００３０】
以上のアルゴリズムを詳述すると、以下のようになる。
Ｓ１  ＲＴＴ＿ｍｅａｎ＝｛ＲＴＴ［ｉ−１］＋ＲＴＴ［ｉ−２］＋…＋ＲＴＴ［ｉ−Ｍ］｝／Ｍ
Ｓ２  ＲＴＴ＿ｌｉｍ１＝ＲＴＴ＿ｍｅａｎ＋δ
ＲＴＴ＿ｌｉｍ２＝ＲＴＴ＿ｍｅａｎ−δ
Ｓ３  ＲＴＴ［ｉ］＝Ｔ４［ｉ］−Ｔ３［ｉ］＋Ｔ２［ｉ］−Ｔ１［ｉ］
Ｓ４  ｉｆ（ＲＴＴ＿ｍｅａｎ−δ＜ＲＴＴ［ｉ］＜ＲＴＴ＿ｍｅａｎ＋δ）ｔｈｅｎ  Ｓ５  ｅｌｓｅ  Ｓ８
Ｓ５  ｄＴ［ｉ］＝（Ｔ１［ｉ］−Ｔ２［ｉ］−Ｔ３［ｉ］＋Ｔ４［ｉ］）／２
Ｓ６  ｉ＋＋
Ｓ７  →Ｓ１
Ｓ８  ｉ＋＋
Ｓ９  →Ｓ３
δとしては、例えばジッタの標準偏差の１／１０といった値を用いる。
【００３１】
以上のＲＴＴフィルタリングの動作の様子を図３に示す。なお、図３から図１３における黒丸はＲＴＴフィルタを透過（制御に使う）したＲＴＴを示し、白丸はＲＴＴフィルタを非透過（制御に使わない）のＲＴＴを示す。
【００３２】
クライアント時刻制御部４はｄＴの値が目標値に近づくようにクライアント時刻発生部１の位相および周波数を制御する。
【００３３】
なお、ｄＴの目標値としては０（時刻同期の場合）も有り得るし、０以外の値（周波数同期の場合）も有り得る。これは、以下の実施例においても同様である。
【００３４】
（第二実施例）
第二実施例における同期クライアントを用いた周波数および時刻同期システムの構成は第一実施例と同様である。
【００３５】
クライアント時刻制御部４はＴ１、Ｔ２、Ｔ３、Ｔ４に基づき、直前に透過させた同期応答信号の往復遅延時間をＲＴＴ＿ｐｒｅｖ、予め設定した許容規格化周波数差をｙ、直前に同期応答信号の時間差ｄＴを透過させた時刻からの経過時間をＴとして、
ＲＴＴ＿ｌｉｍ＝ＲＴＴ＿ｐｒｅｖ＋ｙ×Ｔ
ＲＴＴ＜ＲＴＴ＿ｌｉｍ
の条件を満足する同期応答信号の時刻差ｄＴだけを透過させるＲＴＴフィルタリング処理を行う。発振器の周波数分解能は０ではないので、瞬時的には常に周波数誤差が存在する。従って、その周波数誤差（規格化周波数誤差）×経過時間分の位相誤差も発生する。このように推定される位相誤差よりもジッタが小さければ、そのデータは有効と判定することを意味する。
【００３６】
以上のアルゴリズムを詳述すると、以下のようになる。
Ｓ１１  ＲＴＴ＿ｐｒｅｖ＝ＲＴＴ［ｉ−１］
Ｓ１２  Ｔ４＿ｐｒｅｖ＝Ｔ４［ｉ−１］
Ｓ１３  ＲＴＴ［ｉ］＝Ｔ４［ｉ］−Ｔ３［ｉ］＋Ｔ２［ｉ］−Ｔ１［ｉ］
Ｓ１４  ＲＴＴ＿ｌｉｍ＝ＲＴＴ＿ｐｒｅｖ＋ｙ×（Ｔ４［ｉ］−Ｔ４＿ｐｒｅｖ）
Ｓ１５  ｉｆ（ＲＴＴ［ｉ］＜ＲＴＴ＿ｌｉｍ）ｔｈｅｎ  Ｓ１６  ｅｌｓｅ  Ｓ１９
Ｓ１６  ｄＴ［ｉ］＝（Ｔ１［ｉ］−Ｔ２［ｉ］−Ｔ３［ｉ］＋Ｔ４［ｉ］）／２
Ｓ１７  ｉ＋＋
Ｓ１８  →Ｓ１１
Ｓ１９  ｉ＋＋
Ｓ２０  →Ｓ１３
ｙとしては、例えばクライアント時刻発生部で使用している発振器の規格化周波数分解能（周波数分解能を公称周波数で規格化した値）といった値を用いる。
【００３７】
以上のＲＴＴフィルタリングの動作の様子を図４に示す。
【００３８】
（第三実施例）
第三実施例における同期クライアントを用いた周波数および時刻同期システムの構成は第一実施例と同様である。
【００３９】
クライアント時刻制御部４はＴ１、Ｔ２、Ｔ３、Ｔ４に基づき、直前に透過させた同期応答信号の往復遅延時間をＲＴＴ＿ｐｒｅｖ、予め設定した許容規格化周波数差をｙ１およびｙ２、直前に同期応答信号の時間差ｄＴを透過させた時刻からの経過時間をＴとして、
ＲＴＴ＿ｌｉｍ１＝ＲＴＴ＿ｐｒｅｖ＋ｙ１×Ｔ
ＲＴＴ＿ｌｉｍ２＝ＲＴＴ＿ｐｒｅｖ−ｙ２×Ｔ
ＲＴＴ＿ｌｉｍ２＜ＲＴＴ＜ＲＴＴ＿ｌｉｍ１
の条件を満足する同期応答信号の時刻差ｄＴだけを透過させるＲＴＴフィルタリング処理を行う。発振器の周波数分解能は０ではないので、瞬時的には常に周波数誤差が存在する。従って、その周波数誤差（規格化周波数誤差）×経過時間分の位相誤差も発生する。
【００４０】
このように推定される位相誤差よりもジッタが小さければ、そのデータは有効と判定することを意味する。
【００４１】
以上のアルゴリズムを詳述すると、以下のようになる。
Ｓ２１  ＲＴＴ＿ｐｒｅｖ＝ＲＴＴ［ｉ−１］
Ｓ２２  Ｔ４＿ｐｒｅｖ＝Ｔ４［ｉ−１］
Ｓ２３  ＲＴＴ［ｉ］＝Ｔ４［ｉ］−Ｔ３［ｉ］＋Ｔ２［ｉ］−Ｔ１［ｉ］
Ｓ２４  ＲＴＴ＿ｌｉｍ１＝ＲＴＴ＿ｐｒｅｖ＋ｙ１×（Ｔ４［ｉ］−Ｔ４＿ｐ    ｒｅｖ）
ＲＴＴ＿ｌｉｍ２＝ＲＴＴ＿ｐｒｅｖ−ｙ２×（Ｔ４［ｉ］−Ｔ４＿ｐｒｅｖ）
Ｓ２５  ｉｆ（ＲＴＴ＿ｌｉｍ２＜ＲＴＴ［ｉ］＜ＲＴＴ＿ｌｉｍ１）ｔｈｅｎ  Ｓ２６  ｅｌｓｅ  Ｓ２９
Ｓ２６  ｄＴ［ｉ］＝（Ｔ１［ｉ］−Ｔ２［ｉ］−Ｔ３［ｉ］＋Ｔ４［ｉ］）／２
Ｓ２７  ｉ＋＋
Ｓ２８  →Ｓ２１
Ｓ２９  ｉ＋＋
Ｓ３０  →Ｓ２３
ｙ１およびｙ２としては、例えばクライアント時刻発生部で使用している発振器の規格化周波数分解能（周波数分解能を公称周波数で規格化した値）といった値を用いる。
【００４２】
本実施例では、瞬時的にＲＴＴが小さくなった場合に、その後、長期間ＲＴＴフィルタを透過するｄＴ値が無くなり、動作が不安定になることを防ぐために、極端に小さいＲＴＴのパケットを無視するようにしている。
【００４３】
透過ＲＴＴ値の確率的平衡点は、平衡点よりもＲＴＴが小さい方の平均ウィンドウのＲＴＴの確率密度関数の積分値（面積）と、ＲＴＴが大きい方の平均ウィンドウの面積とが等しいと考えられる。ガウス分布のような単一ピークを持つ確率密度関数の場合には、
ＲＴＴ＿ｌｉｍ１＝ＲＴＴ＿ｐｒｅｖ＋ｙ１×Ｔ
ＲＴＴ＿ｌｉｍ２＝ＲＴＴ＿ｐｒｅｖ−ｙ２×Ｔ
ｙ２＞ｙ１
としてＲＴＴが小さい方のウィンドウが大きくなるようにしておけば、平衡点はピークよりもＲＴＴが小さくなる方向に制御することができる。
【００４４】
以上のＲＴＴフィルタリングの動作の様子を図５に示す。
【００４５】
クライアント時刻制御部４はｄＴの値が目標値に近づくようにクライアント時刻発生部１の位相および周波数を制御する。
【００４６】
（第四実施例）
第四実施例における同期クライアントを用いた周波数および時刻同期システムの構成は第一実施例と同様である。
【００４７】
クライアント時刻制御部４はＴ１、Ｔ２、Ｔ３、Ｔ４に基づき、直前に透過させた同期応答信号の往復遅延時間をＲＴＴ＿ｐｒｅｖ、予め設定した許容規格化周波数差をｙ１およびｙ２、予め設定した定数をγ（０＜γ＜１）、直前に同期応答信号の時刻差ｄＴを透過させた時刻からの経過時間をＴとして、
ＲＴＴ＿ｌｉｍ１＝ＲＴＴ＿ｐｒｅｖ＋ｙ１×Ｔ
ＲＴＴ＿ｌｉｍ２＝ＲＴＴ＿ｐｒｅｖ×（１−γ）−ｙ２×Ｔ
ＲＴＴ＿ｌｉｍ２＜ＲＴＴ＜ＲＴＴ＿ｌｉｍ１
の条件を満足する同期応答信号の時刻差ｄＴだけを透過させるＲＴＴフィルタリング処理を行う。
【００４８】
発振器の周波数分解能は０ではないので、瞬時的には常に周波数誤差が存在する。従って、その周波数誤差（規格化周波数誤差）×経過時間分の位相誤差も発生する。このように推定される位相誤差よりもジッタが小さければ、そのデータは有効と判定することを意味する。
【００４９】
以上のアルゴリズムを詳述すると、以下のようになる。
Ｓ４１  ＲＴＴ＿ｐｒｅｖ＝ＲＴＴ［ｉ−１］
Ｓ４２  Ｔ４＿ｐｒｅｖ＝Ｔ４［ｉ−１］
Ｓ４３  ＲＴＴ［ｉ］＝Ｔ４［ｉ］−Ｔ３［ｉ］＋Ｔ２［ｉ］−Ｔ１［ｉ］
Ｓ４４  ＲＴＴ＿ｌｉｍ１＝ＲＴＴ＿ｐｒｅｖ＋ｙ１×（Ｔ４［ｉ］−Ｔ４＿ｐｒｅｖ）
Ｓ４５  
Ｓ４６  ｄＴ［ｉ］＝（Ｔ１［ｉ］−Ｔ２［ｉ］−Ｔ３［ｉ］＋Ｔ４［ｉ］）／２
Ｓ４７  ｉ＋＋
Ｓ４８  →Ｓ４１
Ｓ４９  ｉ＋＋
Ｓ５０  →Ｓ４３
ｙ１およびｙ２としては、例えばクライアント時刻発生部で使用している発振器の規格化周波数分解能（周波数分解能を公称周波数で規格化した値）といった値を用いる。また、ｙ１とｙ２とが同程度でも、
ＲＴＴ［ｉ］＞ＲＴＴ＿ｐｒｅｖ
となる確率より
ＲＴＴ［ｉ］＜ＲＴＴ＿ｐｒｅｖ
となる確率を大きくし、ＲＴＴが小さくなる方向に制御することができる。
【００５０】
本実施例では、瞬時的にＲＴＴが小さくなった場合には、その後、長期間ＲＴＴフィルタを透過するｄＴ値が無くなり、動作が不安定になることを防ぐために、極端に小さいＲＴＴのパケットを無視するようにしている。透過ＲＴＴ値の確率的平衡点は、平衡点よりもＲＴＴが小さい方の平均ウィンドウのＲＴＴの確率密度関数の積分値（面積）と、ＲＴＴが大きい方の平均ウィンドウの面積とが等しいと考えられる。ガウス分布のような単一ピークを持つ確率密度関数の場合には、
ＲＴＴ＿ｌｉｍ１＝ＲＴＴ＿ｐｒｅｖ＋ｙ１×Ｔ
ＲＴＴ＿ｌｉｍ２＝ＲＴＴ＿ｐｒｅｖ×（１−γ）−ｙ２×Ｔ
（γは１よりも十分小さい正の値）
としてＲＴＴが小さい方のウィンドウが大きくなるようにしておけば、平衡点はピークよりもＲＴＴが小さくなる方向に制御することができる。
【００５１】
以上のＲＴＴフィルタリングの動作の様子を図６に示す。
【００５２】
（第五実施例）
第五実施例における同期クライアントを用いた周波数・時刻同期システムの構成は第一実施例と同じである。
【００５３】
クライアント時刻制御部４はＴ１、Ｔ２、Ｔ３、Ｔ４に基づき、第一〜第四実施例で述べた処理ステップに加えて、直前に透過させた同期応答信号の往復遅延時間をＲＴＴ＿ｐｒｅｖ、閾値をＲＴＴ＿ｔｈとして、
｜ＲＴＴ−ＲＴＴ＿ｐｒｅｖ｜＞ＲＴＴ＿ｔｈ
がＮ回（Ｎは突発的な大きなジッタに対する保護段数）以上継続した場合に、ネットワークの経路切替に伴う往復遅延時間の変化が生じたと判定し、ホールドオーバ動作を行う。また、ホールドオーバ状態に遷移する前の往復遅延時間をＲＴＴ＿ｐｒｅｖ、予め設定した許容規格化周波数差をｙ１およびｙ２、ホールドオーバ状態に遷移した時刻からの経過時間をＴとして、
ＲＴＴ＿ｌｉｍ１＝ＲＴＴ＿ｐｒｅｖ＋ｙ１×Ｔ
ＲＴＴ＿ｌｉｍ２＝ＲＴＴ＿ｐｒｅｖ−ｙ２×Ｔ
ＲＴＴ＿ｌｉｍ２＜ＲＴＴ＜ＲＴＴ＿ｌｉｍ１
の条件を満足したときに、ネットワークの経路が元に戻ったと判定し、ホールドオーバ動作からクライアント時刻制御動作に遷移する。
【００５４】
以上のアルゴリズムを詳述すると、以下のようになる。
Ｓ５１  ＲＴＴ＿ｐｒｅｖ＝ＲＴＴ［ｉ−１］
Ｓ５２  Ｔ４＿ｐｒｅｖ＝Ｔ４［ｉ−１］
Ｓ５３  ＲＴＴ［ｉ］＝Ｔ４［ｉ］−Ｔ３［ｉ］＋Ｔ２［ｉ］−Ｔ［ｉ］
Ｓ５４  ｉｆ（｜ＲＴＴ［ｉ］−ＲＴＴ＿ｐｒｅｖ｜≦ＲＴＴ＿ｔｈ）ｔｈｅｎ  Ｓ５５  ｅｌｓｅ  Ｓ５８
Ｓ５５  ｄＴ［ｉ］＝（Ｔ１［ｉ］−Ｔ２［ｉ］−Ｔ３［ｉ］＋Ｔ４［ｉ］）／２
Ｓ５６  ｉ＋＋
Ｓ５７  →Ｓ１
Ｓ５８  Ｋ＝０
Ｓ５９  ＲＴＴ［ｉ］＝Ｔ４［ｉ］−Ｔ３［ｉ］＋Ｔ２［ｉ］−Ｔ１［ｉ］
Ｓ６０  ｉｆ（｜ＲＴＴ［ｉ］−ＲＴＴ＿ｐｒｅｖ｜≦ＲＴＴ＿ｔｈ）ｔｈｅｎ  Ｓ５５  ｅｌｓｅ  Ｓ６１
Ｓ６１  Ｋ＋＋
Ｓ６２  ｉｆ（Ｋ＜Ｎ）ｔｈｅｎ  Ｓ６３  ｅｌｓｅ  Ｓ６５
Ｓ６３  ｉ＋＋
Ｓ６４  →Ｓ６９
Ｓ６５  ホールドオーバ状態に遷移
Ｓ６６  Ｔ＿ｈｏ＿ｓｔａｒｔ＝Ｔ４［ｉ］
Ｓ６７  ｉ＋＋
Ｓ６８  ＲＴＴ［ｉ］＝Ｔ４［ｉ］−Ｔ３［ｉ］＋Ｔ２［ｉ］−Ｔ１［ｉ］
Ｓ６９  ＲＴＴ＿ｌｉｍ１＝ＲＴＴ＿ｐｒｅｖ＋ｙ１×（Ｔ４［ｉ］−Ｔ＿ｈｏ＿ｓｔａｒｔ）
ＲＴＴ＿ｌｉｍ２＝ＲＴＴ＿ｐｒｅｖ−ｙ２×（Ｔ４［ｉ］−Ｔ＿ｈｏ＿ｓｔａｒｔ）
Ｓ７０  ｉｆ（ＲＴＴ＿ｌｉｍ２＜ＲＴＴ［ｉ］＜ＲＴＴ＿ｌｉｍ１）ｔｈｅｎ  Ｓ５５  ｅｌｓｅ  Ｓ６７
ＲＴＴ＿ｔｈとしては、例えばジッタの標準偏差×３といった値を用いる。なお、Ｓ５１において直前の瞬時値ＲＴＴ［ｉ−１］ではなく、平均値を使うこともできる。
Ｓ５１’  ＲＴＴ＿ｐｒｅｖ＝｛ＲＴＴ［ｉ−Ｍ］＋ＲＴＴ［ｉ−（Ｍ−１）］＋…＋ＲＴＴ［ｉ−１］｝／Ｍ
以上のホールドオーバの動作の様子を図７に示す。
【００５５】
（第六実施例）
第六実施例における同期クライアントを用いた周波数・時刻同期システムの構成は第一実施例と同様である。
【００５６】
クライアント時刻制御部４はＴ１、Ｔ２、Ｔ３、Ｔ４に基づき、第一〜第四実施例で述べた処理ステップに加え、直前に透過させた同期応答信号の往復遅延時間をＲＴＴ＿ｐｒｅｖ、同期サーバと同期クライアントの時刻差をｄＴ＿ｐｒｅｖ、閾値をＲＴＴ＿ｔｈとして、
｜ＲＴＴ−ＲＴＴ＿ｐｒｅｖ｜＞ＲＴＴ＿ｔｈ
がＮ回（Ｎは突発的な大きなジッタに対する保護段数）以上継続した場合に、ネットワークの経路切替に伴う往復遅延時間の変化が生じたと判定し、時刻差ｄＴを
ｄＴ＝（Ｔ１−Ｔ２−Ｔ３＋Ｔ４）／２＋ｄＴ＿ｏｆｆｓｅｔ
とオフセットさせる。ここで、
ｄＴ＿ｏｆｆｓｅｔ＝ｄＴ＿ｏｆｆｓｅｔ＋ｄＴ＿ｐｒｅｖ−ｄＴ
である。
【００５７】
以上のアルゴリズムを詳述すると、以下のようになる。
Ｓ８１  ｄＴ＿ｏｆｆｓｅｔ＝０
Ｓ８２  ＲＴＴ＿ｐｒｅｖ＝ＲＴＴ［ｉ−１］
Ｓ８３  ｄＴ＿ｐｒｅｖ＝ｄＴ［ｉ−１］
Ｓ８４  ＲＴＴ［ｉ］＝Ｔ４［ｉ］−Ｔ３［ｉ］＋Ｔ２［ｉ］−Ｔ１［ｉ］
Ｓ８５  ｉｆ（｜ＲＴＴ［ｉ］−ＲＴＴ＿ｐｒｅｖ｜≦ＲＴＴ＿ｔｈ）ｔｈｅｎ  Ｓ８６  ｅｌｓｅ  Ｓ８９
Ｓ８６  ｄＴ［ｉ］＝（Ｔ１［ｉ］−Ｔ２［ｉ］−Ｔ３［ｉ］＋Ｔ４［ｉ］）／２＋ｄＴ＿ｏｆｆｓｅｔ
Ｓ８７  ｉ＋＋
Ｓ８８  →Ｓ８２
Ｓ８９  Ｋ＝０
Ｓ９０  ＲＴＴ［ｉ］＝Ｔ４［ｉ］−Ｔ３［ｉ］＋Ｔ２［ｉ］−Ｔ１［ｉ］
Ｓ９１  ｉｆ（｜ＲＴＴ［ｉ］−ＲＴＴ＿ｐｒｅｖ｜≦ＲＴＴ＿ｔｈ）ｔｈｅｎ  Ｓ８６  ｅｌｓｅ  Ｓ９２
Ｓ９２  Ｋ＋＋
Ｓ９３  ｉｆ（Ｋ＜Ｎ）ｔｈｅｎ  Ｓ９４  ｅｌｓｅ  Ｓ９６
Ｓ９４  ｉ＋＋
Ｓ９５  →Ｓ９０
Ｓ９６  ｄＴ＿ｏｆｆｓｅｔ＝ｄＴ＿ｏｆｆｓｅｔ＋ｄＴ＿ｐｒｅｖ−ｄＴ［ｉ］
Ｓ９７    →Ｓ８６
ＲＴＴ＿ｔｈとしては、例えばジッタの標準偏差×３といった値を用いる。なお、Ｓ８２およびＳ８３において直前の瞬時値ＲＴＴ［ｉ−１］およびｄＴ［ｉ−１］ではなく、平均値を使うこともできる。
Ｓ８２’  ＲＴＴ＿ｐｒｅｖ＝｛ＲＴＴ［ｉ−Ｍ］＋ＲＴＴ［ｉ−（Ｍ−１）］＋…＋ＲＴＴ［ｉ−１］｝／Ｍ
Ｓ８３’  ｄＴ＿ｐｒｅｖ＝｛ｄＴ［ｉ−Ｍ］＋ｄＴ［ｉ−（Ｍ−１）］＋…＋ｄＴ［ｉ−１］｝／Ｍ
以上のオフセット制御の動作の様子を図８に示す。なお、図８から図１３におけるハッチングを施した丸はオフセット補正前のＲＴＴであることを示す。
【００５８】
（第七実施例）
第七実施例における同期クライアントを用いた周波数・時刻同期システムの構成は第一実施例と同様である。
【００５９】
クライアント時刻制御部４はＴ１、Ｔ２、Ｔ３、Ｔ４に基づき、第一〜第四実施例で述べた処理ステップに加えて、第一〜第四実施例で述べた処理ステップに加えて、直前に透過させた同期応答信号の往復遅延時間をＲＴＴ＿ｐｒｅｖ、同期サーバと同期クライアントとの時刻差をｄＴ＿ｐｒｅｖ、閾値をＲＴＴ＿ｔｈとして、
｜ＲＴＴ−ＲＴＴ＿ｐｒｅｖ｜＞ＲＴＴ＿ｔｈ
がＮ回（Ｎは突発的な大きなジッタに対する保護段数）以上継続した場合に、ネットワークの経路切替に伴う往復遅延時間の変化が生じたと判定し、時刻差ｄＴを
ｄＴ＝（Ｔ１−Ｔ２−Ｔ３＋Ｔ４）／２＋ｍａｘ｛ｍｉｎ（ｄＴ＿ｏｆｆｓｅｔ，ｄＴ＿ｏｆｆｓｅｔ＿ｍａｘ），ｄＴ＿ｏｆｆｓｅｔ＿ｍｉｎ｝
とオフセットさせる。ここで、
ｄＴ＿ｏｆｆｓｅｔ＝ｄＴ＿ｏｆｆｓｅｔ＋ｄＴ＿ｐｒｅｖ−ｄＴ
である。
【００６０】
以上のアルゴリズムを詳述すると、以下のようになる。
Ｓ１０１  ｄＴ＿ｏｆｆｓｅｔ＝０
Ｓ１０２  ＲＴＴ＿ｐｒｅｖ＝ＲＴＴ［ｉ−１］
Ｓ１０３  ｄＴ＿ｐｒｅｖ＝ｄＴ［ｉ−１］
Ｓ１０４  ＲＴＴ［ｉ］＝Ｔ４［ｉ］−Ｔ３［ｉ］＋Ｔ２［ｉ］−Ｔ１［ｉ］
Ｓ１０５  ｉｆ（｜ＲＴＴ［ｉ］−ＲＴＴ＿ｐｒｅｖ｜≦ＲＴＴ＿ｔｈ）ｔｈｅｎ  Ｓ１０６  ｅｌｓｅ  Ｓ１０９
Ｓ１０６  ｄＴ［ｉ］＝（Ｔ１［ｉ］−Ｔ２［ｉ］−Ｔ３［ｉ］＋Ｔ４［ｉ］）／２＋ｍａｘ｛ｍｉｎ（ｄＴ＿ｏｆｆｓｅｔ，ｄＴ＿ｏｆｆｓｅｔ＿ｍａｘ），ｄＴ＿ｏｆｆｓｅｔ＿ｍｉｎ｝
Ｓ１０７  ｉ＋＋
Ｓ１０８  →Ｓ１０２
Ｓ１０９  Ｋ＝０
Ｓ１１０  ＲＴＴ［ｉ］＝Ｔ４［ｉ］−Ｔ３［ｉ］＋Ｔ２［ｉ］−Ｔ１［ｉ］
Ｓ１１１  ｉｆ（｜ＲＴＴ［ｉ］−ＲＴＴ＿ｐｒｅｖ｜≦ＲＴＴ＿ｔｈ）ｔｈｅｎ  Ｓ１０６  ｅｌｓｅ  Ｓ１１２
Ｓ１１２  Ｋ＋＋
Ｓ１１３  ｉｆ（Ｋ＜Ｎ）ｔｈｅｎ  Ｓ１１４  ｅｌｓｅ  Ｓ１１６
Ｓ１１４  ｉ＋＋
Ｓ１１５  →Ｓ１１０
Ｓ１１６  ｄＴ＿ｏｆｆｓｅｔ＝ｄＴ＿ｏｆｆｓｅｔ＋ｄＴ＿ｐｒｅｖ−ｄＴ［ｉ］
Ｓ１１７  →Ｓ１０６
ＲＴＴ＿ｔｈとしては、例えばジッタの標準偏差×３といった値を用いる。
【００６１】
ｄＴ＿ｏｆｆｓｅｔ＿ｍａｘとしては、想定される最大の経路切替に伴う遅延時間差、ｄＴ＿ｏｆｆｓｅｔ＿ｍｉｎ＝ｄＴ＿ｏｆｆｓｅｔ＿ｍａｘといった値を用いることにより、誤った経路切替検出によってオフセット値が過大になることを防止できる。
【００６２】
なお、Ｓ１０２およびＳ１０３において直前の瞬時値ＲＴＴ［ｉ−１］およびｄＴ［ｉ−１］ではなく、平均値を使うこともできる。
Ｓ１０２’  ＲＴＴ＿ｐｒｅｖ＝｛ＲＴＴ［ｉ−Ｍ］＋ＲＴＴ［ｉ−（Ｍ−１）］＋…＋ＲＴＴ［ｉ−１］｝／Ｍ
Ｓ１０３’  ｄＴ＿ｐｒｅｖ＝｛ｄＴ［ｉ−Ｍ］＋ｄＴ［ｉ−（Ｍ−１）］＋…＋ｄＴ［ｉ−１］｝／Ｍ
以上のオフセット制御の動作の様子を図９に示す。
【００６３】
（第八実施例）
第八実施例における同期クライアントを用いた周波数・時刻同期システムの構成は第一実施例と同様である。
【００６４】
クライアント時刻制御部４はＴ１、Ｔ２、Ｔ３、Ｔ４に基づき、第一〜第四実施例で述べた処理ステップに加えて、直前に透過させた同期応答信号の往復遅延時間をＲＴＴ＿ｐｒｅｖ、同期サーバと同期クライアントとの時刻差をｄＴ＿ｐｒｅｖ、閾値をＲＴＴ＿ｔｈとして、
｜ＲＴＴ−ＲＴＴ＿ｐｒｅｖ｜＞ＲＴＴ＿ｔｈ
がＮ回（Ｎは突発的な大きなジッタに対する保護段数）以上継続した場合に、ネットワークの経路切替に伴う往復遅延時間の変化が生じたと判定し、閾値をｄＴ＿ｏｆｆｓｅｔ＿ｔｈとして、
｜ｄＴ＿ｏｆｆｓｅｔ｜＞ｄＴ＿ｏｆｆｓｅｔ＿ｔｈ
の場合に、当該時刻差ｄＴを
ｄＴ＝（Ｔ１−Ｔ２−Ｔ３＋Ｔ４）／２＋ｄＴ＿ｏｆｆｓｅｔ
とオフセットさせる。ここで、
ｄＴ＿ｏｆｆｓｅｔ＝ｄＴ＿ｏｆｆｓｅｔ＋ｄＴ＿ｐｒｅｖ−ｄＴ
である。
【００６５】
以上のアルゴリズムを詳述すると、以下のようになる。
Ｓ１２１  ｄＴ＿ｏｆｆｓｅｔ＝０
Ｓ１２２  ＲＴＴ＿ｐｒｅｖ＝ＲＴＴ［ｉ−１］
Ｓ１２３  ｄＴ＿ｐｒｅｖ＝ｄＴ［ｉ−１］
Ｓ１２４  ＲＴＴ［ｉ］＝Ｔ４［ｉ］−Ｔ３［ｉ］＋Ｔ２［ｉ］−Ｔ１［ｉ］
Ｓ１２５  ｉｆ（｜ＲＴＴ［ｉ］−ＲＴＴ＿ｐｒｅｖ｜≦ＲＴＴ＿ｔｈ）ｔｈｅｎ  Ｓ１２６  ｅｌｓｅ  Ｓ１３２
Ｓ１２６  ｉｆ（｜ｄＴ＿ｏｆｆｓｅｔ｜＜ｄＴ＿ｏｆｆｓｅｔ＿ｔｈ）ｔｈｅｎ  Ｓ１２７  ｅｌｓｅ  Ｓ１２９
Ｓ１２７  ｄＴ［ｉ］＝（Ｔ１［ｉ］−Ｔ２［ｉ］−Ｔ３［ｉ］＋Ｔ４［ｉ］）／２
Ｓ１２８  →Ｓ１３０
Ｓ１２９  ｄＴ［ｉ］＝（Ｔ１［ｉ］−Ｔ２［ｉ］−Ｔ３［ｉ］＋Ｔ４［ｉ］）／２＋ｄＴ＿ｏｆｆｓｅｔ
Ｓ１３０  ｉ＋＋
Ｓ１３１  →Ｓ１２２
Ｓ１３２  Ｋ＝０
Ｓ１３３  ＲＴＴ［ｉ］＝Ｔ４［ｉ］−Ｔ３［ｉ］＋Ｔ２［ｉ］−Ｔ１［ｉ］
Ｓ１３４  ｉｆ（｜ＲＴＴ［ｉ］−ＲＴＴ＿ｐｒｅｖ｜≦ＲＴＴ＿ｔｈ）ｔｈｅｎ  Ｓ１２６  ｅｌｓｅ  Ｓ１３５
Ｓ１３５  Ｋ＋＋
Ｓ１３６  ｉｆ（Ｋ＜Ｎ）ｔｈｅｎ  Ｓ１３７  ｅｌｓｅ  Ｓ１３９
Ｓ１３７  ｉ＋＋
Ｓ１３８  →Ｓ１３０
Ｓ１３９  ｄＴ＿ｏｆｆｓｅｔ＝ｄＴ＿ｏｆｆｓｅｔ＋ｄＴ＿ｐｒｅｖ−ｄＴ［ｉ］
Ｓ１４０  →Ｓ１２６
ＲＴＴ＿ｔｈとしては、例えばジッタの標準偏差×３といった値を用いる。
【００６６】
ｄＴ＿ｏｆｆｓｅｔ＿ｔｈとしては、例えばジッタの標準偏差程度の値を用いる。
【００６７】
なお、Ｓ１２２およびＳ１２３において直前の瞬時値ＲＴＴ［ｉ−１］およびｄＴ［ｉ−１］ではなく、平均値を使うこともできる。
Ｓ１２２’  ＲＴＴ＿ｐｒｅｖ＝｛ＲＴＴ［ｉ−Ｍ］＋ＲＴＴ［ｉ−（Ｍ−１）］＋…＋ＲＴＴ［ｉ−１］｝／Ｍ
Ｓ１２３’  ｄＴ＿ｐｒｅｖ＝｛ｄＴ［ｉ−Ｍ］＋ｄＴ［ｉ−（Ｍ−１）］＋…＋ｄＴ［ｉ−１］｝／Ｍ
以上のオフセット制御の動作の様子を図１０に示す。
【００６８】
（第九実施例）
第九実施例における同期クライアントを用いた周波数・時刻同期システムの構成は第一実施例と同様である。
【００６９】
クライアント時刻制御部４はＴ１、Ｔ２、Ｔ３、Ｔ４に基づき、第一〜第四実施例で述べた処理ステップに加えて、直前に透過させた同期応答信号に対する片側遅延時間をΔＴｑ＿ｐｒｅｖおよびΔＴｒ＿ｐｒｅｖ、そのときの同期サーバと同期クライアントとの時刻差をｄＴ＿ｐｒｅｖ、閾値をΔＴ＿ｔｈとして、
｜ΔＴｑ−ΔＴｑ＿ｐｒｅｖ｜＞ΔＴ＿ｔｈ
または
｜ΔＴｒ−ΔＴｒ＿ｐｒｅｖ｜＞ΔＴ＿ｔｈ
がＮ回（Ｎは突発的な大きなジッタに対する保護段数）以上継続した場合に、ネットワークの経路切替に伴う片側遅延時間の変化が生じたと判定して、時刻差ｄＴを
ｄＴ＝（Ｔ１−Ｔ２−Ｔ３＋Ｔ４）／２＋ｄＴ＿ｏｆｆｓｅｔ
とオフセットさせる。ここで、
ｄＴ＿ｏｆｆｓｅｔ＝ｄＴ＿ｏｆｆｓｅｔ＋ｄＴ＿ｐｒｅｖ−ｄＴ
である。
【００７０】
以上のアルゴリズムを詳述すると、以下のようになる。
Ｓ１５１  ｄＴ＿ｏｆｆｓｅｔ＝０
Ｓ１５２  ΔＴｑ＿ｐｒｅｖ＝ΔＴｑ［ｉ−１］
ΔＴｒ＿ｐｒｅｖ＝ΔＴｒ［ｉ−１］
Ｓ１５３  ｄＴ＿ｐｒｅｖ＝ｄＴ［ｉ−１］
Ｓ１５４  ΔＴｑ［ｉ］＝Ｔ２［ｉ］−Ｔ１［ｉ］
ΔＴｒ［ｉ］＝Ｔ４［ｉ］−Ｔ３［ｉ］
Ｓ１５５  ｉｆ｛（｜ΔＴｑ［ｉ］−ΔＴｑ＿ｐｒｅｖ｜≦ΔＴ＿ｔｈ）ａｎｄ（｜ΔＴｒ［ｉ］−ΔＴｒ＿ｐｒｅｖ｜≦ΔＴ＿ｔｈ）｝ｔｈｅｎ  Ｓ１５６  ｅｌｓｅ  Ｓ１５９
Ｓ１５６  ｄＴ［ｉ］＝（Ｔ１［ｉ］−Ｔ２［ｉ］−Ｔ３［ｉ］＋Ｔ４［ｉ］）／２＋ｄＴ＿ｏｆｆｓｅｔ
Ｓ１５７  ｉ＋＋
Ｓ１５８  →Ｓ１５２
Ｓ１５９  Ｋ＝０
Ｓ１６０  ΔＴｑ［ｉ］＝Ｔ２［ｉ］−Ｔ１［ｉ］
ΔＴｒ［ｉ］＝Ｔ４［ｉ］−Ｔ３［ｉ］
Ｓ１６１  ｉｆ｛（｜ΔＴｑ［ｉ］−ΔＴｑ＿ｐｒｅｖ｜≦ΔＴ＿ｔｈ）ａｎｄ（｜ΔＴｒ［ｉ］−ΔＴｒ＿ｐｒｅｖ｜≦ΔＴ＿ｔｈ）｝ｔｈｅｎ  Ｓ１５６  ｅｌｓｅ  Ｓ１６２
Ｓ１６２  Ｋ＋＋
Ｓ１６３  ｉｆ（Ｋ＜Ｎ）ｔｈｅｎ  Ｓ１６４  ｅｌｓｅ  Ｓ１６６
Ｓ１６４  ｉ＋＋
Ｓ１６５  →Ｓ１６０
Ｓ１６６  ｄＴ＿ｏｆｆｓｅｔ＝ｄＴ＿ｏｆｆｓｅｔ＋ｄＴ＿ｐｒｅｖ−ｄＴ［ｉ］
Ｓ１６７  →Ｓ１５６
ΔＴ＿ｔｈとしては、例えばジッタの標準偏差×３といった値を用いる。
【００７１】
なお、Ｓ１５２およびＳ１５３において直前の瞬時値ΔＴｑ［ｉ−１］、ΔＴｒ［ｉ−１］およびｄＴ［ｉ−１］ではなく、平均値を使うこともできる。
Ｓ１５２’  ΔＴｑ＿ｐｒｅｖ＝｛ΔＴｑ［ｉ−Ｍ］＋ΔＴｑ［ｉ−（Ｍ−１）］＋…＋ΔＴｑ［ｉ−１］｝／Ｍ
ΔＴｒ＿ｐｒｅｖ＝｛ΔＴｒ［ｉ−Ｍ］＋ΔＴｒ［ｉ−（Ｍ−１）］＋…＋ΔＴｒ［ｉ−１］｝／Ｍ
Ｓ１５３’  ｄＴ＿ｐｒｅｖ＝｛ｄＴ［ｉ−Ｍ］＋ｄＴ［ｉ−（Ｍ−１）］＋…＋ｄＴ［ｉ−１］｝／Ｍ
以上のオフセット制御の動作の様子を図１１に示す。
【００７２】
（第十実施例）
第十実施例における同期クライアントを用いた周波数・時刻同期システムの構成は第一実施例と同様である。
【００７３】
クライアント時刻制御部４はＴ１、Ｔ２、Ｔ３、Ｔ４に基づき、第一〜第四実施例で述べた処理ステップに加えて、直前に透過させた同期応答信号に対する片側遅延時間をΔＴｑ＿ｐｒｅｖおよびΔＴｒ＿ｐｒｅｖ、そのときの同期サーバと同期クライアントとの時刻差をｄＴ＿ｐｒｅｖ、閾値をΔＴ＿ｔｈとして、
｜ΔＴｑ−ΔＴｑ＿ｐｒｅｖ｜＞ΔＴ＿ｔｈ
または
｜ΔＴｒ−ΔＴｒ＿ｐｒｅｖ｜＞ΔＴ＿ｔｈ
がＮ回（Ｎは突発的な大きなジッタに対する保護段数）以上継続した場合に、ネットワークの経路切替に伴う往復遅延時間の変化が生じたと判定して、時刻差ｄＴを
ｄＴ＝（Ｔ１−Ｔ２−Ｔ３＋Ｔ４）／２＋ｍａｘ｛ｍｉｎ（ｄＴ＿ｏｆｆｓｅｔ，ｄＴ＿ｏｆｆｓｅｔ＿ｍａｘ），ｄＴ＿ｏｆｆｓｅｔ＿ｍｉｎ｝
とオフセットさせる。ここで、
ｄＴ＿ｏｆｆｓｅｔ＝ｄＴ＿ｏｆｆｓｅｔ＋ｄＴ＿ｐｒｅｖ−ｄＴ
である。
【００７４】
以上のアルゴリズムを詳述すると、以下のようになる。
Ｓ１７１  ｄＴ＿ｏｆｆｓｅｔ＝０
Ｓ１７２  ΔＴｑ＿ｐｒｅｖ＝ΔＴｑ［ｉ−１］
ΔＴｒ＿ｐｒｅｖ＝ΔＴｒ［ｉ−１］
Ｓ１７３  ｄＴ＿ｐｒｅｖ＝ｄＴ［ｉ−１］
Ｓ１７４  ΔＴｑ［ｉ］＝Ｔ２［ｉ］−Ｔ１［ｉ］
ΔＴｒ［ｉ］＝Ｔ４［ｉ］−Ｔ３［ｉ］
Ｓ１７５  ｉｆ｛（｜ΔＴｑ［ｉ］−ΔＴｑ＿ｐｒｅｖ｜≦ΔＴ＿ｔｈ）ａｎｄ（｜ΔＴｒ［ｉ］−ΔＴｒ＿ｐｒｅｖ｜≦ΔＴ＿ｔｈ）｝ｔｈｅｎ  Ｓ１７６  ｅｌｓｅ  Ｓ１７９
Ｓ１７６  ｄＴ［ｉ］＝（Ｔ１［ｉ］−Ｔ２［ｉ］−Ｔ３［ｉ］＋Ｔ４［ｉ］）／２＋ｍａｘ｛ｍｉｎ（ｄＴ＿ｏｆｆｓｅｔ，ｄＴ＿ｏｆｆｓｅｔ＿ｍａｘ），ｄＴ＿ｏｆｆｓｅｔ＿ｍｉｎ｝
Ｓ１７７  ｉ＋＋
Ｓ１７８  →Ｓ１７２
Ｓ１７９  Ｋ＝０
Ｓ１８０  ΔＴｑ［ｉ］＝Ｔ２［ｉ］−Ｔ１［ｉ］
ΔＴｒ［ｉ］＝Ｔ４［ｉ］−Ｔ３［ｉ］
Ｓ１８１  ｉｆ｛（｜ΔＴｑ［ｉ］−ΔＴｑ＿ｐｒｅｖ｜≦ΔＴ＿ｔｈ）ａｎｄ（｜ΔＴｒ［ｉ］−ΔＴｒ＿ｐｒｅｖ｜≦ΔＴ＿ｔｈ）｝ｔｈｅｎ  Ｓ１７６  ｅｌｓｅ  Ｓ１８２
Ｓ１８２  Ｋ＋＋
Ｓ１８３  ｉｆ（Ｋ＜Ｎ）ｔｈｅｎ  Ｓ１８４  ｅｌｓｅ  Ｓ１８６
Ｓ１８４  ｉ＋＋
Ｓ１８５  →Ｓ１８０
Ｓ１８６  ｄＴ＿ｏｆｆｓｅｔ＝ｄＴ＿ｏｆｆｓｅｔ＋ｄＴ＿ｐｒｅｖ−ｄＴ［ｉ］
Ｓ１８７  →Ｓ１７６
ΔＴ＿ｔｈとしては、例えばジッタの標準偏差×３といった値を用いる。
【００７５】
ｄＴ＿ｏｆｆｓｅｔ＿ｍａｘとしては、想定される最大の経路切替に伴う遅延時間差、ｄＴ＿ｏｆｆｓｅｔ＿ｍｉｎ＝ｄＴ＿ｏｆｆｓｅｔ＿ｍａｘといった値を用いることにより、誤った経路切替検出によってオフセット値が過大になることを防止できる。
【００７６】
なお、Ｓ１７２およびＳ１７３において直前の瞬時値ΔＴｑ［ｉ−１］、ΔＴｒ［ｉ−１］およびｄＴ［ｉ−１］ではなく、平均値を使うこともできる。
Ｓ１７２’  ΔＴｑ＿ｐｒｅｖ＝｛ΔＴｑ［ｉ−Ｍ］＋ΔＴｑ［ｉ−（Ｍ−１）］＋…＋ΔＴｑ［ｉ−１］｝／Ｍ
ΔＴｒ＿ｐｒｅｖ＝｛ΔＴｒ［ｉ−Ｍ］＋ΔＴｒ［ｉ−（Ｍ−１）］＋…＋ΔＴｒ［ｉ−１］｝／Ｍ
Ｓ１７３’  ｄＴ＿ｐｒｅｖ＝｛ｄＴ［ｉ−Ｍ］＋ｄＴ［ｉ−（Ｍ−１）］＋…＋ｄＴ［ｉ−１］｝／Ｍ
以上のオフセット制御の動作の様子を図１２に示す。
【００７７】
（第十一実施例）
第十一実施例における同期クライアントを用いて周波数・時刻同期システムの構成は第一実施例と同様である。
【００７８】
クライアント時刻制御部４はＴ１、Ｔ２、Ｔ３、Ｔ４に基づき、第一〜第四実施例で述べた処理ステップに加えて、直前に透過させた同期応答信号に対する片側遅延時間をΔＴｑ＿ｐｒｅｖおよびΔＴｒ＿ｐｒｅｖ、そのときの同期サーバと同期クライアントとの時刻差をｄＴ＿ｐｒｅｖ、閾値をΔＴ＿ｔｈとして、
｜ΔＴｑ−ΔＴｑ＿ｐｒｅｖ｜＞ΔＴ＿ｔｈ
または
｜ΔＴｒ−ΔＴｒ＿ｐｒｅｖ｜＞ΔＴ＿ｔｈ
が一定期間以上継続した場合に、ネットワークの経路切替に伴う往復遅延時間の変化が生じたと判定し、閾値をｄＴ＿ｏｆｆｓｅｔ＿ｔｈとして、
｜ｄＴ＿ｏｆｆｓｅｔ｜＞ｄＴ＿ｏｆｆｓｅｔ＿ｔｈ
の場合に、当該時刻差ｄＴを
ｄＴ＝（Ｔ１−Ｔ２−Ｔ３＋Ｔ４）／２＋ｄＴ＿ｏｆｆｓｅｔ
とオフセットさせる。ここで、
ｄＴ＿ｏｆｆｓｅｔ＝ｄＴ＿ｏｆｆｓｅｔ＋ｄＴ＿ｐｒｅｖ−ｄＴ
である。
【００７９】
以上のアルゴリズムを詳述すると、以下のようになる。
Ｓ１９１  ｄＴ＿ｏｆｆｓｅｔ＝０
Ｓ１９２  ΔＴｑ＿ｐｒｅｖ＝ΔＴｑ［ｉ−１］
ΔＴｒ＿ｐｒｅｖ＝ΔＴｒ［ｉ−１］
Ｓ１９３  ｄＴ＿ｐｒｅｖ＝ｄＴ［ｉ−１］
Ｓ１９４  ΔＴｑ［ｉ］＝Ｔ２［ｉ］−Ｔ１［ｉ］
ΔＴｒ［ｉ］＝Ｔ４［ｉ］−Ｔ３［ｉ］
Ｓ１９５  ｉｆ｛（｜ΔＴｑ［ｉ］−ΔＴｑ＿ｐｒｅｖ｜≦ΔＴ＿ｔｈ）ａｎｄ（｜ΔＴｒ［ｉ］−ΔＴｒ＿ｐｒｅｖ｜≦ΔＴ＿ｔｈ）｝ｔｈｅｎ  Ｓ１９６  ｅｌｓｅ  Ｓ２０２
Ｓ１９６  ｉｆ（｜ｄＴ＿ｏｆｆｓｅｔ｜＜ｄＴ＿ｏｆｆｓｅｔ＿ｔｈ）ｔｈｅｎ  Ｓ１９７  ｅｌｓｅ  Ｓ１９９
Ｓ１９７  ｄＴ［ｉ］＝（Ｔ１［ｉ］−Ｔ２［ｉ］−Ｔ３［ｉ］＋Ｔ４［ｉ］）／２
Ｓ１９８    →Ｓ２００
Ｓ１９９  ｄＴ［ｉ］＝（Ｔ１［ｉ］−Ｔ２［ｉ］−Ｔ３［ｉ］＋Ｔ４［ｉ］）／２＋ｄＴ＿ｏｆｆｓｅｔ
Ｓ２００  ｉ＋＋
Ｓ２０１  →Ｓ１９２
Ｓ２０２  Ｋ＝０
Ｓ２０３  ΔＴｑ［ｉ］＝Ｔ２［ｉ］−Ｔ１［ｉ］
ΔＴｒ［ｉ］＝Ｔ４［ｉ］−Ｔ３［ｉ］
Ｓ２０４  ｉｆ｛（｜ΔＴｑ［ｉ］−ΔＴｑ＿ｐｒｅｖ｜≦ΔＴ＿ｔｈ）ａｎｄ（｜ΔＴｒ［ｉ］−ΔＴｒ＿ｐｒｅｖ｜≦ΔＴ＿ｔｈ）｝ｔｈｅｎ  Ｓ１９６  ｅｌｓｅ  Ｓ２０５
Ｓ２０５  Ｋ＋＋
Ｓ２０６  ｉｆ（Ｋ＜Ｎ）ｔｈｅｎ  Ｓ２０７  ｅｌｓｅ  Ｓ２０９
Ｓ２０７  ｉ＋＋
Ｓ２０８  →Ｓ２００
Ｓ２０９  ｄＴ＿ｏｆｆｓｅｔ＝ｄＴ＿ｏｆｆｓｅｔ＋ｄＴ＿ｐｒｅｖ−ｄＴ［ｉ］
Ｓ２１０  →Ｓ１９６
ΔＴ＿ｔｈとしては、例えばジッタの標準偏差×３といった値を用いる。
【００８０】
ｄＴ＿ｏｆｆｓｅｔ＿ｔｈとしては、例えばジッタの標準偏差程度の値を用いる。
【００８１】
なお、Ｓ１９２およびＳ１９３において直前の瞬時値ΔＴｑ［ｉ−１］、ΔＴｒ［ｉ−１］およびｄＴ［ｉ−１］ではなく、平均値を使うこともできる。
Ｓ１９２’  ΔＴｑ＿ｐｒｅｖ＝｛ΔＴｑ［ｉ−Ｍ］＋ΔＴｑ［ｉ−（Ｍ−１）］＋…＋ΔＴｑ［ｉ−１］｝／Ｍ
ΔＴｒ＿ｐｒｅｖ＝｛ΔＴｒ［ｉ−Ｍ］＋ΔＴｒ［ｉ−（Ｍ−１）］＋…＋ΔＴｒ［ｉ−１］｝／Ｍ
Ｓ１９３’  ｄＴ＿ｐｒｅｖ＝｛ｄＴ［ｉ−Ｍ］＋ｄＴ［ｉ−（Ｍ−１）］＋…＋ｄＴ［ｉ−１］｝／Ｍ
以上のオフセット制御の動作の様子を図１３に示す。
【００８２】
（第十二実施例）
第十二実施例におけるクライアント時刻発生部の構成を図１４に示す。
【００８３】
数値制御発振器３０は電圧制御発振器３１の出力クロックを累積加算する。その累積加算された値をｄＴによって数値的に制御することにより、数値制御発振器３０の出力位相を可変にできる。
【００８４】
数値制御発振器３０の出力は時刻生成部３２において時刻データに変換して出力される。この時刻データは同期要求パケットの送信時刻Ｔ１および同期応答パケットの受信時刻Ｔ４として用いる他、時刻を利用したアプリケーション（時刻認証サービスなど）に用いることができる。
【００８５】
数値制御発振器３０の出力および電圧制御発振器３１の出力はそれぞれ分周器３３および分周器３４によって分周され、位相比較器３５で位相比較され、ローパスフィルタ３６で高い周波数成分を除去されて、電圧制御発振器３１の周波数制御信号としてフィードバックされる。電圧制御発振器３１の出力は高安定クロックとして用いることができる。
【００８６】
数値制御発振器３０はｄＴの早い変動に対して高速応答可能である。一方、電圧制御発振器３１として温度補償水晶発振器や恒温槽付き温度安定化水晶発振器といった周波数安定性に優れた発振器を用い、ローパスフィルタ３６の遮断周波数を低く設定すれば、ｄＴの中長期的変動に対する安定な動作が可能である。
【００８７】
このように、応答特性の異なる複数の制御手段を組み合わせることにより、短期および中長期にわたる安定した動作を実現できる。
【００８８】
（第十三実施例）
第十三実施例における同期システムの構成は図２に示されている。ここで、クライアント時刻制御部４の動作は第一〜第十一実施例のいずれかで述べたものを使用する。また、クライアント時刻発生部１として、第十二実施例で述べたものを使用することもできる。
【００８９】
（第十四実施例）
汎用の情報処理装置にインストールすることにより、その汎用の情報処理装置に、本実施例の同期クライアント１０の少なくとも一部の機能に相応する機能を実現させるプログラムの実施例を説明する。
【００９０】
本実施例のプログラムは記録媒体に記録されることにより、前記汎用の情報処理装置は、この記録媒体を用いて本実施例のプログラムをインストールすることができる。あるいは、本実施例のプログラムを保持するサーバからネットワークを介して直接前記汎用の情報処理装置に本実施例のプログラムをインストールすることもできる。
【００９１】
これにより、汎用の情報処理装置を用いて、本実施例の同期クライアント１０の機能の少なくとも一部に相応する機能を実現することができる。
【００９２】
なお、本実施例のプログラムは、汎用の情報処理装置によって直接実行可能なものだけでなく、ハードディスクなどにインストールすることによって実行可能となるものも含む。また、圧縮されたり、暗号化されたりしたものも含む。
【産業上の利用可能性】
【００９３】
本発明によれば、ネットワークの遅延時間に揺らぎがある場合であっても、同期クライアントにおける周波数または時刻の同期を実現できるので、クライアント装置相互間の同期が必要となるネットワーク・システムの動作精度を向上させることができる。
【図面の簡単な説明】
【００９４】
【図１】ＮＴＰあるいはＳＮＴＰの時刻同期の原理を説明する図。
【図２】本発明における周波数・時刻同期システムの構成を示す図。
【図３】第一実施例におけるＲＴＴフィルタリングの動作を説明する図。
【図４】第二実施例におけるＲＴＴフィルタリングの動作を説明する図。
【図５】第三実施例におけるＲＴＴフィルタリングの動作を説明する図。
【図６】第四実施例におけるＲＴＴフィルタリングの動作を説明する図。
【図７】第五実施例におけるホールドオーバの動作を説明する図。
【図８】第六実施例におけるオフセット制御の動作を説明する図。
【図９】第七実施例におけるオフセット制御の動作を説明する図。
【図１０】第八実施例におけるオフセット制御の動作を説明する。
【図１１】第九実施例におけるオフセット制御の動作を説明する図。
【図１２】第十実施例におけるオフセット制御の動作を説明する図。
【図１３】第十一実施例におけるオフセット制御の動作を説明する図。
【図１４】第十二実施例におけるクライアント時刻発生部の構成を示す図。
【符号の説明】
【００９５】
Ｔ１  同期要求パケット送信時刻
Ｔ２  同期要求パケット受信時刻
Ｔ３  同期応答パケット送信時刻
Ｔ４  同期応答パケット受信時刻
Ｄ１  同期要求パケット遅延時間
Ｄ２  同期応答パケット遅延時間
１  クライアント時刻発生部
２  同期要求パケット送信部
３  同期応答パケット受信部
４  クライアント時刻制御部
１０  同期クライアント
１１  サーバ時刻発生部
１２  同期応答パケット送信部
１３  同期要求パケット受信部
２０  同期サーバ
３０  数値制御発振器
３１  電圧制御発振器
３２  時刻生成部
３３、３４  分周器
３５  位相比較器
３６  ローパスフィルタ
【図１】
0004810520.tif 000002
【図２】
0004810520.tif 000003
【図３】
0004810520.tif 000004
【図４】
0004810520.tif 000005
【図５】
0004810520.tif 000006
【図６】
0004810520.tif 000007
【図７】
0004810520.tif 000008
【図８】
0004810520.tif 000009
【図９】
0004810520.tif 000010
【図１０】
0004810520.tif 000011
【図１１】
0004810520.tif 000012
【図１２】
0004810520.tif 000013
【図１３】
0004810520.tif 000014
【図１４】
0004810520.tif 000015