特許第5971488号(P5971488)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ マーベル ワールド トレード リミテッドの特許一覧

<>
  • 特許5971488-ネットワークアドレスの割り当て 図000002
  • 特許5971488-ネットワークアドレスの割り当て 図000003
  • 特許5971488-ネットワークアドレスの割り当て 図000004
  • 特許5971488-ネットワークアドレスの割り当て 図000005
  • 特許5971488-ネットワークアドレスの割り当て 図000006
  • 特許5971488-ネットワークアドレスの割り当て 図000007
  • 特許5971488-ネットワークアドレスの割り当て 図000008
  • 特許5971488-ネットワークアドレスの割り当て 図000009
  • 特許5971488-ネットワークアドレスの割り当て 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5971488
(24)【登録日】2016年7月22日
(45)【発行日】2016年8月17日
(54)【発明の名称】ネットワークアドレスの割り当て
(51)【国際特許分類】
   H04W 8/26 20090101AFI20160804BHJP
   H04W 84/18 20090101ALI20160804BHJP
【FI】
   H04W8/26 110
   H04W84/18
【請求項の数】9
【全頁数】29
(21)【出願番号】特願2013-533902(P2013-533902)
(86)(22)【出願日】2011年10月7日
(65)【公表番号】特表2013-539950(P2013-539950A)
(43)【公表日】2013年10月28日
(86)【国際出願番号】US2011055476
(87)【国際公開番号】WO2012051078
(87)【国際公開日】20120419
【審査請求日】2014年9月30日
(31)【優先権主張番号】61/405,574
(32)【優先日】2010年10月21日
(33)【優先権主張国】US
(31)【優先権主張番号】61/393,814
(32)【優先日】2010年10月15日
(33)【優先権主張国】US
【前置審査】
(73)【特許権者】
【識別番号】502188642
【氏名又は名称】マーベル ワールド トレード リミテッド
(74)【代理人】
【識別番号】110000877
【氏名又は名称】龍華国際特許業務法人
(72)【発明者】
【氏名】ランバート、ポール エー.
(72)【発明者】
【氏名】ファン、フランク
【審査官】 伊東 和重
(56)【参考文献】
【文献】 国際公開第2010/083887(WO,A1)
【文献】 特表2012−516087(JP,A)
【文献】 特開2006−060536(JP,A)
【文献】 特開2005−064646(JP,A)
【文献】 特開2003−273883(JP,A)
【文献】 特表2010−520676(JP,A)
【文献】 Mansoor,IP ADDRESS ASSIGNMENT IN A MOBILE AD HOC NETWORK,MILCOM 2002. Proceedings,2002年10月10日,Volume:2,p.856-861
(58)【調査した分野】(Int.Cl.,DB名)
H04B 7/24−7/26
H04W 4/00−99/00
(57)【特許請求の範囲】
【請求項1】
独立基本サービスセットネットワーク(IBSSネットワーク)のデバイスによって、参加者デバイスから、前記IBSSネットワークに登録する要求を受信する段階と、
前記IBSSネットワークの前記デバイスによって、前記参加者デバイスに、(i)前記参加者デバイスの単一のアドレス、および(ii)将来の参加者デバイスに割り当てるべき有限数のアドレス、を表す情報で応答する段階と
を備え、
前記参加者デバイスに応答する段階は、
複数のアドレスサブセットのうち、将来の参加者デバイスに対して前記デバイスによって割り当てるアドレスの出所として前記デバイスによって指定されたアドレスサブセットに含まれる前記単一のアドレスを、前記デバイスによって前記参加者デバイスに割り当てる段階と、
前記参加者デバイスに割り当てた前記単一のアドレスと、前記複数のアドレスサブセットのうち、将来の参加者デバイスに対して前記デバイスによって割り当てるアドレスの出所として前記デバイスによって指定されなかった一つ又は複数のアドレスサブセットを表す情報とを提供する段階と
を有し、
前記一つ又は複数のアドレスサブセットのそれぞれが、将来の参加者デバイスに割り当てるべき所定数のアドレスを含む方法。
【請求項2】
前記複数のアドレスサブセットに含まれるアドレスは、インターネットプロトコルバージョン4(IPv4)アドレスである請求項1に記載の方法。
【請求項3】
前記一つ又は複数のアドレスサブセットのそれぞれにおいて、将来の参加者デバイスに割り当てるべき前記所定数のアドレスは、一つのIPv4アドレスに含まれるビットの数に等しい数のビットを含むビットマスクによって表され、前記ビットマスクに含まれるバイナリ値1は、前記所定数のIPv4アドレスの固定ビットを定義し、前記ビットマスクに含まれるバイナリ値0は、前記所定数のIPv4アドレスの範囲割り当ての一部であるビットを定義する請求項2に記載の方法。
【請求項4】
前記参加者デバイスに前記単一のアドレスを割り当てる段階は、
前記複数のアドレスサブセットのうち、将来の参加者デバイスに対して前記デバイスによって割り当てるアドレスの出所として前記デバイスによって指定された前記アドレスサブセットに、少なくとも一つの利用可能なアドレスがあることを前記デバイスによって判定する段階と、
指定された前記アドレスサブセットに少なくとも一つの利用可能なアドレスがあると判定したことに応じて、指定された前記アドレスサブセットから、前記デバイスによって、前記参加者デバイスに前記単一のアドレスを割り当てる段階と
を含み
前記参加者デバイスに割り当てた前記アドレスと、一つ又は複数のアドレスサブセットを表す情報とを提供する段階は、
前記複数のアドレスサブセットには、指定された前記アドレスサブセットに加えて、将来の参加者デバイスに割り当てるアドレスの出所としての少なくとも一つのアドレスサブセットがあることを前記デバイスによって判定する段階と、
(i)前記デバイスが前記参加者デバイスに割り当てた前記単一のアドレスと、(ii)追加的な前記少なくとも一つのアドレスサブセットと、を含む応答を、前記デバイスによって前記参加者デバイスに送信する段階と
を含む
請求項1に記載の方法。
【請求項5】
ハードウェアプロセッサと、
命令を格納するメモリと
を備えるデバイスであって、
前記命令は、前記ハードウェアプロセッサによって実行されると、前記デバイスに、
アドホックネットワークのメンバである一つ以上の移動体デバイスと通信する手順と、
前記アドホックネットワークのメンバでないデバイスから、前記アドホックネットワークに参加する要求を受信する手順と、
将来の要求元デバイスに対して前記デバイスによって割り当てるアドレスの出所として前記デバイスによって指定された、有限数のアドレスのサブセットに、少なくとも一つの未割り当てのアドレスがあるかを、前記要求に応答して判定する手順と、
指定された前記有限数のアドレスのサブセットに、少なくとも一つの未割り当てのアドレスがあると判定したことに応じて、指定された前記有限数のアドレスのサブセットから、未割り当ての単一のアドレスを要求元の前記デバイスに割り当てる手順と、
指定された前記有限数のアドレスのサブセットに加えて、将来の要求元デバイスに割り当てるアドレスの出所としての有限数のアドレスのサブセットが少なくとも一つあるかを判定する手順と、
追加的な有限数のアドレスのサブセットが少なくとも一つあると判定したことに応じて、前記デバイスが要求元の前記デバイスに割り当てた前記単一のアドレスと、前記少なくとも一つの追加的な有限数のアドレスのサブセットを表す情報と、を含む応答を要求元の前記デバイスに送信する手順と、
追加的な有限数のアドレスのサブセットがないと判定したことに応じて、前記デバイスが要求元の前記デバイスに割り当てた前記単一のアドレスを含む応答を要求元の前記デバイスに送信する手順と、
指定された前記有限数のアドレスのサブセットに未割り当てのアドレスがないと判定したことに応じて、前記要求を受け付けない手順と
を実行させる
デバイス。
【請求項6】
前記有限数のアドレスのサブセットに含まれるアドレスは、インターネットプロトコルバージョン4(IPv4)アドレスである請求項5に記載のデバイス。
【請求項7】
前記有限数のアドレスのサブセットのそれぞれは、一つのIPv4アドレスに含まれるビットの数に等しい数のビットを含むビットマスクによって表され、
前記ビットマスクに含まれるバイナリ値1は、前記有限数のアドレスのサブセットのそれぞれに含まれる前記IPv4アドレスの固定ビットを定義し、
前記ビットマスクに含まれるバイナリ値0は、前記有限数のアドレスのサブセットのそれぞれに含まれる前記IPv4アドレスの範囲割り当ての一部であるビットを定義する
請求項6に記載のデバイス。
【請求項8】
要求元の前記デバイスに送信される前記応答は、前記デバイスのアドレスをさらに含む請求項5から7のいずれか1項に記載のデバイス。
【請求項9】
要求元の前記デバイスに送信される前記応答は、前記アドホックネットワークに対応付けられたサブネットマスクをさらに含む請求項5から8のいずれか1項に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、一般的に、ネットワークアドレスの割り当てに関する技術に関し、特に、移動体無線アドホックネットワークにおける階層的アドレス割り当てに関する。
【0002】
[関連出願の相互参照] 本願は、2010年10月21日出願の米国仮出願第61/405,574号および2010年10月15日出願の米国仮出願第61/393,814号の優先権を主張し、両出願ともその全体を本明細書に参照として組み込む。
【背景技術】
【0003】
2つ以上の移動体デバイスは、無線ネットワークの無線クライアントとして、互いに通信することができる。このような移動体デバイスの例として、ラップトップコンピュータ、タブレットコンピュータ、スマートホン、携帯情報端末(PDA)、デジタルカメラ、児童監視装置等がある。無線ネットワークは、2つ以上の無線クライアントの通信が無線アクセスポイントを介してブリッジされる場合は、インフラストラクチャモードで動作しているとされる。無線ネットワークは、2つ以上の移動体デバイスが、無線アクセスポイントを使用せずに直接互いに通信する場合は、アドホックモードで動作しているとされる。アドホックモードは、一般的に、無線ピアツーピア(P2P)モードとも呼ばれる。アドホックモードの無線クライアントは、独立基本サービスセット(IBSS)を形成する。本明細書では、アドホックモードで動作し、移動体デバイスを含む無線ネットワークを、アドホックネットワーク、IBSSネットワーク、もしくは無線P2Pネットワークと、交換可能に呼ぶ。
【0004】
いくつかのIBSSネットワークでは、無線クライアントの一つ、たとえば、あるIBSSネットワークにおける第1の無線メンバとなった移動体デバイスが、当該IBSSネットワークを識別するビーコンを周期的に送信して、新しいメンバを認証することができる。したがって、この無線クライアントは、割り当てるアドレスが重複しないように、新しいメンバにアドレスを割り当てる動的ホスト構成プロトコル(DHCP)サーバとして動作する。当該IBSSネットワークに参加するには、移動体デバイスは、DHCPサーバとして動作する無線クライアントを探して、当該IBSSネットワークでのアドレスを取得する。
【0005】
ゼロコンフィギュレーションネットワークとして知られる別のIBSSネットワークでは、移動体デバイスは、ネットワークに参加するべく、候補アドレス、たとえば、予約されたアドレス範囲に含まれるアドレスを選択し、アドレス解決プロトコル(ARP)プローブを使用して候補アドレスが当該ネットワーク上で使用されていないことを確認する。ゼロコンフィグレーションネットワークで使用されるアドレッシング法は、リンクローカルアドレッシングと呼ばれ、理想的には当該IBSSネットワークの全メンバに送信されるべきマルチキャスト送信が必要である。ゼロコンフィギュレーションネットワークに参加している移動体デバイスが、選択された候補アドレスがゼロコンフィギュレーションネットワーク内で既に使用されていると判断すると、当該移動体デバイスが新しい候補アドレスを選択する。
【発明の概要】
【発明が解決しようとする課題】
【0006】
本願は、ネットワークアドレスを割り当てるための、たとえば、移動体無線アドホックネットワークにおいてアドレスを階層的に割り当てるためのシステムおよび技術を記載する。
【課題を解決するための手段】
【0007】
本願の観点によると、方法は、アドホックネットワークのメンバでないデバイスによって、アドホックネットワークのメンバである所定のデバイスを経由して、アドホックネットワークへの参加を要求する段階を備える。本方法は、(i)要求元のデバイスのアドレス、および(ii)将来の要求元デバイスに割り当てるべき有限数のアドレス、を表す情報を含む応答を所定のデバイスから受信する段階をさらに備える。本方法は、有限数のアドレスのうち、デバイスが将来の要求元デバイスに割り当てるアドレスの出所としての一部を指定する段階をさらに備える。
【0008】
実施形態は、以下の特性のうち一つ以上を含むことができる。いくつかの実施形態では、受信した応答は、所定のデバイスが要求元のデバイスに割り当てたアドレスと、複数のアドレスサブセットに含まれるアドレスを表す情報とを含むことができる。複数のアドレスサブセットのそれぞれは、将来の要求元デバイスに割り当てるべき所定数のアドレスを含むことができる。さらに、有限数のアドレスのうち、デバイスが将来の要求元デバイスに割り当てるアドレスの出所として指定した一部は、複数のアドレスサブセットのうちの一つとすることができる。たとえば、所定のデバイスから受信したアドレスは、インターネットプロトコルバージョン4(または6)のIPv4(またはIPv6)アドレスであってよい。さらに、複数のアドレスサブセットのそれぞれにおいて、将来の要求元デバイスに割り当てるべき所定数のアドレスは、一つのIPv4アドレスに含まれるビットの数に等しい数のビットを含むビットマスクによって表すことができ、ビットマスクに含まれるバイナリ値1は、所定数のIPv4アドレスの固定ビットを定義し、ビットマスクに含まれるバイナリ値0は、所定数のIPv4アドレスの範囲割り当ての一部であるビットを定義する。
【0009】
いくつかの実施形態では、本方法は、将来の要求元デバイスに割り当てるべき有限数のアドレスを表す情報に基づいて、要求元のデバイスにアドレスを自己割り当てする段階と、自己割り当てしたアドレスを所定のデバイスに通知する段階とを備えることができる。いくつかの場合、所定のデバイスから受信した応答は、所定のデバイスのアドレスを含むことができる。その他の場合、所定のデバイスから受信した応答は、アドホックネットワークに対応付けられたサブネットマスクをさらに含むことができる。いくつかの実施形態では、本方法は、アドホックネットワークへの参加を要求するべく経由するアドホックネットワークの所定のデバイスを、複数のデバイスのうちから、アドホックネットワークのメンバでないデバイスによって、ランダムに選択する段階を備えることができる。いくつかの実施形態では、本方法は、アドホックネットワークへの参加を要求するべく経由するアドホックネットワークの所定のデバイスを、複数のデバイスのうちから、アドホックネットワークのメンバでないデバイスによって、所定の基準に基づいて選択する段階を備えることができる。
【0010】
本願の別の観点によると、方法は、独立基本サービスセット(IBSS)ネットワークのデバイスによって、参加者デバイスから、IBSSネットワークに登録する要求を受信する段階を備える。本方法は、(i)参加者デバイスのアドレス、および(ii)将来の参加者デバイスに割り当てるべき有限数のアドレス、を表す情報で、参加者に応答する段階をさらに備える。
【0011】
実施形態は、以下の特性のうち一つ以上を含むことができる。いくつかの実施形態では、参加者に応答する段階は、所定のデバイスによって参加者にアドレスを割り当てる段階と、参加者に割り当てたアドレス、および複数のアドレスサブセットに含まれるアドレスを表す情報を提供する段階とを有することができる。複数のアドレスサブセットのそれぞれは、将来の参加者に割り当てるべき所定数のアドレスを含むことができる。たとえば、複数のアドレスサブセットに含まれるアドレスは、インターネットプロトコルバージョン4(または6)のIPv4(またはIPv6)アドレスとすることができる。複数のアドレスサブセットのそれぞれにおいて、将来の参加者デバイスに割り当てるべき所定数のアドレスは、一つのIPv4アドレスに含まれるビットの数に等しい数のビットを含むビットマスクによって表すことができる。たとえば、ビットマスクに含まれるバイナリ値1は、所定数のIPv4アドレスの固定ビットを定義することができ、ビットマスクに含まれるバイナリ値0は、所定数のIPv4アドレスの範囲割り当ての一部であるビットを定義することができる。
【0012】
いくつかの実施形態では、参加者デバイスにアドレスを割り当てる段階は、複数のアドレスサブセットのうち、将来の参加者デバイスに対してデバイスによって割り当てるアドレスの出所としてデバイスによって指定された一つのアドレスサブセットに、少なくとも一つの利用可能なアドレスがあることを、デバイスによって判定する段階と、指定されたサブセット少なくとも一つの利用可能なアドレスがあると判定したことに応じて、指定されたサブセットから、デバイスによって、参加者デバイスにアドレスを割り当てる段階とを有することができる。さらに、参加者に割り当てたアドレス、および複数のアドレスサブセットに含まれるアドレスを表す情報を提供する段階は、複数のアドレスサブセットのうちに、指定されたサブセットに加えて、将来の参加者デバイスに割り当てるアドレスの出所としての少なくとも一つのアドレスサブセットがあることをデバイスによって判定する段階と、デバイスによって、参加者デバイスに、(i)デバイスが参加者デバイスに割り当てたアドレス、および(ii)有限数のアドレスを含む追加的な少なくとも一つのアドレスサブセット、を含む応答を送信する段階とを有することができる。
【0013】
いくつかの実施形態では、本方法は、参加者デバイスから、参加者デバイスが自己割り当てしたアドレスを含む通知を受信する段階を備えることができる。
【0014】
本願の別の観点によると、デバイスは、ハードウェアプロセッサと、ハードウェアプロセッサによって実行されると、デバイスに、アドホックネットワークのメンバである一つ以上の移動体デバイスと通信する手順を含む動作を実行させる命令を格納するメモリとを備える。本動作は、アドホックネットワークのメンバでないデバイスから、アドホックネットワークに参加に参加する要求を受信する手順をさらに含む。本動作は、要求に応答して、将来の要求元デバイスに対して移動体デバイスが割り当てるアドレスの出所として移動体デバイスによって指定された有限数のアドレスを含むアドレスサブセットに、少なくとも一つの未割り当てのアドレスがあるかを判定する手順をさらに含む。本動作は、指定された有限数のアドレスを含むアドレスサブセットに、少なくとも一つの未割り当てのアドレスがあると判定したことに応じて、指定された有限数のアドレスを含むアドレスサブセットから、未割り当てのアドレスを要求元のデバイスに割り当てる手順をさらに含む。本動作は、指定された有限数のアドレスを含むアドレスサブセットに加えて、将来の要求元デバイスに割り当てるアドレスの出所としての、有限数のアドレスを含む少なくとも一つのアドレスサブセットがあるかを判定する手順をさらに含む。本動作は、有限数のアドレスを含む追加的な少なくとも一つのアドレスサブセットがあると判定したことに応答して、デバイスが要求元のデバイスに割り当てたアドレス、および有限数のアドレスを含む追加的な少なくとも一つのアドレスサブセットを表す情報を含む応答を要求元のデバイスに送信する手順をさらに含む。本動作は、有点数のアドレスを含む追加的なアドレスサブセットがないと判定したことに応じて、デバイスが要求元のデバイスに割り当てたアドレスを含む応答を要求元のデバイスに送信する手順をさらに含む。本動作は、指定された有限数のアドレスを含むアドレスサブセットに未割り当てのアドレスがないと判定したことに応じて、要求を受け付けない手順をさらに含む。
【0015】
実施形態は、以下の特性のうち一つ以上を含むことができる。いくつかの実施形態では、有限数のアドレスを含むアドレスサブセットに含まれるアドレスは、インターネットプロトコルバージョン4(または6)のIPv4(またはIPv6)アドレスとすることができる。さらに、有限数のアドレスを含む複数のアドレスサブセットのそれぞれは、一つのIPv4アドレスに含まれるビットの数に等しい数のビットを含むビットマスクによって表すことができる。たとえば、ビットマスクに含まれるバイナリ値1は、有限数のアドレスを含む各アドレスサブセットに含まれるIPv4アドレスの固定ビットを定義することができ、ビットマスクに含まれるバイナリ値0は、有限数のアドレスを含む各アドレスサブセットに含まれるIPv4アドレスの範囲割り当ての一部であるビットを定義することができる。いくつかの実施形態では、要求元のデバイスに送信される応答は、移動体デバイスのアドレスをさらに含むことができる。いくつかの実施形態では、要求元のデバイスに送信される応答は、アドホックネットワークに対応付けられたサブネットマスクをさらに含むことができる。
【0016】
記載するシステムおよび技術は、本明細書に開示する構造的手段およびその構造的な均等物等の、電子回路、コンピュータハードウェア、ファームウェア、ソフトウェア、またはそれらを組み合わせたもの等によって実施することができる。これは、一つ以上のデータ処理装置(たとえば、プログラマブルプロセッサ、中央演算処理装置等の信号処理装置)に、記載する動作を実行させるプログラムを具現化した少なくとも一つのコンピュータ可読媒体とすることができる。したがって、プログラムの実施形態は、開示する方法、システム、もしくは装置から実現することができ、装置の実施形態は、開示するシステム、コンピュータ可読媒体、もしくは方法から実現することができる。同様に、方法の実施形態は、開示するシステム、コンピュータ可読媒体、もしくは装置から実現することができ、システムの実施形態は、開示する方法、コンピュータ可読媒体、もしくは装置から実現することができる。たとえば、一つ以上の開示する実施形態を、移動体データ処理装置(たとえば、無線クライアント、携帯電話、スマートホン、PDA、モバイルコンピュータ、デジタルカメラ等)、もしくはこれらを組み合わせたもの(これらに限定されない)等の、多様なシステムおよび装置で構成することができる。
【0017】
本明細書に記載する主題の実施形態は、以下の潜在的な利点のうち一つ以上を実現するよう構成することができる。開示するシステムおよび技術を利用するIBSSネットワークのメンバは、IBSSネットワークの現在および将来のアドレスのいずれとも異なるアドレスを参加者デバイスに提供する登録係として動作することができる。このようにすると、2人のネットワークメンバが同じアドレスを保有する等のIBSSネットワーク内におけるアドレッシングの重複を回避することができる。参加者デバイスをIBSSネットワークの新しいメンバとして登録することに加えて、登録係メンバは、開示する技術を利用することで、IBSSネットワークの将来のメンバを参加させることができる登録係として、新しいネットワークメンバを動作させることができる。
【0018】
一つ以上の実施形態の詳細を、添付の図面および以下の記載に明記する。その他の特性および利点が、記載、図面、および特許請求の範囲から明らかになるかもしれない。
【図面の簡単な説明】
【0019】
図1A】移動体無線アドホックネットワークを形成するのに使用される技術のいくつかの観点を示す。
図1B】移動体無線アドホックネットワークを形成するのに使用される技術のいくつかの観点を示す。
図1C】移動体無線アドホックネットワークを形成するのに使用される技術のいくつかの観点を示す。
図1D】移動体無線アドホックネットワークを形成するのに使用される技術のいくつかの観点を示す。
【0020】
図2】アドホックネットワークに参加しようとするデバイスが使用するプロセスの例を示す。
【0021】
図3A】アドホックネットワークのメンバがアドホックネットワークに新しいデバイスを登録するべく使用するプロセスの例のいくつかの観点を示す。
図3B】アドホックネットワークのメンバがアドホックネットワークに新しいデバイスを登録するべく使用するプロセスの例のいくつかの観点を示す。
【0022】
図4】移動体無線アドホックネットワークのアーキテクチャ例を示す。
【0023】
図5】移動体無線アドホックネットワークにおいてネットワークアドレス割り当て、より具体的には、階層的アドレス割り当てをサポートするデバイスの例を示す。
【0024】
各図面において、同様の参照符号により同様の要素を示す。
【発明を実施するための形態】
【0025】
アドホックネットワークのメンバになるには、デバイスは、アドホックネットワークに対応付けられたアドレスを取得する。i)アドレスがネットワークメンバによって当該デバイスに割り当てられた場合、または、ii)当該デバイスのアドレスが自分で割り当てたものであり、少なくとも一つのネットワークメンバに通知された場合、当該デバイスのアドレスは、アドホックネットワークに対応付けられる。デバイスは、移動体デバイスであってよく、無線ネットワークは、たとえば、IBSSネットワークであってよい。
【0026】
たとえば、クラスメートのグループがスタジアムに行くとする。彼らは、カメラ機能および入力機能付きの携帯電話で写真を撮り、メモを取る。グループの各メンバは、他のクラスメートとだけ写真およびメモを共有したいとき、たとえば、個人識別番号(PIN)認証を用いてセキュアなアドホックネットワークを構築する。本明細書に記載されるシステムおよび技術は、構築済みのセキュアなアドホックネットワークに後から参加することを望むクラスメートが所有する移動体デバイスを登録するのに使用することができる。
【0027】
図1A−1Dは、移動体無線アドホックネットワーク100を形成するべく使用される技術のいくつかの観点を示す。アドホックネットワーク100のメンバになることができる移動体デバイスの例として、携帯電話、スマートホン、PDA、モバイルコンピュータ、デジタルカメラ、メディアプレーヤ、もしくはこれらを組み合わせたものが挙げられる。本明細書では、移動体デバイスは、ローマ数字で識別することができる。移動体デバイスの識別子は、当該移動体デバイスに対応付けられた媒体アクセス制御(MAC)アドレスとすることができる。たとえば、移動体デバイス「i」は、MACアドレス=iを有し、移動体デバイス「iv」は、MACアドレス=ivを有する、等である。
【0028】
アドホックネットワーク100の形成の前、移動体デバイスは、参加者としての動作(たとえば、アドホックネットワークを走査する)と、登録係としての動作(たとえば、各自のベースネットワークの形成を公告する;「基本」ネットワークは、メンバが1人の「ネットワーク」)とを交互に行うことができる。参加者として動作するとき、移動体デバイスは、既存のネットワークの登録係として動作しているその他のデバイスを走査することができる。図1Aに示す例では、参加者として動作する移動体デバイス「i」は、移動体装置「ii」、「iii」、および「iv」からの、それらが各自のベースネットワークの登録係として動作することができることを示すメッセージを検出することができる。第1の所定期間の間に参加者が登録係からこのメッセージを受信した場合、登録プロトコルを開始することができる。第1の所定期間の間に参加者が登録係からのメッセージを検出しなかった場合、移動体デバイスは、登録係として動作するべく切り替わるよう設定されている。登録係として動作する場合、アドホックネットワークのメンバでない移動体デバイスは、各自のベースネットワークを形成して、形成したベースネットワークを公告することができる。図1Aに示す例では、登録係として動作する移動体デバイス「i」は、ベースネットワークを形成し、新しく形成した自己のベースネットワークに参加を要求する他の移動体デバイスからのプローブ要求を待機することができる。移動体デバイスは、第2の所定期間の間、各自のベースネットワークの登録係として動作し、その後、上記のように参加者として動作するべく切り替わるよう設定されている。登録係が第2の所定期間の間にベースネットワークへの参加を要求する参加者からの要求を受信した場合、登録プロトコルを開始することができる。
【0029】
図1Aに示す例では、自己のベースネットワーク100の登録係として動作する移動体デバイス「i」は、自己と、ベースネットワーク100に参加しようとする他の移動体デバイスに、プライベートサブネットに対応するアドレスを割り当てることができる。たとえば、インターネットプロトコルバージョン4(IPv4)アドレスは32ビットである。IPv4サブネットマスク114は、255.0.0.0とすることができる。このIPv4サブネットマスクは24ビットであり、10.0.0.0/24と記すこともできる。したがって、ベースネットワーク100は、サブネットマスク114に対応付けられた1セット当たり224個のアドレスに対応する最大数16,777,216人のメンバを含むアドホックネットワーク100になることができる。登録係メンバ「i」が自己に割り当てた開始アドレスとしても知られるアドレス112−Aは、プライベートサブネットにおける最下位アドレスIp=10.0.0.1とすることができる。本明細書に記載されるシステムおよび技術の一部として、その他の開始アドレスよびサブネットマスクを選択することもできる。本明細書に開示される技術は、図1A−1Dおよび図4において、IPv4のコンテキストで記載されるが、開示されるシステムおよび技術は、アドホックネットワークにおいて、インターネットプロトコルバージョン6(IPv6)アドレスを階層的に割り当てるべく使用することもできる。
【0030】
登録係「i」は、自分が参加者に割り当てることができる1サブセットのアドレスを定義するビットマスク120−Aを保持することができる。ビットマスク120−Aに対応付けられた1サブセットのアドレスは、サブネットマスク114に対応付けられた1セット224個のアドレスの一部である。本明細書では、ビットマスクは、サブマスクとも呼ばれる。登録係が保持するサブマスクは、サブネットマスクと同様に構築することができる。たとえば、サブマスクのバイナリ値1は固定ビットを表し、サブマスクのバイナリ値0は、サブマスクを保持する登録係が割り当てることができるアドレス範囲の一部であるビットを定義する。図1Aに示す例では、登録係「i」は、ビット範囲1〜6において0を6個有する「11111111 11111111 11111111 11000000」によって与えられる6ビットサブマスク120−Aを保持する。自分に割り当てたIPアドレス112−A、つまりIP=10.0.0.1は、サブマスク120−Aに含まれるビット値であるビット値IP=「00000101 00000000 00000000 00000001」に対応する。(ビット値のビット範囲1〜6は、サブマスク120−Aに対応付けられたアドレス範囲に対応する。)
【0031】
一般的に、アドホックネットワークの登録係が保持するサブマスクは、1人の登録係が登録するだろう参加者の数に基づいて構築することができる。Nビットのサブマスクに対応付けられる1サブセットのアドレスに含まれるアドレスの数は2^N−1であり、Nはサブマスクに含まれるバイナリ値0の数である。したがって、図1Aでは、N=6のとき、登録係り「i」は、63個のアドレスを割り当てることができる。63個のアドレスのうち1番目のアドレスは自分に割り当てたものであるので、登録係「i」は62人の参加者を登録することができる。サブマスクに含まれるバイナリ値0の数Nによって、1つのアドホックネットワークに定義することができる異なるサブマスクの数Mも決定される。たとえば、24ビットのサブネットマスク10.0.0.0/24を使用する場合、Nは24の除数であり、M=24/N個のサブマスクを使用することができる。したがって、多様なアドホックネットワークにおけるアドレス割り当てに、2個の12ビットサブマスクの組み合わせ、3個の8ビットサブマスクの組み合わせ、4個の6ビットサブマスクの組み合わせ等を使用することができる。
【0032】
上記のように、M個のサブマスクのうち1個を登録係がローカルに保持することができる。さらに、登録係は、残りのM−1個のサブマスクを、2^N−1人の参加者に提供することができる。このようにすると、参加者は、登録係から、登録係が割り当てたアドレスと、登録係がローカルに保持する1個のマスクを除いたM−1個のマスクを受信することができる。これが、第1階層の階層的アドレス割り当てである。登録係から割り当てアドレスを受信することで、参加者はアドホックネットワークの新しいメンバになることができる。アドホックネットワークの新しいメンバは、受信したM−1個のサブマスクのうち1個を、自身が登録係として動作するときに将来の参加者に割り当てることができる1サブセットのIPアドレスを定義するものとして指定することができる。さらに、アドホックネットワークの新しいメンバは、登録係として動作するとき、指定したサブマスク以外の残りM−2個のサブマスクを、割り当てアドレスと一緒に、将来の参加者に提供することができる。これが、第2階層の階層的アドレス割り当てである。このようにすると、登録係が参加者に提供することが可能なサブマスクに基づいた階層的アドレス割り当てによって、アドホックネットワークの利用可能なアドレス空間を分割することができる。階層的アドレス割り当ては、M個のレベルを有するツリーの形態を持ち、各レベルの各ノードは、2^N−1個の枝を有する。階層レベルは、階層的アドレス割り当ての階層に対応する。階層的アドレス割り当ての第(M−1)階層では、指定したサブマスク以外の、登録係が参加者に提供することができる残りのサブマスクの数がゼロである。この(最終階層の直前の)階層では、登録係は、1サブセットのIPアドレスを定義するサブマスクなしで、割り当てIPアドレスだけを将来の参加者に提供する。したがって、第M(最終)階層で参加したデバイスは、アドホックネットワークの登録係として動作することはできない。
【0033】
図1Aは、第1階層の階層的アドレス割り当ての例を示す。上記のように、登録係として動作するデバイス「i」は、ベースアドホックネットワーク100を形成するべく、自分で割り当てた開始アドレス112−Aを有する。この場合、N=6かつM=4であり、したがって、登録係「i」は、サブネット10.0.0.0/24において224個のアドレスを割り当てるべく使用することができる4個の異なる6ビットサブマスクを生成している。上記のように登録係「i」が保持する6ビットサブマスク120−Aに加えて、登録係「i」は、ビット範囲7〜12において0を6個有する「11111111 11111111 11110000 00111111」によって与えられる6ビットサブマスク120−Bと、ビット範囲13〜18において0を6個有する「11111111 11111100 00001111 11111111」によって与えられる6ビットサブマスク120−Cと、ビット範囲19〜24において0を6個有する「11111111 00000011 11111111 11111111」によって与えられる6ビットサブマスク120−Dとを含む利用可能なサブマスクのリスト118−Aを将来の参加者に提供することができる。
【0034】
移動体デバイス「ii」からベースネットワーク100に参加する要求を受信すると、登録係「i」は、6ビットサブマスク120−Aに基づいて、参加者にアドレス116−Aを割り当てることができる。この場合、割り当てアドレスは、サブマスク120−Aに含まれるビット値であるビット値IPii=「00000101 00000000 00000000 00000011」に対応するIPii=10.0.0.3である。(このビット値のビット範囲1〜6は、サブマスク120−Aに対応付けられたアドレス範囲に対応する。)その後、登録係「i」は、参加者「ii」に応答110−Aを送信することができる。応答110−Aは、Wi−Fiシンプルコンフィギュレーション(WSC)登録プロトコルに対応付けられたメッセージのうちの1つと一緒に送信することができる。たとえば、WSCの第8メッセージ(M8)を使用して、登録係「i」から参加者「ii」に応答110−Aを送信することができる。応答110−Aは、登録係のアドレス112−A、この場合、IP=10.0.0.1を含むことができる。さらに、応答110−Aは、ベースネットワーク100が使用するサブネットマスク114、この場合、255.0.0.0を含むことができる。さらに、応答110−Aは、登録係「i」が割り当てた参加者のアドレス116−A、この場合、IPii=10.0.0.3を含む。さらに、応答110−Aは、この場合、サブマスク120−B、120−C、および120−Dを含む利用可能なサブマスクのリスト118−Aを含む。
【0035】
ベースネットワーク100は、1人より多いネットワークメンバを含むようになると、アドホックネットワーク100になる。アドホックネットワークのメンバは、登録係モードと参加者モードとの間で切り替わる必要がない。これからは、デバイス「i」および「ii」の両方が、登録係の役割を引き受け、将来のネットワークメンバの登録を実行する。たとえば、登録係「i」は、デバイス「ii」の参加に関連して上記したように、第1階層の階層的アドレス割り当てを実行することにより、アドホックネットワーク100に、他に61人の参加者(たとえば、「iii」、「iv」 、「v」・・・)を登録することができる。登録係「i」は、6ビットサブマスク120−Aに対応付けられた1サブセットのアドレスに含まれる62個のアドレスの全部が参加者に割り当てられるまで、新しいネットワークメンバの登録を継続することができる。いくつかの実施形態では、6ビットサブマスク120−Aに対応付けられた1サブセットのアドレスに含まれる有限数のアドレスが割り当てられた後は、デバイス「i」への他の参加者からの将来の要求は、無視することができる。他の実施形態では、6ビットサブマスク120−Aに対応付けられたアドレスの残存分がなくなってこれ以上は割り当てられなくなったら、デバイス「i」は、登録係モードをオフし、アドホックネットワーク100に参加しようと試みるアドホックネットワーク100の外部のデバイスに対して不可視となることができる。さらに、登録係「i」が実行する第1階層の階層的アドレス割り当てによってアドホックネットワークに参加することができる62人の参加者は、アドホックネットワーク100の第1階層レベルに対応するサブネット「A」の一部である。
【0036】
さらに、登録係「ii」(および、登録係「i」の他の参加者)は、図1Bに関連して以下に記載する第2階層の階層的アドレス割り当てを実行することにより、アドホックネットワーク100に、その他の将来的参加者を登録することができる。
【0037】
図1Bは、第2階層の階層的アドレス割り当ての例を示す。アドレス112−Bを有する新しいネットワークメンバ「ii」は、6ビットサブマスク120−Bを、自身が将来の参加者に割り当てることができる1サブセットのアドレスを定義するものとして指定することができる。さらに、ネットワークメンバ「ii」は、登録係「i」から受信した利用可能なサブマスクのリスト118−Aから6ビットサブマスク120−Bを削除することができる。したがって、ネットワークメンバ「ii」は、登録係として動作するとき、6ビットサブマスク120−Cおよび6ビットサブマスク120−Dを含む利用可能なサブマスクのリスト118−Bを将来の参加者に提供することができる。
【0038】
アドホックネットワークの一例100´(以後、アドホックネットワーク100´と呼ぶ)のメンバでないデバイス「vi」は、アドホックネットワーク100´を検出することができる。この検出の一環として、移動体デバイス「vi」は、ネットワークメンバ「i」、「ii」、「iii」、「iv」、「v」・・・のうちいずれからも、これらが移動体デバイス「vi」をアドホックネットワーク100´に参加させる登録係として動作できる旨を示す信号を検出することができる。参加者デバイス「vi」は、アドホックネットワーク100´への参加に関してやり取りする対象として、登録係のうち1人を選択することができる。いくつかの実施形態では、参加者デバイス「vi」は、登録係メンバをランダムに選択することができる。別の実施形態では、参加者デバイス「vi」による登録係メンバの選択は、所定の基準に基づいて行うことができる。選択基準の一つは、参加者デバイス「vi」がネットワークメンバを発見した順序であってよい。たとえば、参加者デバイス「vi」が登録係として選択するネットワークメンバは、最初に発見されたネットワークメンバである。別の選択基準は、参加者デバイス「vi」がネットワークメンバから受信した信号の強度であってよい。たとえば、参加者デバイス「vi」が登録係として選択するネットワークメンバは、ネットワークメンバ「i」、「ii」、「iii」、「iv」、「v」・・・が発信した信号のうち、参加者デバイス「vi」が受信した最も強度が大きい信号に対応するネットワークメンバである。この場合、参加者「vi」は、アドホックネットワーク100´への参加を要求する経由点として登録係「ii」を選択することができる。別の選択基準は、参加者デバイス「vi」がネットワークメンバから受信する信号に搬送される付加的情報であってよい。たとえば、付加的情報は、登録係が割り当てるべく保有するアドレスの数であってよい。したがって、参加者デバイス「vi」が登録係として選択するネットワークメンバは、現在利用可能なアドレスを最も多く保有するネットワークメンバであってよい。この場合、参加者「vi」は、アドホックネットワーク100´に参加を要求する経由点として登録係「ii」を選択することができる。
【0039】
参加者「vi」からアドホックネットワーク100´に参加する要求を受信すると、登録係「ii」は、指定した6ビットサブマスク120−Bに基づいて、参加者「vi」にアドレス116−Bを割り当てることができる。この場合、割り当てアドレスは、サブマスク120−Bに含まれるビット値であるビット値IPvi=「00000101 00000000 00000000 01000011」に対応するIPvi=10.0.0.67である。(このビット値のビット範囲7〜12は、サブマスク120−Bに対応付けられたアドレス範囲に対応する。)その後、登録係「ii」は、参加者「vi」に応答110−Bを送信することができる。応答110−Bは、WSCプロトコルに準拠したM8メッセージの形式とすることができる。応答110−Bは、登録係のアドレス112−B、この場合、IPii=10.0.0.3を含む。さらに、応答110−Bは、アドホックネットワーク100´が使用するサブネットマスク、この場合、255.0.0.0を含む。さらに、応答110−Bは、登録係「ii」が割り当てた参加者のアドレス116−B、この場合、IPvi=10.0.0.67を含む。さらに、応答110−Bは、この場合、サブマスク120−Cおよび120−Dを含む利用可能なサブマスクのリスト118−Bを含む。
【0040】
その後、デバイス「vi」も将来のネットワークメンバを登録する登録係の役割を引き受けることができる。さらに、登録係「vi」(ならびに登録係「ii」、「iii」、および「v」の他の参加者)は、図1Cに関連して以下に記載する第3階層の階層的アドレス割り当てを実行することにより、アドホックネットワーク100´に、他の将来的参加者を登録することができる。デバイス「ii」は、デバイス「vi」の参加に関連して上記した第2階層の階層的アドレス割り当てを実行することにより、アドホックネットワーク100´へのその他の参加者の登録を継続することができる。登録係「ii」は、6ビットサブマスク120−Bに対応付けられた1サブセットのアドレスに含まれる63個のアドレスの全てが新しい参加者に割り当てられるまで、新しいネットワークメンバを登録することができる。また、登録係「ii」が実行する第2階層の階層的アドレス割り当てを通じてアドホックネットワーク100´に参加することができる63人の参加者は、アドホックネットワーク100´の第2階層レベルに対応するサブネット「B」の一部である。同じく、登録係「iii」が実行する第2階層の階層的アドレス割り当てを通じてアドホックネットワーク100´に参加しうる参加者(たとえば、デバイス「vii」)は、アドホックネットワーク100´の同じ第2階層レベルに対応する別のサブネット「B´´」の一部である。また、登録係「v」が実行する第2階層の階層的アドレス割り当てを通じてアドホックネットワーク100´に参加しうる参加者は、アドホックネットワーク100´の同じ第2階層レベルに対応するさらに別のサブネット「B´」の一部である。アドホックネットワーク100´の第2階層レベルには、サブネットAの一部であってよい62人のネットワークメンバのそれぞれに1個ずつとして、62個のサブネットB、B´、B´´・・・が存在してよい。
【0041】
図1Cは、第3階層の階層的アドレス割り当ての例を示す。アドレス112−Cを有する新しいネットワークメンバ「vi」は、自身が将来の参加者に割り当てることができる1サブセットのアドレスを定義するものとして、6ビットサブマスク120−Cを指定することができる。さらに、ネットワークメンバ「vi」は、登録係「ii」から受信した利用可能なサブマスクのリスト118−Bから6ビットサブマスク120−Cを削除することができる。したがって、ネットワークメンバ「vi」は、登録係として動作する場合、6ビットサブマスク120−Dを含む利用可能なサブマスクのリスト118−Cを将来の参加者に提供することができる。
【0042】
アドホックネットワークの一例100´´(以後、アドホックネットワーク100´´と呼ぶ)のメンバではないデバイス「xi」は、アドホックネットワーク100´´を検出することができる。この検出の一環として、移動体デバイス「xi」は、現在のネットワークメンバのいずれからも、これらのデバイスが移動体デバイス「xi」をアドホックネットワーク100´´に参加させる登録係として動作できる旨を示す信号を検出することができる。参加者デバイス「xi」は、アドホックネットワーク100´´への参加に関してやり取りする対象として、登録係のうち1人を、ランダムに、または、図1Bに関連して上記したように所定の基準に基づいて、選択することができる。この場合、参加者「xi」は、アドホックネットワーク100´´に参加を要求する経由点として登録係「vi」を選択することができる。
【0043】
参加者「xi」からアドホックネットワーク100´´に参加する要求を受信すると、登録係「vi」は、指定した6ビットサブマスク120−Cに基づいて、参加者「xi」にアドレス116−Cを割り当てることができる。この場合、割り当てアドレスは、サブマスク120−Cに含まれるビット値であるビット値IPxi=「00000101 00000000 00010000 01000011」に対応するIPxi=10.0.16.67である。(このビット値のビット範囲13〜18は、サブマスク120−Cに対応付けられたアドレス範囲に対応する。)その後、登録係「vi」は、参加者「xi」に応答110−Cを送信することができる。応答110−Cは、WSCプロトコルに準拠したM8メッセージの形式とすることができる。応答110−Cは、登録係のアドレス112−C、この場合、IPvi=10.0.0.67を含む。さらに、応答110−Cは、アドホックネットワーク100´´が使用するサブネットマスク、この場合、255.0.0.0を含む。さらに、応答110−Cは、登録係「vi」が割り当てた参加者のアドレス116−C、この場合、IPxi=10.0.16.67を含む。さらに、応答110−Cは、この場合、サブマスク120−Dを含む利用可能なサブマスクのリスト118−Cを含む。
【0044】
その後、デバイス「xi」も将来のネットワークメンバを登録する登録係の役割を引き受けることができる。さらに、登録係「xi」(ならびに登録係「vi」および「vii」、の他の参加者)は、図1Dに関連して以下に記載する第4階層の階層的アドレス割り当てを実行することにより、アドホックネットワーク100´´に、他の将来的参加者を登録することができる。デバイス「vi」は、デバイス「xi」の参加に関連して上記した第3階層の階層的アドレス割り当てを実行することにより、アドホックネットワーク100´´へのその他の参加者の登録を継続することができる。登録係「vi」は、6ビットサブマスク120−Cに対応付けられた1サブセットのアドレスに含まれる63個のアドレスの全てが新しい参加者に割り当てられるまで、新しいネットワークメンバを登録することができる。また、登録係「vi」が実行する第3階層の階層的アドレス割り当てを通じてアドホックネットワーク100´´に参加することができる63人の参加者は、アドホックネットワーク100´´の第3階層レベルに対応するサブネット「C」の一部である。同じく、登録係「vii」が実行する第3階層の階層的アドレス割り当てを通じてアドホックネットワーク100´´に参加しうる参加者(たとえば、デバイス「xii」)は、アドホックネットワーク100´´の同じ第3階層レベルに対応する別のサブネット「C´」の一部である。アドホックネットワーク100´´の第3階層レベルには、サブネットAの一部であってよい62個のサブネットBのそれぞれにつき、当該サブネットBの一部であってよい63人のネットワークメンバのそれぞれに1個ずつとして、62×63個のサブネットC、C´・・・が存在してよい。
【0045】
図1Dは、第4階層の階層的アドレス割り当ての例を示す。アドレス112−Dを有する新しいネットワークメンバ「xi」は、自身が将来の参加者に割り当てることができる1サブセットのアドレスを定義するものとして、6ビットサブマスク120−Dを指定することができる。さらに、ネットワークメンバ「xi」は、登録係「vi」から受信した利用可能なサブマスクのリスト118−Cから6ビットサブマスク120−Dを削除することができる。したがって、ネットワークメンバ「xi」は、登録係として動作するとき、参加者に対して、これらの参加者自身が将来参加させる参加者のための1サブセットのIPアドレスを定義する6ビットサブマスクを提供することができない。
【0046】
アドホックネットワークの例100´´´(以後、アドホックネットワーク100´´´と呼ぶ)のメンバではないデバイス「xiii」は、アドホックネットワーク100´´´を検出することができる。この検出の一環として、移動体デバイス「xiii」は、現在のネットワークメンバのいずれからも、これらのメンバのデバイスが移動体デバイス「xiii」をアドホックネットワーク100´´´に参加させる登録係として動作できる旨を示す信号を検出することができる。参加者デバイス「xiii」は、アドホックネットワーク100´´´への参加に関してやり取りする対象として、登録係のうち1人を、ランダムに、または、図1Bに関連して上記したように所定の基準に基づいて、選択することができる。この場合、参加者「xiii」は、アドホックネットワーク100´´´に参加を要求する経由点として登録係「xi」を選択することができる。
【0047】
参加者「xiii」からアドホックネットワーク100´´´に参加する要求を受信すると、登録係「xi」は、指定した6ビットサブマスク120−Dに基づいて、参加者「xiii」にアドレス116−Dを割り当てることができる。この場合、割り当てアドレスは、サブマスク120−Dに含まれるビット値であるビット値IPxiii=「00000101 00000100 00010000 01000011」に対応するIPxiii=10.4.16.67である。(このビット値のビット範囲19〜24は、サブマスク120−Dに対応付けられたアドレス範囲に対応する。)その後、登録係「xi」は、参加者「xiii」に応答110−Dを送信することができる。応答110−Dは、WSCプロトコルに準拠したM8メッセージの形式とすることができる。応答110−Dは、登録係のアドレス112−D、この場合、IPxi=10.0.16.67を含む。さらに、応答110−Dは、アドホックネットワーク100´´´が使用するサブネットマスク、この場合、255.0.0.0を含む。さらに、応答110−Dは、登録係「xi」が割り当てた参加者のアドレス116−D、この場合、IPxiii=10.4.16.67を含む。第4(最終)階層の階層的アドレス割り当てでは、応答110−Dは、サブマスクを含まないことに注意されたい。
【0048】
デバイス「xi」は、デバイス「xiii」の参加に関連して上記した第4階層の階層的アドレス割り当てを実行することにより、アドホックネットワーク100´´´へのその他の参加者の登録を継続することができる。登録係「xi」は、6ビットサブマスク120−Dに対応付けられた1サブセットのアドレスに含まれる63個のアドレスの全てが新しい参加者に割り当てられるまで、新しいネットワークメンバを登録することができる。また、登録係「xi」が実行する第4階層の階層的アドレス割り当てを通じてアドホックネットワーク100´´´に参加することができる63人の参加者は、アドホックネットワーク100´´´の第4(最終)階層レベルに対応するサブネット「D」の一部である。アドホックネットワーク100´´´の第4階層レベルには、サブネットAの一部であってよい62個のサブネットBに含まれる各サブネットBの一部であってよい63個のサブネットCのそれぞれにつき、当該サブネットCの一部であってよい63人のネットワークメンバのそれぞれに1個ずつとして、62×63×63個のサブネットD・・・が存在してよい。
【0049】
登録係「xiii」(および登録係「xi」のその他の参加者)は、最終階層の階層的アドレス割り当ての一部としてサブマスクを提供されておらず、したがって、将来の参加者にアドレスを割り当てるIPアドレスの範囲を指定されていないので、アドホックネットワーク100´´´にその他の将来的参加者を登録することができない。いくつかの実施形態では、アドホックネットワーク100´´´の第4(最終)階層レベルのネットワークメンバ(たとえば、「xiii」)は、アドホックネットワーク100´´´のメンバでないデバイスからの要求を無視することができる。別の実施形態では、アドホックネットワーク100´´´の第4(最終)階層レベルのネットワークメンバ(たとえば、「xiii」)は、登録係モードをオフして、アドホックネットワーク100´´´に参加を試みるデバイスに対して不可視となることができる。いくつかの他の実施形態では、アドホックネットワーク100´´´の第4(最終)階層レベルのネットワークメンバ(たとえば、「xiii」)は、参加者に、割り当て可能なアドレスがなくなったことを通知することができる。
【0050】
図2は、デバイスがアドホックネットワークに参加するべく使用するプロセス200の例を示す。図1A−1Dに示した例では、プロセス200は、移動体無線アドホックネットワーク100の登録係メンバ「i」、「ii」、および「vi」とそれぞれやり取りする参加者デバイス「ii」、「vi」、および「xi」によって実行することができる。
【0051】
210で、デバイスは、アドホックネットワークのメンバである所定のデバイスを経由してアドホックネットワークに参加することを要求する。いくつかの実施形態では、アドホックネットワークのメンバでないデバイスは、アドホックネットワークに参加を要求する経由点となるアドホックネットワークの所定のデバイスをランダムに選択することができる。たとえば、参加者は、アドホックネットワークの登録係として動作できる旨を示す信号を発信した複数のネットワークメンバの中から、アドホックネットワークの登録係をランダムに選択することができる。他の実施形態では、アドホックネットワークのメンバでないデバイスは、アドホックネットワークに参加を要求する経由点となるアドホックネットワークの所定のデバイスを、所定の基準に基づいて選択することができる。選択基準の一例は発見順序であり、アドホックネットワークの登録係が、最も新しく発見されたネットワークメンバの所定数を超えないうちに参加者によって発見された場合、前者は後者に選択される。選択基準の別の例は信号品質であり、登録係から受信した信号が所定の品質測定基準、たとえば、信号強度、ビットエラーレート等を満たす、もしくは、超える場合、当該登録係は参加者によって選択される。選択基準の別の例は、他の登録係と比較して、ある登録係が割り当て可能なアドレスをいくつ保有しているかであり、当該登録係が利用可能なアドレスの数が、所定数の他の登録係がそれぞれ保有するアドレスの数より多い場合、当該登録係が選択される。
【0052】
220で、要求元デバイスは、(I)要求元デバイスのアドレス、および(II)将来の要求元デバイスに割り当てるべきアドレスの有限数を示す情報を含む応答を所定のデバイスから受信する。たとえば、所定のデバイスから受信する応答に参照されるアドレスは、インターネットプロトコルバージョン4(IPv4)アドレスである。いくつかの実施形態では、222で、受信した応答に含まれる要求元デバイスのアドレスを示す情報は、所定のデバイスが要求元デバイスに割り当てたアドレスを含んでよい。他の実施形態では、224で、要求元デバイスは、受信した応答に含まれる情報を使用して、自身にアドレスを割り当てることができる。たとえば、要求元デバイスは、将来の要求元デバイスに割り当てるべき有限数のアドレスのうち一つを自身に割り当てることができる。その後、226で、要求元デバイスは、所定のデバイスにメッセージを送信して、自身に割り当てたアドレスを登録係に通知することができる。
【0053】
228で、受信した応答は、将来の要求元デバイスに割り当てるべき所定数のアドレスをそれぞれが含む複数サブセットのアドレスを表す情報を含んでよい。受信した複数サブセットのそれぞれにおいて、将来の要求元デバイスに割り当てるべき所定数のIPv4アドレスは、一つのIPv4アドレスに含まれるビット数に等しい数のビットを含むビットマスクによって表すことができる。ビットマスクは、所定数のIPアドレスの固定ビットを定義するバイナリ値1と、所定数のIPアドレスの範囲割り当ての一部であるビットを定義するバイナリ値0とを含む。図1A−1Dに示す例では、ビットマスク120−A、120−B、120−C、および120−Dは、それぞれ、固有グループの6個のバイナリ値0を含む。この態様では、各固有グループの6個のバイナリ値0は、ビットマスク120−A、120−B、120−C、および120−Dのうち対応する一つに対応付けられた1サブセット63個のIPアドレスに対応するアドレス範囲を定義する。
【0054】
いくつかの実施形態では、所定のデバイスから受信した応答は、さらに、当該所定のデバイスのアドレスを含むことができる。いくつかの実施形態では、所定のデバイスから受信した応答は、さらに、アドホックネットワークに対応付けられたサブネットマスクを含む。
【0055】
230で、要求元デバイスは、有限数のアドレスのうち一部を、当該デバイスが将来の要求元デバイスに割り当てるアドレスとして指定する。たとえば、232で、要求元デバイスは、受信した情報から228で参照した複数のアドレスサブセットのうち一つを、当該デバイスが将来の要求元デバイスに割り当てるアドレスの出所としての一つのアドレスサブセットとして指定することができる。この態様では、所定のデバイスによって割り当てられた受信アドレス(または、自身で割り当てたアドレス)は、要求元デバイスが将来の要求元デバイスに割り当てるとして指定したサブセットに含まれる有限数のアドレスの階層ノードを表す。さらに、指定したアドレスサブセットに含まれる有限数のアドレスは、受信した複数のサブセットのうち当該一つのサブセットに対応付けられる単一の階層レベルを表し、有限数のアドレスに等しい数の階層枝に対応する。図1A−1Dに示す例では、登録係「i」、「ii」、「vi」、および「xi」によって割り当てられるアドレスは、開示した階層的アドレス割り当てのノードを表し、起点としてのサブネットA、B、C、およびDにそれぞれ対応する。さらに、登録係「i」、「ii」、「vi」、および「xi」のいずれかから参加者に割り当てることができるアドレスは、開示した階層的アドレス割り当ての単一のレベルを表し、アドホックネットワークのサブネットA、B、C、およびDのうち単一のサブネットに対応する。
【0056】
図3Aは、アドホックネットワークのメンバがアドホックネットワークに新しいデバイスを登録するべく使用するプロセス300の例を示す。図1A−1Dに示す例では、プロセス300は、参加者デバイス「ii」、「vi」、および「xi」によって移動体無線アドホックネットワークへの登録係として動作するようそれぞれ選択されたネットワークメンバ「i」、「ii」、および「vi」が実行することができる。
【0057】
340で、アドホックネットワークの所定のデバイスが、アドホックネットワークのメンバでないデバイスから、アドホックネットワークに参加する要求を受信する。たとえば、アドホックネットワークの登録係として動作する所定のデバイスは、参加者として動作するデバイスが発信するアドホックネットワークに参加する要求を示す信号を検出することができる。受信した要求は、登録係による参加者デバイスの登録プロセスの開始をトリガすることができる。
【0058】
350で、所定のデバイスは、(I)要求元デバイスのアドレス、および(II)将来の要求元デバイスに割り当てるべき有限数のアドレスを表す情報で、要求元デバイスに応答する。有限数のアドレスに含まれるアドレスは、IPv4アドレスであってよい。参加者デバイスの要求に応答する(350で)一環として、360で、所定のデバイスは、参加者にアドレスを割り当ててよい。登録係による参加者へのアドレス割り当ての例は、図1A−1Dに関連して上記した。同じく、参加者デバイスの要求に応答する(350で)一環として、370で、所定のデバイスは、参加者に割り当てたアドレスと、複数サブセットのアドレスを表す情報とを提供することができる。複数のアドレスサブセットのそれぞれは、将来の参加者に割り当てるべき所定数のアドレスを含む。さらに、将来の参加者に割り当てるべき所定数のアドレスは、一つのIPv4アドレスに含まれるビット数に等しい数のビットを含むビットマスクにより表すことができ、ビットマスクに含まれるバイナリ値1は、所定数のIPv4アドレスの固定ビットを定義し、ビットマスクに含まれるバイナリ値0は、所定数のIPv4アドレスの範囲割り当ての一部であるビットを定義する。
【0059】
別の実施形態では、参加者アドレスの割り当ては、たとえば、図2に関連して上記した224で、参加者が実行することができる。この場合、390で、所定のデバイスは、要求元デバイスから、要求元デバイスが自身で割り当てたアドレスを含む通知を受信することができる。
【0060】
図3Bは、アドホックネットワークのメンバがアドホックネットワークに新しいデバイスを登録するべく使用する別の例に係るプロセス300´を示す。図1A−1Dに示す例では、プロセス300´は、参加者デバイス「ii」、「vi」、「xi」および「xiii」によって移動体無線アドホックネットワークへの登録係として動作するようそれぞれ選択されたネットワークメンバ「i」、「ii」、「vi」、および「xi」が実行することができる。340´で、アドホックネットワークの所定のデバイスは、図3Aに関連して340で上記したように、アドホックネットワークのメンバでないデバイスから、アドホックネットワークに参加する要求を受信する。
【0061】
362で、所定のデバイスは、参加者デバイスから受信した要求に応答して、所定のデバイスが将来の要求元デバイスに割り当てるとして指定した1サブセットの有限数のアドレスのうちに、少なくとも1つの未割り当てのアドレスがあるかを判定する。指定した1サブセットの有限数のアドレスに含まれるアドレスは、IPv4アドレスであってよい。指定した1サブセットの有限数のアドレスは、IPアドレスに含まれるビット数に等しい数のビットを含むビットマスクによって表すことができる。ビットマスクは、有限数のIPアドレスの固定ビットを定義するバイナリ値1と、有限数のIPアドレスの範囲割り当ての一部であるビットを定義するバイナリ値0とを含む。
【0062】
364で、指定した1サブセットの有限数のアドレスのうちに少なくとも1つの未割り当てのアドレスがあると判定(362で)したことに応答して、所定の装置は、指定した1サブセットの有限数のアドレスのうち未割り当てのアドレスを要求元デバイスに割り当てる。参加者デバイスにアドレスを割り当てることは、登録係ネットワークメンバが実行する登録プロトコルの一つの段階であってよい。参加者を登録係として動作できるようにすることは、以下に記載するよう、登録係が実行する登録プロトコルの別の段階であってよい。
【0063】
372で、所定のデバイスは、指定した有限数のアドレスの1サブセットに加えて、将来の要求元デバイスにアドレスを割り当てるための有限数のアドレスの少なくとも1サブセットがあるかを判定する。有限数のアドレスの少なくとも1残存サブセットに含まれるアドレスもIPv4アドレスである。374で、有限数のアドレスの少なくとも1残存サブセットがあると判定(372で)したことに応答して、所定のデバイスは、当該デバイスが要求元デバイスに割り当てたアドレスと、少なくとも1残存サブセットの有限数のアドレスとを含む応答を要求元デバイスに送信する。この方法では、参加者は、アドホックネットワークのメンバになることができるだけでなく、将来の要求元デバイスを参加させるアドホックネットワークの登録係として動作することもできる。374で送信する応答の例は、図1A−1Cに関連して上記した応答110−A、110−B、および110−Cに対応する。
【0064】
プロセス300´の一環として340´、362、364、372、および374で実行する動作の組み合わせは、図3Aに関連して上記したプロセス300の例示的実施形態に対応する。
【0065】
図3Bに戻り、376で、有限数のアドレスの残存サブセットがないと判定(372で)したことに応答して、所定のデバイスは、所定デバイスが要求元デバイスに割り当てたアドレスを含む応答を要求元デバイスに送信する。これによると、参加者は、アドホックネットワークのメンバになることはできるが、アドホックネットワークの登録係として動作することはできない。375で送信する応答の例は、図1Dに関連して上記した応答110−Dに対応する。
【0066】
いくつかの実施形態では、374または376で所定のデバイスが要求元デバイスに送信する応答は、さらに、当該所定のデバイスのアドレスを含む。いくつかの実施形態では、374または376で所定のデバイスが要求元デバイスに送信する応答は、さらに、アドホックネットワークに対応付けられたサブネットマスクを含む。
【0067】
380で、指定した1サブセットの有限数のアドレスのうちに未割り当てのアドレスがないと判定(362で)したことに応答して、所定のデバイスは、要求元デバイスの要求を受け付けない。このような状況は、登録係デバイスが、指定した1サブセットの有限数のアドレスに含まれるアドレスの数に等しい数のネットワークメンバをすでに参加させていた場合に生じうる。このような状況は、また、所定のデバイスが、アドホックネットワークの最下位階層レベルのサブネットに一部である場合にも生じる。この場合、図1Dに関連して上記したように、所定のデバイスを参加させた登録係は、所定のデバイスに、割り当てたアドレスと一緒に、所定のデバイスが将来の参加者に割り当てるべき1サブセットの有限数のアドレスを提供していない。いくつかの実施形態では、登録係は、アドホックネットワークへの登録を要求する参加者からの信号を単に無視することにより、受動的に要求を受け付けないようにすることができる。別の実施形態では、登録係は、利用可能なアドレスの全てがすでに割り当てられている旨を参加者に通知することにより、能動的に要求を受け付けないようにすることができる。
【0068】
図4は、移動体無線アドホックネットワーク400の階層的アドレス割り当ての例を示す。アドホックネットワーク400のメンバのアドレスは、たとえば、図2図3A、および図3Bに関連してそれぞれ上記したプロセス200および300に基づいて割り当てることができる。
【0069】
アドホックネットワーク400のメンバは、携帯電話、スマートホン、PDA、モバイルコンピュータ、デジタルカメラ、メディアプレーヤ、もしくはこれらの装置を組み合わせたものであってよい。アドホックネットワーク400のメンバは、登録係として動作することができ、たとえば、10.0.0.0/24と表される24ビットのIPv4アドレス空間において、参加者デバイスにアドレスを割り当てることができる。この例では、全登録係がそれぞれ、参加者に割り当てる1サブセットのアドレスを定義するビットマスクを保持することができる。登録係が各参加者にアドレスを割り当てるとき、追加的にビットマスクのリストが提供される。その後、参加者は、登録係として動作するとき、第1のビットマスクをアドレス割り当ての範囲として使用する。デバイスが登録係として動作するとき、このビットマスクを受信したリストから削除し、縮小したリストを提供する。参加者に提供されたリストに何も載っていない場合、もしくは、登録係のアドレス範囲に含まれる全アドレスが割り当てられている場合、デバイスは登録係として動作することはできない。
【0070】
ビットマスクは、サブネットマスクと同様の方法で構築することができる。たとえば、ビットマスクに含まれるバイナリ値1は、固定ビットを表し、ビットマスクに含まれるN個のバイナリ値0は、ビットマスクを保持する登録係が割り当てに使用することができるアドレス範囲の一部であるビットを定義する。ビットマスクは、ビットマスクに含まれるバイナリ値0の数Nに基づいて、Nビットマスクと呼ぶことができる。図4に示す階層的アドレス割り当ての例は、3個の8ビットマスク、つまり、BM1=11111111 11111111 11111111 00000000、BM2=11111111 11111111 00000000 11111111、およびBM3=11111111 00000000 11111111 11111111に基づいている。
【0071】
8ビットマスクに対応付けられるアドレスの数は、2^8−1=255である。したがって、図4では、8ビットマスクBM1、BM2、およびBM3のうち任意の一つを使用する登録係は、255人の参加者を登録することができる。さらに、アドレス割り当ては、暗号化設定におけるWSC M8メッセージに含まれる追加的なフィールドでサポートすることができる。図4で矢印により示されるM8メッセージは、登録係のアドレス、サブネットマスク、割り当てた参加者のアドレス、利用可能な8ビットマスクのリストを含む。
【0072】
アドホックネットワーク400を創始したデバイスは、参加者に割り当てることができる1サブセットのアドレスを定義する8ビットマスクBM1を保持する。さらに、このデバイスは、自身で割り当てたアドレス10.0.0.1を有する。その後、登録係10.0.0.1は、第1階層の階層的アドレス割り当てを実行して、8ビットマスクBM1に対応付けられた1サブセットのアドレスに基づいて、254個の新しいデバイスを参加させることができる。登録係10.0.0.1が参加させるネットワークメンバは、アドホックネットワーク400の第1階層レベルに対応するサブネット「A」を形成する。たとえば、登録係10.0.0.1が参加させた1つのデバイスは、アドレス10.0.0.4を割り当てられている。プロセス200の222またはプロセス300´の374にしたがって、登録係10.0.0.1が参加者10.0.0.4に送信するメッセージ420は、登録係のIPアドレス10.0.0.1と、サブネットマスク255.0.0.0.0と、参加者に割り当てたIPアドレス10.0.0.4と、BM2およびBM3を含む利用可能な8ビットマスクのリストとを含む。
【0073】
登録係として動作するべく、新しいネットワークメンバ10.0.0.4は、参加者に割り当てる1サブセットのアドレスを定義するものとして、8ビットマスクBM2を指定することができる。その後、登録係10.0.0.4は、第2階層の階層的アドレス割り当てを実行して、8ビットマスクBM2に対応付けられた1サブセットのアドレスに基づいて、255個の新しいデバイスを参加させることができる。登録係10.0.0.4が参加させる新しいメンバは、アドホックネットワーク400の第2階層レベルに対応するサブネット「B」を形成する。たとえば、登録係10.0.0.4が参加させた1つのデバイスは、アドレス10.0.1.4を割り当てられている。プロセス200の220またはプロセス300´の374にしたがって、登録係10.0.0.4が参加者10.0.1.4に送信するメッセージ460は、登録係のIPアドレス10.0.0.4と、サブネットマスク255.0.0.0.0と、参加者に割り当てたアドレス10.0.1.4と、BM3を含む利用可能な8ビットマスクのリストとを含む。
【0074】
登録係として動作するべく、新しいネットワークメンバ10.0.1.4は、参加者に割り当てる1サブセットのIPアドレスを定義するものとして、8ビットマスクBM3を指定することができる。その後、登録係10.0.1.4は、第3(最終)階層の階層的アドレス割り当てを実行して、8ビットマスクBM3に対応付けられた1サブセットのアドレスに基づいて、255個の新しいデバイスを参加させることができる。登録係10.0.1.4が参加させる新しいメンバは、アドホックネットワーク400の第3(最終)階層レベルに対応するサブネット「C」を形成する。たとえば、登録係10.0.1.4が参加させた1つのデバイスは、アドレス10.2.1.4を割り当てられている。プロセス300´の376にしたがって、登録係10.0.1.4が参加者10.2.1.4に送信するメッセージ470は、登録係のIPアドレス10.0.1.4と、サブネットマスク255.0.0.0.0と、参加者に割り当てたアドレス10.2.1.4とを含む。参加者10.2.1.4には、最終階層の階層的アドレス割り当ての一環として、登録係10.0.1.4からビットマスクを提供されないので、参加者10.2.1.4は、登録係としての役割を実行することができない。
【0075】
アドホックネットワークにおいて階層的にアドレスを割り当てるべく使用される開示したシステムおよび技術は、図1A−1Dおよび図4に関連させて、無線移動体アドホックネットワークのコンテキストで記載した。さらに、記載した技術は、無線および有線の接続を含むネットワーク環境に適用することができる。さらに、本明細書に記載したシステムおよび技術は、有線だけのネットワーク環境に適用することもできる。開示した技術を有利に適用することができる後者のネットワーク環境の例は、トンネルを介して動作するピアツーピア(P2P)ネットワークである。このネットワーク環境では、ピアは、P2Pネットワークに、仮想プライベートネットワーク(VPN)トンネリングを用いて接続することができる。トンネルを介して動作するP2Pネットワークのピアは、P2Pネットワークの外部で前もって割り当てられたIPアドレスを保有しているかもしれないが、P2Pネットワークの内部でピアが使用するローカルアドレスは、本明細書に記載したシステムおよび技術を使用して割り当ておよび管理することができる。
【0076】
一般的に、本明細書に記載された技術は、(i)ネットワークメンバ間の常時の完全な接続が保証されておらず、(ii)ピアアドレスを割り当てるこができるアドレス空間がローカルに限定されているアドホックネットワーク環境で使用することができる。そのようなアドホックネットワークでは、ピアデバイスは、オンオフすることができ(有線もしくは無線ネットワークの場合)、または、アドホックネットワークを構成する一部の範囲に出入りすることができる(無線ネットワークの場合)。
【0077】
図5は、一般的にネットワークアドレスの割り当て関し、特にアドホックネットワークにおける階層的アドレス割り当てに関する技術をサポートする例示的デバイスのブロックレベル図である。図5に示すように、デバイス500は、不揮発性メモリ506と通信する少なくとも1つのコントローラ502、揮発性メモリ508、およびネットワーク物理層ユニット510を備えることができる。さらに、コントローラ502は、ローカルデータストアユニット512、メッセージ生成ユニット516、メッセージ構文解析ユニット518、およびネットワークサービス接続ユニット520と通信することができる。
【0078】
デバイス500に含まれる特性は、たとえば、ラップトップコンピュータ、携帯電話、デジタルカメラ、メディアプレーヤ等の一つ以上の移動体電子デバイス内に統合することができる。デバイス500が組み込まれた移動体電子デバイスは、図1A−1Dおよび図4に示したように、アドホック無線ネットワークに接続することができる。こうすると、デバイス500は、デバイス500が組み込まれた移動体デバイスと、利用可能なアドホックモード無線ネットワークを介して提供されるサービスとの間に接続性が提供される。
【0079】
いくつかの実施形態では、ネットワーク物理層ユニット510、たとえば、開放型システム間相互接続(OSI)モデルのレイヤ1もしくは物理層、が実行する機能は、電子デバイスに付加されたネットワークインターフェースカード(NIC)によって、または、電子デバイスの回路に組み込まれた物理層ユニットによって、実行することができる。コントローラ502およびOSIモデルまたはその他のネットワーク通信モデルの後続層が実行する機能は、たとえば、ラップトップコンピュータ等の電子デバイスに含まれる汎用マイクロプロセッサによって実行されるソフトウェアによって実行することができ、または、たとえば、スマートホン、デジタルカメラ、およびメディアプレーヤ等の電子デバイスに含まれる別のプロセッサによって実行することができる。
【0080】
コントローラ502は、IEEE802.11に記載され、ネットワークアドレスの割り当て、より具体的には、移動体無線アドホックネットワークにおける階層的アドレス割り当てをサポートするべく本明細書に詳細に記載したとおりに修正されたアドホックネットワーク規格等の既存のアドホックネットワーク規格にしたがってネットワーク物理層ユニット510を介して実行されるメッセージの送受信に関する処理を制御することができる。揮発性メモリ508によって、コントローラ502は、プログラム命令を実行するべくローカルメモリに格納し、格納したプログラム命令の実行に必要な一時的な変数を記憶かつ保持することができるようになる。不揮発性メモリ506によって、コントローラ502は、より大容量のデータおよびプログラム命令を、コントローラ502によって後に実行するべく、アクセスして取得することができるようになる。このような命令を実行した結果実行されるプロセスの例は、本明細書に、図2、3Aおよび3Bを参照して記載されている。より大容量のデータの例として、ローカルデータストアユニット512が格納する情報がある。
【0081】
ローカルデータストアユニット512は、デバイス500が共通アドホックネットワークのメンバになった結果、または、デバイス500がローカルのメッセージング活動を受動的に走査および監視した結果、デバイス500が受信した、たとえば、ビーコン、プローブ要求、パブリックアクションフレーム、および/またはプローブ応答等のメッセージの送信元である検出したピアデバイスについての情報をローカルデータストアとして構築および維持することができる。ピアデバイスは、独立したデバイス、またはデバイス500が接続したのと同一のアドホックネットワークのメンバであってよい。
【0082】
たとえば、ローカルデータストアユニット512に維持される情報は、デバイス500の送信範囲内の各ピアデバイスについて、ネットワークアドレス、ユーザフレンドリネーム、そのピアデバイスが提供する各サービスのUUIDを含むことができる。データストアエントリは、ピアデバイスのMACアドレスをローカルデータストアの主キーとして使用することができる。ローカルデータストアは、ピアデバイスについての情報、たとえば、ピアデバイスの選択ネットワークアドレス、ユーザフレンドリネーム、そのピアデバイスが提供する各サービスのユニバーサルユニーク識別子(UUID)等を含むことができる。ローカルデータストアユニット512がローカルデータストアに格納した情報は、コントローラ502から、および/または、ネットワークサービス接続ユニット520またはメッセージ生成ユニット516から直接に、受信することができる。
【0083】
メッセージ構文解析ユニット518は、ネットワーク物理層ユニット510からメッセージを受信し、受信したメッセージの内容を構文解析して、コントローラ502および/またはローカルデータストアユニット512に渡すことができるデータを取得することができる。たとえば、メッセージ構文解析ユニット518は、受信したメッセージを構文解析し、メッセージヘッダからMACアドレスおよびその他の情報を取得することができ、また、以下により詳細に記載するように、ネットワークアドレス割り当て、より具体的には、移動体無線アドホックネットワークにおける階層的アドレス割り当てをサポートする情報等の、メッセージ内に含まれる情報を構文解析して取得することができる。受信したメッセージから取得した情報は、さらなる処理または意思決定のためにコントローラ502に渡すことができ、および/または、取得した情報の一部は、ローカルデータストアのアップデートを生成するために直接にローカルデータストアユニット512に渡すことができる。さらに、コントローラ502は、ローカルデータストアユニット512に、ローカルデータストアに格納された情報を、メッセージ構文解析ユニット518から受信したピアデバイス情報に基づいて更新するよう命令することができる。あるデバイスのローカルデータストアに格納されたピアデバイスのエントリは、設定可能な期間、たとえば5分以内に対応するピアデバイスからビーコン、プローブ要求、パブリックアクションフレーム、および/またはプローブ応答等のメッセージを受信しなかった場合、期限切れとして、当該デバイスのローカルデータストアから削除するようにすることができる。
【0084】
メッセージ生成ユニット516は、コントローラ502の命令により、無線ブロードキャスト範囲内のデバイスに送信するアドホックメッセージを生成することができる。生成するメッセージは、本明細書に記載するように、ビーコンメッセージ、プローブ要求、パブリックアクションフレーム、プローブ応答、もしくは、その他のメッセージのうちの1つであってよい。たとえば、コントローラ502から生成するべきメッセージの種類を指定されると、メッセージ生成ユニット516は、現在のデバイス情報を読み出して、デバイスのローカルデータストアユニット512にローカルに格納されているアドホックネットワーク識別子、ネットワークメンバシップのフィンガープリント等(これらに限定されない)を含む情報を生成することができる。さらに、ビーコンメッセージ、プローブ要求、パブリックアクションフレーム、プローブ応答等の生成するべきメッセージの種類に基づいて、メッセージ生成ユニット516は、コントローラ502から追加的な情報を受信することができ、および/または、本明細書に記載の通りにローカルデータストアユニット512から追加的な情報を要求することができる。メッセージを生成したら、メッセージ生成ユニット516は、ネットワーク物理層ユニット510にメッセージを送って送信してもらうことができる。
【0085】
ネットワークサービス接続ユニット520は、所望のサービスを取得するべくアドホックネットワークを介してデバイス500がアクセスすることができるピアデバイスを検出するとき、コントローラ502を補助することができる。たとえば、図1A−1Dおよび図4を参照して本明細書に記載したように、ネットワークサービス接続ユニット520は、ローカルデータストアユニット512を検索して、ピアデバイスに対応付けてリストされた所望のサービスを見つけ出してよい。所望のサービスを見つけたら、ネットワークサービス接続ユニット520は、コントローラ502に、必要なネットワーク情報、たとえばMACアドレス、基本サービスセット識別子(BSSID)等を供給し、見つけ出したピアデバイスに対してコントローラ502がアドホックモード接続を構築して、アドホックネットワークに接続されたピアデバイスを介して利用可能なサービスにデバイス500がアクセスできるようにすることができる。
【0086】
いくつかの実施形態を詳細に記載したが、多様な変更が可能である。本明細書に記載した機能的動作を含む開示した主題は、一つ以上のデータ処理装置に記載した動作を実行させるプログラム(たとえば、メモリ装置、ストレージ装置、機械可読ストレージサブストレート、もしくはその他の物理的機械可読媒体またはこれらのうち一つ以上を組み合わせたものであってよいコンピュータ可読媒体に符号化されたプログラム等)を含む、本明細書に開示した構成手段およびその構成の均等物等の、電子回路、コンピュータハードウェア、ファームウェア、ソフトウェア、もしくはこれらを組み合わせたもので実装することができる。
【0087】
「データ処理装置」という用語は、たとえば、プログラマブルプロセッサ、コンピュータ、複数のプロセッサもしくはコンピュータ等のデータを処理するためのあらゆる装置、デバイス、および機械を包含する。装置は、ハードウェアに加えて、対象のコンピュータプログラムの実行環境を構築するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、もしくはこれらのうち一つ以上を組み合わせたものを構築するコードを備えてよい。
【0088】
プログラム(コンピュータプログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイルもしくはインタープリットされた言語、または宣言型もしくは手続き型の言語等の任意の形式のプログラミング言語で記述してよく、スタンドアロンプログラム、または、モジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境で使用されるのに適したその他のユニット等の任意の形式で配備することができる。プログラムは、必ずしも、ファイルシステムのファイルに対応しない。プログラムは、その他のプログラムもしくはデータ(たとえば、マークアップ言語文書形式で格納される一つ以上のスクリプト)を保有するファイルの一部に格納することができ、対象となっているプログラム専用の単一のファイルに格納することができ、または、複数の編成ファイル(たとえば、一つ以上のモジュール、サブプログラム、またはコードのいくつかの部分を格納する複数のファイル)に格納することができる。プログラムは、一つのコンピュータによって、または、一つのサイトに配置された複数のコンピュータもしくは複数のサイトに分散され通信ネットワークで相互接続された複数のコンピュータによって実行されるように配備することができる。
【0089】
本明細書は多くの詳細を含むが、これらは、特許請求の範囲に対する限定と解釈されるべきでなく、特定の実施形態に特有の特性の記載と解釈されるべきである。本明細書に別々の実施形態で記載した所定の特性を、一つの実施形態に組み合わせて実施することができる。反対に、一つの実施形態に記載した多様な特性を、複数の実施形態で別々に、または、任意のサブコンビネーションで実施することができる。さらに、所定の組み合わせの場合に機能を果たすものとして複数の特性を記載し、さらに、その組み合わせで当初は権利請求したとしても、権利請求した組み合わせにおける一つ以上の特性を場合によっては組み合わせから排除することができ、また、権利請求した組み合わせをサブコンビネーションまたはサブコンビネーションの変形とすることができる。
【0090】
同じく、図面において動作を特定の順序で図示したが、これらの動作を、図示した特定の順序または順次的な順序で実行する必要があるものと理解されるべきではなく、または、所定の結果を達成するには、図示の動作の全てを実行する必要があるものと理解されるべきではない。所定の実施形態では、多重タスキングおよび並列処理が有利であるかもしれない。さらに、上記の実施形態における多様なシステムコンポーネントの分割は、全ての実施形態でこのような分割が必要であるものと理解されるべきではない。
【0091】
その他の実施形態も以下の特許請求の範囲に含まれる。
[項目1]
アドホックネットワークのメンバでないデバイスによって、前記アドホックネットワークのメンバである所定のデバイスを経由して、前記アドホックネットワークへの参加を要求する段階と、
前記アドホックネットワークのメンバでない前記デバイスによって、前記所定のデバイスから、(i)要求元の前記デバイスのアドレス、および(ii)将来の要求元デバイスに割り当てるべき有限数のアドレス、を表す情報を含む応答を受信する段階と、
前記有限数のアドレスのうち、前記デバイスが将来の要求元デバイスに割り当てるアドレスの出所としての一部を、前記アドホックネットワークのメンバでない前記デバイスによって指定する段階と
を備える方法。
[項目2]
受信した前記応答は、前記所定のデバイスが要求元の前記デバイスに割り当てた前記アドレス、および、それぞれが、将来の要求元デバイスに割り当てるべき所定数のアドレスを含む複数のアドレスサブセットに含まれるアドレスを表す情報を含み、
前記有限数のアドレスのうち、前記デバイスが将来の要求元デバイスに割り当てるアドレスの出所として指定した前記一部は、前記複数のアドレスサブセットのうちの一つである
項目1に記載の方法。
[項目3]
前記所定のデバイスから受信した前記アドレスは、インターネットプロトコルバージョン4(IPv4)アドレスである項目2に記載の方法。
[項目4]
前記複数のアドレスサブセットのそれぞれにおいて、将来の要求元デバイスに割り当てるべき前記所定数のアドレスは、一つのIPv4アドレスに含まれるビットの数と同じ数のビットを含むビットマスクによって表され、
前記ビットマスクに含まれるバイナリ値1は、前記所定数のIPv4アドレスの固定ビットを定義し、
前記ビットマスクに含まれるバイナリ値0は、前記所定数のIPv4アドレスの範囲割り当ての一部であるビットを定義する
項目3に記載の方法。
[項目5]
将来の要求元デバイスに割り当てるべき前記有限数のアドレスを表す前記情報に基づいて、要求元の前記デバイスに前記アドレスを自己割り当てする段階と、
自己割り当てした前記アドレスを前記所定のデバイスに通知する段階と
をさらに備える項目1に記載の方法。
[項目6]
前記所定のデバイスから受信した前記応答は、前記所定のデバイスのアドレスをさらに含む項目1から5のいずれか1項に記載の方法。
[項目7]
前記所定のデバイスから受信した前記応答は、前記アドホックネットワークに対応付けられたサブネットマスクをさらに含む項目1から6のいずれか1項に記載の方法。
[項目8]
前記アドホックネットワークへの参加を要求するべく経由する前記アドホックネットワークの前記所定のデバイスを、複数のデバイスのうちから、前記アドホックネットワークのメンバでない前記デバイスによって、ランダムに選択する段階をさらに備える項目1から7のいずれか1項に記載の方法。
[項目9]
前記アドホックネットワークへの参加を要求するべく経由する前記アドホックネットワークの前記所定のデバイスを、複数のデバイスのうちから、前記アドホックネットワークのメンバでない前記デバイスによって、所定の基準に基づき選択する段階をさらに備える項目1から7のいずれか1項に記載の方法。
[項目10]
独立基本サービスセット(IBSS)ネットワークのデバイスによって、参加者デバイスから、前記IBSSネットワークに登録する要求を受信する段階と、
前記IBSSネットワークの前記デバイスによって、前記参加者デバイスに、(i)前記参加者デバイスのアドレス、および(ii)将来の参加者デバイスに割り当てるべき有限数のアドレス、を表す情報で応答する段階と
を備える方法。
[項目11]
前記参加者デバイスに応答する段階は、
前記デバイスによって、前記参加者デバイスに前記アドレスを割り当てる段階と、
前記参加者デバイスに割り当てた前記アドレスと、それぞれが、将来の参加者デバイスに割り当てるべき所定数のアドレスを含む複数のアドレスサブセットに含まれるアドレスを表す情報とを提供する段階と
を有する項目10に記載の方法。
[項目12]
前記複数のアドレスサブセットに含まれるアドレスは、インターネットプロトコルバージョン4(IPv4)アドレスである項目11に記載の方法。
[項目13]
前記複数のアドレスサブセットのそれぞれにおいて、将来の参加者デバイスに割り当てるべき前記所定数のアドレスは、一つのIPv4アドレスに含まれるビットの数に等しい数のビットを含むビットマスクによって表され、前記ビットマスクに含まれるバイナリ値1は、前記所定数のIPv4アドレスの固定ビットを定義し、前記ビットマスクに含まれるバイナリ値0は、前記所定数のIPv4アドレスの範囲割り当ての一部であるビットを定義する項目12に記載の方法。
[項目14]
前記参加者デバイスに前記アドレスを割り当てる段階は、
前記複数のアドレスサブセットのうち、将来の参加者デバイスに対して前記デバイスによって割り当てるアドレスの出所として前記デバイスによって指定された一つのアドレスサブセットに、少なくとも一つの利用可能なアドレスがあることを前記デバイスによって判定する段階と、
指定された前記アドレスサブセットに少なくとも一つの利用可能なアドレスがあると判定したことに応じて、指定された前記アドレスサブセットから、前記デバイスによって、前記参加者デバイスに前記アドレスを割り当てる段階と
を含み
前記参加者デバイスに割り当てた前記アドレスと、複数のアドレスサブセットに含まれるアドレスを表す情報とを提供する段階は、
前記複数のアドレスサブセットには、指定された前記アドレスサブセットに加えて、将来の参加者デバイスに割り当てるアドレスの出所としての少なくとも一つのアドレスサブセットがあることを前記デバイスによって判定する段階と、
(i)前記デバイスが前記参加者デバイスに割り当てた前記アドレスと、(ii)追加的な前記少なくとも一つのアドレスサブセットと、を含む応答を、前記デバイスによって前記参加者デバイスに送信する段階と
を含む
項目11に記載の方法。
[項目15]
前記参加者デバイスが自己割り当てした前記アドレスを含む通知を前記参加者デバイスから受信する段階をさらに備える項目10に記載の方法。
[項目16]
ハードウェアプロセッサと、
命令を格納するメモリと
を備えるデバイスであって、
前記命令は、前記ハードウェアプロセッサによって実行されると、前記デバイスに、
アドホックネットワークのメンバである一つ以上の移動体デバイスと通信する手順と、
前記アドホックネットワークのメンバでないデバイスから、前記アドホックネットワークに参加する要求を受信する手順と、
将来の要求元デバイスに対して前記デバイスによって割り当てるアドレスの出所として前記デバイスによって指定された、有限数のアドレスを含むアドレスサブセットに、少なくとも一つの未割り当てのアドレスがあるかを、前記要求に応答して判定する手順と、
指定された有限数のアドレスを含む前記アドレスサブセットに、少なくとも一つの未割り当てのアドレスがあると判定したことに応じて、指定された有限数のアドレスを含む前記アドレスサブセットから、未割り当てのアドレスを要求元の前記デバイスに割り当てる手順と、
指定された有限数のアドレスを含む前記アドレスサブセットに加えて、将来の要求元デバイスに割り当てるアドレスの出所としての、有限数のアドレスを含む少なくとも一つのアドレスサブセットがあるかを判定する手順と、
有限数のアドレスを含む追加的な少なくとも一つのアドレスサブセットがあると判定したことに応じて、前記デバイスが要求元の前記デバイスに割り当てた前記アドレスと、有限数のアドレスを含む追加的な前記少なくとも一つのアドレスサブセットを表す情報と、を含む応答を要求元の前記デバイスに送信する手順と、
有限数のアドレスを含む追加的なアドレスサブセットがないと判定したことに応じて、前記デバイスが要求元の前記デバイスに割り当てた前記アドレスを含む応答を要求元の前記デバイスに送信する手順と、
指定された有限数のアドレスを含む前記アドレスサブセットに未割り当てのアドレスがないと判定したことに応じて、前記要求を受け付けない手順と
を実行させる
デバイス。
[項目17]
有限数のアドレスを含む前記アドレスサブセットに含まれるアドレスは、インターネットプロトコルバージョン4(IPv4)アドレスである項目16に記載のデバイス。
[項目18]
有限数のアドレスを含む複数の前記アドレスサブセットのそれぞれは、一つのIPv4アドレスに含まれるビットの数に等しい数のビットを含むビットマスクによって表され、
前記ビットマスクに含まれるバイナリ値1は、有限数のアドレスを含む複数の前記アドレスサブセットのそれぞれに含まれる前記IPv4アドレスの固定ビットを定義し、
前記ビットマスクに含まれるバイナリ値0は、有限数のアドレスを含む複数の前記アドレスサブセットのそれぞれに含まれる前記IPv4アドレスの範囲割り当ての一部であるビットを定義する
項目17に記載のデバイス。
[項目19]
要求元の前記デバイスに送信される前記応答は、前記デバイスのアドレスをさらに含む項目16から18のいずれか1項に記載のデバイス。
[項目20]
要求元の前記デバイスに送信される前記応答は、前記アドホックネットワークに対応付けられたサブネットマスクをさらに含む項目16から19のいずれか1項に記載のデバイス。
図1A
図1B
図1C
図1D
図2
図3A
図3B
図4
図5