(57)【要約】【課題】従来のマルチキャスト通信では、アドレスに地域情報は含まれてないため、特定の地域に特化したマルチキャスト配信は不可能であった。【解決手段】送信ホストＳ１で、地域毎の送信データに地域情報を付したパケットをインターネット上へ同報配信し、経路上のルータＲ１，Ｒ２，Ｒ３において該パケットを中継して、マルチキャストホスト・テーブル１１３，１１４及びプルーングループ・テーブル１１５を参照して受信ホストＨ１，Ｈ２，Ｈ３へ転送し、受信ホストにおいて、自身が位置する地域情報をマルチキャストグループ・テーブル１１０，１１１，１１２に設定し、該テーブルに基づき、地域情報が付されたパケットを選択的に受信する。【選択図】    図１
2004173209.tif 000002
【特許請求の範囲】
【請求項１】
複数のホストおよびルータによって構成されるインターネットシステムにおいて、送信ホストからルータを介して複数の受信ホストへデータを送信する情報配信方法であって、
送信ホストにおいて、
地域毎の送信データに第１の地域情報を付したパケットをインターネット上へ同報配信し、
インターネット経路上のルータにおいて、
前記パケットを中継して受信ホストへ転送し、
受信ホストのそれぞれにおいて、
自身が位置する第２の地域情報を設定し、
該設定した第２の地域情報に基づき、前記第１の地域情報が付されたパケットを選択的に受信する
ことを特徴とする情報配信方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、インターネットを介したマルチキャスト通信によって情報を配信する技術に関する。
【０００２】
【従来の技術】
インターネットにて１対多、あるいは多対多の通信を行う技術として、マルチキャスト技術がある。この技術によって実現されるマルチキャスト通信では、送信ホストコンピュータ（以下、単にホストと称する）が送出したパケットが配送経路上で次々に複製され、サービスを希望する複数のホストに到達される。これは、インターネットを利用した映像や音声などを不特定多数の利用者にストリーム配信するような用途に有効な通信技術である。
【０００３】
このようなマルチキャスト通信の仕組みは、おおよそ次のようになっている。まず、あるマルチキャストグループのデータの受信を希望するホストが、そのグループのマルチキャストアドレスへの参加の手続きをする。すると、送信ホストがそのマルチキャストアドレスにパケットを送信した際に、そのマルチキャストアドレスに参加しているすべてのホストに対してパケットが配送されるしくみになっている。
【０００４】
上記マルチキャスト通信を実現するために、２種類のプロトコルが存在する。一つは、ホストとルータ間のプロトコルであり、例えばＩＧＭＰ（Ｉｎｔｅｒｎｅｔ  Ｇｒｏｕｐ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ；ＩＥＴＦＲＦＣ２２３６  Ｎｏｖ．１９９７）である。これは、ホストからルータへマルチキャストグループへの参加や脱退の通知、ルータから各ホストへマルチキャストグループの参加状況の問い合わせなどを行うプロトコルである。そしてもう一つは、ルータ間でのプロトコルであるマルチキャスト経路プロトコルである。これは、ルータにおいてパケットを複製するかどうかの決定や、パケットの転送先を決定するために使われる。マルチキャスト経路プロトコルとしては様々なものが規定されており、その一つとして例えば、ＤＶＭＲＰ（Ｄｉｓｔａｎｃｅ  Ｖｅｃｔｏｒ  Ｍｕｌｔｉｃａｓｔ  Ｒｏｕｔｉｎｇ  Ｐｒｏｔｏｃｏｌ；ＩＥＴＦ  ＲＦＣ１０７５  Ｎｏｖ．１９９８）がある。
【０００５】
以下に、一般的なマルチキャスト通信のしくみについて、図８を用いて説明する。図８は、一般的なマルチキャスト通信の動作状況を説明するための図である。同図において、Ｓ１がマルチキャスグループＧ１の送信ホストであり、ホストＨ１〜Ｈ６のうち、Ｈ２，Ｈ３，Ｈ５がマルチキャストグループＧ１に参加しているものとする。送受信ホスト間に存在するＲ１〜Ｒ４はルータであり、Ｂ１−２，Ｂ１−３，Ｂ２−３，Ｂ３−４はルータ間の接続を表す。
【０００６】
マルチキャスト通信においては、まず、送信元ホストおよびマルチキャストグループの組で決定される送信元ツリーが形成され、その経路に従ってすべてのルータおよびホストに対してパケットが配信されるのが基本的な動作である。
【０００７】
送信元ツリーは、以下のような方法によって形成される。
【０００８】
マルチキャスト経路プロトコルによるルータ情報の交換によって、送信元ホストから各受信ホストへの最短経路が形成される。図８におけるルータ間の最短経路は、太線で示す枝Ｂ１−２，Ｂ１−３，Ｂ３−４である。マルチキャスト経路プロトコルにより、各ルータでは送信元ホストＳ１に対する親リンクが決定される。例えば、ルータＲ２の親リンクは枝Ｂ１−２であり、また、ルータＲ３の親リンクは枝Ｂ１−３として決定される。枝Ｂ２−３のような最短経路の枝とはみなされない枝も抽出されるが、これらはマルチキャストパケットの通り道にはならない。
【０００９】
マルチキャストパケットの送信は以下のようになされる。
【００１０】
送信元ホストＳ１からマルチキャストグループＧ１に送信されたパケットは、ローカルサブネットに配信されると同時に、ホストＳ１に直接接続されているルータＲ１にも送信される。パケットを受信したルータＲ１は、自身のローカルサブネット（図８ではローカルサブネットにホストＨ１が接続されている）にパケットを送信すると同時に、そのパケットを複製してルータＲ２，Ｒ３に転送する。ルータＲ３では、受け取ったパケットの送信元と受け取ったインタフェースがその送信元の親リンクであるかをチェックし、そうであれば、自身のローカルサブネットにパケットを送信すると同時に、受信した枝以外の枝を介して他のルータに転送しようとする。
【００１１】
このとき、送信元ホストＳ１の最短経路ではない枝Ｂ２−３、すなわち、ルータＲ２にはパケットを転送しない。これは、予め行われているルーテイング情報の交換によってルータＲ２の親リンクは枝Ｂ１−２であることを知っているためであり、従って枝Ｂ２−３に対してはパケットを送出しない。仮にパケットを送出したとしても、ルータＲ２において、送信元ホストとマルチキャストアドレスの組で決められる親リンクとは異なる枝から受け取ったパケットは破棄されるため、パケットの無限配信は回避される。ルータＲ３のローカルサブネット内のホストＨ４，Ｈ５にはマルチキャストパケットが到達するが、グループに参加していないＨ４ではパケットが破棄され、参加しているホストＨ５にはパケットが受信される。なお、他のルータＲ２，Ｒ４や他のホストに関しても、同様の動作が行われる。
【００１２】
さらにマルチキャスト通信では、グループへ参加していないサブネットにまで無駄にパケットを送信しないような仕組みが備わっている。例えば図８においてルータＲ４は、ホスト−ルータ間のプロトコル（例えば、ＩＧＭＰ）により、そのサブネット内にはマルチキャストグループＧ１に対して参加しているホストがないことを知っている。従って、参加しているマルチキャストグループのないパケットを受信した場合には、パケットを破棄し、このマルチキャストパケットを送る必要のない旨を、メッセージとして親リンク先のルータＲ３に知らせる。このメッセージをプルーンメッセージと呼ぶ。
【００１３】
プルーンメッセージを受け取ったルータＲ３は、以降はこのマルチキャストパケットをルータＲ４へ送信しなくなる。つまり、送信元ホストＳ１、マルチキャストグループＧ１に関しては、枝Ｂ３−４が刈り取られた状態になる。仮に、ルータＲ３のローカルサブネット内にマルチキャストグループＧ１に参加しているホストがなくなれば、ルータＲ３もこの送信元Ｓ１からのマルチキャストグループＧ１のパケットを受け取る必要がなくなるため、今度はルータＲ１にプルーンメッセージを通知する。
【００１４】
このようにして、マルチキャスト通信は無駄な経路の枝が刈り取られ、より効率の良い転送が可能となっている。
【００１５】
【発明が解決しようとする課題】
上記従来のマルチキャスト通信において、マルチキャストグループはＩＰアドレスで定められるグループであり、そのアドレスには地域の情報は含まれていない。そのため、特定の地域に居住する不特定多数の利用者に情報を配信する用途には不向きである。
【００１６】
特定の地域に特化した情報を配信する方法として、その地域毎にマルチキャストアドレスを設定する方法も考えられるが、地域が細分化されると配信元が管理するマルチキャストアドレスの数も膨大になる。また、本来の配信内容のうち一部が地域に特化した情報であっても、他は地域に共通の情報であったりするような場合には、マルチキャストアドレスを地域毎に割り振るのは得策ではない。
【００１７】
地域に特化した情報を配信する別の方法として、利用者のアカウント情報に住所、居場所を記したデータベースを備え、通信の接続時にユーザのアカウント情報に基づいて地域を特定し、その地域に関連づけられた広告を配信するような仕組みがある（例えば、特許文献１参照。）。しかしながらこの方法は、相手を特定してからデータを通信する接続型の通信であるため、放送番組のように通信相手を特定せずに動画や音声を配信するように、ストリームとしてＩＰパケットをネットワーク上に配信するようなマルチキャスト（同報通信）技術には適用できない。
【００１８】
本発明は上述した課題を解決するためになされたものであり、特定の地域に特化したマルチキャスト配信を行うことを目的とする。
【００１９】
【特許文献１】
特開２００１−３０６９２２号公報
【課題を解決するための手段】
上記目的を達成するための一手法として、本発明の情報配信方法は以下の工程を備える。
【００２０】
すなわち、複数のホストおよびルータによって構成されるインターネットシステムにおいて、送信ホストからルータを介して複数の受信ホストへデータを送信する情報配信方法であって、送信ホストにおいて、地域毎の送信データに第１の地域情報を付したパケットをインターネット上へ同報配信し、インターネット経路上のルータにおいて、前記パケットを中継して受信ホストへ転送し、受信ホストのそれぞれにおいて、自身が位置する第２の地域情報を設定し、該設定した第２の地域情報に基づき、前記第１の地域情報が付されたパケットを選択的に受信することを特徴とする。
【００２１】
【発明の実施の形態】
本発明は、複数のホストおよびルータによって構成されるインターネットシステムにおいて、送信ホストからルータを介して複数の受信ホストへデータを送信する情報配信方法であって、送信ホストにおいて、地域毎の送信データに第１の地域情報を付したパケットをインターネット上へ同報配信し、インターネット経路上のルータにおいて、パケットを中継して受信ホストへ転送し、受信ホストのそれぞれにおいて、自身が位置する第２の地域情報を設定し、該設定した第２の地域情報に基づき、第１の地域情報が付されたパケットを選択的に受信する情報配信方法である。
【００２２】
特にルータは、第２の地域情報を取得して保持し、該保持された第２の地域情報と受信したパケットに付された第１の地域情報に基づいて、自身のローカルネット内の受信ホストに対する該パケットの配信を制御する。
【００２３】
さらにルータは、受信ホストから取得した第２の地域情報と受信したパケットに付された第１の地域情報に基づいて、該パケットが近隣ルータに対して転送無効であるか否かを判定し、転送無効であると判定された場合に、第１の地域情報をインターネット経路上の上位ルータへ通知し、該通知を受けた上位ルータは、該第１の地域情報を保持し、該第１の地域情報に基づいて以降のパケット転送を制御する。
【００２４】
ここで上位ルータにおいては、転送無効であると判定された第１の地域情報及び同報通信グループをテーブルとして保持し、受信したパケットに付された第１の地域情報及び同報通信グループが前記テーブルに保持されていれば、該パケットの転送を行わないように制御する。
【００２５】
なお、第１及び第２の地域情報としては、地域を特定しない非特定情報を設定可能であり、受信ホストは、パケットに付された第１の地域情報が非特定情報である場合に、該パケットを受信する。
【００２６】
このような本発明は、具体的に図１〜図７に示す構成において、以下の第１及び第２の実施形態と対応して実現できる。
【００２７】
以下、本発明に係る一実施形態について、図面を参照して詳細に説明する。
【００２８】
＜第１実施形態＞
●システム構成
図１は、本発明を説明するネットワーク構成図と各ルータホストに設けられる主要なテーブルを記したものである。
【００２９】
同図において、１０１はマルチキャスト送信元ホストＳ１、１０２，１０３，１０４はルータＲ１，Ｒ２，Ｒ３である。１０５，１０６，１０７は受信ホストＨ１，Ｈ２，Ｈ３であり、Ｈ１（１０５），Ｈ２（１０６）はルータＲ２（１０３）のローカルネットに接続されてたホストであり、同様に、Ｈ３（１０７）はルータＲ３（１０４）のローカルネット上のホストである。１０８，１０９はルータの経路を示し、ルータのネットワーク・インタフェース間を接続している。
【００３０】
１１０，１１１，１１２はそれぞれ、受信ホストＨ１，Ｈ２，Ｈ３が参加しているマルチキャストグループの情報を保持するマルチキャストグループ・テーブルであり、それぞれの受信ホスト備えている。１１３，１１４はそれぞれ、ルータＲ２，Ｒ３におけるマルチキャストホスト・テーブルであり、マルチキャストグループに参加しているホストを記述したものである。１１５はプルーングループ・テーブルであり、パケットを送る必要のないマルチキャストグループと、その対象となるインタフェースを記述しているものであり、この場合ルータＲ２に備えられている。１１６は送信元ホスト１０１が備える地域別データ・テーブルである。
【００３１】
●送信ホストの通信手順
図２は、送信ホストＳ１（１０１）における処理手順を示した図である。
【００３２】
まず、ステップＳ２０１でソケットを生成する。ソケットはＴＣＰ／ＩＰアプリケーションの実装でよく使用される相手との論理的な通信端点である。次にステップＳ２０２で送信先を設定する。この場合マルチキャスト通信なので、マルチキャストアドレスが送信先となる。
【００３３】
そしてステップＳ２０３からＳ２０７でデータがある限りデータの送信を行う。まず、ステップＳ２０４で地域を特定する送信データであるか否かを判定する。この判定は、アプリケーションがデータの内容に応じて行う。図１に示す地域別データ・テーブル１１６には、マルチキャストグループＧ１に送信するデータと送信先地域の情報が格納されており、例えばデータＤ１は地域コード０のデータである旨が示されている。なお、地域コード「０」は、特定の地域の情報ではないことを表す特別な値として用いられる。以下、データＤ２１，データＤ２２はそれぞれ、地域コードＡ１，地域コードＡ２の地域に特化したデータであることを示している。地域コードとしては例えば、郵便番号を用いることができる。送信元ホストＳ１では、地域別データ・テーブル１１６のデータＤ１，Ｄ２１，Ｄ２２，Ｄ３の順番にデータを配信することになる。
【００３４】
このように本実施形態における地域コードとしては、地域によって一意なコード情報を用いる。
【００３５】
ステップＳ２０４において、送信データの地域コードが０であって地域が特定されない場合には、ステップＳ２０６で従来通りのパケットを生成し、ステップＳ２０７で送信する。一方、地域コードが特定されている場合には、ステップＳ２０５で地域コード付のパケットを生成して、ステップＳ２０７で送信する。ステップＳ２０４〜Ｓ２０７のループが終了したら、ステップＳ２０８でソケットを削除して送信処理は完了する。
【００３６】
●ＩＰパケット構成
図３に、本実施形態において送信するＩＰパケットの構成を示す。図３の（ａ）は、地域情報を備えない通常のＩＰパケットを示し、ＩＰヘッダ部３０１とペイロードと言われるデータ部３０２からなる。ＩＰヘッダ部３０１には、宛先ＩＰアドレス（この場合はマルチキャストアドレス）が格納されている。図３の（ｂ）は、地域情報付のＩＰパケットを示し、上述した通常のＩＰパケットに対して、ＩＰヘッダ３０１の次にＩＰ拡張ヘッダ３０３が追加された形式になっている。ＩＰ拡張ヘッダ３０３には、指定された地域コードを格納する。ＩＰ拡張ヘッダ３０３は、通常のＩＰヘッダ３０１が持つ以外の情報を必要とする場合に付加できるように、ＩＥＴＦ  ＲＦＣ２０６０で規定されている機能である。該機能においては、本実施形態の地域コードという具体的な拡張情報は規定されていないものの、本実施形態はこのように既存のプロトコルの枠組を利用して実現することが可能である。
【００３７】
送信されたパケットはインターネット上の適切な経路を通って、そのマルチキャストグループに参加している各ホストに到達することになる。これは従来のマルチキャストとほぼ同様である。
【００３８】
●受信ホストの通信手順
次に図４を用いて、本実施形態の受信ホスト（図１ではＨ１，Ｈ２，Ｈ３など）における通信手順を説明する。
【００３９】
まずステップＳ４０１でソケットを生成した後、ステップＳ４０２でマルチキャストグループへの参加を行う。一般的には、グループへ参加する関数が用意されており、そのパラメータとして、参加するマルチキャストＩＰアドレスのみを指定するが、本実施形態ではその関数に地域コードを指定する引数を追加し、地域情報を加える場合にこれを指定する。地域情報を指定しない場合には、「なし」を意味する「０」を指定するものとする。受信ホストの地域コードは、ホストの設定ファイル等に別途設定しておく。その地域コードを指定するか否かはアプリケーションに依存し、アプリケーションが固定的に使う場合や、ユーザが地域を指定するか否かを選択できる場合などが想定される。
【００４０】
参加を表明したマルチキャストアドレスおよび地域コードは、マルチキャストグループ・テーブル１１０，１１１，１１２に格納される。マルチキャストグループ・テーブル１１０，１１１，１１２は、参加を表明したマルチキャストグループ（アドレス）とそれを表明したソケット番号の対からなる。テーブル１１０は、受信ホストＨ１（１０５）が保持するマルチキャストグループ・テーブルであり、マルチキャストグループＧ１、地域コードＡ１で参加を表明した例を示し、参加したソケット番号（この場合Ｃｉ）と共に格納される。他のソケットが同じグループで参加する場合もあるので、ソケットの欄には複数の格納ができる。テーブル１１１も同様に、受信ホストＨ２でマルチキャストグループＧ２の参加があった場合のテーブルの状態を示している。該テーブルにおける地域コードは０であるから、地域指定はない。またテーブル１１２はソケットＣｉがグループＧ１，地域コードＡ２で参加し、ソケットＣｊがグループＧ１，地域コードなしで参加した状態を示している。
【００４１】
以上のようにマルチキャストアドレスがホストに登録されると、その情報をステップＳ４０３でローカルなルータに通知する。すなわち、受信ホストＨ１，Ｈ２はルータＲ２に、受信ホストＨ３はルータＲ３に通知することになる。通知方法としては、従来のマルチキャスト通信技術で用いられるインターネット・グループ・マネージメント・プロトコル（ＩＧＭＰ）を用いることができる。ＩＧＭＰは参加を表明したマルチキャストアドレスをブロードキャストすることにより、ローカルなルータに参加したホストのＩＰアドレスとマルチキャストアドレスを通知するものである。本実施形態では、ＩＧＭＰメッセージにおけるマルチキャストアドレス格納領域を拡張し、地域コードも通知することを特徴とする。なお、地域コードがない場合には、メッセージに「０」を書き込む。
【００４２】
ステップＳ４０４はマルチキャスト通信処理であり、実際にはマルチキャストパケットの受信処理となる。ホストが接続されているローカルネットワークには、自身が参加しているマルチキャストパケット以外も流れるため、自身が関係するパケットだけを取得するようにしなければならない。この処理は図５を用いて後で詳細に説明する。
【００４３】
ステップＳ４０４でのデータ通信が終了すると、ステップＳ４０５でマルチキャストグループから脱退する。具体的には、マルチキャストグループ・テーブル（１１０，１１１，１１２）から該当するソケットの情報を削除し、ＩＧＭＰプロトコルを使用して、ローカルルータ（Ｒ２，Ｒ３）に脱退情報を通知する。通知を受けたルータは、マルチキャストホスト・テーブル（１１３，１１４）から当該ホストを削除する。これらは、当該ホストの登録時の逆の手順であり、これによって受信処理を終了する。
【００４４】
●パケット受信処理詳細
以下、上述したステップＳ４０４におけるパケット受信処理について、図５のフローチャートを用いて詳細に説明する。
【００４５】
ホストに受信されたパケットは、ステップＳ５０１でこのホストが受信すべきフレームであるか否かが検査され、必要ないパケットであればステップＳ５０９で破棄する。例えばイーサネット（登録商標）フレームであれば、受信したフレームのＭＡＣアドレスが自分宛てのアドレスであるか又はブロードキャストアドレス以外のフレームは、必要ないので破棄することになる。
【００４６】
次にステップ５０２において、受信したパケットがマルチキャストパケットであるか否かを、そのＩＰヘッダの送信先アドレスを抽出することによって判定する。この判定は、送信先アドレスの定められたビットを検査することで容易に行えるように規格されている。マルチキャストパケットでなければ、ステップＳ５０３で送信先アドレスが自分のＩＰアドレスであるか否かを調べ、そうであればステップＳ５０８でパケットを受信して上位層にデータを渡す。一方、受信パケットの送信先ＩＰアドレスが自分宛てでない場合には、ステップＳ５０９でパケットを破棄する。
【００４７】
一方、ステップＳ５０２でマルチキャストパケットであると判定された場合には、ステップＳ５０４で受信パケットに地域コードが付加されているか否かを検査する。地域コードが付されていない場合には、ステップＳ５０６でそのホストが備えるマルチキャストグループ・テーブル１１０，１１１，１１２内を探索し、受信したパケットと同じマルチキャストグループ（すなわちＩＰアドレス）が存在するか否かを検査する。この際、テーブル内の地域コードは無視する。例えば、受信ホストＨ３が受信したパケットのマルチキャストグループがＧ１であったとすると、マルチキャストグループ・テーブル１１２でＧ１の参加が表明されているかが検索され、グループＧ１，地域コードＡ２のソケットＣｉと、グループＧ１，地域コード０のソケットＣｊの２つがヒットする。受信パケットに地域コードがない場合には、テーブルのグループが一致すれば、どんな地域コードでもヒットすることにする。
【００４８】
一方、ステップＳ５０４において地域コードが付加されているマルチキャストパケットであると判定された場合には、ステップＳ５０５で、今度はグループと地域コードの対が完全に一致する項目があるか否かを探索する。例えば、グループＧ１，地域コードＡ２のマルチキャストパケットを受信した場合、受信ホストＨ３のテーブル１１２を例とすると、グループＧ１，地域コードＡ２のソケットＣｉだけがヒットすることになる。
【００４９】
そしてステップＳ５０７で、ステップＳ５０５，Ｓ５０６における探索の結果、受信したマルチキャストパケットに対して参加を宣言しているソケットがある場合には、ステップＳ５０８の受信処理に移行し、そうでなければステップＳ５０９でパケットを破棄する。
【００５０】
本実施形態のパケット受信処理においては、複数のソケットが参加を宣言しているような場合には、それぞれにソケット対してパケットのデータを複製してアプリケーション層に渡す。
【００５１】
●ルータ動作
本実施形態においてはルータが、受信した地域情報付きパケットの転送を制御することによって、より効率的なパケット配信を可能とする。以下、ルータによるパケット配信の制御動作について説明する。
【００５２】
先に説明したように、一般的にルータは、受信したパケットがマルチキャストパケットである場合、送信元とそのインタフェースが記述された経路表に従い、受信したパケットの送信元が記述されたインタフェースから受信した時に限り、受信したインタフェース以外のインタフェースにパケットを転送する。
【００５３】
図６は、送信元ホストからのマルチキャストパケットを受信した際の、ルータの動作を示すフローチャートである。ここで、受信したパケットのマルチキャストグループをＧｒ，地域コードをＡｒとする。地域コードが付いていないマルチキャストパケットの場合には、Ａｒの値を０として処理を進めることとする。
【００５４】
まず、ステップＳ６０１で転送フラグなる変数を０に設定する。この０は、ルータがパケットを転送しなかったことを意味する。次にステップＳ６０２において、受信したグループＧｒおよび地域コードＡｒのパケットを受信すべきホストが、該ルータのローカルネット内にあるか否かを検査する。具体的には、ルータが所有するマルチキャストホスト・テーブル（１１３，１１４）内のグループ，地域コード欄を検索し、パケットの地域コードＡｒが０、すなわち地域コードなしであればテーブル内の地域コードは無視し、テーブル内にグループＧｒがあれば受信ホスト対象があると判定する。これにより、地域コードを伴って参加を表明しているホストであっても、グループが一致していれば地域コードなしのパケットも受け取ることが可能となる。一方、パケットの地域コードＡｒが０以外の値である場合には、グループＧｒと地域コードＡｒの対が完全に一致するものがテーブル内にあるか否かを検査する。
【００５５】
以上のステップＳ６０２における検査の結果、受信されたマルチキャストパケットを受け取るホストがローカルネット内に一つでも存在する場合にはステップＳ６０３に移行し、存在しない場合にはステップＳ６０３をスキップする。ステップＳ６０３では、該ルータのローカルネット上に、受信したマルチキャストパケットをブロードキャスト送信する。これにより、ローカルネット内においてグループＧｒへの参加を表明しているホストがパケットを受信することになる。このとき、転送を行った旨を示す転送フラグに１を設定しておく。
【００５６】
次にステップＳ６０４〜Ｓ６０６において、受信したインタフェース以外の各インタフェースへのパケット転送を試みる。ステップＳ６０４では、各インタフェースに対する処理をループするための条件を判断する。例えば、図１に示すルータＲ２であればインタフェースＢ１からパケットを受け取るので、それ以外のインタフェースはＢ２となり、基本的にはＢ２へパケットを転送することになる。
【００５７】
しかし、Ｂ２以降の経路上のホストにそのマルチキャストグループに参加を表明しているホストがなければ、転送する必要がない。そのような判断が、ステップＳ６０５で行われる。ステップＳ６０５では、プルーングループ・テーブル（図１の１１５）内を検査し、転送しなくてよいパケットであるか否かを判断する。プルーングループ・テーブルには、他のルータから通知される情報を元に、マルチキャストグループ，地域コードとインタフェースの対が設定されている。テーブル１１５では、グループＧ１，地域コードＡ１のマルチキャストパケットと、グループＧ２のマルチキャストパケットは、インタフェースにＢ２に転送しなくても良い旨が示されている。ステップＳ６０５では、受信パケットの地域コードＡｒが０の時には、プルーングループ・テーブルにおいてグループと地域コードが一致している項目、すなわち”Ｇｒ：０”の組みを検索する。一方、地域コードＡｒが０以外の時には、テーブル中の地域コードは無視し、グループのみが一致する項目を検索する。転送しようとしているインタフェースに関して上記項目が見つからない場合には、パケットを転送する必要があるためステップＳ６０６に移行するが、見つかればパケットを転送する必要はない。
【００５８】
ステップＳ６０６では、着目しているインタフェースにマルチキャストパケットを転送し、転送フラグに１を設定する。
【００５９】
すべてのインタフェースについて転送処理が終了したら、ステップＳ６０７で転送フラグが０になっているか否か、すなわち、ローカルネットまたは他のルータいずれにもパケットを転送していないかを判定する。そうであればステップＳ６０８において、プルーンメッセージをルータ間プロトコルを用いて送信する。このプルーンメッセージには、受信したマルチキャストパケットのグループＧｒと地域コードＡｒを情報として含める。
【００６０】
既存のルータ間プロトコルにもグループＧｒを通知する仕組みが備わっているが、本実施形態では更に地域コードを追加して通知する。図１に示すルータＲ３を例とすると、このルータＲ３がルータＲ２から、グループＧ１，地域コードＡ１のパケットを初めて受け取ると、マルチキャストホスト・テーブル１１４によればマルチキャストグループに参加しているホスト、すなわち該パケットを受け取るホストがないため、上位ルータであるルータＲ２に対してプルーンメッセージを通知する。インタフェースＢ２から該通知を受けたルータＲ２は、以後”Ｇ１：Ａ１”のパケットをインタフェースＢ２に送信しないように、プルーングループ・テーブル１１５に”Ｇ１：Ａ１”と”Ｂ２”の項目を追加する。また、ルータＲ３がグループＧ２のマルチキャストパケットを受信した場合にも同様に、ルータＲ２に対してプルーンメッセージを通知し、プルーングループ・テーブル１１５に”Ｇ２：０”と”Ｂ２”の項目が追加されることになる。
【００６１】
ルータＲ３のローカルネット内のホストが参加や脱退の表明を行うことによって、ルータＲ３が受け取るべきマルチキャストパケットの状況が変化した場合には、プルーンメッセージによってルータＲ２のプルーングループ・テーブル１１５の情報が更新されることになる。
【００６２】
本実施形態のルータにおいてはこのようにして、送る必要のない経路を動的に管理し、効率のよいマルチキャスト転送を可能としている。
【００６３】
以上説明したように本実施形態によれば、マルチキャストパケットに地域情報を設け、ルータおよび受信ホストに地域情報によってマルチキャストパケットを選択する機能を設けることによって、特定の地域に対するマルチキャスト通信が実現可能となる。
【００６４】
特に、各地域を通して同一のマルチキャストアドレスを使用できるため、通常は全参加ホストに対して共通のコンテンツをマルチキャスト配信し、その中のある一定時間だけ、各地域に特化したコンテンツを地域情報として配信することが、継続した通信で実現できる。
【００６５】
＜第２実施形態＞
以下、本発明に係る第２実施形態について説明する。
【００６６】
上述した第１実施形態においては、地域コードとして郵便番号を用いる例を示したが、地域コードはもちろんこれに限定されない。例えば、最寄駅などの情報をコード化して用いてもよい。また、地域の指定をより柔軟にし、以下に説明するように地理的包含関係を利用して地域を特定するようにしてもよい。
【００６７】
図７は、第２実施形態において、地上をＸ−Ｙ座標系で表現した地域指定方法を説明するための図である。同図において、７０１，７０２，７０３はそれぞれホストＨ１，Ｈ２，Ｈ３が設定している座標である。すなわち、ホストＨ１は（ｘ１，ｙ１）、ホストＨ２は（ｘ２，ｙ２）、ホストＨ３は（ｘ３，ｙ３）に位置していることを表している。７０４および７０５は、マルチキャストパケットの送信側によって設定されるエリア例であり、２次元の広がりをもって設定する。エリア７０４は点（ｏｘ１，ｏｙ１）と点（ｃｘ１，ｃｙ１）を対角点とする矩形領域であり、同様にエリア７０５は、点（ｏｘ２，ｏｙ２）と点（ｃｘ２，ｃｙ２）を対角点とする矩形領域である。第２実施形態においては、地域を限定するマルチキャストパケットに対して、このような矩形領域が地域情報として付加されて配信される。
【００６８】
このようなマルチキャストパケットを受信する第２実施形態のホスト側においては、図５のステップＳ５０５に示すグループ・地域コード対の検索処理を、以下のように実行する。例えば、地域コードが矩形（ｏｘｉ，ｏｙｉ）−（ｃｘｉ，ｃｙｉ）を示している場合、自ホストの位置（ｘｊ，ｙｊ）がその矩形に含まれているか否かを判定する。具体的には、
ｏｘｉ  ≦  ｘｊ  ＜  ｃｘｉ  かつ  ｏｙｉ  ≦  ｙｊ  ＜  ｃｙｉ
であればパケットを受信し、それ以外は破棄する。
【００６９】
このように第第２実施形態においては、パケットに付された地域コードは所定の地域範囲を示し、受信ホストは、自身の地域コードがパケットに付された地域コードの示す地域範囲内にあれば、該パケットを受信する。図７に示す例では、地域Ａ１のマルチキャストパケットが配信された場合にはホストＨ１とホストＨ３が、地域Ａ２のマルチキャストパケットが配信された場合にはホストＨ２とホストＨ３が、それぞれ該パケットを受信することになる。
【００７０】
以上説明したように第２実施形態によれば、地域情報の指定方法に柔軟性を持たせることによって、多様な配信形態が実現される。
【００７１】
【発明の効果】
以上説明したように本発明によれば、特定の地域に特化したマルチキャスト配信を行うことができる。
【図面の簡単な説明】
【図１】本発明に係る一実施形態におけるネットワーク構成および各種テーブル例を示す図である。
【図２】本実施形態における送信ホストの送信処理手順を示すフローチャートである。
【図３】本実施形態におけるＩＰパケットの構成を示す図である。
【図４】本実施形態における受信ホストの通信処理手順を示すフローチャートである。
【図５】本実施形態におけるマルチキャストパケット受信処理の詳細手順を示すフローチャートである。
【図６】本実施形態におけるルータのパケット処理手順を示すフローチャートである。
【図７】第２実施形態における地域情報の表現形式を示す図である。
【図８】一般的なマルチキャスト通信の動作状況を説明する図である。
【符号の説明】
１０１  送信ホスト
１０２，１０３，１０４  ルータ
１０５，１０６，１０７  受信ホスト
１１０，１１１，１１２  マルチキャストグループ・テーブル
１１３，１１４  マルチキャストホスト・テーブル
１１５  プルーングループ・テーブル
１１６  地域別データ・テーブル
【図１】
2004173209.tif 000003
【図２】
2004173209.tif 000004
【図３】
2004173209.tif 000005
【図４】
2004173209.tif 000006
【図５】
2004173209.tif 000007
【図６】
2004173209.tif 000008
【図７】
2004173209.tif 000009
【図８】
2004173209.tif 000010