(57)【特許請求の範囲】
【請求項１】
受信したパケットを設定された帯域に制御して出力するシェーピング装置であって、
前記パケットが到達する宛先に対応して設けられた複数のFIFOを有するバッファ部と、
前記複数のFIFO毎に設定された帯域に基づいて計算した次パケット送信時刻を前記複数のFIFO毎に保持し、前記次パケット送信時刻に基づいて前記複数のFIFOからパケットを読み出すパケットリード部とを有し、
前記受信したパケットが複数の宛先に到達するマルチキャストパケットである場合、前記バッファ部は前記マルチキャストパケットが到達する複数の宛先に対応する複数のFIFOのうち所定の一つのFIFOに前記マルチキャストパケットを蓄積し、
前記パケットリード部は、前記マルチキャストパケットを前記所定のFIFOから読み出した場合、
前記所定のFIFOに蓄積され、かつ、前記マルチキャストパケットの次に読み出されるパケットの次パケット送信時刻を計算し、さらに、前記マルチキャストパケットが到達する複数の宛先に対応する複数のFIFOのうち前記マルチキャストパケットが蓄積された所定のFIFO以外のFIFOに蓄積され、かつ、次に読み出されるパケットの第一の次パケット送信時刻を第二の次パケット送信時刻に変更することを特徴とする。
【請求項２】
請求項１記載のシェーピング装置であって、
前記パケットリード部の変更は、前記第一の次パケット送信時刻と前記マルチキャストパケットのパケット長と前記所定のFIFO以外のFIFOに設定された帯域とに基づくことを特徴とする。
【請求項３】
請求項１または請求項２記載のシェーピング装置であって、
前記複数のFIFO毎に設定された帯域は、第一の帯域と第二の帯域を含み、
前記パケットリード部は、前記第一の帯域と第二の帯域のうち、帯域の小さい方に合わせて前記パケットの読み出しを行うことを特徴とする。
【請求項４】
請求項１乃至請求項３のいずれかに記載のシェーピング装置であって、
前記マルチキャストパケットが蓄積される所定のFIFOに設定される帯域は、前記所定FIFO以外のFIFOに設定される帯域より小さい帯域であることを特徴とする。
【請求項５】
ネットワークと接続され、該ネットワークから受信したパケットを他のネットワークへ転送するルータ装置であって、
前記パケットを受信する受信部と、
前記受信部で受信したパケットの出力回線および該パケットが到達する宛先を判定する経路判定部と、
前記経路判定部が判定した出力回線からパケットを送信する送信部とを備え、
前記送信部は少なくとも第一の宛先に対応する第一のFIFOと第二の宛先に対応する第二のFIFOとを備え、
前記送信部は、前記第一および第二の宛先毎に設定された帯域に基づいて計算した第一の宛先への第一の次パケット送信時刻と第二の宛先への第二の次パケット送信時刻とを保持し、前記第一および第二の次パケット送信時刻に基づいて前記第一および第二のFIFOからパケットを読み出し、
前記受信したパケットが第一の宛先および第二の宛先に到達するマルチキャストパケットである場合、前記バッファ部は第一のFIFOに前記マルチキャストパケットを蓄積し、
前記送信部は、前記マルチキャストパケットを前記第一の次パケット送信時刻に基づいて前記第一のFIFOから読み出すと、
前記第一のFIFOに蓄積され、かつ、前記マルチキャストパケットの次に読み出される第一のパケットの次パケット送信時刻を計算し、さらに、前記第二のFIFOに蓄積され、かつ、次に読み出される第二のパケットの前記第二の次パケット送信時刻を第三の次パケット送信時刻に変更することを特徴とする。
【請求項６】
請求項５記載のルータ装置であって、
前記送信部の変更は、前記第二の次パケット送信時刻と前記マルチキャストパケットのパケット長と前記第二の宛先に設定された帯域とに基づくことを特徴とする。
【請求項７】
請求項５または請求項６記載のルータ装置であって、
前記複数の宛先毎に設定された帯域は、第一の帯域と第二の帯域を含み、
前記パケットリード部は、前記第一の帯域と第二の帯域のうち、帯域の小さい方に合わせて前記パケットの送信を行うことを特徴とする。
【請求項８】
請求項５乃至請求項７のいずれかに記載のルータ装置であって、
前記マルチキャストパケットが蓄積される第一のFIFOに対応する前記第一の宛先に設定される帯域は、前記第二のFIFOに対応する前記第二の宛先に設定される帯域より小さい帯域であることを特徴とする。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを流れるパケットの帯域を制御するシェーピング装置およびルータ装置に関する。
【背景技術】
【０００２】
IPネットワークで用いられるパケット型通信方式では、多数のユーザが同じ回線を共用使用できるため、帯域あたりのコストを低く抑えることができる。このパケット型通信方式の低コスト性のため、従来、専用のネットワークで実現していた各企業の電話網や業務用ネットワークをIPネットワークで実現する動きがある。このため、専用ネットワークで実現されてきた音声データやミッションクリティカルデータに対する通信品質の確保を実現することが、IPネットワークに求められている。
【０００３】
この通信品質を確保するためには、IPネットワークを構成するパケット中継装置が、音声データやミッションクリティカルデータの通信品質を確保するための通信品質制御機能を備えることが必要となる。通信品質制御機能としては、例えば、シェーピング機能が知られている。シェーピング機能を実行するシェーピング装置に関しては、特許文献1に記載されている。本文献記載のシェーピング装置は、固定長のパケットであるセルをコネクション（VC（Virtual Connection））毎に蓄積するキューを備え、VC毎に予め設定した帯域で該キューからパケットを送信してVC毎の帯域を確保する。IPネットワークの管理者は、例えば、トラヒックが集中する回線に本技術を適用したシェーピング装置を配置し、音声データやミッションクリティカルデータにVCを割り当てることで、本データ用の通信品質を確保する。
【０００４】
他のシェーピング装置としてはWFQ（Weighted Fair Queueing）が知られている。非特許文献1には、SCFQ（Self Clocked Fair Queueing）と呼ばれるアルゴリズムに基づいたWFQのシェーピング装置が記載されている。本文献のシェーピング装置は、複数のセッションk（=1〜N）を管理し、前記セッションk毎に重みWkを備える。i番目のパケットp_k_iがシェーピング装置に到着すると、この到着パケットp_k_iをキューに蓄積すると同時に、パケットp_k_i毎の変数F_k_iを下式に基づいて計算する。
【０００５】
F_k_i = L_k_i /Wk ＋ max（F_k_（i−1)， V（ta_k_i)）
【０００６】
ここで、L_k_iはパケットp_k_iのパケット長、ta_k_iはパケットp_k_iの到着時刻、V（t）は時刻ｔにおいて出力されるパケットのF_k_iの値を返す関数である。パケット出力時に、最小のF_k_iを持つパケットp_k_iを出力することで、各セッションの重みWkに比例したパケット出力を実現する。IPネットワークの管理者は、例えば、音声データやミッションクリティカルデータに一つのセッションkを割り当ててWk /（Wkの総和）×回線帯域分の帯域を確保することで、本データ用の通信品質を確保する。
【０００７】
一方、IPネットワーク上で複数受信者を対象としたコンテンツ配信を実現するために、IPマルチキャスト通信の利用が進んでいる。IPマルチキャスト通信は、複数のクライアントに同一データを配信することに適した通信方式である。1対1通信のユニキャスト通信を用いると、サーバはクライアントの数だけデータ送信しなければならない。対して、マルチキャスト通信では、送信されたパケットが途中のノードでコピーされるため、サーバから該ノードまで一つのパケットを送信するだけで良い。このため、該サーバとノード間のネットワーク資源の有効活用が可能となる。
【０００８】
IPマルチキャストにおいては、データ（パケット)受信を希望するクライアントは上流のルータに対し、データを受信するクライアントのグループへの加入を要求する加入メッセージを送信する。加入メッセージの仕様については、例えば、非特許文献２記載のIGMPv3（Internet Group Management Protocol， Version3)や非特許文献３のMLDv2（Multicast Listener Discovery Version 2)などがある。加入メッセージには加入するグループを格納するマルチキャストIPアドレスが記載される。ルータは加入メッセージを受信すると、クライアントに到るネットワークと、メッセージ内のマルチキャストIPアドレスを対応付けて記憶する。マルチキャストパケットが入力すると、ルータはパケットヘッダの宛先IPアドレスフィールドに記載されるマルチキャストIPアドレスを抽出し、該アドレスと対応するネットワークにデータ（パケット)をコピーして転送する。
【０００９】
一方、データ受信を停止する際には、クライアントは離脱メッセージをルータに送信する。IGMPv3およびMLDv2の離脱メッセージに関しては前述の非特許文献2や非特許文献3に記載されている。離脱メッセージには離脱するグループを格納するマルチキャストIPアドレスが記載される。ルータは、メッセージ内のマルチキャストIPアドレスとクライアントに到るネットワークの対応付けを解除することで、データ（パケット)のコピーを停止する。
【００１０】
ルータにより各ネットワークにコピーされたパケットはスイッチによりクライアントにまで転送される。パケットを受信したスイッチは、そのブロードキャスト機能によりマルチキャストパケットを前記ネットワークに属する回線全てに送信する。該パケットを受信するグループに加入しているクライアントは本パケットを受信し、未加入のクライアントは廃棄する。
【００１１】
ブロードキャスト機能を利用したマルチキャスト配信においては、受信の必要無いクライアントにパケットが転送され、ネットワークの帯域を無駄に消費する問題がある。本課題を解決する方法として、非特許文献４記載のIGMPスヌーピングがある。非特許文献４では、スイッチが、あるグループへのIGMP加入メッセージを受信すると、メッセージを受信したクライアント行きの回線を該グループのアドレスリストに追加すると記載されている。スイッチは該グループ宛てのパケットを受信すると、リストに記載された回線にのみパケットを転送することとなる。スイッチのこの選択的パケット出力によりクライアントが存在しない回線へのパケットコピーが防止される。
【００１２】
【特許文献１】特開平６−３１５０３４号公報
【非特許文献１】S.Golestani， “A Self-Clocked Fair Queueing Scheme for Broadband Applications”， In proc. of INFOCOM’94， pp.636-646，1994.
【非特許文献２】IETF RFC3376， Internet Group Management Protocol， Version 3.
【非特許文献３】IETF RFC3810， Multicast Listener Discovery Version 2 （MLDv2) for IPv6.
【非特許文献４】http://www.cisco.com/warp/public/473/22.html， “Multicast in a Campus Network: CGMP and IGMP Snooping”
【発明の開示】
【発明が解決しようとする課題】
【００１３】
特許文献１、非特許文献１記載のシェーピング装置がパケットを送信し、本パケットを受信する下流ノードがマルチキャストコピーを実施し、複数の宛先まで該パケットが転送される場合を考える。この際、該シェーピング装置には、複数の宛先に到着するパケットの総帯域を制御できないといった課題がある。以下、本課題を図３のネットワークを用いて具体的に説明する。
【００１４】
図３のネットワークはキャリアの提供するキャリア網901により、ある企業の本社サイト902と支社サイトA903と支社サイトB904が接続されたネットワークである。キャリア網901と支社サイトA903間の帯域として10Mbpsが、キャリア網901と支社サイトB904間の帯域として5Mbpsが保証されている。本社サイト902の端末911および端末912は、それぞれ支社サイトA903の端末921および支社サイトB904の端末931にユニキャストパケットを送信し（破線に相当）、本社サイト902のサーバ910は支社サイトAの端末922と支社サイトB904の端末932の両方に到るマルチキャストパケットを送信する（実線に相当）。このマルチキャストパケットはキャリア網901のスイッチ900でコピーされて最終的に端末922と端末932に到達する。
【００１５】
この際、本社サイトに位置するルータ200のシェーピング装置は、スイッチ900でのマルチキャストパケットのコピーを考慮していないため、キャリア網901から支社サイトA903への帯域と、キャリア網901から支社サイトB904へのパケット帯域を契約帯域であるそれぞれ10Mbps、5Mbps以下に制御して送信できない。このため、契約帯域を超過したパケットが発生し、キャリア網901にて廃棄される可能性がある。
【００１６】
また、非特許文献２乃至４においても本課題を解決する手段に関しては記載が無い。
【課題を解決するための手段】
【００１７】
前述した課題を解決するため、本発明のシェーピング装置は、受信したパケットを設定された帯域に制御して出力するシェーピング装置であって、受信したパケットを蓄積するバッファ部と、前記バッファ部に蓄積されたパケットを読み出すパケットリード部とを有し、前記パケットリード部は、前記出力される一つのパケットが到達する複数の宛先毎に設定された帯域に制御して前記パケットを読み出すことを特徴とする。
【００１８】
上記以外の本願が解決しようとする課題、その解決手段は、本願の「発明を実施するための最良の形態」の欄および図面で明らかにされる。
【発明の効果】
【００１９】
本発明のシェーピング装置によれば、該シェーピング装置の下流ノードがパケットのコピーを実施して複数回線に転送している際に、複数の宛先に到着するパケットの総帯域を制御することができる。
【発明を実施するための最良の形態】
【００２０】
以下、図１から図２２を用いて本発明に好適な実施例を説明する。ただし、本発明はこの実施例に限定されるものではない。
【００２１】
（１）本発明の想定するネットワーク
本発明の想定するネットワークについて図３を用いて説明する。図３のネットワークはキャリアの提供するキャリア網901により、ある企業の本社サイト902と支社サイトA903と支社サイトB904が接続されたネットワークである。キャリア網901と支社サイトA903間の帯域として10Mbpsが、キャリア網901と支社サイトB904間の帯域として5Mbpsが保証されている。
【００２２】
本社サイト902の端末911および端末912は、それぞれ支社サイトA903の端末921および支社サイトB904の端末931にユニキャストパケットを送信し（破線に相当)、本社サイト902のサーバ910は支社サイトA903の端末922と支社サイトB904の端末932に向けてマルチキャストパケットを送信している（実線に相当)。本発明のルータ200は端末911、912、サーバ910からのユニキャストおよびマルチキャストパケットを受信するとキャリア網901にこれらのパケットを転送する。一方、スイッチ900はユニキャストパケットを受信すると対応する端末に到る出力回線に送信し、また、マルチキャストパケットを受信すると、端末921および端末931に到る出力回線である回線1および回線2に本パケットをコピーして送信する。
【００２３】
ルータ200は本発明固有のシェーピング機能を備え、キャリア網901から支社サイトA903へのパケット（端末911から端末921へのパケットとサーバ910から端末922へのパケット)の帯域を契約帯域である10Mbps以下となるように制御し、キャリア網901内のバケット廃棄を防止している。同様に本シェーピング機能は、キャリア網901から支社サイトB904へのパケット（端末912から端末93１へのパケットとサーバ910から端末932へのパケット)の帯域を契約帯域である5Mbps以下となるように制御している。
【００２４】
（2)マルチキャストパケットの通信手順
マルチキャストパケットの通信は、以下の2フェーズから構成される。以下ではそれぞれの詳細を説明する。
【００２５】
（フェーズ１) 端末より特定グループのマルチキャストパケットの受信を要求するフェーズ
（フェーズ２) サーバからマルチキャストパケットを配信するフェーズ
【００２６】
（2-1)フェーズ１
端末922および端末932は、サーバ910が送信する特定グループのマルチキャストパケットを受信するため、グループ情報を記載したマルチキャストIPアドレスを加入メッセージに格納し、ルータ200に向けて送信する。図４にIPv4のマルチキャストIPアドレスのフォーマットを示す。本アドレスの下位28ビットにグループに相当する情報が記載され、上位4ビットは常に’1110’となる。
【００２７】
ルータ200への途中にあるスイッチ900は、ルータ200へメッセージを転送するとともに、非特許文献４記載のスヌーピングを実施する。このスヌーピングについて図４と図５を用いて説明する。図４にはIPv4の場合のマルチキャストIPアドレスとMACアドレスの関係が示されている。MACアドレスの下位23ビットはIPv4のマルチキャストIPアドレスの下位23ビットと同一であり、上位25ビットは図４に記載された固定値となる。一方、図５はパケット転送用のデータベースであるFDB（Filtering Database）のフォーマットの一例を示している。FDB1000にはMACアドレス1001と対応する回線番号情報1002からなるエントリ1010が複数格納されている。回線番号情報1002はスイッチを構成する出力回線-k （k=1〜M）へのパケットの出力の有無を示すビット（‘１’が出力を表す)から構成される。スヌーピングでは、まず、メッセージ内のマルチキャストIPアドレスから作成されるMACアドレスを記載したエントリ1010の存在有無を判定する。この判定は、スイッチ900がMACアドレス1001と作成した宛先MACアドレスとの一致比較を行うことで実現される。
【００２８】
一致するエントリ1010が無い場合、該宛先MACアドレスをFDB1000内のMACアドレス1001としたエントリ1010を登録する。この際、加入メッセージが入力した回線に対応する回線番号情報1002のビットを’1’と、それ以外のビットを’0’とする。端末921および端末931からパケットを受信した場合、それぞれ回線1および回線2に対応する回線番号のビットを’1’とする。一致するエントリ1010が有る場合、該エントリ1010の回線番号情報1002のビットうち、加入メッセージが入力した回線に対応するビットを’1’とする。
【００２９】
本発明のルータ200が加入メッセージを受信すると、マルチキャストルーティングテーブルの設定を実施する。図６にマルチキャストルーティングテーブルの一例を示す。本マルチキャストルーティングテーブル700は、送信元IPアドレス（Source IP address)の条件であるSIP701と宛先IPアドレス（Destination IP address)の条件であるDIP702と、これらのSIP701とDIP702に対応する出力回線情報703および出力サイト情報704から構成されるエントリ710-jを複数格納する。出力回線情報703は、ルータ200を構成する各出力回線i（i=1〜Ｎ）へのパケット出力有無を示すビット（‘１’が出力を表す)から構成される。また、出力サイト情報704は各出力回線に出力されたマルチキャストパケットの各サイトへの到着有無を示すビット（‘１’が出力を表す)から構成される。本実施例の出力サイト情報704は出力サイト1、2の各ビットから構成され、図３のケースでは出力回線3の出力サイト1、2はそれぞれ支社サイトAおよび支社サイトBに対応している。
【００３０】
本マルチキャストルーティングテーブルの設定では、ルータ200は、まず、メッセージ内のマルチキャストIPアドレス （図４参照)およびサーバ910のアドレスと、DIP702およびSIP701が一致するエントリ710を検索する。以下では、一致するエントリ710の存在有無に応じた処理を説明する。
【００３１】
（ａ）一致するエントリ710が存在する場合
一致するエントリ710が存在する場合には、該エントリ710の出力回線情報703のビットのうち、メッセージが入力した回線に対応するビットを’1’とする。本設定により、ルータ200がサーバ910からのマルチキャストパケットを出力回線3に転送することが可能となる。さらに、メッセージ内の情報に基づき、該メッセージを送信した端末が属する支社サイトを判定し、対応する出力回線の出力サイト情報のビットを’1’とする。例えば、支社サイトAとBの使用するIPアドレスを予め決めておけば、メッセージ内の送信元IPアドレスにより送信した支社サイトを判定できる。また、各支社サイトが使用するDSCPフィールドの値を予め決めておき、この値に基づいて判定しても良い。本設定により、ルータ200がサーバ910からのマルチキャストパケットを出力回線3に転送した後、最終的にどのサイト宛にコピーされ転送されるかを把握することができる。
【００３２】
（ｂ）一致するエントリ710が存在しない場合
一致するエントリ710が存在しない場合には、メッセージ内のマルチキャストIPアドレスとサーバ910のIPアドレスをエントリ710のDIP702、SIP701に備えるエントリ710を新たに作成する。また、メッセージが入力した回線に対応する出力回線情報708のビットを’1’と、それ以外のビットを’0’とする。さらに、メッセージ内の情報に基づき、該メッセージを送信した支社サイトを判定し、対応する出力回線の出力サイト情報704のビットを’1’とする。
【００３３】
ルータ200はこれらの処理を実施することにより、サーバ910からのパケットを転送するためのマルチキャストルーティングテーブル700を設定することができる。
【００３４】
図７に示す様に支社サイトA903と支社サイトB904の出入口にルータ923とルータ933が設置され、キャリア網901と支社サイトＡ903や支社サイトＢ904が別のネットワークとなっている場合について説明する。図7に示すネットワークでは、ルータ923とルータ933が端末からの加入/離脱メッセージを受信し、各ルータが加入メッセージ内のマルチキャストＩＰアドレスを記載した他のメッセージをルータ200に向けて送信することとなる。この際、スイッチ900およびルータ200は、他のメッセージ内のマルチキャストＩＰアドレスを用いてそれぞれFDB1000およびマルチキャストルーティングテーブル700を設定/設定解除すれば良い。他のメッセージとしてはPIM-SSM（Protocol-Independent Multicast - Source Specific Multicast)のPIM-Joinメッセージなどが知られている。以下の実施例では、端末が送信した加入メッセージに限定して説明するが、ルータが送信する他のメッセージを用いても同様に処理することが可能である。
【００３５】
（2-2)フェーズ2
本フェーズでは、サーバ910は端末921および端末931に向けてマルチキャストパケットを送信する。この際、該パケットの宛先IPアドレスと送信元IPアドレスは、端末が加入したグループに対応するマルチキャストIPアドレスとサーバ910のＩＰアドレスとなる。また、宛先MACアドレスは宛先IPアドレスから作成したMACアドレスとなる。
【００３６】
ルータ200は該パケットを受信すると、パケット内の送信元IPアドレスおよび宛先IPアドレスとマルチキャストルーティングテーブル700のSIP701、DIP702を一致比較し、一致したエントリ710に対応する出力回線情報703に従ってパケットを転送する。図３のネットワークでは、キャリア網901にのみマルチキャストパケットを送信する。この際、一致したエントリ710内の出力サイト情報704よりマルチキャストパケットが最終的に転送されるサイトが支社サイトAおよび支社サイトBであることを認識し、キャリア網901から支社サイトA903へのユニキャストパケットとマルチキャストパケットの総帯域およびキャリア網901から支社サイトB904へのユニキャストパケットとマルチキャストパケットの総帯域をそれぞれ10Mbps、5Mbps以下となるよう制御して送信する。
【００３７】
スイッチ900は該パケットを受信すると、該パケット内の宛先MACアドレスとFDB1000のMACアドレス1001を比較して、一致するエントリ1010内の回線番号情報1002に従い転送する。
【００３８】
（３）ルータの概要動作
以下では、本実施例のシェーピング機能を備えるルータの概要動作を説明する。なお、本実施例の本発明のルータ200において、下流のノードでマルチキャストコピーされるパケット（図３の実線に相当)を「仮想マルチキャストパケット」と、それ以外のパケット（図３の破線に相当)を「通常パケット」と呼ぶことにする。
【００３９】
図２のルータ200はパケットが入力するNの入力回線201-i（i=1-N)とNの出力回線202-i（i=1-N)と、Nのインターフェース部210-i（i=1-N)と、インターフェース部210-iを結合するスイッチ部250と、ヘッダ処理部220と、プロセッサ260から構成される。インターフェース部210-iは、入力回線201-iより受信するパケットの受信処理を行うパケット受信部230-iと、出力回線202-iヘ送信するパケットの送信処理を行うパケット送信部240-iより構成される。ヘッダ処理部220は、入力回線201より入力したパケットのヘッダ情報等に基づいて一つ乃至は複数の出力回線202-jの番号である’j’を判定する経路判定部221から構成される。
【００４０】
図８は入力回線201-iより入力するパケットのフォーマットの一例を示す。本フォーマットはヘッダ部310とデータ部320から構成される。ヘッダ部310はデータリンク層の送信元アドレスである送信元MACアドレス316（Source MAC Address：以下「SMAC」という。）、宛先アドレスである宛先MACアドレス317（Destination MAC Address：以下「DMAC」という。）と、ネットワーク層の送信元アドレス（送信端末のアドレス）である送信元IPアドレス311（Source IP Address：以下「SIP」という。）と、宛先アドレス（受信端末のアドレス）である宛先IPアドレス（Destination IP Address：以下「DIP」と呼ぶ。）312と、プロトコル（＝上位アプリケーション）を表す送信元ポート（Source Port：以下「SPORT」と呼ぶ。）313と宛先ポート（Destination Port：以下「DPORT」と呼ぶ。）314とネットワーク内の転送優先度を表すDSCP315から構成される。また、データ部320はユーザデータ321から構成される。
【００４１】
図９はルータ200内部のパケットフォーマットの一例を示す。本フォーマットは図８のフォーマットに内部ヘッダ部330が備わる。この内部ヘッダ部330は入力パケットのパケット長を表すパケット長331と、該パケットが入力した回線の番号である入力回線番号332と、該パケットの出力回線の情報を格納する出力回線情報333と、該パケットが到るサイトの情報を格納するサイト番号情報334とから構成される。出力回線情報333は各出力回線に対応したビットを備え、各出力回線へパケットを出力する際には’1’が、出力しない場合には’0’が記載される。また、サイト番号情報334は各出力回線のサイトに対応したビットを備え、各出力回線に出力するパケットが各サイトに到達する場合には’1’が、到達しない場合には’0’が記載される。
【００４２】
以下では、パケットが入力回線201より入力し、出力回線202に出力されるまでの流れを説明する。パケットが入力回線201より入力すると図１０のパケット受信部230の内部ヘッダ付加回路510は内部ヘッダ部330を付加し、該パケットのバイト長をカウントしてパケット長331に、該パケットが入力した入力回線201の番号を入力回線番号332に書き込んで、該パケットをパケット一時蓄積バッファ520に蓄積する。
【００４３】
さらに、パケットヘッダ送信部550は、該パケットのヘッダ部310と内部ヘッダ部330の情報を、パケットヘッダ情報21-i（i=１〜N)としてヘッダ処理部220の経路判定部221に送信する。なお、この際、出力回線情報333、サイト番号情報334の値は意味のない値となっている。図２には、図が煩雑となるため、インターフェース部210-1のみがパケットヘッダ情報21-１を送信する様に記載されているが、全てのインターフェース部210-i（i=１〜N）がパケットヘッダ情報21-iを送信する。
【００４４】
経路判定部221は、受信パケットのDIP312がユニキャストパケットを示す場合には受信したパケットヘッダ情報21-iのDIP312の情報から一つの出力回線の番号（出力回線番号と呼ぶ)と出力回線の下流に存在するサイトの識別子であるサイト番号を判定する。受信パケットのDIP312がマルチキャストパケットを示す場合にはSIP311とDIP312の情報から一つ乃至複数の出力回線番号と、出力回線の下流に存在するサイトのサイト番号を判定する。例えばIPv4のマルチキャストパケットの場合、DIP312は図４に示すフォーマットとなる。IPv4アドレスの32ビットの先頭4ビットは固定の”1110”であり、これらのビットを参照してマルチキャストパケットを判定すれば良い。IPv4アドレスの続く28ビットにはマルチキャストのグループが記載される。経路判定部221は、マルチキャストパケット入力時、該パケットのSIP311、DIP312とマルチキャストルーティングテーブル700（図６)のエントリ710格納のSIP701、DIP702を一致比較し、一致したエントリ710内の出力回線情報703と出力サイト情報704を、パケット出力回線情報22-iおよびパケット出力サイト情報23-iとして受信したパケットヘッダ情報21-iに対応するパケット受信部230-iに送信する。なお、図２には、図が煩雑となるため、パケット出力回線情報22-1およびパケット出力サイト情報23-１のみが記載されているが、それぞれのインターフェース部210-i（i=１〜N）に向けたパケット出力回線情報22-iおよびパケット出力サイト情報23-iが存在する。
【００４５】
パケット受信部230のヘッダ書き込み回路560は、パケット出力回線情報22およびパケット出力サイト情報23を出力回線情報333とサイト番号情報334に設定する。さらに、パケット読み出し回路530は本パケットをパケット一時蓄積バッファ520から読み出してスイッチ部250に送信する。
【００４６】
パケットを受信したスイッチ部250は、出力回線情報333の各ビットに対応するインターフェース部210のパケット送信部240にパケットを送信する。出力回線情報333の複数ビットが’1’となっている際には、パケットをコピーして対応するパケット送信部240に送信する。
【００４７】
図１１にパケット送信部240の詳細を示す。このパケット送信部240はシェーピング部100、内部ヘッダ削除回路610およびパケット送信回路620より構成される。シェーピング部100は、サイト番号情報334よりマルチキャストパケットが最終的に転送されるサイトが支社サイトA903および支社サイトB904であることを認識し、キャリア網901から支社サイトA903へ到るパケットの帯域と、キャリア網901から支社サイトB904へ到るパケットの帯域がそれぞれ10Mbps、5Mbpｓ以下となるよう制御して内部ヘッダ削除回路610へ送信する。
【００４８】
これらのパケットを受信した内部ヘッダ削除回路610は内部ヘッダ部330を削除し、パケット送信回路620に送信し、パケット送信回路620は受信したパケットを出力回線202に送信する。
【００４９】
（４）シェーピング部100の詳細動作
以下に本発明固有のシェーピング部100の動作を図１を用いて説明する。図１のシェーピング部100はパケットを蓄積するサイト1用のFIFO1およびサイト2用のFIFO2を備えるパケットバッファ110と、バッファ110に書き込むパケットを一時蓄積するパケット一時蓄積バッファ120と、バッファ110にパケットを書き込むパケットライト部130と、バッファ110よりパケットを読み出すパケットリード部150と、FIFO1およびFIFO2から読み出したパケットを多重して内部ヘッダ削除回路610に送信する多重回路140から構成される。本実施例ではFIFO１およびFIFO2は図３の支社サイトA903と支社サイトB904に対応する場合を説明する。
【００５０】
本実施例では、各出力回線のパケットが下流でコピーされ到着するサイトの数が最大で2の場合を記載しているが、サイトの数が3以上の場合には、シェーピング部100はより多くのFIFOを備え、経路判定部221が出力回線202毎に3以上のサイトを判定すれば良い。
【００５１】
シェーピング部100の処理はスイッチ部250からパケットを受信し、該パケットをバッファ110に書き込む際のパケットライト処理と、該パケットをバッファ110より読み出して、内部ヘッダ削除回路610に送信する際のパケットリード処理から構成される。以下では、これらの処理の詳細を説明する。
【００５２】
（４−１）パケットライト処理
本処理は、主にパケットライト部130により行われる処理である。スイッチ部250よりパケットを受信すると、パケット一時蓄積バッファ120は該パケットを蓄積し、内部ヘッダ部330の該パケットの出力回線に対応するサイト番号情報334をパケットライト部130に送信する。パケットライト部130の詳細を図１２に示す。パケットライト部130は、FIFO1およびFIFO2に蓄積されているパケットの数をカウントするパケット数カウンタ1と2と、それぞれの閾値を格納するパケット数閾値蓄積部1と2と、制御部1000より構成される。以下、受信したパケットが仮想マルチキャストパケットである場合とない場合とに分けて説明する。
【００５３】
（ａ）受信パケットが仮想マルチキャストパケットではない場合
パケット一時蓄積バッファ120よりサイト番号情報334を通知されると、制御部1000は、サイト番号情報334に対応するパケット数カウンタ内のカウンタ値とパケット数閾値蓄積部の閾値を読み出す。カウンタ値 ≦ 閾値である場合には、パケット一時蓄積バッファ120内のパケットを、サイト番号情報334に対応するFIFOに書き込み、対応するパケット数カウンタを’1’増加させる。一方、カウンタ値 ＞ 閾値である場合には、パケット一時蓄積バッファ120内のパケットをFIFOに書き込まない。この際、バッファ120内のパケットは最終的には後続のパケットに上書きされて廃棄される。
【００５４】
（ｂ）受信パケットが仮想マルチキャストパケットの場合
パケット一時蓄積バッファ120よりサイト番号情報334を通知されると、制御部1000は、サイト番号情報334のビットが’1’であるサイトの最大帯域情報の送信依頼をパケットリード部150に対して送信する。パケットリード部150には、サイト1（支社サイトA)への最大帯域とサイト2（支社サイトB)への最大帯域：10Mbps、5Mbpsが設定されており、依頼のあったサイトに対応する値（10Mbps、5Mbps)を、パケットライト部130に送信する。制御部1000はパケットリード部150からの各サイトの最大帯域を受信すると、最大帯域が小さなサイト（図３における支社サイトB904）を第一のサイトと判定し、このサイトに対応するパケット数カウンタ内のカウンタ値とパケット数閾値蓄積部の閾値を読み出す。最大帯域が同一の場合にはサイト1を第一のサイトと判定する。
【００５５】
読み出したカウンタ値と閾値が、カウンタ値 ≦ 閾値の関係がある場合には、第一のサイトに対応する第一のFIFOにパケット一時蓄積バッファ120内のパケットを書き込み、第一のサイトのパケット数カウンタを’1’増加させる。一方、カウンタ値 ＞ 閾値である場合には、パケット一時蓄積バッファ120内のパケットをFIFOに書き込まない。この際、バッファ120内のパケットは最終的には後続のパケットに上書きされて廃棄される。
【００５６】
本実施例にて最大帯域が小さな第一のサイトにパケットを書き込む理由は、最大帯域が大きなサイトのFIFOに仮想マルチキャストパケットが蓄積されると、このFIFOの最大帯域分の仮想マルチキャストパケットが送信される場合があるためである。この場合、この仮想マルチキャストパケットがスイッチ900でコピーされ、最大帯域の小さな支社サイトへの帯域が最大帯域を超過してしまう。
【００５７】
（４−２）パケットリード処理
本処理は、主に図１３に示すパケットリード部150により行われる処理である。パケットリード部150は制御部1110と、サイト毎に次パケットの送信時刻（次パケット送信時刻)を格納する図１４に示すパケット送信管理テーブル1120と、サイト毎の最大帯域を格納する図１５に示す帯域情報蓄積部1140と、現時刻を格納するタイマー1160より構成される。
【００５８】
パケットリード処理を図１６のフローチャートを使用して説明する。本処理は、図１１のパケット送信回路620が送信する送信可能信号13をパケットリード部150が受信することで開始される。送信可能信号13は、パケット送信回路620に対応する出力回線202にパケットを送信できることを示す情報である。制御部1110は本信号を受信すると、パケットライト部130に対して、パケット数カウンタ1および2に格納されている値の送信を要求する（ステップ1401)。本要求を受信したパケットライト部130の制御部1000はパケット数カウンタ1および2の値をパケットリード部150に送信する（ステップ1402)。
【００５９】
パケットリード部150の制御部1110は正の整数を格納するカウンタの存在有無をチェックして、パケットが蓄積されているサイトを判定する（ステップ1403)。結果が「有り」の場合、「有り」と判定したサイトに対応するパケット送信管理テーブル1120のエントリ1121を読み出し、次パケット送信時刻が最も早い（次パケット送信時刻が最も小さい)サイトを「送信サイト」と判定する（ステップ1404)。例えば、次パケット送信時刻が図１４の場合、サイト1、2ともに「有り」であれば、次パケット送信時刻が早いサイト2を「送信サイト」と判定する。また、サイト1またはサイト2の一方の結果が「有り」の場合、「有り」と判定したサイトを「送信サイト」と判定する。両サイトの結果が「無し」の場合には、前述のパケットライト処理により何れかのカウンタ値が’0’から正の整数に変化するまで待機する。この待機はシェーピング部100がステップ1401、1402、1403を再度実行することで実現される。
【００６０】
次にタイマー1160が示す現時刻と送信サイトの次パケット送信時刻を比較し（ステップ1405)、次パケット送信時刻 ≦ 現時刻（即ち、次パケット送信時刻が現時刻または過去の時刻)である場合には、制御部1110は、判定した送信サイトをパケット送信FIFO情報11としてパケットバッファ110に通知する（ステップ1406)。パケット送信FIFO情報11に対応するFIFOは、先頭のパケット（即ち、蓄積パケットのうち、最も過去に到着したパケット）を読み出して多重回路140に送信し、多重回路140はパケットを内部ヘッダ削除回路610に送信すると同時に、内部ヘッダ部330のパケット長331とサイト番号情報334を送信パケット長情報12としてパケットリード部150に送信する（ステップ1407)。
【００６１】
このようにパケットリード部150は、次パケット送信時刻に基づいてパケットバッファ110のFIFOからパケットを読み出すタイミングを調整することによって、設定された帯域に制御している。
【００６２】
一方、次パケット送信時刻 ＞ 現時刻（即ち、次パケット送信時刻が未来の時刻)の場合、次パケット送信時刻となるまで待機する必要がある。この待ち時間の間にパケットライト処理により、FIFOにパケットが蓄積されパケット数カウンタ1または2の値が0から正の整数に変化する場合があるが、この際、次パケット送信時刻が最も早い「送信サイト」が変化する可能性がある。例えば、パケット数カウンタ1と2の値が、それぞれ3と0であってパケット送信管理テーブル1120の格納値がそれぞれ図１４に記載された値である場合を考える。タイマー1160の値が2であり、サイト1のパケット出力を待機している時に、サイト2のパケットが入力すると、次パケット送信時刻がより早いサイト2が送信サイトとなる。この様なケースに対応するため、次パケット送信時刻 ＜ 現時刻 である場合には、再度ステップ1401から1405を実施する。ステップ1401から1405のループの間に、次パケット送信時刻を過ぎ、ステップ1406、1407が終了する。
【００６３】
次に制御部1110は帯域情報蓄積部1140よりサイト番号情報334のビットが’1’のサイトに対するエントリ1341を読み出す（ステップ1408)。送信するパケットが仮想マルチキャストパケットの場合には、エントリ1341-1およびエントリ1341-2が読み出されることとなる。したがって、仮想マルチキャストパケットの場合は、実際にパケットが蓄積されているFIFOに対応するサイトの帯域情報だけではなく、該仮想マルチキャストパケットが到達する全てのサイトの帯域情報が読み出されることとなる。次に、読み出したサイトj（j = 1， 2)の最大帯域jと多重回路140より受信した送信パケット長情報12内のパケット長（Byte)から決まる各サイト毎の次パケット送信時刻をそれぞれ計算する（ステップ1409)。サイトjの新しい次パケット送信時刻jである次パケット送信時刻ｊ（新規)は、現在の次パケット送信時刻jである次パケット送信時刻ｊ（現在)を用いた以下の式１で表される。
【００６４】
次パケット送信時刻j（新規) ＝ max（現時刻， 次パケット送信時刻j（現在)) ＋ パケット長（Byte)×8／最大帯域j（bit/秒)・・・式1
【００６５】
ここでmaxの項に現時刻と次パケット送信時刻j（現在)が記載されている理由について説明する。パケットが仮想マルチキャストパケットであって、現時刻にパケットを送信しない第二のFIFO（対応するサイトを第二のサイト（図３における支社サイトA903）とする)の次パケット送信時刻j（新規)について考える。制御部1110は、送信パケットが通常パケットであれば現時刻にパケットを送信しない第二のFIFOの次パケット送信時刻j（新規)を計算し直す必要はないが、仮想マルチキャストパケットの場合は第一のFIFOから送信された仮想マルチキャストパケットが下流のスイッチ900で第二のサイト宛てにコピーされることを考慮するため、あたかも現時刻に第二のFIFOよりパケットを送信したかの様に次パケット送信時刻j（新規)を計算する。この際、第一のFIFOから送信した仮想マルチキャストパケットのパケット長と第二のサイトの最大帯域とから決まるパケット間隔を空ける様に、maxの項に現時刻を加え、現時刻から前記パケット間隔だけ未来の時刻を次パケット送信時刻j（新規)とする。
【００６６】
また、第二のFIFOの次パケット送信時刻ｊ（現在)に関係なく第一のFIFOからパケットが送信されてしまうため、第二のFIFOの次パケット送信時刻ｊ（現在)が現時刻より未来である場合もあり得る。この場合、パケット間隔という観点で見ると、第二のサイトに最大帯域を超過してパケットが送信されてしまう。そこで、送信帯域を抑制するために、maxの項に次パケット送信時刻ｊ（現在)を加えることで、現時刻ではなく、より未来の次パケット送信時刻j（現在)から新たな次パケット送信時刻ｊ（新規)を判定する。本項を加えることにより、パケット毎の間隔を最大帯域とパケット長より決まる時間間隔とはできないが、より長期間のタイムレンジでの送信帯域を最大帯域以下に抑えることができる。
【００６７】
具体例を図１７を用いて説明する。図１７では、パケットAが第二のFIFOから送信され、パケットB（コピーされ第二のサイトに到達する仮想マルチキャストパケット）が現時刻に他の第一のFIFOから送信されている。現時刻における第二のFIFOの次パケット送信時刻ｊは現時刻より未来の次パケット送信時刻Bである。この際、式1に従えば、次パケット送信時刻Cが次パケット送信時刻（新規)として計算される。本来であれば、第二のFIFOの観点から見れば、最大帯域を遵守するために現時刻ではなく次パケット送信時刻BにパケットBを送信し、パケット送信時刻Cに次のパケットを送信すべきである。しかし、次パケット送信時刻Cを次パケット送信時刻（新規)と判定すれば、パケット毎に最大帯域を守ることは出来ないが、時間tに出力されるパケット量を最大帯域以下に抑えることができる（パケットBが送信される時刻が早いだけとなる)。
【００６８】
以上は、第二のFIFOから実際にパケットが送信されない場合について説明したが、通常パケットであるか或いはFIFOから実際に送信される仮想マルチキャストパケットについては、最大帯域とパケット長に対応する間隔だけ現時刻から経過した時刻を次パケット送信時刻j（新規)とすれば最大帯域を守ることができる。現時刻≧次パケット送信時刻（現在)であるため、式1を使用して次パケット送信時刻j（新規)を計算できる。
【００６９】
次パケット送信時刻j（新規)の計算後、パケット送信管理テーブル1120に新たな次パケット送信時刻ｊを書き戻す（ステップ1410)。最後に、制御部1110は、パケット送信するFIFOに対応するパケット数カウンタの減算要求をパケットライト部130に送信し（ステップ1411)、パケットライト部130の制御部1000は対応するパケット数カウンタの値を’1’減算する（ステップ1412)。
【００７０】
以上に説明したように本実施例のパケットリード部150はFIFOからあるサイトへ向けて仮想マルチキャストパケットを送信する際に、実際に送信されたFIFOに加えて他のサイトへ向かうFIFOの次パケット送信時刻も更新する。これにより、下流のスイッチ900でコピーされるパケット分の帯域を考慮して帯域制御可能であり、支社サイトA903と支社サイトB904に到着するパケットの最大帯域を10Mbps、5Mbps以下に抑えることができる。
【００７１】
すなわち、本実施形態では、一つの仮想マルチキャストパケットが到達する複数の宛先（例えば支社サイトA903と支社サイトB904）毎に設定された帯域（10Mbps、5Mbps）に制御してパケットをFIFOから読み出し、出力する点が一つのポイントである。また、該ポイントを言い換え、他の表現でも本実施形態を捉えることができる。例えば、図３を参照しながら説明すると、一つの回線（回線３）から出力される一つの仮想マルチキャストパケットが、該回線３と接続される複数の回線（回線１、回線２）に出力される場合に、該複数の回線（回線１、回線２）毎に設定された帯域（10Mbps、5Mbps）に制御してパケットをFIFOから読み出し、出力する。もしくは、一つの回線（回線３）から出力される一つの仮想マルチキャストパケットが、該回線３を経由して到達する複数の宛先（支社サイトA903、支社サイトB904）に出力される場合に、該複数の宛先毎に設定された帯域（10Mbps、5Mbps）に制御してパケットをFIFOから読み出し、出力する。という表現で本実施形態を捉えることもできる。
【００７２】
以上の実施例では、帯域情報が各サイトの最大帯域である場合を説明したが、それ以外の帯域情報、例えば、各サイトの最低帯域である場合が考えられる。この際、各サイトの最低帯域を確保してパケットを送信しつつ、出力回線202の帯域に余剰が存在する場合には、最低帯域を超えて送信する。
【００７３】
最低帯域を確保するシェーピング部100の帯域情報蓄積部1140は、最大帯域の代わりに最低帯域をエントリ1341に格納することとなる。図１８の設定値の場合、サイト1とサイト2の最低帯域はそれぞれ3Mbps、2Mbpsである。シェーピング部100はステップ1409における次パケット送信時刻ｊを、下記の式2に基づいて計算する。
【００７４】
次パケット送信時刻ｊ（新規) ＝ max（現時刻， 次パケット送信時刻j（現在)) ＋ パケット長（Byte)×8／最低帯域ｊ（bit/秒)・・・式2
【００７５】
さらに、各サイトに帯域に余剰がある際にパケットを出力するため、ステップ1405では次パケット送信時刻の値に関係なくステップ1406に進む。本ステップ1405の変更により余剰分が各サイトの最低帯域の比率に基づき分配される。
【００７６】
また、本実施例のシェーピング部100は、出力回線201の総帯域を各サイトの重みWに基づいて分配するWFQ（Weighted Fair Queueing)を実現することも可能である。前述した様に、本実施例の帯域情報蓄積部1140に最低帯域が記載されたシェーピング部100は、回線帯域を最低帯域の比率で各サイトに割り当てる。そのため、帯域情報蓄積部1140に設定される最低帯域の値として、各サイトのWに比例した任意の帯域が設定されれば、シェーピング部100はWFQを実現できる。
【００７７】
（５）シェーピング部の代わりに帯域監視部を用いた実施例
以上では、バッファを備えるシェーピング部100の一実施例を説明した。キャリア網901から支社サイトA903への帯域とキャリア網901から支社サイトB904への帯域を制御するために、ルータ200がシェーピング部100の代わりに図１９記載の帯域監視部2000を備えていても良い。帯域監視部2000は各サイトに到るパケットの帯域を監視し、支社サイトA903への帯域と支社サイトB904への帯域がそれぞれ10Mbps、5Mbpsを超過する際にパケットを廃棄して、各サイトへの帯域を契約帯域以下に制御する。
【００７８】
以下では、帯域監視部2000の詳細動作を図１９乃至２１を用いて説明する。本監視部2000の帯域監視のアルゴリズムとして固定長パケットであるセルの監視アルゴリズムであるcontinuousstate Leaky Bucket Algorithm（以下リーキーバケットアルゴリズム)を可変長パケットの帯域監視用に拡張したアルゴリズムを使用する。リーキーバケットアルゴリズムはある深さを持った穴の空いた漏れバケツのモデルで、バケツに水が入っている間は監視帯域で水は漏れ、セル到着時にはバケツに１セル分の水が注ぎ込まれる。セルの到着揺らぎを許容するためにバケツに深さを持ち、バケツが溢れないうちは入力セルは遵守と、溢れると違反と判定される。本実施例ではパケット到着時に注ぎ込む水の量を可変とすることにより、可変長パケットの帯域監視を実現する。
【００７９】
本アルゴリズムに基づく帯域監視を実行する帯域監視部2000は帯域監視テーブル制御部2050と、バケツ蓄積量判定部2010と、監視結果判定部2020と、帯域監視テーブル2030と、一時蓄積バッファ2040と、制御部2060より構成される。図２０に帯域監視テーブル2030のフォーマットを示す。前記帯域監視テーブル2030はサイト毎の帯域監視制御情報2100-k（k=1〜2)より構成される。帯域監視部2000は一つの帯域監視制御情報2100-kにより１サイトの帯域監視を実行する。帯域監視制御情報2100-kはバケツの容量に対応するTHR 2101-k（Byte) （Threshold)と、バケツから水が漏れる速度であり最大帯域を表すPOLR 2102-k（Byte/sec)（Policing Rate)と、到着パケットに対応する水が前回バケツに蓄積した時刻TS 2103-k（sec)（Time Stamp)と、バケツに蓄積している水量に対応するCNT 2104-k（Byte)（Count)より構成される。
【００８０】
図２１に帯域監視部2000のフローチャートを示す。帯域監視部2000の処理は帯域監視開始処理2200、バケツ蓄積量判定処理2210、監視結果判定処理2220である。後の２処理はそれぞれバケツ蓄積量判定部2010と、監視結果判定部2020が主に実行する。
【００８１】
帯域監視部2000の制御部2060が、通常パケット乃至仮想マルチキャストパケットを受信すると、一時蓄積バッファ2040に該パケットを蓄積する。さらに、パケット長331の情報を監視結果判定部2020のパケット長蓄積部2022に蓄積する（ステップ2201)。次に、サイト番号情報334を帯域監視テーブル制御部2050の帯域監視テーブル制御回路2051へ送信する（ステップ2202)。
【００８２】
帯域監視テーブル制御回路2051はサイト番号情報334を受信すると、’1’であるビットに対応するサイト番号を帯域監視テーブル2030のアドレスとして帯域監視制御情報2100を読み出し、THR 2101を監視結果判定部2020のTHR蓄積部2023に、POLR 2102とTS 2103とCNT 2104をバケツ蓄積量判定部2010のそれぞれPOLR蓄積部2013、TS蓄積部2014、CNT蓄積部2015に蓄積する（ステップ2203)。帯域監視部2000が受信するパケットが通常パケットの場合には、帯域監視制御情報2100は一つのみ読み出され蓄積されるが、仮想マルチキャストパケットの場合には二つの帯域監視制御情報2100が読み出され蓄積される。最後に制御部2060は、制御部2060が備えるカウンタ値：kを受信したサイト番号情報334が’1’のビットのサイトのうち最も小さなサイト番号の値とする（ステップ2204)。
【００８３】
バケツ蓄積量判定処理2210では、バケツ蓄積量判定部2010はパケット入力直前のバケツの水の量（バケツ蓄積量)を判定する。まず、バケツ蓄積量判定回路2011が現時刻をカウントするタイマー2012の値（単位はsec)とTS蓄積部2014内のTS 2103-k（sec)との差分を計算し、バケツに水が前回蓄積されてから経過した経過時間k（sec)を計算する（ステップ2211)。次に経過時間k（sec)にPOLR蓄積部2013内のPOLR 2102-k（Byte/sec)を乗じて、バケツに水が前回蓄積されてから漏れた水の量（バケツ減少量k)を計算する（ステップ2212)。さらに、CNT蓄積部2015内のCNT 2104-kからバケツ減少量kを減算してパケットが入力する直前のバケツ蓄積量を判定する（ステップ2213)。前記バケツ蓄積量kの正負を判定し（ステップ2214)、判定結果が負の場合にはバケツ蓄積量kを’0’（バケツは空)に修正する（ステップ2215)。
【００８４】
監視結果判定処理2220では、監視結果判定部2020の監視結果判定回路2021は一時蓄積バッファ2040内のパケットに相当する水がバケツに入るか否かを判定する。まず、監視結果判定回路2021はバケツ蓄積量判定処理2210で判定されたバケツ蓄積量k（Byte)にパケット長（Byte)を加算する（ステップ2221)。監視結果判定回路2021はTHR蓄積部2023に蓄積されているバケツの容量THR 2101-kと前記加算値との大小比較を行う（ステップ2222)。バケツ蓄積量k＋パケット長＞THR-2101-k、即ち、バケツが溢れてしまう時には、一時蓄積バッファ2040に蓄積されているパケットを違反パケットと判定して「違反」を表す帯域監視結果情報31を帯域監視テーブル制御部2050の帯域監視テーブル制御回路2051に送信する（ステップ2228)。一方、バケツ蓄積量k＋パケット長≦THR 2101-kの時には、監視結果判定回路2021は一時蓄積バッファ2040内のパケットのサイト番号情報334を参照し、ビットの値が’1’のサイトであってサイト番号が制御部2060内のカウンタ値：kより大きなサイトが存在する場合には、このサイト番号のうち最小の値をkに再設定し（ステップ2224)、ステップ2211に戻り再度ステップ2211〜2223を実施する。ビットの値が’1’のサイトであってカウンタ値：kより大きなサイト番号のサイトが存在しない場合、入力パケットを遵守パケットと判定し、「遵守」を表す帯域監視結果情報31を帯域監視テーブル制御回路2051と制御部2060に送信し、「バケツ蓄積量ｍ（ｍ=1，2)＋パケット長」の値をバケツ蓄積量情報32-ｍ（ｍ=1，2)として帯域監視テーブル制御回路2051に送信する（ステップ2225)。帯域監視テーブル制御回路2051は「遵守」を表示した帯域監視結果情報31を受信すると、バケツ蓄積量情報32-ｍ（ｍ=1，2)とタイマー2012の値を、それぞれ帯域監視直後のバケツ蓄積量およびパケットの到着時刻として、帯域監視テーブル2030のCNT 2104-ｍ（ｍ=1，2)とTS 2103-ｍ（ｍ=1，2)に書き込み（ステップ2226)、制御部2060は一時蓄積バッファ2040内のパケットを内部ヘッダ削除回路610に送信する（ステップ2227)。一方、帯域監視テーブル制御回路2051は「違反」を表示した帯域監視結果情報31を受信すると前記ステップ2223から2227を行わない。この際、一時蓄積バッファ2040内のパケットは最終的には後続のパケットに上書きされて廃棄される。以上の処理が終了すると帯域監視は終了する（ステップ2229)。
【００８５】
上記処理を行うことにより通常パケットに対しては、対応する宛先サイトの契約帯域内であれば「遵守」と、帯域外であれば「違反」と判定される。一方、仮想マルチキャストパケットに対しては、サイト1およびサイト2へ到るパケットの帯域が契約帯域内であれば「遵守」と、両方あるいは一方のサイトへ到るパケットの帯域が契約帯域以上であれば「違反」と判定される。
【００８６】
以上に説明したように本発明の帯域監視部2000は、「遵守」と判定された場合、ステップ2225において通常パケットであれば該パケット対応するサイトのCNT2104に対してのみパケット長が加算されるが、仮想マルチキャストパケットであれば、サイト１、2のCNT2104にパケット長が加算される。このため、本発明の帯域監視部2000は仮想マルチキャストパケットを送信する際、下流のスイッチ900でコピーされるパケットを考慮して両サイトにパケット送信したかの様に振る舞い、キャリア網901から支社サイトA903およびキャリア網901から支社サイトB904へのパケットの帯域をそれぞれ10Mbps、5Mbps以下に抑えることができる。
【００８７】
（６）出力サイト情報704の静的設定方法
ルータ200の管理者が、マルチキャストルーティングテーブル700の出力サイト情報704を、外部の管理端末10から設定する場合について説明する。（１)において加入メッセージにより動的に出力サイト情報704を設定する場合を説明したが、スイッチ900がマルチキャストコピーを常に行っている状況では、動的に出力サイト情報704を設定する必要は無い。このようなケースとしてはスイッチ900がスヌーピングを実装しておらず、マルチキャストパケットを全回線にコピーして転送する場合等が考えられる。
【００８８】
図２２に管理端末10に入力されるコマンドの一例を示す。このコマンド：site_infoは、ある送信元IPアドレス、宛先IPアドレスとこれらの組み合わせから決まるエントリ700内のある出力回線のサイト番号情報を設定するコマンドである。これらのSIP、DIP、出力回線、サイト番号情報はそれぞれ2301、2302、2303、2304に記載される。例えば、１行目のコマンドは送信元IPアドレス、宛先IPアドレスがそれぞれSIP1、DIP1であるエントリ700内サイト番号情報のうち、出力回線番号’1’に対応するサイト番号情報を’11’に設定するコマンドである。コマンドを受けたプロセッサ260はコマンド入力されたSIP2301およびDIP2302と、エントリ710内のSIP701とDIP702を一致比較し、一致エントリ7１0内の2303記載の出力回線に対応するサイト番号情報704を、コマンドの2304の値に設定する。
【図面の簡単な説明】
【００８９】
【図１】シェーピング部100の構成の一例を示す。
【図２】ルータ200の構成の一例を示す。
【図３】本発明の想定するネットワークを示す。
【図４】マルチキャストIPアドレスおよびマルチキャストMACアドレスのフォーマットを示す。
【図５】FDB1000の構成の一例を示す。
【図６】マルチキャストルーティングテーブル700の一例を示す。
【図７】本発明の想定するネットワークを示す。
【図８】ルータ200が送受信するパケットのフォーマットの一例を示す。
【図９】ルータ200におけるパケットのフォーマットの一例を示す。
【図１０】パケット受信部230の構成の一例を示す。
【図１１】パケット送信部240の構成の一例を示す。
【図１２】パケットライト部1３0の一構成例を示す。
【図１３】パケットリード部150の一構成例を示す。
【図１４】パケット送信管理テーブル1120の構成の一例を示す。
【図１５】帯域情報蓄積部1140の構成の一例を示す。
【図１６】パケットリード部150のフローチャートである。
【図１７】シェーピング部100より出力されるパケットタイミングを示す。
【図１８】帯域情報蓄積部1140の構成の一例を示す。
【図１９】帯域監視部2000の構成の一例を示す。
【図２０】帯域監視テーブル2030の構成の一例を示す。
【図２１】帯域監視部2000のフローチャートである。
【図２２】マルチキャストルーティングテーブル700の出力サイト情報704を設定するコマンドの一例を示す。
【符号の説明】
【００９０】
11…パケット送信FIFO情報、12…送信パケット長情報、13…送信可能信号、21…パケットヘッダ情報、22…パケット出力回線情報、23…パケット出力サイト情報、31…帯域監視結果情報、32…バケツ蓄積量情報、100…シェーピング部、110…パケットバッファ、120…パケット一時蓄積バッファ、130…パケットライト部、140…多重回路、150…パケットリード部、260…プロセッサ
【図１】
0004742072.tif 000002
【図２】
0004742072.tif 000003
【図３】
0004742072.tif 000004
【図４】
0004742072.tif 000005
【図５】
0004742072.tif 000006
【図６】
0004742072.tif 000007
【図７】
0004742072.tif 000008
【図８】
0004742072.tif 000009
【図９】
0004742072.tif 000010
【図１０】
0004742072.tif 000011
【図１１】
0004742072.tif 000012
【図１２】
0004742072.tif 000013
【図１３】
0004742072.tif 000014
【図１４】
0004742072.tif 000015
【図１５】
0004742072.tif 000016
【図１６】
0004742072.tif 000017
【図１７】
0004742072.tif 000018
【図１８】
0004742072.tif 000019
【図１９】
0004742072.tif 000020
【図２０】
0004742072.tif 000021
【図２１】
0004742072.tif 000022
【図２２】
0004742072.tif 000023