説明

マルチキャストルーティングのための方法および装置

【課題】複数のノードを備えるネットワーク内でマルチキャスパケットを送信するための方法及び装置を提供する。
【解決手段】少なくとも1つのノード110向けのパケットをカプセル化すること、パケットのビットセットとインターフェースのビットマスクを比較すること、およびビットセットとビットマスクの比較がパケットが振り向けられるノード110の1つがインターフェースから利用できるノードの1つと同一であることを示す、という決定に応答してインターフェースを介してパケットを転送することを含む。ビットセットおよびビットマスクのそれぞれは、各複数のノードに関連付けられたビット位置を含む。ビットセットおよびビットマスクのビット位置は、それぞれパケットが振り向けられる少なくとも1つのノードのそれぞれおよびインターフェースから利用できるノード110のそれぞれを識別する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信網の分野に関し、より具体的にはパケット網内のマルチキャストルーティングに関する。
【背景技術】
【0002】
パケットベースのネットワークでは、典型的にはデータパケットの送信先を示す識別子が各データパケットに加えられる。識別子は、ネットワーク全体にわたって全体的に固有である(例えば、イーサネット(登録商標))またはネットワークの一部にわたって局部的に固有である(例えば、マルチプロトコルラベルスイッチング(MPLS)などの特定のリンク用)。全体的に固有の識別子の利点は、情報転送の前の接続を生成するためのシグナリングプロトコルの要求を除去することである。局部的に固有の識別子の場合、ルーティング経路に沿った各ノード対は各転送されるフレームに対する識別子の割当に適合しなければならないので、シグナリングプロトコルが必要である。
【0003】
ユニキャスト通信の場合、全体的に固有の識別子はネットワーク中でのパケットの効率的なルーティングを可能にする(すなわち、各エンドポイントが、エンドポイント用の固有アドレスとして動作する識別子に関連付けられる)。このモデルは既存のネットワーク内で使用される(例えば、イーサネット(登録商標)ネットワークおよびインターネットプロトコル(IP)ネットワーク)。このモデルではxビットの識別子サイズの場合、多くて2個のエンドポイントがサポートされることができる。ユニキャスト通信用のこのモデルは動作上効率的である。しかし、不利なことにはマルチキャスト通信は著しくより複雑でありうる。マルチキャスト通信では、概してマルチキャストツリー(特定のトラフィックを受信することに関与するエンドポイントを含む)は、特定のトラフィックの伝送の前に形成されなければならない。
【0004】
さらにマルチキャスト通信の場合、各可能なエンドポイントのサブセットがマルチキャストグループを形成することができるので、n個のエンドポイントを有するネットワークの場合、2−n個の可能なマルチキャストグループがネットワーク内で形成されることができる。n=2(ここで、xは各識別子のビット数である)であるので、2ビットが各可能なマルチキャストグループを一意に識別するために必要である。概して可能なマルチキャストグループの1つのサブセットだけが使用されるので、マルチキャストグループの識別子の実際の数はより小さい可能性がある(例えば、典型的にはユニキャスト識別子の数程度)。既存の手法はユニキャスト識別子とマルチキャスト識別子とを区別するために識別子の追加ビットを使用するが、この手法はマルチキャストグループとマルチキャスト識別子との間の関連付けを維持するためにシグナリング機構を依然として必要とする。
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来技術の様々な欠陥が、複数のノードを備えるネットワーク内でパケットを送信するための方法および装置である本発明により対処される。
【課題を解決するための手段】
【0006】
1つの方法は、少なくとも1つのノード向けのパケットをカプセル化すること(この場合、パケットは1つのビットセットを使用してカプセル化される)、パケットのビットセットとインターフェースのビットマスクを比較すること、およびビットセットとビットマスクの比較がパケットが振り向けられるノードの1つがインターフェースから利用できるノードの1つと同一であることを示す、という決定に応答してインターフェースを介してパケットを転送することを含む。ビットセットおよびビットマスクのそれぞれは各複数のノードに関連付けられたビット位置を含む。ビットセットおよびビットマスクのビット位置は、それぞれパケットが振り向けられる少なくとも1つのノードのそれぞれおよびインターフェースから利用できるノードのそれぞれを識別する。
【0007】
本発明の教示は、添付図面に関連した下記の詳細な説明を考慮することによって容易に理解されることができる。
【図面の簡単な説明】
【0008】
【図1】通信網の高レベルの構成図である。
【図2】図1の通信網のノードの1つの高レベルの構成図である。
【図3】任意のエンドノードモジュールなしに1つの転送モジュールを含む1つの例示のノードの高レベルの構成図である。
【図4】任意の転送モジュールなしに1つのエンドノードモジュールを含む1つの例示のノードの高レベルの構成図である。
【図5】1つの転送モジュールおよび2つのエンドノードモジュールを含む1つの例示のノードの高レベルの構成図である。
【図6】本発明の1つの実施形態による1つの方法を示す図である。
【図7】本発明の1つの実施形態による1つの方法を示す図である。
【図8】本明細書で説明される機能の実行での使用に適した汎用コンピュータの高レベルの構成図である。
【発明を実施するための形態】
【0009】
理解を容易にするために同一の参照番号が、可能な場合、図に共通である同一の要素を指定するために使用されている。
【0010】
図1は通信網の高レベルの構成図を示す。図1の通信網100は、複数のノード110−110(ひとまとめにしてノード110)を含む。ノード110は、ネットワークインターフェース(NI)112および/または外部インターフェース(EI)102の様々な組合せをサポートする。ノード110はNI112を使用して通信する。ノード110は、EI102を使用して外部装置(例えば、他のネットワークドメインのノード、ユーザ装置など)と通信する。NI112はネットワークリンクを含むことができる。EI102は外部リンクを含むことができる。
【0011】
ノード110はパケットベースの通信をサポートする通信ノードを含む。1つの実施形態ではノード110は、インターネットプロトコル(IP)、マルチプロトコルラベルスイッチング(MPLS)、イーサネット(登録商標)などのマルチキャスト能力をサポートする任意の通信技術ならびに様々なその組合せをサポートする通信ノードを含む。NI112およびEI112は、関連のノード110によってサポートされる任意の通信技術をサポートするインターフェースを含む。
【0012】
ノード110、NI112、およびEI102の特定の種類、数、および構成を有する通信網に対して本明細書では主として示され説明されているが、本発明はノード110、NI112、およびEI102の様々な他の種類、数、および構成を有する通信網内で実現されることができる。同様に、特定のマルチキャスト通信技術に対して本明細書では主として示され説明されているが、本発明は様々な他のユニキャスト通信技術、マルチキャスト通信技術など、ならびに様々なその組合せを使用して実現されることができる。
【0013】
図1に示されるように、N個のノードから成るネットワークの場合、各ノードはNビットを有する固有の識別子を割り当てられる。Nビットを有する固有の識別子はN個のビット位置を含み、この場合N個のビット位置のそれぞれはノードの1つに関連付けられる。図1に示されるように、通信網100は8つのノードを含むので、ノード110のそれぞれは固有の8ビット識別子を割り当てられ、この場合、ノードごとにそのノードに関する固有の8ビット識別子のビット位置が1に設定され、すべての他のノードに関する固有の8ビット識別子のビット位置が0に設定される。具体的にはノード110−110は、それぞれ識別子10000000、01000000、00100000、00010000、00001000、00000100、00000010、および00000001を割り当てられる。
【0014】
本明細書で説明されるように、この種の固有のNビット識別子(通信網の各ノードに関連付けられた1つのビット位置を有する)の使用は、単一ノード向けのパケットに関するユニキャストラベルの生成のために使用されることができ、複数のノード向けのパケットに関するマルチキャストラベルの生成を大幅に簡略化する。例えば、ノード110への配信向けのパケットは00000100というユニキャストラベルを用いてカプセル化されることができ、ノード110、110、および110への配信向けのパケットは00000111というマルチキャストラベルを用いてカプセル化されることができ、ノード110、110、および110への配信向けパケットは01001001というマルチキャストラベルを用いてカプセル化されることができるなどである。ラベルは、本明細書ではビットセットとしてより一般に呼ばれうる。
【0015】
ノード110でパケットを受信すると受信ノード110は、受信したパケットがそのノード110に関連付けられた1つまたは複数のEI102を介して転送されるべきであるかどうかを決定(すなわち、パケットがそのノード110向けであるかどうかを決定)し、受信したパケットがそのノード110に関連付けられた1つまたは複数のNI112を介して転送されるべきであるかどうかを決定(すなわち、パケットが少なくとも1つの他のノード110向けであるかどうかを決定)するためにパケットのラベルを使用する。ノード110の動作は、本明細書で示され説明される図2および図3に対してよりよく理解されることができる。
【0016】
図2は、図1の通信網のノードの1つの高レベルの構成図を示す。具体的には、ノード110はエンドノードモジュール210および転送モジュール220を含む。エンドノードモジュール210は、EI102に対するインターフェースとして動作する。転送モジュール220は、NI112に対するインターフェースとして動作する。エンドノードモジュール210および転送モジュール220は、内部インターフェース(II)219を介して通信する。エンドノードモジュール210は、カプセル化モジュール212、局部処理モジュール214、およびカプセル化解除モジュール216を含む。EI102は、カプセル化モジュール212にパケットを送信し、カプセル化解除モジュール216からパケットを受信する。II219は、カプセル化モジュール212から転送モジュール220にパケットを搬送し、転送モジュール220からカプセル化解除モジュール216にパケットを搬送する。
【0017】
ノード110のEI102の1つを介して受信されたパケット(またはノード110の局部処理モジュール214によって局部的に生成されたパケット)の場合、エンドノードモジュール210はカプセル化モジュール212にパケットを導く。カプセル化モジュールは、受信したパケットが振り向けられる1つまたは複数のノードを識別する。カプセル化モジュール212は、受信したパケットが受信されたインターフェースおよび/または受信したパケット内に含まれる情報など、ならびに様々なその組合せにより受信したパケットが振り向けられる1つまたは複数のノードを識別する。カプセル化モジュール212は、受信したパケット内に含まれる任意の情報を使用して受信したパケットが振り向けられる1つまたは複数のノードを識別することができる。例えば、カプセル化モジュール212は、MPLSラベル(MPLSパケット用)、IPアドレス(IPパケット用)、またはイーサネット(登録商標)アドレスもしくは仮想ローカルエリアネットワーク(VLAN)識別子(イーサネット(登録商標)パケット用)などを使用して受信したパケットが振り向けられる1つまたは複数のノードを識別することができる。
【0018】
カプセル化モジュール212は、受信したパケットにビットセットを加えることによってパケットをカプセル化する。ビットセットは、パケットが振り向けられる1つまたは複数のノード110を識別する。カプセル化モジュール212は、エンドノードモジュール210と転送モジュール220との間の内部インターフェース(II)219を使用して転送モジュール220にカプセル化されたパケットを供給する。転送モジュール220は、カプセル化モジュール212からカプセル化されたパケットを受信する。転送モジュール220は、カプセル化されたパケットが送信されるべきである1つまたは複数のNI112を決定する。1つの実施形態では転送モジュール220は、それぞれ1つまたは複数のNI112に関連付けられた1つまたは複数のビットマスクを使用してカプセル化されたパケットが送信されるべきである1つまたは複数のNIを決定する。転送モジュール212は、1つまたは複数の識別されたNI112を介してカプセル化されたパケットを送信する。
【0019】
ノード110のNI112の1つを介して受信されたパケットの場合、転送モジュール212はパケットを受信する。転送モジュール212は、どこに受信したパケットを導くべきかを決定する。受信したパケットが他のノード110向けである場合、転送モジュール220はノードに関連付けられた1つまたは複数の他のNI112に受信したパケットを導く。受信したパケットがそのノード110向けである場合、転送モジュール212はカプセル化解除モジュール216に受信したパケットを導く(例示的に内部インターフェース(II)219を使用して)。カプセル化解除モジュール216は、受信したパケットからビットセットを除去するためにパケットをカプセル化解除する。カプセル化解除モジュール216は、カプセル化解除されたパケットが送信されるべきである1つまたは複数のEI102を決定する。カプセル化解除モジュール216は、カプセル化解除されたパケットが、パケット内に含まれるルーティング情報を使用して送信されるべきである1つまたは複数のEI102を決定することができる。カプセル化解除モジュール216は、1つまたは複数の識別されたEI102を介してカプセル化解除されたパケットを送信する。
【0020】
図2に示されるように、転送モジュール220は転送モジュール220に関連付けられたインターフェース(II219およびNI112を含む)ごとのビットマスクを維持する。インターフェースに関連付けられたビットマスクは、そのインターフェースに関連付けられた1つまたは複数のノード110を識別する。内部インターフェースに関連付けられたビットマスクは、そのノードのノード識別子と同一である。図2に示されるように、II219に関連付けられたビットマスクは、01000000である(それによって、転送モジュール216がノード110向けのパケットをエンドノードモジュール210に導くことを保証する)。図2に示されるように、ノード110が110のNI112から到達することができる唯一のノードであるのでNI112に関連付けられたビットマスクは10000000である。図2に示されるように、ノード110、110、110、110、110、および110のそれぞれが110のNI112から直接または間接的に到達することができるのでNI112に関連付けられたビットマスクは00111111である。
【0021】
1つの実施形態では、パケットを受信する(II219またはNI112の1つのいずれかから)と転送モジュール220に関連付けられたインターフェースごとに転送モジュール220は、そのインターフェースを介して受信したパケットを送信するべきかどうかを決定するためにインターフェースのビットマスクと受信したパケットのビットセットのビット単位のAND演算を行う。
【0022】
1つの例では、ノード110のエンドノードモジュール210がノード110および110向けのパケットを受信すると仮定する。カプセル化モジュール212は、パケットがノード110および110向けであることを示す00000101というビットセットを用いてパケットをカプセル化する。カプセル化モジュール212は、II219を使用して転送モジュール220にカプセル化されたパケットを供給する。転送モジュール220は、ビットセット00000101とNI112に関連付けられたビットマスク10000000のビット単位のAND演算を行う。ビットセットおよびビットマスクのビット位置のいずれも共に1に設定されているものがないので、ビット単位のAND演算の結果は00000000である。ビット単位のAND演算の結果のビット位置のいずれも1に設定されているものがないので、転送モジュール220はNI112を介して暗号化されたパケットを送信しない。転送モジュール220は、ビットセット00000101とNI112に関連付けられたビットマスク00111111のビット単位のAND演算を行う。ビットセットおよびビットマスクの両方のビット位置6および8が1に設定されているので、ビット単位のAND演算の結果は00000101である。ビット単位のAND演算の結果のビット位置の少なくとも1つが1に設定されているので、転送モジュール220はNI112を介して暗号化されたパケットを送信する。
【0023】
1つの例では、ノード110の転送モジュール220がNI112を介してノード110からパケットを受信し、この場合、パケットはノード110、110、110、および110向けである(すなわち、受信したパケットのビットセットは01000111に設定されている)と仮定する。転送モジュール220は、ビットセット01000111とII219に関連付けられたビットマスク01000000のビット単位のAND演算を行う。ビットセットおよびビットマスクの両方のビット位置2が1に設定されているので、ビット単位のAND演算の結果は01000000である。ビット単位のAND演算の結果のビット位置の少なくとも1つが1に設定されているので、転送モジュール220は、II219を介して暗号化されたパケットを送信する(カプセル化解除モジュール216に)。転送モジュール220は、ビットセット01000111とNI112に関連付けられたビットマスク00111111のビット単位のAND演算を行う。ビットセットおよびビットマスクの両方のビット位置6、7、および8が1に設定されているので、ビット単位のAND演算の結果は00000111である。ビット単位のAND演算の結果のビット位置の少なくとも1つが1に設定されているので、転送モジュール220はNI112を介して暗号化されたパケットを送信する。
【0024】
1つのエンドノードモジュールおよび1つの転送モジュールを有する特定のノード構成に対して本明細書では主として示され説明されているが、様々な他のノード構成が使用されることができる。1つの実施形態では、通信網のノードの少なくとも一部がエンドノードモジュールなしに転送モジュールを含むことができる。1つの実施形態では、通信網のノードの少なくとも一部が転送モジュールなしにエンドノードモジュールを含むことができる。さらにノードは、1つもしくは複数の転送モジュールおよび/または1つもしくは複数のエンドノードモジュールの任意の組合せを含むことができる。EI102、II219、およびNI112の特定の数および構成を含む特定のノード構成に対して主として示され説明されているが、ノードはEI102、II219、およびNI112の他の数および構成を使用して実現されることができる。
【0025】
1つのエンドノードモジュールを含むノードに対して主として示され説明されているが、ノードが複数のエンドノードモジュールを含む1つの実施形態では、ノードの各エンドノードモジュールは固有の識別子を割り当てられることができる。この種の実施形態では、ノードがゼロのエンドノードモジュールまたは複数のエンドノードモジュールを含むことができるので、通信網に関するビットセットを実現するために必要とされるビット位置の数は、ネットワーク内のノード数より少なくてよいか、または多くてよい。例えば、6つのノードのうちの3つがそれぞれ4つのエンドノードモジュールを含み、6つのノードのうちの他の3つだけが転送モジュールを含む6つのノードを有する通信網の場合、ネットワーク内のエンドノードモジュールのそれぞれを一意に識別するために必要とされるビット位置の数は、たとえネットワーク内に6つのノードだけがあるとしても12個である(すなわち、12個のエンドノードモジュールのそれぞれに対して1つのビット位置)。
【0026】
1つの実施形態では、通信網のノードの少なくとも一部がエンドノードモジュールなしに転送モジュールを含むことができる。図3は、エンドノードモジュールなしに1つの転送モジュールを含む1つの例示のノードを示す。図3に示されるように例示のノード300は、6つのエンドノードモジュール(6つのノード、または1つもしくは複数のノードが複数のエンドノードモジュールを含むより少ないノードを使用して実現されることができる)を有するネットワーク内のノードである。例示のノード300は、110000、001000、000100、および000011という関連のビットマスクを有する4つのネットワークインターフェースを含む。本明細書で説明されるように、6つのエンドノードのうちの1つまたは複数向けのパケットが、ビットマスクによりネットワークインターフェースのうちの1つまたは複数を介して送信される。特定の数のネットワークインターフェースおよび特定の数のビット位置を有するビットマスクに対して示され説明されているが、本発明によるノードは、様々な他の数のインターフェースおよび様々な他の数のビット位置を有するビットマスクを含むことができる。
【0027】
1つの実施形態では、通信網のノードの少なくとも一部が転送モジュールなしにエンドノードモジュールを含むことができる。図4は、転送モジュールなしに1つのエンドノードモジュールを含む1つの例示のノードを示す。図4に示されるように、例示のノード400は2つの外部インターフェースおよび1つのネットワークインターフェースを含む。2つの外部インターフェースは、カプセル化モジュールにパケットを供給し、カプセル化解除モジュールからパケットを受信する。例示のノード400は転送モジュールを含まないので、ネットワークインターフェースを介して受信されたパケットは、例示のノード400に配信されるものであるパケットを含む。特定の数の外部インターフェースおよびネットワークインターフェースに対して示され説明されているが、様々な他の構成が実現されることができる。
【0028】
1つの実施形態ではノードは、1つもしくは複数のエンドノードモジュールおよび/または1つもしくは複数の転送モジュールの任意の組合せを含むことができる。図5は、2つのエンドノードモジュールおよび1つの転送モジュールを含む1つの例示のノードを示す。図5に示されるように、例示のノード500は6つのエンドノードモジュール(2つは例示のノード500内に含まれる)を有するネットワーク内のノードである。例示のノード500は、001100および000011というビットマスクを有する2つのネットワークインターフェース、ならびに100000および010000というビットマスクを有する2つの内部インターフェースを含む。2つの内部インターフェースは、それぞれ2つのエンドノードモジュールをサポートする。エンドノードモジュール(および関連の外部インターフェース)、内部インターフェース、転送モジュール、およびネットワークインターフェースの特定の数および構成に対して示され説明されているが、本発明によるノードはこの種のモジュールおよびインターフェースの様々な他の数および構成を含むことができる。
【0029】
図6は本発明の1つの実施形態による方法を示す。具体的には図6の方法600は、外部インターフェースを介して受信されたパケットを処理するための方法を含む。受信したパケットは、1つまたは複数のネットワークインターフェースを介して受信したパケットを送信するために処理される。順次実行するように示され説明されているが、図6の方法600のステップのうちの少なくとも一部は、同時に、または図6に示され説明されている順序と異なる順序で実行されることができる。図6の方法600は、図2に対してよりよく理解されることができる。方法600は、ステップ602で開始し、ステップ604に進む。
【0030】
ステップ604ではパケットがノードで受信される。1つの実施形態では、パケットはノードの外部インターフェースを介して受信される。1つの実施形態では、明確にするために省略されているが、受信されるのではなくパケットはノード内のモジュールから創出することができる。ステップ606では、受信したパケットが振り向けられる1つまたは複数のノードが決定される。受信したパケットが振り向けられる1つまたは複数のノードは、パケットが受信されるインターフェース、パケット内に含まれる情報など、ならびに様々なその組合せにより決定されることができる。
【0031】
ステップ608ではビットセットが生成される。ビットセットは、パケットが振り向けられる1つまたは複数のノードに基づいて生成される。ステップ610では、受信したパケットが生成されたビットセットを使用してカプセル化される。1つのこの種の実施形態ではビットセットは、ラベルとして受信したパケットに付加される。ステップ612ではインターフェースが選択される。インターフェースは、内部インターフェース(例えば、そのノード内に含まれる他のエンドノードモジュールに対する)またはネットワークインターフェース(例えば、他のノードに対する)であってよい。ステップ614では、選択されたインターフェースのビットマスクが取得される。1つの実施形態では選択されたインターフェースのビットマスクは、選択されたインターフェースのインターフェース識別子を使用してメモリから取り出されることができる。
【0032】
ステップ616では、パケットのビットセットが選択されたインターフェースのビットマスクと比較される。1つの実施形態では、パケットのビットセットと選択されたインターフェースのビットマスクの比較はビット単位のAND演算を使用して行われる。本明細書で説明されるように、パケットのビットセットおよびインターフェースのビットマスクは、パケットが振り向けられるノードの1つが、選択されたインターフェースに関連付けられたノードの1つと合致するかどうかを決定するために比較される。
【0033】
ステップ618では決定が、パケットが振り向けられるノードの1つが、選択されたインターフェースに関連付けられたノードの1つと合致するかどうかに関してなされる。パケットが振り向けられるノードの1つが、選択されたインターフェースに関連付けられたノードの1つと合致しない場合、方法600はステップ622に進む。パケットが振り向けられるノードの1つが、選択されたインターフェースに関連付けられたノードの1つと合致する場合、方法600はステップ620に進む。ステップ620では、パケットが選択されたインターフェースを介して送信される。ステップ620から方法600はステップ622に進む。
【0034】
ステップ622では決定が、最終のインターフェースが選択されているかどうかに関してなされる(すなわち、パケットが受信されるノードは、パケットがインターフェースを介して送信されるべきであるかどうかを決定するために考えられなければならない1つもしくは複数の内部インターフェースおよび/または1つもしくは複数のネットワークインターフェースを含むことができる)。最終インターフェースが選択されていない場合、方法600は、他のインターフェースが選択される点であるステップ612に戻る。最終のインターフェースが選択されている場合、方法600はステップ624に進み、そこで方法600は終了する。
【0035】
図7は、本発明の1つの実施形態による方法を示す。具体的には図7の方法は、ネットワークインターフェースを介して受信されたパケットを処理するための方法を含む。受信したパケットは、1つもしくは複数の内部インターフェースおよび/または1つもしくは複数のネットワークインターフェースを介して受信したパケットを送信するために処理される。順次実行されるように示され説明されているが、図7の方法700のステップの少なくとも一部は、同時に、または図7に示され説明されている順序と異なる順序で実行されることができる。図7の方法700は、図2に対してよりよく理解されることができる。方法700は、ステップ702で開始し、ステップ704に進む。
【0036】
ステップ704ではパケットが受信される。受信したパケットは、付加されたビットセットによってカプセル化される。パケットはネットワークインターフェースを介して受信される。ステップ706ではインターフェースが選択される。インターフェースは、内部インターフェース(例えば、そのノードに含まれるエンドノードモジュールに対する)またはネットワークインターフェース(すなわち、ネットワーク内の他のノードに対する)であってよい。ステップ708では、選択されたインターフェースのビットマスクが取得される。1つの実施形態では選択されたインターフェースのビットマスクは、選択されたインターフェースのインターフェース識別子を使用してメモリから取り出されることができる。
【0037】
ステップ710では、パケットのビットセットが選択されたインターフェースのビットマスクと比較される。1つの実施形態では、パケットのビットセットと選択されたインターフェースのビットマスクの比較はビット単位のAND演算を使用して行われる。本明細書で説明されるように、パケットのビットセットおよびインターフェースのビットマスクは、パケットが振り向けられるノードの1つが、選択されたインターフェースに関連付けられたノードの1つと合致するかどうかを決定するために比較される。
【0038】
ステップ712では決定が、パケットが振り向けられるノードの1つが、選択されたインターフェースに関連付けられたノードの1つと合致するかどうかに関してなされる。パケットが振り向けられるノードの1つが、選択されたインターフェースに関連付けられたノードの1つと合致しない(すなわち、ノードのいずれも合致しない)場合、方法700はステップ722に進む。パケットが振り向けられるノードの1つが、選択されたインターフェースに関連付けられたノードの1つと合致する場合、方法700はステップ714に進む。
【0039】
ステップ714では決定が、選択されたインターフェースが内部インターフェースか、それともネットワークインターフェースかに関してなされる。合致の決定が行われた後の明確な決定に対して主として示され説明されているが、1つの実施形態ではインターフェースの種類に関する決定は、インターフェースが選択されるとき、インターフェースのビットマスクが取得されるとき、またはいつか他のときに行われることができる。選択されたインターフェースが内部インターフェースである場合、方法700はステップ716に進む。選択されたインターフェースがネットワークインターフェースである場合、方法700はステップ720に進む。
【0040】
図7に示されるように、インターフェースが内部インターフェースである場合、ステップ716ではカプセル化されたパケットがカプセル化解除される。カプセル化されたパケットは、ビットセットを除去することによってカプセル化解除される。ステップ716から方法700はステップ718に進む。ステップ718ではカプセル化解除されたパケットが1つまたは複数の外部インターフェースを介して送信される。ステップ718から方法700はステップ722に進む。図7に示されるように、インターフェースがネットワークインターフェースである場合、ステップ720ではカプセル化されたパケットが、選択されたネットワークインターフェースを介して送信される。それによって本発明は、受信したパケットが、ノードに関連付けられた1つまたは複数の所期の受信者に配信される、ならびに1つまたは複数の他のノードに送信されることを可能にする(すなわち、本発明は簡略化されたパケットマルチキャストをサポートする)。
【0041】
ステップ722では決定が、最終のインターフェースが選択されているかどうかに関してなされる(すなわち、パケットが受信されるノードは、パケットがインターフェースを介して送信されるべきであるかどうかを決定するために考えられなければならない1つもしくは複数の内部インターフェースおよび/または1つもしくは複数のネットワークインターフェースを含むことができる)。最終のインターフェースが選択されていない場合、方法700は、他のインターフェースが選択される点であるステップ706に戻る。最終のインターフェースが選択されている場合、方法700はステップ724に進み、そこで方法700は終了する。
【0042】
外部インターフェースおよびネットワークインターフェースに対して実現されているように本明細書では主として示され説明されているが、本発明は外部ポートおよびネットワークポートに対して同等に実現されることができる。同様に、本明細書で示され説明されている内部インターフェースは、エンドユーザモジュール上の1つもしくは複数のポート(および/またはカプセル化モジュールおよびカプセル化解除モジュールに関連付けられたポート)および/または転送モジュール上の1つもしくは複数のポートを使用して実現されることができる。この種の実施形態では、転送モジュールに関連付けられたネットワークポートおよび内部インターフェース(および/または関連の内部ポート)は、パケットをルーティングするのに使用されるために構成された関連のビットマスクを有することができる。
【0043】
1に設定されたビット位置は、パケットがそのビット位置に関連付けられたノード(またはエンドノードモジュール)向けであることを示し、0に設定されたビット位置は、パケットがそのビット位置に関連付けられたノード(またはエンドノードモジュール)向けではないことを示すビットセットに対して本明細書では主として示され説明されているが、1つの実施形態では0が、パケットがノード向けであることを示すために使用されることができ、1に設定されたビット位置が、パケットがノード向けではないことを示すために使用されることができる。1に設定されたビット位置は、インターフェース(またはポート)がそのビット位置に関連付けられたノード(またはエンドノードモジュール)に関連付けられていることを示し、0に設定されたビット位置は、インターフェースがそのビット位置に関連付けられたノード(またはエンドノードモジュール)に関連付けられていないことを示すビットマスクに対して本明細書では主として示され説明されているが、1つの実施形態では0に設定されたビット位置が、インターフェースがノードに関連付けられていることを示すために使用されることができ、1に設定されたビット位置が、インターフェースがノードに関連付けられていないことを示すために使用されることができる。ビットセットおよびビットマスクで使用されることができる特定の値に対して説明されているが、様々な他の値の組合せが使用されることができる。
【0044】
本明細書で説明されるように本発明は、IPネットワーク、MPLSネットワーク、イーサネット(登録商標)ネットワークなどの様々な異なるネットワーク、ならびに様々なその組合せで使用されることができる。ビットセットおよびビットマスクの使用は、本発明によるネットワーク内に含まれることができるノード(エンドノード)数を限定することに留意されたい。例えば、典型的なラベルサイズ(ビット数で)は、IPv4に関して32ビット、IPv6に関して128ビット、MPLSに関して20ビット、およびイーサネット(登録商標)に関して48ビットであり、それぞれ多くて32、128、20、および48個のノード(またはエンドノードモジュール)を有するネットワークをもたらす。本発明によるネットワークによってサポートされることができるノード数を増大するためにビットセット(すなわちラベル)および任意選択でビットマスクは、ネットワーク内のノード(エンドノードモジュール)ごとに異なるビット位置を含むこと以外に形式を使用して実現されることができる。
【0045】
ノード(またはエンドノードモジュール)がビットセットまたはビットマスクのビット位置を使用して一意に識別される実施形態に対して本明細書では主として示され説明されているが、他の実施形態ではノード(またはエンドノードモジュール)は、ビットセットまたはビットマスクが使用されていた場合にビットセットまたはビットマスクで設定されるであろうビットを識別する数を使用して一意に識別されることができる。例えば、4つのエンドノードを有するネットワーク内で4つのビット位置を有するビットセットを使用するのではなく、ノードが数1、2、4、および8を使用して一意に識別されることができる。これらの実施形態は情報をコード化するためにより少ないビット(ビットセットおよびビットマスクを使用する実施形態よりも)を必要とし、それによって本発明によって費やされるネットワークリソースを低減し、本発明が実現されることができるネットワークのネットワークサイズを増大する。
【0046】
図8は、本明細書で説明される機能の実行での使用に適した汎用コンピュータの高レベルの構成図を示す。図8に示されるようにシステム800は、プロセッサ素子802(例えば、CPU)、メモリ804(例えば、ランダムアクセスメモリ(RAM)および/またはリードオンリメモリ(ROM))、ルーティング制御モジュール805、および様々な入力/出力装置806(例えば、限定されないがテープドライブ、フロッピー(登録商標)ドライブ、ハードディスクドライブまたはコンパクトディスクドライブを含む記憶装置、受信機、送信機、スピーカ、ディスプレイ、出力ポート、およびユーザ入力装置(キーボード、キーパッド、マウスなど))を備える。
【0047】
本発明は、ソフトウェアおよび/またはソフトウェアとハードウェア(例えば、特定用途向け集積回路(ASIC)、汎用コンピュータまたは他の任意のハードウェア均等物を使用して)の組合せで実現されることができることに留意されたい。1つの実施形態では、このルーティング制御プロセス805は、上述の機能を実現するためにメモリ804内にロードされ、プロセッサ802によって実行されることができる。したがって、本発明のルーティング制御プロセス805(関連のデータ構造を含む)は、コンピュータ可読メディアまたはキャリア(例えば、RAMメモリ、磁気もしくは光学ドライブまたはディスケットなど)上に格納されることができる。
【0048】
本発明の教示を組み込む様々な実施形態が本明細書では詳細に示され説明されているが、当業者はこれらの教示をさらに組み込む多くの他の変形実施形態を容易に考案することができる。

