(57)【要約】  本発明は、複数のノード１１０を備えるネットワーク１００内でパケットを送信するための方法および装置を含む。１つの方法は、少なくとも１つのノード１１０向けのパケットをカプセル化すること（この場合、パケットはビットセットを使用してカプセル化される）、パケットのビットセットとインターフェースのビットマスクを比較すること、およびビットセットとビットマスクの比較がパケットが振り向けられるノード１１０の１つがインターフェースから利用できるノードの１つと同一であることを示す、という決定に応答してインターフェースを介してパケットを転送することを含む。ビットセットおよびビットマスクのそれぞれは、各複数のノードに関連付けられたビット位置を含む。ビットセットおよびビットマスクのビット位置は、それぞれパケットが振り向けられる少なくとも１つのノードのそれぞれおよびインターフェースから利用できるノード１１０のそれぞれを識別する。
2010515360.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードを備えるネットワーク内でパケットを送信するための方法であって、
少なくとも１つのノード向けのパケットをカプセル化することであって、パケットが各複数のノードに関連付けられた複数のビット位置を備えるビットセットを使用してカプセル化され、ビットセットのビット位置が、パケットが振り向けられる少なくとも１つのノードのそれぞれを識別するための方法で設定される、カプセル化することと、
パケットのビットセットとインターフェースのビットマスクを比較することであって、ビットマスクが各複数のノードに関連付けられた複数のビット位置を備え、ビットマスクのビット位置がインターフェースから利用できるノードのそれぞれを識別するための方法で設定される、比較することと、
ビットセットとビットマスクの比較がパケットが振り向けられるノードの１つがインターフェースから利用できるノードの１つと同一であることを示す、という決定に応答してインターフェースを介してパケットを転送することと
を備える、方法。
【請求項２】
パケットをカプセル化することが、
パケットが振り向けられる少なくとも１つのノードのそれぞれを決定することと、
パケットが振り向けられる少なくとも１つのノードのそれぞれを識別するための方法でビットセットのビット位置を設定することと
を備える、請求項１に記載の方法。
【請求項３】
パケットが振り向けられる少なくとも１つのノードが、パケットが受信される外部インターフェースまたは受信したパケット内に含まれる情報のうちの少なくとも１つを使用して識別される、請求項１に記載の方法。
【請求項４】
パケットのビットセットとインターフェースのビットマスクを比較することが、
比較結果を生成するためにパケットのビットセットおよびインターフェースのビットマスクを使用してビット単位のＡＮＤ演算を行うこと
を備える、請求項１に記載の方法。
【請求項５】
パケットが、比較結果の少なくとも１つのビット位置が１に等しいことに応答してインターフェースを介して転送される、請求項４に記載の方法。
【請求項６】
複数のノードを備えるネットワーク内でパケットを送信するための装置であって、
少なくとも１つのノード向けのパケットをカプセル化するための手段であって、パケットが各複数のノードに関連付けられた複数のビット位置を備えるビットセットを使用してカプセル化され、ビットセットのビット位置が、パケットが振り向けられる少なくとも１つのノードのそれぞれを識別するための方法で設定される、カプセル化するための手段と、
パケットのビットセットとインターフェースのビットマスクを比較するための手段であって、ビットマスクが各複数のノードに関連付けられた複数のビット位置を備え、ビットマスクのビット位置がインターフェースから利用できるノードのそれぞれを識別するための方法で設定される、比較するための手段と、
ビットセットとビットマスクの比較がパケットが振り向けられるノードの１つがインターフェースから利用できるノードの１つと同一であることを示す、という決定に応答してインターフェースを介してパケットを転送するための手段と
を備える、装置。
【請求項７】
パケットをカプセル化するための手段が、
パケットが振り向けられる少なくとも１つのノードのそれぞれを決定するための手段と、
パケットが振り向けられる少なくとも１つのノードのそれぞれを識別するための方法でビットセットのビット位置を設定するための手段と
を備える、請求項６に記載の装置。
【請求項８】
パケットが振り向けられる少なくとも１つのノードが、パケットが受信される外部インターフェースまたは受信したパケット内に含まれる情報のうちの少なくとも１つを使用して識別される、請求項６に記載の装置。
【請求項９】
パケットのビットセットとインターフェースのビットマスクを比較するための手段が、
比較結果を生成するためにパケットのビットセットおよびインターフェースのビットマスクを使用してビット単位のＡＮＤ演算を行うための手段
を備える、請求項６に記載の装置。
【請求項１０】
複数のノードを備える通信網内でパケットを送信するための方法であって、
各複数のノードに関連付けられた複数のビット位置を備えるビットセットを備えるパケットをノードの１つで受信することであって、ビットセットのビット位置が、パケットが振り向けられるノードのそれぞれを識別するための方法で設定される、受信することと、
パケットのビットセットとノードの１つのインターフェースのビットマスクを比較することであって、ビットマスクが各複数ノードに関連付けられた複数のビット位置を備え、ビットマスクのビット位置がインターフェースから利用できるノードのそれぞれを識別するための方法で設定される、比較することと、
ビットセットとビットマスクの比較がパケットが振り向けられるノードの１つがインターフェースから利用できるノードの１つと同一であることを示す、という決定に応答してインターフェースを介してパケットを転送することと
を備える、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信網の分野に関し、より具体的にはパケット網内のマルチキャストルーティングに関する。
【背景技術】
【０００２】
パケットベースのネットワークでは、典型的にはデータパケットの送信先を示す識別子が各データパケットに加えられる。識別子は、ネットワーク全体にわたって全体的に固有である（例えば、イーサネット（登録商標））またはネットワークの一部にわたって局部的に固有である（例えば、マルチプロトコルラベルスイッチング（ＭＰＬＳ）などの特定のリンク用）。全体的に固有の識別子の利点は、情報転送の前の接続を生成するためのシグナリングプロトコルの要求を除去することである。局部的に固有の識別子の場合、ルーティング経路に沿った各ノード対は各転送されるフレームに対する識別子の割当に適合しなければならないので、シグナリングプロトコルが必要である。
【０００３】
ユニキャスト通信の場合、全体的に固有の識別子はネットワーク中でのパケットの効率的なルーティングを可能にする（すなわち、各エンドポイントが、エンドポイント用の固有アドレスとして動作する識別子に関連付けられる）。このモデルは既存のネットワーク内で使用される（例えば、イーサネット（登録商標）ネットワークおよびインターネットプロトコル（ＩＰ）ネットワーク）。このモデルではｘビットの識別子サイズの場合、多くて２ｘ個のエンドポイントがサポートされることができる。ユニキャスト通信用のこのモデルは動作上効率的である。しかし、不利なことにはマルチキャスト通信は著しくより複雑でありうる。マルチキャスト通信では、概してマルチキャストツリー（特定のトラフィックを受信することに関与するエンドポイントを含む）は、特定のトラフィックの伝送の前に形成されなければならない。
【０００４】
さらにマルチキャスト通信の場合、各可能なエンドポイントのサブセットがマルチキャストグループを形成することができるので、ｎ個のエンドポイントを有するネットワークの場合、２ｎ−ｎ個の可能なマルチキャストグループがネットワーク内で形成されることができる。ｎ＝２ｘ（ここで、ｘは各識別子のビット数である）であるので、２ｘビットが各可能なマルチキャストグループを一意に識別するために必要である。概して可能なマルチキャストグループの１つのサブセットだけが使用されるので、マルチキャストグループの識別子の実際の数はより小さい可能性がある（例えば、典型的にはユニキャスト識別子の数程度）。既存の手法はユニキャスト識別子とマルチキャスト識別子とを区別するために識別子の追加ビットを使用するが、この手法はマルチキャストグループとマルチキャスト識別子との間の関連付けを維持するためにシグナリング機構を依然として必要とする。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来技術の様々な欠陥が、複数のノードを備えるネットワーク内でパケットを送信するための方法および装置である本発明により対処される。
【課題を解決するための手段】
【０００６】
１つの方法は、少なくとも１つのノード向けのパケットをカプセル化すること（この場合、パケットは１つのビットセットを使用してカプセル化される）、パケットのビットセットとインターフェースのビットマスクを比較すること、およびビットセットとビットマスクの比較がパケットが振り向けられるノードの１つがインターフェースから利用できるノードの１つと同一であることを示す、という決定に応答してインターフェースを介してパケットを転送することを含む。ビットセットおよびビットマスクのそれぞれは各複数のノードに関連付けられたビット位置を含む。ビットセットおよびビットマスクのビット位置は、それぞれパケットが振り向けられる少なくとも１つのノードのそれぞれおよびインターフェースから利用できるノードのそれぞれを識別する。
【０００７】
本発明の教示は、添付図面に関連した下記の詳細な説明を考慮することによって容易に理解されることができる。
【図面の簡単な説明】
【０００８】
【図１】通信網の高レベルの構成図である。
【図２】図１の通信網のノードの１つの高レベルの構成図である。
【図３】任意のエンドノードモジュールなしに１つの転送モジュールを含む１つの例示のノードの高レベルの構成図である。
【図４】任意の転送モジュールなしに１つのエンドノードモジュールを含む１つの例示のノードの高レベルの構成図である。
【図５】１つの転送モジュールおよび２つのエンドノードモジュールを含む１つの例示のノードの高レベルの構成図である。
【図６】本発明の１つの実施形態による１つの方法を示す図である。
【図７】本発明の１つの実施形態による１つの方法を示す図である。
【図８】本明細書で説明される機能の実行での使用に適した汎用コンピュータの高レベルの構成図である。
【発明を実施するための形態】
【０００９】
理解を容易にするために同一の参照番号が、可能な場合、図に共通である同一の要素を指定するために使用されている。
【００１０】
図１は通信網の高レベルの構成図を示す。図１の通信網１００は、複数のノード１１００−１１０７（ひとまとめにしてノード１１０）を含む。ノード１１０は、ネットワークインターフェース（ＮＩ）１１２および／または外部インターフェース（ＥＩ）１０２の様々な組合せをサポートする。ノード１１０はＮＩ１１２を使用して通信する。ノード１１０は、ＥＩ１０２を使用して外部装置（例えば、他のネットワークドメインのノード、ユーザ装置など）と通信する。ＮＩ１１２はネットワークリンクを含むことができる。ＥＩ１０２は外部リンクを含むことができる。
【００１１】
ノード１１０はパケットベースの通信をサポートする通信ノードを含む。１つの実施形態ではノード１１０は、インターネットプロトコル（ＩＰ）、マルチプロトコルラベルスイッチング（ＭＰＬＳ）、イーサネット（登録商標）などのマルチキャスト能力をサポートする任意の通信技術ならびに様々なその組合せをサポートする通信ノードを含む。ＮＩ１１２およびＥＩ１１２は、関連のノード１１０によってサポートされる任意の通信技術をサポートするインターフェースを含む。
【００１２】
ノード１１０、ＮＩ１１２、およびＥＩ１０２の特定の種類、数、および構成を有する通信網に対して本明細書では主として示され説明されているが、本発明はノード１１０、ＮＩ１１２、およびＥＩ１０２の様々な他の種類、数、および構成を有する通信網内で実現されることができる。同様に、特定のマルチキャスト通信技術に対して本明細書では主として示され説明されているが、本発明は様々な他のユニキャスト通信技術、マルチキャスト通信技術など、ならびに様々なその組合せを使用して実現されることができる。
【００１３】
図１に示されるように、Ｎ個のノードから成るネットワークの場合、各ノードはＮビットを有する固有の識別子を割り当てられる。Ｎビットを有する固有の識別子はＮ個のビット位置を含み、この場合Ｎ個のビット位置のそれぞれはノードの１つに関連付けられる。図１に示されるように、通信網１００は８つのノードを含むので、ノード１１０のそれぞれは固有の８ビット識別子を割り当てられ、この場合、ノードごとにそのノードに関する固有の８ビット識別子のビット位置が１に設定され、すべての他のノードに関する固有の８ビット識別子のビット位置が０に設定される。具体的にはノード１１０１−１１０８は、それぞれ識別子１０００００００、０１００００００、００１０００００、０００１００００、００００１０００、０００００１００、００００００１０、および０００００００１を割り当てられる。
【００１４】
本明細書で説明されるように、この種の固有のＮビット識別子（通信網の各ノードに関連付けられた１つのビット位置を有する）の使用は、単一ノード向けのパケットに関するユニキャストラベルの生成のために使用されることができ、複数のノード向けのパケットに関するマルチキャストラベルの生成を大幅に簡略化する。例えば、ノード１１０６への配信向けのパケットは０００００１００というユニキャストラベルを用いてカプセル化されることができ、ノード１１０６、１１０７、および１１０８への配信向けのパケットは０００００１１１というマルチキャストラベルを用いてカプセル化されることができ、ノード１１０２、１１０５、および１１０８への配信向けパケットは０１００１００１というマルチキャストラベルを用いてカプセル化されることができるなどである。ラベルは、本明細書ではビットセットとしてより一般に呼ばれうる。
【００１５】
ノード１１０でパケットを受信すると受信ノード１１０は、受信したパケットがそのノード１１０に関連付けられた１つまたは複数のＥＩ１０２を介して転送されるべきであるかどうかを決定（すなわち、パケットがそのノード１１０向けであるかどうかを決定）し、受信したパケットがそのノード１１０に関連付けられた１つまたは複数のＮＩ１１２を介して転送されるべきであるかどうかを決定（すなわち、パケットが少なくとも１つの他のノード１１０向けであるかどうかを決定）するためにパケットのラベルを使用する。ノード１１０の動作は、本明細書で示され説明される図２および図３に対してよりよく理解されることができる。
【００１６】
図２は、図１の通信網のノードの１つの高レベルの構成図を示す。具体的には、ノード１１０１はエンドノードモジュール２１０および転送モジュール２２０を含む。エンドノードモジュール２１０は、ＥＩ１０２に対するインターフェースとして動作する。転送モジュール２２０は、ＮＩ１１２に対するインターフェースとして動作する。エンドノードモジュール２１０および転送モジュール２２０は、内部インターフェース（ＩＩ）２１９を介して通信する。エンドノードモジュール２１０は、カプセル化モジュール２１２、局部処理モジュール２１４、およびカプセル化解除モジュール２１６を含む。ＥＩ１０２は、カプセル化モジュール２１２にパケットを送信し、カプセル化解除モジュール２１６からパケットを受信する。ＩＩ２１９は、カプセル化モジュール２１２から転送モジュール２２０にパケットを搬送し、転送モジュール２２０からカプセル化解除モジュール２１６にパケットを搬送する。
【００１７】
ノード１１０のＥＩ１０２の１つを介して受信されたパケット（またはノード１１０の局部処理モジュール２１４によって局部的に生成されたパケット）の場合、エンドノードモジュール２１０はカプセル化モジュール２１２にパケットを導く。カプセル化モジュールは、受信したパケットが振り向けられる１つまたは複数のノードを識別する。カプセル化モジュール２１２は、受信したパケットが受信されたインターフェースおよび／または受信したパケット内に含まれる情報など、ならびに様々なその組合せにより受信したパケットが振り向けられる１つまたは複数のノードを識別する。カプセル化モジュール２１２は、受信したパケット内に含まれる任意の情報を使用して受信したパケットが振り向けられる１つまたは複数のノードを識別することができる。例えば、カプセル化モジュール２１２は、ＭＰＬＳラベル（ＭＰＬＳパケット用）、ＩＰアドレス（ＩＰパケット用）、またはイーサネット（登録商標）アドレスもしくは仮想ローカルエリアネットワーク（ＶＬＡＮ）識別子（イーサネット（登録商標）パケット用）などを使用して受信したパケットが振り向けられる１つまたは複数のノードを識別することができる。
【００１８】
カプセル化モジュール２１２は、受信したパケットにビットセットを加えることによってパケットをカプセル化する。ビットセットは、パケットが振り向けられる１つまたは複数のノード１１０を識別する。カプセル化モジュール２１２は、エンドノードモジュール２１０と転送モジュール２２０との間の内部インターフェース（ＩＩ）２１９を使用して転送モジュール２２０にカプセル化されたパケットを供給する。転送モジュール２２０は、カプセル化モジュール２１２からカプセル化されたパケットを受信する。転送モジュール２２０は、カプセル化されたパケットが送信されるべきである１つまたは複数のＮＩ１１２を決定する。１つの実施形態では転送モジュール２２０は、それぞれ１つまたは複数のＮＩ１１２に関連付けられた１つまたは複数のビットマスクを使用してカプセル化されたパケットが送信されるべきである１つまたは複数のＮＩを決定する。転送モジュール２１２は、１つまたは複数の識別されたＮＩ１１２を介してカプセル化されたパケットを送信する。
【００１９】
ノード１１０のＮＩ１１２の１つを介して受信されたパケットの場合、転送モジュール２１２はパケットを受信する。転送モジュール２１２は、どこに受信したパケットを導くべきかを決定する。受信したパケットが他のノード１１０向けである場合、転送モジュール２２０はノードに関連付けられた１つまたは複数の他のＮＩ１１２に受信したパケットを導く。受信したパケットがそのノード１１０向けである場合、転送モジュール２１２はカプセル化解除モジュール２１６に受信したパケットを導く（例示的に内部インターフェース（ＩＩ）２１９を使用して）。カプセル化解除モジュール２１６は、受信したパケットからビットセットを除去するためにパケットをカプセル化解除する。カプセル化解除モジュール２１６は、カプセル化解除されたパケットが送信されるべきである１つまたは複数のＥＩ１０２を決定する。カプセル化解除モジュール２１６は、カプセル化解除されたパケットが、パケット内に含まれるルーティング情報を使用して送信されるべきである１つまたは複数のＥＩ１０２を決定することができる。カプセル化解除モジュール２１６は、１つまたは複数の識別されたＥＩ１０２を介してカプセル化解除されたパケットを送信する。
【００２０】
図２に示されるように、転送モジュール２２０は転送モジュール２２０に関連付けられたインターフェース（ＩＩ２１９およびＮＩ１１２を含む）ごとのビットマスクを維持する。インターフェースに関連付けられたビットマスクは、そのインターフェースに関連付けられた１つまたは複数のノード１１０を識別する。内部インターフェースに関連付けられたビットマスクは、そのノードのノード識別子と同一である。図２に示されるように、ＩＩ２１９に関連付けられたビットマスクは、０１００００００である（それによって、転送モジュール２１６がノード１１０２向けのパケットをエンドノードモジュール２１０に導くことを保証する）。図２に示されるように、ノード１１０１が１１０２のＮＩ１１２Ａから到達することができる唯一のノードであるのでＮＩ１１２Ａに関連付けられたビットマスクは１０００００００である。図２に示されるように、ノード１１０３、１１０４、１１０５、１１０６、１１０７、および１１０８のそれぞれが１１０２のＮＩ１１２Ｂから直接または間接的に到達することができるのでＮＩ１１２Ｂに関連付けられたビットマスクは００１１１１１１である。
【００２１】
１つの実施形態では、パケットを受信する（ＩＩ２１９またはＮＩ１１２の１つのいずれかから）と転送モジュール２２０に関連付けられたインターフェースごとに転送モジュール２２０は、そのインターフェースを介して受信したパケットを送信するべきかどうかを決定するためにインターフェースのビットマスクと受信したパケットのビットセットのビット単位のＡＮＤ演算を行う。
【００２２】
１つの例では、ノード１１０２のエンドノードモジュール２１０がノード１１０６および１１０８向けのパケットを受信すると仮定する。カプセル化モジュール２１２は、パケットがノード１１０６および１１０８向けであることを示す０００００１０１というビットセットを用いてパケットをカプセル化する。カプセル化モジュール２１２は、ＩＩ２１９を使用して転送モジュール２２０にカプセル化されたパケットを供給する。転送モジュール２２０は、ビットセット０００００１０１とＮＩ１１２Ａに関連付けられたビットマスク１０００００００のビット単位のＡＮＤ演算を行う。ビットセットおよびビットマスクのビット位置のいずれも共に１に設定されているものがないので、ビット単位のＡＮＤ演算の結果は００００００００である。ビット単位のＡＮＤ演算の結果のビット位置のいずれも１に設定されているものがないので、転送モジュール２２０はＮＩ１１２Ａを介して暗号化されたパケットを送信しない。転送モジュール２２０は、ビットセット０００００１０１とＮＩ１１２Ｂに関連付けられたビットマスク００１１１１１１のビット単位のＡＮＤ演算を行う。ビットセットおよびビットマスクの両方のビット位置６および８が１に設定されているので、ビット単位のＡＮＤ演算の結果は０００００１０１である。ビット単位のＡＮＤ演算の結果のビット位置の少なくとも１つが１に設定されているので、転送モジュール２２０はＮＩ１１２Ｂを介して暗号化されたパケットを送信する。
【００２３】
１つの例では、ノード１１０２の転送モジュール２２０がＮＩ１１２Ａを介してノード１１０１からパケットを受信し、この場合、パケットはノード１１０２、１１０６、１１０７、および１１０８向けである（すなわち、受信したパケットのビットセットは０１０００１１１に設定されている）と仮定する。転送モジュール２２０は、ビットセット０１０００１１１とＩＩ２１９に関連付けられたビットマスク０１００００００のビット単位のＡＮＤ演算を行う。ビットセットおよびビットマスクの両方のビット位置２が１に設定されているので、ビット単位のＡＮＤ演算の結果は０１００００００である。ビット単位のＡＮＤ演算の結果のビット位置の少なくとも１つが１に設定されているので、転送モジュール２２０は、ＩＩ２１９を介して暗号化されたパケットを送信する（カプセル化解除モジュール２１６に）。転送モジュール２２０は、ビットセット０１０００１１１とＮＩ１１２Ｂに関連付けられたビットマスク００１１１１１１のビット単位のＡＮＤ演算を行う。ビットセットおよびビットマスクの両方のビット位置６、７、および８が１に設定されているので、ビット単位のＡＮＤ演算の結果は０００００１１１である。ビット単位のＡＮＤ演算の結果のビット位置の少なくとも１つが１に設定されているので、転送モジュール２２０はＮＩ１１２Ｂを介して暗号化されたパケットを送信する。
【００２４】
１つのエンドノードモジュールおよび１つの転送モジュールを有する特定のノード構成に対して本明細書では主として示され説明されているが、様々な他のノード構成が使用されることができる。１つの実施形態では、通信網のノードの少なくとも一部がエンドノードモジュールなしに転送モジュールを含むことができる。１つの実施形態では、通信網のノードの少なくとも一部が転送モジュールなしにエンドノードモジュールを含むことができる。さらにノードは、１つもしくは複数の転送モジュールおよび／または１つもしくは複数のエンドノードモジュールの任意の組合せを含むことができる。ＥＩ１０２、ＩＩ２１９、およびＮＩ１１２の特定の数および構成を含む特定のノード構成に対して主として示され説明されているが、ノードはＥＩ１０２、ＩＩ２１９、およびＮＩ１１２の他の数および構成を使用して実現されることができる。
【００２５】
１つのエンドノードモジュールを含むノードに対して主として示され説明されているが、ノードが複数のエンドノードモジュールを含む１つの実施形態では、ノードの各エンドノードモジュールは固有の識別子を割り当てられることができる。この種の実施形態では、ノードがゼロのエンドノードモジュールまたは複数のエンドノードモジュールを含むことができるので、通信網に関するビットセットを実現するために必要とされるビット位置の数は、ネットワーク内のノード数より少なくてよいか、または多くてよい。例えば、６つのノードのうちの３つがそれぞれ４つのエンドノードモジュールを含み、６つのノードのうちの他の３つだけが転送モジュールを含む６つのノードを有する通信網の場合、ネットワーク内のエンドノードモジュールのそれぞれを一意に識別するために必要とされるビット位置の数は、たとえネットワーク内に６つのノードだけがあるとしても１２個である（すなわち、１２個のエンドノードモジュールのそれぞれに対して１つのビット位置）。
【００２６】
１つの実施形態では、通信網のノードの少なくとも一部がエンドノードモジュールなしに転送モジュールを含むことができる。図３は、エンドノードモジュールなしに１つの転送モジュールを含む１つの例示のノードを示す。図３に示されるように例示のノード３００は、６つのエンドノードモジュール（６つのノード、または１つもしくは複数のノードが複数のエンドノードモジュールを含むより少ないノードを使用して実現されることができる）を有するネットワーク内のノードである。例示のノード３００は、１１００００、００１０００、０００１００、および００００１１という関連のビットマスクを有する４つのネットワークインターフェースを含む。本明細書で説明されるように、６つのエンドノードのうちの１つまたは複数向けのパケットが、ビットマスクによりネットワークインターフェースのうちの１つまたは複数を介して送信される。特定の数のネットワークインターフェースおよび特定の数のビット位置を有するビットマスクに対して示され説明されているが、本発明によるノードは、様々な他の数のインターフェースおよび様々な他の数のビット位置を有するビットマスクを含むことができる。
【００２７】
１つの実施形態では、通信網のノードの少なくとも一部が転送モジュールなしにエンドノードモジュールを含むことができる。図４は、転送モジュールなしに１つのエンドノードモジュールを含む１つの例示のノードを示す。図４に示されるように、例示のノード４００は２つの外部インターフェースおよび１つのネットワークインターフェースを含む。２つの外部インターフェースは、カプセル化モジュールにパケットを供給し、カプセル化解除モジュールからパケットを受信する。例示のノード４００は転送モジュールを含まないので、ネットワークインターフェースを介して受信されたパケットは、例示のノード４００に配信されるものであるパケットを含む。特定の数の外部インターフェースおよびネットワークインターフェースに対して示され説明されているが、様々な他の構成が実現されることができる。
【００２８】
１つの実施形態ではノードは、１つもしくは複数のエンドノードモジュールおよび／または１つもしくは複数の転送モジュールの任意の組合せを含むことができる。図５は、２つのエンドノードモジュールおよび１つの転送モジュールを含む１つの例示のノードを示す。図５に示されるように、例示のノード５００は６つのエンドノードモジュール（２つは例示のノード５００内に含まれる）を有するネットワーク内のノードである。例示のノード５００は、００１１００および００００１１というビットマスクを有する２つのネットワークインターフェース、ならびに１０００００および０１００００というビットマスクを有する２つの内部インターフェースを含む。２つの内部インターフェースは、それぞれ２つのエンドノードモジュールをサポートする。エンドノードモジュール（および関連の外部インターフェース）、内部インターフェース、転送モジュール、およびネットワークインターフェースの特定の数および構成に対して示され説明されているが、本発明によるノードはこの種のモジュールおよびインターフェースの様々な他の数および構成を含むことができる。
【００２９】
図６は本発明の１つの実施形態による方法を示す。具体的には図６の方法６００は、外部インターフェースを介して受信されたパケットを処理するための方法を含む。受信したパケットは、１つまたは複数のネットワークインターフェースを介して受信したパケットを送信するために処理される。順次実行するように示され説明されているが、図６の方法６００のステップのうちの少なくとも一部は、同時に、または図６に示され説明されている順序と異なる順序で実行されることができる。図６の方法６００は、図２に対してよりよく理解されることができる。方法６００は、ステップ６０２で開始し、ステップ６０４に進む。
【００３０】
ステップ６０４ではパケットがノードで受信される。１つの実施形態では、パケットはノードの外部インターフェースを介して受信される。１つの実施形態では、明確にするために省略されているが、受信されるのではなくパケットはノード内のモジュールから創出することができる。ステップ６０６では、受信したパケットが振り向けられる１つまたは複数のノードが決定される。受信したパケットが振り向けられる１つまたは複数のノードは、パケットが受信されるインターフェース、パケット内に含まれる情報など、ならびに様々なその組合せにより決定されることができる。
【００３１】
ステップ６０８ではビットセットが生成される。ビットセットは、パケットが振り向けられる１つまたは複数のノードに基づいて生成される。ステップ６１０では、受信したパケットが生成されたビットセットを使用してカプセル化される。１つのこの種の実施形態ではビットセットは、ラベルとして受信したパケットに付加される。ステップ６１２ではインターフェースが選択される。インターフェースは、内部インターフェース（例えば、そのノード内に含まれる他のエンドノードモジュールに対する）またはネットワークインターフェース（例えば、他のノードに対する）であってよい。ステップ６１４では、選択されたインターフェースのビットマスクが取得される。１つの実施形態では選択されたインターフェースのビットマスクは、選択されたインターフェースのインターフェース識別子を使用してメモリから取り出されることができる。
【００３２】
ステップ６１６では、パケットのビットセットが選択されたインターフェースのビットマスクと比較される。１つの実施形態では、パケットのビットセットと選択されたインターフェースのビットマスクの比較はビット単位のＡＮＤ演算を使用して行われる。本明細書で説明されるように、パケットのビットセットおよびインターフェースのビットマスクは、パケットが振り向けられるノードの１つが、選択されたインターフェースに関連付けられたノードの１つと合致するかどうかを決定するために比較される。
【００３３】
ステップ６１８では決定が、パケットが振り向けられるノードの１つが、選択されたインターフェースに関連付けられたノードの１つと合致するかどうかに関してなされる。パケットが振り向けられるノードの１つが、選択されたインターフェースに関連付けられたノードの１つと合致しない場合、方法６００はステップ６２２に進む。パケットが振り向けられるノードの１つが、選択されたインターフェースに関連付けられたノードの１つと合致する場合、方法６００はステップ６２０に進む。ステップ６２０では、パケットが選択されたインターフェースを介して送信される。ステップ６２０から方法６００はステップ６２２に進む。
【００３４】
ステップ６２２では決定が、最終のインターフェースが選択されているかどうかに関してなされる（すなわち、パケットが受信されるノードは、パケットがインターフェースを介して送信されるべきであるかどうかを決定するために考えられなければならない１つもしくは複数の内部インターフェースおよび／または１つもしくは複数のネットワークインターフェースを含むことができる）。最終インターフェースが選択されていない場合、方法６００は、他のインターフェースが選択される点であるステップ６１２に戻る。最終のインターフェースが選択されている場合、方法６００はステップ６２４に進み、そこで方法６００は終了する。
【００３５】
図７は、本発明の１つの実施形態による方法を示す。具体的には図７の方法は、ネットワークインターフェースを介して受信されたパケットを処理するための方法を含む。受信したパケットは、１つもしくは複数の内部インターフェースおよび／または１つもしくは複数のネットワークインターフェースを介して受信したパケットを送信するために処理される。順次実行されるように示され説明されているが、図７の方法７００のステップの少なくとも一部は、同時に、または図７に示され説明されている順序と異なる順序で実行されることができる。図７の方法７００は、図２に対してよりよく理解されることができる。方法７００は、ステップ７０２で開始し、ステップ７０４に進む。
【００３６】
ステップ７０４ではパケットが受信される。受信したパケットは、付加されたビットセットによってカプセル化される。パケットはネットワークインターフェースを介して受信される。ステップ７０６ではインターフェースが選択される。インターフェースは、内部インターフェース（例えば、そのノードに含まれるエンドノードモジュールに対する）またはネットワークインターフェース（すなわち、ネットワーク内の他のノードに対する）であってよい。ステップ７０８では、選択されたインターフェースのビットマスクが取得される。１つの実施形態では選択されたインターフェースのビットマスクは、選択されたインターフェースのインターフェース識別子を使用してメモリから取り出されることができる。
【００３７】
ステップ７１０では、パケットのビットセットが選択されたインターフェースのビットマスクと比較される。１つの実施形態では、パケットのビットセットと選択されたインターフェースのビットマスクの比較はビット単位のＡＮＤ演算を使用して行われる。本明細書で説明されるように、パケットのビットセットおよびインターフェースのビットマスクは、パケットが振り向けられるノードの１つが、選択されたインターフェースに関連付けられたノードの１つと合致するかどうかを決定するために比較される。
【００３８】
ステップ７１２では決定が、パケットが振り向けられるノードの１つが、選択されたインターフェースに関連付けられたノードの１つと合致するかどうかに関してなされる。パケットが振り向けられるノードの１つが、選択されたインターフェースに関連付けられたノードの１つと合致しない（すなわち、ノードのいずれも合致しない）場合、方法７００はステップ７２２に進む。パケットが振り向けられるノードの１つが、選択されたインターフェースに関連付けられたノードの１つと合致する場合、方法７００はステップ７１４に進む。
【００３９】
ステップ７１４では決定が、選択されたインターフェースが内部インターフェースか、それともネットワークインターフェースかに関してなされる。合致の決定が行われた後の明確な決定に対して主として示され説明されているが、１つの実施形態ではインターフェースの種類に関する決定は、インターフェースが選択されるとき、インターフェースのビットマスクが取得されるとき、またはいつか他のときに行われることができる。選択されたインターフェースが内部インターフェースである場合、方法７００はステップ７１６に進む。選択されたインターフェースがネットワークインターフェースである場合、方法７００はステップ７２０に進む。
【００４０】
図７に示されるように、インターフェースが内部インターフェースである場合、ステップ７１６ではカプセル化されたパケットがカプセル化解除される。カプセル化されたパケットは、ビットセットを除去することによってカプセル化解除される。ステップ７１６から方法７００はステップ７１８に進む。ステップ７１８ではカプセル化解除されたパケットが１つまたは複数の外部インターフェースを介して送信される。ステップ７１８から方法７００はステップ７２２に進む。図７に示されるように、インターフェースがネットワークインターフェースである場合、ステップ７２０ではカプセル化されたパケットが、選択されたネットワークインターフェースを介して送信される。それによって本発明は、受信したパケットが、ノードに関連付けられた１つまたは複数の所期の受信者に配信される、ならびに１つまたは複数の他のノードに送信されることを可能にする（すなわち、本発明は簡略化されたパケットマルチキャストをサポートする）。
【００４１】
ステップ７２２では決定が、最終のインターフェースが選択されているかどうかに関してなされる（すなわち、パケットが受信されるノードは、パケットがインターフェースを介して送信されるべきであるかどうかを決定するために考えられなければならない１つもしくは複数の内部インターフェースおよび／または１つもしくは複数のネットワークインターフェースを含むことができる）。最終のインターフェースが選択されていない場合、方法７００は、他のインターフェースが選択される点であるステップ７０６に戻る。最終のインターフェースが選択されている場合、方法７００はステップ７２４に進み、そこで方法７００は終了する。
【００４２】
外部インターフェースおよびネットワークインターフェースに対して実現されているように本明細書では主として示され説明されているが、本発明は外部ポートおよびネットワークポートに対して同等に実現されることができる。同様に、本明細書で示され説明されている内部インターフェースは、エンドユーザモジュール上の１つもしくは複数のポート（および／またはカプセル化モジュールおよびカプセル化解除モジュールに関連付けられたポート）および／または転送モジュール上の１つもしくは複数のポートを使用して実現されることができる。この種の実施形態では、転送モジュールに関連付けられたネットワークポートおよび内部インターフェース（および／または関連の内部ポート）は、パケットをルーティングするのに使用されるために構成された関連のビットマスクを有することができる。
【００４３】
１に設定されたビット位置は、パケットがそのビット位置に関連付けられたノード（またはエンドノードモジュール）向けであることを示し、０に設定されたビット位置は、パケットがそのビット位置に関連付けられたノード（またはエンドノードモジュール）向けではないことを示すビットセットに対して本明細書では主として示され説明されているが、１つの実施形態では０が、パケットがノード向けであることを示すために使用されることができ、１に設定されたビット位置が、パケットがノード向けではないことを示すために使用されることができる。１に設定されたビット位置は、インターフェース（またはポート）がそのビット位置に関連付けられたノード（またはエンドノードモジュール）に関連付けられていることを示し、０に設定されたビット位置は、インターフェースがそのビット位置に関連付けられたノード（またはエンドノードモジュール）に関連付けられていないことを示すビットマスクに対して本明細書では主として示され説明されているが、１つの実施形態では０に設定されたビット位置が、インターフェースがノードに関連付けられていることを示すために使用されることができ、１に設定されたビット位置が、インターフェースがノードに関連付けられていないことを示すために使用されることができる。ビットセットおよびビットマスクで使用されることができる特定の値に対して説明されているが、様々な他の値の組合せが使用されることができる。
【００４４】
本明細書で説明されるように本発明は、ＩＰネットワーク、ＭＰＬＳネットワーク、イーサネット（登録商標）ネットワークなどの様々な異なるネットワーク、ならびに様々なその組合せで使用されることができる。ビットセットおよびビットマスクの使用は、本発明によるネットワーク内に含まれることができるノード（エンドノード）数を限定することに留意されたい。例えば、典型的なラベルサイズ（ビット数で）は、ＩＰｖ４に関して３２ビット、ＩＰｖ６に関して１２８ビット、ＭＰＬＳに関して２０ビット、およびイーサネット（登録商標）に関して４８ビットであり、それぞれ多くて３２、１２８、２０、および４８個のノード（またはエンドノードモジュール）を有するネットワークをもたらす。本発明によるネットワークによってサポートされることができるノード数を増大するためにビットセット（すなわちラベル）および任意選択でビットマスクは、ネットワーク内のノード（エンドノードモジュール）ごとに異なるビット位置を含むこと以外に形式を使用して実現されることができる。
【００４５】
ノード（またはエンドノードモジュール）がビットセットまたはビットマスクのビット位置を使用して一意に識別される実施形態に対して本明細書では主として示され説明されているが、他の実施形態ではノード（またはエンドノードモジュール）は、ビットセットまたはビットマスクが使用されていた場合にビットセットまたはビットマスクで設定されるであろうビットを識別する数を使用して一意に識別されることができる。例えば、４つのエンドノードを有するネットワーク内で４つのビット位置を有するビットセットを使用するのではなく、ノードが数１、２、４、および８を使用して一意に識別されることができる。これらの実施形態は情報をコード化するためにより少ないビット（ビットセットおよびビットマスクを使用する実施形態よりも）を必要とし、それによって本発明によって費やされるネットワークリソースを低減し、本発明が実現されることができるネットワークのネットワークサイズを増大する。
【００４６】
図８は、本明細書で説明される機能の実行での使用に適した汎用コンピュータの高レベルの構成図を示す。図８に示されるようにシステム８００は、プロセッサ素子８０２（例えば、ＣＰＵ）、メモリ８０４（例えば、ランダムアクセスメモリ（ＲＡＭ）および／またはリードオンリメモリ（ＲＯＭ））、ルーティング制御モジュール８０５、および様々な入力／出力装置８０６（例えば、限定されないがテープドライブ、フロッピー（登録商標）ドライブ、ハードディスクドライブまたはコンパクトディスクドライブを含む記憶装置、受信機、送信機、スピーカ、ディスプレイ、出力ポート、およびユーザ入力装置（キーボード、キーパッド、マウスなど））を備える。
【００４７】
本発明は、ソフトウェアおよび／またはソフトウェアとハードウェア（例えば、特定用途向け集積回路（ＡＳＩＣ）、汎用コンピュータまたは他の任意のハードウェア均等物を使用して）の組合せで実現されることができることに留意されたい。１つの実施形態では、このルーティング制御プロセス８０５は、上述の機能を実現するためにメモリ８０４内にロードされ、プロセッサ８０２によって実行されることができる。したがって、本発明のルーティング制御プロセス８０５（関連のデータ構造を含む）は、コンピュータ可読メディアまたはキャリア（例えば、ＲＡＭメモリ、磁気もしくは光学ドライブまたはディスケットなど）上に格納されることができる。
【００４８】
本発明の教示を組み込む様々な実施形態が本明細書では詳細に示され説明されているが、当業者はこれらの教示をさらに組み込む多くの他の変形実施形態を容易に考案することができる。
【図１】
2010515360.tif 000003
【図２】
2010515360.tif 000004
【図３】
2010515360.tif 000005
【図４】
2010515360.tif 000006
【図５】
2010515360.tif 000007
【図６】
2010515360.tif 000008
【図７】
2010515360.tif 000009
【図８】
2010515360.tif 000010
【国際調査報告】
2010515360.tif 000011
2010515360.tif 000012