(57)【要約】      （修正有）【課題】近隣ネットワークノードのグループのための安定した仮想インターフェースを作成する。【解決手段】ネットワーク構成システムは、ネットワーク近隣者からネットワーク近隣情報を得る。このネットワーク近隣情報は、ネットワーク近隣者への近隣デバイスのセットと、それぞれの近隣者を介してアクセス可能なリモートネットワークノードのセットとを少なくとも示す、二重近隣情報を含む。システムは、共通ネットワーク特性を有するネットワーク近隣者の１つ以上のグループを、それぞれのグループが１つ以上の相互接続ネットワークピアを含むように決定するために、ネットワーク近隣情報を使用し得る。システムは続いて、安定したネットワーク近隣者のそれぞれのグループのための仮想インターフェースを、仮想インターフェースのメンバーノードがローカルネットワークノードとそれぞれのグループの相互接続ネットワークピアとを含むように定義し得る。【選択図】図３
2016086413.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータで実現される方法であって、
１つ以上のネットワーク近隣者からのネットワーク近隣情報をローカルネットワークノードにより得ることであって、前記ネットワーク近隣情報は、前記ネットワーク近隣者への近隣デバイスのセットと、それぞれの近隣者を介してアクセス可能なリモートネットワークノードのセットとを少なくとも示す、二重近隣情報を含む、得ることと、
共通ネットワーク特性を有するネットワーク近隣者の１つ以上のグループを前記ネットワーク近隣情報に基づいて決定することであって、それぞれのグループは、１つ以上の相互接続ネットワークピアを含む、決定することと、
安定したネットワーク近隣者のそれぞれのグループのための仮想インターフェースを前記ローカルネットワークノードにより定義することであって、前記仮想インターフェースのメンバーノードは、前記ローカルネットワークノードと前記それぞれのグループの相互接続ネットワークピアとを含む、定義することと
を備える、方法。
【請求項２】
コンピュータによって実行された場合に前記コンピュータに方法を実行させる命令を記憶する非一時的なコンピュータ読み取り可能な記憶媒体であって、前記方法は、
１つ以上のネットワーク近隣者からネットワーク近隣情報を得ることであって、前記ネットワーク近隣情報は、前記ネットワーク近隣者への近隣デバイスのセットと、それぞれの近隣者を介してアクセス可能なリモートネットワークノードのセットとを少なくとも示す、二重近隣情報を含む、得ることと、
共通ネットワーク特性を有するネットワーク近隣者の１つ以上のグループを前記ネットワーク近隣情報に基づいて決定することであって、それぞれのグループは、１つ以上の相互接続ネットワークピアを含む、決定することと、
安定したネットワーク近隣者のそれぞれのグループのための仮想インターフェースを定義することであって、前記仮想インターフェースのメンバーノードは、ローカルネットワークノードと前記それぞれのグループの相互接続ネットワークピアとを含む、定義することと
を備える、非一時的なコンピュータ読み取り可能な記憶媒体。
【請求項３】
１つ以上のプロセッサと、メモリと、記憶された命令を記憶する前記１つ以上のプロセッサに結合されたコンピュータ読み取り可能な媒体とを備える、コンピュータシステムであって、前記記憶された命令は、前記１つ以上のプロセッサによって実行された場合に、前記コンピュータシステムに方法を実行させ、前記方法は、
１つ以上のネットワーク近隣者からネットワーク近隣情報を得ることであって、前記ネットワーク近隣情報は、前記ネットワーク近隣者への近隣デバイスのセットと、それぞれの近隣者を介してアクセス可能なリモートネットワークノードのセットとを少なくとも示す、二重近隣情報を含む、得ることと、
共通ネットワーク特性を有するネットワーク近隣者の１つ以上のグループを前記ネットワーク近隣情報に基づいて決定することであって、それぞれのグループは、１つ以上の相互接続ネットワークピアを含む、決定することと、
安定したネットワーク近隣者のそれぞれのグループのための仮想インターフェースを定義することであって、前記仮想インターフェースのメンバーノードは、ローカルネットワークノードと前記それぞれのグループの相互接続ネットワークピアとを含む、定義することと
を備える、コンピュータシステム。
【請求項４】
それぞれの仮想インターフェースのメンバーネットワークノードは、前記ローカルネットワークノードの共通物理インターフェース又は仮想インターフェースを介して前記ローカルネットワークノードと通信する、複数のネットワーク近隣者を含む、請求項３に記載のコンピュータシステム。
【請求項５】
前記複数のネットワーク近隣者は、前記ローカルネットワークノードの前記共通物理インターフェース又は仮想インターフェースにわたる永続的なネットワーク接続を介して前記ローカルネットワークノードと通信する、ネットワーク近隣者の安定したセットを含む、請求項４に記載のコンピュータシステム。
【請求項６】
それぞれのネットワークノードのための前記ネットワーク近隣情報は、
前記それぞれのネットワークノードのための接続情報と、
前記それぞれのネットワークノードがリモートネットワークへのゲートウェイであるかどうかと、
前記それぞれのネットワークノードのための既存の構成と、
ルーティング情報と、
リンク特性と、
既存リンク特性と、
履歴接続情報と、
予測接続情報と
の少なくとも１つを含み得る、請求項４に記載のコンピュータシステム。
【請求項７】
それぞれの仮想インターフェースのメンバーネットワークノードは、パーソナルエリアネットワーク（ＰＡＮ）のための物理インターフェース又は仮想インターフェースを介して前記ローカルネットワークノードと通信する、ネットワーク近隣者を含む、請求項３に記載のコンピュータシステム。
【請求項８】
前記方法は更に、
１つ以上の近隣ネットワークノードによって送信されるネットワークパケットを監視することと、
ネットワーク近隣者が前記ローカルネットワークノードのネットワーク近隣を出たと決定することと、
前記決定されたネットワーク近隣者に関連づけられた仮想インターフェースを決定することと、
前記決定された仮想インターフェースから前記決定されたネットワーク近隣者を除去することと
を備える、請求項３に記載のコンピュータシステム。
【請求項９】
前記方法は更に、
１つ以上の近隣ネットワークノードによって送信されるネットワークパケットを監視することと、
ネットワーク近隣者が前記ローカルネットワークノードのネットワーク近隣に入ったと決定することと、
前記決定されたネットワーク近隣者のための新たな仮想インターフェースを作成することと
を備える、請求項３に記載のコンピュータシステム。
【請求項１０】
前記方法は更に、
１つ以上のネットワーク近隣者から、更新されたネットワーク近隣情報を受信することと、
前記更新されたネットワーク近隣情報から、ネットワーク近隣者のネットワーク特性が変化したと決定することと、
前記決定されたネットワーク近隣者のネットワーク特性が前記ネットワークインターフェースが属する仮想インターフェースのネットワーク特性と互換性がないと決定することに応答して、
前記仮想インターフェースから前記ネットワーク近隣者を除去することと、
前記決定されたネットワーク近隣者のための新たな仮想インターフェースを作成することと
を備える、請求項３に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は一般的に、コンピュータネットワークに関する。より詳細には、本開示は、互いとの二重通信を有する相互リスナーデバイスのセットのためのネットワーク及び／又はデバイス特性に基づいて仮想インターフェースを作成するネットワークノードに関する。
【背景技術】
【０００２】
アドホック及びマルチホップワイヤレスネットワークは、モバイルデバイスに、固定ネットワークインフラストラクチャの必要なしにそれらのワイヤレスレンジ外のリモートデバイスと通信することを可能にさせる。これらのモバイルデバイスは、新たなデバイスがそれらのカバレッジエリアに入る場合、又は、他のデバイスがそれらのカバレッジエリアを出る場合、それらのローカルネットワークトポロジーを修正変更し得る。また、各々のワイヤレスデバイスは、様々なネットワークピアをトラバースする経路を使用することにより、それの直接的なカバレッジエリア外の別のデバイスと通信し得る。
【０００３】
ワイヤレスアドホックネットワークにおけるいくつかのデバイスは、それのブロードキャストレンジ内の他の近隣デバイスと通信するために、Ｗｉ−Ｆｉ無線機又はＢｌｕｅｔｏｏｔｈ（登録商標）無線機といった、１つ以上のワイヤレスインターフェースを有する。これらのデバイスは、各々のワイヤレスインターフェースのための論理インターフェースを作成し得、それは、デバイスがワイヤレスインターフェースを介して通信し得る１つ以上の近隣者を含む。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
コンテンツセントリックネットワーク（ＣＣＮ）において、ＣＣＮノードは、それがパケットを受信した同一のインターフェースを介してパケットを転送することを可能にさせられていない。しかしながら、論理インターフェースを介してアクセス可能な近隣デバイスのいくつかが、互いのブロードキャストレンジ内でない場合がある、ということが起こり得る。したがって、ＣＣＮノードが２つの近隣ノード間でパケットを転送する必要がある場合、ＣＣＮノードは、パケットを受信するために使用された同一の論理インターフェースを介してパケットを転送する必要があり得、それは、転送ループを作成するという望ましくない効果を有し得る。
【０００５】
更に悪いことに、論理インターフェースを介してアクセス可能な全ての近隣者がリモートネットワークノードのいくつかのセットへのゲートウェイであり得るわけではない。したがって、論理インターフェースを介してパケットを転送することは、パケットの意図された受信者に到達できないパケットを近隣者のセットに転送するという結果を生じ得る。
【課題を解決するための手段】
【０００６】
一実施形態は、近隣ノードのグループのための安定した仮想インターフェースを作成するネットワーク構成システムを提供する。動作中、システムは、１つ以上のネットワーク近隣者からネットワーク近隣情報を得る。このネットワーク近隣情報は、ネットワーク近隣者への近隣デバイスのセットと、それぞれの近隣者を介してアクセス可能なリモートネットワークノードのセットとを少なくとも示す、二重近隣情報を含む。システムは、共通ネットワーク特性を有するネットワーク近隣者の１つ以上のグループを、それぞれのグループが１つ以上の相互接続ネットワークピアを含むように決定するために、ネットワーク近隣情報を使用し得る。システムは続いて、安定したネットワーク近隣者のそれぞれのグループのための仮想インターフェースを、仮想インターフェースのメンバーノードがローカルネットワークノードとそれぞれのグループの相互接続ネットワークピアとを含むように定義し得る。
【０００７】
いくつかの実施形態において、ローカルネットワークノードは、コンテンツセントリックネットワーク（ＣＣＮ）のネットワークノードを含む。ＣＣＮにおいて、各々のコンテンツは、個々に命名され、各々のデータは、そのデータを同一のデータの他のバージョン又は他のソースからのデータといった任意の他のデータと区別する、一意の名前にバインドされる。この一意の名前は、一意の名前を示す要求又はインタレストを配布することによってデータを要求することをネットワークデバイスに可能にさせ、アプリケーションがデータの記憶場所、ネットワークの場所、アプリケーション、及び搬送手段と無関係にデータを得ることができる。以下の用語が、ＣＣＮアーキテクチャの要素を説明する。
【０００８】
コンテンツオブジェクト：一意の名前にバインドされた、命名された単一のデータ。コンテンツオブジェクトは、「永続的」であり、「永続的」とは、コンテンツオブジェクトがコンピューティングデバイス内を、又は、異なるコンピューティングデバイスにわたって、動き回り得るが、変化しないことを意味する。コンテンツオブジェクトのいずれかのコンポーネントが変化した場合、変化を生んだエンティティが、更新されたコンテンツを含む新たなコンテンツオブジェクトを作成し、新たなコンテンツオブジェクトを新たな一意の名前にバインドする。
【０００９】
一意の名前：ＣＣＮにおける名前は典型的に、場所と無関係であり、コンテンツオブジェクトを一意に識別する。データ転送デバイスは、名前又は名前プレフィックスを使用して、コンテンツオブジェクトのためのネットワークアドレス又は物理的な場所に関わらず、コンテンツオブジェクトを生成又は記憶するネットワークノードの方にパケットを転送することができる。いくつかの実施形態において、名前は、階層的に構造化された可変長識別子（ＨＳＶＬＩ）であり得る。ＨＳＶＬＩは、様々な手法で構造化され得る、いくつかの階層的なコンポーネントに分割され得る。例えば、個々の名前コンポーネントのｐａｒｃ、ｈｏｍｅ、ｃｃｎ、及びｔｅｓｔ．ｔｘｔは、左に向かってプレフィックスがより大きくなるように構造化されて、「／ｐａｒｃ／ｈｏｍｅ／ｃｃｎ／ｔｅｓｔ．ｔｘｔ」という名前を形成し得る。かくして、「／ｐａｒｃ／ｈｏｍｅ／ｃｃｎ」という名前は、「／ｐａｒｃ／ｈｏｍｅ／ｃｃｎ／ｔｅｓｔ．ｔｘｔ．」の「親」又は「プレフィックス」であり得る。追加のコンポーネントが、コラボレーティブドキュメントのようなコンテンツアイテムの異なるバージョンを区別するために使用され得る。
【００１０】
いくつかの実施形態において、名前は、コンテンツオブジェクトのデータから導出されたハッシュ値（例えば、チェックサム値）及び／又はコンテンツオブジェクトの名前の要素から導出されたハッシュ値のような識別子を含み得る。ハッシュベースの名前の説明は、（２０１３年３月２０日に出願された、発明者Ｉｇｎａｃｉｏ  Ｓｏｌｉｓによる、「ＯＲＤＥＲＥＤ−ＥＬＥＭＥＮＴ  ＮＡＭＩＮＧ  ＦＯＲ  ＮＡＭＥ−ＢＡＳＥＤ  ＰＡＣＫＥＴ  ＦＯＲＷＡＲＤＩＮＧ」と題する、代理人整理番号ＰＡＲＣ―２０１２０５３７−ＵＳ−ＮＰの）米国特許出願番号第１３／８４７，８１４号において説明されている。名前は、フラットなラベルであることもできる。以下、「名前」は、名前データネットワークにおけるデータのための任意の名前、例えば、階層的な名前若しくは名前プレフィックス、フラットな名前、固定長の名前、恣意的な長さの名前、又はラベル（例えば、マルチプロトコルラベルスイッチング（ＭＰＬＳ）ラベル）のことを言うために使用される。
【００１１】
インタレスト：データのための要求を示し、データのための名前（又は名前プレフィックス）を含む、パケット。データ消費者が、ＣＣＮにわたって要求又はインタレストを配布し得、ＣＣＮルータが要求又はインタレストを、記憶デバイス（例えば、キャッシュサーバ）又はデータ生成者の方に伝搬し得、データ製作者が、要求されたデータを提供して、要求又はインタレストを満足し得る。
【００１２】
ＣＣＮアーキテクチャの説明は、（２００８年１２月１８日に出願された、発明者Ｖａｎ  Ｌ．Ｊａｃｏｂｓｏｎ及びＤｉａｎａ  Ｋ．Ｓｍｅｔｔｅｒｓによる、「ＣＯＮＴＲＯＬＬＩＮＧ  ＴＨＥ  ＳＰＲＥＡＤ  ＯＦ  ＩＮＴＥＲＥＳＴＳ  ＡＮＤ  ＣＯＮＴＥＮＴ  ＩＮ  Ａ  ＣＯＮＴＥＮＴ  ＣＥＮＴＲＩＣ  ＮＥＴＷＯＲＫ」と題する、代理人整理番号ＰＡＲＣ―２００８０６２６−ＵＳ−ＮＰの）米国特許出願番号第１２／３３８，１７５号において説明されている。
【００１３】
いくつかの実施形態において、それぞれの仮想インターフェースのメンバーネットワークノードは、ローカルネットワークノードの共通物理インターフェース又は仮想インターフェースを介してローカルネットワークノードと通信する、複数のネットワーク近隣者を含む。
【００１４】
これらの実施形態に対するいくつかの変形例において、複数のネットワーク近隣者は、ローカルネットワークノードの共通物理インターフェース又は仮想インターフェースにわたる永続的なネットワーク接続を介してローカルネットワークノードと通信する、ネットワーク近隣者の安定したセットを含む。
【００１５】
いくつかの実施形態において、それぞれのネットワークノードのためのネットワーク近隣情報は、それぞれのネットワークノードのための接続情報、それぞれのネットワークノードがリモートネットワークへのゲートウェイであるかどうかについてのインジケーション、及び／又はそれぞれのネットワークノードのための既存の構成を含み得る。ネットワーク近隣情報はまた、ルーティング情報、リンク特性、既存リンク特性、履歴接続情報、及び／又は予測接続情報を含み得る。
【００１６】
いくつかの実施形態において、それぞれの仮想インターフェースのメンバーネットワークノードは、パーソナルエリアネットワーク（ＰＡＮ）のための物理インターフェース又は仮想インターフェースを介してローカルネットワークノードと通信する、ネットワーク近隣者を含む。
【００１７】
これらの実施形態に対するいくつかの変形例では、ＰＡＮのための物理又は仮想インターフェースは、Ｂｌｕｅｔｏｏｔｈ（登録商標）インターフェース、ワイヤレス光通信インターフェース、見通し内通信インターフェース、及び／又はワイヤレスユニバーサルシリアルバス（ＵＳＢ）インターフェースを含む。
【００１８】
いくつかの実施形態において、システムは、１つ以上の近隣ネットワークノードによって送信されるネットワークパケットを監視し得る。システムが、ネットワーク近隣者がローカルネットワークノードのネットワーク近隣を出たと決定すると、システムは、決定されたネットワーク近隣者に関連づけられた仮想インターフェースを決定し、決定された仮想インターフェースから決定されたネットワーク近隣者を除去する。
【００１９】
いくつかの実施形態において、システムは、１つ以上の近隣ネットワークノードによって送信されるネットワークパケットを監視し得る。システムが、ネットワーク近隣者がローカルネットワークノードのネットワーク近隣に入ったと決定すると、システムは、決定されたネットワーク近隣者のための新たな仮想インターフェースを作成する。
【００２０】
いくつかの実施形態において、システムは、１つ以上のネットワーク近隣者から、更新されたネットワーク近隣情報を受信し得る。システムが、更新されたネットワーク近隣情報に基づいて、ネットワーク近隣者のネットワーク特性が変化したと決定すると、システムは、決定されたネットワーク近隣者のネットワーク特性が、ネットワークインターフェースが属する仮想インターフェースのネットワーク特性と互換性があるかどうか、を決定する。システムが、決定されたネットワーク近隣者のネットワーク特性が仮想インターフェースのネットワーク特性と互換性がないと決定すると、システムは、仮想インターフェースからネットワーク近隣者を除去し得、決定されたネットワーク近隣者のための新たな仮想インターフェースを作成する。
【図面の簡単な説明】
【００２１】
【図１】図１は、実施形態に係る、利用可能な仮想インターフェースの特性に基づいてネットワークパケットを転送することを容易にする、例示的なネットワーク環境を示す図である。
【図２】図２は、実施形態に係る例示的なネットワークノードを示す図である。
【図３】図３は、実施形態に係る、相互リスナー相互ネットワーク近隣者のセットを各々が含む１つ以上の仮想インターフェースを定義するための例示的な方法を示すフローチャートである。
【図４】図４は、実施形態に係る、相互リスナーネットワークノードのセットのための例示的な隣接テーブルを示す図である。
【図５Ａ】図５Ａは、実施形態に係る、様々なネットワークノードでの仮想インターフェースの定義を示す図である。
【図５Ｂ】図５Ｂは、実施形態に係る、様々なネットワークノードでの仮想インターフェースの定義を示す図である。
【図６】図６は、実施形態に係る、仮想インターフェースの定義を更新するための例示的な方法を示すフローチャートである。
【図７】図７は、実施形態に係る、ネットワークノードでネットワークパケットを処理するための例示的な方法を示すフローチャートである。
【図８】図８は、実施形態に係る、利用可能な仮想インターフェースの特性に基づいてネットワークパケットを転送することを容易にする、例示的な装置を示す図である。
【図９】図９は、実施形態に係る、利用可能な仮想インターフェースの特性に基づいてネットワークパケットを転送することを容易にする、例示的なコンピュータシステムを示す図である。
【発明を実施するための形態】
【００２２】
図面において、同一の参照番号は、同一の図面要素を示す。
【００２３】
以下の説明は、実施形態の製造及び使用をいずれの当業者にも可能にさせるように提示され、特定の用途及びその要件の文脈で提供される。開示される実施形態に対する様々な変更が当業者に容易に理解され、本明細書において定義される一般的な原理は、本開示の精神及び範囲から逸脱することなく、他の実施形態及び応用例に適用され得る。かくして、本発明は、示される実施形態に限定されるものではなく、本明細書において開示される原理及び特徴と一致する最も広い範囲が与えられるべきである。
【００２４】
本発明の実施形態は、様々なネットワーク特性に基づいて１つ以上の安定した仮想インターフェースを作成する課題を解決する、ネットワーク構成システムを提供する。例えば、ネットワークノードは、各々がネットワークノードに様々なネットワーク近隣者とのインターフェース接続を可能にさせる、Ｗｉ−Ｆｉ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、及び／又はイーサネット（登録商標）といった、様々な物理インターフェースを含み得る。しかしながら、コンテンツセントリックネットワーク（ＣＣＮ）において、ＣＣＮノードは、転送ループを回避するための手法として、それがパケットを受信したフェース（例えば、物理インターフェース又は仮想インターフェース）を介してパケットを転送することを可能にさせられていない。したがって、ネットワーク構成システムは、仮想インターフェースのメンバーにパケットを転送しなくてはならないのを回避するために互いのパケットをリッスンし得る二重近隣者のグループ（以下、相互リスナーネットワークノードと言う）を含むように仮想インターフェースを定義し得る。
【００２５】
いくつかの実施形態において、システムは、物理又は仮想インターフェースのネットワーク特性及び／又は相互リスナーノードの特性に基づいて、仮想インターフェースのためにグループ化される相互リスナーを選択する。これは、システムに、仮想インターフェースが作成されると、これを修正変更しなくてはならないのを回避するために、相互リスナーの安定したグループを含む仮想インターフェースを発生させることを可能にさせる。
【００２６】
また、システムは、それがどのようにネットワークのトポロジーを使用するかを、様々なネットワーク特性に基づいて仮想インターフェースを定義することにより構成し得る。これは、システムに、パケットに最も適した仮想インターフェースを選ぶことによってパケットのための転送判定を行うことを可能にさせる。ネットワーク特性の可能なタイプは、
１）各々の近隣ノードに接続するために使用される物理インターフェースのタイプ
２）各々の近隣ノードへの接続安定性
３）各々の近隣ノードのためのネットワーク近隣
４）各々の近隣ノードを介して到達可能な他のネットワーク又はリモートネットワークノード
を含み得る。
【００２７】
例えば、ネットワークノードは、それの近隣ノードへの仮想インターフェースのセットを、各々の仮想インターフェースが以下の基準の１つ以上を満足するように構成し得る。
１）各々の仮想フェースにおける近隣者が、基礎をなす同一の物理又は仮想インターフェースを介してローカルノードと通信する。
２）各々の仮想フェースにおける近隣者が、相互リスナーである。
３）各々の仮想フェースにおける近隣者が、接続状態が変化しない安定した近隣者である（そうでなければ、これらの不安定な近隣者は、それら独自のフェースにおけるものである必要がある）。
４）各々の仮想インターフェースにおける近隣者が、同一のネットワーク（単数又は複数）にインタレストを転送する。それらは、それらが異なるリモートネットワークに転送又は到達し得る場合、それら独自のフェースに割り当てられる必要がある。
【００２８】
インフラストラクチャＷｉ−ＦｉネットワークではＷｉ−Ｆｉネットワークの全てのメンバーが相互リスナーであることが期待されることを考慮すると、この基準を使用して、ネットワークノードは、インフラストラクチャネットワーク（例えば、インフラストラクチャＷｉ−Ｆｉ）のための１つの仮想インターフェースを作成し得る。ブロードキャストベースのイーサネット（登録商標）ネットワークの全てのメンバーは相互リスナーであることが期待されるので、ネットワークノードは更にまた、ブロードキャストベースのイーサネット（登録商標）ネットワークのための別の仮想インターフェースを作成し得る。
【００２９】
しかしながら、ノードが、ネットワークに入って行き、ネットワークを出て行き得る、パーソナルエリアネットワーク（ＰＡＮ）（例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）による）では、ネットワークノードは、ＰＡＮを介してアクセス可能な各々の近隣ノードのための仮想インターフェースを割り当て得る。これは、ＰＡＮの上部に構築される各々の仮想インターフェースが、対応する近隣ノードがＰＡＮ内にある限り、安定していることを保証する。例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）インターフェースは、広いカバレッジエリアを提供せず、これは、ネットワークノードに、Ｂｌｕｅｔｏｏｔｈ（登録商標）によってそれが接続する近隣ノードへの接続を一時的に失わせ得る。もしローカルネットワークノードがＰＡＮインターフェースの複数の近隣者のための仮想インターフェースを作成しなかったら、ネットワークノード（又は仮想インターフェースの別のノード）は、仮想インターフェースの別のメンバーがＰＡＮ近隣を出るか又はＰＡＮ近隣に再び入る度に、仮想インターフェースを定義し直す必要があるだろう。しかしながら、システムは、ＰＡＮインターフェースの各々の近隣ノードに仮想インターフェースを割り当てるので、ローカルネットワークノードは、他のＰＡＮ近隣者への仮想インターフェースのための定義を修正変更せずに、ＰＡＮ近隣に入るか又はＰＡＮ近隣を出る各々の個々のＰＡＮ近隣者への仮想インターフェースを作成するか又は取り壊す必要があるだけである。
【００３０】
いくつかの実施形態において、ネットワークノードは、不安定なブロードキャストネットワーク（例えば、アドホックＷｉ−Ｆｉネットワーク又はＢｌｕｅｔｏｏｔｈ（登録商標）ネットワーク）を、ポイントツーポイントリンクの集合として扱い得る。また、ネットワークノードは、各々のポイントツーポイントリンクのための仮想インターフェースを、リンクが確立された物理インターフェース又は仮想インターフェースに関わらず作成し得る。これは、ネットワークノードに、既存の仮想インターフェースのための定義を修正変更する必要なく、ネットワークノードのネットワーク近隣に入る（又は再び入る）各々の新たな又は不安定な近隣者のための新たな専用仮想インターフェースを作成することを可能にさせる。続いて動作中、ネットワークノードは、これらのデバイスへの仮想インターフェースを、それらが利用可能である場合にただ見るだけで、これらの仮想インターフェースが確立された基礎をなす物理インターフェースのことは気にしない。
【００３１】
例えば、ネットワークノードがアドホックネットワークの一部である場合、ネットワークノードは、近隣者がアドホックネットワーク（例えば、Ｗｉ−Ｆｉネットワークによる）に入って来るとき及びアドホックネットワークを出て来るときに、ポイントツーポイント仮想インターフェースを作成し、破壊し得る。ネットワークノードは、Ｗｉ−Ｆｉ物理インターフェースにわたって１つの近隣者への「アドホックフェース１」仮想インターフェースを作成し得、Ｗｉ−Ｆｉ物理インターフェースにわたって異なる近隣者への「アドホックフェース２」仮想インターフェースを作成し得る。更なる例として、ネットワークノードはまた、各々のポイントツーポイントリンクのための仮想インターフェースを、任意の他の物理チャネルにわたって、例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）にわたって、又は、イーサネット（登録商標）にわたって確立され得るインターネットプロトコル（ＩＰ）トンネル若しくは仮想プライベートネットワーク（ＶＰＮ）トンネルを介して、作成し得る。ネットワークノードは、これらのポイントツーポイントリンク又はトンネルの各々を、ポイントツーポイントリンク又はトンネルの他のエンドポイントへの専用仮想インターフェースとして使用する。
【００３２】
図１は、実施形態に係る、利用可能な仮想インターフェースの特性に基づいてネットワークパケットを転送することを容易にする、例示的なネットワーク環境１００を示す。コンピュータ環境１００は、１つ以上の物理ネットワークインターフェースにわたって実現され得る共有ネットワーク１０２にわたって通信する複数のネットワークノードを含み得る。いくつかの実施形態において、ネットワーク１０２は、コンテンツセントリックネットワーク（ＣＣＮ）を含み、ネットワークノード１０４〜１１４は、ＣＣＮデバイスを含む。
【００３３】
動作中、ネットワーク１０２のネットワークノードは、各々のノードが必要に応じて１つ以上の物理インターフェースにわたる仮想インターフェースを動的に作成すること及び取り壊すことにより、アドホック又はマルチホップワイヤレスネットワークを形成し得る。より詳細には、各々のネットワークノードは、近隣ノードのセットを自動で検出し得、これらの近隣ノードを様々なネットワーク特性に基づいてクラスタリングして各々のクラスタのための仮想インターフェースを発生させ得る。これは、各々のネットワークノードに、ネットワーク１０２の他のネットワークノードとの仮想インターフェースのメンバーノードと明示的に取り決める必要なく、自律的に仮想インターフェースを作成することを可能にする。
【００３４】
例えば、ネットワークノード１０４、１０６、１０８、及び１１０は、互いとの直接的な二重ネットワーク接続を有し得る。また、ネットワークノード１０６及び１０８は、別のネットワーク１２２へのアクセスを提供するネットワークノード１１４との直接的な二重ネットワーク接続を有し得る。ネットワークノード１１０はまた、ネットワークノード１１４とだけでなく、ネットワーク１２０へのアクセスを提供するネットワークノード１１２との直接的な二重ネットワーク接続を有し得る。いくつかの実施形態において、ネットワーク１０２のこれらのデバイスは、近隣ノードのネットワークデバイスのセットと、それらが直接的又は間接的のいずれかでアクセスを提供し得る他のネットワークとを識別する、二重近隣情報（例えば、隣接テーブル）を互いに交換し得る。
【００３５】
ネットワークノード１０４、１０６、１０８、及び１１０は、ネットワーク１０２にわたって互いをリッスンし得るので、それらは、互いから二重近隣情報を得ることが可能である。ネットワークノード１０４、１０６、１０８、及び１１０は各々、互いの二重近隣情報を独立的に解析して、それらが相互リスナーのグループを形成し得ることを決定し得る。しかしながら、ネットワークノード１０６及び１０８は、ネットワーク１２２へのアクセスを提供するのみであり得る一方で、ネットワークノード１１０は、ネットワークノード１２０及び１２２へのアクセスを提供し得るので、ネットワークノード１０６及び１０８の両者は、ネットワークノード１１０とは異なるネットワーク到達可能性を有する。したがって、ネットワークノード１０４は、（ネットワークノード１２２へのアクセスを提供する）ネットノード１０６及び１０８のための仮想インターフェース１１６を作成し、（ネットワーク１２０及び１２２へのアクセスを提供する）ネットワークノード１１０のための別の仮想インターフェース１１８を作成する。これは、各々の仮想インターフェースが、互いとの安定した二重ネットワーク接続を有する（例えば、相互リスナー関係を有する）相互リスナー相互ネットワークノードのセットを含み、かつ、同一のリモートネットワークへのアクセスを提供する（例えば、相互ネットワーク関係を有する）ことを保証する。
【００３６】
ネットワーク１０２のネットワークノードが１つ以上の仮想インターフェースを作成すると、それらは、それらのローカル仮想インターフェースを使用して、パケットが受信された仮想インターフェースのいずれのメンバーノードにもパケットを送出することなくネットワーク１０２にわたってパケットを転送し得る。例えば、ネットワークノード１１４は、ネットワークデバイス１０６及び１０８の方に向けられ、かつ、仮想インターフェース１２０のための識別子を含むヘッダを有する、パケットを通信し得る。ネットワークデバイス１０６は、デバイス１１４からパケットを受信し得、デバイス１０６がパケットのための意図されたターゲットでない場合、その近隣者にパケットを転送する。デバイス１０６は、パケットのヘッダを解析して、パケットが仮想インターフェース１２０を通じて到着したこと、及び、仮想インターフェース１２０が互いのパケットを各々が受信し得るデバイス｛１０６、１０８、１１４｝を含むことを考慮すると、デバイス１０８が既にデバイス１１４からパケットを受信していること、を決定する。デバイス１０６は続いて、仮想インターフェース１１６を介してデバイス１０４にパケットを転送することに進み、パケットがデバイス１０８に逆流することを防止するために、パケットのヘッダに仮想インターフェース１１６のための識別子を含む。
【００３７】
いくつかの実施形態において、ネットワークノード１０４は、ターゲットネットワークに関連づけられた仮想インターフェースを選択することにより、ターゲットネットワークにパケットを転送し得る。例えば、ネットワークノード１０４がネットワーク１２０にパケットを転送する必要がある場合、ネットワークノード１０４は、ネットワーク１２０に関連づけられた仮想インターフェースを選択するために、仮想インターフェーステーブルにおけるルックアップを実行し得る。仮想インターフェース１１８がネットワーク１２０にアクセスを提供するとの決定後、デバイス１０４は、パケットのヘッダにインターフェース１１８を含み得、仮想インターフェース１１８を介してパケットを転送することに進む。
【００３８】
図２は、実施形態に係る例示的なネットワークノード２００（例えば、ＣＣＮデバイス）を示す。ネットワークノード２００は、プロセッサ２０２、メモリ２０４、及び物理インターフェース２０６のセットを含み得る。物理インターフェース２０６は、例えば、Ｗｉ−Ｆｉ物理インターフェース２１０、１つ以上のイーサネット（登録商標）物理インターフェース２２０、Ｂｌｕｅｔｏｏｔｈ（登録商標）物理インターフェース２３０、及び／又は現在知られているか又はこれから開発される任意の他の物理インターフェースを含み得る。
【００３９】
ネットワークノード２００はまた、既存の物理インターフェース又は仮想インターフェースの上部に確立された、１つ以上の仮想インターフェース２０８を含み得る。仮想インターフェース２０８は、Ｗｉ−Ｆｉ物理インターフェース２１０にわたって確立されたインフラストラクチャＷｉ−Ｆｉ仮想インターフェース２１２及び／又はアドホックＷｉ−Ｆｉ仮想インターフェース２１４を含み得る。仮想インターフェース２０８は、マルチキャスト仮想インターフェース２２２、リンクインターフェース２２４、インターネットプロトコル（ＩＰ）トンネル２２６、及び／又は仮想プライベートネットワーク（ＶＰＮ）仮想インターフェース２２８といった、１つ以上のイーサネット（登録商標）物理インターフェース（単数又は複数）２２０にわたって確立された１つ以上の仮想インターフェースを含み得る。仮想インターフェース２０８はまた、ネットワークノード２００がペアリングされている各々の近隣者のためのＢｌｕｅｔｏｏｔｈ（登録商標）近隣者インターフェース２３２を含み得る。ネットワークノード２００は、Ｂｌｕｅｔｏｏｔｈ（登録商標）物理インターフェース２３０の上部の仮想インターフェースとして各々のＢｌｕｅｔｏｏｔｈ（登録商標）近隣者インターフェース２３２を確立する。
【００４０】
いくつかの実施形態において、ネットワークノード２００は、既存の仮想インターフェースの上部に仮想インターフェースを作成し得る。例えば、ネットワークノード２００は、１つ以上のイーサネット（登録商標）物理インターフェース２２０にわたって「リンク」仮想インターフェース２２４を作成し得、リンク２２４にわたって１つ以上の他の仮想インターフェースを作成し得る。別の例として、ネットワーク２００は、リンク仮想インターフェース２２４の上部に「マルチキャストチャネル」のマルチキャストアドレスのための仮想インターフェースを作成し得る。
【００４１】
いくつかの実施形態において、システムは、リモートネットワークノード又はリモートネットワークの共通セットへの接続を提供するノードのグループのための（例えば、ＶＰＮ又はインターネットへのゲートウェイとして振る舞うノードのための）仮想インターフェースを作成する。ローカルネットワークノードは、ゲートウェイ固有の仮想インターフェースを活用して、どのネットワークノード又はリモートネットワークがパケット（例えば、インタレストパケット）を受信するかを、対応する仮想インターフェースを介してパケットを転送することにより制御し得る。例えば、ネットワークノードは、インターネットへのアクセスを提供する２つのゲートウェイに結合され得、１つのゲートウェイは、１つのインターネットサービス（例えば、Ａｍａｚｏｎ．ｃｏｍ）へのより良好なチャネルを提供し、他のゲートウェイは、別のインターネットサービス（例えば、ＮＹＴｉｍｅｓ．ｃｏｍ）へのより良好なチャネルを提供する。ネットワークノードは、ネットワークのレイテンシ、安全性、及び／又はネットワークの信頼性といった、１つ以上の所定の性能基準に基づいて、どのゲートウェイがリモートネットワーク又はサービスへの適切な接続を提供するかを決定し得る。
【００４２】
したがって、ネットワークノードは、それがどのようにネットワークトポロジーを見、ネットワークトポロジーと相互作用するかを、ネットワーク特性に基づいて仮想フェースのセットを作成することにより構成し得る。例えば、ネットワークノードが複数の近隣ノード（例えば、ゲートウェイ）にわたって２つのサービスと通信し得る一方で、ネットワークノードは、どの近隣ノードがリモートネットワーク又はサービスへの適切なゲートウェイとしての役割を果たすかを決定するために、ネットワーク特性を解析し得る。ネットワークノードは、仮想インターフェースがリモートネットワーク又はサービスへの接続を提供するネットワークノードを含むように、リモートネットワーク又はサービスのための仮想インターフェースを発生させ得る。
【００４３】
いくつかの実施形態において、ネットワークノードは、複数の相互リッスン近隣者を単一のフェースにグループ化すべきかどうかを決定する際に、それの近隣者の到達可能性を考慮する。２つの相互リッスン近隣者が異なるネットワークにインタレストを転送し得る場合、ローカルネットワークノードは、これらの２つの近隣者の各々に、たとえそれらが相互リスナーであっても異なるフェースを割り当てる。しかしながら、２つの近隣者が相互リスナーであり、かつ、同一のターゲットネットワークへの適切なネットワーク接続を提供し得る場合、ネットワークノードはこれらの２つの近隣者のいずれかを使用して同一のターゲットネットワークに到達することができるので、ネットワークノードは、これらの２つの近隣者を単一のフェースにグループ化し得る。
【００４４】
いくつかの実施形態において、ネットワークノードは、ローカルゲートウェイの各々のために１つの仮想インターフェースを作成し得、全ブロードキャストドメイン（例えば、物理インターフェースの相互リッスン近隣者の完全なセット）のために別の仮想インターフェースを作成する。これは、たとえゲートウェイが全ブロードキャストドメインのためのフェースに属することが可能であったとしても、各々のゲートウェイのための専用仮想インターフェースを作成する。これはネットワークノードに、インタレストを意図されていないゲートウェイに到達させることなく、それのフェースを介して使用すべき明示的なゲートウェイを選択することを可能にさせる。他のゲートウェイは、それらが属するフェースを介してインタレストが送出されなかったので、それを無視するであろう。
【００４５】
図３は、実施形態に係る、相互リスナー相互ネットワーク近隣者のセットを各々が含む１つ以上の仮想インターフェースを定義するための例示的な方法３００を示すフローチャートを提示する。動作中、ネットワークノードは、１つ以上の近隣ネットワークノードからネットワーク近隣情報を取得し得る（動作３０２）。このネットワーク近隣情報は、例えば、ネットワークノードのための接続情報、及びネットワークノードがリモートネットワークへのゲートウェイであるかどうかについてのインジケーション、及び／又はそれぞれのネットワークノードのための既存の構成を含み得る。ネットワーク近隣情報はまた、ルーティング情報、リンク特性、既存リンク特性、履歴接続情報、及び／又は予測接続情報を含み得る。
【００４６】
ネットワークノードは、ネットワーク近隣情報を解析して、１つ以上の近隣ネットワークノードの各々を介して到達可能なネットワークを決定し得（動作３０４）、相互リスナー相互ネットワークグループのセットを決定し得る（動作３０６）。各々の相互リスナー相互ネットワークグループは、物理インターフェースにわたって互いに通信し得（例えば、相互リスナーであり）、リモートネットワーク又はネットワークノードの同一セットへの接続を提供し得る（例えば、相互ネットワーク近隣者である）、１つ以上の近隣ノードを含む。ネットワークノードは続いて、各々の相互リスナー相互ネットワークグループのための仮想インターフェースを定義する（動作３０８）。
【００４７】
ネットワークノードが近隣相互リスナーノードの安定したセットを含むように各々の仮想インターフェースを作成する、ということを想起する。いくつかの実施形態において、ネットワークノードは、ネットワーク近隣者がネットワークノードのネットワーク近隣に入るか又はネットワークノードのネットワーク近隣を出る際に、仮想インターフェースのセットを管理し得る。例えば、ネットワークノードは、近隣ネットワークノードによって送信されるネットワークパケットを監視し得（動作３１０）、近隣者がネットワークノードのネットワーク近隣に入ったか又はネットワークノードのネットワーク近隣を出たかを決定する（動作３１２）。
【００４８】
近隣者がネットワーク近隣に入ることもネットワーク近隣を出ることもなかった場合、ネットワークノードは、動作３１０に戻って、ネットワーク近隣において送信されるパケットを監視し続け得る。しかしながら、ネットワーク近隣者がネットワーク近隣を出ると、ネットワークノードは、この近隣者に関連づけられた１つ以上の仮想インターフェースを決定し得（動作３１４）、これらの仮想インターフェースから近隣者を除去する（動作３１６）。近隣者が仮想インターフェースの唯一のネットワークノードであった場合、ネットワークノードは、仮想インターフェースを取り壊し得る。
【００４９】
一方、新たな近隣者が入ると、ネットワークノードは、新たな近隣者のための新たな仮想インターフェースを作成し得る（動作３１８）。新たな近隣者が既存の仮想インターフェースに組み込まれることが可能であり得る（例えば、新たなノードが、仮想インターフェースにおける他のノードの相互リスナー相互ネットワーク近隣者であり得る）、ということに注意する。しかしながら、いくつかの実施形態では、新たな近隣者への接続がどれほど安定しているかをネットワークノードが知らない一方で、ネットワークノードは、新たな近隣者を既存の仮想インターフェースに追加しない場合もある。新たな近隣者は、しばしば場所を変えるモバイルコンピューティングデバイスであり得るか、又は、新たなネットワークノードにネットワークノード又は仮想インターフェースの他のノードへの接続を失わせる、仮想インターフェースにおける他のノードへの弱い信号を有し得る。むしろ、ネットワークノードは、互換性のある定義を有する（例えば、互換性のある相互リスナー近隣者及び互換性のあるネットワーク特性を有する）複数の仮想インターフェースをマージするために、様々な仮想インターフェースを定期的に評価し直し得る。
【００５０】
いくつかの実施形態において、ネットワークノードは、安定した近隣ノードを有することが期待される相互リスナー相互ネットワークグループを定義し直すために、定期的に動作３０２〜３０８を繰り返し得る。このように、動作３１２中に検出された新たな近隣者が偶然、安定した近隣者であった場合、ネットワークノードはこの新たな近隣者を、他の相互リスナー相互ネットワーク近隣者を含む仮想インターフェースに追加し得る。ネットワークノードは、例えば、新たな近隣者への接続のためのアップタイムが所定の最小アップタイムしきい値と少なくとも等しいことを要求することにより、新たな近隣者が安定した近隣者であると決定し得る。あるいは又は加えて、ネットワークノードは、アドミニストレータが近隣者を安定した近隣者であると指示した場合に、新たな近隣者が安定した近隣者であると決定し得る。
【００５１】
図４は、実施形態に係る、相互リスナーネットワークノードのセットのための例示的な隣接テーブルを示す。特に、図１のノードＣ、Ｄ、Ｅ、及びＦが、共通物理チャネルにわたる相互リスナーノードである。ノードＣのための隣接テーブル４００は、ノードＣが近隣者ノードＢ、Ｄ、Ｅ、及びＦを有するので、ノードＣが、ノードＥを介してネットワーク１２０に到達でき、ノードＢ、Ｄ、及びＥを介してネットワーク１２２に到達できることを示す。ノードＤのための隣接テーブル４１０は、ノードＤが近隣者ノードＢ、Ｃ、Ｅ、及びＦを有すること、及び、ノードＤが、ノードＥを介してネットワーク１２０に到達でき、ノードＢ、Ｃ、及びＥを介してネットワーク１２２に到達できることを示す。ノードＥのための隣接テーブル４２０は、ノードＥが近隣者ノードＡ、Ｂ、Ｃ、Ｄ、Ｅ、及びＦを有するので、ノードＥが、ノードＡを介してネットワーク１２０に到達でき、ノードＢ、Ｃ、及びＤを介してネットワーク１２２に到達できることを示す。
【００５２】
いくつかの実施形態において、ノードＦは、その近隣ノードＣ、Ｄ、及びＥから、それぞれ、隣接テーブル４００、４１０、及び４２０を受信し得、これらの隣接テーブルを使用して、ノードＦがノードＣ、Ｄ、及びＥを介してどのネットワークに到達できるかを決定する。ノードＦは、この情報を使用して隣接テーブル４３０を発生させ、隣接テーブル４３０は、ノードＦが近隣者ノードＣ、Ｄ、及びＥを有すること、及び、ノードＦが、ノードＥを介してネットワーク１２０に到達でき、ノードＣ、Ｄ、及びＥを介してネットワーク１２２に到達できることを示す。
【００５３】
隣接テーブル４００、４１０、４２０、及び４３０がソースノード又は近隣者のいずれかとしてノードＣ、Ｄ、Ｅ、及びＦを含むことを考慮すると、ノードＣ、Ｄ、Ｅ、及びＦは相互リスナーである、ということに注意する。ネットワークノードは、相互リスナー近隣者のリストのための仮想インターフェースを作成し得、また、リモートネットワーク（又は所定のターゲットネットワークノード）へのブリッジとしての役割を果たす相互リスナー近隣者の各々のグループのための仮想インターフェースを作成し得る。例えば、ノードＣは、全ての相互リスナー近隣者（ノードＣ、Ｄ、Ｅ、及びＦ）のための１つの仮想インターフェースを作成し得、これらの近隣者を介してアクセス可能な各々のネットワーク（例えば、ネットワーク１２０及び１２２）のための仮想インターフェースを作成し得る。ノードＢはノードグループ｛Ｃ、Ｄ、Ｅ、Ｆ｝の相互リスナーではないので、ネットワーク１２０のための仮想インターフェースは、近隣ノードＤ及びＥを含み得るが、ノードＢを含まない。ネットワーク１２２のための仮想インターフェースは、ネットワーク１２０へのブリッジとしての役割を果たし得る唯一の近隣ノードである近隣ノードＥを含み得る。更なる例として、ノードＦは、相互リスナー近隣ノード（例えば、ノードＣ、Ｄ、及びＥ）の完全なセットを含むネットワーク１２２のための１つの仮想インターフェースを作成し得、ノードＥを含むネットワーク１２０のための第２の仮想インターフェースを作成し得る。
【００５４】
図５Ａ及び図５Ｂは、実施形態に係る、様々なネットワークノードでの仮想インターフェースの定義を示す。特に、各々のフェーステーブルは、仮想インターフェースの定義に関連づけられたネットワーク情報を指定する欄のセットを含み得る。「ソースノード」欄は、仮想インターフェースを発生させたネットワークノードを指定し、「仮想インターフェース」欄は、ソースノードによって作成された仮想インターフェースのための名前を指定する。「メンバー近隣者」の欄は、仮想インターフェースのメンバーである１つ以上の近隣ネットワークノードを指定し、「到達可能なネットワーク」の欄は、仮想インターフェースを介して到達可能な１つ以上のネットワークを指定する。例えば、ネットワーク「１２０」を含む欄のエントリは、仮想インターフェースの任意のメンバー近隣者が「１２０」と命名されたネットワークにアクセスするために使用され得ることを示す。いくつかの実施形態において、到達可能なネットワークは、命名ネットワーク（例えば、仮想プライベートネットワーク（ＶＰＮ）、インターネット、等）を含み得るか、又は、ＣＣＮの名前若しくは名前プレフィックス（例えば、ルーティング可能なプレフィックス）に関連づけられた１つ以上のリモートネットワークノードのグループ（例えば、ウェブページ、インターネットサービス、等）を含み得る。更に、各々のフェーステーブルはまた、性能メトリック（例えば、最小及び／又は最大帯域幅、最小及び／又は最大ラウンドトリップ遅延、最小及び／又は最大安全性評価、等）のような仮想インターフェースの追加の属性を指定するための追加の欄を含み得る。
【００５５】
フェーステーブル５００は、ノードＣが、近隣者ノードＢのための仮想インターフェースである「フェース１」を作成したこと、相互リスナー近隣者であるノードＤ、ノードＥ、及びノードＦのための第２の仮想インターフェースである「フェース２」を作成したことを指定する。ノードＣはまた、各々の相互リスナー相互ネットワークグループのための追加の仮想インターフェースを作成しており、すなわち、仮想インターフェースの「フェース３」は、ネットワーク１２０に接続するノードＥを含み、仮想インターフェースの「フェース４」は、両者ともネットワーク１２２への接続を提供する相互リスナー近隣ノードであるノードＤ及びノードＥを含む。同様に、ノードＤからのフェーステーブル５１０は、ノードＢのための仮想インターフェースである「フェース１」を含み、相互リスナーグループのための仮想インターフェースである「フェース２」を含み、ネットワーク１２０への接続を提供する相互リスナーノード（例えば、ノードＥ）のための仮想インターフェースである「フェース３」を含み、ネットワーク１２２への接続を提供する相互リスナーノード（例えば、ノードＣ及びノードＥ）のための仮想インターフェースである「フェース４」を含む。
【００５６】
フェーステーブル５２０は、ネットワーク１２０への接続を提供する近隣者ノードＡのための仮想インターフェースである「フェース１」を含み、ネットワーク１２２への接続を提供するノードＢのための別の仮想インターフェースを含む。テーブル５２０はまた、相互リスナーノードであるノードＣ、ノードＤ、及びノードＦのための仮想インターフェースである「フェース３」を含む。また、相互リスナーノードであるノードＣ及びノードＤがネットワーク１２２への接続を提供するので、ノードＥは、近隣者であるノードＣ及びノードＤを含むネットワーク１２２のための仮想インターフェースである「フェース４」を作成した。
【００５７】
いくつかの実施形態において、ノードＦは、隣接テーブル４００、４１０、及び４２０を使用してフェーステーブル５３０を発生させ得る。特に、フェーステーブル５３０は、相互リスナー近隣者であるノードＣ、ノードＤ、及びノードＥを含む仮想インターフェース「フェース１」を含む。また、これらの相互リスナー近隣者はまたネットワーク１２２への接続を提供するので、ノードＦは、フェース１がネットワーク１２２に関連づけられていることを指定するようにフェーステーブル５３０を発生させ得る。更に、ノードＥもまたネットワーク１２０への接続を提供するので、ノードＦは、ネットワーク１２０へのゲートウェイとしてノードＥを含む別の仮想インターフェース「フェース２」を発生させ得る。
【００５８】
いくつかの実施形態において、ネットワークノードは、ネットワークノードで利用可能な仮想インターフェースを定義する、それのフェーステーブルを更新し得る。これは、相互リスナー近隣者のセットのための仮想インターフェースから不安定な近隣者をドロップさせることをネットワークノードに可能にさせ、新たな近隣者又は不安定な接続を有する近隣者のために新たな仮想インターフェースを発生させることをネットワークノードに可能にさせる。
【００５９】
図６は、実施形態に係る、仮想インターフェースの定義を更新するための例示的な方法６００を示すフローチャートを提示する。動作中、ネットワークノードは、１つ以上の近隣ノードから、更新されたネットワーク情報を受信し得る（動作６０２）。このネットワーク情報は、例えば、隣接テーブル、ネットワーク性能メトリック、あるいは、近隣ノード及び／又はそれへのネットワーク接続の性能及び安全性を定量化する任意の他の情報を含み得る。
【００６０】
ネットワークノードは続いて、新たなネットワーク情報を有する近隣ノードを決定し（動作６０４）、この近隣ノードが属するローカルフェース（例えば、仮想インターフェース）を決定する（動作６０６）。このネットワークノードは、例えば、ローカルネットワークの近隣を出たか若しくはローカルネットワークの近隣に入ったか、新たな到達可能性情報を有する（例えば、リモートノード若しくはネットワークの異なるセットへのゲートウェイである）か、又はローカルネットワークノードへのネットワーク接続が変化した、ネットワークノードを含み得る。近隣ネットワークノードへのネットワーク接続は、ネットワーク接続が劣化した（例えば、不安定なネットワーク接続になった）場合若しくはアップグレードした（例えば、安定するようになった）場合、ローカルネットワークノードへのネットワーク接続が異なる物理インターフェースに変化した場合、又は、ネットワークノード若しくはそれへのネットワーク接続が新たなネットワーク性能メトリックを有する場合、変化し得る。
【００６１】
ネットワークノードは続いて、近隣ノードのネットワーク情報がフェースの定義と互換性があるかどうかを決定する。例えば、ネットワークノードは、近隣ノード及び／又は任意の他のノードから受信された隣接テーブルから、近隣ノードに関連づけられたネットワーク情報を決定し得る。ネットワークノードはまた、ネットワークノードのフェーステーブルからフェースの定義を決定し得、これを近隣ノードのためのネットワーク情報と比較する。近隣ノードのネットワーク情報がフェースの定義と互換性がない場合、ネットワークノードは、例えば、フェースから近隣ノードを除外するためにフェーステーブルを更新することにより、フェースから近隣ノードをドロップさせ得る（動作６１０）。
【００６２】
また、ネットワークノードは、近隣ノードが依然として利用可能であるかどうかを決定し得（動作６１２）、そうである場合、近隣ノードを新たなフェース又は近隣ノードのためのネットワーク情報と互換性のあるフェース定義を有する既存のフェースに追加する（動作６１４）。
【００６３】
いくつかの実施形態において、ネットワークノードは、物理インターフェースを介してパケットを受信し得、ネットワークノードがメンバーである仮想インターフェースにわたってパケットが送信された場合、パケットを処理する。
【００６４】
図７は、実施形態に係る、ネットワークノードでネットワークパケットを処理するための例示的な方法７００を示すフローチャートを提示する。動作中、ネットワークノードは、ネットワークパケットを受信し得（動作７０２）、パケットが向けられているネットワークインターフェースを識別する（動作７０４）。例えば、ネットワークパケットは、相互リスナーグループに属する１つ以上のネットワークデバイスのためのデバイス識別子のセットを指定する、仮想インターフェース識別子を含み得る。あるいは、仮想インターフェース識別子は、デバイス識別子のセットのハッシュを含み得るか、又は、デバイス識別子のセットに基づいて発生させられたブルームフィルタを含み得る。
【００６５】
ネットワークノードは続いて、それが識別された仮想インターフェースのメンバーであるかどうかを決定する（動作７０６）。例えば、仮想インターフェース識別子がデバイス識別子のセットを含む場合、ローカルネットワークノードは、ネットワークノードの識別子がデバイス識別子のセットに含まれるかどうかを決定することにより、ネットワークノードがインターフェースのメンバーであるかどうかを決定し得る。一方、仮想インターフェース識別子がデバイス識別子のセットのためのハッシュ値を含む場合、ローカルネットワークノードは、ハッシュ値を使用して候補仮想インターフェースのテーブルでルックアップを実行し得る。ローカルネットワークノードが一致を見つけた場合、ネットワークノードは、ネットワークノードがパケットの仮想インターフェースのメンバーであると結論づけ得る。ネットワークノードはまた、一致したエントリを使用して、仮想インターフェースのメンバーである近隣ネットワークノードのセットを決定し得る。一方、仮想インターフェースがブルームフィルタを含む場合、ローカルネットワークノードは、ローカルネットワークノードのためのだけでなく全ての近隣ノードのための二重近隣情報において見出されたデバイス識別子を使用してブルームフィルタに照会し得る。ブルームフィルタにおけるヒットを結果として生じるデバイス識別子は、パケットによって識別された仮想インターフェースのメンバーであるネットワークノードのセットに対応する。
【００６６】
ネットワークノードが識別された仮想インターフェースのメンバーである場合、ネットワークノードは、パケットのための意図された受信者としてパケットを処理することに進み得る（動作７０８）。例えば、ネットワークノードは、ＣＣＮノードを含み得、パケットは、ＣＣＮインタレスト又はコンテンツオブジェクトを含み得る。ネットワークパケットがインタレストを含む場合、ネットワークノードは、インタレストパケットを転送するために使用すべき別の仮想インターフェースを決定するために転送情報ベース（ＦＩＢ）でのルックアップ動作を実行し得る。一方、パケットがコンテンツオブジェクトを含む場合、ネットワークノードは、コンテンツオブジェクトを転送するために使用すべき別の仮想インターフェースを決定するためにペンディングインタレストテーブル（ＰＩＴ）でのルックアップ動作を実行し得る。ネットワークノードはまた、パケットのペイロード（例えば、コンテンツオブジェクト）をキャッシュするといった他の動作をパケットに実行し得る。
【００６７】
一方、ローカルネットワークノードがパケットのヘッダにおいて識別された仮想インターフェースのメンバーでない場合、ネットワークノードは、是正アクションを実行し得る（動作７１０）。是正アクションは、例えば、パケットを無視すること、又は（例えば、パケットを転送せずに）パケットのペイロードをキャッシュすることを含み得る。是正アクションはまた、パケットを送出した近隣ノードのための二重近隣情報を更新するために、パケットのヘッダにおける仮想インターフェース識別子を使用することを含み得る。
【００６８】
図８は、実施形態に係る、利用可能な仮想インターフェースの特性に基づいてネットワークパケットを転送することを容易にする、例示的な装置８００を示す。装置８００は、１つ以上の物理ネットワークインターフェースを介して互いに通信し得る複数のモジュールを備え得る。装置８００は、１つ以上の集積回路を使用して実現され得、図８に示されたモジュールより少ない又は多いモジュールを含み得る。更に、装置８００は、コンピュータシステムに統合され得るか、あるいは、他のコンピュータシステム及び／又はデバイスと通信することができる別個のデバイスとして実現され得る。特に、装置８００は、通信モジュール８０２、仮想インターフェース選択モジュール８０４、パケット処理モジュール８０６、仮想インターフェース定義モジュール８０８、識別子発生モジュール８１０、及び仮想インターフェース維持モジュール８１２を備え得る。
【００６９】
いくつかの実施形態において、通信モジュール８０２は、パケットを受信し得、仮想インターフェース選択モジュール８０４は、ローカルネットワークデバイスが仮想インターフェースのメンバーであるかどうかを決定し得る。パケット処理モジュール８０６は、ローカルネットワークデバイスが仮想インターフェースのメンバーであると決定することに応答して、パケットを処理し得る。
【００７０】
仮想インターフェース定義モジュール８０８は、１つ以上のネットワーク近隣者から受信された二重近隣情報及びネットワーク特性に基づいて１つ以上の仮想インターフェースを定義し得、識別子発生モジュール８１０は、それぞれの仮想インターフェースのためのインターフェース識別子を発生させ得る。仮想インターフェース維持モジュール８１２は、ネットワーク近隣の変化及び／又はネットワーク近隣のネットワーク特性の変化を検出するために１つ以上のネットワークピアによって送信されるパケットを監視し得、検出された変化を考慮するために、新たな仮想インターフェースを起動するか、又は、既存の仮想インターフェースを修正変更する。
【００７１】
図９は、実施形態に係る、利用可能な仮想インターフェースの特性に基づいてネットワークパケットを転送することを容易にする、例示的なコンピュータシステム９０２を示す。コンピュータシステム９０２は、プロセッサ９０４、メモリ９０６、及び記憶デバイス９０８を含む。メモリ９０６は、管理されたメモリとしての役割を果たす揮発性メモリ（例えば、ＲＡＭ）を含み得、１つ以上のメモリプールを記憶するために使用され得る。更に、コンピュータシステム９０２は、ディスプレイデバイス９１０、キーボード９１２、及びポインティングデバイス９１４に結合され得る。記憶デバイス９０８は、オペレーティングシステム９１６、インターフェース維持システム９１８、及びデータ９３２を記憶し得る。
【００７２】
インターフェース維持システム９１８は、コンピュータシステム９０２によって実行された場合にコンピュータシステム９０２に本開示において説明された方法及び／又は処理を実行させ得る命令を含み得る。特に、インターフェース維持システム９１８は、パケットを受信するための命令（通信モジュール９２０）を含み得る。更に、インターフェース維持システム９１８は、ローカルネットワークデバイスが仮想インターフェースのメンバーであるかどうかを決定するための命令（仮想インターフェース選択モジュール９２２）を含み得、ローカルネットワークデバイスが仮想インターフェースのメンバーであると決定することに応答してパケットを処理するための命令（パケット処理モジュール９２４）を含み得る。
【００７３】
インターフェース維持システム９１８は、１つ以上のネットワーク近隣者から受信された二重近隣情報及びネットワーク特性に基づいて１つ以上の仮想インターフェースを定義するための命令（仮想インターフェース定義モジュール９２６）を含み得、それぞれの仮想インターフェースのためのインターフェース識別子を発生させるための命令（識別子発生モジュール９２８）を含み得る。インターフェース維持システム９１８はまた、ネットワーク近隣の変化及び／又はネットワーク近隣のネットワーク特性の変化を検出するために１つ以上のネットワークピアによって送信されるパケットを監視し、検出された変化を考慮するために、新たな仮想インターフェースを起動するか、又は、既存の仮想インターフェースを修正変更するための命令（仮想インターフェース維持モジュール９３０）を含み得る。
【００７４】
データ９３２は、本開示において説明された方法及び／又は処理により、入力として必要とされるか又は出力として生成される、任意のデータを含み得る。特に、データ９３２は、少なくとも、１つ以上の仮想インターフェースのための識別子、及び近隣ネットワークノードのセットのための二重近隣情報（例えば、隣接テーブル）、及びコンピュータシステム９０２のための１つ以上の仮想インターフェースを定義するフェーステーブルを記憶し得る。
【００７５】
この詳細な説明において説明されたデータ構造及びコードは典型的に、コンピュータシステムによる使用のためのコード及び／又はデータを記憶し得る任意のデバイス又は媒体であり得る、コンピュータ読み取り可能な記憶媒体に記憶される。コンピュータ読み取り可能な記憶媒体は、揮発性メモリ、不揮発性メモリ、磁気及び光学記憶デバイス、例えば、ディスクドライブ、磁気テープ、ＣＤ（コンパクトディスク）、ＤＶＤ（デジタル多用途ディスク又はデジタルビデオディスク）、又は、現在知られているか又はこれから開発されるコンピュータ読み取り可能な媒体を記憶することができる他の媒体を含むが、これに限定されない。
【００７６】
詳細な説明の部分において説明された方法及び処理は、上述されたコンピュータ読み取り可能な記憶媒体に記憶され得るコード及び／又はデータとして具体化され得る。コンピュータシステムがコンピュータ読み取り可能な記憶媒体に記憶されたコード及び／又はデータを読み取って実行する場合、コンピュータシステムは、データ構造及びコードとして具体化され、コンピュータ読み取り可能な記憶媒体内に記憶された、方法及び処理を実行する。
【００７７】
更に、上述された方法及び処理は、ハードウェアモジュールに含まれ得る。例えば、ハードウェアモジュールは、特定用途向け集積回路（ＡＳＩＣ）チップ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、及び現在知られているか又はこれから開発される他のプログラマブルロジックデバイスを含み得るが、これに限定されない。ハードウェアモジュールが起動される際、ハードウェアモジュールは、ハードウェアモジュールの中に含まれた方法及び処理を実行する。
【図１】
2016086413.tif 000003
【図２】
2016086413.tif 000004
【図３】
2016086413.tif 000005
【図４】
2016086413.tif 000006
【図５Ａ】
2016086413.tif 000007
【図５Ｂ】
2016086413.tif 000008
【図６】
2016086413.tif 000009
【図７】
2016086413.tif 000010
【図８】
2016086413.tif 000011
【図９】
2016086413.tif 000012