(57)【要約】【課題】マルチキャストパケット処理部の内部処理をフォワーディング部及びパケット複製部に二元化することによって、フォワーディング及びパケット送信部の処理時間の遅延を最小化すること【解決手段】パケットを受信するパケット受信部と、前記パケットがユニキャストパケットの場合にフォワーディングするユニキャストフォワーダーと、受信されたパケットがマルチキャストパケットの場合にマルチキャスティングするマルチキャストフォワーダーと、を備えたフォワーディング部と、前記マルチキャストフォワーダーから出力されるマルチキャストパケットを複製してユニキャスト化するパケット複製部と、前記ユニキャスト化したパケットを前記フォワーディング部に再進入させるパケット分配部と、前記フォワーディング部から出力されるパケットのポートスケジューリングを行い、デキューするスケジューラと、を含む構成とする。【選択図】図１
2006217596.tif 000002
【特許請求の範囲】
【請求項１】
ルータのマルチキャストパケット処理装置において、
ユニキャストパケットまたはマルチキャストパケットを受信するパケット受信部と、
前記パケット受信部に受信されたパケットがユニキャストパケットである場合には、パケットを最終目的地にフォワーディングするユニキャストフォワーダーと、受信されたパケットがマルチキャストパケットである場合には、パケットを各出力インタフェースにマルチキャスティングするマルチキャストフォワーダーと、を備えたフォワーディング部と、
前記マルチキャストフォワーダーから出力されるマルチキャストパケットを必要な数だけ複製してユニキャストパケット化するパケット複製部と、
前記パケット複製部によりユニキャスト化したパケットを前記フォワーディング部に再進入させるパケット分配部と、
前記フォワーディング部を介して出力されるパケット及び複製されたパケットをスケジューリング政策（ポリシー）に応じたポートスケジューリングを行ってデキュー（de-queuing）するスケジューラと、を含むことを特徴とするマルチキャストパケット処理装置。
【請求項２】
前記フォワーディング部は、前記パケット受信部及び前記パケット複製部から送られてくるパケットを、それぞれのキュー（queue）を介して受信し、２つのキュー間にラウンドロビン（round-robin）方式でデキューすることを特徴とする請求項１に記載のマルチキャストパケット処理装置。
【請求項３】
各キューで管理されるエンキュー（enqueued）されたパケットの有無に従い、エンプティ（empty）キューに対してはそのラウンドをスキップし、エンプティでないキューからパケットをデキューすることを特徴とする請求項２に記載のマルチキャストパケット処理装置。
【請求項４】
前記フォワーディング部は、前記パケット受信部から受信されたオリジナルマルチキャストパケットのＱｏＳ（Quality of Service）支援可否、すなわちＱｏＳのイネーブル／ディセイブルによってイングレス（Ingress）ＱｏＳ機能を実行するか否かを決定することを特徴とする請求項１に記載のマルチキャストパケット処理装置。
【請求項５】
前記フォワーディング部は、ＩＰｖ４網を通過させるためにＩＰｖ４ヘッダーのカプセル化が必要なパケットに対して、設定トンネル（configured tunnel）カプセル化の機能を支援することを特徴とする請求項１に記載のマルチキャストパケット処理装置。
【請求項６】
設定トンネルの始端では、トンネル情報テーブルを参照してＩＰｖ６パケットにＩＰｖ４ヘッダーを付加するカプセル化を行うことを特徴とする請求項５に記載のマルチキャストパケット処理装置。
【請求項７】
設定トンネルの終端では、トンネルを通過したパケットのＩＰｖ４ヘッダーを除去する脱カプセル化を行い、ＩＰｖ６パケットに復元することを特徴とする請求項５に記載のマルチキャストパケット処理装置。
【請求項８】
入力されるパケットがＩＰｖ６ユニキャストパケットである場合には、ＩＰｖ６ユニキャストフォワーダーがルックアップテーブルを参照して設定トンネルなのか否かを判断し、設定トンネルであると判断されれば、設定トンネルカプセル化の機能を行って、ＩＰｖ４ヘッダーのカプセル化が行われることを特徴とする請求項７に記載のマルチキャストパケット処理装置。
【請求項９】
入力されるパケットがマルチキャストパケットである場合には、ＭＦＣＥ（Multicast Forwarding Cache Entry）テーブルのマルチキャスト出力インタフェースの中に設定トンネルが設定されているものがあれば、ＩＰｖ６マルチキャストフォワーダーが設定トンネルに設定された出力インタフェース（ＯＩＦ：Output Interface）エントリーに該当するパケットを設定トンネルカプセル化部に伝送してＩＰｖ４ヘッダーのカプセル化を行うことを特徴とする請求項７に記載のマルチキャストパケット処理装置。
【請求項１０】
前記パケット複製部は、前記フォワーディング部から出力された出力インタフェースリスト情報に基づいてパケットを何回複製すべきかを決定することを特徴とする請求項１に記載のマルチキャストパケット処理装置。
【請求項１１】
前記パケット複製部は、パケットの複製が不要な場合（例外（Exception）パケットと出力インタフェースの数の合計が１である場合）、パケット複製部を経由せずに、ＱｏＳ（Quality of Service）イネーブル／ディセイブルフラグ及び出力ポートの種類に応じて設定トンネルカプセル化部またはイーグレス（Egress）ＱｏＳに対してパケット情報を伝送することを特徴とする請求項１０に記載のマルチキャストパケット処理装置。
【請求項１２】
前記パケット複製部は、前記フォワーディング部から伝送された出力インタフェースリスト情報に基づいて複数の出力インタフェースの数だけ新しいチャイルドパケットディスクリプタ（Child Packet Descriptor）を生成し、前記パケット受信部から受信されたオリジナルマルチキャストパケットの情報を含んでいるペアラントパケットディスクリプタ（Parent Packet Descriptor）からパケットサイズ及びオフセット（offset）情報を含むパケット情報を複製することを特徴とする請求項１１に記載のマルチキャストパケット処理装置。
【請求項１３】
前記ペアラントパケットディスクリプタは、複製されたチャイルドパケットディスクリプタの数を管理するために、レファレンスカウントを維持し、該レファレンスカウントは、パケット複製部によって出力インタフェースの数に初期設定されることを特徴とする請求項１２に記載のマルチキャストパケット処理装置。
【請求項１４】
前記パケット複製部は、出力インタフェースリスト内の各々の出力ポートに該当する出力ポート情報、ＱｏＳ（Quality of Service）イネーブル／ディセイブルフラグ、及び各チャイルドパケットディスクリプタのインタフェース種類により決定される処理過程情報を格納することを特徴とする請求項１３に記載のマルチキャストパケット処理装置。
【請求項１５】
前記パケット複製部は、チャイルドパケットディスクリプタを１つ生成する毎に、ペアラントパケットディスクリプタ内に存在するパケット情報だけを複製し、実際（actual）パケットバッファに配列されたペイロード自体の複製は行わないことを特徴とする請求項４に記載のマルチキャストパケット処理装置。
【請求項１６】
前記パケット複製部は、各出力インタフェースに対応するＱｏＳ（Quality of Service）イネーブル／ディセイブルフラグ及びインタフェース種類に基づいて、複製されたマルチキャストパケットをフォワーディング部に再伝送させるか、又は、パケット送信部を介して直ちに送信すべきかを判断することを特徴とする請求項１５に記載のマルチキャストパケット処理装置。
【請求項１７】
前記パケット複製部は、ＱｏＳ（Quality of Service）イネーブル／ディセイブルフラグがイネーブルであるか、あるいはインタフェースの種類が設定トンネルである場合にのみ、マルチキャストパケットをフォワーディング部に再進入させて、該当パケットにトンネル情報をカプセル化又はイーグレスＱｏＳの機能を実行することを特徴とする請求項１６に記載のマルチキャストパケット処理装置。
【請求項１８】
前記パケット複製部は、ＱｏＳ（Quality of Service）イネーブル／ディセイブルフラグがディセイブル状態であって、且つインタフェース種類が一般的なインタフェースである場合、パケット送信部にパケットを直接伝送することを特徴とする請求項１６に記載のマルチキャストパケット処理装置。
【請求項１９】
ルータを提供する段階と、
受信されたパケットの種類がユニキャストパケットであるか、又はマルチキャストパケットであるかを判断する段階と、
前記受信されたパケットがユニキャストパケットである場合には、前記受信されたパケットを該当目的地に送信する段階と、
前記受信パケットがマルチキャストパケットである場合、前記受信されたパケットを多数のユニキャストパケットに変換する段階と、
前記ユニキャストパケットに変換する段階において、ユニキャストパケット化したパケットを前記ルータに再進入させる段階と、を含むことを特徴とするマルチキャストパケット処理方法。
【請求項２０】
ルータを提供する段階と、
受信されたパケットの種類がユニキャストパケットであるか、又はマルチキャストパケットであるかを判断する段階と、
前記受信されたパケットがマルチキャストパケットである場合には、前記受信されたパケットを多数のユニキャストパケットに変換する段階と、
前記ユニキャストパケットに変換する段階において、ユニキャストパケット化したパケットを前記ルータに再伝送する段階と、を含むことを特徴とするマルチキャストパケット処理方法。
【請求項２１】
前記パケット種類を判断する段階において、前記受信されたパケットがユニキャストパケットである場合には、前記受信されたパケットを該当目的地に送信する段階をさらに含むことを特徴とする請求項２０に記載のマルチキャストパケット処理方法。
【請求項２２】
新しいパケットディスクリプタレジスタに、必要なオリジナルパケットディスクリプタアドレスを格納する段階と、
オリジナルパケットディスクリプタに出力インタフェースリストの数を格納する段階と、
出力ポートのインタフェース種類及び、ＱｏＳ（Quality of Service）イネーブル／ディセイブル情報を用いて次の過程を行う処理部を決定する段階と、をさらに含むことを特徴とする請求項２０に記載のマルチキャストパケット処理方法。
【請求項２３】
マルチキャストＱｏＳ（Quality of Service）及び、設定トンネリングの処理のために、フォワーディング部にパケットを再進入させることによって、フォワーディング部内の処理部を再使用する段階と、
パケット複製部で新しいディスクリプタを生成したり、フォワーディング部への再進入させる際、常にパケットの処理順序を出力インタフェースリストの順序に従うようにする段階と、をさらに含むを特徴とする請求項２０に記載のマルチキャストパケット処理方法。
【請求項２４】
パケット複製部から受信された再拒絶（Re-Injected）されたマルチキャストパケットに対して、パケットディスクリプタの種類に従い、別途のイングレス処理過程無しにマルチキャストフォワーダーを経てイーグレス処理を行う段階をさらに含むことを特徴とする請求項２０に記載のマルチキャストパケット処理方法。
【請求項２５】
出力ポートが設定トンネルである場合には、再拒絶されたマルチキャストパケットを受信したマルチキャストフォワーダーが、パケットをトンネルカプセル化部に伝送し、パケットディスクリプタに格納されたトンネルテーブル識別子を用いて特別なルックアップ過程を行わずに、複製のパケットディスクリプタに対応するパケットバッファに格納することによって、出力インタフェースリスト間に共有されるオリジナルパケットペイロード部分の変更を削除する段階をさらに含むことを特徴とする請求項２０に記載のマルチキャストパケット処理方法。
【請求項２６】
出力ポートのＱｏＳ（Quality of Service）がイネーブルされた場合、再拒絶されたマルチキャストパケットを受信したマルチキャストフォワーダーが、パケットをイーグレスＱｏＳ（Quality of Service）に伝送して処理する段階をさらに含むことを特徴とする請求項２５に記載のマルチキャストパケット処理方法。
【請求項２７】
パケット送信部の出力ポートが設定トンネルである場合、マルチキャストレイヤ２ヘッダー情報と、写本のパケットバッファ（duplicated packet buffer）に格納されたトンネルヘッダー情報と、オリジナルパケットバッファに格納されたペイロード部分を再組立する過程を経てパケットを伝送する段階を含むことを特徴とする請求項２０に記載のマルチキャストパケット処理方法。
【請求項２８】
パケット送信部は、複製パケットディスクリプタがフリー(Free)となる毎に、レファレンスカウント（Reference Count）を１ずつ減少させ、０になった時点でオリジナルパケットディスクリプタをフリー（Free）とする段階を含むことを特徴とする請求項２０に記載のマルチキャストパケット処理方法。
【請求項２９】
新しいＭＦＣＥ（Multicast Forwarding Cache Entry）を生成する際に、パケット送信部がパケットを伝送する前に、カプセル化すべきマルチキャストレイヤ２ヘッダー情報を予め準備する段階を含むことを特徴とする請求項２０に記載のマルチキャストパケット処理方法。
【請求項３０】
出力ポート別のＭＴＵ（Maximum Transmission Unit）、インタフェース種類、ＱｏＳ（Quality of Service）イネーブル／ディセイブル情報、マルチキャストレイヤ２テーブル識別子及びトンネルテーブル識別子を予め格納し、別途の資料構造をアクセスしなくても、次の処理段階を決定できるようにしたことを特徴とする請求項２０に記載のマルチキャストパケット処理方法。
【請求項３１】
パケットのタイプに応じて設定トンネルである場合、ＩＰｖ４網を通過するためにＩＰｖ４ヘッダーのカプセル化を行う設定トンネル（configured tunnel）カプセル化段階をさらに含むことを特徴とする請求項２３に記載のマルチキャストパケット処理方法。
【請求項３２】
設定トンネルの始端では、トンネル情報テーブルを参照してＩＰｖ６パケットにＩＰｖ４ヘッダーを付加するカプセル化を行うことを特徴とする請求項３０に記載のマルチキャストパケット処理方法。
【請求項３３】
設定トンネルの終端では、トンネルを通過したパケットのＩＰｖ４ヘッダーを除去する脱カプセル化を行い、ＩＰｖ６パケットに復元することを特徴とする請求項３０に記載のマルチキャストパケット処理方法。
【請求項３４】
入力されるパケットがＩＰｖ６ユニキャストパケットである場合には、ＩＰｖ６ユニキャストフォワーダーがルックアップテーブルを参照して設定トンネルであるか否かを判断し、設定トンネルであると判断すれば、設定トンネルカプセル化を行うことを特徴とする請求項３０に記載のマルチキャストパケット処理方法。
【請求項３５】
入力されるパケットがマルチキャストパケットである場合、ＭＦＣＥ（Multicast Forwarding Cache Entry）テーブルのマルチキャスト出力インタフェースの中の一部が設定トンネルに設定されていれば、ＩＰｖ６マルチキャストフォワーダーが設定トンネルに設定されたＯＩＦエントリーに該当するパケットを設定トンネルカプセル化部に伝送し、ＩＰｖ４ヘッダーのカプセル化を行うことを特徴とする請求項３０に記載のマルチキャストパケット処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチキャストパケット処理に関し、より詳細には、通信装置においてマルチキャストフォワーディング機能とパケット複製機能とを二元化することによって、処理過程を単純化することができると共に、処理速度を向上させることのできるマルチキャストパケット処理装置及びその方法に関する。
【背景技術】
【０００２】
送信者及び受信者を伴うインターネットの伝送方式は、伝送ユニキャスト（unicast）、マルチキャスト（multicast）、及びブロードキャスト（broadcast）に分類することができる。
【０００３】
ユニキャスト伝送方式は、単一の送信者が別の単一の受信者に対してデータを伝送する方式であって、一般的なインターネットアプリケーションプログラムは、全てユニキャスト伝送方式を用いている。
【０００４】
ブロードキャスト伝送方式は、単一の送信者が、同じサブネットワーク上の全ての受信者に対してデータを伝送する方式である。一方、マルチキャスト伝送方式は、単一の送信者が少なくとも１以上の受信者に対してデータを伝送する方式であり、インターネット画像会議などに使用されている。グループ通信のために多数の受信者に対して同じデータを伝送しようとする場合、ユニキャスト伝送方式では伝送しようとするデータパケットを個々の受信者に対して多数回の伝送を行わなくてはならないし、同じパケットの重複伝送により、ネットワーク効率が低下する。そして受信者数が増加するに伴って、このような問題はより一層大きくなる。
【０００５】
そしてマルチキャスト伝送方式を支援する場合、送信者が多数の受信者に一度にメッセージを伝送するためには、伝送するデータを複製する過程が必要である。
【０００６】
即ち、データの重複伝送によりネットワーク資源を浪費する傾向にある。
【０００７】
ネットワークにおいてルーティングを行うルータ装置（単に、「ルータ」と呼ぶ）は、データプレーン（Data Plane）、制御プレーン（Control Plane）及び管理プレーン（Management Plane）に分類される。これらの各機能は、ネットワークプロセッサー及びホストプロセッサーに搭載されて動作する。
【０００８】
前記ネットワークプロセッサーで動作するデータプレーンは、パケットフォワーディング機能及び単純フォワーディングよりも複雑な処理を要求するパケットを、ホストプロセッサーに伝送する機能を担当する。
【０００９】
ホストプロセッサーで動作する制御プレーン及び管理プレーンは、ルーティングプロトコルメッセージプロセシングによるルーティングテーブルの構成及び、運営者による管理機能を担当する。
【００１０】
ネットワークプロセッサーにおける従来のマルチキャストパケット処理過程を説明すると、一般的に、受信されたマルチキャストパケットのソースアドレス及びグループアドレスを用いてマルチキャストフォワーディングテーブルのルックアップ過程によって得られた出力インタフェースＯＩＦ（Output Interface）の個数の分だけ、新しいパケットディスクリプタとこれに対応する１つのパケットバッファを、全てのＯＩＦリストが共有する。そのため、パケットのペイロードを例外的に変更させて処理するには、その処理過程が非常に複雑である。また、トンネリングのためにパケット送信部においてＩＰｖ４ヘッダー情報をパケットにカプセル化／脱カプセル化するには、追加的な処理過程が必要となり、パケット送信部の性能に対して大きな影響を及ぼす。ＱｏＳやトンネルのような例外的な処理を実行するためには、プロセスパイプライン上の他の機能に影響を与えるため、一般的なフォワーディングの実行における種々の問題点の原因となり得る。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明は、前述のような問題点を解決するためになされたものであり、その目的は、マルチキャストパケット処理装置の内部処理をフォワーディング部及びパケット複製部に二元化することによって、フォワーディング及びパケット送信部の処理時間の遅延を最小化することのできるマルチキャストパケットフォワーディング装置及びその方法を提供することにある。
【課題を解決するための手段】
【００１２】
前記目的を達成するために、本発明の一態様に係るマルチキャストパケット処理装置は、ルータのマルチキャストパケット処理装置において、ユニキャストパケットまたはマルチキャストパケットを受信するパケット受信部と、前記パケット受信部に受信されたパケットがユニキャストパケットである場合には、パケットを最終目的地にフォワーディングするユニキャストフォワーダーと、受信されたパケットがマルチキャストパケットである場合には、パケットを各出力インタフェースにマルチキャスティングするマルチキャストフォワーダーと、を備えたフォワーディング部と、前記マルチキャストフォワーダーから出力されるマルチキャストパケットを必要な数だけ複製してユニキャストパケット化するパケット複製部と、前記パケット複製部によりユニキャスト化したパケットを前記フォワーディング部に再進入させるパケット分配部と、前記フォワーディング部を介して出力されるパケット及び複製されたパケットをスケジューリング政策（ポリシー）に応じたポートスケジューリングを行ってデキュー（de-queuing）するスケジューラと、を含むことを特徴とする。
【００１３】
また、本発明の他の態様に係るマルチキャストパケット処理方法は、ルータを提供する段階と、受信されたパケットの種類がユニキャストパケットであるか、又はマルチキャストパケットであるかを判断する段階と、前記受信されたパケットがユニキャストパケットである場合には、前記受信されたパケットを該当目的地に送信する段階と、前記受信パケットがマルチキャストパケットである場合、前記受信されたパケットを多数のユニキャストパケットに変換する段階と、前記ユニキャストパケットに変換する段階において、ユニキャストパケット化したパケットを前記ルータに再進入させる段階と、を含むことを特徴とする。
【００１４】
また、本発明のさらに他の態様に係るマルチキャストパケット処理方法は、ルータを提供する段階と、受信されたパケットの種類がユニキャストパケットであるか、又はマルチキャストパケットであるかを判断する段階と、前記受信されたパケットがマルチキャストパケットである場合には、前記受信されたパケットを多数のユニキャストパケットに変換する段階と、前記ユニキャストパケットに変換する段階において、ユニキャストパケット化したパケットを前記ルータに再伝送する段階と、を含むことを特徴とする。
【発明の効果】
【００１５】
本発明によれば、マルチキャスト処理時、既存のパケット送信部が行ったパケットの重複伝送方式を、マルチキャストフォワーダー及びマルチキャストパケット複製部にその機能を分散配置させることによって、マルチキャストパケットに対する例外処理によって発生したフォワーディング部及びパケット送信部におけるプロセシングパイプラインの中断や遮断（Blocking）現象を無くし、遅延（Delay）及び遅延ばらつき（Jitter）を最小化することによって、全般的なマルチキャストフォワーディング性能を向上させることができる。
【００１６】
また、複製マルチキャストパケットを出力インタフェース（ＯＩＦ）の数だけ生成してユニキャストパケット化し、ＯＩＦリストの順序を維持しながらフォワーディング部に再進入させることによって、各出力ポートのマルチキャストＱｏＳや設定トンネルを一層効果的に支援することができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の属する分野における通常の知識を有する者が、本発明を容易に実施可能なように、添付図面を参照しながら本発明に係る好適な実施形態について詳細に説明する。
【００１８】
図１は、本発明の第１実施形態に係るマルチキャストパケット伝送装置を示す構成図であり、ＩＰｖ６マルチキャストパケットについて重点的に説明するための図である。
【００１９】
なお、図１中に記載した◎は、キュー（queue）を意味する。キューは、一般的に行われている手法で動作するので、ここではその詳しい説明を省略する。
【００２０】
図１に示すように、ルータ装置内のパケットフォワーディングの機能を担当するネットワークプロセッサー１００は、パケットを受信するパケット受信部１１０と、受信したパケットの種類に応じてユニキャストフォワーダー（１２２，１２７）及びマルチキャストフォワーダー（１２８）に該当パケットを伝送するフォワーディング部１２０と、前記フォワーディング部１２０を介して出力されるパケットを格納するために各出力ポート毎に設けられたキューにて、スケジューリング政策（ポリシー）に応じたポートスケジューリングを行うことによってパケットをデキューするスケジューラ１３０と、前記フォワーディング部１２０のマルチキャストフォワーダーから出力されるパケットを複製し、複製されたパケットをフォワーディング部１２０に再進入させるために、フォワーディング部１２０がパケットを受信するためのキューに分配伝送するパケット複製／パケット分配部１４０と、スケジューラ１３０によりデキューされたパケットのルーティング情報をマルチキャストレイヤ２テーブル１６０を参照して獲得し、獲得した情報に含まれる目的地アドレスに対してパケットを送信するパケット送信部１５０と、を含む。なお、本実施形態では、パケット複製／パケット分配部１４０を一つの構成で示しているが、パケット複製部及びパケット分配部を別個の構成とすることもできる。
【００２１】
前記フォワーディング部１２０は、パケット受信部１１０及びパケット複製／パケット分配部１４０からのパケットを、それぞれのキューを介して受信することができ、このとき、キュー間におけるデキューの手法には、一般的にラウンドロビン方式が使用される。各キューにて管理されるエンキューされたパケットの有無（存在）に応じて、エンプティ（empty）キューに対してはそのラウンドをスキップさせ（飛び超え）、エンプティでないキューからパケットをデキューする。
【００２２】
前記フォワーディング部１２０は、パケット受信部１１０及びパケット複製／パケット分配部１４０からのパケットを受信し、受信ポートのＱｏＳ支援の可否、すなわちＱｏＳイネーブル／ディセイブル（Enable/Disable）フラグ（flag）の設定に従い、パケットのＱｏＳがイネーブルであれば（つまりフラグが有効状態に設定されていれば）イングレスＱｏＳ１２１によりイングレス処理を行い、反対にディセイブルであれば（つまりフラグが無効状態に設定されていれば）イングレスＱｏＳ１２１をバイパス（bypass）させる。そして、パケットの種類（ユニキャストまたはマルチキャスト）に基づいて、そのパケットの伝送先を設定する。すなわち、ＩＰｖ６パケットであって、且つユニキャストパケットである場合には、ＩＰｖ６ユニキャストフォワーダー１２７に伝送し、ＩＰｖ６パケットであって、且つマルチキャストパケットである場合には、ＩＰｖ６マルチキャストフォワーダー１２８に伝送し、ＩＰｖ４パケットであって、且つユニキャストパケットである場合には、ＩＰｖ４ユニキャストフォワーダー１２２に伝送する。
【００２３】
一方、ＩＰｖ６−ＩＰｖ４−ＩＰｖ６形態で構成された網において、ＩＰｖ４を介在させて２つのＩＰｖ６装置間での通信を支援するためには、トンネリングの手法が必要である。従って、各網間におけるトンネリング設定のために運営者がトンネリングパラメータ値を設定するための設定トンネル（configured tunnel）機能を提供する。このとき、設定したトンネルの始端側に位置する場合には、トンネル情報テーブル１２５を参照してＩＰｖ６パケットにＩＰｖ４ヘッダーを付加するカプセル化をカプセル化部１２４にて行う。また、設定したトンネルの終端側に位置する場合には、トンネルを通過したパケットのＩＰｖ４ヘッダーを除去する脱カプセル化を脱カプセル化部１２３にて行うことにより、ＩＰｖ６パケットに復元する。
【００２４】
入力されたパケットがＩＰｖ６ユニキャストパケットである場合には、ＩＰｖ６ユニキャストフォワーダー１２７は、ルックアップテーブル（図示せず）を参照して設定トンネルなのか否かを判断し、設定トンネルである場合には、カプセル化部１２４に伝送してＩＰｖ４ヘッダーのカプセル化を行う。
【００２５】
一方、マルチキャストパケットである場合には、ＭＦＣＥ（Multicast Forwarding Cache Entry）テーブル１２９のマルチキャスト出力インタフェース（ＯＩＦ：Output Interface）の中の一部が設定トンネルに設定されていれば、ＩＰｖ６マルチキャストフォワーダー１２８は、設定トンネルに設定されたＯＩＦのエントリーに該当するパケットをカプセル化１２４に伝送して、ＩＰｖ４ヘッダーのカプセル化を行うようにする。
【００２６】
そして、パケットの処理が完了し、スケジューラ１３０に対してパケットを伝送する前に、該当パケットのＱｏＳフラグがイネーブルならばイーグレスＱｏＳ１２６によりイーグレス処理を実行し、該当パケットのＱｏＳフラグがディセイブルであればイーグレス（Egress）ＱｏＳ１２６をバイパスさせる。
【００２７】
以下、前述の構成によるパケットの処理動作を説明する。
【００２８】
まず、パケット受信部１１０に受信されたオリジナルマルチキャストパケットに対して、受信ポートのＱｏＳ支援可否、すなわちパケットのＱｏＳフラグがイネーブルであるか又はディセイブルであるかにより、イングレス（Ingress）ＱｏＳ１２１によるイングレスＱｏＳ処理が実行される。
【００２９】
このとき、ＩＰｖ６マルチキャストＱｏＳを支援するためには、ソースアドレス、グループアドレスなどの情報がＱｏＳ等級規則によって登録されていなければならない。
【００３０】
一方、パケットは、ＩＰヘッダーの検証（Validation）を実行する過程の重複を防止し、ＰＩＭ（Protocol Independent Multicast）レジスタ（register）パケットの処理のために、ＩＰｖ６ユニキャストフォワーダー１２７を経由される。
【００３１】
一般的に、ＰＩＭレジスタパケットは、カプセル化されてラングデビュポイントに送るメッセージである。このとき、ＰＩＭタイプは、“１”に設定され、ＰＩＭヘッダー以後のデータ領域にオリジナルマルチキャストパケットを載せてラングデビュポイントに伝送される。
【００３２】
本発明では、ＰＩＭレジスタパケットがユニキャストパケットであるから、ＩＰｖ６ユニキャストフォワーダー１２７がまずレジスタパケットであることを判断し、そしてマルチキャストに関連したパケットであるので、ＩＰｖ６マルチキャストに伝送して、後続の処理が行われるようにする。
【００３３】
したがって、ＩＰｖ６ユニキャストフォワーダー１２７では、ＰＩＭレジスタパケット、又はＩＰｖ６マルチキャストパケットであると判断すると、パケットをＩＰｖ６マルチキャストフォワーダー１２８に伝送する。
【００３４】
以下、マルチキャストフォワーダーが行う機能を説明する。
【００３５】
第１に、ＰＩＭ（Protocol Independent Multicast）レジスタパケットに対して脱カプセル化（Decapsulation）を行う機能を有する。
【００３６】
第２に、ソースアドレス及びグループアドレスを用いてＭＦＴ（Multicast Forwarding Table）のルックアップ（Ｌｏｏｋｕｐ）を行う機能を有する。
【００３７】
第３に、ＭＦＣＥ（Multicast Forwarding Cache Entry）に格納された入力インタフェース（Incoming Interface）の情報に基づいてＲＰＦ（Reverse Path Forwarding）の妥当性検証（Validation）を行う機能を有する。
【００３８】
以上の過程が正常的に行われると、出力インタフェース（ＯＩＦ）及び例外（Exception）を確認し、パケットの複製が必要だと判断される場合（例えば、例外パケットとＯＩＦの数の合計が２以上である場合）にのみ、出力インタフェースリストをパケット複製／パケット分配部１４０に伝送する。
【００３９】
例外パケットとＯＩＦの数の合計が２以上である場合にパケットを複製する理由は、次の通りである。
【００４０】
ルータがソース専用ルータとして動作する場合、ＰＩＭレジスタパケットをカプセル化する過程及びマルチキャストフォワーディングする過程を共に行わなければならない場合がたびたび発生するが、この場合、ＰＩＭレジスタカプセル化は、上位アプリケーションで行われるので、例外パケットとして処理して、上位階層にフォワーディングし、他の出力インタフェースのみに対して一般的なフォワーディング過程を行ってもよいからである。
【００４１】
一方、パケットの複製が不要な場合（例外パケットとＯＩＦ個数の合計が１である場合）には、パケット複製／パケット分配部１４０を経由せずに、ＱｏＳフラグの状態（イネーブル又はディセイブル）及び出力ポートの種類に応じてトンネル処理部またはイーグレスＱｏＳ１２６にパケット情報を伝送し、次の過程が行われるようにする。
【００４２】
マルチキャストパケット複製／パケット分配部１４０は、ＩＰｖ６マルチキャストフォワーダー１２８から受信されたＯＩＦリスト情報に基づいて複数のＯＩＦの個数だけ新しいチャイルドパケットディスクリプタ（Child Packet Descriptor）を生成し、パケット受信部１１０から受信されたオリジナルマルチキャストパケットの情報を含んでいるペアラントパケットディスクリプタ（Parent Packet Descriptor）からパケットサイズ、オフセット（offset）などのパケット情報を複製する。
【００４３】
そして、ペアラントパケットディスクリプタは、複製されたチャイルドパケットディスクリプタの個数を管理するためのレファレンスカウント（Reference Count）を維持し、レファレンスカウントは、パケット複製／パケット分配部１４０によりＯＩＦの個数に初期に設定される。
【００４４】
ペアラントパケットディスクリプタは、元々受信されたオリジナルマルチキャストパケットの格納場所とサイズ情報、そして複製されたパケットの全体数をレファレンスカウントというフィールドに格納する。
【００４５】
その他、各チャイルドパケットディスクリプタは、ＯＩＦリスト内の各々の出力ポートに該当する出力ポート情報とＱｏＳイネーブル／ディセイブルフラグの状態、インタフェース種類に基づいて決定される次の処理過程情報を格納する。すなわち、一般的なＯＩＦの場合、マルチキャストレイヤ２テーブル１６０のインデックス情報を格納し、ＯＩＦが設定トンネルに設定された場合に、脱カプセル化すべきＩＰｖ４ヘッダー情報が格納されているトンネル情報テーブル１２５のインデックスを格納し、複製されたマルチキャストパケットであることを表示するために、別のフラグを設定し、後続の過程を効果的に行うことができるようにする。
【００４６】
前記チャイルドパケットディスクリプタは、パケットが１つ複製される毎に、ペアラントパケットディスクリプタからオリジナルマルチキャストパケットの格納場所とサイズ情報、そしてペアラントパケットディスクリプタのポインタなどを複製して格納する。
【００４７】
そして、複製されたパケットが伝送される毎に、チャイルドパケットディスクリプタをフリー（free）にし、ペアラントパケットディスクリプタのレファレンスカウントを１ずつ減少させる。仮に、ペアラントパケットディスクリプタのレファレンスカウントが「０」になれば（複製された全てのパケットが伝送されることを意味する）、ペアラントパケットディスクリプタもまたフリー（free）となり、再使用が可能となる。
【００４８】
一方、パケット複製／パケット分配部１４０は、チャイルドパケットディスクリプタを１つ生成する毎に、ペアラントパケットディスクリプタ内に存在するパケット情報のみを複製し、実際（actual）パケットバッファに格納されたペイロード自体の複製作業は行わない。その代わりに、チャイルドパケットディスクリプタは、ペアラントディスクリプタ（Parent Descriptor）のポインタを維持することによって、ペアラントパケットバッファ（Parent Packet Buffer）内に格納されたパケット情報及びペイロード部分に対するアクセスを行うことができる。
【００４９】
また、チャイルドパケットディスクリプタは、１：１で対応するチャイルドパケットバッファ（Child Packet Buffer）を有しており、ここには、設定トンネルである場合に、脱カプセル化すべきＩＰｖ４ヘッダーが別途に格納される。
【００５０】
これは、複数のＯＩＦにより共有されるペアラントパケットバッファ（Parent Packet Buffer）の情報の変化を無くすためである。
【００５１】
また、前記パケット複製／パケット分配部１４０は、各ＯＩＦに該当するＱｏＳイネーブル／ディセイブルフラグの状態及びインタフェース種類に基づき、複製されたマルチキャストパケットを再進入させるべきか、あるいは直ちに送信すべきかを判断する。
【００５２】
ＱｏＳがイネーブルまたはインタフェース種類が設定トンネルである場合にのみ、フォワーディング部１２０にパケットを再進入させてトンネル情報を脱カプセル化するか、イーグレスＱｏＳ機能を行うようにする。
【００５３】
ＱｏＳがディセイブル状態であって、且つインタフェースの種類が一般的なインタフェースである場合、フォワーディング部１２０において追加的な処理を行う過程が不要なので、この場合にはスケジューラ１３０にパケットを伝送し、伝送されたパケットは、スケジューリングに従う順序によりパケット送信部１５０に伝送される。
【００５４】
特に、パケット複製／パケット分配部１４０では、遅延のバラツキを最小化し、パケットの分配処理を保障するために、常にＭＦＣＥテーブル１２９上のＯＩＦリストの順序を維持しながら、新しいディスクリプタを生成し、フォワーディング部１２０に再進入させる。
【００５５】
パケット複製／パケット分配部１４０から再拒絶（Re-injected）され、ユニキャスト化されたマルチキャストパケットは、パケット複製／パケット分配部１４０にて設定されたパケットディスクリプタタイプ（Packet Descriptor Type）のフィールドを確認し、イングレス処理過程を行うことなく、ＩＰｖ６マルチキャストフォワーダー１２８に伝送される。
【００５６】
ＩＰｖ６マルチキャストフォワーダー１２８は、受信されたパケットがパケット複製／パケット分配部１４０から受信された複製パケットであることを別途に設定されたフラグから認識することができ、これより、次のようなイーグレス処理過程を行う準備をする。
【００５７】
仮に、出力ポートが設定トンネルインタフェースである場合は、設定トンネルカプセル化部１２４に伝送され、これを受信した設定トンネルカプセル化１２４は、パケット複製／パケット分配部１４０によりチャイルドディスクリプタ（Child Descriptor）に格納されたトンネルテーブル識別子を用いて別途のルックアップ（Lookup）過程を行うことなく、ＩＰｖ４カプセル化を行う。その後、イーグレスＱｏＳ１２６のイネーブル／ディセイブル可否に応じて、ユニキャストパケット（Unicast Packet）と同様の方式でイーグレスＱｏＳ１２６を介してスケジューラ１３０によりスケジューリングされた順序に従ってパケット送信部１５０に伝送される。
【００５８】
出力ポートが設定トンネルでない場合には、ＩＰｖ６マルチキャストフォワーダー１２８によりＱｏＳイネーブル／ディセイブル可否が決定され、ユニキャストパケットと同様の方式でイーグレスＱｏＳ１２６による処理を経てパケット送信部１５０に伝送される。
【００５９】
パケット送信部１５０は、複製されたマルチキャストパケットを送信した後、チャイルドパケットディスクリプタをフリー（Free）して再使用することができるようにする。このとき、常にペアラントパケットディスクリプタに格納されたレファレンスカウントを１ずつ減少させる。そしてペアラントパケットディスクリプタのレファレンスカウント値が０になった時点で、すなわち伝送されずに残っているチャイルドパケットディスクリプタがなくなったときに、ペアラントパケットディスクリプタもフリー（Free）される。
【００６０】
図２は、本発明の第２実施形態に係るマルチキャストパケット伝送装置を示す構成図である。また、図２は、パケットの種類がＩＰｖ４マルチキャストパケットである場合の処理過程を含む構成を説明するための図である。
【００６１】
図２は、図１の全ての過程と同様であるが、ＩＰｖ４パケットの場合に、ＩＰｖ４マルチキャストフォワーダー１２８に伝送して処理する過程が異なる。したがって、全体動作が図１と同様なので、重複する動作説明を省略する。
【００６２】
図３は、本実施形態を具現するためのマルチキャストパケットルックアップテーブルを示す図である。
【００６３】
図３を参照すると、各ＭＦＣＥが初期構成されるとき、ＯＩＦリスト情報に基づいて各出力ポートのＭＴＵ情報、インタフェース種類（設定トンネルインタフェースまたはノーマルインタフェース）情報、イーグレスＱｏＳのイネーブル／ディセイブル情報及び、送信時に脱カプセル化されるべきＬ２ヘッダー情報を予め構成し、マルチキャスト用Ｌ２テーブル識別子（ＩＤ）を格納することによって、マルチキャストパケット処理のために他の別途の資料構造をアクセスするオーバーヘッドを低減する。
【００６４】
該当出力ポートが設定トンネルである場合にも、既に設定されたトンネリング情報を予め把握し、脱カプセル化されるべきＩＰｖ４ヘッダー情報が格納されたトンネルテーブルＩＤをＭＦＣＥ内に格納することによって、以後にパケット複製部から再進入された複製マルチキャストパケットに対するカプセル化を行う際に別途のルックアップ過程を経由せずに、設定トンネルカプセル化部により速かにＩＰｖ４ヘッダーのカプセル化過程を行うことができる。
【００６５】
また、パケット複製部により複製されて、既にユニキャストパケット化したマルチキャストパケットに対して、ＩＰｖ６マルチキャストＱｏＳ機能を支援するために、特別に既存のユニキャストＱｏＳを修正することなく、利用可能である。
【００６６】
すなわち、ＩＰｖ６マルチキャストパケットのためのパケット分類エントリー（entry）の追加の分だけでマルチキャストＱｏＳ支援が可能である。
【００６７】
以上において説明した本発明は、本発明が属する技術の分野における通常の知識を有する者であれば、本発明の技術的思想を逸脱しない範囲内で、様々な置換、変形及び変更が可能であるので、上述した実施形態及び添付図面の記載に限定されるものではない。
【図面の簡単な説明】
【００６８】
【図１】本発明の第１実施形態に係るマルチキャストパケット伝送装置を示す構成図である。
【図２】本発明の第２実施形態に係るマルチキャストパケット伝送装置を示す構成図である。
【図３】本発明の実施形態に従うマルチキャストパケットルックアップテーブルを示す図である。
【符号の説明】
【００６９】
１００  ネットワークプロセッサー
１１０  パケット受信部
１２０  フォワーディング部
１２１  イングレス(Ingress) ＱｏＳ
１２２  ＩＰｖ４ユニキャストフォワーダー
１２３  設定トンネル脱カプセル化
１２４  設定トンネルカプセル化
１２５  トンネル情報テーブル
１２６  イーグレス(Egress) ＱｏＳ
１２７  ＩＰｖ６ユニキャストフォワーダー
１２８  ＩＰｖ６マルチキャストフォワーダー
１２９  ＭＦＣＥ（Multicast Forwarding Cache Entry）テーブル
１３０  スケジューラ
１４０  パケット複製／パケット分配部
１５０  パケット送信部
１６０  マルチキャストレイヤ２（第２階層）テーブル
【図１】
2006217596.tif 000003
【図２】
2006217596.tif 000004
【図３】
2006217596.tif 000005