"パケットの送信元のノード装置から無線アドホック通信網を介して送信されたパケットを受信するパケット受信部と、前記パケット受信部により受信されたパケットに基づいて、前記パケットが前記パケット受信部に到達するまでの通信経路に輻輳が発生したことを検出する輻輳検出部と、前記輻輳検出部により前記通信経路に輻輳が発生したことが検出されたら、前記通信経路の輻輳を回避するための行動の実行を指示する輻輳制御メッセージを生成する輻輳制御メッセージ生成部と、前記輻輳制御メッセージ生成部により生成された輻輳制御メッセージをノード装置に送信するメッセージ送信部とを備えることを特徴とする通信装置。前記パケット受信部により受信されたパケットに付加されている通信経路の履歴に基づいて、前記パケットが前記ノード装置から前記パケット受信部に到達するまでに通信経路を変更した回数を求める経路変更回数抽出部をさらに備え、前記輻輳検出部は、前記経路変更回数抽出部により求められた通信経路の変更回数が、あらかじめ設定された制御閾値を超えたら、前記通信経路に輻輳が発生したことを検出する請求項1に記載の通信装置。前記ノード装置がキャリアセンス方式でパケットを送信する場合において、前記パケット受信部により受信されたパケットに付加されており、前記ノード装置がパケットを送信する際に他のノード装置が同一の宛先へパケットを送信していることを表すビジーの回数の履歴に基づいて、前記パケットが前記ノード装置から前記パケット受信部に到達するまでのビジーの回数を求めるビジー回数抽出部をさらに備え、前記輻輳検出部は、前記ビジー回数抽出部により求められたビジーの回数が、あらかじめ設定された制御閾値を超えたら、前記通信経路に輻輳が発生したことを検出する請求項1に記載の通信装置。前記輻輳制御メッセージ生成部は、前記輻輳制御メッセージに、前記輻輳を回避するための行動を実行すべきノード装置の識別子を付加したメッセージを生成する請求項1に記載の通信装置。前記輻輳制御メッセージ生成部は、前記輻輳制御メッセージに、パケットの廃棄、再送回数の抑制、転送経路数の抑制、パケット送信頻度の抑制の少なくとも1つを含む輻輳制御行動種別を付加したメッセージを生成する請求項1に記載の通信装置。前記メッセージ送信部は、前記輻輳制御メッセージ生成部により生成された輻輳制御メッセージをブロードキャストする請求項1に記載の通信装置。前記輻輳検出部により前記通信経路に輻輳が発生したことが検出された後に、輻輳検出部により前記通信経路に輻輳が発生したことが検出されなくなったら、前記通信経路の輻輳を回避するための行動の実行の解除を指示する輻輳解除メッセージを生成する輻輳解除メッセージ生成部をさらに備え、メッセージ送信部は、前記輻輳解除メッセージ生成部により生成された輻輳解除メッセージをブロードキャストする請求項1に記載の通信装置。無線アドホック通信網を介して通信を行うノード装置とゲートウェイ装置とを備えた通信システムであって、前記ゲートウェイ装置は、パケットの送信元のノード装置から前記無線アドホック通信網を介して送信されたパケットを受信するパケット受信部と、前記パケット受信部により受信されたパケットに基づいて、前記パケットが前記パケット受信部に到達するまでの通信経路に輻輳が発生したことを検出する輻輳検出部と、前記輻輳検出部により前記通信経路に輻輳が発生したことが検出されたら、前記通信経路の輻輳を回避するための行動の実行を指示する輻輳制御メッセージを生成する輻輳制御メッセージ生成部と、前記輻輳制御メッセージ生成部により生成された輻輳制御メッセージをノード装置に送信するメッセージ送信部とを備え、前記ノード装置は、前記送信された輻輳制御メッセージを受信するメッセージ受信部と、前記メッセージ受信部により前記輻輳制御メッセージを受信したら、前記通信経路の輻輳を回避するための行動を実行する輻輳回避行動制御部と、前記メッセージ受信部により受信された輻輳制御メッセージを再送信するメッセージ再送信部とを備えることを特徴とする通信システム。前記メッセージ送信部は、前記輻輳制御メッセージ生成部により生成された輻輳制御メッセージをブロードキャストし、前記メッセージ再送信部は、前記メッセージ受信部により受信された輻輳制御メッセージを再ブロードキャストする請求項8に記載の通信システム。前記ゲートウェイ装置は、前記輻輳検出部により前記通信経路に輻輳が発生したことが検出された後に、輻輳検出部により前記通信経路に輻輳が発生したことが検出されなくなったら、前記通信経路の輻輳を回避するための行動の実行の解除を指示する輻輳解除メッセージを生成する輻輳解除メッセージ生成部をさらに備え、前記ノード装置は、前記メッセージ受信部により前記輻輳解除メッセージを受信したら、前記通信経路の輻輳を回避するための行動の実行を解除する輻輳回避行動解除部をさらに備え、前記メッセージ送信部は、前記輻輳解除メッセージ生成部により生成された輻輳解除メッセージをブロードキャストし、前記メッセージ再送信部は、前記メッセージ受信部により受信された輻輳解除メッセージを再ブロードキャストする請求項8に記載の通信システム。前記輻輳制御メッセージ生成部は、前記輻輳制御メッセージに、前記輻輳を回避するための行動を実行すべきノード装置の識別子を付加したメッセージを生成し、前記輻輳回避行動制御部は、前記メッセージに含まれる前記輻輳を回避するための行動を実行すべきノード装置の識別子と自ノード装置の識別子が一致する場合には、前記通信経路の輻輳を回避するための行動を実行する請求項8に記載の通信システム。前記ノード装置は、前記ゲートウェイ装置からのホップ数が自ノード装置と比べて小さいノード装置から前記輻輳制御メッセージまたは輻輳解除メッセージを受信した場合にのみ、前記メッセージ再送信部に前記輻輳制御メッセージまたは輻輳解除メッセージを再ブロードキャストさせるか、または、自ノード装置から送信された前記ゲートウェイ装置宛てのパケットの直近の中継ノード装置から前記輻輳制御メッセージまたは輻輳解除メッセージを受信した場合にのみ、前記メッセージ再送信部に前記輻輳制御メッセージまたは輻輳解除メッセージを再ブロードキャストさせる転送メッセージ選択部をさらに備えることを特徴とする請求項8に記載の通信システム。パケットの送信元のノード装置から無線アドホック通信網を介して送信されたパケットを受信するパケット受信ステップと、前記パケット受信ステップにより受信されたパケットに基づいて、前記パケットが前記パケット受信部に到達するまでの通信経路に輻輳が発生したことを検出する輻輳検出ステップと、前記輻輳検出ステップにより前記通信経路に輻輳が発生したことが検出されたら、前記通信経路の輻輳を回避するための行動の実行を指示する輻輳制御メッセージを生成する輻輳制御メッセージ生成ステップと、前記輻輳制御メッセージ生成ステップにより生成された輻輳制御メッセージをノード装置に送信するメッセージ送信ステップとを備えることを特徴とする通信方法。前記メッセージ送信ステップは、前記輻輳制御メッセージ生成ステップにより生成された輻輳制御メッセージをブロードキャストする請求項13に記載の通信方法。パケットの送信元のノード装置から無線アドホック通信網を介して送信されたパケットを受信し、前記受信されたパケットに基づいて、前記パケットが前記パケット受信部に到達するまでの通信経路に輻輳が発生したことを検出し、前記通信経路に輻輳が発生したことが検出されたら、前記通信経路の輻輳を回避するための行動の実行を指示する輻輳制御メッセージを生成し、前記生成された輻輳制御メッセージをノード装置に送信する処理をコンピュータに実行させることを特徴とする通信プログラム。前記生成された輻輳制御メッセージをノード装置に送信する処理は、前記生成された輻輳制御メッセージをブロードキャストする処理をコンピュータに実行させる請求項15に記載の通信プログラム。しかしながら、従来技術は、無線アドホックネットワークにおけるパケットの輻輳の発生を効率よく抑制することについては考慮されていない。すなわち、従来技術は、ノード装置がネットワーク上のパケットの輻輳を検出したら、自ノード端末から送信されるパケットの送信レートを減少させることにより、輻輳の発生を抑制するものである。この従来技術では、ネットワーク上のパケットの輻輳が検出されたときに、周辺ノード装置から送信されるパケットの送信レートは制御することができない。これに対して、ゲートウェイ装置をツリーの頂点とするツリー型ネットワークにおいては、複数のノード装置から送信されるパケットがゲートウェイ装置に集中するため、ゲートウェイ装置の周辺のパケット通信経路で特に輻輳が発生し易い。ここで、ゲートウェイ装置の周辺に配置された各ノード装置が、従来技術のように自ノード装置のパケットの送信レートを減少させたとしても、ゲートウェイ装置に集中するパケットの輻輳状態を考慮して送信レートを減少させるものではない。したがって、ゲートウェイ装置の周辺のパケット通信経路における輻輳を効率よく抑制できないことが考えられる。一方、ゲートウェイ装置の1箇所で従来技術に沿って輻輳を検出しようとすると、ゲートウェイ装置の周辺の輻輳しか検出できない。その半面、各ノード装置で従来技術に沿って輻輳を検出しようとすると、ネットワークのどこで発生した輻輳も検知できるが、各ノード装置に輻輳検知の機能が必要となり、コストパフォーマンスの点で非効率的である。開示の技術は、上記に鑑みてなされたものであって、無線アドホックネットワークにおけるパケットの輻輳の発生を効率よく抑制することができる通信装置、通信システム、通信方法、および通信プログラムを実現することを目的とする。本願の開示する通信装置は、一つの態様において、パケットの送信元のノード装置から無線アドホック通信網を介して送信されたパケットを受信するパケット受信部を備える。また、通信装置は、前記パケット受信部により受信されたパケットに基づいて、前記パケットが前記パケット受信部に到達するまでの通信経路に輻輳が発生したことを検出する輻輳検出部を備える。また、通信装置は、前記輻輳検出部により前記通信経路に輻輳が発生したことが検出されたら、前記通信経路の輻輳を回避するための行動の実行を指示する輻輳制御メッセージを生成する輻輳制御メッセージ生成部を備える。また、通信装置は、前記輻輳制御メッセージ生成部により生成された輻輳制御メッセージをノード装置に送信するメッセージ送信部を備える。本願の開示する通信装置の一つの態様によれば、無線アドホックネットワークにおけるパケットの輻輳の発生を効率よく抑制することができる。以下に、本願の開示する通信装置、通信システム、通信方法、および通信プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例により開示技術が限定されるものではない。図1は、本実施例の通信システムの全体構成を示す図である。図1に示すように、本実施例の通信システム100は、ゲートウェイ装置200と、ゲートウェイ装置200との間で無線通信を行う複数のノード装置300-1~300-mmは2以上の自然数とを備える。通信システム100は、ゲートウェイ装置200を頂点として、ノード装置300-1~300-mが枝分かれして設けられたツリー型ネットワークを構成している。ゲートウェイ装置200とノード装置300-1~300-mとの間、およびノード装置300-1~300-m相互間は、無線アドホック通信網によって無線通信可能となっている。複数のノード装置300-1~300-mは、いずれも同様の構成を有しているので、以下、説明の便宜上ノード装置300-1~300-mのいずれかを示す場合には、ノード装置300という。また、ゲートウェイ装置200とノード装置300はいずれも通信装置の一態様である。本実施例では、ゲートウェイ装置200と無線通信可能な範囲内にノード装置300-1~300-3が配置されていると仮定する。また、ノード装置300-1~300-3それぞれに対して無線通信可能な範囲内にノード装置300-4~300-mが配置されていると仮定する。例えば、ノード装置300-8からゲートウェイ装置200に対してパケットを送信する場合、ノード装置300-8から直接ゲートウェイ装置200に対してパケットを送信することはできない。そこで、ノード装置300-8は、パケットを一旦ノード装置300-3へ送信する。ノード装置300-3は、ノード装置300-8から送信されたパケットを受信したら、受信したパケットをゲートウェイ装置200へ送信する。つまり、この場合は、ノード装置300-3はパケットを中継する中継ノード装置となる。なお、ノード装置300-1~300-3は、ゲートウェイ装置200宛てのパケットを送信する場合には、直接ゲートウェイ装置200にパケットを送信すべきことがあらかじめ設定されたルーティングテーブルを有している。また、ノード装置300-1~300-3は、ゲートウェイ装置200へパケットを送信できない場合に、どのノード装置へパケットを送信すべきか優先順位を付けてあらかじめ設定されたルーティングテーブルを有している。また、ノード装置300-4~300-mは、ゲートウェイ装置200宛てのパケットを送信する場合に、どの中継ノード装置へパケットを送信すべきかあらかじめ設定されたルーティングテーブルを有している。また、ノード装置300-4~300-mは、あらかじめ設定された中継ノード装置へパケットを送信できない場合に、どの中継ノード装置へパケットを送信すべきか優先順位を付けてあらかじめ設定されたルーティングテーブルを有している。ゲートウェイ装置200は、通信ケーブル202を介して他のゲートウェイ装置と接続される。他のゲートウェイ装置に対しては、ゲートウェイ装置200と同様に、複数のノード装置がツリー型ネットワークを構成して配置される。図2は、本実施例のゲートウェイ装置200の構成を示すブロック図である。図2に示すように、本実施例のゲートウェイ装置200は、パケット受信部204と、経路変更回数抽出部208と、ビジー回数抽出部209とを備える。また、ゲートウェイ装置200は、輻輳検出部210と、輻輳制御メッセージ生成部212と、輻輳解除メッセージ生成部214と、メッセージ送信部216とを備える。パケット受信部204は、例えばノード装置300-1~300-3から無線アドホック通信網を介して送信されたパケットを受信する。経路変更回数抽出部208は、パケット受信部204により受信されたパケットに基づいて、このパケットがパケットの送信元のノード装置からパケット受信部204に到達するまでに通信経路を変更した回数を抽出する。経路変更回数抽出部208は、例えば、受信したパケットに付加されている通信経路の履歴に基づいて、通信経路の変更回数を抽出することができる。通信経路の履歴とは、受信したパケットが送信元のノード装置からどのノード装置を中継して送信されたかを示す履歴のことである。送信元のノード装置から送信されたパケットには、中継ノード装置を経由するたびに、中継ノード装置の識別子が付加される。経路変更回数抽出部208は、受信したパケットに付加されている中継ノード装置の識別子を参照することにより、通信経路の変更回数を抽出することができる。例えばノード装置300-8がパケットの送信元であり、ノード装置300-8から送信されたパケットはノード装置300-3を経由してゲートウェイ装置200へ送信されるという通信経路があらかじめ設定されていたとする。あらかじめ設定された通信経路のとおりにパケットが送信された場合には、パケットの通信経路は変更されていないので、経路変更回数抽出部208は、通信経路の変更回数として0回を抽出する。一方、ノード装置300-8からノード装置300-3へパケットの送信を試みたが送信できなかった場合には、ノード装置300-8は、例えばノード装置300-2を介してゲートウェイ装置200へパケットを送信する。この場合には、パケットの通信経路は1回変更されているので、経路変更回数抽出部208は、通信経路の変更回数として1回を抽出する。また、ノード装置300-8からノード装置300-3へパケットを送信できず、ノード装置300-2へパケットの送信を試みたがそれでも送信できない場合に、例えばノード装置300-1を介してゲートウェイ装置200へパケットを送信したとする。この場合には、パケットの通信経路は2回変更されたことになるので、経路変更回数抽出部208は、通信経路の変更回数として2回を抽出する。なお、ノード装置は、例えばパケットを送信したにもかかわらず到達確認パケットが返送されない場合に、パケットの送信ができなかったと判断する。また、経路変更回数抽出部208は、送信元のノード装置からゲートウェイ装置200へパケットを送信した場合のホップ数に基づいて、経路変更回数を抽出することもできる。ホップ数とは、あるノード装置300からゲートウェイ装置200へパケットを送信する場合に、ゲートウェイ装置200へ到達するまでにパケットが何回ノード装置から送信されたかを示すものである。例えばノード装置300-4からノード装置300-1を中継してゲートウェイ装置200へパケットが送信された場合を考える。この場合、パケットは、ノード装置300-4から送信されてノード装置300-1へ到達し、ノード装置300-1から送信されてゲートウェイ装置200へ到達するので、ホップ数は2回となる。経路変更回数抽出部208は、受信パケットに記録された通信経路の履歴から、ホップ数を求めることができる。経路変更回数抽出部208は、ノード装置からゲートウェイ装置200までの最短ホップ数をあらかじめ記録しておき、この最短ホップ数と受信パケットの通信経路の履歴から求めたホップ数との差分を経路変更回数として抽出することもできる。経路変更回数抽出部208は、受信パケットに記録された通信経路の履歴や、ホップ数の差分に限らず、その他の方法で経路変更回数を抽出することもできる。また、ホップ数とは、ゲートウェイ装置200からノード装置300へパケットを送信した場合に、送信されたパケットが宛先のノード装置300へ到達するまでにパケットが何回ゲートウェイ装置200およびノード装置から送信されたかを示すものでもある。ビジー回数抽出部209は、ノード装置300-1~300-mがキャリアセンス方式でパケットを送信する場合において、パケットの送信元のノード装置からパケット受信部204に到達するまでのビジーの回数を求める。キャリアセンス方式とは、例えばノード装置300-6がノード装置300-2へパケットを送信しようした際に、他のノード装置例えばノード装置300-7がノード装置300-2へパケットを送信しているか否かをセンシングするものである。そして、キャリアセンス方式とは、センシング結果に応じてノード装置300-2へパケットを送信するか否かを決定するものである。例えば、他のノード装置300-7がノード装置300-2へパケットを送信している場合には、ビジーであるのでノード装置300-6はノード装置300-2へパケットを送信しない。一方、他のノード装置300-7がノード装置300-2へパケットを送信していない場合には、ビジーではないので、ノード装置300-6はノード装置300-2へパケットを送信する。言い換えると、ビジーとは、あるノード装置が宛先のノード装置へパケットを送信しようとした際に、他のノード装置が同一の宛先のノード装置へパケットを送信しており、パケットを送信できない状態を表す。ビジーの回数は、送信元のノード装置からゲートウェイ装置200へ送信される過程で、ビジーが発生するたびにカウントアップされて履歴としてパケットに付加される。なお、本実施例では、ゲートウェイ装置200が、経路変更回数抽出部208とビジー回数抽出部209の両方を有する例を挙げたが、これに限らず、ゲートウェイ装置200は、経路変更回数抽出部208とビジー回数抽出部209の一方を有することもできる。輻輳検出部210は、パケット受信部204により受信されたパケットに基づいて、パケットがパケット受信部204に到達するまでの通信経路に輻輳が発生したことを検出する。輻輳検出部210は、例えば経路変更回数抽出部208により抽出された通信経路の変更回数があらかじめ設定された制御閾値を超えたら、通信経路に輻輳が発生したことを検出する。また、輻輳検出部210は、ビジー回数抽出部209により抽出されたビジーの回数があらかじめ設定された制御閾値を超えたら、通信経路に輻輳が発生したことを検出することもできる。輻輳制御メッセージ生成部212は、輻輳検出部210により通信経路に輻輳が発生したことが検出されたら、通信経路の輻輳を回避するための行動の実行を指示する輻輳制御メッセージを生成する。また、輻輳解除メッセージ生成部214は、輻輳検出部210により通信経路に輻輳が発生したことが検出された後に、輻輳検出部210により通信経路に輻輳が発生したことが検出されなくなったら、輻輳解除メッセージを生成する。輻輳解除メッセージとは、通信経路の輻輳を回避するための行動の実行の解除を指示するメッセージである。メッセージ送信部216は、輻輳制御メッセージ生成部212により生成された輻輳制御メッセージまたは輻輳解除メッセージ生成部214により生成された輻輳解除メッセージを含む制御/解除メッセージをノード装置に送信する。メッセージ送信部216は、例えば、輻輳制御メッセージ生成部212により生成された輻輳制御メッセージまたは輻輳解除メッセージ生成部214により生成された輻輳解除メッセージを含む制御/解除メッセージをブロードキャストする。メッセージ送信部216によりブロードキャストされた制御/解除メッセージは、ゲートウェイ装置200との間で通信可能な範囲内に配置されたノード装置300-1~300-3へ送信される。図3は、制御/解除メッセージのフォーマットの一例を示す図である。図3の制御/解除メッセージ400は、輻輳制御メッセージ生成部212または輻輳解除メッセージ生成部214で生成される。制御/解除メッセージ400は、制御/解除フラグ402と、輻輳制御対象ID404と、輻輳制御行動種別406とを含む。制御/解除フラグ402は、輻輳制御メッセージまたは輻輳解除メッセージが生成されたらセットされるフラグであり、輻輳制御メッセージに対応するフラグと輻輳解除メッセージに対応するフラグは識別可能にセットされる。輻輳制御対象ID404は、ノード装置300-1~300-mのうち、輻輳を回避するための行動を実行すべきノード装置の識別子を表すものである。ただし、輻輳制御対象ID404を設定しないことにより、輻輳を回避するための行動を実行すべき対象を、ノード装置300-1~300-mとすることもできる。また、輻輳制御対象ID404には、ノード装置300-1~300-mの個別のIDをセットするだけではなく、例えばゲートウェイ装置200からのホップ数が等しいノード装置、または隣接するノード装置などの属性を表す識別子をセットすることもできる。輻輳制御行動種別406は、輻輳を回避するために実行すべき行動の種類を表すものである。輻輳制御行動種別406には、例えば、パケットの廃棄、再送回数の抑制、転送経路数の抑制、またはパケット送信頻度の抑制の少なくとも1つに対応する行動種別が設定される。ただし、輻輳制御行動種別406を設定せず、輻輳を回避するために実行すべき行動の種類をあらかじめノード装置300-1~300-mに設定しておくこともできる。輻輳制御行動種別406にパケットの廃棄が設定された場合には、ノード装置は、送信すべきパケットを送信することなく廃棄する。ただし、送信すべきパケットを全て廃棄するのではなく、例えば送信すべきパケットの50を廃棄するなど、廃棄するパケットの割合を設定することもできる。輻輳制御行動種別406に再送回数の抑制が設定された場合には、ノード装置は、パケットの送信が失敗したときにパケットを同一の宛先へ再送するリトライする回数を抑制する。例えば、パケットを再送する回数の上限を設定することにより、ノード装置は、パケットの送信が失敗したら、設定された上限の回数まではパケットを再送するが、再送回数が上限の回数に達したらパケットを廃棄する。輻輳制御行動種別406に転送経路数の抑制が設定された場合には、ノード装置は、パケットの送信が失敗したときにパケットを他の宛先へ送信する回数を抑制する。例えば、パケットを他の宛先へ送信する回数の上限を設定したとする。この場合、ノード装置は、パケットの送信が失敗したら、設定された上限の回数までは、あらかじめ設定された優先順位にしたがって他の宛先へパケットを送信するが、送信回数が上限の回数に達したらパケットを廃棄する。また、輻輳制御行動種別406にパケット送信頻度の抑制が設定された場合には、ノード装置は、パケットを送信する頻度を抑制する。例えば、単位時間あたりにパケットを送信する頻度を設定することにより、ノード装置は、設定された頻度に応じてパケットを送信する。図4は、ゲートウェイ装置の第1の処理を示すフローチャートである。図4に示すように、まず、パケット受信部204は、ノード装置300-1~300-mのいずれかから送信されたパケットを受信するステップS101。続いて、経路変更回数抽出部208は、ステップS101で受信されたパケットに基づいて、このパケットがパケットの送信元のノード装置からパケット受信部204に到達するまでに通信経路を変更した回数を抽出するステップS102。続いて、輻輳検出部210は、ステップS102で抽出された経路変更回数が制御閾値より大きいか否かを判定するステップS103。続いて、輻輳制御メッセージ生成部212は、経路変更回数が制御閾値より大きいと判定されたらステップS103でYes、輻輳制御メッセージを生成するステップS104。すなわち、輻輳検出部210により経路変更回数が制御閾値より大きいと判定されたということは、パケットの通信経路に輻輳が発生したことに起因してパケットの経路変更が頻繁に発生していることを表している。このように輻輳検出部210でパケットの通信経路に輻輳が発生したことが検出されたら、輻輳制御メッセージ生成部212は、輻輳制御メッセージを生成する。一方、輻輳検出部210は、経路変更回数が制御閾値より大きくないと判定されたらステップS103でNo、輻輳制御中であるか否かを判定するステップS105。つまり、輻輳検出部210は、ノード装置300-1~300-mに対して通信経路の輻輳を回避するための行動の実行を指示している状態か否かを判定する。輻輳検出部210は、輻輳制御中である場合にはステップS105でYes、経路変更回数が解除閾値よりも小さいか否かを判定するステップS106。輻輳解除メッセージ生成部214は、経路変更回数が解除閾値よりも小さい場合にはステップS106でYes、輻輳解除メッセージを生成するステップS107。すなわち、輻輳検出部210により経路変更回数が解除閾値より小さいと判定されたということは、パケットの通信経路の輻輳が収まったことに起因してパケットの経路変更の発生が減少したことを表している。このように輻輳検出部210でパケットの通信経路に輻輳が発生したことが検出されなくなったら、輻輳解除メッセージ生成部214は、輻輳解除メッセージを生成する。また、輻輳解除メッセージ生成部214は、経路変更回数が解除閾値を下回ったノード装置を判別して記録しておいて、輻輳解除メッセージに、判別されたノード装置のIDを付加することもできる。この場合、ノード装置300-1~300-mは、輻輳解除メッセージに自ノード装置のノードIDが付加されている場合にのみ、通信経路の輻輳を回避するための行動の実行を解除する。メッセージ送信部216は、ステップS104で輻輳制御メッセージが生成されたら、またはステップS107で輻輳解除メッセージが生成されたら、制御/解除メッセージをブロードキャストして送信するステップS108。一方、ステップS105で輻輳制御中でないと判定された場合またはステップS106で経路変更回数が解除閾値よりも小さくないと判定された場合には、処理を終了する。以上のように、本実施例によれば、もっともトラフィックの集中するゲートウェイ装置200で輻輳の発生を検出することにより、輻輳を早期に発見できる。このため、ゲートウェイ装置の周辺のネットワークのキャパシティ以上のトラフィックが発生することを予防することができる。また、ゲートウェイ装置200は、通信システム100のネットワーク全体に輻輳制御メッセージを送信し、ネットワーク全体のノード装置300-1~300-mが輻輳回避行動をとるため、輻輳の発生を効率よく抑制することができる。その結果、本実施例によれば、輻輳の終息時間を短縮することができる。また、上記の説明では、ゲートウェイ装置200が、パケットの通信経路の輻輳を検出して、ノード装置300に対して輻輳制御メッセージをブロードキャストするものであるが、これには限られない。すなわち、ノード装置300-1~300-mが、パケットの通信経路の輻輳を検出して、他のノード装置に対して輻輳制御メッセージをブロードキャストすることもできる。例えば、ノード装置300-3がパケットの通信経路の輻輳を検出する場合を一例に挙げて説明する。ノード装置300-3に対しては、ノード装置300-3を中継ノード装置とするノード装置300-8~300-mからパケットが集中して送信される。また、仮にノード装置300-6,300-7からノード装置300-2へパケットが送信できない場合には、ノード装置300-6,300-7からもノード装置300-3へパケットが送信される。つまり、ノード装置300-3についても、ゲートウェイ装置200と同様にパケットが集中的に送信されて通信経路の輻輳が生じる場合がある。そこで、ノード装置300-3に、図2のゲートウェイ装置200と同様の構成を搭載することができる。この場合、ノード装置300は、パケット送信元のノード装置から無線アドホック通信網を介してゲートウェイ装置200へ送信されたパケットをパケット送信元のノード装置とゲートウェイ装置200との間で受信する。パケットを受信した後の処理は、ゲートウェイ装置200と同様である。図5は、本実施例のノード装置の第1の構成を示すブロック図である。図5に示すように、ノード装置300は、メッセージ受信部302と、制御/解除メッセージ判別部306と、輻輳回避行動制御部308と、輻輳回避行動解除部310と、輻輳解除タイマー312と、メッセージ再送信部314とを備える。メッセージ受信部302は、メッセージ送信部216からブロードキャストされた制御/解除メッセージ400を受信する。制御/解除メッセージ判別部306は、メッセージ受信部302により受信された制御/解除メッセージ400の制御/解除フラグ402を参照する。そして、制御/解除メッセージ判別部306は、制御/解除フラグ402の参照結果に基づいて、制御/解除メッセージ400が、輻輳制御メッセージを表しているか、輻輳解除メッセージを表しているか、またはその他の種別を表しているかを判別する。輻輳回避行動制御部308は、制御/解除メッセージ判別部306により制御/解除メッセージ400が輻輳制御メッセージを表していると判別されたら、通信経路の輻輳を回避するための行動を実行する。輻輳回避行動解除部310は、制御/解除メッセージ判別部306により制御/解除メッセージ400が輻輳解除メッセージを表していると判別されたら、通信経路の輻輳を回避するための行動の実行を解除する。輻輳解除タイマー312は、通信経路の輻輳を回避するための行動の実行を解除するためのタイマーである。より具体的には、輻輳解除タイマー312は、輻輳回避行動制御部308により通信経路の輻輳を回避するための行動が実行されたら起動される。そして、輻輳解除タイマー312は、あらかじめ設定された時間が経過したら、タイマー設定時間が経過した旨を輻輳回避行動解除部310に通知する。輻輳回避行動解除部310は、輻輳解除タイマー312からタイマー設定時間が経過した旨が通知されたら、通信経路の輻輳を回避するための行動の実行を解除する。つまり、輻輳回避行動解除部310は、輻輳解除メッセージを表す制御/解除メッセージ400が受信されるか、または輻輳解除タイマー312からタイマー設定時間が経過した旨が通知されたら、通信経路の輻輳を回避するための行動の実行を解除する。メッセージ再送信部314は、メッセージ受信部302により受信された制御/解除メッセージ400を再ブロードキャストする。例えば、ゲートウェイ装置200のメッセージ送信部216からブロードキャストされた制御/解除メッセージ400は、ノード装置300-1~300-3で受信される。ノード装置300-1~300-3で受信された制御/解除メッセージ400は、メッセージ再送信部314により再ブロードキャストされて、ノード装置300-4~300-mで受信される。図6は、ノード装置300の第1の処理を示すフローチャートである。図6に示すように、まず、メッセージ受信部302は、ゲートウェイ装置200またはノード装置300-1~300-mのいずれかからブロードキャストされた制御/解除メッセージ400を受信するステップS201。続いて、制御/解除メッセージ判別部306は、ステップS201で受信された制御/解除メッセージ400が、輻輳制御メッセージを表しているか、輻輳解除メッセージを表しているか、またはその他の種別を表しているかを判別するステップS202。続いて、輻輳回避行動制御部308は、ステップS201で制御/解除メッセージ400が輻輳制御メッセージを表していると判別されたら、通信経路の輻輳を回避するための行動を実行するステップS203。輻輳回避行動制御部308は、制御/解除メッセージ400の輻輳制御行動種別406が設定されている場合には、輻輳制御行動種別406で設定された種別の行動を実行する。輻輳回避行動制御部308は、制御/解除メッセージ400の輻輳制御行動種別406が設定されていない場合には、あらかじめ設定された種別の行動を実行する。一方、輻輳回避行動解除部310は、ステップS202で制御/解除メッセージ400が輻輳解除メッセージを表していると判別されたら、通信経路の輻輳を回避するための行動の実行を解除するステップS204。続いて、メッセージ再送信部314は、ステップS203で通信経路の輻輳を回避するための行動が実行されたら、制御/解除メッセージ400を再ブロードキャストするステップS205。また、メッセージ再送信部314は、ステップS204で通信経路の輻輳を回避するための行動の実行が解除された場合も同様に、制御/解除メッセージ400を再ブロードキャストするステップS205。なお、ステップS202で制御/解除メッセージ400がその他の種別を表していると判別されたら、処理を終了する。図7は、ゲートウェイ装置200の第2の処理を示すフローチャートである。ゲートウェイ装置200の第2の処理は、第1の処理と比べて、輻輳を回避するための行動を実行する対象となるノード装置を指定する点が異なる。したがって、第1の処理と異なる点を中心に以下の説明を行う。図7に示すように、まず、パケット受信部204は、ノード装置300-1~300-mのいずれかから送信されたパケットを受信するステップS301。続いて、経路変更回数抽出部208は、ステップS301で受信されたパケットに基づいて、このパケットがパケットの送信元のノード装置からパケット受信部204に到達するまでに通信経路を変更した回数を抽出するステップS302。続いて、輻輳検出部210は、ステップS302で抽出された経路変更回数が制御閾値より大きいか否かを判定するステップS303。続いて、輻輳検出部210は、経路変更回数が制御閾値より大きいと判定された場合はステップS303でYes、輻輳を回避するための行動を実行する対象となるノード装置のIDを記録するステップS304。より具体的には、輻輳検出部210は、受信パケットに付加されている通信経路の履歴に基づいて、どの通信経路で輻輳が発生しているかを検出する。すなわち、受信パケットに付加された通信経路の履歴は、受信したパケットが送信元のノード装置からどのノード装置を中継して送信されたかを示しているので、この履歴を参照すると、どの通信経路で輻輳が発生しているかを検出することができる。例えば、ノード装置300-8から送信されたパケットは、輻輳が発生していない状態では、ノード装置300-3を経由してゲートウェイ装置200へ送信されるとする。これに対して、ノード装置300-8から送信されたパケットの通信経路の履歴を参照すると、パケットはノード装置300-8からノード装置300-2を経由してゲートウェイ装置200へ到達したとする。これは、ノード装置300-8とノード装置300-3との間の通信経路に輻輳が発生していることによって、ノード装置300-8からノード装置300-3へのパケットの送信が成功せず、ノード装置300-2経由で送信されたことを示している。そこで、輻輳検出部210は、ノード装置300-8を、輻輳を回避するための行動を実行する対象となるノード装置とし、ノード装置300-8のIDIDentificationを記録する。続いて、輻輳検出部210は、あらかじめ設定された周期が経過したか否かを判定するステップS305。輻輳検出部210は、あらかじめ設定された周期が経過するまで、ステップS301~ステップS304を繰り返す。輻輳検出部210は、あらかじめ設定された周期が経過したらステップS305でYes、輻輳を回避するための行動を実行する対象となるノード装置の数が0より多いか否かを判定するステップS306。輻輳制御メッセージ生成部212は、輻輳を回避するための行動を実行する対象となるノード装置の数が0より多いと判定されたらステップS306でYes、輻輳制御メッセージを生成するステップS307。ここで、輻輳制御メッセージ生成部212は、輻輳制御メッセージに対応するフラグを制御/解除フラグ402にセットするとともに、輻輳を回避するための行動を実行する対象となるノード装置のIDを輻輳制御対象ID404にセットする。一方、輻輳検出部210は、輻輳を回避するための行動を実行する対象となるノード装置の数が0であると判定されたらステップS306でNo、輻輳制御中であるか否かを判定するステップS308。輻輳検出部210は、輻輳制御中である場合にはステップS308でYes、経路変更回数が解除閾値よりも小さいか否かを判定するステップS309。輻輳解除メッセージ生成部214は、経路変更回数が解除閾値よりも小さい場合にはステップS309でYes、輻輳解除メッセージを生成するステップS310。メッセージ送信部216は、ステップS307で輻輳制御メッセージが生成されたら、またはステップS310で輻輳解除メッセージが生成されたら、制御/解除メッセージ400をブロードキャストして送信するステップS311。一方、ステップS308で輻輳制御中でないと判定された場合またはステップS309で経路変更回数が解除閾値よりも小さくないと判定された場合には、処理を終了する。図8は、ノード装置の第2の処理を示すフローチャートである。ノード装置300-1~30-mの第2の処理は、第1の処理と比べて、自ノードが輻輳を回避するための行動を実行する対象となっているか否かを判定する点が異なる。したがって、第1の処理と異なる点を中心に以下の説明を行う。図8に示すように、まず、メッセージ受信部302は、ゲートウェイ装置200またはノード装置300-1~300-mのいずれかからブロードキャストされた制御/解除メッセージ400を受信するステップS401。続いて、制御/解除メッセージ判別部306は、ステップS201で受信された制御/解除メッセージ400が、輻輳制御メッセージを表しているか、輻輳解除メッセージを表しているか、またはその他の種別を表しているかを判別するステップS402。続いて、輻輳回避行動制御部308は、ステップS201で制御/解除メッセージ400が輻輳制御メッセージを表していると判別されたら、輻輳制御対象IDと自ノード装置のIDが一致するか否かを判定するステップS403。より具体的には、輻輳回避行動制御部308は、輻輳制御対象ID404にセットされているIDと、自ノード装置のIDが一致するか否かを判定する。輻輳回避行動制御部308は、輻輳制御対象IDと自ノード装置のIDが一致すると判定されたらステップS403でYes、通信経路の輻輳を回避するための行動を実行するステップS404。一方、輻輳回避行動解除部310は、ステップS402で制御/解除メッセージ400が輻輳解除メッセージを表していると判別されたら、通信経路の輻輳を回避するための行動の実行を解除するステップS405。続いて、メッセージ再送信部314は、ステップS404で通信経路の輻輳を回避するための行動が実行されたら、制御/解除メッセージ400を再ブロードキャストするステップS406。また、メッセージ再送信部314は、ステップS405で通信経路の輻輳を回避するための行動の実行が解除された場合も同様に、制御/解除メッセージ400を再ブロードキャストするステップS406。また、メッセージ再送信部314は、ステップS403で輻輳制御対象IDと自ノード装置のIDが一致しないと判定された場合も同様に、制御/解除メッセージ400を再ブロードキャストするステップS406。なお、ステップS402で制御/解除メッセージ400がその他の種別を表していると判別されたら、処理を終了する。以上、ゲートウェイ装置200の第2の処理およびノード装置300の第2の処理によれば、効率よく輻輳の発生を抑制することができる。すなわち、ゲートウェイ装置200の第2の処理およびノード装置の第2の処理によれば、どの通信経路で輻輳が発生しているかを検出することができる。したがって、輻輳が発生している通信経路にパケットを送信するノード装置に絞って、輻輳を回避するための行動を実行する対象とすることができる。その結果、輻輳が発生している通信経路にパケットを送信するノード装置に限って、輻輳回避行動を実行するので、効率よく輻輳の発生を抑制することができる。図9は、ゲートウェイ装置の第3の処理を示すフローチャートである。ゲートウェイ装置200の第3の処理は、第2の処理と比べて、輻輳を回避するための行動を実行する対象となるノード装置を指定する方法が異なる。したがって、第2の処理と異なる点を中心に以下の説明を行う。図9に示すように、まず、パケット受信部204は、ノード装置300-1~300-mのいずれかから送信されたパケットを受信するステップS501。続いて、経路変更回数抽出部208は、ステップS501で受信されたパケットに基づいて、このパケットがパケットの送信元のノード装置からパケット受信部204に到達するまでに通信経路を変更した回数を抽出するステップS502。続いて、輻輳検出部210は、ステップS302で抽出された経路変更回数が制御閾値より大きいか否かを判定するステップS503。続いて、輻輳制御メッセージ生成部212は、経路変更回数が制御閾値より大きいと判定されたらステップS503でYes、輻輳を回避するための行動を実行する対象となるノード装置のIDを輻輳制御対象ID404に設定するステップS504。ここで、輻輳制御メッセージ生成部212は、あらかじめ設定されたホップ数の基準値に基づいて、輻輳制御対象となるノード装置を設定する。より具体的には、輻輳制御メッセージ生成部212は、あらかじめ設定されたホップ数の基準値より少ないホップ数でメッセージを送信可能な範囲に設置されているノード装置を輻輳制御対象のノード装置として設定する。例えば、輻輳制御対象となるノード装置を設定するためにあらかじめ設定されたホップ数の基準値が1であるとする。この場合、ゲートウェイ装置200から1回のホップ数でメッセージを送信可能な範囲に設置されているのは、ノード装置300-1~300-3である。そこで、輻輳制御メッセージ生成部212は、輻輳制御対象ID404に、ノード装置300-1~300-3に対応するIDを設定する。続いて、輻輳制御メッセージ生成部212は、輻輳制御メッセージを生成するステップS505。ここで、輻輳制御メッセージ生成部212は、輻輳制御対象ID404に輻輳回制御対象となるノード装置のIDが設定された制御/解除メッセージ400の制御/解除フラグ402に、輻輳制御メッセージに対応するフラグをセットする。一方、輻輳検出部210は、経路変更回数が制御閾値より大きいと判定されなかったらステップS503でNo、輻輳制御中であるか否かを判定するステップS506。輻輳検出部210は、輻輳制御中である場合にはステップS506でYes、経路変更回数が解除閾値よりも小さいか否かを判定するステップS507。輻輳解除メッセージ生成部214は、経路変更回数が解除閾値よりも小さい場合にはステップS507でYes、輻輳解除メッセージを生成するステップS508。メッセージ送信部216は、ステップS505で輻輳制御メッセージが生成されたら、またはステップS508で輻輳解除メッセージが生成されたら、制御/解除メッセージ400をブロードキャストして送信するステップS509。一方、ステップS506で輻輳制御中でないと判定された場合またはステップS507で経路変更回数が解除閾値よりも小さくないと判定された場合には、処理を終了する。以上、ゲートウェイ装置の第3の処理によれば、効率よく輻輳の発生を抑制することができる。すなわち、ゲートウェイ装置の第3の処理によれば、輻輳制御メッセージ生成部212は、あらかじめ設定されたホップ数の基準値に基づいて、輻輳制御対象となるノード装置を設定する。例えば、ゲートウェイ装置200には、ノード装置300-1~300-mから送信されたパケットが集中するので、ゲートウェイ装置200の周囲の通信経路は輻輳が生じ易い。これに対して、ゲートウェイ装置200からのホップ数が少ない通信経路にパケットを送信するノード装置に限って、輻輳を回避するための行動を実行する対象とすることができるので、効率よく輻輳の発生を抑制することができる。図10は、本実施例のノード装置の第2の構成を示すブロック図である。ノード装置300-1~300-mの第2の構成は、第1の構成と比べて、転送メッセージ選択部316が加わった点が異なる。したがって、第1の構成と重複する構成メッセージ受信部302、制御/解除メッセージ判別部306、輻輳回避行動制御部308、輻輳回避行動解除部310、輻輳解除タイマー312、およびメッセージ再送信部314の構成の説明は省略する。転送メッセージ選択部316は、自ノード装置に制御/解除メッセージ400を送信したノード装置に基づいて、制御/解除メッセージ400を再ブロードキャストするか否かを判定する。より具体的には、転送メッセージ選択部316は、ゲートウェイ装置200からのホップ数が自ノード装置と比べて小さいノード装置から制御/解除メッセージ400を受信した場合にのみ、受信した制御/解除メッセージ400を再ブロードキャストさせる。例えば、ノード装置300-8を一例に挙げて説明すると、ノード装置300-8のゲートウェイ装置200からのホップ数は2である。したがって、ノード装置300-8は、ゲートウェイ装置200からのホップ数が2より小さい1であるノード装置300-1~300-3から制御/解除メッセージ400を受信した場合にのみ、再ブロードキャストを行う。また、転送メッセージ選択部316は、自ノード装置から送信されたゲートウェイ装置200宛てのパケットの直近の中継ノード装置から制御/解除メッセージ400を受信した場合にのみ、受信した制御/解除メッセージ400を再ブロードキャストさせてもよい。例えば、ノード装置300-8を一例に挙げて説明すると、ノード装置300-8がゲートウェイ200宛てのパケットを送信する場合の直近の中継ノード装置は、ノード装置300-3である。したがって、ノード装置300-8は、ノード装置300-3から制御/解除メッセージ400を受信した場合にのみ、再ブロードキャストを行う。ノード装置300の第2の構成によれば、制御/解除メッセージ400のブロードキャストに起因する輻輳の発生を抑制することができる。すなわち、ゲートウェイ装置200およびノード装置300が頻繁に制御/解除メッセージ400をブロードキャストすれば、ブロードキャストされた制御/解除メッセージ400が原因となって、かえって輻輳状態が悪化するおそれも考えられる。この点、転送メッセージ選択部316は、ゲートウェイ装置200からのホップ数が自ノード装置と比べて小さいノード装置から制御/解除メッセージ400を受信した場合にのみ、受信した制御/解除メッセージ400を再ブロードキャストする。また、転送メッセージ選択部316は、自ノード装置から送信されたゲートウェイ装置200宛てのパケットの直近の中継ノード装置から制御/解除メッセージ400を受信した場合にのみ、受信した制御/解除メッセージ400を再ブロードキャストさせる。このように、転送メッセージ選択部316によれば、制御/解除メッセージ400が再ブロードキャストされる頻度が減少するので、制御/解除メッセージ400の再ブロードキャストに起因して輻輳状態が悪化するのを防止することができる。図11は、ゲートウェイ装置の第4の処理を示すフローチャートである。ゲートウェイ装置200の第4の処理は、第1の処理と比べて、あらかじめ設定された周期における経路変更回数の平均値を求める点が異なる。したがって、第1の処理と異なる点を中心に以下の説明を行う。図11に示すように、まず、パケット受信部204は、ノード装置300-1~300-mのいずれかから送信されたパケットを受信するステップS601。続いて、経路変更回数抽出部208は、ステップS601で受信されたパケットに基づいて、このパケットがパケットの送信元のノード装置からパケット受信部204に到達するまでに通信経路を変更した回数を抽出するステップS602。続いて、経路変更回数抽出部208は、平均経路変更回数を計算するステップS603。続いて、経路変更回数抽出部208は、あらかじめ設定された周期が経過したか否かを判定するステップS604。経路変更回数抽出部208は、あらかじめ設定された周期が経過していないと判定されたらステップS604でNo、ステップS601に戻り、あらかじめ設定された周期が経過するまで、ステップS601~ステップS603を繰り返す。これにより、あらかじめ設定された周期における経路変更回数の平均値が求められる。輻輳検出部210は、あらかじめ設定された周期が経過したと判定されたらステップS604でYes、ステップS603で抽出された平均経路変更回数が制御閾値より大きいか否かを判定するステップS605。輻輳制御メッセージ生成部212は、平均経路変更回数が制御閾値より大きいと判定されたらステップS605でYes、輻輳制御メッセージを生成するステップS606。一方、輻輳検出部210は、平均経路変更回数が制御閾値より大きいと判定されなかったらステップS605でNo、輻輳制御中であるか否かを判定するステップS607。輻輳検出部210は、輻輳制御中である場合にはステップS607でYes、経路変更回数が解除閾値よりも小さいか否かを判定するステップS608。輻輳解除メッセージ生成部214は、経路変更回数が解除閾値よりも小さい場合にはステップS608でYes、輻輳解除メッセージを生成するステップS609。メッセージ送信部216は、ステップS606で輻輳制御メッセージが生成されたら、またはステップS609で輻輳解除メッセージが生成されたら、制御/解除メッセージ400をブロードキャストして送信するステップS610。一方、ステップS607で輻輳制御中でないと判定された場合またはステップS608で経路変更回数が解除閾値よりも小さくないと判定された場合には、処理を終了する。以上、ゲートウェイ装置の第4の処理によれば、あらかじめ設定された周期における経路変更回数の平均値を求めて、求められた平均経路変更回数に基づいて通信経路の輻輳を検出する。したがって、ゲートウェイ装置の第4の処理によれば、通信経路の輻輳状態を精度よく求めることができるので、精度よく輻輳制御および輻輳解除を行うことができる。なお、上記の実施例は、主に通信装置ゲートウェイ装置200およびノード装置300、通信システム100、および通信方法を中心に説明したが、これには限られない。あらかじめ用意された通信プログラムをコンピュータで実行することによって、上述の実施例と同様の機能を実現することができる。すなわち、通信プログラムは、コンピュータに、パケットの送信元のノード装置から無線アドホック通信網を介して送信されたパケットを受信する処理を実行させる。また、通信プログラムは、コンピュータに、前記受信されたパケットに基づいて、前記パケットが前記パケット受信部に到達するまでの通信経路に輻輳が発生したことを検出する処理を実行させる。また、通信プログラムは、コンピュータに、前記通信経路に輻輳が発生したことが検出されたら、前記通信経路の輻輳を回避するための行動の実行を指示する輻輳制御メッセージを生成する処理を実行させる。また、通信プログラムは、コンピュータに、前記生成された輻輳制御メッセージをブロードキャストする処理を実行させる。なお、通信プログラムは、インターネットなどの通信ネットワークを介してコンピュータに配布することができる。また、通信プログラムは、コンピュータに設けられたメモリ、ハードディスク、その他のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。"