(57)【要約】      （修正有）【課題】より早いタイミングでのデータの同時刻配信を実現すること。【解決手段】データ配信システムは、複数の中継装置を介して配信先にデータを送信する。通信装置は、中継装置の前回の送信時刻（第１送信時刻）から、前回の送信予定時刻（第１送信予定時刻）を減算した第１差分時間を、複数の中継装置から受信して第１記憶部に格納し、第１記憶部の差分時間群から特定の第１差分時間を取得して加算時間ｔ２を更新し、配信時刻ｔ１に加算時間を加算して今回の送信予定時刻（第２送信予定時刻ｔ３）を生成し、第２送信予定時刻をデータに付与して配信する。中継装置は、今回の送信時刻（第２送信時刻ｔ４１）から第２送信予定時刻を減算して第２差分時間ｔ５を算出し、第２差分時間が負の値である場合、現在時刻の更新により第２差分時間を再算出し、負の値でなくなった場合に配信先に送信し、負の値である第２差分時間を通信装置に送信する。【選択図】図１２
2017228954.tif 000002
【特許請求の範囲】
【請求項１】
各々配信先に通信可能に接続されている複数の中継装置と、前記複数の中継装置を介して前記各配信先にデータを送信する通信装置と、を有するデータ配信システムであって、
前記通信装置は、
前記中継装置が前記通信装置から前記データを受信してから前記配信先に送信するまでの間に取得した前記データの前回の送信時刻である第１送信時刻から、前記通信装置が指定した前記複数の中継装置から前記各配信先への前記データの前回の送信予定時刻である第１送信予定時刻を減算した第１差分時間を、前記複数の中継装置から受信して、第１記憶部に格納する第１格納処理と、
前記第１格納処理によって前記第１記憶部に格納された場合、前記第１記憶部に格納された差分時間群から特定の第１差分時間を取得して前記特定の第１差分時間の累積結果である加算時間に加算することにより、前記加算時間を更新する更新処理と、
前記各配信先へ前記データを配信する配信時刻に前記更新処理によって更新された前記加算時間を加算することにより、今回の送信予定時刻である第２送信予定時刻を生成する生成処理と、
前記生成処理によって生成された前記第２送信予定時刻を前記データに付与して、前記データを前記複数の中継装置を介して前記配信先へ配信する配信処理と、を実行し、
前記複数の中継装置の各々は、
前記第２送信予定時刻が付与された前記データを受信する受信処理と、
前記受信処理によって前記データを受信してから前記配信先に送信するまでの間に取得した現在時刻を前記データの今回の送信時刻である第２送信時刻とする場合、前記第２送信時刻から前記データに付与された前記第２送信予定時刻を減算することにより、第２差分時間を算出する算出処理と、
前記第２差分時間が負の値であるか否かを判断する判断処理と、
前記第２差分時間が負の値である場合、前記現在時刻の更新により前記第２差分時間を再算出し、前記第２差分時間が負の値でなくなった場合に前記データを前記配信先に送信する同期処理と、
負の値であると判断された前記第２差分時間を前記第１差分時間として前記通信装置に送信する送信処理と、
を実行することを特徴とするデータ配信システム。
【請求項２】
請求項１に記載のデータ配信システムであって、
前記通信装置は、前記更新処理では、前記第１記憶部に格納された前記差分時間群のうち過去第１所定期間内の第１差分時間群から前記特定の第１差分時間を取得して前記加算時間に加算することにより、前記加算時間を更新することを特徴とするデータ配信システム。
【請求項３】
請求項２に記載のデータ配信システムであって、
前記通信装置は、前記更新処理では、前記第１差分時間群から最小値でない前記特定の第１差分時間を取得して前記加算時間に加算することにより、前記加算時間を更新することを特徴とするデータ配信システム。
【請求項４】
請求項１に記載のデータ配信システムであって、
前記中継装置は、
前記同期処理では、前記判断処理によって前記第２差分時間が負の値でないと判断された場合、前記データを前記配信先に送信し、
前記送信処理では、負の値でないと判断された前記第２差分時間を前記第１差分時間として前記通信装置に送信することを特徴とするデータ配信システム。
【請求項５】
請求項１に記載のデータ配信システムであって、
前記中継装置は、
前記算出処理によって算出された前記第２差分時間を第２記憶部に格納する第２格納処理を実行し、
前記送信処理では、前記第２格納処理によって前記第２差分時間が前記第２記憶部に格納された場合、前記第２記憶部の過去第２所定期間内の第２差分時間群から、特定の第２差分時間を取得して、前記第１差分時間として前記通信装置に送信することを特徴とするデータ配信システム。
【請求項６】
請求項５に記載のデータ配信システムであって、
前記中継装置は、前記送信処理では、前記第２差分時間群から最大値でない前記特定の第２差分時間を取得して前記通信装置に送信することを特徴とするデータ配信システム。
【請求項７】
請求項１に記載のデータ配信システムであって、
前記中継装置は、
前記同期処理では、前記判断処理によって前記第２差分時間が負の値でないと判断された場合、前記データを前記配信先に送信し、
前記送信処理では、負の値でないと判断された前記第２差分時間が０である場合、前記第２差分時間を前記通信装置に送信しないことを特徴とするデータ配信システム。
【請求項８】
各々配信先に通信可能に接続されている複数の中継装置と、前記複数の中継装置を介して前記各配信先にデータを送信する通信装置と、によるデータ配信方法であって、
前記通信装置は、
前記中継装置が前記通信装置から前記データを受信してから前記配信先に送信するまでの間に取得した前記データの前回の送信時刻である第１送信時刻から、前記通信装置が指定した前記複数の中継装置から前記各配信先への前記データの前回の送信予定時刻である第１送信予定時刻を減算した第１差分時間を、前記複数の中継装置から受信して、第１記憶部に格納する第１格納処理と、
前記第１格納処理によって前記第１記憶部に格納された場合、前記第１記憶部に格納された差分時間群から特定の第１差分時間を取得して前記特定の第１差分時間の累積結果である加算時間に加算することにより、前記加算時間を更新する更新処理と、
前記各配信先へ前記データを配信する配信時刻に前記更新処理によって更新された前記加算時間を加算することにより、今回の送信予定時刻である第２送信予定時刻を生成する生成処理と、
前記生成処理によって生成された前記第２送信予定時刻を前記データに付与して、前記データを前記複数の中継装置を介して前記配信先へ配信する配信処理と、を実行し、
前記複数の中継装置の各々は、
前記第２送信予定時刻が付与された前記データを受信する受信処理と、
前記受信処理によって前記データを受信してから前記配信先に送信するまでの間に取得した現在時刻を前記データの今回の送信時刻である第２送信時刻とする場合、前記第２送信時刻から前記データに付与された前記第２送信予定時刻を減算することにより、第２差分時間を算出する算出処理と、
前記第２差分時間が負の値であるか否かを判断する判断処理と、
前記第２差分時間が負の値である場合、前記現在時刻の更新により前記第２差分時間を再算出し、前記第２差分時間が負の値でなくなった場合に前記データを前記配信先に送信する同期処理と、
負の値であると判断された前記第２差分時間を前記第１差分時間として前記通信装置に送信する送信処理と、
を実行することを特徴とするデータ配信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを配信するデータ配信システムおよびデータ配信方法に関する。
【背景技術】
【０００２】
金融証券業界のネットワークは、取扱う情報の価値の高さから、情報の伝達時刻の公平性を向上させることが求められている。金融証券業界のネットワークは、各システムや利用者との通信にＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）マルチキャスト通信を利用することで、１対ｎ通信を実現する。近年では、利用者に情報を提供する際に、時間的公平性を持たせた上で可能な限り遅延のないパケット同時配信のための仕組みが必要とされている。
【０００３】
インターネットの普及に伴い、ネットワークに接続するための方法、形態は多岐に渡っている。また、ネットワークに接続する際の物理的距離は各利用者によって異なる。そのような状況下において、とあるシステムからＩＰマルチキャスト通信を使用しデータを配信すると、配信されたパケットは通信キャリアのネットワーク内の転送装置の遅延や物理的な距離による伝送遅延などが原因で必ずしも配信されたパケットが全利用者に同一時刻で配信されるとは限らない。金融証券業界においては取扱う情報の価値の高さから、情報の伝達時刻の公平性を向上させることが求められている。
【０００４】
パケットの同時刻配信に関する技術は、たとえば、特許文献１に開示されている。特許文献１の技術は、予め伝送遅延を計算し、パケットの送出タイミングをずらす機能を有するパケット同期装置を使用することで拠点の位置に関わらず同一時刻にパケットを到着させる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−２５３５０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１では、各クライアントからパケット同期装置に到着連絡パケットを、クライアント側にパケットが到着する度に送出する必要がある。また、パケット同期装置は、到着連絡パケットを受信する度に宛先毎の遅延時間を計算する必要がある。加えて、パケット同期装置は、遅延時間の精度向上のため、遅延時間を何回か計測し、その平均値を用いるが、伝送路の状態によって連続して遅延時間が更新されることや実際に伝送路にて遅延する時間よりも短い遅延時間を設定してしまう場合がある。
【０００７】
本発明は、より早いタイミングでのデータの同時刻配信を実現することを目的とする。
【課題を解決するための手段】
【０００８】
本願において開示される発明の一側面となるデータ配信システムおよびデータ配信方法は、各々配信先に通信可能に接続されている複数の中継装置と、前記複数の中継装置を介して前記各配信先にデータを送信する通信装置と、を有するデータ配信システムおよびデータ配信方法であって、前記通信装置は、前記中継装置が前記通信装置から前記データを受信してから前記配信先に送信するまでの間に取得した前記データの前回の送信時刻である第１送信時刻から、前記通信装置が指定した前記複数の中継装置から前記各配信先への前記データの前回の送信予定時刻である第１送信予定時刻を減算した第１差分時間を、前記複数の中継装置から受信して、第１記憶部に格納する第１格納処理と、前記第１格納処理によって前記第１記憶部に格納された場合、前記第１記憶部に格納された差分時間群から特定の第１差分時間を取得して前記特定の第１差分時間の累積結果である加算時間に加算することにより、前記加算時間を更新する更新処理と、前記各配信先へ前記データを配信する配信時刻に前記更新処理によって更新された前記加算時間を加算することにより、今回の送信予定時刻である第２送信予定時刻を生成する生成処理と、前記生成処理によって生成された前記第２送信予定時刻を前記データに付与して、前記データを前記複数の中継装置を介して前記配信先へ配信する配信処理と、を実行し、前記複数の中継装置の各々は、前記第２送信予定時刻が付与された前記データを受信する受信処理と、前記受信処理によって前記データを受信してから前記配信先に送信するまでの間に取得した現在時刻を前記データの今回の送信時刻である第２送信時刻とする場合、前記第２送信時刻から前記データに付与された前記第２送信予定時刻を減算することにより、第２差分時間を算出する算出処理と、前記第２差分時間が負の値であるか否かを判断する判断処理と、前記第２差分時間が負の値である場合、前記現在時刻の更新により前記第２差分時間を再算出し、前記第２差分時間が負の値でなくなった場合に前記データを前記配信先に送信する同期処理と、負の値であると判断された前記第２差分時間を前記第１差分時間として前記通信装置に送信する送信処理と、を実行することを特徴とする。
【発明の効果】
【０００９】
本発明の代表的な実施の形態によれば、より早いタイミングでのデータの同時刻配信を実現することができる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【００１０】
【図１】図１は、本実施例にかかるデータ配信システムのシステム構成例を示す説明図である。
【図２】図２は、第１終端装置のハードウェア構成例を示すブロック図である。
【図３】図３は、第２終端装置のハードウェア構成例を示すブロック図である。
【図４】図４は、本実施例にかかるデータ配信システムで送受信されるフレームの一例を示す説明図である。
【図５】図５は、第１差分時間保管テーブルの記憶内容例を示す説明図である。
【図６】図６は、第２差分時間保管テーブルの記憶内容例を示す説明図である。
【図７】図７は、第１終端装置によるフレーム転送処理手順例を示すフローチャートである。
【図８】図８は、第２終端装置によるフレーム転送処理手順例を示すフローチャートである。
【図９】図９は、第１差分時間調整処理（ステップＳ８１０）の詳細な処理手順例を示すフローチャートである。
【図１０】図１０は、第２差分時間調整処理（ステップＳ８１４）の詳細な処理手順例を示すフローチャートである。
【図１１】図１１は、第１終端装置による加算時間更新処理の詳細な処理手順例を示すフローチャートである。
【図１２】図１２は、本実施例に係るデータ同時配信調整例を示す説明図である。
【図１３】図１３は、差分時間の推移を示すグラフである。
【発明を実施するための形態】
【００１１】
本実施例にかかるデータ配信システムは、たとえば、クライアントサーバ型のネットワークにおいて、同一パケットを複数のクライアントへ配信する際に、物理的距離に関わらず、データ配信からより早いタイミングで同時刻配信を実現する。これにより、簡易かつ高精度にパケットを各拠点へ同一時刻に到着させることができ、可能な限り伝送遅延時間を抑制することができる。以下、本データ配信システムの実施例について説明する。
【００１２】
＜データ配信システムの構成例＞
図１は、本実施例にかかるデータ配信システムのシステム構成例を示す説明図である。データ配信システム１００は、アクセスポイント１０１と、拠点群Ｂｓと、を有する。アクセスポイント１０１および拠点群Ｂｓは、キャリア網１０２により通信可能に接続される。また、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）衛星１０３は、時刻データを配信する。
【００１３】
アクセスポイント１０１は、データ配信サーバ１１１と、基幹ネットワーク１１２と、第１終端装置１１３と、を有する。データ配信サーバ１１１は、拠点Ｂｉ（ｉは１≦ｉ≦ｎを満たす整数。ｎは拠点群Ｂｓ内の拠点Ｂｉの総数）に各種データを配信する。本実施例では、データ配信サーバ１１１から拠点群Ｂｓに配信されるデータを、各拠点Ｂｉに同時到着させる。基幹ネットワーク１１２は、第１終端装置１１３とデータ配信サーバ１１１とを通信可能に接続するネットワークである。
【００１４】
第１終端装置１１３は、データ配信サーバ１１１からのデータをキャリア網１０２を介して宛先となる拠点Ｂｉに送信する通信装置である。また、第１終端装置１１３は、拠点Ｂｉからキャリア網１０２を介して送信されてきたデータを受信して、データ配信サーバ１１１に送信する。また、第１終端装置１１３は、ＧＰＳ衛星１０３から時刻データを受信して、第２終端装置１０４ｂｉと時刻同期する。
【００１５】
拠点群Ｂｓは、拠点Ｂ１〜Ｂｎを有する。拠点Ｂｉは、第２終端装置１０４ｂｉと、拠点ルータ１０５ｂｉと、拠点ＬＡＮ１０６ｂｉ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）１０６ｂｉと、クライアント１０７ｂｉと、を有する。第２終端装置１０４ｂｉは、拠点ＬＡＮ１０６ｂｉからのデータを拠点ルータ１０５ｂｉを介して宛先となるアクセスポイント１０１に送信したり、アクセスポイント１０１からキャリア網１０２を介して送信されてきたデータを受信して、拠点ＬＡＮ１０６ｂｉに送信したりする中継装置である。
【００１６】
また、第２終端装置１０４ｂｉは、ＧＰＳ衛星１０３から時刻データを受信して、第１終端装置１１３と時刻同期する。拠点ルータ１０５ｂｉは、第２終端装置１０４ｂｉと拠点ＬＡＮ１０６ｂｉとを通信可能に接続する。拠点ＬＡＮ１０６ｂｉは、データ配信サーバ１１１から配信されるデータを受信するクライアント１０７ｂｉが接続されているＬＡＮである。クライアント１０７ｂｉは、データ配信サーバ１１１からのデータの配信先となる通信装置である。
【００１７】
なお、第１終端装置１１３および第２終端装置１０４ｂｉは、ＧＰＳ衛星１０３から受信した時刻を基準とするが、ネットワークタイムプロトコル（Ｎｅｔｗｏｒｋ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ）や高精度時間プロトコル（Ｐｒｅｓｉｃｉｏｎ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ）を実装したサーバ（不図示）から時刻同期することとしてもよい。
【００１８】
また、データ配信サーバ１１１はキャリア網１０２を介して拠点ＬＡＮ１０６ｂｉに接続されているクライアント１０７ｂｉと通信する。この際、キャリア網１０２は、そのレイヤやルーティングプロトコル、カプセル化プロトコルに依存することはない。また、キャリア網１０２は、広域イーサネット（イーサネットは登録商標）、ＩＰ−ＶＰＮ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ−Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）など種類に制限はない。また、キャリア網１０２は、各拠点Ｂｉとは別のキャリア網１０２を使用して接続されていてもよい。また、拠点ルータ１０５ｂｉは、一般的なルータを想定しているが、Ｌ３／Ｌ２スイッチでもよいし、他のネットワーク機器によって構成されていてもよい。基幹ネットワーク１１２においてもネットワーク機器の種類や構成については問わない。
【００１９】
＜第１終端装置１１３のハードウェア構成例＞
図２は、第１終端装置１１３のハードウェア構成例を示すブロック図である。第１終端装置１１３は、第１プロセッサ２０１と、第１メモリ２０２と、第１ＧＰＳ受信部２０３と、第１通信処理部２０４と、第１データ処理部２０５と、タイムスタンプ生成処理部２０６と、第１時刻同期処理部２０７と、加算時間記憶部２０８と、第１ＤＢ（Ｄａｔａｂａｓｅ）２０９と、第１差分時間保管テーブル２１０と、を有する。これらは、第１バス２１１により通信可能に接続される。
【００２０】
第１プロセッサ２０１は、第１終端装置１１３を統括制御する。具体的には、たとえば、第１プロセッサ２０１は、プログラムを実行したり、各処理部２０４〜２０７を制御したりする。第１メモリ２０２は、第１プロセッサ２０１のワークエリアとして使用される。また、第１メモリ２０２は、第１プロセッサ２０１が実行するプログラムを記憶する。第１ＧＰＳ受信部２０３は、ＧＰＳ衛星１０３からの時刻データを受信する。第１通信処理部２０４は、基幹ネットワーク１１２からのデータを送受信する。第１データ処理部２０５は、送信するデータや受信されたデータを加工する。なお、第１データ処理部２０５は、ハードウェアで実装されてもよく、または、第１メモリ２０２に記憶されたプログラムを第１プロセッサ２０１が実行することにより、第１データ処理部２０５が実現されてもよい。
【００２１】
タイムスタンプ生成処理部２０６は、加算時間記憶部２０８を参照してタイムスタンプを生成する。タイムスタンプは、第１終端装置１１３が第２終端装置１０４ｂｉにデータを配信させたい時刻である。タイムスタンプは、後述するように、第１時刻同期処理部２０７が取得した現在時刻ｔ１（データの配信時刻）に、加算時間ｔ２を加算した時刻ｔ３である。すなわち、時刻ｔ３は、第１終端装置１１３が指定した第２終端装置１０４ｂｉからクライアント１０７ｂｉへのデータの送信予定時刻となる。
【００２２】
加算時間ｔ２の初期値は０であるが、第２終端装置１０４ｂｉでは、実際の第２終端装置１０４ｂｉからクライアント１０７ｂｉへのデータの送信時刻ｔ４とタイムスタンプの時刻ｔ３とで差分時間ｔ５が生じる。タイムスタンプ生成処理部２０６は、第２終端装置１０４ｂｉからフィードバックされた差分時間を用いてタイムスタンプを生成する。なお、タイムスタンプ生成処理部２０６は、ハードウェアで実装されてもよく、または、第１メモリ２０２に記憶されたプログラムを第１プロセッサ２０１が実行することにより、タイムスタンプ生成処理部２０６が実現されてもよい。
【００２３】
第１時刻同期処理部２０７は、ＧＰＳ衛星１０３から繰り返し送信されてくる時刻データを保持する。第１時刻同期処理部２０７は、最新の時刻データを保持する。この時刻データが示す時刻を時刻ｔ１とする。データの配信時に取得した時刻ｔ１が、配信時刻となる。なお、第１時刻同期処理部２０７は、ハードウェアで実装されてもよく、または、第１メモリ２０２に記憶されたプログラムを第１プロセッサ２０１が実行することにより、第１時刻同期処理部２０７が実現されてもよい。
【００２４】
加算時間記憶部２０８は、タイムスタンプの生成に必要な加算時間ｔ２（初期値はｔ２＝０）を保持および更新する。加算時間記憶部２０８は、たとえば、キャッシュメモリである。第１ＤＢ２０９は、各拠点Ｂｉから受信した差分時間ｔ５またはｔ６のデータを、第１差分時間保管テーブル２１０として格納する。差分時間ｔ５またはｔ６、および第１差分時間保管テーブル２１０の詳細については、図５で説明する。
【００２５】
＜第２終端装置１０４ｂｉのハードウェア構成例＞
図３は、第２終端装置１０４ｂｉのハードウェア構成例を示すブロック図である。第２終端装置１０４ｂｉは、第２プロセッサ３０１と、第２メモリ３０２と、第２ＧＰＳ受信部３０３と、第２通信処理部３０４と、第２データ処理部３０５と、受信時刻同期処理部３０６と、第２時刻同期処理部３０７と、パケットバッファ３０８と、第２ＤＢ３０９と、自装置内差分時刻保管テーブルと、を有する。これらは、第２バスにより通信可能に接続される。
【００２６】
第２プロセッサ３０１は、第２終端装置１０４ｂｉを統括制御する。具体的には、たとえば、第２プロセッサ３０１は、プログラムを実行したり、各処理部を制御したりする。第２メモリ３０２は、プロセッサのワークエリアとして使用される。また、第２メモリ３０２は、第２プロセッサ３０１が実行するプログラムを記憶する。第２ＧＰＳ受信部３０３は、ＧＰＳ衛星１０３からの時刻データを受信する。第２通信処理部３０４は、基幹ネットワーク１１２からのデータを送受信する。第２データ処理部３０５は、送信するデータや受信されたデータを加工する。なお、第２データ処理部３０５は、ハードウェアで実装されてもよく、または、第２メモリ３０２に記憶されたプログラムを第２プロセッサ３０１が実行することにより、第２データ処理部３０５が実現されてもよい。
【００２７】
受信時刻同期処理部３０６は、パケットに含まれるタイムスタンプが示す時刻まで当該パケットを保持する制御、パケットに含まれるタイムスタンプとパケットの受信時刻との差分時間を計算する処理、および、計算した差分時間を保管する処理を実行する。なお、受信時刻同期処理部３０６は、ハードウェアで実装されてもよく、または、第１メモリ２０２に記憶されたプログラムを第１プロセッサ２０１が実行することにより、受信時刻同期処理部３０６が実現されてもよい。
【００２８】
第２時刻同期処理部３０７は、ＧＰＳ衛星１０３から繰り返し送信されてくる時刻データを保持する。第２時刻同期処理部３０７は、最新の時刻データを保持する。この時刻データが示す時刻を時刻ｔ４とする。第２終端装置１０４ｂｉが第１終端装置１１３からデータを受信してからクライアント１０７ｂｉに送信するまでの間に取得した時刻ｔ４は、クライアント１０７ｂｉへのデータの送信時刻となる。なお、第２時刻同期処理部３０７は、ハードウェアで実装されてもよく、または、第２メモリ３０２に記憶されたプログラムを第２プロセッサ３０１が実行することにより、第２時刻同期処理部３０７が実現されてもよい。
【００２９】
パケットバッファ３０８は、パケットに含まれるタイムスタンプが示す時刻まで当該パケットを保持する。パケットバッファ３０８は、たとえば、キャッシュメモリである。第２ＤＢ３０９は、パケットに含まれるタイムスタンプとパケットの受信時刻との差分時間のデータを、第２差分時間保管テーブル３１０として格納する。第２差分時間保管テーブル３１０の詳細については、図６で説明する。
【００３０】
＜フレームの一例＞
図４は、本実施例にかかるデータ配信システム１００で送受信されるフレームの一例を示す説明図である。（Ａ）は、タイムスタンプ４２１が付与されていない通常のフレーム４０１であり、（Ｂ）は、タイムスタンプ４２１が付与されたフレーム４０２である。（Ａ）において、フレーム４０１は、一般的なＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）フレームである。フレーム４０１は、Ｌ２ヘッダ４１０、ＩＰヘッダ（第１ＩＰヘッダと称する場合もある）４１１、ＵＤＰヘッダ４１２、ペイロード４１３、およびＦＣＳ（Ｆｒａｍｅ  Ｃｈｅｃｋ  Ｓｅｑｕｅｎｃｅ）４１４を含む。（Ｂ）において、フレーム４０２は、（Ａ）に示した構成のほか、タイムスタンプ４２１と、第２ＩＰヘッダ４２２と、を含む。第２ＩＰヘッダ４２２は、第１ＩＰヘッダ４１１と同一内容である。タイムスタンプ４２１を付与するために、第２ＩＰヘッダ４２２が付与される。ただし、第２ＩＰヘッダ４２２を付与せずに、タイムスタンプ４２１をペイロードに含めてもよい。
【００３１】
＜差分時間保管テーブル＞
つぎに、差分時間保管テーブルについて説明する。なお、以降のテーブルの説明において、ＡＡフィールドｂｂｂ（ＡＡはフィールド名、ｂｂｂは符号）の値を、ＡＡｂｂｂと表記する場合がある。たとえば、拠点機器ＩＤフィールド５０１の値を、拠点機器ＩＤ５０１と表記する。
【００３２】
図５は、第１差分時間保管テーブル２１０の記憶内容例を示す説明図である。第１差分時間保管テーブル２１０は、第１終端装置１１３が各第２終端装置１０４ｂｉで算出された差分時間ｔ５またはｔ６を保持する差分時間保管テーブルである。第１差分時間保管テーブル２１０は、拠点機器ＩＤフィールド５０１と、ソースホストＩＰフィールド５０２と、差分時間フィールド５０３と、を有する。同一行における各フィールド５０１〜５０３の値の組み合わせにより、拠点機器（第２終端装置１０４ｂｉ）に関するエントリが構成される。
【００３３】
拠点機器ＩＤフィールド５０１は、拠点機器ＩＤを格納する記憶領域である。拠点機器ＩＤ５０１は、拠点機器である第２終端装置１０４ｂｉを一意に特定する識別情報である。拠点機器ＩＤ５０１は、管理者によって決められた第２終端装置１０４ｂｉの名前でもよいし、自動採番された番号でもよいし、ＳＮＭＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）で取得されたホスト名であってもよい。図５では、便宜的に第２終端装置１０４ｂｉの符号「１０４ｂｉ」が用いられる。
【００３４】
ソースホストＩＰフィールド５０２は、ソースホストＩＰを格納する記憶領域である。ソースホストＩＰ５０２は、第２終端装置１０４ｂｉのＩＰアドレスである。ソースホストＩＰ５０２は、第２終端装置１０４ｂｉのＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）のインタフェースのＩＰアドレスでもよいし、第１終端装置１１３のＩＰアドレス（ループバックアドレス）でもよい。基本的には第２終端装置１０４ｂｉからのパケットのＩＰヘッダに含まれるソースＩＰアドレスを想定しているが、管理者によって入力された値でもよい。
【００３５】
差分時間フィールド５０３は、差分時間ｔ５またはｔ６を格納する記憶領域である。差分時間５０３は、各第２終端装置１０４ｂｉで算出される差分時間ｔ５またはｔ６である。第２終端装置１０４ｂｉから受信したパケットに含まれている差分時間ｔ５またはｔ６が格納される。差分時間ｔ５またはｔ６の詳細については後述する。差分時間フィールド５０３には、過去所定期間内に第２終端装置１０４ｂｉから送信されてきた１個以上の差分時間５０３が格納される。過去所定期間外となった差分時間５０３は消去される。
【００３６】
図６は、第２差分時間保管テーブル３１０の記憶内容例を示す説明図である。第２差分時間保管テーブル３１０は、第２終端装置１０４ｂｉが算出した差分時間を自装置（第２終端装置１０４ｂｉ）で保持する差分時間保管テーブルである。第２差分時間保管テーブル３１０は、取得項番フィールド６０１と、受信日時フィールド６０２と、タイムスタンプフィールド６０３と、差分時間フィールド６０４と、を有する。同一行における各フィールド６０１〜６０４の値の組み合わせにより、受信したフレーム４０２に関するエントリが構成される。
【００３７】
取得項番フィールド６０１は、取得項番を格納する領域である。取得項番６０１は、エントリを一意に特定する番号であり、取得した順に採番される番号でもよく、任意に割り当てられる番号でもよい。受信日時フィールド６０２は、受信日時を格納する記憶領域である。受信日時６０２は、当該エントリのフレーム４０２を受信した日時である。タイムスタンプフィールド６０３は、タイムスタンプを格納する記憶領域である。タイムスタンプ６０３は、当該エントリのフレーム４０２に含まれていたタイムスタンプ４２１（が示す時刻ｔ３）である。差分時間フィールド６０４は、差分時間を格納する記憶領域である。差分時間６０４は、後述する第２終端装置１０４ｂｉが算出した差分時間ｔ５またはｔ６である。
【００３８】
＜データ配信システム１００における処理手順例＞
図７は、第１終端装置１１３によるフレーム転送処理手順例を示すフローチャートである。図７では、第１終端装置１１３が、データ配信サーバ１１１からのフレーム４０１を宛先の拠点Ｂｉに転送する処理手順例である。
【００３９】
まず、第１終端装置１１３は、データ配信サーバ１１１からフレーム４０１を受信する（ステップＳ７０１）。第１終端装置１１３は、受信したフレーム４０１のＬ２ヘッダ４１０を取り外し（ステップＳ７０２）、その宛先ＩＰアドレスが拠点群Ｂｓを示すマルチキャストアドレスであるか否かを判断する（ステップＳ７０３）。
【００４０】
マルチキャストアドレスでない場合（ステップＳ７０３：Ｎｏ）、ある特定の拠点Ｂｉの宛先ＩＰアドレスであるため、第１終端装置１１３は、Ｌ２ヘッダ４１０をフレーム４０１に付与して（ステップＳ７０９）、宛先の拠点Ｂｉにタイムスタンプ４２１が含まれていないフレーム４０１を送信する（ステップＳ７１０）。これにより、第１終端装置１１３によるフレーム転送処理が終了する。
【００４１】
一方、マルチキャストアドレスである場合（ステップＳ７０３：Ｙｅｓ）、第１終端装置１１３は、ＧＰＳ衛星１０３によって同期され、第１時刻同期処理部２０７が保持する時刻ｔ１を、第１時刻同期処理部２０７から取得する（ステップＳ７０４）。また、第１終端装置１１３は、加算時間記憶部２０８から加算時間ｔ２を取得する（ステップＳ７０５）。加算時間ｔ２については後述する。
【００４２】
第１終端装置１１３は、タイムスタンプ生成処理部２０６により、タイムスタンプ４２１を算出する（ステップＳ７０６）。タイムスタンプ生成処理部２０６は、ステップＳ７０４で取得した配信時刻ｔ１に、ステップＳ７０５で取得した加算時間ｔ２を加算した送信予定時刻ｔ３をタイムスタンプ４２１として算出する。
【００４３】
つぎに、第１終端装置１１３は、第１データ処理部２０５により、フレーム４０１からＬ２ヘッダ４１０が取り外されたパケットの先頭に、算出したタイムスタンプ４２１（時刻ｔ３）を付与し（ステップＳ７０７）、さらに、その先頭に第２ＩＰヘッダ４２２を付与する（ステップＳ７０８）。そして、第１終端装置１１３は、第１データ処理部２０５により、第２ＩＰヘッダ４２２が付与されたパケットの先頭にＬ２ヘッダ４１０を付与する（ステップＳ７０９）。これにより、図４の（Ｂ）に示したフレーム４０２が生成される。そして、第１終端装置１１３は、第１通信処理部２０４により、生成したフレーム４０２を宛先の拠点Ｂｉに送信する（ステップＳ７１０）。これにより、第１終端装置１１３によるフレーム転送処理が終了する。
【００４４】
図８は、第２終端装置１０４ｂｉによるフレーム転送処理手順例を示すフローチャートである。図８では、第２終端装置１０４ｂｉが、第１終端装置１１３からのフレーム４０１，４０２を拠点ＬＡＮ１０６ｂｉに転送する処理手順例である。
【００４５】
まず、第２終端装置１０４ｂｉは、第１終端装置１１３からフレーム４０１，４０２を受信する（ステップＳ８０１）。第２終端装置１０４ｂｉは、受信したフレーム４０１，４０２のＬ２ヘッダ４１０を取り外し（ステップＳ８０２）、その宛先ＩＰアドレスが拠点群Ｂｓを示すマルチキャストアドレスであるか否かを判断する（ステップＳ８０３）。
【００４６】
マルチキャストアドレスでない場合（ステップＳ８０３：Ｎｏ）、第２終端装置１０４ｂｉが所属する拠点Ｂｉの拠点ＬＡＮ１０６ｂｉ内のクライアント１０７ｂｉの宛先ＩＰアドレスである。したがって、第２終端装置１０４ｂｉは、第２データ処理部３０５により、Ｌ２ヘッダ４１０をフレーム４０１に付与して（ステップＳ８１２）、第２通信処理部３０４により、宛先ＩＰアドレスで特定されるクライアント１０７ｂｉにフレーム４０１を送信する（ステップＳ８１３）。これにより、第２終端装置１０４ｂｉによるフレーム転送処理が終了する。なお、この場合、第２終端装置１０４ｂｉは、第２差分時間調整処理（ステップＳ８１４）を実行しない。
【００４７】
一方、マルチキャストアドレスである場合（ステップＳ８０３：Ｙｅｓ）、第２終端装置１０４ｂｉは、第２データ処理部３０５により初回処理フラグＦをＦ＝１に設定する（ステップＳ８０４）。初回処理フラグＦとは、ステップＳ８０１で受信したフレームについて、後述する第１差分時間調整処理（ステップＳ８１０）が実行済みであるか否かを示す情報である。ここでは、第１差分時間調整処理（ステップＳ８１０）が未実行である場合、Ｆ＝１とし、第１差分時間調整処理（ステップＳ８１０）が実行済みである場合、Ｆ＝０とする。
【００４８】
第２終端装置１０４ｂｉは、第２データ処理部３０５により、フレーム４０２からＬ２ヘッダが取り外されたＩＰパケットから第２ＩＰヘッダ４２２を取り外し、タイムスタンプ４２１である送信予定時刻ｔ３を取得する（ステップＳ８０５）。第２終端装置１０４ｂｉは、ＧＰＳ衛星１０３によって同期され、第２時刻同期処理部３０７が保持する時刻ｔ４をクライアント１０７ｂｉへの送信時刻として、第２時刻同期処理部３０７から取得する（ステップＳ８０６）。つぎに、第２終端装置１０４ｂｉは、受信時刻同期処理部３０６により、差分時間ｔ５を算出する（ステップＳ８０７）。受信時刻同期処理部３０６は、ステップＳ８０６で取得した送信時刻ｔ４から、ステップＳ８０５で取得した送信予定時刻ｔ３を減算した時間ｔ５を差分時間として算出する。
【００４９】
そして、第２終端装置１０４ｂｉは、差分時間ｔ５が負の値であるか否かを判断する（ステップＳ８０８）。差分時間ｔ５が負の値でない場合、ステップＳ８０１で受信された送信時刻ｔ４が、タイムスタンプ４２１によって指定された送信予定時刻ｔ３よりも遅い、または同時刻である。具体的には、たとえば、差分時間ｔ５が０よりも大きいケースでは、フレーム転送に遅延が生じており、第１終端装置１１３と第２終端装置１０４ｂｉとの間で時刻同期が取れていないことを意味する。一方、差分時間ｔ５が負の値である場合、ステップＳ８０１で受信された送信時刻ｔ４が、タイムスタンプ４２１によって指定された送信予定時刻ｔ３よりも早い。この場合も、第１終端装置１１３と第２終端装置１０４ｂｉとの間で時刻同期が取れていないことを意味する。
【００５０】
差分時間ｔ５が負の値である場合（ステップＳ８０８：Ｙｅｓ）、第２終端装置１０４ｂｉは、受信時刻同期処理部３０６により、初回処理であるか否か、すなわち、第１差分時間調整処理（ステップＳ８１０）が未実行であるか否かを判断する（ステップＳ８０９）。初回処理でない場合（ステップＳ８０９：Ｎｏ）、すなわち、初回処理フラグＦ＝０である場合、ステップＳ８０６に戻る。一方、初回処理である場合（ステップＳ８０９：Ｙｅｓ）、すなわち、初回処理フラグＦ＝１である場合、第２終端装置１０４ｂｉは、受信時刻同期処理部３０６により、第１差分時間調整処理を実行して（ステップＳ８１０）、ステップＳ８０７で算出された差分時間ｔ５の時間長を短縮するように調整する。第１差分時間調整処理（ステップＳ８１０）の詳細については後述する。このあと、第２終端装置１０４ｂｉは、受信時刻同期処理部３０６により、初回処理フラグＦをＦ＝０にリセットして（ステップＳ８１１）、ステップＳ８０６に戻る。
【００５１】
一方、ステップＳ８０８において、差分時間ｔ５が負の値でない場合（ステップＳ８０８：Ｎｏ）、第２終端装置１０４ｂｉは、第２データ処理部３０５により、Ｌ２ヘッダ４１０をパケットに付与して（ステップＳ８１２）、第２通信処理部３０４により、宛先ＩＰアドレスで特定されるクライアント１０７ｂｉにフレーム４０１を送信する（ステップＳ８１３）。そして、第２終端装置１０４ｂｉは、第２差分時間調整処理（ステップＳ８１４）を実行して、ステップＳ８０７で算出された差分時間ｔ５の時間長を短縮するように調整する。第２差分時間調整処理（ステップＳ８１４）の詳細については後述する。これにより、第２終端装置１０４ｂｉによるフレーム転送処理が終了する。
【００５２】
図９は、第１差分時間調整処理（ステップＳ８１０）の詳細な処理手順例を示すフローチャートである。第１差分時間調整処理（ステップＳ８１０）は、差分時間ｔ５（負の値）の時間長を短縮して、差分時間ｔ５を０に近づける処理である。まず、第２終端装置１０４ｂｉは、差分時間ｔ５を第２差分時間保管テーブル３１０に保存する（ステップＳ９０１）。この場合、受信時刻同期処理部３０６は、第２差分時間保管テーブル３１０に、保存される差分時間ｔ５を含むエントリを新規作成する。具体的には、たとえば、受信時刻同期処理部３０６は、取得項番６０１を採番し、そのエントリの受信日時フィールド６０２にステップＳ８０６で取得した送信時刻ｔ４を格納し、タイムスタンプフィールド６０３にステップＳ８０５で取得した送信予定時刻ｔ３を格納し、差分時間フィールド６０４にステップＳ８０７で算出した差分時間ｔ５を格納する。
【００５３】
つぎに、第２終端装置１０４ｂｉは、受信時刻同期処理部３０６により、ステップＳ９０１で登録された新規エントリの送信時刻ｔ４から受信日時６０２が過去Ｓａ秒間に含まれるエントリ群の各差分時間６０４が、すべて負の値であるか否かを判断する（ステップＳ９０２）。Ｓａ秒は、任意に設定される。すべて負の値でない場合（ステップＳ９０２：Ｎｏ）、過去Ｓａ秒間に含まれるエントリ群の各差分時間６０４のうち少なくとも１つは正の値を含む。この場合は、差分時間ｔ５の調整をせずに、第２終端装置１０４ｂｉは第１差分時間調整処理（ステップＳ８１０）を終了して、ステップＳ８１１に移行する。
【００５４】
一方、すべて負の値である場合（ステップＳ９０２：Ｙｅｓ）、第２終端装置１０４ｂｉは、受信時刻同期処理部３０６により、過去Ｓａ秒間に含まれるエントリ群の各差分時間６０４の中で最小差分時間（差分時間ｔ６とする）を第２差分時間保管テーブル３１０から取得する（ステップＳ９０３）。差分時間６０４はすべて負の値であるため、差分時間ｔ６も負の値である。そして、第２終端装置１０４ｂｉは、第２データ処理部３０５により、取得した差分時間ｔ６をペイロードとし、第１終端装置１１３に送信するためのヘッダを付与する（ステップＳ９０４）。これにより、差分時間ｔ６を含むフレーム４０１が生成される。第２終端装置１０４ｂｉは、第２通信処理部３０４により、生成したフレーム４０１を第１終端装置１１３に送信して（ステップＳ９０５）、ステップＳ８１１に移行する。
【００５５】
このあと、初回処理フラグＦ＝０であるため、第２終端装置１０４ｂｉは、差分時間ｔ５が０以上となるまでステップＳ８０６〜Ｓ８０９：Ｎｏのループを繰り返す。このループを繰り返すほど、ステップＳ８０６の送信時刻ｔ４が大きくなる。当該ループ中は、ステップＳ９１３でのフレーム４０１の送信の待機状態となる。差分時間ｔ５が０以上になった時点で、ステップＳ８１２に移行することになる。
【００５６】
なお、図９において、ステップＳ９０２では、過去Ｓａ秒間に含まれるエントリ群の各差分時間６０４が、すべて負の値であるか否かを判断したが、すべての負の値には限定されない。たとえば、過去Ｓａ秒間に含まれるエントリ群のうち一定数（たとえば、半数）以上のエントリで差分時間６０４が負の値である場合、ステップＳ９０３を実行してもよい。
【００５７】
また、ステップＳ９０３では、過去Ｓａ秒間に含まれるエントリ群の各差分時間６０４の中で最小差分時間ｔ６を取得することとしたが、差分時間６０４の最小値には限定されない。たとえば、ｔ６は、差分時間６０４の最大値以外の値でもよい。
【００５８】
図１０は、第２差分時間調整処理（ステップＳ８１４）の詳細な処理手順例を示すフローチャートである。第２差分時間調整処理（ステップＳ８１４）は、差分時間ｔ５（正の値または０）の時間長を短縮して、差分時間ｔ５を０に近づける処理である。まず、第２終端装置１０４ｂｉは、差分時間ｔ５が０よりも大きいか否かを判断する（ステップＳ８１４）。この差分時間ｔ５は、ステップ０７で最初に算出された差分時間ｔ５である。すなわち、初回処理フラグＦ＝１のときに算出された差分時間ｔ５である。したがって、第１差分時間調整処理（ステップＳ８１０）において、最小差分時間ｔ６を含むフレーム４０１が送信された場合（ステップＳ９０５）、下記のステップＳ１００４で差分時間ｔ５（＞０）を含むフレーム４０１は送信されない。
【００５９】
差分時間ｔ５が０よりも大きくない場合、すなわち、０以下である場合（ステップＳ１００１：Ｎｏ）、差分時間ｔ５の調整をせずに、第２終端装置１０４ｂｉは第２差分時間調整処理（ステップＳ８１４）を終了する。また、ステップＳ８０３でマルチキャストアドレスでない場合（ステップＳ８０３：Ｎｏ）、差分時間ｔ５が存在しないため、第２差分時間調整処理（ステップＳ８１４）は実行されない。
【００６０】
差分時間ｔ５が０よりも大きい場合（ステップＳ１００１：Ｙｅｓ）、第２終端装置１０４ｂｉは、差分時間ｔ５を第２差分時間保管テーブル３１０に保存する（ステップＳ１００２）。具体的には、たとえば、受信時刻同期処理部３０６は、第２差分時間保管テーブル３１０に、保存される差分時間ｔ５を含むエントリを新規作成する。受信時刻同期処理部３０６は、取得項番６０１を採番し、そのエントリの受信日時フィールド６０２にステップＳ８０６で取得した最新の送信時刻ｔ４を格納し、タイムスタンプフィールド６０３にステップＳ８０５で取得した送信予定時刻ｔ３を格納し、差分時間フィールド６０４にステップＳ８０７で算出した最新の差分時間ｔ５（≧０）を格納する。
【００６１】
そして、第２終端装置１０４ｂｉは、第２データ処理部３０５により、取得した差分時間ｔ５をペイロードとし、第１終端装置１１３に送信するためのヘッダを付与する（ステップＳ１００３）。これにより、差分時間ｔ５を含むフレーム４０１が生成される。第２終端装置１０４ｂｉは、最新の送信時刻ｔ４において、第２通信処理部３０４により、差分時間ｔ５を含むフレーム４０１を第１終端装置１１３に送信する（ステップＳ１００４）。これにより、第２終端装置１０４ｂｉによるフレーム転送処理が終了する。
【００６２】
図１１は、第１終端装置１１３による加算時間更新処理の詳細な処理手順例を示すフローチャートである。第１終端装置１１３は、第１通信処理部２０４により、ステップ１０でのフレーム４０２の送信から所定期間経過するまでの間に、第２終端装置１０４ｂｉから、差分時間ｔ５またはｔ６を含むパケットを受信する（ステップＳ１１０１）。具体的には、たとえば、第１終端装置１１３は、第２終端装置１０４ｂｉから差分時間ｔ５またはｔ６を含むフレーム４０１を受信し、Ｌ２ヘッダ４１０を取り外すことで、差分時間ｔ５またはｔ６を含むパケットを受信する。差分時間ｔ５を含むフレーム４０１は、ステップＳ９０５で第２終端装置１０４ｂｉから送信され、差分時間ｔ６を含むフレーム４０１は、ステップＳ１００４で第２終端装置１０４ｂｉから送信される。
【００６３】
つぎに、第１終端装置１１３は、タイムスタンプ生成処理部２０６により、受信したパケットに含まれる差分時間ｔ５またはｔ６を第１差分時間保管テーブル２１０に格納する（ステップＳ１１０２）。具体的には、たとえば、タイムスタンプ生成処理部２０６は、第１差分時間保管テーブル２１０を参照して、受信したパケットの送信元ＩＰアドレスに一致するソースホストＩＰ５０２を特定し、特定したソースホストＩＰ５０２のエントリの差分時間フィールド５０３に、当該パケットに含まれる差分時間ｔ５またはｔ６を格納する。
【００６４】
そして、第１終端装置１１３は、タイムスタンプ生成処理部２０６により、過去Ｓｂ秒間に第１差分時間保管テーブル２１０に格納された差分時間５０３の中から最大差分時間ｔ７を取得する（ステップＳ１１０３）。Ｓｂ秒は、任意に設定される。そして、第１終端装置１１３は、加算時間記憶部２０８に記憶されている加算時間ｔ２（初期値はｔ２＝０）に最大差分時間ｔ７を加算することで加算時間ｔ２を更新し、加算時間記憶部２０８に格納する。これにより、第１終端装置１１３は、加算時間更新処理を終了する。更新された加算時間ｔ２は、次回データ配信サーバ１１１からフレーム４０１を受信した場合に、タイムスタンプ４２１（送信予定時刻ｔ３＝ｔ１＋ｔ２）の生成の際に用いられる。なお、ステップＳ１１０３では最大差分時間ｔ７を取得したが、差分時間５０３の最大値には限定されない。たとえば、ｔ７は、差分時間５０３の最小値以外の値でもよい。
【００６５】
このように、各拠点Ｂｉの第２終端装置１０４ｂｉは、差分時間ｔ５またはｔ６を最適な加算時間ｔ２に調整することができる。具体的には、ステップＳ９０２の判定基準、およびステップＳ９０３の処理により、差分時間ｔ６は、負の値となる。したがって、最大差分時間ｔ７を徐々に短縮することで、加算時間ｔ２を徐々に短縮することができる。加算時間ｔ２が短縮されると、各拠点Ｂｉにおいて発生する差分時間ｔ５を短縮することができ、伝送遅延を限りなく小さくすることができる。
【００６６】
また、ステップ９０２において、第２差分時間保管テーブル３１０のエントリの中で過去Ｓａ秒間の差分時間がすべて負の値かを判定することによって、図１中のアクセスポイント１０１と各拠点Ｂｉを接続するキャリア網１０２のネットワーク伝送速度について、安定して伝送速度が改善されているかを判別することができる。すなわち、データ配信システム１００は、過去の情報を取り入れることにより、瞬間的な差分時間を解析して加算時間を調整するという処理をその都度実行するのではなく、ネットワーク伝送速度が安定して改善されてきた場合に加算時間の調整を実行する。これにより、加算時間ｔ２の頻繁な調整処理（各拠点Ｂｉの第２終端装置１０４ｂｉから第１終端装置１１３へ差分時間ｔ５，ｔ６を送信する処理や第１終端装置１１３において加算時間ｔ２を更新する処理）を削減することができる。
【００６７】
また、ステップＳ９０３により、最小差分時間ｔ６を第１終端装置１１３へ送信することにより、加算時間ｔ２の低減化を図ることができる。これにより、本来の目的である同時刻配信の機能を損なわないようにすることができる。
【００６８】
＜データ同時配信時刻調整例＞
図１２は、本実施例に係るデータ同時配信調整例を示す説明図である。図１２において、時刻ｔ１は、第１終端装置１１３が第２終端装置１０４ｂ１〜１０４ｂｎにフレーム４０２をマルチキャストした時刻である。加算時間ｔ２は、ここでは、前回のデータ配信時における最大差分時間ｔ７（＝ｔ４ｎ−ｔ１）とする。送信予定時刻ｔ３は、フレーム４０２内に含まれるタイムスタンプ４２１であり、第２終端装置１０４ｂ１〜１０４ｂｎがフレーム４０２を各々の拠点ＬＡＮ１０６ｂ１〜１０６ｂｎに配信する時刻である。時刻ｔ４１〜ｔ４ｎは、第２終端装置１０４ｂ１〜１０４ｂｎがフレーム４０２を受信してから送信するまでの間に取得された時刻（送信時刻）である。図１２では、第２終端装置１０４ｂｎが最も遅くフレーム４０２を受信するものとする。
【００６９】
第２終端装置１０４ｂｉ（ｉ≠ｎ）の差分時間ｔ５は、送信時刻ｔ４１から送信予定時刻ｔ３を減算した時刻であり、負の値となる。すなわち、ステップＳ８０８により差分時間ｔ５が０より小さいと判定されるため（ステップＳ８０８：Ｙｅｓ）、差分時間ｔ５が０以上となるまでステップＳ８０６〜Ｓ８０９：Ｎｏのループ処理の期間中、第２終端装置１０４ｂｉは、フレーム送信を待機する。これにより、第２終端装置１０４ｂ１〜１０４ｂｎによる各拠点ＬＡＮ１０６ｂ１〜１０６ｂｎへの同時配信を実現することができる。
【００７０】
また、第２終端装置１０４ｂｉ（ｉ≠ｎ）の差分時間ｔ５は負の値であるため、ステップＳ９０２の条件を満たすことを前提として、第２終端装置１０４ｂｉ（ｉ≠ｎ）から最小差分時間ｔ６が第１終端装置１１３に送信される（ステップＳ９０５）。ここで、第１終端装置１１３が、ステップＳ１１０３において、第２終端装置１０４ｂｉの差分時間ｔ５ｉ（＜０）を最大差分時間ｔ７として取得した場合、加算時間ｔ２が最大差分時間ｔ７分減算される。このように、本実施例にかかるデータ配信システム１００では、第１終端装置１１３がフレーム４０２をマルチキャストした配信時刻ｔ１から各第２終端装置１０４ｂｉがフレーム４０２を同時配信する送信予定時刻ｔ３までの期間（加算時間ｔ２）を短縮する。したがって、第１終端装置１１３と第２終端装置１０４ｂｉとの間の伝送遅延を抑制することができ、各拠点Ｂｉへ限りなく同時刻にパケットが到着させることができる。
【００７１】
ステップＳ９０３において、最小差分時間ｔ６を第１終端装置１１３へ送信することによる優位性を図１３を用いて説明する。
【００７２】
図１３は、差分時間の推移を示すグラフである。（Ａ）は、毎回各拠点Ｂｉの第２終端装置１０４ｂｉから第１終端装置１１３へ差分時間を送信した場合の差分時間ｔ５の推移を示すグラフである。毎回各拠点Ｂｉの差分時間を算出して第１終端装置１１３へ送信した場合、加算時間ｔ２が毎回推移することになり、ネットワークの伝送遅延が大きくなるほど、差分時間が大幅に変化する可能性がある。また、拠点ＬＡＮ１０６ｂｉに同時刻にパケットを配信する場合、拠点ＬＡＮ１０６ｂｉ内のクライアント１０７ｂｉは、差分時間が正の値、つまりタイムスタンプ４２１の送信予定時刻ｔ３よりも遅くフレーム４０１を受信する可能性が高くなる。
【００７３】
（Ｂ）は、第１差分時間調整処理（ステップＳ８１０）により、各拠点Ｂｉの第２終端装置１０４ｂｉから第１終端装置１１３へ差分時間を送信した場合の差分時間ｔ５の推移を示すグラフである。第１差分時間調整処理（ステップＳ８１０）は、過去の時間の差分時間６０４を考慮し、最小差分時間ｔ６を第１終端装置１１３へ送信し、加算時間ｔ２を徐々に低減させる。これにより、差分時間ｔ５を徐々に０へと近づけることができる。
【００７４】
このように、本実施例のデータ配信システム１００によれば、第１終端装置１１３は、第２終端装置１１４ｂｉからの差分時間ｔ５またはｔ６を受信して（ステップＳ１１０１）、第１差分時間保管テーブル２１０に格納する（ステップＳ１１０２）という第１格納処理を実行する。そして、第１終端装置１１３は、特定の差分時間（たとえば、最大差分時間ｔ７）を取得して（ステップＳ１１０３）、加算時間ｔ２を更新する（ステップＳ１１０４）という更新処理を実行する。
【００７５】
また、第１終端装置１１３は、フレーム４０２の配信時刻ｔ１に加算時間ｔ２を加算することにより、タイムスタンプ４２１である送信予定時刻ｔ３を生成する（ステップＳ７０４〜Ｓ７０６）という生成処理を実行する。そして、第１終端装置１１３は、タイムスタンプ４２１である送信予定時刻ｔ３が付与されたフレーム４０２を第２終端装置１０４ｂｉを介して拠点ＬＡＮ１０６ｂｉにおけるクライアント１０７ｂｉへ配信する（ステップＳ７０７〜Ｓ７１０）という配信処理を実行する。
【００７６】
第２終端装置１０４ｂｉは、フレーム４０２を受信する（ステップＳ８０１）という受信処理を実行する。また、第２終端装置１０４ｂｉは、受信処理によってフレーム４０２を受信してからクライアント１０７ｂｉに送信するまでの間に取得した現在時刻を送信時刻ｔ４とする場合、送信時刻ｔ４からフレーム４０２に付与されたタイムスタンプ４２１である送信予定時刻ｔ３を減算することにより、差分時間ｔ５を算出する（ステップＳ８０５〜Ｓ８０７）という算出処理を実行する。
【００７７】
また、第２終端装置１０４ｂｉは、差分時間ｔ５が負の値であるか否かを判断する（ステップＳ８０８）という判断処理を実行する。差分時間ｔ５が負の値である場合（ステップＳ８０８：Ｙｅｓ）、第２終端装置１０４ｂｉは、現在時刻ｔ４の更新により差分時間ｔ５を再算出して（ステップＳ８０７）、負の値でなくなった場合に（ステップＳ８０８：Ｎｏ）、フレーム４０１を配信先である拠点ＬＡＮ１０６ｂｉにおけるクライアント１０７ｂｉに送信する（ステップＳ８１３）という同期処理を実行する。
【００７８】
そして、第２終端装置１０４ｂｉは、負の値であると判断された差分時間ｔ６を第１終端装置１１３に送信する（ステップＳ８１０）という送信処理を実行する。
【００７９】
これにより、第１格納処理で格納される差分時間は負の値となるため、更新処理により加算時間ｔ２が短縮される。そして、短縮後の加算時間ｔ２を用いて、同期処理が実行される。したがって、第１終端装置１１３が時刻ｔ１でフレーム４０２を送信してから、より早いタイミングで第２終端装置１０４ｂｉによるフレーム４０１の同時刻配信を実現することができる。
【００８０】
また、第１終端装置１１３は、上記更新処理において、第１差分時間保管テーブル２１０で、過去第１所定期間（たとえば、過去Ｓｂ秒内）の差分時間群から特定の差分時間（たとえば、最大差分時間ｔ７）を取得して加算時間ｔ２を更新する。
【００８１】
更新処理の回数が増加するほど、第１差分時間保管テーブル２１０に負の値の差分時間ｔ６がより多く蓄積される。そして、直近の期間内の差分時間群を取得対象とすることにより、相対的に値が大きい差分時間が取得対象から除外されるため、加算時間ｔ２を徐々に短縮させることができる。すなわち、第１終端装置１１３が時刻ｔ１でフレーム４０２を送信してから第２終端装置１０４ｂｉがフレーム４０１を送信するまでの伝送遅延を短縮することができる。
【００８２】
なお、この場合、特定の差分時間は、過去Ｓｂ秒以内の差分時間ｔ５またはｔ６であれば、どの差分時間でもよいが、最大差分時間ｔ７とすることにより、緩やかに加算時間ｔ２を短縮することができる。なお、最大差分時間ｔ７に限定されることはなく、過去Ｓｂ秒以内の差分時間ｔ５またはｔ６の平均値、中央値、最小値、ランダムに選択された値のいずれでもよい。ただし、より小さい値、たとえば、最小値を選択すると、加算時間ｔ２の短縮効率が高くなりすぎて、タイムスタンプ４２１（時刻ｔ３）の値が小さくなり、却って、第２終端装置１０４ｂｉで算出される差分時間ｔ５が負の値とならない。したがって、特定の差分時間は、過去Ｓｂ秒以内において相対的に大きい値の方が好ましい。
【００８３】
また、第２終端装置１０４ｂｉは、上記同期処理において、差分時間ｔ５が負の値でないと判断された場合（ステップＳ８０８：Ｎｏ）、フレーム４０１を配信先である拠点ＬＡＮ１０６ｂｉにおけるクライアント１０７ｂｉに送信し（ステップＳ８１３）、上記送信処理において、負の値でないと判断された差分時間ｔ５を第１終端装置１１３に送信する。
【００８４】
これにより、第２終端装置１０４ｂｉは、可及的速やかにフレーム４０１を送信することができる。また、差分時間ｔ５を第１終端装置１１３に送信することにより、運用の初期段階において、加算時間ｔ２を設定することができる。また、加算時間ｔ２の短縮効率が高くなりすぎて、タイムスタンプ４２１（時刻ｔ３）の値が小さくなった場合に、第２終端装置１０４ｂｉは、差分時間ｔ５を第１終端装置１１３に送信する。したがって、加算時間ｔ２の短縮を繰り返し実現することができる。
【００８５】
また、第２終端装置１０４ｂｉは、ステップＳ８０７で算出した負の値である差分時間ｔ５を第２差分時間保管テーブル３１０に格納する（ステップＳ９０１）という第２格納処理を実行し、上記送信処理では、第２格納処理によって第２差分時間保管テーブル３１０に格納された過去第２所定期間（たとえば、過去Ｓａ秒内）内の差分時間群から、特定の差分時間ｔ６を取得して第１終端装置１１３に送信する。
【００８６】
これにより、第２格納処理で格納される差分時間群では、負の値が多くなり、第１終端装置１１３に送信される差分時間ｔ５も徐々に負の値となる。したがって、更新処理により加算時間ｔ２が短縮されるため、第１終端装置１１３が時刻ｔ１でフレーム４０２を送信してから、より早いタイミングで第２終端装置１０４ｂｉによるフレーム４０１の同時刻配信を実現することができる。
【００８７】
なお、この場合、特定の差分時間は、過去Ｓａ秒以内の差分時間ｔ５であれば、どの差分時間でもよいが、最小差分時間ｔ６とすることにより、第１差分時間保管テーブル２１０に、負の値の差分時間がより多く蓄積される。したがって、加算時間ｔ２の増加を抑制することができる。なお、最小差分時間ｔ６に限定されることはなく、過去Ｓａ秒以内の差分時間ｔ５の平均値、中央値、最小値、ランダムに選択された値のいずれでもよい。ただし、より大きい値、たとえば、最大値を選択すると、加算時間ｔ２の短縮効率が低くなりすぎる。したがって、特定の差分時間は、過去Ｓａ秒以内において相対的に小さい値の方が好ましい。
【００８８】
また、第２終端装置１０４ｂｉは、差分時間ｔ５が０である場合、当該差分時間ｔ５を第１終端装置１１３に送信しない。差分時間ｔ５が０である場合、第２終端装置１０４ｂｉでのフレーム４０１の送信時刻ｔ４は、他の第２終端装置１０４ｂｊ（ｊ≠ｉ）の基準となる送信予定時刻ｔ３に一致する。値が０である差分時間ｔ５では、加算時間ｔ２は増減しないため、第１終端装置１１３にとって不要なデータである。したがって、無駄な送信を抑制することができる。また、第２終端装置１０４ｂｉにとっても不要であるため、第２差分時間保管テーブル３１０に格納しない。これにより、無駄な格納を抑制することができる。
【００８９】
以上のことから、各拠点Ｂｉの第２終端装置１０４ｂｉが差分時間ｔ５、ｔ６を算出し、第１終端装置１１３が差分時間を利用した加算時間ｔ２の調整を行うことによって、伝送遅延が少なく各拠点Ｂｉへ限りなく同時刻にデータが到着するようにすることができる。すなわち、アクセスポイント１０１のデータ配信サーバ１１１から配信するデータを、各拠点Ｂｉの第２終端装置１０４ｂｉに配信し、ダウンストリーム側へほぼ同時刻にデータを送信することができる。
【００９０】
本実施例によれば、とあるシステムからＩＰマルチキャスト通信を使用しデータを配信するシステムにおいて、配信されたパケットが通信キャリアのネットワーク内の転送装置の遅延や物理的な距離による伝送遅延が発生する状況下であっても、当該パケットを各拠点へ同一時刻に到着させ、かつ、可能な限り遅延時間を抑えることができる。このようなデータ配信システムは、金融証券業界において取扱う情報の価値の高さから求められている情報の伝達時刻の公平性を実現する。これにより、社会的により公平かつ公正な取引を支援することができる。
【００９１】
また、近年において、データ配信システムは全世界的に接続されていることが当然となっている。本実施例のデータ配信システムは、全世界へ配信するパケットを全世界で同一時刻に受信することができる点において優れている。また、本実施例のデータ配信システムは、今後課題となるであろう、あらゆるサービスの情報伝達の公平性を解決することができる。
【００９２】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加、削除、または置換をしてもよい。
【００９３】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【００９４】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶装置、又は、ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）カード、ＳＤカード、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）の記録媒体に格納することができる。
【００９５】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
【符号の説明】
【００９６】
１００  データ配信システム
１０１  アクセスポイント
１０４ｂｉ  第２終端装置
１０５ｂｉ  拠点ルータ
１０７ｂｉ  クライアント
１１１  データ配信サーバ
１１２  基幹ネットワーク
１１３  第１終端装置
２１０  第１差分時間保管テーブル
３１０  第２差分時間保管テーブル
【図１】
2017228954.tif 000003
【図２】
2017228954.tif 000004
【図３】
2017228954.tif 000005
【図４】
2017228954.tif 000006
【図５】
2017228954.tif 000007
【図６】
2017228954.tif 000008
【図７】
2017228954.tif 000009
【図８】
2017228954.tif 000010
【図９】
2017228954.tif 000011
【図１０】
2017228954.tif 000012
【図１１】
2017228954.tif 000013
【図１２】
2017228954.tif 000014
【図１３】
2017228954.tif 000015