(57)【特許請求の範囲】
【請求項１】
複数のマルチキャストルータと複数のホスト装置と接続され、前記複数のマルチキャストルータと複数のホスト装置間のパケット通信を制御する通信制御装置において、
前記複数のマルチキャストルータから送信されたパケットを受信し、当該受信パケットの内容を判別するパケット判別手段と、
前記パケット判別手段により前記受信パケットがマルチキャストかつマルチキャストグループ管理プロトコルに関するパケットであるという判別結果が得られた場合、前記受信パケットに基づいて前記ホスト装置とマルチキャストグループとの対応関係を表すテーブルと、該マルチキャストかつマルチキャストグループ管理プロトコルに関するパケットと判定されたパケットの送信元マルチキャストルータのアドレスを管理するアドレス管理テーブルを構築するテーブル構築手段と、
前記テーブル構築手段により構築されたテーブルに従って前記マルチキャストルータとホスト装置間のマルチキャストグループ別のパケット転送を制御する制御手段と、
前記アドレス管理テーブルでアドレスを管理されるマルチキャストルータに対し、ピングを行ない、応答のないマルチキャストルータのアドレスをテーブルから削除する削除手段と、
を備えたことを特徴とする通信制御装置。
【請求項２】
前記制御手段は、受信されたマルチキャストグループ管理プロトコルに関するパケットがマルチキャストグループへの参加を尋ねるクエリのパケットの場合に前記複数のポートのうちで前記受信パケットを入力したポート以外のすべてのポートへ転送制御することを特徴とする請求項１に記載の通信制御装置。
【請求項３】
前記テーブル構築手段は、前記マルチキャストかつマルチキャストグループ管理プロトコルに関するパケットがマルチキャストグループへの参加を希望するリポートであった場合に前記複数のポートのうちで前記リポートのパケットを入力したポートを当該ポートに接続される前記ホスト装置が任意のマルチキャストグループへ参加するための接続ポートとして前記テーブルに登録することを特徴とする請求項１または２に記載の通信制御装置。
【請求項４】
前記制御手段は、マルチキャストグループへの参加を希望するリポートのパケットが受信された場合、前記テーブルを参照して前記リポートのパケットを前記マルチキャストルータが接続されているポートへのみ転送制御することを特徴とする請求項１〜３のいずれか一つに記載の通信制御装置。
【請求項５】
前記テーブル構築手段は、前記マルチキャストかつマルチキャストグループ管理プロトコルに関するパケットがマルチキャストグループからの離脱を希望するリーブであった場合に前記複数のポートのうちで前記リーブのパケットを入力したポートを当該ポートに接続される前記ホスト装置が任意のマルチキャストグループから離脱するための接続ポートとして前記テーブルから削除することを特徴とする請求項１に記載の通信制御装置。
【請求項６】
前記制御手段は、マルチキャストグループからの離脱を希望するリーブのパケットが受信された場合、前記テーブルを参照して前記リーブのパケットを前記マルチキャストルータが接続されているポートへのみ転送制御することを特徴とする請求項１〜５のいずれか一つに記載の通信制御装置。
【請求項７】
前記制御手段は、マルチキャストグループからの離脱を希望するリーブのパケットが受信された場合、前記複数のポートのうちで前記リーブのパケットを入力したポート以外のすべてのポートへ転送制御することを特徴とする請求項１〜５のいずれか一つに記載の通信制御装置。
【請求項８】
前記制御手段は、マルチキャストグループに参加しているホスト装置がいないことを確認するグループスペシフィッククエリのパケットが受信された場合、前記テーブルを参照してマルチキャストグループに参加している前記ホスト装置を接続するポートおよび前記グループスペシフィッククエリのパケットが入力されたポート以外でマルチキャストルータを接続するポートへ前記グループスペシフィッククエリのパケットを転送制御することを特徴とする請求項１〜７のいずれか一つに記載の通信制御装置。
【請求項９】
前記制御手段は、マルチキャストグループに参加しているホスト装置がいないことを確認するグループスペシフィッククエリのパケットが受信された場合、前記複数のポートのうちで前記グループスペシフィッククエリのパケットを入力したポート以外のすべてのポートへ転送制御することを特徴とする請求項１〜８のいずれか一つに記載の通信制御装置。
【請求項１０】
前記テーブル構築手段は、マルチキャストグループへの参加を尋ねるクエリのパケットが受信された後、一定時間内にマルチキャストグループへの参加を希望するリポートが応答されないポートがあった場合、当該ポートと前記ホスト装置との対応関係を前記テーブルから削除することを特徴とする請求項１〜９のいずれか一つに記載の通信制御装置。
【請求項１１】
前記テーブルの更新動作を独立して行う外部装置を接続し、前記外部装置の制御に従って前記テーブルの更新動作を実行することを特徴とする請求項１〜１０のいずれか一つに記載の通信制御装置。
【請求項１２】
前記マルチキャストルータに接続されたポートにパケットが受信された場合、前記受信パケットがマルチキャストパケットであるか否かを判別するマルチキャスト判別手段と、前記マルチキャスト判別手段により前記受信パケットがマルチキャストパケットであるという判別結果が得られた場合、前記テーブルを参照してマルチキャストグループに属する前記ホスト装置に対して前記受信パケットを転送するマルチキャスト転送手段とをさらに有したことを特徴とする請求項１〜１１のいずれか一つに記載の通信制御装置。
【請求項１３】
前記テーブルに登録されたマルチキャストグループに属するホスト装置に接続されたポートにパケットが受信された場合、前記受信パケットがマルチキャストパケットであるか否かを判別するマルチキャスト判別手段と、前記マルチキャスト判別手段により前記受信パケットがマルチキャストパケットであるという判別結果が得られた場合、前記テーブルを参照してマルチキャストグループに属する前記マルチキャストルータに対して前記受信パケットを転送するマルチキャスト転送手段とをさらに有したことを特徴とする請求項１〜１２のいずれか一つに記載の通信制御装置。
【請求項１４】
前記複数のポートには、マルチキャストルータ以外の１または複数のルータが接続され、前記テーブルには、前記１または複数のルータとポートとの対応関係が登録されており、前記ルータが接続されたポートでパケットが受信された場合、前記受信パケットがマルチキャストパケットであるか否かを判別するマルチキャスト判別手段と、前記マルチキャスト判別手段により前記受信パケットがマルチキャストパケットであるという判別結果が得られた場合、前記テーブルを参照して前記マルチキャストルータに対して前記受信パケットを転送するマルチキャスト転送手段とをさらに有したことを特徴とする請求項１〜１３のいずれか一つに記載の通信制御装置。
【請求項１５】
前記通信制御装置は、サブネットが多数のスイッチングハブで構成され、それぞれのスイッチングハブの多数のポートにマルチキャストデータ受信を希望するホスト装置が接続されているネットワークに接続され、前記マルチキャストかつマルチキャストグループ管理プロトコルに関するパケットがマルチキャストグループへの参加を尋ねるクエリであった場合、前記クエリ内部にあらかじめ設定された一定時間を計測する計測手段と、前記計測手段が計測する前記一定時間の間は、前記テーブルを参照して、前記各ポートより受信される、マルチキャストグループへの参加を希望するリポートのうち、各マルチキャストグループ毎に最初のリポートだけを該当する前記マルチキャストルータを接続したポートへ転送し、前記計測手段が計測する前記一定時間の経過後は、後続のリポートを廃棄する転送／廃棄制御手段とをさらに有したことを特徴とする請求項１〜１４のいずれか一つに記載の通信制御装置。
【請求項１６】
前記制御手段は、前記受信パケットがマルチキャストかつマルチキャストグループ管理プロトコルに関するパケットであるという判別結果が得られても、前記受信パケットが少なくとも、マルチキャストグループへの参加を尋ねるクエリ, マルチキャストグループへの参加を希望するリポート, マルチキャストグループからの離脱を希望するリーブのいずれの種別にも該当しない場合、前記受信パケットを前記複数のポートすべてに転送することを特徴とする請求項１〜１５のいずれか一つに記載の通信制御装置。
【請求項１７】
前記制御手段は、前記受信パケットがマルチキャストかつマルチキャストグループ管理プロトコルに関するパケットであるという判別結果が得られても、前記受信パケットが少なくとも、マルチキャストグループへの参加を尋ねるクエリ, マルチキャストグループへの参加を希望するリポート, マルチキャストグループからの離脱を希望するリーブのいずれの種別にも該当しない場合、前記受信パケットを廃棄することを特徴とする請求項１〜１５のいずれか一つに記載の通信制御装置。
【請求項１８】
複数のマルチキャストルータと複数のホスト装置と接続される通信制御装置を用いてパケット通信を行うマルチキャスト対応ＬＡＮに適用される通信制御方法において、
前記複数のマルチキャストルータから送信されたパケットを受信し、当該受信パケットの内容を判別する第１工程と、
前記第１工程により前記受信パケットがマルチキャストかつマルチキャストグループ管理プロトコルに関するパケットであるという判別結果が得られた場合、前記受信パケットに基づいてマルチキャストパケットの経路を制御するための、前記ホスト装置とマルチキャストグループとの対応関係を表すテーブルと、該マルチキャストかつマルチキャストグループ管理プロトコルに関するパケットと判定されたパケットの送信元マルチキャストルータのアドレスを管理するアドレス管理テーブルを構築する第２工程と、
前記マルチキャストルータからマルチキャストパケットが受信された場合、前記第２工程により構築されたテーブルに従って前記マルチキャストルータとホスト装置間のマルチキャストグループ別にパケット転送する第３工程と、
を含んだことを特徴とするマルチキャスト対応ＬＡＮに適用される通信制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、例えば、マルチキャスト対応ＬＡＮ(Local Area Network)を用いてパケット通信する際に、使用ポートを制御する通信制御装置およびマルチキャスト対応ＬＡＮに適用される通信制御方法に関する。
【０００２】
【従来の技術】
近年、パーソナルコンピュータの急速な普及と共に、ＬＡＮも益々普及し、コンピュータやネットワークそれ自体の高機能化や高性能化が進んでいる。また、ＷＷＷ(World Wide Web)の普及や、動画，音声といったマルチメディアデータの普及も進み、ネットワークのトラフィックも増加する一方であり、データの高速かつ、大量の伝送を可能とするスイッチングハブなどの通信制御装置や高速ルータなどのネットワーク中継機器のネットワークへの導入が進みつつある。さらに、大量のデータを効率よく伝送するための技術としてマルチキャスト技術によるデータ伝送も行われ始めており、マルチキャストを使用したデータ伝送は今後ますますの普及が見込まれる。
【０００３】
そこで、従来の通信制御装置を適用したマルチキャスト対応ＬＡＮについて説明する。図１５は従来のマルチキャスト対応ＬＡＮを示す構成図である。図１５に示したマルチキャスト対応ＬＡＮは、マルチキャストを使用したデータ伝送をＩＰアドレスに従って中継するマルチキャストルータ１００１，１００２、データ伝送されるパケットの入出力をＭＡＣアドレスに従って切り替える通信制御装置１１０１，１１０２，１１０３、そして、例えばマルチポートトランシーバとして機能するハブ１２０１、端末として機能するホスト装置１３０１〜１３０７等により構成される。図１５に示したネットワーク構成は、従来の説明上、ＬＡＮの一部を抜き出したものである。
【０００４】
図１６および図１７はＩＧＭＰｖ２（Internet Group Manegement Protocol Version 2）の動作概要を説明する図であり、図１６にはホスト装置のマルチキャストグループへの参加手順が示され、図１７にはホスト装置のマルチキャストグループからの離脱手順が示されている。なお、図１６および図１７には、前述した図１５のなかで、マルチキャストルータ１００１およびホスト装置１３０４，１３０５の部分を抜き出した構成が示されている。
【０００５】
まず、図１６を用いてマルチキャストグループへの参加方法について説明する。ここでは、ホスト装置１３０５があるマルチキャストグループに参加を希望しているものとし、説明を簡略にするため、図１６に示した構成の範囲で動作を説明する。マルチキャストルータ１００１は、ローカルネットワークに接続しているホスト装置１３０４，１３０５にあるマルチキャストグループへの参加を尋ねてその存在を把握するため、クエリメッセージ（ホストメンバシップクエリ（Host Membership Query ））を定期的にＩＰアドレス224.0.0.1 （All-Systems-Group ）宛てに送信する。
【０００６】
このとき、マルチキャストグループへ参加を希望するホスト装置１３０５は、マルチキャストルータ１００１から受け取ったクエリに応答して、参加を希望するグループのマルチキャストアドレスを通知するため、リポートメッセージ（ホストメンバシップリポート(Host Member Report)）を参加を希望するマルチキャストアドレス宛てに送信する。
【０００７】
このとき、リポートを送信しようとするホスト装置１３０５は、クエリメッセージに含まれるマックスレスポンスタイム（Max Response Time ）（デフォルト値は、１０秒）までの時間の間のランダムな時間でリポートを送信する。もし他にそのリポートと同じグループに対するリポートを送信しようとするホスト装置が複数存在した場合には、あるホスト装置により一番最初に送信されたリポートを受信し、その他のホスト装置はリポートを送信しない。すなわち、ネットワーク媒体がシェアドメディアに複数ホストが接続しているような場合は、一つのマルチキャストグループにつき一つのリポートが送信されるのみである。
【０００８】
マルチキャス対応トルータ１００１はそのリポートを受信し、ホスト装置１３０５が参加希望するマルチキャストグループを把握し、そのマルチキャストグループ宛のマルチキャストが存在すればマルチキャストルーティングプロトコルによりローカルネットワークへマルチキャストデータの送信を開始する。
【０００９】
つづいて、図１７を用いてマルチキャストグループからの離脱方法について説明する。ここでは、ホスト装置１３０５があるマルチキャストグループから離脱を希望しているものとし、説明を簡略にするため、図１７に示した構成の範囲で動作を説明する。参加していたマルチキャストグループからの離脱を希望するホスト装置１３０５は、離脱を決めた時点でリーブメッセージをＩＰアドレス224.0.0.2 （All-Routers-Group ）宛てに送信する。
【００１０】
そのリーブを受信したマルチキャストルータ１００１は、まだ他にそのマルチキャストグループに参加しているホスト装置が存在するか否かを確認するために、そのマルチキャストグループアドレス宛てにＧＳクエリ（Group Specific Query）メッセージを送信する。もしリーブを送信したホスト以外にまだそのグループに参加しているホスト装置が存在すれば、そのホスト装置１３０５はリポートを送信してその存在をマルチキャストルータ１００１に伝える。
【００１１】
ここで、ＩＧＭＰのバージョン１（ＲＦＣ１１１２にて規定）も存在するが、ＩＧＭＰｖ２はＩＧＭＰｖ１とのコンパチビリティをサポートしており、ローカルネットワークにバージョン１をサポートしたホスト、ルータが存在してもよい。またリーブはＩＧＭＰｖ２で加えられたメッセージであり、すなわちバージョン１では、クエリの定期送信によるリポートの応答の有無で、マルチキャストルータは受信ホストの存在や離脱を把握している。
【００１２】
【発明が解決しようとする課題】
従来、スイッチングハブなどの通信制御装置では、ポート毎に接続する端末のユニキャスト物理アドレスが記憶されており、端末宛のユニキャスト物理アドレスを持つユニキャストパケットあるいはブロードキャストパケットについて、ハードウェアスイッチング技術を用いた高速なパケット伝送が目的のポートへのみ実現される。
【００１３】
しかし、マルチメディアデータ伝送に使用されるマルチキャストパケットに関しては、そのマルチキャストパケットを必要とする特定かつ複数のポートを判別することがユニキャストの場合に比べて難しく、マルチキャストパケットを必要とするポートへのみ伝送するのではなく、ブロードキャストパケットと同じくすべてのポートへ伝送していた。
【００１４】
このようなマルチキャストパケットの場合には、データ種が動画などをはじめとする連続的ストリームデータかつ大容量である場合が多く、通信制御装置の処理に限界を生じ、マルチキャストパケットの廃棄率が高まったり伝送遅延時間が大きくなる、あるいは他のユニキャストパケットの伝送に悪影響を与える、という不都合が生じていた。
【００１５】
また、ネットワークに接続するマルチキャストルータとの間で特別なプロトコルを用いてメッセージをやり取りし、必要な通信制御装置のポートへのみマルチキャストパケットを伝送するものも存在するが、その特別なプロトコルをサポートしているマルチキャストルータと通信制御装置の組み合わせでなければ、必要とされる特定ポートのみへマルチキャストパケットを伝送するという動作が実現できないという問題があった。
【００１６】
また、前述したマルチキャスト対応ＬＡＮにおいては、通信制御装置自体に、マルチキャストルータとホスト間でのマルチキャストグループの管理プロトコルであるＩＧＭＰを実装しているものもあるが、本来ＬＡＮスイッチはデータパケットのフォワーディング処理をデータリンク層で行うことで高速なデータ伝送を実現しているというメリットを損なうという問題があった。
【００１７】
また、特別な装置独自のプロトコルを使用する場合には、メーカ毎、装置毎の相互接続性が確保できないことも問題であった。
【００１８】
この発明は、上述した従来例による問題を解消するため、既存のプロトコルおよびネットワーク構成において、マルチキャストデータを所要のポートへのみ転送することにより、マルチキャストおよびユニキャストデータの伝送に対して効率的な伝送を実現することが可能な通信制御装置およびマルチキャスト対応ＬＡＮに適用される通信制御方法を提供することを目的とする。
【００１９】
【課題を解決するための手段】
上述した課題を解決し、目的を達成するため、請求項１の発明に係る通信制御装置は、複数のマルチキャストルータと複数のホスト装置と接続され、前記複数のマルチキャストルータと複数のホスト装置間のパケット通信を制御する通信制御装置において、前記複数のマルチキャストルータから送信されたパケットを受信し、当該受信パケットの内容を判別するパケット判別手段と、前記パケット判別手段により前記受信パケットがマルチキャストかつマルチキャストグループ管理プロトコルに関するパケットであるという判別結果が得られた場合、前記受信パケットに基づいて前記ホスト装置とマルチキャストグループとの対応関係を表すテーブルと、該マルチキャストかつマルチキャストグループ管理プロトコルに関するパケットと判定されたパケットの送信元マルチキャストルータのアドレスを管理するアドレス管理テーブルを構築するテーブル構築手段と、前記テーブル構築手段により構築されたテーブルに従って前記マルチキャストルータとホスト装置間のマルチキャストグループ別のパケット転送を制御する制御手段と、前記アドレス管理テーブルでアドレスを管理されるマルチキャストルータに対し、ピングを行ない、応答のないマルチキャストルータのアドレスをテーブルから削除する削除手段と、を備えたことを特徴とする。
【００２０】
この請求項１の発明によれば、受信パケットがマルチキャストかつマルチキャストグループ管理プロトコルに関するパケットであるという判別結果が得られた場合、その受信パケットに基づいてホスト装置とマルチキャストグループとの対応関係を表すテーブルを構築し、そのテーブルに従ってマルチキャストルータとホスト装置間のマルチキャストグループ別のパケット転送を制御するようにしたので、既存のプロトコルおよびネットワーク構成でマルチキャストパケットを所要のホスト装置にのみマルチキャスト転送することができ、これにより、マルチキャストおよびユニキャストデータの伝送に対して効率的な伝送を実現することが可能である。また、マルチキャストかつマルチキャストグループ管理プロトコルに関するパケットがクエリであった場合に複数のポートのうちでクエリのパケットを入力したポートをマルチキャストルータが接続されたポートとして登録するようにしたので、パケットの内容に応じてポートとマルチキャストルータとの対応関係を適宜更新にすることが可能である。さらに、テーブルを参照して複数のポートのうちでマルチキャストルータが接続されたポートに対して定期的にピングを送信し、そのピングに対して応答がないポートがあった場合にそのポートとマルチキャストルータとの対応関係をテーブルから削除するようにしたので、パケットの内容に応じてマルチキャストルータとポートとの対応関係の消滅を適宜更新することが可能である。
【００２３】
また、請求項２の発明に係る通信制御装置は、請求項１の発明において、前記制御手段は、受信されたマルチキャストグループ管理プロトコルに関するパケットがマルチキャストグループへの参加を尋ねるクエリのパケットの場合に前記複数のポートのうちで前記受信パケットを入力したポート以外のすべてのポートへ転送制御することを特徴とする。
【００２４】
この請求項２の発明によれば、クエリのパケットが受信された場合に複数のポートのうちで受信パケットを入力したポート以外のすべてのポートへ転送制御するようにしたので、マルチキャストルータの配下へ確実にクエリを転送することが可能である。
【００２７】
また、請求項３の発明に係る通信制御装置は、請求項１または２の発明において、前記テーブル構築手段は、前記マルチキャストかつマルチキャストグループ管理プロトコルに関するパケットがマルチキャストグループへの参加を希望するリポートであった場合に前記複数のポートのうちで前記リポートのパケットを入力したポートを当該ポートに接続される前記ホスト装置が任意のマルチキャストグループへ参加するための接続ポートとして前記テーブルに登録することを特徴とする。
【００２８】
この請求項３の発明によれば、マルチキャストかつマルチキャストグループ管理プロトコルに関するパケットがリポートであった場合に複数のポートのうちでリポートのパケットを入力したポートをこのポートに接続されるホスト装置が任意のマルチキャストグループへ参加するための接続ポートとしてテーブルに登録するようにしたので、パケットの内容に応じてマルチキャストグループ別にポートとホスト装置との対応関係の発生を適宜更新することが可能である。
【００２９】
また、請求項４の発明に係る通信制御装置は、請求項１〜３のいずれか一つの発明において、前記制御手段は、マルチキャストグループへの参加を希望するリポートのパケットが受信された場合、前記テーブルを参照して前記リポートのパケットを前記マルチキャストルータが接続されているポートへのみ転送制御することを特徴とする。
【００３０】
この請求項４の発明によれば、リポートのパケットが受信された場合にテーブルを参照してリポートのパケットをマルチキャストルータが接続されているポートへのみ転送制御するようにしたので、マルチキャストルータに対してホスト装置のリポートを確実に転送することが可能である。
【００３１】
また、請求項５の発明に係る通信制御装置は、請求項１の発明において、前記テーブル構築手段は、前記マルチキャストかつマルチキャストグループ管理プロトコルに関するパケットがマルチキャストグループからの離脱を希望するリーブであった場合に前記複数のポートのうちで前記リーブのパケットを入力したポートを当該ポートに接続される前記ホスト装置が任意のマルチキャストグループから離脱するための接続ポートとして前記テーブルから削除することを特徴とする。
【００３２】
この請求項５の発明によれば、マルチキャストかつマルチキャストグループ管理プロトコルに関するパケットがリーブであった場合に複数のポートのうちでリーブのパケットを入力したポートをこのポートに接続されるホスト装置が任意のマルチキャストグループから離脱するための接続ポートとしてテーブルから削除するようにしたので、パケットの内容に応じてマルチキャストグループ別にポートとホスト装置との対応関係の消滅を適宜更新することが可能である。
【００３３】
また、請求項６の発明に係る通信制御装置は、請求項１〜５のいずれか一つの発明において、前記制御手段は、マルチキャストグループからの離脱を希望するリーブのパケットが受信された場合、前記テーブルを参照して前記リーブのパケットを前記マルチキャストルータが接続されているポートへのみ転送制御することを特徴とする。
【００３４】
この請求項６の発明によれば、リーブのパケットが受信された場合、テーブルを参照してリーブのパケットをマルチキャストルータが接続されているポートへのみ転送制御するようにしたので、マルチキャストルータに対してホスト装置のリーブを確実に転送することが可能である。
【００３５】
また、請求項７の発明に係る通信制御装置は、請求項１〜５のいずれか一つの発明において、前記制御手段は、マルチキャストグループからの離脱を希望するリーブのパケットが受信された場合、前記複数のポートのうちで前記リーブのパケットを入力したポート以外のすべてのポートへ転送制御することを特徴とする。
【００３６】
この請求項７の発明によれば、リーブのパケットが受信された場合、複数のポートのうちでリーブのパケットを入力したポート以外のすべてのポートへ転送制御するようにしたので、マルチキャストルータが接続されているポートを探す処理が不要となり、これにより、リーブ動作時の処理負荷を低減してリーブの低速処理を高速化することが可能である。
【００３７】
また、請求項８の発明に係る通信制御装置は、請求項１〜７のいずれか一つの発明において、前記制御手段は、マルチキャストグループに参加しているホスト装置がいないことを確認するグループスペシフィッククエリのパケットが受信された場合、前記テーブルを参照してマルチキャストグループに参加している前記ホスト装置を接続するポートおよび前記グループスペシフィッククエリのパケットが入力されたポート以外でマルチキャストルータを接続するポートへ前記グループスペシフィッククエリのパケットを転送制御することを特徴とする。
【００３８】
この請求項８の発明によれば、マルチキャストグループに参加しているホスト装置がいないことを確認するグループスペシフィッククエリのパケットが受信された場合、テーブルを参照してマルチキャストグループに参加しているホスト装置を接続するポートおよびグループスペシフィッククエリのパケットが入力されたポート以外でマルチキャストルータを接続するポートへグループスペシフィッククエリのパケットを転送制御するようにしたので、グループスペシフィッククエリをブロードキャストしなくて済み、これにより、効率的にマルチキャストグループに参加しているホスト装置がいないことを確認することが可能である。
【００３９】
また、請求項９の発明に係る通信制御装置は、請求項１〜８のいずれか一つの発明において、前記制御手段は、マルチキャストグループに参加しているホスト装置がいないことを確認するグループスペシフィッククエリのパケットが受信された場合、前記複数のポートのうちで前記グループスペシフィッククエリのパケットを入力したポート以外のすべてのポートへ転送制御することを特徴とする。
【００４０】
この請求項９の発明によれば、グループスペシフィッククエリのパケットが受信された場合、複数のポートのうちでグループスペシフィッククエリのパケットを入力したポート以外のすべてのポートへ転送制御するようにしたので、マルチキャストルータが接続されているポートを探す処理が不要となり、これにより、グループスペシフィッククエリ動作時の処理負荷を低減してグループスペシフィッククエリの転送処理を高速化することが可能である。
【００４１】
また、請求項１０の発明に係る通信制御装置は、請求項１〜９の発明において、前記テーブル構築手段は、クエリのパケットが受信された後、一定時間内にリポートが応答されないポートがあった場合、当該ポートと前記ホスト装置との対応関係を前記テーブルから削除することを特徴とする。
【００４２】
この請求項１０の発明によれば、クエリのパケットが受信された後、一定時間内にリポートが応答されないポートがあった場合、そのポートとホスト装置との対応関係をテーブルから削除するようにしたので、マルチキャストパケット転送に関係のなくなった情報を適宜更新することができ、これにより、処理を効率的に実行させることが可能である。
【００４３】
また、請求項１１の発明に係る通信制御装置は、請求項１〜１０のいずれか一つの発明において、前記テーブルの更新動作を独立して行う外部装置を接続し、前記外部装置の制御に従って前記テーブルの更新動作を実行することを特徴とする。
【００４４】
この請求項１１の発明によれば、外部装置の制御に従ってテーブルの更新動作を行うようにしたので、通信制御装置自体の負荷を軽減することが可能である。
【００４５】
また、請求項１２の発明に係る通信制御装置は、請求項１〜１１のいずれか一つの発明において、前記マルチキャストルータに接続されたポートにパケットが受信された場合、前記受信パケットがマルチキャストパケットであるか否かを判別するマルチキャスト判別手段と、前記マルチキャスト判別手段により前記受信パケットがマルチキャストパケットであるという判別結果が得られた場合、前記テーブルを参照してマルチキャストグループに属する前記ホスト装置に対して前記受信パケットを転送するマルチキャスト転送手段とをさらに有したことを特徴とする。
【００４６】
この請求項１２の発明によれば、マルチキャストルータに接続されたポートにパケットが受信された場合、その受信パケットがマルチキャストパケットであれば、テーブルを参照してマルチキャストグループに属するホスト装置に対して受信パケットを転送するようにしたので、マルチキャストグループ管理プロトコルの確認手順が省略され、これにより、マルチキャストパケットのフォワーディングを高速化することが可能である。
【００４７】
また、請求項１３の発明に係る通信制御装置は、請求項１〜１２のいずれか一つの発明において、前記テーブルに登録されたマルチキャストグループに属するホスト装置に接続されたポートにパケットが受信された場合、前記受信パケットがマルチキャストパケットであるか否かを判別するマルチキャスト判別手段と、前記マルチキャスト判別手段により前記受信パケットがマルチキャストパケットであるという判別結果が得られた場合、前記テーブルを参照してマルチキャストグループに属する前記マルチキャストルータに対して前記受信パケットを転送するマルチキャスト転送手段とをさらに有したことを特徴とする。
【００４８】
この請求項１３の発明によれば、テーブルに登録されたマルチキャストグループに属するホスト装置に接続されたポートにパケットが受信された場合、その受信パケットがマルチキャストパケットであれば、テーブルを参照してマルチキャストグループに属するマルチキャストルータに対して受信パケットを転送するようにしたので、マルチキャストグループ管理プロトコルの確認手順が省略され、これにより、マルチキャストパケットのフォワーディングを高速化することが可能である。
【００４９】
また、請求項１４の発明に係る通信制御装置は、請求項１〜１３のいずれか一つの発明において、前記複数のポートには、マルチキャストルータ以外の１または複数のルータが接続され、前記テーブルには、前記１または複数のルータとポートとの対応関係が登録されており、前記ルータが接続されたポートでパケットが受信された場合、前記受信パケットがマルチキャストパケットであるか否かを判別するマルチキャスト判別手段と、前記マルチキャスト判別手段により前記受信パケットがマルチキャストパケットであるという判別結果が得られた場合、前記テーブルを参照して前記マルチキャストルータに対して前記受信パケットを転送するマルチキャスト転送手段とをさらに有したことを特徴とする。
【００５０】
この請求項１４の発明によれば、ルータが接続されたポートでパケットが受信された場合、受信パケットがマルチキャストパケットであれば、テーブルを参照してマルチキャストルータに対して受信パケットを転送するようにしたので、複数のマルチキャストルータと複数のスイッチングハブで構成されたネットワークでマルチキャストルーティングプロトコルの動作を保証することが可能である。
【００５１】
また、請求項１５の発明に係る通信制御装置は、請求項１〜１４のいずれか一つの発明において、前記通信制御装置は、サブネットが多数のスイッチングハブで構成され、それぞれのスイッチングハブの多数のポートにマルチキャストデータ受信を希望するホスト装置が接続されているネットワークに接続され、前記マルチキャストかつマルチキャストグループ管理プロトコルに関するパケットがマルチキャストグループへの参加を尋ねるクエリであった場合、前記クエリ内部にあらかじめ設定された一定時間を計測する計測手段と、前記計測手段が計測する前記一定時間の間は、前記テーブルを参照して、前記各ポートより受信される、マルチキャストグループへの参加を希望するリポートのうち、各マルチキャストグループ毎に最初のリポートだけを該当する前記マルチキャストルータを接続したポートへ転送し、前記計測手段が計測する前記一定時間の経過後は、後続のリポートを廃棄する転送／廃棄制御手段とをさらに有したことを特徴とする。
【００５２】
この請求項１５の発明によれば、マルチキャストかつマルチキャストグループ管理プロトコルに関するパケットがマルチキャストグループへの参加を尋ねるクエリであった場合、クエリ内部にあらかじめ設定された一定時間の間は、テーブルを参照して、各ポートより受信される、マルチキャストグループへの参加を希望するリポートのうち、各マルチキャストグループ毎に最初のリポートだけを該当する前記マルチキャストルータを接続したポートへ転送し、その一定時間の経過後は、後続のリポートを廃棄するようにしたので、サブネットが多数のスイッチングハブで構成され、それぞれのスイッチングハブの多数のポートにマルチキャストデータ受信を希望するホスト装置が接続されているネットワーク上でも、マルチキャストルータへのリポートの重複送信を避けることが可能である。
【００５３】
また、請求項１６の発明に係る通信制御装置は、請求項１〜１５のいずれか一つの発明において、前記制御手段は、前記受信パケットがマルチキャストかつマルチキャストグループ管理プロトコルに関するパケットであるという判別結果が得られても、前記受信パケットが少なくとも、マルチキャストグループへの参加を尋ねるクエリ, マルチキャストグループへの参加を希望するリポート, マルチキャストグループからの離脱を希望するリーブのいずれの種別にも該当しない場合、前記受信パケットを前記複数のポートすべてに転送することを特徴とする。
【００５４】
この請求項１６の発明によれば、受信パケットがマルチキャストかつマルチキャストグループ管理プロトコルに関するパケットであるという判別結果が得られても、その受信パケットが少なくとも、マルチキャストグループへの参加を尋ねるクエリ, マルチキャストグループへの参加を希望するリポート, マルチキャストグループからの離脱を希望するリーブのいずれにも該当しない場合、その受信パケットを複数のポートすべてに転送するようにしたので、マルチキャストパケットの種別が未知であった場合にはその判別を転送先に任せることが可能である。
【００５５】
また、請求項１７の発明に係る通信制御装置は、請求項１〜１５のいずれか一つの発明において、前記制御手段は、前記受信パケットがマルチキャストかつマルチキャストグループ管理プロトコルに関するパケットであるという判別結果が得られても、前記受信パケットが少なくとも、マルチキャストグループへの参加を尋ねるクエリ, マルチキャストグループへの参加を希望するリポート, マルチキャストグループからの離脱を希望するリーブのいずれの種別にも該当しない場合、前記受信パケットを廃棄することを特徴とする。
【００５６】
この請求項１７の発明によれば、受信パケットがマルチキャストかつマルチキャストグループ管理プロトコルに関するパケットであるという判別結果が得られても、その受信パケットが少なくとも、マルチキャストグループへの参加を尋ねるクエリ, マルチキャストグループへの参加を希望するリポート, マルチキャストグループからの離脱を希望するリーブのいずれにも該当しない場合、その受信パケットを廃棄するようにしたので、無知の種別を持つマルチキャストパケットをネットワーク上から消滅させ、正規のマルチキャストパケット送信の効率化を図ることが可能である。
【００５７】
また、請求項１８の発明に係るマルチキャスト対応ＬＡＮに適用される通信制御方法は、１または複数のマルチキャストルータと複数のホスト装置と接続される通信制御装置を用いてパケット通信を行うマルチキャスト対応ＬＡＮに適用される通信制御方法において、前記複数のマルチキャストルータから送信されたパケットを受信し、当該受信パケットの内容を判別する第１工程と、前記第１工程により前記受信パケットがマルチキャストかつマルチキャストグループ管理プロトコルに関するパケットであるという判別結果が得られた場合、前記受信パケットに基づいてマルチキャストパケットの経路を制御するための、前記ホスト装置とマルチキャストグループとの対応関係を表すテーブルと、該マルチキャストかつマルチキャストグループ管理プロトコルに関するパケットと判定されたパケットの送信元マルチキャストルータのアドレスを管理するアドレス管理テーブルを構築する第２工程と、前記マルチキャストルータからマルチキャストパケットが受信された場合、前記第２工程により構築されたテーブルに従って前記マルチキャストルータとホスト装置間のマルチキャストグループ別にパケット転送する第３工程と、を含んだことを特徴とする。
【００５８】
この請求項１８の発明によれば、受信パケットの内容を判別し、その受信パケットがマルチキャストかつマルチキャストグループ管理プロトコルに関するパケットであるという判別結果が得られた場合、その受信パケットに基づいてマルチキャストパケットの経路を制御するための、ホスト装置とマルチキャストグループとの対応関係を表すテーブルを構築する工程にしたので、既存のプロトコルおよびネットワーク構成でマルチキャストパケットを所要のホスト装置にのみマルチキャスト転送するための制御条件を内部に保持することが可能である。また、マルチキャストルータからマルチキャストパケットが受信された場合、ホスト装置とマルチキャストグループとの対応関係を表すテーブルに従ってマルチキャストルータとホスト装置間のマルチキャストグループ別にパケット転送する工程を含めたので、既存のプロトコルおよびネットワーク構成でマルチキャストパケットを所要のホスト装置にのみマルチキャスト転送することができ、これにより、マルチキャストおよびユニキャストデータの伝送に対して効率的な伝送を実現することが可能である。
【００６１】
【発明の実施の形態】
以下に添付図面を参照して、通信制御装置およびマルチキャスト対応ＬＡＮに適用される通信制御方法に係る好適な実施の形態を詳細に説明する。
【００６２】
まず、マルチキャスト対応ＬＡＮについて説明する。図１はこの発明の一実施の形態による通信制御装置を適用したマルチキャスト対応ＬＡＮの一例を示す構成図である。同図に示したマルチキャスト対応ＬＡＮは、サブネットＳＢ部分を示している。このサブネットＳＢは、例えば、マルチキャストルータ１１と１２間に２台の通信制御装置１Ａおよび１Ｂを直列に接続させ、通信制御装置１Ａの配下にはホスト装置２１，２２，２３および２４を接続させ、通信制御装置１Ｂの配下にはホスト装置２５および２６を接続させた構成である。
【００６３】
ここで、マルチキャストルータ１１および１２は各ホスト装置との間で交信されるマルチキャスト管理プロトコルであるＩＧＭＰ対応のルータである。ホスト装置２１〜２６は、パーソナルコンピュータやワークステーションなどの装置であり、そのＩＧＭＰに応じて動作可能な機能を備えている。したがって、マルチキャストルータ１１，１２およびホスト装置２１〜２６は既存の装置となる。
【００６４】
つづいて、通信制御装置１Ａおよび１Ｂについて詳述する。通信制御装置１Ａおよび１Ｂの構成は、機能的にもハードウェア的にも同様のため、以下に通信制御装置１Ａの構成を代表例として説明する。図２はこの発明の一実施の形態による通信制御装置１Ａを機能的に示すブロック図である。
【００６５】
通信制御装置１Ａは、例えば図２に示したように、ホスト装置２１〜２４，マルチキャストルータ１１，通信制御装置１Ｂを接続するポート部２、ポート２から入力したパケットがマルチキャストパケットであるか、あるいはＩＧＭＰメッセージパケットであるかを判別し処理するマルチキャストパケット種判別／パケットスイッチング処理部４およびＩＧＭＰッセージを処理するＩＧＭＰ処理部５よりなるマルチキャスト処理部３、通常の通信制御装置と同様のパケット転送を行うパケットスイッチング処理部６、ポート番号とユニキャストアドレスとの対応関係を登録するポート番号―ユニキャストアドレス対応記憶部７、ポート番号とマルチキャストアドレスとの対応関係を登録するポート番号―マルチキャストアドレス対応記憶部８、および、マルチキャストルータと接続ポートとの対応関係を登録するマルチキャストルータ接続ポート記憶部９を備えている。
【００６６】
つづいて、図２に機能的に示した通信制御装置１Ａのハードウェア構成について説明する。図３は上記通信制御装置１Ａのハードウェア的に示すブロック図である。
【００６７】
通信制御装置１Ａは、例えば図３に示したように、ポート部２に相当してその機能を果たすポート１０１、マルチキャスト処理部３に相当してその機能を果たすマルチキャストパケット処理部１０２およびリポート制御タイマ１１０、マルチキャストパケット種判別／パケットスイッチング処理部４に相当してその機能を果たすパケット種判別／フォワーディング部１０３、ＩＧＭＰ処理部５に相当してその機能を果たすＩＧＭＰリーブメッセージ処理部１０４、パケットスイッチング処理部６に相当してその機能を果たすスイッチングハブ部１０５、ポート番号―ユニキャストアドレス対応記憶部７に相当してその機能を果たすポート番号―ユニキャストアドレス対応記憶テーブル１０６、ポート番号―マルチキャストアドレス対応記憶部８に相当してその機能を果たすポート番号―マルチキャストアドレス対応メモリ１０７，テーブルエントリタイマ１１１、マルチキャストルータ接続ポート記憶部９に相当してその機能を果たすマルチキャストルータ接続ポートメモリ１０８およびピング処理部１１２、および、外部端末インタフェース１０９を備えている。
【００６８】
ポート１０１は、一例として、７つのポート番号に分けられる。図１のサブネットＳＮを例に挙げると、ポート＃１には、マルチキャストルータ１１が接続され、ポート＃２，＃３，＃４，＃５には、ホスト装置２１，２２，２３，２４がそれぞれ接続され、ポート＃７には、通信制御装置１Ｂが接続されている。なお、ポート＃６は空きとなる。
【００６９】
マルチキャストパケット処理部１０２において、パケット種判別／フォワーディング部１０３は、ユニキャスト・ブロードキャスト／マルチキャストパケット判別部２０１、ユニキャスト・ブロードキャスト／マルチキャストパケットスイッチ部２０２、および、ＩＧＭＰメッセージ判別／処理部２０３を備えている。ユニキャスト・ブロードキャスト／マルチキャストパケット判別部２０１は、受信されたパケットがユニキャスト，ブロードキャストパケット，マルチキャストパケットのいずれであるかを判別する。
【００７０】
ユニキャスト・ブロードキャスト／マルチキャストパケットスイッチ部２０２は、ユニキャスト・ブロードキャストの場合、マルチキャストの場合、それぞれに応じてパケット転送を行う。ＩＧＭＰメッセージ判別／処理部２０３は、マルチキャストパケットの場合にＩＧＭＰメッセージの種別（クエリ，リポート，リーブ）を判別してそれぞれの種別に応じた処理を行う。
【００７１】
ここで、クエリとは、マルチキャストグループへの参加を尋ねるためにマルチキャストルータから各ホスト装置へ発信されるメッセージであり、リポートとは、マルチキャストグループへの参加を希望するためにホスト装置からマルチキャストルータへ発信されるメッセージである。リーブとは、マルチキャストグループからの離脱を希望するためにホスト装置からマルチキャストルータへ発信されるメッセージである。
【００７２】
ＩＧＭＰリーブメッセージ処理部１０４は、マルチキャスト物理アドレス生成部２０４より構成される。このマルチキャスト物理アドレス生成部２０４は、リーブのＩＧＭＰメッセージすなわちリーブメッセージ部分に含まれるＩＰマルチキャストアドレスをＩＧＭＰメッセージ判別／処理部２０３から取り込み、マルチキャストＭＡＣアドレスに変換し、ポート番号−マルチキャストアドレス対応メモリ１０７の該当するポート番号とマルチキャストＭＡＣアドレスとの対応関連を削除する。リポート制御タイマ１１０は、ＩＧＭＰメッセージ判別／処理部２０３に接続され、受信パケットがクエリの場合、そのクエリを受信した時点でそのクエリ内部に設定されたマックスレスポンスタイム(Max Response Time) 時間を計測する。
【００７３】
スイッチングハブ部１０５およびポート番号−ユニキャストアドレス対応記憶テーブル１０６は、通常の通信制御装置で動作するスイッチングハブとしての機能を実現する。すなわち、ユニキャスト・ブロードキャスト／マルチキャストパケット判別部２０１でユニキャストパケットあるいはブロードキャストパケットという判別結果が得られた場合にユニキャスト・ブロードキャスト／マルチキャストパケットスイッチ部２０２を介してユニキャストあるいはブロードキャストのパケットがスイッチングハブ１０５へ送られ、通常のスイッチング動作が実行される。
【００７４】
ポート番号−マルチキャストアドレス対応メモリ１０７は、ポート１０１の各ポート番号とマルチキャストアドレス（マルチキャストグループに参加しているホスト装置のＭＡＣアドレス）との対応関係を管理するメモリ装置である。このポート番号−マルチキャストアドレス対応メモリ１０７は、テーブル読出し／書込み／削除制御部２０５、ポート番号−マルチキャスト物理アドレス対応記憶テーブル２０６、および、テーブル書込み／削除制御部２０７を備えている。
【００７５】
ポート番号−マルチキャスト物理アドレス対応記憶テーブル２０６は、ポート１０１の各ポート番号とマルチキャストアドレス（マルチキャストグループに参加しているホスト装置のＭＡＣアドレス）との対応関係をテーブルとして登録している。テーブル読出し／書込み／削除制御部２０５は、マルチキャストパケット処理部１０２の制御に従ってポート番号−マルチキャスト物理アドレス対応記憶テーブル２０６の対応関係を更新（読出し／書込み／削除）する。
【００７６】
テーブル書込み／削除制御部２０７は、テーブルエントリタイマ１１１の計測でクエリとそのリポートの時間間隔が一定時間以上経過した場合にポート番号−マルチキャスト物理アドレス対応記憶テーブル２０６上の該当する対応関係を削除する。テーブルエントリタイマ１１１は、ポート番号−マルチキャスト物理アドレス対応記憶テーブル２０６の対応関係においてクエリとそのリポートの時間間隔を計測する。
【００７７】
マルチキャストルータ接続ポートメモリ１０８は、ポート１０１の各ポート番号とマルチキャストルータアドレスとの対応関係を管理するメモリ装置である。このマルチキャストルータ接続ポートメモリ１０８は、テーブル読出し／書込み／削除制御部２０８、マルチキャストルータ接続ポート番号記憶テーブル２０９、および、テーブル書込み／削除制御部２１０を備えている。
【００７８】
マルチキャストルータ接続ポート番号記憶テーブル２０９は、ポート１０１の各ポート番号とマルチキャストルータアドレスとの対応関係をテーブルとして登録している。テーブル読出し／書込み／削除制御部２０８は、マルチキャストパケット処理部１０２の制御に従ってマルチキャストルータ接続ポート番号記憶テーブル２０９の対応関係を更新（読出し／書込み／削除）する。
【００７９】
テーブル書込み／削除制御部２１０は、ピング処理部１１２の計測でマルチキャストルータへのピング応答までの時間間隔が一定時間以上経過した場合にマルチキャストルータポート番号記憶テーブル２０９上の該当する対応関係（マルチキャストルータアドレス）を削除する。ピング処理部１１２は、マルチキャストルータ接続ポート番号記憶テーブル２０８の対応関係においてピングの応答時間を計測する。
【００８０】
ここで、外部端末インタフェース１０９は、外部機器を接続して内部とのインタフェースを司る。ポート番号−マルチキャスト物理アドレス対応記憶テーブル２０６やマルチキャストルータ接続ポート番号記憶テーブル２０９の記憶内容については、外部端末インターフェース１０９に接続された外部機器によりマニュアルで更新することができる。
【００８１】
つぎに、テーブル内容について説明する。図４はポート番号−マルチキャスト物理アドレス対応記憶テーブル２０６の記憶内容の一例を示す図であり、図５はマルチキャストルータ接続ポート番号記憶テーブル２０９の記憶内容の一例を示す図である。図４および図５の記憶内容は、それぞれ図１に示したサブネットＳＮに従うものである。図４には、ポート番号とマルチキャストＭＡＣアドレスとの対応関係が示されている。各ポート番号には、ｍ（ｍは自然数）個までのマルチキャストＭＡＣアドレスを設定することができる。図４の例では、ポート番号２，３，４，５，７にマルチキャストＭＡＣアドレスが一つ以上割り当てられている。
【００８２】
ポート番号２には、マルチキャストＭＡＣアドレスとして０１：００：５ｅ：ｘｘ：ｘｘ：ｘｘおよび０１：００：５ｅ：ｚｚ：ｚｚ：ｚｚの２つが割り当てられている。したがって、ホスト装置２１は、２つのマルチキャストグループに参加していることになる。ポート番号３には、マルチキャストＭＡＣアドレスとして０１：００：５ｅ：ｙｙ：ｙｙ：ｙｙが一つ割り当てられている。
【００８３】
したがって、ホスト装置２２は、一つのマルチキャストグループに参加していることになる。ポート番号４には、マルチキャストＭＡＣアドレスとして０１．００．５ｅ．ｚｚ．ｚｚ．ｚｚの一つが割り当てられている。したがって、ホスト装置２３は、一つのマルチキャストグループに参加していることになる。
【００８４】
また、ポート番号５には、マルチキャストＭＡＣアドレスとして０１：００：５ｅ：ｗｗ：ｗｗ：ｗｗおよび０１：００：５ｅ：ｚｚ：ｚｚ：ｚｚの２つが割り当てられている。したがって、ホスト装置２４は、２つのマルチキャストグループに参加していることになる。ポート番号７には、マルチキャストＭＡＣアドレスとして０１：００：５ｅ：ｚｚ：ｚｚ：ｚｚ、０１：００：５ｅ：ｙｙ：ｙｙ：ｙｙおよび０１：００：５ｅ：ｘｘ：ｘｘ：ｘｘの３つが割り当てられている。したがって、通信制御装置１Ｂ配下のホスト装置２５および２６は、３つのマルチキャストグループに参加していることになる。
【００８５】
以上のマルチキャストＭＡＣアドレスにおいて、０１：００：５ｅ：ｘｘ：ｘｘ：ｘｘはポート番号２と７に割り当てられており、ホスト装置２１と通信制御装置１Ｂ配下のホスト装置とは共通のマルチキャストグループに参加していることになる。また、０１：００：５ｅ：ｙｙ：ｙｙ：ｙｙはポート番号３と７に割り当てられており、ホスト装置２２と通信制御装置１Ｂ配下のホスト装置とは共通のマルチキャストグループに参加していることになる。
【００８６】
また、０１：００：５ｅ：ｚｚ：ｚｚ：ｚｚはポート番号２，４，５および７に割り当てられており、ホスト装置２１，２３および２４と通信制御装置１Ｂ配下のホスト装置とは共通のマルチキャストグループに参加していることになる。また、０１：００：５ｅ：ｗｗ：ｗｗ：ｗｗについては、ポート番号５だけに割り当てられており、サブネットＳＮでは唯一ホスト装置２４があるマルチキャストグループに参加していることになる。なお、上記「ｘｘ：ｘｘ：ｘｘ」、「ｙｙ：ｙｙ：ｙｙ」、「ｚｚ：ｚｚ：ｚｚ」、「ｗｗ：ｗｗ：ｗｗ」におけるすべてのＸ，Ｙ，Ｚ，Ｗは同じ数を示すとは限らない。
【００８７】
また、図５には、ポート番号とマルチキャストルータ検出有無／マルチキャストルータアドレスとの対応関係が示されている。各ポート番号には、ｍ個までのマルチキャストルータアドレスを設定することができる。図５の例では、ポート番号１および７にマルチキャストルータアドレスが一つ以上割り当てられている。ポート番号１，７には、それぞれアドレスａａａ．ａａ．ａａａ．ａのマルチキャストルータ１１，アドレスｂｂｂ．ｂｂ．ｂｂｂ．ｂｂｂのマルチキャストルータ１２（通信制御装置１Ｂを介する）が接続されている。
【００８８】
したがって、マルチキャストルータ接続ポート番号記憶テーブル２０９には、図５に示したように、ポート番号１に対応させてマルチキャストルータ接続の有無はＹｅｓ、マルチキャストルータアドレスはａａａ．ａａ．ａａａ．ａとなり、ポート番号７に対応させてマルチキャストルータ接続の有無はＹｅｓ、マルチキャストルータアドレスはｂｂｂ．ｂｂ．ｂｂｂ．ｂｂｂとなる。なお、上記すべてのａ，ｂは同じ数を示すとは限らない。
【００８９】
つぎに、パケットについて説明する。以下の説明では、ネットワークメディアがイーサネットの場合を例に挙げて説明する。図６はイーサネットでのＩＧＭＰパケットを説明する図、図７はＩＧＭＰメッセージパケットのフォーマットを示す図、図８はＩＰヘッダのフォーマットを示す図、図９はＩＧＭＰバージョン１メッセージのフォーマットを示す図、図１０はＩＧＭＰバージョン２メッセージのフォーマットを示す図、図１１はイーサネットの場合のＭＡＣヘッダの構成を示す図、および、図１２はピングパケットの構成を示す図である。
【００９０】
マルチキャストＩＰアドレスと物理層アドレスのマッピングにおいては、図６に示したイーサネットの場合のように、マルチキャストＩＰアドレス（クラスＤのＩＰアドレスとも言う）と物理アドレスとの対応付けは、クラスＤのＩＰアドレスの下位２３ビットをマルチキャスト物理アドレス“０１．００．５Ｅ．００．００．００（１６進）”の下位２３ビットに入れると標準（現在はＲＦＣ１７００）にて規定されている。例えば、マルチキャストＩＰアドレス“２３９．１３３．１３０．３４（１６進）”はＭＡＣアドレス“０１：００：５Ｅ：８２：２２（１６進）”となる。
【００９１】
ＩＧＭＰメッセージパケットは、図７に示したように、ＭＡＣヘッダ（１４バイト）、ＩＰヘッダ（２０バイト、オプションなし）、ＩＧＭＰメッセージ（８バイト）およびＦＣＳ（フラグチェックシーケンス）より構成される。
【００９２】
ＩＰヘッダは、図８に示したように、バージョン（Ｖｅｒｓｉｏｎ）、ヘッダ長（ＩＨＬ）、サービスタイプ（Ｔｙｐｅ  ｏｆ  Ｓｅｒｖｉｃｅ）、パケット長（Ｔｏｔａｌ  Ｌｅｎｇｔｈ）、判別子（Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）、フラグ（ｆｌａｇｓ）、フラグメントオフセット（Ｆｒａｇｍｅｎｔ  Ｏｆｆｓｅｔ）、生存時間（Ｔｉｍｅ  ｔｏ  Ｌｉｖｅ）、プロトコル（Ｐｒｏｔｏｃｏｌ）、ヘッダチェックサム（Ｈｅａｄｅｒ  Ｃｈｅｃｋｓｕｍ）、送信元ＩＰアドレス（Ｓｏｕｒｃｅ  Ａｄｄｒｅｓｓ）、宛先ＩＰアドレス（Ｄｅｓｔｉｎａｔｉｏｎ  Ａｄｄｒｅｓｓ）、オプション（Ｏｐｔｉｏｎｓ）、パディング（Ｐａｄｄｉｎｇ）より構成される。
【００９３】
バージョンは４ビットで構成され、ＩＰヘッダのバージョン番号を表す。ヘッダ長（ＩＨＬ）は４ビットで構成され、ＩＰヘッダ自体の大きさを表す。サービスタイプは８ビットで構成され、送信しているＩＰのサービス品質を表す。パケット長は１６ビットで構成され、ＩＰヘッダとＩＰデータを加えたパケット全体のオクテット長を表す。判別子は１６ビットで構成され、上位層へデータを渡す際の参考情報として使用される。フラグは３ビットで構成され、パケットの分割に関する制御を指示するものである。フラグメントオフセットは１３ビットで構成され、分割されたフラグメントがオリジナルデータのどこに位置していたかを表す。
【００９４】
生存時間は８ビットで構成され、パケットがネットワークに存在してよい時間を秒単位で表す。プロトコルは８ビットで構成され、上位層のプロトコルがなんであるかを表す。ヘッダチェックサムは１６ビットで構成され、ＩＰヘッダのチェックサムを表す。
【００９５】
送信元ＩＰアドレスは３２ビットで構成され、送信元のＩＰアドレスを表す。宛先ＩＰアドレスは３２ビットで構成され、宛先のＩＰアドレスを表す。オプションは可変長の長さをもち、セキュリティラベル、ソースルート、ルートレコード、タイムスタンプなどに使用される。パディングはオプションをつけた場合にヘッダが３２ビットの整数倍にならなかったときの穴埋めとして使用される。
【００９６】
ＩＧＭＰバージョン１メッセージは、図９に示したように、バージョン（Ｖｅｒｓｉｏｎ）、タイプ（Ｔｙｐｅ）、未使用（Ｕｎｕｓｅｄ）、チェックサム（Ｃｈｅｃｋｓｕｍ）、および、グループアドレス（Ｇｒｏｕｐ  Ａｄｄｒｅｓｓ）より構成される。バージョンは４ビットで構成され、ＲＦＣ１１１２ではバージン１を表す。タイプは４ビットで構成され、ＩＧＭＰメッセージのタイプを表す。すなわち、クエリは１、リポートは２となる。未使用は８ビットで構成され、０を表す。チェックサムは１６ビットで構成され、ＩＣＭＰと同じ方法で計算されたチェックサムを表す。グループアドレスは３２ビットで構成され、クエリのときに０、リポートのときに参加するマルチキャストグループのアドレスを表す。
【００９７】
ＩＧＭＰバージョン２メッセージは、図１０に示したように、バージョン（Ｖｅｒｓｉｏｎ）はなく、８ビットのタイプ（Ｔｙｐｅ）、８ビットのマックスレスポンスタイム（Ｍａｘ  Ｒｅｓｐ  Ｔｉｍｅ）、チェックサム（Ｃｈｅｃｋｓｕｍ）、および、グループアドレス（Ｇｒｏｕｐ  Ａｄｄｒｅｓｓ）より構成される。バージョン２では、マックスレスポンスタイムが挿入される。このマックレスポンスタイムは、各ポートより受信されるリポートのうち、各マルチキャストアドレス毎に最初の一つのリポートだけをマルチキャストルータへ送信するための一定時間を表す。
【００９８】
ＭＡＣヘッダは、図１１に示したように、宛先ＭＡＣアドレスを挿入する始点アドレスフィールド（６バイト）、送信元ＭＡＣアドレスを挿入する終点アドレスフィールド（６バイト）、および、プロトコルタイプを挿入するタイプフィールド（２バイト）により構成される。
【００９９】
ピングパケットは、図１２に示したように、ＭＡＣヘッダ（４バイト）、ＩＰヘッダ（２０バイト、オプションなし）、ＩＣＭＰ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ）メッセージ、および、ＦＣＳより構成される。
【０１００】
つぎに、動作について説明する。図１３は通信制御装置の主要な動作を説明するフローチャートである。図３の構成において、ポート１０１でパケットが受信されると（ステップＳ１）、ユニキャスト・ブロードキャスト／マルチキャストパケット判別部２０１にて、ユニキャスト／ブロードキャストパケットとマルチキャストパケットとの判別が行われる（ステップＳ２）。判別方法は、マルチキャストパケットの物理アドレスより行われる。即ちＭＡＣアドレスは図６に示す通りであり、先頭から８ビットを見てそれが“００００  ０００１”であることを確認するのみで判別でき、これはハードウェア処理により高速に判別可能である。
【０１０１】
もしマルチキャストパケットでない場合には（ステップＳ２）、通常のＬＡＮスイッチ機能によりパケット転送が行われる（ステップＳ３）。すなわち、ユニキャスト・ブロードキャスト／マルチキャストパケットスイッチ部２０２よりスイッチングハブ部１０５にパケットが送られ、ポート番号−ユニキャストアドレス対応記憶テーブル１０６を参照して通常のユニキャスト／ブロードキャストパケットのフォワーディング処理が行われる。
【０１０２】
一方、マルチキャストパケットであった場合には（ステップＳ２）、そのマルチキャストパケットは、マルチキャストデータであるか、ＩＧＭＰメッセージパケットであるかの確認が行われる（ステップＳ４）。このため、マルチキャストパケットはＩＧＭＰメッセージ判別／処理部２０３へ送られる。ＩＧＭＰメッセージパケットは、図７に示す通りのフォーマットを有しており、図８に示すＩＰヘッダ中のプロトコルフィールドが“２”であることを確認することで判別される。この場合、ハードウェア処理により高速に判別することが可能である。
【０１０３】
そこで、マルチキャストパケットがＩＧＭＰメッセージパケットでない場合には（ステップＳ４）、ポート番号−マルチキャスト物理アドレス対応記憶テーブル２０６を参照して受信パケットがマルチキャストグループに参加しているホスト装置や他の通信制御装置を接続するポートへ転送される（ステップＳ５）。一方、マルチキャストパケットがＩＧＭＰメッセージパケットであった場合には（ステップＳ４）、以降のステップＳ６、ステップＳ８、ステップＳ１０においてそのＩＧＭＰメッセージの種別が確認される。
【０１０４】
ここで、ＩＧＭＰには、図９中に示すバージョン１と図１０に示すバージョン２とがある。一般に、ＩＧＭＰバージョン１とＩＧＭＰバージョン２のホスト装置あるいはマルチキャストルータが混在している場合には、ＩＧＭＰバージョン２の機能として定められているように、ＩＧＭＰバージョン２対応のマルチキャストルータはＩＧＭＰバージョン１のメッセージも理解して処理できるよう規定されている。このため、ＩＧＭＰバージョン１とＩＧＭＰバージョン２が混在しても問題はない。
【０１０５】
また、ＩＧＭＰには、マルチキャストルータが送信するメッセージであるクエリ、グループスペシフィッククエリ、ホスト装置が送信するリポートがあり、さらにＩＧＭＰバージョン２ではホスト装置が送信するリーブがある。これらのメッセージについては、ＩＧＭＰメッセージのタイプフィールドを見ることで区別することができる。ＩＧＭＰバージョン１での動作の場合、クエリ、グループスペシフィッククエリの各タイプフィールドは０００１（２進）、リポートのタイプフィールドは００１０（２進）である。
【０１０６】
ＩＧＭＰバージョン２での動作の場合、クエリ、グループスペシフィッククエリの各タイプフィールドは０００１０００１（０ｘ１１）、リポートは０００１０１１０（０ｘ１６）、リーブは０００１０１１１（０ｘ１７）であり、ＩＧＭＰバージョン１コンパチビリティ用のリポートのタイプフィールドは０００１００１０（０ｘ１２）である。以上によれば、ＩＧＭＰバージョン１のリポートのバージョンフィールドとタイプフィールドを合わせた０００１００１０とは同じである。
【０１０７】
また、クエリとグループスペシフィッククエリとの判別は、クエリにおいて宛先ＩＰアドレスが２２４．０．０．１即ちＭＡＣアドレスが０１：００：５Ｅ：００：００：０１であり、グループスペシフィッククエリは特定マルチキャストグループ宛てに送信されるため、それ以外のマルチキャストＭＡＣアドレスを持つことで判別することができる。これらのビット列を見ることで、ＩＧＭＰバージョン１、ＩＧＭＰバージョン２のそれぞれのメッセージを判別することができ、これもハードウェアで高速な処理が可能である。以上のビット列に当てはまらないメッセージに関しては標準にも規定がある通り処理を行わず削除する。
【０１０８】
以上の判別方法により、ＩＧＭＰパケットがクエリという判別結果が得られた場合には（ステップＳ６）、マルチキャストルータ接続ポート番号記憶テーブル２０９へパケットが受信されたポート番号がマルチキャストルータ接続有りとして登録され、その他のすべてのポートへ受信パケットが送信される（ステップＳ７）。
【０１０９】
また、ＩＧＭＰパケットがリポートという判別結果が得られた場合には（ステップＳ８）、そのパケットのマルチキャスト物理アドレスと受信ポートとが関連つけられ、その対応関係がポート番号−マルチキャスト物理アドレス対応記憶テーブル２０６へ登録される。そして、受信パケットはマルチキャストルータ接続ポート番号記憶テーブル２０９を参照してマルチキャストルータ接続ポートへ送信される（ステップＳ９）。
【０１１０】
また、ＩＧＭＰパケットがリーブという判別結果が得られた場合には（ステップＳ１０）、そのパケットのマルチキャスト物理アドレスと受信ポートとの関連がポート番号−マルチキャスト物理アドレス対応記憶テーブル２０６から検索され、該当する対応関係が削除される。そして、受信パケットはマルチキャストルータ接続ポート番号記憶テーブル２０９を参照してマルチキャストルータ接続ポートへ送信される（ステップＳ１１）。
【０１１１】
また、ＩＧＭＰパケットがクエリ、リポート、リーブのいずれにも該当しなかった場合には（ステップＳ１０）、不明なＩＧＭＰパケットとしてその受信パケットは他のすべてのポートへ送信される（ステップＳ１２）。
【０１１２】
つづいて、通信制御装置１Ａまたは１Ｂがあるポートでクエリを受信した場合の動作の具体例について説明する。図１４はクエリ受信時の動作を説明するフローチャートである。あるポートにクエリのパケットが受信された場合、前述したように他のすべてのポートへその受信パケットが送信される。そして、そのクエリパケットに含まれるマックスレスポンスタイムがリポート制御タイマ１１０に設定され、リポート制御タイマ１１０が起動される（ステップＳ２１）。
【０１１３】
そして、リポート制御タイマ１１０の計測満了、すなわちマックスレスポンスタイムの経過が確認され（ステップＳ２２）、もし満了（経過）した場合には処理が終了し、満了（未経過）していなければ、クエリ受信後にリポートを受信したポートの存在が確認される（ステップＳ２３）。その結果、リポートを受信したポートを確認できなかった場合には（ステップＳ２３）、処理は再度ステップＳ２２に戻る。一方、あるポートにリポートが受信された場合には（ステップＳ２３）、クエリ受信後にすでに受信されたリポートのマルチキャストアドレスと同じ宛先のリポートかどうか判断される（ステップＳ２４）。
【０１１４】
その結果、すでに受信されたリポートとは異なる宛先のリポートであるという判断が下された場合には（ステップＳ２４）、受信パケットのマルチキャスト物理アドレスと受信パケットが受信されたポートとが関連付けられ、その対応関係がポート番号−マルチキャスト物理アドレス対応記憶テーブル２０６に登録される。
【０１１５】
そして、マルチキャストルータ接続ポート番号記憶テーブル２０９を参照して受信パケットがマルチキャストルータへ送信される（ステップＳ２６）。その後、処理はステップＳ２２に戻る。一方、すでに受信されたリポートと同じ宛先のリポートであるという判断が下された場合には（ステップＳ２４）、そのリポートは重複してマルチキャストルータへ送信されるため、その動作を防ぐ意味で受信パケットは廃棄される（ステップＳ２５）。その後、処理はステップＳ２２に戻る。
【０１１６】
以上の説明から、上記実施の形態によれば、ユニキャスト／ブロードキャストパケットとマルチキャストパケットとが判別され、さらにマルチキャストパケットとＩＧＭＰメッセージパケットとが判別され、その結果がクエリであった場合には、その受信ポート番号とクエリパケットの送信元アドレスをそのマルチキャストルータのアドレスとしてマルチキャストルータ接続ポート番号記憶テーブル２０９に記憶するとともに、クエリを受信したポート以外へのポートへ送信する動作が実現される。
【０１１７】
これにより、クエリをすべてのホスト装置あるいは他のルータに受信させる、あるいは、図１のようの複数のマルチキャストルータ１１，１２がサブネットＳＮに接続されるような場合、マルチキャストルータ１１，１２同士でクエリを受信し合い、どちらがそのサブネットＳＮでクエリを送信するかを決定できるというＩＧＭＰの動作が実現できる。
【０１１８】
また、例えばサブネットＳＮのように複数台のマルチキャストルータ１１，１２が接続されている場合には、お互いのクエリを聴取して、最も小さいアドレスを持つマルチキャストルータが恒常的にクエリを定期送信するマルチキャストルータになり、他のマルチキャストルータはそのクエリを聴取しており、クエリが受信されなくなったら、そのマルチキャストルータがダウンしたと判断してつぎに小さなＩＰアドレスを持つマルチキャストルータがクエリを定期送信するルータとなるという動作も保証することができる。
【０１１９】
また、どのマルチキャストルータ１１，１２も１度はクエリを送信するので、マルチキャストルータ接続ポート番号記憶テーブル２０９にすべてのマルチキャストルータが記憶されるが、各マルチキャストルータ１１，１２がダウンしたかあるいはそのサブネットＳＮから取り外されたような場合を把握して、そのようなマルチキャストルータのエントリをマルチキャストルータ接続ポート番号記憶テーブル２０９から削除することができる。
【０１２０】
このため、クエリ受信時に同時にそのマルチキャストルータのインターフェースアドレスであるクエリメッセージの送信元アドレス（マルチキャストルータのアドレス）も同時に記憶するとともに、ピング処理部１１２により、一度クエリを受信したマルチキャストルータに対してピングを行い、そのレスポンスが帰ってこない場合には自動的にそのマルチキャストルータのアドレスエントリをマルチキャストルータ接続ポート番号記憶テーブル２０９から削除することができる。
【０１２１】
なお、マルチキャストルータ接続ポート番号記憶テーブル２０９の記憶内容については、外部端末インターフェース１０９に接続した外部機器によってマニュアルで書き込み／削除を行うことができる。
【０１２２】
また、リポートをあるポートで受信した場合には、そのパケットの宛先マルチキャストＭＡＣアドレスと受信したポート番号とは、ポート番号−マルチキャスト物理アドレス対応記憶テーブル２０６へ記憶するとともに、マルチキャストルータ接続ポート番号記憶テーブル２０９に記憶されているポートへ転送される。ポート番号−マルチキャスト物理アドレス対応記憶テーブル２０６の記憶内容を参照することにより、記憶されたマルチキャストアドレスを持つデータがスイッチングハブに入力された時、そのマルチキャストデータの転送を必要とするポート番号が分かり、必要なポートへのみ転送することが可能になる。
【０１２３】
また、ＩＧＭＰの機能では、同じマルチキャストグループに対するリポートを受信したホスト装置は、自分ではリポートを送信しないという動作を実行し、この場合はそのホスト装置が接続されているポートに対してマルチキャストパケットを転送するすることがスイッチングハブには記憶できないので、マルチキャストルータ接続ポート番号記憶テーブル２０９に記憶されているマルチキャストルータ接続ポートへのみ送信してマルチキャストルータへのみリポートメッセージを送信することができる。
【０１２４】
ここで、ポート番号−マルチキャスト物理アドレス対応記憶テーブル２０６の記憶内容については、外部端末インターフェース１０９に接続された外部機器から書込み／削除することができる。
【０１２５】
また、リーブをスイッチングハブのあるポートで受信した場合、リーブは本来マルチキャストルータのみに受信されればよい。そこで、そのリーブのパケットはマルチキャストルータ接続ポート番号記憶テーブル２０９に記憶されたマルチキャストルータ接続ポートへのみ送信すればよい。
【０１２６】
また、その受信パケットをＩＧＭＰリーブメッセージ処理部１０４へ送り、その中のリーブメッセージ部分に含まれるＩＰマルチキャストアドレスを抽出して、マルチキャスト物理アドレス生成部２０４にてマルチキャストＭＡＣアドレスに変換すれば、ポート番号−マルチキャスト物理アドレス対応記憶テーブル２０６に、該当するポート番号とマルチキャストＭＡＣアドレスの関連付けの記憶が存在した場合に、その対応関係を削除して、そのリーブの受信ポートへは、そのマルチキャストアドレスのデータを送信しないようにすることができる。
【０１２７】
ＩＰマルチキャストアドレスの抽出およびマルチキャスト物理アドレスへの変換は、図６，図９および図１０に示したように、ＩＧＭＰパケットフォーマットとアドレススマッピング方法が決まっているために、ハードウェアによって高速な処理が可能である。
【０１２８】
また、つぎの変形例が考えられる。リーブの転送処理を早めるため、リーブを受信した場合に、マルチキャストルータ接続ポート番号記憶テーブル２０９に記憶されたマルチキャストルータ接続ポートにのみ送信するのではなく、そのテーブル参照処理を省いてリーブを受信した以外のすべてのポートへ速やかに送信するようにしてもよい。仮に必要としないポートへ送信しても、パケットはデータ量が少なく、しかもリーブのＩＰアドレスはALL-ROUTERS-GROUP(224.0.0.2)であるので、必要としないホストに受信されても無視され悪影響はほとんど無い。
【０１２９】
また、グループスペシフィッククエリを受信した場合、グループスペシフィッククエリは直前に送信されたリーブのマルチキャストアドレス宛に送信される。このため、ＩＧＭＰメッセージ判別／処理部２０３よりグループスペシフィッククエリであることを検出した後、ポート番号−マルチキャスト物理アドレス対応記憶テーブル２０６にグループスペシフィッククエリが送信されたマルチキャストＭＡＣアドレスと関連して記憶されているポートがあれば、そのポートへのみ送信するとともに、受信したポート以外の、マルチキャストルータ接続ポート番号記憶テーブル２０９に記憶されているポートへ転送することができる。
【０１３０】
また、つぎの変形例が考えられる。グループスペシフィッククエリの転送処理を早めるため、グループスペシフィッククエリを受信した場合には、ポート番号−マルチキャスト物理アドレス対応記憶テーブル２０６にグループスペシフィッククエリが送信されたマルチキャストＭＡＣアドレスと関連して記憶されている該当ポートとマルチキャストルータ接続ポート番号記憶テーブル２０９に記憶されたポートへのみ送信するのではなく、テーブル参照処理を省いて、グループスペシフィッククエリを受信した以外のすべてのポートへ速やかに送信してもよい。
【０１３１】
仮に必要としないポートへ送信しても、グループスペシフィッククエリのパケット自体のデータ量は少なく、そのポートに接続するホストがそのマルチキャストアドレス宛のパケットの受信を希望していない場合は無視されるので、必要としないホストに無視されても悪影響はほとんど無い。
【０１３２】
また、つぎの変形例が考えられる。ＩＧＭＰの動作として、マルチキャストルータが定期的に送信するクエリを受信したホスト装置は、そのホスト装置がマルチキャストグループに参加してマルチキャストデータを受信する場合はリポートを応答として送信するが、例えばホスト装置がグループを離脱するためのリーブを送信せずにアプリケーションが終了してしまった場合、あるいは電源を落としてしまった場合には、そのホスト装置が接続するポートへマルチキャストデータを転送する必要はない。
【０１３３】
このため、テーブルエントリタイマ１１１を用いて、マルチキャストルータ接続ポートからクエリが受信されたら、ポート番号−マルチキャスト物理アドレス対応記憶テーブル２０６に記憶されている対応関係毎にタイマを設定して、各タイマ満了までにそのポートからリポートが受信されなかったら、そのマルチキャスト物理アドレスとポート番号との対応関係を削除し、そのポートに対するマルチキャストパケットの転送を中止することができる。
【０１３４】
また、通信制御装置１Ａ，１Ｂ内のＩＧＭＰメッセージ判別／処理部２０３にて、リポートとリーブの受信がそれぞれ確認された場合、ＩＧＭＰパケットを外部端末インタフェース１０９に接続された外部装置に送り、その外部装置にてポート番号−マルチキャスト物理アドレス対応記憶テーブル２０６の内容の更新処理を行うことができる。
【０１３５】
この場合、外部装置にも最低限マルチキャストパケット処理部１０２とリポート制御タイマ１１０部分を持たせ、ポート番号−マルチキャスト物理アドレス対応記憶テーブル２０６の内容が更新されたら外部装置によりポート番号−マルチキャスト物理アドレス対応記憶テーブル２０６の内容を更新し、その更新内容に従ってデータパケットのフォワーディングを行うことができる。
【０１３６】
これにより、リポートの受信によるポート番号−マルチキャスト物理アドレス対応記憶テーブル２０６への登録、およびリーブメッセージの受信によるポート番号−マルチキャスト物理アドレス対応記憶テーブル２０６からの該当ポートとマルチキャストＭＡＣアドレス削除機能の負荷はスイッチングハブの本来の機能であるデータパケットのスイッチング機能への影響を低減することができる。
【０１３７】
また、ＩＧＭＰメッセージ確認手順の一部省略による高速なパケットフォワーディングを目的とした変形例が考えられる。クエリを受信してマルチキャストルータ接続ポートとして記憶されているポートからは、マルチキャストルータがある特定グループ宛のＩＧＭＰメッセージ（ALL-ROUTERS-GROUP 、あるいはALL-SYSTEMS-GROUP 宛て以外）を送信するのは、あるポートでホスト装置が送信した ALL-ROUTERS-GROUP宛てのリーブメッセージの受信に応答して送信するグループスペシフィッククエリのみである。このことから、あるポートでリーブが受信されるまでは、マルチキャスト接続ポートで受信されるパケットは特定グループ宛てのマルチキャストデータか、クエリのみである。
【０１３８】
そこで、あるポートで、ポート番号−マルチキャスト物理アドレス対応記憶テーブル２０６に存在しているマルチキャストＭＡＣアドレスを持つリーブメッセージが受信されるまでは、マルチキャストルータ接続ポートであると記憶されているポートで受信されたマルチキャストパケットは、それがＩＧＭＰメッセージであるか否かの判断処理を省略して、ポート番号−マルチキャスト物理アドレス対応記憶テーブルの内容にチェックのみを行う。
【０１３９】
そして、受信パケットをそのパケットのマルチキャスト物理アドレスと同じマルチキャスト物理アドレス関連付けられたポートへ送信することで、通常のユニキャストデータと同じようにフォワーディングし、マルチキャストパケットのフォワーディング処理を高速化することができる。
【０１４０】
また、つぎの変形例が考えられる。通信制御装置１Ａ，１Ｂで、マルチキャストルータ接続ポート以外のポートで受信されるマルチキャストパケットは、ホストの送信するマルチキャストパケット、ＩＧＭＰのリポートあるいはリーブである。従って、スイッチングハブの処理負荷を低減し、データパケットのフォワーディング処理を高速化する目的で、スイッチングハブのマルチキャストルータ接続ポート以外のポートで受信されたマルチキャストＭＡＣアドレスを持つパケットは、ＩＧＭＰメッセージであるか否かの処理をせずに全てマルチキャストルータ接続ポートへ送信してもよい。
【０１４１】
また、つぎの変形例が考えられる。マルチキャストルータ接続ポートで送信されるマルチキャストアドレスを持つパケットは、ＩＧＭＰメッセージパケットやマルチキャストパケットの他、PIM （Protocol Independent Multicast  ）、DVMRP （Distance Vector Multicast Routing Protocol）などのマルチキャストルーティングプロトコル用のメッセージがある。
【０１４２】
例えば、これらメッセージはユニキャストで隣接するルータへ送信されるほか、“ALL-PIM-ROUTERS GROUP(224.0.0.3)”“DVMRP ROUTERS GROUP(224.0.0.4)”等へマルチキャストで送信されることがあるため、複数マルチキャストルータと複数スイッチングハブで構成されたネットワークでマルチキャストルーティングプロトコルの動作を保証するため、ルータ接続ポートで受信されたマルチキャストパケットは他のマルチキャストルータ接続ポート記憶テーブルに記憶されたポートへ必ず送信するようにしてもよい。
【０１４３】
また、リポートを受信したポートでは、そこに接続するホスト装置がどのマルチキャストアドレスのデータを望んでいるかが把握できる。ところが、サブネットが多数の通信制御装置で構成され、それぞれの通信制御装置の多数のポートにマルチキャストデータ受信を希望するホストが接続している場合には、それらホスト装置全てが送信するリポートの数が重複して多くなってしまうことになる。
【０１４４】
そこで、マルチキャストルータが送信するクエリメッセージを受信した場合、ＩＧＭＰメッセージ判別／処理部２０３にて、クエリ内部に設定されたマックスレスポンスタイム値を読み取り、クエリを受信した時点でマックスレスポンスタイム秒に設定したリポート制御タイマ１１０を起動し、そのタイマ満了までは、各ポートより受信されるリポートのうち、各マルチキャストアドレス毎に最初の一つのリポートだけをマルチキャストルータ接続ポートへ送信し、残りは廃棄する。以上により、マルチキャストルータへのリポートの重複送信を避けることができる。
【０１４５】
また、つぎの変形例が考えられる。ＩＰヘッダのプロトコルフィールドが“２”であることにより、ＩＧＭＰメッセージを確認することできたが、ＩＧＭＰメッセージのタイプフィールドが未知の値で、ＩＧＭＰメッセージの種別が特定できない場合には、その判断を配下のホスト装置やマルチキャストルータに任せるとして、受信ポート以外のすべてのポートへ転送するようにしてもよい。
【０１４６】
また、つぎの変形例が考えられる。未知のＩＧＭＰタイプ値については、通信制御装置１Ａ，１Ｂ内に受信された段階で廃棄するようにしてもよい。
【０１４７】
以上、この発明を実施の形態により説明したが、この発明の主旨の範囲内で種々の変形が可能であり、これらをこの発明の範囲から排除するものではない。
【０１４８】
【発明の効果】
以上説明したように、請求項１の発明によれば、受信パケットがマルチキャストかつマルチキャストグループ管理プロトコルに関するパケットであるという判別結果が得られた場合、その受信パケットに基づいてホスト装置とマルチキャストグループとの対応関係を表すテーブルを構築し、そのテーブルに従ってマルチキャストルータとホスト装置間のマルチキャストグループ別のパケット転送を制御するようにしたので、既存のプロトコルおよびネットワーク構成でマルチキャストパケットを所要のホスト装置にのみマルチキャスト転送することができ、これにより、マルチキャストおよびユニキャストデータの伝送に対して効率的な伝送を実現することが可能な通信制御装置が得られるという効果を奏する。また、マルチキャストかつマルチキャストグループ管理プロトコルに関するパケットがクエリであった場合に複数のポートのうちでクエリのパケットを入力したポートをマルチキャストルータが接続されたポートとして登録するようにしたので、パケットの内容に応じてポートとマルチキャストルータとの対応関係を適宜更新にすることが可能な通信制御装置が得られるという効果を奏する。さらに、テーブルを参照して複数のポートのうちでマルチキャストルータが接続されたポートに対して定期的にピングを送信し、そのピングに対して応答がないポートがあった場合にそのポートとマルチキャストルータとの対応関係をテーブルから削除するようにしたので、パケットの内容に応じてマルチキャストルータとポートとの対応関係の消滅を適宜更新することが可能な通信制御装置が得られるという効果を奏する。
【０１５０】
また、請求項２の発明によれば、請求項１の発明において、クエリのパケットが受信された場合に複数のポートのうちで受信パケットを入力したポート以外のすべてのポートへ転送制御するようにしたので、マルチキャストルータの配下へ確実にクエリを転送することが可能な通信制御装置が得られるという効果を奏する。
【０１５２】
また、請求項３の発明によれば、請求項１または２の発明において、マルチキャストかつマルチキャストグループ管理プロトコルに関するパケットがリポートであった場合に複数のポートのうちでリポートのパケットを入力したポートをこのポートに接続されるホスト装置が任意のマルチキャストグループへ参加するための接続ポートとしてテーブルに登録するようにしたので、パケットの内容に応じてマルチキャストグループ別にポートとホスト装置との対応関係の発生を適宜更新することが可能な通信制御装置が得られるという効果を奏する。
【０１５３】
また、請求項４の発明によれば、請求項１〜３のいずれか一つの発明において、リポートのパケットが受信された場合にテーブルを参照してリポートのパケットをマルチキャストルータが接続されているポートへのみ転送制御するようにしたので、マルチキャストルータに対してホスト装置のリポートを確実に転送することが可能な通信制御装置が得られるという効果を奏する。
【０１５４】
また、請求項５の発明によれば、請求項１の発明において、マルチキャストかつマルチキャストグループ管理プロトコルに関するパケットがリーブであった場合に複数のポートのうちでリーブのパケットを入力したポートをこのポートに接続されるホスト装置が任意のマルチキャストグループから離脱するための接続ポートとしてテーブルから削除するようにしたので、パケットの内容に応じてマルチキャストグループ別にポートとホスト装置との対応関係の消滅を適宜更新することが可能な通信制御装置が得られるという効果を奏する。
【０１５５】
また、請求項６の発明によれば、請求項１〜５のいずれか一つの発明において、リーブのパケットが受信された場合、テーブルを参照してリーブのパケットをマルチキャストルータが接続されているポートへのみ転送制御するようにしたので、マルチキャストルータに対してホスト装置のリーブを確実に転送することが可能な通信制御装置が得られるという効果を奏する。
【０１５６】
また、請求項７の発明によれば、請求項１〜５のいずれか一つの発明において、リーブのパケットが受信された場合、複数のポートのうちでリーブのパケットを入力したポート以外のすべてのポートへ転送制御するようにしたので、マルチキャストルータが接続されているポートを探す処理が不要となり、これにより、リーブ動作時の処理負荷を低減してリーブの低速処理を高速化することが可能な通信制御装置が得られるという効果を奏する。
【０１５７】
また、請求項８の発明によれば、請求項１〜７のいずれか一つの発明において、マルチキャストグループに参加しているホスト装置がいないことを確認するグループスペシフィッククエリのパケットが受信された場合、テーブルを参照してマルチキャストグループに参加しているホスト装置を接続するポートおよびグループスペシフィッククエリのパケットが入力されたポート以外でマルチキャストルータを接続するポートへグループスペシフィッククエリのパケットを転送制御するようにしたので、グループスペシフィッククエリをブロードキャストしなくて済み、これにより、効率的にマルチキャストグループに参加しているホスト装置がいないことを確認することが可能な通信制御装置が得られるという効果を奏する。
【０１５８】
また、請求項９の発明によれば、請求項１〜８のいずれか一つの発明において、グループスペシフィッククエリのパケットが受信された場合、複数のポートのうちでグループスペシフィッククエリのパケットを入力したポート以外のすべてのポートへ転送制御するようにしたので、マルチキャストルータが接続されているポートを探す処理が不要となり、これにより、グループスペシフィッククエリ動作時の処理負荷を低減してグループスペシフィッククエリの転送処理を高速化することが可能な通信制御装置が得られるという効果を奏する。
【０１５９】
また、請求項１０の発明によれば、請求項１〜９の発明において、クエリのパケットが受信された後、一定時間内にリポートが応答されないポートがあった場合、そのポートとホスト装置との対応関係をテーブルから削除するようにしたので、マルチキャストパケット転送に関係のなくなった情報を適宜更新することができ、これにより、処理を効率的に実行させることが可能な通信制御装置が得られるという効果を奏する。
【０１６０】
また、請求項１１の発明によれば、請求項１〜１０のいずれか一つの発明において、外部装置の制御に従ってテーブルの更新動作を行うようにしたので、通信制御装置自体の負荷を軽減することが可能な通信制御装置が得られるという効果を奏する。
【０１６１】
また、請求項１２の発明によれば、請求項１〜１１のいずれか一つの発明において、マルチキャストルータに接続されたポートにパケットが受信された場合、その受信パケットがマルチキャストパケットであれば、テーブルを参照してマルチキャストグループに属するホスト装置に対して受信パケットを転送するようにしたので、マルチキャストグループ管理プロトコルの確認手順が省略され、これにより、マルチキャストパケットのフォワーディングを高速化することが可能な通信制御装置が得られるという効果を奏する。
【０１６２】
また、請求項１３の発明によれば、請求項１〜１２のいずれか一つの発明において、テーブルに登録されたマルチキャストグループに属するホスト装置に接続されたポートにパケットが受信された場合、その受信パケットがマルチキャストパケットであれば、テーブルを参照してマルチキャストグループに属するマルチキャストルータに対して受信パケットを転送するようにしたので、マルチキャストグループ管理プロトコルの確認手順が省略され、これにより、マルチキャストパケットのフォワーディングを高速化することが可能な通信制御装置が得られるという効果を奏する。
【０１６３】
また、請求項１４の発明によれば、請求項１〜１３のいずれか一つの発明において、ルータが接続されたポートでパケットが受信された場合、受信パケットがマルチキャストパケットであれば、テーブルを参照してマルチキャストルータに対して受信パケットを転送するようにしたので、複数のマルチキャストルータと複数のスイッチングハブで構成されたネットワークでマルチキャストルーティングプロトコルの動作を保証することが可能な通信制御装置が得られるという効果を奏する。
【０１６４】
また、請求項１５の発明によれば、請求項１〜１４のいずれか一つの発明において、マルチキャストかつマルチキャストグループ管理プロトコルに関するパケットがマルチキャストグループへの参加を尋ねるクエリであった場合、クエリ内部にあらかじめ設定された一定時間の間は、テーブルを参照して、各ポートより受信される、マルチキャストグループへの参加を希望するリポートのうち、各マルチキャストグループ毎に最初のリポートだけを該当する記マルチキャストルータを接続したポートへ転送し、その一定時間の経過後は、後続のリポートを廃棄するようにしたので、サブネットが多数のスイッチングハブで構成され、それぞれのスイッチングハブの多数のポートにマルチキャストデータ受信を希望するホスト装置が接続されているネットワーク上でも、マルチキャストルータへのリポートの重複送信を避けることが可能な通信制御装置が得られるという効果を奏する。
【０１６５】
また、請求項１６の発明によれば、請求項１〜１５のいずれか一つの発明において、受信パケットがマルチキャストかつマルチキャストグループ管理プロトコルに関するパケットであるという判別結果が得られても、その受信パケットが少なくとも、マルチキャストグループへの参加を尋ねるクエリ, マルチキャストグループへの参加を希望するリポート, マルチキャストグループからの離脱を希望するリーブのいずれにも該当しない場合、その受信パケットを複数のポートすべてに転送するようにしたので、マルチキャストパケットの種別が未知であった場合にはその判別を転送先に任せることが可能な通信制御装置が得られるという効果を奏する。
【０１６６】
また、請求項１７の発明によれば、請求項１〜１５のいずれか一つの発明において、受信パケットがマルチキャストかつマルチキャストグループ管理プロトコルに関するパケットであるという判別結果が得られても、その受信パケットが少なくとも、マルチキャストグループへの参加を尋ねるクエリ, マルチキャストグループへの参加を希望するリポート, マルチキャストグループからの離脱を希望するリーブのいずれにも該当しない場合、その受信パケットを廃棄するようにしたので、無知の種別を持つマルチキャストパケットをネットワーク上から消滅させ、正規のマルチキャストパケット送信の効率化を図ることが可能な通信制御装置が得られるという効果を奏する。
【０１６７】
また、請求項１８の発明によれば、受信パケットの内容を判別し、その受信パケットがマルチキャストかつマルチキャストグループ管理プロトコルに関するパケットであるという判別結果が得られた場合、その受信パケットに基づいてマルチキャストパケットの経路を制御するための、ホスト装置とマルチキャストグループとの対応関係を表すテーブルを構築する工程にしたので、既存のプロトコルおよびネットワーク構成でマルチキャストパケットを所要のホスト装置にのみマルチキャスト転送するための制御条件を内部に保持することが可能なマルチキャスト対応ＬＡＮに適用される通信制御方法が得られるという効果を奏する。また、マルチキャストルータからマルチキャストパケットが受信された場合、ホスト装置とマルチキャストグループとの対応関係を表すテーブルに従ってマルチキャストルータとホスト装置間のマルチキャストグループ別にパケット転送する工程を含めたので、既存のプロトコルおよびネットワーク構成でマルチキャストパケットを所要のホスト装置にのみマルチキャスト転送することができ、これにより、マルチキャストおよびユニキャストデータの伝送に対して効率的な伝送を実現することが可能なマルチキャスト対応ＬＡＮに適用される通信制御方法が得られるという効果を奏する。
【図面の簡単な説明】
【図１】この発明の一実施の形態による通信制御装置を適用したマルチキャスト対応ＬＡＮの一例を示す構成図である。
【図２】この発明の一実施の形態による通信制御装置を機能的に示すブロック図である。
【図３】この発明の一実施の形態による通信制御装置のハードウェア的に示すブロック図である。
【図４】ポート番号−マルチキャスト物理アドレス対応記憶テーブルの記憶内容の一例を示す図である。
【図５】マルチキャストルータ接続ポート番号記憶テーブルの記憶内容の一例を示す図である。
【図６】イーサネットでのＩＧＭＰパケットを説明する図である。
【図７】ＩＧＭＰメッセージパケットのフォーマットを示す図である。
【図８】ＩＰヘッダのフォーマットを示す図である。
【図９】ＩＧＭＰバージョン１メッセージのフォーマットを示す図である。
【図１０】ＩＧＭＰバージョン２メッセージのフォーマットを示す図である。
【図１１】イーサネットの場合のＭＡＣヘッダの構成を示す図である。
【図１２】ピングパケットの構成を示す図である。
【図１３】実施の形態による通信制御装置の主要な動作を説明するフローチャートである。
【図１４】実施の形態によるクエリ受信時の動作を説明するフローチャートである。
【図１５】従来におけるマルチキャスト対応ＬＡＮを示す構成図である。
【図１６】ホスト装置のマルチキャストグループへの参加手順を説明する図である。
【図１７】ホスト装置のマルチキャストグループからの離脱手順を説明する図である。
【符号の説明】
１Ａ，１Ｂ  通信制御装置
２  ポート部
３  マルチキャスト処理部
４  パケット判別／スイッチング処理部
５  ＩＧＭＰ処理部
８  ポート番号−マルチキャストアドレス対応記憶部
９  マルチキャストルータ接続ポート記憶部
１０１  ポート
１０２  マルチキャストパケット処理部
１０３  パケット種判別／フォワーディング部
１０４  ＩＧＭＰリーブメッセージ処理部
１０７  ポート番号−マルチキャストアドレス対応メモリ
１０８  マルチキャストルータ接続ポートメモリ
１０９  外部端末インタフェース
１１０  リポート制御タイマ
１１１  テーブルエントリタイマ
１１２  ピング処理部
【図１】
0004080599.tif 000002
【図２】
0004080599.tif 000003
【図３】
0004080599.tif 000004
【図４】
0004080599.tif 000005
【図５】
0004080599.tif 000006
【図６】
0004080599.tif 000007
【図７】
0004080599.tif 000008
【図８】
0004080599.tif 000009
【図９】
0004080599.tif 000010
【図１０】
0004080599.tif 000011
【図１１】
0004080599.tif 000012
【図１２】
0004080599.tif 000013
【図１３】
0004080599.tif 000014
【図１４】
0004080599.tif 000015
【図１５】
0004080599.tif 000016
【図１６】
0004080599.tif 000017
【図１７】
0004080599.tif 000018