(57)【要約】【課題】  スイッチング機能ブロックでのトラフィック量を減少させ、マルチキャストＭＰＬＳノードのパケットの転送効率を向上させる。【解決手段】  本発明は、入力側のＮＰ機能ブロックにおいて、入力されたマルチキャストＭＰＬＳパケットの入力ラベルに基づいて、出力ラベルと出力スイッチアドレスが関連付けられたＭＰＬＳテーブルから出力側のスイッチアドレスを検索し、検索された複数の出力側のスイッチアドレスをマルチキャストＭＰＬＳパケットに付与し、スイッチ機能ブロックに転送し、スイッチ機能ブロックにおいて、マルチキャストＭＰＬＳパケットをコピーして、出力側のスイッチアドレスに対応する出力側のＮＰ機能ブロックに送出する。【選択図】  図１
2005354387.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークインタフェースから入力されるＭＰＬＳの入力ラベルから適切な出力ラベルを検索する機能と、該入力ラベルをポップし、出力ラベルをプッシュする機能を有するネットワークプロセッサ（ＮＰ）機能ブロックと、該ネットワークインタフェースから入力されたパケットを指定した単一／複数のＮＰインタフェースにスイッチングする機能を有するスイッチアーキテクチャと、該ＮＰインタフェースから入力されたパケットを適切な出力ＮＰインタフェースにスイッチするためのスイッチアドレス情報及びマルチキャスト転送機能を有するパケットスイッチ機能ブロックと、を備え、該入力ラベルを複数の出力ラベルにラベル交換することによりＭＰＬＳパケットをポイントツーマルチポイントでラベル転送可能なマルチキャストＭＰＬＳノードのパケット転送部で、ポイントツーマルチポイントのラベルの転送を行なう方法において、
前記ネットワークインタフェースから入力されたマルチキャストＭＰＬＳパケットの入力ラベルに対して、複数の出力ラベルの登録を行なう際に、
入力側のＮＰ機能ブロックにおいて、前記入力されたマルチキャストＭＰＬＳパケットの入力ラベルに基づいて、出力ラベルと出力スイッチアドレスが関連付けられたＭＰＬＳテーブルから出力側のスイッチアドレスを検索し、
検索された複数の前記出力側のスイッチアドレスを前記マルチキャストＭＰＬＳパケットに付与し、前記スイッチ機能ブロックに転送し、
前記スイッチ機能ブロックにおいて、前記出力側のスイッチアドレスが付与されたマルチキャストＭＰＬＳパケットをコピーして、前記出力側のスイッチアドレスに対応する出力側のＮＰ機能ブロックに送出することを特徴とするマルチキャストＭＰＬＳノードのパケット転送方法。
【請求項２】
前記マルチキャストＭＰＬＳパケットが入力側のＮＰ機能ブロックに到達すると、該ＮＰ機能ブロックは、該パケットの入力ラベルに基づいて、前記ＭＰＬＳテーブルから該入力ラベルに対応するｎ個の出力スイッチアドレスを検索する第１のステップと、
前記ＮＰ機能ブロックは、前記第１のステップにおいて前記入力ラベルに対応するｎ個の出力スイッチアドレスが検出されると、前記マルチキャストＭＰＬＳパケットのヘッダの入力ラベルヘッダの前に、該出力スイッチアドレスをプッシュし、前記スイッチ機能ブロックに転送する第２のステップと、
前記スイッチ機能ブロックのスイッチは、転送された前記マルチキャストＭＰＬＳパケットをコピーし、前記出力スイッチアドレスのヘッダ情報に基づいて転送すべきＮＰインタフェースを持つ出力ＮＰ機能ブロックのスイッチアドレスに該マルチキャストＭＰＬＳパケットをそれぞれ転送する第３のステップと、
それぞれの前記出力ＮＰ機能ブロックは、前記スイッチアドレスをポップし、再度、当該出力ＮＰ機能ブロック内のＭＰＬＳテーブルから、前記入力ラベルに対応する出力ラベルを検索し、検索された出力ラベルヘッダをそれぞれの出力ＮＰ機能ブロックでプッシュし、出力インタフェースに前記マルチキャストＭＰＬＳパケットを転送する第４のステップと、
からなる請求項１記載のマルチキャストＭＰＬＳノードのパケット転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチキャストＭＰＬＳ（Multi-Protocol Label Switching）ノードのパケット転送方法に係り、特に、マルチキャストＭＰＬＳノードのテーブルの検索の高速化のためのマルチキャストＭＰＬＳノードのパケット転送方法に関する。
【背景技術】
【０００２】
従来のマルチキャストＭＰＬＳノードのパケット転送技術について、図４、図５を用いて説明する。
【０００３】
図４に示すマルチキャストＭＰＬＳノードのデータ転送部の構成は、入力ラベルを複数の出力ラベルにラベル交換することによりＭＰＬＳパケットをポイントツーマルチポイントでラベル転送可能なマルチキャストＭＰＬＳノードのパケット転送部の構成であり、ネットワークプロセッサ（ＮＰ）を用いて、マルチキャストＭＰＬＳノードのフォワーディングプレーンを設計したものである。フォワーディングプレーンは、入力側ＮＰ機能ブロック１０、パケットスイッチ機能ブロック（ＳＷ）２０、出力側ＮＰ機能ブロック３０から構成される。
【０００４】
入力側ＮＰ機能ブロック１０、出力側機能ブロック３０は、それぞれ、ネットワークプロセッサ（ＮＰ）、ＭＰＬＳラベル処理テーブル（ＴＢＬ）、ネットワークインタフェース（ＩＦ）を有する。ＮＰ１２は、ＩＦ１１から入力されるＭＰＬＳの入力ラベルから適切な出力ラベルを検索する機能を有し、入力ラベルをポップし、出力ラベルをプッシュする。ＭＰＬＳテーブル（ＴＢＬ）１３は、ポイントツーマルチポイント（Ｐ２ＭＰ）の場合、１つの入力ＭＰＬＳラベルに対して複数の出力ＭＰＬＳラベルに関連付ける。
【０００５】
スイッチ機能ブロック２０のスイッチは、入力されたパケットを指定した単一／複数のＮＰインタフェースにスイッチングする機能を有するスイッチアーキテクチャと、入力されたパケットを適切な出力ＮＰインタフェースエースにスイッチするためのスイッチアドレス情報を持つ。さらに、マルチキャスト転送機能を有する。
【０００６】
以下では、入力ラベル８（IN_Lable=8）のパケットを出力ラベル４，５，６の３つのパケットにＰ２ＭＰ化する場合について説明する。
【０００７】
入力ラベルがインタフェース（ＩＦ）１１を介して入力側のＮＰ１２に到達すると（ステップ１０１、Ｙｅｓ）、まず、ＭＰＬＳテーブル１３に対して出力ラベルと出力スイッチアドレスを検索する。例として、ＭＰＬＳテーブル１３から、
OUT_Label4, Switch_Label=#1
OUT_Label5, Switch_Label=#k
OUT_Label6, Switch_Label=#n
が検索される。そして、３つの出力（出力ラベル＝４、スイッチアドレス＝＃１、出力ラベル＝５、スイッチアドレス＝＃ｋ、出力ラベル＝６、スイッチアドレス＝＃ｎ）が検出されると、パケットの入力ラベルヘッダをポップし（ステップ１０２）、３つ分のパケットをコピーし（ステップ１０４）、それぞれのヘッダに出力ラベル・スイッチアドレスをプッシュし、スイッチ機能ブロック２０に転送する。
【０００８】
スイッチ機能ブロック２０では、スイッチアドレスのヘッダ情報を基に転送すべき出力ＮＰ（ネットワークプロセッサ）インタフェースを持つスイッチアドレスにそれぞれ転送する（ステップ１０５）。
【０００９】
各出力ＮＰ機能ブロック３０のＮＰ３２では、スイッチアドレスをポップし（ステップ１０６）、格納されている出力ラベルヘッダで出力ＩＦ（インタフェース）３１にパケットを転送する（ステップ１０７）（例えば、非特許文献１参照）。
【００１０】
しかし、この方法は、パケットをコピー時に、入力側のＮＰで必要なコピー数分だけパケットを用意するため、スイッチング機能ブロックでのトラフィック量が多くなり、転送効率が悪くなる。
【非特許文献１】松島聡、外１名、“ＭＰＬＳ基礎、実現するサービス、そして最新動向”、[online]，平成１４年１２月１８日掲載、WIDE[平成１６年５月１４日検索]、インターネット<URL:http://www.soi.wide.ad.jp/class/20020036/slides/26/>
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、上記従来の方式において、マルチキャストＭＰＬＳパケットをノード内で複数の宛先にコピーして転送する際に、宛先数分のパケットのコピーを入力回線側のネットワークプロセッサ（ＮＰ）で行なっていたため、スイッチ機能ブロックに入力されるトラフィック量が増え、スイッチでの転送効率が低下するという問題がある。また、ネットワークプロセッサの処理能力上の限界があり、パケット転送能力の向上の妨げになっている。
【００１２】
本発明は、上記の点に鑑みなされたもので、スイッチング機能ブロックでのトラフィック量を減少させ、マルチキャストＭＰＬＳノードのパケットの転送効率を向上させることが可能なマルチキャストＭＰＬＳノードのパケット転送方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
図１は、本発明の原理を説明するための図である。
【００１４】
本発明は、ネットワークインタフェースから入力されるＭＰＬＳの入力ラベルから適切な出力ラベルを検索する機能と、該入力ラベルをポップし、出力ラベルをプッシュする機能を有するネットワークプロセッサ（ＮＰ）機能ブロックと、該ネットワークインタフェースから入力されたパケットを指定した単一／複数のＮＰインタフェースにスイッチングする機能を有するスイッチアーキテクチャと、該ＮＰインタフェースから入力されたパケットを適切な出力ＮＰインタフェースにスイッチするためのスイッチアドレス情報及びマルチキャスト転送機能を有するパケットスイッチ機能ブロックと、を備え、該入力ラベルを複数の出力ラベルにラベル交換することによりＭＰＬＳパケットをポイントツーマルチポイントでラベル転送可能なマルチキャストＭＰＬＳノードのパケット転送部で、ポイントツーマルチポイントのラベルの転送を行なう方法において、
ネットワークインタフェースから入力されたマルチキャストＭＰＬＳパケットの入力ラベルに対して、複数の出力ラベルの登録を行なう際に、
入力側のＮＰ機能ブロックにおいて、前記入力されたマルチキャストＭＰＬＳパケットの入力ラベルに基づいて、出力ラベルと出力スイッチアドレスが関連付けられたＭＰＬＳテーブルから出力側のスイッチアドレスを検索し（ステップ１）、
検索された複数の出力側のスイッチアドレスをマルチキャストＭＰＬＳパケットに付与し（ステップ２）、スイッチ機能ブロックに転送し（ステップ３）、
スイッチ機能ブロックにおいて、出力側のスイッチアドレスが付与されたマルチキャストＭＰＬＳパケットをコピーして（ステップ４）、出力側のスイッチアドレスに対応する出力側のＮＰ機能ブロックに送出する（ステップ５）。
【００１５】
また、本発明は、マルチキャストＭＰＬＳパケットが入力側のＮＰ機能ブロックに到達すると、該ＮＰ機能ブロックは、該パケットの入力ラベルに基づいて、ＭＰＬＳテーブルから入力ラベルに対応するｎ個の出力スイッチアドレスを検索する第１のステップと、
ＮＰ機能ブロックは、第１のステップにおいてｎ個の出力スイッチアドレスが検出されると、マルチキャストＭＰＬＳパケットのヘッダの入力ラベルヘッダの前に、該出力スイッチアドレスをプッシュし、スイッチ機能ブロックに転送する第２のステップと、
スイッチ機能ブロックのスイッチは、転送されたマルチキャストＭＰＬＳパケットをコピーし、出力スイッチアドレスのヘッダ情報に基づいて転送すべきＮＰインタフェースを持つ出力ＮＰ機能ブロックのスイッチアドレスにマルチキャストＭＰＬＳパケットをそれぞれ転送する第３のステップと、
それぞれの出力ＮＰ機能ブロックは、スイッチアドレスをポップし、再度、当該出力ＮＰ機能ブロック内のＭＰＬＳテーブルから、入力ラベルに対応する出力ラベルを検索し、検索された出力ラベルヘッダをそれぞれの出力ＮＰ機能ブロックでプッシュし、出力インタフェースにマルチキャストＭＰＬＳパケットを転送する第４のステップと、からなる。
【発明の効果】
【００１６】
本発明は、マルチキャストＭＰＬＳパケットを受信すると、入力側のネットワークプロセッサで出力側のスイッチアドレスを検索し、検索した複数の宛先分の出力側のスイッチアドレスをパケットに付け（この時点でパケットのコピーは行なわない）、この出力側のスイッチアドレスを基にスイッチ機能ブロックで当該パケットをコピーして出力側のネットワークプロセッサへ送出することで、入力されるパケット数を減らし、スイッチの転送効率を向上させると共に、入力側のプロセッサ処理能力による性能ボトルネックを解消することができる。
【発明を実施するための最良の形態】
【００１７】
以下、図面と共に本発明の実施の形態を説明する。
【００１８】
図２は、本発明の一実施の形態におけるマルチキャストＭＰＬＳノードのデータ転送部の構成を示し、図３は、本発明の一実施の形態におけるデータ転送部の動作のシーケンスチャートである。
【００１９】
図２に示すデータプレーン（パケット転送部）の構造は、前述の図４と同様である。
【００２０】
本実施の形態においても、前述の従来の方式と同様に、入力ラベル８（In_Label=8）のデータパケット（マルチキャストＭＰＬＳパケット）を出力ラベル４，５，６の３つのパケットにＰ２ＭＰ化する場合について説明する。
【００２１】
入力ラベルが入力側のNP機能ブロック１０に到達すると（ステップ２０１，Ｙｅｓ）、まず、ＭＰＬＳテーブル１３に対して入力ラベルに対応する出力スイッチアドレスを検索する（ステップ２０２）。そして、３つの出力（スイッチアドレス＝＃１，＃ｋ，＃ｎ）が検出されると（ステップ２０３）、データパケットのヘッダの入力ラベルヘッダの前に、スイッチアドレスをプッシュし、スイッチ機能ブロック２０に転送する（ステップ２０４）。
【００２２】
スイッチ機能ブロック２０のスイッチは、ＮＰ機能ブロック１０から転送されたデータパケットをコピーし、スイッチアドレスのヘッダ情報を基に転送すべき出力ＮＰインタフェースを持つスイッチアドレスにそれぞれ転送する（ステップ２０５）。
【００２３】
各出力NP機能ブロック３０では、スイッチアドレスをポップし（ステップ２０６）、再度、出力ＮＰ機能ブロック３０のＭＰＬＳテーブル３３に対して、入力ラベルに対する出力ラベルを検索する（ステップ２０７）。検索された出力ラベルヘッダをそれぞれの出力ＮＰ機能ブロック３０でプッシュし（ステップ２０８）、出力ＩＦ３１にパケットを転送する（ステップ２０９）。図２の例において、例えば、出力ＮＰ機能ブロック３０のブレード１（Blade1）のMPLSテーブル３３１では、入力ラベル（IN_Label=8）に対応する「OUT_Label=4」が検索されると、出力ラベルヘッダとして「４」がプッシュされる。
【００２４】
上記のように、入力ラベルが入力側のＮＰ機能ブロック１０に到達すると、まず、ＭＰＬＳテーブル１３に対して出力スイッチアドレスを検索し、３つの出力（スイッチアドレス=＃１，＃ｋ，＃ｎ）が検出されると、パケットの入力ラベルヘッダの前に３つ分のスイッチアドレスをプッシュし、スイッチ機能ブロック２０に転送するため、パケットヘッダは増分するもののスイッチ機能ブロックでデータコピーを実施するため、スイッチ転送効率を維持することができる。
【００２５】
さらに、入力側のＮＰ１２で宛先分のパケットコピーを行なわないため、ＮＰ１２の処理負荷を軽減することができる。
【００２６】
なお、本発明は、上記の実施の形態及び実施例に限定されることなく、特許請求の範囲内において種々変更・応用が可能である。
【産業上の利用可能性】
【００２７】
本発明は、マルチキャストＭＰＬＳノード技術に適用可能である。
【図面の簡単な説明】
【００２８】
【図１】本発明の原理を説明するための図である。
【図２】本発明の一実施の形態におけるマルチキャストＭＰＬＳノードのパケット転送部の構成図である。
【図３】本発明の一実施の形態におけるパケット転送部の動作のシーケンスチャートである。
【図４】従来のマルチキャストＭＰＬＳノードのパケット転送部の構成図である。
【図５】従来のパケット転送部の動作のシーケンスチャートである。
【符号の説明】
【００２９】
１０  入力側ネットワークプロセッサ機能ブロック
１１  入力側ネットワークインタフェース
１２  入力側ネットワークプロセッサ
１３  入力側ＭＰＬＳテーブル
２０  スイッチ機能ブロック
３０  出力側ネットワークプロセッサ機能ブロック
３１  出力側ネットワークインタフェース
３２  出力側ネットワークプロセッサ
３３  出力側ＭＰＬＳテーブル
【図１】
2005354387.tif 000003
【図２】
2005354387.tif 000004
【図３】
2005354387.tif 000005
【図４】
2005354387.tif 000006
【図５】
2005354387.tif 000007