【国等の委託研究の成果に係る記載事項】(出願人による申告)平成21年度、独立行政法人新エネルギー・産業技術総合開発機構、グリーンネットワーク・システム技術研究開発プロジェクト(グリーンITプロジェクト) 委託事業、産業技術力強化法第19条の適用を受ける特許出願
【文献】
矢崎武己,スイッチ/ルータの省電力化講座,日経NETWORK,日経BP社,2011年 8月28日,第137号,第74−77頁
【文献】
Smith, R. D.,Internet Traffic Periodicities and Oscillations: A Brief Overview,arXiv:0904.3797v2[cs.NI],2009年
【文献】
山田雅毅他,ルータの省電力化に向けた転送性能予測技術の検討,電子情報通信学会技術研究報告 NS2010−41,社団法人電子情報通信学会,2010年 7月 8日,Vol.110 No.126,第17−22頁
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0012】
<実施例1>
本発明の第1の実施例について説明する。
【0013】
図1は、第1の実施例のパケット転送装置200の構成を示すブロック図である。
【0014】
パケット転送装置200は、N個のインターフェース部210−i(i=1〜N)、ヘッダ処理部100、インターフェース部210−iを結合するパケット中継処理部250及びプロセッサ290を有する。プロセッサ290は、制御端末10と接続され、制御端末10からの指示をインターフェース部210に通知し、インターフェース部210の情報を制御端末10に通知する。インターフェース部210−iは、M本の入力回線201−ij(i=1〜N、j=1〜M)及び出力回線202−ij(i=1〜N、j=1〜M)を接続する。
【0015】
具体的には、インターフェース部210−1は、入力回線201−11〜201−14及び出力回線202−11〜202−14を収容する。インターフェース部210−2は入力回線201−21、201−22及び出力回線202−21、202−22を収容する。インターフェース部210−Nは、入力回線201−N1及び出力回線202−N1を収容する。インターフェース部210−iはパケットの受信処理を実行するパケット受信回路230、入力側パケットバッファ(PB)240、パケットの送信処理を実行するパケット送信回路270及び出力側パケットバッファ(PB)280を有する。
【0016】
図2は、第1の実施例のヘッダ処理部100の構成を示すブロック図である。
図2を参照してヘッダ処理部100の動作の詳細を説明する。
【0017】
ヘッダ処理部100は、入力側ヘッダ処理部101及び出力側ヘッダ処理部102を有する。入力側ヘッダ処理部101は、パケット受信回路230が通知するヘッダ情報21を用いてパケットを処理する。出力側ヘッダ処理部102は、パケット送信回路270が通知するヘッダ情報25を用いてパケットを処理する。
【0018】
入力側ヘッダ処理部101は、ルーティングテーブル用CAM500、ルーティングテーブル用メモリ600、フローテーブル用CAM700、フローテーブル用メモリ800、複数のパケット処理回路110−k、ルーティングテーブル制御部150及びフローテーブル制御部160を有する。ルーティングテーブル用CAM500は、
出力先判定処理に用いられる。フローテーブル用CAM700は、
フロー処理に用いられる。パケット処理回路110−kは、ルーティングテーブル制御部150及びフローテーブル制御部160にアクセスして出力先判定処理及びフロー処理を実行する回路で、例えば四つ設けられる。ルーティングテーブル制御部150は、パケット処理回路110−kからのルーティングテーブル用CAM500やルーティングテーブル用メモリ600へのアクセス要求に応じて、ルーティングテーブル用CAM500やルーティングテーブル用メモリ600へアクセスする。フローテーブル制御部160は、パケット処理回路110−kからのフローテーブル用CAM700やフローテーブル用メモリ800へのアクセス要求に応じて、フローテーブル用CAM700やフローテーブル用メモリ800へアクセスする。
【0019】
出力側ヘッダ処理部102は、ヘッダ情報25を受信するとフロー処理を実施し、フロー情報26をパケット送信回路270に送信する。出力側ヘッダ処理部102は、ルーティングテーブル制御部150及びルーティングテーブル用メモリ600、ルーティングテーブル用CAM500を有しない点を除き、入力側ヘッダ処理部101と同一の構成である。
【0020】
ヘッダ情報21が入力側ヘッダ処理部101に入力されると、ヘッダ情報蓄積用バッファ120は入力されたヘッダ情報を、入力回線毎に、入力された順番で蓄積する。ヘッダ情報蓄積用バッファ120は、パケット処理回路110−kがパケット処理中か否かを示すBUSY信号(
図2では図示省略)をパケット処理回路110−kから受信する。そして、最も早く到着したヘッダ情報21をヘッダ情報蓄積用バッファ120から読み出して、パケット処理中ではないパケット処理回路110−kに転送する。
【0021】
次に、宛先判定処理について説明する。
【0022】
宛先判定処理では、まず、パケット処理回路110−kは、宛先アドレス情報及びルーティングテーブル検索リクエストをルーティングテーブル制御部150に送信する。ルーティングテーブル制御部150は、受信した宛先アドレス情報及びルーティングテーブル検索リクエストを宛先アドレス情報の検索キーとしてルーティングテーブル用CAM500に送信する。ルーティングテーブル用CAM500は、受信した宛先アドレス情報に該当するアドレス情報をルーティングテーブル制御部150に返送する。
【0023】
ルーティングテーブル制御部150は、ルーティングテーブル用CAM500から受信したアドレス情報に基づいて、ルーティングテーブル用メモリ600の該当するアドレスに格納されている宛先情報を取得し、取得した宛先情報をルーティングテーブル検索リクエストを送信したパケット処理回路110−kに返送する。
【0024】
以上の処理によって受信したパケットの宛先を判定する。
【0025】
次に、フロー判定処理について説明する。
【0026】
フロー判定処理では、まず、パケット処理回路110−kは、パケットヘッダの情報のうち、同一のフローを識別するために用いる5−tuple(送信元IPアドレス(SIP)、宛先IPアドレス(DIP)、IPプロトコルタイプ(PR)、送信元ポート番号(SPT)、宛先ポート番号(DPT))及びフローテーブル検索リクエストを、フローテーブル制御部160に送信する。フローテーブル制御部160は、受信したフローテーブル検索リクエストを5−tupleを検索キーとしてフローテーブル用CAM700に送信する。フローテーブル用CAM700は、受信した5−tupleに該当するアドレス情報をフローテーブル制御部160に返送する。
【0027】
フローテーブル制御部160は、フローテーブル用CAM700から受信したアドレス情報に基づいて、フローテーブル用メモリ800の該当するアドレスに格納されているフロー制御情報(例えば、フィルタ情報、QoS情報)を取得し、取得したフロー制御情報をフローテーブル検索リクエストを送信したパケット処理回路110−kに返送する。
【0028】
以上の処理によって受信したパケットのフロー制御の情報を取得する。
【0029】
パケット処理回路110−kは、受信した宛先判定処理の結果及びフロー判定処理の結果を整列回路140に送る。整列回路140は、受信した宛先情報及びフロー制御情報の組を入力回線毎にシーケンス番号の順に並べ替えて送信する。
【0030】
本実施例のパケット転送装置200は、動作するパケット処理回路110−kの数を変更することによって、パケット転送装置200のパケット処理性能及び消費電力を制御可能である。回路数判定部170は、動作するパケット処理回路110−kを制御する。回路数判定部170は、受信トラフィックの情報をヘッダ情報蓄積用バッファ120から受信し、必要な転送性能を予測し、動作するパケット処理回路110−kの数を予測結果に基づいて決定する。回路数判定部170は、動作するパケット処理回路110−kの数を決定した結果を、同一のヘッダ処理部100のパケット処理回路110−k及びヘッダ情報蓄積用バッファ120に通知する。この通知によって、使用しないパケット処理回路110−kへの通電を停止する。また、ヘッダ情報蓄積用バッファ120は、ヘッダ情報を停止中のパケット処理回路110−kへ転送せず、ヘッダ情報を他の動作中のパケット処理回路110−kへ転送する。
【0031】
次に、回路数判定部170における転送性能の判定方法について説明する。
【0032】
図3は、第1の実施例の回路数判定部170の構成を示すブロック図である。
【0033】
回路数判定部170は、トラフィック情報用メモリ領域1701、トラフィック情報分析回路1702、FFT演算部1703、平均演算部1704、偏差演算部1705、性能予測部1706及び回路制御部1707を有する。
【0034】
トラフィック情報用メモリ領域1701は、転送性能を算出するために、ヘッダ情報蓄積用バッファ120から通知される受信トラフィック量の情報のログを格納する。トラフィック情報分析回路1702は、トラフィック情報を分析してトラフィック情報用メモリ領域1701に格納する。FFT演算部1703、平均演算部1704及び偏差演算部1705は、トラフィック情報用メモリ領域1701に格納された情報を用いて演算を行う。性能予測部1706は、演算結果を統合して性能を予測する。回路制御部1707は、パケット処理回路110−kへ制御信号を送る。
【0035】
図4は、トラフィック情報用メモリ領域1701に格納されるテーブルの構成の例を説明する図である。
【0036】
トラフィック情報用メモリ領域1701は、一つのエントリのデータは、所定のタイミングで(例えば、一定周期毎に)記録され、同じ時刻における異なる種類のデータであり、時間と共に、異なるエントリに記載される。なお、トラフィック情報用メモリ領域1701に含まれる各エントリは、ループする構造で運用され、最新の情報が記録される際に、最も古い情報が破棄される。
【0037】
トラフィック情報用メモリ領域1701に格納されるテーブルは、シーケンス番号1701−1、時刻情報1701−2、全トラフィックのByte数1701−3a、packet数1701−3b及びFlag数1701−3c、アプリケーションの種別毎のByte数1701−4a、1701−5a、packet数1701−4b、1701−5b及びFlag数1701−4c、1701−5cを含む。
【0038】
シーケンス番号1701−1は、データの先頭を識別したり、データの欠落を判定するために用いられる。時刻情報1701−2は、データを格納した時刻である。
【0039】
Byte数1701−3a及びpacket数1701−3bは、それぞれ、全トラフィックの単位時間あたりに受信したパケットのバイト数及びパケットの数である。Flag数1701−3cは、全トラフィックにおいてTCP
ヘッダに含まれるSYNフラグの数を累積した値である。
【0040】
Byte数1701−4a及びpacket数1701−4bは、それぞれ、アプリケーションAに関して単位時間あたりに受信したパケットのバイト数及びパケットの数である。Flag数1701−4cは、アプリケーションAに関してTCP
ヘッダに含まれるSYNフラグの数を累積した値である。アプリケーションBについても、同様に、Byte数1701−5a、packet数1701−5b及びFlag数1701−5cが記録される。
【0041】
Flag数1701−3c、Flag数1701−4c及びFlag数1701−5cはSYNフラグの数を記録するが、テーブルがFINフラグの数を記録するフィールドを含んでもよい。
【0042】
なお、パケットのTCPヘッダ又はUDPヘッダに含まれるポート番号からアプリケーションの種別を識別して、アプリケーションの種別毎に統計情報を収集することができる。
【0043】
FFT演算部1703は、収集された統計情報に高速フーリエ変換の演算を行う。高速フーリエ変換の演算結果によって、統計情報の周期性を判定することができる。平均演算部1704は、統計情報の平均値を計算する。計算される平均値は、重み付け平均(例えば、最近の統計値の重みを大きくする)でもよい。偏差演算部1705は、統計値の標準偏差を計算する。
【0044】
FFT演算部1703、平均演算部1704及び偏差演算部1705は、それぞれ、一つ以上の演算回路を有している。各演算回路は、全体又はアプリケーション別に演算を実行する。例えば、FFT演算部1703の一つ
の演算回路は、受信した全体のパケットの数の演算をし、他の一つはアプリケーションAに関する受信パケットの数の演算をし、他の一つはアプリケーションAに関する単位時間あたりに受信したパケットのバイト数の演算をし、他の一つはアプリケーションBに関する単位時間あたりに受信したパケットのバイト数の演算をする。
【0045】
性能予測部1706は、FFT演算部1703、平均演算部1704及び偏差演算部1705の演算結果を統合し、将来に必要となる性能(例えば、所定時間後に必要な性能)を予測する。プロセッサ290は、性能予測部1706の予測方法の切り替えや、性能予測結果に加えられる補正などの制御信号を性能予測部1706に入力する。また、プロセッサ290は、FFT演算部1703、平均演算部1704及び偏差演算部1705の演算の開始、停止、演算内容の変更などを指示する制御信号を性能予測部1706に入力する。
【0046】
性能予測部1706が予測した必要性能は、回路制御部1707に送られる。回路制御部1707は、動作するパケット処理回路110−kを選択し、当該選択結果に基づいてパケット処理部110−k及びヘッダ情報蓄積用バッファ120に制御信号を送信する。これによって、動作するパケット処理回路110−kを選択して、ヘッダ処理部100の転送性能及び消費電力を制御する。
【0047】
次に、FFTを用いた性能予測の詳細について説明する。本実施例では、高速フーリエ変換又は離散フーリエ変換を用いた演算によって、ネットワークにおけるトラフィックの周期的な成分を検出する。そして、検出された周期的な成分に基づいて将来に発生するトラフィックを予測する。
【0048】
図5は、周期性を持つトラフィックの例を示す図である。
図5では、縦軸が受信パケット数で、横軸が時間経過で、右方向が時間が進んでいる。なお、
図5において、現在時刻をTとし、性能を予測してから性能が切り替えられるまでの遅延時間をTdlyとしている。すなわち、時刻Tにおいて予測結果に基づく性能の切り替えを指示しても、T+Tdlyの時刻に性能が切り替えられることを意味する。
【0049】
トラフィックを監視し、現在のトラフィック量に応じて性能を増減する場合、
図5のようにバーストの持続時間が、性能が切り替えられるまでの遅延時間Tdlyより短ければ、バーストが終了した後に性能が切り替えられる。そのため、実際のトラフィック変化に応じて性能の切り替えを指示しても、
図5の破線で描かれた切り替えの結果のように、性能を切り替えた時点では実際のトラフィックの状態は変化しており、有効な切り替えができていない。
【0050】
そこで、本実施例では、FFTを用いてトラフィックの周期成分を導出し、導出した変化の周期を用いて、トラフィックを予測する。
【0051】
図6は、第1の実施例におけるトラフィック量の予測結果を示す図である。
【0052】
FFTの結果、
図6に示すトラフィックには、周波数1/Tcycのスペクトルが検出された。つまり、
図6に示すトラフィックには、Tcycの周期性が見られる。トラフィックの周期性は、1日単位などの長い周期性だけではなく、通信プロトコルや通信経路の遅延に起因する、ミリ秒単位の短い周期性もある。本実施例では、短い周期の周期性に注目している。
【0053】
図6では、現在時刻Tに対して、性能が切り替えられるまでの遅延時間Tdlyを考慮して、時刻T+Tdlyの性能を予測する。ここで、Tcycでの周期性があることを考慮して、参照する過去のトラフィックは、T+Tdly−Tcyc、T+Tdly−2×Tcyc、T+Tdly−3×Tcycという時刻になる。これらの時刻は、
図6において、一点破線で描かれたタイミングに相当し、いずれもバーストのピークを示している。その結果、時刻T+Tdlyにおいてもバーストのピークが発生することを予測できる。本実施例の方法によって、Tdlyの遅延を予め考慮した予測が可能となり、
図6の破線で示すような、トラフィックの傾向に追随した予測結果を得ることができる。
【0054】
さらに、性能予測の精度を向上するため、トラフィック情報用メモリ領域1701でアプリ別にトラフィック情報を蓄積した統計情報を利用してもよい。
【0055】
図7は、第1の実施例におけるアプリケーションの種別毎のトラフィック量の予測結果を示す図である。
【0056】
観測された全トラフィック量は、アプリAのトラフィック量及びアプリBのトラフィック量の和となる。この場合、全トラフィック量にFFTを行うより、全トラフィック量をアプリケーションAのトラフィック量とアプリケーションBのトラフィック量とに分解して、各アプリケーションのトラフィック量にFFTを行うことによって、アプリケーション別に異なる周波数成分を解析することができる。
【0057】
図7に示す例では、アプリケーションAの振幅が大きいため、全トラフィック量にFFTを行うと、主にアプリケーションAの周波数成分が見え、アプリケーションBの成分は無視さることがある。しかし、アプリケーションA及びアプリケーションBのそれぞれにFFTを行った場合、各アプリケーションのトラフィック量の周波数成分を見ることができる。その結果、アプリケーションAのトラフィック量及びアプリケーションBのトラフィック量を予測し、二つの予測値を加算することによって、全トラフィック量で予測する場合より、高い精度で予測をすることができる。
【0058】
次に、トラフィックの平均値及び偏差を用いた性能予測の方法の詳細について説明する。以下に説明する性能予測では、現在までの平均トラフィック量及びトラフィック量の偏差を用いて、将来必要となる性能を予測する。
【0059】
平均トラフィック量P(t)は、過去の一定期間に受信したパケットの数又はバイト数の平均値(又は、移動平均、加重平均など)によって求める。また、トラフィック量の偏差σ(t)は、過去の一定期間に受信したパケットの数又はバイト数の標準偏差
によって求める。このとき、パラメータtは現在時刻である。
【0060】
トラフィックの平均値及び偏差を用いた性能予測では、例えば、式 nP(t)+mσ(t)(n,mは任意の定数(一般に正の数))を用いてトラフィック量を予測する。偏差σ(t)が大きい場合、トラフィック量の変動が大きいので、性能に余裕を持たせる必要がある。
【0061】
本実施例の平均演算部1704及び偏差演算部1705は、それぞれ、全トラフィックの平均値及び偏差を計算し、さらに、アプリケーションの種別毎に平均値及び偏差を計算する。これにより、アプリケーションの種別に応じて平均値及び偏差を計算することができ、計算された平均値及び偏差を用いてトラフィック量を予測することができる。
【0062】
次に、TCPプロトコルのフラグを用いた性能予測方法について説明する。
【0063】
図8は、TCPプロトコルを用いた通信のシーケンスを説明する図である。
【0064】
TCPを用いた通信は、3wayハンドシェイクによってコネクションを確立し、コネクションの確立後にデータ転送が開始する。このとき、トラフィック量の増加に影響するのは、主にデータ転送部分である、データ転送量は、ウィンドウサイズ制御によって、スロースタートで開始する。そのため、3wayハンドシェイクのシーケンスとトラフィック量の増加との間には時間差がある。TCPフラグを用いた性能予測方法では、3wayハンドシェイクのシーケンスとトラフィック量の増加の時間差を利用して、将来のトラフィック量を予測する。つまり、SYNフラグの数(さらには、FINフラグの数)を計測することによって、確立されているコネクションの数を予測し、さらに、コネクションが確立してからの経過時間を考慮して、バーストトラフィックの発生を予測する。
【0065】
本実施例では、平均演算部1704がフラグの数を計測する。具体的には、単位時間あたりのSYNフラグの数のみを計測したり、単位時間あたりのSYNフラグの数とFINフラグの数との差分を計測することによって、確立されている有効なコネクション数を推測する。これらの予測結果に適切な係数を乗じることによって、トラフィック量を予測してもよい。
【0066】
さらに、SYNフラグの数及び/又はFINフラグの数の移動平均又は加重平均を異なる重み付けや、異なる期間で計算し、計算された平均を比較することによって、トラフィック量の変化の傾向を抽出することができる。具体的には、過去の異なる時間(例えば、1秒間、10秒間など)の移動平均を取得し、両者を比較することによって、トラフィックの増加を予測してもよい。
【0067】
また、TCPプロトコルのフラグを用いた性能予測方法において、アプリケーションの種別毎に予測してもよい。すなわち、アプリケーションの種別毎にSYNフラグの数の計測する。なお、アプリケーションの種別毎に異なる予測方法を用いてもよく、アプリケーションの種別毎に異なる係数を用いてもよい。これは、TCPプロトコルで通信するアプリケーションでも、その種別によって発生するトラフィック量がことなる。このため、この方法によって、大きなトラフィックの発生が予測されるアプリケーションのみに注目することができ、少ないリソースで正確な予測をすることができる。
【0068】
性能予測部1706は、前述した性能予測方法で得られた演算結果を組み合わせることによって、パケット処理回路110−k及びヘッダ情報蓄積用バッファ120へ設定する転送性能を求める。また、過去の予測と、実際に発生したトラフィック量とを比較して予測精度を評価し、評価結果に基づいて予測方法へフィードバックしてもよい。これによって、予測精度を向上することができる。
【0069】
以上に説明したように、本発明の第1の実施例では、トラフィック量の予測値に基づいてパケット転送装置の性能を制御することによって、通信品質と省電力性能とを両立することができる。また、パケット転送装置の性能の切り替えに要する遅延時間が、省電力性能及び通信品質の劣化に与える影響を低減することができる。
【0070】
また、アプリケーションの種別毎にトラフィック量を予測することによって、全体のトラフィック量の観察では埋もれてしまうアプリケーションのトラフィック量の傾向も検出することができ、トラフィック量の予測精度を向上することができる。
【0071】
さらに、SYNフラグの数を計測することによって、トラフィック量の増加の予兆を検出することができ、トラフィック量の予測精度を向上することができる。
【0072】
<実施例2>
次に、本発明の第2の実施例について説明する。
【0073】
図9は、第2の実施例のネットワークルータ90の構成を示すブロック図である。
【0074】
ネットワークルータ90は、入力されたパケットを転送するパケット転送装置であって、複数のネットワークインターフェース(NIC)901、転送部902、クロスバスイッチ903と、CPU904及び性能判定部905を有する。
【0075】
NIC901は、ネットワークルータ90をネットワークに接続する.転送部902は、NIC901が受信したパケットの転送処理を行う。クロスバスイッチ903は、転送部902及びCPU904を接続する。CPU904は、所定のプログラムを実行してネットワークルータ90の動作を制御する。性能判定部905は、ルータの転送性能を制御する。
【0076】
性能判定部905の構成は、第1の実施例の回路数判定部170と同様であるが、具体的には、トラフィック情報用メモリ領域1701、FFT演算部1703、平均演算部1704、偏差演算部1705、性能予測部1706及び回路制御部1707を有する。これらの構成は、前述した第1の実施例の構成と同じである。
【0077】
図10は、第2の実施例の転送部902の詳細な構成を示すブロック図である。
【0078】
転送部902は、パケット格納部9021、パケットヘッダ振り分け部9022、パケットヘッダ蓄積用キュー9023、検索部9024及びパケットバッファ9025を有する。
【0079】
NIC901又はクロスバスイッチ903は、受信したパケットをパケット格納部9021に送る。パケット格納部9021は、受信したパケット(又は、パケットの本体)をパケットバッファ9025に格納し、パケットのヘッダ及び当該パケットが格納されるパケットバッファ9025のアドレス情報を、パケットヘッダ振り分け部9022に送る。
【0080】
パケットヘッダ振り分け部9022は、パケットヘッダを参照してアプリケーションの種別を判定し、該判定結果に基づいて、入力されたパケットヘッダを複数のパケットヘッダ蓄積用キュー9023のいずれかに振り分ける。パケットヘッダ蓄積用キュー9023に格納されたパケットヘッダは、優先度制御などによって複数の検索部9024のいずれかに振り分けられる。
【0081】
検索部9024は、ルーティングテーブル及びフロー制御テーブルを参照し、パケットの転送先及び転送タイミングを判定する。また、検索部9024は、フロー制御情報の一部を性能判定部905に送信する。検索部9024は、パケット転送の判定結果及びパケットが格納されたアドレス情報をパケットバッファ9025に通知する。パケットバッファ9025は、検索部9024から通知された判定結果に基づいて、格納されたパケットをNIC901又はクロスバスイッチ903へ転送する。
【0082】
パケットヘッダ蓄積用キュー9023は、パケットを受信した際に、単位時間あたりに受信したパケットの数及びバイト数、キュー毎に蓄積されたパケットの数、及び受信したパケットのTCPフラグの数などから統計情報を計測し、計測結果を性能判定部905に送信する。
【0083】
性能判定部905は、複数の転送部902から受信した統計情報を積算し、必要な転送性能を判定し、転送部902及びNIC901を制御するための信号を送信する。転送部902及びNIC901の制御は、各部の電源を遮断してもよいが、動作速度を変更してもよい。NIC901の制御は、ポート毎に動作を停止してもよく、ポート毎にリンク速度を変更してもよい。
【0084】
また、性能判定部905は、転送性能に関する情報をCPU904に通知する。
【0085】
さらに、性能判定部905は、必要な転送性能を判定するために、トラフィックの平均値及び偏差を用いた性能予測方法、FFTを用いた性能予測方法、TCPフラグを用いた性能予測方法、及びトラフィックの非対称性を利用した性能予測方法を単独で又は組み合わせて、将来のトラフィックを予測する。
【0086】
次に、トラフィックの非対称性を利用した性能予測方法について説明する。
【0087】
なお、FFTを用いた性能予測方法、トラフィックの平均値及び偏差を用いた性能予測方法、及びTCPフラグを用いた性能予測方法は、前述した第1の実施例と同じであるため、それらの説明は省略する。
【0088】
図11は、単純なサーバ・クライアントモデルのネットワークシステムの構成を示す図である。
【0089】
図11に示すネットワークシステムでは、クライアントA101及びサーバA104が、ネットワークルータA102及び広域ネットワークA103を介して通信している。このとき、通信の流れは、クライアントA101がリクエストを送信すると、ネットワークルータA102及び広域ネットワークA103を介してサーバA104に転送される。サーバA104は、このリクエストに対する返信を、広域ネットワークA103及びネットワークルータA102を介して、逆の経路で、クライアントA101に送信する。
【0090】
HTTPアクセスやFTPアクセスなどのサーバ・クライアントモデルの通信では、送信されるデータのサイズは、一般的に、リクエストのデータサイズより返信のデータサイズの方が大きい。
【0091】
そこで、ネットワークルータA102は、クライアントA101から送信されるリクエストを監視することによって、近い将来(例えば、過去のトラフィックから学習したRTTに相当する時間の後)、サーバA104から大きなトラフィックが送信される可能性を予測することができる。そこで、本実施例では、検索部9024が、特定の種別のアプリケーションにおいて新たに発生したリクエストを検出し、リクエストの検出を性能判定部905に送る。これにより、性能判定部905は、リクエストの検出を利用することによって、リプライによるデータ量の増大を予測することができる。
【0092】
なお、HTTPリクエストの内容を解析してトラフィック量を予測してもよい。HTTPリクエストがGET形式である場合、サーバA104上のリソース(例えば、画面データ)を要求しているので、リプライによるデータ量の増大を予測することができる。
【0093】
図12は、大規模なネットワークシステム上に構築されたサーバ・クライアントモデルの構成を示す図である。
【0094】
多数のユーザがいるオフィスなどの拠点においては、ネットワークが木構造になり、クラインアトA101−aは、下流のルータA102−b及び上流のネットワークルータA102−aを介して広域ネットワークA103と接続する。このため、下位のネットワークルータA102−bなどが、クライアントA101−aなどからのリクエストの発生を監視し、発生したリクエストの数を上流のネットワークルータA102−aに送信することによって、上流のネットワークルータA102−aの転送性能を制御することができる。
【0095】
このため、下流のルータA102−bの性能判定部905は、リクエスト発生数の情報をCPU904に送る。CPU904は、上流のネットワークルータA102−a宛のパケットを作成する。ネットワークルータA102−aは、下流のルータA102−bから受信したパケットをCPU904に送る。CPU904は、受信したパケットの内容を解析し、リクエスト発生数の情報を性能判定部905に送る。
【0096】
このような構成によって、多くのクライアントを束ねる上流のネットワークルータA102−aが、転送する多くのトラフィック量からリクエストを直接監視する必要がなくなり、監視負荷を分散することができる。
【0097】
なお、上流のルータA102−aから下流のルータA102−bなどに、発生したリクエストの数を送信してもよい。このように上流のルータA102−aでリクエストを監視することによって、下流のルータA102−bの性能が低い場合でも、下流のルータA102−bの転送性能に影響することなく、下流のルータA102−bの性能を制御することができる。
【0098】
以上に説明したように、本発明の第2の実施例では、ネットワークルータ(パケット転送装置)の全体の転送性能を制御する性能判定部を設けたので、転送性能を的確に制御することができる。
【0099】
また、前記監視されたリクエストの数を用いて予測されたトラフィック量を、上流又は下流のルータに転送するので、トラフィック量の予測値を受信したルータは、予測演算をすることなく転送性能を制御することができる。
【0100】
以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。