(57)【特許請求の範囲】
【請求項１】
複数の入力回線と複数の出力回線と、少なくとも一つの出力回線から構成される出力回線グループをパケットのヘッダ内の情報から判定し、当該出力回線グループに含まれる第１の出力回線及び第２の出力回線のいずれかからパケットを送信するパケット中継装置であって、
前記出力回線グループに含まれる第１の出力回線から送信する第１のパケットにより前記第１の出力回線の帯域を制御し、前記第１のパケットのパケット長を格納したダミーパケットを前記第２の出力回線の送信部に転送することにより前記出力回線グループに含まれる第２の出力回線の帯域を制御する送信制御部を備える。
【請求項２】
請求項１記載のパケット中継装置であって、
前記送信制御部は、前記第１のパケットのクラスを用いて、前記第２の出力回線の当該クラス毎の帯域を制御する。
【請求項３】
請求項２記載のパケット中継装置であって、
前記送信制御部は、ダミーパケットを廃棄するフィルタ部を備える。
【請求項４】
請求項１又は２記載のパケット中継装置であって、
前記出力回線グループは、リンクアグリゲーションで集約される複数の出力回線又はMPLSの保護LSPを収容する出力回線と該保護LSPに対応する予備LSPを収容する出力回線に対応する。
【請求項５】
複数の入力回線からパケットを受信して複数の出力回線から送信するパケット中継装置であって、
受信したパケットのヘッダ情報に基づいて当該パケットの転送先を判定する経路判定部と、
前記経路判定部により、複数の出力回線から構成される出力回線グループのうち第１の出力回線が第１のパケットの転送先として判定されたとき、前記第１の出力回線に対応する第１の送信部へ前記第１のパケットを転送し、且つ、当該出力回線グループのうち前記第１の出力回線とは別の第２の出力回線に対応する第２の送信部へ前記第１のパケットのパケット長を格納したダミーパケットを転送する受信部と、
前記第１のパケットのパケット長を用いて帯域制御を行う第１の帯域制御部と、
前記ダミーパケットのパケット長を用いて帯域制御を行う第２の帯域制御部とを有する。
【請求項６】
請求項５記載のパケット中継装置であって、
前記受信部による前記第１のパケットのパケット長の通知は、当該第１のパケットのクラスの情報を含む。
【請求項７】
請求項５記載のパケット中継装置であって、
前記経路判定部は、
受信したパケットのヘッダ情報に基づいて出力回線グループを決定する経路テーブル検索部と、
前記経路テーブル検索部で決定した出力回線グループに含まれる出力回線のうち、転送先の出力回線を決定し、且つ、前記経路テーブル検索部で決定した出力回線グループに含まれる出力回線のうち前記転送先と決定された出力回線以外の出力回線をパケット長の通知先として決定する制御部とを有する。
【請求項８】
請求項７記載のパケット中継装置であって、さらに、
前記経路判定部は、複数の出力回線と出力回線グループとを対応付けた出力回線テーブル又は複数の出力ラベルと出力回線グループとを対応付けた出力ラベルテーブルを有する。
【請求項９】
請求項５記載のパケット中継装置であって、
前記帯域制御部は、
前記受信部から受信したパケット及びダミーパケットを蓄積するキューと、
前記キューに書き込むパケット及びダミーパケットの数をカウントして閾値と比較し、カウントしたパケット及びダミーパケットの数が閾値を超えているときに前記書き込むパケット及びダミーパケットを廃棄するパケットライト部を有する。
【請求項１０】
請求項５記載のパケット中継装置であって、
前記帯域制御部は、
前記受信部から受信したパケット及びダミーパケットを蓄積するキューと、
前記キューからパケット及びダミーパケットを読み出すタイミングを当該パケット及びダミーパケットに記憶されているパケット長の情報と設定されている帯域量とに基づいて決定するパケットリード部とを有する。
【請求項１１】
請求項５記載のパケット中継装置であって、
前記帯域制御部は、
前記受信部から受信したパケット及びダミーパケットを蓄積する蓄積部と、
前記蓄積部に最近蓄積したパケット及びダミーパケットのパケット長に相当するパケット到着履歴情報を蓄積するパケット到着履歴情報蓄積部と、
前記受信部からパケット又はダミーパケットを受信したとき、当該パケット又はダミーパケットに含まれるパケット長及び前記パケット到着履歴情報蓄積部に蓄積したパケット到着履歴情報と設定されている帯域量とに基づいて、当該受信したパケット又はダミーパケットを転送するか否かを判定する転送可否判定部とを有する。
【請求項１２】
請求項６記載のパケット中継装置であって、さらに、
前記第１及び第２の送信部は、前記受信部から受信したクラスの情報に対応するクラス毎に、受信したパケット長に基づいてパケットの出力を制御する帯域制御部を有する。
【請求項１３】
請求項５記載のパケット中継装置であって、さらに、
帯域量の設定の入力を受け、前記第１及び第２の送信部へ当該帯域量を記憶させる設定制御部と、
前記第２の送信部において送信したパケットと、前記受信部から前記第２の送信部へ通知されたパケット長とを前記設定制御部で記憶された帯域量に基づいて制御する帯域制御部とを有する。
【請求項１４】
請求項５記載のパケット中継装置であって、
前記第１の送信部と前記第２の送信部は、それぞれ異なるプリント基板に設けられている。
【請求項１５】
受信したパケットを複数の回線から送信するパケット中継装置における帯域制御方法であって、
第１のパケットを受信するステップと、
前記第１のパケットを出力する出力部グループを決定するステップと、
決定した出力部グループに対応する複数の出力部のうちから、前記第１のパケットを出力する出力部を決定するステップと、
決定した出力部へ前記第１のパケットを転送するステップと、
決定した出力部グループに対応する複数の出力部のうち決定された出力部を除く出力部に前記第１のパケットのパケット長を格納したダミーパケットを転送するステップと、
前記第１のパケットのパケット長を用いて前記決定した出力部の帯域制御を行うステップと、
前記ダミーパケットのパケット長を用いて前記決定された出力部を除く出力部の帯域制御を行うステップとを有する。
【発明の詳細な説明】
【技術分野】
【０００１】
技術分野は、例えばネットワークを流れるパケットの帯域を制御するパケット中継装置及び方法に関する。
【背景技術】
【０００２】
IPネットワークで用いられるパケット型通信方式では、多数のユーザが同じ回線を共用使用できるため、帯域あたりのコストを低く抑えることができる。このパケット型通信方式の低コスト性のため、従来、専用のネットワークで実現していた各企業の電話網や業務用ネットワークをIPネットワークで実現する動きがある。このため、専用ネットワークで実現されてきた音声データやミッションクリティカルデータに対する通信品質の確保と高可用性を実現することが、IPネットワークに求められている。
【０００３】
この通信品質を確保するためには、IPネットワークを構成するパケット中継装置が、音声データやミッションクリティカルデータの通信品質を確保するための通信品質制御機能を備えることが必要となる。通信品質制御機能としては、例えば、シェーピング機能が知られている。シェーピング機能を実行するシェーピング装置に関しては、特許文献1に記載されている。本文献記載のシェーピング装置は、固定長のパケットであるセルをコネクション（VC（Virtual Connection））毎に蓄積するキューを備え、VC毎に予め設定した帯域で該キューからパケットを送信してVC毎の帯域を確保する。IPネットワークの管理者は、例えば、トラヒックが集中する回線に本技術を適用したシェーピング装置を配置し、音声データやミッションクリティカルデータにVCを割り当てることで、本データ用の通信品質を確保できる。
【０００４】
他のシェーピング装置としてはWFQ（Weighted Fair Queuing）が知られている。非特許文献1には、SCFQ（Self Clocked Fair Queuing）と呼ばれるアルゴリズムに基づいたWFQのシェーピング装置が記載されている。本文献のシェーピング装置は、複数のセッションk（=1〜N）を管理し、前記セッションk毎に重みWkを備える。パケットp_k_iがシェーピング装置に到着すると、この到着パケットp_k_iをキューに蓄積すると同時に、パケットp_k_i毎の変数F_k_iを下式に基づいて計算する。
F_k_i = L_k_i /Wk ＋ max（F_(k-1)_i, 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の総和）×回線帯域分の帯域を確保することで、本データ用の通信品質を確保できる。
【０００５】
一方、非特許文献2において、パケット中継装置における高可用性を実現する手段として複数の物理回線（物理リンク）を論理的な一つの集約回線(Link Aggregation Group)として扱い、この集約回線をあたかも一つの物理回線と同様に扱うことを可能とするリンクアグリゲーション技術が記載されている。集約回線の一つの物理回線が故障しても少なくとも一つの物理回線は正常であるため、集約回線で接続されているパケット中継装置間の通信が途切れることはない。そのため、IPネットワークの管理者は、パケット中継装置間を接続している単一回線を複数回線で接続してリンクアグリゲーションを適用することで、ネットワークの可用性を向上できる。  また、LSP（Label Switching Path）と呼ばれるパスを設定するMPLS（Multi Protocol Label Switching）ネットワークにおける高可用性を実現する手段として、非特許文献3記載のファストリルート（Fast Reroute）技術がある。本文献には、LSPを流れるトラヒックを保護する方式である１対１バックアップ（one-to-one backup）方式とファシリティバックアップ（facility backup）方式が記載されている。１対１バックアップ方式では、保護されるLSP（保護LSP（protected LSP）と呼ぶ）に対応する一つの予備LSP（backup LSP）が設定され、ファシリティバックアップ方式では、複数の保護LSPに対応する一つの予備LSPが設定されると記載されている。保護LSPに障害が発生した時には、本LSPを流れるトラヒックは予備LSPへと迂回される。IPネットワークの運用者が保護LSPに対する予備LSPを設定して前記迂回を実施することで、ネットワークの可用性が大きく向上する。
【０００６】
【特許文献１】特開平６−３１５０３４号公報
【非特許文献１】S.Golestani, 鄭 Self-Clocked Fair Queuing Scheme for Broadband Applications”, In proc. of INFOCOM'94, pp.636-646,1994.
【非特許文献２】Link Aggregation according to IEEE standard 802.3ad (http://www.syskonnect.com/syskonnect/technology/wp-lag_e.pdf)
【非特許文献３】IETF Internet Draft draft-ietf-mpls-rsvp-lsp-fastreroute-07.txt 擢ast Reroute Extensions to RSVP-TE for LSP Tunnels”
【発明の開示】
【発明が解決しようとする課題】
【０００７】
前述した特許文献1、非特許文献1記載のシェーピング装置は、単一の出力回線へのパケット出力を前提としており、複数回線へのパケット出力を考慮していない。そのため、特許文献1または非特許文献1を適用したシェーピング装置は、リンクアグリゲーション技術を適用した複数の物理回線に出力するパケットの総帯域を制御できない。そのため、リンクアグリゲーション技術を適用したパケット中継装置からなるIPネットワークにおいて、音声データやミッションクリティカルデータに対する通信品質が確保されない課題がある。
【０００８】
また、非特許文献3記載のファストリルート技術を適用したネットワークにおいては、パケット中継装置が、別々の出力回線に設定された保護LSPと予備LSPに分散してパケットを送信することも考えられる。特許文献1または非特許文献1を適用したシェーピング装置は、複数回線へのパケット出力を考慮していないため、保護LSPと対応する予備LSPのパケットの総帯域を制御できない。そのため、ファストリルート技術を適用したパケット中継装置からなるIPネットワークにおいて、音声データやミッションクリティカルデータに対する通信品質が確保されない課題がある。
【０００９】
また、リンクアグリゲーションやファストリルートの保護LSPと予備LSPのような出力回線グループを構成する出力回線のそれぞれに対応するシェーピング部は、故障に備えて別々のプリント基板上に実装されることが望ましい。別基板に実装されるシェーピング部間で情報を受け渡して動作する簡易な実装では、情報伝達の遅延時間が大きくなり、それぞれのシェーピング部は帯域の制御を高速に行うことが困難となる課題がある。
【課題を解決するための手段】
【００１０】
前述した課題を解決するために、例えば、複数の入力回線と複数の出力回線と、少なくとも一つの出力回線から構成される出力回線グループをパケットのヘッダ内の情報から判定し、出力回線グループに含まれる第１の出力回線及び第２の回線のいずれかからパケットを送信するパケット中継装置であって、出力回線グループに含まれる第１の出力回線から送信する第１のパケットのパケット長を用いて、出力回線グループに含まれる第２の出力回線の帯域を制御する送信制御部を備えるパケット中継装置を提供する。
【００１１】
上記以外の課題とその解決手段は、本願の「発明を実施するための最良の形態」の欄および図面で明らかにされる。
【発明の効果】
【００１２】
例えば、上記手段を備えることにより、複数回線へ出力するパケットの総帯域を制御できる。
【発明を実施するための最良の形態】
【００１３】
以下、図1から図24を用いて本発明に好適な実施例を説明する。ただし、本発明はこの実施例に限定されるものではない。また、本実施例ではMPLSの保護LSPを収容する出力回線を「保護回線」と、該保護LSPに対応する予備LSPを収容する出力回線を「予備回線」と呼ぶ。また、リンクアグリゲーションで集約される複数の出力回線の集合を「集約回線」と、保護回線と対応する予備回線の集合を「保護/予備回線」と、集約回線と保護/予備回線の総称を「出力回線グループ」と呼ぶことにする。
【００１４】
（１）ルータの概要動作
以下では、本実施例のシェーピング機能を備えるルータの概要動作を、図2を用いて説明する。図2は本実施例のパケット中継装置200を示す。パケット中継装置200はパケットが入力するNの入力回線201-i(i=1-N)とNの出力回線202-i(i=1-N)と、Nのインターフェース部210-i(i=1-N)と、インターフェース部210-iを結合するスイッチ部250と、プロセッサ260から構成される。インターフェース部210-iは、入力回線201-iより受信するパケットの受信処理を行うパケット受信部230-iと、出力回線202-iヘ送信するパケットの送信処理を行うパケット送信部240-iとヘッダ処理部220-iより構成される。ヘッダ処理部220は、入力回線201より入力したパケットのヘッダ情報等に基づいて該パケットを出力する出力回線202-jの番号である'j'や該パケットのMPLS用ラベルを判定する経路判定部221と、ヘッダ情報等に基づいて入力したパケットが属する通信品質のクラス(以下、単に「クラス」と呼ぶ)を判定するフロー検出部222から構成される。ここで、クラスとは、パケットの種類（例えば音声＝VoIPや映像等）や、優先順位を示す。
【００１５】
図3は、入力回線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から構成される。
【００１６】
図4は、パケット中継装置200内部のパケットフォーマットの一例を示す。本フォーマットは、図3のフォーマットに内部ヘッダ部330が備わる。この内部ヘッダ部330は入力パケットのパケット長を表すパケット長331と、該パケットが入力した回線の番号である入力回線番号332と、該パケットの出力回線の番号である出力回線番号333と、該パケットのクラス334とから構成される。また、パケット中継装置200内部では、図4のフォーマットのパケットに加えて、内部ヘッダ部330から構成されるダミーパケットも使用される。このダミーパケットの使用方法については後述する。
【００１７】
以下では、パケットが入力回線201より入力し、出力回線202に出力されるまでの流れを図2によって説明する。パケットが入力回線201より入力すると図5のパケット受信部230の内部ヘッダ付加回路510は内部ヘッダ部330を付加し、該パケットのバイト長をカウントしてパケット長331に、該パケットが入力した入力回線201の番号を入力回線番号332に書き込んで、該パケットをパケット一時蓄積バッファ520に蓄積する。
【００１８】
さらに、パケットヘッダ送信部550は、パケット一時蓄積バッファ520内のパケットのヘッダ部310と内部ヘッダ部330の情報を、パケットヘッダ情報21としてヘッダ処理部220の本中継装置200固有の経路判定部221とフロー検出部222に送信する。なお、この際、出力回線番号333、クラス334の値は意味のない値となっている。
【００１９】
経路判定部221は、受信したパケットヘッダ情報21のDIP312またはDMAC317の情報から一つの出力回線の番号(出力回線番号と呼ぶ)とn個のダミーパケットの出力回線番号であるダミーパケット用出力回線番号k(kはn以下の正の整数)を判定する。nが1 以上となるのは、パケットの出力回線がリンクアグリゲーションの集約回線やファストリルートの保護/予備回線等の出力回線グループに属している場合である。さらに、出力回線番号をパケット出力回線情報22としてパケット受信部230に送信し、nが1以上の場合にはダミーパケット用出力回線番号kを、kの値が小さい順にダミーパケット用出力回線情報24-kとしてパケット受信部230に送信する。
【００２０】
一方、ヘッダ処理部220のフロー検出部222は、受信したパケットヘッダ情報21から該パケットのクラスを判定し、パケットクラス情報23としてパケット受信部230に送信する。
【００２１】
パケット受信部230のヘッダ書き込み回路560は、パケット出力回線情報22とパケットクラス情報23の値をパケット一時蓄積バッファ520内のパケットの出力回線番号333とクラス334の各フィールドに書き込み、パケット読み出し回路530は本パケットをパケット一時蓄積バッファ520から読み出してスイッチ部250に送信する。さらにダミーパケット用出力回線情報24-kを受信するたびに、ヘッダ書き込み回路560はパケット一時蓄積バッファ520内のパケットの出力回線番号333をダミーパケット用出力回線情報24-kの値に書き換え、パケット読み出し回路530はダミーパケットk(kはｎ以下の正の整数)としてスイッチ部250に送信する。ダミーパケット用出力回線情報24-kを受信するたびダミーパケットが送信されるため、n個のダミーパケットがスイッチ部250に送信されることとなる。
【００２２】
ダミーパケットが内部ヘッダ330だけから構成されるのは、スイッチ部250やパケット送信部240のパケット転送の負荷を下げるためである。パケット送信部240において、ヘッダ部310やデータ部320を参照する必要がある場合には、これらの情報をダミーパケットに付加して送信しても良い。
【００２３】
MPLSネットワークにおけるパケット(MPLSパケットと呼ぶ)と本パケットのパケット中継装置200内のフォーマットをそれぞれ図6と図7に示す。本フォーマットは、図3および図4のフォーマットにラベル318と出力ラベル335が追加されている。また、MPLSネットワークに設置されるパケット中継装置200内のダミーパケットは、図7の内部ヘッダ部1330から構成される。
【００２４】
MPLSネットワークにおけるパケット中継装置200の経路判定部221は受信したパケットヘッダ情報21のラベル318に基づいて、出力回線番号とダミーパケット用出力回線番号k (kはｎ以下の正の整数)および、パケット転送用のLSPを示す出力ラベル値とダミーパケット用のLSPを示す出力ダミーラベル値k(kはn以下の正の整数)を判定する。さらに、出力回線番号、出力ラベル値の情報をそれぞれ、パケット出力回線情報22、パケット出力ラベル情報25としてパケット受信部230に送信し、nが1以上の場合には、ダミーパケット用出力回線番号k、ダミー出力ラベル値kを、kが小さい順にダミーパケット用出力情報26-kとしてパケット受信部230に送信する。なお、図2において、ラベル情報25と26-kは、図が煩雑となるため省略してある。
【００２５】
パケット受信部230のヘッダ書き込み回路560は、パケット出力回線情報22とパケットクラス情報23とパケット出力ラベル情報25の値を受信すると、それぞれを出力回線番号333、クラス334、出力ラベル335の各フィールドに書き込み、パケット読み出し回路530は本パケットをパケット一時蓄積バッファ520から読み出してスイッチ部250に送信する。さらに、ダミーパケット用出力情報26-kを受信するたびに、出力回線番号333と出力ラベル335を情報26-ｋ内の値に書き換え、パケット読み出し回路530は内部ヘッダ部1330をダミーパケットkとしてスイッチ部250に送信する。ダミーパケット用出力情報26-kを受信するたびダミーパケットが送信されるため、n個のダミーパケットがスイッチ部250に送信されることとなる。
【００２６】
通常のパケットまたはダミーパケットを受信したスイッチ部250は、出力回線番号333に対応するインターフェース部210のパケット送信部240にパケットおよびダミーパケットを送信する。
【００２７】
図8にパケット送信部240の詳細を示す。このパケット送信部240はシェーピング部100、フィルタ回路620、内部ヘッダ削除回路610およびパケット送信回路630より構成される。シェーピング部100はダミーパケットのパケット長が本パケット内のパケット長331であると仮定し、対応する出力回線202へのダミーパケットと通常のパケットの帯域を制御して送信する。ダミーパケットと通常のパケットの帯域は、出力回線グループ（集約回線や保護/予備回線など）を構成する出力回線202に送信すべきパケットの総帯域となる様に制御する。例えば、集約回線や保護/予備回線へのパケットの総帯域を最大帯域A Mbpsに制限する場合には、シェーピング部100はダミーパケットと通常のパケットの総帯域をA Mbpsに制限して送信する。但し、実際にはダミーパケットのパケット長は、該パケット内のパケット長331より短いため、実際の帯域はA Mbps未満となっている。
【００２８】
また、出力回線グループを構成する他の出力回線202に対応するシェーピング部100も、前記シェーピング部100と全く同様にダミーパケットと通常のパケットの総帯域を制御して送信する。前述の総帯域を最大帯域A Mbpsに制限する場合には、該シェーピング部100はダミーパケットと通常のパケットの総帯域をA Mbpsに制限して送信する。
【００２９】
一方、これらのパケットを受信したフィルタ回路620は、通常のパケットだけを内部ヘッダ削除回路610に送信してダミーパケットを廃棄する。内部ヘッダ削除回路610は内部ヘッダ部330を削除し、パケット送信回路630に送信し、パケット送信回路630は受信したパケットを出力回線202に送信する。
【００３０】
この際、フィルタ回路620にて廃棄されたダミーパケットは、出力回線グループを構成する他の出力回線へのフィルタ回路620より送信される。そのため、最終的に前記出力回線グループに送信されるパケットの総帯域は、一つのシェーピング部100が送信したダミーパケットと通常のパケットの総帯域と等しくなる。前述の総帯域を最大帯域A Mbpsに制限する場合には、シェーピング部100は、出力回線グループを構成する出力回線202への総帯域を、最大帯域A Mbpsに制限したパケット送信を実現する。以下に具体例を説明する。
【００３１】
＜具体例1＞
ある集約回線が出力回線202-1と202-2から構成され、該集約帯域の総帯域を最大帯域10Mbpsに制限して送信する場合を考える。この際、それぞれのシェーピング部100-1と100-2は、ダミーパケットのパケット長が本パケット内のパケット長331の値であると仮定し、出力するパケットとダミーパケットの帯域を最大でもそれぞれ10Mbpsとなるように制御する。図9にシェーピング部100-1と100-2が出力するパケットの時刻を示す。白抜きのパケットが通常のパケット、斜線が入ったパケットがフィルタ回路620で廃棄されるダミーパケットであり、各シェーピング部100が出力するパケットとダミーパケットの帯域はそれぞれ最大でも10Mbpsとなっている。シェーピング部100-1と100-2が送信する通常のパケットとダミーパケットは最大で20Mbpsとなるが、ダミーパケットがフィルタ回路620-1で廃棄されるため、最終的に送信されるパケットの帯域は10Mbps以下となる。このシェーピング部100の詳細動作に関しては後述する。
【００３２】
シェーピング部100-1と100-2が前記集約回線への総帯域を、最低帯域10Mbpsを保証して送信する場合にも、シェーピング部100はダミーパケットのパケット長がパケット長331であると仮定し、パケットとダミーパケットの総帯域が最低でもそれぞれ10Mbpsとなるように制御するだけである。この際、フィルタ回路620-1にて廃棄されたダミーパケットは、対を成す出力回線のフィルタ回路620-2より送信されるため、最終的に前記集約回線に送信されるパケットは最低でも10Mbpsとなる。
【００３３】
＜具体例2＞
出力回線202-1と202-2から構成される集約回線がクラス1とクラス2を備え、各クラスの帯域を、最大帯域20Mbps、80Mbpsに制限して送信する場合を考える。この際、それぞれのシェーピング部100-1と100-2は、ダミーパケットのパケット長がパケット長331の値であると仮定し、クラス1と2のパケットとダミーパケットをそれぞれ20Mbps、80Mbpsに制限して送信する。
【００３４】
この場合もケース1と同様に、シェーピング部100-1と100-2が送信するクラス1と2の通常のパケットとダミーパケットはそれぞれ最大で40Mbps、160Mbpsとなる。ダミーパケットはフィルタ回路620-1で廃棄されるため、最終的に送信されるパケットの帯域はそれぞれ20Mbps、80Mbps以下となる。
【００３５】
これまで、出力回線グループを構成する出力回線の数が2のケースを説明したが、3以上であっても同様である。即ち、ここで出力回線グループを構成する出力回線202の数をmとすると、全てのシェーピング部100が送信するパケットの帯域は最大で最大帯域×mとなる。しかし、一つのパケットに対応してm-1回線に送られるダミーパケットは、フィルタ回路620で全て廃棄されるため、最終的に送信されるパケットの帯域は最大でも最大帯域以下となる。
【００３６】
シェーピング部100-1と100-2が、クラス1および2の最低帯域を保証して送信する場合にも、シェーピング部100が最低帯域を保証するようにパケットとダミーパケットを送信するだけである。この際、フィルタ回路620-1にて廃棄されたダミーパケットは、出力回線グループを構成する他の出力回線へのフィルタ回路620-2より送信されるため、前記出力回線グループを構成する出力回線202に送信されるパケットの最低帯域は保証される。
【００３７】
シェーピング部100-1と100-2は、以上に説明した最大帯域の制限、最低帯域の保証以外の帯域制御を行っても良い。例えば、クラス1とクラス2の帯域を、それぞれのクラスに設定された比率に基づいて分配するWFQなどが考えられる。この際、それぞれのシェーピング部100は、クラス１とクラス2の比率を満たすように、パケットとダミーパケットを送信すれば良い。
【００３８】
これまで、該パケットとダミーパケットによってあるパケットのパケット長を、出力回線グループを構成する出力回線のインターフェース部210に通知する実施例を説明してきた。しかし、該パケットのパケット長をインターフェース部210に通知できれば、ダミーパケットを用いなくても良い。
【００３９】
（２）経路判定部の詳細動作
以下では、本中継装置200固有の経路判定部221の詳細動作を、図10を用いて説明する。
【００４０】
（２−１）集約回線へ送信するパケットの総帯域を制御する場合
まず、図10に示す経路判定部221がパケット受信部230よりパケットヘッダ情報21を受信すると、ヘッダ情報蓄積部850は該情報を蓄積する。次に、制御部830はヘッダ情報蓄積部850に蓄積されたヘッダ部310のDMAC317またはDIP312を読み出して、経路テーブル検索部810に送信する。経路テーブル検索部810は出力回線グループの番号（出力回線グループ番号と呼ぶ）とDMAC、または、出力回線グループ番号とDIPの対応表を管理し、DMACやDIPが入力されると、対応する出力回線グループ番号を制御部830に出力する。
【００４１】
制御部830は、受信した出力回線グループ番号から一つ乃至は複数の出力回線番号の候補を判定する。出力回線番号の候補が二つ以上存在するのは、出力回線グループが複数の出力回線202より構成される場合である。さらに、これらの候補の中からパケットを出力する一つの出力回線番号を判定し、パケット出力回線情報22としてパケット受信部230に送信する。また、出力回線番号の候補が二つ以上ある場合には、出力回線番号の候補値のうち該出力回線番号以外の値を、ダミーパケットを送信するダミーパケット用出力回線番号k(k=1, 2…n)と判定し、ダミーパケット用出力回線情報24-k(ｋ=1, 2…n)として制御部830に送信する。例えば、集約回線が3つの出力回線202より構成される場合、一つのパケット出力回線情報22とダミーパケット用出力回線情報24-1および24-2を制御部830に送信する。
【００４２】
出力回線番号の候補の判定は、例えば、制御部830が図11記載の出力回線番号テーブル820を参照することで実現される。出力回線番号テーブル820は、4つの出力回線番号を記載するエントリ910-i (i =1〜4)を出力回線グループ毎に備える。本テーブルは出力回線グループの数の最大値が4であり、集約回線の出力回線数が最大4回線の場合が記載されているが、エントリ910-iの数や、エントリ910-i内の出力回線番号数を増加することにより、これらの最大値を容易に増加できる。
【００４３】
エントリ910-i が4つ未満の出力回線番号を格納する際には、有効な出力回線番号をエントリ910-iの左側から格納する。図11の出力回線番号テーブル820では、出力回線グループ1が出力回線202-1、2、出力回線グループ2が出力回線202-3、出力回線グループ3が出力回線202-4と202-5から構成されている。エントリ910の最も左側の出力回線番号から順に以下で述べるハッシュ値1、2、3および4に対応し、図中の”＊”は有効な値が設定されていないことを表している。制御部830は、経路テーブル検索部810から受信した出力回線グループ番号をアドレスとして出力回線番号テーブル820を読み出し、有効な出力回線番号を出力回線番号の候補と判定すれば良い。
【００４４】
出力回線番号の候補の中から、一つの出力回線番号を判定する方法としては、例えば、4つのハッシュ関数H4(x)、H3(x)、H2(x)、H1(x)を用いた方法が考えられる。H4(x)は引数xに対してハッシュ値として1〜4の中から一つの整数を、H3(x)は1〜3中から一つの整数を、H2(x)は1、2の中から一つの整数を、H1(x)は1を出力する。制御部830は、出力回線番号テーブル820の参照により得られた有効な出力回線番号の数'h'から一つのハッシュ関数Hh(x)を選択する。例えば、出力回線グループ2の場合にはハッシュ関数H1(x)を、出力回線グループ1、3の場合にはハッシュ関数H2(x)を選択する。さらに、ヘッダ情報蓄積部850に蓄積されるヘッダ部310の情報のうち、少なくともひとつの情報から構成される値を引数xとして、Hh(x)の値を計算する。例えば、引数xの値としては、SIP311、DIP312、SPORT313、DPORT314を連結した情報などが考えられるが、それ以外の情報であっても良い。最後に、制御部830はハッシュ値に対応した出力回線番号の候補を最終的な出力回線番号と、それ以外をダミーパケット用出力回線番号kと判定すれば良い。
【００４５】
（２−２）ファストリルートの保護/予備回線へ送信するパケットの総帯域を制御する場合
本実施例のパケット中継装置200がMPLSのネットワークに設置される場合、経路判定部221の経路テーブル検索部810は、出力グループ番号とラベル318の対応を管理し、ラベル318が入力されると対応する出力グループ番号を制御部830に出力する。ここで出力グループ番号は、ファストリルートの保護回線と、該保護回線に設定される保護LSPと、予備回線と、該予備回線に設定される予備LSPの情報の組に対応する情報である。
【００４６】
制御部830は、受信した出力グループ番号から、一つ乃至は複数の出力回線番号と出力ラベルの組を判定する。さらに、これらの組の中から一組を判定し、構成するそれぞれの情報をパケット出力回線情報22とパケット出力ラベル情報25としてパケット受信部230に送信する。さらに、他の組k(k=1, 2…n) (kはn以下の正の整数)を構成する出力回線番号と出力ラベルを、ダミーパケット用出力情報26-kとしてパケット受信部230に送信する。
【００４７】
一つ乃至は複数の出力回線番号と出力ラベル番号の組の判定は、例えば、制御部830が前述の出力回線番号テーブル820の代わりに、図12記載の出力回線/出力ラベル番号テーブル1920を備えれば良い。本テーブル1920は出力グループ番号毎に出力回線番号と出力ラベル番号の組を4つ格納するエントリ1910を備える。制御部830は、出力グループ番号に対応するエントリ1910を読み出すことで、出力回線番号と出力ラベル番号の組を判定できる。また、これらの組の中から、一つの組を判定する方法としては、前述の集約回線へ出力するパケットの総帯域を制御する場合と同様に、ハッシュ関数を用いて選択すれば良い。
【００４８】
（３）シェーピング部100の詳細動作
パケット中継装置200固有のシェーピング部100の詳細動作を、図1を用いて説明する。図1のシェーピング部100はパケットを蓄積するクラス1用のFIFO1およびクラス2用のFIFO2を備えるパケットバッファ110と、バッファ110に書き込むパケットを一時蓄積するパケット一時蓄積バッファ120と、バッファ110にパケットを書き込むパケットライト部130と、バッファ110よりパケットを読み出すパケットリード部150と、FIFO1およびFIFO2から読み出したパケットを多重してフィルタ回路620に送信する多重回路140から構成される。
【００４９】
本実施例では、前述のフロー検出部222が判定するクラス数が2であって、FIFO1およびFIFO2が、それぞれクラス1およびクラス2に対応する場合を説明する。3クラス以上のクラス扱う場合には、シェーピング部100はより多くのFIFOを備え、フロー検出部222が3以上のクラスを判定すれば良い。
【００５０】
シェーピング部100の処理はスイッチ部250からパケットを受信し、該パケットをバッファ110に書き込むパケットライト処理と、該パケットをバッファ110より読み出して、フィルタ回路620に送信するパケットリード処理から構成される。以下では、これらの処理の詳細を説明する。
【００５１】
（３−１）パケットライト処理
本処理は、主にパケットライト部130により行われる処理である。スイッチ部250よりパケットまたはダミーパケットを受信すると、パケット一時蓄積バッファ120は該パケットを蓄積し、内部ヘッダ部330のクラス334をパケットライト部130に送信する。パケットライト部130の詳細を図13に示す。パケットライト部130は、FIFO1およびFIFO2に蓄積されているパケットの数をカウントするパケット数カウンタ1と2と、それぞれの閾値を格納するパケット数閾値蓄積部1と2と、制御部1000より構成される。パケット一時蓄積バッファ120よりクラス334を通知されると、制御部1000はクラス334に対応するパケット数カウンタ内のカウンタ値とパケット数閾値蓄積部の閾値を読み出す。カウンタ値 ≦ 閾値である場合には、パケット一時蓄積バッファ120内のパケットを、クラス334に対応するFIFOに書き込み、対応するパケット数カウンタを'1'増加させる。一方、カウンタ値 ＞ 閾値である場合には、パケット一時蓄積バッファ120内のパケットをFIFOに書き込まない。この際、バッファ120内のパケットは最終的には後続のパケットに上書きされて廃棄される。
【００５２】
本実施例では、一つのパケットがダミーパケットとしてコピーされ、通常のパケットとダミーパケットが、出力回線202が異なるFIFOに送信される。シェーピング部100が正確な帯域の制御を行うため、これらのFIFO用の閾値を同一とする必要がある。これはFIFOにおけるパケットと対応するダミーパケットの蓄積・廃棄の判定が同一とする必要があるためである。閾値の値が異なる例としてシェーピング部100-1のパケット数閾値蓄積部の閾値がシェーピング部100-2の値よりも小さく、シェーピング部100-1が受信した図9のパケットAが廃棄される場合を考えてみる。この際、図14に示すようにシェーピング部100-2は、シェーピング部100-1がパケットAを出力すると仮定し、パケットBおよびダミーパケットCの送信時刻を判定してしまうため、正確な帯域の制御が行われない。シェーピング部100-1の閾値の値をシェーピング部100-2と同一とし、パケットAがシェーピング部100-1に蓄積されれば、正確な帯域制御が実現される。
【００５３】
（３−２）パケットリード処理
本処理は、主にパケットリード部150により行われる処理である。パケットリード部150の一実現例を図15に示す。パケットリード部150は、制御部1110と、クラス毎に次パケットの送信時刻(次パケット送信時刻)を格納する図16に示すパケット送信管理テーブル1120と、クラス毎の帯域情報を格納する帯域情報蓄積部1140と、現時刻を格納するタイマー1160より構成される。図17に、出力回線グループのクラス1の最大帯域とクラス2の最大帯域をそれぞれ20Mbps、80Mbpsに制限する場合の帯域情報蓄積部1140の一例を示す。帯域情報蓄積部1140は、帯域情報としてクラス毎の最大帯域を設定するエントリ1341から構成される。
【００５４】
パケットリード処理を図18のフローチャートを使用して説明する。本処理は、図8のパケット送信回路630が送信する送信可能信号13をパケットリード部150が受信することで開始される(ステップ1400)。送信可能信号13は、パケット送信回路630に対応する出力回線202にパケットを送信できることを示す情報である。
【００５５】
制御部1110は、本信号を受信すると、パケットライト部130に対して、パケット数カウンタ1および2に格納されている値の送信を要求する(ステップ1401)。本要求を受信したパケットライト部130の制御部1000はパケット数カウンタ1および2の値をパケットリード部150に送信する(ステップ1402)。
【００５６】
パケットリード部150の制御部1110は、正の整数を格納するカウンタの存在有無をチェックして、パケットが蓄積されているクラスを判定する(ステップ1403)。結果が「有り」の場合、「有り」と判定したクラスに対応するパケット送信管理テーブル1120のエントリ1121を読み出し、次パケット送信時刻が最も早い(次パケット送信時刻が最も小さい)クラスを「送信クラス」と判定する(ステップ1404)。例えば、次パケット送信時刻が図16の場合、クラス1、2ともに「有り」であれば、次パケット送信時刻が早いクラス2を「送信クラス」と判定する。また、クラス1またはクラス2の一方の結果が「有り」の場合、「有り」と判定したクラスを「送信クラス」と判定する。両クラスの結果が「無し」の場合には、前述のパケットライト処理により何れかのカウンタ値が'0'から正の整数に変化するまで待機する。この待機はシェーピング部100がステップ1402、1403を再度実行することで実現される。
【００５７】
次にタイマー1160が示す現時刻と送信クラスの次パケット送信時刻を比較し(ステップ1405)、次パケット送信時刻 ≧ 現時刻(即ち、次パケット送信時刻が現時刻または過去の時刻)である場合には、判定した送信クラスをパケット送信クラス情報11としてパケットバッファ110に通知する(ステップ1406)。パケット送信クラス情報11に対応するFIFOは、先頭のパケット（即ち、蓄積パケットのうち、最も過去に到着したパケット）を読み出して多重回路140に送信し、多重回路140は出力回線202行きのパケットをフィルタ回路620に送信すると同時に、内部ヘッダ部330のパケット長331を送信パケット長情報12としてパケットリード部150に送信する(ステップ1407)。
【００５８】
一方、次パケット送信時刻 ＜ 現時刻(即ち、次パケット送信時刻が未来の時刻)の場合、該次パケット送信時刻となるまで待機する必要がある。この待ち時間の間にパケットライト時処理により、FIFOにパケットが蓄積されパケット数カウンタ1または2の値が0から正の整数に変化する場合があるが、この際、次パケット送信時刻が最も早い「送信クラス」が変化する可能性がある。例えば、パケット数カウンタ1と2の値が、それぞれ3と0であってパケット送信管理テーブル1120の格納値がそれぞれ図16に記載された値である場合を考える。タイマー1160の値が2であり、クラス1のパケット出力を待機している時に、クラス2のパケットが入力すると、次パケット送信時刻がより早いクラス2が送信クラスとなる。
【００５９】
この様なケースに対応するため、次パケット送信時刻 ＜ 現時刻 である場合には、再度、制御部1110はカウンタ値の送信要求をパケットライト部130に送信し(ステップ1402)、値が正の整数であるのカウンタ値の有無をチェックし(ステップ1403)、送信クラスの判定を行う(ステップ1404)。
【００６０】
ステップ1402から1405のループの間に、次パケット送信時刻を過ぎてステップ1406（クラス情報の送信）が終了すると、前述の通りパケット送信クラス情報11に対応するFIFOは、先頭のパケットを読み出して多重回路140に送信し、多重回路140はパケットをフィルタ回路620に送信すると同時に、内部ヘッダ部330のパケット長331を送信パケット長情報12としてパケットリード部150に送信する(ステップ1407)。
【００６１】
ステップ1407にてパケットが送信されると、制御部1110は帯域情報蓄積部1140より送信クラスに対応するエントリ1341を読み出し(ステップ1408)、読み出した最大帯域と、ステップ1407にて多重回路140が送信した送信パケット長情報12内のパケット長(byte)から決まる次パケット送信時刻を計算する(ステップ1409)。次パケット送信時刻の計算は以下の式に基づいて行われる。
次パケット送信時刻 ＝ 現時刻 ＋ パケット長(byte)×8／最大帯域(bit/秒)…式1
計算後、パケット送信管理テーブル1120に新たな次パケット送信時刻を書き戻す(ステップ1410)。最後に、制御部1110は、送信クラスに対応するパケットライト部130のパケット数カウンタの減算要求をパケットライト部130に送信し(ステップ1411)、パケットライト部130の制御部1000は送信クラスに対応するパケット数カウンタの値を'1'減算する(ステップ1412)。
【００６２】
以上に説明したように本実施例のシェーピング部100のパケットリード部150は、大域情報蓄積部1140に蓄積された最大帯域に基づいて次パケット送信時刻をクラス毎に計算し、該次パケット送信時刻が現在あるいは過去となった場合にのみ各クラスのパケットを送信するため、シェーピング部100は最大帯域を遵守したパケットおよびダミーパケットの送信を実現する。出力回線グループを構成する出力回線202の数をmとすると、全てのシェーピング部100が送信するパケットの帯域は最大で最大帯域×mとなる。一つのパケットに対応してm-1回線に送られるダミーパケットは、フィルタ回路620で全て廃棄されるため、本実施例のパケット中継装置200は、最終的に送信するパケットの帯域を最大帯域以下に抑えることができる。
【００６３】
以上の実施例では、帯域情報が各クラスの最大帯域である場合を説明したが、それ以外の帯域情報であっても良い。例えば、各クラスの最低帯域であり、各クラスの最低帯域を確保してパケットを送信しつつ、各出力回線グループの総帯域に余剰帯域が存在する場合には、該最低帯域を超えて送信する帯域情報などが考えられる。ここで総帯域とは、出力回線グループを構成する出力回線の物理帯域の総和である。例えば、ある集約回線がファーストイーサネット(物理帯域は100Mbps)(イーサネットは登録商標)の出力回線202-1と202-2から構成される際には、総帯域は200Mbps(＝100Mbps×2回線)となる。総帯域に余剰帯域が発生するのは、各クラスの最低帯域の総和が総帯域よりも小さい場合や、特定クラスのパケットが入力されずに、このクラスの最低帯域分のパケット出力が無い場合である。
【００６４】
最低帯域を確保するシェーピング部100の帯域情報蓄積部1140は、最大帯域の代わりに最低帯域をエントリ1341に格納することとなる。図19の設定値の場合、クラス1とクラス2の最低帯域はそれぞれ40Mbps、120Mbpsである。シェーピング部100はステップ1409における次パケット送信時刻を、下記の式2に基づいて計算する。
次パケット送信時刻 ＝ 現時刻 ＋ パケット長(byte)×8／最低帯域(bit/秒)…式2
さらに、各クラスに余剰帯域を割り当てるため、ステップ1405では次パケット送信時刻の値に関係なくステップ1406に進む。本ステップ1405の変更により余剰帯域が各クラスの最低帯域の比率に基づき分配される。例えば、リンクアグリゲーションの集約回線が100Mbpsの出力回線202-1と202-2で構成され、集約回線に存在するクラス1とクラス2の最低帯域が図19の値である場合を考える。
【００６５】
クラス1、2のパケットが本実施例のパケット中継装置200にそれぞれ150Mbps入力する場合には、集約回線の余剰帯域は40Mbps(= 200Mbps−(40Mbps＋120Mbps))となる。この余剰帯域は、各クラスにそれぞれの最低帯域の比率で分配され、各クラスの帯域は50Mbps(=40Mbps＋40Mbps×40Mbps/(40Mbps＋120Mbps))と150 Mbps(= 120Mbps＋40Mbps×120Mbps/(40Mbps＋120Mbps))となる。
【００６６】
また、本実施例のシェーピング部100は、各出力回線グループの出力回線201の総帯域を各クラスの重みWに基づいて分配するWFQ(Weighted Fair Queuing)を実現することも可能である。前述したように、本実施例のパケット中継装置200は、集約回線を構成する出力帯域の総帯域を、最低帯域の比率で割り当てる。そのため、帯域情報蓄積部1140に設定される最低帯域の値として、各クラスのWに比例した任意の帯域が設定されれば、シェーピング部100はWFQを実現できる。
【００６７】
（４）シェーピング部の代わりに帯域監視部を用いた実施例
以上では、パケットを蓄積するバッファを備えるシェーピング部100の一実施例を説明した。出力回線グループへの総帯域を最大帯域に制限する場合には、パケット中継装置200がシェーピング部100の代わりに図20記載の帯域監視部2000を備えていても良い。シェーピング部100と帯域監視部2000とを総称して、帯域を制御する帯域制御部とも呼ぶ。
【００６８】
出力回線グループを構成する出力回線に対応した全ての帯域監視部2000は、ダミーパケットのパケット長が本パケット内のパケット長331であると仮定し、ダミーパケットと通常のパケットの総帯域を最大帯域以下となる様に制御する。例えば、集約回線や保護/予備回線へのパケットの総帯域を最大帯域A Mbpsに制限する場合には、帯域監視部2000はダミーパケットと通常のパケットの総帯域をA Mbpsに制限して送信する。但し、実際にはダミーパケットのパケット長は、該パケット内のパケット長331より短いため、実際の帯域はA Mbps未満となっている。
【００６９】
以下では、帯域監視部2000の詳細動作を図20乃至22を用いて説明する。本監視部2000の帯域監視のアルゴリズムとして固定長パケットであるセルの監視アルゴリズムであるcontinuousstate Leaky Bucket Algorithm(以下リーキーバケットアルゴリズム)を可変長パケットの帯域監視用に拡張したアルゴリズムを使用する。リーキーバケットアルゴリズムはある深さを持った穴の空いた漏れバケツのモデルで、バケツに水が入っている間は監視帯域で水は漏れ、セル到着時にはバケツに１セル分の水が注ぎ込まれる。セルの到着揺らぎを許容するためにバケツに深さを持ち、バケツが溢れないうちは入力セルは遵守と、溢れると違反と判定される。本実施例ではパケット到着時に注ぎ込む水の量を可変とすることにより、可変長パケットの帯域監視を実現する。
【００７０】
本アルゴリズムに基づく帯域監視を実行する帯域監視部2000は帯域監視テーブル制御部2060と、バケツ蓄積量判定部2010と、監視結果判定部2020と、帯域監視テーブル2030と、一時蓄積バッファ2040と、制御部2060より構成される。図21に帯域監視テーブル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)より構成される。なお、TS 2103-kとCNT 2104-kは帯域監視部2000に到着した最近のパケットの到着履歴を表すため、これらをパケット到着履歴情報と呼ぶこともある。
【００７１】
図22に帯域監視部2000のフローチャートを示す。帯域監視部2000の処理は帯域監視開始処理2200、バケツ蓄積量判定処理2210、監視結果判定処理2220である。後の２処理はそれぞれバケツ蓄積量判定部2010と、監視結果判定部2020が主に実行する。
【００７２】
帯域監視部2000の制御部2060が、パケット乃至ダミーパケットを受信すると、一時蓄積バッファ2040に該パケットを蓄積する。さらに、パケット長331の情報を監視結果判定部2020のパケット長蓄積部2022に蓄積する(ステップ2201)。次に、クラス334の情報を帯域監視テーブル制御部2060の帯域監視テーブル制御回路2051へ送信する(ステップ2202)。
【００７３】
帯域監視テーブル制御回路2051は前記クラス334を受信すると、この値をそのまま帯域監視テーブル2030のアドレスとして帯域監視制御情報2100-kを読み出し、THR 2101を監視結果判定部2020のTHR蓄積部2023に、POLR 2102-kとTS 2103-kとCNT 2104-kをバケツ蓄積量判定部2010のそれぞれPOLR蓄積部2013、TS蓄積部2014、CNT蓄積部2015に蓄積する(ステップ2203)。
【００７４】
バケツ蓄積量判定処理2210では、バケツ蓄積量判定部2010はパケット入力直前のバケツの水の量(バケツ蓄積量)を判定する。まず、バケツ蓄積量判定回路2011が現時刻をカウントするタイマー2012の値(単位はsec)とTS蓄積部2014内のTS 2103-k(sec)との差分を計算し、バケツに水が前回蓄積されてから経過した経過時間(sec)を計算する(ステップ2211)。次に経過時間(sec)にPOLR蓄積部2013内のPOLR 2102-k(Byte/sec)を乗じて、バケツに水が前回蓄積されてから漏れた水の量(バケツ減少量)を計算する(ステップ2212)。さらに、CNT蓄積部2015内のCNT 2104-kからバケツ減少量を減算してパケットが入力する直前のバケツ蓄積量を判定する(ステップ2213)。前記バケツ蓄積量の正負を判定し(ステップ2214)、判定結果が負の場合にはバケツ蓄積量を"0"(バケツは空)に修正する(ステップ2215)。
【００７５】
監視結果判定処理2220では、監視結果判定部2020の監視結果判定回路2021は、一時蓄積バッファ2040内のパケットに相当する水がバケツに入るか否かを判定する。まず、監視結果判定回路2021はバケツ蓄積量判定処理2010で判定されたバケツ蓄積量(Byte)にパケット長(Byte)を加算する(ステップ2221)。監視結果判定回路2021は、前記蓄積情報はTHR蓄積部2023に蓄積されているバケツの容量THR 2101-kと前記加算値との大小比較を行う(ステップ2222)。バケツ蓄積量＋パケット長 ＞ THR-2101-k、即ち、バケツが溢れてしまう時には、一時蓄積バッファ2040に蓄積されているパケットまたはダミーパケットを違反パケットと判定して「違反」を表す帯域監視結果情報31を帯域監視テーブル制御部2060の帯域監視テーブル制御回路2051に送信する(ステップ2224)。一方、バケツ蓄積量＋パケット長 ≦ THR 2101-kの時には、入力パケットを遵守パケットと判定し、「遵守」を表す帯域監視結果情報31を帯域監視テーブル制御回路2051と制御部2060に送信し、「バケツ蓄積量＋パケット長」の値をバケツ蓄積量情報32として帯域監視テーブル制御回路2051に送信する(ステップ2223)。なお、監視結果判定部2220は、次のフィルタ回路620への転送の可否を判定しているとも言えるため転送可否判定部と呼ぶこともある。
【００７６】
帯域監視テーブル制御回路2051は、「遵守」を表示した帯域監視結果情報31を受信すると、バケツ蓄積量情報32とタイマー2012の値を、それぞれ帯域監視直後のバケツ蓄積量およびパケットの到着時刻として、帯域監視テーブル2030のCNT 2104-kとTS 2103-kに書き込み(ステップ2225)、制御部2060は一時蓄積バッファ2040内のパケットまたは、ダミーパケットをフィルタ回路620に送信する(ステップ2226)。帯域監視テーブル制御回路2051は「違反」を表示した帯域監視結果情報31を受信すると前記ステップ2225と2226を行わない。この際、一時蓄積バッファ2040内のパケットは最終的には後続のパケットに上書きされて廃棄される。以上の処理が終了すると帯域監視は終了する(ステップ2227)。
【００７７】
以上に説明したように本実施例の帯域監視部2000は、最大帯域を超過したパケットを「違反」と判定して廃棄することにより各クラスに設定される最大帯域を遵守したパケットおよびダミーパケットの送信を実現する。出力回線グループを構成する出力回線202の数をmとすると、全ての帯域監視部2000が送信するパケットの帯域は最大で最大帯域×mとなる。一つのパケットに対応してm-1回線に送られるダミーパケットは、フィルタ回路620で全て廃棄されるため、本実施例のパケット中継装置200は、最終的に送信するパケットの帯域を最大帯域以下に抑えることができる。
【００７８】
（５）シェーピング部の実装
出力回線グループを構成する出力回線202と対応するシェーピング部100は、別々のプリント基板上に実装されることが望ましい。これは一つのプリント基板上の部品が故障しても他のプリント基板に影響を与える可能性が低いため、出力回線グループを構成する出力回線202の同時の通信断を防止できるためである。
【００７９】
それぞれのシェーピング部100が別々のプリント基板上に実装され、シェーピング部100間で情報の送受信が必要な場合、情報伝達の遅延時間が大きくなり、シェーピング部100は高速な帯域の制御を行うことが困難となる。
【００８０】
しかし、以上に説明したように集約回線や保護/予備回線を構成する出力回線202に対応するシェーピング部202は、個々のシェーピング部100はシェーピング部100間の情報の受け渡すことなく動作できる。このため、本実施例のパケット中継装置200は前述の問題を回避して、高速な帯域の制御を行うことができる。
【００８１】
また、シェーピング部100の代わりに帯域監視部2000を実装する場合も出力回線グループを構成する出力回線202と対応する帯域監視部2000は、別々のプリント基板上に実装されることが望ましい。個々のポリシング部2000は、シェーピング部100の場合と同様にポリシング部2000間の情報の受け渡すことなく動作できるため、本実施例のパケット中継装置200は前述の問題を回避して、高速な帯域の制御を行うことができる。
【００８２】
なお、一つの装置の別々のプリント基板上ではなく、別々の装置に実装されることも考えられる。
【００８３】
（６）帯域情報蓄積部の設定方法
パケットリード部150の帯域情報蓄積部1140の設定方法について説明する。パケット中継装置200の管理者は、外部の管理端末10から帯域情報蓄積部1140の設定を行う。この際、管理端末10に入力されるコマンドの一例を図23に示す。このコマンド：shaperは、出力回線グループの各クラスの総帯域を、最大帯域に制限するコマンドである。出力回線グループはフィールド2001、クラスはフィールド2002、最大帯域はフィールド2003に記載される。例えば、１行目のコマンドは出力回線グループであるgroup1のクラス1の帯域を最大帯域20Mbpsに制限するためのコマンドである。
【００８４】
コマンドを受けたプロセッサ260は、2001の出力回線グループを構成する全ての出力回線202のシェーピング部100に2002、2003の情報と、本情報の書き込み指示を送信する。本情報を受信したパケットリード部150の制御部1110は本情報を受信すると、2002のクラスに対応する図17のエントリ1341に2003の値を書き込む。また、最低帯域の値を設定する際には、コマンド中の”peak_rate”を”minimum_rate”とすれば良い。
【００８５】
次に帯域監視部2000の帯域監視テーブル2030の設定方法について説明する。この際の管理端末10に入力されるコマンドの一例を図24に示す。このコマンド：policerは、出力回線グループの各クラスの総帯域を、最大帯域に制限するコマンドである。出力回線グループはフィールド2401、クラスはフィールド2402、最大帯域はフィールド2403、THR 2101に対応する情報は2404に記載される。例えば、1行目のコマンドは出力回線グループであるgroup1のクラス1の帯域を最大帯域20Mbpsに制限するためのコマンドで、THRは100 Byteである。コマンドを受けたプロセッサ260は、2401の出力回線グループを構成する全ての出力回線202の帯域監視部2000に、2402、2403と2404の情報と、本情報の書き込み指示を送信する。本情報を受信した帯域監視テーブル制御回路2051は2402のクラスに対応する図21のエントリ2100のTHR 2101、POLR 2102に2404と2403の値を書き込む。
【００８６】
なお、プロセッサ260を設定制御部と呼ぶこともある。
【図面の簡単な説明】
【００８７】
【図１】シェーピング部100の構成の一例を示す図。
【図２】パケット中継装置200の構成の一例を示す図。
【図３】パケット中継装置200が送受信するパケットのフォーマットの一例を示す図。
【図４】パケット中継装置200におけるパケットのフォーマットの一例を示す図。
【図５】パケット受信部230の構成の一例を示す図。
【図６】パケット中継装置200が送受信するMPLSパケットのフォーマットの一例を示す図。
【図７】パケット中継装置200におけるMPLSパケットのフォーマットの一例を示す図。
【図８】パケット送信部240の構成の一例を示す図。
【図９】シェーピング部100-1と100-2がパケットを送信した時刻を示す図
【図１０】経路判定部221の構成の一例を示す図。
【図１１】出力回線番号テーブル820の一構成例を示す図。
【図１２】出力回線/出力ラベル番号テーブル1920の一構成例を示す図。
【図１３】パケットライト部130の構成の一例を示す図。
【図１４】シェーピング部100-1と100-2がパケットを送信した時刻を示す図
【図１５】パケットリード部150の構成の一例を示す図。
【図１６】パケット送信管理テーブル1120の構成の一例を示す図。
【図１７】帯域情報蓄積部1140の構成の一例を示す図。
【図１８】パケットリード部150のフローチャート。
【図１９】帯域情報蓄積部1140の構成の一例を示す図。
【図２０】帯域監視部2000の構成の一例を示す図。
【図２１】帯域監視テーブル2130の一例を示す図。
【図２２】帯域監視部2000のフローチャート。
【図２３】帯域情報蓄積部1140を設定するコマンドの一例を示す図。
【図２４】帯域監視テーブル2030を設定するコマンドの一例を示す図。
【符号の説明】
【００８８】
11…パケット送信クラス情報
12…送信パケット長情報
13…送信可能信号
21…パケットヘッダ情報
22…パケット出力回線情報
23…パケットクラス情報
24-k…ダミーパケット用出力回線情報
25…パケット出力ラベル情報
26-k…ダミーパケット用出力情報
31…帯域監視結果情報
32…バケツ蓄積量情報
100…シェーピング部
110…パケットバッファ
120…パケット一時蓄積バッファ
130…パケットライト部
140…多重回路
150…パケットリード部
260…プロセッサ
【図１】
0004547339.tif 000002
【図２】
0004547339.tif 000003
【図３】
0004547339.tif 000004
【図４】
0004547339.tif 000005
【図５】
0004547339.tif 000006
【図６】
0004547339.tif 000007
【図７】
0004547339.tif 000008
【図８】
0004547339.tif 000009
【図９】
0004547339.tif 000010
【図１０】
0004547339.tif 000011
【図１１】
0004547339.tif 000012
【図１２】
0004547339.tif 000013
【図１３】
0004547339.tif 000014
【図１４】
0004547339.tif 000015
【図１５】
0004547339.tif 000016
【図１６】
0004547339.tif 000017
【図１７】
0004547339.tif 000018
【図１８】
0004547339.tif 000019
【図１９】
0004547339.tif 000020
【図２０】
0004547339.tif 000021
【図２１】
0004547339.tif 000022
【図２２】
0004547339.tif 000023
【図２３】
0004547339.tif 000024
【図２４】
0004547339.tif 000025