(57)【特許請求の範囲】
【請求項１】
複数の通信装置を有するネットワークシステムにおいて、
各通信装置は、
近隣の通信装置を検出するとともに、検出した通信装置との間の接続を維持するＨｅｌｌｏパケットをあらかじめ設定されたＨｅｌｌｏインターバルに基づいて定期的に送信する処理を実行する実行手段と、
前記実行手段によって前記Ｈｅｌｌｏパケットを前回送信してから前記Ｈｅｌｌｏインターバルに対応する時間が経過した場合には、他の通信装置から前記Ｈｅｌｌｏパケットを受信してから、あらかじめ設定された一定時間であって、データパケットの転送処理に要する時間よりも長い時間が経過した後に前記Ｈｅｌｌｏパケットを送信することで、隣接する通信装置の前記Ｈｅｌｌｏパケットの送受信のタイミングを分散し、前記データパケットの遅延を低減するように前記実行手段を調整する調整手段と、
を有することを特徴とするネットワークシステム。
【請求項２】
複数の通信装置を有するネットワークシステムにおいて、
各通信装置は、
近隣の通信装置を検出するとともに、検出した通信装置との間の接続を維持するＨｅｌｌｏパケットをあらかじめ設定されたＨｅｌｌｏインターバルに基づいて定期的に送信する処理を実行する実行手段と、
前回送信時刻から前記Ｈｅｌｌｏインターバルに対応する時間が経過した後に、自己のＩＰアドレスに基づいて算出される所定の時間であって、データパケットの転送処理に要する時間よりも長い時間が経過してから前記Ｈｅｌｌｏパケットを送信することで、隣接する通信装置の前記Ｈｅｌｌｏパケットの送受信のタイミングを分散し、前記データパケットの遅延を低減するように前記実行手段を調整する調整手段と、
を有することを特徴とするネットワークシステム。
【請求項３】
複数の通信装置が存在するネットワークシステムに使用される前記通信装置において、
近隣の通信装置を検出するとともに、検出した通信装置との間の接続を維持するＨｅｌｌｏパケットをあらかじめ設定されたＨｅｌｌｏインターバルに基づいて定期的に送信する処理を実行する実行手段と、
前記実行手段によって前記Ｈｅｌｌｏパケットを前回送信してから前記Ｈｅｌｌｏインターバルに対応する時間が経過した場合には、他の通信装置から前記Ｈｅｌｌｏパケットを受信してから、あらかじめ設定された一定時間であって、データパケットの転送処理に要する時間よりも長い時間が経過した後に前記Ｈｅｌｌｏパケットを送信することで、隣接する通信装置の前記Ｈｅｌｌｏパケットの送受信のタイミングを分散し、前記データパケットの遅延を低減するように前記実行手段を調整する調整手段と、
を有することを特徴とする通信装置。
【請求項４】
複数の通信装置が存在するネットワークシステムに使用される前記通信装置において、
近隣の通信装置を検出するとともに、検出した通信装置との間の接続を維持するＨｅｌｌｏパケットをあらかじめ設定されたＨｅｌｌｏインターバルに基づいて定期的に送信する処理を実行する実行手段と、
前回送信時刻から前記Ｈｅｌｌｏインターバルに対応する時間が経過した後に、自己のＩＰアドレスに基づいて算出される所定の時間であって、データパケットの転送処理に要する時間よりも長い時間が経過してから前記Ｈｅｌｌｏパケットを送信することで、隣接する通信装置の前記Ｈｅｌｌｏパケットの送受信のタイミングを分散し、前記データパケットの遅延を低減するように前記実行手段を調整する調整手段と、
を有することを特徴とする通信装置。
【請求項５】
複数の通信装置が存在するネットワークシステムの通信方法において、
各通信装置は、
近隣の通信装置を検出するとともに、検出した通信装置との間の接続を維持するＨｅｌｌｏパケットをあらかじめ設定されたＨｅｌｌｏインターバルに基づいて定期的に送信する処理を実行する実行ステップと、
前記実行ステップによって前記Ｈｅｌｌｏパケットを前回送信してから前記Ｈｅｌｌｏインターバルに対応する時間が経過した場合には、他の通信装置から前記Ｈｅｌｌｏパケットを受信してから、あらかじめ設定された一定時間であって、データパケットの転送処理に要する時間よりも長い時間が経過した後に前記Ｈｅｌｌｏパケットを送信することで、隣接する通信装置の前記Ｈｅｌｌｏパケットの送受信のタイミングを分散し、前記データパケットの遅延を低減するように前記実行ステップを調整する調整ステップと、
を有することを特徴とする通信方法。
【請求項６】
複数の通信装置が存在するネットワークシステムの通信方法において、
各通信装置は、
近隣の通信装置を検出するとともに、検出した通信装置との間の接続を維持するＨｅｌｌｏパケットをあらかじめ設定されたＨｅｌｌｏインターバルに基づいて定期的に送信する処理を実行する実行ステップと、
前回送信時刻から前記Ｈｅｌｌｏインターバルに対応する時間が経過した後に、自己のＩＰアドレスに基づいて算出される所定の時間であって、データパケットの転送処理に要する時間よりも長い時間が経過してから前記Ｈｅｌｌｏパケットを送信することで、隣接する通信装置の前記Ｈｅｌｌｏパケットの送受信のタイミングを分散し、前記データパケットの遅延を低減するように前記実行ステップを調整する調整ステップと、
を有することを特徴とする通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークシステム、通信装置、および、通信方法に関するものである。
【背景技術】
【０００２】
特許文献１には、ＳＬＡ（Service Level Agreement）を保証するトラフィックの通信経路を効率的に探索する技術が開示されている。すなわち、特許文献１に開示される技術では、制御サーバが、送信元ノードから、１ホップずつ、確率的に次ホップノードを選択していき、送信先ノードまでの経路を確定する。そして、次ホップノードを選択したときに、制御サーバは、送信元ノードからその次ホップノードまでの経路における通信性能が性能要件を満たしているか否かを判定する。制御サーバは、経路における通信性能が性能要件を満たしていれば、次ホップノードの選択を再度繰り返す。また、経路における通信性能が性能要件を満たしていなければ、送信元ノードから経路の探索をやり直す。このような処理により、特許文献１に開示された技術では、ダミートラフィックを流さなくても、ＳＬＡで規定された性能要件を満たす、送信元ノードから送信先までの経路を探索することが可能になる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−１９７７３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、特許文献１に開示される技術のように、複数の通信装置（例えば、ルータ）を有するネットワークシステムでは、通信装置間で定期的に通信をおこなうことにより、ルーティングテーブルを最新の情報に保っている。また、タイマ割込みを用いて定期的におこなう内部処理も存在し得る。このような定期処理の発生タイミングと、データパケットの転送処理のタイミングが重複した際には、データパケットの転送処理が待たされる可能性があり、その場合、パケット転送に遅延が発生してしまうという問題点がある。
【０００５】
とくに、中継回数の多い通信経路においては、最悪の場合、データパケットが各通信装置を経由するたびに（各通信装置の）定期処理と、タイミングが重複する場合があり、そのような場合には、無視できない大きさの通信遅延が発生してしまうという問題点がある。
【０００６】
そこで、本発明は、定期処理が発生した場合でもデータパケットの転送処理に遅延が生じることを抑制することが可能なネットワークシステム、通信装置、および、通信方法を提供することを目的としている。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明は、複数の通信装置を有するネットワークシステムにおいて、各通信装置は、近隣の通信装置を検出するとともに、検出した通信装置との間の接続を維持するＨｅｌｌｏパケットをあらかじめ設定されたＨｅｌｌｏインターバルに基づいて定期的に送信する処理を実行する実行手段と、前記実行手段によって前記Ｈｅｌｌｏパケットを前回送信してから前記Ｈｅｌｌｏインターバルに対応する時間が経過した場合には、他の通信装置から前記Ｈｅｌｌｏパケットを受信してから、あらかじめ設定された一定時間であって、データパケットの転送処理に要する時間よりも長い時間が経過した後に前記Ｈｅｌｌｏパケットを送信することで、隣接する通信装置の前記Ｈｅｌｌｏパケットの送受信のタイミングを分散し、前記データパケットの遅延を低減するように前記実行手段を調整する調整手段と、を有することを特徴とする。
このような構成によれば、定期処理が発生した場合でも、データパケットの転送処理に遅延が生じることを抑制することが可能となる。
【０００８】
また、本発明は、複数の通信装置を有するネットワークシステムにおいて、各通信装置は、近隣の通信装置を検出するとともに、検出した通信装置との間の接続を維持するＨｅｌｌｏパケットをあらかじめ設定されたＨｅｌｌｏインターバルに基づいて定期的に送信する処理を実行する実行手段と、前回送信時刻から前記Ｈｅｌｌｏインターバルに対応する時間が経過した後に、自己のＩＰアドレスに基づいて算出される所定の時間であって、データパケットの転送処理に要する時間よりも長い時間が経過してから前記Ｈｅｌｌｏパケットを送信することで、隣接する通信装置の前記Ｈｅｌｌｏパケットの送受信のタイミングを分散し、前記データパケットの遅延を低減するように前記実行手段を調整する調整手段と、を有することを特徴とする。
【０００９】
また、本発明は、複数の通信装置が存在するネットワークシステムに使用される前記通信装置において、近隣の通信装置を検出するとともに、検出した通信装置との間の接続を維持するＨｅｌｌｏパケットをあらかじめ設定されたＨｅｌｌｏインターバルに基づいて定期的に送信する処理を実行する実行手段と、前記実行手段によって前記Ｈｅｌｌｏパケットを前回送信してから前記Ｈｅｌｌｏインターバルに対応する時間が経過した場合には、他の通信装置から前記Ｈｅｌｌｏパケットを受信してから、あらかじめ設定された一定時間であって、データパケットの転送処理に要する時間よりも長い時間が経過した後に前記Ｈｅｌｌｏパケットを送信することで、隣接する通信装置の前記Ｈｅｌｌｏパケットの送受信のタイミングを分散し、前記データパケットの遅延を低減するように前記実行手段を調整する調整手段と、を有することを特徴とする。
【００１０】
また、本発明は、複数の通信装置が存在するネットワークシステムに使用される前記通信装置において、近隣の通信装置を検出するとともに、検出した通信装置との間の接続を維持するＨｅｌｌｏパケットをあらかじめ設定されたＨｅｌｌｏインターバルに基づいて定期的に送信する処理を実行する実行手段と、前回送信時刻から前記Ｈｅｌｌｏインターバルに対応する時間が経過した後に、自己のＩＰアドレスに基づいて算出される所定の時間であって、データパケットの転送処理に要する時間よりも長い時間が経過してから前記Ｈｅｌｌｏパケットを送信することで、隣接する通信装置の前記Ｈｅｌｌｏパケットの送受信のタイミングを分散し、前記データパケットの遅延を低減するように前記実行手段を調整する調整手段と、を有することを特徴とする。
【００１１】
また、本発明は、複数の通信装置が存在するネットワークシステムの通信方法において、各通信装置は、近隣の通信装置を検出するとともに、検出した通信装置との間の接続を維持するＨｅｌｌｏパケットをあらかじめ設定されたＨｅｌｌｏインターバルに基づいて定期的に送信する処理を実行する実行ステップと、前記実行ステップによって前記Ｈｅｌｌｏパケットを前回送信してから前記Ｈｅｌｌｏインターバルに対応する時間が経過した場合には、他の通信装置から前記Ｈｅｌｌｏパケットを受信してから、あらかじめ設定された一定時間であって、データパケットの転送処理に要する時間よりも長い時間が経過した後に前記Ｈｅｌｌｏパケットを送信することで、隣接する通信装置の前記Ｈｅｌｌｏパケットの送受信のタイミングを分散し、前記データパケットの遅延を低減するように前記実行ステップを調整する調整ステップと、を有することを特徴とする。
【００１２】
また、本発明は、複数の通信装置が存在するネットワークシステムの通信方法において、各通信装置は、近隣の通信装置を検出するとともに、検出した通信装置との間の接続を維持するＨｅｌｌｏパケットをあらかじめ設定されたＨｅｌｌｏインターバルに基づいて定期的に送信する処理を実行する実行ステップと、前回送信時刻から前記Ｈｅｌｌｏインターバルに対応する時間が経過した後に、自己のＩＰアドレスに基づいて算出される所定の時間であって、データパケットの転送処理に要する時間よりも長い時間が経過してから前記Ｈｅｌｌｏパケットを送信することで、隣接する通信装置の前記Ｈｅｌｌｏパケットの送受信のタイミングを分散し、前記データパケットの遅延を低減するように前記実行ステップを調整する調整ステップと、を有することを特徴とする。
【発明の効果】
【００１５】
本発明によれば、定期処理が発生した場合でもデータパケットの転送処理に遅延が生じることを抑制することが可能なネットワークシステム、通信装置、および、通信方法を提供することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の第１実施形態のネットワークシステムの構成例を示す図である。
【図２】図１に示す通信装置の詳細な構成例を示す図である。
【図３】従来例の動作を説明するための図である。
【図４】従来例の動作を説明するための図である。
【図５】従来例の動作を説明するための図である。
【図６】本発明の第１実施形態の動作を説明するための図である。
【図７】本発明の第１実施形態の動作を説明するための図である。
【図８】本発明の第１実施形態の動作を説明するためのフローチャートである。
【図９】本発明の第２実施形態の動作を説明するための図である。
【図１０】本発明の第２実施形態の動作を説明するための図である。
【図１１】本発明の第２実施形態の動作を説明するためのフローチャートである。
【図１２】本発明の第３実施形態の動作を説明するための図である。
【図１３】本発明の第３実施形態の動作を説明するための図である。
【図１４】本発明の第３実施形態の動作を説明するためのフローチャートである。
【図１５】本発明の第３実施形態の動作を説明するためのフローチャートである。
【図１６】本発明の第３実施形態の動作を説明するためのフローチャートである。
【発明を実施するための形態】
【００１７】
次に、本発明の実施形態について説明する。
【００１８】
（Ａ）本発明の第１実施形態の構成の説明
図１は、本発明の第１実施形態に係るネットワークシステムの構成の一例を示す図である。図１に示すように、本発明の第１実施形態に係るネットワークシステムは、ネットワークのノードとして機能する通信装置１０−１〜１０−５を有している。
【００１９】
図１に示す通信装置１０−１〜１０−５は、ＭＡＮＥＴ（Mobile Ad hoc Network）のＡＯＤＶ（Ad hoc On-Demand Distance Vector）による、オンデマンド方式のプロトコルに基づく経路構築を行う。
【００２０】
図２は、図１に示す通信装置１０−１〜１０−５の構成例を示す図である。なお、通信装置１０−１〜１０−５は同様の構成とされているので、以下では、これらを通信装置１０として説明する。
【００２１】
図２に示すように、通信装置１０は、パケット中継処理部１１、制御部１２、記憶部１３、および、受信部１４−１〜１４−ｎ、送信部１５−１〜１５−ｎ、および、計時部１６を有している。
【００２２】
ここで、パケット中継処理部１１は、制御部１２の制御に応じて、受信部１４−１〜１４−ｎによって受信されたパケットを、そのヘッダに格納されている情報に応じて、対応する送信部１５−１〜１５−ｎから送出する。制御部１２は、記憶部１３に記憶されている経路情報１３ａに応じて、受信したパケットのヘッダを書き換え、パケット中継処理部１１を介して送信する。
【００２３】
記憶部１３は、半導体メモリによって構成され、パケットを転送するための情報である経路情報１３ａを記憶するとともに、後述する処理を実行するためのプログラムやデータを格納している。受信部１４−１〜１４−ｎは、他の通信装置からパケットを受信する。送信部１５−１〜１５−ｎは、他の通信装置に対してパケットを送信する。計時部１６は、時刻を計時して、制御部１２に供給する。
【００２４】
（Ｂ）本発明の第１実施形態の動作の説明
つぎに、本発明の第１実施形態の動作について説明する。以下では、図３〜図５を参照して、従来例の動作における問題点を説明した後に、図６〜図８を参照して、第１実施形態の動作について説明する。
【００２５】
ＡＯＤＶプロトコルでは、隣接する通信装置を検出するとともに、隣接する通信装置との接続を維持するために、一定間隔でＨｅｌｌｏパケットを、隣接する通信装置間で送受信している。このようなＨｅｌｌｏパケットにより、隣接する通信装置のＩＰアドレスを検出するとともに、隣接する通信装置をＩＰアドレスによって管理することができる。Ｈｅｌｌｏパケットは、ＴＴＬ（Time To Live）＝１に設定され、ブロードキャストによって、例えば、１０〜４０秒間隔で定期的に送信されるパケットである。ＴＴＬは、通信装置を１回経由するたびに値が１減少するので、このようなＨｅｌｌｏパケットは、隣接する全ての通信装置に対して到達する。例えば、図３に示す例では、通信装置１０−３が送信したＨｅｌｌｏパケットは、隣接する通信装置１０−２，１０−４に到達する。
【００２６】
ところで、図４に示すように、送信元である通信装置１０−１から、送信先である通信装置１０−５に、一点鎖線で示すデータパケットを伝送する場合に、Ｈｅｌｌｏパケットの送信、または、Ｈｅｌｌｏパケットの受信のタイミングと重なってしまうと、Ｈｅｌｌｏパケットを処理する時間だけ、データパケットの転送に遅延が生じる。図５は、遅延が発生する様子を時間軸上で説明する図である。図５では、通信装置１０−１から通信装置１０−ｎ（図３の例ではｎ＝５）に向けて送信されたデータパケットは、通信装置１０−２が実行する定期処理（例えば、Ｈｅｌｌｏパケットの送信または受信処理）と時間的に重なっているため、通信装置１０−ｎに届いた時点では、白抜きの矢印で示すような遅延が発生する。仮に、データパケットが転送されるたびに、Ｈｅｌｌｏパケットの処理とタイミングが重なった場合、無視できない大きな遅延が発生してしまう。このため、ネットワークシステム全体の最大転送遅延時間を低減するためには、Ｈｅｌｌｏパケットに対する処理のタイミングを適切に決めることが求められる。
【００２７】
図６は、本発明の第１実施形態の動作を説明するための図である。第１実施形態では、各通信装置は、他の通信装置からＨｅｌｌｏパケットを受信すると、Ｈｅｌｌｏパケットを受信した時刻を記憶し、記憶した時刻から一定の時間（データパケットの転送処理に要する時間よりも十分に長い時間（例えば、５０ｍｓ））が経過した後に、自身のＨｅｌｌｏパケットを送信するように構成される。図７は、第１実施形態の動作を時間軸上で示した図である。図７に示すように、第１実施形態では、例えば、通信装置１０−３が通信装置１０−２からＨｅｌｌｏパケットを受信した場合には、通信装置１０−２は、自身がＨｅｌｌｏパケットを送信するタイミングを、一定時間以上ずらして実行する。
【００２８】
このような構成によれば、Ｈｅｌｌｏパケットの送信のタイミングを時間軸上である程度分散させることができるので、少なくとも隣接する通信装置間では、転送のたびに、Ｈｅｌｌｏパケットの処理タイミングと重なることを防止できる。この結果、想定される最大ケースでのＨｅｌｌｏパケットの処理と重なる通信装置の数Ｎをホップ数とする場合、ＮからＮ／２に減少させることができる。
【００２９】
図８は、第１実施形態の動作を実現するためフローチャートの一例を示す図である。図８に示すフローチャートは、図１に示す通信装置１０−１〜１０−５のそれぞれにおいて実行される。この図８に示すフローチャートの処理が開始されると、以下のステップが実行される。
【００３０】
ステップＳ１０では、制御部１２は、隣接する通信装置からＨｅｌｌｏパケットを受信したか否かを判定し、Ｈｅｌｌｏパケットを受信したと判定した場合（ステップＳ１０：Ｙ）にはステップＳ１１に進み、それ以外の場合（ステップＳ１０：Ｎ）には同様の処理を繰り返す。例えば、図１に示す通信装置１０−３が通信装置１０−２からＨｅｌｌｏパケットを受信した場合には、Ｙと判定してステップＳ１１に進む。
【００３１】
ステップＳ１１では、制御部１２は、ステップＳ１０においてＨｅｌｌｏパケットを受信した時刻を計時部１６から取得し、記憶部１３に記憶する。例えば、通信装置１０−３が通信装置１０−２からＨｅｌｌｏパケットを受信した時刻が０時０分０．１００秒である場合には、この時刻が通信装置１０−３の記憶部１３に記憶される。
【００３２】
ステップＳ１２では、制御部１２は、計時部１６の出力を参照し、自身のＨｅｌｌｏパケットの送信のタイミングになったか否かを判定し、送信のタイミングになったと判定した場合（ステップＳ１２：Ｙ）にはステップＳ１３に進み、それ以外の場合（ステップＳ１２：Ｎ）にはステップＳ１０に戻って前述の場合と同様の処理を繰り返す。例えば、Ｈｅｌｌｏパケットの送信の間隔を示すＨｅｌｌｏインターバルが１０秒に設定されている場合には、前回の送信から１０秒が経過した場合にはＹと判定してステップＳ１３に進む。
【００３３】
ステップＳ１３では、制御部１２は、記憶部１３から直近の受信時刻を読み出す。より詳細には、ステップＳ１０〜ステップＳ１２の処理によって、隣接する通信装置からＨｅｌｌｏパケットを受信した時刻が記憶されるので、記憶されている時刻の中から直近の時刻を読み出す。例えば、通信装置１０−３の例では、通信装置１０−２よりも通信装置１０−４からの受信時刻の方が時間的に後である場合には、通信装置１０−４の受信時刻を読み出す。
【００３４】
ステップＳ１４では、制御部１２は、ステップＳ１３で読み出した直近の受信時刻から、一定の時間が経過しているか否か判定し、一定の時間が経過していると判定した場合（ステップＳ１４：Ｙ）にはステップＳ１６に進み、それ以外の場合（ステップＳ１４：Ｎ）にはステップＳ１５に進む。例えば、直近の受信時刻から、５０ｍｓが経過している場合にはステップＳ１６に進み、それ以外の場合にはステップＳ１５に進む。
【００３５】
ステップＳ１５では、制御部１２は、遅延処理を実行する。より詳細には、直近の受信時刻から、例えば、５０ｍｓが経過するまで待機する処理を実行する。
【００３６】
ステップＳ１６では、制御部１２は、Ｈｅｌｌｏパケットを隣接する通信装置に対して送信する処理を実行する。この結果、隣接する通信装置に対してＨｅｌｌｏパケットが送信され、このようなＨｅｌｌｏパケットを受信した隣接する通信装置では、図８と同様の処理が実行され、受信時刻に応じて送信のタイミングが調整される。
【００３７】
ステップＳ１７では、制御部１２は、処理を継続するか否かを判定し、処理を継続しないと判定した場合（ステップＳ１７：Ｎ）には処理を終了し、それ以外の場合（ステップＳ１７：Ｙ）にはステップＳ１０に戻って前述の場合と同様の処理を繰り返す。
【００３８】
以上に説明したように、本発明の第１実施形態では、Ｈｅｌｌｏパケットを受信してから一定の時間が経過した後にＨｅｌｌｏパケットを送信するようにしたので、隣接する通信装置間でＨｅｌｌｏパケットを送受信するタイミングが重複し、その結果として、データパケットの伝送が遅延することを防止できる。
【００３９】
（Ｃ）本発明の第２実施形態の説明
つぎに、本発明の第２実施形態について説明する。なお、第２実施形態の構成は、図１および図２と同様であり、制御部１２によって実行される処理が異なっているので、構成についての説明は省略し、動作についての説明を行う。
【００４０】
第２実施形態では、通信装置１０−１〜１０−５はそれぞれ異なる時刻Ｔ１〜Ｔ５にＨｅｌｌｏパケットを送信する。なお、第２実施形態では、異なる時刻に送信する方法として、通信装置１０−１〜１０−５のそれぞれに付与されたＩＰアドレスを用いる。より詳細には、図９に示すネットワークのＩＰアドレスが３２ｂｉｔで構成されるとともに、３２ｂｉｔのうちの上位２４ｂｉｔがネットワーク部であり、下位８ｂｉｔがホスト部であるとする。このような場合には、ホスト部のアドレス値は、通信装置１０−１〜１０−５に対してユニーク（一意）な値が付与されるので、ホスト部を時刻に対応する値に変換して、得られた時刻を送信タイミングに設定する。
【００４１】
一例として、Ｘ時Ｙ分Ｚ秒＋ホスト部の値を送信時刻に設定することができる。例えば、図９に示す例では、通信装置１０−１〜１０−５のＩＰアドレスがそれぞれ「１９２．１６８．０．１／２４」〜「１９２．１６８．０．５／２４」であり、基準となる時刻が０時０分０秒である場合には、通信装置１０−１〜１０−５の送信時刻Ｔ１〜Ｔ５はそれぞれ「０時０分０．１秒」〜「０時０分０．５秒」となる。この結果、通信装置１０−１〜１０−５の送信タイミングは、０．１秒（＝１００ｍｓ）ずつずれているので、Ｈｅｌｌｏパケットの送信のタイミングが重複することを防止できる。
【００４２】
第２実施形態によれば、図１０に示すように、各通信装置がＨｅｌｌｏパケットを送信するタイミングを時間軸上に分散させることができるので、複数の通信装置によるＨｅｌｌｏパケットの送信または受信のタイミングと、データパケットを転送するタイミングが重複することを防止できる。
【００４３】
図１１は、第２実施形態において実行される処理の一例を説明するためのフローチャートである。図１１に示すフローチャートは、図１に示す通信装置１０−１〜１０−５のそれぞれにおいて実行される。図１１に示すフローチャートの処理が開始されると、以下のステップが実行される。
【００４４】
ステップＳ３０では、制御部１２は、例えば、記憶部１３に記憶されている自己のＩＰアドレスを取得する。例えば、通信装置１０−３では、ＩＰアドレスとして、「１９２．１６８．０．３／２４」が取得される。
【００４５】
ステップＳ３１では、制御部１２は、例えば、記憶部１３に記憶されているＨｅｌｌｏパケットの前回の送信時刻を取得する。例えば、前回送信時刻として、１１時１２分１５．０秒が取得される。
【００４６】
ステップＳ３２では、制御部１２は、ステップＳ３０で取得したＩＰアドレスと、ステップＳ３１で取得した前回送信時刻から次回送信時刻を算出する。例えば、通信装置１０−３において、Ｈｅｌｌｏインターバルが１０秒で、Ｈｅｌｌｏパケットを前回送信した時刻が１１時１２分１５．０秒で、ＩＰアドレスが「１９２．１６８．０．３／２４」である場合には、次回送信時刻として１１時１２分２５．３秒（＝１１時１２分１５．０秒＋１０秒＋０．３秒）が算出される。なお、通信装置１０−１では、次回送信時刻として１１時１２分２５．１秒が算出され、通信装置１０−２では次回送信時刻として１１時１２分２５．２秒が算出され、通信装置１０−４では次回送信時刻として１１時１２分２５．４秒が算出され、通信装置１０−５では次回送信時刻として１１時１２分２５．５秒が算出される。
【００４７】
ステップＳ３３では、制御部１２は、計時部１６が出力する現在時刻を参照し、現在時刻が次回送信時刻になったか否かを判定し、現在時刻が次回送信時刻になったと判定した場合（ステップＳ３３：Ｙ）にはステップＳ３４に進み、それ以外の場合（ステップＳ３３：Ｎ）には同様の処理を繰り返す。
【００４８】
ステップＳ３４では、制御部１２は、隣接する通信装置に対して、Ｈｅｌｌｏパケットを送信する。いまの例では、通信装置１０−３は、時刻１１時１２分２５．３秒に、隣接する通信装置１０−２，１０−４に対してＨｅｌｌｏパケットを送信する。
【００４９】
ステップＳ３５では、制御部１２は、処理を継続するか否かを判定し、処理を継続しないと判定した場合（ステップＳ３５：Ｎ）には処理を終了し、それ以外の場合（ステップＳ３５：Ｙ）にはステップＳ３０に戻って前述の場合と同様の処理を繰り返す。
【００５０】
以上に説明したように、本発明の第２実施形態では、Ｈｅｌｌｏパケットを送信するタイミングを、ＩＰアドレスを用いて、相互に重複しないタイミングで送信するようにしたので、Ｈｅｌｌｏパケットを送受信するタイミングが重複し、その結果として、データパケットの伝送が遅延することを防止できる。
【００５１】
（Ｄ）本発明の第３実施形態の説明
つぎに、本発明の第３実施形態について説明する。なお、第３実施形態の構成は、図１および図２と同様であり、制御部１２によって実行される処理が異なっているので、構成についての説明は省略し、動作についての説明を行う。
【００５２】
第３実施形態では、図１２および図１３に示すように、通信装置１０−１〜１０−５は略同じ時刻にＨｅｌｌｏパケットを送信する。この結果、図１３に示すように、通信装置１０−１〜１０−５がＨｅｌｌｏパケットを送信するタイミングは、時間軸上の略同じタイミングに集約されるので、データパケットを転送するタイミングと重複する確率を減らすことができる。
【００５３】
なお、同じ時刻に送信する方法としては、例えば、全ての通信装置１０−１〜１０−５の計時部１６を同期するとともに、全てが同じ時刻にＨｅｌｌｏパケットを送信する方法がある。また、これ以外にも、例えば、他の通信装置からＨｅｌｌｏパケットを受信するタイミングの方が、自己が送信するタイミングよりも早い場合には、自己が送信するタイミングを所定の量だけ早くすることで、ネットワーク全体としての同期を図る方法もある。以下では、後者の方法について説明する。
【００５４】
第３実施形態では、例えば、Ｈｅｌｌｏパケットを送受信する処理に要する時間が５０μｓとすると、全ての通信装置１０−１〜１０−５がＨｅｌｌｏパケットを送信するタイミングを５０μｓ以内に収めることで、通信装置１０−１〜１０−５が略同一時刻にＨｅｌｌｏパケットを送信することになる。このように、すべての通信装置１０−１〜１０−５が略同一の時刻にＨｅｌｌｏパケットを送信することで、データパケットの転送処理と、通信装置がＨｅｌｌｏパケットを送受信する処理とが重複する確率を低減することができる。
【００５５】
つぎに、図１４〜図１６を参照して、第３実施形態において実行される処理の一例について説明する。図１４はＨｅｌｌｏパケットを送信する処理であり、図１５はＨｅｌｌｏパケットを受信する処理である。なお、図１４と図１５の処理は、通信装置１０−１〜１０−５においてそれぞれ実行されるとともに、これらの処理は通信装置１０−１〜１０−５のそれぞれにおいて並行して実行されるので、一方の処理の待ち時間によって、他方の処理が遅延されることはない。以下では、まず、図１４について説明する。図１４に示すフローチャートが開始されると、以下のステップが実行される。
【００５６】
ステップＳ５０では、制御部１２は、Ｈｅｌｌｏパケットを送信する予定の時刻である送信時刻Ｔｓを記憶部１３から取得する。なお、この送信時刻Ｔｓは、後述する図１６のステップＳ９５の処理によって算出され、ステップＳ９６の処理によって記憶部１３に記憶される。
【００５７】
ステップＳ５１では、制御部１２は、計時部１６から供給される現在時刻を参照し、現在時刻が送信時刻Ｔｓになったか否かを判定し、送信時刻になったと判定した場合（ステップＳ５１：Ｙ）にはステップＳ５２に進み、それ以外の場合（ステップＳ５１：Ｎ）にはステップＳ５０に戻って前述の場合と同様の処理を繰り返す。例えば、ステップＳ５０で取得した送信時刻Ｔｓと現在時刻とが等しくなった場合にはＹと判定してステップＳ５２に進む。
【００５８】
ステップＳ５２では、制御部１２は、隣接する通信装置に対してＨｅｌｌｏパケットを送信する。例えば、通信装置１０−３の場合には、通信装置１０−２および通信装置１０−４に対してＨｅｌｌｏパケットを送信する。
【００５９】
ステップＳ５３では、制御部１２は、処理を継続するか否かを判定し、処理を継続しないと判定した場合（ステップＳ５３：Ｎ）には処理を終了し、それ以外の場合（ステップＳ５３：Ｙ）にはステップＳ５０に戻って前述の場合と同様の処理を繰り返す。
【００６０】
つぎに、図１５を参照して、Ｈｅｌｌｏパケットを受信する処理について説明する。図１５に示すフローチャートが開始されると、以下のステップが実行される。
【００６１】
ステップＳ７０では、制御部１２は、他の通信装置からＨｅｌｌｏパケットを受信したか否かを判定し、Ｈｅｌｌｏパケットを受信したと判定した場合（ステップＳ７０：Ｙ）にはステップＳ７１に進み、それ以外の場合（ステップＳ７０：Ｎ）には同様の処理を繰り返す。
【００６２】
ステップＳ７１では、制御部１２は、受信時刻Ｔｒを記憶する。より詳細には、制御部１２は、Ｈｅｌｌｏパケットを受信した時刻を、計時部１６から取得し、記憶部１３に受信時刻Ｔｒとして記憶する。
【００６３】
ステップＳ７２では、制御部１２は、処理を継続するか否かを判定し、処理を継続しないと判定した場合（ステップＳ７２：Ｎ）には処理を終了し、それ以外の場合（ステップＳ７２：Ｙ）にはステップＳ７０に戻って前述の場合と同様の処理を繰り返す。
【００６４】
つぎに、図１６を参照して、送信時刻を調整する処理について説明する。なお、図１６の処理は、通信装置１０−１〜１０−５においてそれぞれ実行されるとともに、図１４および図１５の処理とは並行して実行されるので、いずれかの処理の待ち時間によって、他の処理が遅延されることはない。図１６に示す処理が開始されると、以下のステップが実行される。
【００６５】
ステップＳ９０では、制御部１２は、Ｈｅｌｌｏパケットの送受信（送信および受信の双方）が完了したか否かを判定し、送受信が完了したと判定した場合（ステップＳ９０：Ｙ）にはステップＳ９１に進み、それ以外の場合（ステップＳ９０：Ｎ）には同様の処理を繰り返す。例えば、図１４に示す処理によってＨｅｌｌｏパケットの送信が完了するとともに、図１５に示す処理によってＨｅｌｌｏパケットの受信が完了した場合にはＹと判定してステップＳ９１に進む。
【００６６】
ステップＳ９１では、制御部１２は、送信時刻Ｔｓと受信時刻Ｔｒを記憶部１３から取得する。例えば、送信時刻Ｔｓとして１０時１０分１５．９秒が取得され、受信時刻Ｔｒとして１０時１０分１５．３秒が取得される。
【００６７】
ステップＳ９２では、制御部１２は、送信時刻Ｔｓと受信時刻Ｔｒの差分値ΔＴ（＝｜Ｔｓ−Ｔｒ｜）を計算する。なお、｜｜は、絶対値を求める関数である。例えば、送信時刻Ｔｓが１０時１０分１５．９秒であり、受信時刻Ｔｒが１０時１０分１５．３秒である場合には、差分値ΔＴ＝０．６秒（＝｜１０時１０分１５．３秒−１０時１０分１５．９秒｜）が得られる。
【００６８】
ステップＳ９３では、制御部１２は、ステップＳ９２で算出した差分値ΔＴと所定の閾値Ｔｈを比較し、ΔＴ＜Ｔｈを満たすか否かを判定し、ΔＴ＜Ｔｈを満たすと判定した場合（ステップＳ９３：Ｙ）にはステップＳ９７に進み、それ以外の場合（ステップＳ９３：Ｎ）にはステップＳ９４に進む。例えば、Ｔｈ＝０．００００５（＝５０μｓ）であり、ΔＴ＝０．６秒の場合には、ΔＴ＜Ｔｈを満たさないので、Ｎと判定してステップＳ９４に進む。
【００６９】
ステップＳ９４では、制御部１２は、他の通信装置からのＨｅｌｌｏパケットの受信の方が自身のＨｅｌｌｏパケットの送信よりも先であるか否かを判定し、他の通信装置からの受信の方が先の場合（ステップＳ９４：Ｙ）にはステップＳ９５に進み、それ以外の場合（ステップＳ９４：Ｎ）にはステップＳ９７に進む。いまの例では、送信時刻Ｔｓは１０時１０分１５．９秒であり、受信時刻Ｔｒは１０時１０分１５．３秒であり、他の通信装置からの受信の方が先であるのでＹと判定してステップＳ９５に進む。
【００７０】
ステップＳ９５では、制御部１２は、ステップＳ９２で求めた差分値ΔＴに定数ａ（０＜ａ＜１）を乗算した値を、次回の送信時刻Ｔｓから引いた値を新たな送信時刻とする。例えば、次回の送信時刻が１０時１０分２５．９秒であり、差分値ΔＴが０．６秒であり、また、ａの値が０．５である場合には、１０時１０分２５．６秒（＝１０時１０分２５．９秒−０．６×０．５）が次回の送信時刻Ｔｓとなる。つまり、他の通信装置の送信のタイミングに同期するために、自身の送信時刻が予定よりも早い時刻に変更される。
【００７１】
ステップＳ９６では、制御部１２は、ステップＳ９５で求めた送信時刻Ｔｓを記憶部１３に記憶する。この結果、図１４のステップＳ５０では、この処理によって記憶した送信時刻Ｔｓが使用され、Ｈｅｌｌｏパケットが送信される。
【００７２】
ステップＳ９７では、制御部１２は、処理を継続するか否かを判定し、処理を継続しないと判定した場合（ステップＳ９７：Ｎ）には処理を終了し、それ以外の場合（ステップＳ９７：Ｙ）にはステップＳ９０に戻って前述の場合と同様の処理を繰り返す。
【００７３】
以上の処理によれば、自身のＨｅｌｌｏパケットの送信時刻が、他の通信装置のＨｅｌｌｏパケットの送信時刻よりも遅い場合には、その差分値ΔＴが算出され、差分値ΔＴに所定の定数ａを乗算した値を、次回の送信時刻から減算するようにしたので、このような処理を繰り返すことで、他の通信装置の送信時刻に近づけることができる。なお、以上の処理は、ΔＴ＜Ｔｈとなるまで繰り返される。例えば、Ｈｅｌｌｏパケットを転送するのに要する時間が５０μｓである場合、Ｔｈを５０μｓに設定すれば、繰り返し処理の結果、全ての通信装置のＨｅｌｌｏパケットの送受信のタイミングを５０μｓ以内に収めることができる。
【００７４】
（Ｅ）変形実施形態の説明
以上の実施形態は一例であって、本発明が上述したような場合のみに限定されるものでないことはいうまでもない。例えば、以上の第１〜第３実施形態では、通信装置１０−１〜１０−５は、有線接続される場合を例に挙げて説明したが、これらが無線接続される構成としてもよい。なお、その場合には、図２に示す構成は、受信部１４−１〜１４−ｎおよび送信部１５−１〜１５−ｎの代わりに、電波による送受信部を設けるようにすればよい。
【００７５】
また、以上の第１〜第３実施形態では、図面を簡略化するために５台の通信装置１０−１〜１０−５を有するようにしたが、６台以上の通信装置を有するようにしてもよい。もちろん、４台以下の通信装置を有するようにしてもよい。
【００７６】
また、第１実施形態の図８に示す処理では、直近の受信時刻から一定の時間が経過した場合にＨｅｌｌｏパケットを送信するようにしたが、一定の時間ではなく、例えば、乱数等によって得られた値に対応する時間が経過した場合に、Ｈｅｌｌｏパケットを送信するようにしてもよい。そのような処理によれば、送信タイミングを分散して送信することができる。
【００７７】
また、第２実施形態の図１１に示す処理では、ＩＰアドレスに基づいて、他の通信装置と重複しないタイミングでＨｅｌｌｏパケットを送信するようにしたが、ＩＰアドレス以外のユニークな情報に基づいて、送信時刻を決定するようにしてもよい。
【００７８】
また、第３実施形態の図１６に示す処理では、他の通信装置からの受信が先の場合に、自己の通信装置の送信タイミングを早めるようにしたが、自己の通信装置の送信タイミングが先の場合には、送信タイミングを遅くするようにしてもよい。
【００７９】
また、第１〜第３実施形態では、定期的に処理が発生する定期処理としては、Ｈｅｌｌｏパケットを送受信する場合を例に挙げて説明したが、これ以外の定期処理に対しても本発明を適用可能であることはいうまでもない。
【符号の説明】
【００８０】
１０−１〜１０−５  通信装置
１１  パケット中継処理部
１２  制御部
１３  記憶部
１３ａ  経路情報
１４−１〜１４−ｎ  受信部
１５−１〜１５−ｎ  送信部
１６  計時部
【図１】
0006479704.tif 000002
【図２】
0006479704.tif 000003
【図３】
0006479704.tif 000004
【図４】
0006479704.tif 000005
【図５】
0006479704.tif 000006
【図６】
0006479704.tif 000007
【図７】
0006479704.tif 000008
【図８】
0006479704.tif 000009
【図９】
0006479704.tif 000010
【図１０】
0006479704.tif 000011
【図１１】
0006479704.tif 000012
【図１２】
0006479704.tif 000013
【図１３】
0006479704.tif 000014
【図１４】
0006479704.tif 000015
【図１５】
0006479704.tif 000016
【図１６】
0006479704.tif 000017