(57)【要約】【課題】通信装置間のクロック差異を解消することができる中継装置を提供する。【解決手段】ＣＰＵ３１を備え、送信元と、送信先との通信を中継する中継装置１３であって、送信元と、送信先との間で、パケットを転送するパケット転送部６７と、パケットの受信数と、パケットの送信数と、に基づいて、パケットの消失の有無を判定する送受信数確認部６５と、ＣＰＵ３１の負荷状態を判定するＣＰＵ使用率確認部６３と、パケットの消失が有ることを契機として、ＣＰＵ３１の負荷状態に基づいて、ＣＰＵ３１に動作クロックを供給するクロック供給部４３と、クロック供給部４３からＣＰＵ３１へ供給するクロック補正をするクロック補正部４１と、を備えたものである。【選択図】図３
2015195514.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサを備え、送信元と、送信先との通信を中継する中継装置であって、
前記送信元と、前記送信先との間で、パケットを転送するパケット転送部と、
前記パケットの受信数と、前記パケットの送信数と、に基づいて、前記パケットの消失の有無を判定する送受信数確認部と、
前記プロセッサの負荷状態を判定する使用率確認部と、
前記パケットの消失が有ることを契機として、前記プロセッサの負荷状態に基づいて、
前記プロセッサに動作クロックを供給するクロック供給部と、
前記クロック供給部から前記プロセッサへ供給するクロック補正をするクロック補正部と、
を備えたことを特徴とする中継装置。
【請求項２】
前記クロック補正部は、
前記プロセッサよりも動作クロックの精度の高い外部機器から前記パケットを受信し、前記パケットの受信数と、前記パケットの送信数と、の差異が、前記外部機器の動作クロックの精度に起因したものである場合、前記差異を相殺するように、前記動作クロックを上げる
ことを特徴とする請求項１に記載の中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、中継装置に関し、特に、通信装置間のクロック差異を解消する中継装置に関する。
【背景技術】
【０００２】
非同期システムにおける通信装置は、水晶等に代表されるような水晶発振器をクロック源としている。このような水晶等を用いたクロック源は、部品によりクロック精度にばらつきが存在するものである。例えば、ＨＧＷ（Ｈｏｍｅ  ＧａｔｅＷａｙ）又はブロードバンドルータのような安価な通信装置は、コストを抑えるためにクロック精度の高い水晶が使用されていない。また、イーサネット（登録商標）の規格では、クロック精度を１００ｐｐｍ（Ｐａｒｔｓ  Ｐｅｒ  Ｍｉｌｌｉｏｎ）と規定している。つまり、基準のクロックから前後０．０１％の誤差までを認めている。
【０００３】
ところが、クロック精度が上記で説明したような規格内であったとしても、例えば、１００Ｍｂｐｓ又は１０００Ｍｂｐｓ等のようなイーサネット（登録商標）におけるリンク最高速度で通信が実施されると、パケットロスが発生することがある。このようなパケットロスの要因は、通信装置間のクロック差異によるものである。
【０００４】
そこで、通信装置同士で通信することにより通信速度を制御し、通信装置間のクロック差異を解消するものがある（例えば、特許文献１参照）。
【０００５】
また、通信装置間で同期をとることにより通信装置間のクロック差異を解消するものもある（例えば、特許文献２及び非特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第４９３０３８８号公報
【特許文献２】特開２００３−２７３８５４号公報
【非特許文献】
【０００７】
【非特許文献１】ＩＥＥＥ  Ｓｔｄ．１５８８−２００８．ＩＥＥＥ  Ｓｔａｎｄａｒｄ  ｆｏｒ  ａ  Ｐｒｅｃｉｓｉｏｎ  Ｃｌｏｃｋ  Ｓｙｎｃｈｒｏｎｉｚａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ  ｆｏｒ  Ｎｅｔｗｏｒｋｅｄ  Ｍｅａｓｕｒｅｍｅｎｔ  ａｎｄ  Ｃｏｎｔｒｏｌ  Ｓｙｓｔｅｍｓ．
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、それぞれの通信装置のうちで通信装置間のクロック差異を解消する機能が設けられていないものがあれば、通信装置間のクロック差異を解消できないので、パケットロスを回避することができないという問題点があった。
【０００９】
そのため、それぞれの通信装置のうちで通信装置間のクロック差異を解消する機能が設けられていないものがあったとしても、通信装置間のクロック差異を解消することができる中継装置が望まれていた。
【課題を解決するための手段】
【００１０】
本発明に係る中継装置は、プロセッサを備え、送信元と、送信先との通信を中継する中継装置であって、前記送信元と、前記送信先との間で、パケットを転送するパケット転送部と、前記パケットの受信数と、前記パケットの送信数と、に基づいて、前記パケットの消失の有無を判定する送受信数確認部と、前記プロセッサの負荷状態を判定する使用率確認部と、前記パケットの消失が有ることを契機として、前記プロセッサの負荷状態に基づいて、前記プロセッサに動作クロックを供給するクロック供給部と、前記クロック供給部から前記プロセッサへ供給するクロック補正をするクロック補正部と、を備えたものである。
【００１１】
また、本発明に係る中継装置において、前記クロック補正部は、前記プロセッサよりも動作クロックの精度の高い外部機器から前記パケットを受信し、前記パケットの受信数と、前記パケットの送信数と、の差異が、前記外部機器の動作クロックの精度に起因したものである場合、前記差異を相殺するように、前記動作クロックを上げるものである。
【発明の効果】
【００１２】
本発明に係る中継装置は、通信装置間の通信を中継する中継装置が動作クロックを上げることにより、それぞれの通信装置のうちで通信装置間のクロック差異を解消する機能が設けられていないものがあったとしても、通信装置間のクロック差異を解消することができるという効果を有する。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態１における中継装置１３を含む中継システム１の概略構成の一例を示す図である。
【図２】本発明の実施の形態１における中継装置１３のハードウェア構成の一例を示す図である。
【図３】本発明の実施の形態１における中継装置１３の機能構成例を示す図である。
【図４】本発明の実施の形態１における中継装置１３の詳細な機能構成例を示す図である。
【図５】本発明の実施の形態１における中継装置１３の制御例を説明するフローチャートである。
【図６】本発明の実施の形態２における中継装置１３を含む中継システム１の概略構成の一例を示す図である。
【図７】本発明の実施の形態２におけるパケット負荷装置１０１のハードウェア構成の一例を示す図である。
【図８】本発明の実施の形態２における中継システム１の動作例を説明するフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態１について、図面を用いて詳細に説明する。
【００１５】
実施の形態１．
＜構成の説明＞
図１は、本発明の実施の形態１における中継装置１３を含む中継システム１の概略構成の一例を示す図である。図１に示すように、中継システム１は、サーバ装置１１、中継装置１３、及び端末１５を備え、サーバ装置１１と、中継装置１３とが、ネットワーク３を介して接続され、中継装置１３と、端末１５とが、通信媒体を介して接続されている。ここで、ネットワーク３は、インターネットのように通信プロトコルＴＣＰ／ＩＰに準拠した通信網を想定する。
【００１６】
中継装置１３は、送信元と、送信先との通信を中継する。例えば、中継装置１３は、端末１５と、ネットワーク３とは、イーサネット（登録商標）ケーブルで接続され、端末１５と、サーバ装置１１との間で、ＩＰパケット（以後、パケットと称する）による通信を中継する。
【００１７】
次に、中継装置１３の詳細について図２〜図４を用いて説明する。図２は、本発明の実施の形態１における中継装置１３のハードウェア構成の一例を示す図である。図３は、本発明の実施の形態１における中継装置１３の機能構成例を示す図である。図４は、本発明の実施の形態１における中継装置１３の詳細な機能構成例を示す図である。
【００１８】
図２に示すように、中継装置１３は、ＣＰＵ３１、第１通信インターフェース部３３、第２通信インターフェース部３５、バス３７、メモリ３９、クロック補正部４１、及びクロック供給部４３を備えている。ＣＰＵ３１は、全体を統括制御するものであり、クロック供給部４３から供給される動作クロックに基づいて動作し、メモリ３９に格納された各種アプリケーションソフトウェアを実行する。例えば、ＣＰＵ３１は、メモリ３９に格納されている各種アプリケーションソフトウェア等のオブジェクトコードを後述する揮発性メモリ５１に展開し、適宜、各種データを演算し、各種処理を実行する。
【００１９】
なお、図２では、単一のＣＰＵ３１が設けられている一例であるが、特にこれに限定されない。例えば、ＣＰＵ３１が複数設けられているようなマルチコアプロセッサであってもよく、要するに、全体を統括制御するものであればよい。
【００２０】
第１通信インターフェース部３３は、例えば、図１に示すような端末１５と各種データを送受信するものである。第２通信インターフェース部３５は、例えば、図１に示すようなサーバ装置１１と各種データを送受信するものである。つまり、第１通信インターフェース部３３及び第２通信インターフェース部３５のそれぞれは、各種データの送信元と送信先とを中継する際に利用される通信インターフェースである。なお、上記の説明では通信インターフェースが２つある場合について説明したが特にこれに限定されず、１つであってもよく、３つ以上であってもよい。
【００２１】
バス３７は、中継装置１３内で各種信号を送受信する共通の通信経路であり、例えば、バス３７を介して、ＣＰＵ３１、第１通信インターフェース部３３、第２通信インターフェース部３５、メモリ３９、クロック供給部４３、及びクロック補正部４１のそれぞれの間で、各種データ及び各種制御指令等のような各種信号が送受信される。
【００２２】
メモリ３９は、揮発性メモリ５１及び不揮発性メモリ５３を備え、各種データ、各種アプリケーションソフトウェア、及び各種制御モジュール等を記憶する。例えば、揮発性メモリ５１は、ＳＲＡＭ及びＤＲＡＭ等のような半導体メモリで構成されている。また、不揮発性メモリ５３は、ＥＥＰＲＯＭ、フラッシュメモリ、及びＦＲＡＭ（登録商標）等のような半導体メモリで構成されている。なお、上記で説明したメモリ３９のハードウェア構成は一例であり、特にこれに限定されない。また、制御モジュールとは、インターフェースプログラム及び制御プログラム等のような各種プログラムの集合体と想定する。
【００２３】
不揮発性メモリ５３は、例えば、クロック制御部６１、ＣＰＵ使用率確認部６３、送受信数確認部６５、及びパケット転送部６７等のような制御モジュールを有している。クロック制御部６１は、ＣＰＵ使用率確認部６３の処理結果に基づいて、クロック補正部４１に動作指令を供給する。ＣＰＵ使用率確認部６３は、送受信数確認部６５の処理結果と、ＣＰＵ３１の使用率とに基づいて、ＣＰＵ３１の動作クロックに偏差があるか否かをクロック制御部６１に供給する。
【００２４】
送受信数確認部６５は、パケット転送部６７の処理結果に基づいて、パケットロスが発生しているか否かを確認する。ここで、パケットロスとは、何らかの原因でパケットが消失した状態を意味するものとして用いることとする。例えば、送受信数確認部６５は、受信するパケット数と、送信するパケット数とを確認する。また、送受信数確認部６５は、自装置から送信されるパケット数を確認する。つまり、送受信数確認部６５は、パケットの転送に伴うパケットの送受信数と、自装置から送信されるパケットの送信数とを区別してカウントする。
【００２５】
パケット転送部６７は、到来したパケットを経路制御し、宛先に転送する。また、パケット転送部６７は、受信したパケット及び送信するパケットを送受信数確認部６５に供給する。なお、パケット転送部６７は、パケットの転送だけでなく、イーサネット（登録商標）フレームも転送してもよい。要するに、パケット転送部６７は、ＴＣＰ／ＩＰプロトコルに準拠した各種データを転送するものである。
【００２６】
クロック補正部４１は、クロック供給部４３がＣＰＵ３１に供給する動作クロックを補正する指令をクロック供給部４３に送信するものであり、例えば、クロックシンセサイザーのような機能を有する。クロック供給部４３は、ＣＰＵ３１に動作クロックを供給するものであればよく、例えば、水晶発振器等のようなもので構成されるＣＰＵ３１のクロック源である。
【００２７】
次に、ＣＰＵ３１が各種処理を実行時の機能構成について説明する。図３に示すように、ＣＰＵ３１は、キャッシュメモリ５５を備え、上記で説明したような各種モジュールを実行時、各種モジュールをキャッシュメモリ５５に一時的に記憶する。例えば、ＣＰＵ３１は、クロック制御部６１、ＣＰＵ使用率確認部６３、送受信数確認部６５、及びパケット転送部６７をキャッシュメモリ５５に記憶し、各種処理を実行する。
【００２８】
次に、クロック制御部６１、ＣＰＵ使用率確認部６３、送受信数確認部６５、及びパケット転送部６７の動作内容について説明する。なお、以降の動作説明の前提として、中継装置１３は、端末１５よりも動作クロックが遅いものと想定する。また、端末１５は、中継装置１３及びネットワーク３を経由して、サーバ装置１１へパケットを送信する処理を想定する。
【００２９】
図４に示すように、送受信数確認部６５は、例えば、自装置発パケット判定部８１、受信数カウント部８２、サイズ判定部８３、通信量演算部８４、通信量判定部８５、送信数カウント部８６、及びパケットロス発生判定部８７等を備えている。
【００３０】
自装置発パケット判定部８１は、送信されるパケットが、自装置から送信されるものであるか否かを判定する。自装置発パケット判定部８１は、例えば、送信されるパケットが、あるノードから受信されて別のノードへ転送されるものであれば、自装置から送信されるものではないと判定し、判定結果を受信数カウント部８２、サイズ判定部８３、及び送信数カウント部８６に供給する。
【００３１】
受信数カウント部８２は、パケット受信数をカウントし、カウント結果を通信量演算部８４及びパケットロス発生判定部８７に供給する。受信数カウント部８２は、例えば、カウント周期でパケット受信数をカウントしていくことで、結果として、単位時間当たりのパケット受信数をカウントすることとなる。なお、カウント周期及び単位時間は特に限定されない。
【００３２】
サイズ判定部８３は、受信したパケットのサイズを判定し、判定結果を通信量演算部８４に供給する。サイズ判定部８３は、例えば、カウント周期ごとに受信したパケットに含まれる各種情報を参照することで、結果として、単位時間当たりのパケットのサイズを判定する。
【００３３】
通信量演算部８４は、単位時間当たりのパケット受信数とサイズとに基づいて、通信量を演算し、演算結果を通信量判定部８５に供給する。通信量判定部８５は、通信量が通信の最大量に到達した場合、パケットロス発生判定部８７にパケットロスが生じているか否かを判定させる。
【００３４】
ここで、パケットロスとは、データ通信に係るパケットに欠落が生じることである。つまり、パケットロスとは、パケットの消失である。パケットロスの発生原因の１つとして、通信装置の動作クロックの遅延により通信に失敗することが想定される。よって、通信装置の動作クロックが補正されれば、通信装置のクロックに起因したパケットロスの発生は回避される。
【００３５】
送信数カウント部８６は、パケット送信数をカウントし、カウント結果をパケットロス発生判定部８７に供給する。送信数カウント部８６は、例えば、カウント周期でパケット送信数をカウントしていくことで、結果として、単位時間当たりのパケット送信数をカウントすることとなる。なお、ここでも、カウント周期及び単位時間は特に限定されないが、パケット受信数とパケット送信数との比較のためにパケット受信数のカウント時と同一にしておくとよい。
【００３６】
パケットロス発生判定部８７は、パケット受信時の通信量が通信の最大量に到達した場合、パケット送信数を確認する。このとき、パケットロス発生判定部８７は、パケット送信数に自装置発のパケットがカウントされていない状態であって、パケット送信数がパケット受信数よりも少ない場合、パケットロス発生通知をＣＰＵ使用率確認部６３に供給する。
【００３７】
つまり、送受信数確認部６５は、パケット受信時の通信量が通信の最大量に到達した場合であって、パケット送信数に自装置発のパケットがカウントされていない状態であり、パケット送信数がパケット受信数よりも少ない場合、パケットロス発生通知をＣＰＵ使用率確認部６３に供給する。
【００３８】
ＣＰＵ使用率確認部６３は、例えば、高負荷アプリケーション動作判定部９１、ＣＰＵ使用率判定部９２、及びパケットロス要因判定部９３等を備えている。高負荷アプリケーション動作判定部９１は、送受信数確認部６５からパケットロス発生通知を受けると、ＣＰＵ３１の使用率が高くなるアプリケーションソフトウェアが起動しているか否かを判定し、判定結果をパケットロス要因判定部９３に供給する。ここで、ＣＰＵ３１の使用率が高くなるアプリケーションソフトウェアは、予め登録されているものであってもよく、ＣＰＵ３１がＣＰＵ３１の使用率が高くなるアプリケーションソフトウェアを動的に判断し、起動状態を確認してもよい。
【００３９】
なお、上記の説明では、高負荷アプリケーション動作判定部９１が、ＣＰＵ３１の使用率が高くなるアプリケーションソフトウェアが起動しているか否かを確認する動作例について説明したが、特にこれに限定されない。例えば、高負荷アプリケーション動作判定部９１は、ＣＰＵ３１の使用率が高くなるアプリケーションソフトウェアが動作しているか否かを確認するものであってもよい。
【００４０】
つまり、ＣＰＵ使用率確認部６３が動作確認するアプリケーションソフトウェアの実行状態は、起動状態であってもよく、起動状態から通常状態に遷移した状態であってもよい。また、ＣＰＵ３１の使用率が高くなるアプリケーションソフトウェアは、例えば、計算量が多いものであったり、計算時間のかかるものであったりするが、特にこれに限定されない。
【００４１】
ＣＰＵ使用率判定部９２は、送受信数確認部６５からパケットロス発生通知を受けると、ＣＰＵ３１が高負荷状態を示す閾値を超えていないか否かを判定し、判定結果をパケットロス要因判定部９３に供給する。ここで、高負荷状態を示す閾値は、予め設定されるものであってもよく、動的に設定されるものであってもよい。ＣＰＵ３１が高負荷状態を示す閾値は、例えば、可算命令、減算命令、論理演算命令、及び分岐命令等のように命令セットに含まれる命令をカウントしたものと比較されるものであってもよい。
【００４２】
この場合、命令をフェッチした段階で命令数をカウントしてもよく、命令をデコードした段階で命令数をカウントしてもよく、命令をエグゼキュートした段階で命令数をカウントしてもよく、これらのカウント結果と、高負荷状態を示す閾値とが比較されてもよい。この場合、高負荷状態を示す閾値は、命令数となる。なお、上記で説明した高負荷状態を示す閾値は一例であって、特にこれに限定されない。
【００４３】
パケットロス要因判定部９３は、高負荷となるアプリケーションソフトウェアが起動又は動作しておらず、ＣＰＵ３１の使用率が高くない場合、クロック偏差に起因するパケットロスが生じていると判断し、判断結果をクロック制御部６１に供給する。一方、パケットロス要因判定部９３は、高負荷となるアプリケーションソフトウェアが起動又は動作しており、ＣＰＵ３１の使用率が高い場合、ＣＰＵ３１の高負荷状態に起因するパケットロスが生じていると判断するものの、クロック制御部６１には何も通知しない。
【００４４】
つまり、ＣＰＵ使用率確認部６３は、高負荷となるアプリケーションソフトウェアが起動又は動作しておらず、ＣＰＵ３１の使用率が高くない場合、クロック偏差通知をクロック制御部６１に供給する。
【００４５】
クロック制御部６１は、クロック偏差通知を受けると、クロック補正部４１にクロック補正を行うように、クロック補正通知を供給する。クロック補正部４１は、クロック補正通知を受けると、クロック供給部４３にクロック数増加指令を供給する。つまり、クロック補正部４１は、クロック補正通知を受けると、ＣＰＵ３１へ供給する動作クロックを予め設定された一定量で早く動作させるように補正する。
【００４６】
なお、上記の説明では、動作クロックの補正量を一定量というように、予め設定された値としたが、特にこれに限定されない。例えば、クロック制御部６１が動的に動作クロックの補正量を決定してもよい。例えば、送受信数確認部６５のパケットロス数とパケットサイズを元に動作クロックの補正量を算出してもよい。
【００４７】
なお、ＣＰＵ使用率確認部６３は、本発明における使用率確認部に相当する。また、ＣＰＵ３１は、本発明におけるプロセッサに相当する。
【００４８】
なお、本発明の実施の形態１において、中継システム１とは、複数の装置により構成される装置全体を表すものである。また、本発明の実施の形態１において、ネットワーク３とは、少なくとも２つの装置が接続され、ある装置から他の装置に対して、情報の伝達をできるようにした仕組みをいう。ネットワーク３を介して通信する装置は、独立した装置同士であってもよく、１つの装置を構成している内部ブロック同士であってもよい。
【００４９】
また、本発明の実施の形態１において、通信とは、パケットロスが装置のクロック遅延に起因していることが特定可能であれば、無線通信及び有線通信の何れか一方だけでなく、無線通信と有線通信とが混在したものであってもよい。例えば、ある区間では無線通信が行われ、他の区間では有線通信が行われるようなものであってもよい。また、ある装置から他の装置への通信が有線通信で行われ、他の装置からある装置への通信が無線通信で行われるようなものであってもよい。
【００５０】
また、本発明の実施の形態１において、上記で説明した機能構成は一例であり、特にこれに限定されない。例えば、中継装置１３が有する各機能はハードウェア及びソフトウェアの何れで実現されてもよい。つまり、本発明の実施の形態１で説明される各ブロック図は、ハードウェアのブロック図と想定してもよく、ソフトウェアによる機能ブロック図と想定してもよい。つまり、各ブロック図は、例えば、回路デバイス等のハードウェアで実現されてもよく、プロセッサ等の演算装置上で実行されるソフトウェアで実現されてもよい。
【００５１】
また、本発明の実施の形態１において、各ブロックで各機能が分割されている必要はなく、各ブロックの上位集合、下位集合、及び部分集合等で各ブロックが構成されるものであってもよい。つまり、各ブロックに対応する機能が実現できるものであればよい。
【００５２】
例えば、上記で説明した各機能が全て１つのＣＰＵ３１上で実行されるものである必要はない。例えば、パケット転送機能を有する専用の回路構成が中継装置１３に実装されていてもよい。また、パケットの転送の際、パケット受信数と、パケット送信数とを確認する専用の回路構成が中継装置１３に実装されていてもよい。
【００５３】
＜動作の説明＞
図５は、本発明の実施の形態１における中継装置１３の制御例を説明するフローチャートである。ここで、ステップＳ１１〜ステップＳ１５の処理は、クロック補正前処理である。ステップＳ３１〜ステップＳ４５の処理は、クロック補正後処理である。クロック補正前処理と、クロック補正後処理とは、並列的に実行されるものであってもよく、逐次的に実行されるものであってもよい。逐次的に実行される場合には、クロック補正前処理の実行後、クロック補正後処理が実行されればよい。クロック補正前処理及びクロック補正後処理は、図示しない終了指令等のような終了に関する指令を契機として、動作を終了すればよく、それまでは常駐プログラムのように動作してもよい。
【００５４】
（クロック補正前処理）
（ステップＳ１１）
中継装置１３は、パケットを受信したか否かを判定する。中継装置１３は、パケットを受信した場合、ステップＳ１２に進む。一方、中継装置１３は、パケットを受信しない場合、ステップＳ１１に戻る。
【００５５】
（ステップＳ１２）
中継装置１３は、パケットを転送する。
【００５６】
（ステップＳ１３）
中継装置１３は、パケット受信数をカウントする。ここで、中継装置１３は、上記で説明したカウント周期ごとにパケット受信数をカウントすることで、単位時間当たりのパケット受信数を求める。カウント周期と、単位時間との大小関係は特に限定されない。例えば、カウント周期が、単位時間よりも長くてもよく、単位時間と同一の長さであってもよく、単位時間よりも短くてもよい。カウント周期及び単位時間は構築されるシステムに応じて予め決定されるものであってもよく、システムの運用状態に応じて動的に決定されるものであってもよい。
【００５７】
（ステップＳ１４）
中継装置１３は、パケット送信数をカウントする。ここで、中継装置１３は、上記で説明したカウント周期ごとにパケット送信数をカウントすることで、単位時間当たりのパケット送信数を求める。カウント周期と、単位時間との大小関係は特に限定されない。例えば、カウント周期が、単位時間よりも長くてもよく、単位時間と同一の長さであってもよく、単位時間よりも短くてもよい。カウント周期及び単位時間は構築されるシステムに応じて予め決定されるものであってもよく、システムの運用状態に応じて動的に決定されるものであってもよい。
【００５８】
（ステップＳ１５）
中継装置１３は、パケットのサイズを求め、ステップＳ１１に戻る。ここで、中継装置１３は、上記で説明したカウント周期ごとにパケットのサイズを求めることで、単位時間当たりのパケットのサイズを求める。カウント周期と、単位時間との大小関係は特に限定されない。例えば、カウント周期が、単位時間よりも長くてもよく、単位時間と同一の長さであってもよく、単位時間よりも短くてもよい。カウント周期及び単位時間は構築されるシステムに応じて予め決定されるものであってもよく、システムの運用状態に応じて動的に決定されるものであってもよい。
【００５９】
（クロック補正後処理）
（ステップＳ３１）
中継装置１３は、通信量確認周期が到来したか否かを判定する。中継装置１３は、通信量確認周期が到来した場合、ステップＳ３２に進む。一方、中継装置１３は、通信量確認周期が到来しない場合、ステップＳ３１に戻る。なお、通信量確認周期は、予め決定されるものであってもよく、動的に決定されるものであってもよい。また、通信量確認周期は、上記で説明したカウント周期よりも長くてもよく、上記で説明したカウント周期と同じでもよく、上記で説明したカウント周期よりも短くてもよい。
【００６０】
（ステップＳ３２）
中継装置１３は、パケット受信数とパケットのサイズとに基づいて通信量を求める。
【００６１】
（ステップＳ３３）
中継装置１３は、通信量が最大量に到達したか否かを判定する。中継装置１３は、通信量が最大量に到達した場合、ステップＳ３４に進む。一方、中継装置１３は、通信量が最大量に到達しない場合、ステップＳ３１に戻る。なお、通信量の最大量は、予め設定されるものであってもよく、動的に設定されるものであってもよい。
【００６２】
（ステップＳ３４）
中継装置１３は、パケット送信数に自装置発のパケットが含まれているか否かを判定する。中継装置１３は、パケット送信数に自装置発のパケットが含まれている場合、ステップＳ３１に戻る。一方、中継装置１３は、パケット送信数に自装置発のパケットが含まれていない場合、ステップＳ３５に進む。
【００６３】
（ステップＳ３５）
中継装置１３は、パケット送信数がパケット受信数より少ないか否かを判定する。中継装置１３は、パケット送信数がパケット受信数より少ない場合、ステップＳ３６に進む。一方、中継装置１３は、パケット送信数がパケット受信数より少なくない場合、つまり、パケット送信数がパケット受信数以上の場合、ステップＳ３１に戻る。なお、ここでは、中継装置１３は、送信元と、送信先との通信を中継するものであるため、通常は、パケット送信数と、パケット受信数とが一致するという前提に基づいて処理が実行される。
【００６４】
（ステップＳ３６）
中継装置１３は、パケットロス発生の通知をする。
【００６５】
（ステップＳ３７）
中継装置１３は、高負荷アプリケーション、すなわち、ＣＰＵ３１を高負荷状態にさせるアプリケーションソフトウェアが動作していないか否かを判定する。中継装置１３は、ＣＰＵ３１を高負荷状態にさせるアプリケーションソフトウェアが動作していない場合、ステップＳ３８に進む。一方、中継装置１３は、ＣＰＵ３１を高負荷状態にさせるアプリケーションソフトウェアが動作している場合、ステップＳ３９に進む。なお、ここでいう動作とは、上記で説明したように、ＣＰＵ３１を高負荷状態にさせるアプリケーションソフトウェアの起動状態及び動作状態の何れであってもよい。
【００６６】
（ステップＳ３８）
中継装置１３は、第１フラグを１に設定する。ここで、第１フラグはデフォルト値として０が設定されていると想定する。
【００６７】
（ステップＳ３９）
中継装置１３は、ＣＰＵ使用率が高くないか否かを判定する。中継装置１３は、ＣＰＵ使用率が高くない場合、ステップＳ４０に進む。一方、中継装置１３は、ＣＰＵ使用率が高い場合、ステップＳ４１に進む。
【００６８】
（ステップＳ４０）
中継装置１３は、第２フラグを１に設定する。ここで、第２フラグはデフォルト値として０が設定されていると想定する。
【００６９】
（ステップＳ４１）
中継装置１３は、第１フラグと第２フラグとの論理積が１であるか否かを判定する。中継装置１３は、第１フラグと第２フラグとの論理積が１である場合、ステップＳ４２に進む。一方、中継装置１３は、第１フラグと第２フラグとの論理積が１でない場合、ステップＳ４５に進む。なお、上記の説明では、ＣＰＵ３１の負荷状態の判定に２つのフラグを設定し、２つのフラグの論理積の演算結果に基づいた動作例について説明したが、特にこれに限定されない。要するに、ＣＰＵ３１の負荷状態を判定できる実施形態であれば特に限定されない。
【００７０】
（ステップＳ４２）
中継装置１３は、パケットロス発生の要因をクロック偏差と判定する。つまり、中継装置１３は、上記で説明したように、通信量が最大量に到達し、パケット送信数がパケット受信数より少ない場合、高負荷アプリケーションが動作していない状態であり、ＣＰＵ使用率が高くない状態であれば、パケットロス発生の要因をクロック偏差に起因するものと判定する。
【００７１】
（ステップＳ４３）
中継装置１３は、クロック補正を行う通知をする。
【００７２】
（ステップＳ４４）
中継装置１３は、クロック数を増加する。すなわち、中継装置１３は、ＣＰＵ３１へ供給する動作クロックを増加する、つまり、ＣＰＵ３１の動作クロックを上げる動作を行う。
【００７３】
（ステップＳ４５）
中継装置１３は、パケットロス発生の要因をＣＰＵ３１の高負荷状態と判定し、ステップＳ３１に戻る。つまり、中継装置１３は、上記で説明したように、通信量が最大量に到達し、パケット送信数がパケット受信数より少ない場合、高負荷アプリケーションが動作している状態又はＣＰＵ使用率が高い状態であれば、パケットロス発生の要因をＣＰＵ３１の高負荷状態に起因するものと判定する。
【００７４】
なお、本発明の実施の形態１において、メモリ３９に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理は、必ずしも時系列的に処理されていなくてもよく、例えば、並列的又は個別に実行される処理を含んでもよい。
【００７５】
＜効果の説明＞
以上の説明から、本発明の実施の形態１に係る中継装置１３は、動作クロックを上げることにより、それぞれの通信装置のうちで通信装置間のクロック差異を解消する機能が設けられていないものがあったとしても、通信装置間のクロック差異を解消することができる。
【００７６】
具体的には、パケット送受信数と、パケットのサイズと、通信の最大量と、に基づいて、パケットロスが生じているか否かを判定する。次に、中継装置１３は、パケットロスが有ることを契機として、ＣＰＵ３１の負荷状態が高負荷状態でなければ、ＣＰＵ３１をさらに稼働させることができるので、ＣＰＵ３１の動作クロックを上げることにより、パケットの処理量を増大させる。これにより、中継装置１３は、動作クロックの遅延に起因したパケットロスの発生を回避することができる。この結果、中継装置１３は、ＩＰ電話通信及び映像のストリーミング配信等の通信サービスの品質を向上させることができる。換言すれば、中継装置１３は、通話音声及び映像等に途切れが生じることを回避することができる。
【００７７】
以上のように、本実施の形態１においては、ＣＰＵ３１を備え、送信元と、送信先との通信を中継する中継装置１３であって、送信元と、送信先との間で、パケットを転送するパケット転送部６７と、パケットの受信数と、パケットの送信数と、に基づいて、パケットの消失の有無を判定する送受信数確認部６５と、ＣＰＵ３１の負荷状態を判定するＣＰＵ使用率確認部６３と、パケットの消失が有ることを契機として、ＣＰＵ３１の負荷状態に基づいて、ＣＰＵ３１に動作クロックを供給するクロック供給部４３と、クロック供給部４３からＣＰＵ３１へ供給するクロック補正をするクロック補正部４１と、を備えたことにより、送信元の通信装置及び送信先の通信装置のうちで通信装置間のクロック差異を解消する機能が設けられていないものがあったとしても、通信装置間のクロック差異を解消することができる。
【００７８】
上記構成により、中継装置１３は、動作クロックの遅延に起因したパケットロスの発生を回避することができる。
【００７９】
実施の形態２．
実施の形態２は、中継装置１３のクロック供給源のクロック精度を向上させる一例を説明するものである。なお、本実施の形態２において、特に記述しない項目については実施の形態１と同様とし、同一の機能や構成については同一の符号を用いて述べることとする。
【００８０】
図６は、本発明の実施の形態２における中継装置１３を含む中継システム１の概略構成の一例を示す図である。図６に示すように、本発明の実施の形態２に係る中継システム１は、実施の形態１に係る中継装置１３と、パケット負荷装置１０１とを備えている。ただし、中継装置１３は、クロック供給部４３の精度を±５０ｐｐｍとし、クロック補正部４１におけるクロック補正を１回当たり１０ｐｐｍ補正するように設定してあると想定する。
【００８１】
中継装置１３は、パケット負荷装置１０１と２つの経路により接続されている。パケット負荷装置１０１は、２つのインターフェースを備え、それぞれのインターフェースにて、通信速度最大のパケット送信及び通信速度最大のパケット受信の動作をすることができる。パケット負荷装置１０１は、図示しない内部クロックを備えている。内部クロックは、精度の高いものであり、±５ｐｐｍとすると想定する。
【００８２】
なお、パケット負荷装置１０１の２つのインターフェースのうち、一方が第３通信インターフェース部１１１であり、もう一方が第４通信インターフェース部１１３であると想定する。また、第３通信インターフェース部１１１は、有線又は無線の通信媒体を介して、中継装置１３の第１通信インターフェース部３３と接続されていると想定する。また、第４通信インターフェース部１１３は、有線又は無線の通信媒体を介して、中継装置１３の第２通信インターフェース部３５と接続されていると想定する。
【００８３】
次に、パケット負荷装置１０１の詳細について図７及び図８を用いて説明する。図７は、本発明の実施の形態２におけるパケット負荷装置１０１のハードウェア構成の一例を示す図である。図７に示すように、パケット負荷装置１０１は、ＣＰＵ１２１、第３通信インターフェース部１１１、第４通信インターフェース部１１３、バス１２２、及びメモリ１２３等を備えている。メモリ１２３は、揮発性メモリ１３１及び不揮発性メモリ１３３を備えている。
【００８４】
なお、不揮発性メモリ１３３に記憶されている制御モジュール以外は、実施の形態１に対応するものがあるため、ここでは、制御モジュール以外の説明については省略する。ただし、制御モジュールのうち、パケット転送部１４７は、実施の形態１に対応するものがあるため、その説明についても省略する。
【００８５】
不揮発性メモリ１３３は、試験動作部１４１、計時部１４３、パケット数判定部１４５、及びパケット転送部１４７等を有する。試験動作部１４１は、パケット受信数と、パケット送信数とが一致するまで、接続される経路の最大負荷となる通信速度でパケットを送信させる指令を生成する。計時部１４３は、予め設定された送信時間を計時するものであり、例えば、試験動作部１４１がパケットを送信する継続時間をカウントする。パケット数判定部１４５は、計時部１４３で予め設定された送信時間が経過した場合、パケット受信数と、パケット送信数とが一致するか否かを判定し、判定結果を試験動作部１４１に供給する。
【００８６】
なお、上記の機能構成は一例であって、特にこれに限定されない。つまり、上記で説明した動作が実行されるものであればよい。また、パケット負荷装置１０１は、本発明における外部機器に相当する。
【００８７】
（動作の説明）
図８は、本発明の実施の形態２における中継システム１の動作例を説明するフローチャートである。ここで、ステップＳ６１〜ステップＳ６３の処理は、上記で説明した一連の試験動作処理に相当する。ステップＳ７１の処理は、クロック補正処理に相当し、上記で説明した実施の形態１に係るクロック補正前処理及びクロック補正後処理に相当するものである。なお、ステップＳ７１の処理は、実施の形態１で説明したステップＳ１１〜ステップＳ１５の処理及びステップＳ３１〜ステップＳ４５の処理と同様であるので、その説明については省略する。
【００８８】
（試験動作処理）
（ステップＳ６１）
パケット負荷装置１０１は、一方のインターフェースから他方のインターフェースへ接続される経路の最大負荷となる通信速度でパケットを送信する。
【００８９】
（ステップＳ６２）
パケット負荷装置１０１は、予め設定された通信時間が経過したか否かを判定する。パケット負荷装置１０１は、予め設定された通信時間が経過した場合、ステップＳ６３に進む。一方、パケット負荷装置１０１は、予め設定された通信時間が経過していない場合、ステップＳ６２に戻る。
【００９０】
（ステップＳ６３）
パケット負荷装置１０１は、パケット送信数とパケット受信数とが一致したか否かを判定する。パケット負荷装置１０１は、パケット送信数とパケット受信数とが一致した場合、処理を終了する。一方、パケット負荷装置１０１は、パケット送信数とパケット受信数とが一致しない場合、ステップＳ６１に戻る。
【００９１】
（効果の説明）
以上の説明から、パケット負荷装置１０１は、実施の形態１に係るクロック補正部４１に相当する機能と、高精度のクロック供給源とを有し、高い精度の動作クロックに基づいて送信したパケットを用いることにより、中継装置１３の動作クロックの精度を調整する。
【００９２】
例えば、パケット負荷装置１０１は、内部クロックの精度が±５ｐｐｍであるため、その精度に伴ってパケット送信数とパケット受信数とがずれる可能性がある。すると、中継装置１３は、パケット負荷装置１０１に内部クロックの精度のずれに伴って、受信パケット数と、送信パケット数とがずれる可能性がある。中継装置１３は、そのようにしてずれた分を自装置のクロック補正の精度に合わせて補正する。
【００９３】
つまり、パケット負荷装置１０１は、中継装置１３に対してクロック精度のマスター側として機能するものである。よって、マスター側であるパケット負荷装置１０１のクロック精度が高ければ、中継装置１３の動作クロックのクロック供給源が±５０ｐｐｍであったとしても、中継装置１３は、パケット負荷装置１０１の動作クロックに追従するので、クロック精度を上げることができる。例えば、中継装置１３のクロック供給源よりも精度の高い内部クロックを有するパケット負荷装置１０１を上記で説明したような試験動作を行うことにより、中継装置１３は、クロック供給源が±５０ｐｐｍであったとしても、−５ｐｐｍ〜＋５０ｐｐｍのクロック供給が実現される。
【００９４】
以上の説明から、本実施の形態２において、クロック補正部４１は、ＣＰＵ１２１よりも動作クロックの精度の高いパケット負荷装置１０１からパケットを受信し、パケットの受信数と、パケットの送信数と、の差異が、パケット負荷装置１０１の動作クロックの精度に起因したものである場合、差異を相殺するように、動作クロック数を上げるようにしてもよい。
【００９５】
上記の構成から、中継装置１３は、パケット負荷装置１０１等のように、自装置よりクロック精度の高い装置からパケットが供給された場合、クロック精度の高い装置のずれを効果的に利用することにより、自装置のクロック供給精度を向上させることができる。
【００９６】
なお、本実施の形態１及び２は、単独で実施されてもよく、組み合わせて実施されてもよい。何れの場合であっても、上記で説明した有利な効果を奏することとなる。
【符号の説明】
【００９７】
１  中継システム、３  ネットワーク、１１  サーバ装置、１３  中継装置、１５  端末、３１、１２１  ＣＰＵ、３３  第１通信インターフェース部、３５  第２通信インターフェース部、３７、１２２  バス、３９、１２３  メモリ、４１  クロック補正部、４３  クロック供給部、５１、１３１  揮発性メモリ、５３、１３３  不揮発性メモリ、５５  キャッシュメモリ、６１  クロック制御部、６３  ＣＰＵ使用率確認部、６５  送受信数確認部、６７  パケット転送部、８１  自装置発パケット判定部、８２  受信数カウント部、８３  サイズ判定部、８４  通信量演算部、８５  通信量判定部、８６  送信数カウント部、８７  パケットロス発生判定部、９１  高負荷アプリケーション動作判定部、９２  ＣＰＵ使用率判定部、９３  パケットロス要因判定部、１０１  パケット負荷装置、１１１  第３通信インターフェース部、１１３  第４通信インターフェース部、１４１  試験動作部、１４３  計時部、１４５  パケット数判定部、１４７  パケット転送部。
【図１】
2015195514.tif 000003
【図２】
2015195514.tif 000004
【図３】
2015195514.tif 000005
【図４】
2015195514.tif 000006
【図５】
2015195514.tif 000007
【図６】
2015195514.tif 000008
【図７】
2015195514.tif 000009
【図８】
2015195514.tif 000010