(57)【特許請求の範囲】
【請求項１】
配信サーバから配信ルータを介してホストにマルチキャストのフローを配信するマルチキャスト配信システムであって、
複数台の前記配信ルータと１台以上の前記ホストとが共有セグメントに接続され、その共有セグメントに送信されるパケットは、前記共有セグメントに接続される各装置が受信可能であり、
前記配信ルータは、転送制御部と記憶手段とを有しており、
前記配信ルータの記憶手段には、前記共有セグメントに接続される複数台の前記配信ルータのうちの配信担当となる１台の前記配信ルータの特定情報を、配信対象のフローの特定情報ごとに格納する配信制御用データが記憶されるものであり、
前記共有セグメントに接続される各前記配信ルータの転送制御部は、
前記共有セグメントに接続される前記配信ルータのリストを格納するルータ管理用データを前記配信ルータの記憶手段に格納し、
自装置のルータアドレスを前記ルータ管理用データに登録するとともに、他装置の前記配信ルータから受信したクエリパケットの送信元アドレスから他装置のルータアドレスを取得して前記ルータ管理用データに登録し、
前記ルータ管理用データに登録されるルータアドレスをもとに、前記配信制御用データに登録される配信担当の前記配信ルータの特定情報を決定する工程を実行し、
前記配信サーバからフローの配信データを受信すると、受信した配信データの属するフローの特定情報を検索キーとして前記配信制御用データを検索することで、検索したフローの配信担当となる前記配信ルータの特定情報を取得し、
取得した前記配信ルータの特定情報が自装置であるときには、前記共有セグメントを介して受信したフローの配信データを前記ホストに転送し、
取得した前記配信ルータの特定情報が他装置であるときには、受信したフローの配信データを廃棄することを特徴とする
マルチキャスト配信システム。
【請求項２】
前記共有セグメントに接続される各前記配信ルータの転送制御部は、前記配信担当の配信ルータの特定情報を決定する工程を、あらかじめ用意されているルータメンバリストに記載された前記配信ルータが、前記ルータ管理用データに登録された後に実行することを特徴とする
請求項１に記載のマルチキャスト配信システム。
【請求項３】
前記共有セグメントに接続される各前記配信ルータの転送制御部は、前記配信担当の配信ルータの特定情報を決定する工程を、前記ルータ管理用データに未登録の他装置から受信した前記クエリパケットの到着時刻から所定時間経過した後に実行することを特徴とする
請求項１に記載のマルチキャスト配信システム。
【請求項４】
前記共有セグメントに接続される各前記配信ルータの転送制御部は、
前記配信担当の配信ルータの特定情報を決定する工程において、前記ルータ管理用データに登録される各ルータアドレスのアドレス値の大きさの順位を、前記配信制御用データに登録される配信担当の前記配信ルータの特定情報として決定し、
受信した配信データの属するフローの特定情報と、前記ルータ管理用データに登録されるルータアドレスの数と、を引数とする所定関数を計算し、その所定関数の計算結果と前記各ルータアドレスの順位とを照合することにより、一意に決定される前記配信ルータを、所定関数の計算に用いたフローの特定情報に対する配信担当として決定し、決定した配信担当の前記配信ルータとフローの特定情報とを対応づけて前記配信制御用データに格納することを特徴とする
請求項１に記載のマルチキャスト配信システム。
【請求項５】
前記共有セグメントに接続される各前記配信ルータの転送制御部は、
前記ホストから前記共有セグメントを介して配信対象のフローの特定情報と、そのフローへの配信可否を示す配信中状態情報とをリポートとして受信すると、そのフローの特定情報と前記配信中状態情報とを対応づけて前記配信ルータの記憶手段に格納し、
前記共有セグメントを介して前記ホストに転送するフローの配信データが、前記配信中状態情報において配信不可であるときには、受信したフローの配信データを廃棄することを特徴とする
請求項１ないし請求項４のいずれか１項に記載のマルチキャスト配信システム。
【請求項６】
配信サーバから配信ルータを介してホストにマルチキャストのフローを配信するマルチキャスト配信システムに用いられる配信ルータであって、
複数台の前記配信ルータと１台以上の前記ホストとが共有セグメントに接続され、その共有セグメントに送信されるパケットは、前記共有セグメントに接続される各装置が受信可能であり、
前記配信ルータは、転送制御部と記憶手段とを有しており、
前記配信ルータの記憶手段には、前記共有セグメントに接続される複数台の前記配信ルータのうちの配信担当となる１台の前記配信ルータの特定情報を、配信対象のフローの特定情報ごとに格納する配信制御用データが記憶されるものであり、
前記共有セグメントに接続される各前記配信ルータの転送制御部は、
前記共有セグメントに接続される前記配信ルータのリストを格納するルータ管理用データを前記配信ルータの記憶手段に格納し、
自装置のルータアドレスを前記ルータ管理用データに登録するとともに、他装置の前記配信ルータから受信したクエリパケットの送信元アドレスから他装置のルータアドレスを取得して前記ルータ管理用データに登録し、
前記ルータ管理用データに登録されるルータアドレスをもとに、前記配信制御用データに登録される配信担当の前記配信ルータの特定情報を決定する工程を実行し、
前記配信サーバからフローの配信データを受信すると、受信した配信データの属するフローの特定情報を検索キーとして前記配信制御用データを検索することで、検索したフローの配信担当となる前記配信ルータの特定情報を取得し、
取得した前記配信ルータの特定情報が自装置であるときには、前記共有セグメントを介して受信したフローの配信データを前記ホストに転送し、
取得した前記配信ルータの特定情報が他装置であるときには、受信したフローの配信データを廃棄することを特徴とする
配信ルータ。
【請求項７】
前記共有セグメントに接続される各前記配信ルータの転送制御部は、前記配信担当の配信ルータの特定情報を決定する工程を、あらかじめ用意されているルータメンバリストに記載された前記配信ルータが、前記ルータ管理用データに登録された後に実行することを特徴とする
請求項６に記載の配信ルータ。
【請求項８】
前記共有セグメントに接続される各前記配信ルータの転送制御部は、前記配信担当の配信ルータの特定情報を決定する工程を、前記ルータ管理用データに未登録の他装置から受信した前記クエリパケットの到着時刻から所定時間経過した後に実行することを特徴とする
請求項６に記載の配信ルータ。
【請求項９】
前記共有セグメントに接続される各前記配信ルータの転送制御部は、
前記配信担当の配信ルータの特定情報を決定する工程において、前記ルータ管理用データに登録される各ルータアドレスのアドレス値の大きさの順位を、前記配信制御用データに登録される配信担当の前記配信ルータの特定情報として決定し、
受信した配信データの属するフローの特定情報と、前記ルータ管理用データに登録されるルータアドレスの数と、を引数とする所定関数を計算し、その所定関数の計算結果と前記各ルータアドレスの順位とを照合することにより、一意に決定される前記配信ルータを、所定関数の計算に用いたフローの特定情報に対する配信担当として決定し、決定した配信担当の前記配信ルータとフローの特定情報とを対応づけて前記配信制御用データに格納することを特徴とする
請求項６に記載の配信ルータ。
【請求項１０】
前記共有セグメントに接続される各前記配信ルータの転送制御部は、
前記ホストから前記共有セグメントを介して配信対象のフローの特定情報と、そのフローへの配信可否を示す配信中状態情報とをリポートとして受信すると、そのフローの特定情報と前記配信中状態情報とを対応づけて前記配信ルータの記憶手段に格納し、
前記共有セグメントを介して前記ホストに転送するフローの配信データが、前記配信中状態情報において配信不可であるときには、受信したフローの配信データを廃棄することを特徴とする
請求項６ないし請求項９のいずれか１項に記載の配信ルータ。
【請求項１１】
配信サーバから配信ルータを介してホストにマルチキャストのフローを配信するマルチキャスト配信システムによるマルチキャスト配信方法であって、
複数台の前記配信ルータと１台以上の前記ホストとが共有セグメントに接続され、その共有セグメントに送信されるパケットは、前記共有セグメントに接続される各装置が受信可能であり、
前記配信ルータは、転送制御部と記憶手段とを有しており、
前記配信ルータの記憶手段には、前記共有セグメントに接続される複数台の前記配信ルータのうちの配信担当となる１台の前記配信ルータの特定情報を、配信対象のフローの特定情報ごとに格納する配信制御用データが記憶されるものであり、
前記共有セグメントに接続される各前記配信ルータの転送制御部は、
前記共有セグメントに接続される前記配信ルータのリストを格納するルータ管理用データを前記配信ルータの記憶手段に格納し、
自装置のルータアドレスを前記ルータ管理用データに登録するとともに、他装置の前記配信ルータから受信したクエリパケットの送信元アドレスから他装置のルータアドレスを取得して前記ルータ管理用データに登録し、
前記ルータ管理用データに登録されるルータアドレスをもとに、前記配信制御用データに登録される配信担当の前記配信ルータの特定情報を決定する工程を実行し、
前記配信サーバからフローの配信データを受信すると、受信した配信データの属するフローの特定情報を検索キーとして前記配信制御用データを検索することで、検索したフローの配信担当となる前記配信ルータの特定情報を取得し、
取得した前記配信ルータの特定情報が自装置であるときには、前記共有セグメントを介して受信したフローの配信データを前記ホストに転送し、
取得した前記配信ルータの特定情報が他装置であるときには、受信したフローの配信データを廃棄することを特徴とする
マルチキャスト配信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチキャスト配信システム、配信ルータ、および、マルチキャスト配信方法に関する。
【背景技術】
【０００２】
マルチキャスト（Multicast）は、配信サーバから送信される配信データを、配信ルータが複数台のホスト装置に対して同報配信する通信形態であり、一対多通信とも呼ばれる。これにより、一対一通信であるユニキャストに比べ、配信サーバおよび配信ネットワークが受信ホスト毎にパケットを重複転送する必要がなくなるため、サーバ処理負荷とネットワーク負荷（帯域）を軽減することができる。
【０００３】
IPマルチキャスト通信を実現するためには、まず、配信サーバからIPネットワーク内に送信されるIPパケットに対して、IPネットワークのコア区間における配信経路（配信ツリー）を決定する必要がある。この経路決定のためのプロトコルとして、ＤＶＭＲＰ（Distance Vector Multicast Routing Protocol）や（非特許文献１）、ＰＩＭ−ＳＭ（Protocol Independent Multicast - Sparse Mode）（非特許文献２）、ＰＩＭ−ＳＳＭ（Protocol Independent Multicast - Source Specific Mode）などが利用される（非特許文献３）。
【０００４】
さらに、IPネットワークのエッジルータからホストまでのアクセス区間においては、エッジルータの個々のアクセス側インタフェースに対して、マルチキャストフロー毎にフローを配信するかを決定するため、マルチキャストのグループ管理（グループ参加・グループ離脱）のためのプロトコルとして、ＩＰｖ４におけるＩＧＭＰ（Internet Group Management Protocol）や（非特許文献４）、ＩＰｖ６におけるＭＬＤ（Multicast Listener Discovery）などが利用される（非特許文献５）。
【０００５】
ホスト装置は、接続するネットワークを介して配信ルータから配信データを受信するが、接続するネットワーク（共有セグメント）に複数台の配信ルータが接続されることもある。そのときには、ホスト装置は、同一の配信データを、共有セグメントに属する（接続される）複数台の配信ルータからそれぞれ二重配信されるため、ネットワーク資源（ルータのコピー処理とリンク帯域）の利用効率が低下するとともに、同一フローを重複受信しても動作に問題が生じないようなホスト側の対応が必要となる。
【０００６】
そこで、ＩＧＭＰｖ２とＩＧＭＰｖ３およびＭＬＤｖ２からは、共有セグメントに属する複数台の配信ルータの中から、1台だけをクエリア（Querier）として代表選出する仕組みが導入された。ここで、クエリアは、共有セグメントに属する複数台の配信ルータのうち、ＩＰアドレスが最小となる配信ルータが選出される。
【０００７】
これにより、ホスト装置へクエリを送信してその応答をリポート（Membership Report）として受信したクエリアは、共有セグメントに属する複数台の配信ルータの中で、唯一ホスト装置へのデータ配信を行うことができる。よって、クエリアを１台選出することにより、セグメント内（ホスト装置）への同一フローの二重配信を防止することができる。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】ＩＥＴＦ、“Distance Vector Multicast Routing Protocol”、［online］、［平成２２年６月８日検索］、インターネット（ＵＲＬ：http://www.rfc-editor.org/rfc/rfc1075.txt）
【非特許文献２】ＩＥＴＦ、“Protocol Independent Multicast - Sparse Mode (PIM-SM)”、［online］、［平成２２年６月８日検索］、インターネット（ＵＲＬ：http://www.rfc-editor.org/rfc/rfc4602.txt）
【非特許文献３】ＩＥＴＦ、“Source-Specific Multicast for IP”、［online］、［平成２２年６月８日検索］、インターネット（ＵＲＬ：http://www.rfc-editor.org/rfc/rfc4607.txt）
【非特許文献４】ＩＥＴＦ、“Internet Group Management Protocol, Version 3”、［online］、［平成２２年５月３１日検索］、インターネット（ＵＲＬ：http://www.rfc-editor.org/rfc/rfc3376.txt）
【非特許文献５】ＩＥＴＦ、“Multicast Listener Discovery Version 2 (MLDv2) for IPv6”、［online］、［平成２２年５月３１日検索］、インターネット（ＵＲＬ：http://www.rfc-editor.org/rfc/rfc3810.txt）
【発明の概要】
【発明が解決しようとする課題】
【０００９】
前述したように、共有セグメントに属する複数台の配信ルータから、１台のクエリアに配信処理を専任させる従来の方式では、クエリアおよびそのリンクに配信負荷が集中する。そのため、クエリア以外の配信ルータは配信処理を行わず、それらの配信ルータのルータ処理性能および冗長化された配信パス（上位／下位の接続リンク）帯域は、有効活用されない。なお、ルータ処理性能の指標としては、単位時間あたりにおけるマルチキャストパケットのコピー数上限値や、ホスト装置からのリポートに対する応答処理数などが挙げられる。
【００１０】
また、共有セグメントに属する複数台の配信ルータから、単に複数台のクエリアを選出するだけでは、同じ配信データをホスト装置へ二重配信してしまう。同一マルチキャストフローの二重配信により、配信パス（ルータの上位／下位接続リンクおよびＬＡＮ）帯域を重複消費する無駄が発生するだけでなく、ホスト装置や、ホームゲートウェイなどが同一フローの二重受信に対応する必要がある。よって、ネットワークシステム全体としての配信可能なマルチキャストフロー数およびマルチキャスト配信可能な総帯域量を向上させつつ、従来技術と同様に同一フローの二重配信を防止のする必要がある。
【００１１】
そこで、本発明は、前記した問題を解決し、ルータおよび経路パスが冗長化された配信アクセス系において、同時に配信可能なマルチキャストフロー数および配信フローの総帯域量を増加させつつ、ホスト装置への二重配信を防止することを、主な目的とする。
【課題を解決するための手段】
【００１２】
前記課題を解決するために、本発明は、配信サーバから配信ルータを介してホストにマルチキャストのフローを配信するマルチキャスト配信システムであって、複数台の前記配信ルータと１台以上の前記ホストとが共有セグメントに接続され、その共有セグメントに送信されるパケットが、前記共有セグメントに接続される各装置が受信可能であり、前記配信ルータが、転送制御部と記憶手段とを有しており、前記配信ルータの記憶手段には、前記共有セグメントに接続される複数台の前記配信ルータのうちの配信担当となる１台の前記配信ルータの特定情報を、配信対象のフローの特定情報ごとに格納する配信制御用データが記憶されるものであり、
前記共有セグメントに接続される各前記配信ルータの転送制御部が、
前記共有セグメントに接続される前記配信ルータのリストを格納するルータ管理用データを前記配信ルータの記憶手段に格納し、
自装置のルータアドレスを前記ルータ管理用データに登録するとともに、他装置の前記配信ルータから受信したクエリパケットの送信元アドレスから他装置のルータアドレスを取得して前記ルータ管理用データに登録し、
前記ルータ管理用データに登録されるルータアドレスをもとに、前記配信制御用データに登録される配信担当の前記配信ルータの特定情報を決定する工程を実行し、
前記配信サーバからフローの配信データを受信すると、受信した配信データの属するフローの特定情報を検索キーとして前記配信制御用データを検索することで、検索したフローの配信担当となる前記配信ルータの特定情報を取得し、取得した前記配信ルータの特定情報が自装置であるときには、前記共有セグメントを介して受信したフローの配信データを前記ホストに転送し、取得した前記配信ルータの特定情報が他装置であるときには、受信したフローの配信データを廃棄することを特徴とする。
【００１３】
これにより、同じ共有セグメントに接続される複数の配信ルータそれぞれについて、フローごとに１台の配信担当を割り当てることで、フロー配信処理の負荷分散を実現する。よって、配信可能なマルチキャストフロー数および配信フローの総帯域量を増加させつつ、ホスト装置への二重配信を防止することができる。
さらに、配信担当となる配信ルータの候補を、自動でルータ管理テーブルに登録することができる。
【００１４】
本発明は、前記共有セグメントに接続される各前記配信ルータの転送制御部が、前記配信担当の配信ルータの特定情報を決定する工程を、あらかじめ用意されているルータメンバリストに記載された前記配信ルータが、前記ルータ管理用データに登録された後、または、前記ルータ管理用データに未登録の他装置から受信した前記クエリパケットの到着時刻から所定時間経過した後に実行することを特徴とする。
【００１５】
これにより、未登録ルータが存在するか否かの判定を行う。
【００１６】
本発明は、前記共有セグメントに接続される各前記配信ルータの転送制御部が、
前記配信担当の配信ルータの特定情報を決定する工程において、前記ルータ管理用データに登録される各ルータアドレスのアドレス値の大きさの順位を、前記配信制御用データに登録される配信担当の前記配信ルータの特定情報として決定し、
受信した配信データの属するフローの特定情報と、前記ルータ管理用データに登録されるルータアドレスの数と、を引数とする所定関数を計算し、その所定関数の計算結果と前記各ルータアドレスの順位とを照合することにより、一意に決定される前記配信ルータを、所定関数の計算に用いたフローの特定情報に対する配信担当として決定し、決定した配信担当の前記配信ルータとフローの特定情報とを対応づけて前記配信制御用データに格納することを特徴とする。
【００１７】
これにより、フローごとに配信担当となる配信ルータを計算することで、配信ルータ数の増減に対して、最適な配信担当を逐次決定することができる。
【００１８】
本発明は、本発明は、前記共有セグメントに接続される各前記配信ルータの転送制御部が、前記ホストから前記共有セグメントを介して配信対象のフローの特定情報と、そのフローへの配信可否を示す配信中状態情報とをリポートとして受信すると、そのフローの特定情報と前記配信中状態情報とを対応づけて記憶手段に格納し、前記共有セグメントを介して前記ホストに転送するフローの配信データが、前記配信中状態情報において配信不可であるときには、受信したフローの配信データを廃棄することを特徴とする。
さらに、本発明は、前記したマルチキャスト配信システムに用いられる配信ルータ、および、本発明はマルチキャスト配信システムが実行するマルチキャスト配信方法である。
【００１９】
これにより、ホストから希望されるフローの配信データを適切にホストに転送するとともに、ホストが希望しないフローの配信データの転送を抑制することができる。
【発明の効果】
【００２０】
本発明によれば、ルータおよび経路パスが冗長化された配信アクセス系において、同時に配信可能なマルチキャストフロー数および配信フローの総帯域量を増加させつつ、ホスト装置への二重配信を防止することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の一実施形態に関するマルチキャスト配信システムを示す構成図である。
【図２】本発明の一実施形態に関するマルチキャスト配信システムの配信ルータを示す構成図である。
【図３】本発明の一実施形態に関する配信フィルタリストを示す構成図である。
【図４】本発明の一実施形態に関するマルチキャスト配信システムのデータ配信処理の概要を示すフローチャートである。
【図５】本発明の一実施形態に関するルータ管理テーブルの新規生成処理を示すフローチャートである。
【図６】本発明の一実施形態に関するルータ管理テーブルのエントリ追加および削除処理を示すフローチャートである。
【図７】本発明の一実施形態に関する配信データの転送処理を示すフローチャートである。
【発明を実施するための形態】
【００２２】
以下、本発明の一実施形態を、図面を参照して詳細に説明する。
【００２３】
図１は、マルチキャストフロー（以下、単にフローとする）を配信するマルチキャスト配信システムを示す構成図である。
マルチキャスト配信システムは、配信サーバ１（１ａ、１ｂ）と配信ルータ４（４ａ、４ｂ、４ｃ）とがマルチキャスト配信網２で接続されるとともに、配信ルータ４（４ａ、４ｂ、４ｃ）とホスト６（６ａ、６ｂ、６ｃ）とが共有セグメント５で接続されて構成される。
これらのマルチキャスト配信システムの各装置は、ＣＰＵとメモリとハードディスク（記憶手段）とネットワークインタフェースを有するコンピュータとして構成され、このコンピュータは、ＣＰＵが、メモリ上に読み込んだプログラムを実行することにより、各処理部を動作させる。
【００２４】
マルチキャスト配信網２は、例えば、インターネット網であり、配信サーバ１から配信ルータ４への経路決定のためのプロトコルとして、ＤＶＭＲＰ（Distance Vector Multicast Routing Protocol）や、ＰＩＭ−ＳＭ（Protocol Independent Multicast - Sparse Mode）、ＰＩＭ−ＳＳＭ（Protocol Independent Multicast - Source Specific Mode）などが一般的に利用される。
。
共有セグメント５は、その共有セグメント５に接続される装置から送信されるパケットが、そのパケットの送信先だけでなく、同じ共有セグメント５に接続される他装置へも伝送される特性を有する。例えば、配信ルータ４ａからホスト６ａへ送信されるメッセージは、ホスト６ａだけでなく、他の各装置（配信ルータ４ｂ、配信ルータ４ｃ、ホスト６ｂ、ホスト６ｃ）も受信することができる。共有セグメント５は、例えば、イーサネット（登録商標）により構成される。
【００２５】
配信サーバ１は、フローの配信元となるサーバであり、図１では、４つのフロー（Ｍ１〜Ｍ４）が配信対象のフローとして例示されている。なお、フローの特定情報としては、フローのグループだけを特定情報とする（＊，ｇ）指定型であるＡＳＭ（Any Source Multicast）と、フローのグループとフローの送信元の配信サーバ１のアドレスの組を特定情報とする（ｓ，ｇ）指定型であるＳＳＭ（Source Specific Multicast）とが挙げられる。
以下、本実施形態では、フローの特定情報を（ｓ，ｇ）指定型として説明するが、（＊，ｇ）指定型にも本実施形態を応用することができる。ここで、（ｓ，ｇ）とは、（Source，Group）の略であり、最初のSourceが送信元の配信サーバ１のアドレスを示し、次のGroupがフローのグループを示す。
【００２６】
配信ルータ４は、マルチキャストのグループ管理プロトコル（ＩＧＭＰおよびＭＬＤのプロトコルなど）が動作するルータであり、配信サーバ１からの配信データを、ホスト６に転送する。配信ルータ４は、リンク３（３ａ、３ｂ、３ｃ）を介して、マルチキャスト配信網２と接続されている。
ホスト６は、配信ルータ４から配信データを受信する端末であり、リスナ（listener）とも呼ばれる。ホスト６は、配信ルータ４からのクエリを受信すると、自装置が希望するフローの情報を含めたリポートを作成し、配信ルータ４に返信する。
【００２７】
図２は、マルチキャスト配信システムの配信ルータ４を示す構成図である。配信ルータ４は、フローの上流側（マルチキャスト配信網２の側）から順に、サーバ側インタフェース１１、サーバ側フレーム処理部１２、転送制御部２０、ホスト側フレーム処理部１３、ホスト側インタフェース１４が接続されて構成される。
【００２８】
インタフェース（サーバ側インタフェース１１、ホスト側インタフェース１４）は、ネットワークが接続される端点となる箇所であり、外部の網からデータを受信するインタフェース（受信インタフェース部３１、受信インタフェース部４１）と、外部の網にデータを送信するインタフェース（送信インタフェース部３４、送信インタフェース部４４）とから構成される。
フレーム処理部（サーバ側フレーム処理部１２、ホスト側フレーム処理部１３）は、インタフェースが送受信するデータの信号をフレーム単位に変換する処理部であり、受信インタフェースからの通信信号からフレームを構築する受信部（フレーム受信部４２、フレーム受信部３２）と、構築されたフレームから送信インタフェースを介して送信する通信信号へとデコードする送信部（フレーム送信部３３、フレーム送信部４３）とから構成される。
【００２９】
上流（配信サーバ１）から下流（ホスト６）に流れる下りのパケット（配信データなど）は、受信インタフェース部３１→フレーム受信部３２→配信フィルタ部２１→フレーム送信部３３→送信インタフェース部３４の順に、配信ルータ４内を通過する。
下流（ホスト６）から上流（配信サーバ１）に流れる上りのパケット（リポートなど）は、受信インタフェース部４１→フレーム受信部４２→配信管理部２２→フレーム送信部４３→送信インタフェース部４４の順に、配信ルータ４内を通過する。
【００３０】
転送制御部２０は、フレーム受信部３２，４２からのフレームを受信して、そのフレーム内容に応じて転送制御を行い、その結果をフレーム送信部３３，４３に出力する。
転送制御部２０は、配信フィルタ部２１、配信フィルタリスト２１ａ、配信管理部２２、配信制御テーブル２２ａ（配信制御用データ）、フロー判定部２３、ルータ管理部２４、ルータ管理テーブル２４ａ（ルータ管理用データ）から構成される。
【００３１】
配信フィルタ部２１は、フレーム受信部３２からパケットを受信すると、フロー判定部２３および配信管理部２２が決定したパケットの転送または廃棄の決定に従い、フレーム送信部３３へのパケットの転送またはパケットの廃棄を実行する。つまり、配信フィルタ部２１は、マルチキャストパケットの透過廃棄を実行する。
【００３２】
配信管理部２２は、ＩＧＭＰおよびＭＬＤのルータとして動作し、ホスト６側から送信されるリポートを読み取ることにより、配信フィルタリスト２１ａを作成する（詳細は図３で後記する）。リポートは、例えば、以下の内容を含んでいる。
・指定したマルチキャストグループへの参加（配信希望）を示す「ｊｏｉｎ」
・指定したマルチキャストグループからの離脱（配信停止希望）を示す「ｌｅａｖｅ」
・指定したソースのアドレスからの受信を許可する「ＩＮＣＬＵＤＥ」
・指定したソースのアドレスからの受信を不許可とする「ＥＸＣＬＵＤＥ」
さらに、配信管理部２２は、配信フィルタリスト２１ａ内の配信中フラグを参照して、フレーム受信部３２からのパケットの転送または廃棄を決定する。
【００３３】
フロー判定部２３は、フレーム受信部３２から受信したマルチキャストパケットについて、配信制御テーブル２２ａを参照することにより、パケットの転送または廃棄を決定する。
ルータ管理部２４は、共有セグメント５に接続される各配信ルータ４（自ルータおよび他ルータ）のエントリをルータ管理テーブル２４ａに記憶する。さらに、ルータ管理部２４は、ルータ管理テーブル２４ａに格納される配信ルータ４の情報と、配信フィルタリスト２１ａに格納されるフローの情報とから、配信ルータ４ごとの配信担当となるフローを特定するための配信制御テーブル２２ａを作成する。
【００３４】
【表１】
0005553425.tif 000002
【００３５】
表１は、ルータ管理部２４が生成および管理するルータ管理テーブル２４ａの一例を示す。この例では、３台の配信ルータ４ａ，４ｂ，４ｃが登録されている。ルータ管理テーブル２４ａは、配信ルータ４ごとに、その配信ルータのルータアドレス（ルータに割り当てられたＩＰアドレス）と、共有セグメント５におけるその配信ルータの順位とを対応づけて記憶する。
【００３６】
ルータ管理部２４は、ルータ管理テーブル２４ａのルータアドレスとして、自ルータのＩＰアドレスを登録するとともに、他ルータから受信したパケットから特定できる他ルータのＩＰアドレスを登録する。他ルータのＩＰアドレスは、例えば、ＩＧＭＰおよびＭＬＤにおける他ルータから共有セグメント５に定期的に送信されるＧＱ（General Query）メッセージなどのクエリの送信元アドレスである。
なお、ルータエントリの登録用のメッセージは、送信元ルータのＩＰアドレスを検出可能であれば、ＧＱだけに限定されず、任意のメッセージを用いてもよい。
・ＩＰｖ４マルチキャストの場合は、ＧＱとＧＳＱ（Group-Specific Query）とＧＳＳＱ（Group-and-Source-Specific Query）の３種類のクエリが規定されている（非特許文献４の４．１．１１節）。
・ＩＰｖ６マルチキャストの場合は、ＧＱとＭＡＳＱ（Multicast Address Specific Query）とＭＡＳＳＱ（Multicast Address and Source Specific Query）の３種類のクエリが規定されている（非特許文献５の５．１．１３節）。
・マルチキャスト以外のメッセージを用いる場合は、ｐｉｎｇ（ＩＣＭＰ）パケットや独自パケットなど。
【００３７】
ルータ管理部２４は、ルータ管理テーブル２４ａのルータアドレスが登録されると、ルータ管理テーブル２４ａ内の全エントリのルータアドレスの大小比較を行い、ルータアドレスの小さい順に、配信ルータの順位をルータ管理テーブル２４ａに書き出す。
【００３８】
【表２】
0005553425.tif 000003
【００３９】
表２は、３台の配信ルータ４ａ，４ｂ，４ｃ内の配信制御テーブル２２ａの例を示す。配信制御テーブル２２ａは、配信フィルタリスト２１ａのフローごとに、そのフローの配信担当となる配信ルータ４を特定するために、用いられる。配信制御テーブル２２ａは、フローの特定情報（Source，Group）と、自ルータが配信担当か否かを示す判定値C-flagと、その判定値C-flagを計算するための計算過程パラメータ（関数値Ｈ，関数値Ｍ，補正値Ｆ）とが対応づけて記憶されている。
表２では、フローＭ１の配信担当が配信ルータ４ｂであり、フローＭ２，Ｍ３の配信担当が配信ルータ４ａであり、フローＭ４の配信担当が配信ルータ４ｃであるので、１つのフローに対して配信担当となる配信ルータ４が１台に特定される。これにより、複数の配信ルータ４が同じフローを重複して配信することを防止する。
【００４０】
以下に示すように、ルータ管理部２４は、フローの特定情報（Source，Group）から、判定値C-flagを計算する。以下、（Source，Group）＝（ｓ，ｇ）とする。
（手順１）：ＩＧＭＰｖ３およびＭＬＤｖ２の場合は、（ｓ，ｇ）指定型のフローを扱うので、関数値Ｈ＝ｓ＋ｇとする。一方、ＩＧＭＰｖ２およびＭＬＤｖ１の場合は、（＊，ｇ）指定型のフローを扱うので、関数値Ｈ＝ｇとしてもよい。
（手順２）：ハッシュ関数値Ｍ＝ｍｏｄ［Ｈ，ｎ］。ここで、ｎ＝ルータ管理テーブル２４ａ内のルータ総数（表１では「３」）である。関数ｍｏｄ［Ｈ，ｎ］は、割られる数Ｈを、割る数ｎで割ったときの余り（剰余）である。
（手順３）：補正値Ｆ＝Ｍ（Ｍ≠０の場合）またはｎ（Ｍ＝０の場合）。つまり、補正値Ｆは、１〜ｎのいずれかの値を取る。
（手順４）：C-flag＝１（Ｆ＝ルータ順位の場合）または０（Ｆ≠ルータ順位の場合）。例えば、フローＭ１の補正値は「２」なので、ルータ管理テーブル２４ａ内のルータ順位＝２である配信ルータ４ｂだけが、配信担当としてC-flag＝１が設定される。
【００４１】
なお、フラグ値「C-flag」の計算式として、各ルータが同じ計算ルール（ハッシュ関数）で制御すればよいので、様々な変形例（値域が１〜ｎのいずれかの値を取る任意の関数）が適用できる。これにより、マルチキャストフローの配信漏れや二重配信を防止できる。
【００４２】
図３は、配信フィルタリスト２１ａを示す構成図である。
配信フィルタリスト２１ａは、フローの特定情報（Source，Group）と、そのフローが配信されるホスト側インタフェース１４の識別子と、そのフローが配信中の状態か否かを示す配信中フラグとを対応づけて管理する。
例えば、図３（ａ）のリポート受信前において、フローＭ１は、配信サーバ１ａ（ＩＰアドレス＝１）から送信される、グループ番号＝１のフローであり、インタフェースＩＦ１への配信中の状態（配信中フラグ＝１）である。一方、フローＭ３は配信中の状態ではない。
【００４３】
ここで、インタフェースＩＦ３から「Ｍ３を配信希望、Ｍ４は離脱希望」のリポートを受信すると、配信管理部２２は、図３（ｂ）のように配信中フラグを更新する。
つまり、配信管理部２２は、受信したリポートの中身から要求対象となるマルチキャストフローの識別情報である（Ｓ，Ｇ）を識別して、該当するマルチキャストフローのリポートを受信したインタフェースに対して配信開始および配信停止の制御を行う。なお、１つのリポートに複数の配信フローの指定がなされていることもある。
なお、前記したように「配信中の状態」は、受信したリポートの結果を反映したものであって、現在時刻において実際にフローのパケット転送をしているか否かとは関係ない。
【００４４】
図４は、マルチキャスト配信システムのデータ配信処理の概要を示すフローチャートである。共有セグメント５内のルータ情報の取得方法と、各配信ルータ４へのフローの分配方法を説明する。
【００４５】
Ｓ１１は、ルータ管理テーブルの作成処理である。配信ルータ４ａがクエリを送信すると、共有セグメント５内の各装置（ホスト６ａ、配信ルータ４ｂ、配信ルータ４ｃ）はそれぞれクエリを受信する。
自ルータ（配信ルータ４ａ）は、自装置のＩＰアドレスを自装置内のルータ管理テーブル２４ａのルータアドレスに登録する。
他ルータ（配信ルータ４ｂ、配信ルータ４ｃ）は、受信したクエリの送信元アドレス（配信ルータ４ａのアドレス）を自装置内のルータ管理テーブル２４ａのルータアドレスに登録する。
【００４６】
Ｓ１２は、配信フィルタリストの作成処理である。ホスト６ａは、Ｓ１１のクエリへの応答としてのリポートを共有セグメント５に返信する。
各配信ルータ４は、それぞれ受信したリポートを、配信フィルタリスト２１ａに登録する（詳細は、図３で説明した）。
Ｓ１３は、配信担当の計算処理である。
各配信ルータ４は、それぞれＳ１１のルータ管理テーブル２４ａと、Ｓ１２の配信制御テーブル２２ａとを参照して、配信制御テーブル２２ａを作成する（詳細は、表２で説明した）。これにより、フローごとに配信担当の配信ルータ４が一意に決定する（例えば、フローＭ１の配信担当は配信ルータ４ｂである）。
以上、Ｓ１１〜Ｓ１３の処理が、データ配信のための前処理である。
【００４７】
Ｓ２１において、配信サーバ１ａは、フローＭ１をマルチキャスト配信網２にデータ配信すると、そのデータは、各配信ルータ４によって受信される。そして、各配信ルータ４は、自装置が受信した配信データの配信担当か否かを配信制御テーブル２２ａから特定する。
Ｓ２２において、フローＭ１の配信担当である配信ルータ４ｂは、ホスト６ａに対してデータ配信するとともに、フローＭ１の配信担当でない他ルータ（配信ルータ４ａ、配信ルータ４ｃ）は、Ｓ２１で受信したデータを破棄する。これにより、配信データの二重配信を防止する。
【００４８】
一方、Ｓ２３において、配信サーバ１ａは、フローＭ２をマルチキャスト配信網２にデータ配信すると、そのフローの配信担当は配信ルータ４ａであるので、Ｓ２４で、配信ルータ４ａがフローＭ２をホスト６ａに対してデータ配信する。
【００４９】
図５は、ルータ管理テーブル２４ａの新規生成処理を示すフローチャートである。この処理は、図４のＳ１１のルータ管理テーブルの作成処理のうちの新規に（初回の）作成する処理である。
以下、図５の各処理の動作主体を配信ルータ４ａのルータ管理部２４とし、他ルータを配信ルータ４ｂ、配信ルータ４ｃとして説明するが、この図５の処理は、各配信ルータ４にて、それぞれ実行される。
【００５０】
Ｓ１０１として、自装置のＩＰアドレス（表１の「＃ａ」）をルータ管理テーブル２４ａ内の新規生成したレコードエントリに登録する（Ｓ１０１）。この自装置のＩＰアドレス「＃ａ」は、Ｓ１１で送信するクエリ（ＧＱ）の送信元アドレス（Ｓアドレス）にも設定される。
Ｓ１０２として、未登録の他ルータ（配信ルータ４ｂ、配信ルータ４ｃ）からクエリ（ＧＱ）を受信すると、そのクエリの送信元アドレス（Ｓアドレス）を抽出して（「＃ｂ」、「＃ｃ」）、それぞれルータ管理テーブル２４ａにエントリ登録する。
【００５１】
Ｓ１０３として、共有セグメント５に接続されている配信ルータ４のうちのルータ管理テーブル２４ａに未登録のルータが存在するか否かを判定する。Ｓ１０３でＹｅｓならＳ１０４へ進み、Ｓ１０３でＮｏならＳ１０６へ進む。
Ｓ１０４として、所定時間（想定されるＧＱ受信時間）だけ、未登録ルータからのＧＱを受信待機する。
Ｓ１０５として、Ｓ１０４の所定時間内に未登録ルータからのＧＱを受信したか否かを判定する。Ｓ１０５でＹｅｓならＳ１０２へ戻り、Ｓ１０５でＮｏならＳ１０６へ進む。
【００５２】
Ｓ１０６として、ルータ管理テーブル２４ａ内の全エントリのルータアドレスをＩＰアドレスにより大小比較し、その結果得られた順位を各エントリのルータ順位フィールドに追加する。
Ｓ１０７として、Ｓ１０６で登録された順位にしたがって、ルータ管理テーブル２４ａ内の全エントリをＩＰアドレスの大小順に並び変える。
【００５３】
なお、Ｓ１０３〜Ｓ１０５において、未登録ルータが存在するか否かの判定処理として、所定時間だけ待機する方式を例示したが、以下の（方式１）または（方式２）に置き換えてもよい。
【００５４】
（方式１）管理者は、あらかじめ配信ルータ４内の記憶手段に共有セグメント５内の全配信ルータ４のルータメンバリストを設定しておく。そして、ルータ管理部２４は、ルータ管理テーブル２４ａ内のエントリとして、ルータメンバリストのエントリが全て揃ったときに、未登録ルータが存在しない（Ｓ１０３，Ｎｏ）と判定する。
【００５５】
（方式２）各配信ルータ４にタイマとそのタイムアウト値を設定し、転送制御部２０の起動時にそのタイマを起動する。配信ルータ４は、クエリを受信したときに、そのクエリが受信したことがないルータからのクエリであるときにはタイマリセットし、受信したことがあるルータからのクエリであるときにはタイマリセットせずにタイマの更新を継続する。そして、配信ルータ４は、タイマ値がタイムアウト値を超過したときに、未登録ルータが存在しない（Ｓ１０３，Ｎｏ）と判定する。
【００５６】
図６は、ルータ管理テーブル２４ａのエントリ追加およびエントリ削除処理を示すフローチャートである。この処理は、図４のＳ１１のルータ管理テーブルの作成処理のうちの、図５の新規生成処理の後に、共有セグメント５内の配信ルータ４が、追加（増設など）および削除（故障や撤去など）された場合に実行される。
以下、図６の各処理の動作主体を配信ルータ４ａのルータ管理部２４とし、他ルータを配信ルータ４ｂ、配信ルータ４ｃとして説明するが、この図６の処理は、各配信ルータ４にて、それぞれ実行される。
【００５７】
ルータ管理テーブル２４ａに登録されていないルータアドレスの配信ルータ４から、新たにＧＱを受信したときには（Ｓ１１１，Ｙｅｓ）、受信したＧＱのＳアドレスをルータ管理テーブル２４ａにエントリ追加し（Ｓ１１２）、処理をＳ１３０へ進める。
ルータ管理テーブル２４ａに登録済みルータからのＧＱが、あらかじめ設定した所定時間を超過して未受信となったときには（Ｓ１２１，Ｙｅｓ）、ルータ管理テーブル２４ａから超過したエントリのＳアドレスを削除し（Ｓ１２２）、処理をＳ１３０へ進める。
一方、ルータ管理テーブル２４ａに登録済みルータからのＧＱから所定時間内にＧＱを受信できたときには（Ｓ１２１，Ｎｏ）、処理をＳ１１１へ戻す。
【００５８】
Ｓ１３０として、Ｓ１１２またはＳ１２２で更新されたルータ管理テーブル２４ａ内の全エントリを、ＩＰアドレスの大小順に並び変える。
Ｓ１３１として、ルータ管理テーブル２４ａ内のルータ順位フィールドに、Ｓ１３０で並び替えたＩＰアドレス順位を再登録（上書き）する。
Ｓ１３２として、配信制御テーブル２２ａ内の全エントリを削除する（エントリ・フラッシュ処理）。そして、図６の処理で更新されたルータ管理テーブル２４ａを参照して、Ｓ１３（配信担当の計算処理）を再計算することで、配信制御テーブル２２ａの全エントリを更新する。
【００５９】
図７は、配信データの転送処理を示すフローチャートである。この図７は、図４の配信ルータ４によるデータ配信処理（Ｓ２２、Ｓ２４）を詳細に説明するものである。以下、配信ルータ４ａがフローＭ２を配信するＳ２４の場合を例示する。
【００６０】
Ｓ２０１として、配信ルータ４ａの受信インタフェース部３１は、マルチキャスト配信網２から下り方向のパケットを受信する。
Ｓ２０２として、Ｓ２０１で受信したパケットがマルチキャストか否かを判定する。この判定は、例えば、パケットのアドレスがクラスＤ（224.0.0.0〜239.255.255.255）のアドレスの場合をマルチキャストとすることで実現される。マルチキャストでないパケットの場合（Ｓ２０２，Ｎｏ）、Ｓ２０１で受信したパケットを、通常のパケット（ユニキャスト、ブロードキャストなどの非マルチキャストパケット）として転送する（Ｓ２０３）。
【００６１】
Ｓ２０４として、フロー判定部２３は、Ｓ２０１で受信したパケットのフロー特定情報（Source,Group）＝（１，２）が、配信制御テーブル２２ａ内に該当するエントリが存在するか否かを判定する。該当するエントリがないときには（Ｓ２０４，Ｎｏ）、Ｓ２０１で受信したパケットのフロー特定情報と、ルータ管理テーブル２４ａの自ルータ順位とから判定値C-flagや、その判定値C-flagを計算するための各パラメータ（Ｈ，Ｍ，Ｆ）を計算し、それらの計算結果を新規エントリとして、ルータ管理テーブル２４ａに登録する（Ｓ２０５）。
【００６２】
Ｓ２０６として、フロー判定部２３は、配信制御テーブル２２ａ内のフロー特定情報（１，２）に対応する判定値C-flagをもとに、判定式「判定値C-flag=１」により、自装置がＳ２０１で受信したパケットの配信担当か否かを判定する。Ｓ２０１で受信したパケットが自装置の配信担当でないときには（Ｓ２０６，Ｎｏ）、そのパケットを廃棄する（Ｓ２０９）。
【００６３】
Ｓ２０７として、配信フィルタ部２１は、配信フィルタリスト２１ａ内のフロー特定情報（１，２）に対応する配信中フラグを参照することにより、Ｓ２０１で受信したパケットが配信中（配信希望中という意味）か否かを判定する。配信中でないときには（Ｓ２０７，Ｎｏ）、そのパケットを廃棄する（Ｓ２０９）。
一方、配信中であるときには（Ｓ２０７，Ｙｅｓ）、配信フィルタ部２１は、Ｓ２０１で受信したパケットを該当する（配信フィルタリスト２１ａのインタフェース列で特定される）ホスト側インタフェース１４を介して、共有セグメント５へ転送する。そして、配信データの受信待ち状態へと戻すため、処理をＳ２０１へ戻す。
【００６４】
以上説明した本実施形態は、同じ共有セグメント５に接続される複数の配信ルータ４それぞれについて、フローごとに１台の配信担当を割り当てることで、フロー配信処理の負荷分散を実現する。よって、複数の配信ルータ４をクエリアとして複数同時に動作できるようすることで、ルータ処理負荷が平滑化され、負荷分散による配信効率の向上が期待できる。
さらに、同じフローを複数台の配信ルータ４で多重配信することを防止できるので、配信ルータ４の安定性を高めつつ、配信可能な最大マルチキャストストリーム数および総帯域量が増加する。
【符号の説明】
【００６５】
１（１ａ，１ｂ）  配信サーバ
２      マルチキャスト配信網
３（３ａ〜３ｃ）  リンク
４（４ａ〜４ｃ）  配信ルータ
５      共有セグメント
６（６ａ〜６ｃ）  ホスト
１１    サーバ側インタフェース
１２    サーバ側フレーム処理部
１３    ホスト側フレーム処理部
１４    ホスト側インタフェース
３１    受信インタフェース部
３２    フレーム受信部
３３    フレーム送信部
３４    送信インタフェース部
４１    受信インタフェース部
４２    フレーム受信部
４３    フレーム送信部
４４    送信インタフェース部
２０    転送制御部
２１    配信フィルタ部
２１ａ  配信フィルタリスト
２２    配信管理部
２２ａ  配信制御テーブル（配信制御用データ）
２３    フロー判定部
２４    ルータ管理部
２４ａ  ルータ管理テーブル（ルータ管理用データ）
【図１】
0005553425.tif 000004
【図２】
0005553425.tif 000005
【図３】
0005553425.tif 000006
【図４】
0005553425.tif 000007
【図５】
0005553425.tif 000008
【図６】
0005553425.tif 000009
【図７】
0005553425.tif 000010