(57)【要約】【課題】Fast-Leave可能なダウンストリームポートを自動的に学習することができるようにする。【解決手段】ＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１は、ＭＲパケット（IGMP/MLD Membership Reportパケット）の受信時にそのＭＲパケットを受信したダウンストリームポートとその送信元のクライアントとを対応づけて、ＩＧＭＰ／ＭＬＤクライアント管理ＤＢに登録する。また、グループ離脱パケットを受信した場合、ＧＳＱパケット（Group Specific Queryパケット）を送信する。そして、グループ離脱パケットを受信したダウンストリームポートに対応するクライアントが一台である場合には、離脱要求されたマルチキャストグループに関するエントリを、マルチキャストグループ管理ＤＢ等から削除する。【選択図】図２
2008312095.tif 000002
【特許請求の範囲】
【請求項１】
マルチキャストパケットを中継する中継装置であって、
マルチキャストパケットを受信するクライアントが接続されるポートが複数設けられ、ＭＡＣアドレスとポートとを対応付けるＭＡＣアドレスラーニングテーブルを保持するスイッチ部と、
マルチキャストパケットのグループであるマルチキャストグループを受信しているか否かを問い合わせる問い合わせパケットを送信する制御部とを備え、
制御部は、
マルチキャストグループの送信を要求したクライアントと、当該クライアントが接続されるポートとを対応付けたクライアント管理データベースを記憶するクライアント管理データベース記憶手段と、
マルチキャストグループの送信を要求したクライアントが接続されるポートと、当該マルチキャストグループの識別情報と、問い合わせパケットに対する応答を待つ時間であるライフタイムとを対応付けたマルチキャストグループ管理データベースを記憶するマルチキャストグループ管理データベース記憶手段と、
マルチキャストグループの送信を要求する送信要求パケットを受信したときに、送信要求パケットを受信したポートと、前記マルチキャストグループの識別情報と、前記マルチキャストグループに対して定められたライフタイムとを対応付けてマルチキャストグループ管理データベースに登録するとともに、マルチキャストグループのマルチキャストＭＡＣアドレスと、送信要求パケットを受信したポートとを対応付けて前記スイッチ部のＭＡＣアドレスラーニングテーブルに登録する登録手段と、
マルチキャストグループの送信停止を要求するグループ離脱パケットを受信したときに、前記マルチキャストグループを受信しているか否かを問い合わせる問い合わせパケットを送信する問い合わせ手段と、
グループ離脱パケットを受信したときに、クライアント管理データベースを参照して、グループ離脱パケットを受信したポートに対応するクライアント数が１つか複数かを判定するクライアント数判定手段と、
グループ離脱パケットを受信したポートに対応するクライアント数が１つである場合に、グループ離脱パケットによって送信停止を要求されたマルチキャストグループに対応するエントリを、マルチキャストグループ管理データベースと前記スイッチ部のＭＡＣアドレスラーニングテーブルとから削除する離脱処理手段と、
問い合わせ手段がマルチキャストグループを受信しているか否かを問い合わせる問い合わせパケットを送信した後に、問い合わせパケットに対する応答として、前記マルチキャストグループの送信を要求する送信要求パケットを受信したときに、当該送信要求パケットを受信したポートを、クライアントが高速離脱できないポートとして学習する学習手段とを有する
ことを特徴とする中継装置。
【請求項２】
制御部は、
グループ離脱パケットを受信したポートに対応するクライアント数が複数である場合に、問い合わせパケットによる問い合わせ対象となったマルチキャストグループに対応するライフタイムを、予め定められた時間よりも短縮するライフタイム短縮手段を有し、
学習手段は、問い合わせパケットを送信した後に、短縮されたライフタイムが経過する前に送信要求パケットを受信したときに、当該送信要求パケットを受信したポートを、クライアントが高速離脱できないポートとして学習する
請求項１に記載の中継装置。
【請求項３】
制御部は、
送信要求パケットを受信したときに、送信要求パケットを受信したポートと、送信要求パケットの送信元のクライアントとを対応付けてクライアント管理データベースに登録するクライアント登録手段を有する
請求項１または請求項２に記載の中継装置。
【請求項４】
問い合わせ手段は、問い合わせパケットをスイッチ部を介してクライアントに送信する請求項１から請求項３のうちのいずれか１項に記載の中継装置。
【請求項５】
ＩＧＭＰ／ＭＬＤプロキシ装置として用いられ、
スイッチ部がクライアントから受信した送信要求パケットおよびグループ離脱パケットを制御部に送信するルータ部を備え、
問い合わせ手段は、問い合わせパケットをルータ部およびスイッチ部を介してクライアントに送信する
請求項１から請求項３のうちのいずれか１項に記載の中継装置。
【請求項６】
マルチキャストパケットを受信するクライアントが接続されるポートが複数設けられ、ＭＡＣアドレスとポートとを対応付けるＭＡＣアドレスラーニングテーブルを保持するスイッチ部と、マルチキャストパケットのグループであるマルチキャストグループを受信しているか否かを問い合わせる問い合わせパケットを送信する制御部とを備え、制御部が、マルチキャストグループの送信を要求したクライアントと、当該クライアントが接続されるポートとを対応付けたクライアント管理データベースを記憶するクライアント管理データベース記憶手段と、マルチキャストグループの送信を要求したクライアントが接続されるポートと、当該マルチキャストグループの識別情報と、問い合わせパケットに対する応答を待つ時間であるライフタイムとを対応付けたマルチキャストグループ管理データベースを記憶するマルチキャストグループ管理データベース記憶手段とを有するマルチキャストパケットの中継装置に適用される中継方法であって、
マルチキャストグループの送信を要求する送信要求パケットを受信したときに、送信要求パケットを受信したポートと、前記マルチキャストグループの識別情報と、前記マルチキャストグループに対して定められたライフタイムとを対応付けてマルチキャストグループ管理データベースに登録するとともに、マルチキャストグループのマルチキャストＭＡＣアドレスと、送信要求パケットを受信したポートとを対応付けて前記スイッチ部のＭＡＣアドレスラーニングテーブルに登録し、
マルチキャストグループの送信停止を要求するグループ離脱パケットを受信したときに、前記マルチキャストグループを受信しているか否かを問い合わせる問い合わせパケットを送信し、
グループ離脱パケットを受信したときに、クライアント管理データベースを参照して、グループ離脱パケットを受信したポートに対応するクライアント数が１つか複数かを判定し、
グループ離脱パケットを受信したポートに対応するクライアント数が１つである場合に、グループ離脱パケットによって送信停止を要求されたマルチキャストグループに対応するエントリを、マルチキャストグループ管理データベースと前記スイッチ部のＭＡＣアドレスラーニングテーブルとから削除し、
マルチキャストグループを受信しているか否かを問い合わせる問い合わせパケットを送信した後に、問い合わせパケットに対する応答として、前記マルチキャストグループの送信を要求する送信要求パケットを受信したときに、当該送信要求パケットを受信したポートを、クライアントが高速離脱できないポートとして学習する
ことを特徴とする中継方法。
【請求項７】
グループ離脱パケットを受信したポートに対応するクライアント数が複数である場合に、問い合わせパケットによる問い合わせ対象となったマルチキャストグループに対応するライフタイムを、予め定められた時間よりも短縮し、
問い合わせパケットを送信した後に、短縮されたライフタイムが経過する前に送信要求パケットを受信したときに、当該送信要求パケットを受信したポートを、クライアントが高速離脱できないポートとして学習する
請求項６に記載の中継方法。
【請求項８】
マルチキャストパケットを受信するクライアントが接続されるポートが複数設けられ、ＭＡＣアドレスとポートとを対応付けるＭＡＣアドレスラーニングテーブルを保持するスイッチ部のＭＡＣアドレスラーニングテーブルにアクセス可能であり、マルチキャストグループの送信を要求したクライアントと、当該クライアントが接続されるポートとを対応付けたクライアント管理データベースを記憶するクライアント管理データベース記憶手段と、マルチキャストグループの送信を要求したクライアントが接続されるポートと、当該マルチキャストグループの識別情報と、問い合わせパケットに対する応答を待つ時間であるライフタイムとを対応付けたマルチキャストグループ管理データベースを記憶するマルチキャストグループ管理データベース記憶手段とを備えたコンピュータに搭載される中継プログラムであって、
コンピュータに、
マルチキャストグループの送信を要求する送信要求パケットを受信したときに、送信要求パケットを受信したポートと、前記マルチキャストグループの識別情報と、前記マルチキャストグループに対して定められたライフタイムとを対応付けてマルチキャストグループ管理データベースに登録するとともに、マルチキャストグループのマルチキャストＭＡＣアドレスと、送信要求パケットを受信したポートとを対応付けて前記スイッチ部のＭＡＣアドレスラーニングテーブルに登録する登録処理、
マルチキャストグループの送信停止を要求するグループ離脱パケットを受信したときに、前記マルチキャストグループを受信しているか否かを問い合わせる問い合わせパケットを送信する問い合わせ処理、
グループ離脱パケットを受信したときに、クライアント管理データベースを参照して、グループ離脱パケットを受信したポートに対応するクライアント数が１つか複数かを判定するクライアント数判定処理、
グループ離脱パケットを受信したポートに対応するクライアント数が１つである場合に、グループ離脱パケットによって送信停止を要求されたマルチキャストグループに対応するエントリを、マルチキャストグループ管理データベースと前記スイッチ部のＭＡＣアドレスラーニングテーブルとから削除する離脱処理、および
マルチキャストグループを受信しているか否かを問い合わせる問い合わせパケットを送信した後に、問い合わせパケットに対する応答として、前記マルチキャストグループの送信を要求する送信要求パケットを受信したときに、当該送信要求パケットを受信したポートを、クライアントが高速離脱できないポートとして学習する学習処理
を実行させるための中継プログラム。
【請求項９】
コンピュータに
グループ離脱パケットを受信したポートに対応するクライアント数が複数である場合に、問い合わせパケットによる問い合わせ対象となったマルチキャストグループに対応するライフタイムを、予め定められた時間よりも短縮するライフタイム短縮処理を実行させ、
学習処理で、問い合わせパケットを送信した後に、短縮されたライフタイムが経過する前に送信要求パケットを受信したときに、当該送信要求パケットを受信したポートを、クライアントが高速離脱できないポートとして学習させる
請求項８に記載の中継プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、中継装置、中継方法および中継プログラムに関し、特にマルチキャスト通信で用いられる中継装置、中継方法および中継プログラムに関する。
【背景技術】
【０００２】
マルチキャスト通信に適用されるプロトコルとして、ＩＧＭＰ（internet group management protocol）やＭＬＤ（multicast listener discovery）がある。ＩＧＭＰは、ＩＰｖ４でのマルチキャスト通信に適用されるプロトコルであり、ＭＬＤは、ＩＰｖ６でのマルチキャスト通信に適用されるプロトコルである。ＩＧＭＰとＭＬＤは、いずれも同様の動作を規定している。マルチキャスト通信にＩＧＭＰとＭＬＤとが両方とも適用されていてもＩＧＭＰとＭＬＤとが互いの動作に影響を与えることはない。以下、ＩＧＭＰまたはＭＬＤ、あるいはＩＧＭＰとＭＬＤの両方が適用されていることをＩＧＭＰ／ＭＬＤと記す。
【０００３】
マルチキャスト送信されるパケット（以下、マルチキャストパケットと記す。）は、グループという単位で区別される。このグループをマルチキャストグループと呼ぶ。各マルチキャストグループ毎にマルチキャストアドレスが定められる。クライアントが、あるマルチキャストグループのマルチキャストパケットの受信を開始することを、マルチキャストグループに加入すると表現する。また、クライアントが、あるマルチキャストグループのマルチキャストパケットの受信を停止することを、マルチキャストグループから離脱すると表現する。
【０００４】
また、クライアントが、あるマルチキャストグループのマルチキャストパケットを受信することを、マルチキャストグループの視聴と表現する場合もある。例えば、マルチキャストグループを視聴しているクライアントとは、そのマルチキャストグループのマルチキャストパケットを受信しているクライアントを意味する。
【０００５】
また、以下の説明では、あるマルチキャストグループのマルチキャストパケットを、単にマルチキャストグループのパケットと記す。
【０００６】
ＩＧＭＰ／ＭＬＤによってマルチキャスト送信を行うシステムでは、マルチキャストパケットの送信元となる装置（以下、送信元サーバと記す。）が、マルチキャストグループのパケットを送信する。中継装置（例えば、マルチキャストルータ）は、マルチキャストグループのパケットを、そのマルチキャストグループに加入した各クライアントに送信する。ＩＧＭＰ／ＭＬＤによって通信を行うクライアントを、以下、ＩＧＭＰ／ＭＬＤクライアントと記す。ここでは、中継装置がマルチキャストルータである場合を例にして説明する。
【０００７】
マルチキャストルータは、General Queryパケット（以下、ＧＱパケットと記す。）や、Group Specific Queryパケット（以下、ＧＳＱパケットと記す）をＩＧＭＰ／ＭＬＤクライアントに送信し、応答の有無によって、ＩＧＭＰ／ＭＬＤクライアントの視聴状態を確認する。すなわち、各クライアントがどのマルチキャストグループのパケットを受信しているかや、特定のマルチキャストグループのパケットを受信しているクライアントがどのクライアントであるのかを確認する。ＧＱパケットは、各クライアントが視聴しているマルチキャストグループを確認するために用いられる。ＧＳＱパケットは、特定のマルチキャストグループを視聴中のクライアントが存在するかを確認するために用いられる。
【０００８】
ＩＧＭＰ／ＭＬＤクライアントは、新たにマルチキャストグループに加入する場合、そのＩＧＭＰ／ＭＬＤクライアント自身にそのマルチキャストグループのパケットを送信することを要求するIGMP/MLD Membership Reportパケット（以下、ＭＲパケットと記す。）をマルチキャストルータに送信する。また、マルチキャストグループを視聴中のＩＧＭＰ／ＭＬＤクライアントは、ＧＱパケットまたはＧＳＱパケットを受信した場合に、そのＧＱパケットまたはＧＳＱパケットによって指定された時間以内にＭＲパケットを送信して、視聴しているマルチキャストグループを通知する。ただし、ＩＧＭＰ／ＭＬＤクライアントは、ＧＱパケットまたはＧＳＱパケットに応答して視聴中のマルチキャストグループを通知するＭＲパケットを送信する前に、他のＩＧＭＰ／ＭＬＤクライアントによってそのマルチキャストグループを通知するＭＲパケットが送信され、そのＭＲパケットを受信した場合には、ＭＲパケットを送信しない。
【０００９】
また、ＩＧＭＰ／ＭＬＤクライアントは、マルチキャストグループの視聴を停止する場合、そのマルチキャストグループのパケットの送信停止を要求するマルチキャストグループ離脱パケット（以下、グループ離脱パケットと記す。）を、マルチキャストルータに送信する。グループ離脱パケットを受信したマルチキャストルータは、送信停止を要求されたマルチキャストグループを視聴中の他のＩＧＭＰ／ＭＬＤクライアントが存在するかどうかを確認するため、そのマルチキャストグループを視聴しているか否かを問い合わせるＧＳＱパケットを送信する。マルチキャストルータは、そのＧＳＱパケットに対する応答が所定時間（Max Response Time ）以内にない場合（ＭＲパケットを受信しない場合）、グループ離脱パケットを送信したＩＧＭＰ／ＭＬＤクライアント以外に、送信停止を要求されたマルチキャストグループを視聴しているＩＧＭＰ／ＭＬＤクライアントは存在しないと判定し、そのマルチキャストグループの配信を停止する。一方、ＧＳＱパケットを送信してから所定時間（Max Response Time ）以内にＭＲパケットを受信した場合には、マルチキャストグループの配信を継続する。
【００１０】
このようにＩＧＭＰ／ＭＬＤでは、マルチキャストルータは、マルチキャストグループの視聴状態しか管理しないというポリシで設計されているため、それぞれのＩＧＭＰ／ＭＬＤクライアントがマルチキャストグループから離脱するときに、マルチキャストルータは、そのマルチキャストグループを視聴している他のＩＧＭＰ／ＭＬＤクライアントが存在するか否かをＧＳＱパケットを送信することによって確認する必要がある。ＧＳＱパケットに対する応答を待つ所定時間（Max Response Time）の間は、マルチキャストパケットの配信を停止できないという問題があった。特に、ザッピングと呼ばれる高速にチャンネルを切り替える操作を行う場合に、マルチキャストグループへの加入と離脱を繰り返すため、一時的にたくさんのマルチキャストグループに加入しているという状態が発生する。その結果、データが大量に流れ、伝送媒体や中継機器の性能を越えてしまい、マルチキャスト送信されるデータが転送されなくなるという課題があった。
【００１１】
ＲＦＣ４５４５等で説明されている一般的なＩＧＭＰ／ＭＬＤスヌーピング（snooping）装置では、この課題を解決するため、“Fast-Leave”と呼ばれる機能を搭載している。図７は、一般的なＩＧＭＰ／ＭＬＤスヌーピング装置の例を示す説明図である。ＩＧＭＰ／ＭＬＤスヌーピング装置２０のダウンストリームポート（downstream port ）側でＩＧＭＰ／ＭＬＤクライアント２１〜２４はマルチキャストパケットを受信する。また、図７に示す例では、ＩＧＭＰ／ＭＬＤクライアント２３，２４は、Ｌ２スイッチ２５を介してＩＧＭＰ／ＭＬＤスヌーピング装置２０とパケットを送受信する。
【００１２】
ＩＧＭＰ／ＭＬＤスヌーピング装置２０は、ダウンストリームポート側で視聴されているマルチキャストグループを管理する。そして、ＩＧＭＰ／ＭＬＤクライアント２１〜２４から送信されるＩＧＭＰ／ＭＬＤパケットをダウンストリームポート側には転送せず、ダウンストリームポートに視聴しているＩＧＭＰ／ＭＬＤクライアントが存在しない場合のみグループ離脱パケットをアップストリームポート（upstream port ）に転送する。ＩＧＭＰ／ＭＬＤパケットとは、ＩＧＭＰまたはＭＬＤで規定された制御パケットである。上記のような処理により、一般的なＩＧＭＰ／ＭＬＤスヌーピング装置２０では、マルチキャストグループに加入したＩＧＭＰ／ＭＬＤクライアントが、図７に例示するＩＧＭＰ／ＭＬＤクライアント２１，２２のようにダウンストリームポートに直接接続されたＩＧＭＰ／ＭＬＤクライアントのみであることが保証される場合、ＩＧＭＰ／ＭＬＤクライアントからのグループ離脱パケットを受信後、直ちにマルチキャストグループの配信を停止することができる。この機能がFast-Leave機能である。
【００１３】
また、データ配信システムの例が、特許文献１に記載されている。特許文献１に記載されたデータ配信システムは、クライアントから、あるネットワークを介して、受信開始要求を意味するReportパケットを受信した場合、そのネットワークに対応する加入状態テーブルに、そのクライアントのＭＡＣアドレスを登録し、マルチキャストデータの配信を開始する。その後、そのクライアントからLeave Groupパケットを受信した場合には、加入状態テーブルから、そのクライアントのＭＡＣアドレスを削除する。
【００１４】
また、ルーティング装置の例が、特許文献２に記載されている。特許文献２には、ルーティング装置が、マルチキャストグループに参加しているクライアントの数を、マルチキャストグループ毎にカウントすることが記載されている。
【００１５】
【特許文献１】特開２００３−２４４２３０号公報（段落００４８−００５７、図２）
【特許文献２】特開２００４−５６５８４号公報（段落００１５）
【発明の開示】
【発明が解決しようとする課題】
【００１６】
図７に例示した一般的なＩＧＭＰ／ＭＬＤスヌーピング装置には、次のような問題がある。
【００１７】
Ｌ２スイッチ２５を介してＩＧＭＰ／ＭＬＤスヌーピング装置２０のダウンストリームポートに接続されているＩＧＭＰ／ＭＬＤクライアント２３，２４（図７参照。）は、互いのＭＲパケットを検出してしまう。このＩＧＭＰ／ＭＬＤクライアント２３，２４のように、１つのダウンストリームポートに複数のＩＭＧＰ／ＭＬＤクライアントが存在する場合、そのＩＧＭＰ／ＭＬＤクライアントは互いのＭＲパケットを検出するので、Fast-Leave機能を有効にしてしまうと、同じマルチキャストグループを２つのＩＧＭＰ／ＭＬＤクライアントで同時に視聴できなくなってしまう。
【００１８】
また、各ポートでFast-Leave機能をオン、オフのどちらかにしかできないため、１つのダウンストリームポートに複数台のＩＧＭＰ／ＭＬＤクライアントが接続されることがあり得る環境では、Fast-Leave機能を使用することができない。
【００１９】
このように、Fast-Leave機能では、ダウンストリームポートに接続されるＩＭＧＰ／ＭＬＤクライアントの接続構成が明確なときは、Fast-Leave機能をオンまたはオフにすることで最適な設定にすることができる。しかし、実際にマルチキャストパケットを配信するサービスにおいては、ダウンストリームポートに接続されるＩＭＧＰ／ＭＬＤクライアントの接続構成を保証することは困難である。そのため、Fast-Leave機能をオンとすることができる場合であっても、Fast-Leave機能を使用することができないことが多いという問題があった。
【００２０】
また、特許文献１に記載された発明を中継装置に適用したとしても、加入状態テーブルにクライアントの情報が登録されていないポートに関して、Fast-Leave機能を適用することができるか否かを判断することができない。
【００２１】
そこで、本発明は、Fast-Leave可能なダウンストリームポートを学習することができる中継装置、中継方法および中継プログラムを提供することを目的とする。
【課題を解決するための手段】
【００２２】
本発明の中継装置は、マルチキャストパケットを中継する中継装置であって、マルチキャストパケットを受信するクライアントが接続されるポートが複数設けられ、ＭＡＣアドレスとポートとを対応付けるＭＡＣアドレスラーニングテーブルを保持するスイッチ部と、マルチキャストパケットのグループであるマルチキャストグループを受信しているか否かを問い合わせる問い合わせパケットを送信する制御部とを備え、制御部が、マルチキャストグループの送信を要求したクライアントと、当該クライアントが接続されるポートとを対応付けたクライアント管理データベースを記憶するクライアント管理データベース記憶手段と、マルチキャストグループの送信を要求したクライアントが接続されるポートと、当該マルチキャストグループの識別情報と、問い合わせパケットに対する応答を待つ時間であるライフタイムとを対応付けたマルチキャストグループ管理データベースを記憶するマルチキャストグループ管理データベース記憶手段と、マルチキャストグループの送信を要求する送信要求パケットを受信したときに、送信要求パケットを受信したポートと、前記マルチキャストグループの識別情報と、前記マルチキャストグループに対して定められたライフタイムとを対応付けてマルチキャストグループ管理データベースに登録するとともに、マルチキャストグループのマルチキャストＭＡＣアドレスと、送信要求パケットを受信したポートとを対応付けて前記スイッチ部のＭＡＣアドレスラーニングテーブルに登録する登録手段と、マルチキャストグループの送信停止を要求するグループ離脱パケットを受信したときに、前記マルチキャストグループを受信しているか否かを問い合わせる問い合わせパケットを送信する問い合わせ手段と、グループ離脱パケットを受信したときに、クライアント管理データベースを参照して、グループ離脱パケットを受信したポートに対応するクライアント数が１つか複数かを判定するクライアント数判定手段と、グループ離脱パケットを受信したポートに対応するクライアント数が１つである場合に、グループ離脱パケットによって送信停止を要求されたマルチキャストグループに対応するエントリを、マルチキャストグループ管理データベースと前記スイッチ部のＭＡＣアドレスラーニングテーブルとから削除する離脱処理手段と、問い合わせ手段がマルチキャストグループを受信しているか否かを問い合わせる問い合わせパケットを送信した後に、問い合わせパケットに対する応答として、前記マルチキャストグループの送信を要求する送信要求パケットを受信したときに、当該送信要求パケットを受信したポートを、クライアントが高速離脱できないポートとして学習する学習手段とを有することを特徴とする。
【００２３】
また、本発明の中継方法は、マルチキャストパケットを受信するクライアントが接続されるポートが複数設けられ、ＭＡＣアドレスとポートとを対応付けるＭＡＣアドレスラーニングテーブルを保持するスイッチ部と、マルチキャストパケットのグループであるマルチキャストグループを受信しているか否かを問い合わせる問い合わせパケットを送信する制御部とを備え、制御部が、マルチキャストグループの送信を要求したクライアントと、当該クライアントが接続されるポートとを対応付けたクライアント管理データベースを記憶するクライアント管理データベース記憶手段と、マルチキャストグループの送信を要求したクライアントが接続されるポートと、当該マルチキャストグループの識別情報と、問い合わせパケットに対する応答を待つ時間であるライフタイムとを対応付けたマルチキャストグループ管理データベースを記憶するマルチキャストグループ管理データベース記憶手段とを有するマルチキャストパケットの中継装置に適用される中継方法であって、マルチキャストグループの送信を要求する送信要求パケットを受信したときに、送信要求パケットを受信したポートと、前記マルチキャストグループの識別情報と、前記マルチキャストグループに対して定められたライフタイムとを対応付けてマルチキャストグループ管理データベースに登録するとともに、マルチキャストグループのマルチキャストＭＡＣアドレスと、送信要求パケットを受信したポートとを対応付けて前記スイッチ部のＭＡＣアドレスラーニングテーブルに登録し、マルチキャストグループの送信停止を要求するグループ離脱パケットを受信したときに、前記マルチキャストグループを受信しているか否かを問い合わせる問い合わせパケットを送信し、グループ離脱パケットを受信したときに、クライアント管理データベースを参照して、グループ離脱パケットを受信したポートに対応するクライアント数が１つか複数かを判定し、グループ離脱パケットを受信したポートに対応するクライアント数が１つである場合に、グループ離脱パケットによって送信停止を要求されたマルチキャストグループに対応するエントリを、マルチキャストグループ管理データベースと前記スイッチ部のＭＡＣアドレスラーニングテーブルとから削除し、マルチキャストグループを受信しているか否かを問い合わせる問い合わせパケットを送信した後に、問い合わせパケットに対する応答として、前記マルチキャストグループの送信を要求する送信要求パケットを受信したときに、当該送信要求パケットを受信したポートを、クライアントが高速離脱できないポートとして学習することを特徴とする。
【００２４】
また、本発明の中継プログラムは、マルチキャストパケットを受信するクライアントが接続されるポートが複数設けられ、ＭＡＣアドレスとポートとを対応付けるＭＡＣアドレスラーニングテーブルを保持するスイッチ部のＭＡＣアドレスラーニングテーブルにアクセス可能であり、マルチキャストグループの送信を要求したクライアントと、当該クライアントが接続されるポートとを対応付けたクライアント管理データベースを記憶するクライアント管理データベース記憶手段と、マルチキャストグループの送信を要求したクライアントが接続されるポートと、当該マルチキャストグループの識別情報と、問い合わせパケットに対する応答を待つ時間であるライフタイムとを対応付けたマルチキャストグループ管理データベースを記憶するマルチキャストグループ管理データベース記憶手段とを備えたコンピュータに搭載される中継プログラムであって、コンピュータに、マルチキャストグループの送信を要求する送信要求パケットを受信したときに、送信要求パケットを受信したポートと、前記マルチキャストグループの識別情報と、前記マルチキャストグループに対して定められたライフタイムとを対応付けてマルチキャストグループ管理データベースに登録するとともに、マルチキャストグループのマルチキャストＭＡＣアドレスと、送信要求パケットを受信したポートとを対応付けて前記スイッチ部のＭＡＣアドレスラーニングテーブルに登録する登録処理、マルチキャストグループの送信停止を要求するグループ離脱パケットを受信したときに、前記マルチキャストグループを受信しているか否かを問い合わせる問い合わせパケットを送信する問い合わせ処理、グループ離脱パケットを受信したときに、クライアント管理データベースを参照して、グループ離脱パケットを受信したポートに対応するクライアント数が１つか複数かを判定するクライアント数判定処理、グループ離脱パケットを受信したポートに対応するクライアント数が１つである場合に、グループ離脱パケットによって送信停止を要求されたマルチキャストグループに対応するエントリを、マルチキャストグループ管理データベースと前記スイッチ部のＭＡＣアドレスラーニングテーブルとから削除する離脱処理、およびマルチキャストグループを受信しているか否かを問い合わせる問い合わせパケットを送信した後に、問い合わせパケットに対する応答として、前記マルチキャストグループの送信を要求する送信要求パケットを受信したときに、当該送信要求パケットを受信したポートを、クライアントが高速離脱できないポートとして学習する学習処理を実行させることを特徴とする。
【発明の効果】
【００２５】
本発明によれば、クライアントが高速離脱することができないポートを自動的に学習することができるので、その結果、クライアントが高速離脱することができないポートでないポートをFast-Leave可能なダウンストリームポートとして学習することができる。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の実施例を図面を参照して説明する。
なお、以下に示す各実施例の説明においても、グループとして区別されたマルチキャストパケットのグループをマルチキャストグループと呼ぶ。また、ＩＧＭＰ／ＭＬＤクライアントが、あるマルチキャストグループのマルチキャストパケットの受信を開始することを、マルチキャストグループに加入すると記す。また、ＩＧＭＰ／ＭＬＤクライアントが、あるマルチキャストグループのマルチキャストパケットの受信を停止することを、マルチキャストグループから離脱すると記す。また、マルチキャストグループを視聴するとは、そのマルチキャストグループのパケットを受信していることを意味する。また、ＩＧＭＰ／ＭＬＤパケットとは、ＩＧＭＰまたはＭＬＤで規定された制御パケットであり、ＩＧＭＰ／ＭＬＤパケットの例として、ＭＲパケット、グループ離脱パケット、ＧＱパケット、ＧＳＱパケットがある。
【００２７】
実施例１．
図１は、本発明の中継装置の例を示すブロック図である。第１の実施例では、中継装置が、ＩＧＭＰ／ＭＬＤスヌーピング（snooping）機能を有するＩＧＭＰ／ＭＬＤスヌーピング装置であるものとして説明する。ＩＧＭＰ／ＭＬＤスヌーピングとは、あるマルチキャストグループのパケットを、そのマルチキャストグループを視聴しているＩＧＭＰ／ＭＬＤクライアントが接続しているポートからのみ送信することをいう。ＩＧＭＰ／ＭＬＤスヌーピング装置１には、ＩＧＭＰ／ＭＬＤが適用される。
【００２８】
図１に示すように、ＩＧＭＰ／ＭＬＤスヌーピング装置（中継装置）１は、ＩＧＭＰ／ＭＬＤ処理部１１と、ＩＧＭＰ／ＭＬＤスヌーピング機能つきＬ２スイッチ部（以下、Ｌ２スイッチ部と記す。）１２とを備える。ＩＧＭＰ／ＭＬＤ処理部１１には、アップストリームポート（upstream port ）が設けられ、Ｌ２スイッチ部１２には、複数のダウンストリームポート（downstream port ）が設けられている。ＩＧＭＰ／ＭＬＤ処理部１１は、アップストリームポートを介して送信元サーバ（図示せず。）からマルチキャストパケットを受信する。また、ダウンストリームポートには、ＩＧＭＰ／ＭＬＤクライアントが接続されている。なお、図１、図２および図６では、ＩＧＭＰ／ＭＬＤクライアントの図示を省略している。ダウンストリームポートとＩＧＭＰ／ＭＬＤクライアントとの接続態様は、以下の何れであってもよい。すなわち、ＩＧＭＰ／ＭＬＤクライアントが直接ダウンストリームポートに接続されていてもよい。また、図７に示すＩＧＭＰ／ＭＬＤクライアント２３，２４のように、ＩＧＭＰ／ＭＬＤスヌーピング装置１とは別に設けられたＬ２スイッチ等を介してＩＧＭＰ／ＭＬＤクライアントがダウンストリームポートに接続されていてもよい。
【００２９】
Ｌ２スイッチ部１２の構成は、当業者に知られているＩＧＭＰ／ＭＬＤスヌーピング機能つきＬ２スイッチと同様であり、以下の説明では、本発明に関わる動作を除き、Ｌ２スイッチ部１２の説明を省略する。
【００３０】
ＩＧＭＰ／ＭＬＤ処理部１１は、Ｌ２スイッチ部１２がＩＧＭＰ／ＭＬＤクライアントから受信したＩＧＭＰ／ＭＬＤパケットをＬ２スイッチ部１２から受信する。そして、ＩＧＭＰ／ＭＬＤ処理部１１は、各ダウンストリームポートで視聴されているマルチキャストグループと、マルチキャストグループを視聴しているＩＧＭＰ／ＭＬＤクライアントを学習する。換言すると、ＩＧＭＰ／ＭＬＤ処理部１１は、Ｌ２スイッチ部１２から受信したＩＧＭＰ／ＭＬＤパケットに基づいて、ＩＧＭＰ／ＭＬＤクライアントで視聴されているマルチキャストグループと、マルチキャストグループを視聴しているＩＧＭＰ／ＭＬＤクライアントとを管理する。ＩＧＭＰ／ＭＬＤ処理部１１は、受信したＩＧＭＰ／ＭＬＤパケットを解析して、マルチキャストグループへの加入やマルチキャストグループからの離脱の要求に応じた処理を行い、受信したＩＧＭＰ／ＭＬＤパケットをアップストリームポートから転送する。
【００３１】
また、ＩＧＭＰ／ＭＬＤ処理部１１は、各ダウンストリームポートに接続されたＩＧＭＰ／ＭＬＤクライアントで視聴されているマルチキャストグループの情報をＬ２スイッチ部１２に登録する。マルチキャストグループの情報として、具体的にはマルチキャストＭＡＣアドレスを登録する。
【００３２】
また、ＩＧＭＰ／ＭＬＤ処理部１１は、アップストリームポートから受信したパケットをＬ２スイッチ部１２に転送する。
【００３３】
ＩＧＭＰ／ＭＬＤ処理部１１の処理の具体的な内容については、後述する。
【００３４】
Ｌ２スイッチ部１２は、ＩＧＭＰ／ＭＬＤクライアントが送信したＩＧＭＰ／ＭＬＤパケットをダウンストリームポートから受信すると、そのＩＧＭＰ／ＭＬＤパケットをＩＧＭＰ／ＭＬＤ処理部１１のみへ転送する。Ｌ２スイッチ部１２は、ダウンストリームポートから受信したＩＧＭＰ／ＭＬＤパケットを他のダウンストリームポートから転送することは行わない。
【００３５】
また、Ｌ２スイッチ部１２は、ＩＧＭＰ／ＭＬＤ処理部１１から転送されるマルチかキャストパケットを、ＩＧＭＰ／ＭＬＤ処理部１１によってＭＡＣアドレスラーニングテーブルに登録されたマルチキャストＭＡＣアドレスとダウンストリームポートの情報に基づいてＩＧＭＰ／ＭＬＤクライアントに送信する。
【００３６】
図２は、図１に示したＩＧＭＰ／ＭＬＤスヌーピング装置（中継装置）をより詳細に示すブロック図である。図１で示した構成要素と同一の構成要素には、図１と同一の符号を付している。
【００３７】
Ｌ２スイッチ部（ＩＧＭＰ／ＭＬＤスヌーピング機能つきＬ２スイッチ部）１２は、ＭＡＣアドレスラーニングテーブルを登録する記憶装置（図示せず。）を備える。Ｌ２スイッチ部は、ＩＧＭＰ／ＭＬＤクライアントが送信したＩＧＭＰ／ＭＬＤパケットをダウンストリームポートから受信し、ブリッジ処理を行う。ＭＡＣアドレスラーニングテーブルは、個々のダウンストリームポートとＭＡＣアドレスとを対応付けたテーブルである。Ｌ２スイッチ部１２は、ダウンストリームポートからパケットを送信する場合、そのパケットの宛先となるＭＡＣアドレスに対応するダウンストリームポートからパケットを送信する。また、ブリッジ処理は、クライアントからパケットを受信したときに、そのクライアントのＭＡＣアドレス（受信したパケットの送信元ＭＡＣアドレス）と、そのパケットを受信したダウンストリームポートとの対応関係をＭＡＣアドレスラーニングテーブルに登録する処理である。本発明では、ＭＡＣアドレスラーニングテーブルには、クライアントのＭＡＣアドレスとダウンストリームポートとの対応関係だけでなく、マルチキャストＭＡＣアドレスとダウンストリームポートとの対応関係も登録される。マルチキャストＭＡＣアドレスとダウンストリームポートとの対応関係は、ＩＧＭＰ／ＭＬＤ処理部１１によって登録される。
【００３８】
また、既に説明したように、Ｌ２スイッチ部１２は、ダウンストリームポートからＩＧＭＰ／ＭＬＤパケットを受信した場合、そのＩＧＭＰ／ＭＬＤパケットをＩＧＭＰ／ＭＬＤ処理部１１にのみ転送する。
【００３９】
また、ＩＧＭＰ／ＭＬＤ処理部１１は、マルチキャストグループと、マルチキャストグループを視聴しているＩＧＭＰ／ＭＬＤクライアントとを管理して、マルチキャストグループへの加入やマルチキャストグループからの離脱の要求に応じた処理を行う等の処理を行う。
【００４０】
ＩＧＭＰ／ＭＬＤ処理部１１の構成および具体的な処理の内容について説明する。図２に示すように、ＩＧＭＰ／ＭＬＤ処理部１１は、ＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１と、ＩＧＭＰ／ＭＬＤクライアント管理データベース部１１２と、マルチキャストアドレス管理部１１３と、マルチキャストグループ管理データベース部１１４とを備える。以下、ＩＧＭＰ／ＭＬＤクライアント管理データベース部１１２をＩＧＭＰ／ＭＬＤクライアント管理ＤＢ部１１２と記し、マルチキャストグループ管理データベース部１１４をマルチキャストグループ管理ＤＢ部１１４と記す。
【００４１】
マルチキャストグループ管理ＤＢ部１１４は、マルチキャスト管理ＤＢ（データベース）を記憶する記憶装置である。図３は、マルチキャストグループ管理ＤＢの例を示す説明図である。図３に示すように、マルチキャスト管理ＤＢは、ポート番号と、ＩＧＭＰ／ＭＬＤクライアントに視聴されるマルチキャストグループのマルチキャストアドレスと、そのマルチキャストグループの送信元サーバのＩＰアドレス（“Source Specific Address ”と呼ばれる。）と、ライフタイムとを対応づけたデータの集合である。
【００４２】
ポート番号は、個々のダウンストリームポートを識別するポート識別情報である。ここでは、ポート識別情報が番号である場合を例示しているが、ポート識別情報は番号に限定されない。
【００４３】
マルチキャスト管理ＤＢに含まれるマルチキャストアドレスは、送信元サーバがマルチキャストグループのパケットを送信する際に、そのマルチキャストパケットに送信先として付加するマルチキャストＩＰアドレスである。
【００４４】
送信元サーバのＩＰアドレス（Source Specific Address ）は、マルチキャストグループのパケットを送信する送信元サーバのＩＰアドレスである。マルチキャストグループは、マルチキャストＩＰアドレスと送信元サーバのＩＰアドレスとによって管理することができる。なお、送信元サーバのＩＰアドレス（Source Specific Address ）は、ＩＧＭＰｖ３／ＭＬＤｖ２を適用する際にオプションで用いられる。ＩＧＭＰｖ３／ＭＬＤｖ２以外のバージョンのＩＧＭＰ／ＭＬＤが適用され、Source Specific Address を用いない場合には、マルチキャストＩＰアドレスによってマルチキャストグループを識別すればよい。
【００４５】
ライフタイムは、ＧＱパケットまたはＱＳＱパケットの送信後にＩＧＭＰ／ＭＬＤクライアントからの応答を待つ時間である。ＧＱパケットまたはＧＳＱパケットの送信後、一定時間以内に、マルチキャストグループを視聴中である旨の応答がなければ、そのマルチキャストグループを視聴しているＩＧＭＰ／ＭＬＤクライアントがないと判定される。ライフタイムは、この一定時間である。従って、ＧＱパケットまたはＧＳＱパケットの送信後に、マルチキャストグループに応じたライムタイムが経過するまでにそのマルチキャストグループを指定したＭＲパケットを受信しなければ、そのマルチキャストパケットを視聴中のＩＧＭＰ／ＭＬＤクライアントは存在しないと判定される。ライムタイムは、マルチキャストグループ毎に予め定められている。なお、ＧＱパケットに対する応答を待つ時間（Max Response Time ）と、ＧＳＱパケットに対する応答を待つ時間とが、異なる値として定められていてもよい。
【００４６】
ＩＧＭＰ／ＭＬＤクライアント管理ＤＢ部１１２は、ＩＧＭＰ／ＭＬＤクライアント管理ＤＢ（データベース）を記憶するデータベースである。図４は、ＩＧＭＰ／ＭＬＤクライアント管理ＤＢの例を示す説明図である。図４に示すように、ＩＧＭＰ／ＭＬＤクライアント管理ＤＢは、ポート番号と、ＩＧＭＰ／ＭＬＤパケットの送信元のＭＡＣアドレス（すなわちＩＧＭＰ／ＭＬＤパケットを送信したＩＧＭＰ／ＭＬＤクライアントのＭＡＣアドレス）とを対応付けたデータの集合である。ＩＧＭＰ／ＭＬＤクライアント管理ＤＢを参照することによって、各ダウンストリームポート毎に何台のＩＧＭＰ／ＭＬＤクライアントが接続されているかを判定することができる。例えば、図４に示す例では、ポート番号１とＭＡＣアドレスとの組み合わせが２つ登録されているので、ポート番号１のダウンストリームポートに接続されたＩＧＭＰ／ＭＬＤクライアントが２台存在すると判定される。
【００４７】
ＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１は、アップストリームポートから受信したパケットをＬ２スイッチ部１２に転送する。従って、ＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１は、送信元サーバが送信したマルチキャストパケットをアップストリームポートから受信すると、そのマルチキャストパケットをＬ２スイッチ部１２に転送する。
【００４８】
また、ＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１は、Ｌ２スイッチ部１２がＩＧＭＰ／ＭＬＤクライアントから受信したパケットをＬ２スイッチ部１２から受信する。ＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１は、Ｌ２スイッチ部１２から受信したパケットがＩＧＭＰ／ＭＤＬパケットでなければ、そのパケットをアップストリームポートから送信する。一方、Ｌ２スイッチ部１２から受信したパケットがＩＧＭＰ／ＭＤＬパケットであれば、そのパケットを解析して、パケットの種類に応じて、マルチキャストグループ管理ＤＢへのマルチキャストグループに関するデータの追加や削除、Ｌ２スイッチ部１２のＭＡＣアドレスラーニングテーブル（図示せず。）へのマルチキャストＭＡＣアドレスの追加登録等を行う。また、パケットの種類に応じて、ＩＧＭＰ／ＭＬＤクライアント管理ＤＢへのＭＡＣアドレスとポート番号の追加登録も行う。
【００４９】
また、ＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１は、定期的にＧＱパケットをＬ２スイッチ部１２を介して送信する。このとき、ＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１は、ＧＱパケットをＬ２スイッチ部１２に送信し、Ｌ２スイッチ部１２は、各ダウンストリームポートからＧＱパケットを送信する。
【００５０】
マルチキャストアドレス管理部１１３は、マルチキャストグループ管理ＤＢ部１１４に記憶されたマルチキャストグループ管理ＤＢを監視する。そして、ＧＱパケットまたはＧＳＱパケットの送信後に、ＩＧＭＰ／ＭＬＤクライアントからの応答を待ち、定められた時間（ライフタイム）が経過するまでに、マルチキャストグループを指定したＭＲパケットを受信しなければ、そのマルチキャストグループに該当するエントリをマルチキャストグループ管理ＤＢから削除する。マルチキャストアドレス管理部１１３は、さらにマルチキャストアドレス管理部１１３は、そのマルチキャストグループに該当するエントリをＬ２スイッチ部１２のＭＡＣアドレスラーニングテーブル（図示せず。）から削除する。具体的には、そのマルチキャストグループのマルチキャストＭＡＣアドレスに対応するエントリを削除する。
【００５１】
なお、ＧＱパケットは、各ＩＧＭＰ／ＭＬＤクライアントが視聴しているマルチキャストグループを全て申告させるための問い合わせパケットであるので、ＧＱパケットにはマルチキャストグループの識別情報（例えば、マルチキャストアドレス）は含まれない。一方、ＧＳＱパケットは、特定のマルチキャストグループを視聴中のクライアントが存在するかを問い合わせるためのパケットであるので、マルチキャストグループの識別情報（例えば、マルチキャストアドレス）が含まれる。
【００５２】
既に説明したように、ＩＧＭＰ／ＭＬＤクライアントは、ＧＱパケットまたはＧＳＱパケットを受信した場合、そのパケットで指定された時間以内に、視聴しているマルチキャストグループを通知する。すなわち、視聴しているマルチキャストグループの識別情報（例えば、マルチキャストアドレス）を含むＭＲパケットを送信する。ただし、指定された時間以内に他のＩＧＭＰ／ＭＬＤクライアントによって、そのマルチキャストグループの識別情報（例えば、マルチキャストアドレス）を含むＭＲパケットが送信され、そのＭＲパケットを受信した場合には、ＭＲパケットを送信しない。また、ＩＧＭＰ／ＭＬＤクライアントは、マルチキャストグループへの加入を要求するときにもＭＲパケットを送信する。
【００５３】
ＩＧＭＰ／ＭＬＤクライアントは、指定するマルチキャストグループの識別情報となるマルチキャストＩＰアドレスをＭＲパケットに含めて、ＭＲパケットを送信する。また、ＩＧＭＰｖ３／ＭＬＤｖ２が適用され、マルチキャストＩＰアドレスおよび送信元サーバのＩＰアドレス（Source Specific Address ）の組み合わせでマルチキャストグループを識別する場合、Source Specific Address もＭＲパケットに含める。また、マルチキャストグループに対応するライフタイムの情報をＭＲパケットに含めてもよい。以下、ＩＧＭＰ／ＭＬＤクライアントが、指定するマルチキャストグループのマルチキャストＩＰアドレスとSource Specific Address とライフタイムとをＭＲパケットに含める場合を例にして説明する。ＩＧＭＰ／ＭＬＤクライアントが、マルチキャストＩＰアドレスとSource Specific Address とライフタイムの情報を取得する態様は、特に限定されない。例えば、それらの情報を放送するサーバや、Ｗｅｂサーバから、取得してもよい。
【００５４】
次に、本発明の動作について説明する。
Ｌ２スイッチ部１２は、ダウンストリームポートから受信したパケットをＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１に送信する。特に、ダウンストリームポートから受信したパケットがＩＧＭＰ／ＭＬＤパケットである場合、そのパケットをＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１のみに送信する。
【００５５】
図５は、ＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１がＬ２スイッチ部１２からパケットを受信したときのＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１の動作の例を示す流れ図である。ＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１は、Ｌ２スイッチ部１２からパケットを受信すると、そのパケットがＩＧＭＰ／ＭＬＤパケットであるか否かを判定する（ステップＳ１）。
【００５６】
Ｌ２スイッチ部１２から受信したパケットがＩＧＭＰ／ＭＬＤパケットでない場合（ステップＳ１のＮｏ）、ＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１は、そのパケットをアップストリームポートから送信する（ステップＳ１０）。Ｌ２スイッチ部１２から受信したパケットがＩＧＭＰ／ＭＬＤパケットである場合（ステップＳ１のＹｅｓ）、ＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１は、そのパケットがＭＲパケットであるか否かを判定する（ステップＳ２）。
【００５７】
Ｌ２スイッチ部１２から受信したパケットがＭＲパケットである場合（ステップＳ２のＹｅｓ）、ＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１は、そのＭＲパケットを受信したダウンストリームポートのポート番号と、そのＭＲパケットの送信元ＭＡＣアドレスとを対応付けて、ＩＧＭＰ／ＭＬＤクライアント管理ＤＢ（図４参照。）に登録する（ステップＳ３）。
【００５８】
ステップＳ３の後、ＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１は、ＩＧＭＰ／ＭＬＤからＭＲパケットによって加入を要求されたマルチキャストグループをマルチキャストグループ管理ＤＢに登録する。すなわち、ＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１は、ＭＲパケットに含まれているマルチキャストＩＰアドレス、送信元サーバのＩＰアドレス（Source Specific Address ）およびライフタイムと、ＭＲパケットを受信したダウンストリームポートのポート番号とを対応付けて、マルチキャストグループ管理ＤＢ（図３参照。）に登録する（ステップＳ４）。
【００５９】
さらに、ステップＳ４において、ＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１は、指定されたマルチキャストグループのマルチキャストＩＰアドレスに対応するマルチキャストＭＡＣアドレスと、ＭＲパケットを受信したダウンストリームポートのポート番号とを対応付けて、Ｌ２スイッチ部１２のＭＡＣアドレスラーニングテーブル（図示せず。）に登録する。マルチキャストＭＡＣアドレスは、マルチキャストＩＰアドレスの下位２３ビットと、“01:00:5e:00:00:00 ”の下位２３ビットに割り当てたものである。ＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１は、ＭＲパケットに含まれていたマルチキャストＩＰアドレスの下位２３ビットを“01:00:5e:00:00:00 ”に割り当てることでマルチキャストＭＡＣアドレスを生成し、そのマルチキャストＭＡＣアドレスとＭＲパケットを受信したダウンストリームポートのポート番号とを対応付けて、Ｌ２スイッチ部１２のＭＡＣアドレスラーニングテーブルに登録すればよい。
【００６０】
また、Ｌ２スイッチ部１２から受信したパケットがＭＲパケットない場合（ステップＳ２のＮｏ）、ＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１は、そのパケットがグループ離脱パケットであるか否かを判定する（ステップＳ５）。受信したパケットがグループ離脱パケットでない場合（ステップＳ５のＮｏ）、ＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１は、そのパケットをアップストリームポートから送信する（ステップＳ１０）。
【００６１】
Ｌ２スイッチ部１２から受信したパケットがグループ離脱パケットである場合（ステップＳ５のＹｅｓ）、ＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１は、ＧＳＱパケットをＬ２スイッチ部１２を介して送信する（ステップＳ６）。ステップＳ６において、ＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１は、ＧＱパケットをＬ２スイッチ部１２に送信し、Ｌ２スイッチ部１２は、各ダウンストリームポートからＧＳＱパケットを送信する。また、ＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１は、ステップＳ６で送信するＧＳＱパケットのMax Response Time を予め定めた時間よりも短く設定する。例えば、ＧＱパケットのMax Response Time よりも短く設定する。
【００６２】
次に、ＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１は、ＩＧＭＰ／ＭＬＤクライアント管理ＤＢを参照して、グループ離脱パケットを受信したダウンストリームポートについて１つのＩＧＭＰ／ＭＬＤクライアントが登録されているか、複数のＩＧＭＰ／ＭＬＤクライアントが登録されているかを判定する（ステップＳ７）。すなわち、グループ離脱パケットを受信したダウンストリームポートのポート番号に対応して、１つのＭＡＣアドレスが登録されているか、複数のＭＡＣアドレスが登録されているかを判定する。
【００６３】
グループ離脱パケットを受信したダウンストリームポートのポート番号に対応して、複数のＭＡＣアドレスが登録されている場合、ＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１は、マルチキャストグループ管理ＤＢ（図３参照。）のエントリのうち、グループ離脱パケットを用いて離脱を要求されたマルチキャストグループに対応するエントリのライフタイムを、ステップＳ６で短く設定したＧＳＱパケットのMax Response Time の値まで短縮する（ステップＳ９）。ステップＳ９の後、ＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１は、受信したグループ離脱パケットをアップストリームポートから送信する（ステップＳ１０）。
【００６４】
また、グループ離脱パケットを受信したダウンストリームポートのポート番号に対応して、１つのＭＡＣアドレスが登録されている場合、ＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１は、マルチキャストグループ管理ＤＢから、グループ離脱パケットを受信したダウンストリームポートのポート番号と、グループ離脱パケットを用いて離脱を要求されたマルチキャストグループとを対応付けたエントリを削除する（ステップＳ８）。具体的には、ポート番号と、そのマルチキャストグループのマルチキャストアドレス、Source Specific Address 、およびライフタイムとを対応付けたエントリを削除する。さらに、ステップＳ８において、ＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１は、グループ離脱パケットを受信したダウンストリームポートのポート番号と、そのマルチキャストグループのマルチキャストＭＡＣアドレスとを対応付けたエントリを、Ｌ２スイッチ部１２のＭＡＣアドレスラーニングテーブルから削除する（ステップＳ８）。
【００６５】
ステップＳ８の後、ＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１は、受信したグループ離脱パケットをアップストリームポートから送信する（ステップＳ１０）。
【００６６】
また、既に説明したように、マルチキャストアドレス管理部１１３は、ライフタイムが経過するまでに、マルチキャストグループを指定したＭＲパケットを受信しなければ、そのマルチキャストグループに該当するエントリをマルチキャストグループ管理ＤＢから削除し、さらに、Ｌ２スイッチ部１２のＭＡＣアドレスラーニングテーブル（図示せず。）からも削除する。従って、マルチキャストアドレス管理部１１３は、マルチキャストグループ管理ＤＢ部１１４に記憶されたマルチキャストグループ管理ＤＢを監視し、ステップＳ６でＧＳＱパケットが送信された後、ライフタイムが経過するまでに、ＧＳＱパケットで定めたマルチキャストグループを指定するＭＲパケットを受信しなければ、そのマルチキャストグループに該当するエントリをマルチキャストグループ管理ＤＢから削除する。このとき、ステップＳ９に移行している場合には、ライフタイムが短縮されているので、ＭＲパケットの受信を待つ時間が短くなる。また、マルチキャストアドレス管理部１１３は、マルチキャストグループ管理ＤＢからエントリを削除した場合、削除したエントリにおけるマルチキャストグループのマルチキャストＭＡＣアドレスを含むエントリを、Ｌ２スイッチ部１２のＭＡＣアドレスラーニングテーブルから削除する。
【００６７】
また、ＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１は、ステップＳ６で送信したＧＳＱパケットに対する応答としてＩＧＭＰ／ＭＬＤクライアントが送信したＭＲパケットを受信した場合、そのＭＲパケットを受信したダウンストリームポートを、ＩＧＭＰ／ＭＬＤクライアントが高速離脱することができないダウンストリームポートとして学習する。このダウンストリームポートの学習態様は、特に限定されない。例えば、ステップＳ６のＧＳＱパケット送信後にＭＲパケットを受信したダウンストリームポートのポート番号を、高速離脱することができないダウンストリームポートのポート番号として、ＩＧＭＰ／ＭＬＤ制御部１１４が備える記憶装置（高速離脱不能ポート記憶手段、図示せず。）に記憶させておいてもよい。このように、ＩＧＭＰ／ＭＬＤクライアントが高速離脱することができないダウンストリームポートを学習するので、高速離脱することができないダウンストリームポートを判定することができる。例えば、上記の例のように高速離脱不能ポート記憶手段に、ステップＳ６のＧＳＱパケット送信後にＭＲパケットを受信したダウンストリームポートのポート番号を記憶させた場合、高速離脱不能ポート記憶手段に記憶されたポート番号のダウンストリームポートは、ＩＧＭＰ／ＭＬＤクライアントが高速離脱できないポートであり、他のダウンストリームポートはＩＧＭＰ／ＭＬＤクライアントが高速離脱できるポートであると判定することができる。
【００６８】
以上のように、本発明によれば、グループ離脱パケットを受信した後、ＧＳＱパケットを送信し、そのＧＳＱパケットへの応答としてＭＲパケットを受信した場合、そのＭＲパケットを受信したダウンストリームポートを、ＩＧＭＰ／ＭＬＤクライアントが高速離脱することができないダウンストリームポートとして学習する。よって、ＩＧＭＰ／ＭＬＤクライアントが高速離脱できないダウンストリームポートを判定することができる。従って、Fast-Leave機能をオンとすることができるダウンストリームポート（ＩＧＭＰ／ＭＬＤクライアントが高速離脱できるポート）と、Fast-Leave機能をオンとすることができないダウンストリームポート（ＩＧＭＰ／ＭＬＤクライアントが高速離脱できないポート）がわかるので、高速離脱することができないダウンストリームポートを学習した後に、Fast-Leave機能を適切に設定して、適切にＩＧＭＰ／ＭＬＤクライアントの高速離脱を実現することができる。
【００６９】
また、本発明では、グループ離脱パケットを受信したダウンストリームポート対応するＩＧＭＰ／ＭＬＤクライアントが１つである場合、すぐにマルチキャストグループ管理ＤＢおよびＬ２スイッチ部１２のＭＡＣアドレスラーニングテーブルから該当するエントリを削除するので（ステップＳ８）、ＩＧＭＰ／ＭＬＤクライアントの高速離脱を実現することができる。
【００７０】
また、ＩＭＧＰ／ＭＬＤクライアントを高速離脱させるダウンストリームポートが、高速離脱することができないダウンストリームポートとして学習されていない場合であっても、ステップＳ１０においてグループ離脱パケットをアップストリームポートから送信する。すると、高速離脱することができないダウンストリームポートとして学習されていないポートでは、マルチキャストグループを視聴しているクライアントがいるにも関わらず、視聴が途切れることがある。しかし、本発明では、ステップＳ９で、グループ離脱パケットを用いて離脱を要求されたマルチキャストグループに対応するエントリのライフタイムを短縮する。従って、ＧＳＱパケットの応答（ＭＲパケット）を早く受信することができるため、そのような視聴途切れの時間を短縮することができる。
【００７１】
なお、ＧＳＱパケットを送信した後、ライフタイム期間が経過するまでにＭＲパケットを受信しなかった場合には、再度ＧＳＱパケットを送信することを繰り返してもよい。そして、ＧＳＱパケット送信後、ライフタイム期間が経過するまでにＭＲパケットを受信しない状態が所定回数続いたときに、ＩＧＭＰ／ＭＬＤクライアントからの応答がないと判定してもよい。ＧＱパケットについても同様である。
【００７２】
実施例２．
図６は、本発明の第２の実施例の構成を示すブロック図である。第２の実施例では、本発明の中継装置を、ＩＧＭＰ／ＭＬＤプロキシに実装した場合を示す。第１の実施例で示した構成要素と同様の構成要素については、図１と同一の符号を付して示す。本実施例において、中継装置（以下、ＩＧＭＰ／ＭＬＤプロキシ装置と記す。）１０は、ＩＧＭＰ／ＭＬＤ処理部１１ａと、Ｌ２スイッチ部（ＩＧＭＰ／ＭＬＤスヌーピング機能つきＬ２スイッチ部）１２と、ルータ部１３とを備える。ＩＧＭＰ／ＭＬＤ処理部１１ａは、ＩＧＭＰ／ＭＬＤプロキシ処理部１１５と、ＩＧＭＰ／ＭＬＤクライアント管理ＤＢ部１１２と、マルチキャストアドレス管理部１１３と、マルチキャストグループ管理ＤＢ部１１４とを備える。ＩＧＭＰ／ＭＬＤプロキシ処理部１１５は、ＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１を含む。
【００７３】
Ｌ２スイッチ部１２は、ダウンストリームポートから受信したＩＧＭＰ／ＭＬＤパケットをルータ部１３に送信する。また、ＩＧＭＰ／ＭＬＤ処理部１１ａからパケットを受信する場合、ルータ部１３を介して受信する。その他の点については、第１の実施例で説明したＬ２スイッチ部１２と同様である。
【００７４】
ルータ部１３は、マルチキャストグループ管理ＤＢ部１１４に記憶されているマルチキャストグループ管理ＤＢに基づいて、マルチキャストパケットのルーティングを行う。また、ルータ部１３は、ＩＧＭＰ／ＭＬＤ  Ｑｕｅｒｉｅｒあてのパケットを、ＩＧＭＰ／ＭＬＤプロキシ処理部１１５に送信する。ＩＧＭＰ／ＭＬＤ  Ｑｕｅｒｉｅｒあてのパケットとは、ＩＧＭＰ／ＭＬＤプロキシ装置１０あてのＩＭＧＰ／ＭＬＤパケットである。また、ルータ１３にはアップストリームポートが設けられ、ルータ部１３は、ＩＧＭＰ／ＭＬＤ処理部１１ａがアップストリームポート側に転送するＩＧＭＰ／ＭＬＤパケットをアップストリームポートから送信する。そして、ＩＧＭＰ／ＭＬＤ処理部１１ａがＩＧＭＰ／ＭＬＤクライアントに送信するパケットを、Ｌ２スイッチ部１２に送信する。
【００７５】
ＩＧＭＰ／ＭＬＤクライアント管理ＤＢ部１１２と、マルチキャストアドレス管理部１１３と、マルチキャストグループ管理ＤＢ部１１４は、それぞれ、第１の実施例で示したＩＧＭＰ／ＭＬＤクライアント管理ＤＢ部１１２と、マルチキャストアドレス管理部１１３と、マルチキャストグループ管理ＤＢ部１１４と同様である。
【００７６】
すなわち、ＩＧＭＰ／ＭＬＤクライアント管理ＤＢ部１１２は、ポート番号と、ＩＧＭＰ／ＭＬＤパケットを送信したＩＧＭＰ／ＭＬＤクライアントのＭＡＣアドレスとを対応付けたＩＧＭＰ／ＭＬＤクライアント管理ＤＢを記憶する。
【００７７】
また、マルチキャストグループ管理ＤＢ部１１４は、ポート番号と、マルチキャストアドレスと、“Source Specific Address ”と、ライフタイムとを対応付けたマルチキャストグループ管理ＤＢを記憶する。ただし、ＩＧＭＰｖ３／ＭＬＤｖ２以外のバージョンのＩＧＭＰ／ＭＬＤが適用される場合には、マルチキャストグループ管理ＤＢに“Source Specific Address ”は含まれない。
【００７８】
また、マルチキャストアドレス管理部１１３は、マルチキャストグループ管理ＤＢ部１１４に記憶されたマルチキャストグループ管理ＤＢを監視して、ＧＱパケットまたはＧＳＱパケットの送信後に、ＩＧＭＰ／ＭＬＤクライアントからの応答を待ち、定められた時間（ライフタイム）が経過するまでに、マルチキャストグループを指定したＭＲパケットを受信しなければ、そのマルチキャストグループに該当するエントリをマルチキャストグループ管理ＤＢから削除する。さらに、そのマルチキャストグループに該当するエントリをＬ２スイッチ部１２のＭＡＣアドレスラーニングテーブル（図示せず。）から削除する。
【００７９】
ＩＧＭＰ／ＭＬＤプロキシ処理部１１５は、ＩＧＭＰ／ＭＬＤプロキシ処理を行う。ＩＧＭＰ／ＭＬＤプロキシ処理部１１５によるＩＧＭＰ／ＭＬＤプロキシ処理は、当業者に知られているＩＧＭＰ／ＭＬＤプロキシ処理と同様である。
【００８０】
ＩＧＭＰ／ＭＬＤプロキシ処理部１１５が備えるＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１は、Ｌ２スイッチ部１２がＩＧＭＰ／ＭＬＤクライアントから受信したＩＧＭＰ／ＭＬＤパケットを、ルータ部１３を介して受信する。そして、そのＩＧＭＰ／ＭＬＤパケットをパケットの種類に応じて、マルチキャストグループ管理ＤＢへのマルチキャストグループに関するデータの追加や削除、Ｌ２スイッチ部１２のＭＡＣアドレスラーニングテーブル（図示せず。）へのマルチキャストＭＡＣアドレスの追加登録等を行う。この動作は、図５に示す動作と同様である。ただし、ルータ部１３が、ＩＧＭＰ／ＭＬＤプロキシ装置１０あてのＩＭＧＰ／ＭＬＤパケットをＩＧＭＰ／ＭＬＤプロキシ処理部１１５に送信するので、ＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１は、受信したパケットがＩＭＧＰ／ＭＬＤパケットであるか否かの判定（ステップＳ１）を行わずに、ステップＳ２以降の処理を行えばよい。
【００８１】
ただし、ＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１は、受信したＩＧＭＰ／ＭＬＤパケットを終端する。そして、ＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１が代理でＩＧＭＰ／ＭＬＤパケットを、ルータ部１３を介して送信する。例えば、ＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１は、受信したＭＲパケットやグループ離脱パケットを終端する。そして、ＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１がＭＲパケットやグループ離脱パケットを、ルータ部１３を介して送信する。
【００８２】
本実施例によれば、元々の機能としてＩＧＭＰ／ＭＬＤ処理を行いマルチキャストグループ管理を行うＩＧＭＰ／ＭＬＤプロキシ処理部とＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１とを一体化することができるので、ＩＧＭＰ／ＭＬＤ処理部１１ａの実装を容易に行うことができる。
【００８３】
なお、ＩＧＭＰ／ＭＬＤプロキシ処理部１１５は、マルチキャストルータ部であってもよい。
【００８４】
上記の第１の実施例および第２の実施例において、ＩＧＭＰ／ＭＬＤ処理部１１，１１ａは、Ｌ２スイッチ部１２のＭＡＣアドレスラーニングテーブルにアクセス可能なコンピュータであって、ＩＧＭＰ／ＭＬＤクライアント管理ＤＢ部１１２とマルチキャストグループ管理ＤＢ部１１４を有するコンピュータによって実現されていてもよい。その場合、コンピュータが、予め記憶装置に記憶された中継プログラムを読み込み、その中継プログラムに従って、ＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１およびマルチキャストアドレス管理部１１３としての動作を行ってもよい。
【００８５】
なお、上記の実施例において、スイッチ部は、Ｌ２スイッチ部１２によって実現され、制御部は、ＩＧＭＰ／ＭＬＤ処理部１１，１１ａによって実現される。クライアント管理データベース記憶手段は、ＩＧＭＰ／ＭＬＤクライアント管理ＤＢ部１１２によって実現され、マルチキャストグループ管理データベース記憶手段は、マルチキャストグループ管理ＤＢ部１１４によって実現される。登録手段は、ステップＳ４を実行するＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１によって実現される。問い合わせ手段は、ステップＳ６を実行するＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１によって実現される。離脱処理手段は、ステップＳ８を実行するＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１によって実現される。学習手段は、ＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１によって実現される。
【００８６】
また、上記の説明により、制御部は、グループ離脱パケットを受信したポートに対応するクライアント数が複数である場合に、問い合わせパケットによる問い合わせ対象となったマルチキャストグループに対応するライフタイムを、予め定められた時間よりも短縮するライフタイム短縮手段を有し、学習手段が、問い合わせパケットを送信した後に、短縮されたライフタイムが経過する前に送信要求パケットを受信したときに、当該送信要求パケットを受信したポートを、クライアントが高速離脱できないポートとして学習する構成が開示されている。
【００８７】
また、制御部が、送信要求パケットを受信したときに、送信要求パケットを受信したポートと、送信要求パケットの送信元のクライアントとを対応付けてクライアント管理データベースに登録するクライアント登録手段を有する構成が開示されている。クライアント登録手段は、ステップＳ３を実行するＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１によって実現される。
【００８８】
また、問い合わせ手段が、問い合わせパケットをスイッチ部を介してクライアントに送信する構成が開示されている。
【００８９】
また、ＩＧＭＰ／ＭＬＤプロキシ装置として用いられ、スイッチ部がクライアントから受信した送信要求パケットおよびグループ離脱パケットを制御部に送信するルータ部を備え、問い合わせ手段が、問い合わせパケットをルータ部およびスイッチ部を介してクライアントに送信する構成が開示されている。
【産業上の利用可能性】
【００９０】
本発明は、マルチキャストルータ、ＩＧＭＰ／ＭＬＤプロキシ機能つきルータ、ＩＧＭＰ／ＭＬＤスヌーピング機能つきＬ２スイッチ等の、ＩＧＭＰ／ＭＬＤ  Ｑｕｅｒｉｅｒ機能を有する装置に好適に適用される。
【図面の簡単な説明】
【００９１】
【図１】本発明の中継装置の例を示すブロック図である。
【図２】図１に示した中継装置をより詳細に示すブロック図である。
【図３】マルチキャストグループ管理ＤＢの例を示す説明図である。
【図４】ＩＧＭＰ／ＭＬＤクライアント管理ＤＢの例を示す説明図である。
【図５】ＩＧＭＰ／ＭＬＤパケット解析／送受信部１１１の動作の例を示す流れ図である。
【図６】本発明の第２の実施例の構成を示すブロック図である。
【図７】一般的なＩＧＭＰ／ＭＬＤスヌーピング装置の例を示す説明図である。
【符号の説明】
【００９２】
１  ＩＧＭＰ／ＭＬＤスヌーピング装置（中継装置）
１１  ＩＧＭＰ／ＭＬＤ処理部
１２  ＩＧＭＰ／ＭＬＤスヌーピング機能つきＬ２スイッチ部
１１１  ＩＧＭＰ／ＭＬＤパケット解析／送受信部
１１２  ＩＧＭＰ／ＭＬＤクライアント管理ＤＢ部
１１３  マルチキャストアドレス管理部
１１４  マルチキャストグループ管理ＤＢ部
【図１】
2008312095.tif 000003
【図２】
2008312095.tif 000004
【図３】
2008312095.tif 000005
【図４】
2008312095.tif 000006
【図５】
2008312095.tif 000007
【図６】
2008312095.tif 000008
【図７】
2008312095.tif 000009