(57)【要約】【課題】大規模なマルチキャスト転送システムにおいても、柔軟性に優れる経路制御を提供すること。【解決手段】複数の宛先に到着するマルチキャストパケットをマルチキャスト通信装置１間で転送するマルチキャスト転送システムであって、マルチキャスト通信装置１のパケット転送処理部１５は、受信したマルチキャストパケットの転送先として自身に隣接するマルチキャスト通信装置１のインタフェースが指定されているときには、指定されているインタフェースに対してマルチキャストパケットを転送し、受信したマルチキャストパケットの転送先として自身に隣接するマルチキャスト通信装置１のインタフェースが指定されていないときには、宛先として指定されているマルチキャスト通信装置１に向かうインタフェースに対してマルチキャストパケットを転送することを特徴とする。【選択図】図５
2020109916.tif 000002
【特許請求の範囲】
【請求項１】
複数の宛先に到着するマルチキャストパケットを通信装置間で転送するマルチキャスト転送システムに用いられる前記通信装置であって、
前記通信装置のパケット転送処理部は、
受信したマルチキャストパケットの転送先として自身に隣接する前記通信装置のインタフェースが指定されているときには、指定されているインタフェースに対してマルチキャストパケットを転送し、
受信したマルチキャストパケットの転送先として自身に隣接する前記通信装置のインタフェースが指定されていないときには、宛先として指定されている前記通信装置に向かうインタフェースに対してマルチキャストパケットを転送することを特徴とする
通信装置。
【請求項２】
前記通信装置は、さらに、パケット受信判定部を有しており、
前記パケット受信判定部は、受信したマルチキャストパケットの宛先として自身の前記通信装置が指定されているときには、前記パケット転送処理部によるマルチキャストパケットの転送処理を省略することを特徴とする
請求項１に記載の通信装置。
【請求項３】
前記通信装置は、さらに、迂回経路切替部を有しており、
前記迂回経路切替部は、障害発生時には、受信したマルチキャストパケットの転送先として事前に設定された迂回経路を追加することで、障害発生箇所を迂回するための迂回経路に対してマルチキャストパケットを転送するように前記パケット転送処理部を制御することを特徴とする
請求項１に記載の通信装置。
【請求項４】
受信したマルチキャストパケットには、転送先のインタフェースごとに通過するか否かを示すビットと、宛先の候補となる前記通信装置ごとに宛先とするか否かを示すビットとを順に並べたビット列が含まれており、
前記パケット転送処理部は、マルチキャストパケットから順にビット列を読み出すことにより、マルチキャストパケットを転送するか否かを決定することとし、自身に隣接する前記通信装置のインタフェースのビットを転送済としたときには、宛先として指定されている前記通信装置のビットも併せて転送済とすることを特徴とする
請求項１に記載の通信装置。
【請求項５】
請求項１ないし請求項４のいずれか１項に記載の通信装置が複数台接続されて構成されるマルチキャスト転送システムであって、
前記マルチキャスト転送システムに用いられる前記各通信装置には、マルチキャストパケットの宛先として指定されている前記通信装置に向かうIGP（Interior Gateway Protocol）経路が転送用情報に登録され、
前記マルチキャスト転送システムに用いられる一部の前記通信装置には、マルチキャストパケットの転送先として指定されている前記通信装置のインタフェースを指定したTE（Traffic Engineering）経路が前記転送用情報に登録されており、
前記マルチキャスト転送システムに用いられる前記各通信装置のパケット転送処理部は、前記転送用情報を参照して、マルチキャストパケットを転送するときに経由する自身のインタフェースを特定することを特徴とする
マルチキャスト転送システム。
【請求項６】
複数の宛先に到着するマルチキャストパケットを通信装置間で転送する転送システムに用いられる前記通信装置が実行するマルチキャスト転送方法であって、
前記通信装置のパケット転送処理部は、
受信したマルチキャストパケットの転送先として自身に隣接する前記通信装置のインタフェースが指定されているときには、指定されているインタフェースに対してマルチキャストパケットを転送し、
受信したマルチキャストパケットの転送先として自身に隣接する前記通信装置のインタフェースが指定されていないときには、宛先として指定されている前記通信装置に向かうインタフェースに対してマルチキャストパケットを転送することを特徴とする
マルチキャスト転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、マルチキャスト転送システム、および、マルチキャスト転送方法に関する。
【背景技術】
【０００２】
マルチキャストサービスを大規模ネットワークで実現する際のIPマルチキャスト転送を実現するプロトコルとして、現状PIM-SSM（非特許文献１）が広く用いられている。PIM-SSMでは、視聴者からの視聴要求を示すJoinメッセージを配信サーバ側に流通させておき、そのJoinメッセージが通過した経路上に配信サーバ側からマルチキャストパケットが転送される。
【０００３】
Joinメッセージは、事業者網内の視聴者側に位置するEgressのエッジルータ（以下、出側装置）から、配信サーバ側に位置するIngressのエッジルータ（以下、入側装置）まで流れる。Joinメッセージの経路上の各中継装置は、登録チャンネルごとの経路情報を保持することで、IPマルチキャスト転送の疎通が可能となる。登録チャンネルは、配信サーバのアドレスである「S」と、マルチキャストグループのアドレスである「G」との組み合わせ情報である（Ｓ、Ｇ）stateごとに定義される。
【０００４】
しかし、このPIM-SSMには、以下３点の技術課題が存在する。
（課題１：柔軟性）Joinメッセージの通過経路はアンダーレイ計算経路（以下、IGP（Interior Gateway Protocol）経路）となるため、サービス特性に応じた柔軟な配信ツリー指定が不可である。
（課題２：スケール性）Joinメッセージ通過経路上の全装置で、登録チャンネルごとに経路情報を保持しなければならない。従って、将来的に登録チャンネル数が急増した際、事業者網内の非エッジルータ（中継装置）では、経路情報が集中するほど負荷が増大する。
（課題３：信頼性）網内での経路故障時は、故障検知後にIGP経路が切り替わり、再収束後のIGP経路に沿って各チャンネルのJoinメッセージが再流通して、Joinメッセージ通過経路上の全装置で登録チャンネルが更新されることでIPマルチキャスト転送が疎通回復する。従って、チャンネル数の増加に伴うJoinメッセージ再送出遅延、あるいは網内でのJoinメッセージ消失により、疎通回復までの切替時間が長期化する懸念がある。
【０００５】
このうち、（課題２：スケール性）を解決する技術として、非特許文献２に規定されるBIER（Bit Index Explicit Replication）が提案されている。BIERはPIM-SSMと比較すると、保持経路数に関して高いスケール性を満たす。
【０００６】
図８は、BIERの転送処理を示すネットワーク図である。このネットワーク図では、複数のノードが接続されている。図８では、ノードを示す「ｎ」の後に、各ノードの識別子を示す１文字「Ａ，Ｂ，Ｃ…」を記載する。例えば、「ｎＡ」として図示されるノードＡは、図８の最も左に図示されているノードである。
以下、転送用パケットが入側装置であるノードＡから中継装置（ノードＸ、ノードＤ）を経由し、２つの出側装置（ノードＹおよびノードＺ）に転送されるマルチキャスト通信を元に説明する。なお、ノードＤでは、宛先が複数に分岐する。
【０００７】
図中の「0011」などのパケット内の数字列は、転送用パケット内の宛先を示すデータ構造である転送用ＢＳ（Bit String）を示す。１つの転送用ＢＳには、１ビットごとに１つの出側装置を割り当てており、ビット値「１」が指定した宛先に該当する。
例えば、転送用ＢＳ「0011」は、ビット列の右側から先頭に、第１および第２の出側装置を宛先としているが、第３および第４の出側装置を宛先としないことを示す。このように、転送用ＢＳを構成する宛先ごとのビットを転送用ＢＰ（Bit Position）と呼ぶ。転送用ＢＳ「0011」には、４つの転送用ＢＰが含まれており、そのうちの２箇所に宛先の指定がある。
【０００８】
１つの転送用ＢＰは、ネットワーク内の１つの出側装置に割り当てられる。図８では、ノードＹに第１の出側装置として割り当てた転送用ＢＰを黒い楕円印の「0001(1)」として図示している。つまり、括弧内の「１」は第１の出側装置を示す。同様に、ノードＹに第２の出側装置として割り当てた転送用ＢＰは「0010(2)」である。
入側装置は、宛先の出側装置に対応する転送用ＢＰを指定した転送用ＢＳを転送用パケットヘッダ中に含めて、その転送用パケットを送出する。中継装置は、受信した転送用パケットの転送用ＢＳと、自身の転送テーブル（転送用情報）とを参照して、転送用パケットを出側装置に向けて転送する。
【０００９】
図９は、図８のノードＸが転送処理に使用する転送テーブルである。
転送テーブルは、転送用パケットの転送用ＢＰごとに、転送用パケットの転送処理に用いられる情報として、F-BM（Forward Bit Mask）と、Next Hopとが対応付けられる。
Next Hopは、IGP経路上での自身に隣接する次の転送先ルータを示す。F-BMは、Next Hopに転送する転送用パケットの転送用ＢＳを更新する処理で用いられる。
F-BMは、Next Hopが同一となる転送用ＢＰのビット和である。例えば、転送用ＢＰ「0001(1)」のNext Hop「ノードＤ」と、転送用ＢＰ「0010(2)」のNext Hop「ノードＤ」とは同一なので、この両レコードのF-BMは「0001」と「0010」とのビット和「0011」である。
以下、転送テーブルのNext HopとF-BMとを用いた具体的な転送処理を、図１０で説明する。
【００１０】
図１０は、BIERの転送処理を示すフローチャートである。このフローチャートは自身のノードが上流側から転送用パケットを受信する度に実行される。
Ｓ１０１として、ノードは、転送用パケットの転送用ＢＰが全て値０であるか否かを判定する。Ｓ１０１でＹｅｓなら処理を終了し、ＮｏならＳ１０２に進む。
Ｓ１０２として、ノードは、転送用ＢＳからビット値「１」である最右ビットを取得し、転送テーブルから最右ビットに対応するエントリ（F-BM、Next Hop）を取得する。例えば、転送用ＢＳ「1010」にはビット値「１」が２箇所（右から２ビット目、４ビット目）存在するが、最右ビットは右から２ビット目である。
【００１１】
Ｓ１０３として、ノードは、Ｓ１０２で取得した最右ビットが自身に出側装置として割り当てられているビットである、つまり、転送用パケットが自身宛てであるか否かを判定する。Ｓ１０３でＹｅｓならＳ１０６に進み、ＮｏならＳ１０４に進む。
Ｓ１０６として、ノードは、転送用パケットのコピーし、そのコピー先の転送用パケットからヘッダ部を取り出して残りのデータ部を抽出し、そのデータ部を次プロトコルに受け渡す。また、ノードは、自装置内に保存しているコピー元の転送用パケットについては、その転送用ＢＳ内の自身宛てのビット（Ｓ１０３の最右ビット）を値０でクリアする。そして、処理をＳ１０１に戻す。
【００１２】
Ｓ１０４として、ノードは、転送用パケットをコピーし、そのコピーした転送用パケットの転送用ＢＳをF-BMでマスク（更新）してからNext Hopに転送する。
Ｓ１０５として、ノードは、自装置内に保存している転送用パケットの転送用ＢＳを~F-BMでマスク（更新）する。~F-BMとは、F-BMの各ビットを反転したビット列である。そして、処理をＳ１０１に戻す。
例えば、転送用ＢＳが「0111」でF-BMが「0011」の場合、~F-BMは「1100」となる。よって、Ｓ１０４で転送される転送用パケットの転送用ＢＳは「0011」となり（３ビット目がマスク）、Ｓ１０５で更新される転送用パケットの転送用ＢＳは「0100」となる（１，２ビット目がマスク）。
【００１３】
以上、図８〜図１０を参照して、BIERを説明した。ここで、BIERに用いられる転送テーブルの作成方法を説明する。
出側装置に割り当てた転送用ＢＰは網内で広告され、中継装置にて各転送用ＢＰに対応する経路情報が転送テーブル内に生成される。この際、中継装置は出側装置数分の経路情報のみ保持すればよい。
よって、転送テーブルのデータ量は網内での登録チャンネル数に非依存であるため、将来的に登録チャンネル数が急増した際も、中継装置での負荷増大の懸念がない。つまり、BIERは保持経路数に関して高いスケール性を示す方式である。
【００１４】
一方、マルチキャスト転送において、転送用パケットの宛先だけでなく、その宛先に向かう中継装置での通過経路を指定したいというニーズもある。通過経路を指定することで、トラヒック制御機能や、障害発生時の高速切替機能が実現できるためである。
そこで、非特許文献３、４において、BIERにトラヒック制御機能、高速切替機能を付加したBIER-TE（Traffic Engineering）が提案されている。
【００１５】
図１１は、BIER-TEの転送処理を示すネットワーク図である。図８で説明したBIERのネットワーク図と比較すると、転送用ＢＰを割り当てる先が出側装置から各ルータの装置インタフェース（IF:Interface）に置き換わっている。
例えば、ノードＸにはノードＡ，Ｂ，Ｄそれぞれと接続するIFが合計３箇所存在するが、そのうちのノードＡとのIFに対して転送用ＢＰ「１」が割り当てられる（黒楕円に付した吹き出しを参照）。転送用ＢＰ「１」とは、転送用ＢＳの１ビット目を示す。
【００１６】
入側装置であるノードＡは、配信ツリーで通過するIFを転送用ＢＳ中に記述することで、明示的に転送用パケットの配信経路をエンドツーエンドで指定し、柔軟な経路制御が可能となる。例えば、図示した転送用ＢＳ「11111011」のパケットは、ビット列の右側から第１，２，４，５，６，７，８のIFを通過する配信経路が指定されている。
中継装置は、自身に隣接するIFに割り当てられた転送用ＢＰに関する経路情報を管理し、当該経路情報と、入力した転送用パケットヘッダの転送用ＢＳとを照らし合わせつつ転送用パケットを隣接するIFに転送する。
【００１７】
図１２は、図１１のノードＸが転送処理に使用する転送テーブルである。転送テーブルは、転送用ＢＰを示すBit Positionと、その転送用ＢＰに該当する転送用パケットに対する次処理内容を示すAdjacencyとの組を管理する。Adjacency「forward_connected(転送先IF)」とは、自身に隣接する転送先IFに転送用パケットを転送する旨を示す。
【００１８】
図１３は、図１１のノードＹが転送処理に使用する転送テーブルである。ここでは、Adjacencyとして「local_decap()」が設定されている。この設定は、自身が出側装置であることを示すので、BIER-TE用のヘッダを取り外し、次のプロトコル（例、IP等）に転送用パケットを受け渡す旨を示す。
【００１９】
図１４は、BIER-TEの転送処理を示すフローチャートである。
Ｓ２０１として、ノードは、隣接ノードまたは隣接リンクの故障を検知したか否かを判定する。Ｓ２０１でＹｅｓならＳ２０２に進み、ＮｏならＳ２０３に進む。
Ｓ２０２として、ノードは、隣接ノードまたは隣接リンクの保護設定として事前に計算された迂回経路を、転送用パケットのヘッダ内の転送用ＢＳに追加する。つまり、ノードは、転送用パケットに指定された正常時の経路を迂回経路で上書きすることで、故障した隣接ノードまたは隣接リンクを回避するように経路の高速切替が可能となる。
【００２０】
Ｓ２０３として、ノードは、転送用パケットを参照用パケットとしてコピーし、コピーした参照用パケットの参照用ＢＳから、自身と隣接しない（非隣接の）参照用ＢＰをクリアする。なお、転送用パケットのパケットヘッダ内に転送用ＢＳが存在し、その転送用ＢＳが複数の転送用ＢＰから構成されるのと同様に、参照用パケットのパケットヘッダ内に参照用ＢＳが存在し、その参照用ＢＳが複数の参照用ＢＰから構成される。
この参照用パケットは、自装置内で転送処理済みの参照用ＢＰと、未処理の参照用ＢＰとを一時的な状態として記憶するために用いられる。
Ｓ２０４として、ノードは、転送用パケットの転送用ＢＳ内の自身と隣接する転送用ＢＰをクリアする。
【００２１】
以下、Ｓ２１１〜Ｓ２１５は参照用パケットの参照用ＢＳを更新しつつ、適宜転送用パケットを転送するループ処理である。
Ｓ２１１として、ノードは、参照用ＢＳを構成する参照用ＢＰの値が全て０か否かを判定する。Ｓ２１１でＹｅｓなら今回の転送用パケットに関する処理を終了し、ＮｏならＳ２１２に進む。
Ｓ２１２として、ノードは、参照用ＢＳからビット値「１」である最右ビットを取得し、その取得した最右ビットをクリアするように参照用ＢＳに書き出す。そして、ノードは、転送テーブルから最右ビットに対応するエントリ（Bit Position、Adjacency）を取得する。
Ｓ２１３として、ノードは、取得したAdjacencyがlocal_decap()であるか否かにより、転送用パケットが自身宛てか否かを判定する。Ｓ２１３でＹｅｓならＳ２１４に進み、ＮｏならＳ２１５に進む。
【００２２】
Ｓ２１４として、ノードは、転送用パケットをコピーし、そのコピーした転送用パケットのヘッダを取り出し、次プロトコルに受け渡す。
Ｓ２１５として、ノードは、転送用パケットをコピーし、そのコピーした転送用パケットをテーブル指定のforward_connected IFから転送する。Ｓ２１４，Ｓ２１５の処理の後は、Ｓ２１１に戻る。
【００２３】
以上、図１１〜図１４を参照して、BIER-TEを説明した。任意の配信ツリーを指定可能なBIER-TEでは、BIERと比較して柔軟なトラヒック制御と、経路故障時の高速切替制御とが可能となる。また、中継装置の保持する経路情報は自身に隣接するIF数となり、登録チャンネル数には非依存となる。
なお、BIER-TEでは、BIERよりも転送用ＢＳに割り当てる転送用ＢＰのビット数が増加するので、転送用ＢＳを収容するヘッダ情報が肥大化する。ヘッダ情報が大きくなったしわよせとしてデータ部のペイロードが縮小してしまうので、ユーザデータの転送効率が低下してしまう。
ここで、非特許文献５には、割当て可能な転送用ＢＰ数の上限を制限する仕様が記載されている。
【先行技術文献】
【非特許文献】
【００２４】
【非特許文献１】H. Holbrook、他、「Source-Specific Multicast for IP」、［online］、IETF RFC 4607, Aug. 2006、［2018年12月21日検索］、インターネット〈URL：https://tools.ietf.org/html/rfc4607〉
【非特許文献２】IJ. Wijnands、他、「Multicast Using Bit Index Explicit Replication (BIER)」、［online］、IETF RFC 8279, Nov. 2017、［2018年12月21日検索］、インターネット〈URL：https://tools.ietf.org/html/rfc8279〉
【非特許文献３】T. Eckert、他、「Traffic Engineering for Bit Index Explicit Replication (BIER-TE)」、［online］、IETF Intrenet-Draft draft-ietf-bier-te-arch-01, Oct. 2018, work in progress、［2018年12月21日検索］、インターネット〈URL：https://tools.ietf.org/html/draft-ietf-bier-te-arch-01〉
【非特許文献４】T. Eckert、他、「Protection Methods for BIER-TE」、［online］、IETF Internet-Draft draft-eckert-bier-te-frr-03, Mar. 2018, work in progress、［2018年12月21日検索］、インターネット〈URL：https://tools.ietf.org/html/draft-eckert-bier-te-frr-03〉
【非特許文献５】IJ. Wijnands、他、「Encapsulation for Bit Index Explicit Replication (BIER) in MPLS and Non-MPLS Networks」、［online］、IETF RFC 8296, Jan. 2018、［2018年12月21日検索］、インターネット〈URL：https://tools.ietf.org/html/rfc8296〉
【発明の概要】
【発明が解決しようとする課題】
【００２５】
以上述べたように、BIERは、網内の出側装置にのみ転送用ＢＰを割り当てる仕組みで、保持経路数に関するスケール性に優れる。BIER-TEは、任意の配信ツリーを指定するために、網内の全装置のIFに転送用ＢＰを割り当てる仕組みで、経路制御の柔軟性に優れる。
換言すると、BIERでは、出側装置に向かう中継装置を指定することはできず、BIER-TEでは、保持経路数を大規模化することが困難である。
つまり、BIERとBIER-TEとは、長所と短所とが相反する関係である。
【００２６】
そこで、本発明は、大規模なマルチキャスト転送システムにおいても、柔軟性に優れる経路制御を提供することを、主な課題とする。
【課題を解決するための手段】
【００２７】
前記課題を解決するために、本発明の通信装置は、以下の特徴を有する。
本発明は、複数の宛先に到着するマルチキャストパケットを通信装置間で転送するマルチキャスト転送システムに用いられる前記通信装置であって、
前記通信装置のパケット転送処理部が、
受信したマルチキャストパケットの転送先として自身に隣接する前記通信装置のインタフェースが指定されているときには、指定されているインタフェースに対してマルチキャストパケットを転送し、
受信したマルチキャストパケットの転送先として自身に隣接する前記通信装置のインタフェースが指定されていないときには、宛先として指定されている前記通信装置に向かうインタフェースに対してマルチキャストパケットを転送することを特徴とする。
【００２８】
これにより、転送先として指定されているインタフェースに対してマルチキャストパケットを優先的に転送することで、柔軟なトラヒック制御が可能となる。また、宛先として指定されている通信装置に対してマルチキャストパケットを転送することで、通信装置の指定に要するパケットヘッダのデータ量は少なくて済み、高い経路スケール性が可能となるとともに転送効率の低下を抑制できる。よって、柔軟なトラヒック制御が可能なIPマルチキャスト転送を、高い経路スケール性によって大規模なネットワークに適用できる。
つまり、マルチキャストパケットの次ホップを決定する情報が、転送先のインタフェースと、宛先の通信装置との双方を利用できるので、全ての転送先のインタフェースに転送先の情報を割り当てる必要がなくなる。よって、転送先のインタフェースを指定するための経路識別子を、ネットワーク内に（網羅的では無く）部分的に割り当てることができる。
【００２９】
本発明は、前記通信装置が、さらに、パケット受信判定部を有しており、
前記パケット受信判定部が、受信したマルチキャストパケットの宛先として自身の前記通信装置が指定されているときには、前記パケット転送処理部によるマルチキャストパケットの転送処理を省略することを特徴とする。
【００３０】
これにより、パケット受信判定部をパケットイン直後に実施することで、出側装置へパケットが到達した後の意図しない転送を防止することができる。
【００３１】
本発明は、前記通信装置が、さらに、迂回経路切替部を有しており、
前記迂回経路切替部が、障害発生時には、受信したマルチキャストパケットの転送先として事前に設定された迂回経路を追加することで、障害発生箇所を迂回するための迂回経路に対してマルチキャストパケットを転送するように前記パケット転送処理部を制御することを特徴とする。
【００３２】
これにより、部分的な保護設定を網内に事前に用意することで、経路故障時の高速切替が実現できる。
【００３３】
本発明は、受信したマルチキャストパケットには、転送先のインタフェースごとに通過するか否かを示すビットと、宛先の候補となる前記通信装置ごとに宛先とするか否かを示すビットとを順に並べたビット列が含まれており、
前記パケット転送処理部が、マルチキャストパケットから順にビット列を読み出すことにより、マルチキャストパケットを転送するか否かを決定することとし、自身に隣接する前記通信装置のインタフェースのビットを転送済としたときには、宛先として指定されている前記通信装置のビットも併せて転送済とすることを特徴とする。
【００３４】
これにより、転送先のインタフェースが指定されたときでも、宛先の通信装置への転送を行ってしまうような不都合を防止できる。
【００３５】
本発明は、前記通信装置が複数台接続されて構成されるマルチキャスト転送システムであって、
前記マルチキャスト転送システムに用いられる前記各通信装置には、マルチキャストパケットの宛先として指定されている前記通信装置に向かうIGP経路が転送用情報に登録され、
前記マルチキャスト転送システムに用いられる一部の前記通信装置には、マルチキャストパケットの転送先として指定されている前記通信装置のインタフェースを指定したTE経路が前記転送用情報に登録されており、
前記マルチキャスト転送システムに用いられる前記各通信装置のパケット転送処理部が、前記転送用情報を参照して、マルチキャストパケットを転送するときに経由する自身のインタフェースを特定することを特徴とする。
【００３６】
これにより、TE経路は網内に部分的に設定可能なので、網内の必要箇所に対して重点的にTE経路を設定できる。
【発明の効果】
【００３７】
本発明によれば、大規模なマルチキャスト転送システムにおいても、柔軟性に優れる経路制御を提供することができる。
【図面の簡単な説明】
【００３８】
【図１】本実施形態に係わるIGP経路での転送処理を示すネットワーク図である。
【図２】本実施形態に係わるTE経路での転送処理を示すネットワーク図である。
【図３】本実施形態に係わる故障リンクを回避する場合の迂回経路を示すネットワーク図である。
【図４】本実施形態に係わる図３の迂回経路に沿った転送処理を示すネットワーク図である。
【図５】本実施形態に係わるマルチキャスト通信装置の構成図である。
【図６】本実施形態に係わる転送テーブルの構成図である。
【図７】本実施形態に係わるマルチキャスト通信装置の転送処理を示すフローチャートである。
【図８】BIERの転送処理を示すネットワーク図である。
【図９】図８のノードＸが転送処理に使用する転送テーブルである。
【図１０】BIERの転送処理を示すフローチャートである。
【図１１】BIER-TEの転送処理を示すネットワーク図である。
【図１２】図１１のノードＸが転送処理に使用する転送テーブルである。
【図１３】図１１のノードＹが転送処理に使用する転送テーブルである。
【図１４】BIER-TEの転送処理を示すフローチャートである。
【発明を実施するための形態】
【００３９】
以下、本発明の一実施形態について、図面を参照して詳細に説明する。
【００４０】
本実施形態のマルチキャスト転送システムは、同じ転送システム上に、BIERで用いられるようなIGP経路と、BIER-TEで用いられるようなTE経路とを併存するように構築することを主な特徴とする。そのため、転送用パケットの転送用ＢＳには、IGP経路の転送用ＢＰと、TE経路の転送用ＢＰとの両方が含まれる。
以下、この２種類の経路上での転送処理を以下の３パターンとして例示する。
（図１のパターン１）入側装置〜出側装置までIGP経路で転送する場合。この場合、転送用ＢＳには、IGP経路の出側装置の転送用ＢＰのみが通過点として指定される。
（図２のパターン２）入側装置〜出側装置までTE経路で転送する場合。この場合、転送用ＢＳには、IGP経路の出側装置の転送用ＢＰに加え、通過する全てのTE経路のIFが通過点として指定される。
（図３，４のパターン３）パターン１で転送中に故障リンクを回避する場合。この場合、転送用ＢＳではIGP経路の出側装置のみを指定し、故障リンクの直上ノードにて迂回路のTE経路を追記する。
【００４１】
図１は、パターン１として、IGP経路での転送処理を示すネットワーク図である。
入側装置であるノードＡは、２つの出側装置（第５ビット、第６ビット）を宛先（値「１」）とする転送用ＢＳ「110000」の転送用パケットを送信する。このとき、ノードＡは、ノードＹ宛ての転送用ＢＳ「010000」と、ノードＺ宛ての転送用ＢＳ「100000」とに分岐（コピー）してそれぞれ転送する。そして、ノードＹ宛ての転送用パケットは、ノードＡ→Ｂ→Ｄ→ＹというIGP経路でノードＹに届く。ノードＺ宛ての転送用パケットは、ノードＡ→Ｃ→Ｅ→ＺというIGP経路でノードＺに届く。
つまり、パターン１では、転送用ＢＳの第１ビット〜第４ビットのTE経路が使われないので、図８のBIERと同じ転送結果となる。
【００４２】
図２は、パターン２として、TE経路での転送処理を示すネットワーク図である。
入側装置であるノードＡは、２つの出側装置（第５ビット、第６ビット）を宛先とする転送用ＢＰに加え、TE経路の全通過IF（第１ビット〜第４ビット）の転送用ＢＰを指定した転送用ＢＳ「111111」の転送用パケットを送信する。
中継装置であるノードＡ，Ｂ，Ｄは、それぞれ受信した転送用パケットを、転送用ＢＳのTE経路に従って転送する。ここで、TE経路を指定して転送する場合は、指定経路に沿ってIF単位でホップバイホップの転送をしつつ、通過IFに対応するビットを順次クリアする。
出側装置であるノードＹ，Ｚは、IGP経路として指定された自装置の転送用ＢＰにより、自身が転送用パケットの宛先であると認識する。
【００４３】
このように、図２のパターン２では、入側装置〜中継装置〜出側装置というエンドツーエンドでのTE経路での指定がなされている点は、BIER-TEと共通する。一方、BIER-TEとの違いとして、図２のパターン２では、図１と同様に全ルータにIGP経路が配布されているので、TE経路として転送用ＢＰが割り当てられていないルータが存在してもよい点が挙げられる。換言すると、従来のBIER-TEでのビット割当はネットワーク全体で網羅的であるが、本実施形態でのビット割当は部分的である。
例えば、図２では、ノードＣ，ＥにはTE経路の転送用ＢＰが割り当てられていないが、ノードＡ→Ｃ→Ｅ→ＺというIGP経路で出側装置（第６ビット）を宛先とする転送用パケットを転送することができる。
【００４４】
このように、本実施形態では、トラヒック制御が必要な箇所に対して部分的に転送用ＢＰを割り当てることができる。よって、大容量映像配信などの特定サービスはTE経路で転送し、その他の一般的なデータ配信サービスではIGP経路で転送するなど、サービス特性に応じたトラヒック制御が実現できる。
なお、図２のTE経路では、大容量映像データによる大量の消費帯域を考慮して、ノードＤという下流側での分岐を行うことで、ネットワーク全体の消費帯域を節約している。
【００４５】
図３は、パターン３として、故障リンクを回避する場合の迂回経路を示すネットワーク図である。
故障発生前の通常状態では、図１のパターン１と同様に、ノードＡから２つに分岐したパケット転送が行われていたとする。そして、ノードＢは、ノードＤとの間の隣接リンクの故障を検知したとする。また、故障発生前に、ノードＢ→Ｃ→Ｅ→Ｄという迂回経路が第１ビット〜第３ビットのTE経路として用意されていたとする。つまり、故障時の影響が大きいノードＢ，Ｄ間への部分的な保護設定が迂回経路として用意されている。
【００４６】
図４は、図３の迂回経路に沿った転送処理を示すネットワーク図である。
ノードＢは、ノードＹ宛ての転送用パケット（転送用ＢＳ「010000」）を受信すると、迂回経路（「000111」）を追加した転送用パケット（転送用ＢＳ「010111」）を、第１ビットに該当するノードＣのIFに転送する。
ノードＣは、通過した第１ビットをクリアした転送用パケット（転送用ＢＳ「010110」）を、次の第２ビットに該当するノードＥのIFに転送する。同様に、ノードＥでは通過した第２ビットがクリアされ、ノードＤでは通過した第３ビットがクリアされる。これにより、ノードＢ→Ｄ間の迂回が実現される。
一方、ノードＺ宛ての転送用パケットはIGP経路上でノードＢ，Ｄ間を通過しないため迂回が不要となる。よって、ノードＺ宛ての転送用パケットは、図１と同様に、ノードＡ→Ｃ→Ｅ→ＺというIGP経路でノードＺに届く。
【００４７】
図５は、マルチキャスト通信装置１の構成図である。
マルチキャスト通信装置１（入側装置、中継装置、出側装置）は、それぞれＣＰＵ（Central Processing Unit）と、メモリと、ハードディスクなどの記憶手段（記憶部）と、ネットワークインタフェースとを有するコンピュータとして構成される。
このコンピュータは、ＣＰＵが、メモリ上に読み込んだプログラム（アプリケーションや、その略のアプリとも呼ばれる）を実行することにより、各処理部により構成される制御部（制御手段）を動作させる。
【００４８】
マルチキャスト通信装置１は、処理部として、パケット受信部１１と、パケット受信判定部１２と、高速切替部（迂回経路切替部）１３と、事前処理部１４と、パケット転送処理部１５と、パケット送信部１６と、TE広告部２５と、IGP広告部２６とを有する。
マルチキャスト通信装置１は、記憶部として、迂回経路格納部２１と、転送用パケット格納部２２と、参照用パケット格納部２３と、転送テーブル２４とを有する。
【００４９】
パケット受信部１１は、他装置から転送用パケットを受信する。パケット受信判定部１２は、受信した転送用パケットが自装置宛てか否かを判定する。
高速切替部１３は、周囲に故障が発生した時には、迂回経路格納部２１に登録されている故障箇所の迂回経路を転送用パケットに書き込む。事前処理部１４は、転送用パケット格納部２２内の転送用パケットを参照用パケット格納部２３内の参照用パケットとしてコピーすることで、１つの転送用パケットを複数のNext Hopに転送する準備を行う。
パケット転送処理部１５は、図６の転送テーブル２４を参照して、転送用パケットの転送先（Next Hop）を決定する。パケット送信部１６は、決定された転送先に従い転送用パケットを外部に送信する。
【００５０】
TE広告部２５は、BIER-TEの広告方式に従って、隣接するIF間で、各IFに手動で割り当てられたTE経路のビット（転送用ＢＰ）を自律的に広告し、その結果を転送テーブル２４に登録する。また、TE広告部２５は、隣接するIF間で死活監視を行う。
IGP広告部２６は、BIERの広告方式に従って、各出側装置に手動で割り当てられたIGP経路のビット（転送用ＢＰ）を自律的に広告し、その結果を転送テーブル２４に登録する。これにより、中継装置は網全体の出側装置に対応するIGP経路を保持することができ、各出側装置への疎通は確保される。IGP広告部２６も、網内で死活監視を行う。
【００５１】
図６は、転送テーブル２４の構成図である。
転送用パケットの転送用ＢＳには、IGP経路の転送用ＢＰと、TE経路の転送用ＢＰとの両方が含まれる。そのため、転送テーブル２４には、TE経路２４ａと、IGP経路２４ｂとが登録される。TE経路２４ａは隣接するIFのエントリのみを保持し、IGP経路２４ｂは全ての出側装置のエントリを保持する。
【００５２】
１つの転送用ＢＳには、先頭から（右側から）６ビットのTE用ビットと、末尾から２ビットのIGP用ビットとが割り当てられる。転送用パケットの複製転送時は最右ビットから順次参照するため、先頭に配置したTE用ビットが優先的に参照される。これにより、IGP用ビットの参照順序が後側になるので、中継装置での意図しないIGP経路の転送を防止できる。
また、図６では、出側装置が２台存在することを想定して、IGP用ビットのビット長を２ビットとした。一方、新たに増設した出側装置にIGP用ビットを割り当てる場合には、IGP用ビットのビット長を３ビットに増やし、TE用ビットを５ビットに減らすことで、TE用ビットとIGP用ビットとの境界位置を変更することもできる。つまり、両ビットの長さは動的に変化することもある。
【００５３】
転送テーブル２４は、転送用ＢＳ内の転送用ＢＰを示す「Bit Position」列ごとに、その転送用パケットの転送処理に用いられるF-BMと、転送用パケットの転送先を示すNext Hopとに加え、新たに、参照用パケットのマスク処理に用いられるR-BM（Reset Bit Mask）が対応づけられている。以下、転送テーブル２４の各要素について、TE経路２４ａとIGP経路２４ｂとに分けて説明する。
【００５４】
TE経路２４ａを作成するための広告処理を、以下の（手順１１）〜（手順１４）に示す。
（手順１１）広告側のTE広告部２５は、IFに割当てられたTE用ビットを同一セグメント内（あるIFが接続するL2ドメイン内）で、受信側のTE広告部２５に広告する。
（手順１２）受信側のTE広告部２５は、広告元のIFをNext Hopとし、広告されたTE用ビットと対応付けて自身の転送テーブル２４に登録する。
（手順１３）受信側のTE広告部２５は、自身の転送テーブル２４に登録されたTE用ビット（＝自身に隣接するIFに割り当てられたTE用ビット）を全てクリアするようにF-BMを登録する。例えば、図６では、TE経路２４ａのTE用ビットが１，２ビット目に割り当てられているので、その１，２ビットを「０」として残りを「１」としたF-BMが登録される。
（手順１４）受信側のTE広告部２５は、自身のビットに加えて、IGP経路２４ｂで出側装置用として広告されたビットをクリアするようにR-BMを設定する。例えば、図６では、IGP経路２４ｂのIGP用ビットが７，８ビット目に割り当てられているので、第１行は自身の第１ビット目と、７，８ビット目とを「０」として残りを「１」としたR-BMが登録される。
この（手順１４）のR-BMを用いることで、TE経路２４ａを使用するときにはIGP経路２４ｂの参照用ＢＳはクリアされるので、トラヒック制御実施時には、TE経路に加えてIGP経路に対しても転送用パケットの転送を行ってしまうような不都合を防止できる。
【００５５】
IGP経路２４ｂを作成するための広告処理を、以下の（手順２１）〜（手順２４）に示す。
（手順２１）広告側の出側装置内のIGP広告部２６は、自身のループバックアドレスと、自身に割り当てられたIGP用ビットとの組を、IGPなどで受信側に広告する。
（手順２２）受信側のIGP広告部２６は、「広告されたループバックアドレスを宛先とした際のNext Hop」を、「広告されたIGP用ビット」と対応付けて転送テーブル２４に登録する。これらの登録内容は、転送テーブル中のNext HopとBit Positionにそれぞれ対応する。
（手順２３）受信側のIGP広告部２６は、各Next Hopが同じとなるBit Positionについては、そのビット和を計算し、F-BMとして転送テーブル２４に登録する。一方、Next Hopが同じとなるビットが無いBit Positionは、そのビット自身をF-BMとして転送テーブル２４に登録する。つまり、転送テーブル２４のうちのIGP経路２４ｂについては、図９に示したBIERと同じ計算方法で、Bit PositionとF-BMとの組み合わせが登録される。
（手順２４）受信側のIGP広告部２６は、F-BMの各ビット値を反転した結果をR-BMとして転送テーブル２４に登録する。
これにより、中継装置において出側装置用の転送用ＢＰの参照を可能とする。
【００５６】
図７は、マルチキャスト通信装置１の転送処理を示すフローチャートである。このフローチャートはパケット受信部１１が上流側から転送用パケットを受信する度に実行される。
Ｓ３０１として、パケット受信判定部１２は、転送用ＢＳ内の自身に割り当てられているIGP用ビットが値「１」であるか否かにより、受信した転送用パケットが自身宛てか否かを判定する。Ｓ３０１でＹｅｓならＳ３０２に進み、ＮｏならＳ３０３に進む。
Ｓ３０２として、パケット受信判定部１２は、転送用パケットからヘッダ部を取り出して残りのデータ部を抽出し、そのデータ部を次プロトコルに受け渡す。そして、転送用パケットの転送処理を省略して処理を終了する。
【００５７】
このように、図１０のＳ１０３では転送処理中のループ中に行われる自身宛ての判定処理を、図７のＳ３０１では転送用パケットを受信した直後に行うこととした。
これにより、出側装置へ転送用パケットが到達した後の意図しない転送を防止する。意図しない転送とは、例えば、第１の出側装置と、第２の出側装置との双方が宛先となる転送用パケットについて、第１の出側装置から第２の出側装置への不要な転送である。
【００５８】
Ｓ３０３として、高速切替部１３は、隣接ノードまたは隣接リンクの故障を検知したか否かを判定する。Ｓ３０３でＹｅｓならＳ３０４に進み、ＮｏならＳ３０５に進む。
Ｓ３０４として、高速切替部１３は、隣接ノードまたは隣接リンクの保護設定として事前に計算された迂回経路を、転送用パケットのヘッダ内の転送用ＢＳに追加する（Ｓ２０２のBIER-TE方式と同様）。
Ｓ３０５として、事前処理部１４は、転送用パケットを参照用パケットとしてコピーする。
【００５９】
Ｓ３０６として、事前処理部１４は、参照用ＢＳの自身と隣接しない（非隣接の）TE用ビットのみをクリアする。つまり、Ｓ２０３のBIER-TE方式と異なり、IGP用ビットはクリアされずに残される。
これにより、入側装置側で指定した出側装置のIGP用ビットが中継装置でも参照されるので、図１のパターン１のように出側装置のみを指定した場合のIGP経路での転送が可能となる。
【００６０】
以下、Ｓ３１１〜Ｓ３１５は参照用パケットの参照用ＢＳを更新しつつ、適宜転送用パケットを転送するループ処理である。
Ｓ３１１として、パケット転送処理部１５は、参照用ＢＳを構成する参照用ＢＰの値が全て０か否かを判定する。Ｓ３１１でＹｅｓなら今回の転送用パケットに関する処理を終了し、ＮｏならＳ３１２に進む。
Ｓ３１２として、パケット転送処理部１５は、参照用ＢＳからビット値「１」である最右ビットを取得する。
Ｓ３１３として、パケット転送処理部１５は、Ｓ３１２で取得した最右ビットに対応するエントリ（F-BM、R-BM、Next Hop）を転送テーブル２４から取得する。
Ｓ３１４として、パケット転送処理部１５は、転送用パケットをコピーし、そのコピーした転送用パケットの転送用ＢＳをF-BMでマスクしてからＳ３１３のNext Hopに転送する。
【００６１】
Ｓ３１５として、パケット転送処理部１５は、参照用ＢＳをＳ３１３のR-BMでマスクする。なお、図６の転送テーブル２４で説明したように、TE経路２４ａのR-BMと、IGP経路２４ｂのR-BMとを異なる計算方法で求めている。これにより、TE経路２４ａ用の処理と、IGP経路２４ｂ用の処理とで、フローチャートの処理を分岐させる必要がなくなる。
【００６２】
以上説明した本実施形態では、転送テーブル２４が、TE用ビットを用いるTE経路２４ａと、IGP用ビットを用いるIGP経路２４ｂとを区別して管理する。そして、転送テーブル２４は、転送用パケットの転送用ＢＳをマスクするF-BMに加えて、参照用パケットの参照用ＢＳをマスクするR-BMを備える。
これにより、転送用ＢＳでTE用ビットが指定された転送用パケットをTE経路２４ａで優先的に転送し、TE用ビットが指定されなかった転送用パケットをIGP経路２４ｂで転送するように、両経路の両立が可能となる。
【００６３】
つまり、任意の配信ツリーを指定してトラヒック制御を行ったり（図２のパターン２）、特定箇所の保護により特定箇所故障時の高速切替制御を行ったり（図３のパターン３）することが必要な箇所にはTE経路２４ａを割り当てることができる。一方、これらの制御が必要ではない箇所ではIGP経路２４ｂに従って転送用パケットが転送される（図１のパターン１）。
よって、TE用ビットを網羅的に割り当てる必要がなくなるので、転送テーブル２４の肥大化が抑制され、本実施形態の大規模なマルチキャスト転送システムへの適用が可能となる。
一方、既存のBIERと既存のBIER-TEとは、それぞれ他方の方式との同時動作は想定されていない。よって、単に既存のBIERと既存のBIER-TEとを同時動作させるだけでは、そもそも両方式が競合してしまい、正しい転送動作は期待できないこととなる。
【００６４】
なお、本実施形態においては、マルチキャスト転送システムとして、図１〜図３に示すような２台の出側装置の構成を例示した。一方、このような出側装置や中継装置の台数に限定されず、任意のネットワーク構成を採用することができる。
また、本実施形態においては、一般的なコンピュータのハードウェア資源を、マルチキャスト通信装置１の各手段として動作させるプログラムによって実現することができる。そして、このプログラムは、通信回線を介して配布したり、ＣＤ−ＲＯＭ等の記録媒体に記録して配布したりすることも可能である。
【符号の説明】
【００６５】
１      マルチキャスト通信装置
１１    パケット受信部
１２    パケット受信判定部
１３    高速切替部（迂回経路切替部）
１４    事前処理部
１５    パケット転送処理部
１６    パケット送信部
２１    迂回経路格納部
２２    転送用パケット格納部
２３    参照用パケット格納部
２４    転送テーブル（転送用情報）
２４ａ  TE経路
２４ｂ  IGP経路
２５    TE広告部
２６    IGP広告部
【図１】
2020109916.tif 000003
【図２】
2020109916.tif 000004
【図３】
2020109916.tif 000005
【図４】
2020109916.tif 000006
【図５】
2020109916.tif 000007
【図６】
2020109916.tif 000008
【図７】
2020109916.tif 000009
【図８】
2020109916.tif 000010
【図９】
2020109916.tif 000011
【図１０】
2020109916.tif 000012
【図１１】
2020109916.tif 000013
【図１２】
2020109916.tif 000014
【図１３】
2020109916.tif 000015
【図１４】
2020109916.tif 000016