(57)【特許請求の範囲】
【請求項１】
マルチキャスト通信における複数の宛先ノードへ向けてパケット転送を行うために、第１のノードからパケットを受信する第１の仮想コネクションから受信したパケットを、前記第１のノードとは異なる論理ネットワークに属する複数の第２のノードへパケットを転送する、前記第２のノードのうちの少なくとも特定のノードへパケットを送信可能な第２の仮想コネクションを用いて転送するパケット転送方法において、
前記第１の仮想コネクションと、前記第２の仮想コネクションとの対応関係を記憶し、
前記第１の仮想コネクションにて受信されたパケットを記憶された前記対応関係に従ってネットワークレイヤレベルの転送処理の一部又は全部を行わずに前記第２の仮想コネクションにて転送するとともに、このネットワークレイヤレベルの転送処理の一部又は全部を行わない転送に起因して前記複数の第２のノードのうち前記特定のノード以外のノードへ、前記宛先ノードへ向かうパケットのうち少なくとも一部が転送されなくなると判断される場合には、前記第１の仮想コネクションにて受信されたパケットを複製してネットワークレイヤレベルの転送処理を施し、この処理の施されたパケットを前記特定のノード以外のノードへ送信することを特徴とするパケット転送方法。
【請求項２】
前記第１の仮想コネクションにて受信すべきパケットの属するフローに対応して、前記第１の仮想コネクションとの対応関係が記憶されている前記第２の仮想コネクションの他に、前記第１の仮想コネクションとの対応関係が記憶されていない第３の仮想コネクションが記憶されている場合に、前記複数の第２のノードのうち前記特定のノード以外のノードへ、前記宛先ノードへ向かうパケットのうち少なくとも一部が転送されなくなると判断することを特徴とする請求項１記載のパケット転送方法。
【請求項３】
マルチキャスト通信における複数の宛先ノードへ向けてパケット転送を行うために、第１のノードからパケットを受信する第１の仮想コネクションから受信したパケットを、前記第１のノードとは異なる論理ネットワークに属する第２のノードへパケットを転送する、前記第２のノードのうちの少なくとも特定のノードへパケットを送信可能な第２の仮想コネクションを用いて転送するパケット転送方法において、
前記第１のノードからの前記第１及び第３の仮想コネクションにて、前記宛先ノードへ向かうパケットのうち少なくとも一部を重複して受信し、
前記第１の仮想コネクションにて受信されたパケットのうち前記重複するパケットを選択して廃棄し、
前記第３の仮想コネクションと、前記第２のノードへパケットを送信可能な第２の仮想コネクションとの対応関係を記憶することにより、前記第３の仮想コネクションにて受信されたパケットをこの記憶された対応関係に従ってネットワークレイヤレベルの転送処理の一部又は全部を行わずに前記第２の仮想コネクションにて転送している場合に、前記第３の仮想コネクションにて受信されたパケットを複製してネットワークレイヤレベルの転送処理を施し、この処理の施されたパケットを少なくとも前記第２のノードへ第２の仮想コネクション以外の仮想コネクションを用いて送信することを特徴とするパケット転送方法。
【請求項４】
マルチキャスト通信における複数の宛先ノードへ向けてパケット転送を行うために、第１のノードからパケットを受信する第１の仮想コネクションから受信したパケットを、前記第１のノードとは異なる論理ネットワークに属する第２のノードへパケットを転送する、前記第２のノードのうちの少なくとも特定のノードへパケットを送信可能な第２の仮想コネクションを用いて転送するパケット転送方法において、
前記第１のノードからの前記第１及び第３の仮想コネクションにて、前記宛先ノードへ向かうパケットのうち少なくとも一部を重複して受信し、
前記第３の仮想コネクションと、前記第２のノードへパケットを送信可能な第２の仮想コネクションとの対応関係を記憶することにより、前記第３の仮想コネクションにて受信されたパケットをこの記憶された対応関係に従ってネットワークレイヤレベルの転送処理の一部又は全部を行わずに前記第２の仮想コネクションにて転送している場合に、前記第１の仮想コネクションにて受信されたパケットにネットワークレイヤレベルの転送処理を施し、この処理の施されたパケットを少なくとも前記第２のノードへ第２の仮想コネクション以外の仮想コネクションを用いて送信し、
一方、前記第３の仮想コネクションにて受信されたパケットにネットワークレイヤレベルの転送処理の一部又は全部を行わずに前記第２の仮想コネクションにて転送していない場合に、前記第１の仮想コネクションにて受信されたパケットのうち前記重複するパケットを選択して廃棄することを特徴とするパケット転送方法。
【請求項５】
少なくとも一つの仮想コネクション型ネットワークと接続し、第１のノードからパケットを受信する第１の仮想コネクションから受信したパケットを、前記第１のノードとは異なる論理ネットワークに属する第２のノードへパケットを転送する、前記第２のノードのうちの少なくとも特定のノードへパケットを送信可能な第２の仮想コネクションを用いて転送するノード装置において、
前記第１の仮想コネクションと、前記第２の仮想コネクションとの対応関係を記憶することのできる記憶手段と、
前記第１のノードから受信したパケットにネットワークレイヤレベルの転送処理を施すことにより次段ノードを決定し、この処理の施されたパケットを、決定された次段ノードへ転送する第１の転送手段と、
前記第１の仮想コネクションにて受信された、マルチキャスト通信における複数の宛先ノードのいずれかへ向かうパケットを、前記記憶手段に前記対応関係が記憶されている場合に該対応関係に従って、前記第１の転送手段のネットワークレイヤレベルの転送処理の一部又は全部を行わずに前記第２の仮想コネクションにて転送する第２の転送手段と、
前記第２の転送手段による転送を行うことにより、前記複数の第２のノードのうち前記特定のノード以外のノードへ、前記宛先ノードへ向かうパケットのうち少なくとも一部が転送されなくなると判断される場合に、前記第１の仮想コネクションにて受信されたパケットを複製して前記第１の転送手段へ渡す手段とを具備したことを特徴とするノード装置。
【請求項６】
前記宛先ノードへ向かうパケットのうち少なくとも一部が前記第１の仮想コネクションのみにて受信され、この第１の仮想コネクションにて受信されるパケットを転送すべき仮想コネクションとして、前記第１の仮想コネクションとの対応関係が記憶されている前記第２の仮想コネクション以外の、前記第１の仮想コネクションとの対応関係が記憶されていない仮想コネクションが記憶されている場合に、前記宛先ノードへ向かうパケットのうち少なくとも一部が前記次段ノードへ転送されなくなると判断することを特徴とする請求項５記載のノード装置。
【請求項７】
前記宛先ノードへ向かうパケットのうち少なくとも一部が前記第１の仮想コネクション及び第３の仮想コネクションにて重複して受信された場合に、前記第３の仮想コネクションにて受信されたパケットのうち前記重複するパケットを選択して廃棄する手段を更に備え、
前記第１の転送手段は、この手段により廃棄されなかったパケットを転送するものであり、
前記第１の仮想コネクションについての前記対応関係が前記記憶手段に記憶されている場合に、前記複数の第２のノードのうち前記特定のノード以外のノードへ、前記宛先ノードへ向かうパケットのうち少なくとも一部が転送されなくなると判断することを特徴とする請求項５記載のノード装置。
【請求項８】
前記第１の仮想コネクション以外の第３の仮想コネクションにて、前記第１のノードから前記第１の仮想コネクションにて受信されたのと同じパケットを重複して受信した場合に、前記第３の仮想コネクションにて受信されたパケットのうち前記重複したパケットを選択して前記第１の転送手段による転送より前に廃棄する廃棄手段とを具備したことを特徴とする請求項５記載のノード装置。
【請求項９】
前記第１の仮想コネクションについての前記対応関係が前記記憶手段に記憶されていない場合に、前記廃棄手段による廃棄を行うように制御する手段を更に備えたことを特徴とする請求項８記載のノード装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、仮想コネクション型ネットワークを接続するルータ装置、ルータ装置を介して異なる論理ネットワークにマルチキャストパケットを転送する方法に関する。
【０００２】
【従来の技術】
ルータ装置は、論理ネットワークを接続する際に用いられるもので、一方の論理ネットワークから他方の論理ネットワークにパケットを転送する役割を果たす。パケットには、転送すべき通信情報データに加えて、その送信元および最終宛先のネットワーク層アドレスが記載されており、ルータ装置では、そのアドレス情報を用いて、パケットの出力インターフェイスおよび次の転送ノードを決定している。
【０００３】
このルータ装置は、１つの発信元から１つの最終宛先にパケットを転送するユニキャスト通信のみでなく、１つの発信元から多数の最終宛先にパケットを送信するマルチキャスト通信も行うことができる。
【０００４】
さて、近年、音声や画像をパケットを用いて転送する試みが行われている。現状では、音声画像のデータと他のデータがルータで同様に送られるため、音声がとぎれとぎれになったり、映像が乱れたりしている。そこで、ルータで資源予約を行い、音声画像の転送を優先的に行うことで、聞きやすい音声と見やすい画像になる。ここでは、音声画像を例に取ったが、優先的に流したいデータの場合は、資源予約することにより、メリットがある。
【０００５】
このようにルータ装置で資源予約をするためには、ルータ装置間で資源予約の情報をやり取りする必要があり、そのプロトコルとして、ＲＳＶＰ（Ｒｅｓｏｕｒｃｅ  ＲｅＳｅｒＶａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）が開発されている。このプロトコルは、ユニキャストとマルチキャストの両方に対応している。
【０００６】
ＲＳＶＰでは、データを受信している下流側のノードから情報の発信元である上流ノードへ資源予約を行う。具体的には、情報の発信元からデータの宛先と同じ宛先に向かってＰＡＴＨメッセージを送出し、情報がどの経路を通っているかを経路上のルータに記憶させる。ＰＡＴＨメッセージには、資源予約すべきデータのフローを特定する識別子と、ＰＡＴＨメッセージを送出するノードのＩＰアドレスが書かれている。
【０００７】
データの受信ノードは、ＰＡＴＨメッセージを受信すると、ＰＡＴＨメッセージを送信した上流ノードにＲＥＳＶメッセージを送出することで、資源予約の意思を表示する。ＲＥＳＶメッセージには、資源予約すべきデータのフローを特定する識別子と、受信ノードが要求するＱＯＳ（サービス品質）が書かれている。
【０００８】
このＲＥＳＶメッセージを受信したルータは、資源予約するだけの能力がネットワークレイヤ（ＩＰ）処理部にある場合は、ネットワークレイヤのスケジューリングを行って、ＲＥＳＶを上流に転送する。資源予約が出来ない場合は、ＲＥＳＶ  Ｅｒｒｏｒを下流のノードに送信する。これを繰り返すことにより、上流ノードまで資源予約が出来る。
【０００９】
論理ネットワークを構成するＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）が仮想コネクション型ネットワークにより実現され、ある受信ノードの要求に基づいてマルチキャスト通信で資源予約する時は、１つのマルチキャストアドレスに対して資源予約した１つのポイントマルチポイントコネクションと、資源予約していないベストエフォート用のポイントマルチポイントコネクションを作ることにより、ＬＡＮ内での資源予約を実現している。
【００１０】
例えば、送信ノードＳから受信ノードＨ１，Ｈ２，Ｈ３，Ｈ４へ宛先アドレスＧのマルチキャストパケットを送信する場合で、Ｈ１，Ｈ２がＱＯＳを要求していて、Ｈ３，Ｈ４がＱＯＳを要求していない場合は、ＳからＨ１，Ｈ２への宛先アドレスＧ用のポイント−マルチポイントＶＣと、ＳからＨ３，Ｈ４への宛先アドレスＧ用のポイント−マルチポイントＶＣとを設定する。
【００１１】
【発明が解決しようとする課題】
本発明の第１及び第２の発明は、通常のルータと同じパケット単位で転送する動作を行う他に、ルータ内部にスイッチ機能を持つものに関する。これは、ネットワークレイヤでのパケット転送のみでなく、スイッチ機能を用いて入力仮想コネクションと出力仮想コネクションとの直結を行うことにより、ネットワークレイヤより下位のレイヤで転送を行うことができるルータである。
【００１２】
本発明の第１の発明は、マルチキャストパケットの転送を直結で実現している場合に、直結した仮想コネクションにしかパケットが流れないために、マルチキャストグループに参加しているが直結していない受信者にパケットが届かなくなってしまうという問題を解決することを目的とする。
【００１３】
本発明の第２の発明は、マルチキャストパケットの転送を直結で実現することができる場合に、複数の仮想コネクションから同一のパケットが到着することがあっても、不都合なくパケット転送動作が行えるようにすることを目的とする。
【００１４】
【課題を解決するための手段】
本発明の第１の発明は、少なくとも一つの仮想コネクション型ネットワークと接続し、第１のノードから受信したパケットを、前記第１のノードとは異なる論理ネットワークに属する第２のノードへ転送するノード装置において、前記第１のノードからパケットを受信可能な第１の仮想コネクションと、前記第２のノードへパケットを送信可能な第２の仮想コネクションとの対応関係を記憶することのできる記憶手段と、前記第１のノードから受信したパケットにネットワークレイヤレベルの転送処理を施すことにより次段ノードを決定し、この処理の施されたパケットを、決定された次段ノードへ転送する第１の転送手段と、前記第１の仮想コネクションにて受信された、マルチキャスト通信における複数の宛先ノードのいずれかへ向かうパケットを、前記記憶手段に前記対応関係が記憶されている場合に該対応関係に従って、前記第１の転送手段のネットワークレイヤレベルの転送処理の一部又は全部を行わずに前記第２の仮想コネクションにて転送する第２の転送手段と、前記第２の転送手段による転送を行うことにより、前記複数の第２のノードのうち前記特定のノード以外のノードへ、前記宛先ノードへ向かうパケットのうち少なくとも一部が転送されなくなると判断される場合に、前記第１の仮想コネクションにて受信されたパケットを複製して前記第１の転送手段へ渡す手段とを具備したことを特徴とする。
【００１５】
この第１の発明によれば、パケットを第２の転送手段（対応関係の記憶、すなわち直結）により転送している場合は、何もしなければそのパケットに対する第１の転送手段（ネットワークレイヤレベルの転送処理）による次段ノードの決定と転送は行われないが、必要なときにはパケットを複製して、一方は直結転送するとともに、他方は第１の転送手段へ渡すことにより、直結していない受信者を含むマルチキャストグループに参加している全てのノードでパケットを受信することができる。
【００１６】
本発明の第１の発明の一つのパケット転送方法として、マルチキャスト通信における複数の宛先ノードへ向けてパケット転送を行うために、第１のノードから受信したパケットを、前記第１のノードとは異なる論理ネットワークに属する複数の第２のノードへ転送する際に、前記第１のノードからパケットを受信可能な第１の仮想コネクションと、前記複数の第２のノードのうちの特定のノードへパケットを送信可能な第２の仮想コネクションとの対応関係を記憶し、前記第１の仮想コネクションにて受信されたパケットを記憶された前記対応関係に従ってネットワークレイヤレベルの転送処理の一部又は全部を行わずに前記第２の仮想コネクションにて転送するとともに、このネットワークレイヤレベルの転送処理の一部又は全部を行わない転送に起因して前記複数の第２のノードのうち前記特定のノード以外のノードへ前記宛先ノードへ向かうパケットのうち少なくとも一部が転送されなくなると判断される場合には、前記第１の仮想コネクションにて受信されたパケットを複製してネットワークレイヤレベルの転送処理を施し、この処理の施されたパケットを前記特定のノード以外のノードへ送信するものがある。
【００１７】
本発明の第１の発明の別のパケット転送方法として、マルチキャスト通信における複数の宛先ノードへ向けてパケット転送を行うために、第１のノードから受信したパケットを、前記第１のノードとは異なる論理ネットワークに属する第２のノードへ転送する際に、前記第１のノードからの第１及び第３の仮想コネクションにて、前記宛先ノードへ向かうパケットのうち少なくとも一部を重複して受信し、前記第１の仮想コネクションにて受信されたパケットのうち前記重複するパケットを選択して廃棄し、前記第２の仮想コネクションと、前記第２のノードへパケットを送信可能な第３の仮想コネクションとの対応関係を記憶することにより、前記第３の仮想コネクションにて受信されたパケットをこの記憶された対応関係に従ってネットワークレイヤレベルの転送処理の一部又は全部を行わずに前記第２の仮想コネクションにて転送している場合に、前記第３の仮想コネクションにて受信されたパケットを複製してネットワークレイヤレベルの転送処理を施し、この処理の施されたパケットを少なくとも前記第２のノードへ第２の仮想コネクション以外の仮想コネクションを用いて送信するものがある。
【００１８】
本発明の第２の発明は、少なくとも一つの仮想コネクション型ネットワークと接続し、第１のノードから受信したパケットを、前記第１のノードとは異なる論理ネットワークに属する第２のノードへ転送するノード装置において、前記第１のノードからパケットを受信可能な第１の仮想コネクションと、前記第２のノードへパケットを送信可能な第２の仮想コネクションとの対応関係を記憶することのできる記憶手段と、前記第１のノードから受信したパケットにネットワークレイヤレベルの転送処理を施すことにより次段ノードを決定し、この処理の施されたパケットを、決定された次段ノードへ転送する第１の転送手段と、前記第１の仮想コネクションにて受信されたパケットを、前記記憶手段に前記対応関係が記憶されている場合に該対応関係に従って、ネットワークレイヤレベルの転送処理の一部又は全部を行わずに前記第２の仮想コネクションにて転送する第２の転送手段と、前記第１の仮想コネクション以外の第３の仮想コネクションにて、前記第１のノードから前記第１の仮想コネクションにて受信されたのと同じパケットを重複して受信した場合に、前記第３の仮想コネクションにて受信されたパケットのうち前記重複したパケットを選択して前記第１の転送手段による転送より前に廃棄する廃棄手段とを具備したことを特徴とする。
【００１９】
この第２の発明によれば、ノードは、そこに到着するパケットを第２の転送手段（対応関係の記憶、すなわち直結）により転送することが可能な第１の仮想コネクションと、それとは別の第３の仮想コネクションとから、同一パケットを二重に受信することがあるが、直結用ではない第３の仮想コネクションにて受信した重複パケットを選択して廃棄することにより、重複パケットを更に複数の仮想コネクションにて次段ノードへ送信してしまうことを防ぐことができる。
【００２０】
上述した本発明の第１の発明の別のパケット転送方法は、本発明の第２の発明をも利用するものである。
【００２１】
また、本発明の第２の発明の別のパケット転送方法には、マルチキャスト通信における複数の宛先ノードへ向けてパケット転送を行うために、第１のノードから受信したパケットを、前記第１のノードとは異なる論理ネットワークに属する第２のノードへ転送する際に、前記第１のノードからの第１及び第３の仮想コネクションにて、前記宛先ノードへ向かうパケットのうち少なくとも一部を重複して受信し、前記第３の仮想コネクションと、前記第２のノードへパケットを送信可能な第２の仮想コネクションとの対応関係を記憶することにより、前記第３の仮想コネクションにて受信されたパケットをこの記憶された対応関係に従ってネットワークレイヤレベルの転送処理の一部又は全部を行わずに前記第２の仮想コネクションにて転送している場合に、前記第１の仮想コネクションにて受信されたパケットにネットワークレイヤレベルの転送処理を施し、この処理の施されたパケットを少なくとも前記第２のノードへ第２の仮想コネクション以外の仮想コネクションを用いて送信し、一方、前記第３の仮想コネクションにて受信されたパケットにネットワークレイヤレベルの転送処理の一部又は全部を行わずに前記第２の仮想コネクションにて転送していない場合に、前記第１の仮想コネクションにて受信されたパケットのうち前記重複するパケットを選択して廃棄するものがある。
【００２２】
すなわち、上述した本発明の第１の発明の別のパケット転送方法は、廃棄は必ず行って必要であれば複製する方法であり、本発明の第２の発明の別のパケット転送方法は、第１の転送手段による次段ノードの決定と転送が必要でない場合のみ廃棄する方法である。
【００２３】
【発明の実施の形態】
まずはじめに、この発明における用語の定義を行う。
【００２４】
「ホスト」とは、パケットを送受信し、パケットの転送を行わない装置である。「ルータ」とは、パケットを送受信し、パケットの転送を行う装置である。「ノード」とは、ホストとルータの両方を指す。
【００２５】
「仮想コネクション型ネットワークに接続するノード」とは、仮想コネクション識別子の付与されたパケットを転送可能なインターフェースを有するノードである。例えば、ＡＴＭ（Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｔｒａｎｓｆｅｒ  Ｍｏｄｅ）などの仮想コネクションを設定できる場合であって、論理ネットワーク内に１つ以上のスイッチがあるときだけでなく、論理ネットワークがスイッチを含まないポイント−ポイントの物理リンクである場合も含む。
【００２６】
「ポイント−マルチポイントＶＣ」とは、送信者から１つのパケットを送出すると複数の受信者への同一のパケットが到着する仮想コネクションを指す。受信者が１つのノードの場合は、ポイント−ポイントＶＣと同様になるが、この場合もポイント−マルチポイントコネクションに含まれるとする。
【００２７】
「宛先アドレス」とは、宛先ネットワーク層アドレスのことを指し、ユニキャストアドレスのみではなくマルチキャストのグループアドレスも含む。
【００２８】
「フロー」とは、ある情報により特定されたパケット群、例えば少なくとも特定の宛先アドレスのパケット群を指す。宛先アドレスに加えて、トランスポート層の宛先ポート番号を使って特定することも出来る。さらに送信者アドレスを用いてもよい。トランスポート層の宛先ポート番号とは、宛先ノードにおける特定のアプリケーションを意味しているので、これと同様の意味がある識別子によりフローを特定することも出来る。ＩＰｖ６（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  Ｖｅｒｓｉｏｎ  ６）では、宛先アドレスの代わりに特定のＦｌｏｗ  ＩＤを含むパケット群を指すこともできる。
【００２９】
「サービス品質要求が異なるパケットを転送すべき仮想コネクション」は、パケットを転送する仮想コネクションの帯域等が異なる場合や、その仮想コネクションに対して自ノードもしくは相手側のノードで資源予約を行なうか否かやその度合い、また、自ルータもしくは相手側のルータでネットワーク層より下位のレイヤでのスイッチング機能を利用した仮想コネクションの直結を行っているか否かが異なる場合を含む。なお、サービス品質の要求が無いものと有るものも、サービス品質の要求が異なると言う。
【００３０】
「あるノードから他の複数のノードへの仮想コネクション」は、あるノードから他の複数のノードへのポイント−マルチポイントＶＣでも、あるノードから他の複数のそれぞれのノードへのポイント−ポイントＶＣの集合であってもよい。また、一部のノードへのポイント−マルチポイントＶＣとその他のノードへのポイント−ポイントＶＣの集合とを合わせたものでもよい。あるノードからマルチキャストサーバへのポイント−ポイントＶＣとマルチキャストサーバから複数のノードへの上記ＶＣでもよい。
【００３１】
（参考実施形態１）
本実施形態では、サービス品質要求が異なるマルチキャストパケット転送を実現する方法であって、各ノードがマルチキャストパケットを重複無く受信できる方法を述べる。
【００３２】
（具体例１）
図１は、この実施の形態で説明するネットワーク構成を示している。ネットワークを構成しているノードとしては、マルチキャストパケットの送信ホスト（Ｓ）とパケットを転送するルータ（Ｒ１，Ｒ２，Ｒ３）、受信ホスト（Ｈ１，Ｈ２，．．．，Ｈ７）がある。送信ホストＳの出力Ｉ／Ｆは１つであり、ａと名付ける。Ｒ３の出力Ｉ／Ｆは３つであり、それぞれ、ａ，ｂ，ｃとする。
【００３３】
この構成では、送信ホスト（Ｓ）からルータ（Ｒ１）を経由して受信ホスト（Ｈ１）のようにルータの前後はホストが接続されているが、送信ホスト（Ｓ），ルータ，ルータ（Ｒ１），ルータ，受信ホスト（Ｈ１）の順番のようにルータ（Ｒ１）の前後にルータが接続されていても同様に動作する。
【００３４】
それぞれのノードは少なくとも１つ以上のサブネット（論理ネットワーク）に属している。サブネットとは、ルータを介さずに直接通信できる範囲である。サブネット外への通信はルータによるパケット転送が必要である。
【００３５】
図１の構成で同一サブネットに属しているノードは、以下の通りである。（Ｓ，Ｒ１，Ｒ２，Ｒ３）の組は、サブネットＡに属している。（Ｒ１，Ｈ１，Ｈ２）の組は、サブネットＢに属している。（Ｒ２，Ｈ３）の組は、サブネットＣに属している。（Ｒ３，Ｈ４，Ｈ５）の組は、サブネットＤに属している。（Ｒ３，Ｈ６，Ｈ７）の組は、サブネットＥに属している。サブネット内は、お互いに仮想コネクション型ネットワークで接続されている。
【００３６】
上記の構成の時に、送信者アドレスＳで宛先アドレスＧのマルチキャストパケットの転送方法を示す。宛先アドレスＧのグループに属しているノードは、Ｈ１，Ｈ３，Ｈ４，Ｈ５，Ｈ７とする。
【００３７】
サービス品質がベストエフォートのみの場合は、図１のように仮想コネクションが設定されている。送信ホストＳから宛先アドレスＧのマルチキャストパケットを送出するとＶＣ０を通してＲ１，Ｒ２，Ｒ３に配送される。このパケットを受信したＲ１は、Ｈ１にパケットを配送し、Ｒ２はＨ３にパケットを配送し、Ｒ３はＶＣ２でＨ４，Ｈ５に配送し、ＶＣ４でＨ７にパケットを配送する。
【００３８】
この図では、ポイントマルチポイントＶＣを用いてマルチキャストパケットを転送しているが、マルチキャストサーバを使用してもよい。以下の例でも、マルチポイント−ポイントＶＣを使用しているところでは、マルチキャストサーバを使用することが出来る。マルチキャストサーバは、ポイント−ポイントＶＣ受信したパケットをポイント−マルチポイントＶＣに流すことでマルチキャストを実現するものである。
【００３９】
さて、図１のような状態から、Ｈ５が宛先アドレスＧ，宛先ポート番号１のパケットのサービス品質を要求したことを考える。サービス品質の要求は、ＲＳＶＰ（Ｒｅｓｏｕｒｃｅ  ＲｅＳｅｒＶａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）などの資源予約プロトコルを用いて伝えることが出来る。サービス品質要求プロトコルとしては、ＲＳＶＰではなくともサービス品質要求を隣接ノードに通知する方法があればそれを使用することが出来る。
【００４０】
ＲＳＶＰでＨ５からサービス品質を要求されたＲ３は、図２のように宛先グループアドレスＧ，宛先ポート番号１のパケットを転送するポイントマルチポイントＶＣ（ＶＣ３）を同一サブネット（サブネットＤ）内でグループＧに参加しているノードに設定する。このＶＣ３は、宛先アドレスＧで宛先ポート番号１であるパケットを転送するために使用する。今まで、全ての宛先アドレスＧのパケットを転送していたＶＣ２は、ＶＣ３に流す宛先アドレスＧ，宛先ポート番号１のパケットを除く宛先アドレスＧのパケットを流す。
【００４１】
Ｒ３はサービス品質要求をＳに転送して、ＳからもＶＣ１をＶＣ３と同様に設定する。Ｓでは、ＶＣ１で転送するパケットはＶＣ３と同様であり、ＶＣ０で転送するパケットはＶＣ２と同様になる。サービス品質要求の転送方法は、ＲＳＶＰを利用したときは、このように下流から上流に転送されるが、他の方法を用いるときには、異なる転送が行われる可能性がある。しかし、どのような転送方法を取ったとしても最終的には、図２のようなＶＣの設定が行われる。
【００４２】
要するに、サービス品質を要求されたフローに関して同一サブネット内の受信者の全てをリーフとする新たなポイントマルチポイントＶＣを設定する。このコネクション内にサービス品質を要求されたフローを流し、今まであったベストエフォート用のＶＣにはサービス品質を要求されたフローを流さないように設定する。
【００４３】
なお、図中の点線で示したＶＣは、実線で示したＶＣとは、そこに転送すべきパケットのサービス品質要求が異なるものである。
【００４４】
Ｒ３の出力Ｉ／Ｆ（ｃ）からは、サービス品質を要求されていないので、ベストエフォートのＶＣ（ＶＣ４）で宛先アドレスＧの全てのパケットを転送する。以下では、送信ノード（Ｓ）におけるＶＣ０とＶＣ１へのマルチキャストパケットの転送方法の具体例とルータ（Ｒ３）におけるＶＣ２，ＶＣ３，ＶＣ４へのマルチキャストパケットの転送方法の具体例を示す。
【００４５】
送信ノードＳは、図３で示す構成である。パケットは、出力処理部（１１）で図５に示すフローチャートに従ってネットワークＩ／Ｆ（１３）を経由して送出される。出力処理部（１１）では、経路表（１２）を参照する。以下の説明では、経路表（１２）の具体例として図６を使用する。この経路表は、マルチキャストルーティングプロトコルかサービス品質が要求されたときに設定される。ネットワーク層処理部（１０）は、出力処理部（１１）と経路表（１２）を合わせたものである。
【００４６】
マルチキャストパケット（送信者Ｓ，宛先Ｇ，宛先ポート１）（以下では、（Ｓ，Ｇ，１）と表現する）を転送する手順を示す。パケットの（送信者，宛先，宛先ポート）の組をキーとして経路表（ａ）を検索し、出力ＶＣポインタを得る（Ｓ１）。
【００４７】
検索では、送信者と宛先アドレスは、一致する必要があるが、宛先ポートに関しては、同一の宛先ポートが存在する場合は、そのエントリを返し、同一の宛先ポートが存在しないが、宛先ポートが指定されていないエントリがある場合は、そのエントリを返す。この検索方法を以下ではベストマッチの検索方法と呼ぶことにする。図６では、宛先ポートが指定されていないものを”−”で示している。図６では、（Ｓ，Ｇ，１）のエントリが出力ＶＣポインタ２を示しているので、検索結果としてこれを返す。
【００４８】
次に、出力ＶＣポインタをキーにして経路表（ｂ）を検索し、出力Ｉ／Ｆと出力ＶＣを得てそこにパケットを出力する（Ｓ２）。出力ポインタが２であるので図６の経路表（ｂ）のアドレス２の出力Ｉ／Ｆ＝ａ，出力ＶＣ＝ＶＣ１となっているので出力Ｉ／Ｆ＝ａで出力ＶＣ＝ＶＣ１としてパケットを送出する。次へのポインタを調べると何も指されていないので（Ｓ３  Ｎｏ）これで処理を終わる。
【００４９】
今度は送信するパケットが送信者Ｓ，宛先Ｇ，宛先ポート２の場合を考える。図５のフローチャートに従って、パケットの経路表（ａ）を検索する。図６の経路表には、（Ｓ，Ｇ，２）の組に完全に合致するものはない。（Ｓ，Ｇ）の組で宛先ポートが指定されていないエントリ（Ｓ，Ｇ，−）があるので、この出力ＶＣポインタである１を返す。
【００５０】
次に、経路表（ｂ）のアドレス１に書かれている出力Ｉ／Ｆ＝ａ，出力ＶＣ＝ＶＣ０にパケットを送出する。次へのポインタはどこも指されていないので、これで、パケットの送出を終了する。
【００５１】
次にルータ３（Ｒ３）でのパケット転送方法の具体例を示す。
【００５２】
図４はルータの構成図である。ネットワークＩ／Ｆ（２４）から入力されたパケットは、入力処理部（２１）で入力処理を行った後、出力処理部（２２）で経路表（２３）を参照しながらネットワークＩ／Ｆ（２４）を経由してネットワークに送出される。出力処理部（２２）の動作は、図５に示すフローチャートに従って送出される。この動作は、送信ノード（Ｓ）と同様である。ネットワーク層処理部（２０）は、入力処理部（２１）と出力処理部（２２）と経路表（２３）からなる。Ｒ３での経路表は、図７の様になっているとする。
【００５３】
送信者Ｓからマルチキャストパケット（送信者Ｓ，宛先Ｇ，宛先ポート１）を受信した場合は、Ｒ３はパケットを転送するために（Ｓ，Ｇ，１）をキーとして経路表（ａ）を検索する（Ｓ１）。これに完全に合致するもの（Ｓ，Ｇ，１）があるのでこのエントリの出力ＶＣポインタである３を返す。経路表（ｂ）のアドレス３より出力Ｉ／Ｆ＝ｂ，出力ＶＣ＝ＶＣ３にこのパケットを転送する（Ｓ２）。
【００５４】
次のポインタが４を示している（Ｓ３  Ｙｅｓ）ので、そのポインタを出力ＶＣポインタだとして（Ｓ４）、経路表（ｂ）のアドレス４のエントリである出力Ｉ／Ｆ＝ｃ，出力ＶＣ＝ＶＣ４にパケットを転送する。次へのポインタがないので、これで処理を終了する。
【００５５】
送信者Ｓからマルチキャストパケット（送信者Ｓ，宛先Ｇ，宛先ポート２）を受信した場合は、Ｒ３はパケットを転送するために（Ｓ，Ｇ，２）をキーとして経路表（ａ）を検索する。検索結果は、（Ｓ，Ｇ，−）のエントリと合致するので、出力ＶＣポインタ＝１が返される。経路表（ｂ）のアドレス１より、出力Ｉ／Ｆ＝ｂ，出力ＶＣ＝ＶＣ２にパケットを送出する。次のポインタが２を指しているので、経路表（ｂ）のアドレス２のエントリである出力Ｉ／Ｆ＝ｃ，出力ＶＣ＝ＶＣ４にパケットを送出する。次へのポインタがないので、これで処理を終了する。
【００５６】
ここでは、Ｒ３についてのみ説明したが、Ｒ１およびＲ２でも同様の動作を行う。すなわち、Ｒ１、２の下流からは、サービス品質を要求されていないので、ベストエフォートのＶＣで宛先アドレスＧの全てのパケット（ＶＣ０で来たパケットとＶＣ１で来たパケット）を転送する。
【００５７】
本例の特徴をまとめると、次のようになる。マルチキャスト通信における複数の宛先ノード（Ｈ１，Ｈ３，Ｈ４，Ｈ５，Ｈ７）へ向けてパケット転送を行うために、第１のノード（ＳもしくはＲ３）から複数の第２のノード（Ｒ１，Ｒ２，Ｒ３もしくはＨ４，Ｈ５）への仮想コネクションが複数（ＶＣ０とＶＣ１、もしくは、ＶＣ２とＶＣ３）設定されている。
【００５８】
そして、前記第１のノードは、第２のノードそれぞれが前記複数の仮想コネクションにて前記宛先ノードへ向かうパケットを重複せずに受信するよう、前記宛先ノードへ向かうパケットのうち特定のサービス品質を提供すべきフローに属するパケット（Ｓ，Ｇ，１）を前記複数の仮想コネクションのうちの一部のコネクション（ＶＣ１もしくはＶＣ３）にて、前記宛先ノードへ向かうパケットのうち前記フローに属するパケット以外のパケットを前記複数の仮想コネクションのうちの他のコネクション（ＶＣ０もしくはＶＣ２）にて転送する。なお、前記「特定のサービス品質を提供するべきフロー」は、単に「特定のフロー」であっても良い。
【００５９】
前記特定のサービス品質を提供すべきフローに属するパケットを転送する仮想コネクション（ＶＣ１もしくはＶＣ３）は、前記複数の宛先ノードのうちの少なくとも一つ（例えばＨ５）により該フロー（Ｓ，Ｇ，１）に関し特定のサービス品質が要求された場合に設定されたものである。
【００６０】
なお、この仮想コネクションの設定は、前記第１のノードが、特定のプロトコルのパケット（第２のノードへのパケットでも第２のノードからのパケットでも良い）を検出した場合に、前記複数の宛先ノードのうちの少なくとも一つ（例えばＨ５）には他の宛先ノードとは別の仮想コネクションでそのパケットを転送するように予め取り決めがなされているならば、設定するというようにしても良い。この場合も、当該別の仮想コネクションは、サービス品質要求の異なるパケットを転送すべきものとなる。また、当該宛先ノード（Ｈ５）は、そのフローに関し特定のサービス品質を要求していることになる。
【００６１】
前記第２のノード（Ｒ３）は、該第２のノードの下流に前記フローに関し特定のサービス品質を要求した宛先ノードが存在しない論理ネットワーク（サブネットＥ）に対しては、前記第１のノードから受信した前記マルチキャスト通信の宛先ノードへ向かうパケットのうち前記フローに属するパケットとそれ以外のパケット（Ｓ，Ｇ，−）を、次段ノードへの同一の仮想コネクション（ＶＣ４）にて転送する。
【００６２】
（具体例２）
本具体例では、ＱＯＳ要求したノードに対して新たなＶＣを設定し、そのＶＣでＱＯＳを要求されたフローを転送するとともにＱＯＳ要求をしていないノードにも新たなＶＣを設定し、そのＶＣでＱＯＳを要求されたフローを転送することでマルチキャストパケットを転送する。
【００６３】
図８は、Ｈ５が（Ｓ，Ｇ，１）のパケットのＱＯＳ要求を行い、Ｒ３を通してＳにその要求が到着した後のＶＣの設定図である。ＶＣ２，ＶＣ５が（Ｓ，Ｇ，１）のパケットを転送するＶＣである。ＶＣ１，ＶＣ４は、ＱＯＳ要求をしていないノードに対して（Ｓ，Ｇ，１）のパケットを転送するためのＶＣである。ＶＣ０，ＶＣ３は（Ｓ，Ｇ，１）以外のパケットで宛先アドレスＧのパケットを転送するＶＣである。ＶＣ６が宛先アドレスＧのパケットを転送するＶＣである。
【００６４】
上記のような設定を行うことにより、同一パケットが重複しないでかつグループに参加している全てのノードにパケットを配送することが出来る。
【００６５】
パケットの転送方法は、具体例１であげた図５のフローチャートと同様である。Ｓの経路表は図９であり、Ｒ３の経路表は図１０の様になる。ＳとＲ３の動作は、具体例１と同様であるのでここでは省略する。
【００６６】
本例の特徴をまとめると、次のようになる。マルチキャスト通信における複数の宛先ノード（Ｈ１，Ｈ３，Ｈ４，Ｈ５，Ｈ７）へ向けてパケット転送を行うために、第１のノード（ＳもしくはＲ３）から複数の第２のノード（Ｒ１，Ｒ２，Ｒ３もしくはＨ４，Ｈ５）の少なくとも一つへの仮想コネクションが複数（ＶＣ０とＶＣ１とＶＣ２、もしくは、ＶＣ３とＶＣ４とＶＣ５）設定されている。ＶＣ２やＶＣ５に転送すべきパケットのサービス品質要求は、ＶＣ０やＶＣ３、ＶＣ１やＶＣ４のそれとは異なることになる。
【００６７】
そして、前記第１のノードは、第２のノードそれぞれが前記複数の仮想コネクションの少なくとも一つにて前記宛先ノードへ向かうパケットを重複せずに受信するよう、前記宛先ノードへ向かうパケットのうち特定のサービス品質を提供すべきフローに属するパケット（Ｓ，Ｇ，１）を、前記複数の仮想コネクションのうちの一部のコネクション（ＶＣ１とＶＣ２、もしくは、ＶＣ４とＶＣ５）にて、前記宛先ノードへ向かうパケットのうち前記フローに属するパケット以外のパケットを、前記複数の仮想コネクションのうちの他のコネクション（ＶＣ０もしくはＶＣ３）にて転送する。
【００６８】
その他の特徴については、上記具体例１と同様であるので説明を省略する。
【００６９】
（具体例３）
本具体例では、ＱＯＳを要求したノードに新たなＶＣを２本設定し、ベストエフォートのＶＣのリーフから取り除く。新たに設定したＶＣの１本はＱＯＳ要求されたフローを転送し、もう１本はそれ以外のパケットを転送する。
【００７０】
図１１では、Ｈ５が（Ｓ，Ｇ，１）のパケットのＱＯＳ要求を行い、Ｒ３を通してＳにその要求が到着した後のＶＣの設定図である。新たなＶＣとしてＶＣ１，ＶＣ４がＱＯＳ要求されていないパケット用であり、ＶＣ２，ＶＣ５はＱＯＳ要求されたパケットを転送する。ベストエフォートのＶＣ０からは、Ｒ３への枝を削除し、ＶＣ３からは、Ｈ４への枝を削除する。
【００７１】
パケットの転送方法は、具体例１であげた図５のフローチャートと同様である。Ｓの経路表は図１２であり、Ｒ３の経路表は図１３の様になる。ＳとＲ３の動作は、具体例１と同様であるのでここでは省略する。
【００７２】
本例の特徴をまとめると、次のようになる。マルチキャスト通信における複数の宛先ノード（Ｈ１，Ｈ３，Ｈ４，Ｈ５，Ｈ７）へ向けてパケット転送を行うために、第１のノード（ＳもしくはＲ３）から複数の第２のノード（Ｒ１，Ｒ２，Ｒ３もしくはＨ４，Ｈ５）のうち特定のノード（Ｒ３もしくはＨ５）への複数の第１の仮想コネクション（ＶＣ１とＶＣ２、もしくは、ＶＣ４とＶＣ５）と、前記特定のノード以外の第２のノードへの第２の仮想コネクション（ＶＣ０もしくはＶＣ３）が設定されている。ＶＣ２やＶＣ５に転送されるパケットのサービス品質要求は、ＶＣ０やＶＣ３、ＶＣ１やＶＣ４のそれとは異なることになる。
【００７３】
そして、前記第１のノードは、第２のノードそれぞれが前記複数の仮想コネクションの少なくとも一つにて前記宛先ノードへ向かうパケットを重複せずに受信するよう、前記宛先ノードへ向かうパケットのうち特定のサービス品質を提供すべきフローに属するパケット（Ｓ，Ｇ，１）を、前記複数の第１の仮想コネクションのうちの一部のコネクション（ＶＣ２もしくはＶＣ５）及び前記第２の仮想コネクション（ＶＣ０もしくはＶＣ３）にて、前記宛先ノードへ向かうパケットのうち前記フローに属するパケット以外のパケットを、前記複数の第１の仮想コネクションのうちの他のコネクション（ＶＣ１もしくはＶＣ４）及び前記第２の仮想コネクション（ＶＣ０もしくはＶＣ３）にて転送する。つまり、ＶＣ０とＶＣ３には（Ｓ，Ｇ，−）が流れる。
【００７４】
（Ｓ，Ｇ，１）に関し特定のサービス品質を要求した宛先ノード（Ｈ５）もしくはそこへ向かうパケットが経由するノード（Ｒ３）が上記特定のノードとなる。その他の特徴については、上記具体例１と同様であるので説明を省略する。
【００７５】
本実施形態の効果は、重複したパケットの送信を行わないようにするため、ネットワーク資源が有効に利用できることである。
【００７６】
（参考実施形態２）
本実施形態では、サービス品質の異なるマルチキャストパケット転送を実現する方法であって、各ノードはマルチキャストパケットを重複して受信するが、支障無く動作できる方法を述べる。
【００７７】
サービス品質がベストエフォートのみの場合は、参考実施形態１の場合と同様に図１のようにＶＣが設定されている。
【００７８】
ここで、受信ホストＨ５が送信者Ｓ，宛先アドレスＧ，宛先ポート１のマルチキャストパケット（以下では、（Ｓ，Ｇ，１）のパケットと言う）に対してサービス品質を要求した場合を考える。Ｈ５はＲ３にＲＳＶＰを使ってサービス品質を要求することを伝えるとする。Ｒ３はサービス品質を満足するポイントマルチポイントＶＣであるＶＣ３を図１４のように設定し、このＶＣで（Ｓ，Ｇ，１）のパケットを送信する。Ｒ３は、ＶＣ３で（Ｓ，Ｇ，１）パケットを送信することをＨ５に伝える。Ｒ３は、ＶＣ２で今までと同様に宛先アドレスＧのパケットを送信しているので、Ｈ５ではＶＣ２とＶＣ３の両方から（Ｓ，Ｇ，１）のパケットを受信する。そこで、ＶＣ２から来た（Ｓ，Ｇ，１）のパケットを廃棄することで２重にパケットを処理することを防ぐ。
【００７９】
Ｒ３は、送信者Ｓにサービス要求を行い、ＶＣ３と同様にＶＣ１を設定する。ＳからＲ３へＶＣ３に流すパケット（Ｓ，Ｇ，１）を通知して、Ｒ３では、ＶＣ０から来た（Ｓ，Ｇ，１）のパケットを廃棄することでパケットを２重に転送するのを防ぐ。
【００８０】
以下では、（Ｓ，Ｇ，１）のパケットを送信する場合のＳ，Ｒ３，Ｈ５の動作と、（Ｓ，Ｇ，２）のパケットを送信する場合のＳ，Ｒ３，Ｈ５の動作を示す。
【００８１】
送信ホストＳの構成は、図３と同様であるが、出力処理部（１１）の出力手順が図１５のフローチャートに従う。また、Ｓの経路表は、図１６で示す。
【００８２】
Ｒ３のルータの構成は、図１７の様になる。参考実施形態１の場合のルータとほぼ同じであるので異なるところだけ説明する。入力処理部（２１）から参照するパケット廃棄表（２５）が増えている。出力処理部（２２）での送信手順は図１５のフローチャートに従う。Ｒ３の経路表は図１８に、廃棄パケット表は図１９に示す。
【００８３】
受信ホストＨ５の構成は、図２０であり、ネットワークＩ／Ｆ（３４）から入力されたパケットは、入力処理部（３１）において、パケット廃棄表（３５）を参照することにより、重複していれば廃棄される。廃棄パケット表として図１９を持つ。
【００８４】
Ｓが（Ｓ，Ｇ，１）のパケットを送信するときには、最初に図１６の経路表（ａ）の先頭にポインタをセットする（図１５  Ｓ２１）。次にそのポインタで示されるエントリから（Ｓ，Ｇ，１）をキーとして経路表（ａ）を検索する（Ｓ２２）。つまり、送信者と宛先アドレスが合致しているものを検索し、その中で宛先ポートが合致しているものも検索する。本実施形態ではベストマッチでない検索方法を使う。
【００８５】
経路表（ａ）の１行目から比較し、（Ｓ，Ｇ，−）のエントリにマッチしていることがわかるので、出力ＶＣポインタ＝１を返す。出力ポインタで示された出力ＶＣにパケットを送出する（Ｓ２３）ので、経路表（ｂ）のアドレス１に示された出力Ｉ／Ｆ＝ａ，出力ＶＣ＝ＶＣ０にパケットを出力する。経路表（ｂ）の次のポインタがないのでこれでＳ２３の処理は終了する。
【００８６】
ポインタを経路表（ａ）の次のエントリである２行目に移し（Ｓ２４）、経路表を検索する（Ｓ２２）。経路表（ａ）の２行目から検索すると（Ｓ，Ｇ，１）がマッチするので出力ポインタ２を返す。経路表（ｂ）のアドレス２の出力Ｉ／Ｆ＝ａ，出力ＶＣ＝ＶＣ１に（Ｓ，Ｇ，１）のパケットを出力する（Ｓ２３）。次へのポインタはないので、次の処理に移る。ポインタを経路表の３行目に移し（Ｓ２４）、Ｓ２２で全てのエントリを検索終了したことがわかるので、これで処理を終わる。
【００８７】
Ｒ３は、ＶＣ０とＶＣ１から（Ｓ，Ｇ，１）のパケットを受信する。受信パケットは、ネットワークＩ／Ｆから受信した仮想コネクション識別子とともにネットワーク層処理部に渡される。パケットを受信すると図１９のパケット廃棄表を検索して廃棄すべきパケットかをチェックする。
【００８８】
受信パケットの（送信者アドレス、宛先アドレス、宛先ポート）が、パケット廃棄表に書かれている場合は、この表の入力Ｉ／Ｆ，入力ＶＣから来たパケットのみを通し、その（送信者アドレス、宛先アドレス、宛先ポート）を持つパケットであってその他のＶＣから来たパケットは廃棄する。
【００８９】
ＶＣ０とＶＣ１から受信した（Ｓ，Ｇ，１）のパケットは、パケット廃棄表に書かれているので、入力Ｉ／Ｆ＝ａ，入力ＶＣ＝ＶＣ１から受信したパケットのみを通す。ＶＣ０から来た（Ｓ，Ｇ，１）のパケットは廃棄する。ＶＣ１から来たパケットに対して以下のパケット転送処理を行う。
【００９０】
なお、パケット廃棄表のこのエントリは、ＳからＶＣ１に（Ｓ，Ｇ，１）のパケットを流すことを通知されたときに、記入する。
【００９１】
パケット転送は、Ｓと同様に図１５のフローチャートに従って行う。経路表は、図１８に示す。ポインタを経路表（ａ）の先頭に移し（Ｓ２１）、経路表（ａ）の１行目が（Ｓ，Ｇ，１）にマッチするか確かめる。１行目は、（Ｓ，Ｇ，−）なので、マッチする（Ｓ２２）。出力ＶＣポインタ１を返す。経路表（ｂ）のアドレス１の出力Ｉ／Ｆ＝ｂ，出力ＶＣ＝ＶＣ２に（Ｓ，Ｇ，１）のパケットを送信する。
【００９２】
次のポインタが２を指しているので、経路表（ｂ）のアドレス２の出力Ｉ／Ｆ＝ｃ，出力ＶＣ＝ＶＣ４へも（Ｓ，Ｇ，１）のパケットを送信する（Ｓ２３）。次へのポインタがないので、これでこの処理は、終了する。
【００９３】
次に、経路表（ａ）のポインタを２行目に移し（Ｓ２４）、（Ｓ，Ｇ，１）にマッチするエントリがあるか確かめる。（Ｓ，Ｇ，１）のエントリがあるので出力ＶＣポインタ３を返す（Ｓ２２）。経路表（ｂ）のアドレス３の出力Ｉ／Ｆ＝ｂ，出力ＶＣ＝ＶＣ３に（Ｓ，Ｇ，１）のパケットを送信する（Ｓ２３）。次へのポインタがないので、これでこの処理は、終了する。
【００９４】
経路表（ａ）のポインタを３行目に移し（Ｓ２４）、経路表（ａ）の全てを検索したことがわかるので、パケット転送処理を終了する。
【００９５】
Ｈ５は、ＶＣ２とＶＣ３から（Ｓ，Ｇ，１）のパケットを受信する。Ｒ３と同様にパケット廃棄表を見てパケットを廃棄するか決定する。ＶＣ２から来た（Ｓ，Ｇ，１）のパケットは廃棄され、ＶＣ３から来た（Ｓ，Ｇ，１）のパケットは廃棄されない。これにより、重複したパケットを両方とも処理してしまうことが無くなる。
【００９６】
さて、（Ｓ，Ｇ，２）のパケットの転送手順を以下に述べる。Ｓでは、（Ｓ，Ｇ，２）をキーに経路表（ａ）を検索する。（Ｓ，Ｇ，−）のエントリがマッチするので、出力ＶＣポインタ１を返す。経路表（ｂ）のアドレス１の出力Ｉ／Ｆ＝ａ，出力ＶＣ＝ＶＣ０にパケットを出力する。次へのポインタが無いのでこの処理は終了する。次に、経路表（ａ）の次のエントリから（Ｓ，Ｇ，２）をキーに検索すると該当するエントリが無いので転送の処理を終了する。
【００９７】
Ｒ３でも、上記と同様に行い、パケット廃棄表でパケットを廃棄するか決定し、（Ｓ，Ｇ，２）のパケットは廃棄しないことがわかるので、出力Ｉ／Ｆ＝ｂ，出力ＶＣ＝ＶＣ２と出力Ｉ／Ｆ＝ｃ，出力ＶＣ＝ＶＣ４にパケットを出力する。
【００９８】
なお、本実施形態のパケットの出力処理は、後述する実施形態１の具体例２の方法でも実現できる。具体的には、送信手順として図５のフローチャート（ベストマッチの検索法）を使い、ＩＰ経路表（ｂ）のアドレス１の次ポインタを３にし、アドレス３に出力Ｉ／Ｆ＝ａ，出力ＶＣ＝ＶＣ１，次ポインタ＝Ｘを追加すればよい。
【００９９】
本実施形態の効果は、サービス品質がベストエフォートのみの状態（図１）から、サービス品質の要求に対応した仮想コネクションが設定された状態（図１４）になるまでの設定手順が少なくてすむことである。また、パケットの送信者からサービス品質を要求したノードへの仮想コネクションを設定するだけなので、設定するＶＣ数が少なくてすむ。
【０１００】
本実施形態の特徴をまとめると、次のようになる。マルチキャスト通信における複数の宛先ノード（Ｈ１，Ｈ３，Ｈ４，Ｈ５，Ｈ７）へ向けてパケット転送を行うために、第１のノード（ＳもしくはＲ３）から複数の第２のノード（Ｒ１，Ｒ２，Ｒ３もしくはＨ４，Ｈ５）への第１の仮想コネクション（ＶＣ０もしくはＶＣ２）と、第１のノードから前記複数の第２のノードのうち少なくとも特定のノード（Ｒ３もしくはＨ５）への第２の仮想コネクション（ＶＣ１もしくはＶＣ３）とが設定されており、これらの仮想コネクションは転送すべきパケットのサービス品質要求が異なる。
【０１０１】
そして、前記第２のノードそれぞれが、前記宛先ノードへ向かうパケット（Ｓ，Ｇ，−）を前記第１の仮想コネクションにて受信するとともに、少なくとも前記特定のノードは、前記宛先ノードへ向かうパケットのうち特定のサービス品質を提供すべきフローに属するパケット（Ｓ，Ｇ，１）を前記第１の仮想コネクションに加えて前記第２の仮想コネクションにても受信するよう、前記第１のノードからパケットを転送する。
【０１０２】
さらに、前記特定のノード（Ｒ３もしくはＨ５）は、前記第１の仮想コネクション（ＶＣ０もしくはＶＣ２）にて受信されたパケット（Ｓ，Ｇ，−）のうち前記フローに属するパケット（Ｓ，Ｇ，１）を選択して廃棄する。
【０１０３】
前記第２の仮想コネクション（ＶＣ１もしくはＶＣ３）は、前記複数の宛先ノードのうちの少なくとも一つ（例えばＨ５）により前記フローに関し特定のサービス品質が要求された場合に設定されたものである。また、前記特定のノードは、該サービス品質を要求した宛先ノードへ向けて転送されるべきパケットが経由するノード（Ｒ３）もしくは該宛先ノード（Ｈ５）である。
【０１０４】
前記特定のノード（Ｒ３もしくはＨ５）は、前記フローに属するパケットを重複して受信すると、パケット廃棄表を用いることにより、前記第２の仮想コネクションにて受信されるべきパケットの属するフローを判別して、前記第１の仮想コネクションにて受信されたパケットのうち、判別されたフローに属するパケットを選択して廃棄し、廃棄されなかったパケット（ＶＣ１もしくはＶＣ３で受信した（Ｓ，Ｇ，１）と、ＶＣ０もしくはＶＣ２で受信した（Ｓ，Ｇ，−）のうち（Ｓ，Ｇ，１）を除いたもの）に、次段ノードへの転送のためのもしくは上位レイヤのアプリケーションへ上げるためのネットワークレイヤ処理を施す。
【０１０５】
前記特定のノードがまだ宛先ノードでなければ（Ｒ３）、前記ネットワークレイヤ処理を施したパケットが前記宛先ノードへ向かうべきパケットであって前記特定のサービス品質を提供すべきフローには属さないならば、ＶＣ２へ転送し、前記ネットワークレイヤ処理を施したパケットが前記宛先ノードへ向かうべきパケットであって前記フローに属するならば、ＶＣ２及びＶＣ３へ転送する。つまり、ＶＣ２にはＶＣ０で受信された（Ｓ，Ｇ，−）のうち（Ｓ，Ｇ，１）を除いたものとＶＣ１で受信された（Ｓ，Ｇ，１）とが、前記フロー専用のＶＣ３には同じく前記フロー専用のＶＣ１で受信された（Ｓ，Ｇ，１）が流れる。
【０１０６】
なお、ＶＣ１やＶＣ３を特定のノード以外の第２のノードのへも設定して動作しても構わない。このときは、この仮想コネクションが設定されたその他の第２のノード（Ｒ１，Ｒ２もしくはＨ４）も上記特定のノードと同様に動作する。そして、そのノードより下流には、特定のサービス品質を提供すべきフロー専用の仮想コネクションが存在しないのであれば、廃棄されなかったパケットを下流側に存在する同一の仮想コネクションにて転送すれば良い。
【０１０７】
また、参考実施形態２におけるルータは次のようなものとすることもできる。そのルータとは、前記フロー専用のＶＣにて送信されるパケットに対し、パケットの最終宛先アドレスから出力先とすべきＶＣを決定するネットワークレイヤレベルのルーティングテーブル参照処理は行わず、ＡＴＭレベルのルーティングテーブルを参照することにより、出力先とすべきＶＣを決定するものである。
【０１０８】
ＡＴＭレベルのテーブルには、ＶＣ１からのパケットは次段ノードへの前記フロー専用のＶＣであるＶＣ３に転送すべきことを記入しておく。このため、ＶＣ１からのパケットはＶＣ２へは転送されず、ＶＣ３へのみ転送される。ＶＣ１のパケットに対しては、出力ＶＣを決定する処理以外のネットワークレイヤレベルの処理は行う。
【０１０９】
ネットワークレイヤレベルのテーブルには、宛先アドレスＧのパケットはＶＣ２へ転送するように記入しておく。このため、ＶＣ０からのパケットはＶＣ３へは転送されず、ＶＣ２へのみ転送される。
【０１１０】
このようにすれば、パケットの廃棄をしなくとも、ルータがＶＣ２及びＶＣ３へ、（Ｓ，Ｇ，１）のパケットを２つずつ転送してしまうことを防ぐことができる。但し、この場合も、宛先ノードは、ＶＣ２から来た（Ｓ，Ｇ，１）を廃棄する。
【０１１１】
その他、参考実施形態１で述べたような種々の変形実施も可能である。
【０１１２】
（実施形態１）
本実施形態では、ＣＳＲ（Ｃｅｌｌ  Ｓｗｉｔｃｈ  Ｒｏｕｔｅｒ）の技術を用いて、サービス品質の異なるマルチキャストパケット転送を実現する方法を述べる。
【０１１３】
ＣＳＲは、通常のルータと同じＩＰパケット単位で転送する動作を行う他に、ルータ内部にＡＴＭスイッチ機能を持つことにより、より高速なＡＴＭセル単位の転送を行うことができるルータである。
【０１１４】
図２１を使って、ＣＳＲの簡単な動作を説明する。Ｘ．１からＣＳＲを通してＹ．１にパケットを転送する場合を考える。通常と同じＩＰパケット転送の動作を行うためには、Ｘ．１からＣＳＲに色々な宛先のパケットを転送するために設定されているＡＴＭコネクションでパケットを送信する。ここでは、このＡＴＭコネクションをデフォルトＶＣ（Ｖｉｒｔｕａｌ  Ｃｏｎｎｅｃｔｉｏｎ）と呼ぶ。ＣＳＲでは、ＩＰパケットの宛先を見て次に配送するノードを決定する。ここでは、次のノードは、Ｙ．１になるので、デフォルトＶＣにパケットを送出することによりＹ．１へとパケットが転送される。
【０１１５】
次に、ＡＴＭセル転送の動作を説明する。Ｙ．１へのパケット転送専用のＸ．１からＣＳＲへのＡＴＭコネクションとＣＳＲからＹ．１へのＡＴＭコネクションとが設定されているとする。ここでは、このＡＴＭコネクションを専用ＶＣと呼ぶ。さらに、これら２つの専用ＶＣをＣＳＲ内のＡＴＭスイッチ機能でＡＴＭセル単位で転送できるように設定しておく。すなわち、Ｘ．１からＣＳＲへの専用ＶＣのＣＳＲの受信ポートでのＶＰＩ／ＶＣＩと、ＣＳＲからＹ．１への専用ＶＣのＣＳＲの送信ポートでのＶＰＩ／ＶＣＩとの対応関係を、ＡＴＭレベルのルーティングテーブルとして記憶しておく。このような設定を行うことで、二つの論理ネットワーク（ＩＰ  Ｓｕｂｎｅｔ）に属する専用ＶＣを直結するバイパスパイプが形成されたことになる。
【０１１６】
Ｘ．１からＹ．１へのパケット転送を行うには、Ｘ．１からＹ．１用の専用ＶＣにパケットを送信することにより、Ｘ．１からＣＳＲに送られ、ＣＳＲでＡＴＭレベルのルーティングテーブルを参照することによりＡＴＭセルのままＣＳＲからＹ．１への専用ＶＣに転送されて、その専用ＶＣでＹ．１へ送られる。
【０１１７】
なお、ここでは、専用ＶＣにて送信されるパケットをＡＴＭセル単位で転送することを、専用ＶＣの直結として説明したが、専用ＶＣにて送信されるパケットをＡＡＬ（ＡＴＭ  Ａｄａｐｔａｔｉｏｎ  Ｌａｙｅｒ）フレーム単位で転送することで、専用ＶＣの直結としても良い。この場合も、上記のＡＴＭレベルのルーティングテーブルを参照することにより、ＡＡＬフレーム転送が行える。以上の場合はいずれも、ネットワークレイヤ（例えばＩＰ）レベルの解析処理を行わずに、パケットが転送されることになる。
【０１１８】
また、専用ＶＣにて送信されるパケットに対し、パケットの最終宛先アドレスから出力先とすべきＶＣを決定するネットワークレイヤレベルのルーティングテーブル参照処理は行わず、その他のネットワークレイヤレベルの処理（ＩＰの場合はＴＴＬ（Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ）を減らす処理やチェックサム計算等）は行って、次段ノードへの専用ＶＣに転送することを、上記専用ＶＣの直結としても良い。この場合も、上記のＡＴＭレベルのルーティングテーブルを参照することにより、出力先とすべきＶＣが決定でき、パケット転送が行える。この場合は、ネットワークレイヤレベルの処理を一部だけ行って、パケットが転送されることになる。
【０１１９】
本発明は、ＣＳＲの動作が以上に説明したいずれのものであっても、適用可能である。
【０１２０】
図２２にＣＳＲの構成図の一例を示す。３０１は、ネットワークレイヤレベルの処理を行うＩＰ処理部であり、３０２は、ＡＴＭセルからＡＡＬフレームに変換するＡＡＬ処理部であり、３０３は、セル転送を行うＡＴＭスイッチである。このＡＴＭスイッチは、入力セルをコピーして複数の出力Ｉ／Ｆに出力することが出来る。
【０１２１】
ＩＰ処理部（３０１）とＡＡＬ処理部（３０２）と入力ＶＣ−フロー対応表（３１１）と管理部（３０９）をまとめて、上位層処理部（３１０）とする。ＩＰ処理部（３０１）には、入力処理部（３０７）と出力処理部（３０６）とＩＰ経路表（３０４）があり、ＡＴＭスイッチ（３０３）には、ＡＴＭ経路表（３０５）がある。入力ＶＣ−フロー対応表（３１１）は、あるＶＣから入力させるフローを記憶する。管理部（３０９）は、入力ＶＣ−フロー対応表に従って、ＩＰ経路表とＡＴＭ経路表を参照又は書き込む。
【０１２２】
上記構成では、ＩＰ処理部として記述したが、ネットワーク層処理としてＩＰのみでなく他のネットワーク層でも同様に行うことが出来る。以下の説明では、ネットワーク層がＩＰである場合で説明する。
【０１２３】
（具体例１）
（参考実施形態１）の様にＣＳＲで同一のパケットを複数受信しない場合のＣＳＲの動作を説明する。ＣＳＲでは、入力ＶＣと出力ＶＣを直結すると直結したＶＣにしかパケットが流れない。これでは、マルチキャストに参加しているが直結していない受信者にパケットが届かなくなる。この具体例では、ＣＳＲで受信した同一のパケットを重複しないように下流に流しながら、上記の問題を解決する方法を述べる。
【０１２４】
図１のルータ（Ｒ３）がＣＳＲである場合を取り上げる。図２３は、Ｒ３を中心に置いた図である。
【０１２５】
ＣＳＲには、サブネットＡからＶＣ０，ＶＣ１，ＶＣ２の３つのＶＣを通してパケットが到着する。これらのＶＣには以下のパケットが流れるように設定されているとする。ＶＣ１は、送信者アドレスＳ，宛先アドレスＧ１，宛先ポート１のパケットが流れる。ＶＣ０は、送信者アドレスＳ，宛先アドレスＧ１のパケットで宛先ポート１を除くパケットが流れる。ＶＣ２は、送信者アドレスＳ，宛先アドレスＧ２のパケットが流れる。以下では、送信者アドレスＳ，宛先アドレスＧ１，宛先ポート１の組を（Ｓ，Ｇ１，１）のように表す。
【０１２６】
宛先アドレスＧ１とＧ２に参加しているノードは、サブネットＤとサブネットＥに存在するとする。これは、サブネットＡから受け取ったパケットをサブネットＤとサブネットＥに送出しなければならないことを意味する。サブネットＤの参加者は宛先アドレスＧ１、宛先ポート１のフローに対して特定のサービス品質を要求しており、サブネットＥの参加者は、そのフローに対する要求をしていないものとする。
【０１２７】
ＶＣ０で到着したＡＴＭセルは、上位層処理部に渡され、セルからパケットに組み立て出力Ｉ／Ｆを決める。そのパケットをセルに直して、ＶＣ３とＶＣ６に送出する。ＶＣ１で到着したセルは、ＶＣ４に直結転送されるとともに上位層処理部に渡され、ＶＣ６に送信される。ＶＣ２で受信したセルは、ＶＣ５とＶＣ７に直結転送される。
【０１２８】
ここで重要なのは、受信したパケットの受信者の１部にしか直結していない場合にＡＴＭスイッチでセルをコピーして上位層処理部に転送することである。これにより直結していない参加者にパケットを送信できるようにする。
【０１２９】
上記の動作をフローチャート（図２４，図２５）と図２２の３０４のＩＰ経路表（図２７）と図２２の３０５のＡＴＭ経路表（図２６）を用いて説明する。
【０１３０】
ＶＣ０から（Ｓ，Ｇ１，２）のパケットがＡＴＭセルで到着した場合は、ＡＴＭスイッチにおいて、図２４のフローチャートに従ってセルを出力する。まず、入力Ｉ／Ｆと入力ＶＣをキーにして図２６のＡＴＭ経路表（ａ）を検索する（Ｓ４１）。
【０１３１】
ＶＣ０は入力Ｉ／Ｆ＝ａ，入力ＶＣ＝ＶＣ０であるので、出力ＶＣポインタは１である。出力ＶＣポインタからＡＴＭ経路表（ｂ）のアドレス１のエントリを見る。これは出力Ｉ／Ｆ＝上位層となっているので、上位層処理部にセルを渡す（Ｓ４２）。ＡＴＭ経路表（ｂ）の次ポインタが無い（Ｓ４３  Ｎｏ）のでこれで処理を終わる。
【０１３２】
上位層処理部に渡ったセルは、複数のセルを集めてパケットを組み立て、そのパケットを図２５のフローチャートに従って転送する。
【０１３３】
（Ｓ，Ｇ１，２）のパケットが到着したので図２７のＩＰ経路表（ａ）を（Ｓ，Ｇ１，２）をキーとしてベストマッチで検索を行う（Ｓ４５）。（Ｓ，Ｇ１，−）のエントリにマッチし、出力ＶＣポインタが１であることがわかる。出力ＶＣポインタが１であるのでＩＰ経路表（ｂ）のアドレス１の出力Ｉ／Ｆ＝ｂ，出力ＶＣ＝ＶＣ３，直結＝ｎｏ，次ポインタ＝２がわかる。
【０１３４】
直結＝ｎｏなので（Ｓ４６  Ｎｏ）出力Ｉ／Ｆ＝ｂ，出力ＶＣ＝ＶＣ３にパケットを送出する（Ｓ４７）。次ポインタ＝２である（Ｓ４８）のでＩＰ経路表（ｂ）のアドレス２を見て（Ｓ４９）同様なことを行う。出力Ｉ／Ｆ＝ｃ，出力ＶＣ＝ＶＣ６にパケットを送出する（Ｓ４７）。次ポインタ＝Ｘなのでパケットの転送処理を終了する。
【０１３５】
次に、ＶＣ１に（Ｓ，Ｇ１，１）のパケットが転送された場合を説明する。ＡＴＭスイッチでの転送方法と上位層処理部での転送方法は上記ＶＣ０の場合と同様であるので簡単に説明する。ＶＣ１からセルが到着するとＡＴＭスイッチでＡＴＭ転送表を参照し、出力Ｉ／Ｆ＝ｂ，出力ＶＣ＝ＶＣ４と上位層にパケットを送信する。ここで、直結していない参加者にパケットが届かなくなることがないように、直結転送されるセルをコピーして上位層に渡していることになる。
【０１３６】
上位層処理部では、（Ｓ，Ｇ１，１）をキーにＩＰ経路表（ａ）をベストマッチで検索すると出力ポインタ＝３であり、ＩＰ経路表（ｂ）から出力Ｉ／Ｆ＝ｂ，出力ＶＣ＝ＶＣ４，次ポインタ＝４，直結＝ｙｅｓであることがわかる。
【０１３７】
直結＝ｙｅｓであるので（Ｓ４６  Ｙｅｓ）、このＶＣには出力せずに、次のポインタを試す（Ｓ４８）。次は、出力Ｉ／Ｆ＝ｃ，出力ＶＣ＝ＶＣ６，直結＝ｎｏであることがわかるので、出力Ｉ／Ｆ＝ｃ，出力ＶＣ＝ＶＣ６にパケットを送出する。これで直結していない参加者（ＶＣ６に対応）にも（Ｓ，Ｇ１，１）のパケットが届くことになる。
【０１３８】
ＶＣ２で来たセルは、ＡＴＭ転送表から出力Ｉ／Ｆ＝ｂ，出力ＶＣ＝ＶＣ５と出力Ｉ／Ｆ＝ｃ，出力ＶＣ＝ＶＣ７に出力する。上位層処理部にはパケットが到着しないので上位層処理部でのパケット転送はない。送信者アドレスＳ，宛先アドレスＧ２のパケットについては、直結していない参加ノードが存在しないので、上位層にパケットを渡すためのセルをコピーは必要ないのである。
【０１３９】
上記の方法を用いることにより、マルチキャストパケットを送出する時直結を行ってもグループ参加者の全てにパケットが送信できるようになる。
【０１４０】
上記方法を実行する場合は、ＡＴＭスイッチでセルをコピーして上位層処理部に渡すかどうかを決定する必要がある。これは、図２２の管理部３０９が、図２７のＩＰ経路表（３０４）と図２８の入力ＶＣとフローの対応表（３１１）を参照することにより決定し、ＡＴＭ経路表（３０５）を設定する。
【０１４１】
入力ＶＣとフローの対応表から入力ＶＣで流れるフローがわかる。そのフローをＩＰ経路表で検索してその出力ＶＣの全てが直結されていないとき、または、全てが直結されているときは、ＡＴＭスイッチで上位層処理部にセルをコピーする必要はない。出力ＶＣの一部が直結されていてその他が直結されていないときにはＡＴＭスイッチで上位層処理部にセルをコピーする必要がある。この判断に基づいてＡＴＭ経路表を設定する。具体的には以下のようにする。
【０１４２】
ＶＣ１は（Ｓ，Ｇ１，１）のパケットが流れることが図２８から分かる。（Ｓ，Ｇ１，１）をキーに図２７を検索し、経路表（ｂ）を見ると直結しているＶＣが１つ（ＶＣ４）と直結していないＶＣが１つ（ＶＣ６）あるので、ＶＣ１に関してはＡＴＭスイッチで上位層処理部にセルをコピーして渡す必要がある。
ＶＣ２は、（Ｓ，Ｇ２，−）のパケットが流れることが図２８から分かり、これをキーに図２７を検索すると、２本のＶＣ（ＶＣ５，ＶＣ７）とも直結しているので上位層処理部にセルをコピーして渡す必要がないことが分かる。
【０１４３】
このように得られた情報により、図２６のＡＴＭ経路表を設定する。ＡＴＭ経路表は、ＶＣ０がデフォルトＶＣであるので、ただ上位層に渡すようになっており、ＶＣ１はＶＣ４と直結するようにその対応関係が記憶され、ＶＣ２はＶＣ５およびＶＣ７と直結するようにその対応関係が記憶されている。ここで、ＶＣ１については、上位層にセルをコピーして渡す必要があることがあることがわかると、ＶＣ４の次ポインタを設定し、次ポインタの示すエントリに上位層を書き込む。
【０１４４】
なお、図２３において、図示されないサブネットＦにも宛先アドレスＧ２に参加しているノードがあり、そこへのＶＣ８はＶＣ２と直結されていないものである場合は、同様にしてＶＣ２からのセルをコピーして上位層に渡すことにより、ＶＣ８へも（Ｓ，Ｇ２，−）のパケットが届くことになる。
【０１４５】
本例の特徴をまとめると、次のようになる。マルチキャスト通信における複数の宛先ノードへ向けてパケット転送を行うために、第１のノード（サブネットＡ）から受信したパケットを、前記第１のノードとは異なる論理ネットワークに属する複数の第２のノード（サブネットＤ及びＥ）へ転送する際に、前記第１のノードからパケットを受信可能な第１の仮想コネクション（ＶＣ１）と、前記複数の第２のノードのうちの特定のノード（サブネットＤ）へパケットを送信可能な第２の仮想コネクション（ＶＣ４）との対応関係を記憶し、この対応関係に従って直結転送するとともに、この直結転送に起因して前記複数の第２のノードのうち前記特定のノード以外のノード（サブネットＥ）へ前記宛先ノードへ向かうパケットのうち少なくとも一部が転送されなくなると判断される場合には、前記第１の仮想コネクション（ＶＣ１）にて受信されたパケットを複製してネットワークレイヤレベルの転送処理を施し、この処理の施されたパケットを前記特定のノード以外のノード（サブネットＥ）へ送信する。
【０１４６】
より具体的には、前記第１の仮想コネクション（ＶＣ１）にて受信すべきパケットの属するフロー（Ｓ，Ｇ１，１）に対応して、前記第１の仮想コネクションとの対応関係が記憶されている前記第２の仮想コネクション（ＶＣ４）の他に、前記第１の仮想コネクションとの対応関係が記憶されていない第３の仮想コネクション（ＶＣ６）が記憶されている場合に、上記転送されなくなるとの判断を行う。
【０１４７】
一方、前記第１の仮想コネクション（ＶＣ２）にて受信すべきパケットの属するフロー（Ｓ，Ｇ２，−）に対応して、前記第１の仮想コネクションとの対応関係が記憶されている前記第２の仮想コネクション（ＶＣ５及びＶＣ７）の他に、前記第１の仮想コネクションとの対応関係が記憶されていない第３の仮想コネクションが存在しない場合には、転送されなくなるとは判断しない。
【０１４８】
（具体例２）
（参考実施形態２）の様にＣＳＲで同一のパケットを複数受信する場合に、ＣＳＲで入力パケットの重複をなくし、全ての受信者にパケットを転送する方法を述べる。
【０１４９】
ＣＳＲの構成図を図２９で示す。図２２で示したＣＳＲの構成図とほぼ同じであるので、異なる点だけ説明する。ＩＰ処理部（３０１）には、パケット廃棄表（３０８）が追加されている。入力処理部（３０７）でパケット廃棄表を見ることで重複しているパケットの処理を行わないようにすることができる。
【０１５０】
図３０を使ってＣＳＲの動作を説明する。図３０は、図１のルータ（Ｒ３）がＣＳＲである場合を示しており、Ｒ３を中心に置いたＶＣの設定図である。ＡＴＭスイッチからサブネットＡへのＩ／Ｆはａと呼び、サブネットＤへのＩ／Ｆはｂ，サブネットＣへのＩ／Ｆはｃとする。ＡＴＭスイッチから上位層処理部へのＩ／Ｆは”上位層”と呼ぶことにする。
【０１５１】
Ｒ３のＡＴＭ経路表は図３１に示し、ＩＰ経路表は図３２に、パケット廃棄表は図３３に示す。
【０１５２】
ＶＣ０（デフォルトＶＣ）からは、宛先アドレスＧのパケットが転送され、ＶＣ１（専用ＶＣ）からは、（Ｓ，Ｇ，１）のパケットが転送されるとする。
【０１５３】
ＶＣ０から（Ｓ，Ｇ，１）のパケットのセルが到着したとする。このセルは、ＡＴＭスイッチが図３１のＡＴＭ経路表を参照し図２４のフローチャートに従って動作することにより、上位層へＶＣ０で渡され、上位層処理部でパケットの組み直される。上位層処理部の入力処理部（３０７）で図３３のパケット廃棄表を参照し、（Ｓ，Ｇ，１）のパケットを廃棄するべきかを確かめる。パケット廃棄表には、（Ｓ，Ｇ，１）のパケットであって入力ＶＣがＶＣ１以外のものは廃棄するように書かれているので、パケットを廃棄して終了する。
【０１５４】
次に、ＶＣ０から（Ｓ，Ｇ，２）のパケットのセルが到着したとする。このセルも上記と同様に上位層処理部に渡され、入力処理部でパケット廃棄表を確かめる。パケット廃棄表には、（Ｓ，Ｇ，２）のエントリはないのでパケットは廃棄しない。
【０１５５】
このパケットを出力するため、図３２のＩＰ経路表を参照して出力処理部でパケットの出力処理を行う。この出力の処理は、図５で示したフローチャートに従う。ＩＰ経路表をベストマッチで検索して出力Ｉ／Ｆ＝”上位層”，出力ＶＣ＝ＶＣ２とＶＣ４に出力すれば良いことがわかる。
【０１５６】
このＶＣにパケットからセルに分解して出力すると、ＡＴＭスイッチが図３１のＡＴＭ経路表を参照し図２４のフローチャートに従って動作することにより、ＶＣ２のセルは出力Ｉ／Ｆ＝ｂ，出力ＶＣ＝ＶＣ２で出力し、ＶＣ４のセルは出力Ｉ／Ｆ＝ｃ，出力ＶＣ＝ＶＣ４で出力する。
【０１５７】
一方、ＶＣ１から（Ｓ，Ｇ，１）のパケットのセルが到着したとする。このセルは、ＡＴＭスイッチが図３１のＡＴＭ経路表を参照し、図２４のフローチャートに従って動作することにより、ＶＣ３に転送されるとともにＡＴＭスイッチで複製され上位層処理部に渡される。
【０１５８】
その後、入力処理部で（Ｓ，Ｇ，１）をキーにパケット廃棄表を検索する。検索されたエントリには、入力ＶＣ＝ＶＣ１以外は廃棄するように書かれているので、このパケットは廃棄しない。そして、このパケットをＩＰ経路表に従って、出力処理部で出力する。出力の方法は、上記で説明したＶＣ０からパケットが入力された場合と同様であるので、説明は省略する。
【０１５９】
この具体例では、専用ＶＣ（ＶＣ１）から来たセルを直結転送している場合は、これを下流の専用ＶＣ（ＶＣ３）に直結転送するとともに、ＡＴＭスイッチで複製して上位層に渡す。専用ＶＣ（ＶＣ１）から来たセルを直結転送していない場合には、これを通常通り上位層に渡す（これは図３１及び３２とは異なるＡＴＭ及びＩＰ経路表によりＶＣ２，ＶＣ３，ＶＣ４に転送されることになる）。つまり、この具体例では、直結転送しているか否かに関わらす、専用ＶＣから来たセルはＡＴＭスイッチから上位層に渡される。
【０１６０】
パケット廃棄表の設定は、ＶＣ１を流れるパケットが（Ｓ，Ｇ，１）であることをＳから通知されたときに、図２９の管理部３０９で、図３３の入力ＶＣ−フロー対応表（３１１）を記入するとともに、パケット廃棄表（３０８）に、ＶＣ１以外からの（Ｓ，Ｇ，１）のパケットを廃棄するように記入する。
【０１６１】
また、管理部３０９は、後述する実施形態４のような直結管理表（図２９の入力ＶＣ−フロー対応表３１１はその一部を構成するものである）を用いて、直結転送するか否かを切り替える場合のＡＴＭ及びＩＰ経路表の変更をも行っている。
【０１６２】
なお、本実施形態のパケット出力処理は、前述した参考実施形態２の方法でも実現できる。具体的には、出力処理を図１５のフローチャート（ベストマッチではない検索法）で行い、ＩＰ経路表として図３２（ａ）に（Ｓ，Ｇ，１）のパケットの出力ＶＣポインタを３とし、図３２（ｂ）のアドレス３に出力Ｉ／Ｆ＝”上位層”，出力ＶＣ＝ＶＣ４，次ポインタ＝Ｘを追加すればよい。
【０１６３】
本例の特徴をまとめると、次のようになる。マルチキャスト通信における複数の宛先ノードへ向けてパケット転送を行うために、第１のノード（サブネットＡ）から受信したパケットを、前記第１のノードとは異なる論理ネットワークに属する第２のノード（サブネットＤ）へ転送する際に、前記第１のノードからの第１及び第２の仮想コネクション（ＶＣ０及びＶＣ１）にて、前記宛先ノードへ向かうパケットのうち少なくとも一部を重複して受信し、前記第１の仮想コネクション（ＶＣ０）にて受信されたパケットのうち前記重複するパケットを選択して廃棄し、前記第２の仮想コネクション（ＶＣ１）と前記第２のノードへパケットを送信可能な第３の仮想コネクション（ＶＣ３）との対応関係を記憶することにより、この対応関係に従って直結転送をしている場合には、前記第２の仮想コネクション（ＶＣ１）にて受信されたパケットを複製してネットワークレイヤレベルの転送処理を施し、この処理の施されたパケットを少なくとも前記第２のノードへ第３の仮想コネクション以外の仮想コネクション（ＶＣ２）を用いて送信する。一方、上記直結転送をしていない場合には、パケットの複製は行わない。
【０１６４】
（具体例３）
（参考実施形態２）の様にＣＳＲで同一のパケットを複数受信する場合に、ＣＳＲで入力パケットの重複をなくし、全ての受信者にパケットを転送する別の方法を述べる。
【０１６５】
ＣＳＲに入力される専用ＶＣが直結している場合は、入力側でパケットを廃棄し、専用ＶＣが直結していない場合は、その専用ＶＣに流れるフローと同じものをデフォルトＶＣから受信したならばそのパケットを廃棄する。
【０１６６】
専用ＶＣが直結している場合を、図３４で説明する。入力処理は上記具体例２と同様であり、出力処理は、図２５のフローチャートに従いベストマッチの検索で行われる。この場合のＩＰ経路表とパケット廃棄表と入力ＶＣ−フロー対応表を図３５に示す。入力ＶＣ−フロー対応表からＶＣ１は直結していることがわかるので、パケット廃棄表には何も書かれていない。これにより入力されたパケットは廃棄されることはない。入力されたパケットは、図２５のフローチャートにしたがってＶＣ２とＶＣ４に送出される。
【０１６７】
次に専用ＶＣが直結していない場合を図３６で説明する。この場合のＩＰ経路表とパケット廃棄表と入力ＶＣ−フロー対応表を図３７に示す。入力ＶＣ−フロー対応表からＶＣ１は直結していないことがわかるので、パケット廃棄表に（Ｓ，Ｇ，１）のパケットであって専用ＶＣであるＶＣ１から来たもの以外は廃棄するように記入する。これにより、（Ｓ，Ｇ，１）のパケットは、ＶＣ０から来た場合は廃棄され、ＶＣ１から来た場合に出力処理される。出力の処理は、上記の同様に図２５のフローチャートに従う。（Ｓ，Ｇ，２）のパケットは、ＶＣ２，ＶＣ４に出力され、（Ｓ，Ｇ，１）のパケットは、ＶＣ２，ＶＣ３，ＶＣ４に出力される。
【０１６８】
上記の入力ＶＣ−フロー対応表は、上流ノードがあるＶＣに流すフローを通知してきたときに、入力ＶＣ及びフローが記入され、直結を行ったときや直結をやめたときに、対応するエントリの直結フィールドが記入される。パケット廃棄表は、入力ＶＣ−フロー対応表の直結フィールドがｙｅｓからｎｏに、あるいはその逆に変更されたことが分かったときに、図２９の管理部が変更する。
【０１６９】
また、図２９の管理部は、後述する実施形態４のような直結管理表（入力ＶＣ−フロー対応表はその一部である）を用いて、直結転送するか否かを切り替える場合のＡＴＭ及びＩＰ経路表の変更をも行っている。なお、図３５及び３７には図示していないが、ＡＴＭ経路表も、直結していないときには、ＶＣ０から来たセルもＶＣ１から来たセルも上位層へ転送するように設定され、直結しているときには、ＶＣ０から来たセルは上位層へ、ＶＣ１から来たセルはＶＣ３へ転送するように設定が変更される。
【０１７０】
本例の特徴をまとめると、次のようになる。マルチキャスト通信における複数の宛先ノードへ向けてパケット転送を行うために、第１のノード（サブネットＡ）から受信したパケットを、前記第１のノードとは異なる論理ネットワークに属する第２のノード（サブネットＤ）へ転送する際に、前記第１のノードからの第１及び第２の仮想コネクション（ＶＣ０及びＶＣ１）にて、前記宛先ノードへ向かうパケットのうち少なくとも一部を重複して受信し、前記第２の仮想コネクション（ＶＣ１）と前記第２のノードへパケットを送信可能な第３の仮想コネクション（ＶＣ３）との対応関係を記憶することにより、この対応関係に従って直結転送をしている場合には、前記第１の仮想コネクション（ＶＣ０）にて受信されたパケットにネットワークレイヤレベルの転送処理を施し、この処理の施されたパケットを少なくとも前記第２のノードへ第３の仮想コネクション以外の仮想コネクション（ＶＣ２）を用いて送信する。一方、上記直結転送をしていない場合には、前記第１の仮想コネクション（ＶＣ０）にて受信されたパケットのうち前記重複するパケットを選択して廃棄する。
【０１７１】
なお、本実施形態においては、直結された仮想コネクションに流れるパケットは、マルチキャスト通信における複数の宛先ノード行きの全パケットであってもよいし、そのうちの特定のサービス品質を提供すべきフローに属するパケットであってもよい。後者の場合は、転送されなくなると判断され複製されるパケットもしくは重複するパケットは、複数の宛先ノード行きのうち特定のサービス品質を提供すべきフローに属するパケットとなり、複数の宛先ノード行きのうちのそれ以外のパケットは、直結されない仮想コネクションを用いて転送されることになる。
【０１７２】
後者の場合、直結可能な仮想コネクションに特定のサービス品質を提供すべきフローに属するパケットを送信し、直結されない仮想コネクションに複数の宛先ノード行きのパケットのうちのそれ以外を送信する方法（具体例１に対応）と、直結可能な仮想コネクションに特定のサービス品質を提供すべきフローに属するパケットを送信し、直結されない仮想コネクションに複数の宛先ノード行きの全パケットを送信する方法（具体例２及び３に対応）があるが、本発明ははいずれにも適用可能である。
【０１７３】
また、マルチキャスト通信の複数の宛先ノードのうち少なくとも一つによる要求に対応して直結可能な仮想コネクションを設定する場合、この要求を行った宛先ノードへのパケットが経由するノード間にのみ直結可能な仮想コネクションを設定する方法と、要求を行った宛先ノードへのパケットが経由するノードが一つでも存在する出力インタフェースには、その出力インタフェースの次段ノードの全てに直結可能な仮想コネクションを設定する方法があるが、本発明ははいずれにも適用可能である。
【０１７４】
【発明の効果】
本発明の第１の発明によれば、直結していない受信者を含むマルチキャストグループに参加している全てのノードで、受信すべき全てのパケットを受信することができる。また、第２の発明によれば、これに加えて、重複パケットを更に複数の仮想コネクションにて次段ノードへ送信してしまうことを防ぐことができる。
【図面の簡単な説明】
【図１】  ネットワーク構成図。
【図２】  参考実施形態１、具体例１のネットワーク構成図。
【図３】  送信ホストの構成図。
【図４】  参考実施形態１のルータの構成図。
【図５】  ネットワーク層処理部におけるパケットの出力処理手順の例を示すフローチャート。
【図６】  参考実施形態１、具体例１の送信ホストの経路表の一例を示す図。
【図７】  参考実施形態１、具体例１のルータの経路表の一例を示す図。
【図８】  参考実施形態１、具体例２のネットワーク構成図。
【図９】  参考実施形態１、具体例２の送信ホストの経路表の一例を示す図。
【図１０】  参考実施形態１、具体例２のルータの経路表の一例を示す図。
【図１１】  参考実施形態１、具体例３のネットワーク構成図。
【図１２】  参考実施形態１、具体例３の送信ホストの経路表の一例を示す図。
【図１３】  参考実施形態１、具体例３のルータの経路表の一例を示す図。
【図１４】  参考実施形態２のネットワーク構成図。
【図１５】  ネットワーク層処理部におけるパケットの出力処理手順の別の例を示すフローチャート。
【図１６】  参考実施形態２の送信ホストの経路表の一例を示す図。
【図１７】  参考実施形態２のルータの構成図。
【図１８】  参考実施形態２のルータの経路表の一例を示す図。
【図１９】  参考実施形態２のパケット廃棄表の一例を示す図。
【図２０】  参考実施形態２の受信ホストの構成図。
【図２１】  ＣＳＲの動作を説明する図。
【図２２】  実施形態１、具体例１のＣＳＲの構成図。
【図２３】  実施形態１、具体例１のＣＳＲ内のＶＣ設定図。
【図２４】  実施形態１のＡＴＭスイッチの動作を示すフローチャート。
【図２５】  実施形態１、具体例１及び３のＩＰ処理部の動作を示すフローチャート。
【図２６】  実施形態１、具体例１のＡＴＭ経路表の一例を示す図。
【図２７】  実施形態１、具体例１のＩＰ経路表の一例を示す図。
【図２８】  実施形態１、具体例１の入力ＶＣ−フロー対応表の一例を示す図。
【図２９】  実施形態１、具体例２及び３のＣＳＲの構成図。
【図３０】  実施形態１、具体例２のＣＳＲ内のＶＣ設定図。
【図３１】  実施形態１、具体例２のＡＴＭ経路表の一例を示す図。
【図３２】  実施形態１、具体例２のＩＰ経路表の一例を示す図。
【図３３】  実施形態１、具体例２のパケット廃棄表及び入力ＶＣ−フロー対応表の一例を示す図。
【図３４】  実施形態１、具体例３のＣＳＲ内のある状態のＶＣ設定図。
【図３５】  実施形態１、具体例３のＩＰ経路表、パケット廃棄表、及び入力ＶＣ−フロー対応表のある状態の例を示す図。
【図３６】  実施形態１、具体例３ののＣＳＲ内の別の状態のＶＣ設定図。
【図３７】  実施形態１、具体例３のＩＰ経路表、パケット廃棄表、及び入力ＶＣ−フロー対応表の別の状態の例を示す図。
【符号の説明】
１０、２０、３０…ネットワーク層処理部
１１、２２…出力処理部
１２、２３、３０６…経路表
１３、２４、３４…ネットワークＩ／Ｆ
２１、３１、３０７…入力処理部
２５、３５、３０８…パケット廃棄表
３１０…上位層処理部
３０１…ＩＰ処理部
３０２…ＡＡＬ処理部
３０３…ＡＴＭスイッチ
３０４…ＩＰ経路表
３０５…ＡＴＭ経路表
３０９…管理部
３１１…入力ＶＣ−フロー対応表
【図１】
0003696166.tif 000002
【図２】
0003696166.tif 000003
【図３】
0003696166.tif 000004
【図４】
0003696166.tif 000005
【図５】
0003696166.tif 000006
【図６】
0003696166.tif 000007
【図７】
0003696166.tif 000008
【図８】
0003696166.tif 000009
【図９】
0003696166.tif 000010
【図１０】
0003696166.tif 000011
【図１１】
0003696166.tif 000012
【図１２】
0003696166.tif 000013
【図１３】
0003696166.tif 000014
【図１４】
0003696166.tif 000015
【図１５】
0003696166.tif 000016
【図１６】
0003696166.tif 000017
【図１７】
0003696166.tif 000018
【図１８】
0003696166.tif 000019
【図１９】
0003696166.tif 000020
【図２０】
0003696166.tif 000021
【図２１】
0003696166.tif 000022
【図２２】
0003696166.tif 000023
【図２３】
0003696166.tif 000024
【図２４】
0003696166.tif 000025
【図２５】
0003696166.tif 000026
【図２６】
0003696166.tif 000027
【図２７】
0003696166.tif 000028
【図２８】
0003696166.tif 000029
【図２９】
0003696166.tif 000030
【図３０】
0003696166.tif 000031
【図３１】
0003696166.tif 000032
【図３２】
0003696166.tif 000033
【図３３】
0003696166.tif 000034
【図３４】
0003696166.tif 000035
【図３５】
0003696166.tif 000036
【図３６】
0003696166.tif 000037
【図３７】
0003696166.tif 000038