(57)【要約】【課題】  分散型通信ネットワークでありながら、高負荷の場合でも効率よくデータ通信を行うことができる通信制御方法、通信プロトコル、ノード、コンピュータプログラム、及び、プログラムを格納した記憶媒体を提供する。【解決手段】  本発明の、複数のノード１〜６を含む分散型通信ネットワークＮＥＴの通信制御方法は、ノード１〜６のうち、各々自律的に送信順を算出した予約済ノードＳＮが、送信順に従ってデータの送信を行う予約期間ＳＰと、ノード１〜６のうち、送信順を算出していない非予約ノードＮＮがデータの送信を行う競争期間ＣＰであって、非予約ノードＮＮが複数あるときには、非予約ノードＮＮによるデータの送信同士が衝突する場合のあることを許容して、各々の非予約ノードＮＮがデータの送信を試みる競争期間ＣＰと、を含むスーパーフレームＳＦを繰り返し形成するハイブリッドモードによる通信を行う場合を有する。【選択図】  図１２
2008219389.tif 000002
【特許請求の範囲】
【請求項１】
互いにデータの送受信を行う複数のノードを含む、分散型通信ネットワークの通信制御方法であって、
上記分散型通信ネットワークに加入して、データの送信を待つ１又は複数の上記ノードのうち、各々自律的に送信順を算出した予約済ノードが、上記送信順に従ってデータの送信を行う予約期間と、
上記ノードのうち、上記送信順を算出していない非予約ノードがデータの送信を行う競争期間であって、
上記非予約ノードが複数あるときには、上記非予約ノードによるデータの送信同士が、衝突する場合のあることを許容して、各々の上記非予約ノードがデータの送信を試みる
競争期間と、を含む
スーパーフレームを繰り返し形成するハイブリッドモードによる通信を行う場合を有する
通信制御方法。
【請求項２】
請求項１に記載の通信制御方法であって、
前記ノードのいずれかは、統括ノードであり、
上記統括ノードが、前記スーパーフレームを画定する信号を送出する
通信制御方法。
【請求項３】
請求項１または請求項２に記載の通信制御方法であって、
前記予約済ノードのいずれかが、前記予約期間の始期を画定する信号を送出する
通信制御方法。
【請求項４】
請求項１〜請求項３のいずれか１項に記載の通信制御方法であって、
前記予約済ノードのいずれかが、前記予約期間の終期を画定する信号を送出する
通信制御方法。
【請求項５】
請求項１に記載の通信制御方法であって、
前記スーパーフレームは、このスーパーフレームの始期から始まる前記予約期間と、この予約期間の後に始まる前記競争期間とを有し、
前記予約済ノードのうち、前記送信順が第１番目の統括ノードが、
前記スーパーフレーム及び上記予約期間の始期を画定する信号を送出する
通信制御方法。
【請求項６】
請求項１〜請求項４のいずれか１項に記載の通信制御方法であって、
前記非予約ノードのうち、前記競争期間中にデータの送信に成功した非予約成功ノードを、前記予約済ノードとする予約済ノード化ステップを有する
通信制御方法。
【請求項７】
請求項６に記載の通信制御方法であって、
前記予約済ノード化ステップは、
前記非予約成功ノードが複数有る場合、各々の非予約成功ノードに、上記データの送信に成功した順序とは逆に並ぶ順序の前記送信順を与える
通信制御方法。
【請求項８】
請求項１〜請求項７のいずれか１項に記載の通信制御方法であって、
前記予約済ノードは、前記予約期間の開始から、自身のデータの送信までに生じた、他の予約済ノードによって成功した送信のほか、アイドルスロット及び送信の衝突をも計数して、前記送信順に基づく、自身のデータの送信タイミングを決定する
通信制御方法。
【請求項９】
請求項１〜請求項８のいずれか１項に記載の通信制御方法であって、
前記予約済ノードは、前記予約期間の開始から、自身のデータの送信までに生じた、他の予約済ノードによって成功した送信の数を、次回の予約期間における前記送信順とする
通信制御方法。
【請求項１０】
請求項１〜請求項９のいずれか１項に記載の通信制御方法であって、
前記送信を待つ１または複数のノードが、データの送信を行う競争モードであって、
上記ノードが、複数あるときには、上記ノードによるデータの送信同士が、衝突する場合のあることを許容して、各々の上記ノードがデータの送信を試みる
競争モードによる通信を行う場合を有する
通信制御方法。
【請求項１１】
請求項１０に記載の通信制御方法であって、
各々の前記ノードが前記競争モードによる通信を行っている場合において、
上記ノードのうち、いずれかのノードにおけるデータの送信のスループットが低下したとき、
前記ハイブリッドモードに移行する
通信制御方法。
【請求項１２】
請求項１０または請求項１１に記載の通信制御方法であって、
前記競争モードから前記ハイブリッドモードへの移行を、
前記ノードのうちいずれかが、自身が前記スーパーフレームを画定する信号を送出する統括ノードとなり、
他のノードが、上記統括ノードの画定したスーパーフレームに従って、動作することによって行う
通信制御方法。
【請求項１３】
互いにデータの送受信を行う複数のノードを含む、分散型通信ネットワークに用いる通信プロトコルであって、
上記分散型通信ネットワークに加入して、データの送信を待つ１又は複数の上記ノードのうち、各々自律的に送信順を算出した予約済ノードが、上記送信順に従ってデータの送信を行う予約期間と、
上記ノードのうち、上記送信順を算出していない非予約ノードがデータの送信を行う競争期間であって、
上記非予約ノードが複数あるときには、上記非予約ノードによるデータの送信同士が、衝突する場合のあることを許容して、各々の上記非予約ノードがデータの送信を試みる
競争期間と、を含む
スーパーフレームを繰り返し形成するハイブリッドモードによる通信を行う場合を有する
通信プロトコル。
【請求項１４】
データの送信を制御するデータ送信制御部を有するノードであって、
互いにデータの送受信を行う複数のノードを含む、分散型通信ネットワークであって、
上記分散型通信ネットワークに加入して、データの送信を待つ１又は複数の上記ノードのうち、各々自律的に送信順を算出した予約済ノードが、上記送信順に従ってデータの送信を行う予約期間と、
上記ノードのうち、上記送信順を算出していない非予約ノードがデータの送信を行う競争期間であって、
上記非予約ノードが複数あるときには、上記非予約ノードによるデータの送信同士が、衝突する場合のあることを許容して、各々の上記非予約ノードがデータの送信を試みる
競争期間と、を含む
スーパーフレームを繰り返し形成するハイブリッドモードによる通信を行う場合を有する分散型通信ネットワークにおいて、
上記データ送信制御部の制御により、上記予約済ノード及び上記非予約ノードのいずれとしても機能するように構成してなる
ノード。
【請求項１５】
請求項１４に記載のノードであって、
前記データ送信制御部の制御により、
前記送信を待つ１または複数のノードが、データの送信を行う競争モードであって、
上記ノードが、複数あるときには、上記ノードによるデータの送信同士が、衝突する場合のあることを許容して、各々の上記ノードがデータの送信を試みる
競争モードによる通信を行うノードとしても機能させうるように構成してなる
ノード。
【請求項１６】
互いにデータの送受信を行う複数のノードを含む、分散型通信ネットワークに用いる通信制御を、各々の上記ノードのコンピュータシステムおいて実行するように、コンピュータ可読形式で記述されたコンピュータプラグラムであって、
上記分散型通信ネットワークに加入して、データの送信を待つ１又は複数の上記ノードのうち、各々自律的に送信順を算出した予約済ノードが、上記送信順に従ってデータの送信を行う予約期間と、
上記ノードのうち、上記送信順を算出していない非予約ノードがデータの送信を行う競争期間であって、
上記非予約ノードが複数あるときには、上記非予約ノードによるデータの送信同士が、衝突する場合のあることを許容して、各々の上記非予約ノードがデータの送信を試みる
競争期間と、を含む
スーパーフレームを繰り返し形成するハイブリッドモードによる通信を行う場合を設け、
上記ノードを、上記予約済ノード及び上記非予約ノードのいずれとしても機能させうるように記述した
コンピュータプラグラム。
【請求項１７】
請求項１６に記載のコンピュータプラグラムを、コンピュータが読み出し可能に格納した記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散型通信ネットワークにおける通信制御方法、通信プロトコル、通信に用いるノード、コンピュータプログラム、及び、プログラムを格納した記憶媒体に関する。
【背景技術】
【０００２】
通信ネットワークにおける各ノード（通信端末）間の通信制御の方法としては、例えば、ＩＥＥＥ８０２．１１に規定するＰＣＦ方式のように、制御局を設け、この制御局の指示に従って、各ノードが通信を行う集中型通信ネットワークが挙げられる。このように制御局の指示に従い、各ノードが同期して通信を行うことにより、他のノードによるデータ送信との衝突を防止して、各ノードが伝送路（メディア）を利用することができる。
但し、このＰＣＦ方式では、通信ネットワークが高負荷の場合（通信量が多い場合）でも、通信を行える反面、低負荷の場合（通信量が少ない場合）であっても、必ず制御局を通じた通信が必要となるため、このような場合にメディアの利用効率が低下する問題がある。
【０００３】
一方、例えば、ＩＥＥＥ８０２．１１に規定するＤＣＦ方式のように、特定の制御局を設けず、各々のノード同士が非同期で直接通信を行う分散型通信ネットワークも提案されている。この分散型ネットワークでは、制御局を必要としないため、通信ネットワークが簡単になり、通信ネットワークが低負荷の場合には、効率よく通信ができる利点がある。
但し、通信ネットワークの負荷が増加すると、通信効率が低下する。各ノードによるデータ送信の衝突によって送信遅延が増加する。バースト通信（集中的に通信要求が発生した場合）に対応が困難で、通信効率の極端な低下或いは通信不能を生じさせる場合があるなどの欠点がある。
【０００４】
これに対し、低負荷の場合に適するＤＣＦ方式と、高負荷の場合にも対応しうるＰＣＦ方式とを組み合わせたＨＣＦ(Hybrid Coordination Function)方式が提案されている。
そのほか、ＤＣＦ方式の改善案として、例えば、非特許文献１に記載のものが提案されている。
【０００５】
【非特許文献１】Y. Kwon, Y. Fang and H. Latchman, A novel MAC protocalwith fast collision resolution for wireless LANs," IEEE  INFOCOM'03, Apr. 2003.
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、前述のＨＣＦ方式では、制御局を必要とし、分散型通信ネットワークには適用困難である。また、制御局が各ノードと交信してネットワーク上の送受信を調整するため、オーバーヘッドが増加して、通信効率が低下する不具合もある。
また、前述の非特許文献１に記載の方式では、ネットワークが高負荷となった場合でも、各ノードを非同期で通信させるＤＣＦ方式を基本とするため、その効果が限定的で、高負荷時の通信効率の改善が十分でない。
【０００７】
本発明は、かかる問題点に鑑みてなされたものであって、特に制御局となる装置を配置しない分散型通信ネットワークでありながら、高負荷の場合でも効率よくデータ通信を行うことができる通信制御方法、通信プロトコル、このような通信に用いるノード、コンピュータプログラム、及び、プログラムを格納した記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【０００８】
その解決手段は、互いにデータの送受信を行う複数のノードを含む、分散型通信ネットワークの通信制御方法であって、上記分散型通信ネットワークに加入して、データの送信を待つ１又は複数の上記ノードのうち、各々自律的に送信順を算出した予約済ノードが、上記送信順に従ってデータの送信を行う予約期間と、上記ノードのうち、上記送信順を算出していない非予約ノードがデータの送信を行う競争期間であって、上記非予約ノードが複数あるときには、上記非予約ノードによるデータの送信同士が、衝突する場合のあることを許容して、各々の上記非予約ノードがデータの送信を試みる競争期間と、を含むスーパーフレームを繰り返し形成するハイブリッドモードによる通信を行う場合を有する
通信制御方法である。
【０００９】
本発明の通信制御方法では、スーパーフレームを繰り返し形成するハイブリッドモードによる通信を行う場合が含まれている。このハイブリッドモードによる通信においては、スーパーフレーム中に、予約期間と競争期間とを含んでいる。
このうち、予約期間には、各々自律的に送信順を算出した予約済ノードが、その送信順に従って送信を行う。従って、予約済ノードについては、予約期間においてデータ送信の機会が確保されるので、確実にデータ送信を行うことができる。しかも、予約済ノードは各々自律的に送信順を算出しているので、各予約済ノードに送信順などの指示を与える制御局などを通信ネットワーク中に配置する必要が無く、分散型通信ネットワークを維持することができる。
一方、競争期間には、非予約ノードがデータの送信を行う。この競争期間では、非予約ノードが複数あるとき、非予約ノードによるデータの送信同士が、衝突する場合のあることを許容している。従って、各々の非予約ノードがデータの送信を試みても、そのデータ送信が成功（相手ノードに正しく送信できた場合を指し、例えば、相手ノードからＡＣＫが返送された場合が挙げられる）するとは限らない。しかし、非予約ノードによるデータの送信が成功する場合もあり得る。
【００１０】
かくして、この通信制御方法によれば、スーパーフレームのうち、競争期間においては、非予約ノードについて、データ送信を試みさせるので、送信に成功した分だけデータ送信を行うことができる。しかも、予約期間においては、予約済ノードについて確実にデータ送信を行わせることができる。
このため、分散型通信ネットワークでありながら、高負荷の場合でも、通信効率の極端な低下或いは通信不能を生じることなく、全体として、ＤＣＦ方式等に比して、相対的に効率よくデータ通信を行わせることができる。
【００１１】
なお、分散型通信ネットワークとしては、これに加入するノードが予め限定されているもののほか、携帯端末（携帯電話機）のように移動により、あるいは、機器または通信機能部の電源オンにより、ネットワークにノードに加入する場合があるものも含まれる。例えば、アドホックネットワークを挙げることができる。分散型通信ネットワークとしては、例えば、有線通信によるネットワークのほか、電波あるいは光（可視光、赤外線、紫外線等）を用いた無線通信によるネットワーク、これらを併用したネットワークが挙げられる。したがって、伝送路（メディア）としては、これらのネットワークで使用する通信線、光回線、電力線、電波や光を伝える空間等が含まれる。
【００１２】
また、分散型通信ネットワークに含まれるノードとしては、他のノードとの通信により、データ処理を行うことのできるデータ処理装置（通信端末）であればよい。従って、例えば、この分散型通信ネットワークに加入できる通信機能を持つ各種の機器、パーソナルコンピュータ、携帯電話機（携帯端末）、ＰＤＡや、各種の家電製品（冷蔵庫、エアコン、給湯器、照明器具、オーディオ機器、インターホンその他セキュリティ機器など）、各種の事務機器（プリンタ、ＦＡＸ機など）、工場などで使用する産業機器（ロボット、自動制御により動作する機器など）が挙げられる。
【００１３】
また、予約済ノードが、自身の送信順を自律的に算出する手法としては、例えば、前回の予約期間において、自身がデータ送信する前に、データ送信に成功した予約済ノードの数を計数し、これに基づいて次回の予約期間における自身の送信順を算出する手法が挙げられる。また、これとは逆に、自身がデータ送信した後に、データ送信に成功した予約済ノードの数を計数し、これに基づいて次回の予約期間における自身の送信順を算出する手法が挙げられる。
【００１４】
非予約ノードが、競争期間中にデータの送信を試みる手法としては、例えば、各非予約ノードがデータ送信を行い、もし、他の非予約ノードのデータ送信と衝突した場合（送信が成功しなかった場合）には、互いに、自身が選択した所定範囲内の乱数値の個数分だけ、アイドルスロットを待ってから、再びデータ送信を試みる手法が挙げられる。
【００１５】
さらに、本発明の通信制御方法は、ハイブリッドモードによる通信を行う場合を有していれば足り、これに加えて、他のモードによる通信を行う場合を有していても良い。
【００１６】
さらに、上述の通信制御方法であって、前記ノードのいずれかは、統括ノードであり、上記統括ノードが、前記スーパーフレームを画定する信号を送出する通信制御方法とすると良い。
【００１７】
本発明の通信制御方法では、統括ノードがスーパーフレームを画定する信号を送出する。このように、統括ノードがスーパーフレームを画定するので、特に制御局を設定しなくとも、容易かつ自律的にスーパーフレームを繰り返し形成することができる。
また、分散型通信ネットワークに加入している他のノードは、統括ノードの画定したスーパーフレームにおいて、自身が予約済ノードであるか、非予約ノードであるかに応じて、所定の動作をすればよいこととなるので、自律的にハイブリッドモードにおける動作を行うことができる。
【００１８】
なお、スーパーフレームを画定する信号としては、例えば、スーパーフレームの始期を画定するヘッドビーコン、あるいは、スーパーフレームの終期を画定する終了ビーコンが挙げられる。
ヘッドビーコンを送出する場合において、予約期間の位置を、スーパーフレームのうち、その開始直後に置く場合には、ヘッドビーコンを予約期間の始期を画定する信号として併用することもできる。
【００１９】
また、統括ノードは、スーパーフレームを画定する信号、例えば、上述のヘッドビーコン等を送出するものであれば良く、自身のデータの送信を、どのタイミングで行うかについて限定されない。従って、統括ノードは、予約済ノードであっても、非予約ノードであっても良い。
【００２０】
さらに、上述の通信制御方法であって、前記統括ノードは、前記予約済ノードでもある通信制御方法とするのが好ましい。
統括ノードが予約済ノードとしても振る舞えば、予約期間において、先ず、自身のデータ送信を確実に行いうるからである。
【００２１】
さらに、上述のいずれかに記載の通信制御方法であって、前記予約済ノードのいずれかが、前記予約期間の始期を画定する信号を送出する通信制御方法とすると良い。
【００２２】
本発明の通信制御方法では、予約済ノードのいずれかが、予約期間の始期を画定する信号を送出する。従って、他のノード（他の予約済ノード及び非予約ノード）は、スーパーフレームのうち、予約期間の開始をこの信号によって感知できる。このため、予約済ノードは、送信順に従って自律的に送信を行うことができる。また、非予約ノードは、予約期間の開始以降、送信の試みを停止することができるから、予約済ノードと非予約ノードとで、送信の衝突が起こることも自律的に回避でき、予約済ノードのデータ送信を確実に行わせることができる。
【００２３】
なお、予約期間の始期を画定する信号を送出する予約済ノードとしては、予約済ノードのうちのいずれでも良いが、送信順が第１番の予約済ノードが、この信号を送出するのが好ましい。
予約期間の始期を画定する信号の送出から近接した時期にデータの送信を行えば、他のノード、例えば新たに加入するノードからの送信との衝突の可能性も低くでき、確実に自身のデータ送信を行える。そのうえ、予約期間の始期を画定する信号を送出する予約済ノードの立場を、安定して継続することができる。
【００２４】
さらに、上述のいずれか１項に記載の通信制御方法であって、前記予約済ノードのいずれかが、前記予約期間の終期を画定する信号を送出する通信制御方法とすると良い。
【００２５】
本発明の通信制御方法では、予約済ノードのいずれかが、前記予約期間の終期を画定する信号を送出する。従って、他のノード（他の予約済ノード及び非予約ノード）は、スーパーフレームのうち、予約期間の終了をこの信号によって感知できる。このため、予約済ノードは、これ以降、データの送信を停止する。従って、予約期間の終了以降、次の予約期間が開始するまでの間のうち、競争期間において、非予約ノードが、予約済ノードとの送信の衝突が起こるおそれ無く、データの送信を試みることができる。
【００２６】
なお、スーパーフレームが、予約期間と競争期間の２つからなるものである場合には、予約期間の終期を画定する信号を、競争期間の始期を画定する信号としても利用することができる。このため、競争期間の始期を明確にし、非予約ノードによる送信の試みを、確実に行わせることができる。
【００２７】
なお、予約期間の終期を画定する信号を送出する予約済ノードとしては、予約済ノードのうちのいずれでも良いが、送信順が最も遅い予約済ノードが、この信号を送出するのが好ましい。
送信順が最も遅い予約済ノードが、自身の送信に引き続いて予約期間の終期を画定する信号を送出をすることで、確実に自身のデータ送信を行える。
【００２８】
あるいは、請求項１に記載の通信制御方法であって、前記スーパーフレームは、このスーパーフレームの始期から始まる前記予約期間と、この予約期間の後に始まる前記競争期間とを有し、前記予約済ノードのうち、前記送信順が第１番目の統括ノードが、前記スーパーフレーム及び上記予約期間の始期を画定する信号を送出する通信制御方法とすると良い。
【００２９】
本発明の通信制御方法では、スーパーフレームは、この開始と共に始まる予約期間とそれより後の競争期間を有している。また、予約済ノードのうち送信順が１番、従って、スーパーフレームにおいても１番に送信する統括ノードが、スーパーフレーム及び予約期間の始期を画定する信号を送出する。
このように、統括ノードがスーパーフレームの始期を画定する信号を送出するので、特に制御局を設定しなくとも、容易かつ自律的にスーパーフレームを繰り返し形成することができる。
また、分散型通信ネットワークに加入している他のノードは、統括ノードの画定したスーパーフレームにおいて、自身が予約済ノードであるか、非予約ノードであるかに応じて、所定の動作をすればよいこととなるので、自律的にハイブリッドモードにおける動作を行うことができる。
【００３０】
しかも、統括ノードの送出する信号は、予約期間の始期を画定する信号でもある。従って、他のノード（他の予約済ノード及び非予約ノード）は、スーパーフレームのうち、予約期間の開始をこの信号によって感知できる。このため、各々の予約済ノードは、送信順に従って自律的に送信を行うことができる。また、非予約ノードは、予約期間の開始以降、送信の試みを停止することができるから、予約済ノードと非予約ノードとで、送信の衝突が起こることも自律的に回避でき、予約済ノードによるデータ送信を確実に行わせることができる。
【００３１】
しかも、統括ノードは、スーパーフレーム及び予約期間の始期を画定する信号を送出してから、その後の予約期間において１番に、従って、スーパーフレームにおいて１番に、データを送信する。これにより、他のノード、例えば新たに加入するノードからの送信との衝突の可能性も低くでき、確実に自身（統括ノード）のデータ送信を行える。その上、統括ノードの立場を安定して継続することができるため、ネットワーク上で、ハイブリッドモードを安定に維持できる。
【００３２】
さらに、上述のいずれか１項に記載の通信制御方法であって、前記非予約ノードのうち、前記競争期間中にデータの送信に成功した非予約成功ノードを、前記予約済ノードとする予約済ノード化ステップを有する通信制御方法とすると良い。
【００３３】
本発明の通信制御方法では、非予約ノードのうちの非予約成功ノードを、前記予約済ノードとする予約済ノード化ステップを有している。従って、競争期間において、非予約ノードが送信に成功することにより、予約済ノードを次第に増加する。これにより、新たに予約済ノードとなったノードについても、予約期間において、確実にデータの送信を行うができるから、ネットワーク全体として見た場合に、データ送信の衝突を減少させることができ、通信効率及びスループットを向上させることができる。
【００３４】
さらに、上述の通信制御方法であって、前記予約済ノード化ステップは、前記非予約成功ノードが複数有る場合、各々の非予約成功ノードに、上記データの送信に成功した順序とは逆に並ぶ順序の前記送信順を与える通信制御方法とすると良い。
【００３５】
本発明の通信制御方法では、非予約成功ノードが複数有る場合、各々の非予約成功ノードに、上記データの送信に成功した順序とは逆に並ぶ順序の前記送信順を与える。
具体的には、例えば、或る競争期間において、Ａ，Ｂ，Ｃの３つの非予約ノード（非予約成功ノード）が、Ａ，Ｂ，Ｃの順に、データの送信に成功した場合を考える。この場合には、送信に成功した順序とは逆の順序、即ち、Ｃ，Ｂ，Ａの順序の送信順が与えられる。例えば、Ｃに５番目、Ｂに６番目、Ａに７番目の送信順が与えられる。
このようにすることで、送信に成功した非予約ノード（非予約成功ノード）が、送信順を得るに当たり、自身の成功以降、競争期間の終了までに送信に成功した数を計数することで、複数の非予約成功ノードのうち、自身の順位を容易に知ることができるからである。
【００３６】
さらに、上述のいずれか１項に記載の通信制御方法であって、前記予約済ノードは、前記予約期間の開始から、自身のデータの送信までに生じた、他の予約済ノードによって成功した送信のほか、アイドルスロット及び送信の衝突をも計数して、前記送信順に基づく、自身のデータの送信タイミングを決定する
通信制御方法
とすると良い。
【００３７】
本発明の通信制御方法では、予約済ノードは、送信順に基づくデータの送信タイミングを、他の予約済ノードによって成功した送信のほか、アイドルスロット及び送信の衝突をも計数して決定する。
このため、例えば、他の予約済ノードが、送信すべきデータが無くなった場合において、自身の送信順となったときに、何らの動作を起こすこともなく放置しておいても良い。放置によって、１つのアイドルスロットが生じると、他の予約済みノードは、このアイドルスロットをカウントして、送信順を適切に判断できる。つまり、このようにアイドルスロットをカウントするようしておけば、送信すべきデータが無くなった予約済ノードは、他の予約済ノードへの影響を与えることなく、その送信を休止することができる。
また、アイドルスロットを計数するので、アイドルスロットを検出すると、直ちに次の送信順の予約済ノードが送信を行うため、送信を休止した予約済ノードの存在によって、発生する無用な時間を、ごく短く抑えることができる。
また、他のノードの送信同士が衝突した場合も計数する。この場合、他の予約済ノードの送信が行われたが、何等かの理由で、他のノードの送信と衝突した可能性が高く、他の予約済ノードの送信が行われた可能性が高いという点から言えば、送信順との関係で、計数しておくのが適当だからである。
【００３８】
さらに、上述のいずれか１項に記載の通信制御方法であって、前記予約済ノードは、前記予約期間の開始から、自身のデータの送信までに生じた、他の予約済ノードによって成功した送信の数を、次回の予約期間における前記送信順とする通信制御方法とすると良い。
【００３９】
本発明の通信制御方法では、予約済ノードは、予約期間の開始から、自身のデータの送信までに生じた、他の予約済ノードによって成功した送信の数を、次回の予約期間における送信順とする。これにより、各予約済ノードが、次回の予約期間における送信順を、自律的にかつ容易に得ることができる。また、予約期間において、何等かの理由で送信が衝突した予約済ノード、及び、データの送信をしなかった（送信を休止した）予約済ノードを、その送信順から除き、即ち、予約済ノードから排除して、送信に成功した予約済ノードのみを残して、次回も送信に成功すると見込まれるノードに予約済ノードを絞り込み、次回の予約期間に送信を行わせることができる。
なお、送信が衝突した予約済ノードについては、以降、非予約ノードとして、競争期間において送信を試みるようにするとよい。
【００４０】
さらに、上述のいずれか１項に記載の通信制御方法であって、前記送信を待つ１または複数のノードが、データの送信を行う競争モードであって、上記ノードが、複数あるときには、上記ノードによるデータの送信同士が、衝突する場合のあることを許容して、各々の上記ノードがデータの送信を試みる競争モードによる通信を行う場合を有する通信制御方法とすると良い。
【００４１】
本発明の通信制御方法では、ハイブリッドモードによって通信を行う場合のほかに、ハイブリッドモードにおける予約期間に相当する部分を持たない競争モードによって通信を行う場合を有している。従って、ネットワークの負荷の大きさ等に応じて、適宜、２つのモードを使い分けるようにすることができる。
【００４２】
なお、競争モードによる通信は、ネットワークが低負荷の場合に効率がよいので、ネットワークが低負荷の場合には競争モードにより通信を行い、ネットワークの負荷が高くなった場合に、ハイブリッドモードによる通信に移行するのが好ましい。
【００４３】
さらに、上述のいずれか１項に記載の通信制御方法であって、各々の前記ノードが前記競争モードによる通信を行っている場合において、上記ノードのうち、いずれかのノードにおけるデータの送信のスループットが低下したとき、前記ハイブリッドモードに移行する通信制御方法とすると良い。
【００４４】
本発明の通信制御方法では、各のノードが競争モードによる通信を行っている場合において、これらノードのうち、１つのノードにおいて、データの送信のスループットが低下したとき、競争モードからハイブリッドモードに移行する。
ノードにおけるデータの送信のスループットが低下する場合としては、他のノードによる通信が多数行われているために、データの送信までの待ち時間が長くなり、多量の送信データが滞留した状態や、当該ノードからのデータの送信を行っても、他のノードのデータ送信と衝突して、適切にデータ送信が行えない（送信が成功しない）場合が頻発する状態が考えられる。このような状態は、いずれも、ネットワーク全体にその負荷が増加している場合に生じると考えられる。
これに対し本発明の通信制御方法では、ハイブリッドモードに移行することで、予約済ノードが確実にデータ送信を行いうる予約期間を設けることができるから、ネットワーク全体におけるデータ送信のスループットを維持することができる。
【００４５】
なお、スループット低下の判断手法としては、当該ノードにおいて、送信待ち行列に並ぶ送信データ数、他のノードのデータ送信との間で起きた衝突（送信不成功）が連続して生じた場合におけるその連続回数などが挙げられる。
【００４６】
即ち、上述の通信制御方法であって、前記いずれかのノードにおいて、送信待ち行列に並ぶ送信データ数が第１しきい値を越えた場合、及び、他のノードのデータ送信との間で起きた衝突が連続して生じた場合におけるその連続回数が第２しきい値を越えた場合、の少なくともいずれかが生じたときに、前記スループットが低下したと判断する通信制御方法とするのが好ましい。
このように、送信待ち行列になら送信データの数や衝突回数が増えた場合は、ネットワークの負荷が高くなっていると考えられるからである。
【００４７】
さらに、上述の通信制御方法であって、前記競争モードから前記ハイブリッドモードへの移行を、前記ノードのうちいずれかが、自身が前記スーパーフレームを画定する信号を送出する統括ノードとなり、他のノードが、上記統括ノードの画定したスーパーフレームに従って、動作することによって行う通信制御方法とすると良い。
【００４８】
本発明の通信制御方法では、ハイブリッドモードへの移行を、いずれかのノードが統括ノードとなって、スーパーフレームを画定する信号を送出すること、及び、他のノードが、統括ノードの送出した信号に基づき、統括ノードが画定したスーパーフレームに従って、動作することによって行う。
このように、各ノードが、自律的に統括ノードあるいはそれに従うノードとして振る舞うので、特に制御局を設定しなくとも、適切にハイブリッドモードに移行できる。
【００４９】
なお、統括ノードには、ハイブリッドモードに移行するのが好ましいことを検知したノードがなるのが好ましい。いち早く、分散型通信ネットをワークハイブリッドモードに移行することができるからである。
具体的には、分散型通信ネットワークの負荷が増加したことを検知したノードが、特に、これをいち早く検知したノードがなるのが好ましい。さらに具体的には、データの送信のスループットが低下したことを検知したノードがなるのが好ましい。さらには、送信待ち行列に並ぶ送信データ数が第１しきい値を越える、及び、他のノードのデータ送信との間で起きた衝突が連続して生じた場合におけるその連続回数が第２しきい値を越える、の少なくともいずれかが生じたノードがなるのが好ましい。
また、スーパーフレームの画定する信号、及び統括ノードについては、前述した。
【００５０】
他の解決手段は、互いにデータの送受信を行う複数のノードを含む、分散型通信ネットワークに用いる通信プロトコルであって、上記分散型通信ネットワークに加入して、データの送信を待つ１又は複数の上記ノードのうち、各々自律的に送信順を算出した予約済ノードが、上記送信順に従ってデータの送信を行う予約期間と、上記ノードのうち、上記送信順を算出していない非予約ノードがデータの送信を行う競争期間であって、上記非予約ノードが複数あるときには、上記非予約ノードによるデータの送信同士が、衝突する場合のあることを許容して、各々の上記非予約ノードがデータの送信を試みる競争期間と、を含むスーパーフレームを繰り返し形成するハイブリッドモードによる通信を行う場合を有する通信プロトコルである。
【００５１】
本発明の通信プロトコルによれば、スーパーフレームを繰り返し形成するハイブリッドモードによる通信を行う場合が含まれ、このハイブリッドモードによる通信においては、スーパーフレーム中に、予約期間と競争期間とを含んでいる。
このうち、予約期間には、各々自律的に送信順を算出した予約済ノードが、その送信順に従って送信を行う。従って、予約済ノードについては、予約期間においてデータ送信の機会が確保されるので、確実にデータ送信を行うことができる。しかも、予約済ノードは各々自律的に送信順を算出しているので、通信ネットワークを維持するのに、各予約済ノードに送信順などの指示を与える制御局などを通信ネットワーク中に配置する必要が無く、また、制御局との制御信号の送受信も必要が無い。
一方、競争期間には、非予約ノードがデータの送信を行う。この競争期間では、非予約ノードが複数あるとき、非予約ノードによるデータの送信同士が、衝突する場合のあることを許容している。従って、各々の非予約ノードがデータの送信を試みても、そのデータ送信が成功（相手ノードに正しく送信できた場合を指し、例えば、相手ノードからＡＣＫが返送された場合が挙げられる）するとは限らない。しかし、非予約ノードによるデータの送信が成功する場合もあり得る。
【００５２】
かくして、この通信プロトコルによれば、スーパーフレームのうち、競争期間においては、非予約ノードについて、データ送信を試みさせるので、送信に成功した分だけデータ送信を行うことができる。しかも、予約期間においては、予約済ノードについて確実にデータ送信を行わせることができる。
このため、分散型通信ネットワークでありながら、高負荷の場合でも、通信効率の極端な低下或いは通信不能を生じることなく、全体として、相対的に効率よくデータ通信を行わせることができる。
【００５３】
さらに他の解決手段は、データの送信を制御するデータ送信制御部を有するノードであって、互いにデータの送受信を行う複数のノードを含む、分散型通信ネットワークであって、上記分散型通信ネットワークに加入して、データの送信を待つ１又は複数の上記ノードのうち、各々自律的に送信順を算出した予約済ノードが、上記送信順に従ってデータの送信を行う予約期間と、上記ノードのうち、上記送信順を算出していない非予約ノードがデータの送信を行う競争期間であって、上記非予約ノードが複数あるときには、上記非予約ノードによるデータの送信同士が、衝突する場合のあることを許容して、各々の上記非予約ノードがデータの送信を試みる競争期間と、を含むスーパーフレームを繰り返し形成するハイブリッドモードによる通信を行う場合を有する分散型通信ネットワークにおいて、上記データ送信制御部の制御により、上記予約済ノード及び上記非予約ノードのいずれとして機能するように構成してなるノードである。
【００５４】
本発明のノードは、そのデータ送信制御部の制御により、予約済ノード及び上記非予約ノードのいずれとしても機能するように構成してなる。このため、上述の分散型通信ネットワークにおいて、適切にデータ送信を行いうるノードとなる。
なお、ネットワークに含まれるノードについては前述した。
【００５５】
さらに、上述のノードであって、前記データ送信制御部の制御により、前記送信を待つ１または複数のノードが、データの送信を行う競争モードであって、上記ノードが、複数あるときには、上記ノードによるデータの送信同士が、衝突する場合のあることを許容して、各々の上記ノードがデータの送信を試みる競争モードによる通信を行うノードとしても機能させうるように構成してなるノードとすると良い。
【００５６】
本発明のノードは、競争モードによる通信を行うノードとしても機能させうるように構成されてなる。従って、競争モードも含むネットワークにおいて、適切にデータの送信を行いうるノードとなる。
【００５７】
さらに他の解決手段は、互いにデータの送受信を行う複数のノードを含む、分散型通信ネットワークに用いる通信制御を、各々の上記ノードのコンピュータシステムおいて実行するように、コンピュータ可読形式で記述されたコンピュータプラグラムであって、上記分散型通信ネットワークに加入して、データの送信を待つ１又は複数の上記ノードのうち、各々自律的に送信順を算出した予約済ノードが、上記送信順に従ってデータの送信を行う予約期間と、上記ノードのうち、上記送信順を算出していない非予約ノードがデータの送信を行う競争期間であって、上記非予約ノードが複数あるときには、上記非予約ノードによるデータの送信同士が、衝突する場合のあることを許容して、各々の上記非予約ノードがデータの送信を試みる競争期間と、を含むスーパーフレームを繰り返し形成するハイブリッドモードによる通信を行う場合を設け、上記ノードを、上記予約済ノード及び上記非予約ノードのいずれとしても機能させうるように記述したコンピュータプラグラムである。
【００５８】
本発明のコンピュータプログラムによれば、各ノードのコンピュータシステムにおいて、このプログラムを実行することで、各ノードを、状況に応じて、予約済ノード及び非予約ノードとして機能させ、ハイブリッドモードによる通信を適切に行わせることができる。
【００５９】
さらに、上述のコンピュータプラグラムを、コンピュータが読み出し可能に格納した記憶媒体とすると良い。
【発明を実施するための最良の形態】
【００６０】
本発明の実施の形態を、図面を参照して説明する。図１に示す、制御局を有しない、分散型通信ネットワーク（以下単に、ネットワークともいう）ＮＥＴを構成する各ノード１，２，３，４，５，６は、いずれも、本発明に係る共通の通信プロトコルに従って動作をする通信端末である。これらのノード１〜６は、いずれも、空間をメディア（伝送路）ＭＤとする無線通信によって互いに通信を行う。
但し、一部またはすべてのノード１〜６について、通信線などを用いた有線により通信を行うこともできる。
【００６１】
これらのノード１〜６は、それぞれ図示しないが、ＣＰＵ、ＲＯＭ、ＲＡＭ等から構成される公知のコンピュータシステムを構成している。また、このコンピュータシステムによって、実行可能なコンピュータプラグラムをＲＯＭ，ＲＡＭ等の媒体に記憶している。記憶されているコンピュータプログラムには、本件発明にかかる通信処理に関するコンピュータプログラムも含まれている。従って、各ノードの電源が投入されると、記憶されていたコンピュータプログラムがＣＰＵにロードされ、各ノード１〜６は、それぞれ、図２に示す構成を有する通信端末となる。各ノード１〜６は、各種のデータを処理するデータ処理部１８、及び、他のノードとのデータの送受信を制御するデータ送受信制御部１１、及び、アンテナ１９を有する。このデータ送受信制御部１１は、データ処理部１１から送信要求のある送信データを保持する送信データ保持部１６、送信の制御を行う送信制御部１４、この送信制御部１４の指示により、送信データをアンテナ１９に向けて送り、アンテナから他のノードへ送信させる送信部１２を備える。また、アンテナ１９から受信したデータを受領する受信部１３、受信したデータを制御し、データ処理部１８へ受け渡す受信制御部１５を有している。
【００６２】
なお、各ノード１等では、図１２（ａ）の上部に示すように、送信データ（パケット）を送信した後(Packet Transmission)、ＳＩＦＳ分の時間を待った後に、相手方のノードから返送されるＡＣＫを受領できた場合に、このデータ送信が成功であった（成功通信ＳＴ：Successful Transmission）とする。従って、送信制御部１４と受信制御部１５との間でも、互いの情報交換を行って動作している。
【００６３】
さて、このようなノード１〜６の動作について、図３〜図１１のフローチャートを用いて説明する。最初に、送信要求の有るノード（例えばノード５）の電源が投入された場合、あるいは、ノード５の移動により、新たにネットワークＮＥＴ中に、このノード５が加入してきた場合を想定する。
【００６４】
なお、本実施形態においては、ネットワークＮＥＴ（各ノード１〜６）において、競争モードとハイブリッドモードの２つのモードによる通信制御が行われる。
このうち、競争モードは、詳細は後述するが、送信を待つノード１等が、データ送信を行うモードであるが、送信を待つノードが複数あるときには、各ノード１等が行ったデータの送信同士が衝突する（従って、送信が成功しない）場合のあることを許容して、各々のノード１等がデータの送信を試みるモードである。なお、競争モードにおいては、次述するハイブリッドモードにおける、スーパーフレームは存在しない。
【００６５】
一方、ハイブリッドモードは、本実施形態においては、例えば、図１２（ａ）〜（ｃ）に示すように、スーパーフレームＳＦで画定された時間内に、予約期間ＳＰとこれに続く競争期間ＣＰの２つの期間を有する。
このうち予約期間ＳＰは、各々自律的に送信順を算出した予約済ノード（例えば、図１２（ａ）においては、ノード１，２，３，４）が、送信順（例えば、図１２（ａ）においては、ノード１，４，２，３の送信順）に従ってデータの送信を行う期間である。
なお、本実施形態においては、各予約済ノードは、送信順に従って、その間隔を詰めて（送信同士の間にアイドルスロットＩＳを空けないで）送信するように制御する。
これに対して、競争期間は、非予約ノード（例えば、図１２（ａ）においては、ノード５，６）が、競争モードの場合と同様に、非予約ノードが複数あるときには、非予約ノードによるデータの送信同士が衝突する場合のあることを許容して、各々の非予約ノードがデータの送信を試みる期間である。
【００６６】
或るノードがネットワークＮＥＴに新たに加入した段階では、このノードにとって、現時点で、ネットワークＮＥＴが、競争モードとハイブリッドモードのいずれによって、通信制御されているのか不明である。
【００６７】
そこで、この新加入のノードは、先ず、図３のステップＳ１において、メディアＭＤがアイドル、即ち、他のノードによる通信がなされていないかどうかを確認する。ここで、Ｙｅｓ、即ち、メディアＭＤがアイドルである場合には、ステップＳ６に移動して、データ送信を行う。
一方、ステップＳ１で、Ｎｏ，即ち、メディアがビジーである場合には、データ送信を行わず、ステップＳ２に進む。他のノードが通信を行っているため、送信の衝突を避けるため、アイドルスロットＩＳがいくつか現れるまで、しばらく待つのである。
【００６８】
そこで、ステップＳ２では、バックオフカウンタＢＦを初期値に設定する。具体的には、適当な範囲（例えば、１〜３２）をもつ乱数を発生させ、発生させた乱数値（例えば１７）をバックオフカウンタＢＦの初期値として設定する。
さらに、ステップＳ３に進み、メディアがアイドルであるか否かを判断する。アイドルスロットＩＳを検知した場合（Ｙｅｓ）には、ステップＳ４に進む、一方、メディアＭＤがビジーである場合には、再びステップＳ３に戻る。即ち、アイドルスロットＩＳが検出されるまで、ステップＳ３を繰り返す。
ステップＳ４では、ステップＳ４を通る毎に、従って、アイドルスロットＩＳを検出する毎に、バックオフカウンタＢＦの値を１ずつデクリメントする。
【００６９】
続いて、ステップＳ５では、バックオフカウンタＢＦが０となったか、あるいはメディアＭＤがビジーであるかを判断する。ここで、いずれでもない場合（Ｎｏ）には、ステップＳ３に戻る。
一方、バックオフカウンタＢＦ＝０の場合は、ステップＳ６に進み、データを送信する。
他方、メディアＭＤがビジーである場合には、ステップＳ１１で、メディアＭＤがアイドルとなるまで待って、ステップＳ１２に進み、ネットワークＮＥＴがハイブリッドモードであるか否かを判断する。具体的には、ステップＳ１からこのステップＳ１２に至るまでに、ハイブリッドモードに特徴的な信号、即ち、ヘッドビーコンＨＢやエンドビーコンＥＢ（図１２参照）を検知したか否かを判断する。
【００７０】
このステップＳ１２で、Ｎｏ、つまり未だハイブリッドモードであることを検知していない場合には、ステップＳ３に戻る。
一方、Ｙｅｓの場合には、ステップＳ６１（図８参照）に進み、以降、このノード（例えばノード５）の動作を、ハイブリッドモードに切り替える。
【００７１】
一方、ステップＳ６で、データを送信すると、ステップＳ７において、送信が成功したか否かを判断する。具体的には、送信に対応した相手ノードからのＡＣＫを受信したか否かを判断する（図１２（ａ）参照）。ここでＹｅｓ、即ち、送信が成功した場合には、次の送信過程に進む（ステップＳ８）。具体的には、後述する衝回数突カウンタＣＣをクリアし（ステップＳ９）、さらに後述するヘッドフラグがセットされているか否かを判断（ステップＳ１０）する。ヘッドフラグがセットされていない（Ｎｏ）の場合には、ステップＳ１に戻る。これにより、ステップＳ１以降の処理に従って、再び次の送信データの送信を試みる。
【００７２】
ステップＳ１０において、Ｙｅｓ即ちヘッドフラグがセットされている場合には、ステップＳ１６（図４参照）に進む。これ以降、このノード自身（例えばノード５）を、ヘッドノードＨＮにすることを試みる。次述するように、ヘッドフラグは、ネットワークＮＥＴの負荷が増加した場合にセットされるので、これを検知したノードがヘッドノードＨＮとなることで、いち早く、ネットワークＮＥＴをハイブリッドモードに移行させることができるからである。
【００７３】
また、ステップＳ７においてＹｅｓ、即ち送信が成功しなかった場合には、他のノードの送信との衝突が起こったと考えられる。そこで、ステップＳ１３において、衝突回数カウンタＣＣを１つずつインクリメントする。なお、衝突回数カウンタＣＣの初期値は０であり、前述したように、送信が成功するとクリア（ＣＣ＝０）される（ステップＳ９参照）。さらに、このステップＳ１３では、バックオフカウンタＢＦを初期値に設定する。なお、この初期値として、所定範囲の乱数を用いることは、前述したステップＳ２の場合と同様である。初期値に、予め決められた数ではなく、乱数を用いることで、再び前回送信が衝突したノードと、再び送信が衝突する可能性を低減している。
【００７４】
さらに、ステップＳ１４に進み、衝突回数カウンタＣＣが第１しきい値ＴＨ１より大きい、または、送信データ保持部１６において、送信待ち行列に並ぶ送信データの数（送信待ち行列数）ＤＮが第２しきい値ＴＨ２より大きいか否かを判断する。ここで、Ｎｏの場合は、ステップＳ３に戻る（バックオフカウンタＢＦ及び衝突回数カウンタＣＣの値は維持される）。一方、ステップＳ１４でＹｅｓの場合には、ステップＳ１５において、ヘッドフラグをセットした上で、ステップＳ３に戻る。
衝突によってデータ送信が困難な場合（ＣＣが大きな値となる場合）、及び、送信待ちの送信データが増加している場合（ＤＮが大きな値となる場合）は、各ノードによる送信要求が増加し、ネットワークＮＥＴの負荷が増加しており、このために、衝突や送信の滞留が増加しているためであると考えられる。そこで、これを検知したノードが、ヘッドノードＨＮとなることをステップＳ１６（図４参照）以降で試みるべく、ステップＳ１５において、ヘッドフラグをセットする。
【００７５】
ついで、図４を参照して、ステップＳ１６以降について説明する。ステップＳ１６では、ステップＳ６におけるデータ送信の成功（相手ノードからのＡＣＫ受信）の後、ＳＩＦＳ分の時間を待って、このノードから、仮エンドビーコンを送出する。この仮エンドビーコンを送出することで、仮に、自身がヘッドノードＨＮとなることを宣言する。
その後、ステップＳ１７において、スロットカウンタＳＣの値をＣＰＩＳ（競争期間ＣＰ中に含むアイドルスロットＩＳの数）にセットする（ＳＣ＝ＣＰＩＳ）。このＣＰＩＳの値としては、１６，３２などの固定した値を用いても良いが、次述するように、ヘッドノードＨＮが、ネットワークの状況に応じて、ＣＰＩＳの値を指定することで、動的に変化させても良い。さらに、アイドルスロットＩＳを検出する毎に、スロットカウンタＳＣの値を１ずつデクリメントする（ＳＣ＝ＳＣ−１）。これをＳＣ＝０となるまで繰り返す。即ち、検出されたアイドルスロットＩＳがＣＰＩＳ個になるまで待つ。
【００７６】
ついで、ステップＳ１８において、仮エンドビーコン送出後、他のノードによるヘッドビーコンＨＢを検出したか否かを判断する。ここで、Ｙｅｓ即ち、他のノードによるヘッドビーコンＨＢを検出したならば、ステップＳ６０に進み、受信した他のノードによるヘッドビーコンＨＢに従って、ハイブリッドモードでの動作に切り替える。つまり、自身がヘッドノードＨＮになる試みを放棄し、自身は非予約ノードとなって、ステップＳ６１（図８参照）以降の動作を行う。自身よりも先に、他のノードがヘッドノードＨＮとなったことを宣言しているからである。
一方、ステップＳ１８において、Ｎｏ即ち、ヘッドビーコンＨＢを検出していない場合には、自身がヘッドノードＨＮとなる。これにより、ネットワークＮＥＴは、ハイブリッドモードに移行する。具体的には、ステップＳ２１（図５参照）に進み、ＮＮＳＰ（予約期間ＳＰに含む予約済ノード数），ＮＭＳＰ（仮予約期間に含む仮予約ノード数），ＣＰＩＳ（競争期間ＣＰに含むアイドルスロットＩＳの数）の値を含むヘッドビーコンＨＢを作成して送出する。他のノードに先駆けて、ヘッドノードＨＮとなることを宣言したことになるからである。
【００７７】
そこで、図５を参照して、ヘッドノードＨＮの動作について説明する。ステップＳ２１で、ヘッドビーコンＨＢを送出した後、１スロット分に相当する衝突チェック時間ＣＣＳ（図１２参照）だけ、メディアＭＤがクリアであるか否かを調査する。即ち、他のノードが通信をしていないか検知する。ほぼ同時に、２つ以上のノードが、ヘッドノードＨＮとなることを宣言する危険性を考慮し、他のノードの動静を検知するためである。ここで、Ｎｏ即ち、ヘッドビーコンＨＢ送出の直後に、他のノードが何等かの信号（例えば、ヘッドビーコン）を出していることが判った場合には、ステップＳ２５に進み、０または１の乱数ＲＮＤを発生させる。ついで、ステップＳ２６において、乱数ＲＮＤが０であるか（ＲＮＤ＝０？）を判断し、乱数ＲＮＤ＝０である場合（Ｙｅｓ）には、直ちにステップＳ２１に戻り、再びヘッドビーコンＨＢを送出する。
【００７８】
一方、ステップＳ２６において、Ｎｏ，つまりＲＮＤ＝１である場合には、１スロット分待つ（ステップＳ２７）。その後、ステップＳ２８で、他のノードによるヘッドビーコンＨＢを検出を確認する。ここで、Ｙｅｓ、つまり、他のノードによるヘッドビーコンＨＢを確認できた場合には、自身がヘッドノードＨＮになる試みを放棄し、自身は非予約ノードとなって、ステップＳ６１（図８参照）以降の動作を行う。自身よりも先に、他のノードがヘッドノードＨＮとなったことを再度宣言しているからである。このようにして、２つ以上のノードが競合して、ヘッドノードＨＮとなることを宣言している場合でも、乱数ＲＮＤにより、ヘッドビーコンを再送出のタイミングを自律的にずらすことで、通常、数回程度のヘッドビーコンＨＢ同士の衝突によって、２つのノードのいずれがヘッドノードＨＮとなるかを、自律的に決定することができる。
【００７９】
ステップＳ２８で、他のノードによるヘッドビーコンＨＢを確認できない場合には、ステップＳ２１に戻って、再びヘッドビーコンＨＢを送出する。ヘッドビーコンＨＢを再送出した後は、再びステップＳ２２において、１スロットに相当する衝突チェック時間ＣＣＳだけ、メディアＭＤがクリアであるか否かを調査する。
【００８０】
メディアＭＤがクリアである場合には、ステップＳ２３に進む。これにより、自身が、ネットワークにおける唯一のヘッドノードＨＮとなったことになる。このステップＳ２３では、このヘッドノードＨＮに未送信のデータがあるか否かを確認する。ここでＮｏ，つまり、送信データが尽きた場合には、ステップＳ５２に進み、送信を停止する。つまり、ヘッドノードＨＮは、ヘッドビーコンＨＢを送出する役割（ステップＳ２１）を最後に、ヘッドノードとしての立場、予約済ノードとしての立場を放棄する。
なお、この場合には、他の予約済ノードＳＮ、具体的には、第２番目の送信順を有する予約済ノードがヘッドノードＨＮの立場を、自律的に引き継ぐのであるが、この点については後述する。
このように、本実施形態では、ヘッドノードＨＮに、送信データが無くなった（送信要求が無くなった）場合でも、他のノードに対して何の通告その他の手続を行うことなく、自身が単に送信を止めるだけで、送信要求のあるノードのグループから脱退することができる。このため、脱退時の手続についても、極めて簡単に行うことができる。
【００８１】
一方、ステップＳ２３で、Ｙｅｓ、つまり未送信データが有る場合には、ステップＳ２４において、予約期間ＳＰの第１番目に、自身の送信データを送信する。
【００８２】
本実施形態においては、図１２に示すように、ヘッドノードＨＮが送出するヘッドビーコンＨＢは、予約期間ＳＰ及び競合期間ＣＰからなるスーパーフレームＳＦを画定する。具体的には、スーパーフレームＳＦの始期を画定する信号となる。さらに、このヘッドビーコンＨＢは、予約期間ＳＰの始期ＳＰ１を画定する信号としても機能している。またヘッドノードＨＮは、予約済ノードＳＮの１つでもある。
また、本実施形態においては、ヘッドノードＨＮは、予約期間ＳＰにおいて、常に第１番目にデータの送信をおこなうようにしている。予約期間ＳＰの始期ＳＰ１を画定するヘッドビーコンＨＢの送出から近接した時期にデータの送信を行えば、他のノード、例えば新たに加入するノードからの送信との衝突する可能性を低くでき、確実に自身のデータ送信を行えるからである。そのうえ、スーパーフレームＳＦ及び予約期間ＳＰの始期ＳＰ１を画定するヘッドビーコンＨＢを送出するヘッドノードＨＮの立場を、安定して継続することができるため、ネットワークＮＥＴ上で、ハイブリッドモードを安定に維持できるからである。
【００８３】
また、ヘッドノード（統括ノード）ＨＮが、スーパーフレームＳＦの始期ＳＰ１を画定するヘッドビーコンＨＢを送出するので、このネットワークＮＥＴ中に、特に制御局を設定しなくとも、このヘッドノードＨＮによって、容易かつ自律的にスーパーフレームＳＦを繰り返し形成することができる。
また、ネットワークＮＥＴに加入している他のノードは、ヘッドノードＨＮの画定したスーパーフレームＳＦにおいて、後述するように、自身が予約済ノードＳＮであるか、非予約ノードＮＮであるかに応じて、所定の動作をすればよいこととなるので、自律的にハイブリッドモードにおける動作を行うことができる。
【００８４】
しかも、ヘッドノードＨＮの送出するヘッドビーコンＨＢは、予約期間ＳＰの始期ＳＰ１を画定する信号でもある。従って、他のノード（他の予約済ノードＳＮ及び非予約ノードＮＮ）は、スーパーフレームＳＦのうち、予約期間ＳＰの開始を、このヘッドビーコンＨＢによって感知できる。このため、各々の予約済ノードＳＮは、送信順に従って自律的に送信を行うことができる。また、非予約ノードＮＮは、予約期間ＳＰの開始以降、送信の試みを停止することができるから、予約済ノードＳＮと非予約ノードＮＮとで、送信の衝突が起こることも自律的に回避でき、予約済ノードＳＮによるデータ送信を確実に行わせることができる。
【００８５】
ついで、ステップＳ２９に進み、ＮＮＳＰが２以上であるかを判断する。ここで、Ｎｏ、即ち、ＮＮＳＰ＝１である場合には、予約期間ＳＰには、ヘッドノードＨＮ以外のノードはないのであるから、ステップＳ３６（図６参照）に進み、エンドビーコンＥＢの検出を判断する。但し、この場合には、ヘッドノードＨＮ以外に、エンドビーコンＥＢを送出するノードはないのであるから、Ｎｏと判断され、ステップＳ３７で、ヘッドノードＨＮがエンドビーコンＥＢを送出して、ステップＳ３８に進む。
【００８６】
一方、ステップＳ２９で、ＮＮＳＰ≧２と判断された場合（Ｙｅｓ）には、予約期間ＳＰ内で、ヘッドノードＨＮ以外の予約済ノードＳＮがデータ送信を行うはずである。そこで、ステップＳ３０において、予約済ノードカウンタＮＣをＮＮＳＰにセットする（ＮＣ＝ＮＮＳＰ）。さらに、ステップＳ３１で、他の予約済ノード（例えば、図１２（ａ）においては、ノード２，３，４）によるデータ送信の成功、衝突、またはアイドルスロットＩＳを検出するまで待つ。これらを検出した場合（Ｙｅｓ）には、ステップＳ３２において、予約済ノードカウンタＮＣを１ずつデクリメントする（ＮＣ＝ＮＣ−１）。さらにステップＳ３３では、検知したのが、成功通信（ＳＴ）即ちデータ送信の成功であるか否かを判断する。Ｎｏ、つまり、衝突かアイドルスロットＩＳである場合には、ステップＳ３４をスキップして、ステップＳ３５に進む。一方、成功通信である場合（Ｙｅｓ）には、ステップＳ３４において、成功通信ノード数ＣＮＮＳＰをカウントアップする（ＣＮＮＳＰ＝ＣＮＮＳＰ＋１）。なお、成功通信ノード数ＣＮＮＳＰは、初期値をＣＮＮＳＰ＝１としておく。
【００８７】
ステップＳ３５では、予約済ノードカウンタＮＣが１となったか否か（ＮＣ＝１）を判断する。ここで、Ｎｏ，つまりＮＣ＞１である場合には、ステップＳ３１に戻る。一方、ＮＣ＝１の場合（Ｙｅｓ）には、ステップＳ３６（図６参照）に進む。かくして、予約期間ＳＰにおいて、成功通信した予約済ノードＳＮの数をＣＮＮＳＰとして得ておくことができる。
【００８８】
ついで、ステップＳ３６では、エンドビーコンＥＢの検出を判断する。後述するように、本実施形態では、予約済ノードのうち、最も遅くデータ送信を行うノードが、エンドビーコンＥＢを送出することとしている（例えば、図１２（ａ）においては、ノード３）。従って、ヘッドノードＨＮは、他の予約済ノードＳＮがエンドビーコンＥＢを送出したか否かを判断する。そして、エンドビーコンＥＢを検出できなかった場合（Ｎｏ）には、エンドビーコンＥＢを送出するべき予約ノードに、何等かの障害が生じた可能性がある。そこで、ステップＳ３５において、ヘッドノードＨＮが、代わりにエンドビーコンＥＢを送出する。これにより、予約期間ＳＰが終了し、競争期間ＣＰが開始される。即ち、本実施形態においては、エンドビーコンＥＢは、予約期間ＳＰの終期ＳＰ２を画定する信号となると共に、競争期間ＣＰの始期を画定する信号にもなっている。
【００８９】
本実施形態では、競争期間ＣＰにおいて、非予約ノードに送信を試みさせ、成功通信ＳＴを行った非予約ノード（非予約成功ノード、例えば、図１２（ａ）おけるノード５，６）を、次回のスーパーフレームＳＦ（図１２（ｂ）参照）では、仮予約ノードＨＳＮとして扱い、他の非予約ノードに優先して、競争期間ＣＰの初期の仮予約期間ＨＳＰにおいて、この仮予約ノードＨＳＮにデータ送信を行わせる。
さらに、この仮予約期間ＨＳＰにおいて、仮予約ノードＨＳＮ（例えば、ノード５，６）が成功通信ＳＴを果たすと、さらに次回のスーパーフレームＳＦ（図１２（ｃ）参照）では、これを、予約期間ＳＰにおいて送信を行う予約済ノードの一員に加えるようにする。
【００９０】
そこで、ステップＳ３８では、まず、仮予約ノードカウンタＨＣをＮＭＳＰにセットする（ＨＣ＝ＮＭＳＰ）。なお、ＮＭＳＰの値を得る手法は後述する。
さらに、ステップＳ３９では、競争期間ＣＰの初期（仮予約期間ＨＳＰ）において、仮予約ノードＨＳＮ（例えば、図１２（ｂ）におけるノード５，６）の成功通信ＳＴ、衝突、またはアイドルスロットＩＳを検出するまで待つ。これらを検出した場合（Ｙｅｓ）には、ステップＳ４１において、仮予約ノードカウンタＨＣを１ずつデクリメントする（ＨＣ＝ＮＨ−１）。さらにステップＳ４２では、検知したのが、成功通信（ＳＴ）即ちデータ送信の成功であるか否かを判断する。Ｎｏ、つまり、衝突かアイドルスロットＩＳである場合には、ステップＳ４３をスキップして、ステップＳ４４に進む。一方、成功通信である場合（Ｙｅｓ）には、ステップＳ４３において、成功通信仮予約ノード数ＣＮＭＳＰをカウントアップする（ＣＮＭＳＰ＝ＣＮＭＳＰ＋１）。なお、成功通信仮予約ノード数ＣＮＭＳＰは、初期値をＣＮＭＳＰ＝０としておく。
【００９１】
ついで、ステップＳ４４では、仮予約ノードカウンタＨＣが０となったか否か（ＨＣ＝０）を判断する。ここで、Ｎｏ，つまりＨＣ≧１である場合には、ステップＳ３９に戻る。一方。ＨＣ＝０場合（Ｙｅｓ）には、ステップＳ４５に進む。かくして、仮予約期間ＨＳＰにおいて、成功通信した仮予約ノードＨＳＮの数をＣＮＭＳＰとして得ておくことができる。
【００９２】
さらに、ステップＳ４５では、次のヘッドビーコンＨＢで送信するＮＮＳＰの更新を行う。具体的には、ＮＮＳＰ＝ＣＮＮＳＰ＋ＣＮＭＳＰとする。即ち、新たなＮＮＳＰ（予約期間に新たに入るノード数）として、成功通信ノード数ＣＮＮＳＰと成功通信仮予約ノード数ＣＮＭＳＰの和を用いる。このことは、次回のスーパーフレームＳＦのうち予約期間ＳＰにおいて、予約済ノードＳＮとして送信を行いうるのは、前回のスーパーフレームＳＦのうち、予約期間において、成功通信ＳＴを果たした予約済ノード（例えば、図１２（ｂ）におけるノード１，２，３）、及び、前回の仮予約期間ＨＳＰにおいて、成功通信ＳＴを果たした仮予約ノード（例えば、図１２（ｂ）におけるノード５，６）だけであることを示している。
【００９３】
ついで、ヘッドノードＨＮのステップＳ４６以降の動作、具体的には、競争期間ＣＰのうち、仮予約ノードＨＳＮが送信を終えて仮予約期間ＨＳＰが終了した後の、ヘッドノードＨＮの動作を説明する。
ステップＳ４６で、スロットカウンタＳＣをＣＰＩＳにセットする（ＳＣ＝ＣＰＩＳ）。ついで、非予約ノードによる成功通信ＳＴ、またはアイドルスロットＩＳの検知をするまで待つ（Ｎｏの場合）。ここで、アイドルスロットＩＳの検知をした場合には、ステップＳ４８に進み、スロットカウンタＳＣを１ずつデクリメントする。一方、非予約ノードによる成功通信ＳＴを検知した場合には、ステップ４９に進み、ＮＭＳＰの値をカウントアップする（ＮＭＳＰ＝ＮＭＳＰ＋１）。なお、ＮＭＳＰの初期値は０としておく。いずれの場合でも、その後、ステップＳ５１でＳＣ＝０か否かを判断し、スロットカウンタＳＣが１以上の場合（Ｎｏ）には、ステップＳ４７に戻る。
一方、スロットカウンタＳＣが０となった場合（Ｙｅｓ）には、ステップＳ２１に戻る。つまり、ヘッドビーコンＨＢを送出する。
かくして、このヘッドノードＨＮに未送信データが尽きるまで（ステップＳ２３参照）、上述の動作を繰り返す。
【００９４】
ついで、図８〜図１１を用いて、ステップＳ６１以降、即ち、他のノードがヘッドノードとなった場合の、ノード（非予約ノードＮＮ）の動作について説明する。
前述したように、非予約ノードは、エンドビーコンでその始期が画定される競争期間ＣＰにおいて、他の非予約ノードと送信を争う。この競争期間ＣＰは、前述したように、ヘッドノードＨＮのスロットカウンタＳＣで検出するアイドルスロットＩＳの数が、ＣＰＩＳ個（例えば３２個）となると、ヘッドビーコンＨＢの送出によって打ち切られる、可変長の期間である。
また、前述したように、非予約ノードのうち、この競争期間ＣＰにおいて、成功通信ＳＴを果たした非予約成功ノードＮＳＮ（例えば、図１２（ａ）におけるノード５，６）は、次のスーパーフレームＳＦ（例えば、図１２（ｂ））で、仮予約ノードＨＮとして扱われる。さらに、ここでも成功通信ＳＴを果たせば、さらに次のスーパーフレーム（例えば、図１２（ｃ））では、予約済ノードＳＮとして、予約期間ＳＰにデータの送信を行うことができる立場を与えられる。それ以降は、送信データがあり、毎回、成功通信ＳＴを果たしていれば、予約済ノードＳＮとして、送信を継続することができる。
なお、予約済ノードＳＮ及び仮予約ノードＨＮについて、何等かの理由で、送信の衝突が生じた場合には、それ以降、非予約ノードの立場に戻る。
【００９５】
そこで、先ず、ステップＳ６１（図８参照）では、エンドビーコンＥＢの検出、つまり競争期間ＣＰの開始を待つ（Ｎｏ）．エンドビーコンＥＢを検出したら、ステップＳ６２において、スロットカウンタＳＣを、ヘッドビーコンＨＢが送信したＣＰＩＳ（ステップＳ２１参照）と、予め保持している許容値αとの和にセットする（ＳＣ＝ＣＰＩＳ＋α）。この許容値αは、例えば、３や５など、ＣＰＩＳよりも小さな値である。
【００９６】
さらに、ステップＳ６３では、アイドルスロットＩＳを検出する毎に、バックオフカウンタＢＦ及びスロットカウンタＳＣを、それぞれ１ずつデクリメントする。なお、バックオフカウンタＢＦの値は、ステップＳ２，Ｓ１３で設定され、ステップＳ４でデクリメントされたもの（図３参照）、あるいは後述するステップＳ６７で設定されたものを用いることになる。
【００９７】
さらに、ステップＳ６３では、バックオフカウンタＢＦが０となったか否かを判断する（ＢＦ＝０？）。ここで、Ｙｅｓ（ＢＦ＝０）の場合には、ステップＳ６５に進み、データ送信を行う。続いて、ステップＳ６６で、送信成功（ＡＣＫ受信）か否かを確認し、送信が成功であった、つまり成功通信ＳＴを果たしたとき（Ｙｅｓ）には、この非予約ノードＮＮは、非予約成功ノードＮＳＮ（図１２（ａ）におけるノード５，６に相当）となったことになる。そこで、ステップＳ７２以降の、仮予約ノードＨＮとしての動作を行う。
【００９８】
一方、ステップＳ６６で送信が成功しなかった場合、つまり、他の非予約ノードと送信の衝突が起こった場合には、ステップＳ６７で、再びバックオフカウンタＢＦを初期値に設定して、ステップＳ６１に戻り、次の競争期間を待つ。なお、バックオフカウンタＢＦの初期値として、乱数値を用いることは、ステップＳ２，Ｓ１３の場合と同様である。乱数を用いることで、衝突を生じた他の非予約ノードと、再送信のタイミングを自律的にずらして、衝突の可能性を低減させるためである。
【００９９】
一方、ステップＳ６４においてＮｏ（ＢＦ≧１）と判断された場合には、ステップＳ６８に進む。スロットカウンタＳＣが１以上（Ｎｏ）の場合には、さらに、ステップＳ７０において、ヘッドビーコンＨＢを検出したか否かを判断する。ヘッドビーコンＨＢを検出した場合には、ステップＳ６１に戻る。競争期間ＣＰが終了したため、次の競争期間ＣＰでの送信を試みるためである。なお、バックオフカウンタＢＦの値を維持した状態で戻る。
【０１００】
一方、ステップＳ７０において、Ｎｏ，つまり未だヘッドビーコンＨＢを検出していない場合には、ステップＳ６３に戻る。これにより、バックオフカウンタＢＦが０となるか、スロットカウンタＳＣが０となるか、ヘッドビーコンＨＢが検出されるかのいずれかまで、アイドルスロットＩＳの検出及び、バックオフカウンタＢＦ及びスロットカウンタＳＣのデクリメントが続けられる。
なお、ステップＳ６８において、スロットカウンタＳＣ＝０と判断された場合（Ｙｅｓ：競争期間ＣＰにおいて、（ＣＰＩＳ＋α）個のアイドルスロットＩＳを検出する間に、ヘッドビーコンＨＢを検出できなかった場合）には、競争モードでの通信に戻る（ステップＳ３）。ヘッドビーコンＨＮが予定の時期になっても検出できないことから、何等かの理由で、ハイブリッドモードの維持が困難になったと考えられるからである。
【０１０１】
ついで、この非予約ノードＮＮが成功通信ＳＴを果たした場合（ステップＳ７１以降）について説明する。
先ず、ステップＳ７１では、仮順序カウンタＯＤを初期値０に設定する（ＯＤ＝０）。ついで、ステップＳ７２において、他の非予約ノードＮＮが、通信に成功したか否かを調べ、成功通信を検知するたびに、ステップＳ７３において、仮順序カウンタＯＤをカウントアップする（ＯＤ＝ＯＤ＋１）。これを、ヘッドビーコンＨＢが検出されるまで、つまり、この競争期間ＣＰが終了するまで繰り返す。これにより、自身の成功通信ＳＴの後に、成功通信ＳＴを果たした非予約ノードＮＮ（非予約成功ノード）が幾つあるかを、仮順序ＯＤの値として得ることができる。
【０１０２】
そこで、ステップＳ７５において、この仮順序カウンタＯＤの値を、仮順序値ＯＤＪとしてセットする。その後、ステップＳ７６で、エンドビーコンＥＢの検出、つまり予約期間ＳＰの終了を待つ。
【０１０３】
ついで、ステップＳ７７（図９参照）で、エンドビーコンＥＢに含まれる最新のＮＮＳＰの値（予約期間ＳＰ中に成功通信ＳＴを果たした予約済ノード数）を記録する。
さらに、ステップＳ７８において、バックオフカウンタＢＦを仮順序値ＯＤＪにセットする（ＢＦ＝ＯＤＪ）。ついで、ステップＳ７９で、ＢＦ＝０かどうかを調べ、Ｎｏ（ＢＦ≧１）ならば、ステップＳ８０で他の仮予約ノードの成功通信、衝突、及びアイドルスロットＩＳを検出するまで待つ。ここで、これらを検出した場合には、ステップＳ８１で、バックオフカウンタＢＦを１ずつカウントダウンし（ＢＦ＝ＢＦ−１）し、ステップＳ８２に進む。ここでは、検出したものが成功通信ＳＴであったかを調べ、成功通信ＳＴの場合（Ｙｅｓ）のときは、ステップ８３で、仮成功カウンタＨＤをカウントアップして、ステップＳ７９に戻る。なお、仮成功カウンタの初期値は、ＨＤ＝０としておく。一方、成功通信ＳＴでない（衝突あるいはアイドルスロットＩＳを検出した場合。Ｎｏ）には、ステップＳ８３をスキップして、ステップＳ７９に戻る。これを、ＢＦ＝０となるまで繰り返す。
【０１０４】
ステップＳ７９で、ＢＦ＝０となった場合（Ｙｅｓ）には、ステップＳ８４に進み、データ送信を行う。これにより、各々の仮予約ノードＨＮは、仮予約期間ＨＳＰにおいて、自律的に得た仮順序値ＯＤＪに従って、順に送信を行うことができる。
【０１０５】
さらに、ステップＳ８５において、送信が成功したか否かを確認し、送信成功（Ｙｅｓ）であれば、ステップＳ８６に進み、順序値ＯＤＳをセットする。具体的には、ＯＤＳ＝ＮＮＳＰ＋ＨＤとする。即ち、予約期間ＳＰ中に成功通信ＳＴを果たした予約済ノード数ＮＮＳＰと、仮予約期間ＨＳＰにおいて、自身より先に成功通信を果たした仮予約ノードＨＮの数ＨＤとの和を、順序値ＯＤＳとしする。かくして、この仮予約ノードＨＮについて、次回の予約期間ＳＰにおける送信順を示す順序値ＯＤＳを自律的に得ることができた。それ以降は、ステップＳ８７に示すように、予約モードで、つまり予約期間ＳＰにおいて、予約済ノードＳＮとして通信を行う。
【０１０６】
一方、ステップＳ８５において、送信が成功しなかった場合（送信の衝突が起こった場合）には、ステップＳ８８に示すように、予約部分に入る試み、即ち、予約済ノードＳＮとなって予約期間ＳＰに送信を行うようになる試みを放棄し、バックオフカウンタＢＦを乱数を用いて初期値に設定し直し、ステップＳ６１に戻る。つまり、仮予約ノードＨＮの立場から単なる非予約ノードＮＮの立場に移行する。
【０１０７】
ついで、ノードが、ヘッドノードＨＮでない予約済ノードＳＮである場合に動作（ステップＳ９０以降）について、図１０、図１１を参照して説明する。
先ずステップＳ９０においては、ヘッドビーコンＨＢの検出、つまり、スーパーフレームＳＦ及び予約期間ＳＰの開始を待つ。ヘッドビーコンＨＢを検出したら（Ｙｅｓ）、予約期間が始まるので、ステップＳ９１において、ヘッドビーコンＨＢに含まれるＮＮＳＰ，ＮＭＳＰ，ＣＰＩＳの値を取得する。さらに、ステップＳ９２において、このノードの送信順を示す順序値ＯＤＳが、ＮＮＳＰ＋ＮＭＳＰであるかを確認する。要するに、自身が、予約期間に送信する予約済ノードＳＮの最後のノードであるか否かを確認する。Ｙｅｓの場合には、ステップＳ９３において、テールフラグをセットして戻る。ステップＳ９４では、順序値ＯＤＳが２であるか否かを調べる。前述したように、送信順がヘッドノードＨＮに次ぐ、２番目であるノードは、ヘッドノードＨＮに送信すべきデータが無くなり、脱退した場合に、代わりにヘッドノードを引き継ぐ立場であるので、これを確認するためである。
【０１０８】
そこで、ＯＤＳ＝２でない場合（Ｎｏ）には、ステップＳ９７に進むが、Ｙｅｓ（ＯＤＳ＝２）の場合には、ステップＳ９５において、ヘッドノードＨＮの送信部分、つまり衝突チェック時間ＣＣＳの直後に、アイドルスロットＩＳを検知したか否かを調べる。このタイミングでアイドルスロットＩＳを検出した場合には、現在のヘッドノードＨＮは脱退する（ステップＳ５２）と考えられるため、自身が新たなヘッドノードＨＮとなるべく、ステップＳ９６でヘッドフラグをセットして、ステップＳ９７に進む。一方、アイドルスロットＩＳを検出しなかった場合（ヘッドノードが送信を行っている場合）には、そのまま、ステップＳ９７に進む。
【０１０９】
ステップＳ９７では、予約順カウンタＯＣを順序値ＯＤＳにセットする（ＯＣ＝ＯＤＳ）。また、順序値ＯＤＳをリセットする。さらに、他の予約済ノードＳＮの成功通信ＳＴ、衝突、及びアイドルスロットＩＳを検出するまで待ち、これらを検知した場合（Ｙｅｓ）には、ステップＳ９９で、予約順カウンタＯＣを１ずつカウントダウンする（ＯＣ＝ＯＣ−１）。
【０１１０】
さらに、ステップＳ１００で検出したのが成功通信ＳＴであったか否かを調べ、成功通信ＳＴであった（Ｙｅｓ）の場合には、ステップＳ１０１で、順序値ＯＤＳを１ずつカウントアップする。なお、順序値ＯＤＳの初期値を０（ＯＤＳ＝０）としておく。一方、検出したのが成功通信ＳＴでなかった場合には、ステップＳ９８に戻る。さらに、ステップＳ１０２（図１１参照）では、予約順カウンタＯＣが０となったか否かを調べ、ＯＣ≧１（Ｎｏ）の場合には、ステップＳ９８に戻る。
これらを繰り返して、予約順カウンタＯＣ＝０となった場合（ステップＳ１０２でＹｅｓ）には、ステップＳ１０３で、データ送信を行う。
【０１１１】
さらに、ステップＳ１０４では、このデータ送信が成功（成功送信ＳＴ）であったか否かを調べ、成功（Ｙｅｓ）の場合には、ステップＳ１０５でテイルフラグのセットの有無を確認する（ステップＳ９３参照）。この予約済ノードＳＮが、予約期間ＳＰにおいて送信を行う最後のノードであるときに、テイルフラグがセットされる（Ｙｅｓ）から、ステップＳ１０６において、エンドビーコンＥＢを送信する。
なお、このエンドビーコンＥＢには、ＮＮＳＰの値を含める（ステップＳ７７参照）。このＮＮＳＰの値としては、この最後の予約済ノードＳＮの順序値ＯＤＳを用いる（ＮＮＳＰ＝ＯＤＳ）。
【０１１２】
一方、テイルフラグがセットされていない場合（ステップＳ１０５でＮｏ）には、ステップＳ１０６をスキップして、ステップＳ１０８に進む。ステップＳ１０８では、ヘッドフラグがセットされているか否か（ステップＳ９６参照）を調べる。ヘッドフラグがセットされていない場合（Ｎｏ）には、ステップＳ１０９に進み、この予約済ノードＳＮ（具体的にはその送信データ保持部１６）に、未送信データが有るか否かを確認し、まだ有る場合には、ステップＳ１１０に進み、再びテイルフラグのセットの有無を確認する。テイルフラグがセットされていない場合、つまり、この予約済ノードＳＮが、予約期間ＳＰにおいて送信を行う最後のノードではない場合（Ｎｏ）には、ステップＳ９０に戻る。これにより、この予約済ノードＳＮは、ヘッドノードＨＮではない予約済ノードＳＮとして、繰り返し、スーパーフレームＳＦの予約期間ＳＰにおいて、順序値ＯＤＳに従った送信順で、データ送信を行うことができる。
【０１１３】
一方、この予約済ノードＳＮが、予約期間ＳＰにおいて送信を行う最後のノードである（Ｙｅｓ）ときには、ステップＳ１１１に進む。ここでは、スロットカウンタＳＣを、ＣＰＩＳ＋αにセットする。ついで、ステップＳ１１２では、ヘッドビーコンＨＢを検知の有無を調べ、これを検知した場合（Ｙｅｓ）には、ステップ９１に戻る。検知していない場合（Ｎｏ）には、ステップＳ１１３において、アイドルスロットＩＳの検知の有無を調べる。アイドルスロットＩＳを検知していない場合には、ステップＳ１１２に戻る。一方、アイドルスロットＩＳを検知した場合には、スロットカウンタＳＣを１ずつデクリメントし、ステップＳ１１４に進む。ここでは、ＳＣ＝０であるか否かを調べ、ＳＣ≧１の場合（Ｎｏ）には、ステップＳ１１２に戻る。ＳＣ＝０である場合には、ステップＳ１１５に進み、このノードがヘッドノードではないにも拘わらず、ヘッドビーコンＨＢを送出する。
【０１１４】
このようにするのは、以下の理由による。エンドビーコンＥＢの送出後には、競争期間ＣＰが開始され、アイドルスロットＩＳをＣＰＩＳ個カウントした時点で、ヘッドノードＨＮから、ヘッドビーコンＨＢが送出されるはずである。しかるに、アイドルスロットＩＳが（ＣＰＩＳ＋α）個カウントされても、ヘッドビーコンＨＢを検出できない場合には、ヘッドノードＨＮに、ヘッドビーコンＨＢを送出できない何等かの故障が生じた可能性がある。そこで、予約期間ＳＰにおいて送信を行う最後のノード（エンドノード）が、１回だけ、ヘッドビーコンＨＢを送出する（ステップＳ１１６）。これにより、ヘッドノードＨＮを除く、各予約済ノードＳＮが再びその送信順に従って送信を行うことができるようになる。
【０１１５】
一方、ステップＳ１０９においてＮｏ、つまりこの予約済ノードＳＮに送信すべきデータが無くなった場合には、ステップＳ１１０において、送信を停止し、このネットワークＮＥＴにおける、送信を待つノードの一員から脱退する。送信停止をすると、次の予約期間には、この送信停止をしたノードは送信を行うべきタイミングとなった場合に、送信が行われない状態となる。
【０１１６】
但し、ステップＳ９８で説明したように、各予約済ノードＳＮは、自身の送信順を計数するにあたり、他の予約済ノードの成功通信ＳＴのほか、送信の衝突、及びアイドルスロットＩＳをも計数している。このため、送信停止した予約済ノードがあるために、送信がされない期間がスロット１つ分となった時点で、他の予約済ノードＳＮは、アイドルスロットＩＳを１つ検出する。これによって、各々の予約済ノードＳＮは、送信停止した予約済ノードの存在を、何らの通知を受けなくても、自律的に知ることができる。また、ステップＳ１００，Ｓ１０１によって、自身より前に成功通信ＳＴを果たした予約済ノードＳＮの数をカウントして、次の予約期間における送信順（順序値ＯＤＳ）を知るので、次の予約期間には、予約済ノードＳＮから、このような送信を停止したノードは排除でき、予約期間ＳＰが不必要に延びる等の不具合も生じない。
【０１１７】
しかも、このアイドルスロットＩＳも送信順にカウントされるので、送信停止した予約済ノードに対し、この送信順を持つ予約済ノードが直ちに送信を始める。つまり、アイドルスロットＩＳ１つ分というデータ送信に比して短い期間だけ、送信が行われないだけで、それ以降は、再び予約済ノードが順に送信を行う。
【０１１８】
このように、本実施形態の手法によれば、送信すべきデータが尽きた場合に、予約済ノードが取るべき処理は極めて簡単（単に送信を停止するだけ）である。その一方、他の予約済ノードは、そのような脱退を自律的に判断し、予約期間ＳＰにおける送信順も適切に調整する。このため、このような脱退による影響を受けることなく、ハイブリッドモードによる通信、具体的には、予約期間における通信を、継続することができる。
【０１１９】
そのほか、ステップＳ１０８において、ヘッドフラグがセットされている（Ｙｅｓ）と判断された場合には、前述したように、このノードが新たなヘッドノードとなるので、次からは、ヘッドノードＨＮとして動作すべく、ステップＳ２１に進む。
ここでも、ヘッドノードＨＮにおいて、その送信データが尽きた場合（ステップＳ２３でＮｏ）に、ヘッドノードＨＮは、単にデータ送信を停止するだけでよい。これによって、他の予約済ノードＳＮは、ヘッドノードＨＮ（第１番目の予約済ノード）の脱退を知り、同様に、予約期間ＳＰにおける送信順も適切に調整する。また、第２番目の予約済ノードＳＮは、脱退したヘッドノードＨＮに代わって新たなヘッドノードＨＮとなる。従って、この場合も、ヘッドノードＨＮの脱退による影響を受けることなく、予約期間における通信、さらには、競争期間も含めたハイブリッドモードによる通信を、継続することができる。
【０１２０】
また、ステップＳ１０４においてＮｏ、つまり、予約済ノードＳＮからのデータ送信が不成功であった場合（何等かの理由で送信の衝突が生じた場合など）には、ステップＳ１０７に示すように、このノードを予約済ノードＳＮの立場から単なる非予約ノードＮＮの立場に移し、予約期間ＳＰにおける送信から排除し、以降、競争期間ＣＰでの送信を試行させる。
【０１２１】
また、予約済ノードが１つも無くなれば（唯一残ったヘッドノードが送信を停止すれば）、エンドビーコンＥＢ及びスーパーフレームＳＦを画定するヘッドビーコンＨＢが送出されなくなるので、ネットワークＮＥＴは、自然に、ハイブリッドモードから競争モードに戻る（移行する）。
【０１２２】
以上により、図１〜図１３を用いて、ネットワークＮＥＴ中において送信を待つ各ノードについての、競争モードにおける動作、ハイブリッドモードにおける動作（非予約ノード、仮予約ノード、予約済ノードとしての動作）について説明した。
【０１２３】
以上で説明したように、本実施形態にかかる通信制御方法では、各ノードが競争モードで動作するほか、ネットワークの負荷が高まると、各ノードが自律的にハイブリッドモードに移行する。このハイブリッドモードでは、スーパーフレームＳＦ中に、各非予約ノードＮＮが送信を試みる競争期間ＣＰのほかに、予約済ノードＳＮがデータ送信を行う予約期間ＳＰを設けるので、ネットワークＮＥＴの負荷が高くなっても、少なくとも予約済ノードＳＮについて、確実にデータ送信を行うことができる。
【０１２４】
なお、ネットワークＮＥＴ、従って、各ノードがハイブリッドモードで動作をしている場合には、競争期間ＣＰにおいて、成功通信ＳＴを果たした非予約ノードＮＮ（非予約成功ノードＮＳＮ）から、順次、仮予約ノードＨＮ、さらには予約済ノードＳＮとなり、予約期間での通信を行うこととなる。
このため、ネットワークＮＥＴに新たに加入するノードが無く、予約済ノードＳＮの送信に衝突等が生じない場合（成功通信を継続できる場合）には、図１３に示すように、ネットワークＮＥＴに属するｎヶのノードのいずれもが、予約済ノードＳＮとして予約期間ＳＰにおいて、その送信順に従って送信を行う形態（飽和状態）となる。
この場合には、予約期間ＳＰのほかに、ＣＰＩＳヶ分のアイドルスロットＩＳからなる競争期間ＣＰが付加されている点では異なるが、制御局によって、各ノードの通信が制御されている場合と、ほぼ同様の通信を行うことになる。この点からも、本実施形態の通信制御方法によれば、制御局を備えない分散型通信ネットワークＮＥＴでありながら、高負荷の場合にも、高い通信効率を保って通信を行いうる通信制御方法であることが判る。
【０１２５】
この点を確認するため、ネットワークＮＥＴ中に、８つのノードがあるとした場合において、各ノードに生じる要求通信量（Ｍｂｐｓ）と、ネットワークＮＥＴ全体におけるトータルスループット（Ｍｂｐｓ）との関係を、シミュレーションによって検討した。その結果を、図１４に示す。ＳＲＡＰと記載しているものが、本実施形態の通信制御方法によるものである。
なお、比較のため、ＩＥＥＥ８０２．１１に規定するＤＣＦ方式によって、制御を行った場合についても同様にシミュレーションを行った。また、データレートは１１Ｍｂｐｓとし、フレーム長を１０００バイトとした場合、及び５００バイトとした場合について調査した。
このフレーム長によって異なっているが、同じフレーム長について、本実施形態（ＳＲＡＰ）とＩＥＥＥ８０２．１１（ＤＣＦ方式）とを比較すると、本実施形態（ＳＲＡＰ）の方が、各ノードの要求通信量（Ｍｂｐｓ）が高くなっても、これに対応して、トータルスループットを上昇させることができ、例えば、フレーム長１０００バイトの場合、ＤＣＦ方式では、トータルスループットが、最大３．２Ｍｂｐｓ程度であるのに対し、本実施形態（ＳＲＡＰ）では、５Ｍｂｐｓ程度にまで高められることが判る。フレーム長５００バイトの場合についても、同様に、本実施形態の方がトータルスループットの最大値を高くできることが判る。
【０１２６】
同様に、ネットワークＮＥＴ中に、２４つのノードがあるとした場合についても検討した。その結果を、図１５に示す。
フレーム長によって異なっているが、同じフレーム長について、本実施形態（ＳＲＡＰ）とＩＥＥＥ８０２．１１（ＤＣＦ方式）とを比較すると、本実施形態（ＳＲＡＰ）の方が、各ノードの要求通信量（Ｍｂｐｓ）が高くなっても、これに対応して、トータルスループットを上昇させることができ、例えば、フレーム長１０００バイトの場合、ＤＣＦ方式では、トータルスループットが、最大２．８Ｍｂｐｓ程度であるのに対し、本実施形態（ＳＲＡＰ）では、４．１Ｍｂｐｓ程度にまで高められることが判る。フレーム長５００バイトの場合についても、同様に、本実施形態の方がトータルスループットの最大値を高くできることが判る。
【０１２７】
以上において、本発明を実施形態に即して説明したが、本発明は上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲で、適宜変更して適用できることはいうまでもない。
例えば、本実施形態では、各ノード１〜６が無線通信を行うものについて例示したが、一部あるいは全部が、有線通信を行っても良い。但し、各ノードが、電波、光等を用いた無線通信に適用するのが好ましい。
【図面の簡単な説明】
【０１２８】
【図１】ノード（通信端末）を含む分散型通信ネットワークの様子を示す説明図である。
【図２】各ノードの構成を示す説明図である。
【図３】分散型通信ネットワークに加入したノードの動作を示すフローチャートであり、このうち主に、競争モードにおけるノードの動作を示す。
【図４】分散型通信ネットワークに加入したノードの動作を示すフローチャートであり、このうち主に、或るノードがヘッドノードとなる過程におけるノードの動作を示す。
【図５】分散型通信ネットワークに加入したノードの動作を示すフローチャートであり、このうち主に、予約期間におけるヘッドノードの動作を示す。
【図６】分散型通信ネットワークに加入したノードの動作を示すフローチャートであり、このうち主に、競争期間におけるヘッドノードの動作を示す。
【図７】分散型通信ネットワークに加入したノードの動作を示すフローチャートであり、このうち主に、競争期間におけるヘッドノードの動作を示す。
【図８】分散型通信ネットワークに加入したノードの動作を示すフローチャートであり、このうち主に、ハイブリッドモードにおける、非予約ノードの動作を示す。
【図９】分散型通信ネットワークに加入したノードの動作を示すフローチャートであり、このうち主に、ハイブリッドモードにおける、非予約成功ノードの動作を示す。
【図１０】分散型通信ネットワークに加入したノードの動作を示すフローチャートであり、このうち主に、ハイブリッドモードにおける、予約済ノードの動作を示す。
【図１１】分散型通信ネットワークに加入したノードの動作を示すフローチャートであり、このうち主に、ハイブリッドモードにおける、予約済ノードの動作を示す。
【図１２】ハイブリッドモードにおける、予約済ノード及び非予約ノードの動作例を示す説明図である。
【図１３】ハイブリッドモードにおいて、分散型通信ネットワークに加入しているすべてのノードが、予約済ノードとなった状態（飽和状態）における動作例を示す説明図である。
【図１４】８ヶのノードが加入している、本件及びＩＥＥＥ８０２．１１に規定するＤＣＦ方式の分散型通信ネットワークを想定した場合の、各ノードの生じたトラフィックと、ネットワーク全体のスループットとの関係を評価したシミュレーション結果である。
【図１５】２４ヶのノードが加入している、本件及びＩＥＥＥ８０２．１１に規定するＤＣＦ方式の分散型通信ネットワークを想定した場合の、各ノードの生じたトラフィックと、ネットワーク全体のスループットとの関係を評価したシミュレーション結果である。
【符号の説明】
【０１２９】
ＮＥＴ  分散型通信ネットワーク
ＭＤ  メディア
１，２，３，４，５，６  ノード
１１  データ送受信制御部
１２  送信部
１３  受信部
１４  送信制御部
１５  受信制御部
１６  送信データ保持部
１８  データ処理部
１９  アンテナ
ＳＮ  予約済ノード
ＮＮ  非予約ノード
ＮＳＮ  非予約成功ノード
ＨＳＮ  仮予約ノード
ＳＰ  予約期間
ＳＰ１  予約期間の始期
ＳＰ２  予約期間の終期
ＣＰ  競争期間
ＨＢ  ヘッドビーコン
ＥＢ  エンドビーコン
ＣＣＳ  衝突チェックスロット
ＩＳ  アイドルスロット
ＢＦ  バックオフカウンタ
ＣＣ  衝突回数カウンタ
ＤＮ  送信待ち行列数（送信待ち行列に並ぶ送信データ数）
ＳＣ  スロットカウンタ
ＮＣ  予約済ノードカウンタ
ＮＮＳＰ  予約期間に含むノード数
ＮＭＳＰ  予約期間に新たに入るノード数
ＣＰＩＳ  競争期間ＣＰ中に含むアイドルスロットの数
ＣＮＮＳＰ  成功通信ノード数
ＣＮＭＳＰ  成功通信仮予約ノード数
ＲＮＤ  乱数
ＨＣ  仮予約ノードカウンタ
ＯＤ  仮順序カウンタ
ＯＤＪ  仮順序値
ＯＤＳ  順序値
ＯＣ  予約順カウンタ
ＨＤ  仮成功カウンタ
【図１】
2008219389.tif 000003
【図２】
2008219389.tif 000004
【図３】
2008219389.tif 000005
【図４】
2008219389.tif 000006
【図５】
2008219389.tif 000007
【図６】
2008219389.tif 000008
【図７】
2008219389.tif 000009
【図８】
2008219389.tif 000010
【図９】
2008219389.tif 000011
【図１０】
2008219389.tif 000012
【図１１】
2008219389.tif 000013
【図１２】
2008219389.tif 000014
【図１３】
2008219389.tif 000015
【図１４】
2008219389.tif 000016
【図１５】
2008219389.tif 000017