(57)【要約】      （修正有）【課題】アドホックネットワークにおいてパケットを受信するのに使用した同じリンクを介してパケットを転送する必要がある場合でも転送ループを作り出さないようにする。【解決手段】アドホックネットワーク装置は、互いに二重通信する相互リスナ装置のセット用仮想インターフェースを作成し、パケットが向けられている仮想インターフェースを識別する。ネットワーク装置は、ローカルネットワーク装置が仮想インターフェースのメンバーであるかどうかを判定し、そうである場合には、パケットの意図された受信者のようにパケットを処理する。【選択図】図１
2015133697.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータによる実行時に、該コンピュータに方法を実行させる命令を記憶する、非一過性のコンピュータ可読記憶媒体であって、該方法が、
パケットを受信することと、
前記パケットが向けられている仮想インターフェースを識別することであって、該仮想インターフェースのメンバーは相互接続されたネットワークピアのセットを含む、識別することと、
ローカルネットワーク装置が前記仮想インターフェースのメンバーであるかどうかを判定することと、
前記ローカルネットワーク装置が前記仮想インターフェースのメンバーであると判定されたことに応答して、前記パケットの意図された受信者として前記パケットを処理することと、
を含む、コンピュータ可読記憶媒体。
【請求項２】
前記方法はさらに、
１つ以上のネットワーク周辺機器から二重近傍情報を取得することであって、ネットワーク周辺機器の二重近傍情報は、隣接する装置の少なくとも１組を前記ネットワーク周辺機器に対して示す、取得することと、
前記二重近傍情報に基づいて１つ以上の仮想インターフェースを定義することであって、各仮想インターフェースのメンバーノードは、ローカルネットワークノードと相互接続されたネットワークピアのセットとを含む、定義することと、
を含む、請求項１に記載の記憶媒体。
【請求項３】
前記方法はさらに、各仮想インターフェース用のインターフェース識別子を生成することを含み、前記インターフェース識別子を生成することは、
前記仮想インターフェースに属する装置識別子のハッシュ値を算出することと、
前記仮想インターフェースに属する前記装置識別子のブルームフィルタを構成することと、
のうち１つ以上を含む、請求項２に記載の記憶媒体。
【請求項４】
前記仮想インターフェースを識別することは、前記パケットのヘッダからインターフェース識別子を取得することを含み、
前記ローカルネットワーク装置が前記識別された仮想インターフェースのメンバーであるかどうかを判定することは、前記インターフェース識別子と予め計算された識別子のセットとを比較することを含む、請求項１に記載の記憶媒体。
【請求項５】
前記インターフェース識別子は、
前記仮想インターフェースのメンバーの装置識別子のセットから計算されたハッシュと、
前記仮想インターフェースのメンバー間で予めネゴシエーションされた識別子と、
のうち１つ以上を含む、請求項４に記載の記憶媒体。
【請求項６】
前記仮想インターフェースを識別することは、前記パケットのヘッダからブルームフィルタを取得することを含み、該ブルームフィルタは、仮想インターフェースのメンバーの装置識別子に基づいて生成され、前記ローカルネットワーク装置が前記識別される仮想インターフェースのメンバーであるかどうかを判定することは、
ローカルネットワークノードのネットワーク周辺機器のセットの装置識別子を用いて、前記ブルームフィルタにクエリーを実行して、前記ブルームフィルタのメンバーである装置識別子のセットを決定することと、
装置識別子の前記決定されたセットに対応する仮想インターフェースを決定することと、
を含む、請求項１に記載の記憶媒体。
【請求項７】
前記仮想インターフェースを識別することは、前記パケットのヘッダから装置識別子のセットを取得することを含み、前記ローカルネットワーク装置が対象インターフェースのメンバーであると判定することは、
前記ローカル装置が装置識別子のパケットヘッダのセットのメンバーであることを検証することと、
前記装置識別子に関連付けられているネットワークピアがローカルネットワークノードの二重周辺機器であることを検証することと、
のうち１つ以上を含む、請求項１に記載の記憶媒体。
【請求項８】
前記方法が、
１つ以上のネットワークピアから送信されたパケットを監視してネットワーク近傍の変化を検出することと、
前記ネットワーク近傍における相互リスナグループのセットを決定することと、
ローカルネットワークノードがメンバーである仮想インターフェースのセットを決定することと、
仮想インターフェースの前記決定されたセットを起動することと、
を含む、請求項１に記載の記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般的にコンピュータネットワークに関する。具体的には、本開示は、互いに二重通信する相互リスナ装置のセット用仮想インターフェースを作成するネットワークノードに関する。
【背景技術】
【０００２】
アドホックおよびマルチホップ無線ネットワークにより、モバイル装置は、固定ネットワークインフラストラクチャを必要とせずに、自装置の無線範囲外の遠隔装置と通信できる。これらのモバイル装置は、新規の装置が自装置の通信エリアに入るか、他の装置がその通信エリアを出ると、ローカルネットワークトポロジを変更することができる。また、各無線装置は、様々なネットワークピアを通過する経路を用いて、自装置の直接の通信エリアの外部にある他の装置と通信することができる。
【０００３】
無線アドホックネットワークにおける一部の装置は、そのブロードキャスト範囲内の他の隣接する装置と通信するために、Ｗｉ−Ｆｉ無線などの単一のリンクを使用することができる。しかし、これらの隣接する装置の一部は、互いのブロードキャスト範囲内にない可能性がある。したがって、ネットワーク装置が２つの隣接するノード間でパケットを転送する必要がある場合には、ネットワーク装置は、パケットを受信するのに使用されたのと同じリンクを介してパケットを転送する必要がある場合がある。この場合、転送ループを作り出してしまうという望ましくない効果が生じる可能性がある。
【発明の概要】
【課題を解決するための手段】
【０００４】
一実施形態は、互いに二重通信する相互リスナ装置のセット用仮想インターフェースの作成を容易にするネットワーク装置を提供する。動作中に、ネットワーク装置は、パケットを受信することができ、パケットが向けられている仮想インターフェースを識別する。仮想インターフェースのメンバーのセットは、相互接続されたネットワークピアのセットを含むことができる。ネットワーク装置は、ローカルネットワーク装置が仮想インターフェースのメンバーであるかどうかを判定し、そうである場合には、パケットの意図された受信者のようにパケットを処理する。
【０００５】
一部の実施形態では、ネットワーク装置は、１つ以上のネットワーク周辺機器から二重近傍情報を得ることができ、二重近傍情報に基づいて１つ以上の仮想インターフェースを定義する。周辺機器の二重近傍情報は、ネットワーク周辺機器に隣接する装置の少なくとも１組を示すことができる。各仮想インターフェースのメンバーノードは、ローカルネットワークノードと、相互接続されたネットワークピアのセットとを含むことができる。
【０００６】
一部の実施形態では、ネットワーク装置は、それぞれの仮想インターフェース用のインターフェース識別子を生成することができる。例えば、ネットワーク装置は、仮想インターフェースに属する装置識別子のハッシュ値を計算し、仮想インターフェースに属する装置識別子のブルームフィルタを構成することにより、インターフェース識別子を生成することができる。
【０００７】
一部の実施形態では、ネットワーク装置は、パケットのヘッダからインターフェース識別子を取得することにより、仮想インターフェースを識別することができる。また、ネットワーク装置は、インターフェース識別子と予め計算された識別子のセットとを比較することによって、ローカルネットワーク装置が識別された仮想インターフェースのメンバーであるかどうかを判定することができる。
【０００８】
これらの実施形態の一部の変形例では、インターフェース識別子は、仮想インターフェースのメンバーの装置識別子のセットから計算されたハッシュ、および仮想インターフェースのメンバー間で予めネゴシエーションされた識別子のうち１つ以上を含む。
【０００９】
一部の実施形態では、ネットワーク装置は、パケットのヘッダからブルームフィルタを得ることにより仮想インターフェースを識別することができる。ブルームフィルタは、仮想インターフェースのメンバーの装置識別子に基づいて生成されてもよい。また、ローカルネットワーク装置が識別された仮想インターフェースのメンバーであるかどうかを判断しつつ、ネットワーク装置は、ローカルネットワークノードのネットワーク周辺機器のセットの装置識別子を用いて、ブルームフィルタに対してクエリーを実行し、ブルームフィルタのメンバーである装置識別子のセットを決定することができる。ネットワーク装置は、装置識別子の決定されたセットに対応する仮想インターフェースを決定する。
【００１０】
一部の実施形態では、ネットワーク装置は、仮想インターフェースがパケットのヘッダから装置識別子のセットを得ることを識別することができる。また、ネットワーク装置は、ローカル装置が装置識別子のパケットヘッダのセットのメンバーであることを確認すること、および／または装置識別子に関連付けられているネットワークピアがローカルネットワークノードの二重周辺機器であることを確認することにより、ローカルネットワーク装置が対象インターフェースのメンバーであると判定することができる。
【００１１】
一部の実施形態では、ネットワーク装置は、１つ以上のネットワークピアによって送信されるパケットを監視して、ネットワーク近傍の変化を検出することができる。ネットワーク装置はまた、ネットワーク近傍において相互リスナグループのセットを決定し、ローカルネットワークノードがメンバーとなっている仮想インターフェースのセットを決定する。ネットワーク装置は、仮想インターフェースの決定されたセットを起動することができる。
【００１２】
一部の実施形態では、ネットワーク装置は、１つ以上の仮想インターフェース用の装置のメンバーシップをネゴシエートするためにパケットを送信することができる。パケットは、ローカルネットワークノード用のネットワークピアのセット、ローカルネットワークノードがメンバーとなっている仮想インターフェースのセット、ネットワークピアのブルームフィルタ、および仮想インターフェースのブルームフィルタのうち１つ以上を含むことができる。
【００１３】
一実施形態では、遠隔装置にパケットを送信するために仮想インターフェースを用いることを容易にするネットワーク装置を提供する。動作中、ネットワーク装置は遠隔装置のためにパケットを生成することができ、パケットの次ホップ先を決定する。ネットワーク装置はまた、次ホップ先の近隣接続情報に基づいて、次ホップ先の仮想インターフェースを決定することができる。次ホップノードにパケットを送信するために、ローカルネットワーク装置は、仮想インターフェースとパケットの次ホップ先の識別子とを設定して、仮想インターフェースを経由してパケットを送信する。
【００１４】
一部の実施形態では、次ホップ先は、ネットワークノード、ネットワークノードのセット、エニーキャストアドレス、およびブロードキャストアドレスのうちの１つ以上を含む。
【００１５】
一部の実施形態では、ネットワーク装置は、次ホップ先に関連する１つ以上の仮想インターフェースの使用履歴情報、パケットが最後に次ホップ先に送信されてからの近隣接続情報の変化、およびパケットが最後に仮想インターフェースに送信されてからの近隣接続情報の変化のうち１つ以上に基づいて仮想インターフェースを決定する。
【図面の簡単な説明】
【００１６】
【図１】図１は、一実施形態に係る、様々な相互リスナネットワーク近傍に対する仮想インターフェースの確立および該仮想インターフェース上での通信を容易にする例示的なコンピュータ環境を示している。
【図２】図２は、一実施形態に係る、相互リスナネットワークノードの近傍に対応する仮想インターフェースのセットを確立し維持するための方法を示すフローチャートである。
【図３】図３は、一実施形態に係る、無線ネットワークノードのセットのための例示的なネットワーク近傍を示している。
【図４】図４は、一実施形態に係る、ネットワークノードのセットのための例示的な隣接テーブルを示す図である。
【図５Ａ】図５Ａ、一実施形態に係る、ネットワークノードのセットのための例示的な仮想インターフェースを示している。
【図５Ｂ】図５Ｂは、一実施形態に係る、ネットワークノードのセットのための例示的な仮想インターフェースを示している。
【図６】図６は、一実施形態に係る、相互リスナネットワーク近傍のセットに対して仮想インターフェースを介して受信したパケットを処理するための方法を示すフローチャートである。
【図７Ａ】図７Ａは、一実施形態に係る、ネットワーク装置識別子のセットを使用して仮想インターフェースを識別するパケットを示している。
【図７Ｂ】図７Ｂは、一実施形態に係る、仮想インターフェース識別子を用いて仮想インターフェースを識別するパケットを示している。
【図７Ｃ】図７Ｃは、一実施形態に係る、ネットワーク装置識別子のセットに対するハッシュ値を用いて仮想インターフェースを識別するパケットを示している。
【図７Ｄ】図７Ｄは、一実施形態に係る、ブルームフィルタを使用して仮想インターフェースを識別するパケットを示している。
【図８】図８は、一実施形態に係る、ローカルネットワーク装置がパケットの対象仮想インターフェースのメンバーであるかどうかを判定するためにブルームフィルタを使用する方法を示すフローチャートである。
【図９】図９は、一実施形態に係る、様々な相互リスナネットワーク近傍に対する仮想インターフェースの確立および該仮想インターフェース上での通信を容易にする例示的な装置を示す図である。
【図１０】図１０は、一実施形態に係る、様々な相互リスナネットワーク近傍に対する仮想インターフェースの確立および該仮想インターフェース上での通信を容易にする例示的なコンピュータシステムを示す。
【発明を実施するための形態】
【００１７】
図面において、同じ参照符号は同一の図面要素を示している。
【００１８】
以下の説明は、当業者が実施形態を作成し、使用できるようにするためのものであり、特定の用途およびその要件の文脈において提供される。開示された実施形態に対する種々の変形は当業者に容易に明らかであり、本明細書で定義される一般原理は、本開示の精神および範囲から逸脱することなく他の実施形態および用途に適用され得る。したがって、本発明は図示される実施形態に限定されるものではなく、本明細書に開示される原理および特徴に合致する最も広い範囲が認められるべきである。
【００１９】
本発明の実施形態は、無線ネットワークの二重周辺機器のグループに対して仮想リンクを確立するという問題を解決する。例えば、コンテンツ中心ネットワーク（ＣＣＮ）では、ネットワーク装置は、転送のループを回避する方法として、パケットを受信した面（例えば、物理または仮想インターフェース）を介してパケットを転送することはできない。しかしながら、典型的なアドホック無線ネットワークにおいて、パケットの送り手と意図された受信者が同じインターフェースを介して接続されている場合、この同じインターフェースを介してパケットを中継する装置が必要になる場合がある。
【００２０】
一部の実施形態では、各面は、互いのパケットを聴取可能な二重周辺機器のセットのみを含むと定義される。これにより、装置は、所定の面を介してパケットを受信すると、この面に対応付けられた任意の装置へパケットを転送する必要はない。パケットの意図された受信者が当該面のメンバーである場合、ネットワーク装置は、パケットが既にその目的地に到着したと仮定してパケットを無視する。
【００２１】
ネットワーク装置は、パケットのヘッダに所定の面についての識別子を含めることにより、当該面を介してパケットを送信することができる。装置の二重周辺機器は、パケットのヘッダを分析して、二重周辺機器が面のメンバーがあるかどうかを判定することができる。面のメンバーである任意の二重周辺機器は、パケットを消費する、または他の面を横断してパケットを転送するなどのパケット処理を行うことができる。
【００２２】
以下の用語は、本発明の実施形態を説明する。
面：面は、ネットワークノードの物理インターフェースまたは仮想インターフェースを含む。用語「面」および「仮想インターフェース」は互換的に用いられる。
二重周辺機器：ネットワークノードの二重周辺機器は、ネットワークノードが直接受信するパケットの送信元となり、ネットワークノードから直接パケットを受信することができる装置のセットを含む。
２ホップ二重近傍：ネットワークノードの２ホップ二重近傍は、ネットワークノードの二重周辺機器のそれぞれについて二重周辺機器のセットを含む。ネットワークノードは、その二重周辺機器の各々から二重近傍情報を受信することができる。ネットワークノードは、二重周辺機器を使用してその２ホップ二重近傍を決定する。
相互リスナ：面の相互リスナは、相互に直接パケットを送信および受信することができるファーストホップ二重周辺機器のセットを含む。
【００２３】
図１は、一実施形態に係る、様々な相互リスナネットワーク近傍に対する仮想インターフェースの確立および該仮想インターフェース上での通信を容易にする例示的なコンピュータ環境１００を示している。コンピュータ環境１００は、アドホックまたはマルチホップ無線ネットワークなどの共有ネットワーク１１２、を介して通信する複数のネットワークノードを含むことができる。
【００２４】
動作中、ネットワーク１１２のネットワーク装置は、必要に応じて、無線ネットワークのための仮想インターフェースを動的に作成および廃止することによってアドホックまたはマルチホップ無線ネットワークを形成するために無線チャネルを使用することができる。具体的には、各ネットワーク装置は、隣接ノードのセットを自動検出し、相互リスナノードのグループにこれらの隣接ノードをクラスタ化する。これにより、各ネットワーク装置は、ネットワーク１１２の他のネットワークノードと仮想インターフェースのメンバーノードについて明示的にネゴシエートする必要なく、仮想インターフェースを自律的に作成することができる。
【００２５】
例えば、ネットワーク装置１０４および１０６は、ネットワーク装置１０２、１０８および１１０と同様に、互いに直接二重ネットワーク接続を有してもよい。また、ネットワーク装置１０８および１１０は、互いに直接二重ネットワーク接続を有することができるが、ネットワーク装置１０２とは直接二重ネットワーク接続を有していない。一部の実施形態では、ネットワーク１１２のこれらの装置は、隣接ノードのネットワーク装置のセットを識別する二重近傍情報（例えば、隣接テーブル）を相互に交換することができる。
【００２６】
ネットワーク装置１０２、１０４、および１０６は、ネットワーク１１２を介して互いに通信することができるので、それらは互いから二重近傍情報を得ることができる。ネットワーク装置１０２、１０４、および１０６は、各々独立に、互いの二重近傍情報を解析して相互リスナのグループを形成することができると判断し、各々は続いて、相互リスナグループのためのローカル仮想インターフェース１１４を確立する。各相互リスナグループ、およびその対応する仮想リンクは、相互リスナグループ内の各他の装置との二重ネットワーク接続を有する装置のセットを含む。
【００２７】
同様に、装置１０４、１０６、１０８、および１１０は、互いから二重近傍情報を得るためにネットワーク１１２を介して互いに通信することができる。装置１０４、１０６、１０８、および１１０は、互いの二重近傍情報を分析して、相互リスナグループを形成することができると判断し、各々は相互リスナグループのためのローカル仮想インターフェース１１６を確立する。ネットワーク１１２の装置は、それぞれ１つ以上の仮想リンクを作成すると、パケットを送信してきた任意の装置にパケットを送信することなく、ネットワーク１１２を介してパケットを転送するためにこれらの仮想リンクを使用することができる。
【００２８】
例えば、ネットワーク装置１０８は、ネットワーク装置１０２および１１０に向けられたパケットを伝達することができる。パケットのヘッダは、仮想インターフェース１１６の識別子を含む。ネットワーク装置１０４は、装置１０８からパケットを受信し、パケットのヘッダを解析し、パケットが仮想インターフェース１１６を介して到着したと判断する。しかし、仮想インターフェース１１６は、互いのパケットを受信することができる各装置１０４、１０６、１０８、および１１０を含むため、ネットワーク装置１０４は、装置１１０が装置１０８から既にパケットを受信していると判断し、続いて、仮想インターフェース１１４を介して装置１０２へパケットを送信する。装置１０４が仮想インターフェース１１４を介してパケットを転送する場合、装置１０４は、パケットが装置１０８に逆流するのを防止する仮想インターフェース１１４のための識別子を含むことができる。装置１０８は、ネットワーク１１２を介して転送されたパケットを検出することができるが、装置１０８が仮想インターフェース１１４のメンバーではないと判定した後はパケットを無視する。
【００２９】
図２は、一実施形態に係る、ネットワーク装置で仮想インターフェースのセットを確立し維持するための方法を示すフローチャートである。具体的には、各仮想インターフェースは、無線ネットワーク上の相互リスナネットワークノードの近傍に対応している。動作中に、ネットワーク装置は、１つ以上の隣接ネットワークノードから二重近傍情報を取得し（動作２０２）、ネットワーク近傍における相互リスナグループのセットを決定する（動作２０４）。二重近傍情報としては、例えば、所定のネットワークノードとの間でパケットを送受信することが可能な装置のリストが含まれる。各相互リスナグループは、相互にパケットを送受信可能な二重ネットワークノードのセットを含むことができる。ネットワーク装置は、次に、相互リスナグループのセットに基づいて１つ以上の仮想インターフェースを作成する（動作２０６）。
【００３０】
一部の実施形態では、システムは、相互リスナグループの任意の組み合わせのための仮想インターフェースを作成し、その際、仮想インターフェースの組の間での装置重複を許可する。他の一部の実施形態では、システムは、隣接ノードの全セットを包含する相互リスナグループの最小セットを決定し、これら相互リスナグループを使用して装置のメンバーシップが重複していない仮想インターフェースのセットを作成する。
【００３１】
ネットワーク装置はまた、仮想インターフェースのセットを更新して、新たな隣接ノードを収容するか、装置の近傍を離れたネットワークノードを考慮に入れる。例えば、ネットワーク装置は、ローカルネットワークノードがパケットの仮想インターフェースのメンバーであるかどうかに関係なく、隣接するネットワークノードによって送信されているネットワークパケットを監視することができる（動作２０８）。そして、ネットワーク装置は、パケットのヘッダを解析して、ネットワークノードがネットワーク近傍に入ったか、またはそこから出たかどうかを判定する（動作２１０）。ネットワーク装置が新ノードからパケットを受信すると、ネットワーク装置は、ノードがローカル近傍に入ったことを検出し、新ノードを既知の周辺機器として認識しない。
【００３２】
ネットワーク装置はまた、パケットのヘッダを解析することにより所定のノードがローカル近傍から離れたことを検出し、相互リスナグループの変化を決定することができる。ネットワーク装置が既知の周辺機器からパケットを受信すると、ネットワーク装置は、パケットのヘッダが新たな仮想インターフェース識別子を含むかどうか、あるいは、パケットのヘッダがヘッダ内に含まれることが期待されたネットワークノードを含んでいないかどうかを検出することができる。
【００３３】
図３は、一実施形態に係る、コンピュータ環境３００内の無線ネットワークノードのセットのための例示的なネットワーク近傍を示している。コンピュータ環境３００は、モバイルコンピュータ装置３０２（「ノードＡ」と呼ぶ）および３０８（「ノードＤ」と呼ぶ）、ならびにラップトップ３０６（「ノードＣ」と呼ぶ）を有する無線ネットワークを含むことができる。コンピュータ環境３００はまた、無線アクセスポイント３０４および３１０（それぞれ「ノードＢ」および「ノードＥ」と呼ぶ）を含むことができる。具体的には、ＡＰ３０４およびラップトップ３０６は、ＡＰ３０４およびラップトップ３０６の両方がモバイル装置３０２および３０８、ならびにＡＰ３１０と二重通信することを可能にするネットワーク近傍３１２を有していてもよい。
【００３４】
モバイル装置３０２は、ＡＰ３０４およびラップトップ３０６を含むネットワーク近傍３１２を有していてもよい。ネットワーク近傍３１２により、モバイル装置３０２はＡＰ３０４およびラップトップ３０６と二重通信することが可能となる。また、モバイル装置３０８およびＡＰ３１０は、装置３０８およびＡＰ３１０がＡＰ３０４およびラップトップ３０６と二重通信することを可能にするネットワーク近傍３１６を有している。しかしながら、モバイル装置３０２は、モバイル装置３０８もしくはＡＰ３１０と二重通信をしなくてもよい。モバイル装置３０２は、ＡＰ３０４またはラップトップ３０６が近傍３１６のための仮想インターフェースを介してモバイル装置３０８またはＡＰ３１０に送信するパケットを検出することができるが、モバイル装置３０２は、モバイル装置３０２が近傍３１６のメンバーではないと認識した際にこれらのパケットを無視する。
【００３５】
装置３０８がモバイル装置３０２のためのネットワーク近傍３１４内に入るように、モバイル装置３０２が装置３０８の方向に移動することで、モバイル装置３０２および３０８が互いのパケットの検出を開始する可能性がある。このとき、モバイル装置３０２および３０８はそれぞれ、互いの装置を含むようにローカルネットワーク近傍を更新することができる。一部の実施形態では、モバイル装置３０２および３０８は、互いのネットワークパケットを解析することにより、互いの二重近傍情報を推測することもできる。モバイル装置３０２および３０８は、互いのパケットから仮想インターフェース識別子を得ることができ、これらの識別子を解析して互いのネットワーク近傍における重複を推測することができる。あるいは、モバイル装置３０２および３０８は、その二重近傍情報を直接交換でき、互いのネットワーク近傍における重複を決定するために、隣接ネットワークノード間の相互比較を行うことができる。
【００３６】
一部の実施形態では、ネットワークノード（例えば、モバイル装置３０２）は、パケットを検出することができる任意の隣接ネットワークノードから更新された近傍情報を要求するパケットを送信することによって、新たな隣接ノードを発見するプロセスを開始することができる。これらの隣接ノードは、その近傍情報（例えば、隣接テーブル、または任意の他のデータ構造）を更新し、ネットワークノードにその更新された近傍情報を返信する。ネットワークノードは、その二重近傍情報を更新して応答ノードを含むことができ、更新された近傍情報を使用して、そのローカル仮想インターフェースを（必要に応じて）再定義する。ネットワークノードは、隣接ノードにその更新された近傍情報を返すこともできる。
【００３７】
図４は、一実施形態に係る、ネットワークノードのセットのための例示的な隣接テーブルを示す図である。具体的には、ノードＡの隣接テーブル４００は、ノードＡが周辺機器であるノードＢおよびノードＣを有することを示す。ノードＢの隣接テーブル４１０は、ノードＢが周辺機器であるノードＡ、ノードＣ、ノードＤ、およびノードＥを有することを示す。なお、ノードＣの隣接テーブル４２０は、ノードＢの隣接テーブル４１０と同じセットのノードを含む。このことは、ノードＢおよびノードＣが同一のネットワーク近傍の一部であることを意味する。ノードＣの近傍は、ノードＢを含み、ノードＢの周辺機器（ノードＡ、ノードＤ、およびノードＥ）を含む。
【００３８】
また、ノードＤの隣接テーブル４３０は、ノードＥの隣接テーブル４４０と同じセットのノードを含む。このことは、ノードＤおよびノードＥが同じ近傍の一部であることを意味する。ノードＤの近傍は、ノードＥ、およびノードＥの他の周辺機器（ノードＢ、ノードＣ）を含む。ノードＥの近傍は、ノードＤを含み、ノードＤの他の周辺機器（ノードＢおよびノードＣ）も含む。
【００３９】
一部の実施形態では、各ネットワークノードは、ローカル二重近傍情報を使用して、仮想インターフェース候補のセットを生成することができる。また、ネットワークノードは、起動する仮想インターフェースのサブセットを選択することができる。例えば、ネットワークノードは、その隣接ノードを、相互リスナノードの１つ以上のグループに分けることが可能であり、各相互リスナグループの仮想インターフェースを起動する。
【００４０】
図５Ａおよび図５Ｂは、一実施形態に係る、ネットワークノードのセットのための例示的な仮想インターフェースを示している。具体的には、ノードＡの仮想インターフェース５００の完全なセットは、隣接ネットワークノードＡおよびＢに基づいて３通りの可能な組み合わせを含むことができる。一部の実施形態では、ノードＡは面３を選択して起動し、これは、ノードＡの唯一の相互リスナグループ（例えば、図３のネットワーク近傍３１４）に対応する。
【００４１】
ノードＢの仮想インターフェース５１０の完全なセットは、隣接ネットワークノードＡ、Ｃ、Ｄ、およびＥに基づいて１５通りの可能な組み合わせを含むことができる。一部の実施形態では、ノードＢは、面５および面１４を選択して起動し、これらの面を合わせると、ノードＢの隣接ノードの全セットをカバーする。面５は、相互リスナグループ｛Ａ、Ｂ、およびＣ｝（例えば、図３のネットワーク近傍３１４）に対応し、面１４は、相互リスナグループ｛Ｂ、Ｃ、Ｄ、およびＥ｝（例えば、図３のネットワーク近傍３１６）に対応する。ノードＣの仮想インターフェース５２０は、隣接ネットワークノードＡ、Ｂ、Ｄ、およびＥに基づいて１５通りの可能な組み合わせを含むことができる。なお、ノードＣはノードＢと同じネットワーク近傍に属し、これにより、ノードＣも、面５および面１４を選択して起動する。
【００４２】
ノードＤの仮想インターフェース５３０の完全なセットは、隣接ネットワークノードＢ、Ｃ、およびＥに基づいて７通りの可能な組み合わせを含むことができる。一部の実施形態では、ノードＤは面７を選択して起動し、これは、ノードＤの唯一の相互リスナグループ（例えば、図３のネットワーク近傍３１６）に対応する。ノードＥの仮想インターフェース５４０は、隣接ネットワークノードＢ、Ｃ、およびＤに基づいて７通りの可能な組み合わせを含むことができる。なお、ノードＥはノードＤと同じネットワーク近傍に属し、これにより、ノードＥも面７を選択して起動する。
【００４３】
一部の実施形態では、各ネットワークノードは、各仮想インターフェース候補のための仮想インターフェース識別子を生成または導出することができる。例えば、ノードＢは、各仮想インターフェース候補５１０に１つずつ、合わせて１５個のインターフェース識別子を生成してもよい。所定の仮想インターフェースの識別子は、例えば、仮想インターフェースのメンバー装置の装置識別子から計算されたハッシュ値を含むことができる。あるいは、識別子は、ランダムに生成された任意の他の値、またはメンバー装置の仮想インターフェースのセットに基づいて計算された値を含むことができる。ネットワーク装置は、予め計算された仮想インターフェース識別子のセットを含むテーブルを生成することができ、これにより各テーブルエントリは、メンバー装置の仮想インターフェースのセットに対する装置名のセットに仮想インターフェース識別子をマッピングするようになっている。これにより、ネットワークノードは、テーブルにおいてルックアップ操作を行うことで仮想インターフェースのメンバーであるかどうかを判定する。一部の他の実施形態では、各ネットワークノードは、起動している仮想インターフェースのみに仮想インターフェース識別子を生成または導出してもよい。
【００４４】
一部の実施形態において、ネットワーク装置は、パケットのヘッダ内の仮想インターフェース識別子を指定することにより無線ネットワークを介してパケットを送信することができる。仮想インターフェース識別子により、他のネットワーク装置は、自装置がパケットを通信するために使用されているものと同じ仮想インターフェースのメンバーであるか否かを判断することができる。
【００４５】
図６は、一実施形態に係る、相互リスナネットワーク近傍のセットに対して仮想インターフェースを介して受信したパケットを処理するための方法６００を示すフローチャートである。動作中、ネットワーク装置は、ネットワークパケットを受信することができ（動作６０２）、パケットが向かうネットワークインターフェースを識別する（動作６０４）。例えば、仮想インターフェース識別子は、相互リスナグループに属するネットワーク装置の装置識別子のセットを含むことができる。あるいは、仮想インターフェース識別子は、装置識別子のセットのハッシュを含むことができ、または装置識別子のセットに基づいて生成されたブルームフィルタを含むことができる。
【００４６】
そして、ネットワーク装置は、自装置が識別された仮想インターフェースのメンバーであるかどうかを判定する（動作６０６）。例えば、仮想インターフェース識別子が装置識別子のセットを含む場合には、ローカルネットワーク装置は、ネットワーク装置の識別子が装置識別子のセットに含まれるかどうかを判定することにより、自装置がインターフェースのメンバーであるかどうかを判定することができる。一方、仮想インターフェース識別子が装置識別子のセットに対するハッシュ値を含む場合には、ローカル装置は、ハッシュ値を用いて、仮想インターフェース候補のテーブルのルックアップを実行することができる。ローカルネットワーク装置が一致を見つけた場合には、ネットワーク装置は、ローカルネットワーク装置がパケットの仮想インターフェースのメンバーであると結論付けることができる。ネットワーク装置は、仮想インターフェースのメンバーである隣接ネットワークノードのセットを決定するために、一致するエントリを使用することもできる。一方、仮想インターフェースがブルームフィルタを含む場合には、ローカルネットワーク装置は、ローカルネットワークノードおよびすべての隣接ノードの二重近傍情報で見つかった装置識別子を使用して、ブルームフィルタに対してクエリーを実行することができる。ブルームフィルタのヒットとなる装置識別子は、パケットによって識別される仮想インターフェースのメンバーであるネットワークノードのセットに対応する。
【００４７】
ネットワーク装置が識別された仮想インターフェースのメンバーである場合には、ネットワーク装置は続いて、パケットの意図された受信者に対してパケットを処理することができる（動作６０８）。例えば、ネットワークノードは、コンテンツ中心ネットワーク（ＣＣＮ）装置を含むことができ、パケットは、インタレストまたはコンテンツオブジェクトを含むことができる。ネットワークパケットがインタレストを含む場合には、ネットワーク装置は、転送情報ベース（ＦＩＢ）にルックアップ動作を実行して、インタレストパケットを転送するために使用する他の仮想インターフェースを決定することができる。一方、パケットがコンテンツオブジェクトを含む場合には、ネットワーク装置は、ペンディングインタレストテーブル（ＰＩＴ）にルックアップ動作を実行して、コンテンツオブジェクトを転送するために使用する他の仮想インターフェースを決定することができる。ネットワーク装置は、パケットのペイロード（例えば、コンテンツオブジェクト）をキャッシュする等の他の動作を行うことができる。
【００４８】
一方、ローカルネットワーク装置がパケットのヘッダにおいて識別された仮想インターフェースのメンバーでない場合には、ネットワーク装置は、修復アクション（動作６１０）を実行することができる。修復アクションは、例えば、パケットを無視すること、または（例えば、パケットを転送せずに）パケットのペイロードをキャッシュすることを含むことができる。修復アクションはまた、パケットを送信した隣接ノードの二重近傍情報を更新するためにパケットのヘッダ内の仮想インターフェース識別子を使用することを含むこともできる。
【００４９】
図７Ａは、一実施形態に係る、ネットワーク装置識別子のセットを使用して、仮想インターフェースを識別するパケット７００を示している。具体的には、パケット７００は、ペイロード７０６を含み、ネットワーク装置識別子７０４のセットを保持するヘッダ７０２を含む。パケット７００を受信したネットワーク装置は、装置識別子７０４と一致するメンバー装置のセットを有するローカル仮想インターフェースを探索することにより、仮想インターフェース識別子として装置識別子７０４を使用することができる。ネットワーク装置は、装置識別子７０４がローカルネットワーク装置の識別子を含んでいるかどうかを判定することにより、仮想インターフェースのメンバーであるかどうか判定することもできる。
【００５０】
図７Ｂは、一実施形態に係る、仮想インターフェース識別子を用いて仮想インターフェースを識別するパケット７１０を示している。パケット７１０は、ペイロード７１６、および明示的な仮想インターフェース識別子７１４を保持するヘッダ７１２を含んでいる。一部の実施形態では、相互リスナ装置のグループは、そのグループに対応する仮想インターフェースの識別子に一致させることができる。仮想インターフェース識別子７１４は、数値、英数字、または現在知られているまたは今後開発される他の任意の論理値を含むことができる。他の実施形態において、相互リスナ装置のグループ内の各装置は、仮想インターフェースの識別子がグループ間で共通となるように、仮想インターフェースの識別子を導出することができる。
【００５１】
図７Ｃは、一実施形態に係る、ネットワーク装置識別子のセットに対するハッシュ値を用いて仮想インターフェースを識別するパケットを示している。パケット７２０は、ペイロード７２６と、仮想インターフェースに対するハッシュ識別子７２４を保持するヘッダ７２２とを含んでいる。相互リスナ装置のグループ内の各装置は、グループの装置識別子のハッシュを計算することによって、グループに対して仮想インターフェースの識別子を生成することができる。これにより、仮想インターフェースは、相互リスナグループにわたって同一の識別子を有することができる。装置が隣接ノードからパケット７２０を受信すると、この装置は、ハッシュ識別子７２４と事前に計算されたハッシュ値のセットとを比較して、どの仮想インターフェースがパケットを送信するために使用されたか、および、仮想インターフェースのメンバーである隣接ノードのセットを決定することができる。
【００５２】
図７Ｄは、一実施形態に係る、ブルームフィルタを使用して仮想インターフェースを識別するパケット７３０を示している。パケット７３０は、ペイロード７３６と、仮想インターフェースのブルームフィルタ７３４を保持するヘッダ７３２とを含んでいる。ブルームフィルタは、素子（例えば、装置識別子）がセットのメンバーであるかどうかを判定するために典型的に使用される空間効率の良いデータ構造である。本開示では、「セット」とは、仮想インターフェースのメンバーである相互リスナ周辺機器のグループである。したがって、ネットワーク装置が仮想インターフェースのメンバーであるかどうかを判定する問題は、装置の識別子がブルームフィルタ７３４のメンバーであるかどうかを判定することに相当する。ブルームフィルタでは、誤検出の可能性はあるが、検出漏れの可能性はない。
【００５３】
また、ｋ個の異なるハッシュ関数があり、各ハッシュ関数は、均一なランダム分布を持つｍ個の配列位置のうちの１つに各要素（例えば、装置識別子）をマッピングまたはハッシュする。空のブルームフィルタは、すべて０に設定されるｍビットのビット列である。ネットワーク装置は、ｋ個のハッシュ関数の各々に仮想インターフェースの各装置識別子を供給することによって、仮想インターフェースのブルームフィルタを生成することができ、各装置識別子のｋ個の配列位置を取得することができる。このシステムは、ブルームフィルタのこれら配列位置を１に設定する。
【００５４】
パケット７３０を受信したネットワーク装置は、既知の装置識別子のうちどれが仮想インターフェースのメンバーであるかを決定するために、ブルームフィルタに対してクエリーを実行することができる。例えば、ネットワーク装置は、すべての１ホップ周辺機器の隣接テーブルから取得可能な、１ホップおよび２ホップ周辺機器の識別子のセットを使用することができる。装置のどのグループが仮想インターフェースのメンバーであるかをローカル装置が決定すると、ローカル装置は、この装置群を使用して、自装置が仮想インターフェースのメンバーであるかどうか、および他のどのメンバーがパケットを受信したかを判定することができる。
【００５５】
装置識別子がセット内にあるか否かについてクエリーを実行するために、ネットワーク装置は、ｋ個のハッシュ関数のそれぞれに装置識別子を供給してｋ個の配列位置を得ることができる。これらの位置のビットのいずれかが０である場合には、装置識別子は、セット内にない。これは、装置識別子がセットのメンバーである場合、装置識別子をセットに挿入するとすべてのｋビットが１に設定されるからである。すべてが１の場合、装置識別子がセット内にあるか、あるいは、ビットが他の要素の挿入時に１に設定されている（しかし、これは誤検出である）。
【００５６】
図８は、一実施形態に係る、ローカルネットワーク装置がパケットの対象仮想インターフェースのメンバーであるかどうかを判定するためにブルームフィルタを使用する方法を示すフローチャートである。動作中に、ネットワーク装置は、パケットのヘッダからブルームフィルタを得ることができ（動作８０２）、１ホップおよび２ホップ隣接ノードのセットに対する装置識別子を用いてブルームフィルタにクエリーを実行する（動作８０４）。ネットワーク装置は、次に、ブルームフィルタのメンバーである隣接ネットワークノードのセットを決定し（動作８０６）、メンバー装置がネットワークノードの決定されたセットと一致する仮想インターフェースを検索する（動作８０８）。
【００５７】
次に、システムは、マッチする仮想インターフェースが存在するか否かを判定する（動作８１０）。そうである場合、システムは、ローカルネットワーク装置がパケットの対象仮想インターフェースのメンバーであると判定する（動作８１２）。そうでなければ、システムは、ローカルネットワーク装置がパケットの対象仮想インターフェースのメンバーではないと判定する（操作８１４）。
【００５８】
図９は、一実施形態に係る、各種相互リスナネットワーク近傍に対する仮想インターフェースの確立および該仮想インターフェース上での通信を容易にする例示的な装置９００を示す。装置９００は、有線または無線通信チャネルを介して相互に通信することのできる複数のモジュールを備えることができる。装置９００は、１つ以上の集積回路を使用して実現することが可能であり、図９に示すものより少ない、または多いモジュールを含んでいてもよい。また、装置９００は、コンピュータシステムに統合してもよいし、他のコンピュータシステムおよび／または装置と通信可能な別の装置として実現されてもよい。具体的には、装置９００は、通信モジュール９０２、仮想インターフェース選択モジュール９０４、パケット処理モジュール９０６、仮想インターフェース定義モジュール９０８、識別子生成モジュール９１０、および仮想インターフェース保守モジュール９１２を含むことができる。
【００５９】
一部の実施形態において、通信モジュール９０２は、パケットを受信することができ、仮想インターフェース選択モジュール９０４は、ローカルネットワーク装置が仮想インターフェースのメンバーであるかどうかを判定することができる。パケット処理モジュール９０６は、ローカルネットワーク装置が仮想インターフェースのメンバーであると判定されたことに応答して、パケットを処理することができる。
【００６０】
仮想インターフェース定義モジュール９０８は、１つ以上のネットワーク周辺機器からの二重近傍情報に基づいて１つ以上の仮想インターフェースを定義することができる。また、識別子生成モジュール９１０は、各仮想インターフェース用のインターフェース識別子を生成することができる。仮想インターフェース保守モジュール９１２は、１つ以上のネットワークピアによって送信されるパケットを監視してネットワーク近傍の変化を検出することができ、新たな相互リスナグループに関連した仮想インターフェースを起動する。
【００６１】
図１０は、一実施形態に係る、各種相互リスナネットワーク近傍に対する仮想インターフェースの確立および該仮想インターフェース上での通信を容易にする例示的なコンピュータシステム１００２を示している。コンピュータシステム１００２は、プロセッサ１００４、メモリ１００６、および記憶装置１００８を含む。メモリ１００６は、管理されるメモリとして機能する揮発性メモリ（例えば、ＲＡＭ）を含むことができ、１つ以上のメモリプールを格納するために使用することができる。さらに、コンピュータシステム１００２は、ディスプレイ装置１０１０、キーボード１０１２、およびポインティング装置１０１４に結合することができる。記憶装置１００８は、オペレーティングシステム１０１６、インターフェース保守システム１０１８、およびデータ１０３２を記憶することができる。
【００６２】
インターフェース保守システム１０１８は、コンピュータシステム１００２によって実行されると、コンピュータシステム１００２に本開示に記載された方法および／またはプロセスを実行させることができる命令を含むことができる。具体的には、インターフェース保守システム１０１８は、パケットを受信するための命令を含むことができる（通信モジュール１０２０）．さらに、インターフェース保守システム１０１８は、ローカルネットワーク装置が仮想インターフェースのメンバーであるかどうかを判定するための命令を含むことができる（仮想インターフェース選択モジュール１０２２）。インターフェース保守システム１０１８はまた、ローカルネットワーク装置が仮想インターフェースのメンバーであると判定されたことに応答して、パケットを処理するための命令を含むことができる（パケット処理モジュール１０２４）。
【００６３】
インターフェース保守システム１０１８は、１つ以上のネットワーク周辺機器からの二重近傍情報に基づいて１つ以上の仮想インターフェースを定義するための命令を含むことができ（仮想インターフェース定義モジュール１０２６）、それぞれの仮想インターフェースに対してインターフェース識別子を生成するための命令を含むことができる（識別子生成モジュール１０２８）。インターフェース保守システム１０１８はまた、１つ以上のネットワークピアによって送信されたパケットを監視してネットワーク近傍における変化を検出し、新しい相互リスナグループに関連する仮想インターフェースを起動するための命令を含むことができる（仮想インターフェース保守モジュール１０３０）。
【００６４】
データ１０３２は、入力として要求される、または本開示に記載された方法および／または処理による出力として生成された任意のデータを含むことができる。具体的には、データ１０３２には少なくとも、１つ以上の仮想インターフェースの識別子、および隣接ネットワークノードのセットの二重近傍情報を記憶することができる。
【００６５】
この詳細な説明に記載するデータ構造およびコードは、通常、コンピュータ可読記憶媒体に記憶されており、この媒体は、コンピュータシステムが使用するコードおよび／またはデータを記憶することができる任意の装置または媒体とすることができる。コンピュータ可読記憶媒体は、揮発性メモリ、不揮発性メモリ、ディスクドライブ、磁気テープ、ＣＤ（コンパクトディスク）、ＤＶＤ（デジタルバーサタイルディスクまたはデジタルビデオディスク）などの磁気および光記憶装置、あるいは、現在知られているまたは今後開発されるコンピュータ可読媒体を格納することが可能な他の媒体を含むが、これらに限定されるものではない。
【００６６】
詳細な説明部分に記載された方法およびプロセスは、コードおよび／またはデータとして具現化することができ、これらコードおよび／またはデータは、上述したようにコンピュータ可読記憶媒体に記憶可能である。コンピュータシステムがコンピュータ可読記憶媒体に記憶されたコードおよび／またはデータを読み出して実行するとき、コンピュータシステムは、データ構造およびコードとして具体化されてコンピュータ可読記憶媒体内に記憶された方法およびプロセスを実行する。
【００６７】
また、上述した方法およびプロセスは、ハードウェアモジュールに含めることができる。例えば、ハードウェアモジュールは、現在知られているまたは今後開発される特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、その他のプログラマブルロジック装置を含むが、それらに限定されない。ハードウェアモジュールが起動すると、ハードウェアモジュールは、ハードウェアモジュール内に含まれる方法およびプロセスを実行する。
【図１】
2015133697.tif 000003
【図２】
2015133697.tif 000004
【図３】
2015133697.tif 000005
【図４】
2015133697.tif 000006
【図５Ａ】
2015133697.tif 000007
【図６】
2015133697.tif 000008
【図７Ａ】
2015133697.tif 000009
【図７Ｂ】
2015133697.tif 000010
【図７Ｃ】
2015133697.tif 000011
【図７Ｄ】
2015133697.tif 000012
【図８】
2015133697.tif 000013
【図９】
2015133697.tif 000014
【図５Ｂ】
2015133697.tif 000015
【図１０】
2015133697.tif 000016