(57)【要約】【課題】複数フローから構成されるフローグループに対してその階層構造に合わせてフロー毎の帯域監視とフローグループ毎の帯域監視という二段帯域監視を実施することが可能なフロー管理方法、及び高速にフロー検出して前記フロー管理方法を実施することが可能なパケット転送装置を提供する。【解決手段】入力パケットのパケットヘッダ情報を連想メモリに入力すると、連想メモリ内に格納する複数のフロー定義エントリから入力パケットヘッダ情報に一致するフロー定義エントリの格納位置を示す一致アドレスが出力され、この一致アドレスを読み出しアドレスとしてアドレス変換テーブルを参照することにより当該フローに対し実施すべき帯域監視情報を指定するアクションポインタと、当該フローが属するフローグループに対し実施すべき帯域監視情報を指定するアクションポインタとを読み出すフロー検出部を備え、読み出された複数のアクションポインタが各々指定する帯域監視情報に基づいて複数の帯域監視を実施する。【選択図】図15
2004289806.tif 000002
【特許請求の範囲】
【請求項１】
パケットヘッダ情報により識別されるパケットの流れであるフローと当該フローを含む複数のフローから構成されるフローグループとを検出して、検出されたフロー毎またはフローグループ毎に定められた処理を実施するフロー管理方法において、
フロー毎に当該フローが属する異なるフローグループを複数指定することを特徴とするフロー管理方法。
【請求項２】
請求項１に記載のフロー管理方法において、
フロー毎に属するフローグループが第一のフローグループと第二のフローグループの二個あり、第一のフローグループは単一の当該フローのみから構成され、第二のフローグループは当該フローを含む複数のフローから構成されることを特徴とするフロー管理方法。
【請求項３】
請求項１または２に記載のフロー管理方法において、
前記フロー毎またはフローグループ毎に定められた処理が、パケットの帯域を監視する帯域監視の処理、またはパケット数またはバイト数の和のうち少なくとも一つをカウントする統計収集の処理であることを特徴とするフロー管理方法。
【請求項４】
複数の入力回線と、複数の出力回線と、前記複数の入    力回線のうち一つの入力回線から入力したパケットを前記複数の出力回線のいずれかの出力回線に出力するパケット転送装置において、
パケットの入力回線番号または出力回線番号またはパケットヘッダ内のアドレス情報、用途を識別する情報または優先度を識別する情報から構成されるパケットヘッダ情報のうち少なくとも一つ以上の情報で識別されるフローを定義する複数のフロー定義エントリから構成されるフロー定義テーブルと、
パケットが入力するとパケットヘッダ情報と複数のフロー定義エントリとを一致比較してパケットが属するフロー定義エントリを検出するフロー検出部と、
フロー検出部で検出されたフローに対し実施する処理を記載した複数のアクションエントリから構成されるアクションテーブルを有し、パケットが入力するとアクションエントリに記載の処理を実施するフロー処理部と、
前記フロー検出部で検出されたフローに対しフロー処理部で実施すべきアクションエントリを指定するアクションポインタをフロー定義エントリ毎に複数有するアドレス変換部とを備え、
フロー毎に当該フローが属する異なるフローグループを複数指定することを特徴とするパケット転送装置。
【請求項５】
請求項４に記載のパケット転送装置において、
前記フロー処理部がフロー毎に複数のフローグループに対して帯域監視する帯域監視部であり、前記アクションエントリが帯域監視部で監視するフローまたはフローグループのトラフィックの特性を記述する監視トラフィック特性情報とパケットの到着履歴情報から構成される帯域監視情報を記載した帯域監視エントリであり、
前記アクションテーブルが複数の帯域監視エントリから構成される帯域監視テーブルであることを特徴とするパケット転送装置。
【請求項６】
請求項４に記載のパケット転送装置において、
前記フロー処理部がフロー毎に複数のフローグループに対して統計収集する統計収集部であり、前記アクションエントリがフローまたはフローグループのパケットのバイト数の和であるバイトカウント情報あるいはパケット数であるパケットカウント情報のうち、少なくとも一つの情報を記載した統計収集エントリであり、
前記アクションテーブルが複数の統計収集エントリから構成される統計収集テーブルであることを特徴とするパケット転送装置。
【請求項７】
請求項５または６に記載のパケット転送装置において、
前記フロー処理部は、パケットの帯域を監視する帯域監視の処理、またはパケット数またはバイト数の和のうち少なくとも一つをカウントする統計収集の処理を実行することを特徴とするパケット転送装置。
【請求項８】
請求項４に記載のパケット転送装置において、
前記フロー定義テーブルが格納される連想メモリを有し、当該連想メモリにパケットヘッダ情報を入力すると、入力したパケットヘッダ情報に一致するフロー定義エントリの格納位置を示す一致アドレスが出力され、
前記アドレス変換部は、フロー定義エントリのアドレス毎に前記アクションポインタを複数記載したアドレス変換テーブルと該アドレス変換テーブルの制御部とを有し、前記一致アドレスを読み出しアドレスとしてアドレス変換テーブルを参照すると複数の前記アクションポインタが読み出されることを特徴とするパケット転送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力パケットのフローを検出して、フロー毎に定められた処理を実施する機能を備えたパケット転送装置及びフロー管理方法に関する。
【背景技術】
【０００２】
本明細書では、パケットヘッダ情報に含まれる複数項目の情報の組み合わせによって特定される一連のパケットの流れを「フロー」と称する。IP（Internet Protocol）ネットワークを構成するパケット転送装置は、入力パケットのパケットヘッダ情報から当該パケットが属するフローを検出するフロー検出機能を備える。検出されたフロー毎に、パケット転送装置では通信品質制御、帯域監視、統計情報収集、フィルタリング、ポリシールーティング等の処理を実行する。
【０００３】
近年、IPトラフィックの急増に対応するため、高速検索専用のメモリである連想メモリ（Content Addressable Memory:以下CAMと称する。）を用いたフロー検出の高速化が検討されている。複数のフロー定義エントリを格納したCAMに検索キー情報としてパケットヘッダ情報を入力すると、これと複数のフロー定義エントリとを一致比較して、一致したフロー定義エントリの格納位置を示す一致アドレスが出力される。CAMは、格納されたフロー定義エントリ数によらず検索キー情報と一致するフロー定義エントリを高速に検索できるので、フロー検出を高速化できる。
【０００４】
CAMを用いた高速フロー検出に関する従来技術として、例えば特開2003-018204号公報（従来技術1）がある。従来技術1に記載のパケット転送装置は、図1に示すようにフロー定義エントリが格納されたCAM32と、CAM32から出力される一致アドレスから当該フローに対して実施すべき処理を示すフロー束識別子（本明細では、以下これをアクションポインタと称する。）に変換するアドレス変換テーブル332と、帯域監視のためのトラフィック特性を記述する監視トラフィック特性情報とパケット到着履歴情報から構成される帯域監視情報を記載した帯域監視エントリから構成される帯域監視テーブル102とを有する。
【０００５】
従来技術1の明細書で示されている通り、帯域監視に際しては複数フローから構成されるフローグループに対し帯域を監視する必要がある。従来技術1では、図1のようにフロー定義エントリ1-1〜1-3各々のCAMにおける格納位置を示すアドレスを読み出しアドレスとしてアドレス変換テーブル332を参照すると、いずれも同一のアクションポインタ1が読み出される。従って、三つのフローに対していずれもアクションポインタ1が指定する帯域監視エントリ1を参照することになり、三つのフローをまとめたフローグループとして帯域監視することが可能となる。
【０００６】
また、フロー検出に用いられるternary CAMはビット単位に0,1,x（x：マスクビット）の3値を定義可能であるが、このようにマスクビットを用いてフローを定義する場合、一つのフローを複数のフロー定義エントリに分割記述せざるを得ない場合がある。例えば、検索キーの上限値・下限値を指定して送信元IPアドレスの下位の値が1〜7のパケットをフローとして定義して帯域監視しようとする場合、ternary CAMに設定するフロー定義エントリは、当該ビットを001、01x、1xxとする3エントリに展開せざるを得ない。この場合にも、従来技術1を用いると001、01x、1xxの各フロー定義エントリのアドレスがいずれも同一のアクションポインタに変換されるようアドレス変換テーブルを設定することにより、三つに分割記述されたフロー定義エントリをまとめて一つのフローとして帯域監視することが可能となる。
【０００７】
【特許文献１】特開2003-018204号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
パケット転送装置の高機能化に伴い、Internet SocietyにおいてRFC2698として開示されている” A Two Rate Three Color Marker”のように従来より高度な帯域監視方法が提案されている。” A Two Rate Three Color Marker”では、帯域制限を受ける基準となる最大帯域と、帯域保証を受ける基準となる最低帯域という二つの帯域を監視する。（以下、二つの帯域で監視することを二段帯域監視と称する。）帯域の使用状況に応じて最大帯域を超過したパケットを赤、最大帯域以下だが最低帯域を超過するパケットを黄、最低帯域以下のパケットを緑というように3色に色分けして、各色に応じてネットワーク内優先度、またはパケット転送装置内での転送優先度を付与する。二段帯域監視では、複数の帯域で監視するため、単一のフローまたはフローグループに対し、複数の帯域監視エントリを参照することが必要となる。更に、監視帯域毎にパケット数、バイト数といった統計情報を収集しようとする場合、複数の帯域監視エントリを参照して各々の統計情報を更新する必要がある。
【０００９】
まず、従来技術1を用いてフローグループに対して二段帯域監視を実施する場合の課題について説明する。例として、フロー1とフロー2から構成されるフローグループに対し最大帯域20Mbit/s、最低帯域10Mbit/sを帯域監視する場合を考える。この場合、帯域監視に際してフロー毎の帯域は特に意識されないので、フロー1が最低帯域10Mbit/sを使い切り更に最大帯域20Mbit/sまで使い切っている場合には、フロー2は帯域を全く使用することができなくなってしまうという課題1がある。
【００１０】
また、前記課題1を解決するため従来技術1を用いず、フロー1とフロー2で独立に最大帯域10Mbit/s、最低帯域5Mbit/sを帯域監視する例を考える。この場合、フロー1とフロー2で独立に最低帯域5Mbit/sを保証できるので、フロー1が最大帯域10Mbit/sを使い切っている場合にもフロー2は帯域を使用できる。しかし、帯域監視に際しフローグループとしての帯域は特に意識されないので、フロー2が帯域を未使用の場合にフロー1がこの未使用帯域を有効に活用することができないという課題2がある。従来技術1でフローグループに対し帯域監視する場合には、フロー2が帯域を未使用のときフロー1は最大帯域20Mbit/sまで使い切ることができるのに対し、本例のようにフロー毎に帯域監視する場合にはフロー2が帯域を未使用であってもフロー1は最大帯域10Mbit/sまでしか使うことができず、未使用帯域を有効に活用できない。
【００１１】
次に、前記の課題1と課題2を解決するため、複数フローから構成されるフローグループに対してその階層構造に合わせてフロー毎の帯域監視とフローグループ毎の帯域監視という二段帯域監視を実施する本発明のフロー管理方法によりフローを制御しようとする際の、従来技術1がもつ課題について説明する。ここでは例として、フローグループに対する最大帯域と、当該フローグループに属する各フロー毎の最低帯域という二つの帯域を監視する際の課題について図2、図3を用いて説明する。この例では、図2のようにあるユーザAの全パケットを帯域監視して最大帯域20Mbit/sで帯域制限すると共に、ユーザAの全パケットのうちパケットヘッダ情報で特徴付けられる特定のフローを重要フローと定義してユーザAの重要フローを最低帯域10Mbit/sで帯域保証する。ここで、重要フローとは帯域監視の際に優先的に監視帯域以内と判定されるフローを指し、この優先制御付き帯域監視を実現する方法としては、例えば特開2000-349812号公報がある。ユーザAの全パケットのうち重要フローに属さないパケットの流れを非重要フローとする。ユーザAの重要フローに対しては、ユーザAの全パケットというフローグループに対する最大帯域と、ユーザAの重要フローに対する最低帯域という二つの帯域で二段帯域監視がなされるが、ユーザAの非重要フローに対してはユーザAの全パケットというフローグループに対する最大帯域のみが監視される。
【００１２】
以下で、この例での帯域監視の制御を図2を参照して説明する。図2の一段目帯域監視では、ユーザAの全パケットを最大帯域10Mbit/sで監視して、10Mbit/sを超過した場合には重要フローから優先的に10Mbit/s以内と判定しながら帯域制限する。重要フローの使用帯域が10Mbit/s以内であれば、重要フローは廃棄されることなく、非重要フローだけが廃棄される。次に、二段目帯域監視では、ユーザAの重要フローのみに対し最低帯域5Mbit/sを監視して、5Mbit/s以内の重要フローを優先パケットとして扱う。5Mbit/s以内の重要フローは輻輳時にも優先的に転送されるので、重要フローの最低帯域5Mbit/sを帯域保証できる。5Mbit/sを超過した重要フローに対しては、優先度を落として非優先パケットとして扱う。一方、最大帯域10Mbit/s以内の非重要フローは全て非優先パケットとして扱い、10Mbit/sを超過するパケットは重要フロー、非重要フローいずれであっても廃棄する。このように制御すると、重要フローに対しては最低帯域5Mbit/sを保証すると共に、非重要フローも含めたユーザAのパケット全体の使用帯域を最大帯域10Mbit/s以下に制限することができる。
【００１３】
従来技術1には、二段帯域監視に対する実施例は記載されていない。そこで、従来技術1と同様にフロー定義エントリ毎に一つのアクションポインタを有する構成で、前記の二段帯域監視を実施する際の課題について明らかにする。図3に、前記のようにフロー定義エントリ毎に一つのアクションポインタによって二段帯域監視を実施する場合の設定例を示す。CAM32には、あるユーザAの重要フロー、非重要フロー各々を定義するフロー定義エントリ1-1、1-2が格納されているものとし、アドレス変換テーブル332ではフロー定義エントリ1-1、1-2両方に対し同一のアクションポインタ1を与え、重要フローと非重要フローをまとめてユーザAの全パケットとして集約している。帯域監視テーブル102には、最大帯域を監視するための帯域監視エントリ1-maxと、最低帯域を監視するための帯域監視エントリ1-minが格納されている。
【００１４】
このように、一つのアクションポインタで二つの帯域監視エントリを指定する構成をとる場合、ユーザAの重要フロー、非重要フロー両方共に帯域監視エントリ1-max、1-minの二つの帯域監視エントリを参照することになってしまう。従って、重要フローに対しては帯域監視エントリ1-1、帯域監視エントリ1-2両方を、非重要フローに対しては帯域監視エントリ1-1だけを参照することができない。即ち、フロー毎の帯域監視とフローグループまとめての帯域監視という階層的な二段帯域監視を実施できないという課題3がある。
【００１５】
また、一つのアクションポインタで二つの帯域監視エントリを指定する構成をとる場合のもう一つの課題として、図3に示す通り通常の一段帯域監視をかけるフローに対しては、帯域監視エントリに未使用の領域が発生してしまう。従って帯域監視テーブル102を十分に有効利用することができず、テーブル容量に対して設定可能な帯域監視エントリ数が半減してしまうという課題4がある。
【００１６】
更に、図4のように未使用領域に別の一段帯域監視の帯域監視エントリを設定することでエントリ数の減少を防止しようとする場合を考える。この場合、例えば帯域監視エントリ3を用いた帯域監視を二段帯域監視に変更しようとすると、最低帯域の帯域監視エントリ3-min、最大帯域の帯域監視エントリ3-maxのために連続した空間を帯域監視テーブル102内に確保する必要がある。従って、帯域監視エントリ4、帯域監視エントリ5共に帯域監視テーブル102内の格納位置を変更せねばならない。更にこの際、格納位置を変更しようとする帯域監視エントリに対してはこれが二段帯域監視を構成しているか否かを予め調べた上で、二段帯域監視を構成している場合には二段分の帯域監視エントリ間の格納位置の連続性を損なわないように移動しなければならない。
【００１７】
また、帯域監視テーブルの読み出しアドレスはアクションポインタに基づいて生成するので、帯域監視エントリの格納位置を変更するとこれに応じてアクションポインタの値も変更しなければならない。従って、帯域監視エントリ4、帯域監視エントリ5の格納位置を変更するとこれらを指定するアクションポインタも変更しなければならない。このように、帯域監視テーブルの未使用領域を有効活用するために未使用領域に別の一段帯域監視の帯域監視エントリを設定すると、アクションポインタと帯域監視エントリの格納位置の管理が煩雑になってしまうという課題5がある。
【００１８】
以上述べた通り、フロー定義エントリ毎に一つのアクションポインタだけで二段帯域監視を制御すると、フローとフローグループという階層構造をもつ対象に対して二段帯域監視を階層的に実施することができないという課題3と、帯域監視エントリ数の半減という課題4と、アドレス変換テーブルと帯域監視テーブルの管理の煩雑化という課題5とがある。
【００１９】
本発明の目的は、前記の課題1と課題2とを解決して、複数フローから構成されるフローグループに対してその階層構造に合わせてフロー毎の帯域監視とフローグループ毎の帯域監視という二段帯域監視を実施するフロー管理方法を提供すること、及び課題3と課題4と課題5とを解決して前記のフロー管理方法でフローを制御できるパケット転送装置を提供することにある。
【課題を解決するための手段】
【００２０】
課題1と課題2とを解決するため、本発明のフロー管理方法は、パケットヘッダ情報により識別されるパケットの流れであるフローと当該フローを含む複数のフローから構成されるフローグループとを検出して、検出されたフロー毎またはフローグループ毎に定められた処理を実施するフロー管理方法において、フロー毎に当該フローが属する異なるフローグループを複数指定することを特徴とする。
【００２１】
また別の発明のフロー管理方法では、フロー毎に属するフローグループが第一のフローグループと第二のフローグループの二個あり、第一のフローグループは単一の当該フローのみから構成され、第二のフローグループは当該フローを含む複数のフローから構成されることを特徴とする。
更に別の発明のフロー管理方法は、前記フローグループ毎に定められた処理がフローグループ毎の帯域を監視する帯域監視処理、またはフローグループ毎のパケット数またはバイト数の和のうち、少なくとも一つをカウントする統計収集の処理であることを特徴とする。
【００２２】
また、本発明のフロー管理方法でフロー制御するパケット転送装置を提供する際の課題3と課題4と課題5とを解決するため、本発明のパケット転送装置は、複数の入力回線と、複数の出力回線と、前記複数の入力回線のうち一つの入力回線から入力したパケットを前記複数の出力回線のいずれかの出力回線に出力するパケット転送装置において、パケットの入力回線番号または出力回線番号またはパケットヘッダ内のアドレス情報、用途を識別する情報または優先度を識別する情報から構成されるパケットヘッダ情報のうち少なくとも一つ以上の情報で識別されるフローを定義する複数のフロー定義エントリから構成されるフロー定義テーブルを有し、パケットが入力するとパケットヘッダ情報とフロー定義エントリとを一致比較してパケットが属するフローを検出するフロー検出部と、フロー検出部で検出されたフローに対し実施する処理を記載した複数のアクションエントリから構成されるアクションテーブルを有し、パケットが入力するとフローに対する処理を実施するフロー処理部とを備え、フロー処理部で実施する処理を記載したアクションエントリを指定するアクションポインタをフロー定義エントリ毎に複数有することにより、本発明のフロー管理方法でフローを制御することを特徴とする。
【００２３】
尚、本発明で追加されるアクションポインタは帯域監視エントリ数を表現可能なだけのフィールドビット長を持てば十分である。例えば、帯域監視エントリ数が1000エントリの場合、アクションポインタは10ビットあれば良い。これに対し、帯域監視エントリに記載の帯域監視情報は通常10ビットをはるかに超えるビット数が必要となる。従って、アクションポインタの追加によるメモリ容量の増大のデメリットよりも、本発明による帯域監視エントリの効率利用によるメモリ容量の削減効果のメリットの方が大きい。
【００２４】
また別の発明のパケット転送装置は、前記フロー処理部がフロー毎に複数のフローグループに対して帯域監視する帯域監視部であり、前記アクションエントリが帯域監視部で監視するフローまたはフローグループのトラフィックの特性を記述する監視トラフィック特性情報とパケット到着履歴情報から構成される帯域監視情報を記載した帯域監視エントリであり、前記アクションテーブルが複数の帯域監視エントリから構成される帯域監視テーブルであり、本発明のフロー管理方法でフローを制御することを特徴とする。
【００２５】
また別の発明のパケット転送装置は、前記フロー処理部がフロー毎に複数のフローグループに対して統計収集する統計収集部であり、前記アクションエントリがフローまたはフローグループのパケットのバイト数の和であるバイトカウント情報あるいはパケット数であるパケットカウント情報のうち、少なくとも一つの情報を記載した統計収集エントリであり、前記アクションテーブルが複数の統計収集エントリから構成される統計収集テーブルであり、本発明のフロー管理方法でフローを制御することを特徴とする。
【００２６】
また別の発明のパケット転送装置は、フロー検出部は、複数のフロー定義エントリを格納する記憶手段と、該記憶手段の制御部と、該記憶手段から読み出した情報を前記フロー処理部において当該フローに実施すべき複数の処理を各々指定する複数の前記アクションポインタに変換するアドレス変換部とを有することを特徴とする。
【００２７】
また別の発明のパケット転送装置は、前記の記憶手段が連想メモリであって、連想メモリにパケットヘッダ情報を入力すると、入力したパケットヘッダ情報に一致するフロー定義エントリの格納位置を示す一致アドレスが出力され、アドレス変換部がフロー定義エントリのアドレス毎に前記アクションポインタを複数記載したアドレス変換テーブルと該アドレス変換テーブルの制御部とを有し、前記一致アドレスを読み出しアドレスとしてアドレス変換テーブルを参照すると複数の前記アクションポインタが読み出されることを特徴とする。
【発明の効果】
【００２８】
本発明によれば、複数フローから構成されるフローグループに対してその階層構造に合わせてフロー毎の帯域監視とフローグループ毎の帯域監視という二段帯域監視を実施するフロー管理方法を提供できる。更に、前記のフロー管理方法や、従来のフロー毎あるいはフローグループ毎の二段帯域監視を実施するためのフロー検出を高速に実行できるパケット転送装置を提供できる。
【発明を実施するための最良の形態】
【００２９】
以下、実施例の形態について図面を参照して説明する。
【実施例１】
【００３０】
図5に本発明のフロー検出機能を備えたパケット転送装置のブロック構成図を示す。パケット転送装置10は、各々入力回線INi（i＝1〜n）に接続された複数の入力回線インタフェース11-i（i=1〜n）と、各々出力回線OUTi（i=1〜n）に接続された複数の出力回線インタフェース12-i（i=1〜n）と、出力回線インタフェース12-i毎に設けられた出力バッファ13-i（i=1〜n）と、前記複数の入力回線インタフェース11-i及び出力バッファ13-iに接続されたパケット中継部（パケットスイッチ部）14と、各入力回線インタフェース11-iで受信された可変長パケットの転送先となる出力回線の判定（ルーティング）機能と帯域監視機能とを備えた制御部15と、前記各入力回線インタフェース11-iから信号線L1-i（i=1〜n）に出力されたパケットヘッダ情報を順次に制御部15に供給する多重化回路16と、制御部15が信号線L2、L3に出力した出力回線識別子（出力回線番号）と帯域監視結果を各パケットヘッダ情報の送信元となる入力回線インタフェース11-iに供給する振り分け回路17とから構成される。
【００３１】
後述するように、制御部15は、ルーティングテーブルと、フロー定義テーブルを格納するCAMと、CAMに接続されたアドレス変換テーブルと、該アドレス変換テーブル記載のアクションポインタを読み出しアドレスとして参照される帯域監視テーブルとを備えており、これらのテーブルへのデータ設定は管理端末90から信号線L4を介して行なわれる。
【００３２】
図6には、入力回線インタフェース11-iと制御部15の詳細を示す。図7には、パケットデータの構成図を示す。図6の入力回線インタフェース11-iは、入力回線IN-iからの受信信号から入力パケットを再生し、データリンク層を終端してL2ヘッダを除去したパケットを出力するL2終端部111と、L2終端部111から受信した入力パケットに内部ヘッダ530を付加し、内部パケットとして出力する内部ヘッダ付加部112と、内部パケットを入力バッファ114に出力すると共に、内部パケット501から抽出したパケットヘッダ（内部ヘッダ530とL3ヘッダ520）を信号線L1-iに出力するパケットヘッダ抽出部113と、入力バッファ114に蓄積されたパケットのヘッダ情報の書き換えとパケット中継部14への転送を制御するパケット転送制御部115と、入力バッファ114からヘッダ変換されたパケットを読み出すパケット読み出し部116とからなる。
【００３３】
L3ヘッダ520には、送信元IPアドレス521（Source IP address：以下、SIPと称する。）、宛先IPアドレス522（Destination IP address：以下、DIPと称する。）、サービスタイプ523、送信元ポート番号524（Source PORT：以下、SPORTと称する。）、宛先ポート番号（Destination PORT：以下、DPORTと称する。）が記載されている。L3ヘッダには、他にもTTL（Time To Live）等の情報が記載されているが、同様に以下の処理を実施できる。内部ヘッダ付加部112は、予め指定してある入力回線INiの識別子（番号）を入力回線番号532に書き込み、出力回線番号533と転送優先度534には、無意味な値を設定する。また、内部ヘッダ付加部112は入力パケットのパケット長をカウントしてこれをパケット長535に書き込む。
【００３４】
制御部15は、ルーティング処理部20と、フロー検出部30と、帯域監視部40とから構成されている。ルーティング処理部20は、ルーティングテーブルを備え、多重化回路16から信号線L1に出力されるパケットヘッダ情報から宛先IPアドレスを抽出し、ルーティングテーブルから前記宛先IPアドレスと対応して予め登録されている出力回線識別子（出力回線番号）を読み出して、信号線L2に出力する。
【００３５】
フロー検出部30は、前記パケットヘッダ情報に基づいてフローを検出し、当該フローが属する複数のフローグループの識別子である複数のアクションポインタを信号線L5に出力する。帯域監視部40は後述するように、信号線L5から入力された複数のアクションポインタにで帯域監視テーブルを参照することにより帯域監視のためのトラフィック特性を記述する監視トラフィック特性情報とパケット到着履歴情報から構成される複数の帯域監視情報を読み出し、これらの帯域監視情報と信号線L1から受信したパケットヘッダ情報中のパケット長535に基づいて複数の帯域監視処理を各々実行し、入力パケットが複数の契約帯域を各々遵守しているか否かに従って当該パケットを「廃棄」とするか「通過」とするか、及び「通過」とした場合は当該パケットに付与するサービスタイプと転送優先度を示す優先度情報を決定して、これらの情報を帯域監視結果情報として信号線L3に出力する。
【００３６】
帯域監視部40内部において、複数の帯域監視結果に基づいてどのように総合的に判定して当該パケットに対する制裁を決定するか、その方法は本発明では特定しない。本実施例1では制裁の判定方法の一例として、複数の帯域監視結果のいずれかが違反であり、帯域違反と判定された監視帯域に帯域制限のための最大帯域が含まれている場合、当該パケットに対する制裁を廃棄と判定して「廃棄」を示す帯域監視結果情報を信号線L3から出力する。この場合、サービスタイプと転送優先度を示す情報は無意味な情報となっている。帯域違反と判定された監視帯域に最大帯域が含まれない場合は、違反した監視帯域に対する制裁のうち最も厳しく優先度を落とした場合のサービスタイプ、転送優先度を当該パケットに対する制裁と判定して、前記のサービスタイプと転送優先度を示す情報と「通過」を示す情報とを帯域監視結果情報として信号線L3から出力する。全ての監視帯域に対して遵守と判定された場合には、当該パケットは帯域遵守と判定されて優先転送に相当するサービスタイプと転送優先度を示す情報と「通過」を示す情報とを帯域監視結果情報として信号線L3から出力する。
【００３７】
信号線L2に出力された出力回線識別子（出力回線番号）と、信号線L3に出力された帯域監視結果情報は、振り分け回路17に入力される。振り分け回路17には、信号線L1に出力されたパケットヘッダ情報中の入力回線番号532が制御信号として与えてあり、信号線L2、L3から入力された出力回線番号と帯域監視結果情報を、前記入力回線番号ｉで特定される入力回線インタフェース11-iのパケット転送制御部115に振り分ける。
【００３８】
信号線L3に出力された帯域監視結果情報が「通過」を示していた場合、図6のパケット転送制御部115は、入力バッファ114に蓄積された先頭パケットのパケットヘッダに前記振り分け回路17から受信した出力回線番号を出力回線番号533として書き込み、信号線L115を介して、パケット読み出し部116に前記パケットの読み出しを指示する。このとき、帯域監視結果情報が示すサービスタイプと転送優先度の優先度情報に従って、L3ヘッダに含まれるサービスタイプ523と内部ヘッダに含まれる転送優先度534を書き換えた状態で、パケット読み出し部116にパケットの読み出しを指示する。
【００３９】
帯域監視結果情報が「廃棄」を示していた場合、前記の出力回線番号533の書き込みとパケット読み出し部116へのパケットの読み出しの指示は行なわれず、パケットは廃棄される。パケット転送制御部115は、入力バッファ114からのパケットの転送または廃棄の都度、入力バッファの読み出しアドレスを次パケットの先頭アドレスに位置付けることによって、入力バッファ中の蓄積パケットを次々と転送制御する。尚、パケット転送装置内優先度の制御は、出力バッファ13-iに蓄積されたパケットを出力回線インタフェース12-iに送出する際、内部ヘッダに含まれる転送優先度534に従って出力優先度の高いパケットから順に送出することにより行なう。
【００４０】
図6では、ルーティング処理部20が複数の入力回線インタフェースで共用される構成となっているが、ルーティング処理部20を各入力回線インタフェース11-iに配置し、制御部15がフロー検出部30と帯域監視部40を備えた構成としてもよい。
図5において、パケット中継部14は、入力回線インタフェース11-i（i=1〜n）と接続される入力ポートPIi（i=1〜n）と、出力バッファ13-i（i=1〜n）と接続される出力ポートPOi（i=1〜n）とを備えており、各入力ポートPIiから受信したパケットを出力回線番号533の値jで特定される出力ポートPIjにスイッチングする。出力ポートPIjから出力されたパケットは、送信バッファ13-jに蓄積された後、出力回線インタフェース12-jによって読み出され、内部ヘッダ530を除去し、出力回線OUTjのデータリンク層プロトコルに従ったL2ヘッダを付加した形で、出力回線OUTjに送出される。
【００４１】
図5では、制御部15が入力回線インタフェースからのパケットヘッダ情報に基づいてルーティング、フロー検出、帯域監視等の処理を実施する構成となっているが、これに加えて、制御部15が出力回線インタフェースからのパケットヘッダ情報に基づいてフロー検出、帯域監視等の処理を実施する構成としてもよい。
【００４２】
図8には、フロー検出部30と帯域監視部40の構成をブロック図で示す。フロー検出部30は、CAM制御部31と、CAM32と、アドレス変換部33とを含む。前記CAM32には、フロー検出条件となるパケットヘッダ情報の特定の組み合わせを定義したフロー定義エントリEN-1〜EN-nを登録し、アドレス変換部33が備えるアドレス変換テーブル332には、前記CAM32におけるフロー定義エントリの格納位置を示すアドレスに対応してm個のアクションポインタP-k（k=1〜m）をエントリTE-1〜TE-n各々に登録しておく。以下では特に、m=2の場合、即ちフロー定義エントリ毎に二つの帯域監視を実施する場合について説明する。
【００４３】
CAM制御部31は、信号線L1から受信したパケットヘッダ情報から前記フロー検出条件に該当する特定項目のパケットヘッダ情報を抽出し、これを検索キー情報としてCAM32に入力する。CAM32のフロー定義エントリの構成例を図25に示す。この例では、入力回線番号と、SIP、DIP、サービスタイプ、SPORT、DPORTから任意の組み合わせでフローを定義することができる。これはフロー定義エントリの構成の一例に過ぎず、パケットヘッダ情報中のその他の情報をフロー検出条件に含めることも可能である。フロー検出条件に含めない条件にはマスクビットを施す。図25の場合であれば、受信パケットヘッダ情報から入力回線番号と、SIP、DIP、サービスタイプ、SPORT、DPORT を抽出し、これらを検索キー情報としてCAM32に入力する。CAM32は、先頭のフロー定義エントリEN-1から順に、検索キー情報に一致するフロー定義エントリを検索し、前記検索キー情報と一致したフロー検出条件をもち最上位アドレスに格納された一致フロー定義エントリEN-lの一致アドレスを信号線L6に出力する。
【００４４】
アドレス変換部33は、アドレス変換テーブル332と、アドレス変換テーブル制御部331とを含む。アドレス変換テーブル制御部331は、信号線L6から一致フロー定義エントリの一致アドレスを受信すると、これを読み出しアドレスとしてアドレス変換テーブル332を参照する。その結果、前記一致フロー定義エントリの一致アドレスに対応するエントリTE-lが読み出され、エントリTE-lに記載された二つのアクションポインタP-kとP-k+1が信号線L5に出力される。信号線L5に出力された二つのアクションポインタP-kとP-k+1は、帯域監視部40に入力される。
【００４５】
帯域監視部40は複数の帯域監視エントリCE-1〜CE-hをもつ帯域監視テーブル102と帯域監視テーブル制御部101とを含む。帯域監視テーブル制御部101は、信号線L5から二つのアクションポインタP-kとP-k+1を受信すると、これらのアクションポインタP-kとP-k+1を各々読み出しアドレスとして帯域監視テーブルを参照することにより、P-kとP-k+1に各々対応する帯域監視エントリCE-kとCE-k+1を読み出し、これらの帯域監視エントリ記載の帯域監視情報に従って入力パケットの帯域を二つの監視帯域で監視する。
【００４６】
次に，帯域監視部40の詳細動作について説明する。帯域監視のアルゴリズムとして固定長であるセルの監視アルゴリズムであるcontinuous Leaky Bucket Algorithm（以下リーキーバケットアルゴリズム）をIPの可変長パケットの帯域監視用に拡張したアルゴリズムを使用する。リーキーバケットアルゴリズムはある深さを持ち穴の空いた漏れバケツのモデルで、バケツに水が入っている間は監視帯域で水は漏れ、パケット到着時にはバケツに1パケット分の水が注ぎ込まれる。パケットの到着揺らぎを許容するためにバケツに深さ（バケツ閾値）を持ち、バケツが溢れないうち、即ちバケツ内水量がバケツ閾値以下の場合には入力パケットは帯域遵守と、バケツ内水量がバケツ閾値を超過してバケツが溢れると帯域違反と判定される。パケット到着時に注ぎ込む水の量をパケット長535に合わせて可変とすることにより、可変長パケットの帯域監視を実現する。
【００４７】
帯域監視部40の詳細構成を図23に、帯域監視部40の動作を示すフローチャートを図24に示す。帯域監視部40は、信号線L1からパケットヘッダ情報を受信すると、パケットヘッダ情報から抽出したパケット長535をパケット長蓄積手段に蓄積する。（図24のステップ1）信号線L5から二つのアクションポインタを受信すると、帯域監視テーブル制御部101が、帯域監視テーブル102を2回参照することにより、二つのアクションポインタが各々指定する帯域監視エントリを読み出す。
【００４８】
（ステップ2）帯域監視テーブルを構成する帯域監視エントリに記載される帯域監視情報は図26に示す通り、TS（前回パケット到着時刻）とCNT（バケツ内水量）とからなるパケット到着履歴情報と、POLR（監視帯域）、THR（バケツ閾値）、DROP（監視帯域違反時の制裁廃棄）、TOSC（遵守時の書き換え用サービスタイプ）、TOSN（違反時の書き換え用サービスタイプ）、QOSC（遵守時の書き換え用転送優先度）、QOSN（違反時の書き換え用転送優先度）とからなる監視トラフィック特性情報とから構成される。尚、これは帯域監視エントリの構成の一例に過ぎず、後述するように本実施例1の場合、ユーザAの重要フローと非重要フローを合わせて最大帯域監視する際に特開2000-349812号公報を用いて重要フローを優先的に帯域遵守パケットと判定する。そのため、特開2000-349812号公報と同様に帯域監視エントリには重要フロー用バケツ閾値と非重要フロー用バケツ閾値の両方を含む構成となる。他にも、監視帯域遵守時または違反時に書き換える情報としてパケットヘッダ情報中のサービスタイプ、転送優先度以外の情報を含む構成としてもよい。
【００４９】
本発明では二つの監視帯域が監視されるが、その際の帯域監視の演算処理として、二つの監視帯域各々に対して監視帯域情報の蓄積手段及び帯域監視の演算手段を所持して並列に演算処理する構成と、一つの監視帯域情報の蓄積手段と帯域監視の演算手段で二つの帯域監視をシリアルに演算処理する構成のいずれも可能である。本実施例1では二つの帯域監視の処理をシリアルに実施する構成とする。アクションポインタに基づいて読み出された帯域監視エントリに記載されているTSをTS蓄積手段に、CNTをCNT蓄積手段に、POLRはPOLR蓄積手段にTHRはTHR蓄積手段に、DROPはDROP蓄積手段に、TOSCはTOSC蓄積手段に、QOSCはQOSC蓄積手段に、QOSNはQOSN蓄積手段に蓄積する。
【００５０】
バケツ内水量判定部では、まずタイマー値からTS蓄積手段が示すTSを減算して経過時間を算出し（ステップ3）、該経過時間にPOLR蓄積手段が示すPOLRを乗じてバケツ内水量減少量を算出する（ステップ4）。更に、CNT蓄積手段が示すCNTから前記のバケツ内水量減少量を減算することにより現時刻におけるバケツ内水量が算出される。（ステップ5）バケツ内水量判定回路は、前記のバケツ内水量の正負を判定して（ステップ6）、バケツ内水量が負の場合はバケツ内水量を0に設定する。バケツ内水量は、監視結果判定部の監視結果判定回路に送信される。監視結果判定回路では、パケット長蓄積手段に蓄積してある信号線L1から入力した当該パケットのパケット長を前記のバケツ内水量に加算し、これをTHR蓄積手段が示すTHRと大小比較する（ステップ7）THRの方が小な場合は、監視帯域違反と判定される。また、THRと等しいかTHRの方が大なる場合は、監視帯域遵守と判定されてバケツ内水量を当該帯域監視エントリのCNTに、タイマー値を当該帯域監視エントリのTSに書き込んで（ステップ8）第一の帯域監視を終了する。同じステップを繰り返すことにより第二の帯域監視も終了する。
【００５１】
図9上図に、本実施例1のアドレス変換テーブルの構成を示す。CAMにはフロー検出条件として"ユーザAの重要フロー"及び"ユーザAの全パケット"を定義する条件を記したフロー定義エントリが格納されている。ここでは例として、ユーザAのSIPが111.222.333.444で、重要フローのSPORTが1であるものとする。即ち、SIPが111.222.333.444かつSPORTが1のフローが”ユーザAの重要フロー”を定義するフロー検出条件となり、SIPが111.222.333.444のフローが”ユーザAの全パケット”を定義するフロー検出条件となる。図25でフロー検出条件に該当しないパケットヘッダ情報の項目である入力回線番号、DIP、サービスタイプ、DPORT等にはマスクビットをかける。尚、CAMは上位アドレスのエントリから順に比較して最初に一致したエントリを一致エントリと判定するので、”ユーザAの全パケット”のエントリにはユーザAの重要フローを除いたユーザAの非重要フローだけが一致することになる。
【００５２】
ユーザAの重要フローに対してはユーザAの全パケットに対する最大帯域10Mbit/sと、ユーザAの重要フローだけに対する最低帯域5Mbit/sの二つの帯域を監視するものとし、ユーザAの非重要フローに対してはユーザAの全パケットに対する最大帯域10Mbit/sだけを監視したいものとする。アドレス変換テーブルには、ユーザAの重要フローに対するCAMの一致アドレスに対してはP-1（10Mbit/sの帯域監視エントリを指定するアクションポインタ）、P-2（5Mbit/sの帯域監視エントリを指定するアクションポインタ）の二つのアクションポインタが、ユーザAの非重要フローに対するCAMの一致アドレスに対してはP-1のアクションポインタだけが格納されている。
【００５３】
尚、図9でd.c.（don't care）と示す領域は無意味な情報となっており、該領域のアクションポインタ情報が無効であることを示すインバリッド情報が格納されている。このインバリッド情報により、ユーザAの非重要フローに対しては最大帯域10Mbit/sのみの帯域監視エントリしか参照しないことを判定できる。帯域監視テーブルには10Mbit/s、5Mbit/sの二つの帯域監視エントリが格納されている。図8に示されたCAM制御部31からフロー検出条件に該当する特定項目の受信パケットのパケットヘッダ情報がCAMに入力されると、CAMはCAM内部のフロー定義エントリを検索する。受信パケットが”ユーザAの重要フロー”に一致するパケットヘッダ情報を含んでいる場合、CAMの出力アドレスはアドレス変換部においてP-1とP-2の二つのアクションポインタに変換され、これらのアクションポインタが指定する最大10Mbit/sの帯域監視エントリと最低5Mbit/sの帯域監視エントリを参照する。
【００５４】
一方、受信パケットが”ユーザAの非重要フロー”に一致するパケットヘッダ情報を含んでいる場合には、CAMの出力アドレスはアドレス変換部においてP-1のアクションポインタに変換され最大帯域10Mbit/sの帯域監視エントリだけが参照される。テーブル制御部は、アドレス変換テーブルに記載された複数のアクションポインタを読み出し、読み出した複数のアクションポインタを信号線L5へ出力する。
【００５５】
このように、帯域監視部40は、信号線L5から入力した複数のアクションポインタ各々を読み出しアドレスとして帯域監視テーブルを複数回数参照することで、当該フローが属する複数のフローグループに対して予め定められた監視帯域で帯域監視を行なう。アドレス変換テーブルに、当該フローが属するフローグループに対して予め定められた一致した複数の帯域監視エントリを各々指定する複数のアクションポインタを含む構成とすることにより、帯域監視テーブルのメモリ空間を節約でき、帯域監視テーブルの書き換え制御がたやすくなるという効果がある。
【００５６】
本実施例1のアドレス変換テーブルを用いた際のパケット制御の流れは図2に示す通りである。パケット転送装置の入力回線インタフェースに入力されたユーザAの全パケットは、アクションポインタP-1により指定された最大帯域10Mbit/sの帯域監視による帯域制限を受ける。入力されたユーザAの全パケットは、ユーザAの重要フローと非重要フローの両方を含んでいる。最大帯域監視に際し、特開2000-349812号公報を利用して重要フロー用バケツ閾値を非重要フロー用バケツ閾値よりも深く設定して、重要フロー入力時は重要フロー用バケツ閾値を、非重要フロー入力時は非重要フロー用バケツ閾値とバケツ内水量とを比較することにより、重要フローが優先的に最大帯域10Mbit/s以内であると判定される。
【００５７】
入力されたパケットがユーザAの重要フローであった場合には、更にアクションポインタP-2により指定された最低帯域5Mbit/sの帯域監視による帯域保証を受ける。最低帯域5Mbit/sを越えた分のユーザAの重要フローに属するパケットは、パケット転送装置内で非優先パケットとして処理され、帯域5Mbit/s以内のユーザAの重要フローに属するパケットは、優先パケットとして扱われることにより、ユーザAの重要フローの最低帯域5Mbit/s分が優先的に転送される。
【００５８】
図10には、本実施例の帯域監視が施されたユーザAの出力帯域の時間的な変化を示す。図10でハッチングをかけた部分が優先パケット、そうでない部分が非優先パケットと帯域監視の結果判定されたパケットである。黒く塗りつぶした部分は、入力帯域が最大帯域10Mbit/sを超えたため、帯域制限を受けて廃棄されたパケットを示す。図10より、入力された時点では、重要フローと識別されたパケットであっても、最低帯域5Mbit/sの帯域監視を受けることにより、出力帯域5Mbit/sを越えたパケットについては、非優先パケットとして処理される。
【００５９】
CAM32へのフロー定義エントリの設定は、パケット転送装置10の管理者によって、管理端末90から行なわれる。管理端末90から信号線L4に、CAM書き込み命令と、CAM32の書き込みアドレスと、書き込みデータ（エントリの内容）とを含む制御メッセージを送信すると、CAM制御部31が前記メッセージを取り込み、メッセージが指定するCAM内部のアドレスに書き込みデータを書き込む。
【００６０】
前記アドレス変換テーブル332へのエントリ（アクションポインタ）の設定は、CAM32の場合と同様に、管理端末90によって行なわれる。管理端末90から信号線L4に、アドレス変換テーブル332への書き込み命令と、書き込みアドレスと、書き込みデータ（アクションポインタ）とを含む制御メッセージを送信すると、アドレス変換テーブル制御部331が前記制御メッセージを取り込み、アドレス変換テーブル332の指定のアドレスにアクションポインタを書き込む。
【００６１】
前記帯域監視テーブル102への帯域監視エントリの設定もまた、CAM32の場合と同様に、管理端末90によって行なわれる。管理端末90から信号線L4に、帯域監視テーブル102への書き込み命令と、書き込みアドレスと、書き込みデータ（帯域監視情報）とを含む制御メッセージを送信すると、帯域監視テーブル制御部101が前記制御メッセージを取り込み、帯域監視テーブル102の指定のアドレスに帯域監視エントリを書き込む。
【００６２】
本実施例1の管理端末90の入力画面を、図18に示す。Flow1、Flow2…と順に記述していく場合、Flow1とFlow2両方に一致したパケットはより上位に記述されたFlow1だけに属すると判定される。
1行目のコマンド：送信元IPアドレス（SIP）が111.222.333.444かつ送信元TCPポート番号（SPORT）が1のフロー1（Flow1）を、グループ1最大帯域監視用バケツ閾値（max-rate-burst-g1）3000Kバイト、最低帯域（min-rate）5Mbit/s、最低帯域監視用バケツ閾値（min-rate-burst）1500Kバイトで帯域監視して、最低帯域を超過したパケットに対する制裁としてDSCPを1に書き換える（penalty-replace-dscp1）コマンドである。
2行目のコマンド：SIPが111.222.333.444かつFlow1に属さないフロー2を、グループ1最大帯域監視用バケツ閾値1500Kバイトで帯域監視するコマンドである。
【００６３】
3行目のコマンド：フロー1とフロー2をフローグループ1（Group1）としてまとめてグループ1最大帯域（max-rate-g1）10Mbit/sで帯域監視して、グループ1最大帯域を超過したパケットに対する制裁として廃棄する（penalty-drop）コマンドである。
フロー1のグループ1最大帯域監視用バケツ閾値3000Kバイトを、フロー2のグループ1最大帯域監視用バケツ閾値1500Kバイトより深く設定することにより、フロー1はフロー2より優先的にグループ1最大帯域以内であると判定される。
【００６４】
更に、本実施例において統計収集をする場合への本発明の適用例について説明する。図9下図のようにアドレス変換テーブル記載のアクションポインタを、統計収集テーブル上の統計収集エントリを指定するアクションポインタとすることにより、フロー毎とフローグループ毎の統計情報の両方を収集することが可能となる。この場合、図8の帯域監視部40がそのまま統計収集部50にとって代わり、信号線L3からは無意味な値となっている。統計情報収集部は、図27に示す通り統計情報を格納するための統計収集テーブル51と、統計収集テーブル制御部52と、パケット長蓄積手段53とから構成されている。
【００６５】
パケット長蓄積手段53には、信号線L1から受信したパケットヘッダ情報から抽出したパケット長が蓄積される。また統計収集テーブルは、図28に示す通りアクションポインタに対応して各統計収集エントリ510-i（i=1〜h）から構成され、各統計収集エントリ510-iは当該アクションポインタに対応するフロー定義エントリに属するパケットのパケット長（バイト数）の総和を示すバイトカウンタ511と、入力パケット数の総和を示すパケットカウンタ512とを含む。
【００６６】
統計テーブル制御部52は、フロー検出部30が信号線L5に出力した二つのアクションポインタを受信すると、統計収集テーブル51から前記二つのアクションポインタが指定する統計収集エントリ510-pと510-qとを読み出し、二つの統計収集エントリのバイトカウンタ511が示す値に対してパケット長蓄積手段53に蓄積されているパケット長を各々加算して、また同時に二つの統計収集エントリのパケットカウンタ512が示す値に1を各々加算して、内容が更新された統計収集エントリを各々統計収集エントリ510-pと510-qに書き戻す。統計収集テーブル51の内容は、管理端末90から信号線L4に出力された制御メッセージに応答して、統計収集テーブル制御部52を経由して信号線L4に読み出される。これにより、フロー毎とフローが属するフローグループ毎のパケット数とバイト数の統計情報を同時に収集することが可能となる。
【実施例２】
【００６７】
本実施例2では、本発明で導入したアドレス変換テーブルの別の用法を説明する。図11に示すように、フロー定義エントリ毎にもつアドレス変換テーブルのエントリに記載された複数のアクションポインタのフィールド中一部に、当該フローに対するバケツ閾値を記載し、各フロー毎にアドレス変換テーブルに記載されたバケツ閾値を用いて帯域監視を実施する。図11の例では、n種の異なる重要度をもつnフローを優先制御しながら、まとめて一つの帯域監視を行なう場合を示している。特開2000-349812号公報に示されているように各重要度をもつフロー毎にバケツ閾値を変えることにより、重要度の高いフローをより優先的に監視帯域以内であると判定して優先制御付き帯域監視を行なうことが可能となる。
【００６８】
フロー間の重要度が重要度1＞重要度2＞…＞重要度nの順に高い場合、重要度1〜重要度nの各フローに対するバケツ閾値THR1〜THRnの深さをTHR1＞THR2＞…＞THRnと設定することによりnクラスの優先制御付き帯域監視を行なうことが可能となる。例えば、CAMに重要度1のフロー検出条件としてSIPが111.222.333.444かつSPORTが1のフロー定義エントリを登録し、重要度1のフロー定義エントリに対応する複数のアクションポインタのフィールド中一部にバケツ閾値を6000Kバイトとして記載する。重要度2のフロー検出条件としてSIPが111.222.333.444かつSPORTが2のフロー定義エントリを登録し、重要度2のフロー定義エントリに対応する複数のアクションポインタのフィールド中一部にバケツ閾値を4500Kバイトとして記載する。
【００６９】
重要度3のフロー検出条件としてSIPが111.222.333.444かつSPORTが3のフロー定義エントリを登録し、重要度3のフロー定義エントリに対応する複数のアクションポインタのフィールド中一部にバケツ閾値を3000Kバイトとして記載する。重要度4のフロー検出条件としてSIPが111.222.333.444かつSPORTが4のフロー定義エントリを登録し、重要度4のフロー定義エントリに対応する複数のアクションポインタのフィールド中一部にバケツ閾値を1500Kバイトとして記載する。これにより、4クラスの優先制御付き帯域監視を実施できる。図25でフロー検出条件に該当しないパケットヘッダ情報の項目である入力回線番号、DIP、サービスタイプ、DPORT等にはマスクビットをかける。
【００７０】
特開2000-349812号公報の実施例では、nクラスの優先制御付き帯域監視に際して帯域監視エントリにn個のバケツ閾値の値を記載しており、nが小さいフローグループに対しては未使用のバケツ閾値用フィールドが増加してしまうという課題がある。また、未使用のTHRのフィールドを削減しようとすると、優先制御のクラス数が制約されるという課題がある。そこで、本実施例のようにバケツ閾値を各フロー毎の情報を記載できるアドレス変換テーブルに記載することにより、帯域監視エントリ上にn個のバケツ閾値を並列的に記載する必要がなくなるので、テーブル容量をより有効に活用できるという効果がある。また、nが増加しても帯域監視エントリのフィールドビット長は増加しないので、優先制御のクラス数を制約なく容易に拡張できるという効果がある。
【００７１】
本実施例2でn=4ととった場合の管理端末90の入力画面を、図19に示す。
1行目のコマンド：SIPが111.222.333.444かつSPORTが1のフロー1を、グループ1最大帯域監視用バケツ閾値6000Kバイトで帯域監視するコマンドである。
2行目のコマンド：SIPが111.222.333.444かつSPORTが2のフロー2を、グループ1最大帯域監視用バケツ閾値4500Kバイトで帯域監視するコマンドである。
3行目のコマンド：SIPが111.222.333.444かつSPORTが3のフロー3を、グループ1最大帯域監視用バケツ閾値3000Kバイトで帯域監視するコマンドである。
4行目のコマンド：SIPが111.222.333.444かつSPORTが4のフロー4を、グループ1最大帯域監視用バケツ閾値1500Kバイトで帯域監視するコマンドである。
2行目のコマンド：フロー1とのフロー2とフロー3とフロー4とをまとめてグループ1最大帯域10Mbit/sで帯域監視して、グループ1最大帯域を超過したパケットに対する制裁として廃棄するコマンドである。
【００７２】
フロー1のグループ1最大帯域監視用バケツ閾値＞フロー2のグループ1最大帯域監視用バケツ閾値＞フロー3のグループ1最大帯域監視用バケツ閾値＞フロー4のグループ1最大帯域監視用バケツ閾値と設定することにより、フロー1の優先度＞フロー2の優先度＞フロー3の優先度＞フロー4の優先度の順で優先的にグループ1最大帯域以内であると判定される。
【実施例３】
【００７３】
本実施例3では本発明の構成の適用例として、ユーザAの全パケットに対し重要フロー、非重要フローの識別を行なわず、従来通り単一フローを個別に帯域監視する二段帯域監視を実施する場合について説明する。図12に、二つの帯域監視によって、入力パケットを優先パケット、非優先パケット、廃棄パケットに振り分ける実施例のテーブル構成図を示す。ユーザAの全パケットに対するフロー検出条件としてSIPが111.222.333.444をCAMのフロー定義エントリに登録し、当該フロー定義エントリに対応する複数のアクションポインタとして、アドレス変換テーブルで最大帯域の帯域監視エントリを指定するP-1と最低帯域の帯域監視エントリを指定するP-2を割当てる。
【００７４】
図25でフロー検出条件に該当しないパケットヘッダ情報の項目である入力回線番号、DIP、サービスタイプ、DPORT等にはマスクビットをかける。その結果、ユーザAの全パケットは最大帯域10Mbit/s及び最低帯域5Mbit/sの二つの帯域監視を受ける。ユーザAの全パケットを表すフロー定義エントリに対してアクションポインタにより参照すべき帯域監視エントリを指定する構成とすれば、最大帯域10Mbit/sの帯域監視エントリと最低帯域5Mbit/sの帯域監視エントリを帯域監視テーブル上の連続したアドレスに格納する必要はない。
【００７５】
この例では図13に示す通り、入力されたユーザAの全パケットはまず最大帯域10Mbit/sの帯域制限を受け、制限帯域を超過したパケットは最大帯域違反パケットとして廃棄される。最大帯域10Mbit/sの帯域監視の結果遵守と判定されたパケットは、次に最低帯域5Mbit/sの帯域監視を受ける。ここで、5Mbit/sを超過したパケットは、最低帯域違反パケットなので、非優先パケットに振り分けられる。最低帯域5Mbit/s以内に収まったパケットは、最低帯域遵守パケットなので優先パケットに振り分けられる。
【００７６】
図14に、本実施例3の帯域監視を実施後のユーザAの出力帯域の時間的な変化を示す。図14で黒く塗りつぶした部分は、入力帯域が最大帯域を超えたため、廃棄されたパケットを示す。ハッチングをかけた部分は最低帯域を遵守した優先パケット、そうでない部分は最低帯域を超過するが最大帯域以内の非優先パケットを示す。
更に、フロー定義エントリ毎にアドレス変換テーブルに三つ以上のアクションポインタを備える構成として、三つ以上の帯域監視エントリを指定できるようにすることによって、入力パケットの優先度をより決め細かく四種以上に分類することも可能である。
【００７７】
本実施例3の管理端末90の入力画面を、図20に示す。
1行目のコマンド：SIPが111.222.333.444のフロー1を、最大帯域10Mbit/s、最大帯域監視用バケツ閾値1500Kバイト、最低帯域5Mbit/s、最低帯域監視用バケツ閾値1500Kバイトで帯域監視するコマンドである。
【実施例４】
【００７８】
本実施例4では、複数のフローをまとめてフローグループとして最大帯域制限しつつ、フローグループを構成する各フロー毎に最低帯域を監視する場合について説明する。これは例えば、学部の集合である大学、事業部の集合としての企業等のように、階層構造をもつ組織に対して、組織の階層構造を意識してこれに合わせた帯域監視を実施する場合に相当する。図15に、本実施例のCAM、アドレス変換テーブル、帯域監視テーブルの構成例を示す。本実施例4では、ユーザA〜Dの4ユーザ（自然人、法人を問わない）から構成されるユーザグループからネットワークへ送信される入力帯域として一段目用アクションポインタP-0で指定される最大帯域20Mbit/sの帯域を共有するものとし、更に各ユーザはP-A、P-B、P-C、P-Dで指定される各最低帯域2Mbit/s、4Mbit/s、6Mbit/s、8Mbit/sを監視して、最低帯域を超過するパケットを非優先パケットとして扱うことを、各ユーザとネットワーク事業者との間で契約されている。
【００７９】
例えば、ユーザAの受信パケットに対しては、まずP-0で指定されるユーザA~Dの最大帯域10Mbit/sを監視して、最大帯域を超過したパケットは廃棄する。最大帯域以内のパケットに対しては次に、ユーザAの最低帯域2Mbit/sを監視して、最低帯域を超過したパケットは非優先パケットとして扱う。他のユーザB〜ユーザDの受信パケットに対しても、同様にユーザA〜ユーザDのグループに対する最大帯域と、各ユーザに対する最低帯域の二つの帯域監視を実施する。フロー検出にCAMを用いると、グループ内のユーザ数が増えても性能劣化することなく前記の階層的な二段帯域監視を実施できる。この帯域監視構成におけるフロー管理方法の概念図を、図16に模式的に示す。
【００８０】
本実施例4でのCAM、アドレス変換テーブル、帯域監視テーブルの設定は以下の通りとなる。ユーザAのフロー検出条件としてSIPが111.222.333.444をCAMのフロー定義エントリに登録し、当該フロー定義エントリに対応する複数のアクションポインタとして、アドレス変換テーブルで最大帯域20Mbit/sの帯域監視エントリを指定するP-0と最低帯域2Mbit/sの帯域監視エントリを指定するP-Aを割当てる。ユーザBのフロー検出条件としてSIPが111.222.333.445をCAMのフロー定義エントリに登録し、当該フロー定義エントリに対応する複数のアクションポインタとして、アドレス変換テーブルで最大帯域20Mbit/sの帯域監視エントリを指定するP-0と最低帯域4Mbit/sの帯域監視エントリを指定するP-Bを割当てる。
【００８１】
ユーザCのフロー検出条件としてSIPが111.222.333.446をCAMのフロー定義エントリに登録し、当該フロー定義エントリに対応する複数のアクションポインタとして、アドレス変換テーブルで最大帯域20Mbit/sの帯域監視エントリを指定するP-0と最低帯域6Mbit/sの帯域監視エントリを指定するP-Cを割当てる。ユーザDのフロー検出条件としてSIPが111.222.333.447をCAMのフロー定義エントリに登録し、当該フロー定義エントリに対応する複数のアクションポインタとして、アドレス変換テーブルで最大帯域20Mbit/sの帯域監視エントリを指定するP-0と最低帯域8Mbit/sの帯域監視エントリを指定するP-Dを割当てる。図25でフロー検出条件に該当しないパケットヘッダ情報の項目である入力回線番号、DIP、サービスタイプ、SPORT、DPORT等にはマスクビットをかける。
【００８２】
本実施例4の管理端末90の入力画面を、図21に示す。
1行目のコマンド：SIPが111.222.333.444のフロー1を、グループ1最大帯域監視用バケツ閾値1500Kバイト、最低帯域2Mbit/s、最低帯域監視用バケツ閾値1500Kバイトで帯域監視するコマンドである。
2行目のコマンド：SIPが111.222.333.445のフロー2を、グループ1最大帯域監視用バケツ閾値1500Kバイト、最低帯域4Mbit/s、最低帯域監視用バケツ閾値1500Kバイトで帯域監視するコマンドである。
3行目のコマンド：SIPが111.222.333.446のフロー3を、グループ1最大帯域監視用バケツ閾値1500Kバイト、最低帯域6Mbit/s、最低帯域監視用バケツ閾値1500Kバイトで帯域監視するコマンドである。
4行目のコマンド：SIPが111.222.333.447のフロー4を、グループ1最大帯域監視用バケツ閾値1500Kバイト、最低帯域8Mbit/s、最低帯域監視用バケツ閾値1500Kバイトで帯域監視するコマンドである。
5行目のコマンド：フロー1とのフロー2とフロー3とフロー4とをまとめてグループ1最大帯域20Mbit/sで帯域監視して、グループ1最大帯域を超過したパケットに対する制裁として廃棄するコマンドである。
【００８３】
フロー1のグループ1最大帯域監視用バケツ閾値=フロー2のグループ1最大帯域監視用バケツ閾値=フロー3のグループ1最大帯域監視用バケツ閾値=フロー4のグループ1最大帯域監視用バケツ閾値と設定することにより、帯域監視における優先制御機能は働かない。
【実施例５】
【００８４】
本実施例5では本発明の構成の適用例として、ある単一のフローまたはフローグループに対し複数の目的に応じて各々個別の帯域で監視する場合、特にフラッディングによるパケットの帯域と、フラッディングによるパケットとその他のパケット両方による回線帯域の監視を行なう例について示す。フラッディングとは、L2スイッチに入力したパケットの宛先MACアドレスが当該L2スイッチにとって未知であった場合、この宛先MACアドレスに対し転送すべき出力回線を知るために全ての出力回線にこのパケットを転送する処理のことである。
【００８５】
このパケットに対し応答のあった回線が、このパケットを転送すべき回線となる。L2スイッチ内でフラッディングパケットを生成する際、このパケットに対しスイッチ内で付与する内部ヘッダ530に、このパケットがフラッディングにより生成されたことを示すフラッディング識別子を与え、フロー定義エントリに登録するフロー検出条件にフラッディング識別子を含めることにより、フラッディングパケットをフローとして識別することが可能となる。本実施例5では、出力回線毎にフラッディングパケットを帯域監視して帯域制限をかけることによりフラッディングパケットが回線帯域を占有しないように抑制すると共に、非フラッディングパケットも含めて出力回線単位の帯域制限をかける例を示す。
【００８６】
図17では、フロー定義エントリ1で出力回線がOUT1のフラッディングパケットを識別する。また、フロー定義エントリ2で出力回線がOUT1の非フラッディングパケットを識別する。フロー定義エントリ1に一致したパケットに対しては、アクションポインタP-1で指定される回線帯域監視エントリ（最大帯域50Mbit/s）とアクションポインタP-2で指定されるフラッディング帯域監視エントリ（最大帯域1Mbit/s）両方を参照することで帯域制限をかける。いずれかの帯域に違反した場合、パケットを廃棄するものとする。フロー定義エントリ2に一致したパケットに対しては、アクションポインタP-1で指定される回線帯域監視エントリ（最大帯域50Mbit/s）だけを参照する。
【００８７】
これにより、出力回線OUT1の出力帯域を50Mbit/sで制限しつつ、更に出力回線OUT1中のフラッディングパケットの帯域を1Mbit/sに抑制することが可能となる。本実施例では、フラッディング帯域と出力回線帯域の組み合わせによる複数の用途で帯域監視する例を示す。同様に本発明の構成により、単一フローに対し異なる複数の用途で複数の帯域を監視することが可能となる。
【００８８】
本実施例5の管理端末90の入力画面を、図22に示す。
1行目のコマンド：出力回線（outport）が1のフラッディングパケット（fld）のフロー1を、最大帯域1Mbit/s、最大帯域監視用バケツ閾値1500Kバイト、グループ1最大帯域監視用バケツ閾値1500Kバイトで帯域監視するコマンドである。
2行目のコマンド：出力回線（outport）が1かつFlow1に属さないフロー2を、グループ1最大帯域監視用バケツ閾値1500Kバイトで帯域監視するコマンドである。
3行目のコマンド：フロー1とのフロー2とをまとめてグループ1最大帯域50Mbit/sで帯域監視して、最大帯域を超過したパケットに対する制裁として廃棄するコマンドである。
フロー1のグループ1最大帯域監視用バケツ閾値=フロー2のグループ1最大帯域監視用バケツ閾値と設定することにより、帯域監視における優先制御機能は働かない。
【図面の簡単な説明】
【００８９】
【図１】従来技術1のフロー検出方法を示す図。
【図２】ユーザAの全パケットを最大帯域監視して、ユーザAの重要フローだけは更に最低帯域監視する際のパケット制御の流れ図。
【図３】従来技術1で二段帯域監視しようとするフロー検出方法の例を示す図。
【図４】従来技術1で二段帯域監視しようとする際、帯域監視テーブルの未使用領域を無くしたフロー検出方法の例を示す図。
【図５】本発明によるパケット転送装置の構成例を示すブロック図。
【図６】図5に示すパケット転送装置の入力回線インタフェース11-iと制御部15の構例を示すブロック図。
【図７】図5、図6に示すパケット転送装置内部で処理されるパケットデータの構成図。
【図８】実施例1のフロー検出部30と帯域監視部40の構成を示すブロック図。
【図９】実施例1のCAMと、アドレス変換テーブルと、帯域監視テーブルの構成を示すブロック図。
【図１０】実施例1の帯域監視後のパケット出力帯域の時間的変動を示す図。
【図１１】実施例2のCAMと、アドレス変換テーブルと、帯域監視テーブルの構成を示すブロック図。
【図１２】実施例3のCAMと、アドレス変換テーブルと、帯域監視テーブルの構成を示すブロック図。
【図１３】実施例3で、ユーザAの全パケットを最大帯域と最低帯域の二つの監視帯域で帯域監視する際のパケット制御の流れ図。
【図１４】実施例3の帯域監視後のパケット出力帯域の時間的変動を示す図。
【図１５】実施例4のCAMと、アドレス変換テーブルと、帯域監視テーブルの構成を示すブロック図。
【図１６】実施例4のフロー管理方法の概念図。
【図１７】実施例5のCAMと、アドレス変換テーブルと、帯域監視テーブルの構成を示すブロック図。
【図１８】実施例1の管理端末90の入力画面。
【図１９】実施例2の管理端末90の入力画面。
【図２０】実施例3の管理端末90の入力画面。
【図２１】実施例4の管理端末90の入力画面。
【図２２】実施例5の管理端末90の入力画面。
【図２３】帯域監視部40の構成を示すブロック図。
【図２４】帯域監視部40の動作を示すフローチャート
【図２５】CAM32に登録したフロー定義エントリのフォーマットを示す図。
【図２６】帯域監視テーブル102に登録した帯域監視エントリのフォーマットを示す図。
【図２７】統計収集部50の構成を示すブロック図。
【図２８】統計収集テーブル51の構成を示すブロック図。
【符号の説明】
【００９０】
11:入力回線インタフェース、12:出力回線インタフェース、13:出力バッファ、14:パケット中継部、15:制御部、16:多重化回路、17:振り分け回路、20:ルーティング処理部、30:フロー検出部、31:CAM制御部、32:CAM、33:アドレス変換部、40:帯域監視部、50:統計収集部、51:統計収集テーブル、52:統計収集テーブル制御部、53:パケット長蓄積手段、331:アドレス変換テーブル制御部、332:アドレス変換テーブル、40:帯域監視部、101:帯域監視テーブル制御部、102:帯域監視テーブル、532:入力回線番号、533:出力回線番号、534:転送優先度。
【図１】
2004289806.tif 000003
【図２】
2004289806.tif 000004
【図３】
2004289806.tif 000005
【図４】
2004289806.tif 000006
【図５】
2004289806.tif 000007
【図６】
2004289806.tif 000008
【図７】
2004289806.tif 000009
【図８】
2004289806.tif 000010
【図９】
2004289806.tif 000011
【図１０】
2004289806.tif 000012
【図１１】
2004289806.tif 000013
【図１２】
2004289806.tif 000014
【図１３】
2004289806.tif 000015
【図１４】
2004289806.tif 000016
【図１５】
2004289806.tif 000017
【図１６】
2004289806.tif 000018
【図１７】
2004289806.tif 000019
【図１８】
2004289806.tif 000020
【図１９】
2004289806.tif 000021
【図２０】
2004289806.tif 000022
【図２１】
2004289806.tif 000023
【図２２】
2004289806.tif 000024
【図２３】
2004289806.tif 000025
【図２４】
2004289806.tif 000026
【図２５】
2004289806.tif 000027
【図２６】
2004289806.tif 000028
【図２７】
2004289806.tif 000029
【図２８】
2004289806.tif 000030