(57)【特許請求の範囲】
【請求項１】
複数のユーザが共有するネットワークにおいてデータ衝突を解決する方法であって、
第１のバックオフウィンドウをネットワークの複数のユーザの各々に送信するステップ、
予約履歴長にわたる衝突レートを予測するステップであって、該予約履歴長が４つの予約スロットからなる、ステップ、
ネットワークの少なくとも一つの動作特性に基づいて第２のバックオフウィンドウを計算するステップであって、該ネットワークの少なくとも一つの動作特性が該予約履歴長にわたる衝突レートからなる、ステップ、及び
衝突レートを約１−２／εに維持するよう、前記第２のバックオフウィンドウをネットワークの複数のユーザの各々に少なくとも４つの予約スロット毎に送信するステップ
からなる方法。
【請求項２】
請求項１記載の方法であって、さらに、
ネットワークの少なくとも一つの動作特性に基づいて後続のバックオフウィンドウを計算するステップ、及び
前記後続のバックオフウィンドウをネットワークの複数のユーザの各々に送信するステップ
からなる方法。
【請求項３】
請求項１記載の方法であって、さらに、
衝突率を実質的に一定に維持するよう後続のバックオフウィンドウをダイナミックに計算するステップ、及び
前記後続のバックオフウィンドウをネットワークの複数のユーザの各々に送信するステップ
からなる方法。
【請求項４】
請求項１記載の方法において、前記ネットワークの少なくとも一つの動作特性に基づいて第２のバックオフウィンドウを計算するステップが、さらに、ネットワークのユーザの数に基づいてバックオフウィンドウを計算するステップを含む方法。
【請求項５】
請求項４記載の方法において、前記ネットワークの少なくとも一つの動作特性に基づいて第２のバックオフウィンドウを計算するステップが、さらに、バックオフウィンドウのサイズがユーザの数に等しくなるようバックオフウィンドウを計算するステップを含む方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のユーザがデータネットワークへのアクセス（権）を得る際に競合する場合のデータ競合解決法に関し、特に、データの衝突を解決するシステムと方法に関する。
【０００２】
【従来の技術】
複数のユーザが共有通信チャネルに接続されるようなネットワークにおいて衝突が発生する場合に、ユーザがチャネルの使用権を確保することの出来る解決方法が通常存在する。複数のユーザが同一の帯域でデータを同時に送信しようと試みる時には衝突が発生し、データが失われることがある。複数のユーザ間の競合を解決し、データの衝突によるデータ喪失を回復するための様々な方法は、媒体アクセス制御（Medium Access Control,ＭＡＣ）プロトコールと称する。
【０００３】
ＭＡＣプロトコールの主なカテゴリーは、ランダムアクセス型である。これらのプロトコールは、パッケージ競合技術、例えばSlotted ＡＬＯＨＡあるいはＣＳＭＡ（Carrer Sense Multiple A ccess）を用いて、チャネルの競合を処理（回避）している。Slotted ＡＬＯＨＡは、チャネルをタイムスロットに分割し、各スロットの開始点でユーザが送信することを要求することにより、データの衝突回数を減らしている。Slotted ＡＬＯＨＡシステムで衝突が発生するのは、複数のユーザが同一のタイムスロットで同時に送信しようとする時である。一方ＣＳＭＡは、送信する際に、チャネルがビジー（使用中）か、利用可能（待機中）であるかを決定するために、ユーザに対しデータチャネルを監視させることにより衝突を減らしている。ＣＳＭＡで衝突が発生する時は、複数のユーザが同一チャネルが利用可能であることを同時に検出し、同時に送信をする時である。
【０００４】
ＭＡＣプロトコールの別のカテゴリーは、デマンド（需要割り当て）型である。これらのプロトコールは、チャネルを予約スロットに分割し、ユーザが送信するためにチャネルを予約することを必要とすることにより、ネットワークの競合を管理している。ランダムアクセス型のプロトコールとは異なり、デマンド（需要割り当て）システムの利用者は、予約が成功すると衝突無しにデータを送信できることを確認出来る。しかしデマンド型の衝突は、送信の予約フェーズにおいて複数のユーザが同一の帯域で予約を同時に行おうと試みた時に発生する。
データの衝突は、複数のユーザが共有通信チャネルに接続される時に現実に発生する問題であり、これはランダムアクセスプロトコールあるいはデマンド（需要割り当て）プロトコールのいずれを用いても発生するものである。衝突が発生した時にデータの喪失を回避するために、ＭＡＣプロトコールは、衝突解決アルゴリズムあるいはバックオフ（back-off）アルゴリズムを用いて、衝突から回復し,衝突したデータを再送信できる時を決定している。
【０００５】
３種類のバックオフアルゴリズムが現在公知である。第１のタイプのアルゴリズムは分割アルゴリズムであり、ツリー(tree)アルゴリズムとしても知られている。第２のタイプは、adaptive p-persistence アルゴズムであり、第３のタイプは、binary exponential back-off（ＢＥＢ）アルゴリズムである。各アルゴリズムは、以前に衝突したデータを再送信する時期を決定する際に、異なるアプローチを採用している。
【０００６】
３種類のバックオフアルゴリズム(back-offalgorithms)の内でどれが最適かを決定する単一の標準は存在しない。１つの標準の性能はスループットである。一般的にスループットとは、特定の時間内にあるユーザから別のユーザに転送できるデータ量である。競合解決アルゴリズムにおいてはスループットとは、全送信機会数に対する送信が成功した回数の比率で測定される。デマンド−割り当てプロトコールを採用する無線インターネットアクセスシステムにおいてはスループットは利用可能な予約スロットの全数に対する予約の成功数の比率である。
【０００７】
前述した３種類のバックオフアルゴリズムの内でツリーアルゴリズムが一般的に最も高いスループットを有する。その最大の安定したスループットは未知ではあるが、ツリーアルゴリズムは０．４８７８のスループットを達成している。しかしより高いスループットも経費をかけることにより達成可能である。ツリーアルゴリズムは、３種類のバックオフアルゴリズムのうちで実現する際には最も優れたものであるが、ツリーアルゴリズムを実行することの出来るネットワークの数が限られている理由は、このアルゴリズムはユーザが各予約スロットに対し３種類の状態（成功状態／衝突状態／アイドル状態）に対する十分な知識を有することが必要だからである。
【０００８】
第２の種類のバックオフアルゴリズムは、adaptive p-persistenceアルゴリズムである。adaptive p-persistenceアルゴリズムは、予約スロットからのフィードバックを用いて、帯域を取り合っている所謂稼働中ユーザの数を予測することにより決定される再送信確率ｐを計算して動作する。このアルゴリズムはアイドル状態のスロット数が増える時にｐを増加させ、衝突が検出されるとｐを減少させている。システムに無限の数のユーザが存在する場合には、adaptive p-persistenceアルゴリズムの最大達成可能なスループットは、最大１／ε＝０．３６７９である。このような状況においては、アイドル状態は、１／ε即ち０．３６７９の確率で発生し、衝突は１−２／ε〜０．２６４２で発生する。
【０００９】
ツリーアルゴリズムの場合と同様にadaptive p-persistenceアルゴリズムはデータチャネルに関するフィードバックを必要とするが、これは多くのネットワークが提供することが出来ないものである。多くのコンピュータネットワーク、および無線通信ネットワークを含む多くのシステムにおいては、個々のユーザは自分自身のパケットの送信が成功したか否かは分かっているが、ネットワーク内の他のチャネルの状態に関する情報は有していない。多くのマルチユーザシステム（Ethernet（登録商標）,ＣＡＴＶ無線ワイヤレスネットワークを含む）は必要とされるチャネルフィードバックを提供することが出来ないので、ＢＥＢアルゴリズムは衝突の解決に時々採用される。
【００１０】
ツリーアルゴリズム、adaptive p-persistenceアルゴリズムとは異なり、ＢＥＢアルゴリズムは、ユーザが各データチャネルに関するフィードバックを提供することを必要としない。ＢＥＢアルゴリズムの動作は次の通りである。パケットが送信待ち行列の先頭で到着すると。直ちに第１回の送信が行われる。送信中のユーザが衝突を検出すると、ｋ個のスロット後に再送信する。ここでｋは間隔（１，２ｉ）に渡って均一に分布するランダムな整数である。均一に分布する数が、引き出される間隔は、以下の説明ではバックオフウィンドウ(back-off window)と称する。ｉ（衝突の回数）が、１６を越えた場合には、パケットが失われドロップされる。パケットの送信が成功するかあるいはパケットがドロップされると、ｉはゼロにリセットされる。ＢＥＢアルゴリズムの基礎となるロジック（論理）は、あるパケットに対し送信が成功しなかった数が増えるとは、より多くのユーザが利用可能な帯域で競合し、更に大きなバックオフウィンドウを開かなければならないことを意味している。
【００１１】
ＢＥＢアルゴリズムの欠点の１つは、ＢＥＢアルゴリズムは幾つかの性能の問題があることである。第１の問題点としては、ユーザの数が非常に大きくなるにつれて、ネットワークが不安定になることである。即ちシステム上のユーザの数が無限に近づくにつれて、ＢＥＢシステムのスループットはゼロに近づく。さらにＢＥＢアルゴリズムでは競合するユーザ間で最後に来たものに最初にサービス（last-come-first-serve）することとなる。具体的に説明すると、送信待ち行列の先頭に新たに（最後に）到着したパケットを有するユーザは、待ち行列で既に待機しており衝突を経験したユーザよりも、予約スロットを確保する確率が高くなる点である。この事が起こるのは、待ち行列に到着したばかりのパケットを有するユーザは、既に衝突を何回も繰り返しているユーザよりもバックオフウィンドウが小さいからである。これは、一人あるいは数人の勝利したユーザが利用可能な帯域を支配できるために、捕獲効果(capture effect)と称する。
【００１２】
【発明が解決しようとする課題】
本発明の目的は上記した従来技術の欠点を解決するデータ衝突解決方法を提供することである。
【００１３】
【課題を解決するための手段】
本発明のデータ衝突解決システムと方法は、同一のバックオフウィンドウを複数のリモートユーザに送信し、衝突レートを維持するためにダイナミックにそれを調整してスループットを改善する。本発明の一実施例によれば衝突レートは予約スロットの衝突を検出することにより予測し、バックオフウィンドウのサイズは衝突レートを１−２／εに維持するよう調整される。
【００１４】
本発明の一実施例によれば本発明の方法は第１のバックオフウィンドウの全てのネットワークユーザに送信し、第２のバックオフウィンドウをネットワークの１つあるいは複数の動作特性に基づいて計算し、第２のバックオフウィンドウをユーザに送信する。
【００１５】
本発明の方法は、システムの衝突レートに基づいてバックオフウィンドウを計算する方法を開示し、他の実施例においてはバックオフウィンドウを衝突レートが１−２／εとなるよう調整する。さらに本発明の他の実施例によれば１つあるいは複数の予約スロットの状態を用いてシステムの衝突レートを予測している。
【００１６】
本発明の他の実施例によれば本発明の衝突解決方法は共通のバックオフウィンドウを全てのネットワークユーザに送信しこのバックオフウィンドウをダイナミックに調整してスループットを最大にしている。本発明の他の実施例では衝突レートに基づいてバックオフウィンドウをダイナミックに調整しさらに別の実施例によればバックオフウィンドウは衝突レートが１−２／εとなるよう調整する。
【００１７】
さらに別の実施例によればバックオフウィンドウのサイズはシステム上のユーザ数がバックオフウィンドウの数に等しくするよう調整される。
【００１８】
本発明の他の実施例によれば本発明の共有ネットワークデータ衝突解決システムは請求項１１記載した特徴を有する。即ち（Ａ）複数のリモートデバイスと
（Ｂ）前記複数のリモートデバイスと通信状態にあるアクセスポイントと
を有する共有ネットワークのデータ衝突解決システムにおいて前記（Ｂ）アクセスポイントは（Ｂ１）前記複数のリモートデバイスと通信する交換器と（Ｂ２）前記複数のリモートデバイスとの間で情報を送受信するトランシーバと（Ｂ３）前記複数のリモートデバイスに送信すべき最初のバックオフウィンドウを計算し、衝突レートを一定に維持するためにバックオフウィンドウをダイナミックに調整する衝突解決デバイスとを有することを特徴する共有ネットワークのデータ衝突解決システムである。
【００１９】
【発明の実施の形態】
Ｉ，アーキテクチャ
以下の説明において本発明はワイヤレス（無線インターネットアクセスシステム）を例に説明する。これは単なる例示であり、当業者には本発明をスロットおよびタイムシアリングプロトコール、例えばケーブルテレビジョン（ＣＡＴＶ）とパケット解決多重アクセスシステム（packet resolution multiplo access systems“ＰＲＭＡ”）と、汎用時分割多重システム等にも適用可能であることは明らかである。
【００２０】
図１において、無線インターネットアクセスシステム１０は、複数の無線デバイス１４と、この無線デバイス例えばパーソナルデジタルアシスタント携帯電話、あるいは無線モデムを具備した他のコンピューティングデバイスと通信可能なアクセスポイント１２とを有する。無線デバイス１４の例は、例えばパーソナルデジタルアシスタント携帯電話、あるいは無線モデムを具備した他のコンピューティングデバイスである。無線通信リンク１６は、無線デバイス１４とアクセスポイント１２とを好ましくは双方向リンクでもって結合する。アクセスポイント１２は、複数の無線デバイス１４との間で、トランシーバ１３を介して情報を送受信する。アクセスポイント１２は、ネットワーク１８に対する基地局として機能し、本発明による衝突解決デバイス３０を有し、ユーザ間でのデータの競合を制御する。衝突解決デバイス３０の動作については、セクションＩＩとＩＩＩで説明する。
【００２１】
さらにアクセスポイント１２は、例えば交換器１５と関連メモリ１９とマイクロプロセッサ１７とを有し、交換器１５を制御しネットワーク１８へのアクセスを与える。本発明の好ましい一実施例においては、アクセスポイント１２から無線デバイス１４への通信は下流方向で行われ、アクセスポイント１２により制御およびスケジューリングされる。無線デバイス１４からアクセスポイント１２への上流方向通信は、以下に説明するディマンド−割り当てプロトコールの予約スロットを介して行われる。
【００２２】
無線通信リンク１６を用いた各無線デバイス１４は、伝送待ち行列２０を有しデバイスが送信する必要のあるデータパケット２２を保持する。例えば図１から分かるように、無線デバイス１４は伝送待ち行列２０内に最新パケット２４を有する。最新パケット２４は無線通信リンク１６がアクセスポイント１２に対し利用可能となった時に最初に送信される。
【００２３】
パケットが伝送待ち行列２０の先頭に到着すると、無線デバイス１４は予約スロットを介して無線通信リンク１６上に帯域を予約する。無線デバイス１４が、予約スロット内で予約を試みると、無線デバイス１４間に競合が存在しパケットの衝突が起こる。無線デバイス１４が予約に成功するとアクセスポイント１２は衝突（即ちエラー）無しに最新パケット２４を受領し、アクセスポイント１２はデータ伝送用に帯域を割り当て、無線デバイス１４はこの割り当てられた帯域でその自分のデータを衝突の危険性無しに送信する。しかし、複数の無線デバイス１４が同一のタイムスロットで予約を同時に試みると、パケットが衝突し予約が成功しない。パケットが衝突すると複数の無線デバイス１４は、バックオフして別の予約を試みる前に、ランダムな時間間隔だけ待機しなければならない。
【００２４】
本発明の一実施例においては、衝突解決デバイス３０が各予約スロットの状態をチェックして衝突が発生しているか否かを決定し、 ＦＣＲアルゴリズム（Fixed Collision Rate：固定衝突レート) アルゴリズムに従って、バックオフウィンドウを再計算して１−２／ε（〜０．２６４２）である一定の衝突レートを維持し、これによりスループットを最大にしている。ＦＣＲアルゴリズムにおいては、衝突解決デバイス３０は、衝突レートを０．２５に一定に維持するが、これは１−２／ε（０．２６４２）に比較的近い値である。衝突解決デバイス３０は、ある予約スロットで衝突が発生しているか否かを決定することにより、システムの衝突レートを予測する。予約スロットの２５％以上が衝突する場合には、衝突解決デバイス３０はバックオフウィンドウのサイズを増加させ、予約スロットの２５％未満しか衝突していない時にはバックオフウィンドウを減少させる。衝突解決デバイス３０は、再計算されたバックオフウィンドウをアクセスポイント１２に送り、そしてアクセスポイント１２は新たなバックオフウィンドウをリモートデバイスである無線デバイス１４に送る。
【００２５】
本発明の他の実施例においては、ＦＣＲアルゴリズムは、メモリ３２内に記憶されたソフトウエアにより実行される。衝突解決デバイス３０は、中央演算処理装置３４を用いてメモリ３２と相互作用してこれらのアルゴリズムを実行する。アルゴリズムを実行するコンピュータのインストラクションは、ハードウエア、ソフトウエア、ファームウエアで実現可能である。コンピュータのインストラクションは、汎用コンピュータ、専用コンピュータ、あるいは他のプログラム可能なデータ処理装置に記憶されて、マシンを生成しそしてコンピュータあるいは他のプログラム可能なデータ処理装置上で実行されるインストラクションが本明細書に開示した機能を実行できる手段を形成するようにしている。
【００２６】
ＩＩ  動作
以下では、ＦＣＲアルゴリズムと本発明の一実施例による衝突回避の新たな方法を詳述し、さらに図１の無線インターネットアクセスシステムを例にＦＣＲアルゴリズムを説明する。ここに開示した方法は、様々なシステム上で実現可能であるが、その理由はツリーアルゴリズム及びp-persistenceアルゴリズムとは異なり、ＦＣＲバックオフアルゴリズムはネットワーク内の他の全てのチャネルの状態に対する完全な知識を個々のユーザが持つ必要が無いからである。その点に関し少なくとも本発明は、ツリーアルゴリズムあるいはp-persistenceアルゴリズムよりもＢＥＢアルゴリズムに近いものである。しかしＦＣＲアルゴリズムはＢＥＢアルゴリズムで発生するような多くの性能の問題例えば不安定性と捕獲効果を回避できる。
【００２７】
ＦＣＲアルゴリズムと別のバックオフアルゴリズムとの間の別の相異点は、ＦＣＲアルゴリズムはネットワーク内の各ユーザに対し同一のバックオフウィンドウを割り当てる点である。このことは各ユーザは、そのユーザのデータが以前に何回衝突したかに関わらず、ネットワークの資源を確保する同一のチャンスを有することを意味する。かくしてＦＣＲアルゴリズムは、さらに公平な方法でネットワーク資源を共有し同時にＢＥＢアルゴリズムで見られる捕獲効果を回避できる。
【００２８】
ＦＣＲアルゴリズムは共通のバックオフウィンドウを周期的に再計算し、新たなバックオフウィンドウをユーザに送信することにより高いスループットを維持する。ＦＣＲアルゴリズムはネットワークの動作特性に基づいてバックオフウィンドウを再計算する。例えば本発明の一実施例においては、ＦＣＲアルゴリズムは衝突レートを維持するようバックオフウィンドウを再計算する。他の実施例においては、バックオフウィンドウはシステム上のユーザの数に対応する。
【００２９】
本発明の発明者は、モンテカルロシュミレーション技術を用いて、無線インターネットネットワーク上で最大のスループットが発生する時は、ネットワーク内の稼働中のユーザの数がバックオフウィンドウのサイズに等しい場合であると決定できた。その結果、発明者等は、スループットが最大になる時は、ネットワークの衝突レートが１−２／εで一定であり、かつ衝突レートがネットワーク上の稼働中のユーザの数が増加しても一定に維持される時であることを見いだした。これらの発見は数学的にも確認できる。
【００３０】
本発明者等は、モンテカルロシュミレーションを実行し、異なるバックオフウィンドウ（Ｗで表す）を用いて稼働中のユーザ数Ｕに対するスループットを計算した。以下のシュミレーションの議論においては「ユーザ」と「稼働中ユーザ」とは区別している。「ユーザ」とは、システムによりアイドル（空白）状態の者、即ちチャネルの帯域を競合していない者と認識されたものである。一方「稼働中ユーザ」とは、直ちに伝送するために、待ち行列中で待機しているパケットを有し、チャネル帯域を得るために他の稼働中ユーザと競合している者を言う。稼働中ユーザのスループットのシュミレーションの結果を、ユーザ数Ｕ＝２，４，８，１６，３２，６４，１２８，２５６，５１２，１０２４に対し図２に示す。図２から導き出される第１の結論は、最大スループットはＵ＝Ｗ（稼働中ユーザの数がバックオフウィンドウの数に等しい時）の時に発生するということである。図２から導き出される第２の結論は、稼働中ユーザの数が無限に近づくにつれて最大達成可能なスループットは１／ε,３６７９に近づくということである。第３の結論は、稼働中ユーザの数が小さい場合にはより高いスループットが可能であるということである。例えば図２は２人の稼働中ユーザが帯域を競合している場合には、０．５という高いスループットが達成可能である。
【００３１】
図３のグラフは、モンテカルロシュミレーションの他の結果を示す。図３はユーザ数Ｕ＝２，４，８，１６，３２，６４，１２８，２５６，５１２，１０２４対するバックオフウィンドウサイズ（Ｗ）に対するスロット衝突レートを比較したグラフである。本明細書では、スロット衝突レートとは、スロットの全数に対する衝突スロットの割合を意味する。図３によれば、スロット衝突レートはバックオフウィンドウサイズが大きくなると小さくなる減少関数である。四角を用いてＷ＝Ｕのポイントにおけるスロット衝突レートの値を示すが、稼働中ユーザの数がバックオフウィンドウサイズに等しい時はスロット衝突は１−２／ε〜０，２６４２のほとんど一定のレートで発生する。重要なことは、このスロット衝突レートは、システム上の稼働中ユーザの数が増加してもほぼ一定である点である。
【００３２】
以下の説明は図２，３で述べたモンテカルロシュミレーションの結果の基礎となる数学的に導かれたプロセスを示す。ｎを稼働中ユーザの数とする。Pを稼働中ユーザが予約スロット番号１を取り上げる確率（probability）とする。ここで稼働中ユーザは。１とバックオフウィンドウＷの間の数をランダムに採るものとすると、P＝１／Ｗである。同様に全ての稼働中ユーザに同一のバックオフウィンドウが割り当てられて、競合スロット１を採る稼働中ユーザの数は、パラメータPとｎを有する二項分布を有する。
P０＝（1-ｐ）ｎ＝ユーザが予約スロット番号１を採らない確率。
P１＝np（1-ｐ）ｎ−１＝一人のユーザが予約スロット番号１を採る確率。
【００３３】
一人の稼働中ユーザが特定の予約スロットをランダムに選択する唯一の稼働中ユーザである時に、スループットが得られるために、スループットの確率は、P１＝np（1-ｐ）ｎ−１として表される。この式においてP１は、ｐの二項関数であり、ｐ＝1/nのときに、P１ｍａｘ＝（1-1/n）ｎ−１のピーク値を有する。するとスループットは、バックオフウィンドウが稼働中ユーザの数に等しい時に最大となり、ｎが無限に近づくとP１ｍａｘ＝（1-1/n）ｎ−１→1/εでなる。
【００３４】
上記の式の右側は、複数の稼働中ユーザが同一の予約スロットを選択して、予約を行った時に衝突が発生することを意味している。衝突が発生する確率（衝突発生確率Ｃ）は次式で表される。
Ｃ＝１−P０−P１＝１−(1-ｐ)ｎ−np(1-ｐ)ｎ−１＝１−(1-ｐ)ｎ−１（1＋(n-1)ｐ）
稼働中ユーザの数が無限に近づくと、衝突確率は１−２／ε〜，２６２４となる。更にまたスループットが最大の時（即ちＷ＝Ｕでｐ＝１／ｎの時）には、衝突の確率は全てのｎに対し１−２／ε近づき次式で表される。
Ｃｏｐｔ＝１−(１−1/n)ｎ−１(2-1/n)
ここでＣｏｐｔは、最大スループットの時点における衝突確率である。
【００３５】
上記のシュミレーション及び数学的解析により以下のことが分かる。最大スループットは、バックオフウィンドウサイズがシステム上の稼働中ユーザの数に等しい時発生し、最大スループットがこの状態に到達すると、パケットの衝突は１−２／εの一定の割合で発生する。
【００３６】
実際には稼働中ユーザの数またはスロット衝突レートのいずれかを追跡する機能を有するシステムは少ない。本発明者等はスマートなシステムを必要としない即ちシステム上のあらゆるチャネルに対する状態の完全な知識（空白状態、成功状態、衝突状態）を具備したシステムを必要としない新たなバックオフアルゴリズムを追求した。このため本発明者等はどのような中央制御システムでも利用可能なチャネル状態情報を用いてスロット衝突レートを正確に予測できるＦＣＲアルゴリズムを開発した。本発明のＦＣＲアルゴリズムは、バックオフウィンドウをダイナミックに再計算して、予測衝突レートを１−２／ε〜０，２６４２に維持した。これによりシステムは最大のスループットで動作することが可能となる。
【００３７】
本発明の方法の一実施例を以下に説明する。この実施例はワイヤレスインターネットアクセスシステムを例に説明するが、当業者はＦＣＲアルゴリズムはスロット化されたプロトコール及びタイムシアリングプロトコールを用いるあらゆる共有ネットワーク環境で用いることが出来ることを分かるであろう。
【００３８】
本発明の一実施例においては新たなバックオフウィンドウが少なくとも４個の予約スロット毎にブロードキャスト（放送）される。これらの４個の予約スロットは、本明細書においては予約履歴長さ（history length of reservation）と称する。予約履歴長さは、スロット衝突レートを予測するために、ＦＣＲアルゴリズムが使用する予約スロットの数である。４個の予約スロットは、０，２５が目標とするスロット衝突レートである１−２／ε〜０，２６４２に比較的近いために用いられる。しかし予約履歴長さは、スロット衝突レートをより正確に予測するためおよびより高い頻度でバックオフウィンドウを放送するために調整することが可能である。予約履歴長さのサイズが増加すると、衝突レートのより正確な予測が得られるが、より長い予約履歴長さはバックオフウィンドウの調整があまり頻繁には行われないことを意味する。しかしシュミレーションの結果では、別の予約履歴長さは性能に影響を及ぼすが、スループットの増加は最小であることを示している。
【００３９】
図４は、ＦＣＲアルゴリズム予約スロットと衝突カウンタを如何に用いてスロット衝突レートを予測し、全ての無線デバイス（稼働中ユーザ）１４にブロードキャストされるバックオフウィンドウをダイナミックに調整するかを示すフローチャート図である。図１，４において、バックオフウィンドウステップ１００で初期化される。１の初期バックオフウィンドウがしばしば用いられる。ステップ１０２において予約スロットカウンタと衝突カウンタはゼロに設定される。予約スロットカウンタは予約スロットの全数を追跡し、衝突カウンタは、衝突した予約スロットの数を追跡する。前述したように予約スロットは、チャネル上の帯域を予約するために、無線デバイス１４に用いられるデータチャネルの一部である。無線デバイス１４が予約に成功すると、アクセスポイント１２はデータ伝送用に帯域を割り当て、無線デバイス１４がこの帯域を用いてデータをアクセスポイント１２に送信する。複数の無線デバイス１４が同一の予約スロットを同時に予約しようとした時に予約スロットで衝突が起こる。
【００４０】
バックオフウィンドウが初期化され、予約カウンタと衝突カウンタがゼロに設定されると、アクセスポイント１２は、バックオフウィンドウを無線デバイス１４に放送し（ステップ１０４）、次の予約スロットを（得る為に）待機する（ステップ１０６）。予約スロットが到着すると予約スロットカウンタは１だけ増分され（ステップ１０８）、衝突が予約スロットで起こったか否かの決定が行われる。衝突を検出する複数の方法が当業者には公知であるが、これらの方法を包括的にレビューすることは本発明の説明には不要であるの省略する。要するにアクセスポイント１２が誤りデータあるいは誤り状態の情報を受領すると、ＦＣＲアルゴリズムはパケットの衝突が発生したと確認し衝突カウンタを１だけ増分させる（ステップ１１２）。
【００４１】
アクセスポイント１２は、スロット衝突レートを予測するのに十分な数の予約スロットを受領するまで新たなバックオフウィンドウを放送することはない。この実施例においては予約履歴長さは４であり、そのため予約カウンタが４に達しない場合には（ステップ１１６）、ＦＣＲアルゴリズムはステップ１０６に戻り次の予約スロットが到達するのを待つ。バックオフウィンドウサイズが予約履歴長さより短い時はこのルールに対する例外が発生する（ステップ１１４）。この実施例においてはバックオフウィンドウが４よりも小さくかつ予約カウンタがバックオフウィンドウよりも小さい場合には、ＦＣＲアルゴリズムはステップ１０６に戻り次の予約を待機する（ステップ１１８）。しかしバックオフウィンドウが４未満であり（ステップ１１４）かつ予約スロットカウンタがバックオフウィンドウに等しい時（ステップ１１８）の時には、ＦＣＲアルゴリズムは、スロット衝突レートを予測し新たなバックオフウィンドウを計算し（ステップ１２０）、アクセスポイント１２は新たなバックオフウィンドウを放送する。
【００４２】
図５は本発明の一実施例によりスロット衝突レートを予測しその予測値を用いて新たなバックオフウィンドウを計算するＦＣＲアルゴリズムの動作方法を示すフローチャート図である。前述したように、この予測値とバックオフウィンドウの計算（ステップ１３０）は、（ａ）予約カウンタが予約履歴長さに達した時または（ｂ）バックオフウィンドウが予約履歴長さ未満で予約カウンタがバックオフウィンドウに等しいかのいずれかの時に行われる。
【００４３】
ステップ１３２において、ＦＣＲアルゴリズムはバックオフウィンドウのサイズをチェックする。１のバックオフウィンドウは、アクセスポイント１２が最後のバックオフウィンドウが放送されてから、唯一の予約スロットを受領したことを意味する。ステップ１３４において、衝突カウンタをチェックして単一の予約スロット内で衝突が発生したかを見る。衝突が無い場合には、ＦＣＲアルゴリズムはステップ２００に戻り、アクセスポイント１２は同一のバックオフウィンドウ（サイズ１）を無線デバイス１４に放送する。一方衝突がある場合（衝突カウンタが２に等しい）、ＦＣＲアルゴリズムはバックオフウィンドウを２に増加し（ステップ１３６）、アクセスポイント１２はより大きなバックオフウィンドウを放送する（ステップ２００）。
【００４４】
バックオフウィンドウが１を超えるが４未満の場合には（ステップ１３８）、ＦＣＲアルゴリズムはステップ１４０に進む。ステップ１４０において、予約スロットカウンタは２または３のいずれかの値を有し、ＦＣＲアルゴリズムはこれらのスロット内で何回衝突をしたかを決定するために衝突カウンタをチェックする。衝突回数がゼロの場合にはバックオフウィンドウは１に設定され（ステップ１４２）放送される（ステップ２００）。衝突が一回発生した場合には（ステップ１４４）バックオフウィンドウは変更されず再放送される（ステップ２００）。最後に衝突が２回以上発生した場合はバックオフウィンドウは４に設定され（ステップ１４６）で放送される（ステップ２００）。
【００４５】
この実施例においては、バックオフウィンドウのサイズが４（予約履歴長さ）に以上の時にＦＣＲアルゴリズムはステップ１４８に進む。このことは最後のバックオフウィンドウが放送されて以来４個の予約スロットが発生したことを意味する。ステップ１４８において衝突カウンタをチェックして何回の衝突が発生したかを決定する。衝突が無い場合にはＦＣＲアルゴリズムはバックオフウィンドウのサイズを１だけ減分し（ステップ１５０）、より小さなバックオフウィンドウを放送する（ステップ２００）。一回の衝突が発生場合（ステップ１５２）には、バックオフウィンドウは変更せず再放送される（ステップ２００）。最後に複数回の衝突が発生した場合にはバックオフウィンドウは１だけ増分され（ステップ１５４）、放送される（ステップ２００）。
【００４６】
図６は複数の無線デバイス１４から見たＦＣＲアルゴリズムのフローチャート図である。ステップ３００において無線デバイス１４はバックオフウィンドウを受領する。ステップ３０２において予約スロットに対する待機（チャネルへのアクセス）を開始する。予約スロットが必要な場合には、無線デバイス１４はスロットが到着するまで待機を継続する（ステップ３０６）。予約スロットが到着するとＦＣＲアルゴリズムはステップ３０８に進む。ステップ３０８において無線デバイス１４は１とバックオフウィンドウのサイズとの間の数（ｋ）をランダムに選択する。例えばバックオフウィンドウのサイズが２の場合にはランダム選択は１又は２のいずれかである。この乱数は無線デバイス１４が別の予約を試みるために用いる次に来る予約スロットを特定する。ＦＣＲアルゴリズムはステップ３０８で選択された乱数が４（予約履歴長さ）を超えるかを決定する。乱数が４を超える場合には予約を試みないが、次のバックオフウィンドウを待機する（ステップ３１２）。新たなバックオフウィンドウが到着すると無線デバイス１４はステップ３００に戻る。
【００４７】
ステップ３１０で選択された乱数が４未満の時にはＦＣＲアルゴリズムはステップ３１６に進み、無線デバイス１４はランダムに選択された数に対応する予約スロットを待機する（ステップ３１８）。ランダムに選択された予約スロットが到着すると、無線デバイス１４は予約スロットで予約を行うよう試みる（ステップ３２０）。無線デバイス１４が特定の予約スロットで予約を試みた唯一のデバイスの場合には予約は成功する。しかし複数の無線デバイス１４が同一の予約スロットで予約を試みた場合には予約は失敗し衝突が発生する。予約が成功すると無線デバイス１４にはデータ伝送用のチャネル帯域が割り当てられる（ステップ３２４）。割り当てが行われると無線デバイス１４は待ち行列にあるデータを送信する。データ送信が完了するとＦＣＲアルゴリズムは次の衝突まで終了する（ステップ３２６）。ＦＣＲアルゴリズムがステップ３２２においてステップ３２０での予約の試みが失敗したと決定すると、無線デバイス１４はステップ３１２に進み次のバックオフウィンドウを待機する。
【００４８】
本発明による装置と方法は、従来公知の他のバックオフアルゴリズムよりも様々な点で優れたバックオフアルゴリズムを提供できる。ツリーアルゴリズム、p−persistenceアルゴリズムとは異なり、ＦＣＲアルゴリズムはネットワーク内のあらゆるチャネルに対し３つの可能性のある状態（空白状態、衝突状態、成功状態）の完全な知識をネットワークが有することを必要としない。その結果ＦＣＲアルゴリズムは比較的容易かつ経費をかけずに実行することができ、ツリーアルゴリズムおよびｐ−persistenceアルゴリズムにより必要とされるフィードバックを行わないネットワーク上で実行可能である。
【００４９】
ＦＣＲアルゴリズムは、ＢＥＢアルゴリズムよりも利点を有する。図７のグラフはＦＣＲアルゴリズムとＢＥＢとの平均パケット遅延を比較したものである。ここで到着時間とは、稼働中のユーザが予約を試みる回数（頻度）を表す。低到着時間は、稼働中ユーザが精力的にチャネル資源を求め、その結果わずかな数の予約スロットが予約の試行無くして通過することを意味する。これに対し、高到着時間は、稼働中ユーザは予約をそれほど頻繁には行わずに、比較的多数の予約スロットが予約試行の間に通過することを意味する。
【００５０】
図７はＦＣＲアルゴリズムが大多数のトラフィックパターンおよびシステム負荷の元で平均パケット遅延が小さいことを示す。唯一の例外は、システム上に少数の稼働中ユーザ（４＜Ｕ＜６４）が存在し、この少数の稼働中ユーザが帯域を精力的に確保しようとする場合に発生する（平均到着時間＝２スロット）。このような限定された条件の元ではＢＥＢアルゴリズムはＦＣＲアルゴリズムよりも低い平均パケット遅延を有するように見える。しかしこのような条件の元でＢＥＢアルゴリズムで発生した伝送の成功は捕獲効果（capture effect）に支配されている。このような条件の元で起こっていることは、少数のユーザが衝突回数が少なくして送信でき、多数のユーザはバックオフウィンドウサイズを増加させていることである。
【００５１】
図７はＦＣＲアルゴリズムとＢＥＢの平均パケット遅延の差が活性ユーザの増加と共に増加することを示している。かくしてＦＣＲアルゴリズムの性能は活性ユーザの数が増加するにつれて増加する。例えば１０２４人のユーザがいる場合にはＦＣＲアルゴリズムの最悪の平均パケット遅延は２７８０スロットであるが、ＢＥＢアルゴリズムでは最適な場合でも６１７７スロットである。
【００５２】
図８はＦＣＲアルゴリズムとＢＥＢアルゴリズムの間の遅延の標準偏差を示す。遅延の標準偏差はシステムが如何に稼働中ユーザ間でチャネル帯域を公平に共有しているかを決定するものである。遅延の標準偏差が小さいことは、送信が成功する前にほぼ同じ時間パケットを待機しその結果競合するユーザ間で帯域を公平に共有していることを示している。一方遅延の標準偏差が大きいことは、帯域が競合するユーザにより等しく共有されていないことを意味する。かくして捕獲効果が存在すると標準偏差が大きくなるが、その理由は一部のパケットは衝突の確率が小さい状態で送信され、一方別のパケットはバックオフウィンドウを増加させて伝送の成功確率が減るからである。
【００５３】
図７で議論したように、シュミレーションが示すところによれば、ＦＣＲアルゴリズムはほとんどのシステム条件の元ではＢＥＢアルゴリズムよりも平均パケット遅延は小さい。唯一の例外は帯域を得るために競合する稼働中ユーザが少数存在する場合である。図８はこのような特定の条件の元でＢＥＢアルゴリズムの平均パケット遅延が小さい理由を示している。帯域を求めて精力的に競合するユーザが少ない場合には、ＢＥＢアルゴリズムは非常に大きな遅延の標準偏差を有する。このことはこれらの限られた条件の元では平均パケット遅延が小さいことは捕獲効果の結果であることを意味する。同図は同一の条件の元でＦＣＲアルゴリズムはＢＥＢアルゴリズムよりも遙かに小さい標準偏差を有し、そのため捕獲効果を被らないことを示している。図８は更にＦＣＲアルゴリズムは稼働中ユーザの数が増加するにつれて標準偏差が減り続け、その結果ＦＣＲアルゴリズムは常に十分公平な方法でシステムの資源を共有することを示している。
【００５４】
図９はＦＣＲアルゴリズムとＢＥＢアルゴリズムのスループットを比較したものである。同図は捕獲効果によりＢＥＢアルゴリズムは、少数の稼働中ユーザが帯域を精力的に確保しようとする場合の限られた条件の元で遙かに高いスループットを有することを示している。他の全ての場合においてはＦＣＲアルゴリズムはＢＥＢアルゴリズムよりも高いスループットを有するか、あるいはその差は無視できる程度である。特記すべき点としてＦＣＲアルゴリズムはネットワーク上の活性稼働中ユーザの数にかかわらず１／ε〜０．３６７９のスループットを保持することがあげられる。
【００５５】
ＦＣＲアルゴリズムの詳細な説明をおえるにあたって当業者には上記の実施例に対し多くの変形例を本発明の原理に離れることなく実行できる。これらの変形例は特許請求の範囲に記載された発明の範囲に含まれる。さらにまた特許請求の範囲中で構成材料および動作およびこれらの手段あるいはステップとの均等物も本発明の範囲以内に入る。
【００５６】
特許請求の範囲の発明の要件の後に括弧で記載した番号がある場合は、本発明の一実施例の対応関係を示すものであって、本発明の範囲を限定するものと解釈すべきではない。
【図面の簡単な説明】
【図１】通信ネットワークのブロック図
【図２】稼働中ユーザの数が変動する場合におけるバックオフウィンドウサイズとスループットとの関係を表すグラフ。
【図３】ユーザの数が変動する場合バックオフウィンドウサイズと、スロット衝突レートとの関係を表すグラフ。
【図４】アクセスポイントが予約スロットと衝突を追跡可能な固定衝突レートアルゴリズムの方法を表すフローチャート図。
【図５】アクセスポイントがダイナミックにバックオフウィンドウを調節することの出来る固定衝突レートアルゴリズムの方法を表すフローチャート図
【図６】無線デバイスから見た固定衝突レートアルゴリズムのプロセスを表すフローチャート図。
【図７】固定衝突レートアルゴリズムとＢＥＢアルゴリズムの平均パケット遅延の比較グラフ。
【図８】固定衝突レートアルゴリズムとＢＥＢアルゴリズムの遅延の標準偏差の比較グラフ。
【図９】固定衝突レートアルゴリズムとＢＥＢアルゴリズムのスループットの比較グラフ。
【符号の説明】
１０  無線インターネットアクセスシステム
１２  アクセスポイント
１４  無線デバイス
１６  無線通信リンク
１８  ネットワーク
１３  トランシーバ
１５  交換器
１７  マイクロプロセッサ
１９  関連メモリ
２０  伝送待ち行列
２２  データパケット
２４  最新パケット
３０  衝突解決デバイス
３２  メモリ
３４  中央演算処理装置
１００  バックオフウィンドウを初期化する。
１０２  予約スロットカウンターと衝突カウンターをゼロに設定する。
１０４  バックオフウィンドウを放送する。
１０６  予約スロットを待機する。
１０７  予約スロットは到着したか？
１０８  予約スロットのカウンターを増分する。
１１０  衝突が検出されたか？
１１２  衝突カウンターを増分する
１１８  予約スロットカウンター＝バックオフウィンドウ？
１１４  バックオフウィンドウが＜４か？
１２０  新たなバックオフウィンドウを計算する図５
１１６  予約スロットカウンター＝４か？
１１２  新たなバックオフウィンドウを計算する図５
１３０  開始
１３２  バックオフウィンドウ＝１か？
１３４  衝突カウンター＝１か？
１３６  バックオフウィンドウを２に設定する
１３８  バックオフウィンドウが＜４？
１４０，１４４  衝突カウンター＝１か
１４６  バックオフウィンドウを４に設定する
１４２  バックオフウィンドウを１に設定する
２００  バックオフウィンドウを放送する
１４８  衝突カウンターが＜１？
１５２  衝突カウンターが＝１？
１５０  バックオフウィンドウを１だけ減分する
１５４  バックオフウィンドウを１だけ増分する
３００  バックオフウィンドウを受領する
３０２  予約スロットを待機する
３０６  予約スロットが到着したか？
３０８  １とバックオフウィンドウの間乱数ｋを取り出す
３１０  ｋ＞４？ｋが４以上か
３１２  次のバックオフウィンドウを待機する
３１４  次のバックオフウィンドウが到着したか？
３１６  ランダムに選択された予約スロットを待機する
３１８  選択された予約スロットが到着したか
３２０  予約を開始する
３２２  予約が成功したか
３２４  データを送信する
３２６  終了
【図１】
0004112269.tif 000002
【図２】
0004112269.tif 000003
【図３】
0004112269.tif 000004
【図４】
0004112269.tif 000005
【図５】
0004112269.tif 000006
【図６】
0004112269.tif 000007
【図７】
0004112269.tif 000008
【図８】
0004112269.tif 000009
【図９】
0004112269.tif 000010