(57)【要約】  制御サーバは、フローテーブルに登録されている複数のフロー情報の中から、１つのフロー情報を選択フロー情報として定期的に選択し、ネットワークノードは、フローキャッシュに登録されている一部のフロー情報のうちの１つのフロー情報を削除し、選択フロー情報をフローキャッシュに登録している。このように、ネットワークノードが保持するフロー情報は、頻繁に入れ替えが行われる。このため、ネットワークノードにおいて、制御したいフローの数に相当するフロー情報を保持することができる容量が制限されても、全てのフローについて適切にトラヒックの制限を行うことができる。
2009098819.tif 000002
【特許請求の範囲】
【請求項１】
パケットの中継を行うネットワークノードと、
前記ネットワークノードに接続された制御サーバと、
を具備し、
前記パケットは、前記パケットが属するフローに関するフロー情報を含み、
前記制御サーバは、
複数のフロー情報が登録されたフローテーブル、
を具備し、
前記ネットワークノードは、
前記パケットを受信パケットとして受信するパケット監視部と、
前記複数のフロー情報のうちの一部のフロー情報が登録されたフローキャッシュと、ここで、前記フローキャッシュに登録されている前記一部のフロー情報はパケット廃棄率を含み、
前記受信パケットの前記フロー情報と一致する一致フロー情報が前記フローキャッシュに登録されていない場合、前記受信パケットを送信パケットとして送信し、前記一致フロー情報が前記フローキャッシュに登録されている場合、前記一致フロー情報の前記パケット廃棄率に従って前記受信パケットを破棄するパケット破棄部と、
を具備し、
前記制御サーバは、
前記フローテーブルに登録されている前記複数のフロー情報の中から、１つのフロー情報を選択フロー情報として定期的に選択する通知フロー決定部、
を更に具備し、
前記ネットワークノードは、
前記フローキャッシュの容量に空きがある場合、前記選択フロー情報に対する前記パケット廃棄率を前記選択フロー情報に付加して前記フローキャッシュに登録し、前記フローキャッシュの容量に空きがない場合、前記フローキャッシュに登録されている前記一部のフロー情報のうちの１つのフロー情報を削除し、前記選択フロー情報に対する前記パケット廃棄率を前記選択フロー情報に付加して前記フローキャッシュに登録するキャッシュ置き換え部、
を更に具備する通信システム。
【請求項２】
前記制御サーバの前記通知フロー決定部は、予め決められた第１の確率に従って、定期的に前記選択フロー情報を選択する、
請求の範囲１に記載の通信システム。
【請求項３】
前記制御サーバは、
予め決められた第２の確率を、前記選択フロー情報に対する前記パケット廃棄率として決定する廃棄率決定部、
を更に具備する請求の範囲２に記載の通信システム。
【請求項４】
前記制御サーバは、
前記パケット監視部により前記受信パケットが受信されたときの受信帯域を計測し、そのときの制限帯域を推測して、前記受信パケットの前記フロー情報に前記受信帯域と前記制限帯域とを付加して前記フローテーブルに登録する制限帯域設定部、
を更に具備し、
前記フローテーブルには、複数の前記フロー情報が登録され、
前記第１の確率は、前記選択フロー情報、前記制限帯域、前記受信帯域をそれぞれｉ、Ｂｉ、Ｌｉとしたとき、
前記選択フロー情報ｉに対して一律の確率Ｐｉ｛Ｐｉ＝固定値Ａ（０≦Ａ≦１）｝、
前記選択フロー情報ｉの前記受信帯域Ｂｉに比例した確率Ｐｉ｛Ｐｉ＝ｆ１（Ｂｉ）、０≦ｆ１≦１｝、
前記選択フロー情報ｉの前記制限帯域Ｂｉと前記受信帯域Ｌｉとの差分に比例した確率Ｐｉ｛Ｐｉ＝ｆ２（Ｂｉ−Ｌｉ）、０≦ｆ２≦１｝、
前記選択フロー情報ｉに対して予め定められたパケット廃棄率Ｈｉに応じた確率Ｐｉ｛Ｐｉ＝ｆ３（Ｈｉ）、０≦ｆ３≦１｝、
前記選択フロー情報ｉを前記フローキャッシュに前回登録した時刻Ｔｉから、現在時刻Ｔまでの経過時間に応じた確率Ｐｉ｛Ｐｉ＝ｆ４（Ｔ−Ｔｉ）、０≦ｆ４≦１｝、
前記選択フロー情報ｉを含むパケットを受信した時刻Ａｉから、現在時刻Ｔまでの経過時間に応じた確率Ｐｉ｛Ｐｉ＝ｆ５（１／（Ｔ−Ａｉ））、０≦ｆ５≦１｝、
前記第１の確率に対して指数関数や対数関数を適用した確率、
のいずれかである、
請求の範囲２又は３に記載の通信システム。
【請求項５】
前記制御サーバは、
前記パケット監視部により前記受信パケットが受信されたときの受信帯域を計測し、そのときの制限帯域を推測して、前記受信パケットの前記フロー情報に前記受信帯域と前記制限帯域とを付加して前記フローテーブルに登録する制限帯域設定部、
を更に具備し、
前記フローテーブルには、複数の前記フロー情報が登録され、
前記第２の確率は、前記選択フロー情報、前記制限帯域、前記受信帯域をそれぞれｉ、Ｂｉ、Ｌｉとしたとき、
前記選択フロー情報ｉに対して一律の確率Ｄｉ｛Ｄｉ＝固定値Ａ（０≦Ａ≦１）｝、
前記選択フロー情報ｉの前記受信帯域Ｂｉに比例した確率Ｄｉ｛Ｄｉ＝ｆ１（Ｂｉ）、０≦ｆ１≦１｝、
前記選択フロー情報ｉの前記制限帯域Ｂｉと前記受信帯域Ｌｉとの差分に比例した確率Ｄｉ｛Ｄｉ＝ｆ２（Ｂｉ−Ｌｉ）、０≦ｆ２≦１｝、
前記選択フロー情報ｉに対して予め定められたパケット廃棄率Ｈｉに応じた確率Ｄｉ｛Ｄｉ＝ｆ３（Ｈｉ）、０≦ｆ３≦１｝、
前記選択フロー情報ｉを前記フローキャッシュに前回登録した時刻Ｔｉから、現在時刻Ｔまでの経過時間に応じた確率Ｄｉ｛Ｄｉ＝ｆ４（Ｔ−Ｔｉ）、０≦ｆ４≦１｝、
前記選択フロー情報ｉを含むパケットを受信した時刻Ａｉから、現在時刻Ｔまでの経過時間に応じた確率Ｄｉ｛Ｄｉ＝ｆ５（１／（Ｔ−Ａｉ））、０≦ｆ５≦１｝、
前記第２の確率に対して指数関数や対数関数を適用した確率、
のいずれかである、
請求の範囲３に記載の通信システム。
【請求項６】
前記ネットワークノードのキャッシュ置き換え部は、
前記フローキャッシュの容量に空きがない場合、
予め決められた第３の確率に従って、前記フローキャッシュに登録されている前記一部のフロー情報のうちの１つのフロー情報を削除し、
前記選択フロー情報に対する前記パケット廃棄率を前記選択フロー情報に付加して前記フローキャッシュに登録する、
請求の範囲４又は５に記載の通信システム。
【請求項７】
前記第３の確率は、前記選択フロー情報、前記パケット廃棄率をそれぞれｉ、Ｄｉとしたとき、
前記選択フロー情報ｉに対して一律の確率Ｒｉ｛Ｒｉ＝固定値Ｃ（０≦Ｃ≦１）、０≦ｇ１≦１｝、
前記パケット廃棄率Ｄｉに比例した確率Ｒｉ｛Ｒｉ＝ｇ１（１／Ｄｉ）｝、
前記選択フロー情報ｉを前記フローキャッシュに前回登録した時刻Ｔｉから、現在時刻Ｔまでの経過時間に応じた確率Ｒｉ｛Ｒｉ＝ｇ２（Ｔ−Ｔｉ）、０≦ｇ２≦１｝、
前記選択フロー情報ｉを含むパケットを受信した時刻Ａｉから、現在時刻Ｔまでの経過時間に応じた確率Ｒｉ｛Ｒｉ＝ｇ３（１／（Ｔ−Ａｉ））、０≦ｇ３≦１｝、
のいずれかである、
請求の範囲６に記載の通信システム。
【請求項８】
前記制御サーバは、複数の前記ネットワークノードに接続され、
前記ネットワークノードは、
前記パケット監視部により受信された前記受信パケットと、自身の前記ネットワークノードを識別する識別情報と、を前記制御サーバの前記制限帯域設定部に出力する制御サーバ振り分け部、
を更に具備し、
前記フローテーブルには、複数の前記識別情報に対応付けて、前記複数のフロー情報が登録され、
前記制御サーバの制限帯域設定部は、
前記複数のネットワークノードから出力された複数の前記受信パケットに対して前記受信帯域を計測し、前記制限帯域を推測して、前記複数のネットワークノードから出力された前記受信パケットの前記フロー情報に前記受信帯域と前記制限帯域とを付加し、前記複数のネットワークノードから出力された前記識別情報に対応付けて前記フローテーブルに登録し、
前記制御サーバは、
前記複数のネットワークノードに対して、前記通知フロー決定部により選択された前記選択フロー情報と、前記廃棄率決定部により決定された前記パケット廃棄率と、をそれぞれ前記複数のネットワークノードの前記キャッシュ置き換え部に出力するネットワークノード振り分け部、
を更に具備する請求の範囲４〜７のいずれかに記載の通信システム。
【請求項９】
前記ネットワークノードは、複数の前記制御サーバに接続され、
前記ネットワークノードは、
前記パケット監視部により受信された前記受信パケットを前記制御サーバの前記制限帯域設定部に出力する制御サーバ振り分け部、
を更に具備し、
前記複数の制御サーバの制限帯域設定部は、
前記ネットワークノードから出力された前記受信パケットに対して前記受信帯域を計測し、前記制限帯域を推測して、前記ネットワークノードから出力された前記受信パケットの前記フロー情報に前記受信帯域と前記制限帯域とを付加し、それぞれ前記複数の制御サーバの前記フローテーブルに登録し、
前記複数の制御サーバは、
前記ネットワークノードに対して、それぞれ前記複数の制御サーバの前記通知フロー決定部により選択された前記選択フロー情報と、それぞれ前記複数の制御サーバの前記廃棄率決定部により決定された前記パケット廃棄率と、を前記ネットワークノードの前記キャッシュ置き換え部に出力するネットワークノード振り分け部、
を更に具備する請求の範囲４〜７のいずれかに記載の通信システム。
【請求項１０】
前記ネットワークノードは、
自身の前記ネットワークノードの状態を表す状態情報を前記制御サーバに出力するノード状態監視部、
を更に具備し、
前記制御サーバは、
前記状態情報が、前記パケット監視部により受信された前記受信パケットに対して前記フロー情報が前記フローキャッシュに登録されていないことを表す場合、前記受信パケットの前記フロー情報に対する前記パケット廃棄率を決定し、前記ネットワークノードの前記パケット破棄部に出力する非制御フロー廃棄率決定部、
を更に具備し、
前記パケット破棄部は、
前記受信パケットの前記フロー情報と一致する前記一致フロー情報が前記フローキャッシュに登録されている場合、前記非制御フロー廃棄率決定部からの前記パケット廃棄率と前記一致フロー情報の前記パケット廃棄率とに従って、前記受信パケットを破棄する、
請求の範囲３〜７のいずれかに記載の通信システム。
【請求項１１】
前記制御サーバは、
前記廃棄率決定部に代えて、制限帯域決定部、
を具備し、
前記制限帯域決定部は、前記制限帯域設定部により推測される前記制限帯域である第１制限帯域が表す値よりも所定値だけ小さい第２制限帯域を決定し、
前記フローキャッシュに登録されている前記一部のフロー情報は、パケット廃棄率に代えて、前記第２制限帯域を含み、
前記ネットワークノードの前記キャッシュ置き換え部は、
前記フローキャッシュの容量に空きがある場合、前記選択フロー情報に対する前記第２制限帯域を前記選択フロー情報に付加して前記フローキャッシュに登録し、
前記フローキャッシュの容量に空きがない場合、前記フローキャッシュに登録されている前記一部のフロー情報のうちの１つのフロー情報を削除し、前記選択フロー情報に対する前記第２制限帯域を前記選択フロー情報に付加して前記フローキャッシュに登録し、
前記ネットワークノードは、
前記パケット破棄部に代えて、シェイパ処理部、
を具備し、
前記シェイパ処理部は、
前記受信パケットの前記フロー情報と一致する前記一致フロー情報が前記フローキャッシュに登録されていない場合、前記受信パケットを送信パケットとして送信し、
前記一致フロー情報が前記フローキャッシュに登録されている場合、前記パケット監視部により前記受信パケットが受信されたときの前記受信帯域と、前記一致フロー情報の前記第２制限帯域とを比較し、前記受信パケットの前記受信帯域が前記一致フロー情報の前記第２制限帯域よりも高い場合、前記受信パケットを破棄する、
請求の範囲４に記載の通信システム。
【請求項１２】
前記制御サーバは、
前記通知フロー決定部に代えて、ブルームフィルタ作成部、
を具備し、
前記制御サーバの前記廃棄率決定部は、
前記フローテーブルに登録されている前記複数のフロー情報に対してそれぞれ複数の前記パケット廃棄率を決定し、
前記ブルームフィルタ作成部は、前記複数のパケット廃棄率をそれぞれ表す複数のビットを含むブルームフィルタを生成し、
前記ネットワークノードは、
前記フローキャッシュ、前記キャッシュ置き換え部に代えて、
既存ブルームフィルタが登録されたブルームフィルタ保持部と、
前記既存ブルームフィルタを削除し、前記ブルームフィルタを前記ブルームフィルタ保持部に登録するブルームフィルタ置き換え部と、
を具備し、
前記ネットワークノードのパケット破棄部は、
前記ブルームフィルタ保持部に登録されている前記ブルームフィルタに基づいて、前記受信パケットの前記フロー情報に対する前記パケット廃棄率を選択パケット廃棄率として決定し、前記選択パケット廃棄率に従って、前記受信パケットを破棄する、
請求の範囲３に記載の通信システム。
【請求項１３】
前記ブルームフィルタ保持部には、複数の前記既存ブルームフィルタが登録され、
前記ブルームフィルタ置き換え部は、
前記ブルームフィルタ保持部の容量に空きがある場合、前記ブルームフィルタを前記ブルームフィルタ保持部に登録し、
前記ブルームフィルタ保持部の容量に空きがない場合、前記ブルームフィルタ保持部に登録されている前記複数の既存ブルームフィルタのうちの１つの既存ブルームフィルタを削除し、前記ブルームフィルタを前記ブルームフィルタ保持部に登録する、
請求の範囲１２に記載の通信システム。
【請求項１４】
前記制御サーバは、前記ネットワークノード内に設けられる、
請求の範囲１〜１３のいずれかに記載の通信システム。
【請求項１５】
請求の範囲１〜１４のいずれかに記載の通信システムに使用されるネットワークノード。
【請求項１６】
請求の範囲１〜１４のいずれかに記載の通信システムに使用される制御サーバ。
【請求項１７】
複数のフロー情報が登録されたフローテーブルと、前記複数のフロー情報のうちの一部のフロー情報が登録されたフローキャッシュと、を用いて、パケットの中継を行う中継方法であって、
前記パケットを受信パケットとして受信するステップと、ここで、前記パケットは、前記パケットが属するフローに関するフロー情報を含み、前記フローキャッシュに登録されている前記一部のフロー情報はパケット廃棄率を含み、
前記受信パケットの前記フロー情報と一致する一致フロー情報が前記フローキャッシュに登録されていない場合、前記受信パケットを送信パケットとして送信するステップと、
前記一致フロー情報が前記フローキャッシュに登録されている場合、前記一致フロー情報の前記パケット廃棄率に従って前記受信パケットを破棄するステップと、
前記フローテーブルに登録されている前記複数のフロー情報の中から、１つのフロー情報を選択フロー情報として定期的に選択するステップと、
前記フローキャッシュの容量に空きがある場合、前記選択フロー情報に対する前記パケット廃棄率を前記選択フロー情報に付加して前記フローキャッシュに登録するステップと、
前記フローキャッシュの容量に空きがない場合、前記フローキャッシュに登録されている前記一部のフロー情報のうちの１つのフロー情報を削除し、前記選択フロー情報に対する前記パケット廃棄率を前記選択フロー情報に付加して前記フローキャッシュに登録するステップと、
を具備する中継方法。
【請求項１８】
複数のフロー情報が登録されたフローテーブルと、前記複数のフロー情報のうちの一部のフロー情報が登録されたフローキャッシュと、を具備し、パケットの中継を行うコンピュータに適用され、
前記パケットを受信パケットとして受信するステップと、ここで、前記パケットは、前記パケットが属するフローに関するフロー情報を含み、前記フローキャッシュに登録されている前記一部のフロー情報はパケット廃棄率を含み、
前記受信パケットの前記フロー情報と一致する一致フロー情報が前記フローキャッシュに登録されていない場合、前記受信パケットを送信パケットとして送信するステップと、
前記一致フロー情報が前記フローキャッシュに登録されている場合、前記一致フロー情報の前記パケット廃棄率に従って前記受信パケットを破棄するステップと、
前記フローテーブルに登録されている前記複数のフロー情報の中から、１つのフロー情報を選択フロー情報として定期的に選択するステップと、
前記フローキャッシュの容量に空きがある場合、前記選択フロー情報に対する前記パケット廃棄率を前記選択フロー情報に付加して前記フローキャッシュに登録するステップと、
前記フローキャッシュの容量に空きがない場合、前記フローキャッシュに登録されている前記一部のフロー情報のうちの１つのフロー情報を削除し、前記選択フロー情報に対する前記パケット廃棄率を前記選択フロー情報に付加して前記フローキャッシュに登録するステップと、
の各ステップを前記コンピュータに実行させるコンピュータプログラムが記憶され、前記コンピュータプログラムを前記コンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットの中継を行う通信システムに関する。
【背景技術】
【０００２】
ネットワークにおいて、大量のトラヒックに起因する問題が深刻になっている。例えば、特定のフローに対して大量のトラヒックを発生させることによって、そのフローの通信を阻害する攻撃（サービス拒否攻撃）や、Ｐ２Ｐ（Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ）などのアプリケーションによって、特定のフローに対して大量のトラヒックを恒常的に発生させて、そのフローの通信品質を劣化させてしまう問題などが挙げられる。これらの問題に対処するため、従来は主に以下の２方式が用いられてきた。【０００３】
第一の方式では、ネットワークのトラヒックを監視し、大量のトラヒックを発生させるフローを特定し、このフローに対してのみトラヒックの制限を行う方式である。例えば、特開２００６−６０５９９号公報に示される方式では、トラヒック量などの情報を基に攻撃を検出し、これに基づいてファイヤーウォールにてレートを制限するフィルタを設定する方式が示されている。【０００４】
第二の方式では、フロー毎に通信を許可する量を予め決定しておき、あるいは動的に決定しておき、フローのトラヒック量がこの量を超えた場合にはトラヒックの制限を行う方式である。例えば特開平１１−０４１３１６号公報に示される方式では、出力回線を共有する全てのフロー間で公平に帯域を分配する方式が述べられており、決定された量を超えたトラヒックは、キューがいっぱいになったところで廃棄される。【０００５】
以上の２つの従来方式では、ネットワークノードが、制御したいフローの数に相当するフロー情報を保持しておく必要がある。フロー情報は、フローに関する情報を表している。しかしながら、高速なネットワークノードでは、フロー情報を保持することができる容量が制限される。このため、ネットワークノードは、制御したいフローの数が多い場合は、これらのフロー情報を全て保持することができない。従って、全てのフローについて適切にトラヒックの制限を行うことができない。【０００６】
上記文献について紹介する。【０００７】
特開２００６−６０５９９号公報には、アプリケーションサービス拒絶攻撃防御方法が開示されている。この方法は、ＩＰネットワーク内に設置されるエンドノードを、該エンドノードのレイヤ５以上の処理をターゲットとするＴＣＰ上のＤｏＳ攻撃またはＤＤｏＳ攻撃から防御するものである。この方法では、エンドノードを収容するエッジノードの該エンドノードへの出口回線に設置されたファイヤーウォール装置が、レイヤ４以下のフィールド情報を基にフィルタリングを行う（第１の処理）。第１の処理の後、エンドノードの代理でＴＣＰの処理を一旦終端し、３ウェイ−ハンドシェーク処理を行ってからエンドノードへトラヒックを転送する（第２の処理）。エンドノードのアドレスを送信先アドレスとするトラヒックを発信元アドレスごとに監視し、レイヤ４以下の情報に基づいて攻撃を検知し対処を依頼する（第３の処理）。第３の処理からの依頼により指定されたフローに対してトラヒックの制限を行う（第４の処理）。【０００８】
特開平１１−０４１３１６号公報には、データ出力制御方法が開示されている。データ出力制御方法は、複数の待ち行列を有し、入力データをその属性に基づいて適切な待ち行列に格納し、これらの待ち行列から単一の出力回線にデータを出力するものである。この方法では、待ち行列の番号を格納する複数のリストを使用し、同一の待ち行列番号は全リスト中に高々１つのみ存在するようにする。入力データを待ち行列に格納する際、該待ち行列が入力データ以外のデータを持たなければ、該待ち行列のデータ出力可否状態および優先度の内の少なくとも１つの条件に応じて適切なリストに該待ち行列番号を格納する。データを出力回線に出力する際には、適切なリストを選択してそのリストの先頭から待ち行列番号を取り出し、取り出した番号の待ち行列からデータを１つ送出する。該待ち行列が、出力したデータ以外のデータを持てば前記条件により適切なリストに該待ち行列番号を格納する。一定時間毎に、もしくは特定のリストが空になる毎に、各待ち行列の前記条件の変更と、リスト間での待ち行列番号の移動とを行うリセット動作を行う。
【発明の開示】
【０００９】
上述したシステムでは、全てのフローについて適切にトラヒックの制限を行うことができない、という課題がある。従って、本発明の目的は、ネットワークノードにおいて、制御したいフローの数に相当するフロー情報を保持することができる容量が制限されても、全てのフローについて適切にトラヒックの制限を行うことができる通信システムを提供することにある。
【００１０】
本発明の通信システムは、パケットの中継を行うネットワークノードと、ネットワークノードに接続された制御サーバと、を具備している。パケットは、パケットが属するフローに関するフロー情報を含んでいる。制御サーバは、複数のフロー情報が登録されたフローテーブルと、通知フロー決定部と、を具備している。ネットワークノードは、パケットを受信パケットとして受信するパケット監視部と、複数のフロー情報のうちの一部のフロー情報が登録されたフローキャッシュと、パケット破棄部と、キャッシュ置き換え部と、を具備している。ここで、フローキャッシュに登録されている一部のフロー情報はパケット廃棄率を含んでいる。ネットワークノードのパケット破棄部は、受信パケットのフロー情報と一致する一致フロー情報がフローキャッシュに登録されていない場合、受信パケットを送信パケットとして送信し、一致フロー情報がフローキャッシュに登録されている場合、一致フロー情報のパケット廃棄率に従って受信パケットを破棄する。制御サーバの通知フロー決定部は、フローテーブルに登録されている複数のフロー情報の中から、１つのフロー情報を選択フロー情報として定期的に選択する。ネットワークノードのキャッシュ置き換え部は、フローキャッシュの容量に空きがある場合、選択フロー情報に対するパケット廃棄率を選択フロー情報に付加してフローキャッシュに登録し、フローキャッシュの容量に空きがない場合、フローキャッシュに登録されている一部のフロー情報のうちの１つのフロー情報を削除し、選択フロー情報に対するパケット廃棄率を選択フロー情報に付加してフローキャッシュに登録する。本発明の通信システムによれば、ネットワークノードが保持するフロー情報を削減することができる。このため、低コストでネットワークノードを構成することができる。また、ネットワークノードが保持するフロー情報は、頻繁に入れ替えが行われる。このため、本発明の通信システムによれば、ネットワークノードにおいて、制御したいフローの数に相当するフロー情報を保持することができる容量が制限されても、全てのフローについて適切にトラヒックの制限を行うことができる。
【図面の簡単な説明】
【００１１】
上記発明の目的、効果、特徴は、添付される図面と連携して実施の形態の記述から、より明らかになる。【００１２】
【図１】図１は、本発明の第１実施形態による通信システムの構成を示している。
【図２】図２は、本発明の第１実施形態による通信システムの制御サーバ１及びネットワークノード２の構成を示すブロック図である。
【図３】図３は、本発明の第１実施形態による通信システムの動作を示すフローチャートである。
【図４】図４は、本発明の第２実施形態による通信システムの制御サーバ１及びネットワークノード２の構成を示すブロック図である。
【図５】図５は、本発明の第３実施形態による通信システムの制御サーバ１及びネットワークノード２の構成を示すブロック図である。
【図６】図６は、本発明の第４実施形態による通信システムの制御サーバ１及びネットワークノード２の構成を示すブロック図である。
【図７】図７は、本発明の第５実施形態による通信システムの構成を示している。
【図８】図８は、本発明の第５実施形態による通信システムの制御サーバ１及びネットワークノード２の構成を示すブロック図である。
【図９】図９は、本発明の第５実施形態による通信システムの動作を示すフローチャートである。
【発明を実施するための最良の形態】
【００１３】
以下に添付図面を参照して、本発明の実施形態による通信システムについて詳細に説明する。【００１４】
（第１実施形態）
図１は、本発明の第１実施形態による通信システムの構成を示している。通信システムは、制御サーバ１と、ネットワークノード２と、を具備している。【００１５】
制御サーバ１は、コンピュータであり、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である実行部１１と、記録媒体である記憶部１２と、を具備している。記憶部１２には、制御サーバ１に実行させるためのコンピュータプログラム１３が記憶されている。実行部１１は、制御サーバ１が起動するときなどにコンピュータプログラム１３を記憶部１２から読み取って実行する。【００１６】
ネットワークノード２は、コンピュータであり、ＣＰＵである実行部２１と、記録媒体である記憶部２２と、フローキャッシュ２−３と、を具備している。記憶部２２には、ネットワークノード２に実行させるためのコンピュータプログラム２３が記憶されている。実行部２１は、ネットワークノード２が起動するときなどにコンピュータプログラム２３を記憶部２２から読み取って実行する。【００１７】
図２は、本発明の第１実施形態による通信システムの制御サーバ１及びネットワークノード２の構成を示すブロック図である。【００１８】
制御サーバ１の記憶部１２は、フローテーブル１−２を備え、そのコンピュータプログラム１３は、制限帯域設定部１−１、通知フロー決定部１−３、廃棄率決定部１−４を含んでいる。制御サーバ１は、ネットワークノード２に接続されている。【００１９】
ネットワークノード２のコンピュータプログラム２３は、パケット監視部２−１、キャッシュ置き換え部２−２、パケット廃棄部２−４を含んでいる。ネットワークノード２は、パケットの中継を行う。パケットは、パケットが属するフローに関するフロー情報を含んでいる。フロー情報は、パケットのヘッダに付加されている。【００２０】
フローテーブル１−２には、受信帯域と制限帯域とを含む複数のフロー情報が登録されている。【００２１】
フローキャッシュ２−３には、複数のフロー情報のうちの一部のフロー情報が登録されている。フローキャッシュ２−３に登録されている一部のフロー情報はパケット廃棄率Ｄｉを含んでいる。【００２２】
ネットワークノード２のパケット監視部２−１は、パケットを受信パケットとして受信し、パケット破棄部２−４と制御サーバ１とに出力する。制御サーバ１の制限帯域設定部１−１は、パケット監視部２−１により受信パケットが受信されたときの受信帯域を計測し、そのときの制限帯域を推測して、受信パケットのフロー情報に受信帯域と制限帯域とを付加してフローテーブル１−２に登録する。即ち、受信パケットのフロー情報の受信帯域と制限帯域とを更新する。【００２３】
制御サーバ１の通知フロー決定部１−３は、フローテーブル１−２に登録されている複数のフロー情報の中から、予め決められた第１の確率（以下、確率Ｐｉ）に従って、１つのフロー情報を選択フロー情報ｉとして定期的に選択する。確率Ｐｉは、フローテーブル１−２に登録されている複数のフロー情報の中から、１つのフロー情報が選択フロー情報ｉとして選択される確率を表している。廃棄率決定部１−４は、予め決められた第２の確率（以下、確率Ｄｉ）を、選択フロー情報ｉに対するパケット廃棄率Ｄｉとして決定する。パケット廃棄率Ｄｉは、選択フロー情報ｉ（特定のフロー）に属する全てのパケットの中から、受信パケットを廃棄するための確率を表している。廃棄率決定部１−４は、選択フロー情報ｉとパケット廃棄率Ｄｉとをネットワークノード２に出力する。【００２４】
ネットワークノード２のキャッシュ置き換え部２−２は、フローキャッシュ２−３の容量に空きがあるか否かを調べる。フローキャッシュ２−３の容量に空きがある場合、キャッシュ置き換え部２−２は、選択フロー情報ｉに対するパケット廃棄率Ｄｉを選択フロー情報ｉに付加してフローキャッシュ２−３に登録する。フローキャッシュ２−３の容量に空きがない場合、キャッシュ置き換え部２−２は、予め決められた第３の確率（以下、確率Ｒｊ）に従って、フローキャッシュ２−３に登録されている一部のフロー情報のうちの１つのフロー情報を削除し、選択フロー情報ｉに対するパケット廃棄率Ｄｉを選択フロー情報ｉに付加してフローキャッシュ２−３に登録する。確率Ｒｊは、フローキャッシュ２−３に登録されている一部のフロー情報の中から、１つのフロー情報ｊが選択されて削除される確率を表している。【００２５】
ネットワークノード２のパケット破棄部２−４は、受信パケットのフロー情報と一致する一致フロー情報がフローキャッシュ２−３に登録されているか否かを調べる。上記一致フロー情報がフローキャッシュ２−３に登録されていない場合、パケット破棄部２−４は、受信パケットを送信パケットとして送信する。上記一致フロー情報がフローキャッシュ２−３に登録されている場合、パケット破棄部２−４は、上記一致フロー情報のパケット廃棄率Ｄｉに従って、受信パケットを破棄する。【００２６】
図３は、本発明の第１実施形態による通信システムの動作を示すフローチャートである。ここでは、図２及び図３を参照して、本実施形態の動作について説明する。【００２７】
まず、ネットワークノード２にパケットが到着したときの動作について説明する。【００２８】
ネットワークノード２のパケット監視部２−１は、パケットを受信パケットとして受信し（ステップＳ１）、パケット破棄部２−４と制御サーバ１とに出力する（ステップＳ２）。【００２９】
制御サーバ１の制限帯域設定部１−１は、パケット監視部２−１により受信パケットが受信されたときの受信帯域を計測する。また、制限帯域設定部１−１は、受信パケットのヘッダ（フロー情報）を基に、例えばパケット長やサンプリング確率や取得パケット数などを用いて、受信パケットが属するフローの制限帯域を推定する。制限帯域設定部１−１は、受信パケットのフロー情報に受信帯域と制限帯域とを付加してフローテーブル１−２に登録する（ステップＳ６）。この制限帯域はサービス毎に予め設定された固定値や、動的に計算される公平帯域を用いればよい。公平帯域とは、出力回線の帯域を、現在通信を行っているフロー数で割ったものであるが、公平帯域よりも低い帯域で通信を行っているフローがある場合、この差分の帯域については他のフローに割り当ててよいものとする。【００３０】
そして、ネットワークノード２のパケット破棄部２−４は、受信パケットのフロー情報と一致する一致フロー情報がフローキャッシュ２−３に登録されているか否かを調べる（ステップＳ３）。上記一致フロー情報がフローキャッシュ２−３に登録されていない場合（ステップＳ３−ＹＥＳ）、パケット破棄部２−４は、受信パケットを送信パケットとして送信する（通過させる）（ステップＳ４）。上記一致フロー情報がフローキャッシュ２−３に登録されている場合（ステップＳ３−ＮＯ）、パケット破棄部２−４は、フローキャッシュ２−３に登録されているパケット廃棄率Ｄｉに従って、受信パケットを破棄する（ステップＳ５）。【００３１】
次に、ネットワークノード２のフローキャッシュ２−３に登録された内容が更新されるときの動作について説明する。【００３２】
制御サーバ１の通知フロー決定部１−３は、フローテーブル１−２に登録されている複数のフロー情報の中から、確率Ｐｉに従ってフローキャッシュに登録すべきフロー情報を選択フロー情報ｉとして選択する（ステップＳ７）。次に、廃棄率決定部１−４は、確率Ｄｉを、選択フロー情報ｉに対するパケット廃棄率Ｄｉとして決定する。ここで、パケット廃棄率Ｄｉは、選択フロー情報ｉに関する目標廃棄率ではなく、選択フロー情報ｉがフローキャッシュ２−３に登録されている間にのみ適用される廃棄率である。選択フロー情報ｉは必ずしもいつでもフローキャッシュ２−３に登録されているとは限らないため、一般的にパケット廃棄率Ｄｉは選択フロー情報ｉに対する目標廃棄率よりも大きく設定する必要がある。そして、廃棄率決定部１−４は、選択フロー情報ｉとパケット廃棄率Ｄｉとをネットワークノード２に出力する（ステップＳ８）。【００３３】
ネットワークノード２のキャッシュ置き換え部２は、フローキャッシュ２−３のエントリに空きがあるか否かを調べる（ステップＳ９）。即ち、フローキャッシュ２−３の容量に空きがあるか否かを調べる。フローキャッシュ２−３のエントリに空きがある場合（ステップＳ９−ＹＥＳ）、キャッシュ置き換え部２−２は、選択フロー情報ｉに対するパケット廃棄率Ｄｉを選択フロー情報ｉに付加してフローキャッシュ２−３に登録する（ステップＳ１１）。エントリに空きがない場合（ステップＳ９−ＮＯ）、確率Ｒｊに従って、フローキャッシュ２−３に登録されている一部のフロー情報のうちの１つのフロー情報と既存パケット廃棄率とに使用されているエントリを削除し（ステップＳ１０）、空いた場所に新規の情報として、選択フロー情報ｉに対するパケット廃棄率Ｄｉを選択フロー情報ｉに付加してフローキャッシュ２−３に登録する（ステップＳ１１）。【００３４】
ステップＳ１１が実行された後、ステップＳ７以降が実行される。【００３５】
以上で述べた確率Ｐｉ、パケット廃棄率Ｄｉ、確率Ｒｊは、任意に設定することができ、何通りも考えられる。【００３６】
例えば、確率Ｐｉについては、上記の選択フロー情報、制限帯域、受信帯域をそれぞれｉ、Ｂｉ、Ｌｉとしたとき、
・選択フロー情報ｉに対して一律の確率Ｐｉ｛Ｐｉ＝固定値Ａ（０≦Ａ≦１）｝、
・選択フロー情報ｉの受信帯域Ｂｉに比例した確率Ｐｉ｛Ｐｉ＝ｆ１（Ｂｉ）、０≦ｆ１≦１｝、
・選択フロー情報ｉの制限帯域Ｂｉと受信帯域Ｌｉとの差分に比例した確率Ｐｉ｛Ｐｉ＝ｆ２（Ｂｉ−Ｌｉ）、０≦ｆ２≦１｝、
・選択フロー情報ｉに対して予め定められたパケット廃棄率Ｈｉに応じた確率Ｐｉ｛Ｐｉ＝ｆ３（Ｈｉ）、０≦ｆ３≦１｝、
・選択フロー情報ｉをフローキャッシュ２−３に前回登録した時刻Ｔｉから、現在時刻Ｔまでの経過時間に応じた確率Ｐｉ｛Ｐｉ＝ｆ４（Ｔ−Ｔｉ）、０≦ｆ４≦１｝、
・選択フロー情報ｉを含むパケットを受信した時刻Ａｉから、現在時刻Ｔまでの経過時間に応じた確率Ｐｉ｛Ｐｉ＝ｆ５（１／（Ｔ−Ａｉ））、０≦ｆ５≦１｝、
のいずれかが挙げられる。【００３７】
また、パケット廃棄率Ｄｉについては、上記の選択フロー情報、制限帯域、受信帯域をそれぞれｉ、Ｂｉ、Ｌｉとしたとき、
・選択フロー情報ｉに対して一律の確率Ｄｉ｛Ｄｉ＝固定値Ａ（０≦Ａ≦１）｝、
・選択フロー情報ｉの受信帯域Ｂｉに比例した確率Ｄｉ｛Ｄｉ＝ｆ１（Ｂｉ）、０≦ｆ１≦１｝、
・選択フロー情報ｉの制限帯域Ｂｉと受信帯域Ｌｉとの差分に比例した確率Ｄｉ｛Ｄｉ＝ｆ２（Ｂｉ−Ｌｉ）、０≦ｆ２≦１｝、
・選択フロー情報ｉに対して予め定められたパケット廃棄率Ｈｉに応じた確率Ｄｉ｛Ｄｉ＝ｆ３（Ｈｉ）、０≦ｆ３≦１｝、
・選択フロー情報ｉをフローキャッシュ２−３に前回登録した時刻Ｔｉから、現在時刻Ｔまでの経過時間に応じた確率Ｄｉ｛Ｄｉ＝ｆ４（Ｔ−Ｔｉ）、０≦ｆ４≦１｝、
・選択フロー情報ｉを含むパケットを受信した時刻Ａｉから、現在時刻Ｔまでの経過時間に応じた確率Ｄｉ｛Ｄｉ＝ｆ５（１／（Ｔ−Ａｉ））、０≦ｆ５≦１｝、
のいずれかが挙げられる。【００３８】
また、確率Ｒｊについては、上記の選択フロー情報、パケット廃棄率をそれぞれｉ、Ｄｉとしたとき、
・選択フロー情報ｉに対して一律の確率Ｒｉ｛Ｒｉ＝固定値Ｃ（０≦Ｃ≦１）｝、
・パケット廃棄率Ｄｉに比例した確率Ｒｉ｛Ｒｉ＝ｇ１（１／Ｄｉ）、０≦ｇ１≦１｝、
・選択フロー情報ｉをフローキャッシュ２−３に前回登録した時刻Ｔｉから、現在時刻Ｔまでの経過時間に応じた確率Ｒｉ｛Ｒｉ＝ｇ２（Ｔ−Ｔｉ）、０≦ｇ２≦１｝、
・選択フロー情報ｉを含むパケットを受信した時刻Ａｉから、現在時刻Ｔまでの経過時間に応じた確率Ｒｉ｛Ｒｉ＝ｇ３（１／（Ｔ−Ａｉ））、０≦ｇ３≦１｝、
のいずれかが挙げられる。【００３９】
また、確率Ｐｉやパケット廃棄率Ｄｉについては、確率Ｐｉやパケット廃棄率Ｄｉに対して指数関数や対数関数を適用した確率を用いても良い。【００４０】
例えば、ある選択フロー情報ｉ（特定のフロー）に属する全てのパケットの中から、受信パケットを２０％廃棄したい場合を考える。選択フロー情報ｉに対する確率Ｐｉの割合が１０％であったとすれば、制御サーバ１からネットワークノード２へのフロー情報の通知のうち、１０回に１回は選択フロー情報ｉが通知されることになる。ここで、フローキャッシュ２−３の容量のうちの、フロー情報が登録される容量を５フローとし、ランダムに書き換えられるとすると、フローキャッシュ２−３に選択フロー情報ｉが登録されている確率は５０％となる。従って、パケット廃棄率Ｄｉを４０％と設定すれば、選択フロー情報ｉ（特定のフロー）に属するパケット全体のパケット廃棄率を２０％とすることが可能である。【００４１】
以上の説明により、本発明の第１実施形態による通信システムによれば、制御サーバ１は、複数のフロー情報が登録されたフローテーブル１−２を具備し、ネットワークノード２は、複数のフロー情報のうちの一部のフロー情報が登録されたフローキャッシュ２−３を具備している。従って、本発明の第１実施形態による通信システムによれば、ネットワークノード２が保持するフロー情報を削減することができる。このため、低コストでネットワークノード２を構成することができる。【００４２】
また、本発明の第１実施形態による通信システムによれば、制御サーバ１は、フローテーブル１−２に登録されている複数のフロー情報の中から、１つのフロー情報を選択フロー情報ｉとして定期的に選択し、ネットワークノード２は、フローキャッシュ２−３に登録されている一部のフロー情報のうちの１つのフロー情報を削除し、選択フロー情報ｉをフローキャッシュ２−３に登録している。このように、ネットワークノードが保持するフロー情報は、頻繁に入れ替えが行われる。このため、本発明の第１実施形態による通信システムによれば、ネットワークノード２において、制御したいフローの数に相当するフロー情報を保持することができる容量が制限されても、全てのフローについて適切にトラヒックの制限を行うことができる。【００４３】
（第２実施形態）
第２実施形態では、第１実施形態と重複する説明を省略する。【００４４】
図４は、本発明の第２実施形態による通信システムの制御サーバ１及びネットワークノード２の構成を示すブロック図である。【００４５】
制御サーバ１のコンピュータプログラム１３は、第１実施形態の構成に加えて、更に、ネットワークノード振り分け部１−５、ネットワークノード登録部１−６を含んでいる。【００４６】
ネットワークノード２のコンピュータプログラム２３は、第１実施形態の構成に加えて、更に、制御サーバ振り分け部２−５を含んでいる。【００４７】
本実施形態では、
（第１の構成）１つの制御サーバ１に対して複数のネットワークノード２が接続された構成、
（第２の構成）複数の制御サーバ１に対して１つのネットワークノード２が接続された構成、
において、制御サーバ１とネットワークノード２間の通信方式が異なる。以下ではこの相違点について説明する。【００４８】
（第１の構成）
まず、１つの制御サーバ１に対して複数のネットワークノード２が接続された構成の場合の説明を行う。【００４９】
制御サーバ１は、複数のネットワークノード２に接続されている。そこで、制御サーバ１のフローテーブル１−２には、複数の識別情報に対応付けて、受信帯域と制限帯域とを含む複数のフロー情報が登録されている。複数の識別情報は、それぞれ、複数のネットワークノード２を識別するための情報である。【００５０】
複数のネットワークノード２の制御サーバ振り分け部２−５は、それぞれ複数のネットワークノード２のパケット監視部２−１により受信された受信パケットと、それぞれ複数のネットワークノード２を識別する識別情報と、を制御サーバ１に出力する。このとき、複数のネットワークノード２から、それぞれ、複数の受信パケットと複数の識別情報とが出力される。制御サーバ１のネットワークノード登録部１−６は、フローテーブル１−２を参照して、複数の識別情報がそれぞれ複数のネットワークノード２から出力された情報であることを振り分け部２−５に通知する。制限帯域設定部１−１は、複数のネットワークノード２から出力された複数の受信パケットに対して受信帯域を計測し、制限帯域を推測して、複数のネットワークノード２から出力された受信パケットのフロー情報に受信帯域と制限帯域とを付加し、複数のネットワークノード２から出力された識別情報に対応付けてフローテーブル１−２に登録する。【００５１】
制御サーバ１のネットワークノード振り分け部１−５は、複数のネットワークノード２に対して、通知フロー決定部１−３により選択された選択フロー情報ｉと、廃棄率決定部１−４により決定されたパケット廃棄率Ｄｉと、をそれぞれ複数のネットワークノード２に出力する。複数のネットワークノード２のキャッシュ置き換え部２−２は、それぞれ複数のネットワークノード２のフローキャッシュ２−３の容量に空きがあるか否かを調べる。フローキャッシュ２−３の容量に空きがある場合、キャッシュ置き換え部２−２は、選択フロー情報ｉに対するパケット廃棄率Ｄｉを選択フロー情報ｉに付加してフローキャッシュ２−３に登録する。フローキャッシュ２−３の容量に空きがない場合、キャッシュ置き換え部２−２は、予め決められた確率Ｒｊに従って、フローキャッシュ２−３に登録されている一部のフロー情報のうちの１つのフロー情報を削除し、選択フロー情報ｉに対するパケット廃棄率Ｄｉを選択フロー情報ｉに付加してフローキャッシュ２−３に登録する。【００５２】
（第２の構成）
次に、複数の制御サーバ１に対して１つのネットワークノード２が接続された構成の場合の説明を行う。【００５３】
ネットワークノード２は、複数の制御サーバ１に接続されている。そこで、複数の制御サーバ１のフローテーブル１−２には、識別情報に対応付けて、複数のフロー情報と、複数の受信帯域と、複数の制限帯域と、が登録されている。識別情報は、ネットワークノード２を識別するための情報である。即ち、特定のネットワークノード２が上記の複数の制御サーバ１を占有して使用することができ、他のネットワークノード２は、特定のネットワークノード２が占有する複数の制御サーバ１を使用できないようになっている。【００５４】
ネットワークノード２の制御サーバ振り分け部２−５は、パケット監視部２−１により受信された受信パケットと、自身のネットワークノード２を識別する識別情報と、を複数の制御サーバ１に出力する。複数の制御サーバ１のネットワークノード登録部１−６は、それぞれ複数の制御サーバ１のフローテーブル１−２を参照して、識別情報が特定のネットワークノード２から出力された情報であることを振り分け部２−５に通知する。複数の制御サーバ１の制限帯域設定部１−１は、ネットワークノード２から出力された受信パケットに対して受信帯域を計測し、制限帯域を推測して、ネットワークノード２から出力された受信パケットのフロー情報に受信帯域と制限帯域とを付加し、ネットワークノード２から出力された識別情報に対応付けて、それぞれ複数の制御サーバ１のフローテーブル１−２に登録する。【００５５】
複数の制御サーバ１のネットワークノード振り分け部１−５は、ネットワークノード２に対して、それぞれ複数の制御サーバ１の通知フロー決定部１−３により選択された選択フロー情報ｉと、それぞれ複数の制御サーバ１の廃棄率決定部１−４により決定されたパケット廃棄率Ｄｉと、をネットワークノード２に出力する。ネットワークノード２のキャッシュ置き換え部２−２は、フローキャッシュ２−３の容量に空きがあるか否かを調べる。フローキャッシュ２−３の容量に空きがある場合、キャッシュ置き換え部２−２は、選択フロー情報ｉに対するパケット廃棄率Ｄｉを選択フロー情報ｉに付加してフローキャッシュ２−３に登録する。フローキャッシュ２−３の容量に空きがない場合、キャッシュ置き換え部２−２は、予め決められた確率Ｒｊに従って、フローキャッシュ２−３に登録されている一部のフロー情報のうちの１つのフロー情報を削除し、選択フロー情報ｉに対するパケット廃棄率Ｄｉを選択フロー情報ｉに付加してフローキャッシュ２−３に登録する。【００５６】
以上の説明により、本発明の第２実施形態による通信システムによれば、１つの制御サーバ１に対して複数のネットワークノード２が接続された構成（第１の構成）では制御サーバ１の台数を削減する効果があり、複数の制御サーバ１に対して１つのネットワークノード２が接続された構成（第２の構成）では複数の制御サーバ１の各々のおける付加を分散できる効果がある。【００５７】
（第３実施形態）
第３実施形態では、第１実施形態と重複する説明を省略する。【００５８】
図５は、本発明の第３実施形態による通信システムの制御サーバ１及びネットワークノード２の構成を示すブロック図である。【００５９】
制御サーバ１のコンピュータプログラム１３は、第１実施形態の構成に加えて、更に、非制御フロー廃棄率決定部１−７を含んでいる。【００６０】
ネットワークノード２のコンピュータプログラム２３は、第１実施形態の構成に加えて、更に、ノード状態監視部２−６を含んでいる。【００６１】
ネットワークノード２のノード状態監視部２−６は、自身のネットワークノード２の状態を表す状態情報を制御サーバ１に出力する。そこで、状態情報が、パケット監視部２−１により受信された受信パケットに対してフロー情報がフローキャッシュ２−３に登録されていないことを表している。この場合、制御サーバ１の非制御フロー廃棄率決定部１−７は、受信パケットのフロー情報に対するパケット廃棄率を決定し、ネットワークノード２に出力する。ネットワークノード２のパケット破棄部２−４は、受信パケットのフロー情報と一致する一致フロー情報がフローキャッシュ２−３に登録されている場合、非制御フロー廃棄率決定部１−７からのパケット廃棄率と上記一致フロー情報のパケット廃棄率Ｄｉとに従って、受信パケットを破棄する。【００６２】
本実施形態では、パケット廃棄部２−４において、フローキャッシュ２−３に登録されていないフロー情報（フロー）に属するパケットが到着した場合の処理が異なる。以下ではこの相違点について説明する。【００６３】
まず、ネットワークノード２のノード状態監視部２−６では、自身のネットワークノード２内のキュー長や合計入力帯域などの状態を監視し、これを状態情報として制御サーバ１に送信する。制御サーバ１の非制御フロー廃棄率決定部１−７は、フローキャッシュ２−３に登録されていないフロー情報（フロー）に属するパケットが到着した場合のパケット廃棄率を計算する。このパケット廃棄率は、状態情報が表す状態やフローテーブル１−２に格納されている複数のフロー情報の状態（受信帯域、制限帯域）より計算するものとする。例えば、状態情報が表す状態を用いてパケット廃棄率＝ｍａｘ（０、（１−回線帯域／合計入力レート））と計算しても良いし、本方式によってネットワークノード２を通過する帯域の推定値（制限帯域）の合計を用いてパケット廃棄率＝ｍａｘ（０、（１−回線帯域／推定値））を計算しても良い。【００６４】
ネットワークノード２のパケット廃棄部２−４は、受信パケットのフロー情報と一致する一致フロー情報がフローキャッシュ２−３に登録されていない場合、非制御フロー廃棄率決定部１−７からのパケット廃棄率と上記一致フロー情報のパケット廃棄率Ｄｉとに従って、受信パケットを廃棄する。ここで、フローキャッシュ２−３に登録されているパケット廃棄率Ｄｉに対して上記非制御フロー廃棄率決定部１−７からのパケット廃棄率を上乗せした廃棄率で、受信パケットを廃棄する。【００６５】
（第４実施形態）
第４実施形態では、第１実施形態と重複する説明を省略する。【００６６】
図６は、本発明の第４実施形態による通信システムの制御サーバ１及びネットワークノード２の構成を示すブロック図である。【００６７】
制御サーバ１のコンピュータプログラム１３は、第１実施形態における廃棄率決定部１−４に代えて、制限帯域決定部１−８を含んでいる。【００６８】
ネットワークノード２のコンピュータプログラム２３は、第１実施形態におけるパケット廃棄部２−４に代えて、シェイパ処理部２−７を含んでいる。【００６９】
制御サーバ１の制限帯域決定部１−８は、制限帯域設定部１−１により推測される制限帯域である第１制限帯域が表す値よりも所定値だけ小さい第２制限帯域を決定する。これはフローキャッシュ２−３に登録されていない期間のパケット廃棄を行わないため、フローキャッシュ２−３に登録されている期間は低い制限帯域を設定することでその埋め合わせを行うためである。制限帯域決定部１−８は、選択フロー情報ｉと第２制限帯域とをネットワークノード２に出力する。【００７０】
ここで、フローキャッシュ２−３に登録されている一部のフロー情報は、パケット廃棄率ではなく、第２制限帯域である。【００７１】
ネットワークノード２のキャッシュ置き換え部２−２は、フローキャッシュ２−３の容量に空きがあるか否かを調べる。フローキャッシュ２−３の容量に空きがある場合、キャッシュ置き換え部２−２は、選択フロー情報ｉに対する第２制限帯域を選択フロー情報ｉに付加してフローキャッシュ２−３に登録する。フローキャッシュ２−３の容量に空きがない場合、キャッシュ置き換え部２−２は、確率Ｒｊに従って、フローキャッシュ２−３に登録されている一部のフロー情報のうちの１つのフロー情報を削除し、選択フロー情報ｉに対する第２制限帯域を選択フロー情報ｉに付加してフローキャッシュ２−３に登録する。【００７２】
ネットワークノード２のシェイパ処理部２−７は、受信パケットのフロー情報と一致する一致フロー情報がフローキャッシュ２−３に登録されているか否かを調べる。上記一致フロー情報がフローキャッシュ２−３に登録されていない場合、シェイパ処理部２−７は、受信パケットを送信パケットとして送信する。上記一致フロー情報がフローキャッシュ２−３に登録されている場合、シェイパ処理部２−７は、パケット監視部２−１により受信パケットが受信されたときの受信帯域と、上記一致フロー情報の第２制限帯域とを比較し、受信パケットの受信帯域が上記一致フロー情報の第２制限帯域よりも高い場合、受信パケットを破棄する。【００７３】
本発明の第４実施形態による通信システムによれば、第１実施形態に対して、シェイパ処理部２−７において選択フロー情報ｉ（特定のフロー）に属するパケットの制限帯域を監視するという処理が加わる。一方、制限帯域の変動が大きい場合には第１実施形態と比較して受信パケットを廃棄する制御を実行する上で追従性が高い。【００７４】
（第５実施形態）
図７は、本発明の第５実施形態による通信システムの構成を示している。通信システムは、制御サーバ１と、ネットワークノード２と、を具備している。【００７５】
図８は、本発明の第５実施形態による通信システムの制御サーバ１及びネットワークノード２の構成を示すブロック図である。【００７６】
制御サーバ１のコンピュータプログラム１３は、第１実施形態における通知フロー決定部１−３に代えて、ブルームフィルタ作成部１−９を含んでいる。【００７７】
ネットワークノード２は、第１実施形態におけるフローキャッシュ２−３に代えて、ブルームフィルタ保持部２−９を備えている。ネットワークノード２のコンピュータプログラム２３は、第１実施形態におけるキャッシュ置き換え部２−２に代えて、ブルームフィルタ置き換え部２−８、を含んでいる。【００７８】
ブルームフィルタ保持部２−９には、既存ブルームフィルタが登録されている。【００７９】
制御サーバ１の廃棄率決定部１−４は、フローテーブル１−２に登録されている複数のフロー情報に対してそれぞれ複数のパケット廃棄率Ｄｉを決定する。ブルームフィルタ作成部１−９は、複数のパケット廃棄率をそれぞれ表す複数のビットを含むブルームフィルタを生成する。ブルームフィルタ作成部１−９は、ブルームフィルタをネットワークノード２に出力する。【００８０】
ネットワークノード２のブルームフィルタ置き換え部２−８は、ブルームフィルタ保持部２−９に登録されている既存ブルームフィルタを削除し、ブルームフィルタをブルームフィルタ保持部２−９に登録する。パケット破棄部２−４は、ブルームフィルタ保持部２−９に登録されているブルームフィルタに基づいて、受信パケットのフロー情報に対するパケット廃棄率を選択パケット廃棄率として決定し、選択パケット廃棄率に従って、受信パケットを破棄する。【００８１】
ブルームフィルタは、上記の複数のビットとしてＮビット（Ｎは２以上の整数）のビットマップで構成されるフィルタであり、Ｎビットがそれぞれ複数のフロー情報（複数のフロー）に対応する。ブルームフィルタ作成部１−９は、あるフロー情報ｉ（ｉは、１≦ｘ≦Ｎを満たす整数）についてｉをハッシュ関数にかけて１〜Ｎまでの数値を決定し、この数値に対応するビットを“１”に設定する。これにより、ブルームフィルタでは、少ないビット数で、それぞれのフローが含まれているかどうかの判定が可能である。【００８２】
図９は、本発明の第５実施形態による通信システムの動作を示すフローチャートである。ここでは、図８及び図９を参照して、本実施形態の動作について説明する。【００８３】
まず、ネットワークノード２にパケットが到着したときの動作について説明する。【００８４】
ネットワークノード２のパケット監視部２−１は、パケットを受信パケットとして受信し（ステップＳ１）、パケット破棄部２−４と制御サーバ１とに出力する（ステップＳ２）。制御サーバ１の制限帯域設定部１−１は、パケット監視部２−１により受信パケットが受信されたときの受信帯域を計測する。また、制限帯域設定部１−１は、そのときの制限帯域を推定する。制限帯域設定部１−１は、受信パケットのフロー情報に受信帯域と制限帯域とを付加してフローテーブル１−２に登録する（ステップＳ６）。【００８５】
ネットワークノード２のパケット破棄部２−４は、受信パケットのフロー情報についてハッシュ関数を用いて複数のブルームフィルタの複数のビットの各々を特定する。そして、保持している複数のブルームフィルタに対してこのビットが“１”に設定されているかどうかを調べ、“１”に設定されている割合を計算する（ステップＳ２１）。次に、制御サーバ１から通知された最大パケット廃棄率に対して上記割合を乗じ、このパケット廃棄率を基に確率的に受信パケットを廃棄する（ステップＳ２２）。すなわち本実施形態においてブルームフィルタは、フロー毎のパケット廃棄率を効率的に格納するための部である。第１実施形態と比較すると、ハッシュ値の衝突により誤ってパケットを廃棄するという問題やパケット廃棄率の設定粒度が荒いという問題はあるが、特定のフローだけでなく全てのフロー情報をネットワークノード２で保持可能であるため、より積極的な制御が可能である。【００８６】
次に、ネットワークノード２のフローキャッシュ２−３に登録された内容が更新されるときの動作について説明する。【００８７】
制御サーバ１の廃棄率決定部１−４は、フローテーブル１−２に登録されている複数のフロー情報に対してそれぞれ複数のパケット廃棄率を計算する（ステップＳ２３）。このパケット廃棄率は、第１実施形態におけるパケット廃棄率の計算とは異なり、制限帯域を到着帯域で割ったもの、すなわち目標とするパケット廃棄率である。そして、ブルームフィルタ作成部１−９は、複数のパケット廃棄率の中から、最大値を表す最大廃棄率を決定し、複数のパケット廃棄率をそれぞれ表す複数のビットを含むブルームフィルタを生成する（ステップＳ２４）。このとき、ブルームフィルタ作成部１−９は、ブルームフィルタの複数のビットの各々に、そのビットに対応するフロー情報におけるパケット廃棄率を最大廃棄率で割った値の確率で“１”を書き込む。即ち、最も廃棄率の高いフローについては、対応するビットが常に“１”に設定され、最大廃棄率の半分の廃棄率に設定されたフローは、対応するビットに５０％の確率で“１”を書き込む。これを全てのビットについて計算し、作成したブルームフィルタをネットワークノード２に出力する。【００８８】
ネットワークノード２のブルームフィルタ置き換え部２−８は、既存ブルームフィルタを削除し（ステップＳ２５−ＮＯ、Ｓ２６）、ブルームフィルタをブルームフィルタ保持部２−９に登録する（ステップＳ２７）。【００８９】
ここで、毎回ブルームフィルタを作成する処理コストが問題になるならば、ブルームフィルタ作成部１−９は、予め複数のブルームフィルタを作成しておき、これを順番にネットワークノードに出力すればよい。【００９０】
この場合、ネットワークノード２のブルームフィルタ保持部２−９には、複数の既存ブルームフィルタが登録されている。ブルームフィルタ置き換え部２−８は、ブルームフィルタ保持部２−９の容量に空きがあるか否かを調べる（ステップＳ２５）。ブルームフィルタ保持部２−９の容量に空きがある場合（ステップＳ２５−ＹＥＳ）、ブルームフィルタ置き換え部２−８は、ブルームフィルタをブルームフィルタ保持部２−９に登録する（ステップＳ２７）。ブルームフィルタ保持部２−９の容量に空きがない場合（ステップＳ２５−ＮＯ）、ブルームフィルタ置き換え部２−８は、確率Ｒｊに従って、ブルームフィルタ保持部２−９に登録されている複数の既存ブルームフィルタのうちの１つの既存ブルームフィルタを削除し（ステップＳ２６）、ブルームフィルタをブルームフィルタ保持部２−９に登録する（ステップＳ２７）。【００９１】
ステップＳ２７が実行された後、ステップＳ２３以降が実行される。【００９２】
以上の説明により、本発明の第５実施形態による通信システムによれば、ネットワークノード２が保持するフロー情報を１フローあたり１ビットに削減できる。このため、大量のフロー情報を低コストでネットワークノード２に保持することができる。ここで、ネットワークノード２に保持されるフロー情報は１フローあたり１ビットしかないため、制御をかけるかどうかの２値判断のみであるが、本発明においては、このフロー情報を頻繁に更新することにより、より細粒度な制御を実現する。例えば、最大値で制御をかけたいフローについては常にフロー情報に対応するビットを立てておいて常に制御がかかるようにする。一方、最大値の１／１０で制御をかけたいフローについてはフロー情報を定期的に更新するにあたって１０回に１回の割合でフロー情報に対応するビットを立てればよい。【００９３】
なお、本発明では、制御サーバ１とネットワークノード２が分離した構成であるが、これらが一体となった構成でも良い。この場合、制御サーバ１の構成はネットワークノード２内に設けられ、制御サーバ１とネットワークノード２間の通信は、ネットワークノード２内部の内部バスを用いて通信する。【００９４】
また、本発明では、トラヒックを扱う単位として、フロー毎と表記しているが、これに限定されない。トラヒックを扱う単位としては、フロー毎やユーザ毎、端末毎など様々な単位がある。本発明の方式では、フロー毎だけでなく、ユーザ毎や端末毎にも適応可能である。【００９５】
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。【００９６】
この出願は、２００８年２月４日に出願された特許出願番号２００８−０２４３３４号の日本特許出願に基づいており、その出願による優先権の利益を主張し、その出願の開示は、引用することにより、そっくりそのままここに組み込まれている。
【図１】
2009098819.tif 000003
【図２】
2009098819.tif 000004
【図３】
2009098819.tif 000005
【図４】
2009098819.tif 000006
【図５】
2009098819.tif 000007
【図６】
2009098819.tif 000008
【図７】
2009098819.tif 000009
【図８】
2009098819.tif 000010
【図９】
2009098819.tif 000011
【手続補正書】
【提出日】平成22年8月4日(2010.8.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
パケットの中継を行うネットワークノードと、
前記ネットワークノードに接続された制御サーバと
を具備し、
前記パケットは、前記パケットが属するフローに関するフロー情報を含み、
前記制御サーバは、
複数のフロー情報が登録されたフローテーブル
を具備し、
前記ネットワークノードは、
前記パケットを受信パケットとして受信するパケット監視部と、
前記複数のフロー情報のうちの一部のフロー情報が登録されたフローキャッシュと、ここで、前記フローキャッシュに登録されている前記一部のフロー情報はパケット廃棄率を含み、
前記受信パケットの前記フロー情報と一致する一致フロー情報が前記フローキャッシュに登録されていない場合、前記受信パケットを送信パケットとして送信し、前記一致フロー情報が前記フローキャッシュに登録されている場合、前記一致フロー情報の前記パケット廃棄率に従って前記受信パケットを破棄するパケット破棄部と
を具備し、
前記制御サーバは、
前記フローテーブルに登録されている前記複数のフロー情報の中から、１つのフロー情報を選択フロー情報として定期的に選択する通知フロー決定部
を更に具備し、
前記ネットワークノードは、
前記フローキャッシュの容量に空きがある場合、前記選択フロー情報に対する前記パケット廃棄率を前記選択フロー情報に付加して前記フローキャッシュに登録し、前記フローキャッシュの容量に空きがない場合、前記フローキャッシュに登録されている前記一部のフロー情報のうちの１つのフロー情報を削除し、前記選択フロー情報に対する前記パケット廃棄率を前記選択フロー情報に付加して前記フローキャッシュに登録するキャッシュ置き換え部
を更に具備する通信システム。
【請求項２】
前記制御サーバの前記通知フロー決定部は、予め決められた第１の確率に従って、定期的に前記選択フロー情報を選択する
請求項１に記載の通信システム。
【請求項３】
前記制御サーバは、
予め決められた第２の確率を、前記選択フロー情報に対する前記パケット廃棄率として決定する廃棄率決定部
を更に具備する請求項２に記載の通信システム。
【請求項４】
前記制御サーバは、
前記パケット監視部により前記受信パケットが受信されたときの受信帯域を計測し、そのときの制限帯域を推測して、前記受信パケットの前記フロー情報に前記受信帯域と前記制限帯域とを付加して前記フローテーブルに登録する制限帯域設定部
を更に具備し、
前記フローテーブルには、複数の前記フロー情報が登録され、
前記第１の確率は、前記選択フロー情報、前記制限帯域、前記受信帯域をそれぞれｉ、Ｂｉ、Ｌｉとしたとき、
前記選択フロー情報ｉに対して一律の確率Ｐｉ｛Ｐｉ＝固定値Ａ（０≦Ａ≦１）｝、
前記選択フロー情報ｉの前記受信帯域Ｂｉに比例した確率Ｐｉ｛Ｐｉ＝ｆ１（Ｂｉ）、０≦ｆ１≦１｝、
前記選択フロー情報ｉの前記制限帯域Ｂｉと前記受信帯域Ｌｉとの差分に比例した確率Ｐｉ｛Ｐｉ＝ｆ２（Ｂｉ−Ｌｉ）、０≦ｆ２≦１｝、
前記選択フロー情報ｉに対して予め定められたパケット廃棄率Ｈｉに応じた確率Ｐｉ｛Ｐｉ＝ｆ３（Ｈｉ）、０≦ｆ３≦１｝、
前記選択フロー情報ｉを前記フローキャッシュに前回登録した時刻Ｔｉから、現在時刻Ｔまでの経過時間に応じた確率Ｐｉ｛Ｐｉ＝ｆ４（Ｔ−Ｔｉ）、０≦ｆ４≦１｝、
前記選択フロー情報ｉを含むパケットを受信した時刻Ａｉから、現在時刻Ｔまでの経過時間に応じた確率Ｐｉ｛Ｐｉ＝ｆ５（１／（Ｔ−Ａｉ））、０≦ｆ５≦１｝、
前記第１の確率に対して指数関数や対数関数を適用した確率、
のいずれかである
請求項２又は３に記載の通信システム。
【請求項５】
前記制御サーバは、
前記パケット監視部により前記受信パケットが受信されたときの受信帯域を計測し、そのときの制限帯域を推測して、前記受信パケットの前記フロー情報に前記受信帯域と前記制限帯域とを付加して前記フローテーブルに登録する制限帯域設定部
を更に具備し、
前記フローテーブルには、複数の前記フロー情報が登録され、
前記第２の確率は、前記選択フロー情報、前記制限帯域、前記受信帯域をそれぞれｉ、Ｂｉ、Ｌｉとしたとき、
前記選択フロー情報ｉに対して一律の確率Ｄｉ｛Ｄｉ＝固定値Ａ（０≦Ａ≦１）｝、
前記選択フロー情報ｉの前記受信帯域Ｂｉに比例した確率Ｄｉ｛Ｄｉ＝ｆ１（Ｂｉ）、０≦ｆ１≦１｝、
前記選択フロー情報ｉの前記制限帯域Ｂｉと前記受信帯域Ｌｉとの差分に比例した確率Ｄｉ｛Ｄｉ＝ｆ２（Ｂｉ−Ｌｉ）、０≦ｆ２≦１｝、
前記選択フロー情報ｉに対して予め定められたパケット廃棄率Ｈｉに応じた確率Ｄｉ｛Ｄｉ＝ｆ３（Ｈｉ）、０≦ｆ３≦１｝、
前記選択フロー情報ｉを前記フローキャッシュに前回登録した時刻Ｔｉから、現在時刻Ｔまでの経過時間に応じた確率Ｄｉ｛Ｄｉ＝ｆ４（Ｔ−Ｔｉ）、０≦ｆ４≦１｝、
前記選択フロー情報ｉを含むパケットを受信した時刻Ａｉから、現在時刻Ｔまでの経過時間に応じた確率Ｄｉ｛Ｄｉ＝ｆ５（１／（Ｔ−Ａｉ））、０≦ｆ５≦１｝、
前記第２の確率に対して指数関数や対数関数を適用した確率、
のいずれかである
請求項３に記載の通信システム。
【請求項６】
前記ネットワークノードのキャッシュ置き換え部は、
前記フローキャッシュの容量に空きがない場合、
予め決められた第３の確率に従って、前記フローキャッシュに登録されている前記一部のフロー情報のうちの１つのフロー情報を削除し、
前記選択フロー情報に対する前記パケット廃棄率を前記選択フロー情報に付加して前記フローキャッシュに登録する
請求項４又は５に記載の通信システム。
【請求項７】
請求項１〜６のいずれかに記載の通信システムに使用されるネットワークノード。
【請求項８】
請求項１〜６のいずれかに記載の通信システムに使用される制御サーバ。
【請求項９】
複数のフロー情報が登録されたフローテーブルと、前記複数のフロー情報のうちの一部のフロー情報が登録されたフローキャッシュとを用いて、パケットの中継を行う中継方法であって、
前記パケットを受信パケットとして受信するステップと、ここで、前記パケットは、前記パケットが属するフローに関するフロー情報を含み、前記フローキャッシュに登録されている前記一部のフロー情報はパケット廃棄率を含み、
前記受信パケットの前記フロー情報と一致する一致フロー情報が前記フローキャッシュに登録されていない場合、前記受信パケットを送信パケットとして送信するステップと、
前記一致フロー情報が前記フローキャッシュに登録されている場合、前記一致フロー情報の前記パケット廃棄率に従って前記受信パケットを破棄するステップと、
前記フローテーブルに登録されている前記複数のフロー情報の中から、１つのフロー情報を選択フロー情報として定期的に選択するステップと、
前記フローキャッシュの容量に空きがある場合、前記選択フロー情報に対する前記パケット廃棄率を前記選択フロー情報に付加して前記フローキャッシュに登録するステップと、
前記フローキャッシュの容量に空きがない場合、前記フローキャッシュに登録されている前記一部のフロー情報のうちの１つのフロー情報を削除し、前記選択フロー情報に対する前記パケット廃棄率を前記選択フロー情報に付加して前記フローキャッシュに登録するステップと、
を具備する中継方法。
【請求項１０】
複数のフロー情報が登録されたフローテーブルと、前記複数のフロー情報のうちの一部のフロー情報が登録されたフローキャッシュとを具備し、パケットの中継を行うコンピュータに適用され、
前記パケットを受信パケットとして受信するステップと、ここで、前記パケットは、前記パケットが属するフローに関するフロー情報を含み、前記フローキャッシュに登録されている前記一部のフロー情報はパケット廃棄率を含み、
前記受信パケットの前記フロー情報と一致する一致フロー情報が前記フローキャッシュに登録されていない場合、前記受信パケットを送信パケットとして送信するステップと、
前記一致フロー情報が前記フローキャッシュに登録されている場合、前記一致フロー情報の前記パケット廃棄率に従って前記受信パケットを破棄するステップと、
前記フローテーブルに登録されている前記複数のフロー情報の中から、１つのフロー情報を選択フロー情報として定期的に選択するステップと、
前記フローキャッシュの容量に空きがある場合、前記選択フロー情報に対する前記パケット廃棄率を前記選択フロー情報に付加して前記フローキャッシュに登録するステップと、
前記フローキャッシュの容量に空きがない場合、前記フローキャッシュに登録されている前記一部のフロー情報のうちの１つのフロー情報を削除し、前記選択フロー情報に対する前記パケット廃棄率を前記選択フロー情報に付加して前記フローキャッシュに登録するステップと
の各ステップを前記コンピュータに実行させるコンピュータプログラム。
【国際調査報告】
2009098819.tif 000012
2009098819.tif 000013
2009098819.tif 000014
2009098819.tif 000015