【特許請求の範囲】
【請求項1】
複数のノードを備えるネットワーク内でパケットを送信するための方法であって、
少なくとも1つのノード向けのパケットをカプセル化することであって、パケットが各複数のノードに関連付けられた複数のビット位置を備えるビットセットを使用してカプセル化され、ビットセットのビット位置が、パケットが振り向けられる少なくとも1つのノードのそれぞれを識別するための方法で設定される、カプセル化することと、
パケットのビットセットとインターフェースのビットマスクを比較することであって、ビットマスクが各複数のノードに関連付けられた複数のビット位置を備え、ビットマスクのビット位置がインターフェースから利用できるノードのそれぞれを識別するための方法で設定される、比較することと、
ビットセットとビットマスクの比較がパケットが振り向けられるノードの1つがインターフェースから利用できるノードの1つと同一であることを示す、という決定に応答してインターフェースを介してパケットを転送することと
を備える、方法。
【請求項2】
パケットをカプセル化することが、
パケットが振り向けられる少なくとも1つのノードのそれぞれを決定することと、
パケットが振り向けられる少なくとも1つのノードのそれぞれを識別するための方法でビットセットのビット位置を設定することと
を備える、請求項1に記載の方法。
【請求項3】
パケットが振り向けられる少なくとも1つのノードが、パケットが受信される外部インターフェースまたは受信したパケット内に含まれる情報のうちの少なくとも1つを使用して識別される、請求項1に記載の方法。
【請求項4】
パケットのビットセットとインターフェースのビットマスクを比較することが、
比較結果を生成するためにパケットのビットセットおよびインターフェースのビットマスクを使用してビット単位のAND演算を行うこと
を備える、請求項1に記載の方法。
【請求項5】
パケットが、比較結果の少なくとも1つのビット位置が1に等しいことに応答してインターフェースを介して転送される、請求項4に記載の方法。
【請求項6】
複数のノードを備えるネットワーク内でパケットを送信するための装置であって、
少なくとも1つのノード向けのパケットをカプセル化するための手段であって、パケットが各複数のノードに関連付けられた複数のビット位置を備えるビットセットを使用してカプセル化され、ビットセットのビット位置が、パケットが振り向けられる少なくとも1つのノードのそれぞれを識別するための方法で設定される、カプセル化するための手段と、
パケットのビットセットとインターフェースのビットマスクを比較するための手段であって、ビットマスクが各複数のノードに関連付けられた複数のビット位置を備え、ビットマスクのビット位置がインターフェースから利用できるノードのそれぞれを識別するための方法で設定される、比較するための手段と、
ビットセットとビットマスクの比較がパケットが振り向けられるノードの1つがインターフェースから利用できるノードの1つと同一であることを示す、という決定に応答してインターフェースを介してパケットを転送するための手段と
を備える、装置。
【請求項7】
パケットをカプセル化するための手段が、
パケットが振り向けられる少なくとも1つのノードのそれぞれを決定するための手段と、
パケットが振り向けられる少なくとも1つのノードのそれぞれを識別するための方法でビットセットのビット位置を設定するための手段と
を備える、請求項6に記載の装置。
【請求項8】
パケットが振り向けられる少なくとも1つのノードが、パケットが受信される外部インターフェースまたは受信したパケット内に含まれる情報のうちの少なくとも1つを使用して識別される、請求項6に記載の装置。
【請求項9】
パケットのビットセットとインターフェースのビットマスクを比較するための手段が、
比較結果を生成するためにパケットのビットセットおよびインターフェースのビットマスクを使用してビット単位のAND演算を行うための手段
を備える、請求項6に記載の装置。
【請求項10】
複数のノードを備える通信網内でパケットを送信するための方法であって、
各複数のノードに関連付けられた複数のビット位置を備えるビットセットを備えるパケットをノードの1つで受信することであって、ビットセットのビット位置が、パケットが振り向けられるノードのそれぞれを識別するための方法で設定される、受信することと、
パケットのビットセットとノードの1つのインターフェースのビットマスクを比較することであって、ビットマスクが各複数ノードに関連付けられた複数のビット位置を備え、ビットマスクのビット位置がインターフェースから利用できるノードのそれぞれを識別するための方法で設定される、比較することと、
ビットセットとビットマスクの比較がパケットが振り向けられるノードの1つがインターフェースから利用できるノードの1つと同一であることを示す、という決定に応答してインターフェースを介してパケットを転送することと
を備える、方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2013−9392(P2013−9392A)
【公開日】平成25年1月10日(2013.1.10)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−173186(P2012−173186)
【出願日】平成24年8月3日(2012.8.3)
【分割の表示】特願2009−544039(P2009−544039)の分割
【原出願日】平成19年12月19日(2007.12.19)
【出願人】(596092698)アルカテル−ルーセント ユーエスエー インコーポレーテッド (965)
【Fターム(参考)】