(57)【要約】【課題】時刻調整機能を有する端末装置においてトラフィック集中を抑制することができる端末装置及びそれを備えた通信システムを提供すること。【解決手段】他の端末装置１の計時時刻及び推定誤差を受信する時刻情報受信手段１３と、時刻情報受信手段１３で受信した他の端末装置１の推定誤差を含む誤差を更新用推定誤差として演算する推定誤差演算手段１６と、推定誤差演算手段１６で演算した更新用推定誤差が推定誤差記憶手段１５に記憶した推定誤差よりも小さいとき、推定誤差演算手段１６で演算した更新用推定誤差を推定誤差記憶手段１５に記憶して当該推定誤差記憶手段１５に記憶する推定誤差を更新し、時刻情報受信手段１３で受信した他の端末装置１の計時時刻に応じて計時手段１０の計時時刻を調整する時刻更新手段１１と、を備える。【選択図】図２
2010078529.tif 000002
【特許請求の範囲】
【請求項１】
時刻を計時する計時手段と、
前記計時手段による計時時刻と現時刻との間の推定誤差を記憶する推定誤差記憶手段と、
他の端末装置に対して当該他の端末装置における計時時刻と推定誤差を要求する時刻情報要求手段と、
他の端末装置からの要求に応じて前記計時手段による計時時刻と前記推定誤差記憶手段に記憶されている推定誤差とを当該他の端末装置へ送信する時刻情報送信手段と、
前記時刻情報要求手段で要求した他の端末装置の計時時刻及び推定誤差を受信する時刻情報受信手段と、
前記時刻情報受信手段で受信した他の端末装置の推定誤差を含む誤差を更新用推定誤差として演算する推定誤差演算手段と、
前記推定誤差演算手段で演算した更新用推定誤差が前記推定誤差記憶手段に記憶した推定誤差よりも小さいとき、前記推定誤差演算手段で演算した更新用推定誤差を前記推定誤差記憶手段に記憶して当該推定誤差記憶手段に記憶する推定誤差を更新し、前記時刻情報受信手段で受信した前記他の端末装置の計時時刻に基づいて前記計時手段の計時時刻を調整する時刻更新手段と、を備えた端末装置。
【請求項２】
前記推定誤差演算手段は、前記時刻情報受信手段で受信した推定誤差に前記他の端末装置との間の情報伝搬時間を加算して前記更新用推定誤差を演算することを特徴とする請求項１に記載の端末装置。
【請求項３】
前記推定誤差演算手段は、前記時刻情報受信手段で受信した推定誤差に前記情報伝搬時間を加算した値にさらに、前記推定誤差記憶手段に推定誤差を最後に記憶したときからの経過時間に応じた経時誤差を加算して前記更新用推定誤差を演算する
ことを特徴とする請求項２に記載の端末装置。
【請求項４】
前記計時手段は、単位時間毎にカウント値をアップさせるカウント手段と、所定タイミングで取得した時刻情報を基準時刻として記憶する基準時刻記憶手段と、前記カウント手段から前記所定タイミングで取得されるカウント値を基準カウント値として記憶する基準カウント値記憶手段と、前記カウント手段によるカウント値から前記基準カウント値を減算し、当該演算結果に前記基準時刻を加算した値を前記計時時刻とする時刻演算手段と、を備え、
さらに、前記時刻情報要求手段での要求を行ったときの前記カウント手段のカウント値を第１カウント値として記憶する第1カウント記憶手段と、
前記時刻情報受信手段による受信を行ったときの前記カウント手段のカウント値を第２カウント値として記憶する第２カウント記憶手段と、を備え、
前記時刻情報送信手段は、他の端末装置からの要求を受信してから当該他の端末装置へ前記計時時刻及び前記推定誤差を送信するまでの経過時間を送信し、
前記時刻情報受信手段は、前記時刻情報要求手段で要求した他の端末装置の計時時刻と推定誤差に加えて前記経過時間を受信し、
前記推定誤差演算手段は、前記第２カウント値から第１カウント値を減算した値から前記経過時間を減算した後、２で除算することによって、前記情報伝搬時間を算出する
ことを特徴とする請求項２又は請求項３に記載の端末装置。
【請求項５】
前記時刻更新手段は、前記推定誤差演算手段で演算した推定誤差が前記推定誤差記憶手段に記憶した推定誤差よりも小さいとき、前記計時手段による計時時刻と前記時刻情報受信手段で受信した計時時刻の差分に前記推定誤差演算手段で演算した更新用推定誤差を加算した値を、前記推定誤差記憶手段に記憶する推定誤差とすることを特徴とする請求項１〜４のいずれか１項に記載の端末装置。
【請求項６】
コンピュータを、請求項１〜５のいずれか１項に記載の前記端末装置の各手段として機能させることを特徴とするプログラム。
【請求項７】
複数の端末装置を備え、前記端末装置間でコンテンツ情報の送受信を行う通信システムにおいて、
各前記端末装置は、
時刻を計時する計時手段と、
前記計時手段による計時時刻と現時刻との間の推定誤差を記憶する推定誤差記憶手段と、
他の端末装置に対して当該他の端末装置における計時時刻と推定誤差を要求する時刻情報要求手段と、
他の端末装置からの要求に応じて前記計時手段による計時時刻と前記推定誤差記憶手段に記憶されている推定誤差とを当該他の端末装置へ送信する時刻情報送信手段と、
前記時刻情報要求手段で要求した他の端末装置の計時時刻及び推定誤差を受信する時刻情報受信手段と、
前記時刻情報受信手段で受信した他の端末装置の推定誤差を含む誤差を更新用推定誤差として演算する推定誤差演算手段と、
前記推定誤差演算手段で演算した更新用推定誤差が前記推定誤差記憶手段に記憶した推定誤差よりも小さいとき、前記推定誤差演算手段で演算した更新用推定誤差を前記推定誤差記憶手段に記憶して当該推定誤差記憶手段に記憶する推定誤差を更新し、前記時刻情報受信手段で受信した前記他の端末装置の計時時刻に基づいて前記計時手段の計時時刻を調整する時刻更新手段と、を備えた通信システム。
【請求項８】
複数の端末装置を備え、前記端末装置間でコンテンツ情報の送受信を行う通信システムにおける前記端末装置の時刻調整方法であって
前記端末装置の計時手段による計時時刻と現時刻との間の推定誤差を推定誤差記憶手段に記憶する第１ステップと、
他の端末装置に対して当該他の端末装置における計時時刻と推定誤差を要求する第２ステップと、
他の端末装置からの要求に応じて前記計時手段による計時時刻と前記推定誤差記憶手段に記憶されている推定誤差とを当該他の端末装置へ送信する第３ステップと、
前記第２ステップで要求した他の端末装置の計時時刻及び推定誤差を受信する第４ステップと、
前記第４ステップで受信した他の端末装置の推定誤差を含む誤差を更新用推定誤差として演算する第５ステップと、
前記第５ステップで演算した更新用推定誤差が前記推定誤差記憶手段に記憶した推定誤差よりも小さいとき、前記第５ステップで演算した更新用推定誤差を前記推定誤差記憶手段に記憶して当該推定誤差記憶手段に記憶する推定誤差を更新し、前記第４ステップで受信した前記他の端末装置の計時時刻に基づいて前記計時手段の計時時刻を調整する第６ステップと、を有する端末装置の時刻調整方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、端末装置及びその時刻調整方法に関し、さらに詳細には、時刻を計時する計時手段を備え、他の装置から取得した時刻情報に基づいて計時手段を調整する端末装置及びその時刻調整方法に関する。
【背景技術】
【０００２】
インターネットなどのネットワークに接続された端末装置（例えば、パーソナルコンピュータ）は、一般に時刻を計時する計時手段を内蔵しており、この計時手段で計時した時刻に基づいて種々の動作を行う。例えば、端末装置にインストールしたアプリケーションのアップデートやログデータの収集などを所定の時刻で行っている。
【０００３】
従って、計時手段が計時する時刻と実際の時刻との誤差が発生した場合には計時手段の時刻調整が必要となる。
【０００４】
ネットワークに接続された端末装置の時刻調整を行う方法として、ＮＴＰ（Network Time Protocol）が最も一般に用いられている。この方法は、基準時刻を計時するＮＴＰサーバから各端末装置が基準時刻のデータを取得して各端末装置で内部の計時手段を基準時刻に調整するものである（例えば、特許文献１参照）。
【特許文献１】特開２００４−１１７２３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、このように複数の端末装置とサーバとの間で時刻調整のために時刻情報の通信を行うと、サーバにトラフィックが集中して通信負荷がかかってしまう虞がある。
【０００６】
そこで、本発明は、時刻調整機能を有する端末装置においてトラフィック集中を抑制することを目的とする。
【課題を解決するための手段】
【０００７】
そこで、上記課題を解決するために、請求項１に記載の発明は、時刻を計時する計時手段と、前記計時手段による計時時刻と現時刻との間の推定誤差を記憶する推定誤差記憶手段と、他の端末装置に対して当該他の端末装置における計時時刻と推定誤差を要求する時刻情報要求手段と、他の端末装置からの要求に応じて前記計時手段による計時時刻と前記推定誤差記憶手段に記憶されている推定誤差とを当該他の端末装置へ送信する時刻情報送信手段と、前記時刻情報要求手段で要求した他の端末装置の計時時刻及び推定誤差を受信する時刻情報受信手段と、前記時刻情報受信手段で受信した他の端末装置の推定誤差を含む誤差を更新用推定誤差として演算する推定誤差演算手段と、前記推定誤差演算手段で演算した更新用推定誤差が前記推定誤差記憶手段に記憶した推定誤差よりも小さいとき、前記推定誤差演算手段で演算した更新用推定誤差を前記推定誤差記憶手段に記憶して当該推定誤差記憶手段に記憶する推定誤差を更新し、前記時刻情報受信手段で受信した前記他の端末装置の計時時刻に基づいて前記計時手段の計時時刻を調整する時刻更新手段と、を備えたものである。
【０００８】
また、請求項２に記載の発明は、請求項１に記載の発明において、前記推定誤差演算手段は、前記時刻情報受信手段で受信した推定誤差に前記他の端末装置との間の情報伝搬時間を加算して前記更新用推定誤差を演算するものである。
【０００９】
また、請求項３に記載の発明は、請求項２に記載の発明において、前記推定誤差演算手段は、前記時刻情報受信手段で受信した推定誤差に前記情報伝搬時間を加算した値にさらに、前記推定誤差記憶手段に推定誤差を最後に記憶したときからの経過時間に応じた経時誤差を加算して前記更新用推定誤差を演算するものである。
【００１０】
また、請求項４に記載の発明は、請求項２又は請求項３に記載の発明において、前記計時手段は、単位時間毎にカウント値をアップさせるカウント手段と、所定タイミングで取得した時刻情報を基準時刻として記憶する基準時刻記憶手段と、前記カウント手段から前記所定タイミングで取得されるカウント値を基準カウント値として記憶する基準カウント値記憶手段と、前記カウント手段によるカウント値から前記基準カウント値を減算し、当該演算結果に前記基準時刻を加算した値を前記計時時刻とする時刻演算手段と、を備え、さらに、前記時刻情報要求手段での要求を行ったときの前記カウント手段のカウント値を第１カウント値として記憶する第1カウント記憶手段と、前記時刻情報受信手段による受信を行ったときの前記カウント手段のカウント値を第２カウント値として記憶する第２カウント記憶手段と、を備え、前記時刻情報送信手段は、他の端末装置からの要求を受信してから当該他の端末装置へ前記計時時刻及び前記推定誤差を送信するまでの経過時間を送信し、前記時刻情報受信手段は、前記時刻情報要求手段で要求した他の端末装置の計時時刻と推定誤差に加えて前記経過時間を受信し、前記推定誤差演算手段は、前記第２カウント値から第１カウント値を減算した値から前記経過時間を減算した後、２で除算することによって、前記情報伝搬時間を算出するものである。
【００１１】
また、請求項５に記載の発明は、請求項１〜４のいずれか１項に記載の発明において、前記時刻更新手段は、前記推定誤差演算手段で演算した推定誤差が前記推定誤差記憶手段に記憶した推定誤差よりも小さいとき、前記計時手段による計時時刻と前記時刻情報受信手段で受信した計時時刻の差分に前記推定誤差演算手段で演算した更新用推定誤差を加算した値を、前記推定誤差記憶手段に記憶する推定誤差とするものである。
【００１２】
また、請求項６に記載の発明は、コンピュータを、請求項１〜５のいずれか１項に記載の前記端末装置の各手段として機能させることを特徴とするプログラムとした。
【００１３】
また、請求項７に記載の発明は、複数の端末装置を備え、前記端末装置間でコンテンツ情報の送受信を行う通信システムにおいて、各前記端末装置は、時刻を計時する計時手段と、前記計時手段による計時時刻と現時刻との間の推定誤差を記憶する推定誤差記憶手段と、他の端末装置に対して当該他の端末装置における計時時刻と推定誤差を要求する時刻情報要求手段と、他の端末装置からの要求に応じて前記計時手段による計時時刻と前記推定誤差記憶手段に記憶されている推定誤差とを当該他の端末装置へ送信する時刻情報送信手段と、前記時刻情報要求手段で要求した他の端末装置の計時時刻及び推定誤差を受信する時刻情報受信手段と、前記時刻情報受信手段で受信した他の端末装置の推定誤差を含む誤差を更新用推定誤差として演算する推定誤差演算手段と、前記推定誤差演算手段で演算した更新用推定誤差が前記推定誤差記憶手段に記憶した推定誤差よりも小さいとき、前記推定誤差演算手段で演算した更新用推定誤差を前記推定誤差記憶手段に記憶して当該推定誤差記憶手段に記憶する推定誤差を更新し、前記時刻情報受信手段で受信した前記他の端末装置の計時時刻に基づいて前記計時手段の計時時刻を調整する時刻更新手段と、を備えたものである。
【００１４】
また、請求項８に記載の発明は、複数の端末装置を備え、前記端末装置間でコンテンツ情報の送受信を行う通信システムにおける前記端末装置の時刻調整方法であって前記端末装置の計時手段による計時時刻と現時刻との間の推定誤差を推定誤差記憶手段に記憶する第１ステップと、他の端末装置に対して当該他の端末装置における計時時刻と推定誤差を要求する第２ステップと、他の端末装置からの要求に応じて前記計時手段による計時時刻と前記推定誤差記憶手段に記憶されている推定誤差とを当該他の端末装置へ送信する第３ステップと、前記第２ステップで要求した他の端末装置の計時時刻及び推定誤差を受信する第４ステップと、前記第４ステップで受信した他の端末装置の推定誤差を含む誤差を更新用推定誤差として演算する第５ステップと、前記第５ステップで演算した更新用推定誤差が前記推定誤差記憶手段に記憶した推定誤差よりも小さいとき、前記第５ステップで演算した更新用推定誤差を前記推定誤差記憶手段に記憶して当該推定誤差記憶手段に記憶する推定誤差を更新し、前記第４ステップで受信した前記他の端末装置の計時時刻に基づいて前記計時手段の計時時刻を調整する第６ステップと、を有するものである。
【発明の効果】
【００１５】
本発明によれば、計時手段を有する端末装置において、他の端末装置の計時手段で計時した時刻情報で自装置の計時手段を調整することができるので、サーバ装置へのトラフィック集中が発生せず、ネットワークにおけるトラフィック集中を抑制することができる。
【００１６】
しかも、計時手段による計時時刻と現時刻との間の推定誤差を記憶する推定誤差記憶手段を設けており、他の端末装置の計時時刻及び推定誤差を受信し、この推定誤差を含む誤差を更新用推定誤差として演算する。そして、この更新用推定誤差が自装置の推定誤差記憶手段に記憶した推定誤差よりも小さいとき、推定誤差記憶手段に記憶する推定誤差を更新用推定誤差により更新し、受信した他の端末装置の計時時刻に応じて計時手段の計時時刻を調整する。従って、自装置の計時手段による計時時刻の精度の低下を抑制しつつ時刻調整が可能となる。
【００１７】
また、調整前後の計時手段の計時時刻の差を推定誤差に反映することにより、この差が大きい場合に調整後の推定誤差を大きくすることができる。このようにすることで、悪意のある者がその者が有する端末装置の計時時刻を故意にずらしつつも、推定誤差を小さく設定した場合の影響を抑制することができる。すなわち、このような悪意のある者の端末装置の計時時刻で計時手段を調整してしまったとしても推定誤差が大きくなるので、次の時刻調整処理で計時手段の調整が行われる確率を高くすることができ、計時時刻がずれた状態を短期間に解消することができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の通信システム及びその端末装置に係るいくつかの実施形態について図面を参照して説明する。各実施形態に係る通信システムは、時刻を計時する計時手段を有する端末装置を複数備え、各端末装置が他の端末装置の計時手段で計時した計時時刻で自装置の計時手段を調整することができるものである。
【００１９】
［１．第１実施形態］
［１．１．通信システムの概要］
まず、本発明の第１実施形態に係る通信システムの概要について説明する。図１は第１実施形態に係る通信システムの概略構成を示す図、図２は第１実施形態に係る通信システムの端末装置の概略構成を示す図、図３及び図４は第１実施形態に係る端末装置の時刻調整の概要を説明するための図である。
【００２０】
図１に示すように、本実施形態に係る通信システムＳは、複数の端末装置１ａ，１ｂ，１ｃ，１ｄ，１ｅ，１ｆを備えており、これらの端末装置１ａ，１ｂ，１ｃ，１ｄ，１ｅ，１ｆはインターネットなどのネットワーク２を介して互いに通信可能に接続されている。また、これらの端末装置１ａ，１ｂ，１ｃ，１ｄ，１ｅ，１ｆには複数のコンテンツ情報（例えば、音楽データ、映画データ、文書データ）が分散して配置されており、端末装置１ａ，１ｂ，１ｃ，１ｄ，１ｅ，１ｆ間でコンテンツ情報の送受信を行うことができるように構成される。すなわち、通信システムＳは、Ｐ２Ｐ（ピアツーピア）型の通信システムである。なお、以下の説明において、端末装置１ａ，１ｂ，１ｃ，１ｄ，１ｅ，１ｆのうち何れかの端末装置又は全ての端末装置を示す場合には、便宜上、端末装置１という。
【００２１】
本実施形態に係る端末装置１は、図２に示すように、時刻を計時する計時手段１０と、この計時手段１０の計時時刻を調整する時刻更新手段１１とを備えている。
【００２２】
さらに、端末装置１は、他の端末装置１に対して計時時刻等の送信を要求する時刻情報要求手段１２と、この時刻情報要求手段１２による要求に応じて他の端末装置１から送信される計時時刻等を受信する時刻情報受信手段１３と、他の端末装置１からの要求に応じて計時手段１０による計時時刻等を要求元の他の端末装置１へ送信する時刻情報送信手段１４と、を備えている。
【００２３】
そして、時刻更新手段１１は、時刻情報受信手段１３で受信した他の端末装置１の計時時刻に基づいて計時手段１０の計時時刻を調整するようにしている。
【００２４】
このように、各端末装置１は、他の端末装置１の計時手段１０で計時した時刻情報で自装置の計時手段１０を調整することから、サーバ装置から各端末装置が基準時刻を取得する場合に比べて、ネットワーク２におけるトラフィック集中を抑制することができるという効果を有している。
【００２５】
ここで、例えば、図３に示すように、端末装置１ｂが端末装置１ａから計時時刻を取得して自装置の計時手段１０を調整し、その後、端末装置１ｃが端末装置１ｂから計時時刻を取得して自装置の計時手段１０を調整し、さらにその後、端末装置１ｄが端末装置１ｃから計時時刻を取得して自装置の計時手段１０を調整する場合を考える。なお、本実施形態における通信システムＳでは、現時刻との誤差がない時刻を計時する計時手段を備えた基準端末装置として、少なくとも一つの端末装置１を配置している。図３に示す例では、端末装置１ａを基準端末装置としている。
【００２６】
端末装置１ｂが端末装置１ａから計時時刻を取得するとき、端末装置１ａ，１ｂ間の送受信処理やネットワーク２での伝搬などによってロス時間（以下、「情報伝搬時間」と呼ぶ。）が生じる。そのため、端末装置１ｂが端末装置１ａから計時時刻を取得したときには、この計時時刻は現時刻との間に誤差が生じてしまう。このように誤差が生じた計時時刻は端末装置１ｃで取得されたときには、端末装置１ｂ，１ｃ間での情報伝搬時間によってその誤差が増加する。さらに、この計時時刻が端末装置１ｄで取得されたときには、端末装置１ｃ，１ｄ間での情報伝搬時間によってさらにその誤差が増加する。
【００２７】
このように、端末装置１において、基準端末装置の計時時刻を他の端末装置１を介して取得するとき、介在する他の端末装置１が多ければ多いほど、基準端末装置から取得した計時時刻と現時刻との間に誤差が増大することになる。
【００２８】
そこで、本実施形態における各端末装置１は、現時刻との間の誤差が小さいと推定される計時時刻を有する他の端末装置１から計時時刻を取得するようにして、計時時刻の誤差の増大を抑制するようにしている。
【００２９】
現時刻との間の誤差が小さいと推定される時刻を計時する他の端末装置１を判別するために、各端末装置１は、推定誤差記憶手段１５と推定誤差演算手段１６を備えている。
【００３０】
推定誤差記憶手段１５は、計時手段１０による計時時刻と現時刻との間の推定誤差を記憶する記憶手段である。この推定誤差は、他の端末装置１から計時時刻を取得する際等に推定誤差演算手段１６により演算されるものであり、計時手段の計時時刻と現時刻との間の誤差を推定したものである。
【００３１】
ここで、各端末装置１による時刻調整は、次のように行われる。
【００３２】
まず、時刻情報要求手段１２が、他の端末装置１に対して当該他の端末装置１における計時時刻と推定誤差とをネットワーク２を介して要求する。この要求は、時刻情報要求手段１２が定期的（例えば、１時間間隔）又はランダムに行うものである。また、時刻情報要求手段１２は、要求先の他の端末装置１は所在情報（例えば、ＩＰアドレス）を知っている他の端末装置１から所定の規則又はランダムに選択する。
【００３３】
そして、この要求をネットワーク２を介して受信した他の端末装置１は、計時手段１０による計時時刻と推定誤差記憶手段１５に記憶されている推定誤差とを要求元の端末装置１へネットワーク２を介して送信する。
【００３４】
次に、時刻情報受信手段１３が、時刻情報要求手段１２で要求した他の端末装置１からこの他の端末装置１の計時時刻及び推定誤差をネットワーク２を介して受信する。
【００３５】
そして、推定誤差演算手段１６は、時刻情報受信手段１３で受信した他の端末装置１の推定誤差を含む誤差を更新用推定誤差として演算する。このとき、推定誤差演算手段１６は、時刻情報受信手段１３で受信した推定誤差に他の端末装置１との間の情報伝搬時間を加算して更新用推定誤差を演算する。このように更新用推定誤差を演算するのは、時刻情報受信手段１３で受信した他の端末装置１の計時時刻が、当該他の端末装置１の推定誤差に加え、情報伝搬時間分だけ誤差としてずれてしまうからである。
【００３６】
推定誤差演算手段１６は、情報伝搬時間の演算を、時刻情報要求手段１２で計時時刻を他の端末装置１へ要求してから時刻情報受信手段１３で計時時刻を受信するまでの時間を判定し、この時間を２で除算することによって行っている。なお、時刻情報要求手段１２で計時時刻を他の端末装置１へ要求してから時刻情報受信手段１３で計時時刻を受信するまでの時間を判定し、この時間を２で除算することによって情報伝搬時間の演算を行うようにしてもよい。
【００３７】
次に、時刻更新手段１１は、推定誤差演算手段１６で演算した更新用推定誤差が推定誤差記憶手段１５に記憶した推定誤差よりも小さいか否かを判定する。
【００３８】
そして、更新用推定誤差が推定誤差記憶手段１５に記憶した推定誤差よりも小さいと判定すると、時刻更新手段１１は、推定誤差演算手段１６で演算した更新用推定誤差を推定誤差記憶手段１５に記憶して当該推定誤差記憶手段１５に記憶する推定誤差を更新する。さらに、時刻更新手段１１は、時刻情報受信手段１３で受信した他の端末装置１の計時時刻に応じて計時手段１０の計時時刻を調整する。例えば、図４（ａ）に示すように、基準端末装置である端末装置１ａの推定誤差（＝０）に情報伝搬時間を加算した更新用推定誤差が端末装置１ｂの推定誤差（=δＡ）よりも小さい場合、端末装置１ｂは、計時手段１０の計時時刻を端末装置１ａから取得した計時時刻に調整する。
【００３９】
なお、「更新用推定誤差が推定誤差記憶手段１５に記憶した推定誤差よりも小さい」か否かの判断は、更新用推定誤差が厳密に推定誤差よりも小さい場合に限らず、例えば、更新用推定誤差が推定誤差よりもわずかに大きい場合にも「更新用推定誤差が推定誤差記憶手段１５に記憶した推定誤差よりも小さい」と判断するように設定してもよく、或いは更新用推定誤差が推定誤差よりも一定以上小さい場合に「更新用推定誤差が推定誤差記憶手段１５に記憶した推定誤差よりも小さい」と判断するように設定してもよい。
【００４０】
一方、更新用推定誤差が推定誤差記憶手段１５に記憶した推定誤差以上であると判定すると、時刻更新手段１１は、推定誤差記憶手段１５の更新や計時手段の調整を行わない。例えば、図４（ｂ）に示すように、端末装置１ｄの推定誤差（＝δＣ）に情報伝搬時間を加算した更新用推定誤差が端末装置１ｃの推定誤差（=δＢ）以上の場合、端末装置１ｃは、計時手段１０の計時時刻の調整は行わない。
【００４１】
このように、本実施形態における端末装置１は、他の端末装置１から取得した計時時刻に対する推定誤差（他の端末装置１から取得した推定誤差に情報伝搬時間を加算した誤差）が自装置の計時時刻に対する推定誤差以上のときには、計時手段１０の計時時刻の調整を行わないようにしている。
【００４２】
結果として、更新用推定誤差が推定誤差記憶手段１５に記憶した推定誤差よりも小さくなるように計時手段１０の計時時刻の調整が行われることになり、端末装置１において計時手段１０による計時時刻の精度の低下を抑制しつつ時刻調整が可能となる。
【００４３】
［１．２．端末装置の具体的構成及び動作］
次に、第１実施形態に係る通信システムＳの端末装置１の具体的構成及び動作の一例について図面を参照して説明する。
【００４４】
（端末装置１の具体的構成について）
まず、端末装置１の構成について説明する。図５は、第１実施形態の通信システムＳの端末装置１の具体的構成を示す図である。
【００４５】
端末装置１は、専用のコンピュータの他、一般のパーソナルコンピュータを適用可能であり、図５に示すように、周辺機器制御チップ２２、キーボード２３、マウス２４、ビデオチップ２５、ディスプレイ２６、音源チップ２７、スピーカ２８、記憶部２９、通信部３０、ＣＰＵ（Central Processing Unit）３１などから構成される。なお、周辺機器制御チップ２２、ビデオチップ２５、音源チップ２７、記憶部２９、通信部３０、ＣＰＵ３１、カウント手段３２は、システムバス３３を介して相互に接続される。
【００４６】
周辺機器制御チップ２２は、キーボード２３やマウス２４に対して利用者が入力操作した情報をＣＰＵ３１に通知する機能を有している。また、ビデオチップ２５は、記憶部２９に記憶したコンテンツ情報などを画像信号としてディスプレイ２６へ出力し、コンテンツ情報に応じた画像をディスプレイ２６に表示する機能を有している。また、音源チップ２７は、記憶部２９に記憶したコンテンツ情報などを音声信号としてスピーカ２８へ出力し、コンテンツ情報に応じた音声をスピーカ２８に表示する機能を有している。
【００４７】
記憶部２９は、各種情報を記憶する書き換え可能なメモリであり、例えばハードディスクドライブなどで構成される。この記憶部２９には、コンテンツ情報を記憶する記憶領域４０、ＯＳ（Operating System）プログラムを記憶する記憶領域４１、情報処理プログラムを記憶する記憶領域４２などが設けられる。さらに、記憶部２９には、推定誤差（基準誤差）、基準時刻、基準カウント値、送信時カウント値、受信時カウント値などの時刻調整用データを記憶する記憶領域４３などが設けられ、推定誤差記憶手段、基準時刻記憶手段、基準カウント値記憶手段、送信時カウント値記憶手段、受信時カウント値記憶手段などとして機能する。
【００４８】
通信部３０は、ネットワーク２に接続するためのインターフェイスであり、この通信部３０からネットワーク２を介して他の端末装置１へ情報を送信することができ、また、他の端末装置１から送信される情報をネットワーク２を介して通信部３０で受信することができる。
【００４９】
ＣＰＵ３１は、記憶部２９の記憶領域４２に記憶している情報処理プログラムを読み出して実行することにより、時刻情報要求手段、時刻情報送信手段、時刻情報受信手段、推定誤差演算手段、時刻更新手段、計時手段などとして機能する。
【００５０】
なお、この情報処理プログラムは、例えば、ネットワーク２に接続されたサーバ（図示せず）から、通信部３０を介して、記憶部２９にダウンロードされるようにしてもよく、又ＣＤ−ＲＯＭ等の記録媒体に記録されてから図示しない記録媒体ドライブを介して、記憶部２９に読み込まれるようにしてもよい。
【００５１】
カウント手段３２は、単位時間（例えば、１ｍｓ）当たり１ずつカウント値をインクリメントするタイマである。なお、このカウント手段３２はＣＰＵ３１がＯＳプログラムを実行することにより実現するようにしてもよい。
【００５２】
ここで、記憶部２９、ＣＰＵ３１及びカウント手段３２により上述した計時手段が構成され、計時時刻Ｎｏｗ（ｓｅｌｆ）が計時される。この計時手段の計時処理は、ＣＰＵ３１が時刻演算手段として以下の式（１）の演算により行う。
【００５３】
Ｎｏｗ（ｓｅｌｆ）＝Ｔｂ＋（Ｃｘ―Ｃｂ）  ・・・（１）
【００５４】
上記（１）の演算に際し、ＣＰＵ３１は、ＯＳプログラムで計時している時刻を取得し、この時刻を基準時刻Ｔｂとして記憶部２９に記憶する。また、ＣＰＵ３１は、ＯＳプログラムで計時したタイミングでカウント手段３２から取得されるカウント値Ｃを基準カウント値Ｃｂとして記憶部２９に記憶する。そして、ＣＰＵ３１は、カウント手段３２による現在のカウント値Ｃｘから基準カウント値Ｃｂを減算し、当該演算結果を記憶部２９に記憶した基準時刻Ｔｂに加算した値を計時時刻Ｎｏｗ（ｓｅｌｆ）とする。
【００５５】
（端末装置１の具体的動作について）
以上のように構成された端末装置１の動作を図面を参照して具体的に説明する。図６は第１実施形態に係る端末装置１のメイン処理フローチャートである。なお、以下の各処理は、端末装置１のＣＰＵ３１が上述した各手段等として機能することによって実行されるものである。ここでは、特徴的な部分の動作を主として説明しており、一部の動作内容（例えば、コンテンツ情報の受信・再生動作など）は省略している。
【００５６】
図６に示すように、端末装置１においてメイン電源スイッチ（図示せず）がＯＮされたときやリセットスイッチ（図示せず）が操作されたとき、ＣＰＵ３１は、初期化処理を行う。この初期化処理において、ＣＰＵ３１は、記憶部２９に記憶したＯＳプログラムを実行してＯＳを起動した後、情報処理プログラムを実行状態として、制御部としての機能を動作状態とし（ステップＳ１）、時刻設定を行うと共に、通信システムＳへ参加してステップＳ２に処理を移行する。通信システムＳへの参加により端末装置１は他の端末装置１との間でコンテンツ情報を送受信することができる。
【００５７】
ここで、ＣＰＵ３１による時刻設定は、基準カウント値Ｃｂ、基準時刻Ｔｂ，基準誤差Ｅｂを記憶部２９に設定することによって行われる。具体的には、ＣＰＵ３１は、カウント手段３２が現在計時している時刻を基準カウント値Ｃｂとして記憶部２９に記憶する。同時に、ＣＰＵ３１は、ＯＳで計時している時刻を取得し、基準時刻Ｔｂとして記憶部２９に記憶する。さらに、ＣＰＵ３１は、予め記憶部２９に設定されている基準誤差の最大値Ｅｍａｘを基準誤差Ｅｂとして記憶部２９に記憶する。なお、この時刻設定は、すでに、記憶部２９に基準カウント値Ｃｂ、基準時刻Ｔｂ及び基準誤差Ｅｂが記憶されているときには、実行されない。なお、時刻の取得先は、ＯＳとせずに、通信部３０を介して外部のサーバ装置（例えば、ＮＴＰサーバ装置）などから取得するようにしてもよい。
【００５８】
次に、ＣＰＵ３１は、時刻調整の契機になっているか否かを判定する（ステップＳ２）。時刻調整の契機は、定期的（例えば、１時間に１回）に発生させることにより、定期的に時刻調整が可能となる。なお、時刻調整の契機をランダムに発生させるようにすることもできる。
【００５９】
この処理において、時刻調整の契機になっていると判定すると（ステップＳ２：Ｙｅｓ）、ＣＰＵ３１は、時刻調整処理を行う（ステップＳ３）。この時刻調整処理は、図７に示すステップＳ１０〜Ｓ１６の処理であり、後で詳述する。
【００６０】
一方、時刻調整の契機になっていないと判定すると（ステップＳ２：Ｎｏ）、ＣＰＵ３１は、他の端末装置１からネットワーク２及び通信部３０を介して時刻要求メッセージを受信したか否かを判定する（ステップＳ４）。
【００６１】
この処理において、他の端末装置１から時刻要求メッセージを受信したと判定すると（ステップＳ４：Ｙｅｓ）、ＣＰＵ３１は、時刻情報送信処理を行う（ステップＳ５）。この時刻情報送信処理は、図８に示すステップＳ２０〜Ｓ２１の処理であり、後で詳述する。
【００６２】
一方、他の端末装置１から時刻要求メッセージを受信していないと判定すると（ステップＳ４：Ｎｏ）、ＣＰＵ３１は、その他の処理要求があるか否かを判定する（ステップＳ６）。この処理において、その他の処理要求があると判定すると（ステップＳ６：Ｙｅｓ）、ＣＰＵ３１は、当該要求に応じた処理を行う（ステップＳ７）。
【００６３】
ステップＳ３，Ｓ５，Ｓ７の処理が終了したとき、又はその他の処理要求がないと判定したとき（ステップＳ６：Ｎｏ）、ＣＰＵ３１は、終了指示を検知したか否かを判定する（ステップＳ８）。例えば、自端末装置１の電源がＯＦＦ状態へ移行したとき、ＣＰＵ３１は、終了指示を検知する。
【００６４】
ステップＳ８において、終了指示を検知したと判定すると（ステップＳ８：Ｙｅｓ）、ＣＰＵ３１は、メイン処理を終了し、一方、終了指示を検知していないと判定すると（ステップＳ８：Ｎｏ）、ＣＰＵ３１は、ステップＳ２からの処理を繰り返す。
【００６５】
次に、ステップＳ３の時刻調整処理について図７のフローチャートを参照して具体的に説明する。図７は第１実施形態に係る端末装置１における時刻調整処理のフローチャートである。
【００６６】
図７に示すように、時刻調整処理を開始すると、ＣＰＵ３１は、計時時刻と推定誤差を要求する時刻要求メッセージを通信部３０及びネットワーク２を介して他の端末装置１(以下、「端末装置１Ａ」と呼ぶ。）へ送信する。また、ＣＰＵ３１は、時刻要求メッセージを送信した時のカウント手段３２のカウント値（Ｔｉｃｋ数)を送信時カウント値Ｃｓ（第１カウント値の一例）として記憶部２９（第１カウント記憶手段の一例）に記憶する（ステップＳ１０）。時刻要求メッセージの送信先である端末装置１Ａは、複数の端末装置１の中からＣＰＵ３１によりランダムに選択される。このように、ＣＰＵ３１は、他の端末装置１に対して当該他の端末装置１における計時時刻と推定誤差を要求する時刻情報要求手段として機能する。
【００６７】
次に、ＣＰＵ３１は、ステップＳ１０の処理終了後所定期間内に、時刻要求メッセージに対する返答メッセージを端末装置１Ａから通信部３０及びネットワーク２を介して受信したか否かを判定する（ステップＳ１１）。このとき、ＣＰＵ３１は、時刻要求メッセージに対する返答メッセージを端末装置１Ａから通信部３０及びネットワーク２を介して受信する時刻情報受信手段として機能する。
【００６８】
この処理において、返答メッセージを端末装置１Ａから受信したと判定すると（ステップＳ１１：Ｙｅｓ）、ＣＰＵ３１は、返答メッセージを受信した時のカウント手段３２のカウント値を受信時カウント値Ｃｒ（第２カウント値の一例）として記憶部２９（第２カウント記憶手段の一例）に記憶する（ステップＳ１２）。
【００６９】
さらに、ＣＰＵ３１は、受信した返答メッセージに含まれる情報を記憶部２９に記憶する（ステップＳ１３）。返答メッセージに含まれる情報としては、端末装置１Ａの計時手段の計時時刻Ｎｏｗ（Ａ）、計時時刻Ｎｏｗ（Ａ）の推定誤差Ｅ（Ａ）、端末装置１Ａの返答処理時間Ｐ（Ａ）などがある。なお、後述のように、ＣＰＵ３１は、計時手段の計時時刻Ｎｏｗ（ｓｅｌｆ）、推定誤差Ｅ（ｓｅｌｆ）、返答処理時間Ｐ（ｓｅｌｆ）を生成しており、計時時刻Ｎｏｗ（Ａ）、推定誤差Ｅ（Ａ）及び返答処理時間Ｐ（Ａ）は、端末装置１Ａの計時時刻Ｎｏｗ（ｓｅｌｆ）、推定誤差Ｅ（ｓｅｌｆ）及び返答処理時間Ｐ（ｓｅｌｆ）を意味する。
【００７０】
その後、ＣＰＵ３１は、以下の式（２）を用いて更新用推定誤差Ｅ（Ａ）’を演算する。
【００７１】
Ｅ（Ａ）’＝Ｅ（Ａ）＋｛（Ｃｒ―Ｃｓ）−Ｐ（Ａ）／２）｝  ・・・（２）
【００７２】
上記式（２）の演算に際し、ＣＰＵ３１は、記憶部２９から受信時カウント値Ｃｒ及び送信時カウント値Ｃｓを読み出す。そして、ＣＰＵ３１は、受信時カウント値Ｃｒから送信時カウント値Ｃｓを減算し、この値から返答処理時間Ｐ（Ａ）を２で除算した値を減算して、端末装置１Ａとの間の情報伝搬時間である｛（Ｃｒ―Ｃｓ）−Ｐ（Ａ）／２）｝を演算し、この演算結果に端末装置１Ａの推定誤差Ｅ（Ａ）を加算して、更新用推定誤差Ｅ（Ａ）’を算出する。このように、ＣＰＵ３１は、受信した端末装置１Ａの推定誤差Ｅ（Ａ）を含む誤差を更新用推定誤差Ｅ（Ａ）’として演算する推定誤差演算手段として機能する。特に、ＣＰＵ３１は、推定誤差演算手段として、受信した応答メッセージに含まれる推定誤差Ｅ（Ａ）に端末装置１Ａとの間の情報伝搬時間を加算して更新用推定誤差Ｅ（Ａ）’を演算する。この更新用推定誤差Ｅ（Ａ）’は、応答メッセージに含まれる計時時刻Ｎｏｗ（Ａ）で計時手段を更新したときに、この計時手段が計時する時刻に対する推測誤差となる。
【００７３】
また、ＣＰＵ３１は、記憶部２９に記憶した基準誤差Ｅｂを推定誤差Ｅ（ｓｅｌｆ）として設定する（ステップＳ１４）。
【００７４】
次に、ＣＰＵ３１は、更新用推定誤差Ｅ（Ａ）’が推定誤差Ｅ（ｓｅｌｆ）よりも小さいか否かを判定する（ステップＳ１５）。言い換えれば、ＣＰＵ３１は、この処理において、端末装置１Ａの計時時刻Ｎｏｗ（Ａ）に計時手段の時刻を調整したときの推定誤差が、計時手段による現在の計時時刻Ｎｏｗ（ｓｅｌｆ）の推定誤差Ｅ（ｓｅｌｆ）よりも小さくなるか否かが判定することになる。
【００７５】
この処理において、更新用推定誤差Ｅ（Ａ）’が推定誤差記憶手段１５に記憶した推定誤差である基準誤差Ｅｂよりも小さいと判定すると（ステップＳ１５：Ｙｅｓ）、ＣＰＵ３１は、自端末装置１の計時手段の計時時刻を調整する処理を行う（ステップＳ１６）。
【００７６】
具体的には、ＣＰＵ３１は、記憶部２９に記憶した基準カウント値Ｃｂを受信時カウント値Ｃｒにして、記憶部２９に記憶した基準カウント値Ｃｂを更新する。また、返答メッセージに含まれる端末装置１Ａの計時時刻Ｎｏｗ（Ａ）を基準時刻Ｔｂとして記憶部２９に記憶して、記憶部２９に記憶する基準時刻Ｔｂを更新する。
【００７７】
このとき、ＣＰＵ３１が受信した時点における計時時刻Ｎｏｗ（Ａ）の推定誤差は更新用推定誤差Ｅ（Ａ）’であり、調整前の計時手段の計時時刻Ｎｏｗ（ｓｅｌｆ）の推定誤差（推定誤差記憶手段１５に記憶されている基準誤差Ｅｂ）よりも小さい。従って、このように時計手段の計時時刻を更新することにより、計時時刻の精度が向上することになる。なお、計時手段の計時時刻Ｎｏｗ（ｓｅｌｆ）は、上述した式（１）のＣＰＵ３１による演算により導き出される。
【００７８】
また、ＣＰＵ３１は、記憶部２９に記憶する基準誤差Ｅｂを更新用推定誤差Ｅ（Ａ）’として記憶部２９に記憶する基準誤差Ｅｂを更新する。この更新用推定誤差Ｅ（Ａ）’は、ＣＰＵ３１が受信した時点における計時時刻Ｎｏｗ（Ａ）の推定誤差であり、次に計時手段の時刻調整を行うときに用いられることになる。従って、定期的に時刻情報調整処理を行うことにより計時手段の計時時刻Ｎｏｗ（ｓｅｌｆ）の精度を向上させることができる。
【００７９】
このように、ＣＰＵ３１は、推定誤差演算手段１６で演算した更新用推定誤差Ｅ（Ａ）’が推定誤差記憶手段１５に記憶した推定誤差（＝基準誤差Ｅｂ）よりも小さいとき、更新用推定誤差Ｅ（Ａ）’を推定誤差記憶手段１５に記憶して当該推定誤差記憶手段１５に記憶する基準誤差Ｅｂを更新し、端末装置１Ａから受信した当該端末装置１Ａの計時時刻に応じて計時手段の計時時刻を調整する時刻更新手段として機能する。
【００８０】
次に、ステップＳ５の時刻情報送信処理について図８のフローチャートを参照して具体的に説明する。図８は第１実施形態に係る端末装置１における時刻情報送信処理のフローチャートである。
【００８１】
図８に示すように、時刻情報送信処理を開始すると、ＣＰＵ３１は、カウント手段３２のカウント値を記憶部２９に第２受信時カウント値Ｃｒｒとして記憶する（ステップＳ２０）。
【００８２】
次に、ＣＰＵ３１は、ステップＳ４で受信したと判定した時刻要求メッセージに対する応答メッセージを生成し、通信部３０及びネットワーク２を介して時刻要求メッセージの送信元の他の端末装置１へ送信する（ステップＳ２１）。具体的には、ＣＰＵ３１は、計時手段による現在の計時時刻Ｎｏｗ（ｓｅｌｆ）、現在の計時時刻Ｎｏｗ（ｓｅｌｆ）の推定誤差Ｅ（ｓｅｌｆ）、返答処理時間Ｐ（ｓｅｌｆ）のそれぞれの情報を含む応答メッセージを生成する。このとき、ＣＰＵ３１は、上述した式（１）により計時時刻Ｎｏｗ（ｓｅｌｆ）を演算し、記憶部２９から基準誤差Ｅｂを取り出して、推定誤差Ｅ（ｓｅｌｆ）とする。
【００８３】
また、ＣＰＵ３１は、以下の式（３）を用いて返答処理時間Ｐ（ｓｅｌｆ）を演算する。
【００８４】
Ｐ（ｓｅｌｆ）＝Ｃｘ―Ｃｒｒ  ・・・（３）
【００８５】
上記式（３）の演算に際し、ＣＰＵ３１は、記憶部２９から第２受信時カウント値Ｃｒｒを取り出し、この第２受信時カウント値Ｃｒｒをカウント手段３２の現在のカウント値Ｃｘから減算することにより、返答処理時間Ｐ（ｓｅｌｆ）を算出する。この返答処理時間Ｐ（ｓｅｌｆ）は、時刻要求メッセージを受信してから応答メッセージを送信するまでの経過時間である。
【００８６】
このように、ＣＰＵ３１は、現在の計時時刻Ｎｏｗ（ｓｅｌｆ）、現在の計時時刻Ｎｏｗ（ｓｅｌｆ）の推定誤差Ｅ（ｓｅｌｆ）、返答処理時間Ｐ（ｓｅｌｆ）を生成して、これらの情報を含む応答メッセージを生成し、時刻要求メッセージの送信元の他の端末装置１へ送信する時刻情報送信手段として機能する。
【００８７】
このように、第１実施形態に係る端末装置１では、計時手段を有する端末装置において、他の端末装置の計時手段による計時時刻で自装置の計時手段を調整することができるので、サーバ装置から各端末装置が基準時刻を取得する場合に比べて、ネットワークにおけるトラフィック集中を抑制することができる。
【００８８】
しかも、他の端末装置１から取得した計時時刻に対する推定誤差が自装置の計時時刻に対する推定誤差以上のときには、計時手段の計時時刻の調整を行わないようにしており、これにより、自装置の計時手段による計時時刻の精度の低下を抑制しつつ時刻調整が可能となる。
【００８９】
［２．第２実施形態］
次に、第２実施形態に係る通信システムについて図面を参照して説明する。
【００９０】
第２実施形態に係る通信システムは、各端末装置において、計時手段の時刻調整を行ってからの経過時間に応じて推定誤差を増加させるようにしたものである。これは時刻調整されない期間が長ければ長いほど計時手段の計時誤差が大きくなるためであり、この計時誤差を考慮することで推定誤差の精度を向上させることとしている。第１実施形態とは、推定誤差演算手段１６及び記憶部２９に記憶した情報処理プログラムが異なるのみであるため、端末装置の構成の説明は省略し、同一符号を付して説明するものとする。
【００９１】
第２実施形態に係る端末装置１の時刻調整の概要について、図面を参照して説明する。図９は第２実施形態に係る端末装置１の時刻調整の概要を説明するための図である。
【００９２】
図９に示すように、端末装置１ａが端末装置１ｂから時刻要求メッセージを受信したとする。このとき端末装置１ａは、基準誤差Ｅｂを推定誤差記憶手段１５に最後に記憶したときからの経過時間ｔａに所定の誤差係数Ｅｃを乗算し、この演算結果を推定誤差記憶手段１５に記憶した基準誤差Ｅｂに加算した値を推定誤差Ｅ（ｓｅｌｆ）としている。そして、このように演算した推定誤差Ｅ（ｓｅｌｆ）を含む返答メッセージを端末装置１ｂに送信するようにしている。
【００９３】
このようにすることで、基準誤差Ｅｂを推定誤差記憶手段１５に最後に記憶したときからの経過時間ｔａが長いために、計時手段１０による計時時刻の誤差（以下、「経時誤差」とも呼ぶ。）が増加しているときであっても、その増加した誤差を考慮した推定誤差Ｅ（ｓｅｌｆ）を時刻要求メッセージの送信元の他の端末装置１へ通知でき、計時手段の計時時刻の調整を精度よく行うことができる。
【００９４】
例えば、端末装置１ａ，１ｂがそれぞれ自装置の推定誤差記憶手段１５に記憶している基準誤差ＥｂをＥｂ１，Ｅｂ２とし、基準誤差Ｅｂ１，Ｅｂ２を記憶してからの経過時間をそれぞれ経過時間ｔａ、ｔｂとし、端末装置１ａから端末装置１ｂへの情報伝搬時間をＥｄする。
【００９５】
そして、端末装置１ａが端末装置１ｂから時刻要求メッセージを受信したとき、端末装置１ａの推定誤差演算手段１６は、予め設定されている誤差係数Ｅｃ１に経過時間ｔａを乗算して経時誤差を算出し、この算出結果に基準誤差Ｅｂ１を加算して、推定誤差Ｅ（ｓｅｌｆ）として応答メッセージに含める。
【００９６】
端末装置１ｂが端末装置１ａからこの応答メッセージを受信したとき、端末装置１ｂの推定誤差演算手段１６は、予め設定されている誤差係数Ｅｃ２に経過時間ｔａを乗算し、この演算結果に推定誤差記憶手段１５に記憶している基準誤差Ｅｂ２を加算して、推定誤差Ｅ（ｓｅｌｆ）とする。
【００９７】
そして、端末装置１ｂの時刻更新手段１１は、応答メッセージに含まれる端末装置１ａの推定誤差Ｅ（ｓｅｌｆ）に情報伝搬時間を加算した更新推定誤差Ｅ（Ａ）’が、自装置の推定誤差演算手段１６により演算した推定誤差Ｅ（ｓｅｌｆ）よりも小さいか否かを判定する。
【００９８】
更新推定誤差Ｅ（Ａ）’が、自装置の推定誤差演算手段１６により演算した推定誤差Ｅ（ｓｅｌｆ）よりも小さいとき、端末装置１ｂの時刻更新手段１１は、応答メッセージに含まれる端末装置１ａの計時時刻Ｎｏｗ（ｓｅｌｆ）に計時手段１０の計時時刻を調整する。
【００９９】
このように、第２実施形態における端末装置１では、基準誤差Ｅｂを推定誤差記憶手段１５に最後に記憶したときからの経過時間を考慮することで、計時手段１０の計時時刻の調整をより精度よく行うようにしている。
【０１００】
（端末装置１の具体的動作について）
次に、第２実施形態に係る端末装置１の具体的動作の一例について図面を参照して説明する。図１０は第２実施形態に係る端末装置１のメイン処理フローチャート、図１１は第２実施形態に係る端末装置１における時刻調整処理のフローチャート、図１２は第２実施形態に係る端末装置１における時刻情報送信処理のフローチャートである。
【０１０１】
図１０に示すように、端末装置１のＣＰＵ３１は、メイン処理を開始すると、初期化処理において、時刻設定を行う（ステップＳ３１）。この時刻設定は、基準カウント値Ｃｂ、基準時刻Ｔｂ，基準誤差Ｅｂの記憶部２９への設定に加え、誤差係数Ｅｃを記憶部２９へ設定することによって行われる。誤差係数Ｅｃの記憶部２９への設定は、ＣＰＵ３１が、予め記憶部２９に設定されている誤差計数の最大値「１」を誤差係数Ｅｃとして記憶部２９に記憶することによって行われる。なお、基準カウント値Ｃｂ、基準時刻Ｔｂ，基準誤差Ｅｂの記憶部２９への設定については、第１実施形態と同様である。また、ステップＳ３２〜Ｓ３８の処理も第１実施形態の処理（図６のステップＳ２〜Ｓ８）と同様である。
【０１０２】
このように、初期化処理において、誤差計数の最大値「１」が誤差係数Ｅｃとして設定されることになる。
【０１０３】
第２実施形態に係る端末装置１の時刻調整処理は、図１１に示すステップＳ４０〜Ｓ４６の処理であるが、ステップＳ４０〜Ｓ４３，Ｓ４５については、第１実施形態の処理（図７のステップＳ１０〜Ｓ１３，Ｓ１５）と同様であり、ここでは、ステップＳ４４及びステップＳ４６の処理について説明する。
【０１０４】
ステップＳ４４において、ＣＰＵ３１は、以下の式（４）に示す演算により推定誤差Ｅ（ｓｅｌｆ）を算出する。
【０１０５】
Ｅ（ｓｅｌｆ）＝Ｅｂ＋Ｅｃ×（Ｃｒ−Ｃｂ）  ・・・（４）
【０１０６】
上記式（４）の演算に際し、ＣＰＵ３１は、記憶部２９から基準誤差Ｅｂ、誤差係数Ｅｃを読み出す。その後、ＣＰＵ３１は、記憶部２９に記憶した受信時カウント値Ｃｒから基準カウント値Ｃｂを減算することにより、推定誤差Ｅ（ｓｅｌｆ）であった基準誤差Ｅｂを記憶部２９に最後に記憶した時からの経過時間ｔを算出する。そして、ＣＰＵ３１は、誤差係数Ｅｃに経過時間ｔを乗算した値である経時誤差を基準誤差Ｅｂに加算した値を推定誤差Ｅ（ｓｅｌｆ）とする。また、第１実施形態と同様に更新用推定誤差Ｅ（Ａ）’を演算する。
【０１０７】
このように、端末装置１は、計時手段による計時時刻を最後に調整したときからの経過時間を考慮して、自装置の推定誤差Ｅ（ｓｅｌｆ）を算出し、一方で端末装置１Ａから取得する推定誤差Ｅ（Ａ）と同様にこの経過時間を考慮されていることから、自装置の計時手段の推定誤差Ｅ（ｓｅｌｆ）と端末装置１Ａの計時手段の推定誤差Ｅ（Ａ）の信頼性が向上する。従って、端末装置１の計時手段による計時時刻の精度の低下をより抑制しつつ時刻調整が可能となる。
【０１０８】
また、ステップＳ４６において、ＣＰＵ３１は、以下の式（５）を用いて誤差係数Ｅｃを演算する。
【０１０９】
Ｅｃ＝｜Ｎｏｗ（ｓｅｌｆ）−Ｎｏｗ（Ａ）｜÷（Ｃｒ−Ｃｂ）  ・・・（５）
【０１１０】
上記式（５）の演算に際し、ＣＰＵ３１は、自装置の計時手段による計時時刻Ｎｏｗ（ｓｅｌｆ）と端末装置１Ａの計時時刻Ｎｏｗ（Ａ）との差を演算し、この演算結果を経過時間ｔ（＝Ｃｒ−Ｃｂ）で除算した値を誤差係数Ｅｃとして記憶部２９に記憶する。
【０１１１】
このように誤差係数Ｅｃを更新することにより、短期間に計時時刻が大きくずれる計時手段ほど誤差係数がＥｃが大きくなり、推定誤差Ｅ（ｓｅｌｆ）の信頼性を向上させることができる。
【０１１２】
第２実施形態に係る端末装置１の時刻情報送信処理は、図１２に示すステップＳ５０，Ｓ５１の処理であるが、ステップＳ５０については、第１実施形態の処理（図８のステップＳ２０）と同様であり、ここでは、ステップＳ５１の処理について説明する。
【０１１３】
ステップＳ５１において、ＣＰＵ３１は、計時時刻Ｎｏｗ（ｓｅｌｆ）、現在の計時時刻の推定誤差Ｅ（ｓｅｌｆ）、返答処理時間Ｐ（ｓｅｌｆ）のそれぞれの情報を含む応答メッセージを生成し、通信部３０及びネットワーク２を介して時刻要求メッセージの送信元の他の端末装置１へ送信する。
【０１１４】
このとき、ＣＰＵ３１は、上記式（４）を用いて推定誤差Ｅ（ｓｅｌｆ）を演算する。
【０１１５】
すなわち、ＣＰＵ３１は、記憶部２９から基準誤差Ｅｂ及び誤差係数Ｅｃを読み出し、この誤差係数Ｅｃに経過時間ｔ（＝Ｃｒ−Ｃｂ）を乗算した値に基準誤差Ｅｂを加算した値を推定誤差Ｅ（ｓｅｌｆ）とする。
【０１１６】
なお、計時時刻Ｎｏｗ（ｓｅｌｆ）、返答処理時間Ｐ（ｓｅｌｆ）の算出は、第１実施形態と同様である。
【０１１７】
このように誤差係数を演算することにより、計時手段自体の計時誤差を考慮して、推定誤差の精度を向上することができる。従って、計時手段の計時時刻の調整をより精度よく行うことができる。
【０１１８】
［３．第３実施形態］
次に、第３実施形態に係る通信システムについて図面を参照して説明する。
【０１１９】
上述の第１及び第２実施形態においては、計時手段の計時時刻が実際の時刻と大幅にずれているにもかかわらず、推定誤差が小さい端末装置があるとき、この端末装置１から取得した計時時刻に基づいて、計時手段を調整してしまう虞がある。例えば、故意に、計時手段の計時時刻が実際の時刻と大幅にずれ、かつ推定誤差が小さい悪意のある端末装置１が通信システムＳ内に配置されると、通信システムＳ内の複数の端末装置１で計時手段の計時時刻が大幅にずれてしまう。通信システムＳはＰ２Ｐ型の通信システムであり、このような悪意のある端末装置を完全に排除することが困難である。
【０１２０】
そこで、第３実施形態に係る通信システムは、各端末装置において、調整前後の計時手段の計時時刻の差を推定誤差に反映させることで、この差が大きい場合に調整後の推定誤差を大きくするようにしている。第１実施形態とは、推定誤差演算手段１６及び記憶部２９に記憶した情報処理プログラムが異なるのみであるため、端末装置の構成の説明は省略し、同一符号を付して説明するものとする。
【０１２１】
第３実施形態に係る端末装置１の時刻調整の概要について、図面を参照して説明する。図１３は第３実施形態に係る端末装置１の時刻調整の概要を説明するための図である。
【０１２２】
図１３に示すように、端末装置１ａが端末装置１ｂから時刻要求メッセージを受信したとする。このとき端末装置１ａは、計時時刻Ｔ１と推定誤差Ｅ（ｓｅｌｆ）＝Ｅｂ１を含む返答メッセージを端末装置１ｂへ送信する。
【０１２３】
端末装置１ｂが端末装置１ａからこの応答メッセージを受信したとき、端末装置１ｂの推定誤差演算手段１６は、この応答メッセージから端末装置１ａの計時時刻Ｔ１を取り出す。そして、端末装置１ｂの推定誤差演算手段１６は、自装置の計時手段１０の計時時刻Ｔ２を取得し、この計時時刻Ｔ２と端末装置１ａの計時時刻Ｔ１との差｜Ｔ１−Ｔ２｜を演算する。また、推定誤差演算手段１６は、推定誤差記憶手段１５から基準誤差Ｅｂを読み出す。そして、推定誤差演算手段１６は、この基準誤差Ｅｂに差｜Ｔ１−Ｔ２｜を加算した値を推定誤差Ｅ（ｓｅｌｆ）する。このように演算した推定誤差Ｅ（ｓｅｌｆ）は基準誤差Ｅｂとして推定誤差演算手段１６により推定誤差記憶手段１５へ記憶される。
【０１２４】
このように、第３実施形態における端末装置１では、調整前後の計時手段１０の計時時刻の差を推定誤差Ｅ（ｓｅｌｆ）に反映させることで、この差が大きい場合に調整後の推定誤差Ｅ（ｓｅｌｆ）を大きくするようにしている。
【０１２５】
（端末装置１の具体的動作について）
次に、第３実施形態に係る端末装置１の具体的動作の一例について図面を参照して説明する。図１４は第３実施形態に係る端末装置１における時刻調整処理のフローチャートである。なお、メイン処理及び時刻情報送信処理は第１実施形態と同様の処理（図６のステップＳ１〜Ｓ８、図８のステップＳ２０，２１）である。
【０１２６】
第３実施形態に係る端末装置１の時刻調整処理は、図１４に示すステップＳ６０〜Ｓ６６の処理であるが、ステップＳ６０〜Ｓ６５については、第１実施形態の処理（図７のステップＳ１０〜Ｓ１５）と同様であり、ここでは、ステップＳ６６の処理について説明する。
【０１２７】
ステップＳ６６において、ＣＰＵ３１は、以下の式（６）を用いて基準誤差Ｅｂを演算する。
【０１２８】
Ｅｂ＝Ｅ（Ａ）’＋｜Ｎｏｗ（ｓｅｌｆ）−Ｎｏｗ（Ａ）｜  ・・・（６）
【０１２９】
上記式（６）の演算に際し、ＣＰＵ３１は、自装置の計時手段による計時時刻Ｎｏｗ（ｓｅｌｆ）と端末装置１Ａの計時時刻Ｎｏｗ（Ａ）との差を演算し、この演算結果に更新用推定誤差Ｅ（Ａ）’を加算した値を自装置の推定誤差Ｅ（ｓｅｌｆ）となる基準誤差Ｅｂとして記憶部２９に記憶する。このようにＣＰＵ３１は、自装置の計時手段による計時時刻Ｎｏｗ（ｓｅｌｆ）と受信した計時時刻Ｎｏｗ（Ａ）との差分｜Ｎｏｗ（ｓｅｌｆ）−Ｎｏｗ（Ａ）｜に更新用推定誤差Ｅ（Ａ）’を加算した値を、記憶部２９に記憶する基準誤差Ｅｂとする時刻更新手段として機能する。
【０１３０】
このように基準誤差Ｅｂを設定することにより、調整前後の計時手段１０の計時時刻の差が大きい場合に調整後の基準誤差Ｅｂが多くなり、次に時刻調整処理を行うときに推定誤差Ｅ（ｓｅｌｆ）が大きくなる。
【０１３１】
従って、例えば、故意に計時時刻をずらしつつ、推定誤差を小さくした端末装置１の計時時刻で計時手段を調整してしまったとしても、次の時刻調整処理で計時手段の調整が行われる確率を高くすることができ、計時時刻がずれた状態を短期間に解消することができる。
【０１３２】
以上、本発明の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【０１３３】
例えば、第２実施形態の端末装置１において、基準誤差Ｅｂを算出する際に、第３実施形態の端末装置１のように調整前後の計時手段の計時時刻の差を推定誤差に反映させるようにしてもよい。
【０１３４】
また、第１実施形態では、情報伝搬時間を考慮して更新用推定誤差を算出したが、計時手段の時刻調整を行ってからの経過時間に応じて推定誤差を増加させるようなときには情報伝搬時間を考慮して更新用推定誤差を算出しないようにしてもよい。
【図面の簡単な説明】
【０１３５】
【図１】第１実施形態に係る通信システムの概略構成を示す図である。
【図２】第１実施形態に係る通信システムの端末装置の概略構成を示す図である。
【図３】第１実施形態に係る端末装置の時刻調整の概要を説明するための図である。
【図４】第１実施形態に係る端末装置の時刻調整の概要を説明するための図である。
【図５】第１実施形態の通信システムの端末装置の具体的構成を示す図である。
【図６】第１実施形態に係る端末装置のメイン処理フローチャートである。
【図７】第１実施形態に係る端末装置における時刻調整処理のフローチャートである。
【図８】第１実施形態に係る端末装置における時刻情報送信処理のフローチャートである。
【図９】第２実施形態に係る端末装置の時刻調整の概要を説明するための図である。
【図１０】第２実施形態に係る端末装置のメイン処理フローチャートである。
【図１１】第２実施形態に係る端末装置における時刻調整処理のフローチャートである。
【図１２】第２実施形態に係る端末装置における時刻情報送信処理のフローチャートである。
【図１３】第３実施形態に係る端末装置の時刻調整の概要を説明するための図である。
【図１４】第３実施形態に係る端末装置における時刻調整処理のフローチャートである。
【符号の説明】
【０１３６】
Ｓ  通信システム
１  端末装置
１０  計時手段
１１  時刻更新手段
１２  時刻情報要求手段
１３  時刻情報受信手段１４  時刻情報送信手段
１５  推定誤差記憶手段
１６  推定誤差演算手段
２９  記憶部
３０  通信部
３１  ＣＰＵ
３２  カウント手段
【図１】
2010078529.tif 000003
【図２】
2010078529.tif 000004
【図３】
2010078529.tif 000005
【図４】
2010078529.tif 000006
【図５】
2010078529.tif 000007
【図６】
2010078529.tif 000008
【図７】
2010078529.tif 000009
【図８】
2010078529.tif 000010
【図９】
2010078529.tif 000011
【図１０】
2010078529.tif 000012
【図１１】
2010078529.tif 000013
【図１２】
2010078529.tif 000014
【図１３】
2010078529.tif 000015
【図１４】
2010078529.tif 000016