(57)【特許請求の範囲】
【請求項１】
複数の宛先アドレスの記述された宛先リストに基づいて転送先を決定するパケット送信方法であって、
第一ノードが、前記宛先リストの宛先ノードへ明示的マルチキャストパケットを中継する次ホップノードへユニキャストにより送信する宛先グループと、リンクレベルマルチキャストにより送信する宛先グループとに分類するステップと、
前記第一ノードが、前記分類にしたがって、明示的マルチキャストパケットをユニキャスト、あるいはリンクレベルマルチキャストにより送信するステップと、
第二ノードが前記リンクレベルマルチキャストにより送信された明示的マルチキャストパケットを受信したとき、前記明示的マルチキャストパケットを受信したインターフェイス以外のインターフェイス側に位置する、前記宛先リストに記述された未配送の宛先ノードへのみ、前記明示的マルチキャストパケットを転送する逆方向転送禁止ステップと
を有するパケット送信方法。
【請求項２】
前記第一ノードは、前記次ホップノードに前記逆方向転送禁止ステップの実施の可否を問い合わせるステップと、
前記次ホップノードが、前記問い合わせに応答するステップと、
をさらに有し、
前記第一ノードが前記分類において、前記逆方向転送禁止ステップの実施可と応答した前記次ホップノードによる中継先の前記宛先ノードをリンクレベルマルチキャストの宛先グループとし、前記逆方向転送禁止ステップの実施可以外の応答をした宛先ノードをユニキャストの宛先グループと分類する請求項１に記載のパケット送信方法。
【請求項３】
前記第一ノードが、宛先リストに記述された宛先ノードを、当該宛先ノードに対応した前記次ホップノードが接続するリンクとのインターフェイス毎に分類するステップをさらに有し、
前記宛先グループの分類を前記転送先インターフェイス毎に行う請求項２に記載のパケット送信方法。
【請求項４】
前記第一ノードが、ユニキャストの宛先グループに属する宛先ノードへ中継する次ホップノードを経路表に基づいて決定するステップと、
前記第一ノードが、決定された前記次ホップノードの中継先の前記宛先ノードのみ有効となるように宛先リストを変更するステップと、
をさらに有し、
前記第一ノードが、変更された前記宛先リストを含む前記明示的マルチキャストパケットを前記次ホップノードへユニキャストにより送信する請求項２に記載のパケット送信方法。
【請求項５】
前記第一ノードが、マルチキャストの宛先グループに分類した宛先ノードのみ有効となるように宛先リストを変更するステップをさらに有し、
前記第一ノードが、変更された前記宛先リストを含む前記明示的マルチキャストパケットをマルチキャストにより送信する請求項２に記載のパケット送信方法。
【請求項６】
前記第一ノードは、未使用のリンクレベルマルチキャストアドレスを獲得するステップをさらに含み、
前記第一ノードが、前記リンクレベルマルチキャストによる明示的マルチキャストパケットを送信するときに、前記リンクレベルマルチキャストアドレスを宛先ＩＰアドレスに設定して送信する請求項２に記載のパケット送信方法。
【請求項７】
複数の宛先アドレスの記述された宛先リストに基づいて転送先を決定する中継ノードであって、
受信した明示的マルチキャストパケットの宛先ＩＰアドレスが、登録済みのリンクレベルマルチキャストアドレスであるか否かを判別するマルチキャスト判別部と、
前記マルチキャスト判別部が登録済みのリンクレベルマルチキャストアドレスであると判別した場合に、前記宛先リストに記述された宛先アドレスと経路表に基づいて、受信した明示的マルチキャストパケットを送出する転送先インターフェイスを決定し、当該明示的マルチキャストパケットを受信したインターフェイス以外の転送先インターフェイス毎に、明示的マルチキャストパケットを次ホップノードへユニキャストにより送信する宛先グループと、リンクレベルマルチキャストにより送信する宛先グループとに前記宛先リストの宛先を分類する送信グループ分類部と、
受信した明示的マルチキャストパケットに含まれる前記宛先リストを、マルチキャストの前記宛先グループの宛先のみが有効となるように変更し、宛先アドレスにマルチキャストアドレスを設定する、あるいはユニキャストの前記宛先グループに属する宛先ノードへ中継する次ホップノードを経路表に基づいて決定し、当該次ホップノードの中継先の前記宛先ノードのみ有効となるように変更し、宛先アドレスに当該次ホップノードのアドレスを設定するパケット生成部と、
前記パケット生成部により生成された前記明示的マルチキャストパケットを、前記送信グループ分類部により決定された、当該明示的マルチキャストパケットの有効な宛先ノードに該当する転送先インターフェイスから送信する送信部と
を有する中継ノード。
【請求項８】
明示的マルチキャストパケットをリンクレベルマルチキャストにより受信したとき、受信したインターフェイスへ当該明示的マルチキャストパケットを逆方向転送しない機能を有するか否かをブロードキャストメディア上のノードへ問い合わせる経路管理部をさらに有し、
前記送信グループ分類部が前記問い合わせに対し、逆方向転送しない機能を有すると応答した次ホップノードをマルチキャストの宛先グループに分類し、前記応答以外の応答をした次ホップノードをユニキャストの宛先グループに分類する請求項７に記載の中継ノード。
【請求項９】
複数の宛先アドレスの記述された宛先リストに基づいて転送先を決定する受信ノードであって、
受信した明示的マルチキャストパケットの宛先ＩＰアドレスが、登録済みのリンクレベルマルチキャストアドレスであるか否かを判別するマルチキャスト判別部と、
前記マルチキャスト判別部が登録済みのリンクレベルマルチキャストアドレスであると判別した場合、前記明示的マルチキャストパケットの転送を禁止し、判別しない場合、前記明示的マルチキャストパケットに含まれる前記宛先リストの有効な宛先アドレスの内、自己のアドレスを無効に修正し、残りの有効な宛先アドレスの一つのノードへ、当該明示的マルチキャストパケットを送信可とする送信判定部と、
前記送信判定部による前記明示的マルチキャストパケットの転送を禁止する機能を有するか否かの問い合わせを受信する受信部と、
前記問い合わせに対して当該機能を有することを応答する経路管理部と、
前記送信判定部が前記明示的マルチキャストパケットを送信可と判定したとき、有効な宛先アドレスの一つの前記ノードへ、修正された前記明示的マルチキャストパケットをユニキャストにより送信する送信部と
を有する受信ノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して、複数の端末やルータにパケットを効率的に配送するパケット送信方法に関する。
【背景技術】
【０００２】
従来より、ＯＳＩ参照モデルの第三層のパケット送信方法としてＩＰマルチキャストがあった。ＩＰマルチキャストとは、パケットの宛先アドレス欄に端末の集合を現すグループＩＰアドレスを指定し、パケットを受け取ったルータが適切にパケットを複製し、そして、転送することによりルータを超えて複数の端末にパケットを送信する方法である。ＩＰマルチキャストでは、ルータが受け取ったパケットは、複数のルータを経由して、最終的に宛先グループの端末が接続されているネットワークまで転送される。あるルータで、ＩＰマルチキャストパケットを受け取ると、ルータが保持している経路表を探索して、転送先のインターフェイスを決定する。このインターフェイスがブロードキャストメディアに接続されている場合、パケットはリンクレベルマルチキャスト配送方法で転送される。
【０００３】
このリンクレベルマルチキャスト（以下、「ＬＭＣ」という。）配送方法とは、ＯＳＩ参照モデルの第二層のパケット中の宛先アドレスにマルチキャストアドレスを指定して、同一のブロードキャストメディア上に接続された複数の端末にパケットを同時に届ける配送方法である。このため、宛先グループの端末や、中継のルータがひとつのブロードキャストメディア上に複数接続されている場合、効率的にパケットを配送できた。なお、ブロードキャストメディアとは、例えば、ＩＥＥＥ８０２．３で規定されるイーサネット（登録商標）やＩＥＥＥ８０２．１１ｂで規定される無線ＬＡＮを指す。同一のメディア（ケーブルや周波数帯）を複数の端末で共有することからそのように呼ばれる。
【０００４】
しかし、ＩＰマルチキャストでは、配送するグループ毎にＩＰマルチキャストアドレスを割り当てる必要があり、動的にグループの構成ノードが変化する場合には対応が困難であった。また、経路上のすべてのルータの経路表にＩＰマルチキャストアドレスの設定を行う必要があった。
【０００５】
そこで、別の第三層のパケット配送方法として、非特許文献１および特許文献１に示される明示的マルチキャスト配送方法（以後「ＸＣＡＳＴ」と略記する。）が提案された。
【０００６】
図１４は、ＸＣＡＳＴ（Ｅｘｐｌｉｃｉｔ  Ｍｕｌｔｉｃａｓｔ）６のパケットのフォーマットを示す図である。なお、このＸＣＡＳＴ６は、ＩＰアドレスとしてＩＰｖ６を用いて通信を行うものである。
【０００７】
図１４において、ＸＣＡＳＴヘッダ（ＸＣＡＳＴＨｄｒ）１４０１は、ＩＰｖ６ヘッダ（ＩＰｖ６Ｈｄｒ）１４０２とルーティングヘッダ（ＲｏｕｔｉｎｇＨｄｒ）１４０３とで構成されている。ＩＰｖ６ヘッダ１４０２の送信元アドレス１４０４には、パケットの送信元ノードのＩＰアドレスが記載され、宛先アドレス１４０５には、ＸＣＡＳＴ６であることを示すマルチキャストアドレスを記載する。
【０００８】
ルーティングヘッダ１４０３には、マルチキャストの送信先である、すべての宛先アドレス０〜ｎ（１４０７）と宛先ポート（Ｐｏｒｔ）０〜ｎ（１４０８）が記載される。そして、宛先ビットマップ１４０６は、宛先ノードに対応してビットが指定されており、未配送の宛先ノード（‘１’がセットされている）と配送済みの宛先ノード（‘０’がセットされている）とが明示される。以下の説明では、宛先ビットマップ１４０６と宛先アドレス１４０７とを合わせて、「宛先リスト」という。
【０００９】
ＸＣＡＳＴでは、複数の端末にパケットを配送する場合、送信装置はパケット中に宛先リストを作成し、宛先リストの先頭ノードへ送信する。ＸＣＡＳＴに対応したルータは、そのパケットを受信すると、経路表を参照して、宛先リスト中の未配送の宛先ノードが接続するリンクへの転送先インターフェイスを決定する。そして、そのルータは、適宜パケットを複製し、未配送の宛先ノードに該当するビットのみ‘１’となるように宛先ビットマップ１４０６を修正する。その後、そのルータは、宛先リストの先頭に位置する未配送ノードへパケットを出力する。宛先ノードである端末は、これを受信すると、宛先ビットマップ１４０６の自己に該当するビットを配送済み‘０’にし、そのパケットを未配送の宛先ノードである端末へ送信する。これにより、ＩＰマルチキャストアドレスを使用しなくても、複数の端末に一つのパケットが順次伝わることで、ＩＰマルチキャストと同様に複数の宛先グループの端末へ同一データを送信することが可能となった。
【００１０】
しかしながら、ＸＣＡＳＴによる配送方法では、ルータの転送先インターフェイスがブロードキャストメディアであっても、リンクレベルマルチキャスト配送方法で配送すると、受信したルータが宛先リストの未配送ノードへ受信パケットを転送しようとして、受信したインターフェイスから送信してしまう。このため、複数のＸＣＡＳＴのパケットがそのブロードキャストメディアでループし続けるおそれがあった。
【００１１】
特許文献２は、この課題を解決するために提案されたパケット配送方法であり、ＸＣＡＳＴ対応のルータ間の配送をユニキャストによって行う方法を開示している。
【００１２】
図１５は、従来のＩＰネットワークの構成図である。
【００１３】
図１５において、ルータ１（１５０１）乃至ルータ４（１５０４）、送信装置１５１１、及び受信装置１（１５１２）乃至受信装置４（１５１５）はＸＣＡＳＴに対応している。このとき、送信装置１５１１からすべての受信装置へ同一データを送信するときの動作について図面を用いて説明する。
【００１４】
図１６は、ＸＣＡＳＴによるデータ配信の動作を示すシーケンス図である。
【００１５】
図１６において、送信装置１５１１は受信装置１乃至４のアドレスを宛先リストに記載したＸＣＡＳＴパケットを生成し、ルータ１へ送信する（ステップＳ１６０１）。
【００１６】
次に、ルータ１は、受信したＸＣＡＳＴパケットの未配信宛先ノードへ送信するための次ホップノードを経路表に基づいて決定する。このとき、ルータ１は、次ホップノード（ルータ２乃至４）のリンクレベルのユニキャストアドレスが不明な場合は、近隣要請メッセージ（Ｎｅｉｇｈｂｏｒ  Ｓｏｌｉｃｉｔａｔｉｏｎ  Ｍｅｓｓａｇｅ）と、近隣告知メッセージ（Ｎｅｉｇｈｂｏｒ  Ａｄｖｅｒｔｉｓｅｍｅｎｔ  Ｍｅｓｓａｇｅ）を用いて探索する（図示していない）。
【００１７】
次に、ルータ１は、次ホップノード毎に受信パケットを複製し、宛先ビットマップをその次ホップノードが中継する対象の未配信宛先ノードのみ‘１’となるように修正する。そして、宛先アドレスに探索して得たユニキャストアドレスを設定し、次ホップノード毎へそのＸＣＡＳＴパケットを送信する（ステップＳ１６０２、Ｓ１６０５、Ｓ１６０７）。
【００１８】
ここで、ルータ１から次ホップノードへ送信されるＸＣＡＳＴパケットの内容を図１３（ａ）乃至（ｃ）に示す。
【００１９】
すなわち、受信装置（Ｒ）１と受信装置（Ｒ）２へのパケットは、ルータ（ＲＴ）２を次ホップノードとして一つのパケットにまとめられる。また、宛先ビットマップにおいて、受信装置（Ｒ）１と受信装置（Ｒ）２に該当するビットのみが‘１’に設定され、他の宛先のビットは‘０’が設定される。同様にして、図１３（ｂ）に示すように、受信装置（Ｒ）３へのパケットは、ルータ（ＲＴ）３を次ホップノードとし、宛先ビットマップの受信装置（Ｒ）３に該当するビットのみ‘１’が設定される。また、図１３（ｃ）に示すように、受信装置（Ｒ）４へのパケットも同様に、ルータ（ＲＴ）４を次ホップノードとし、宛先ビットマップの受信装置（Ｒ）４に該当するビットのみ‘１’が設定される。
【００２０】
次に、ルータ２は、このパケットを受信すると、宛先リストの先頭の未配信宛先ノードへ送信する（ステップＳ１６０３）。受信装置１は、このパケットを受信すると、宛先ビットマップ１４０６の自己に該当するビットを‘０’に修正し、未配信宛先ノードに記載された受信装置２へ転送する（ステップＳ１６０４）。
【００２１】
同様にして、ルータ３、ルータ４も未配信宛先ノードである受信装置３、４へ受信したパケットを転送する（ステップＳ１６０６、Ｓ１６０８）。
【００２２】
このように、特許文献２に記載の方法によれば、明示的マルチキャストとユニキャストとを組み合わせることにより、ブロードキャストメディア上でパケットのループを生じることなく、すべての受信装置へ同一データを配信することができた。
【非特許文献１】Ｙ．Ｉｍａｉ，Ｍ．Ｓｈｉｎ  ａｎｄ  Ｙ．Ｋｉｍ，“ＸＣＡＳＴ６：ｅＸｐｌｉｃｔ  Ｍｕｌｔｉｃａｓｔ  ｏｎ  ＩＰｖ６”，ＩＥＥＥ／ＩＰＳＪ  ＳＡＩＮＴ２００３  Ｗｏｒｋｓｈｏｐ  ４，ＩＰｖ６  ａｎｄ  Ａｐｐｌｉｃａｔｉｏｎｓ，Ｏｒｌａｎｄ，Ｊａｎ．２００３．
【特許文献１】特開２０００−３５４０６３号公報
【特許文献２】米国特許出願公開第２００３／００４６４２５号明細書
【発明の開示】
【発明が解決しようとする課題】
【００２３】
しかしながら、特許文献２に開示された従来の方法では、ブロードキャストメディアに接続されている複数の受信装置やルータそれぞれに同一パケットを送信する場合も、ユニキャストにより個別に送信を行うため、ブロードキャストメディアの通信帯域の消費が大きくなるという課題があった。
【課題を解決するための手段】
【００２４】
本発明のパケット送信方法は、複数の宛先アドレスの記述された宛先リストに基づいて転送先を決定するものである。すなわち、第一ノードが、次ホップノードへユニキャストにより送信する宛先グループと、リンクレベルマルチキャストにより送信する宛先グループとに分類する。このユニキャストにより送信する宛先グループは、宛先リストの宛先ノードへ明示的マルチキャストパケットを中継する次ホップノードのグループである。そして、第一ノードが、その分類にしたがって、明示的マルチキャストパケットをユニキャスト、あるいはリンクレベルマルチキャストにより送信する。その後、第二ノードがリンクレベルマルチキャストにより送信された明示的マルチキャストパケットを受信したとき、その受信したインターフェイス以外のインターフェイス側に位置する、宛先リストに記述された未配送の宛先ノードへのみ、明示的マルチキャストパケットを転送する。
【００２５】
これにより、ブロードキャストリンク上に同じパケットがループすることがなくなるので、ＸＣＡＳＴにおけるパケット送信においても、リンクレベルマルチキャストによる配信を行うことが可能となる。その結果、ユニキャストにより複数回ＸＣＡＳＴパケットを送信することによる通信帯域の消費を削減することができる。
【００２６】
また、本発明のパケット送信方法において、第一ノードが次ホップノードに逆方向転送禁止機能を有するか否かを問い合わせる。この逆方向転送機能とは、上記したような、ＸＣＡＳＴパケットをリンクレベルマルチキャストにより受信した場合には、受信したインターフェイスからは転送しない機能をいう。そして、次ホップノードがその問い合わせに対して逆方向転送禁止機能を有すると応答すると、第一ノードが上記の分類において、そのように応答した次ホップノードが中継する中継先の宛先ノードをリンクレベルマルチキャストの宛先グループとみなす。また、それ以外の応答をした宛先ノードをユニキャストの宛先グループと分類する。
【００２７】
これにより、第一ノードは、宛先リストの宛先ノードを、リンクレベルマルチキャストによるＸＣＡＳＴパケットの送信をしてもよいグループと、送信してはいけないグループとに分類することができる。
【００２８】
また、本発明のパケット送信方法において、第一ノードがさらに、宛先リストに記述された宛先ノードを、当該宛先ノードに対応した次ホップノードが接続するリンクとのインターフェイス毎に分類する。そして、第一ノードは、宛先グループの分類を転送先インターフェイス毎に行う。
【００２９】
これにより、複数の転送先インターフェイスがある場合でも、転送先インターフェイス毎にリンクレベルマルチキャストを行うことができるので、宛先ノードに効率よくＸＣＡＳＴパケットを配信することが可能になる。
【００３０】
また、本発明のパケット送信方法において、第一ノードがユニキャストの宛先グループに属する宛先ノードへ中継する次ホップノードを経路表に基づいて決定し、その次ホップノードの中継先の宛先ノードのみ有効となるように宛先リストを変更する。そして、第一ノードが、変更された宛先リストを含む明示的マルチキャストパケットをその次ホップノードへユニキャストにより送信する。
【００３１】
これにより、第一ノードは、次ホップノードの中継先の宛先ノードがユニキャストの宛先グループに属するものである場合、次ホップノード単位にユニキャストによりＸＣＡＳＴパケットを送信することができる。
【００３２】
また、本発明のパケット送信方法において、第一ノードがマルチキャストの宛先グループに分類した宛先ノードのみ有効となるように宛先リストを変更する。そして、第一ノードが、変更された宛先リストを含む明示的マルチキャストパケットをマルチキャストにより送信する。
【００３３】
これにより、第一ノードはリンクレベルマルチキャストによるＸＣＡＳＴパケットの送信をしてもよいグループに、ＸＣＡＳＴパケットをリンクレベルマルチキャストによる送信をすることができる。
【００３４】
また、本発明のパケット送信方法において、第一ノードは、未使用のリンクレベルマルチキャストアドレスを獲得する。そして、第一ノードがリンクレベルマルチキャストによる明示的マルチキャストパケットを送信するときに、リンクレベルマルチキャストアドレスを宛先ＩＰアドレスに設定して送信する。
【００３５】
これにより、第一ノードは、マルチキャストアドレスを重複することなく使用することができる。
【００３６】
また、本発明の中継ノードは、複数の宛先アドレスの記述された宛先リストに基づいて転送先を決定するものである。特に、本発明の中継ノードは、マルチキャスト判別部と送信グループ分類部とパケット生成部と送信部とを有している。
【００３７】
そのマルチキャスト判別部は、受信した明示的マルチキャストパケットの宛先ＩＰアドレスが、登録済みのリンクレベルマルチキャストアドレスであるか否かを判別するものである。また、送信グループ分類部は、マルチキャスト判別部が登録済みのリンクレベルマルチキャストアドレスであると判別した場合に、宛先リストに記述された宛先アドレスと経路表に基づいて、受信した明示的マルチキャストパケットを送出する転送先インターフェイスを決定するものである。そして、送信グループ分類部は、当該明示的マルチキャストパケットを受信したインターフェイス以外の転送先インターフェイス毎に、明示的マルチキャストパケットを次ホップノードへユニキャストにより送信する宛先グループと、リンクレベルマルチキャストにより送信する宛先グループとに宛先リストの宛先を分類するものである。
【００３８】
また、パケット生成部は、受信した明示的マルチキャストパケットに含まれる宛先リストを、マルチキャストの宛先グループの宛先のみが有効となるように変更するものである。そして、パケット生成部は、宛先アドレスにマルチキャストアドレスを設定する、あるいはユニキャストの宛先グループに属する宛先ノードへ中継する次ホップノードを経路表に基づいて決定する。さらに、パケット生成部は、当該次ホップノードの中継先の宛先ノードのみ有効となるように宛先リストを変更し、宛先アドレスに当該次ホップノードのアドレスを設定する。
【００３９】
また、送信部は、パケット生成部により生成された明示的マルチキャストパケットを、送信グループ分類部により決定された、当該明示的マルチキャストパケットの有効な宛先ノードに該当する転送先インターフェイスから送信するものである。
【００４０】
これにより、中継ノードは、ブロードキャストリンク上に同じパケットがループすることがないように、XCASTパケットをリンクレベルマルチキャストによる配信できる。その結果、ブロードキャストメディアにおける通信帯域の消費を削減することができる。
【００４１】
また、本発明の中継ノードは、経路管理部をさらに有している。この経路管理部は、明示的マルチキャストパケットをリンクレベルマルチキャストにより受信したとき、受信したインターフェイスへ当該明示的マルチキャストパケットを逆方向転送しない機能を有するか否かをブロードキャストメディア上のノードへ問い合わせるものである。そして、送信グループ分類部が問い合わせに対し、逆方向転送しない機能を有すると応答した次ホップノードをマルチキャストの宛先グループに分類する。また、送信グループ分類部は、応答以外の応答をした次ホップノードをユニキャストの宛先グループに分類する。
【００４２】
これにより、中継ノードは、宛先リストの宛先ノードを、リンクレベルマルチキャストによるＸＣＡＳＴパケットの送信をしてもよいグループと、送信してはいけないグループとに分類することができる。
【００４３】
また、本発明の受信ノードは、複数の宛先アドレスの記述された宛先リストに基づいて転送先を決定するものである。特に、本発明の受信ノードは、マルチキャスト判別部と送信判定部と受信部と経路管理部と送信部とを有している。
【００４４】
そのマルチキャスト判別部は、受信した明示的マルチキャストパケットの宛先ＩＰアドレスが、登録済みのリンクレベルマルチキャストアドレスであるか否かを判別するものである。また、送信判定部は、マルチキャスト判別部が登録済みのリンクレベルマルチキャストアドレスであると判別した場合、明示的マルチキャストパケットの転送を禁止するものである。一方、判別しない場合、送信判定部は、明示的マルチキャストパケットに含まれる宛先リストの有効な宛先アドレスの内、自己のアドレスを無効に修正し、残りの有効な宛先アドレスの一つのノードへ、当該明示的マルチキャストパケットを送信可とするものである。
【００４５】
また、受信部は、送信判定部による明示的マルチキャストパケットの転送を禁止する機能を有するか否かの問い合わせを受信するものである。経路管理部は、問い合わせに対して当該機能を有することを応答するものである。
【００４６】
また、送信部は、送信判定部が明示的マルチキャストパケットを送信可と判定したとき、有効な宛先アドレスの一つのノードへ、修正された明示的マルチキャストパケットをユニキャストにより送信するものである。
これにより、受信装置は、ＸＣＡＳＴパケットをリンクレベルマルチキャストにより受信した場合、ブロードキャストメディア上の他の受信装置への逆方向転送を抑制するので、ブロードキャストメディア上をパケットがループすることを防止できる。
【発明の効果】
【００４７】
本発明によれば、ブロードキャストメディアの通信帯域の消費をできるだけ抑えて、効率的にＸＣＡＳＴパケットを配送できる。
【発明を実施するための最良の形態】
【００４８】
本発明の実施の形態について、図面を用いて以下に説明する。
【００４９】
図１は、本実施の形態に係るＩＰネットワークの構成を示す図である。
【００５０】
図１において、ルータ１１（１０１）乃至ルータ１３（１０３）が本発明のパケット送信方法に対応した（以下、「ＬＭＣ対応」という。）ルータであり、ルータ４（１０４）がＸＣＡＳＴに対応している従来のルータである。また、送信装置１１１と受信装置１（１１２）乃至受信装置４（１１５）は、ＸＣＡＳＴに対応しており、受信装置５（１１６）はＬＭＣ対応の受信装置である。そして、送信装置１１１は、ルータ１１（１０１）に接続し、受信装置１（１１２）と受信装置２（１１３）とがルータ１２（１０２）と同一のブロードキャストメディア上にある。また、受信装置３（１１４）は、ルータ１３（１０３）に接続し、受信装置５（１１６）は、ルータ４、１１乃至１３が接続するブロードキャストメディア上に位置している。
【００５１】
このとき、送信装置１１１が、受信装置１乃至５へ同一データをＸＣＡＳＴパケットにより配信するときの動作について、図面を用いて以下に説明する。
【００５２】
図１０は、送信装置から受信装置までのパケット転送の動作を示すシーケンス図である。
【００５３】
図１０において、まず、送信装置１１１は、宛先リストに受信装置１乃至５のアドレスを記載したＸＣＡＳＴのパケットをルータ１１（１０１）へ送信する（ステップＳ１００１）。
【００５４】
ルータ１１（１０１）は、これを複製し、宛先リストの宛先ビットマップを修正し、ＬＭＣ対応の次ホップノードであるルータ１２、１３と受信装置５（１１６）へリンクレベルマルチキャストにより送信する（ステップＳ１００２）。
【００５５】
図６（ａ）は、このときのルータ１１から送信されるＸＣＡＳＴパケットの内容を示す図である。すなわち、宛先アドレスには、予め設定されているマルチキャストアドレス（ＭＣ）が記載される。また、宛先ビットマップにおいて、ルータ１２、１３の中継先である受信装置１乃至３と受信装置５とに該当するビットのみが‘１’に設定される。
【００５６】
また、ルータ１１（１０１）は、従来のＸＣＡＳＴに対応したルータ４へＸＣＡＳＴのパケットをユニキャストにより送信する（ステップＳ１００３）。
【００５７】
図６（ｂ）は、このときのルータ１１から送信されるＸＣＡＳＴパケットの内容を示す図である。すなわち、宛先アドレスには、次ホップノードであるルータ４が記載される。また、宛先ビットマップにおいて、ルータ４の中継先である受信装置４に該当するビットのみが‘１’に設定される。
【００５８】
次に、ルータ１２（１０２）は、これを受けて、受信したＸＣＡＳＴパケットを、宛先リストの先頭にある、未配送宛先ノードである受信装置１（１１２）へユニキャストにより送信する（ステップＳ１００４）。これは、受信装置１、２がＬＭＣ対応でない、通常のＸＣＡＳＴに対応したノードだからである。すなわち、ルータ１２（１０２）がＸＣＡＳＴパケットをリンクレベルマルチキャストにより送信すると、受信装置１（１１２）と受信装置２（１１３）は、それぞれ未配信宛先ノードである受信装置２（１１３）、あるいは受信装置１（１１２）へ受信パケットを複製して転送する。このため、受信装置１（１１２）と受信装置２（１１３）は、同一データを二度受信することになってしまうからである。
【００５９】
次に、受信装置１（１１２）は、これを受けて、未配送宛先ノードである受信装置２（１１３）へパケットを複製して転送する（ステップＳ１００５）。
【００６０】
また、ルータ１３（１０３）は、ルータ１１（１０１）からのリンクレベルマルチキャストによりＸＣＡＳＴパケットを受信すると、それを受信装置３（１１４）へ転送する（ステップＳ１００６）。
【００６１】
また、ルータ４（１０４）は、ルータ１１（１０１）からのユニキャストによるＸＣＡＳＴパケットを受信すると、従来のＸＣＡＳＴの規定にしたがって受信したパケットを受信装置４（１１５）へ転送する（ステップＳ１００７）。
【００６２】
以上のように、本発明にかかるルータ１２、１３は、ＸＣＡＳＴのパケットをリンクレベルマルチキャストによって受信した場合、未配送の宛先ノードへ受信インターフェイスからＸＣＡＳＴパケットを転送しない。これをリバースパスサプレス（逆方向転送抑止）機能といい、このリバースパスサプレス機能により、ＸＣＡＳＴパケットが、一つのブロードキャストメディア上を繰り返し転送されることを防止できる。そして、リバースパスサプレス機能を有するものが、ＬＭＣ対応したものである。
【００６３】
また、本発明にかかるルータ１１は、ブロードキャストメディアに複数のＬＭＣ対応のノードがある場合、それらのノードへはリンクレベルマルチキャストによるパケット送信を行い、ＬＭＣ対応でないノードにはユニキャストによるパケット送信を行う。これにより、本発明にかかるルータ１１は、ブロードキャストメディアにおける通信帯域を効率よく使用することができる。
【００６４】
次に、上記のパケット送信方法を可能にする、本発明にかかるルータと受信装置について、以下に図面を用いて説明する。
【００６５】
図２は、本発明に係るルータの構成を示すブロック図である。
【００６６】
図２において、内部リンク用ポート２０１は、送信装置や受信装置が接続するローカルエリアネットワーク（ＬＡＮ）と接続する入出力ポートであり、外部リンク用ポート２１２はインターネットなどのアップリンクと接続する入出力ポートである。
【００６７】
また、受信部２０２は、内部リンク用ポート２０１、あるいは外部リンク用ポート２１２からパケットを受信するものである。送信部２１０、２１１は、内部リンク用ポート２０１、あるいは外部リンク用ポート２１２へパケットを送出するものである。
【００６８】
また、マルチキャスト判別部２０３は、受信パケットがＸＣＡＳＴによる明示的マルチキャストのパケットであるか否かを判定し、ＸＣＡＳＴのパケットである場合には受信パケットから宛先リストを抽出する。さらに、マルチキャスト判別部２０３は、受信パケットがリンクローカルマルチキャストにより送付されたパケットである場合、送信グループ分類部２０６へ、受信したインターフェイス情報を通知する。
【００６９】
また、経路管理部２０４は、近隣要請メッセージを生成し、近隣ノードの経路情報を問い合わせ、近隣告知メッセージを受け取る。経路管理部２０４は、これにより取得した経路情報を経路表およびアドレス表に反映し、管理するものである。また、経路管理部２０４は、次ホップのノードがＬＭＣ対応か否かの情報を同時に取得し、アドレス表に記録して管理する。また、経路管理部２０４は、他のノードからＬＭＣ対応／非対応の問い合わせを受けたとき、近隣告知メッセージを生成して応答する。
【００７０】
図４（ａ）は、経路記憶部２０５に記憶されている経路表４００の構造を示す図であり、図４（ｂ）は、アドレス表４１０の構造を示す図である。
【００７１】
図４（ａ）において、対象ノード４０１には宛先受信装置のＩＰアドレスが記録され、次ホップノード４０２には次ホップノードのＩＰアドレスが記録される。
【００７２】
また、図４（ｂ）において、次ホップノード４１１には自己の接続するブロードキャストメディア上のノードのアドレスが記録される。ＭＡＣアドレス４１２には、各ノードのＭＡＣアドレスが記録され、ＬＭＣ対応４１３には本発明のパケット送信方法に対応しているか否かを示すフラグが記録される。また、接続ポート４１４には、各ノードが接続しているリンクのインターフェイスが記録される。なお、本実施の形態においては、ＬＭＣ対応可の場合、フラグに‘１’がセットされ、ＬＭＣ非対応の場合は‘０’がセットされる。また、外部リンク側の接続ポートは‘２’、内部リンク側の接続ポートは‘１’がセットされる。
【００７３】
本実施の形態において使用される近隣要請メッセージと近隣告知メッセージを図３（ａ）、（ｂ）に示す。
【００７４】
図３（ａ）は近隣要請メッセージのフォーマット図であり、図３（ｂ）は近隣告知メッセージのフォーマット図である。
【００７５】
図３（ａ）において、本実施の形態における近隣要請メッセージは、ＲＦＣ２４６１で規定されるＩＣＭＰｖ６の近隣要請メッセージ３０３に、ＲＦＣ２４６０で規定されるＩＰｖ６ヘッダ３０１と宛先オプションヘッダ３０２とを付加したものである。
【００７６】
宛先オプションヘッダ３０２内の宛先オプション３０４は、先頭２ビットが“１０”のコードを用いる。これにより、近隣要請メッセージを受信した、ＬＭＣ対応でないノードは、このコードを解釈できないので、ＩＣＭＰｖ６のパラメータ問題メッセージ（Ｐａｒａｍｅｔｅｒ  Ｐｒｏｂｌｅｍ  Ｍｅｓｓａｇｅ）を応答することになる。これは、近隣要請メッセージを受信したノードが、宛先オプション３０４を解釈できない場合、パラメータ問題メッセージを応答することがIPｖ６の宛先オプションヘッダの仕様において必須動作として規定されているためである。すなわち、IPｖ６の仕様を規定する文書ＲＦＣ２４６０では、未知のオプションヘッダを受信した場合、４種類の動作を規定している。未知のオプションヘッダの受信時の４種類の動作のうち、どの動作を行うかは、オプションヘッダ番号の先頭２ビットで規定されている。本実施の形態では、先頭２ビットを二進数表記“１０“と規定し、”ICMP Parameter Problemを応答する”オプション番号を利用する。このオプション番号を用いることにより、ＬＭＣ非対応のノードが本発明に係る近隣要請メッセージを受け取った場合でも、即座にパラメータ問題メッセージを応答することが保証される。
【００７７】
図３（ｂ）において、本実施の形態における近隣告知メッセージは、ＲＦＣ２４６１で規定されるＩＣＭＰｖ６の近隣告知メッセージ３０５に、ＲＦＣ２４６０で規定されるＩＰｖ６ヘッダ３０１と宛先オプションヘッダ３０２を付加したものである。
【００７８】
近隣要請メッセージと同様に、宛先オプション３０４には、先頭２ビットが“１０”のコードを用いる。
【００７９】
以上が経路管理部２０４の機能説明である。
【００８０】
次に、送信グループ分類部２０６は、マルチキャスト判別部２０３が抽出した宛先リストに記載された未配送宛先ノードを、転送先インターフェイス毎に転送先エントリとしてまとめ、ＬＭＣに対応した宛先ノードのグループ（以下、「ＬＭＣエントリグループ」という。）と非対応のグループ（以下、「ユニキャストエントリグループ」という。）とに分類するものである。
【００８１】
具体的には、送信グループ分類部２０６は、経路表４００に基づいて未配送の宛先ノードに対応する次ホップノードを検索する。そして、送信グループ分類部２０６は、アドレス表４１０に基づいて検索して得られた次ホップノードに対応する接続ポート４１４を求める。このようにして、送信グループ分類部２０６は、未配送のすべての宛先ノードの転送先インターフェイスを求め、転送先インターフェイス毎に未配送の宛先ノードを転送先エントリとしてまとめる。
【００８２】
さらに、送信グループ分類部２０６は、その転送先エントリをＬＭＣに対応した宛先ノードのグループ（以下、「ＬＭＣエントリグループ」という。）と非対応のグループ（以下、「ユニキャストエントリグループ」という。）とに分類し、エントリ情報として転送先キャッシュ２０７に記録する。さらに、送信グループ分類部２０６は、マルチキャスト判別部２０３から受信ポート情報が通知された場合は、その受信ポート情報を受信インターフェイス（Ｉ／Ｆ）として転送先キャッシュに記録する。また、マルチキャスト判別部２０３から受信ポート情報の通知がない場合は、ヌル（ＮＵＬＬ）コードを記録する。
【００８３】
図５（ａ）乃至（ｄ）は、転送先キャッシュ２０７に記録されるエントリ情報のデータ構成を示す図である。
【００８４】
図５（ａ）において、転送先キャッシュエントリ５００は、転送先エントリ５０１とＬＭＣエントリ５０２とユニキャストエントリ５０３とから構成されている。この転送先キャッシュエントリ５００は、転送するパケット毎に記録される。また、受信Ｉ／Ｆ５０４には、マルチキャスト判別部２０３から通知されたポート情報が記録される。本実施の形態では、内部リンク用ポート‘１’、あるいは外部リンク用ポート‘２’が記録される。
【００８５】
図５（ｂ）は、転送先エントリ５０１の構成図であり、リストエントリ数５１１は、受信パケットの宛先リストに記載された未配送の宛先ノードの中で、転送ポートが同一の宛先ノードの総数を示している。また、宛先フィールド５１２には、該当する宛先ノードのＩＰアドレスが記録される。図の例では、宛先１乃至宛先４の宛先ノードが未配送ノードとして記録されていることを示しているが、宛先ノードの個数はこれに限られるものではない。
【００８６】
図５（ｃ）は、ＬＭＣエントリ５０２の構成図であり、ＬＭＣリストエントリ数５２１は、ＬＭＣリストエントリグループの宛先ノードの総数である。また、宛先フィールド５２２には、該当する宛先ノードのＩＰアドレスが記録されている。図の例では、宛先１、宛先２、および宛先４が記録されていることを示している。
【００８７】
図５（ｄ）はユニキャストエントリ５０３の構成図であり、ユニキャストリストエントリ数は、ユニキャストエントリグループの宛先ノードの総数である。また、宛先フィールド５３２には、該当する宛先ノードのＩＰアドレスが記録されている。図の例では、宛先３が記録されていることを示している。なお、記述の方式としては、図５（ｂ）乃至（ｄ）の他に、たとえば、区切り記号をカンマとして、ＩＰv６の複数の宛先アドレスをテキスト表現で“２、ＩＰv６アドレス１、ＩＰv６アドレス２”と表記することもできる。この表現例の最初の“２”がリストエントリ数をあらわし、“ＩＰv６アドレス１”および“ＩＰv６アドレス２”が宛先を示す。
【００８８】
以上が送信グループ分類部２０６の機能説明である。
【００８９】
次に、パケット生成部２０８は、受信部２０２からパケットをコピーして転送用のパケットを生成したり、経路管理部２０４からの要求を受けて近隣要請メッセージを生成したりするものである。さらに、パケット生成部２０８は、ＸＣＡＳＴのパケットを転送する場合、転送先インターフェイス毎にリンクレベルのユニキャスト用パケットとマルチキャスト用パケットを生成する。
【００９０】
また、送信Ｉ／Ｆ決定部２０９は、パケット生成部２０８が生成したパケットの出力ポートを決定するものである。
【００９１】
以上のように構成された本発明のルータについて、以下にその動作、作用を説明する。
【００９２】
本発明のXCASTのパケット送信方法と従来のXCASTのパケット送信方法との特徴的な差異は、従来のXCASTのパケット送信方法が、次ホップノード毎に処理が行われたのに対して、本発明のXCASTのパケット送信方法は、転送先インターフェイス単位で送信処理をまとめている点である。
【００９３】
図７は、本発明に係るルータがＸＣＡＳＴのパケットを転送する方法を示すフロー図である。
【００９４】
図７において、まず、受信部２０２がＸＣＡＳＴパケットを内部リンク用ポート２０１あるいは外部リンク用ポート２１２から受信すると（ステップＳ７０１）、マルチキャスト判別部２０３はそのパケットをリンクレベルマルチキャストにより受信したか否かを判定する（ステップＳ７０２）。
【００９５】
リンクレベルマルチキャストによりパケットを受信した場合、マルチキャスト判定部２０３は、その受信インターフェイスを送信グループ分類部２０６へ通知し、送信グループ分類部２０６が転送先キャッシュ２０７の受信Ｉ／Ｆ５０４へ記録する（ステップＳ７０３）。
【００９６】
一方、自己が送信端末である場合や、リンクレベルマルチキャストではなくユニキャストによりパケットを受信した場合は、送信グループ分類部２０６へ通知しない。これにより、受信Ｉ／Ｆ５０４に受信インターフェイス情報は記録されず、ヌル（NULL）と記録される（ステップＳ７０４）。
【００９７】
次に、マルチキャスト判別部２０３は、宛先ビットマップ１４０６が‘１’である未配送の宛先ノードを抽出し、送信グループ分類部２０６へ送出する。送信グループ分類部２０６は、これを受けて、経路表４００とアドレス表４１０とを基に、それぞれの宛先ノードについて転送先インターフェイスを決定する（ステップＳ７０５）。
【００９８】
次に、送信グループ分類部２０６は、受信Ｉ／Ｆ５０４にヌル以外の受信インターフェイス情報が記録されている場合、受信Ｉ／Ｆ５０４に記載のインターフェイスを除いて、転送先インターフェイス毎に宛先ノードをまとめ、転送先エントリ５０１を生成する（ステップＳ７０６）。具体的には、送信グループ分類部２０６は、転送先インターフェイスを同一にする未配送の宛先ノードを宛先フィールド５１２に記載し、その宛先ノード数をリストエントリ数５１１に記載する。また、受信Ｉ／Ｆ５０４にヌルが記載されている場合は、すべてのインターフェイス毎に転送先エントリ５０１を生成する。
【００９９】
例えば、図１に示したＩＰネットワークにおいて、ルータ１が送信装置から受信装置１乃至５へＸＣＡＳＴによりパケット配信する場合、ルータ１は経路表４００とアドレス表４１０とから、受信装置１乃至５への次ホップノードは同一ブロードキャストメディア上にあることを検出し、受信装置１乃至５を一つの転送先エントリ５０１にまとめる。
【０１００】
なお、上記したように送信グループ分類部２０６は、受信Ｉ／Ｆ５０４に記載の出力ポートの接続リンク上にある次ホップノードの中継する宛先ノードへの転送先エントリ５０１を生成しない。このため、受信ポートへパケット転送が行われることはない。すなわち、逆方向転送が抑止される。
【０１０１】
次に、送信グループ分類部２０６は、転送先エントリ５０１をＬＭＣエントリ５０２とユニキャストエントリ５０３とに分類する（ステップＳ７０７）。
【０１０２】
例えば、ルータ１の送信グループ分類部２０６は、経路表４００に基づいて、宛先ノードである受信装置１（１１２）と受信装置２（１１３）への次ホップノードがルータ１２であることを検出する。また、受信装置３（１１４）への次ホップノードがルータ１３であることを検出し、受信装置４（１１５）への次ホップノードがルータ４であることを検出する。さらに、受信装置５（１１６）がブロードキャストメディア上にあることを検出する。そして、ルータ１１の送信グループ分類部２０６は、アドレス表４１０に基づいて、ルータ１２とルータ１３と受信装置５とがＬＭＣ対応であり、ルータ４とルータ５とがＬＭＣ非対応であることを検出する。
【０１０３】
これらから、ルータ１１の送信グループ分類部２０６は、受信装置１乃至受信装置３、および受信装置５をＬＭＣエントリグループであると決定し、受信装置４をユニキャストエントリグループであると決定する。
【０１０４】
次に、パケット生成部２０８は、転送先キャッシュ２０７のＬＭＣエントリ５２１に宛先が記載されているか否かを判定し（ステップＳ７０８）、記載されている場合、マルチキャスト処理を行う（ステップＳ７０９）。
【０１０５】
次に、パケット生成部２０８は、転送先キャッシュ２０７のユニキャストエントリ５０３に宛先ノードが記載されている場合（ステップＳ７１０）、ユニキャスト処理を行う（ステップＳ７１１）。
【０１０６】
次に、パケット生成部２０８と送信Ｉ／Ｆ決定部２０９は、転送先インターフェイス毎に生成されたすべての転送先キャッシュエントリ５００について、上記のステップＳ７０６乃至Ｓ７１１の転送処理が完了したか否かを判定し、完了するまで繰り返す（ステップＳ７１２）。
【０１０７】
ここで、上記のマルチキャスト処理とユニキャスト処理について、図面を用いて説明する。
【０１０８】
図９はマルチキャスト処理の詳細を示すフロー図である。
【０１０９】
まず、パケット生成部２０８は、受信部２０２から当該パケットを複製し、ＬＭＣエントリ５０２の宛先に該当するビットのみ‘１’となるように、宛先ビットマップ１４０６を設定する（ステップＳ９０１）。
【０１１０】
さらに、パケット生成部２０８は、宛先ＭＡＣアドレスに予め規定されたリンクレベルマルチキャストアドレスを設定し、宛先ＩＰアドレスにＬＭＣを示す宛先アドレスを設定する（ステップＳ９０２）。
【０１１１】
次に、送信Ｉ／Ｆ決定部２０９は、パケット生成部２０８から送信パケットを受け取り、宛先ビットマップ１４０６の未配送宛先の出力ポートをアドレス表４１０に基づいて決定する。そして、送信Ｉ／Ｆ決定部２０９は、該当する送信部２１０、２１１を介して、内部リンク用ポート２０１あるいは外部リンク用ポート２１２からＸＣＡＳＴパケットを送信する（ステップＳ９０３）。
【０１１２】
これにより、ＸＣＡＳＴパケットがＬＭＣ対応の未配送宛先ノードへリンクレベルのマルチキャストにより送信される。
【０１１３】
図８は、ユニキャスト処理の詳細を示すフロー図である。
【０１１４】
図８において、パケット生成部２０８は、受信部２０２から当該パケットを複製し、ユニキャストエントリ５０３の宛先に該当するビットのみ‘１’となるように、宛先ビットマップ１４０６を設定する（ステップＳ８０１）。
【０１１５】
次に、パケット生成部２０８は、経路表４００を参照し、ユニキャストエントリ５０３に記載された宛先ノードに対応する次ホップノードを求める。そして、パケット生成部２０８は、求めた次ホップノードが中継するすべての宛先ノードに該当する宛先ビットマップ１４０６のビットのみを‘１’に設定する（ステップＳ８０２）。
【０１１６】
次に、パケット生成部２０８は、アドレス表４１０を参照し、その次ホップノードに対応するＭＡＣアドレスと出力ポートを求める。そして、パケット生成部２０８は、複製したパケットの宛先ＭＡＣアドレスに求めたＭＡＣアドレスを設定し、送信Ｉ／Ｆ決定部２０９へ求めた接続ポート情報を通知する（ステップＳ８０３）。
【０１１７】
次に、送信Ｉ／Ｆ決定部２０９は、パケット生成部２０８から送信パケットを受け取り、通知された接続ポートに該当する送信部２１０、２１１を介して、内部リンク用ポート２０１あるいは外部リンク用ポート２１２からパケットを送信する（ステップＳ８０４）。
【０１１８】
次に、パケット生成部２０８はユニキャストエントリ５０３に記載の宛先すべてについて、上記ステップＳ８０１乃至Ｓ８０４の処理が完了したか否かを判定し、すべてのユニキャストエントリ５０３の宛先について上記の処理が完了するまで繰り返す（ステップＳ８０５）。
【０１１９】
これにより、ＬＭＣに対応していない宛先ノードへのパケット転送は、それぞれの次ホップノードへユニキャストにより送信される。
【０１２０】
例えば、ルータ１のパケット生成部２０８は、ＬＭＣ対応である、受信装置１と受信装置２との次ホップノードであるルータ１２と、受信装置３の次ホップノードであるルータ１３と、受信装置５へはリンクレベルマルチキャストによりパケットを送信し、ＬＭＣ非対応である、受信装置４の次ホップノードであるルータ４へはユニキャストによりパケットを送信する。
【０１２１】
なお、ステップ８０４では、ユニキャストエントリのすべての宛先について、ステップＳ８０１乃至Ｓ８０３を繰り返し実行するようにしているが、このステップは、転送方式キャッシュのエントリ数の限界を超えた場合にも転用される。すなわち、上記した転送方式キャッシュを用いたパケットの処理が終了した後に、同じヘッダを持ったパケットを効率的に処理するため、転送キャッシュのエントリを生成する。この転送キャッシュのエントリは、有限個のエントリのみ保持可能である。このため、転送キャッシュエントリは、そのエントリの利用頻度を利用して適宜エイジングする運用を行ってもよい（ＬＲＵ（ Least Reset Used）アルゴリズム）。あるいは、ＦＩＦＯ（First In First Out）など他のアルゴリズムを用いて維持しても良い。あるいは、転送キャッシュのエントリ数の限界を超えて、転送キャッシュのエントリを生成する必要ができた場合に、すべての宛先に対してユニキャスト処理をするという運用を行ってもよい。この場合は、ルータは転送キャッシュのエントリの生成をあきらめて、以後、転送キャッシュのエントリにヒットしなかった、パケットの処理において、転送キャッシュのエントリに基づいてマルチキャスト処理やユニキャスト処理を行わない。
【０１２２】
以上が、本発明のルータがＸＣＡＳＴのパケットを転送する方法である。
【０１２３】
次に、送信グループ分類部２０６が転送先キャッシュエントリ５００を生成するときに行うアドレス解決について以下に説明する。
【０１２４】
送信グループ分類部２０６は、転送先キャッシュエントリ５００を生成するとき、次ホップノードのＭＡＣアドレスやＬＭＣ対応情報がアドレス表に登録されていない場合、経路管理部２０４へ該当する次ホップノードのアドレス解決を要求する。
【０１２５】
経路管理部２０４は、これを受けると、パケット生成部２０８へその宛先アドレスの近隣要請メッセージの生成を指示する。パケット生成部２０８は、指示された宛先アドレスのＭＡＣアドレス解決のための、本発明に係る近隣要請メッセージを生成し、送信Ｉ／Ｆ決定部２０９へ送出する。送信Ｉ／Ｆ決定部２０９は、これを受けて、すべての出力ポートへ送信部２１０、２１１を介してリンクローカルマルチキャストで近隣要請メッセージを送信する。
【０１２６】
ブロードキャストメディア上の各ノードは、本発明の近隣要請メッセージを受け取ると、自らが宛先アドレスに合致する場合、リンクレベルマルチキャストを受信可能状態にした後に、近隣広告メッセージを送信する。このとき、宛先アドレスが合致したノードの経路管理部２０４は、宛先オプション３０４に記載のコードがＬＭＣ対応を示すものであると認識した場合、当該コードを複製した近隣広告メッセージを応答する。もし、宛先オプション３０４に記載のコードがＬＭＣ対応を示すものであると認識できなかった場合、宛先アドレスが合致したノードの経路管理部２０４は、パラメータ問題メッセージを応答する。
【０１２７】
本発明の近隣要請メッセージの送信元ノードの経路管理部２０４は、受信部２０２を介して近隣広告メッセージを受信すると、正規の応答であるか、パラメータ問題メッセージであるかの判定を行う。そして、正規の応答を得た場合、経路管理部２０４は、アドレス表４１０のＭＡＣアドレスフィールド４１２に通知されたＭＡＣアドレスを登録し、ＬＭＣ対応フィールド４１３に対応可を示す‘１’を記載する。
【０１２８】
一方、パラメータ問題メッセージを受けた場合、経路管理部２０４は、アドレス表４１０のＭＡＣアドレスフィールド４１２に通知されたＭＡＣアドレスを登録し、ＬＭＣ対応フィールド４１３に対応不可を示す‘０’を記載する。
【０１２９】
これにより、本発明のルータは、転送先エントリをＬＭＣエントリグループとユニキャストエントリグループとに分類するために必要な、ブロードキャストメディア上のノードに関する情報を取得することが可能になる。
【０１３０】
なお、本実施の形態では、次ホップノードのアドレス解決を行う際に、それと合わせてＬＭＣに対応しているか否かの問い合わせも行うとしたが、これに限らず、アドレス解決とは別のシーケンスでＬＭＣ対応の可否の問い合わせを行っても良い。
【０１３１】
また、本実施の形態における近隣要請メッセージおよび近隣告知メッセージは、ＩＰｖ６の宛先オプションヘッダを用いることで規定したが、これに限らず、独自のメッセージを使用してもよい。この場合、宛先ノードがこの近隣要請メッセージに対応していないときに、応答しないことがある。このため、送信元ノードは、一定時間の間に応答されない場合にタイムアウト処理を行い、タイムアウトしたときには否定応答を受け取った場合と同じ処理を行う。
【０１３２】
さらに、本実施の形態では、本発明のＬＭＣ（リンクレベルマルチキャスト配送方法）でパケットを配送する場合に使用するリンクレベルマルチキャストアドレスは、予め定められたマルチキャストアドレスを使用するものとして説明しているが、これに限らず、ＬＭＣでのパケット配送に先立って、マルチキャストアドレスの利用状況を確認するＳＡＰ（Session Announcement Protocol）を用いて未使用のマルチキャストアドレスを確保し、そのマルチキャストアドレスを使用することにしてもよい。あるいは、未使用のマルチキャストアドレスを割り当てる要求応答ベースのプロトコルである、ＲＦＣ２９０７で規定されるＭＡＤＣＡＰや、ＲＦＣ２１３１、ＲＦＣ２１３２、ＲＦＣ３３１５で規定されるＤＨＣＰを拡張したものを用いて未使用のマルチキャストアドレスを獲得し、それを利用するようにしてもよい。
【０１３３】
以上が本発明に係るルータの構成と動作の説明である。
【０１３４】
次に、本発明の受信装置の構成について図面を用いて説明する。
【０１３５】
図１１は、受信装置４の構成を示すブロック図である。
【０１３６】
図１１において、データ抽出部１１０１は、受信パケットからデータを抽出するものであり、アプリケーション部１１０２はアプリケーション処理を行うものである。
【０１３７】
また、送信判別部１１０３は、マルチキャスト判別部２０３からリンクレベルマルチキャストにより明示的マルチキャストパケットを受信したことの通知を受けると、受信した明示的マルチキャストパケットの転送を禁止するものである。
【０１３８】
また、経路管理部２０４は、アドレス表によりブロードキャストメディア上の他の受信装置のMACアドレスと接続ポートを管理するものあり、経路表は有していない。また、経路管理部２０４は、本発明のルータから近隣要請メッセージによりＬＭＣ対応であるか否かの問い合わせを受けたときに、近隣広告メッセージによりＬＭＣ対応であることを応答するものである。
【０１３９】
その他の構成ブロックについては、本発明に係るルータのものと同一である。
【０１４０】
このように構成された受信装置によるＸＣＡＳＴパケットの転送方法について以下に説明する。
【０１４１】
図１２は、本発明の受信装置がＸＣＡＳＴパケットを転送する方法を説明するフロー図である。
【０１４２】
まず、受信部２０２は、内部リンク用ポートから受信したパケットが通常のデータパケットである場合（ステップＳ１２０１）、データ抽出部１１０１へ送出する。データ抽出部１１０１は、その受信パケットからデータを抽出し、そのデータをアプリケーション部１１０２へ送出し、アプリケーション部１１０２がそのデータを用いてアプリケーション処理を行う（ステップＳ１２０２）。
【０１４３】
また、マルチキャスト判別部２０３は、受信パケットがＸＣＡＳＴパケットである場合、宛先アドレスが予め規定してあるマルチキャストアドレスであるか否かを判別し（ステップＳ１２０３）、その結果を送信判別部１１０３へ通知する。
【０１４４】
次に、送信判別部１１０３は、マルチキャスト判別部２０３からリンクレベルマルチキャストによるパケット受信であると通知された場合、ＸＣＡＳＴパケットの受信であっても転送先キャッシュ２０７への転送先エントリの生成を行わない。一方、送信判別部１１０３は、マルチキャスト判別部２０３からユニキャストによるＸＣＡＳＴパケットの受信であると通知された場合、ＸＣＡＳＴパケットに含まれる宛先リストの宛先ビットマップから自己のビットを‘０’に更新する。そして、送信判別部１１０３は、宛先ビットマップの‘１’が設定されている宛先から転送先エントリを転送先キャッシュ２０７に生成する（ステップＳ１２０４）。
【０１４５】
次に、パケット生成部２０８は、転送先キャッシュ２０７に未配送宛先の転送先エントリが記録されている場合、受信パケットを複製して宛先ビットマップを転送先エントリの宛先のみ‘１’となるように変更する（ステップＳ１２０５）。また、パケット生成部２０８は、宛先ビットマップの先頭の未配送宛先アドレスを選択し、アドレス表に基づいて該当するＭＡＣアドレスを検索する。そして、パケット生成部２０８は、宛先アドレスに検索して求めたＭＡＣアドレスを設定する（ステップＳ１２０６）。
【０１４６】
次に、送信Ｉ／Ｆ決定部２０９がアドレス表に基づいて、宛先アドレスに対応する接続ポートを決定し、該当する送信部２１０へ生成されたＸＣＡＳＴパケットを送信する（ステップＳ１２０７）。本実施の形態では、送信部２１０は一つのみであるので、送信Ｉ／Ｆ決定部２０９は必須のものではない。
【０１４７】
以上のように本発明の受信装置によれば、ＸＣＡＳＴパケットをリンクレベルマルチキャストにより受信した場合、ブロードキャストメディア上の他の受信装置への逆方向転送を抑制するので、ブロードキャストメディア上をパケットがループすることを防止できる。
【０１４８】
また、本発明の受信装置は、ＬＭＣ対応であることを近隣告知メッセージで応答するので、本発明の中継ノードであるルータは、ブロードキャスト上にＬＭＣ対応の受信装置があれば、その受信装置も含めてリンクレベルマルチキャストによりＸＣＡＳＴパケットを送信することができる。
【０１４９】
また、本発明のパケット送信方法によれば、本発明の中継ノードは、同一ブロードキャストメディア上の各ノードがＬＭＣ対応であるか否かの情報を取得することができるので、次ホップノードがＬＭＣ対応である宛先ノードのグループと、ＬＭＣ非対応の宛先ノードのグループとに未配送ノードを分類することが可能になる。そして、本発明の中継ノードであるルータは、ＬＭＣ対応の次ホップノードへリンクレベルマルチキャストによりＸＣＡＳＴパケットを送信できるので、通信帯域を効率的に使用することが可能になる。
【０１５０】
また、本発明の中継ノードであるルータは、ＬＭＣ非対応の次ホップノードへはユニキャストによるパケット送信するので、ブロードキャストメディア上をパケットがループすることを防止できる。
【産業上の利用可能性】
【０１５１】
本発明は、ＸＣＡＳＴパケットの配信等に有用であり、ブロードキャストメディアの通信帯域の効率的な使用に適している。
【図面の簡単な説明】
【０１５２】
【図１】本発明の実施の形態におけるＩＰネットワークの構成図
【図２】本発明の実施の形態におけるルータの構成を示すブロック図
【図３】（ａ）本発明の実施の形態における近隣要請メッセージのフォーマット図（ｂ）本発明の実施の形態における近隣告知メッセージのフォーマット図
【図４】（ａ）本発明の実施の形態における経路表の構造を示す図（ｂ）本発明の実施の形態におけるアドレス表の構造を示す図
【図５】（ａ）本発明の実施の形態における転送先キャッシュエントリのデータ構成を示す図（ｂ）本発明の実施の形態における転送先エントリのデータ構成を示す図（ｃ）本発明の実施の形態におけるＬＭＣエントリのデータ構成を示す図（ｄ）本発明の実施の形態におけるユニキャストエントリのデータ構成を示す図
【図６】（ａ）本発明の実施の形態におけるルータから送信されるリンクレベルマルチキャストパケットの内容を示す図（ｂ）このときのルータから送信されるユニキャストパケットの内容を示す図
【図７】本発明の実施の形態におけるルータがＸＣＡＳＴパケットを転送する方法を示すフロー図
【図８】本発明の実施の形態におけるユニキャスト処理を示すフロー図
【図９】本発明の実施の形態におけるマルチキャスト処理を示すフロー図
【図１０】本発明の実施の形態におけるパケット転送の動作を示すシーケンス図
【図１１】本発明の実施の形態における受信装置の構成を示すブロック図
【図１２】本発明の実施の形態における受信装置がＸＣＡＳＴパケットを転送する方法を示すフロー図
【図１３】従来のルータから送信されるユニキャストパケットの内容を示す図
【図１４】従来のＸＣＡＳＴ６のパケットのフォーマット図
【図１５】従来のＩＰネットワークの構成図
【図１６】従来のＸＣＡＳＴによるデータ配信の動作を示すシーケンス図
【符号の説明】
【０１５３】
１０１乃至１０４、１５０１乃至１５０４    ルータ
１１１、１５１１    送信装置
１１２乃至１１６、１５１２乃至１５１５    受信装置
２０１    内部リンク用ポート
２０２    受信部
２０３    マルチキャスト判別部
２０４    経路管理部
２０５    経路記憶部
２０６    送信グループ分類部
２０７    転送先キャッシュ
２０８    パケット生成部
２０９    送信Ｉ／Ｆ決定部
２１０，２１１    送信部
２１２    外部リンク用ポート
１１０１    データ抽出部
１１０２    アプリケーション部
１１０３    送信判別部
【図１】
0004487948.tif 000002
【図２】
0004487948.tif 000003
【図３】
0004487948.tif 000004
【図４】
0004487948.tif 000005
【図５】
0004487948.tif 000006
【図６】
0004487948.tif 000007
【図７】
0004487948.tif 000008
【図８】
0004487948.tif 000009
【図９】
0004487948.tif 000010
【図１０】
0004487948.tif 000011
【図１１】
0004487948.tif 000012
【図１２】
0004487948.tif 000013
【図１３】
0004487948.tif 000014
【図１４】
0004487948.tif 000015
【図１５】
0004487948.tif 000016
【図１６】
0004487948.tif 000017