(57)【特許請求の範囲】
【請求項１】
通信ネットワークを介して、第１の外部装置と第１コネクションを確立し、第２の外部装置と第２コネクションを確立する通信部と、
前記第１コネクションで前記第１の外部装置に第１の送信周期でキープアライブパケットを送信し、前記キープアライブパケットに対する応答パケットを受信する通信維持部と、
前記第２コネクションの確立後または前記第２コネクションでの測定パケットの受信後、候補時間を開けて、前記第１コネクションで、前記第１の外部装置に測定パケットを送信し、前記第１の外部装置によって前記第２の外部装置に転送された前記測定パケットを前記第２コネクションで受信したかを確認する、送信周期決定処理を用いて、前記第１の送信周期を決定する送信周期決定部と
を備えた通信装置。
【請求項２】
前記通信装置の状態または動作履歴に関する情報に基づき、前記送信周期決定処理の実行可否を判定し、判定結果に応じて前記送信周期決定部を動作させる測定可否判定部
をさらに備えた請求項１に記載の通信装置。
【請求項３】
第３の外部装置から測定指示情報を受信し、前記測定指示情報に基づいて、前記送信周期決定処理の実行可否を判定し、判定結果に応じて前記送信周期決定部を動作させる測定可否判定部
をさらに備えた請求項１に記載の通信装置。
【請求項４】
前記第１の外部装置と前記第２の外部装置は、同一の装置である
請求項１ないし３のいずれか一項に記載の通信装置。
【請求項５】
前記通信部は、
前記第２コネクションの識別情報を含む、前記第１コネクションの確立要求を送信する、
または、
前記第１コネクションの識別情報を含む、前記第２コネクションの確立要求を送信する
または、
前記第２コネクションの識別情報を含む、前記測定パケットを送信する
請求項１ないし４のいずれか一項に記載の通信装置。
【請求項６】
前記送信周期決定部は、前記候補時間の値を変えて、前記送信周期決定処理を行うことを繰り返し行うことで前記第１の送信周期を決定する
請求項１ないし５のいずれか一項に記載の通信装置。
【請求項７】
前記送信周期決定部は、前記送信周期決定処理で前記測定パケットを受信できた場合は、前記候補時間を伸張し、伸張された候補時間で、前記送信周期決定処理を行うことを繰り返す
請求項１ないし６のいずれか一項に記載の通信装置。
【請求項８】
前記送信周期決定部は、前記送信周期決定処理で前記測定パケットを受信できなかった場合、または、前記測定パケットを受信しかつ前記候補時間が所定の値以上であるときは、前記送信周期決定処理の繰り返しを終了する
請求項７に記載の通信装置。
【請求項９】
前記送信周期決定部は、前記第１の外部装置および前記第２の外部装置のうちの１つから前記送信周期決定処理の停止命令を受信した場合、または、前記第１または前記第２コネクションでの通信が終了した場合に、前記送信周期決定処理の繰り返しを終了する
請求項６または７に記載の通信装置。
【請求項１０】
前記送信周期決定部は、前記測定パケットを受信できた最大の値の前記候補時間に前記第１の送信周期を設定する
請求項６ないし９のいずれか以降に記載の通信装置。
【請求項１１】
前記送信周期決定処理を繰り返すごとに、前記第１の送信周期を前記送信周期決定処理で決定された候補時間に設定する
請求項６ないし９のいずれか一項に記載の通信装置。
【請求項１２】
前記送信周期決定部は、前記測定パケットを受信できたか否かを、前記測定パケットの送信から予め設定した時間内に前記測定パケットを受信できたか否かで判定する
請求項１ないし１１のいずれか一項に記載の通信装置。
【請求項１３】
前記測定可否判定部は、前記第３の外部装置に測定可否の問い合わせを送信し、測定可を示す測定指示情報を受信した場合に、前記送信周期決定処理の実行可を判定する
請求項３、または、少なくとも請求項３に従属する請求項４ないし１２のいずれか一項に記載の通信装置。
【請求項１４】
前記測定可否判定部は、前記第１の外部装置から前記第１コネクションを介して測定可を示す測定指示情報を受信した場合に、前記送信周期決定処理の実行可を判定する
請求項３ないし１３のいずれか一項に記載の通信装置。
【請求項１５】
前記第３の外部装置は、前記通信装置から前記第１コネクションを確立する第１の外部装置の問い合わせを受けて、前記第１コネクションを確立する第１の外部装置を回答する装置であり、
前記第３の外部装置への前記測定可否の問い合わせと、前記第３の外部装置への前記第１の外部装置の問い合わせとを含む情報を前記第３の外部装置に送信する  
請求項１３に記載の通信装置。
【請求項１６】
通信ネットワークを介して通信装置と通信する通信インタフェース部と、
前記通信装置から、前記通信装置が外部装置との通信を利用して行う測定の許可要求を受信した場合に、測定可否を判定し、前記測定可否に関する測定可否情報を送信する判定部と、
前記外部装置によって前記通信装置を認証するための認証情報を記憶する記憶部と、を備え、
前記判定部は、前記測定を許可する場合に、前記記憶部に記憶された認証情報を読み出し、測定可の前記測定可否情報を、前記認証情報とともに前記通信装置に送信する
サーバ装置。
【請求項１７】
前記判定部は、予め定めた関数により変動する閾値、または、乱数により変動する閾値に基づき、前記測定可を決定する
請求項１６に記載のサーバ装置。
【請求項１８】
前記判定部は、前記通信装置の状態または動作履歴に関する情報に基づいて、前記測定可否を判定する
請求項１６に記載のサーバ装置。
【請求項１９】
前記判定部は、前記外部装置の負荷状態または前記通信ネットワークの負荷状態に応じて、前記測定可否を判定する
請求項１６に記載のサーバ装置。
【請求項２０】
前記判定部は、前記負荷状態として、前記外部装置が実行中の測定の数に基づいて、前記測定可否を判定する
請求項１９に記載のサーバ装置。
【請求項２１】
前記判定部は、前記通信装置が前記測定で送信する測定パケットを受けて前記外部装置に転送する第１の外部装置を、複数の第１の外部装置の中から特定し、前記測定可否情報とともに、特定した第１の外部装置の情報を前記通信装置に送信する
請求項１６に記載のサーバ装置。
【請求項２２】
前記通信装置は、請求項１ないし１５のいずれか一項に記載の通信装置である
請求項１６ないし２１のいずれか一項に記載のサーバ装置。
【請求項２３】
通信ネットワークを介して、第１の外部装置と第１コネクションを確立し、第２の外部装置と第２コネクションを確立する確立ステップと、
前記第１コネクションで前記第１の外部装置に第１の送信周期でキープアライブパケットを送信し、前記キープアライブパケットに対する応答パケットを受信する通信維持ステップと、
前記第２コネクションの確立後または前記第２コネクションでの測定パケットの受信後、予め定めた候補時間を開けて、前記第１コネクションで、前記第１の外部装置に測定パケットを送信し、前記第１の外部装置によって前記第２の外部装置に転送された前記測定パケットを前記第２コネクションで受信したかを確認する、送信周期決定処理を用いて、前記第１の送信周期を決定する送信周期決定ステップと
を備えた通信方法。
【請求項２４】
通信ネットワークを介して、第１の外部装置と第１コネクションを確立し、第２の外部装置と第２コネクションを確立する確立ステップと、
前記第１コネクションで前記第１の外部装置に第１の送信周期でキープアライブパケットを送信し、前記キープアライブパケットに対する応答パケットを受信する通信維持ステップと、
前記第２コネクションの確立後または前記第２コネクションでの測定パケットの受信後、予め定めた候補時間を開けて、前記第１コネクションで、前記第１の外部装置に測定パケットを送信し、前記第１の外部装置によって前記第２の外部装置に転送された前記測定パケットを前記第２コネクションで受信したかを確認する、送信周期決定処理を用いて、前記第１の送信周期を決定する送信周期決定ステップと
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、通信装置、サーバ装置、通信方法およびプログラムに関する。
【背景技術】
【０００２】
確立した通信コネクションを維持し、双方向の低遅延通信を実現するＷｅｂ標準通信プロトコルとしてＷｅｂＳｏｃｋｅｔが知られている。その他、常時接続を前提とした同様のプロトコルとして、機器間での１対１、１対多の通知を実現するＭＱＴＴ（Ｍｅｓｓａｇｅ Ｑｕｅｕｅ Ｔｅｌｅｍｅｔｒｙ Ｔｒａｎｓｐｏｒｔ）等もある。これらの通信プロトコルでは、通信経路上の中継装置によって通信コネクションを切断されないように、コネクションを維持するためのキープアライブパケットを定期的に送信する必要がある。これは、パケットが全く流れない無通信状態が一定時間継続すると、介在する中継装置が通信コネクションを切断するおそれがあるからである。
【０００３】
中継装置がコネクションを切断するまでの時間であるタイムアウト値は、中継装置の機種や設定によって異なっており、通信機器がこの設定値を参照できないケースも多い。そのため、中継装置のタイムアウト設定値よりも低いと想定される値（例えば、６０秒）を周期として、キープアライブパケットを送信することが一般的である。
【０００４】
しかし、多数のクライアントと接続する場合、一律に短周期でキープアライブパケットを送信する方式では、通信コストや、通信機器またはこれと通信するサーバの負荷（ＣＰＵ等の負荷）が無視できない。特に、昨今普及しているクラウドサービスでは、通信を従量課金制にしているものが多く、通信量の増大は運用費用に影響するため、可能な限り通信量を削減する必要がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−０５３７３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の実施形態は、少ない通信量で、確立したコネクションを維持することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様としての通信装置は、通信部と、通信維持部と、送信周期決定部と、測定可否判定部とを備える。前記通信部は、前記第１コネクションで前記第１の外部装置に第１の送信周期でキープアライブパケットを送信し、前記キープアライブパケットに対する応答パケットを受信する。前記送信周期決定部は、前記第２コネクションの確立後または前記第２コネクションでの測定パケットの受信後、予め定めた候補時間を開けて、前記第１コネクションで、前記第１の外部装置に測定パケットを送信し、前記第１外部装置によって前記第２外部装置に転送された前記測定パケットを前記第２コネクションで受信したかを確認する、送信周期決定処理を用いて、前記第１の送信周期を決定する。
【図面の簡単な説明】
【０００８】
【図１】第１の実施形態に係る通信システムの概略構成を示すブロック図。
【図２】第１の実施形態に係る送信周期決定処理のフローチャート。
【図３】第１の実施形態に係る送信周期測定処理のフローチャート。
【図４】第１の実施形態に係る送信周期決定処理時の通信シーケンスの一例を示す図。
【図５】第１の実施形態に係る送信周期測定処理と遠隔制御通信が並行して行われる場合の通信シーケンスの一例を示す図。
【図６】第２の実施形態に係る通信システムの概略構成を示すブロック図。
【図７】第２の実施形態に係る送信周期決定処理のフローチャート。
【図８】第２の実施形態に係る送信周期決定処理時の通信シーケンスの一例を示す図。
【図９】第３の実施形態に係る通信システムの概略構成を示すブロック図。
【図１０】第３の実施形態に係る送信周期決定処理のフローチャート。
【図１１】第３の実施形態に係る送信周期測定処理と遠隔制御通信が並行して行われる場合の通信シーケンスの一例を示す図。
【図１２】第４の実施形態に係る通信システムの概略構成を示すブロック図。
【図１３】第４の実施形態に係る送信周期決定処理のフローチャート。
【図１４】第４の実施形態に係る送信周期決定処理時の通信シーケンスの一例を示す図。
【図１５】本発明の一実施形態に係る通信装置を備えたハードウェア構成例を示した図。
【発明を実施するための形態】
【０００９】
以下、図面を参照しながら、本発明の実施形態について説明する。
【００１０】
（第１の実施形態）
図１は、第１の実施形態に係る通信システムの概略構成を示すブロック図である。この通信システムは、通信装置１０１、制御装置３０１、第１外部装置４０１、第２外部装置４０２とを備え、これらが通信ネットワーク６０１を介して接続される。通信装置１０１は、通信インタフェース部１０２と、通信部１０３、通信維持部１０４、送信周期決定部１０５、測定可否判定部１０６、測定可否情報記憶部１０７を備える。
【００１１】
通信ネットワーク６０１は、少なくとも１台の中継装置２０１と、ネットワーク５０１とを含む。中継装置２０１はネットワーク５０１と通信装置１０１間に配置されており、そのうちの１台は通信装置１０１に、無線または有線で接続されている。ネットワーク５０１にも、１つまたは複数の中継装置が配置されていてよい。以下では、ネットワーク５０１内の中継装置も、参照番号２０１で指すものとする。中継装置２０１は、例えば、公衆網上のルータ、宅内に設置されたブロードバンドルータやＯＮＵ、データセンター等のサーバ側のイントラネット内に設置されたロードバランサ、ファイアーウォール、プロキシなど、あらゆるタイプの機器が想定される。ネットワーク５０１と通信装置１０１間に中継装置２０１が配置されず、ネットワーク５０１内にのみ中継装置２０１が配置されてもよい。中継装置２０１は、ＬＳＮ（Ｌａｒｇｅ  Ｓｃａｌｅ  ＮＡＴ）などのＮＡＴ機能を有していてもよい。中継装置２０１のうちの１台がブロードバンドルータであり、このブロードバンドルータに、通信装置１０１が無線または有線で接続されていてもよい。
【００１２】
ネットワーク５０１は、インターネットや、ＮＧＮ（Ｎｅｘｔ  Ｇｅｎｅｒａｔｉｏｎ  Ｎｅｔｗｏｒｋ）などの広域ネットワークでも、ローカルネットワークなどの閉域ネットワークでもよい。またネットワーク５０１は、有線ネットワークでも、無線ネットワークでも、これらの複合ネットワークでもよい。ネットワーク６０１を介した各装置間の通信は、ＴＬＳ（Ｔｒａｎｓｐｏｒｔ  Ｌａｙｅｒ  Ｓｅｃｕｒｉｔｙ）上でのＷｅｂＳｏｃｋｅｔプロトコルで行われることを想定しているが、ＭＱＴＴ、ＨＴＴＰロングポーリング（Ｃｏｍｅｔ）など、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）ベースの他の通信プロトコルであっても構わないし、ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）ベースのコネクションレス型の通信プロトコルであっても構わない。したがって、本実施形態で用いる「コネクション」という用語は、ＴＣＰプロトコルのコネクションに限定されるものではなく、ＮＡＴなどの中継装置をまたがって維持される通信装置と外部装置との間の通信路を指すものとする。
【００１３】
第１外部装置４０１、第２外部装置４０２は、イントラネットなど同一のネットワーク上に存在してもよく、本実施形態では、これらの装置が同一のネットワーク上に存在するとする。
【００１４】
通信装置（被制御装置）１０１は、通信機能を備え、制御装置３０１により、遠隔制御されるエアコン、照明、デジタルテレビなどのネット家電やＰＣなどの機器に搭載されてもよい。制御装置３０１は、通信装置１０１を遠隔制御するスマートフォンやノートＰＣなどのクライアント端末である。エンドユーザは、制御装置３０１に搭載されたアプリケーションやＷｅｂブラウザを介して、通信装置１０１に対し遠隔監視、電源のＯＮおよびＯＦＦ、設定変更などの遠隔制御を行う。遠隔制御は、外出先など通信装置１０１が属するネットワーク外から行う事を想定しているが、通信装置１０１と同じネットワーク内から行ってもよい。制御装置３０１は、ネットワーク５０１に有線または無線で接続されている。通信装置１０１を制御する際の通信の開始のトリガーは、制御装置３０１から行われ、制御装置３０１は、第１外部装置４０１および通信ネットワーク６０１を介して、通信装置１０１に対する遠隔制御のための通信を開始および実行する。
【００１５】
中継装置２０１は、上述したように、ＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）機能を備えていてもよい。例えば、通信装置１０１と接続された中継装置２０１がブロードバンドルータであり、ＮＡＴ機能を備えているとする。この場合、ＮＡＴのテーブル設定によっては、通信装置１０１と通信コネクションが確立されていない状態では、通信装置１０１が属するホームネットワークの外側からは通信装置１０１と通信を開始できず、通信装置１０１側から開始する通信のみ許可される場合もあり得る。
【００１６】
通信装置１０１は、制御装置３０１からいつでも通信装置１０１を制御することができるように、第１外部装置４０１との通信コネクション（第１コネクション）を常時維持する。これにより、第１外部装置４０１が制御装置３０１から遠隔制御の要求（遠隔制御要求）を受信した場合に、遠隔制御要求を速やかに通信装置１０１に転送して、高速および効率的な制御が可能となる。ここで、制御装置３０１が接続されておらず、遠隔制御が行われずに、第１コネクションでパケットが全く流れない状態（無通信状態）が暫く継続すると、通信装置１０１と第１外部装置４０１の通信経路上に存在する中継装置２０１のいずれかが、コネクションを切断するおそれがある。このため、通信装置１０１は、第１コネクションを常時維持するべく、定期的にコネクションを維持するためのパケット（キープアライブパケットまたはハートビートパケット。以下、キープアライブパケットに統一）を、第１コネクションを介して、第１外部装置４０１に送信する。第１外部装置４０１は、キープアライブパケットへの応答パケットを通信装置１０１に送信する。これにより、第１外部装置４０１から通信装置１０１への方向（外側から内側への方向）の通信がないことを理由として、第１コネクションが遮断されることを防止できる（中継装置のＮＡＴテーブルの構成に依存して、第１外部装置４０１が応答パケットを送信しなくても、第１コネクションが維持される可能性もある）。なお、応答パケットは、キープアライブパケットに対するＡＣＫパケットで代用することも考えられるが、ＡＣＫパケットの送信がコネクション維持のための通信として扱われない場合もあり得るため、専用に定義された応答パケットを、キープアライブパケットの応答パケットとして用いることが好ましい。
【００１７】
各中継装置２０１がコネクションを切断するまでの時間は、各中継装置２０１に予め設定されたＮＡＴテーブルなどのタイムアウト値によって決まる。ゆえに、コネクションが切断される時間は、通信経路上に存在する全ての中継装置２０１のタイムアウト値のうち、もっとも小さいタイムアウト値により律される。通信経路上に存在する全ての中継装置２０１のタイムアウト値のうち、もっとも小さいタイムアウト値を、以後、「経路のタイムアウト値」と呼ぶ。したがって、キープアライブパケットの送信周期は、通信装置１０１と第１外部装置４０１との間の経路のタイムアウト値よりも短くしなければならない。
【００１８】
しかし、キープアライブパケットを短周期で送信することは、第１外部装置４０１の処理負荷の増加に繋がる。また、第１外部装置４０１が、通信量によって課金されるクラウドサービスのサーバである場合、コストの増加につながる。ゆえに、キープアライブパケトの送信周期は、経路のタイムアウト値未満で、その値になるべく近いことが望ましい。
【００１９】
このような条件を満たす、キープアライブパケットの送信周期を決定するため、通信装置１０１は、キープアライブパケットの他に、測定用のパケット（測定パケット）を、第１外部装置４０１に送信する。この測定パケットは、第１コネクションを介して送信される。通信装置１０１が送信する測定パケットのペイロード部またはヘッダには、例えば通信装置１０１が送信した測定パケットであることを識別する情報（例えば所定値、乱数、その他任意の値でもよい）や、通信装置１０１に関する識別情報（送信元識別情報）が含まれていてもよい。
【００２０】
一方、通信装置１０１は、送信周期の測定に用いる通信コネクション（第２コネクション）を第２外部装置４０２と確立する。第２外部装置４０２は、第１外部装置４０１で第１コネクションを介して受信された測定パケットを、第１外部装置４０１から受け取り、第２コネクションを介して、この測定パケットを通信装置１０１に転送する。測定パケットを第１外部装置４０１および第２外部装置４０２を介して通信装置１０１へ転送する際は、転送段階に応じて、適宜、ＩＰヘッダ等は変更される。なお、ペイロード部の値は同一の値が維持されてもよいし、変更、削除および新たな情報の追加が行われてもよい。ＩＰヘッダのＩＰアドレス例として、例えば、通信装置１０１から送信する測定パケットの送信元ＩＰアドレスおよび宛先ＩＰアドレスは、それぞれ通信装置１０１および第１外部装置であり、第１外部装置４０１から第２外部装置４０２に転送する測定パケットの送信元ＩＰアドレスおよび宛先ＩＰアドレスは、それぞれ第１外部装置４０１から第２外部装置４０２であり、第２外部装置４０２から通信装置１０１に転送する測定パケットの送信元ＩＰアドレスおよび宛先ＩＰアドレスは、それぞれ第２外部装置４０２および通信装置１０１である。送信元ポート番号および宛先ポート番号についても同様に、使用されるコネクション、および転送される段階に応じて、適宜、値が設定される。
【００２１】
具体的な動作例として、第１外部装置４０１で、測定パケットのヘッダから通信装置１０１または第１コネクションの識別情報（通信装置１０１のＩＰアドレス、または当該ＩＰアドレスと送信元ポート番号の組など）を検出し、検出した識別情報を、測定パケットのペイロードデータとともに第２外部装置４０２に送る。そして、第２外部装置４０２が、通信装置１０１の識別情報をもとに、通信装置１０１と第２コネクションを特定し、受け取ったペイロードデータにヘッダを付加して、パケットを生成し、パケットを通信装置１０１に送信する。これにより測定パケットが第１および第２外部装置を介して転送される。
【００２２】
通信装置１０１から測定パケットを送信する間隔を変更しつつ、測定パケットを第２コネクションで受信できるかを確認する処理を行うことで、経路のタイムアウト値がどれくらいかを推測し、第１コネクションで送信するキープアライブパケットの送信周期を決定する。第２外部装置４０２が、第１外部装置４０１と同一ネットワーク上に存在する場合、通信装置１０１と第１外部装置４０１との経路、および通信装置１０１と第２外部装置４０２との経路は同一であるため、経路のタイムアウト値も同じになると考えられる。また、制御装置３０１および通信装置１０１間の遠隔制御に関するパケットが流れる第１コネクションとは異なり、第２コネクションは測定のみに用いられる。そのため、測定中に第２コネクションが切断されても、第１コネクションに影響が生じない。
【００２３】
第１の実施形態では、通信装置１０１は、接続する第１外部装置４０１および第２外部装置４０２のＩＰアドレスなどの接続先情報および接続するために必要な認証情報等を予め保持しているものとする。
【００２４】
制御装置３０１は、通信装置１０１を制御する場合は、第１外部装置４０１に対し、通信コネクション（第３コネクション）を確立することで、第１外部装置４０１に接続する。この際、制御装置３０１は、第１外部装置４０１のＩＰアドレスなどの接続先情報、および接続するために必要な認証情報等を予め保持しているものとする。制御装置３０１は、遠隔制御が完了したら、第３コネクションを閉じる。
【００２５】
第１外部装置４０１は、制御装置３０１と通信装置１０１との間の通信を中継する。第１外部装置４０１は、通信装置１０１の常時接続を想定した双方向通信プロトコルを処理する。通信プロトコルは、ＷｅｂＳｏｃｋｅｔやＭＱＴＴなどが想定されるが、上記以外でもよい。たとえば、コネクションレス型のＵＤＰプロトコルをベースにしたＣｏＡＰ（Ｃｏｎｓｔｒａｉｎｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）、ＳＴＵＮ（Ｓｉｍｐｌｅ  Ｔｒａｖｅｒｓａｌ  ｏｆ  ＵＤＰ  ｔｈｒｏｕｇｈ  ＮＡＴｓ）などであってもよい。第１外部装置４０１は、制御装置３０１からの遠隔制御要求を受信した場合は、パケットに含まれる情報などから送信先である通信装置１０１を判別し、遠隔制御要求を当該通信装置１０１に転送する。また、第１外部装置４０１は、通信装置１０１から第１コネクションを介して測定パケットを受信したときは、測定パケットを第２外部装置４０２へ転送する。第１外部装置４０１と第２外部装置４０２は同一のネットワーク上に存在する場合、測定パケットの転送はネットワーク６０１を介さずに行われる。
【００２６】
第２外部装置４０２は、通信装置１０１と第１外部装置４０１の間の経路のタイムアウト値を測定するために用いられる第２コネクションを、通信装置１０１と確立する。測定パケットを第１外部装置４０１から受信したときは、第２コネクションを介して、当該測定パケットを通信装置１０１に転送する。測定パケットの転送とは、前述に記載した意味に従う。
【００２７】
本実施形態では、第２外部装置４０２と通信装置１０１の通信経路と、第１外部装置４０１と通信装置１０１の通信経路が同じであるため、第１コネクションと第２コネクションのタイムアウト値は同じとみなせる。ゆえに、第２コネクションを用いた測定により決めた送信周期を第１コネクションに適用しても問題はない。仮に、第１コネクションを測定に用いると、制御装置３０１からの遠隔制御要求など他のパケットによって測定が妨げられるおそれがある。また、測定方法によっては、測定の途中で第１コネクションが切断される可能性があり、切断されている間は、制御装置３０１から通信装置１０１を制御できなくなる問題がある。
【００２８】
また、通信装置１０１から第２外部装置４０２に直接、測定パケットを送信すると、中継装置２０１のタイムアウト時間がリセットされてしまう可能性がある。つまり、本実施形態では、制御装置３０１および通信装置１０１間の遠隔制御の通信の開始は、制御装置３０１がトリガーになるため、外側から内側への方向、すなわち、第２外部装置４０２から通信装置１０１への方向の通信がどれくらいの間発生しなかったら、タイムアウトになるのかを知りたい。そのため、通信装置１０１は、測定パケットを第１コネクション経由で第２外部装置４０２に届け、第２コネクションで測定パケットを受信することで、この問題を解決する。
【００２９】
なお、第２外部装置４０２が第１外部装置４０１とは異なるネットワークに属する場合は、通信経路上に存在する中継機器も異なり、測定する送信周期の精度が低下する可能性がある。ただし、第２外部装置４０２が別ネットワーク上にあっても、異なる経路上に存在する中継装置２０１を把握している場合は、異なる中継装置２０１のタイムアウト値を考慮すればよいため、別ネットワークに存在していても問題はない。
【００３０】
次に、通信装置１０１が備える各部について説明する。通信インタフェース部１０２は、有線または無線の通信インタフェースである。通信部１０３は、ＴＣＰ／ＩＰの通信機能を備え、第１外部装置４０１および第２外部装置４０２と通信コネクションを確立し、パケットの送受信を、通信インタフェース部１０２を介して行う。Ｗｅｂｓｏｃｋｅｔが適用される場合、Ｗｅｂｓｏｃｋｅｔの機能を通信部１０３が行う。
【００３１】
通信維持部１０４は、中継装置２０１によって第１コネクションが切断されないように、第１コネクションを介して、キープアライブパケットを通信部１０３に送信させる。キープアライブパケットは、予め定められた送信周期、または、後述の送信周期決定部によって決定される送信周期で送信される。通信維持部１０４は、キープアライブパケットに対する応答パケットを受信する。
【００３２】
送信周期決定部１０５は、キープアライブパケットの送信周期を決定する。送信周期決定部１０５は、第２コネクションが確立された時刻、または第２コネクションで測定パケットを受信した時刻（あるいは第１コネクションで測定パケットを送信した時刻）等から、送信周期を更新する候補時間（送信間隔候補時間）の経過後に、通信部１０３に第１コネクションを用いて測定パケットを送信させる。この測定パケットを、第１外部装置４０１および第２外部装置４０２による転送により、第２コネクションを介して受信した場合は、キープアライブパケットの送信周期を、上述の送信間隔候補時間に更新しても第２コネクションは維持されることを意味する。よって、キープアライブパケットの送信周期を送信間隔候補時間に更新する。送信間隔候補時間の値を変更（増加等）させて、同様の処理を繰り返すことで、キープアライブパケットの送信周期を、経路のタイムアウト値に近づけるように決定できる。第２コネクションから測定パケットを受信しなかった場合は、第２コネクションは切断されていると推定でき、この場合の送信間隔候補時間は経路のタイムアウト値を越えていると判断できる。ゆえに、この場合は、この送信間隔候補時間でキープアライブパケットの送信周期を更新することは行わない。
【００３３】
送信間隔候補時間は、予め１つ以上の送信間隔候補時間が記録されたリストを送信周期決定部１０５に保持させておき、そのリストから選択してもよい。また、送信間隔候補時間の初期値を定め、一次関数、指数関数、ランダム関数などの関数によって求められる値を加算していってもよい。また、初期値から徐々に増やすのではなく、予め定められたアルゴリズムに従って定めてもよい。例えば、中継器の一般的なタイムアウト値を初期値として測定を行い、バイナリサーチ的に、第２コネクションが切断されていない場合は値を増加し、切断されていた場合は値を減少させ、これを繰り返すことで、キープアライブパケットの好適な送信周期を求めてもよい。送信間隔候補時間を徐々に増やすのではなく、徐々に減らすようにしてもよい。例えば上限が６０の場合に、６０→３０→１５→・・・のように徐々に減らし、最初に測定パケットを受信できたときの値を採用してもよい。また、固定的な数値リスト（送信間隔候補リスト）を用いてもよい。例えば、一般的なＮＡＴタイムアウトの間隔の分布が、例えば５分、１５分、６０分などに偏っていることを考慮して「４，１４，５９」という送信間隔候補リストを用意し、これを順番に試行するようにすることも想定される。以下の説明では、徐々に増やす場合を想定する。
【００３４】
測定可否判定部１０６は、通信装置１０１の状態または動作履歴に関する情報（以下、測定可否情報）に基づいて、送信周期決定部１０５が測定を行うか否かの判定（測定可否判定）を行う。測定可否情報としては、通信装置１０１の状態または動作履歴に関する情報であれば、種々のものが可能である。例えば、通信装置１０１の設定値などの情報や稼働履歴、測定の有無や回数、前回の測定日時などの測定履歴、第１外部装置４０１との接続維持時間などの接続履歴などがある。具体例として、測定可否判定は、通信装置１０１が初めて起動した時や再初期化された場合、通信装置１０１の主電源がＯＮである場合、起動した時間が夜間の一定期間内である場合などに、実行させるとしてもよい。また、例えば、前回測定時から閾値以上の時間を経過していた場合、現在の送信周期が閾値よりも短い場合などに測定を実行させるとしてもよい。また、閾値は乱数や関数などを用いて、変動させてもよい。
【００３５】
測定可否情報記憶部１０７は、測定可否情報を記憶する記憶部である。測定可否判定部１０６は、測定可否判定をする際に、測定可否情報記憶部１０７から測定可否情報を取得してもよい。測定可否情報記憶部１０７は、図示されていない測定可否情報を収集する部などから測定可否情報を取得してもよい。
【００３６】
図２は、第１の実施形態に係る送信周期を決定する処理（送信周期決定処理）のフローチャートである。当該送信周期決定処理は、通信装置１０１の初回起動時、再初期化時、再起動時もしくは第１コネクションの切断の検出時など、通信装置１０１に予め設定されたタイミングで、通信装置１０１によって開始されるものとする。
【００３７】
通信装置１０１の通信部１０３は、第１外部装置４０１との間に、ＴＬＳ上でのＷｅｂＳｏｃｋｅｔプロトコルなどによる第１コネクションを確立する（Ｓ１０１）。通信装置１０１は、第１外部装置４０１に接続するための情報（接続先情報）を保持しているものとする。接続先情報は、接続先のＵＲＬや、ＩＰアドレスおよびポート番号などがあげられる。第１コネクションを確立した通信装置１０１は、予め定められた周期でキープアライブパケットを送信し、応答パケットを受信することを繰り返することで、第１コネクションを維持する。
【００３８】
第１コネクションの確立要求には、送信元装置（通信装置）に関する情報（送信元識別情報）を含めてもよい。第１外部装置４０１または第２外部装置４０２は、第１コネクションと第２コネクションと通信装置１０１の情報（送信元識別情報）を対応付けて記憶してもよい。これにより第１外部装置４０１から転送された測定パケットを受信した第２外部装置４０２は、測定パケットを転送すべき通信装置と第２コネクションを特定できる。送信元識別情報は、通信装置名でも使用するユーザ名でもよいし、予め第１外部装置４０１に登録しておいたユーザや通信装置に関する情報でもよい。または以前のコネクション確立時に第１外部装置４０１等により生成されたコネクションごとの情報であってもよい。
【００３９】
また、第１コネクションの確立要求には、第１コネクションを確立する際に用いられる認証情報を含んでもよい。認証情報は、第１コネクション確立の際に認証が必要な場合に使用される。認証情報は、第１コネクションあるいは通信装置の単位で生成された事前共有鍵や、ユーザパスワードでもよい。または以前の認証処理の際に作成されたセッション識別情報などでもよく、第１外部装置４０１と認証できる情報であればよい。
【００４０】
通信装置１０１の測定可否判定部１０６は、測定可否情報記憶部１０７から測定可否情報を取得する（Ｓ１０２）。取得のタイミングは任意に定めてよい。本測定処理では、先述の第１コネクションの確立（Ｓ１０１）の後に測定可否を実施しているが、それより先に行ってもよい。
【００４１】
測定可否判定部１０６は、取得した測定可否情報にもとづき、測定可否判定を行うことにより、送信周期測定処理を行うか否かを決定する（Ｓ１０３）。
【００４２】
送信周期測定処理を行うと決定した場合（Ｓ１０４のＹＥＳ）は、通信装置１０１は、送信周期測定処理を実施し（Ｓ１０５）、必要に応じて、キープアライブパケットの送信周期を更新する。送信周期測定処理を行わないと決定した場合（Ｓ１０４のＮＯ）は、通信装置１０１は、送信周期測定処理を実施せず、送信周期決定処理を終了する。
【００４３】
図３は、送信周期測定処理（Ｓ１０５）の詳細フローチャートである。通信装置１０１の通信部１０３は、第２外部装置４０２に対し、送信周期測定処理に用いる第２コネクションを確立する（Ｓ２０１）。通信装置１０１は、第２外部装置４０２に接続するための情報（接続先情報）を保持しているものとする。接続先情報は、接続先のＵＲＬや、ＩＰアドレスおよびポート番号などがあげられる。
【００４４】
通信装置１０１は、第２コネクションを確立後、測定パケットの送信時刻になるまで待機する（Ｓ２０２）。最初の測定パケットの送信時刻は、測定したい時間間隔を経過した時刻（送信間隔候補時間が経過した時刻）である。送信間隔候補時間の初期値は、第２コネクションが確立された時刻から、キープアライブパケットの送信周期の時間と同じにしてもよい。
【００４５】
通信装置１０１は、測定パケット送信時刻に、第１コネクションを介して、測定パケットを外部装置４０１に送信する（Ｓ２０３）。第１外部装置４０１は、測定パケットを第１コネクションを介して受信し、当該測定パケットを第２外部装置４０２へ転送する（Ｓ２０４）。第１外部装置４０１が受信したパケットを測定パケットと判断できるようにするために、測定パケットに測定パケットであることを示すパケット種別情報などを含めてもよい。または、通信装置１０１が送信するパケットに、転送先である第２外部装置４０２や第２コネクションの情報を含めておき、当該情報が含まれる場合は、第２外部装置４０２に転送するように設定しておけばよい。第２外部装置４０２への転送設定は、予めまたは第１コネクションが確立された際に設定しておけばよい。
【００４６】
第２外部装置４０２は、第１外部装置４０１から測定パケットが転送された場合、測定パケットを転送する先となる通信装置１０１と第２コネクションを特定し、第２コネクションを介して測定パケットを通信装置１０１に転送する（Ｓ２０５）。
【００４７】
第２外部装置４０２に、通信装置１０１および第２コネクションを選択させるために、送信元識別情報として、通信装置１０１が送信する測定パケットに第２コネクションの情報も含めておいてもよい。または、送信元識別情報として、通信装置１０１の識別情報を、通信装置１０１が送信する測定パケットに含めておき、第２外部装置４０２はコネクション確立時に記憶した通信装置１０１の識別情報と第２コネクションとの対応づけによって、第２コネクションを選択してもよい。
【００４８】
通信装置１０１は、第２外部装置４０２から転送された測定パケットを受信した場合、または、測定パケットを受信せずに測定パケットの送信から一定時間経過した場合は、測定の継続可否を判断する（Ｓ２０６）。測定パケットを受信し、かつ予め定めた条件を満たす場合（Ｓ２０６のＹＥＳ）は、通信装置１０１は、キープアライブパケットの送信周期を更新し（Ｓ２０８）、測定パケットの次の送信時刻を、第２コネクションで測定パケットを受信した時刻（あるいは、直前に第１コネクションから測定パケットを送信した時刻あるいはその他の任意に定義した時刻でもよい。パケットの通信遅延や各装置内での処理時間は、送信周期に比べて小さいと考えられる。以下同様。）から、次の送信間隔候補時間を加えた時刻に設定する（Ｓ２０９）。そして、新たな送信時刻まで待機し（Ｓ２０２）、本処理を繰り返す。ここで、予め定めた条件を満たす場合の例として、試行回数（測定パケットの送信回数）が一定値に達していないこと、または送信間隔候補時間が閾値未満であることなどが挙げられる。測定パケットを受信しなかった場合や、当該予め定めた条件を満たさない場合（Ｓ２０６のＮＯ）は送信周期測定処理を終了とし、第２コネクションを閉じる（Ｓ２０７）。予め定めた条件を満たさない場合の他の例として、第１外部装置４０１および第２外部装置４０２のうちの１つから送信周期決定処理の停止命令を受信した場合であってもよい。第１外部装置４０１または第２外部装置４０２は、予め定めたイベントが発生した場合に、第１コネクションまたは第２コネクションで、当該停止命令を送信してもよい。または、第１コネクションまたは第２コネクションでの通信が終了した場合であってもよい。なお、測定継続可否を、測定可否判定部１０６に行わせてもよい。また、送信周期の更新は測定パケットの送信ごとに行わず、送信周期測定処理終了後に一度行ってもよい。この場合、送信周期測定処理の終了までのキープアライブパケットの送信周期は、本フローの処理の開始前の値を継続して利用すればよい。
【００４９】
なお、本フローチャートの処理において、第１外部装置４０１または第２外部装置４０２の判断によって、測定パケットの転送を中止してもよい。また、測定パケットの代わりに、送信周期測定処理を中止または継続させないことを指示するためのパケットを通信装置１０１に送信してもよい。そのようなパケットを受信した通信装置１０１は送信周期測定処理を中止するようにすればよい。
【００５０】
図４は、送信周期決定処理時の通信シーケンスの一例を示す図である。通信装置１０１が第１コネクションの確立要求を第１外部装置４０１に対し送信し、第１外部装置４０１は、第１コネクションの確立応答を送信する。これにより、第１コネクションが確立する（Ａ２０１）。以降、第１コネクションは、通信装置１０１によるキープアライブパケットの送信と、応答パケットの受信により維持され続ける（なお、中継装置のＮＡＴテーブルの構成に依存して、応答パケットの受信がなくても、第１コネクションが維持される可能性もある）。前述したように、第１外部装置４０１は、キープアライブパケットに対して第１コネクションを介して応答パケットを通信装置１０１に送信してもよい。
【００５１】
次に、通信装置１０１は第２コネクションの確立要求を第２外部装置４０２に送信し、第２外部装置４０２は、第２コネクションの確立応答を行う。これにより、第２コネクションが確立する（Ａ２０２）。なお、第２コネクションでは、通信装置１０１はキープアライブパケットを送信しない。
【００５２】
次に、通信装置１０１は、Ｍ（Ｍは正の実数）秒待機した後で、第１コネクションを介して測定パケットを送信する（Ａ２０３）。このＭは、送信間隔候補時間の初期値であり、この値は、任意に定めてよい。例えば、現在のキープアライブパケットの送信周期の２倍などにしてもよい。測定パケットを受信した第１外部装置４０１は、即座に第２外部装置４０２に測定パケットを転送する（Ａ２０４）。第２外部装置４０２は、受信した測定パケットを、第２コネクションを介してさらに通信装置１０１に転送する（Ａ２０５）。ここでは、中継装置２０１で第２コネクションがまだ切断されていないとし、測定パケットを通信装置１０１が受信することができたとする。
【００５３】
通信装置１０１は、送信周期測定処理を継続可能として、２回目の送信周期測定処理を行う（Ａ２０６、Ａ２０７）。また、通信装置１０１は、測定パケットを受信できたので（Ａ２０８）、キープアライブパケットの送信周期をＭ秒に更新しても問題ないと判断し、Ｍ秒に更新する。２回目の送信周期測定処理で用いる送信間隔候補時間も任意に定めてよい。この通信シーケンス例では、送信間隔候補時間を初期値ＭからＬ（Ｌは正の実数）秒増加したＭ＋Ｌとする。通信装置１０１は、測定パケットを受信した時刻からＭ＋Ｌ秒後の時刻まで待機する。なお、Ａ２０６の前に、第２コネクション上でキープアライブパケットを送信し、応答を受信するように構成してもよい。本実施形態では、ＴＣＰベースのコネクションを想定しているが、特にＵＤＰプロトコルを想定した場合には、経路上のＮＡＴテーブルを双方向（通信装置→外部装置、外部装置→通信装置）で更新しておくことで、より正確にタイムアウト計測を行うことも考えられる。
【００５４】
待機後、通信装置１０１は再度、第１コネクションを介して測定パケットを送信する（Ａ２０９）。第１外部装置４０１、第２外部装置４０２も前回同様に処理し、測定パケットが通信装置１０１に返される（Ａ２１０、Ａ２１１）。通信装置１０１は、送信周期測定処理を継続可能として、再度送信周期測定処理を行うこととし、キープアライブパケットの送信周期をＭ＋Ｌ秒に更新する。送信間隔候補時間は、前回の送信間隔候補時間からＬ秒増加したＭ＋２Ｌとする。通信装置１０１は、先の測定パケットを受信した時刻からＭ＋２Ｌ後の時刻まで待機する。３回目の送信周期測定処理でも測定パケットが受信できたため、キープアライブパケットの送信周期をＭ＋２Ｌ秒に更新し、先の測定パケットを受信した時刻からＭ＋３Ｌ秒後の時刻まで待機する。４回目の送信周期測定処理では、第２外部装置４０２が第２コネクションを介して測定パケットを転送するが（Ａ２１２、Ａ２１３）、第２コネクションはタイムアウトにより切断されており、測定パケットは通信装置１０１に到達しない（Ａ２１４）。通信装置１０１は、一定時間経過しても測定パケットが到達しないため、測定継続不可として、送信周期測定処理を終了する。結果として、キープアライブパケットの送信周期はＭ＋２Ｌ秒となる。
【００５５】
図５は、図４に示した送信周期測定処理と並行して、制御装置３０１から通信装置１０１間の遠隔制御通信が行われる場合の通信シーケンスの一例を示す図である。通信装置１０１は、第１外部装置４０１と第１コネクションを確立した後、キープアライブパケットを定期的に送信して、第１コネクションを維持する。キープアライブパケットの送信周期は当初Ｎ（Ｎは正の実数）秒であるが、図４で示した送信周期決定処理によって、キープアライブパケットの送信周期が更新されていく。図５では、１回目の送信周期はＮ、２回目はＭ＋Ｌ、３回目はＭ＋２Ｌとなったとする（なお、Ｎ、Ｍ、Ｌの大きさにより、送信周期が更新される前にキープアライブパケットが送信される場合もある。その場合は、前回と同じ周期で送信される）。４回目の送信周期決定処理は失敗したため、４回目以降は、Ｍ＋２Ｌの周期のままでキープアライブパケットは送信され続ける。
【００５６】
制御装置３０１は、ユーザの所望のタイミングにより、第１外部装置４０１に対し、第３コネクションの確立要求を行う。この時、制御装置３０１は、第３コネクションから送られたパケットを第１コネクションに転送できるように、第１コネクションの確立時同様、ユーザや通信装置１０１の送信元識別情報を併せて送信してもよい。第１外部装置４０１は、制御装置３０１から第３コネクションの確立要求を受信すると、第３コネクションの確立応答を制御装置３０１に送信する。これにより、第３コネクションが確立する。
【００５７】
第３コネクションの確立後、制御装置３０１は、第１外部装置４０１に対し遠隔制御要求を送信する。遠隔制御要求には、第１外部装置４０１が遠隔制御要求を第１コネクションに転送することができるように、送信元識別情報が含まれていてもよい。
【００５８】
第１外部装置４０１は、第３コネクションを介して受信した遠隔制御要求を、第１コネクションを介して通信装置１０１に転送する。この時、第１外部装置４０１は、制御装置３０１の情報（送信元識別情報）や認証情報などを用い、遠隔制御要求を第３のコネクションから第１のコネクションに転送して問題ないことを確認してもよい。
【００５９】
通信装置１０１は、第１コネクションを介して制御結果を第１外部装置４０１に送信する。この制御結果に関するパケットにも、通信装置１０１の送信元識別情報を含めてもよい。第１外部装置４０１は、受信した制御結果を、第３コネクションを介して制御装置３０１に転送する。第１外部装置４０１は、第１コネクションから第３コネクションへの転送に関しても、送信元識別情報や認証情報などを用い、転送して問題ないことを確認してもよい。制御装置３０１は、遠隔制御を終了後、第３コネクションを切断する。
【００６０】
以上のように、第１の実施形態によれば、第２コネクションを用いて測定を行うことにより、第１コネクションのダウンタイムを作らずに、キープアライブパケットの送信周期を決定することができる。ゆえに、第１コネクションを利用する実サービスの通信（制御装置３０１から通信装置１０１への遠隔制御通信）への影響を抑えることができる。また、キープアライブパケットの送信周期をできるだけ長くすることで、コストを抑えることが可能となる。また、第２コネクションを第１外部装置４０１ではなく第２外部装置４０２に確立することや、測定可否判定部１０６によって第２コネクションを確立する回数を減らすことで、第１外部装置の負荷を抑えることが可能である。
【００６１】
（第２の実施形態）
図６は、本発明の第２の実施形態に係る通信システムを示す図である。第１の実施形態に対し、第３の外部装置であるサーバ装置として、接続調停装置（サーバ装置）７０１が追加されている。また、第２外部装置４０２は存在せず、第１コネクションおよび第２コネクションの両方とも、第１外部装置４０１に確立されるものとする。接続調停装置（サーバ装置）７０１は、通信インタフェース部７０２、判定部７０３、判定情報記憶部７０４を備える。
【００６２】
第１の実施形態では、通信装置１０１の測定可否判定部１０６が測定可否判定を行っていったが、第２の実施形態では、接続調停装置７０１が測定可否判定を行う。ただし、測定可否判定部１０６も、引き続き測定可否判定を行ってもよいし、両部の測定可否判定が、異なる測定可否情報に基づいて行われてもよい。
【００６３】
判定部７０３は、測定可否情報に基づいて測定可否判定を行い、通信インタフェース部７０２を介して、判定結果（測定可否）を含む測定指示情報を通信装置１０１へ送信する。測定可否情報および測定可否判定の判定方法は、第１の実施形態の測定可否判定部１０６で用いたものと同じでもよいし、それ以外でもよい。
【００６４】
判定情報記憶部７０４は、測定可否情報を記憶する記憶部である。測定可否情報は、第１の実施形態の測定可否情報記憶部１０７に記憶された通信装置１０１に関する情報だけでなく、第１外部装置４０１の情報、制御装置３０１の情報、遠隔制御または測定履歴等を含んでもよい。これらの情報は、接続調停装置７０１が各装置にポーリングして取得してもよいし、各装置が任意のタイミングで接続調停装置７０１に送信してもよい。また、判定情報記憶部７０４は、その情報の種類ごとに格納する複数の記憶部を有していてもよい。例えば、測定に関する情報を記憶する記憶部、通信装置１０１や第１外部装置４０１など機器に関する情報を記憶する記憶部、認証情報を記憶する記憶部などに分けてもよい。
【００６５】
図７は、第２の実施形態に係る送信周期決定処理のフローチャートを示す。第２の実施形態における送信周期決定処理も、第１の実施形態と同様、予め定められたタイミングで、通信装置１０１によって開始される。通信装置１０１は、測定指示要求を接続調停装置７０１に送信する（Ｓ３０１）。接続調停装置７０１は、測定指示要求を受けると、測定可否判定を行い（Ｓ３０２）、判定結果を含む測定指示情報を通信装置１０１に送信する（Ｓ３０３）。
【００６６】
通信装置１０１が、第１外部装置４０１と第１コネクションを確立する（Ｓ１０１）。以降の処理は、第１の実施形態と同じである。本フローでは、通信装置１０１が第１外部装置４０１と第１コネクションを確立する前に、測定指示要求（Ｓ３０１）を行っているが、第１コネクションを確立した後に行ってもよい。また第２の実施形態における送信周期測定処理のフローチャートは、第２外部装置４０２を第１外部装置４０１に置き換える点と、第１外部装置４０１から第２外部装置４０２への測定パケットの転送（Ｓ２０４）がない以外は同じである。
【００６７】
図８は、第２の実施形態に係る送信周期決定処理時の通信シーケンスの一例を示す図である。図４の通信シーケンスと異なる部分を説明する。
【００６８】
初めに通信装置１０１が、接続調停装置７０１に測定指示要求を送信する（Ａ３０１）。測定指示要求には、コネクション確立時同様、送信元識別情報や認証情報を含めてもよい。
【００６９】
接続調停装置７０１は、測定可否判定を行い、測定可否の判定結果を含む測定指示情報を送信する（Ａ３０２）。なお、測定不可の場合は、測定指示情報の送信を省略することも可能である。測定可の場合、すなわち、測定を指示する場合には、測定指示情報には、第２コネクションの識別情報と、第２コネクションの確立が許可された通信装置であることを示す情報、当該情報の正当性を検証するための秘密情報を含めてもよい。これにより、接続調停装置７０１に認められた通信装置１０１以外は、第２コネクションを確立することができなくなり、セキュリティが向上する。また、測定指示情報に、第１外部装置への通信コネクション確立に必要となる接続先情報を含めてもよい。これにより、通信装置１０１は、第２コネクションを確立する際に必要な情報を予め保持する必要はなく、システムの管理性が向上する。さらに、測定指示情報に、送信間隔候補時間のリスト、関数、アルゴリズムなど送信周期測定処理に用いる情報を含めてもよい。これにより、通信装置１０１の設定値によらずに、自由に測定方法を変更することが可能となる。また、測定指示情報に、測定開始時刻を含めてもよく、これにより通信量の少ない夜間などに送信周期測定処理を開始することも可能となる。
【００７０】
通信装置１０１は、測定可の判定結果を含む測定指示情報を受信した場合、すなわち、送信周期測定処理を行うように指示された場合、第１コネクションを確立し（Ａ３０３）、その後、第２コネクションの確立要求を第１外部装置４０１に送信する（Ａ３０４）。測定可の判定結果は明示的な情報として含まれていなくともよく、例えば、第２コネクションの識別情報など、第２コネクションに関する情報が含まれていた場合は、測定を指示されたと判断してもよい。なお、第２のコネクションを確立する際には、第２コネクションの確立要求時に、第１コネクションとは別のポート番号（通信装置１０１側のポート番号および第１外部装置側のポート番号）を用いればよい。
【００７１】
第１外部装置４０１は、通信装置１０１から第１コネクションを用いて送信された測定パケットを受信した場合は（Ａ３０５）、第２コネクションを用いて、測定パケットを転送する（Ａ３０６）。測定パケットを送信する第２コネクションを特定するために、第２コネクション確立時に、第２コネクションの確立要求に含まれる送信元識別情報などを用いて、第１コネクションと第２コネクションを対応づけしてもよい。あるいは、第１の実施形態で述べたのと同様の他の方法を用いてもよい。
【００７２】
以降の通信は、第１外部装置４０１が第２外部装置４０２の機能を担っている点を除き、図４の通信シーケンスと同じである（Ａ３０７、Ａ３０８、Ａ３０９、Ａ３１０、Ａ３１１、Ａ３１２）。また、遠隔制御通信に係る通信シーケンスは、第１の実施形態と同じである。
【００７３】
以上のように、第２の実施形態によれば、接続調停装置７０１が測定可否判定を行うことにより第１外部装置の負荷を制御できる。第１の実施形態では、通信装置が測定可否判定を行うため、測定処理を実行するタイミングが各通信装置１０１で決定される。この結果、同時間帯に多くの通信装置１０１が測定処理を行う可能性があり、第１外部装置４０１のメモリ等のリソースを逼迫する恐れがある。これに対し、第２の実施形態では、接続調停装置７０１が、外部装置４０１の状況などを考慮して、測定可否を判定するため、このような状況を回避することが可能となる。また、送信周期測定処理の測定方法を変更する場合なども、各通信装置１０１の設定を変更することなく、接続調停装置７０１のみを管理すればよい。これにより、送信周期測定処理の測定方法を変更する場合等への対応が容易となる。
【００７４】
（第３の実施形態）
図９は、第３実施形態に係る通信システムの概略構成を示すブロック図である。第３の実施形態では、第１外部装置４０１が複数台存在し、接続調停装置７０１が接続先情報記憶部７０５を備える点が、第２の実施形態と異なる。
【００７５】
第３の実施形態では、通信装置１０１と制御装置３０１は、接続調停装置７０１の接続先情報（アドレス等）を有するが、第１外部装置４０１の接続先情報（アドレス等）は有していないとする。このため、通信装置１０１と制御装置３０１は、第１外部装置４０１に接続する前に、接続調停装置７０１にそれぞれ接続先指示要求を送信して、第１外部装置４０１の接続先情報（アドレス等）を取得する。
【００７６】
接続調停装置７０１は、通信装置１０１の接続先指示要求に応じて、通信装置１０１の接続先となる第１外部装置を決定する。接続先として決定された第１外部装置の情報は接続先情報記憶部７０５に記憶される。接続先として決定された第１外部装置の情報は、接続先情報として通信装置１０１に送信される。また、接続調停装置７０１は、制御装置３０１からの接続先指示要求に対しては、制御装置３０１の制御対象である通信装置１０１の接続先である第１外部装置の情報を情報記憶部７０５から検出し、制御装置３０１に返信する。
【００７７】
図１０は、第３の実施形態に係る送信周期決定処理のフローチャートを示す。第３の実施形態では、通信装置１０１は、再起動時など予め定められたタイミングで、接続先指示要求を接続調停装置７０１に送信する（Ｓ４０１）。ただし、通信装置１０１が以前の接続先であった第１外部装置４０１の接続先情報をキャッシュなどで保存し、一定期間有効として再接続を可能としておく場合などは、接続先指示要求の送信を不要としてもよい。
【００７８】
接続調停装置７０１の判定部７０３は、通信装置１０１の接続先となる第１外部装置を決定する（Ｓ４０２）。決定方法は、第２の実施形態での測定可否判定と同様の方法で判断してもよい。また、通信装置１０１との実際の距離、経路のホップ数、予想される経路のタイムアウト値なども考慮して判断してもよい。
【００７９】
接続先の決定後、接続調停装置７０１の判定部７０３は、測定可否判定も行う（Ｓ３０２）。測定可否判定は、第２の実施形態での測定可否判定と同様に行ってよい。判定部７０３は、接続先として決定した第１外部装置の情報（接続先情報）、および測定可否に関する測定指示情報を通信装置１０１に送信する（Ｓ４０３）。接続先情報には、第１外部装置のＵＲＬ、ＩＰアドレス、ポート番号などの情報が含まれる。測定指示情報は、第２の実施形態と同様である。
【００８０】
以降の処理は、第２の実施形態と同じである。また第３の実施形態における送信周期測定処理のフローチャートは、第２外部装置４０２を第１外部装置４０１に置き換える点と、第１外部装置４０１から第２外部装置４０２への測定パケットの転送（Ｓ２０４）がない以外は第１の実施形態の場合と同様である。また、送信周期測定処理に係る通信シーケンスは、通信装置１０１が送信する要求が測定指示要求から接続先指示要求に変更され、通信装置１０１に測定指示情報だけでなく接続先情報が送信される点を除き、同じである。
【００８１】
図１１は、第３の実施形態に係る遠隔制御通信に関する通信シーケンスを示す図である。
通信装置１０１は、接続調停装置７０１に対し接続先指示要求を送信し（Ａ４０１）、接続調停装置７０１から接続先情報を取得した上で（Ａ４０２）、接続先情報により特定される第１外部装置４０１に第１コネクションを確立する（Ａ４０３）。通信装置１０１は、第１コネクションの確立後、キープアライブパケットを一定の周期で送信しながら、制御装置３０１からの遠隔制御要求を待つ。
【００８２】
制御装置３０１も接続調停装置７０１に対し接続先指示要求を送信する（Ａ４０４）。接続調停装置７０１の判定部７０３は、接続先指示要求に基づき、制御装置３０１が制御する対象となる通信装置１０１を判別する。この判別は、接続先指示要求に制御対象となる通信装置１０１の識別情報が含まれる場合は、当該識別情報に基づいて行ってもよいし、あるいは、予め保持している制御装置３０１と通信装置１０１の組み合わせのリストに基づいて行ってもよい。ここで述べた方法以外の方法で行ってもよい。接続調停装置７０１の判定部７０３は、制御対象となる通信装置１０１を判別したら、判別された通信装置１０１が第１コネクションを確立している第１外部装置４０１の情報を、接続先情報記憶部７０５から取得し、制御装置３０１の接続先情報として送信する（Ａ４０５）。制御対象となる通信装置１０１を判別できない場合や、通信装置１０１が接続している第１外部装置の情報を取得できない場合は、エラー通知を返すようにしてもよいし、制御装置３０１に一定時間待機後に、再度、接続先指示要求を送信するよう指示してもよい。制御装置３０１は、取得した接続先情報から、接続先の第１外部装置４０１を特定し、特定した第１外部装置４０１に第３コネクションの確立要求を送信し、第１外部装置４０１から第３コネクションの確立応答を受信することで、第３コネクションを確立する（Ａ４０６）。第３コネクション確立後以後の通信装置１０１との遠隔制御通信の通信シーケンスは、第１の実施形態と同様である。
【００８３】
以上のように、第３の実施形態では、通信装置１０１と制御装置３０１が、接続調停装置７０１の情報だけを知っていれば、接続すべき第１外部装置４０１の情報（アドレス等）を動的に取得することができ、複数の第１外部装置４０１で構成される大規模な通信システムにも本発明の実施が可能となる。また、本実施形態では、接続調停装置７０１が、通信装置１０１に接続先となる第１外部装置４０１の情報を送信すると同時に、測定指示情報の送信も行うことが出来る。
【００８４】
（第４の実施形態）
図１２は、第４の実施形態に係る通信システムの概略構成を示すブロック図である。第３の実施形態との差分として、接続調停装置７０１が、測定制御部７０６をさらに備える。
【００８５】
測定制御部７０６は、判定部７０３を任意のタイミングで動作させ、測定可否判定を行わせる。判定部７０３が送信周期測定処理を通信装置１０１に行わせると決定した場合は、第１外部装置４０１を介して通信装置１０１に測定指示情報を送信する。判定部７０３を動作させるタイミングとして、測定制御部７０６は、通信装置１０１に送信周期測定処理を行わせるに適した状況と判断した場合でもよい。例えば、他の通信装置１０１の送信周期測定処理が終了し、第１外部装置４０１で実行中の送信周期測定実行数が閾値を下回ったなど、第１外部装置４０１の負荷が低い場合、または、ネットワークに輻輳がない場合などがあげられる。また、通信装置１０１の状態や履歴を判定情報記憶部７０４に格納しておき、測定制御部７０６がそれらの情報を参照し、通信装置１０１の前回測定時から一定時間が経過したタイミングで、判定部７０３を動作させてもよい。判断には、判定情報記憶部７０４または接続先情報記憶部７０５に記憶された情報を使用してもよい。また通信量が少ない夜間などで、定期的に判定部７０３を動作させてもよい。また第１外部装置４０１などから、送信周期測定処理を通信装置１０１に行わせてもよいとの通知を受けた場合に、判定部７０３を動作させてもよい。
【００８６】
図１３は、第４の実施形態に係る、測定制御部７０６が判定部７０３を動作させた場合での送信周期決定処理のフローチャートを示す。本処理の前に、通信装置１０１と第１外部装置４０１との間に第１コネクションが確立され、維持されている。
【００８７】
測定制御部７０６は、任意のタイミングで判定部７０３を動作させる（Ｓ５０１）。判定部７０３は、第２または第３の実施形態と同様にして、測定可否判定を行う（Ｓ５０２）。送信周期測定処理を行わないと判定した場合（Ｓ５０３のＮＯ）は、本処理は終了する。送信周期測定処理を行うと判定した場合（Ｓ５０３のＹＥＳ）は、測定制御部７０６は、第１外部装置４０１に送信周期測定処理の実行要求（測定実行要求）を送信する（Ｓ５０４）。なお、この測定実行要求の送信は、判定部７０３が行ってもよい。測定実行要求を受信した第１外部装置４０１は、通信装置１０１に測定実行要求を転送する（Ｓ５０５）。測定実行要求を受信した通信装置１０１は、第１の実施形態と同様に、送信周期測定処理を実行する（Ｓ１０５）。なお、測定実行要求を第１外部装置４０１を介して通信装置１０１に送信するのは、接続調停装置７０１と通信装置１０１との間にコネクションが確立されておらず、接続調停装置７０１側がトリガーとなる送信は中継装置２０１のＮＡＴ等によって防がれる可能性を考慮したものである。このような可能性を考慮しなくてよいのであれば、測定制御部７０６から通信装置１０１に直接、測定実行要求を送信してもよい。
【００８８】
図１４は、第４の実施形態に係る送信周期測定処理の通信シーケンスの一例を示す図である。第１のコネクションの確立までは、第３の実施形態と同じであるが、接続調停装置７０１で決定したタイミングで、測定実行要求が第１外部装置４０１に送信される（Ａ５０１）。測定実行要求を受信した第１外部装置４０１は、第１コネクションを介して、測定実行要求を通信装置１０１に転送する（Ａ５０２）。第１外部装置４０１が測定実行要求を転送するために、測定実行要求の種別を示すパケット種別情報や、通信装置１０１の情報（送信先識別情報）を含めてもよい。また、第１外部装置４０１が測定実行要求を受信した場合は、送信先識別情報に示される送信先やコネクションに転送するような設定を予め施しておけばよい。
【００８９】
測定実行要求を受信した通信装置１０１は、第１外部装置４０１に第２コネクションの確立要求を送信する（Ａ３０４）。以降の処理は、今まで説明した実施形態と同じである。
【００９０】
以上のように、第４の実施形態は、接続調停装置７０１側で送信周期測定処理の実行タイミングを決定できる。したがって、第４の実施形態は、第２または第３の実施形態と比較して、測定処理の実行をより効率的に制御することができる。本実施形態においては、接続先指示と送信周期判定機能に直接的な関係がないため、接続先指示を行う接続調停機能と、送信周期判定機能とを別々のサーバ装置に配する構成をとることもできる。さらにいえば、第１の実施形態の拡張として、接続調停機能を前提としない構成（送信周期判定機能のみを備えるサーバ装置、または第１外部装置に送信周期判定機能を搭載したサーバ装置）へ適用することもできる。
【００９１】
なお、上記に説明した実施形態における各処理は、ソフトウェア（プログラム）によって実現することが可能である。よって、上記に説明した実施形態における通信装置は、例えば、汎用のコンピュータ装置を基本ハードウェアとして用い、コンピュータ装置に搭載されたプロセッサにプログラムを実行させることにより実現することが可能である。
【００９２】
図１５に本発明の一実施形態における通信装置１０１を備えたハードウェア構成例を示す。
【００９３】
通信装置１０１は、プロセッサ８０１、主記憶装置８０２、補助記憶装置８０３、ネットワークインタフェース８０４、デバイスインタフェース８０５を備え、これらがバス８０６を介して接続された、コンピュータ装置として実現できる。
【００９４】
プロセッサ８０１が、補助記憶装置８０３からプログラムを読み出して、主記憶装置８０２に展開して実行することで、通信部１０３、通信維持部１０４、送信周期決定部１０５、測定可否判定部１０６の機能を実現することができる。
【００９５】
第１の実施形態の通信装置１０１は、当該通信装置１０１上で実行されるプログラムをコンピュータ装置にあらかじめインストールすることで実現してもよいし、プログラムをＣＤ−ＲＯＭなどの記憶媒体に記憶して、あるいはネットワークを介して配布して、コンピュータ装置に適宜インストールすることで実現してもよい。
【００９６】
ネットワークインタフェース８０４は、ネットワークに接続するための有線または無線のインタフェースである。通信インタフェース部１０２の機能は、このネットワークインタフェースにて実現できる。
【００９７】
また、デバイスインタフェース８０５は、外部記憶媒体８０７などの機器と接続するインタフェースである。また、通信装置１０１の外部に、制御装置３０１に制御される家電などの電気機器がある場合は、電気機器にも接続されてもよい。
【００９８】
外部記憶媒体８０７は、ＨＤＤ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＡＭ、ＤＶＤ−Ｒ  等の任意の記録媒体でよい。
【００９９】
主記憶装置８０２は、プロセッサ８０１が実行する命令、および各種データ等を一時的に記憶するメモリ装置であり、ＤＲＡＭ等の揮発性メモリでも、ＭＲＡＭ等の不揮発性メモリでもよい。補助記憶装置８０３は、プログラムやデータ等を永続的に記憶する記憶装置であり、例えば、ＨＤＤまたはＳＳＤ等がある。測定可否情報記憶部１０７の機能は、主記憶装置８０２、補助記憶装置８０３または外部記憶媒体８０７で実現できる。
【０１００】
上記に、本発明の一実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１０１】
１０１  通信装置
１０２  通信インタフェース部
１０３  通信部
１０４  通信維持部
１０５  送信周期決定部
１０６  測定可否判定部
１０７  測定可否情報記憶部
２０１  中継装置
３０１  制御装置
４０１  第１外部装置
４０２  第２外部装置
５０１  ネットワーク
６０１  通信ネットワーク
７０１  接続調停装置（サーバ装置）
７０２  通信インタフェース部
７０３  判定部
７０４  判定情報記憶部
７０５  接続先情報記憶部
７０６  測定制御部
８０１  プロセッサ
８０２  主記憶装置
８０３  補助記憶装置
８０４  ネットワークインタフェース
８０５  デバイスインタフェース
８０６  バス
８０７  外部記憶媒体
【図１】
0006470966.tif 000002
【図２】
0006470966.tif 000003
【図３】
0006470966.tif 000004
【図４】
0006470966.tif 000005
【図５】
0006470966.tif 000006
【図６】
0006470966.tif 000007
【図７】
0006470966.tif 000008
【図８】
0006470966.tif 000009
【図９】
0006470966.tif 000010
【図１０】
0006470966.tif 000011
【図１１】
0006470966.tif 000012
【図１２】
0006470966.tif 000013
【図１３】
0006470966.tif 000014
【図１４】
0006470966.tif 000015
【図１５】
0006470966.tif 000016