(57)【特許請求の範囲】
【請求項１】
衛星受信機を介してＩＰパケットを送受信する第１のコントローラと、インターネットを介してＩＰパケットを送受信する第２のコントローラと、前記第１のコントローラが正常に動作しているか否かを監視する制御手段を有し、
前記制御手段は、前記第１のコントローラが正常にＩＰパケットを受信していない期間において、種別がマルチキャストであるＩＰパケットを受信した場合、前記受信したＩＰパケットが転送されるべき送信先の複数の通信装置に対し、前記受信したＩＰパケットのコピーを生成し、前記第２のコントローラを介して前記複数の通信装置へ前記コピーを送信し、前記第１のコントローラが正常にＩＰパケットを受信している期間において、種別がマルチキャストであるＩＰパケットを前記第２のコントローラから受信した場合、前記受信したＩＰパケットを廃棄する、ゲートウェイ装置。
【請求項２】
前記第１のコントローラは、ＩＧＭＰプロキシである、請求項１記載のゲートウェイ装置。
【請求項３】
衛星受信機を介してＩＰパケットを送受信する第１のコントローラと、インターネットを介してＩＰパケットを送受信する第２のコントローラと、ローカルネットワークを介してＩＰパケットを送受信する第３のコントローラと、前記第１のコントローラが正常に動作しているか否かを監視する制御手段とを有し、
前記制御手段は、前記第１、第２又は第３のコントローラを介して受信したＩＰパケットの種別がマルチキャストであり、かつ前記受信したＩＰパケットが前記第２のコントローラを介して受信したＩＰパケットである場合、前記第１のコントローラが正常に動作していると判断した場合には前記受信したパケットを廃棄し、前記第１のコントローラに異常が発生していると判断した場合には、前記受信したＩＰパケットに含まれる終点アドレスと始点アドレスから転送すべき複数の通信装置のアドレスに対応したコントローラリストを検索し、検索された複数のコントローラに対して、前記受信したＩＰパケットをコピーして送信する、ゲートウェイ装置。
【請求項４】
前記制御手段は、前記第１のコントローラが正常に動作しているか否かの監視を、前記第１のコントローラの受信レベルが４０ｄｂ以下の場合に異常と判断する、請求項３記載のゲートウェイ装置。
【請求項５】
前記制御手段は、前記第１のコントローラが正常に動作しているか否かの監視を、前記第１のコントローラが定期的に受信するパイロット信号を３周期に相当する期間以上受信しなかった場合に異常と判断する、請求項３記載のゲートウェイ装置。
【請求項６】
インターネットと、前記インターネットと通信衛星に接続される送信側ゲートウェイと、前記インターネットに接続される複数のサーバと、前記通信衛星と前記インターネットに接続される衛星受信局とを有するマルチキャスト通信システムにおいて、
前記衛星受信局は、前記通信衛星からの信号を受信する衛星受信機と、受信側ゲートウェイ装置と、ローカル網を有し、
前記受信側ゲートウェイ装置は、前記衛星受信機を介してＩＰパケットを送受信する第１のコントローラと、前記インターネットを介してＩＰパケットを送受信する第２のコントローラと、前記ローカル網を介してＩＰパケットを送受信する第３のコントローラと、前記第１のコントローラが正常に動作しているか否かを監視する制御手段とを有し、
前記衛星送信局は、
前記ローカル網から前記複数のサーバに対して送信されたＩＰパケットを受信すると、前記インターネットを介して前記複数のサーバに転送し、前記サーバから前記ローカル網に対して送信されたＩＰパケットを受信すると、前記衛星送信局、前記通信衛星及び前記衛星受信機を経由して受信する非対象経路情報を設定し、
前記制御手段は、前記第１、第２又は第３のコントローラを介して受信したＩＰパケットの種別がマルチキャストであり、かつ前記受信したＩＰパケットが前記第２のコントローラを介して受信したＩＰパケットである場合、前記第１のコントローラが正常に動作していると判断した場合には前記受信したＩＰパケットを廃棄し、前記第１のコントローラに異常が発生していると判断した場合には、前記受信したＩＰパケットに含まれる終点アドレスと始点アドレスから転送すべき複数の通信装置のアドレスに対応したコントローラリストを検索し、検索された複数のコントローラに対して前記受信したＩＰパケットをコピーして送信する、マルチキャスト通信システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、衛星通信に代表される数万台規模の大規模なマルチキャストが可能な通信経路を利用するゲートウェイ装置及びマルチキャスト通信システムに関する。
【０００２】
【従来の技術】
複数の異なるネットワークが結合されているインターネットワークシステム上で通信を行う場合、異なるネットワーク間でのデータ交信を行うためのプロトコルと、その上位に位置してアプリケーションプログラム間でのデータ交信を行うためのプロトコルに通信プロトコルを階層化して設計することが広く行われている。
【０００３】
現在、幅広く利用されている異なるネットワーク間でパケットの交換を行う為のルーティングプロトコルは、同一経路上を双方向にデータが送れるという前提で設計されている。そのため、基地局から受信局への片方向にしかデータを送れない衛星データ通信のような通信経路を利用して、双方向で通信できることを前提に設計されているアプリケーションを動作させることは出来ない。
【０００４】
一つの解決策としてはネットワーク層でのルーティングプロトコルを改良して片方向経路を扱えるようにすることが考えられるが、その場合改良しなければならない機器の数が数万台あるいはそれ以上規模になるため、現実的とはいえない。
【０００５】
そこで、特開平１１−３１３１０９号公報に示されるように、片方向通信経路の両端に送信側ゲートウェイと受信側ゲートウェイを設置し、両ゲートウェイ間でネットワーク層でのパケットトンネリングと動的なネットワークアドレス置換を行うことで、アプリケーション層に対して透過な非対称経路利用通信システムが考案されている。
【０００６】
上記従来技術により片方向経路である衛星データ通信路を利用したインターネット通信システムが構築可能であり、ユーザは衛星データ通信路を利用して高速にインターネットアクセスが行える。
【０００７】
インターネット通信で利用されるパケットはＩＰパケットであるが、ＩＰパケットを用いた通信方式としては、一対一で通信を行うユニキャスト通信方式に加えて、一対多で通信を行うマルチキャスト通信方式がある。
【０００８】
一般に、インターネットシステム上ではパケットの中継を行うルータが回線速度、伝送遅延時間等の各種条件を考慮して経路の決定を行う。マルチキャストパケットを中継する場合もマルチキャストルーティングプロトコルを用いて経路情報の交換を行い、経路を決定するのであるが、マルチキャストの場合はユニキャストと異なり、ＩＰパケットの終点アドレスをマルチキャストグループ番号として利用するため、終点アドレスから機器を特定することが出来ない。そこで、ルータ間のルーティングを制御するプロトコルに加えて、同一セグメント上でどのマルチキャストグループを送信するのかを制御するＩＧＭＰプロトコルが使用される。
【０００９】
【発明が解決しようとする課題】
衛星データ通信路は、衛星送信局から送出されたデータが多数の衛星受信局で同時に受信可能であるため、マルチキャスト通信方式に用いるのに非常に適した通信路である。しかし、従来のマルチキャストルーティングプロトコルはルーティングテーブルのエントリー数が数千程度に制限されていたり、ルーティング情報を交換するためのデータ量がルータ数に比例して増大するなど、一対数万といった規模のマルチキャストを考慮して設計されておらず、衛星データ通信路の特徴を活かすことが困難であるという課題がある。
【００１０】
また、ユニキャスト経路とマルチキャスト経路は独立しており、インターネット上のサーバが送信したマルチキャストパケットをクライアントＰＣが受信する場合、そのマルチキャストパケットがＲＧＷの衛星回線側に届くか、インターネット側に届くかはインターネット網内の状況に依存し、特定できない。マルチキャストパケットを衛星回線側で受け取るためのもっとも確実な方法は、ＲＧＷでインターネット側のインターフェースではマルチキャストルーティングを行わないと設定することである。この場合はＲＧＷまでのマルチキャスト経路が衛星回線経由の一つとなるため、かならずこの経路が使われる。
【００１１】
しかし、この場合、悪天候などの影響で衛星回線が一時的に使用不能となった際、マルチキャスト経路がなくなってしまうため、ユニキャスト通信は可能であるがマルチキャスト通信は不可となってしまうという課題がある。
【００１２】
本発明の目的は、衛星回線という大規模マルチキャストが行えるが天候等の要因で部分的に通信不能となる回線を利用し、衛星回線部分ではＩＧＭＰプロキシーを用いることで大規模なマルチキャストルーティングを可能とし、また、衛星回線断時には自動的にインタネット網経由でマルチキャスト配送を行うシステム、ゲートウェイ装置を提供することを目的とする。
【００１３】
【課題を解決するための手段】
上記課題を解決するため、非対称な経路制御を行うマルチキャスト通信システムを考案した。
【００１４】
同一セグメント内でのマルチキャスト送信を制御するＩＧＭＰプロトコルでは、制御に必要な制御パケットのデータ量がセグメント内のマシン数の一乗よりは小さな乗数で増加する。衛星回線自身は巨大な単一セグメントに見えるため、衛星回線内でのマルチキャスト制御にはＩＧＭＰを利用する。この際、ＲＧＷは本来ならルータとして振舞うのであるが、そうではなく、ホストとして振舞うことで、ＩＧＭＰだけでの制御が可能となる。
【００１５】
ＲＧＷ（受信側ゲートウェイ）にマルチキャストルーティングプログラムを設け、異なるインターフェース間でのマルチキャストパケットのルーティングを行う。マルチキャストルーティングプロトコルにはいくつもの種類があるが、ルーティングアルゴリズムが何であっても本発明は適用可能であるため、マルチキャストルーティングプロトコル自体の説明は省略する。
【００１６】
ＲＧＷにＩＧＭＰプロキシーを設ける。ＩＧＭＰプロキシーは
（１）衛星インターフェース上で他のマシンとＩＧＭＰプロトコルを用いてマルチキャストグループの配信要求をやりとりする。
【００１７】
（２）上記情報に基づいて、マルチキャストルーティングプログラムにマルチキャスト経路情報とマルチキャストパケットを渡す。
【００１８】
という機能を持つ。ＩＧＭＰプロキシーの詳細は"http://www.ietf.org/internet-drafts/draft-fenner-igmp-proxy-01.txt"に記述されている。
【００１９】
ＲＧＷに衛星インターフェース監視プログラムを設ける。衛星インターフェース監視プログラムは衛星インターフェースの受信状況を調べ、正常に受信している場合はインターネット側インターフェースのマルチキャストルーティング機能を無効とし、衛星インターフェース側が正常に受信できていない場合はインターネット側インターフェースのマルチキャストルーティング機能を有効とする。
【００２０】
以上説明したように、ＲＧＷ上にマルチキャストルータ、ＩＧＭＰプロキシー、衛星インターフェース監視プログラムを設けることで、衛星回線が正常な場合はＩＧＭＰプロキシーを用い、衛星回線が異常な場合は通常のマルチキャストルーティング処理を行うことで、非対称かつ動的な経路制御を行うマルチキャスト通信システムを実現した。
【００２１】
【発明の実施の形態】
以下、本発明の実施例を図面を用いて説明する。
【００２２】
図１に本発明の実施例の構成を示す。本発明のシステムは衛星送信局側に送信側ゲートウェイ（ＳＧＷ）２０とアップリンクステーション２１を有し、衛星受信局側には受信側ゲートウェイ（ＲＧＷ）１０、衛星受信機（ＩＲＤ）１１、ローカル網を介してＲＧＷと接続された一台以上のパソコン（ＰＣ）６０（ａ，ｂ、．．．）を有する。衛星送信局と衛星受信局間は通信衛星３０を介して送信局側から受信局側に通信が行え、またインターネット網４０を介して双方向に通信が行える。インターネット網４０上にはまた一つ以上のサーバ５０（ａ，ｂ、．．．）が接続されている。本システムを構成するこれらの機器は同一の運用主体により運用されている場合もあれば別個の運用主体により運用されている機器の集合体である場合もある。
【００２３】
ＳＧＷとＲＧＷの機能により非対称ルーティングを実現する。ＲＧＷはまた非対称なマルチキャストルーティング制御機能を合わせ持つ。
【００２４】
ここで、本発明の前提となる非対称ルーティング処理について簡単に説明する。
【００２５】
インターネットシステムは相互接続されたルータの集合体であり、ルータどうしが互いに経路情報を交換しあって、あるパケットを送るための経路を動的に選択し、ルータ間でパケットを送付する。現在利用されている経路情報交換プロトコルでは経路自身に方向性はなく、ある経路が利用可能であれば、その経路は双方向にパケットが送れるものと見なしている。このようなインターネットシステムで片方向経路を利用する為、特定のルータだけが片方向経路に関する情報を有するだけで実現できる非対称経路利用インターネットシステムが考案されている。
【００２６】
ローカル網内のＰＣａとインターネット網上のサーバａが交信する場合を想定する。ＰＣａでは始点アドレスがＰＣａ、終点アドレスがサーバａであるＩＰパケットを送り、逆にサーバａでは始点アドレスがサーバａ、終点アドレスがＰＣａであるＩＰパケットを送る。
【００２７】
該システムでのインターネット網上での経路情報が、ＰＣａとサーバａ間の通信はＳＧＷを経由せずにインターネット網から直接ＲＧＷを経由することとなっていた場合は、ＰＣａからサーバａへ送られるパケットはＰＣａ→ＲＧＷ→インターネット網→サーバａと送られ、サーバａからＰＣａへと送られるパケットはサーバａ→インターネット網→ＲＧＷ→ＰＣａと送られるが、この状態は通常のルーティング経路であり、衛星データ通信路は利用されない。
【００２８】
該システムでのインターネット網上での経路情報が、ＰＣａとサーバａ間の通信はＳＧＷを経由することとなっていた場合は、ＰＣａからサーバａへ送られるパケットはＰＣａ→ＲＧＷ→インターネット網→ＳＧＷ→インターネット網→サーバａと送られ、サーバａからＰＣａへと送られるパケットはサーバａ→インターネット網→ＳＧＷ→アップリンクステーション→衛星→ＩＲＤ→ＲＧＷ→ＰＣａと送られ、非対称な経路が使われる。
【００２９】
この非対象な経路について、ＰＣａからサーバaへパケットを送る場合、サーバａからＰＣａへのパケットを送る場合を具体的に説明する。まず、ＰＣａからサーバａにパケットを送る場合、まずＰＣａでは始点アドレスがＰＣａ、終点アドレスがサーバａであるＩＰパケットを作成しローカル網を介してＲＧＷへと送る。ＲＧＷでは、パケットをＳＧＷに送りたい場合は、送るべきＩＰパケットをＩＰパケット内にカプセル化してインターネット網を介してＳＧＷへと送る（トンネリング）。カプセルの外側のＩＰパケットは始点アドレスがＲＧＷ、終点アドレスがＳＧＷであり、通常のルーティング経路に従って送られる。ＳＧＷではカプセル化されたＩＰパケットを受け取るとカプセルを解除し、インターネット網上に送り出す。ここで送られるパケットは終点アドレスがサーバａであり、通常のルーティング経路に従ってサーバａへと届く。
【００３０】
次にサーバａからＰＣａへ送られるパケットの流れを示す。サーバａでは届いたＩＰパケットに対して（何らかの）返答を返すが、この時生成されるＩＰパケットは始点アドレスがサーバａ、終点アドレスがＰＣａのパケットである。但し、このサーバａからＰＣａへ送られるパケットは、インタネット上でＳＧＷを経由する取り決めを設定してある為、インタネット網を介して必ずＳＧＷへと届く。ＳＧＷはこのパケットをアップリンクステーションへと送り、アップリンクステーションはＩＰパケットを衛星データパケットのペイロードとして格納して衛星へと送出する。そして衛星から届いたデータが受信されてＲＧＷへと送られ、ＲＧＷではそのパケットをローカル網上へ送る。
【００３１】
以上が非対称ルーティングを行う際の動作である。
【００３２】
ここで、ＩＰアドレス体系について簡単に説明する。ＩＰアドレスはインターネットプロトコルを利用して通信を行う機器をユニークに識別するための固定長の数値であり、ＩＰプロトコルバージョン４では２進数で３２ビット長、ＩＰプロトコルバージョン６では２進数で１２８ビット長である。ＩＰアドレスはネットワーク部とホスト部に分かれており、ホスト部の値が全て０のＩＰアドレスはネットワーク自身を表わすと定められている。固定長のＩＰアドレスの内、どの部分をネットワーク部として用いるかは可変であり、その区切りを示す値をサブネットマスク値という。また、上記ネットワーク部の値が特定の範囲のＩＰアドレスはマルチキャストアドレスを示すと定められており、その場合、そのＩＰアドレスは特定の機器を示すものではなく、マルチキャストグループを表わすものとなる。ＩＰアドレス体系の詳細についてはＲＦＣを参照されたい。
【００３３】
さて、このような非対称ルーティングを実現する際、通常のインターネットシステムと異なる動作が必要となるのはＲＧＷ、ＳＧＷであるため、以下にこれらの機器の動作の詳細を説明する。
【００３４】
まず、ＳＧＷ２０について説明する。
【００３５】
図２にＳＧＷ２０のハードウェア構成図を示す。
【００３６】
ＳＧＷ２０はルータとして動作するコンピュータシステムであり、ＣＰＵ２００１、メモリ２００２、ディスクコントローラ２００３、ハードディスク２１００、コンソールコントローラ２００４、コンソール２２００、ネットワークコントローラ２００５ａ、ネットワークコントローラ２００５ｂからなる。
【００３７】
ＣＰＵ２００１はＳＧＷ２０全体の動作を制御する。メモリ２００２はプログラムやデータを格納する。ディスクコントローラ２００３はハードディスク２１００を制御する。ハードディスク２１００はプログラムや図４に示す経路情報テーブル２１５０や図５に示すマルチキャスト転送情報テーブル２２５０等のデータを格納する。コンソールコントローラ２００４はコンソール２２００を制御する。コンソール２２００はユーザとの入出力を行う。ネットワークコントローラ２００５ａはインターネット網との通信を行う。ネットワークコントローラ２００５ｂはアップリンクステーション２１との通信を行う。
【００３８】
アップリンクステーション２１はＩＰパケットを通信衛星３０で使用されているデータ形式に変換して、通信衛星３０へと送信する。
【００３９】
次にＳＧＷ２０の動作について説明する。
【００４０】
ＳＧＷ２０の動作はＣＰＵ２００１が、詳細を後述するＳＧＷ処理プログラム２５００を実行することによって実現される。
【００４１】
図４は経路情報テーブルリスト２１００のデータ構成図である。経路情報テーブルリスト２１００は経路情報テーブル２１５０が０個以上集まったリストであり、リスト内に経路情報テーブル２１５０が一つもない場合は、経路情報が全くないことを示す。
【００４２】
経路情報テーブル２１５０にはネットワークアドレスフィールド２１５１、ネットマスクフィールド２１５２、送り先アドレスフィールド２１５３、送り先コントローラ名２１５４の各フィールドがある。
【００４３】
ネットワークアドレスフィールド２１５１とネットマスクフィールド２１５２は合わせてルーティングの対象となるネットワークを示し、送り先アドレスフィールド２１５３はそのネットワークにパケットを送る場合の経路の次のルータのアドレスを示し、送り先コントローラ名２１５４はそのネットワークにパケットを送る場合にパケットを送るべきコントローラの名称を示す。本実施例では送り先コントローラ名フィールド２１５４の値はネットワークコントローラａ、ネットワークコントローラｂのいずれかとなる。また、送り先のネットワークがルータを経由せずに直接パケットが送れる場合は、送り先アドレスフィールド２１５３の値は０となる。
【００４４】
図５はマルチキャスト転送情報テーブルリスト２２００のデータ構成図である。マルチキャスト転送情報テーブルリスト２２００はマルチキャスト転送情報テーブル２２５０が０個以上集まったリストであり、リスト内にマルチキャスト転送情報テーブル２２５０が一つもない場合は、マルチキャスト転送情報が全くないことを示す。
【００４５】
マルチキャスト転送情報テーブル２２５０にはグループアドレスフィールド２２５１、ソースアドレスフィールド２２５２、受信元コントローラ名フィールド２２５３、コピー先コントローラ名リスト２２５４の各フィールドがある。
【００４６】
グループアドレスフィールド２２５１はパケット転送を行うマルチキャストグループアドレスを示す。ソースアドレスフィールド２２５２はそのグループアドレス宛にマルチキャストパケットを送出している機器のＩＰアドレスを示し、この値が０の場合は、任意のソースアドレスを示す。受信元コントローラ名フィールド２２５３はそのマルチキャストパケットを受信したコントローラ名を示し、コピー先コントローラ名リスト２２５４はそのパケットをコピーして転送すべきコントローラ名の０個以上のリストを示す。
【００４７】
図６はＳＧＷ処理プログラム２５００のフローチャートである。
【００４８】
ＳＧＷ処理プログラム２５００はまずステップ２５０１でネットワークコントローラ２００５ａからＩＰパケットを受信し、ステップ２５０２で受信したＩＰパケットがユニキャストパケットかどうかを調べ、ユニキャストでない（マルチキャスト）場合はステップ２５１０へと進みマルチキャストパケットの処理を行う。
【００４９】
ユニキャストの場合はステップ２５０３でその終点アドレスが自分自身であるかを調べ、自分自身である場合はステップ２５０４へと進んでプロトコル種別がカプセル化されたＩＰパケットであるかどうかを調べ、ＹＥＳの場合はカプセル化されたＩＰパケットを取り出して（ステップ２５０５）、ステップ２５０２へ戻って取り出したＩＰパケットの処理を行う。カプセル化されたＩＰパケット以外の場合はステップ２５０６へと進み、受信したパケットの処理を行う。ステップ２５０６ではインターネットプロトコルに従って様々な処理が行われるが、この部分の処理は通常のルータにおけるパケット処理と違いはないので、詳細な説明は省略する。ステップ２５０６の次はステップ２５０１へと戻り、次のパケットを処理する。
【００５０】
終点アドレスが自分自身以外の場合は、ステップ２５０７で経路情報テーブルリスト２１００を検索してパケットの送り先を探す。ここではネットワークアドレスフィールド２１５１、ネットマスクフィールド２１５２で示されるネットワークが送るべきパケットの終点アドレスを含んでいる経路情報テーブル２１５０を探し、そのテーブルの送り先コントローラ名フィールド２１５４の値が送り先となる。送り先が見つかった場合はステップ２５０９に進み、対応するネットワークコントローラへとパケットを送信する。見つからなかった場合は、そのパケットは廃棄して次のパケット処理に移る（ステップ２５１４）。
【００５１】
マルチキャストパケットの場合はステップ２５１０でマルチキャスト転送情報テーブルリスト２５２０を検索し、パケットのコピー先を探す。ここではグループアドレスフィールド２２５１の値がコピーすべきパケットの終点アドレスに一致し、ソースアドレスフィールド２２５２の値が０、あるいはコピーすべきパケットの始点アドレスと一致するマルチキャスト転送情報テーブル２２５０のコピー先コントローラ名リストフィールド２２５４の値がコピー先となる。コピー先が見つかった場合は、コピー先コントローラ名リストに対応する一つ以上のネットワークコントローラに当該パケットをコピーして送信し、ステップ２５１３へと進む。コピー先が見つからなかった場合はパケットの送信を行わず、そのままステップ２５１３へと進む。
【００５２】
ステップ２５１３では受信したマルチキャストパケットをインターネットプロトコルに従って処理する。この部分の処理は通常のルータにおけるパケット処理と違いはないので、詳細な説明は省略する。
【００５３】
経路情報テーブルリスト２１００及びマルチキャスト転送情報テーブルリスト２２００の内容は、ステップ２５０６及び２５１３で行われるパケット処理内容によって更新される。以上がＳＧＷ処理プログラム２５００の処理内容である。
【００５４】
続いてＲＧＷ１０について説明する。
【００５５】
図３にＲＧＷ１０のハードウェア構成図を示す。
【００５６】
ＲＧＷ１０はルータとして動作するコンピュータシステムであり、ＣＰＵ１００１、メモリ１００２、ディスクコントローラ１００３、ハードディスク１１００、コンソールコントローラ１００４、コンソール１２００、ネットワークコントローラ１００５ａ、ネットワークコントローラ１００５ｂ、ＩＲＤコントローラ１００７からなる。
【００５７】
ＣＰＵ１００１はＲＧＷ１０全体の動作を制御する。メモリ１００２はプログラムやデータを格納する。ディスクコントローラ１００３はハードディスク１１００を制御する。ハードディスク１１００はプログラムや図７で示す経路情報テーブル１１５０、図８に示すマルチキャスト転送情報テーブル１２５０や図９に示すマルチキャスト動作状態管理テーブル等のデータを格納する。コンソールコントローラ１００４はコンソール１２００を制御する。コンソール１２００はユーザとの入出力を行う。ネットワークコントローラ１００５ａはインターネット網との通信を行う。ネットワークコントローラ１００５ｂはローカル網との通信を行う。ＩＲＤコントローラ１００７はＩＲＤ１１を制御する。
【００５８】
ＩＲＤ１１は通信衛星３０から送られるデータを受信し、データ中からＩＰパケットを取り出してＲＧＷ１０へと送る。
【００５９】
次にＲＧＷ１０の動作を示す。ＲＧＷ１０の動作は、ＣＰＵ１００１が、ＲＧＷ処理プログラム（後述）を実行することにより実現される。
【００６０】
図７は経路情報テーブルリスト１１００のデータ構成図である。経路情報テーブルリスト１１００はＳＧＷが持つ経路情報テーブルリスト２１００と同一の構成であるため、説明は省略する。
【００６１】
図８はマルチキャスト転送情報テーブルリスト１２００のデータ構成図である。マルチキャスト転送情報テーブルリスト１２００もまたＳＧＷが持つマルチキャスト転送情報テーブルリスト２２００と同一の構成であるため、説明は省略する。
【００６２】
図９はマルチキャスト動作状態管理テーブル１３００のデータ構成図である。マルチキャスト動作状態管理テーブル１３００はネットワークコントローラ１００５ａがマルチキャストパケットの送受信を行うかどうかの動作状態を保持している。
【００６３】
図１０はＲＧＷ処理プログラム１５００のフローチャートである。
【００６４】
ＲＧＷ処理プログラム１５００ではまずステップ１５０１でネットワークコントローラ１００５ａ、ネットワークコントローラ１００５ｂ、ＩＲＤコントローラ１００７からＩＰパケットを受信する。ステップ１５０２において受信したパケットがマルチキャストパケットの場合はステップ１５２０に進む。ユニキャストパケットであった場合はステップ１５０３へ進み、終点アドレスが自分自身であるかを判定する。自分自身の場合はステップ１５０８へと進み、受信したパケットを処理する。ステップ１５０８の内容は通常のルータと変らないため、詳細は省略する。処理が終わるとステップ１５０１へと戻り、次のパケットを処理する。
【００６５】
終点アドレスが自分自身でない場合はステップ１５０４でそのパケットの送り先を図７に示した経路情報テーブル１１５０を用いて探す。送り先の検索処理はＳＧＷの場合と同様であるため、詳細は省略する。見つかった場合はステップ１５０６へと進んで送り先がＩＲＤコントローラであるかどうかを調べる。ＩＲＤコントローラの場合はそのパケットをＳＧＷ行きにカプセル化し（ステップ１５０９）、ステップ１５０２に戻ってカプセル化されたパケットを処理する。
【００６６】
送り先がＩＲＤコントローラ以外の場合はステップ１５０７へと進んで対応するネットワークコントローラへパケットを送信し、ステップ１５０１へと戻る。尚、ステップ１５０５において、送り先が見つからなかった場合には、そのパケットを廃棄する。
【００６７】
マルチキャストパケットの場合はステップ１５２０に進み、そのパケットの受信元がネットワークコントローラ１００５ａであるかを調べる。そうである場合はマルチキャスト動作状態管理テーブル１３００の値を調べ（ステップ１５２１）、動作中、即ちＩＲＤコントローラ１００７が正常にＩＰパケットを受信していない場合はステップ１５２２へと進み、停止中、即ち、ＩＲＤコントローラ１００７が正常にＩＰパケットを受信している場合はステップ１５３１において、そのパケットを破棄してステップ１５０１へと戻る。
【００６８】
ステップ１５２２でパケットのコピー先を図８に示したマルチキャスト転送情報テーブル１２５０を用いて検索する。コピー先の検索処理はＳＧＷの場合と同様であるため、詳細は省略する。コピー先が見つからない場合はただちにステップ１５３０へと進む。
【００６９】
コピー先が見つかった場合、まずコピー先にＩＲＤコントローラが含まれるかどうかを調べ（ステップ１５２４）、含まれる場合はそのパケットをＳＧＷ行きにカプセル化して、カプセル化したパケットを受信キューに入れて後でステップ１５０１で取り出せるようにする（ステップ１５２５）。尚、コピー先が見つからなかった場合にはそのパケットを廃棄する。
【００７０】
次に、コピー先にネットワークコントローラ１００５ａが含まれるかどうかを調べ（ステップ１５２６）、含まれる場合はマルチキャスト動作状態管理テーブル１３００の値を調べ（ステップ１５２７）、動作中である場合はパケットをコピーしてネットワークコントローラ１００５ａへ送信し、ステップ１５２９へと進む。停止中である場合はそのままステップ１５２９へと進む。
【００７１】
ステップ１５２９では他の対応するネットワークコントローラ（この場合はネットワークコントローラ１００５ｂ）へパケットをコピーして送信し、ステップ１５３０で受信したパケットを処理してステップ１５０１へと戻る。
【００７２】
ステップ１５３０での受信パケット処理内容はＩＧＭＰプロキシー機能を持つ通常のルータと変らないため、詳細は省略する。
【００７３】
以上がＲＧＷ処理プログラム１５００の処理内容である。
【００７４】
図１１はＲＧＷ監視プログラム１６００のフローチャートである。
【００７５】
ＲＧＷ監視プログラム１６００はＩＲＤコントローラからのパケット受信が正常に行えているかどうかを常に監視し（ステップ１６０１）、正常であればマルチキャスト動作状態管理テーブル１３００の内容を「停止中」とし（ステップ１６０３）、正常でなければマルチキャスト動作状態管理テーブル１３００の内容を「動作中」とする。
【００７６】
ＩＲＤコントローラからのパケット受信が正常かどうかの判定にはいくつかの方法があり、受信信号レベルがある閾値以下の状態が一定時間続く場合は異常とみなす方法、アップリンクステーション２１から周期的に送られるデータを一定期間受け取れなかった場合は異常と見なす方法などがあるが、いずれの方式を用いても本発明は実現可能である。
【００７７】
受信信号レベルの閾値に関しては、ＣＳ衛星放送で映像が正常に受信できる信号レベルとされている４０ｄｂを閾値とすることが妥当である。
【００７８】
また、周期データ受信不能で検知する場合、ＩｎｔｅｒｎｅｔＤｒａｆｔであるＤｒａｆｔ−ｉｅｔｆ−ｕｄｌｒ−ｌｌｔｕｎｎｅｌ−０２．ｔｘｔに規定されている、「連続して３回以上アップリンクステーションからの周期的に送られるパイロットデータが受信できなかった場合は回線異常とみなす」という規定を採用することが望ましい。この場合、ＲＧＷ１０のメモリ１００２はパイロットデータが送信される周期を予め記憶しておき、ＩＲＤコントローラ１００７が3周期に相当する期間以上パイロットデータを受信しないとＣＰＵが判断するように構成する。
【００７９】
以上がＲＧＷ１０の処理内容である。
【００８０】
以上説明したようなＲＧＷとＳＧＷの働きにより、ＲＧＷが衛星からのパケットを正常に受信している間はＲＧＷとインターネット網の間でマルチキャストパケットは流れないため、ＲＧＷ宛のマルチキャスト経路はＳＧＷ経由だけとなり、ＳＧＷ経由でＩＧＭＰプロキシーを用いて大規模なマルチキャスト処理が行える。また、ある特定のＲＧＷが衛星からのパケットを正常に受信できない間は、そのＲＧＷとインターネット網との間でマルチキャストパケットが流れ、インターネット経由のマルチキャストルーティングを行うという非対称なマルチキャストルーティングが実現される。
【００８１】
本実施例によれば、衛星回線という大規模マルチキャストが行えるが天候等の要因で部分的に通信不能となる回線を利用して、衛星回線部分ではＩＧＭＰプロキシーを用いることで大規模なマルチキャストルーティングを可能とし、また、衛星回線断時には自動的にインターネット網経由でマルチキャスト配送を行うシステムが実現できる。
【００８２】
【発明の効果】
以上説明したように、本発明では、既存のインターネット網でのルーティング方式に変更を加えることなく、大規模、かつ動的に経路切換が行えるマルチキャスト通信システムが実現できる。
【図面の簡単な説明】
【図１】本発明の一実施例の構成図。
【図２】ＳＧＷのハードウェア構成図。
【図３】ＲＧＷのハードウェア構成図。
【図４】経路情報テーブルリスト（ＳＧＷ）の構成図。
【図５】マルチキャスト転送情報テーブルリスト（ＳＧＷ）の構成図。
【図６】ＳＧＷ処理プログラムのフローチャート。
【図７】経路情報テーブルリスト（ＲＧＷ）の構成図。
【図８】マルチキャスト転送情報テーブルリスト（ＲＧＷ）の構成図。
【図９】マルチキャスト動作状態管理テーブルの構成図。
【図１０】ＲＧＷ処理プログラムのフローチャート。
【図１１】ＲＧＷ処理プログラムのフローチャート。
【図１２】ＲＧＷ監視プログラムのフローチャート。
【符号の説明】
１０…ＲＧＷ、
１１…ＩＲＤ、
２０…ＳＧＷ、
２１…アップリンクステーション、
３０…通信衛星、
４０…インターネット網、
５０…サーバ
６０…ＰＣ。
【図１】
0003791304.tif 000002
【図２】
0003791304.tif 000003
【図３】
0003791304.tif 000004
【図４】
0003791304.tif 000005
【図５】
0003791304.tif 000006
【図６】
0003791304.tif 000007
【図７】
0003791304.tif 000008
【図８】
0003791304.tif 000009
【図９】
0003791304.tif 000010
【図１０】
0003791304.tif 000011
【図１１】
0003791304.tif 000012
【図１２】
0003791304.tif 000013