まず、図2を用いて本発明が想定するネットワーク構成について説明する。図2のネットワークでは、企業Aの企業網A-1 210-1、企業網A-2 210-2が、キャリアが提供するVPN(Virtual Private Network)サービス網200によって接続されている。同様に、企業Aとは別の企業Bの企業網B-1 220-1、企業網B-2 220-2が接続されている。VPNサービス網200はエッジに位置するエッジノードA 202、エッジノードB 203と、コアに位置するバックボーンノード201より構成され、また、各企業網のVPNサービス網200への出入口にはゲートウェイノードA1 211-1、ゲートウェイノードA2 211-2、ゲートウェイノードB1 221-1、ゲートウェイノードB2 221-2が配置されている。
企業サイトの接続サービスを提供するキャリアと企業網A-1/A-2の管理者間では、企業網A-1から企業網A-2に転送するパケットの帯域(以下、契約帯域と呼ぶ)が契約されている。エッジノードA 202はゲートウェイノードA1 211-1より受信するパケットの帯域を計測し、契約帯域以内と判定したパケットを優先パケットと、また契約帯域外と判定したパケットを非優先パケットとしてバックボーンノード201に送信する。バックボーンノード201およびエッジノードB 203が優先パケットを優先的に企業網A-2 210-2まで転送することで、VPNサービス網200は企業網A-1とA-2間の契約帯域を保証する。企業網A-1/A-2の管理者は予め、企業Aにとって重要なパケット(以下、重要パケットと呼ぶ)とそれ以外のパケット(以下、非重要パケットと呼ぶ)を識別する条件をキャリアに申告しておき、エッジノードA 202は本条件に基づいて入力パケットの重要度を検出し、該重要度に基づいて帯域監視を行う。本実施例では、企業網Aの管理者は、企業網A-1 210-1内の特定IPアドレスを備えた端末が送信するパケットを重要パケットと、それ以外のパケットを非重要パケットと申告しているとする。
本発明のポリシング機能を備えるノードの概要動作を図3乃至図5を用いて説明する。図5は本発明のノード100を示す。本実施例では、本発明のノード100はVPNサービス網200のエッジノードA 202として使用され、企業網A-1 210-1の送信するパケットの帯域を監視しているとする。ノード100はNの入力回線101-i(i=1〜N)、出力回線102-i、インターフェース部120-iと、インターフェース部120-iを結合するパケット中継処理手段110より構成される。インターフェース部120はパケットの受信処理を行うパケット受信回路160と、帯域監視を行いVPNサービス網200内の転送優先度を判定し、さらに、ルーティングテーブルの検索を行ってパケットを出力する回線の識別番号:出力回線番号を判定するヘッダ処理部140と、受信したパケットを蓄積する受信側バッファ130と、パケット中継処理手段110より受信したパケットを蓄積する送信側バッファ131と、送信側バッファ131よりパケットを読みだして、送信処理を行うパケット送信回路161から構成される。
図3は企業網AおよびVPNサービス網200におけるパケットフォーマットの一例を示す。本フォーマットはヘッダ部310とデータ部320から構成される。ヘッダ部310はネットワーク層の送信元アドレス(送信端末のアドレス)である送信元IPアドレス(Source IP Address:以下「SIP」という。)311と、宛先アドレス(受信端末のアドレス)である宛先IPアドレス(Destination IP Address:以下「DIP」という。)312と、プロトコル(=上位アプリケーション)を表す送信元ポート(Source Port:以下「SPORT」という。)313と宛先ポート(Destination Port:以下「DPORT」という。)314とネットワーク層の転送優先度を表すDSCP(Diffserv Code Point)315と、データリンク層の送信元アドレスである送信元MACアドレス(Source MAC Address:以下「SMAC」という。)316と、宛先アドレスである宛先MACアドレス(Destination MAC Address:以下「DMAC」という。)317と、データリンク層の転送優先度を表すイーサ優先度(User Priority:以下「UPRI」という。)318から構成される。また、データ部320はユーザデータ321から構成される。
図4は本発明のノード100内部のパケットフォーマット例を示す。本フォーマットは前述のフォーマットに内部ヘッダ部330が備わる。この内部ヘッダ部330はパケットのバイト長を表すパケット長331とパケットが入力した回線の識別番号である入力回線番号332と、パケットを出力する回線の識別番号である出力回線番号333から構成される。
パケットが入力回線101より入力するとパケット受信回路160は内部ヘッダ部330を付加し、該パケットのバイト長をカウントしてパケット長331に、パケットが入力した入力回線101の入力回線番号を入力回線番号332に書き込む。さらに、本パケットを一旦蓄積すると同時に、出力回線番号333を除く内部ヘッダ部330とヘッダ部310内の情報をパケットヘッダ情報11としてヘッダ処理部140に送信する。
ヘッダ処理部140のポリシング部141は帯域監視を行ってネットワーク内の転送優先度であるDSCPやイーサ優先度を判定し、パケット優先度情報12としてパケット受信回路160に送信する。ヘッダ処理部140のルーティング処理部142は前記パケットヘッダ情報11内のDIP312またはDMAC317に対応する情報より出力回線番号を判定し、パケット出力回線情報13としてパケット受信回路160に送信する。なお、ノード100がルータの場合はDIP312を、スイッチの場合はDMAC317を使用する。
パケット受信回路160はパケット優先度情報12内のDSCPとイーサ優先度を蓄積パケットのDSCP315とUPRI318に書き込み、また、パケット出力回線情報13内の出力回線番号を出力回線番号333に書き込んで、蓄積パケットを受信側バッファ130へ送信する。
受信側バッファ130は廃棄閾値132を備え、DSCP315またはUPRI318の値に基づいてバッファ蓄積制御を実行する。バッファ蓄積制御では、使用する転送優先度であるDSCP315またはUPRI318が優先パケットを表す場合、受信側バッファ130は受信側バッファ130に空きが有るとパケットを蓄積し、空きがないとパケットを廃棄する。一方、非優先パケットを表す場合、前記廃棄閾値132以下しかパケットが蓄積されていない場合はパケットを蓄積するが、前記廃棄閾値132を越えてパケットが蓄積されていると受信側バッファ130に空きが有ってもパケットを廃棄する。このバッファ蓄積制御により、ノード100は優先パケットの通信品質を実現する。
パケット中継手段110は受信側バッファ130内のパケットを読みだし、出力回線番号333の値に対応するインターフェース部120に該パケットを転送する。該パケットを受信した送信側バッファ131は受信側バッファ130と同様のバッファ蓄積制御を行う。パケット送信回路161は受信側バッファ130からパケットを読みだし、内部ヘッダ部330を削除し、出力回線102に該パケットを送信する。
次に、図1、図6、図7、図8を用いて本発明のポリシング部141の詳細動作について説明する。本発明のポリシング部141は帯域監視アルゴリズムとしてリーキーバケットアルゴリズムを可変長パケットの帯域監視用に拡張したアルゴリズムを使用する。図1にポリシング部141のブロック図を示す。ポリシング部141はバケツ蓄積量判定部510と、ポリシング結果判定部520と、優先度判定部530と、フロー検出部540と、ポリシングテーブル550と、ポリシングテーブル制御部560より構成される。
フロー検出部540はルータまたはスイッチ固有の機能部である。ATMネットワークにおいては、予めコネクションが設定され、ATMネットワーク内のATM交換機は入力セルのコネクション識別子に対応するポリシング制御情報を読みだし、その情報を用いて帯域監視を実行する(コネクション型通信)。一方、インターネットに代表されるIPネットワークにおいては、予めコネクションが設定されない。そのため、IPネットワークに置かれるルータやスイッチはフロー検出手段を備え、入力パケット毎にヘッダ内の情報等により前記コネクション識別子の代わりのフロー識別子を判定する必要がある(コネクションレス型通信)。ルータは前記フロー識別子に対応するポリシング制御情報を読みだし、本情報を用いて帯域監視を実行する。なお、本願では、特定のヘッダ内の情報等が同一である一連のパケットをフローと呼ぶ。
図6にポリシングテーブル550のフォーマットを示す。ポリシングテーブル550はM個のポリシング制御情報600-j (j=1〜M)を所持する。ポリシング部141は一つの前記ポリシング制御情報600-jにより一フローの帯域監視を行う。本実施例では一つのポリシング制御情報600-jにより、企業網A-1 210-1がVPNサービス網200に送出する全パケットを契約帯域で監視する場合を説明する。ポリシング制御情報600-jは重要パケット用のバケツの容量THR-A601-j(Byte) (Threshold-A)と、非重要パケット用のバケツの容量THR-B602-j (Byte)(Threshold-B)と、バケツが漏れる速度であり監視帯域を表すPOLR603-j(Byte/sec)(Policing Rate)と、同一のポリシング制御情報600-jを参照するパケットが前回到着した時刻:TS604-j(sec)(Time Stamp)と、前パケットの帯域監視直後にバケツに蓄積されていた重要パケットの水量:CNT-A605-j(Byte)(Count-A)および非重要パケットの水量:CNT-B606-j(Byte)(Count-B)と、帯域監視で「遵守」と判定され優先パケットとして転送される際の転送優先度であるPRIC607-j(Priority Conformance)と、「違反」と判定され非優先パケットとして転送される際の転送優先度であるPRIN608-j(Priority non-Conformance)と、重要パケットと非重要パケットの契約帯域の分配比重W-A 609-j(Weight-A)、W-B 610-j (Weight-B)より構成される。なお、PRIC607-jとPRIN608-j内の優先度としてDSCPとイーサ優先度が記載されている。
従来技術2では、バケツを一つ備えれば良いため、バケツの水量:CNTは一つ有れば良かったが、本発明のポリシング部141は重要パケット用と非重要パケット用のバケツを備えるため、各パケット用の二つの水量:CNT-A605-j、CNT-B606-jとバケツの容量THR-A601-j、THR-B602-jを備える。図7にポリシング部141のフローチャートの前半部分を、図8に後半部分を示す。ポリシング部141の処理はポリシング開始処理700、バケツ蓄積量判定処理710、ポリシング結果判定処理720、優先度判定処理730、ポリシング終了処理740より構成される。710、720、730の3処理はそれぞれバケツ蓄積量判定部510と、ポリシング結果判定部520と、優先度判定部530が主に実行する。
ポリシング部141がパケットヘッダ情報11を受信すると、ポリシング結果判定部520のパケット長蓄積手段522はパケット長331に対応する情報を、フロー検出部540はSIP311、DIP312、SPORT313、DPORT314、DSCP315、SMAC316、DMAC317、UPRI318と入力回線番号332に対応する情報を蓄積する(ステップ701)。ステップ702では、フロー検出部540は蓄積された情報に基づいてフロー検出を行って入力パケットを送信した契約者の識別子である契約者識別子および入力パケットの重要度であるフロー重要度を判定し、前記契約者識別子から構成される契約者情報14をポリシングテーブル制御部560のポリシングテーブル制御回路561へ、前記フロー重要度から構成されるフロー重要度情報17をポリシング結果判定部520のフロー重要度蓄積手段525へ送信する。
契約者(本実施例の場合、企業A)の識別に関しては、例えば、フロー検出部540が、受信パケットが入力した回線の番号である入力回線番号332によって契約者を識別しても良い。また、各企業が該企業に属する端末のIPアドレスをVPNサービス網200の管理者に申告しておけば、IPアドレスにより契約者を判定できる。重要度の識別に関しては、各企業の管理者が特定IPアドレスの端末が送信するパケットを重要パケットと、それ以外のパケットを非重要パケットと申告している本実施例の場合、フロー検出部540はSIP311に対応する情報から重要度を判定する。
ポリシングテーブル制御回路561は前記契約者情報14からポリシングテーブル550のアドレスを作成し、ポリシング制御情報600-jを読みだす。読みだされたTHR-A601-jとTHR-B602-jの値をポリシング結果判定部520のTHR-A蓄積手段523とTHR-B蓄積手段524が、POLR603-jとTS604-jとCNT-A605-jとCNT-B606-jの値をバケツ蓄積量判定部510のそれぞれPOLR蓄積手段513、TS蓄積手段514、CNT-A蓄積手段515、CNT-B蓄積手段516が、W-A609-jとW-B610-jの値を帯域割り当てポリシー蓄積手段517が、PRIC607-jとPRIN608-j内の遵守/違反時のDSCPとイーサ優先度をそれぞれ優先度判定部530のPRIC蓄積手段532とPRIN蓄積手段533が蓄積する(ステップ703)。
バケツ蓄積量判定処理710では、バケツ蓄積量判定部510はパケット入力直前のバケツ水量(バケツ蓄積量)を判定する。まず、バケツ蓄積量判定回路511は現時刻を示すタイマー512の値とTS蓄積手段514内の前パケットの到着時刻との差分を計算し、前パケット到着からの経過時間を計算する(ステップ711)。次に経過時間にPOLR蓄積手段513内の値を乗じて、前パケット到着から漏れた水の量(減少水量)を計算する(ステップ712)。
バケツ蓄積量判定回路511は帯域割り当てポリシー蓄積手段517に蓄積されている契約帯域の分配比重に基づいてCNT-AおよびCNT-Bから減算すべき水量を判定する。ステップ712では計算した減少水量をW-A:W-Bに分配した仮の減少水量:DEC-AとDEC-Bを計算する(ステップ713)。ここで「仮の」と記載したのは、CNT-AとCNT-Bの値がそれぞれDEC-AとDEC-Bより小さい場合、DEC-AとDEC-Bは実際の減少水量とならないためである。以降のステップ714〜716では、CNT-A、CNT-BとDEC-A、DEC-Bの大小関係に基づいて、減少水量減算後のCNT-A、CNT-Bの値:CNT-A’、CNT-B’を計算する。まず、ステップ714およびステップ715にてこの大小関係に基づきステップ716-1〜716-4に分岐する。ステップ716-1はCNT-A≧DEC-AおよびCNT-B≧DEC-Bのケースである。
この際、新規CNT-A、CNT-Bの値:CNT-A’、CNT-B’をそれぞれCNT-A−DEC-A、CNT-B−DEC-Bとする。ステップ716-2はCNT-A≧DEC-AおよびCNT-B<DEC-Bのケースである。CNT-BはDEC-Bを減算すると負となるため、CNT-B'は0とする。この時、CNT-A より減算できなかったDEC-B−CNT-B分の水量をCNT-Aより減算することができる。よって、CNT-A’の値としてCNT-A−DEC-A−(DEC-B−CNT-B)と0のうちで大きな値を選択する。同様にステップ716-3ではCNT-A'を0 と、CNT-B’をCNT-B−DEC-B−(DEC-A−CNT-A)と0のうち、より大きな値とする。ステップ716-4はCNT-A<DEC-AおよびCNT-B<DEC-Bのケースであり、CNT-A’、CNT-B’共に0 とする。これまで、W-Bが正の場合を考えてきたが、W-Bを”0”とすると、重要パケットに完全優先的に契約帯域を分配することができる。このようなW-A、W-Bに基づいた減少水量の分配処理は本発明固有の処理である。
ポリシング結果判定処理720では、ポリシング結果判定部520のポリシング結果判定回路521はバケツ蓄積量判定部510が判定した水量が、入力パケットの重要度に応じたバケツ閾値に収まるか否かを判定する。まず、フロー検出部540が送信しているフロー重要度情報17をフロー重要度蓄積手段525に蓄積する。この蓄積情報に基づき検索処理は分岐する(ステップ721)。前記蓄積情報が「重要」の場合にはTHR-A蓄積手段523に蓄積されている重要パケット用のバケツの容量THR-AとCNT-A’の大小比較を行う(ステップ722-1)。
CNT-A’≦THR-Aであってバケツが溢れない場合には、入力パケットを遵守パケットと判定し、「遵守」を表示したポリシング結果情報15を優先度判定回路531とポリシングテーブル制御回路561に送信する(ステップ723-1) 。また、さらに、次パケット到着時に使用する重要および非重要パケット用の水量:CNT-A”、CNT-B”をそれぞれパケット長蓄積手段内のパケット長+CNT-A’、CNT-B’と判定し、ポリシングテーブル制御回路561にバケツ蓄積量情報16として送信する(ステップ724-1)。CNT-A’>THR-Aであって、バケツが溢れている時には、入力パケットを違反パケットと判定して「違反」を表すポリシング結果情報15を優先度判定回路531とポリシングテーブル制御回路561に送信する(ステップ723-2)。また、CNT-A”、CNT-B”をそれぞれCNT-A’、CNT-B’と判定し、ポリシングテーブル制御回路561にバケツ蓄積量情報16として送信する(ステップ724-2)。
一方、ステップ721の参照結果が非重要の場合にはTHR-B蓄積手段524に蓄積されている非重要パケット用のバケツの容量THR-BとCNT-B’の大小比較を行う(ステップ722-2)。CNT-B’≦THR-Bの時には、入力パケットを遵守パケットと判定し、「遵守」を表示したポリシング結果情報15を優先度判定回路531とポリシングテーブル制御回路561に送信する(ステップ723-3)。また、CNT-A”、CNT-B”をそれぞれCNT-A'、 パケット長蓄積手段522内のパケット長+CNT-B'と判定し、ポリシングテーブル制御回路561にバケツ蓄積量情報16として送信する(ステップ724-3)。CNT-B’>THR-Bであって、バケツが溢れてしまう状態の時には、入力パケットを違反パケットと判定して「違反」を表すポリシング結果情報15を優先度判定回路531とポリシングテーブル制御回路561に送信する(ステップ724-3)。また、CNT-A”、CNT-B”をそれぞれCNT-A’、CNT-B’と判定し、ポリシングテーブル制御回路561にバケツ蓄積量情報16として送信する(ステップ724-4)。
優先度判定処理730では、優先度判定部530はポリシング結果情報15に基づいて優先度を判定する。優先度判定回路531はポリシング結果情報15が「遵守」の場合、PRIC蓄積手段532内のDSCPとイーサ優先度を入力パケットのDSCPとイーサ優先度と判定し、前記優先度より構成されるパケット優先度情報12をパケット受信回路160に送信する(ステップ731)。「違反」の場合、PRIN蓄積手段533内のDSCPとイーサ優先度を入力パケットのDSCPとイーサ優先度と判定し、前記判定情報より構成されるパケット優先度情報12 をパケット受信回路160に送信する(ステップ732)。ポリシング終了処理740では、ポリシングテーブル制御回路561がバケツ蓄積量情報16内のCNT-A”、CNT-B”とタイマー512の値を、契約者情報14に対応するポリシング制御情報600-jのCNT-A 605-j、CNT-B 606-jとTS604-jに書き込み(ステップ741)、帯域監視を終了する(ステップ742)。
VPNサービス網200の管理者はノード100外部の管理端末150を用いて帯域監視に関する情報をノード100に設定する。管理端末150に入力されるコマンドの一例を図18に示す。このコマンドの181、182には非重要パケットのSIPとDIPが、183、184には重要パケットのSIPとDIPが設定される。また、185、186、187には監視帯域と優先・非優先パケットの優先度が設定され、188、189には非重要パケットの分配比重Wとバケツの容量THRが、190、191には重要パケットの分配比重Wとバケツの容量THRが設定される。図18のコマンドは送信端末のIPアドレスが10.10.10.1と10.10.10.2の送信端末が送信したパケットの帯域を100Mbpsで監視し、優先パケットおよび非優先パケットの優先度(DSCPまたはイーサ優先度)を1および2と判定する帯域監視を行う際のコマンドである。さらに、10.10.10.1の端末が送信する非重要パケットが200kByteのバケツで、10.10.10.2の端末が送信する重要パケットが、300kByteのバケツで監視される。また、優先パケットと非優先パケットの分配比重はそれぞれ2と1である。本コマンドを受けたプロセッサ170は181から184の情報をフロー検出部540に、また185から191の情報をエントリ600のそれぞれPOLR603、PRIC607、PRIN608、W-B610、THR-B602、W-A609、THR-A601に設定する。なお、TS604、CNT-A605、CNT-B606は” 0”に初期化する。
図15を用いて本発明を適用したノード100の効果を説明する。図15(a)はノード100に入力するパケットの帯域時間変化の例を示す。ここで、網掛け部分が重要パケットの帯域を
、白い部分が非重要パケットの帯域を表している。従来技術2を適用したポリシング機能を使用して図15(a)のトラヒックを監視した場合の優先パケットと非優先パケットの帯域時間変化を図15(b)に示す。斜線部が優先パケット、それ以外の斜線がない部分が非優先パケットである。重要パケットが優先的に契約帯域以内のパケットと判定され、時間t1では非重要パケットは常に非優先パケットとなってしまう。
本発明を適用したポリシング機能を使用して図15(a)に示すトラヒックを監視した場合の優先パケットと非優先パケットの帯域時間変化を図15(c)に示す。W-AとW-Bはそれぞれ2と1である。重要パケットの入力帯域が契約帯域の2/3以下の場合には、余剰契約帯域分の非重要パケットが優先パケットと判定される(時間t2)。一方、重要パケットの入力帯域が契約帯域の2/3以上の場合には、契約帯域の2/3分は優先パケットと判定されるが、残りの1/3は非重要パケットの帯域として確保される。すなわち、非重要パケットの帯域が契約帯域の1/3以上である場合には、契約帯域の1/3分の非重要パケットが優先パケットと判定され、契約帯域の1/3以上である場合には、全非重要パケットが優先パケットと判定される(時間t3)。以上に説明したように、本発明を適用したポリシング装置は、重要パケットに優先的に契約帯域を割り当てながら、非重要パケットの帯域も確保することができる。
以上の実施例では、重要度が違う二種のパケットが存在する場合について説明した。重要度の識別法と重要度毎の分配比重の代わりに、企業A内の二部門の識別法と各部門の分配比重をVPNサービス網200の管理者に申告しておけば、部門間の契約帯域分配を制御することが可能である。しかし、実際の企業においては、三部門以上が存在する場合も考えられる。以下の実施例では、部門数が増加した場合の例として、契約帯域を四部門が共有している場合のポリシング部について説明する。
この場合のポリシングテーブル1150のフォーマットを図11に示す。本テーブルの各エントリ1100-jはポリシングテーブル550のエントリ600-jのTHR-A 601-j、THR-B 602-jの代わりに、THR-1 1101-j、THR-2 1102-j、THR-3 1103-j、THR-4 1104-jを備える。さらに、CNT-A 605-j、CNT-B 606-jの代わりにCNT-1 1105-j、CNT-2 1106-j、CNT-3 1107-j、CNT-4 1108-jを、また、W-A 609-j、W-B 610-jの代わりにW-1 1109-j、W-2 1110-j、W-3 1111-j、W-4 1112-jを備える。これに伴い、図9に示す本実施例のポリシング結果判定部920はTHR-A 蓄積手段523、THR-B蓄積手段 524の代わりにTHR-1蓄積手段923、THR-2蓄積手段924、THR-3蓄積手段925、THR-4蓄積手段926を備える。また、図10に示す本実施例のバケツ蓄積量判定部910はCNT-A 蓄積手段515、CNT-B 蓄積手段516の代わりにCNT-1 蓄積手段915、CNT-2 蓄積手段916、CNT-3 蓄積手段917、CNT-4 蓄積手段918を備える。
帯域監視の各処理は以下の様に変わる。ポリシング開始処理700のステップ702では、フロー検出部540は企業A内の各部門の識別子を、予め契約者により申告された部門の識別方法に基づき検出し、結果をフロー重要度蓄積手段927にフロー重要度情報17として送信する。部門の識別に関しては、例えば、企業網Aの管理者が、各部門が所有する端末のIPアドレスをキャリアに申告し、フロー検出部540は送信元IPアドレスから部門を判定すれば良い。ステップ703では読みだされたTHR-1 1101-j、THR-2 1102-j、THR-3 1103-j、THR-4 1104-j、CNT-1 1105-j、CNT-2 1106-j、CNT-3 1107-j、CNT-4 1108-jを、それぞれTHR-1蓄積手段923、THR-2蓄積手段924、THR-3蓄積手段925、THR-4蓄積手段926およびCNT-1 蓄積手段915、CNT-2 蓄積手段916、CNT-3 蓄積手段917、CNT-4 蓄積手段918が蓄積する。また、W-1 1109-j、W-2 1110-j、W-3 1111-j、W-4 1112- jを帯域割り当てポリシー蓄積手段919が蓄積する。
バケツ蓄積量判定処理710の代わりに行うバケツ蓄積量判定処理1210のフローチャートを図12に示す。ステップ1211, 1212はそれぞれステップ711, 712と同様の処理である。その後、バケツ蓄積量判定回路1011は帯域割り当てポリシー設定手段919内の部門毎の帯域比重W-1、W-2、W-3、W-4に基づき、CNT-1、CNT-2、CNT-3、CNT-4から減算すべき仮の減少水量:DEC-I(I=1〜4)を計算する(ステップ1213)。ステップ1214以下の処理はDEC-IとCNT-Iの大小関係に応じて、パケットが入力する直前の水量:CNT-I’を計算する処理である。まず、ステップ1214では仮にCNT-I=CNT-I’とし、それぞれのCNT-I’が水量の減算対象であることを示すACT-I(active-I)を1に初期化する(ステップ1214)。
次に、企業内の部門番号Iを”1”に初期化する。このIはステップ1217〜1222のルーティン処理を行うために用いられる。次のステップ1216では余剰帯域R(bit/s)を”0”に初期化する。Rは各部門の余剰帯域(CNT-I−DEC-I)の総和である。ステップ1217ではACT-Iが1か否かで処理が分岐する。ACT-Iが0であってCNT-Iから減算する必要がない場合には水量の減算を行わず、部門番号IをI+1とする (ステップ1221)。一方、ACT-Iが1の場合、CNT-I'からDEC-I全てを減算できるか否かを判定する(ステップ1218)。CNT-I'<DEC-I場合には、CNT-I'=0(ステップ1219-2)とし、Rに余剰帯域分(DEC-I−CNT-I)を加算し、ACT-Iを0とする(ステップ1220)。CNT-I' ≧DEC-Iの場合にはCNT-I' = CNT-I'−DEC-Iとし(ステップ1219-1)、部門番号IをI+1とする (ステップ1221)。
全部門に関してステップ1217〜1221を実行したか否かを、Iと部門数4を比較して判定する(ステップ1222)。I≦4であり、未実行の部門がある場合には再度ステップ1217から以上の処理を繰り返す。I>4であり、未実行の部門がない場合には、ACT-IとRの値の基づき処理が分岐する(ステップ1223)。全ACT-Iが0であり全CNT-I’の水量減算が必要ないか、Rが0で振り分ける余剰帯域がない場合、バケツ蓄積量判定処理1210を終了して優先度判定処理1220へ進む。それ以外の場合にはRと、ACT-I=1の部門のW-Iに基づいて再度DEC-Iを計算し(ステップ1224)、ステップ1215へ戻る。ステップ1215から1224までの処理を繰り返すことにより、全てのCNT-I’を計算する。
図13にポリシング結果判定処理720、優先度判定処理730、ポリシング終了処理740の代わりに行う処理1220、1230、1240のフローチャートを示す。ポリシング結果判定処理1220では、違反/遵守の判定と、ポリシングテーブル1150に書き込むCNT-1”〜CNT-4”の判定を行う。優先度判定処理1230は処理730と同一である。また、ポリシング終了処理1240は、ステップ1241にてCNT-A”、CNT-B”の代わりにCNT-1”〜CNT-4”をポリシングテーブル1150にCNT1〜4として書き込む以外は、前述のポリシング終了処理740と同一である。
ポリシングテーブル1150はTHR、CNT、Wを各部門用にそれぞれ4フィールド備え、4部門までの監視を実現する。エントリ1100-j内のTHR、CNT、Wの数は、VPNサービス網200がサポートする最大部門数である。各企業の「部門数」≒「最大部門数」の場合には、ほぼ全てのフィールドが使用されるが、「部門数」≪「最大部門数」の場合には、多くの無駄なTHR、CNT、Wフィールドが発生してしまう。「部門数」≪「最大部門数」の場合にポリシングテーブル1150の容量を効率使用できる様に、エントリ1100-jの代わりに図14に示すポリシングテーブル1450のエントリ1400-jを使用しても良い。この場合には、一つのエントリ1400-jが一部門の帯域監視に必要となるため、契約者の部門数分のエントリ1400-jが必要となる。エントリ1400-jは、バケツの容量THR1401-jと、ある一つの部門の帯域監視直後に蓄積されていた水量CNT1405-jおよび分配比重W 1409-jを備えている。
さらに、POLR 1403-j、TS 1404-j、PRIC 1407-j、PRIN 1408-jを備える。これらのフィールドの値は部門によらず契約者で同一値となるため、n部門をサポートする場合、n-1ヶのPOLR 1403-j、TS 1404-j、PRIC 1407-j、PRIN 1408-jは無駄なフィールドとなる。少数部門の監視をする場合はエントリ1100-jよりもフィールドの利用効率は良いが、多部門の帯域監視を行う場合には逆に悪くなる。
ポリシングテーブル1450とした場合の帯域監視動作の変更点を以下に示す。ステップ703ではフロー検出部540が送出するフロー重要度情報17をポリシングテーブル制御回路も受信し、契約者内の全部門のエントリ1400-jを読みだすようにポリシングテーブル1450のアドレスを送信する。一契約者内に4部門ある場合には、4つのアドレスを出力し、4つのエントリ1400-jを読みだす。THR-1 蓄積手段923、THR-2蓄積手段924、THR-3蓄積手段925、THR-4蓄積手段926、CNT-1蓄積手段915、CNT-2蓄積手段916、CNT-3蓄積手段917、CNT-4蓄積手段918は各蓄積手段が蓄積すべきエントリ1400-jのTHR1401-jおよびCNT1405-jを、帯域割り当てポリシー蓄積手段919は全ての部門のW 1409-jを蓄積する。
POLR蓄積手段513、TS蓄積手段514、PRIC蓄積手段532、PRIN蓄積手段533は、任意の一エントリ1400-j内のPOLR 1403-j、TS 1404-j、PRIC 1407-j、PRIN 1408-jだけ蓄積する。これらの値はエントリ1400-jによらず契約者で同一値となるため、同一契約者内のどのエントリ1400-j内の情報を蓄積しても良い。また、ステップ1241のCNTおよびTSの書き込みにおいては、ポリシングテーブル制御回路が、図7のステップ703で読みだしたエントリ1400-j内の適切なフィールドを書き換える。