(57)【特許請求の範囲】
【請求項１】
独立基本サービスセットネットワーク（ＩＢＳＳネットワーク）のデバイスによって、参加者デバイスから、前記ＩＢＳＳネットワークに登録する要求を受信する段階と、
前記ＩＢＳＳネットワークの前記デバイスによって、前記参加者デバイスに、（ｉ）前記参加者デバイスの単一のアドレス、および（ｉｉ）将来の参加者デバイスに割り当てるべき有限数のアドレス、を表す情報で応答する段階と
を備え、
前記参加者デバイスに応答する段階は、
複数のアドレスサブセットのうち、将来の参加者デバイスに対して前記デバイスによって割り当てるアドレスの出所として前記デバイスによって指定されたアドレスサブセットに含まれる前記単一のアドレスを、前記デバイスによって前記参加者デバイスに割り当てる段階と、
前記参加者デバイスに割り当てた前記単一のアドレスと、前記複数のアドレスサブセットのうち、将来の参加者デバイスに対して前記デバイスによって割り当てるアドレスの出所として前記デバイスによって指定されなかった一つ又は複数のアドレスサブセットを表す情報とを提供する段階と
を有し、
前記一つ又は複数のアドレスサブセットのそれぞれが、将来の参加者デバイスに割り当てるべき所定数のアドレスを含む方法。
【請求項２】
前記複数のアドレスサブセットに含まれるアドレスは、インターネットプロトコルバージョン４（ＩＰｖ４）アドレスである請求項１に記載の方法。
【請求項３】
前記一つ又は複数のアドレスサブセットのそれぞれにおいて、将来の参加者デバイスに割り当てるべき前記所定数のアドレスは、一つのＩＰｖ４アドレスに含まれるビットの数に等しい数のビットを含むビットマスクによって表され、前記ビットマスクに含まれるバイナリ値１は、前記所定数のＩＰｖ４アドレスの固定ビットを定義し、前記ビットマスクに含まれるバイナリ値０は、前記所定数のＩＰｖ４アドレスの範囲割り当ての一部であるビットを定義する請求項２に記載の方法。
【請求項４】
前記参加者デバイスに前記単一のアドレスを割り当てる段階は、
前記複数のアドレスサブセットのうち、将来の参加者デバイスに対して前記デバイスによって割り当てるアドレスの出所として前記デバイスによって指定された前記アドレスサブセットに、少なくとも一つの利用可能なアドレスがあることを前記デバイスによって判定する段階と、
指定された前記アドレスサブセットに少なくとも一つの利用可能なアドレスがあると判定したことに応じて、指定された前記アドレスサブセットから、前記デバイスによって、前記参加者デバイスに前記単一のアドレスを割り当てる段階と
を含み、
前記参加者デバイスに割り当てた前記アドレスと、一つ又は複数のアドレスサブセットを表す情報とを提供する段階は、
前記複数のアドレスサブセットには、指定された前記アドレスサブセットに加えて、将来の参加者デバイスに割り当てるアドレスの出所としての少なくとも一つのアドレスサブセットがあることを前記デバイスによって判定する段階と、
（ｉ）前記デバイスが前記参加者デバイスに割り当てた前記単一のアドレスと、（ｉｉ）追加的な前記少なくとも一つのアドレスサブセットと、を含む応答を、前記デバイスによって前記参加者デバイスに送信する段階と
を含む
請求項１に記載の方法。
【請求項５】
ハードウェアプロセッサと、
命令を格納するメモリと
を備えるデバイスであって、
前記命令は、前記ハードウェアプロセッサによって実行されると、前記デバイスに、
アドホックネットワークのメンバである一つ以上の移動体デバイスと通信する手順と、
前記アドホックネットワークのメンバでないデバイスから、前記アドホックネットワークに参加する要求を受信する手順と、
将来の要求元デバイスに対して前記デバイスによって割り当てるアドレスの出所として前記デバイスによって指定された、有限数のアドレスのサブセットに、少なくとも一つの未割り当てのアドレスがあるかを、前記要求に応答して判定する手順と、
指定された前記有限数のアドレスのサブセットに、少なくとも一つの未割り当てのアドレスがあると判定したことに応じて、指定された前記有限数のアドレスのサブセットから、未割り当ての単一のアドレスを要求元の前記デバイスに割り当てる手順と、
指定された前記有限数のアドレスのサブセットに加えて、将来の要求元デバイスに割り当てるアドレスの出所としての有限数のアドレスのサブセットが少なくとも一つあるかを判定する手順と、
追加的な有限数のアドレスのサブセットが少なくとも一つあると判定したことに応じて、前記デバイスが要求元の前記デバイスに割り当てた前記単一のアドレスと、前記少なくとも一つの追加的な有限数のアドレスのサブセットを表す情報と、を含む応答を要求元の前記デバイスに送信する手順と、
追加的な有限数のアドレスのサブセットがないと判定したことに応じて、前記デバイスが要求元の前記デバイスに割り当てた前記単一のアドレスを含む応答を要求元の前記デバイスに送信する手順と、
指定された前記有限数のアドレスのサブセットに未割り当てのアドレスがないと判定したことに応じて、前記要求を受け付けない手順と
を実行させる
デバイス。
【請求項６】
前記有限数のアドレスのサブセットに含まれるアドレスは、インターネットプロトコルバージョン４（ＩＰｖ４）アドレスである請求項５に記載のデバイス。
【請求項７】
前記有限数のアドレスのサブセットのそれぞれは、一つのＩＰｖ４アドレスに含まれるビットの数に等しい数のビットを含むビットマスクによって表され、
前記ビットマスクに含まれるバイナリ値１は、前記有限数のアドレスのサブセットのそれぞれに含まれる前記ＩＰｖ４アドレスの固定ビットを定義し、
前記ビットマスクに含まれるバイナリ値０は、前記有限数のアドレスのサブセットのそれぞれに含まれる前記ＩＰｖ４アドレスの範囲割り当ての一部であるビットを定義する
請求項６に記載のデバイス。
【請求項８】
要求元の前記デバイスに送信される前記応答は、前記デバイスのアドレスをさらに含む請求項５から７のいずれか１項に記載のデバイス。
【請求項９】
要求元の前記デバイスに送信される前記応答は、前記アドホックネットワークに対応付けられたサブネットマスクをさらに含む請求項５から８のいずれか１項に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、一般的に、ネットワークアドレスの割り当てに関する技術に関し、特に、移動体無線アドホックネットワークにおける階層的アドレス割り当てに関する。
【０００２】
［関連出願の相互参照］  本願は、２０１０年１０月２１日出願の米国仮出願第６１／４０５，５７４号および２０１０年１０月１５日出願の米国仮出願第６１／３９３，８１４号の優先権を主張し、両出願ともその全体を本明細書に参照として組み込む。
【背景技術】
【０００３】
２つ以上の移動体デバイスは、無線ネットワークの無線クライアントとして、互いに通信することができる。このような移動体デバイスの例として、ラップトップコンピュータ、タブレットコンピュータ、スマートホン、携帯情報端末（ＰＤＡ）、デジタルカメラ、児童監視装置等がある。無線ネットワークは、２つ以上の無線クライアントの通信が無線アクセスポイントを介してブリッジされる場合は、インフラストラクチャモードで動作しているとされる。無線ネットワークは、２つ以上の移動体デバイスが、無線アクセスポイントを使用せずに直接互いに通信する場合は、アドホックモードで動作しているとされる。アドホックモードは、一般的に、無線ピアツーピア（Ｐ２Ｐ）モードとも呼ばれる。アドホックモードの無線クライアントは、独立基本サービスセット（ＩＢＳＳ）を形成する。本明細書では、アドホックモードで動作し、移動体デバイスを含む無線ネットワークを、アドホックネットワーク、ＩＢＳＳネットワーク、もしくは無線Ｐ２Ｐネットワークと、交換可能に呼ぶ。
【０００４】
いくつかのＩＢＳＳネットワークでは、無線クライアントの一つ、たとえば、あるＩＢＳＳネットワークにおける第１の無線メンバとなった移動体デバイスが、当該ＩＢＳＳネットワークを識別するビーコンを周期的に送信して、新しいメンバを認証することができる。したがって、この無線クライアントは、割り当てるアドレスが重複しないように、新しいメンバにアドレスを割り当てる動的ホスト構成プロトコル（ＤＨＣＰ）サーバとして動作する。当該ＩＢＳＳネットワークに参加するには、移動体デバイスは、ＤＨＣＰサーバとして動作する無線クライアントを探して、当該ＩＢＳＳネットワークでのアドレスを取得する。
【０００５】
ゼロコンフィギュレーションネットワークとして知られる別のＩＢＳＳネットワークでは、移動体デバイスは、ネットワークに参加するべく、候補アドレス、たとえば、予約されたアドレス範囲に含まれるアドレスを選択し、アドレス解決プロトコル（ＡＲＰ）プローブを使用して候補アドレスが当該ネットワーク上で使用されていないことを確認する。ゼロコンフィグレーションネットワークで使用されるアドレッシング法は、リンクローカルアドレッシングと呼ばれ、理想的には当該ＩＢＳＳネットワークの全メンバに送信されるべきマルチキャスト送信が必要である。ゼロコンフィギュレーションネットワークに参加している移動体デバイスが、選択された候補アドレスがゼロコンフィギュレーションネットワーク内で既に使用されていると判断すると、当該移動体デバイスが新しい候補アドレスを選択する。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本願は、ネットワークアドレスを割り当てるための、たとえば、移動体無線アドホックネットワークにおいてアドレスを階層的に割り当てるためのシステムおよび技術を記載する。
【課題を解決するための手段】
【０００７】
本願の観点によると、方法は、アドホックネットワークのメンバでないデバイスによって、アドホックネットワークのメンバである所定のデバイスを経由して、アドホックネットワークへの参加を要求する段階を備える。本方法は、（ｉ）要求元のデバイスのアドレス、および（ｉｉ）将来の要求元デバイスに割り当てるべき有限数のアドレス、を表す情報を含む応答を所定のデバイスから受信する段階をさらに備える。本方法は、有限数のアドレスのうち、デバイスが将来の要求元デバイスに割り当てるアドレスの出所としての一部を指定する段階をさらに備える。
【０００８】
実施形態は、以下の特性のうち一つ以上を含むことができる。いくつかの実施形態では、受信した応答は、所定のデバイスが要求元のデバイスに割り当てたアドレスと、複数のアドレスサブセットに含まれるアドレスを表す情報とを含むことができる。複数のアドレスサブセットのそれぞれは、将来の要求元デバイスに割り当てるべき所定数のアドレスを含むことができる。さらに、有限数のアドレスのうち、デバイスが将来の要求元デバイスに割り当てるアドレスの出所として指定した一部は、複数のアドレスサブセットのうちの一つとすることができる。たとえば、所定のデバイスから受信したアドレスは、インターネットプロトコルバージョン４（または６）のＩＰｖ４（またはＩＰｖ６）アドレスであってよい。さらに、複数のアドレスサブセットのそれぞれにおいて、将来の要求元デバイスに割り当てるべき所定数のアドレスは、一つのＩＰｖ４アドレスに含まれるビットの数に等しい数のビットを含むビットマスクによって表すことができ、ビットマスクに含まれるバイナリ値１は、所定数のＩＰｖ４アドレスの固定ビットを定義し、ビットマスクに含まれるバイナリ値０は、所定数のＩＰｖ４アドレスの範囲割り当ての一部であるビットを定義する。
【０００９】
いくつかの実施形態では、本方法は、将来の要求元デバイスに割り当てるべき有限数のアドレスを表す情報に基づいて、要求元のデバイスにアドレスを自己割り当てする段階と、自己割り当てしたアドレスを所定のデバイスに通知する段階とを備えることができる。いくつかの場合、所定のデバイスから受信した応答は、所定のデバイスのアドレスを含むことができる。その他の場合、所定のデバイスから受信した応答は、アドホックネットワークに対応付けられたサブネットマスクをさらに含むことができる。いくつかの実施形態では、本方法は、アドホックネットワークへの参加を要求するべく経由するアドホックネットワークの所定のデバイスを、複数のデバイスのうちから、アドホックネットワークのメンバでないデバイスによって、ランダムに選択する段階を備えることができる。いくつかの実施形態では、本方法は、アドホックネットワークへの参加を要求するべく経由するアドホックネットワークの所定のデバイスを、複数のデバイスのうちから、アドホックネットワークのメンバでないデバイスによって、所定の基準に基づいて選択する段階を備えることができる。
【００１０】
本願の別の観点によると、方法は、独立基本サービスセット（ＩＢＳＳ）ネットワークのデバイスによって、参加者デバイスから、ＩＢＳＳネットワークに登録する要求を受信する段階を備える。本方法は、（ｉ）参加者デバイスのアドレス、および（ｉｉ）将来の参加者デバイスに割り当てるべき有限数のアドレス、を表す情報で、参加者に応答する段階をさらに備える。
【００１１】
実施形態は、以下の特性のうち一つ以上を含むことができる。いくつかの実施形態では、参加者に応答する段階は、所定のデバイスによって参加者にアドレスを割り当てる段階と、参加者に割り当てたアドレス、および複数のアドレスサブセットに含まれるアドレスを表す情報を提供する段階とを有することができる。複数のアドレスサブセットのそれぞれは、将来の参加者に割り当てるべき所定数のアドレスを含むことができる。たとえば、複数のアドレスサブセットに含まれるアドレスは、インターネットプロトコルバージョン４（または６）のＩＰｖ４（またはＩＰｖ６）アドレスとすることができる。複数のアドレスサブセットのそれぞれにおいて、将来の参加者デバイスに割り当てるべき所定数のアドレスは、一つのＩＰｖ４アドレスに含まれるビットの数に等しい数のビットを含むビットマスクによって表すことができる。たとえば、ビットマスクに含まれるバイナリ値１は、所定数のＩＰｖ４アドレスの固定ビットを定義することができ、ビットマスクに含まれるバイナリ値０は、所定数のＩＰｖ４アドレスの範囲割り当ての一部であるビットを定義することができる。
【００１２】
いくつかの実施形態では、参加者デバイスにアドレスを割り当てる段階は、複数のアドレスサブセットのうち、将来の参加者デバイスに対してデバイスによって割り当てるアドレスの出所としてデバイスによって指定された一つのアドレスサブセットに、少なくとも一つの利用可能なアドレスがあることを、デバイスによって判定する段階と、指定されたサブセット少なくとも一つの利用可能なアドレスがあると判定したことに応じて、指定されたサブセットから、デバイスによって、参加者デバイスにアドレスを割り当てる段階とを有することができる。さらに、参加者に割り当てたアドレス、および複数のアドレスサブセットに含まれるアドレスを表す情報を提供する段階は、複数のアドレスサブセットのうちに、指定されたサブセットに加えて、将来の参加者デバイスに割り当てるアドレスの出所としての少なくとも一つのアドレスサブセットがあることをデバイスによって判定する段階と、デバイスによって、参加者デバイスに、（ｉ）デバイスが参加者デバイスに割り当てたアドレス、および（ｉｉ）有限数のアドレスを含む追加的な少なくとも一つのアドレスサブセット、を含む応答を送信する段階とを有することができる。
【００１３】
いくつかの実施形態では、本方法は、参加者デバイスから、参加者デバイスが自己割り当てしたアドレスを含む通知を受信する段階を備えることができる。
【００１４】
本願の別の観点によると、デバイスは、ハードウェアプロセッサと、ハードウェアプロセッサによって実行されると、デバイスに、アドホックネットワークのメンバである一つ以上の移動体デバイスと通信する手順を含む動作を実行させる命令を格納するメモリとを備える。本動作は、アドホックネットワークのメンバでないデバイスから、アドホックネットワークに参加に参加する要求を受信する手順をさらに含む。本動作は、要求に応答して、将来の要求元デバイスに対して移動体デバイスが割り当てるアドレスの出所として移動体デバイスによって指定された有限数のアドレスを含むアドレスサブセットに、少なくとも一つの未割り当てのアドレスがあるかを判定する手順をさらに含む。本動作は、指定された有限数のアドレスを含むアドレスサブセットに、少なくとも一つの未割り当てのアドレスがあると判定したことに応じて、指定された有限数のアドレスを含むアドレスサブセットから、未割り当てのアドレスを要求元のデバイスに割り当てる手順をさらに含む。本動作は、指定された有限数のアドレスを含むアドレスサブセットに加えて、将来の要求元デバイスに割り当てるアドレスの出所としての、有限数のアドレスを含む少なくとも一つのアドレスサブセットがあるかを判定する手順をさらに含む。本動作は、有限数のアドレスを含む追加的な少なくとも一つのアドレスサブセットがあると判定したことに応答して、デバイスが要求元のデバイスに割り当てたアドレス、および有限数のアドレスを含む追加的な少なくとも一つのアドレスサブセットを表す情報を含む応答を要求元のデバイスに送信する手順をさらに含む。本動作は、有点数のアドレスを含む追加的なアドレスサブセットがないと判定したことに応じて、デバイスが要求元のデバイスに割り当てたアドレスを含む応答を要求元のデバイスに送信する手順をさらに含む。本動作は、指定された有限数のアドレスを含むアドレスサブセットに未割り当てのアドレスがないと判定したことに応じて、要求を受け付けない手順をさらに含む。
【００１５】
実施形態は、以下の特性のうち一つ以上を含むことができる。いくつかの実施形態では、有限数のアドレスを含むアドレスサブセットに含まれるアドレスは、インターネットプロトコルバージョン４（または６）のＩＰｖ４（またはＩＰｖ６）アドレスとすることができる。さらに、有限数のアドレスを含む複数のアドレスサブセットのそれぞれは、一つのＩＰｖ４アドレスに含まれるビットの数に等しい数のビットを含むビットマスクによって表すことができる。たとえば、ビットマスクに含まれるバイナリ値１は、有限数のアドレスを含む各アドレスサブセットに含まれるＩＰｖ４アドレスの固定ビットを定義することができ、ビットマスクに含まれるバイナリ値０は、有限数のアドレスを含む各アドレスサブセットに含まれるＩＰｖ４アドレスの範囲割り当ての一部であるビットを定義することができる。いくつかの実施形態では、要求元のデバイスに送信される応答は、移動体デバイスのアドレスをさらに含むことができる。いくつかの実施形態では、要求元のデバイスに送信される応答は、アドホックネットワークに対応付けられたサブネットマスクをさらに含むことができる。
【００１６】
記載するシステムおよび技術は、本明細書に開示する構造的手段およびその構造的な均等物等の、電子回路、コンピュータハードウェア、ファームウェア、ソフトウェア、またはそれらを組み合わせたもの等によって実施することができる。これは、一つ以上のデータ処理装置（たとえば、プログラマブルプロセッサ、中央演算処理装置等の信号処理装置）に、記載する動作を実行させるプログラムを具現化した少なくとも一つのコンピュータ可読媒体とすることができる。したがって、プログラムの実施形態は、開示する方法、システム、もしくは装置から実現することができ、装置の実施形態は、開示するシステム、コンピュータ可読媒体、もしくは方法から実現することができる。同様に、方法の実施形態は、開示するシステム、コンピュータ可読媒体、もしくは装置から実現することができ、システムの実施形態は、開示する方法、コンピュータ可読媒体、もしくは装置から実現することができる。たとえば、一つ以上の開示する実施形態を、移動体データ処理装置（たとえば、無線クライアント、携帯電話、スマートホン、ＰＤＡ、モバイルコンピュータ、デジタルカメラ等）、もしくはこれらを組み合わせたもの（これらに限定されない）等の、多様なシステムおよび装置で構成することができる。
【００１７】
本明細書に記載する主題の実施形態は、以下の潜在的な利点のうち一つ以上を実現するよう構成することができる。開示するシステムおよび技術を利用するＩＢＳＳネットワークのメンバは、ＩＢＳＳネットワークの現在および将来のアドレスのいずれとも異なるアドレスを参加者デバイスに提供する登録係として動作することができる。このようにすると、２人のネットワークメンバが同じアドレスを保有する等のＩＢＳＳネットワーク内におけるアドレッシングの重複を回避することができる。参加者デバイスをＩＢＳＳネットワークの新しいメンバとして登録することに加えて、登録係メンバは、開示する技術を利用することで、ＩＢＳＳネットワークの将来のメンバを参加させることができる登録係として、新しいネットワークメンバを動作させることができる。
【００１８】
一つ以上の実施形態の詳細を、添付の図面および以下の記載に明記する。その他の特性および利点が、記載、図面、および特許請求の範囲から明らかになるかもしれない。
【図面の簡単な説明】
【００１９】
【図１Ａ】移動体無線アドホックネットワークを形成するのに使用される技術のいくつかの観点を示す。
【図１Ｂ】移動体無線アドホックネットワークを形成するのに使用される技術のいくつかの観点を示す。
【図１Ｃ】移動体無線アドホックネットワークを形成するのに使用される技術のいくつかの観点を示す。
【図１Ｄ】移動体無線アドホックネットワークを形成するのに使用される技術のいくつかの観点を示す。
【００２０】
【図２】アドホックネットワークに参加しようとするデバイスが使用するプロセスの例を示す。
【００２１】
【図３Ａ】アドホックネットワークのメンバがアドホックネットワークに新しいデバイスを登録するべく使用するプロセスの例のいくつかの観点を示す。
【図３Ｂ】アドホックネットワークのメンバがアドホックネットワークに新しいデバイスを登録するべく使用するプロセスの例のいくつかの観点を示す。
【００２２】
【図４】移動体無線アドホックネットワークのアーキテクチャ例を示す。
【００２３】
【図５】移動体無線アドホックネットワークにおいてネットワークアドレス割り当て、より具体的には、階層的アドレス割り当てをサポートするデバイスの例を示す。
【００２４】
各図面において、同様の参照符号により同様の要素を示す。
【発明を実施するための形態】
【００２５】
アドホックネットワークのメンバになるには、デバイスは、アドホックネットワークに対応付けられたアドレスを取得する。ｉ）アドレスがネットワークメンバによって当該デバイスに割り当てられた場合、または、ｉｉ）当該デバイスのアドレスが自分で割り当てたものであり、少なくとも一つのネットワークメンバに通知された場合、当該デバイスのアドレスは、アドホックネットワークに対応付けられる。デバイスは、移動体デバイスであってよく、無線ネットワークは、たとえば、ＩＢＳＳネットワークであってよい。
【００２６】
たとえば、クラスメートのグループがスタジアムに行くとする。彼らは、カメラ機能および入力機能付きの携帯電話で写真を撮り、メモを取る。グループの各メンバは、他のクラスメートとだけ写真およびメモを共有したいとき、たとえば、個人識別番号（ＰＩＮ）認証を用いてセキュアなアドホックネットワークを構築する。本明細書に記載されるシステムおよび技術は、構築済みのセキュアなアドホックネットワークに後から参加することを望むクラスメートが所有する移動体デバイスを登録するのに使用することができる。
【００２７】
図１Ａ−１Ｄは、移動体無線アドホックネットワーク１００を形成するべく使用される技術のいくつかの観点を示す。アドホックネットワーク１００のメンバになることができる移動体デバイスの例として、携帯電話、スマートホン、ＰＤＡ、モバイルコンピュータ、デジタルカメラ、メディアプレーヤ、もしくはこれらを組み合わせたものが挙げられる。本明細書では、移動体デバイスは、ローマ数字で識別することができる。移動体デバイスの識別子は、当該移動体デバイスに対応付けられた媒体アクセス制御（ＭＡＣ）アドレスとすることができる。たとえば、移動体デバイス「ｉ」は、ＭＡＣアドレス＝ｉを有し、移動体デバイス「ｉｖ」は、ＭＡＣアドレス＝ｉｖを有する、等である。
【００２８】
アドホックネットワーク１００の形成の前、移動体デバイスは、参加者としての動作（たとえば、アドホックネットワークを走査する）と、登録係としての動作（たとえば、各自のベースネットワークの形成を公告する；「基本」ネットワークは、メンバが１人の「ネットワーク」）とを交互に行うことができる。参加者として動作するとき、移動体デバイスは、既存のネットワークの登録係として動作しているその他のデバイスを走査することができる。図１Ａに示す例では、参加者として動作する移動体デバイス「ｉ」は、移動体装置「ｉｉ」、「ｉｉｉ」、および「ｉｖ」からの、それらが各自のベースネットワークの登録係として動作することができることを示すメッセージを検出することができる。第１の所定期間の間に参加者が登録係からこのメッセージを受信した場合、登録プロトコルを開始することができる。第１の所定期間の間に参加者が登録係からのメッセージを検出しなかった場合、移動体デバイスは、登録係として動作するべく切り替わるよう設定されている。登録係として動作する場合、アドホックネットワークのメンバでない移動体デバイスは、各自のベースネットワークを形成して、形成したベースネットワークを公告することができる。図１Ａに示す例では、登録係として動作する移動体デバイス「ｉ」は、ベースネットワークを形成し、新しく形成した自己のベースネットワークに参加を要求する他の移動体デバイスからのプローブ要求を待機することができる。移動体デバイスは、第２の所定期間の間、各自のベースネットワークの登録係として動作し、その後、上記のように参加者として動作するべく切り替わるよう設定されている。登録係が第２の所定期間の間にベースネットワークへの参加を要求する参加者からの要求を受信した場合、登録プロトコルを開始することができる。
【００２９】
図１Ａに示す例では、自己のベースネットワーク１００の登録係として動作する移動体デバイス「ｉ」は、自己と、ベースネットワーク１００に参加しようとする他の移動体デバイスに、プライベートサブネットに対応するアドレスを割り当てることができる。たとえば、インターネットプロトコルバージョン４（ＩＰｖ４）アドレスは３２ビットである。ＩＰｖ４サブネットマスク１１４は、２５５．０．０．０とすることができる。このＩＰｖ４サブネットマスクは２４ビットであり、１０．０．０．０／２４と記すこともできる。したがって、ベースネットワーク１００は、サブネットマスク１１４に対応付けられた１セット当たり２２４個のアドレスに対応する最大数１６，７７７，２１６人のメンバを含むアドホックネットワーク１００になることができる。登録係メンバ「ｉ」が自己に割り当てた開始アドレスとしても知られるアドレス１１２−Ａは、プライベートサブネットにおける最下位アドレスＩｐｉ＝１０．０．０．１とすることができる。本明細書に記載されるシステムおよび技術の一部として、その他の開始アドレスよびサブネットマスクを選択することもできる。本明細書に開示される技術は、図１Ａ−１Ｄおよび図４において、ＩＰｖ４のコンテキストで記載されるが、開示されるシステムおよび技術は、アドホックネットワークにおいて、インターネットプロトコルバージョン６（ＩＰｖ６）アドレスを階層的に割り当てるべく使用することもできる。
【００３０】
登録係「ｉ」は、自分が参加者に割り当てることができる１サブセットのアドレスを定義するビットマスク１２０−Ａを保持することができる。ビットマスク１２０−Ａに対応付けられた１サブセットのアドレスは、サブネットマスク１１４に対応付けられた１セット２２４個のアドレスの一部である。本明細書では、ビットマスクは、サブマスクとも呼ばれる。登録係が保持するサブマスクは、サブネットマスクと同様に構築することができる。たとえば、サブマスクのバイナリ値１は固定ビットを表し、サブマスクのバイナリ値０は、サブマスクを保持する登録係が割り当てることができるアドレス範囲の一部であるビットを定義する。図１Ａに示す例では、登録係「ｉ」は、ビット範囲１〜６において０を６個有する「１１１１１１１１  １１１１１１１１  １１１１１１１１  １１００００００」によって与えられる６ビットサブマスク１２０−Ａを保持する。自分に割り当てたＩＰアドレス１１２−Ａ、つまりＩＰｉ＝１０．０．０．１は、サブマスク１２０−Ａに含まれるビット値であるビット値ＩＰｉ＝「０００００１０１  ００００００００  ００００００００  ０００００００１」に対応する。（ビット値のビット範囲１〜６は、サブマスク１２０−Ａに対応付けられたアドレス範囲に対応する。）
【００３１】
一般的に、アドホックネットワークの登録係が保持するサブマスクは、１人の登録係が登録するだろう参加者の数に基づいて構築することができる。Ｎビットのサブマスクに対応付けられる１サブセットのアドレスに含まれるアドレスの数は２＾Ｎ−１であり、Ｎはサブマスクに含まれるバイナリ値０の数である。したがって、図１Ａでは、Ｎ＝６のとき、登録係り「ｉ」は、６３個のアドレスを割り当てることができる。６３個のアドレスのうち１番目のアドレスは自分に割り当てたものであるので、登録係「ｉ」は６２人の参加者を登録することができる。サブマスクに含まれるバイナリ値０の数Ｎによって、１つのアドホックネットワークに定義することができる異なるサブマスクの数Ｍも決定される。たとえば、２４ビットのサブネットマスク１０．０．０．０／２４を使用する場合、Ｎは２４の除数であり、Ｍ＝２４／Ｎ個のサブマスクを使用することができる。したがって、多様なアドホックネットワークにおけるアドレス割り当てに、２個の１２ビットサブマスクの組み合わせ、３個の８ビットサブマスクの組み合わせ、４個の６ビットサブマスクの組み合わせ等を使用することができる。
【００３２】
上記のように、Ｍ個のサブマスクのうち１個を登録係がローカルに保持することができる。さらに、登録係は、残りのＭ−１個のサブマスクを、２＾Ｎ−１人の参加者に提供することができる。このようにすると、参加者は、登録係から、登録係が割り当てたアドレスと、登録係がローカルに保持する１個のマスクを除いたＭ−１個のマスクを受信することができる。これが、第１階層の階層的アドレス割り当てである。登録係から割り当てアドレスを受信することで、参加者はアドホックネットワークの新しいメンバになることができる。アドホックネットワークの新しいメンバは、受信したＭ−１個のサブマスクのうち１個を、自身が登録係として動作するときに将来の参加者に割り当てることができる１サブセットのＩＰアドレスを定義するものとして指定することができる。さらに、アドホックネットワークの新しいメンバは、登録係として動作するとき、指定したサブマスク以外の残りＭ−２個のサブマスクを、割り当てアドレスと一緒に、将来の参加者に提供することができる。これが、第２階層の階層的アドレス割り当てである。このようにすると、登録係が参加者に提供することが可能なサブマスクに基づいた階層的アドレス割り当てによって、アドホックネットワークの利用可能なアドレス空間を分割することができる。階層的アドレス割り当ては、Ｍ個のレベルを有するツリーの形態を持ち、各レベルの各ノードは、２＾Ｎ−１個の枝を有する。階層レベルは、階層的アドレス割り当ての階層に対応する。階層的アドレス割り当ての第（Ｍ−１）階層では、指定したサブマスク以外の、登録係が参加者に提供することができる残りのサブマスクの数がゼロである。この（最終階層の直前の）階層では、登録係は、１サブセットのＩＰアドレスを定義するサブマスクなしで、割り当てＩＰアドレスだけを将来の参加者に提供する。したがって、第Ｍ（最終）階層で参加したデバイスは、アドホックネットワークの登録係として動作することはできない。
【００３３】
図１Ａは、第１階層の階層的アドレス割り当ての例を示す。上記のように、登録係として動作するデバイス「ｉ」は、ベースアドホックネットワーク１００を形成するべく、自分で割り当てた開始アドレス１１２−Ａを有する。この場合、Ｎ＝６かつＭ＝４であり、したがって、登録係「ｉ」は、サブネット１０．０．０．０／２４において２２４個のアドレスを割り当てるべく使用することができる４個の異なる６ビットサブマスクを生成している。上記のように登録係「ｉ」が保持する６ビットサブマスク１２０−Ａに加えて、登録係「ｉ」は、ビット範囲７〜１２において０を６個有する「１１１１１１１１  １１１１１１１１  １１１１００００  ００１１１１１１」によって与えられる６ビットサブマスク１２０−Ｂと、ビット範囲１３〜１８において０を６個有する「１１１１１１１１  １１１１１１００  ００００１１１１  １１１１１１１１」によって与えられる６ビットサブマスク１２０−Ｃと、ビット範囲１９〜２４において０を６個有する「１１１１１１１１  ００００００１１  １１１１１１１１  １１１１１１１１」によって与えられる６ビットサブマスク１２０−Ｄとを含む利用可能なサブマスクのリスト１１８−Ａを将来の参加者に提供することができる。
【００３４】
移動体デバイス「ｉｉ」からベースネットワーク１００に参加する要求を受信すると、登録係「ｉ」は、６ビットサブマスク１２０−Ａに基づいて、参加者にアドレス１１６−Ａを割り当てることができる。この場合、割り当てアドレスは、サブマスク１２０−Ａに含まれるビット値であるビット値ＩＰｉｉ＝「０００００１０１  ００００００００  ００００００００  ００００００１１」に対応するＩＰｉｉ＝１０．０．０．３である。（このビット値のビット範囲１〜６は、サブマスク１２０−Ａに対応付けられたアドレス範囲に対応する。）その後、登録係「ｉ」は、参加者「ｉｉ」に応答１１０−Ａを送信することができる。応答１１０−Ａは、Ｗｉ−Ｆｉシンプルコンフィギュレーション（ＷＳＣ）登録プロトコルに対応付けられたメッセージのうちの１つと一緒に送信することができる。たとえば、ＷＳＣの第８メッセージ（Ｍ８）を使用して、登録係「ｉ」から参加者「ｉｉ」に応答１１０−Ａを送信することができる。応答１１０−Ａは、登録係のアドレス１１２−Ａ、この場合、ＩＰｉ＝１０．０．０．１を含むことができる。さらに、応答１１０−Ａは、ベースネットワーク１００が使用するサブネットマスク１１４、この場合、２５５．０．０．０を含むことができる。さらに、応答１１０−Ａは、登録係「ｉ」が割り当てた参加者のアドレス１１６−Ａ、この場合、ＩＰｉｉ＝１０．０．０．３を含む。さらに、応答１１０−Ａは、この場合、サブマスク１２０−Ｂ、１２０−Ｃ、および１２０−Ｄを含む利用可能なサブマスクのリスト１１８−Ａを含む。
【００３５】
ベースネットワーク１００は、１人より多いネットワークメンバを含むようになると、アドホックネットワーク１００になる。アドホックネットワークのメンバは、登録係モードと参加者モードとの間で切り替わる必要がない。これからは、デバイス「ｉ」および「ｉｉ」の両方が、登録係の役割を引き受け、将来のネットワークメンバの登録を実行する。たとえば、登録係「ｉ」は、デバイス「ｉｉ」の参加に関連して上記したように、第１階層の階層的アドレス割り当てを実行することにより、アドホックネットワーク１００に、他に６１人の参加者（たとえば、「ｉｉｉ」、「ｉｖ」 、「ｖ」・・・）を登録することができる。登録係「ｉ」は、６ビットサブマスク１２０−Ａに対応付けられた１サブセットのアドレスに含まれる６２個のアドレスの全部が参加者に割り当てられるまで、新しいネットワークメンバの登録を継続することができる。いくつかの実施形態では、６ビットサブマスク１２０−Ａに対応付けられた１サブセットのアドレスに含まれる有限数のアドレスが割り当てられた後は、デバイス「ｉ」への他の参加者からの将来の要求は、無視することができる。他の実施形態では、６ビットサブマスク１２０−Ａに対応付けられたアドレスの残存分がなくなってこれ以上は割り当てられなくなったら、デバイス「ｉ」は、登録係モードをオフし、アドホックネットワーク１００に参加しようと試みるアドホックネットワーク１００の外部のデバイスに対して不可視となることができる。さらに、登録係「ｉ」が実行する第１階層の階層的アドレス割り当てによってアドホックネットワークに参加することができる６２人の参加者は、アドホックネットワーク１００の第１階層レベルに対応するサブネット「Ａ」の一部である。
【００３６】
さらに、登録係「ｉｉ」（および、登録係「ｉ」の他の参加者）は、図１Ｂに関連して以下に記載する第２階層の階層的アドレス割り当てを実行することにより、アドホックネットワーク１００に、その他の将来的参加者を登録することができる。
【００３７】
図１Ｂは、第２階層の階層的アドレス割り当ての例を示す。アドレス１１２−Ｂを有する新しいネットワークメンバ「ｉｉ」は、６ビットサブマスク１２０−Ｂを、自身が将来の参加者に割り当てることができる１サブセットのアドレスを定義するものとして指定することができる。さらに、ネットワークメンバ「ｉｉ」は、登録係「ｉ」から受信した利用可能なサブマスクのリスト１１８−Ａから６ビットサブマスク１２０−Ｂを削除することができる。したがって、ネットワークメンバ「ｉｉ」は、登録係として動作するとき、６ビットサブマスク１２０−Ｃおよび６ビットサブマスク１２０−Ｄを含む利用可能なサブマスクのリスト１１８−Ｂを将来の参加者に提供することができる。
【００３８】
アドホックネットワークの一例１００´（以後、アドホックネットワーク１００´と呼ぶ）のメンバでないデバイス「ｖｉ」は、アドホックネットワーク１００´を検出することができる。この検出の一環として、移動体デバイス「ｖｉ」は、ネットワークメンバ「ｉ」、「ｉｉ」、「ｉｉｉ」、「ｉｖ」、「ｖ」・・・のうちいずれからも、これらが移動体デバイス「ｖｉ」をアドホックネットワーク１００´に参加させる登録係として動作できる旨を示す信号を検出することができる。参加者デバイス「ｖｉ」は、アドホックネットワーク１００´への参加に関してやり取りする対象として、登録係のうち１人を選択することができる。いくつかの実施形態では、参加者デバイス「ｖｉ」は、登録係メンバをランダムに選択することができる。別の実施形態では、参加者デバイス「ｖｉ」による登録係メンバの選択は、所定の基準に基づいて行うことができる。選択基準の一つは、参加者デバイス「ｖｉ」がネットワークメンバを発見した順序であってよい。たとえば、参加者デバイス「ｖｉ」が登録係として選択するネットワークメンバは、最初に発見されたネットワークメンバである。別の選択基準は、参加者デバイス「ｖｉ」がネットワークメンバから受信した信号の強度であってよい。たとえば、参加者デバイス「ｖｉ」が登録係として選択するネットワークメンバは、ネットワークメンバ「ｉ」、「ｉｉ」、「ｉｉｉ」、「ｉｖ」、「ｖ」・・・が発信した信号のうち、参加者デバイス「ｖｉ」が受信した最も強度が大きい信号に対応するネットワークメンバである。この場合、参加者「ｖｉ」は、アドホックネットワーク１００´への参加を要求する経由点として登録係「ｉｉ」を選択することができる。別の選択基準は、参加者デバイス「ｖｉ」がネットワークメンバから受信する信号に搬送される付加的情報であってよい。たとえば、付加的情報は、登録係が割り当てるべく保有するアドレスの数であってよい。したがって、参加者デバイス「ｖｉ」が登録係として選択するネットワークメンバは、現在利用可能なアドレスを最も多く保有するネットワークメンバであってよい。この場合、参加者「ｖｉ」は、アドホックネットワーク１００´に参加を要求する経由点として登録係「ｉｉ」を選択することができる。
【００３９】
参加者「ｖｉ」からアドホックネットワーク１００´に参加する要求を受信すると、登録係「ｉｉ」は、指定した６ビットサブマスク１２０−Ｂに基づいて、参加者「ｖｉ」にアドレス１１６−Ｂを割り当てることができる。この場合、割り当てアドレスは、サブマスク１２０−Ｂに含まれるビット値であるビット値ＩＰｖｉ＝「０００００１０１  ００００００００  ００００００００  ０１００００１１」に対応するＩＰｖｉ＝１０．０．０．６７である。（このビット値のビット範囲７〜１２は、サブマスク１２０−Ｂに対応付けられたアドレス範囲に対応する。）その後、登録係「ｉｉ」は、参加者「ｖｉ」に応答１１０−Ｂを送信することができる。応答１１０−Ｂは、ＷＳＣプロトコルに準拠したＭ８メッセージの形式とすることができる。応答１１０−Ｂは、登録係のアドレス１１２−Ｂ、この場合、ＩＰｉｉ＝１０．０．０．３を含む。さらに、応答１１０−Ｂは、アドホックネットワーク１００´が使用するサブネットマスク、この場合、２５５．０．０．０を含む。さらに、応答１１０−Ｂは、登録係「ｉｉ」が割り当てた参加者のアドレス１１６−Ｂ、この場合、ＩＰｖｉ＝１０．０．０．６７を含む。さらに、応答１１０−Ｂは、この場合、サブマスク１２０−Ｃおよび１２０−Ｄを含む利用可能なサブマスクのリスト１１８−Ｂを含む。
【００４０】
その後、デバイス「ｖｉ」も将来のネットワークメンバを登録する登録係の役割を引き受けることができる。さらに、登録係「ｖｉ」（ならびに登録係「ｉｉ」、「ｉｉｉ」、および「ｖ」の他の参加者）は、図１Ｃに関連して以下に記載する第３階層の階層的アドレス割り当てを実行することにより、アドホックネットワーク１００´に、他の将来的参加者を登録することができる。デバイス「ｉｉ」は、デバイス「ｖｉ」の参加に関連して上記した第２階層の階層的アドレス割り当てを実行することにより、アドホックネットワーク１００´へのその他の参加者の登録を継続することができる。登録係「ｉｉ」は、６ビットサブマスク１２０−Ｂに対応付けられた１サブセットのアドレスに含まれる６３個のアドレスの全てが新しい参加者に割り当てられるまで、新しいネットワークメンバを登録することができる。また、登録係「ｉｉ」が実行する第２階層の階層的アドレス割り当てを通じてアドホックネットワーク１００´に参加することができる６３人の参加者は、アドホックネットワーク１００´の第２階層レベルに対応するサブネット「Ｂ」の一部である。同じく、登録係「ｉｉｉ」が実行する第２階層の階層的アドレス割り当てを通じてアドホックネットワーク１００´に参加しうる参加者（たとえば、デバイス「ｖｉｉ」）は、アドホックネットワーク１００´の同じ第２階層レベルに対応する別のサブネット「Ｂ´´」の一部である。また、登録係「ｖ」が実行する第２階層の階層的アドレス割り当てを通じてアドホックネットワーク１００´に参加しうる参加者は、アドホックネットワーク１００´の同じ第２階層レベルに対応するさらに別のサブネット「Ｂ´」の一部である。アドホックネットワーク１００´の第２階層レベルには、サブネットＡの一部であってよい６２人のネットワークメンバのそれぞれに１個ずつとして、６２個のサブネットＢ、Ｂ´、Ｂ´´・・・が存在してよい。
【００４１】
図１Ｃは、第３階層の階層的アドレス割り当ての例を示す。アドレス１１２−Ｃを有する新しいネットワークメンバ「ｖｉ」は、自身が将来の参加者に割り当てることができる１サブセットのアドレスを定義するものとして、６ビットサブマスク１２０−Ｃを指定することができる。さらに、ネットワークメンバ「ｖｉ」は、登録係「ｉｉ」から受信した利用可能なサブマスクのリスト１１８−Ｂから６ビットサブマスク１２０−Ｃを削除することができる。したがって、ネットワークメンバ「ｖｉ」は、登録係として動作する場合、６ビットサブマスク１２０−Ｄを含む利用可能なサブマスクのリスト１１８−Ｃを将来の参加者に提供することができる。
【００４２】
アドホックネットワークの一例１００´´（以後、アドホックネットワーク１００´´と呼ぶ）のメンバではないデバイス「ｘｉ」は、アドホックネットワーク１００´´を検出することができる。この検出の一環として、移動体デバイス「ｘｉ」は、現在のネットワークメンバのいずれからも、これらのデバイスが移動体デバイス「ｘｉ」をアドホックネットワーク１００´´に参加させる登録係として動作できる旨を示す信号を検出することができる。参加者デバイス「ｘｉ」は、アドホックネットワーク１００´´への参加に関してやり取りする対象として、登録係のうち１人を、ランダムに、または、図１Ｂに関連して上記したように所定の基準に基づいて、選択することができる。この場合、参加者「ｘｉ」は、アドホックネットワーク１００´´に参加を要求する経由点として登録係「ｖｉ」を選択することができる。
【００４３】
参加者「ｘｉ」からアドホックネットワーク１００´´に参加する要求を受信すると、登録係「ｖｉ」は、指定した６ビットサブマスク１２０−Ｃに基づいて、参加者「ｘｉ」にアドレス１１６−Ｃを割り当てることができる。この場合、割り当てアドレスは、サブマスク１２０−Ｃに含まれるビット値であるビット値ＩＰｘｉ＝「０００００１０１  ００００００００  ０００１００００  ０１００００１１」に対応するＩＰｘｉ＝１０．０．１６．６７である。（このビット値のビット範囲１３〜１８は、サブマスク１２０−Ｃに対応付けられたアドレス範囲に対応する。）その後、登録係「ｖｉ」は、参加者「ｘｉ」に応答１１０−Ｃを送信することができる。応答１１０−Ｃは、ＷＳＣプロトコルに準拠したＭ８メッセージの形式とすることができる。応答１１０−Ｃは、登録係のアドレス１１２−Ｃ、この場合、ＩＰｖｉ＝１０．０．０．６７を含む。さらに、応答１１０−Ｃは、アドホックネットワーク１００´´が使用するサブネットマスク、この場合、２５５．０．０．０を含む。さらに、応答１１０−Ｃは、登録係「ｖｉ」が割り当てた参加者のアドレス１１６−Ｃ、この場合、ＩＰｘｉ＝１０．０．１６．６７を含む。さらに、応答１１０−Ｃは、この場合、サブマスク１２０−Ｄを含む利用可能なサブマスクのリスト１１８−Ｃを含む。
【００４４】
その後、デバイス「ｘｉ」も将来のネットワークメンバを登録する登録係の役割を引き受けることができる。さらに、登録係「ｘｉ」（ならびに登録係「ｖｉ」および「ｖｉｉ」、の他の参加者）は、図１Ｄに関連して以下に記載する第４階層の階層的アドレス割り当てを実行することにより、アドホックネットワーク１００´´に、他の将来的参加者を登録することができる。デバイス「ｖｉ」は、デバイス「ｘｉ」の参加に関連して上記した第３階層の階層的アドレス割り当てを実行することにより、アドホックネットワーク１００´´へのその他の参加者の登録を継続することができる。登録係「ｖｉ」は、６ビットサブマスク１２０−Ｃに対応付けられた１サブセットのアドレスに含まれる６３個のアドレスの全てが新しい参加者に割り当てられるまで、新しいネットワークメンバを登録することができる。また、登録係「ｖｉ」が実行する第３階層の階層的アドレス割り当てを通じてアドホックネットワーク１００´´に参加することができる６３人の参加者は、アドホックネットワーク１００´´の第３階層レベルに対応するサブネット「Ｃ」の一部である。同じく、登録係「ｖｉｉ」が実行する第３階層の階層的アドレス割り当てを通じてアドホックネットワーク１００´´に参加しうる参加者（たとえば、デバイス「ｘｉｉ」）は、アドホックネットワーク１００´´の同じ第３階層レベルに対応する別のサブネット「Ｃ´」の一部である。アドホックネットワーク１００´´の第３階層レベルには、サブネットＡの一部であってよい６２個のサブネットＢのそれぞれにつき、当該サブネットＢの一部であってよい６３人のネットワークメンバのそれぞれに１個ずつとして、６２×６３個のサブネットＣ、Ｃ´・・・が存在してよい。
【００４５】
図１Ｄは、第４階層の階層的アドレス割り当ての例を示す。アドレス１１２−Ｄを有する新しいネットワークメンバ「ｘｉ」は、自身が将来の参加者に割り当てることができる１サブセットのアドレスを定義するものとして、６ビットサブマスク１２０−Ｄを指定することができる。さらに、ネットワークメンバ「ｘｉ」は、登録係「ｖｉ」から受信した利用可能なサブマスクのリスト１１８−Ｃから６ビットサブマスク１２０−Ｄを削除することができる。したがって、ネットワークメンバ「ｘｉ」は、登録係として動作するとき、参加者に対して、これらの参加者自身が将来参加させる参加者のための１サブセットのＩＰアドレスを定義する６ビットサブマスクを提供することができない。
【００４６】
アドホックネットワークの例１００´´´（以後、アドホックネットワーク１００´´´と呼ぶ）のメンバではないデバイス「ｘｉｉｉ」は、アドホックネットワーク１００´´´を検出することができる。この検出の一環として、移動体デバイス「ｘｉｉｉ」は、現在のネットワークメンバのいずれからも、これらのメンバのデバイスが移動体デバイス「ｘｉｉｉ」をアドホックネットワーク１００´´´に参加させる登録係として動作できる旨を示す信号を検出することができる。参加者デバイス「ｘｉｉｉ」は、アドホックネットワーク１００´´´への参加に関してやり取りする対象として、登録係のうち１人を、ランダムに、または、図１Ｂに関連して上記したように所定の基準に基づいて、選択することができる。この場合、参加者「ｘｉｉｉ」は、アドホックネットワーク１００´´´に参加を要求する経由点として登録係「ｘｉ」を選択することができる。
【００４７】
参加者「ｘｉｉｉ」からアドホックネットワーク１００´´´に参加する要求を受信すると、登録係「ｘｉ」は、指定した６ビットサブマスク１２０−Ｄに基づいて、参加者「ｘｉｉｉ」にアドレス１１６−Ｄを割り当てることができる。この場合、割り当てアドレスは、サブマスク１２０−Ｄに含まれるビット値であるビット値ＩＰｘｉｉｉ＝「０００００１０１  ０００００１００  ０００１００００  ０１００００１１」に対応するＩＰｘｉｉｉ＝１０．４．１６．６７である。（このビット値のビット範囲１９〜２４は、サブマスク１２０−Ｄに対応付けられたアドレス範囲に対応する。）その後、登録係「ｘｉ」は、参加者「ｘｉｉｉ」に応答１１０−Ｄを送信することができる。応答１１０−Ｄは、ＷＳＣプロトコルに準拠したＭ８メッセージの形式とすることができる。応答１１０−Ｄは、登録係のアドレス１１２−Ｄ、この場合、ＩＰｘｉ＝１０．０．１６．６７を含む。さらに、応答１１０−Ｄは、アドホックネットワーク１００´´´が使用するサブネットマスク、この場合、２５５．０．０．０を含む。さらに、応答１１０−Ｄは、登録係「ｘｉ」が割り当てた参加者のアドレス１１６−Ｄ、この場合、ＩＰｘｉｉｉ＝１０．４．１６．６７を含む。第４（最終）階層の階層的アドレス割り当てでは、応答１１０−Ｄは、サブマスクを含まないことに注意されたい。
【００４８】
デバイス「ｘｉ」は、デバイス「ｘｉｉｉ」の参加に関連して上記した第４階層の階層的アドレス割り当てを実行することにより、アドホックネットワーク１００´´´へのその他の参加者の登録を継続することができる。登録係「ｘｉ」は、６ビットサブマスク１２０−Ｄに対応付けられた１サブセットのアドレスに含まれる６３個のアドレスの全てが新しい参加者に割り当てられるまで、新しいネットワークメンバを登録することができる。また、登録係「ｘｉ」が実行する第４階層の階層的アドレス割り当てを通じてアドホックネットワーク１００´´´に参加することができる６３人の参加者は、アドホックネットワーク１００´´´の第４（最終）階層レベルに対応するサブネット「Ｄ」の一部である。アドホックネットワーク１００´´´の第４階層レベルには、サブネットＡの一部であってよい６２個のサブネットＢに含まれる各サブネットＢの一部であってよい６３個のサブネットＣのそれぞれにつき、当該サブネットＣの一部であってよい６３人のネットワークメンバのそれぞれに１個ずつとして、６２×６３×６３個のサブネットＤ・・・が存在してよい。
【００４９】
登録係「ｘｉｉｉ」（および登録係「ｘｉ」のその他の参加者）は、最終階層の階層的アドレス割り当ての一部としてサブマスクを提供されておらず、したがって、将来の参加者にアドレスを割り当てるＩＰアドレスの範囲を指定されていないので、アドホックネットワーク１００´´´にその他の将来的参加者を登録することができない。いくつかの実施形態では、アドホックネットワーク１００´´´の第４（最終）階層レベルのネットワークメンバ（たとえば、「ｘｉｉｉ」）は、アドホックネットワーク１００´´´のメンバでないデバイスからの要求を無視することができる。別の実施形態では、アドホックネットワーク１００´´´の第４（最終）階層レベルのネットワークメンバ（たとえば、「ｘｉｉｉ」）は、登録係モードをオフして、アドホックネットワーク１００´´´に参加を試みるデバイスに対して不可視となることができる。いくつかの他の実施形態では、アドホックネットワーク１００´´´の第４（最終）階層レベルのネットワークメンバ（たとえば、「ｘｉｉｉ」）は、参加者に、割り当て可能なアドレスがなくなったことを通知することができる。
【００５０】
図２は、デバイスがアドホックネットワークに参加するべく使用するプロセス２００の例を示す。図１Ａ−１Ｄに示した例では、プロセス２００は、移動体無線アドホックネットワーク１００の登録係メンバ「ｉ」、「ｉｉ」、および「ｖｉ」とそれぞれやり取りする参加者デバイス「ｉｉ」、「ｖｉ」、および「ｘｉ」によって実行することができる。
【００５１】
２１０で、デバイスは、アドホックネットワークのメンバである所定のデバイスを経由してアドホックネットワークに参加することを要求する。いくつかの実施形態では、アドホックネットワークのメンバでないデバイスは、アドホックネットワークに参加を要求する経由点となるアドホックネットワークの所定のデバイスをランダムに選択することができる。たとえば、参加者は、アドホックネットワークの登録係として動作できる旨を示す信号を発信した複数のネットワークメンバの中から、アドホックネットワークの登録係をランダムに選択することができる。他の実施形態では、アドホックネットワークのメンバでないデバイスは、アドホックネットワークに参加を要求する経由点となるアドホックネットワークの所定のデバイスを、所定の基準に基づいて選択することができる。選択基準の一例は発見順序であり、アドホックネットワークの登録係が、最も新しく発見されたネットワークメンバの所定数を超えないうちに参加者によって発見された場合、前者は後者に選択される。選択基準の別の例は信号品質であり、登録係から受信した信号が所定の品質測定基準、たとえば、信号強度、ビットエラーレート等を満たす、もしくは、超える場合、当該登録係は参加者によって選択される。選択基準の別の例は、他の登録係と比較して、ある登録係が割り当て可能なアドレスをいくつ保有しているかであり、当該登録係が利用可能なアドレスの数が、所定数の他の登録係がそれぞれ保有するアドレスの数より多い場合、当該登録係が選択される。
【００５２】
２２０で、要求元デバイスは、（Ｉ）要求元デバイスのアドレス、および（ＩＩ）将来の要求元デバイスに割り当てるべきアドレスの有限数を示す情報を含む応答を所定のデバイスから受信する。たとえば、所定のデバイスから受信する応答に参照されるアドレスは、インターネットプロトコルバージョン４（ＩＰｖ４）アドレスである。いくつかの実施形態では、２２２で、受信した応答に含まれる要求元デバイスのアドレスを示す情報は、所定のデバイスが要求元デバイスに割り当てたアドレスを含んでよい。他の実施形態では、２２４で、要求元デバイスは、受信した応答に含まれる情報を使用して、自身にアドレスを割り当てることができる。たとえば、要求元デバイスは、将来の要求元デバイスに割り当てるべき有限数のアドレスのうち一つを自身に割り当てることができる。その後、２２６で、要求元デバイスは、所定のデバイスにメッセージを送信して、自身に割り当てたアドレスを登録係に通知することができる。
【００５３】
２２８で、受信した応答は、将来の要求元デバイスに割り当てるべき所定数のアドレスをそれぞれが含む複数サブセットのアドレスを表す情報を含んでよい。受信した複数サブセットのそれぞれにおいて、将来の要求元デバイスに割り当てるべき所定数のＩＰｖ４アドレスは、一つのＩＰｖ４アドレスに含まれるビット数に等しい数のビットを含むビットマスクによって表すことができる。ビットマスクは、所定数のＩＰアドレスの固定ビットを定義するバイナリ値１と、所定数のＩＰアドレスの範囲割り当ての一部であるビットを定義するバイナリ値０とを含む。図１Ａ−１Ｄに示す例では、ビットマスク１２０−Ａ、１２０−Ｂ、１２０−Ｃ、および１２０−Ｄは、それぞれ、固有グループの６個のバイナリ値０を含む。この態様では、各固有グループの６個のバイナリ値０は、ビットマスク１２０−Ａ、１２０−Ｂ、１２０−Ｃ、および１２０−Ｄのうち対応する一つに対応付けられた１サブセット６３個のＩＰアドレスに対応するアドレス範囲を定義する。
【００５４】
いくつかの実施形態では、所定のデバイスから受信した応答は、さらに、当該所定のデバイスのアドレスを含むことができる。いくつかの実施形態では、所定のデバイスから受信した応答は、さらに、アドホックネットワークに対応付けられたサブネットマスクを含む。
【００５５】
２３０で、要求元デバイスは、有限数のアドレスのうち一部を、当該デバイスが将来の要求元デバイスに割り当てるアドレスとして指定する。たとえば、２３２で、要求元デバイスは、受信した情報から２２８で参照した複数のアドレスサブセットのうち一つを、当該デバイスが将来の要求元デバイスに割り当てるアドレスの出所としての一つのアドレスサブセットとして指定することができる。この態様では、所定のデバイスによって割り当てられた受信アドレス（または、自身で割り当てたアドレス）は、要求元デバイスが将来の要求元デバイスに割り当てるとして指定したサブセットに含まれる有限数のアドレスの階層ノードを表す。さらに、指定したアドレスサブセットに含まれる有限数のアドレスは、受信した複数のサブセットのうち当該一つのサブセットに対応付けられる単一の階層レベルを表し、有限数のアドレスに等しい数の階層枝に対応する。図１Ａ−１Ｄに示す例では、登録係「ｉ」、「ｉｉ」、「ｖｉ」、および「ｘｉ」によって割り当てられるアドレスは、開示した階層的アドレス割り当てのノードを表し、起点としてのサブネットＡ、Ｂ、Ｃ、およびＤにそれぞれ対応する。さらに、登録係「ｉ」、「ｉｉ」、「ｖｉ」、および「ｘｉ」のいずれかから参加者に割り当てることができるアドレスは、開示した階層的アドレス割り当ての単一のレベルを表し、アドホックネットワークのサブネットＡ、Ｂ、Ｃ、およびＤのうち単一のサブネットに対応する。
【００５６】
図３Ａは、アドホックネットワークのメンバがアドホックネットワークに新しいデバイスを登録するべく使用するプロセス３００の例を示す。図１Ａ−１Ｄに示す例では、プロセス３００は、参加者デバイス「ｉｉ」、「ｖｉ」、および「ｘｉ」によって移動体無線アドホックネットワークへの登録係として動作するようそれぞれ選択されたネットワークメンバ「ｉ」、「ｉｉ」、および「ｖｉ」が実行することができる。
【００５７】
３４０で、アドホックネットワークの所定のデバイスが、アドホックネットワークのメンバでないデバイスから、アドホックネットワークに参加する要求を受信する。たとえば、アドホックネットワークの登録係として動作する所定のデバイスは、参加者として動作するデバイスが発信するアドホックネットワークに参加する要求を示す信号を検出することができる。受信した要求は、登録係による参加者デバイスの登録プロセスの開始をトリガすることができる。
【００５８】
３５０で、所定のデバイスは、（Ｉ）要求元デバイスのアドレス、および（ＩＩ）将来の要求元デバイスに割り当てるべき有限数のアドレスを表す情報で、要求元デバイスに応答する。有限数のアドレスに含まれるアドレスは、ＩＰｖ４アドレスであってよい。参加者デバイスの要求に応答する（３５０で）一環として、３６０で、所定のデバイスは、参加者にアドレスを割り当ててよい。登録係による参加者へのアドレス割り当ての例は、図１Ａ−１Ｄに関連して上記した。同じく、参加者デバイスの要求に応答する（３５０で）一環として、３７０で、所定のデバイスは、参加者に割り当てたアドレスと、複数サブセットのアドレスを表す情報とを提供することができる。複数のアドレスサブセットのそれぞれは、将来の参加者に割り当てるべき所定数のアドレスを含む。さらに、将来の参加者に割り当てるべき所定数のアドレスは、一つのＩＰｖ４アドレスに含まれるビット数に等しい数のビットを含むビットマスクにより表すことができ、ビットマスクに含まれるバイナリ値１は、所定数のＩＰｖ４アドレスの固定ビットを定義し、ビットマスクに含まれるバイナリ値０は、所定数のＩＰｖ４アドレスの範囲割り当ての一部であるビットを定義する。
【００５９】
別の実施形態では、参加者アドレスの割り当ては、たとえば、図２に関連して上記した２２４で、参加者が実行することができる。この場合、３９０で、所定のデバイスは、要求元デバイスから、要求元デバイスが自身で割り当てたアドレスを含む通知を受信することができる。
【００６０】
図３Ｂは、アドホックネットワークのメンバがアドホックネットワークに新しいデバイスを登録するべく使用する別の例に係るプロセス３００´を示す。図１Ａ−１Ｄに示す例では、プロセス３００´は、参加者デバイス「ｉｉ」、「ｖｉ」、「ｘｉ」および「ｘｉｉｉ」によって移動体無線アドホックネットワークへの登録係として動作するようそれぞれ選択されたネットワークメンバ「ｉ」、「ｉｉ」、「ｖｉ」、および「ｘｉ」が実行することができる。３４０´で、アドホックネットワークの所定のデバイスは、図３Ａに関連して３４０で上記したように、アドホックネットワークのメンバでないデバイスから、アドホックネットワークに参加する要求を受信する。
【００６１】
３６２で、所定のデバイスは、参加者デバイスから受信した要求に応答して、所定のデバイスが将来の要求元デバイスに割り当てるとして指定した１サブセットの有限数のアドレスのうちに、少なくとも１つの未割り当てのアドレスがあるかを判定する。指定した１サブセットの有限数のアドレスに含まれるアドレスは、ＩＰｖ４アドレスであってよい。指定した１サブセットの有限数のアドレスは、ＩＰアドレスに含まれるビット数に等しい数のビットを含むビットマスクによって表すことができる。ビットマスクは、有限数のＩＰアドレスの固定ビットを定義するバイナリ値１と、有限数のＩＰアドレスの範囲割り当ての一部であるビットを定義するバイナリ値０とを含む。
【００６２】
３６４で、指定した１サブセットの有限数のアドレスのうちに少なくとも１つの未割り当てのアドレスがあると判定（３６２で）したことに応答して、所定の装置は、指定した１サブセットの有限数のアドレスのうち未割り当てのアドレスを要求元デバイスに割り当てる。参加者デバイスにアドレスを割り当てることは、登録係ネットワークメンバが実行する登録プロトコルの一つの段階であってよい。参加者を登録係として動作できるようにすることは、以下に記載するよう、登録係が実行する登録プロトコルの別の段階であってよい。
【００６３】
３７２で、所定のデバイスは、指定した有限数のアドレスの１サブセットに加えて、将来の要求元デバイスにアドレスを割り当てるための有限数のアドレスの少なくとも１サブセットがあるかを判定する。有限数のアドレスの少なくとも１残存サブセットに含まれるアドレスもＩＰｖ４アドレスである。３７４で、有限数のアドレスの少なくとも１残存サブセットがあると判定（３７２で）したことに応答して、所定のデバイスは、当該デバイスが要求元デバイスに割り当てたアドレスと、少なくとも１残存サブセットの有限数のアドレスとを含む応答を要求元デバイスに送信する。この方法では、参加者は、アドホックネットワークのメンバになることができるだけでなく、将来の要求元デバイスを参加させるアドホックネットワークの登録係として動作することもできる。３７４で送信する応答の例は、図１Ａ−１Ｃに関連して上記した応答１１０−Ａ、１１０−Ｂ、および１１０−Ｃに対応する。
【００６４】
プロセス３００´の一環として３４０´、３６２、３６４、３７２、および３７４で実行する動作の組み合わせは、図３Ａに関連して上記したプロセス３００の例示的実施形態に対応する。
【００６５】
図３Ｂに戻り、３７６で、有限数のアドレスの残存サブセットがないと判定（３７２で）したことに応答して、所定のデバイスは、所定デバイスが要求元デバイスに割り当てたアドレスを含む応答を要求元デバイスに送信する。これによると、参加者は、アドホックネットワークのメンバになることはできるが、アドホックネットワークの登録係として動作することはできない。３７５で送信する応答の例は、図１Ｄに関連して上記した応答１１０−Ｄに対応する。
【００６６】
いくつかの実施形態では、３７４または３７６で所定のデバイスが要求元デバイスに送信する応答は、さらに、当該所定のデバイスのアドレスを含む。いくつかの実施形態では、３７４または３７６で所定のデバイスが要求元デバイスに送信する応答は、さらに、アドホックネットワークに対応付けられたサブネットマスクを含む。
【００６７】
３８０で、指定した１サブセットの有限数のアドレスのうちに未割り当てのアドレスがないと判定（３６２で）したことに応答して、所定のデバイスは、要求元デバイスの要求を受け付けない。このような状況は、登録係デバイスが、指定した１サブセットの有限数のアドレスに含まれるアドレスの数に等しい数のネットワークメンバをすでに参加させていた場合に生じうる。このような状況は、また、所定のデバイスが、アドホックネットワークの最下位階層レベルのサブネットに一部である場合にも生じる。この場合、図１Ｄに関連して上記したように、所定のデバイスを参加させた登録係は、所定のデバイスに、割り当てたアドレスと一緒に、所定のデバイスが将来の参加者に割り当てるべき１サブセットの有限数のアドレスを提供していない。いくつかの実施形態では、登録係は、アドホックネットワークへの登録を要求する参加者からの信号を単に無視することにより、受動的に要求を受け付けないようにすることができる。別の実施形態では、登録係は、利用可能なアドレスの全てがすでに割り当てられている旨を参加者に通知することにより、能動的に要求を受け付けないようにすることができる。
【００６８】
図４は、移動体無線アドホックネットワーク４００の階層的アドレス割り当ての例を示す。アドホックネットワーク４００のメンバのアドレスは、たとえば、図２、図３Ａ、および図３Ｂに関連してそれぞれ上記したプロセス２００および３００に基づいて割り当てることができる。
【００６９】
アドホックネットワーク４００のメンバは、携帯電話、スマートホン、ＰＤＡ、モバイルコンピュータ、デジタルカメラ、メディアプレーヤ、もしくはこれらの装置を組み合わせたものであってよい。アドホックネットワーク４００のメンバは、登録係として動作することができ、たとえば、１０．０．０．０／２４と表される２４ビットのＩＰｖ４アドレス空間において、参加者デバイスにアドレスを割り当てることができる。この例では、全登録係がそれぞれ、参加者に割り当てる１サブセットのアドレスを定義するビットマスクを保持することができる。登録係が各参加者にアドレスを割り当てるとき、追加的にビットマスクのリストが提供される。その後、参加者は、登録係として動作するとき、第１のビットマスクをアドレス割り当ての範囲として使用する。デバイスが登録係として動作するとき、このビットマスクを受信したリストから削除し、縮小したリストを提供する。参加者に提供されたリストに何も載っていない場合、もしくは、登録係のアドレス範囲に含まれる全アドレスが割り当てられている場合、デバイスは登録係として動作することはできない。
【００７０】
ビットマスクは、サブネットマスクと同様の方法で構築することができる。たとえば、ビットマスクに含まれるバイナリ値１は、固定ビットを表し、ビットマスクに含まれるＮ個のバイナリ値０は、ビットマスクを保持する登録係が割り当てに使用することができるアドレス範囲の一部であるビットを定義する。ビットマスクは、ビットマスクに含まれるバイナリ値０の数Ｎに基づいて、Ｎビットマスクと呼ぶことができる。図４に示す階層的アドレス割り当ての例は、３個の８ビットマスク、つまり、ＢＭ１＝１１１１１１１１  １１１１１１１１  １１１１１１１１  ００００００００、ＢＭ２＝１１１１１１１１  １１１１１１１１  ００００００００  １１１１１１１１、およびＢＭ３＝１１１１１１１１  ００００００００  １１１１１１１１  １１１１１１１１に基づいている。
【００７１】
８ビットマスクに対応付けられるアドレスの数は、２＾８−１＝２５５である。したがって、図４では、８ビットマスクＢＭ１、ＢＭ２、およびＢＭ３のうち任意の一つを使用する登録係は、２５５人の参加者を登録することができる。さらに、アドレス割り当ては、暗号化設定におけるＷＳＣ  Ｍ８メッセージに含まれる追加的なフィールドでサポートすることができる。図４で矢印により示されるＭ８メッセージは、登録係のアドレス、サブネットマスク、割り当てた参加者のアドレス、利用可能な８ビットマスクのリストを含む。
【００７２】
アドホックネットワーク４００を創始したデバイスは、参加者に割り当てることができる１サブセットのアドレスを定義する８ビットマスクＢＭ１を保持する。さらに、このデバイスは、自身で割り当てたアドレス１０．０．０．１を有する。その後、登録係１０．０．０．１は、第１階層の階層的アドレス割り当てを実行して、８ビットマスクＢＭ１に対応付けられた１サブセットのアドレスに基づいて、２５４個の新しいデバイスを参加させることができる。登録係１０．０．０．１が参加させるネットワークメンバは、アドホックネットワーク４００の第１階層レベルに対応するサブネット「Ａ」を形成する。たとえば、登録係１０．０．０．１が参加させた１つのデバイスは、アドレス１０．０．０．４を割り当てられている。プロセス２００の２２２またはプロセス３００´の３７４にしたがって、登録係１０．０．０．１が参加者１０．０．０．４に送信するメッセージ４２０は、登録係のＩＰアドレス１０．０．０．１と、サブネットマスク２５５．０．０．０．０と、参加者に割り当てたＩＰアドレス１０．０．０．４と、ＢＭ２およびＢＭ３を含む利用可能な８ビットマスクのリストとを含む。
【００７３】
登録係として動作するべく、新しいネットワークメンバ１０．０．０．４は、参加者に割り当てる１サブセットのアドレスを定義するものとして、８ビットマスクＢＭ２を指定することができる。その後、登録係１０．０．０．４は、第２階層の階層的アドレス割り当てを実行して、８ビットマスクＢＭ２に対応付けられた１サブセットのアドレスに基づいて、２５５個の新しいデバイスを参加させることができる。登録係１０．０．０．４が参加させる新しいメンバは、アドホックネットワーク４００の第２階層レベルに対応するサブネット「Ｂ」を形成する。たとえば、登録係１０．０．０．４が参加させた１つのデバイスは、アドレス１０．０．１．４を割り当てられている。プロセス２００の２２０またはプロセス３００´の３７４にしたがって、登録係１０．０．０．４が参加者１０．０．１．４に送信するメッセージ４６０は、登録係のＩＰアドレス１０．０．０．４と、サブネットマスク２５５．０．０．０．０と、参加者に割り当てたアドレス１０．０．１．４と、ＢＭ３を含む利用可能な８ビットマスクのリストとを含む。
【００７４】
登録係として動作するべく、新しいネットワークメンバ１０．０．１．４は、参加者に割り当てる１サブセットのＩＰアドレスを定義するものとして、８ビットマスクＢＭ３を指定することができる。その後、登録係１０．０．１．４は、第３（最終）階層の階層的アドレス割り当てを実行して、８ビットマスクＢＭ３に対応付けられた１サブセットのアドレスに基づいて、２５５個の新しいデバイスを参加させることができる。登録係１０．０．１．４が参加させる新しいメンバは、アドホックネットワーク４００の第３（最終）階層レベルに対応するサブネット「Ｃ」を形成する。たとえば、登録係１０．０．１．４が参加させた１つのデバイスは、アドレス１０．２．１．４を割り当てられている。プロセス３００´の３７６にしたがって、登録係１０．０．１．４が参加者１０．２．１．４に送信するメッセージ４７０は、登録係のＩＰアドレス１０．０．１．４と、サブネットマスク２５５．０．０．０．０と、参加者に割り当てたアドレス１０．２．１．４とを含む。参加者１０．２．１．４には、最終階層の階層的アドレス割り当ての一環として、登録係１０．０．１．４からビットマスクを提供されないので、参加者１０．２．１．４は、登録係としての役割を実行することができない。
【００７５】
アドホックネットワークにおいて階層的にアドレスを割り当てるべく使用される開示したシステムおよび技術は、図１Ａ−１Ｄおよび図４に関連させて、無線移動体アドホックネットワークのコンテキストで記載した。さらに、記載した技術は、無線および有線の接続を含むネットワーク環境に適用することができる。さらに、本明細書に記載したシステムおよび技術は、有線だけのネットワーク環境に適用することもできる。開示した技術を有利に適用することができる後者のネットワーク環境の例は、トンネルを介して動作するピアツーピア（Ｐ２Ｐ）ネットワークである。このネットワーク環境では、ピアは、Ｐ２Ｐネットワークに、仮想プライベートネットワーク（ＶＰＮ）トンネリングを用いて接続することができる。トンネルを介して動作するＰ２Ｐネットワークのピアは、Ｐ２Ｐネットワークの外部で前もって割り当てられたＩＰアドレスを保有しているかもしれないが、Ｐ２Ｐネットワークの内部でピアが使用するローカルアドレスは、本明細書に記載したシステムおよび技術を使用して割り当ておよび管理することができる。
【００７６】
一般的に、本明細書に記載された技術は、（ｉ）ネットワークメンバ間の常時の完全な接続が保証されておらず、（ｉｉ）ピアアドレスを割り当てるこができるアドレス空間がローカルに限定されているアドホックネットワーク環境で使用することができる。そのようなアドホックネットワークでは、ピアデバイスは、オンオフすることができ（有線もしくは無線ネットワークの場合）、または、アドホックネットワークを構成する一部の範囲に出入りすることができる（無線ネットワークの場合）。
【００７７】
図５は、一般的にネットワークアドレスの割り当て関し、特にアドホックネットワークにおける階層的アドレス割り当てに関する技術をサポートする例示的デバイスのブロックレベル図である。図５に示すように、デバイス５００は、不揮発性メモリ５０６と通信する少なくとも１つのコントローラ５０２、揮発性メモリ５０８、およびネットワーク物理層ユニット５１０を備えることができる。さらに、コントローラ５０２は、ローカルデータストアユニット５１２、メッセージ生成ユニット５１６、メッセージ構文解析ユニット５１８、およびネットワークサービス接続ユニット５２０と通信することができる。
【００７８】
デバイス５００に含まれる特性は、たとえば、ラップトップコンピュータ、携帯電話、デジタルカメラ、メディアプレーヤ等の一つ以上の移動体電子デバイス内に統合することができる。デバイス５００が組み込まれた移動体電子デバイスは、図１Ａ−１Ｄおよび図４に示したように、アドホック無線ネットワークに接続することができる。こうすると、デバイス５００は、デバイス５００が組み込まれた移動体デバイスと、利用可能なアドホックモード無線ネットワークを介して提供されるサービスとの間に接続性が提供される。
【００７９】
いくつかの実施形態では、ネットワーク物理層ユニット５１０、たとえば、開放型システム間相互接続（ＯＳＩ）モデルのレイヤ１もしくは物理層、が実行する機能は、電子デバイスに付加されたネットワークインターフェースカード（ＮＩＣ）によって、または、電子デバイスの回路に組み込まれた物理層ユニットによって、実行することができる。コントローラ５０２およびＯＳＩモデルまたはその他のネットワーク通信モデルの後続層が実行する機能は、たとえば、ラップトップコンピュータ等の電子デバイスに含まれる汎用マイクロプロセッサによって実行されるソフトウェアによって実行することができ、または、たとえば、スマートホン、デジタルカメラ、およびメディアプレーヤ等の電子デバイスに含まれる別のプロセッサによって実行することができる。
【００８０】
コントローラ５０２は、ＩＥＥＥ８０２．１１に記載され、ネットワークアドレスの割り当て、より具体的には、移動体無線アドホックネットワークにおける階層的アドレス割り当てをサポートするべく本明細書に詳細に記載したとおりに修正されたアドホックネットワーク規格等の既存のアドホックネットワーク規格にしたがってネットワーク物理層ユニット５１０を介して実行されるメッセージの送受信に関する処理を制御することができる。揮発性メモリ５０８によって、コントローラ５０２は、プログラム命令を実行するべくローカルメモリに格納し、格納したプログラム命令の実行に必要な一時的な変数を記憶かつ保持することができるようになる。不揮発性メモリ５０６によって、コントローラ５０２は、より大容量のデータおよびプログラム命令を、コントローラ５０２によって後に実行するべく、アクセスして取得することができるようになる。このような命令を実行した結果実行されるプロセスの例は、本明細書に、図２、３Ａおよび３Ｂを参照して記載されている。より大容量のデータの例として、ローカルデータストアユニット５１２が格納する情報がある。
【００８１】
ローカルデータストアユニット５１２は、デバイス５００が共通アドホックネットワークのメンバになった結果、または、デバイス５００がローカルのメッセージング活動を受動的に走査および監視した結果、デバイス５００が受信した、たとえば、ビーコン、プローブ要求、パブリックアクションフレーム、および／またはプローブ応答等のメッセージの送信元である検出したピアデバイスについての情報をローカルデータストアとして構築および維持することができる。ピアデバイスは、独立したデバイス、またはデバイス５００が接続したのと同一のアドホックネットワークのメンバであってよい。
【００８２】
たとえば、ローカルデータストアユニット５１２に維持される情報は、デバイス５００の送信範囲内の各ピアデバイスについて、ネットワークアドレス、ユーザフレンドリネーム、そのピアデバイスが提供する各サービスのＵＵＩＤを含むことができる。データストアエントリは、ピアデバイスのＭＡＣアドレスをローカルデータストアの主キーとして使用することができる。ローカルデータストアは、ピアデバイスについての情報、たとえば、ピアデバイスの選択ネットワークアドレス、ユーザフレンドリネーム、そのピアデバイスが提供する各サービスのユニバーサルユニーク識別子（ＵＵＩＤ）等を含むことができる。ローカルデータストアユニット５１２がローカルデータストアに格納した情報は、コントローラ５０２から、および／または、ネットワークサービス接続ユニット５２０またはメッセージ生成ユニット５１６から直接に、受信することができる。
【００８３】
メッセージ構文解析ユニット５１８は、ネットワーク物理層ユニット５１０からメッセージを受信し、受信したメッセージの内容を構文解析して、コントローラ５０２および／またはローカルデータストアユニット５１２に渡すことができるデータを取得することができる。たとえば、メッセージ構文解析ユニット５１８は、受信したメッセージを構文解析し、メッセージヘッダからＭＡＣアドレスおよびその他の情報を取得することができ、また、以下により詳細に記載するように、ネットワークアドレス割り当て、より具体的には、移動体無線アドホックネットワークにおける階層的アドレス割り当てをサポートする情報等の、メッセージ内に含まれる情報を構文解析して取得することができる。受信したメッセージから取得した情報は、さらなる処理または意思決定のためにコントローラ５０２に渡すことができ、および／または、取得した情報の一部は、ローカルデータストアのアップデートを生成するために直接にローカルデータストアユニット５１２に渡すことができる。さらに、コントローラ５０２は、ローカルデータストアユニット５１２に、ローカルデータストアに格納された情報を、メッセージ構文解析ユニット５１８から受信したピアデバイス情報に基づいて更新するよう命令することができる。あるデバイスのローカルデータストアに格納されたピアデバイスのエントリは、設定可能な期間、たとえば５分以内に対応するピアデバイスからビーコン、プローブ要求、パブリックアクションフレーム、および／またはプローブ応答等のメッセージを受信しなかった場合、期限切れとして、当該デバイスのローカルデータストアから削除するようにすることができる。
【００８４】
メッセージ生成ユニット５１６は、コントローラ５０２の命令により、無線ブロードキャスト範囲内のデバイスに送信するアドホックメッセージを生成することができる。生成するメッセージは、本明細書に記載するように、ビーコンメッセージ、プローブ要求、パブリックアクションフレーム、プローブ応答、もしくは、その他のメッセージのうちの１つであってよい。たとえば、コントローラ５０２から生成するべきメッセージの種類を指定されると、メッセージ生成ユニット５１６は、現在のデバイス情報を読み出して、デバイスのローカルデータストアユニット５１２にローカルに格納されているアドホックネットワーク識別子、ネットワークメンバシップのフィンガープリント等（これらに限定されない）を含む情報を生成することができる。さらに、ビーコンメッセージ、プローブ要求、パブリックアクションフレーム、プローブ応答等の生成するべきメッセージの種類に基づいて、メッセージ生成ユニット５１６は、コントローラ５０２から追加的な情報を受信することができ、および／または、本明細書に記載の通りにローカルデータストアユニット５１２から追加的な情報を要求することができる。メッセージを生成したら、メッセージ生成ユニット５１６は、ネットワーク物理層ユニット５１０にメッセージを送って送信してもらうことができる。
【００８５】
ネットワークサービス接続ユニット５２０は、所望のサービスを取得するべくアドホックネットワークを介してデバイス５００がアクセスすることができるピアデバイスを検出するとき、コントローラ５０２を補助することができる。たとえば、図１Ａ−１Ｄおよび図４を参照して本明細書に記載したように、ネットワークサービス接続ユニット５２０は、ローカルデータストアユニット５１２を検索して、ピアデバイスに対応付けてリストされた所望のサービスを見つけ出してよい。所望のサービスを見つけたら、ネットワークサービス接続ユニット５２０は、コントローラ５０２に、必要なネットワーク情報、たとえばＭＡＣアドレス、基本サービスセット識別子（ＢＳＳＩＤ）等を供給し、見つけ出したピアデバイスに対してコントローラ５０２がアドホックモード接続を構築して、アドホックネットワークに接続されたピアデバイスを介して利用可能なサービスにデバイス５００がアクセスできるようにすることができる。
【００８６】
いくつかの実施形態を詳細に記載したが、多様な変更が可能である。本明細書に記載した機能的動作を含む開示した主題は、一つ以上のデータ処理装置に記載した動作を実行させるプログラム（たとえば、メモリ装置、ストレージ装置、機械可読ストレージサブストレート、もしくはその他の物理的機械可読媒体またはこれらのうち一つ以上を組み合わせたものであってよいコンピュータ可読媒体に符号化されたプログラム等）を含む、本明細書に開示した構成手段およびその構成の均等物等の、電子回路、コンピュータハードウェア、ファームウェア、ソフトウェア、もしくはこれらを組み合わせたもので実装することができる。
【００８７】
「データ処理装置」という用語は、たとえば、プログラマブルプロセッサ、コンピュータ、複数のプロセッサもしくはコンピュータ等のデータを処理するためのあらゆる装置、デバイス、および機械を包含する。装置は、ハードウェアに加えて、対象のコンピュータプログラムの実行環境を構築するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、もしくはこれらのうち一つ以上を組み合わせたものを構築するコードを備えてよい。
【００８８】
プログラム（コンピュータプログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる）は、コンパイルもしくはインタープリットされた言語、または宣言型もしくは手続き型の言語等の任意の形式のプログラミング言語で記述してよく、スタンドアロンプログラム、または、モジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境で使用されるのに適したその他のユニット等の任意の形式で配備することができる。プログラムは、必ずしも、ファイルシステムのファイルに対応しない。プログラムは、その他のプログラムもしくはデータ（たとえば、マークアップ言語文書形式で格納される一つ以上のスクリプト）を保有するファイルの一部に格納することができ、対象となっているプログラム専用の単一のファイルに格納することができ、または、複数の編成ファイル（たとえば、一つ以上のモジュール、サブプログラム、またはコードのいくつかの部分を格納する複数のファイル）に格納することができる。プログラムは、一つのコンピュータによって、または、一つのサイトに配置された複数のコンピュータもしくは複数のサイトに分散され通信ネットワークで相互接続された複数のコンピュータによって実行されるように配備することができる。
【００８９】
本明細書は多くの詳細を含むが、これらは、特許請求の範囲に対する限定と解釈されるべきでなく、特定の実施形態に特有の特性の記載と解釈されるべきである。本明細書に別々の実施形態で記載した所定の特性を、一つの実施形態に組み合わせて実施することができる。反対に、一つの実施形態に記載した多様な特性を、複数の実施形態で別々に、または、任意のサブコンビネーションで実施することができる。さらに、所定の組み合わせの場合に機能を果たすものとして複数の特性を記載し、さらに、その組み合わせで当初は権利請求したとしても、権利請求した組み合わせにおける一つ以上の特性を場合によっては組み合わせから排除することができ、また、権利請求した組み合わせをサブコンビネーションまたはサブコンビネーションの変形とすることができる。
【００９０】
同じく、図面において動作を特定の順序で図示したが、これらの動作を、図示した特定の順序または順次的な順序で実行する必要があるものと理解されるべきではなく、または、所定の結果を達成するには、図示の動作の全てを実行する必要があるものと理解されるべきではない。所定の実施形態では、多重タスキングおよび並列処理が有利であるかもしれない。さらに、上記の実施形態における多様なシステムコンポーネントの分割は、全ての実施形態でこのような分割が必要であるものと理解されるべきではない。
【００９１】
その他の実施形態も以下の特許請求の範囲に含まれる。
［項目１］
アドホックネットワークのメンバでないデバイスによって、前記アドホックネットワークのメンバである所定のデバイスを経由して、前記アドホックネットワークへの参加を要求する段階と、
前記アドホックネットワークのメンバでない前記デバイスによって、前記所定のデバイスから、（ｉ）要求元の前記デバイスのアドレス、および（ｉｉ）将来の要求元デバイスに割り当てるべき有限数のアドレス、を表す情報を含む応答を受信する段階と、
前記有限数のアドレスのうち、前記デバイスが将来の要求元デバイスに割り当てるアドレスの出所としての一部を、前記アドホックネットワークのメンバでない前記デバイスによって指定する段階と
を備える方法。
［項目２］
受信した前記応答は、前記所定のデバイスが要求元の前記デバイスに割り当てた前記アドレス、および、それぞれが、将来の要求元デバイスに割り当てるべき所定数のアドレスを含む複数のアドレスサブセットに含まれるアドレスを表す情報を含み、
前記有限数のアドレスのうち、前記デバイスが将来の要求元デバイスに割り当てるアドレスの出所として指定した前記一部は、前記複数のアドレスサブセットのうちの一つである
項目１に記載の方法。
［項目３］
前記所定のデバイスから受信した前記アドレスは、インターネットプロトコルバージョン４（ＩＰｖ４）アドレスである項目２に記載の方法。
［項目４］
前記複数のアドレスサブセットのそれぞれにおいて、将来の要求元デバイスに割り当てるべき前記所定数のアドレスは、一つのＩＰｖ４アドレスに含まれるビットの数と同じ数のビットを含むビットマスクによって表され、
前記ビットマスクに含まれるバイナリ値１は、前記所定数のＩＰｖ４アドレスの固定ビットを定義し、
前記ビットマスクに含まれるバイナリ値０は、前記所定数のＩＰｖ４アドレスの範囲割り当ての一部であるビットを定義する
項目３に記載の方法。
［項目５］
将来の要求元デバイスに割り当てるべき前記有限数のアドレスを表す前記情報に基づいて、要求元の前記デバイスに前記アドレスを自己割り当てする段階と、
自己割り当てした前記アドレスを前記所定のデバイスに通知する段階と
をさらに備える項目１に記載の方法。
［項目６］
前記所定のデバイスから受信した前記応答は、前記所定のデバイスのアドレスをさらに含む項目１から５のいずれか１項に記載の方法。
［項目７］
前記所定のデバイスから受信した前記応答は、前記アドホックネットワークに対応付けられたサブネットマスクをさらに含む項目１から６のいずれか１項に記載の方法。
［項目８］
前記アドホックネットワークへの参加を要求するべく経由する前記アドホックネットワークの前記所定のデバイスを、複数のデバイスのうちから、前記アドホックネットワークのメンバでない前記デバイスによって、ランダムに選択する段階をさらに備える項目１から７のいずれか１項に記載の方法。
［項目９］
前記アドホックネットワークへの参加を要求するべく経由する前記アドホックネットワークの前記所定のデバイスを、複数のデバイスのうちから、前記アドホックネットワークのメンバでない前記デバイスによって、所定の基準に基づき選択する段階をさらに備える項目１から７のいずれか１項に記載の方法。
［項目１０］
独立基本サービスセット（ＩＢＳＳ）ネットワークのデバイスによって、参加者デバイスから、前記ＩＢＳＳネットワークに登録する要求を受信する段階と、
前記ＩＢＳＳネットワークの前記デバイスによって、前記参加者デバイスに、（ｉ）前記参加者デバイスのアドレス、および（ｉｉ）将来の参加者デバイスに割り当てるべき有限数のアドレス、を表す情報で応答する段階と
を備える方法。
［項目１１］
前記参加者デバイスに応答する段階は、
前記デバイスによって、前記参加者デバイスに前記アドレスを割り当てる段階と、
前記参加者デバイスに割り当てた前記アドレスと、それぞれが、将来の参加者デバイスに割り当てるべき所定数のアドレスを含む複数のアドレスサブセットに含まれるアドレスを表す情報とを提供する段階と
を有する項目１０に記載の方法。
［項目１２］
前記複数のアドレスサブセットに含まれるアドレスは、インターネットプロトコルバージョン４（ＩＰｖ４）アドレスである項目１１に記載の方法。
［項目１３］
前記複数のアドレスサブセットのそれぞれにおいて、将来の参加者デバイスに割り当てるべき前記所定数のアドレスは、一つのＩＰｖ４アドレスに含まれるビットの数に等しい数のビットを含むビットマスクによって表され、前記ビットマスクに含まれるバイナリ値１は、前記所定数のＩＰｖ４アドレスの固定ビットを定義し、前記ビットマスクに含まれるバイナリ値０は、前記所定数のＩＰｖ４アドレスの範囲割り当ての一部であるビットを定義する項目１２に記載の方法。
［項目１４］
前記参加者デバイスに前記アドレスを割り当てる段階は、
前記複数のアドレスサブセットのうち、将来の参加者デバイスに対して前記デバイスによって割り当てるアドレスの出所として前記デバイスによって指定された一つのアドレスサブセットに、少なくとも一つの利用可能なアドレスがあることを前記デバイスによって判定する段階と、
指定された前記アドレスサブセットに少なくとも一つの利用可能なアドレスがあると判定したことに応じて、指定された前記アドレスサブセットから、前記デバイスによって、前記参加者デバイスに前記アドレスを割り当てる段階と
を含み
前記参加者デバイスに割り当てた前記アドレスと、複数のアドレスサブセットに含まれるアドレスを表す情報とを提供する段階は、
前記複数のアドレスサブセットには、指定された前記アドレスサブセットに加えて、将来の参加者デバイスに割り当てるアドレスの出所としての少なくとも一つのアドレスサブセットがあることを前記デバイスによって判定する段階と、
（ｉ）前記デバイスが前記参加者デバイスに割り当てた前記アドレスと、（ｉｉ）追加的な前記少なくとも一つのアドレスサブセットと、を含む応答を、前記デバイスによって前記参加者デバイスに送信する段階と
を含む
項目１１に記載の方法。
［項目１５］
前記参加者デバイスが自己割り当てした前記アドレスを含む通知を前記参加者デバイスから受信する段階をさらに備える項目１０に記載の方法。
［項目１６］
ハードウェアプロセッサと、
命令を格納するメモリと
を備えるデバイスであって、
前記命令は、前記ハードウェアプロセッサによって実行されると、前記デバイスに、
アドホックネットワークのメンバである一つ以上の移動体デバイスと通信する手順と、
前記アドホックネットワークのメンバでないデバイスから、前記アドホックネットワークに参加する要求を受信する手順と、
将来の要求元デバイスに対して前記デバイスによって割り当てるアドレスの出所として前記デバイスによって指定された、有限数のアドレスを含むアドレスサブセットに、少なくとも一つの未割り当てのアドレスがあるかを、前記要求に応答して判定する手順と、
指定された有限数のアドレスを含む前記アドレスサブセットに、少なくとも一つの未割り当てのアドレスがあると判定したことに応じて、指定された有限数のアドレスを含む前記アドレスサブセットから、未割り当てのアドレスを要求元の前記デバイスに割り当てる手順と、
指定された有限数のアドレスを含む前記アドレスサブセットに加えて、将来の要求元デバイスに割り当てるアドレスの出所としての、有限数のアドレスを含む少なくとも一つのアドレスサブセットがあるかを判定する手順と、
有限数のアドレスを含む追加的な少なくとも一つのアドレスサブセットがあると判定したことに応じて、前記デバイスが要求元の前記デバイスに割り当てた前記アドレスと、有限数のアドレスを含む追加的な前記少なくとも一つのアドレスサブセットを表す情報と、を含む応答を要求元の前記デバイスに送信する手順と、
有限数のアドレスを含む追加的なアドレスサブセットがないと判定したことに応じて、前記デバイスが要求元の前記デバイスに割り当てた前記アドレスを含む応答を要求元の前記デバイスに送信する手順と、
指定された有限数のアドレスを含む前記アドレスサブセットに未割り当てのアドレスがないと判定したことに応じて、前記要求を受け付けない手順と
を実行させる
デバイス。
［項目１７］
有限数のアドレスを含む前記アドレスサブセットに含まれるアドレスは、インターネットプロトコルバージョン４（ＩＰｖ４）アドレスである項目１６に記載のデバイス。
［項目１８］
有限数のアドレスを含む複数の前記アドレスサブセットのそれぞれは、一つのＩＰｖ４アドレスに含まれるビットの数に等しい数のビットを含むビットマスクによって表され、
前記ビットマスクに含まれるバイナリ値１は、有限数のアドレスを含む複数の前記アドレスサブセットのそれぞれに含まれる前記ＩＰｖ４アドレスの固定ビットを定義し、
前記ビットマスクに含まれるバイナリ値０は、有限数のアドレスを含む複数の前記アドレスサブセットのそれぞれに含まれる前記ＩＰｖ４アドレスの範囲割り当ての一部であるビットを定義する
項目１７に記載のデバイス。
［項目１９］
要求元の前記デバイスに送信される前記応答は、前記デバイスのアドレスをさらに含む項目１６から１８のいずれか１項に記載のデバイス。
［項目２０］
要求元の前記デバイスに送信される前記応答は、前記アドホックネットワークに対応付けられたサブネットマスクをさらに含む項目１６から１９のいずれか１項に記載のデバイス。
【図１Ａ】
0005971488.tif 000002
【図１Ｂ】
0005971488.tif 000003
【図１Ｃ】
0005971488.tif 000004
【図１Ｄ】
0005971488.tif 000005
【図２】
0005971488.tif 000006
【図３Ａ】
0005971488.tif 000007
【図３Ｂ】
0005971488.tif 000008
【図４】
0005971488.tif 000009
【図５】
0005971488.tif 000010