説明

ネットワーク中継装置、中継方法、および、そのためのコンピュータプログラム

【課題】ネットワーク中継装置において、パケットロスの発生を抑制しつつ低消費電力を実現することのできる技術を提供する。
【解決手段】TCPプロトコルを用いて通信を行うネットワーク中継装置は、第1の端末と第2の端末との間のパケットの転送を行うパケット転送部と、ネットワーク中継装置の各部を制御する制御部とを備える。制御部は、第1の端末と第2の端末との間のパケットを監視して、パケット転送部の帯域幅を広くする転送性能上昇処理およびパケット転送部の帯域幅を狭くする転送性能下降処理を実行し、この際、パケットがTCPコネクション確立要求時のSYNパケットである場合に、予め定められた規則に従って転送性能上昇処理を行うか否かを判定するとともに、転送性能上昇処理を行うと判定した場合は、SYNパケットの受信後、TCPコネクション確立要求によるTCPコネクション確立までの間にパケット転送部の帯域幅を広くする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークの中継を行うネットワーク中継装置に関する。
【背景技術】
【0002】
ICT(information and communication technology)技術の進展に伴うインターネットトラフィックの増加を背景として、ネットワーク中継装置(例えば、LANスイッチやルータ)の消費電力が急増している。一方、近年では環境保護の観点から、ネットワーク中継装置に対する電力削減の要請が高まっている。従来のネットワーク中継装置では、トラフィック量の増減に追従する形でネットワーク中継装置の転送性能を増減させることによって、低消費電力を実現していた(例えば、非特許文献1)。
【0003】
【非特許文献1】「AX6700S・AX6300S ソフトウェアマニュアル コンフィグレーションガイド Vol.1(Ver.10.7対応版)」、アラクサラネットワークス株式会社、2007年4月、199〜200ページ、インターネット<URL:http://www.alaxala.com/jp/support/manual/AX6300S/pdf/10_7/CFGUIDE/CFGUIDE.PDF>
【非特許文献2】「Rapid PHY Selection(RPS):A Performance Evaluation of Control Policies」、Ken Christensen、2007年1月、インターネット<URL:http://grouper.ieee.org/groups/802/3/eee_study/public/jan07/christensen_01_0107.pdf>
【0004】
しかし、トラフィック量の増減に追従する形でネットワーク中継装置の転送性能を増減させることでは、不規則に変化するトラフィック量に対応できず、パケットロスが生じる可能性があるという問題があった。
【発明の開示】
【発明が解決しようとする課題】
【0005】
本発明は、ネットワーク中継装置において、パケットロスの発生を抑制しつつ低消費電力を実現することのできる技術を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。
【0007】
[適用例1]
TCPプロトコルを用いて通信を行う第1の端末と第2の端末との間の伝送路上に配置されるネットワーク中継装置であって、
前記第1の端末と前記第2の端末との間のパケットの転送を行うパケット転送部と、
前記ネットワーク中継装置の各部を制御する制御部と、
を備え、
前記制御部は、
前記第1の端末と前記第2の端末との間のパケットを監視して、前記パケット転送部の帯域幅を広くする転送性能上昇処理および前記パケット転送部の帯域幅を狭くする転送性能下降処理を実行し、この際、前記パケットがTCPコネクション確立要求時のSYNパケットである場合に、予め定められた規則に従って前記転送性能上昇処理を行うか否かを判定するとともに、前記転送性能上昇処理を行うと判定した場合は、前記SYNパケットの受信後、前記TCPコネクション確立要求によるTCPコネクション確立までの間に前記パケット転送部の帯域幅を広くする、ネットワーク中継装置。
こうすれば、端末間でやり取りされるパケットの内容に応じて、ネットワーク中継装置の転送性能が必要な場合は転送性能上昇処理を行い、パケットロスの発生を抑制することができる。同様に、ネットワーク中継装置の転送性能が必要ない場合は転送性能下降処理を行い、低消費電力を実現することができる。TCPプロトコルにおいては、TCPコネクション確立後に端末間の通信が行われるため、こうすれば、ネットワーク中継装置において、その転送性能が必要な場合を知ることができる。この結果、ネットワーク中継装置において、パケットロスの発生を抑制しつつ低消費電力を実現することが可能となる。
【0008】
[適用例2]
適用例1記載のネットワーク中継装置であって、
前記制御部は、
前記パケットがTCPコネクション切断要求時のFINパケットである場合に、予め定められた規則に従って前記転送性能下降処理を行うか否かを判定するとともに、前記転送性能下降処理を行うと判定した場合は、前記FINパケットの受信をトリガとして前記パケット転送部の帯域幅を狭くする、ネットワーク中継装置。
こうすれば、TCPプロトコルにおいては、端末間の通信終了後にはTCPコネクションが切断されるため、ネットワーク中継装置において、その転送性能が必要ない場合を知ることができる。この結果、ネットワーク中継装置において、パケットロスの発生を抑制しつつ低消費電力を実現することが可能となる。
【0009】
[適用例3]
適用例1または2記載のネットワーク中継装置であって、
前記転送性能上昇処理および前記転送性能下降処理における前記パケット転送部の帯域の増減幅は、TCPコネクション毎に予め定められた帯域幅によって決定される、ネットワーク中継装置。
こうすれば、TCPコネクション毎に帯域幅を増減する大きさを定めることができる。このため、TCPコネクション毎の特性を考慮して、ネットワーク中継装置のパケット転送部の帯域幅を増減させることができる。
【0010】
[適用例4]
適用例1または2記載のネットワーク中継装置であって、さらに、
外部の端末と接続される複数の回線を備え、
前記転送性能上昇処理および前記転送性能下降処理における前記パケット転送部の帯域の増減幅は、前記回線毎に予め定められた帯域幅によって決定される、ネットワーク中継装置。
こうすれば、回線毎に帯域幅を増減する大きさを定めることができる。このため、使用されている回線毎に、ネットワーク中継装置のパケット転送部の帯域幅を増減させることができる。
【0011】
[適用例5]
適用例1または2記載のネットワーク中継装置であって、さらに、
外部の端末と接続される複数の回線と、
1つ以上の前記回線をそれぞれ収容する複数の回線収容部と、
を備え、
前記転送性能上昇処理および前記転送性能下降処理における前記パケット転送部の帯域の増減幅は、前記回線収容部毎に予め定められた帯域幅によって決定される、ネットワーク中継装置。
こうすれば、回線収容部毎に帯域幅を増減する大きさを定めることができる。このため、使用されている回線収容部毎に、ネットワーク中継装置のパケット転送部の帯域幅を増減させることができる。
【0012】
[適用例6]
適用例1または2記載のネットワーク中継装置であって、
前記転送性能上昇処理および前記転送性能下降処理における前記パケット転送部の帯域の増減幅は、QoS情報に従って予め定められた帯域幅によって決定される、ネットワーク中継装置。
こうすれば、QoSサービス品質(例えば、シェーピングやポリシング)を考慮した上で、ネットワーク中継装置のパケット転送部の帯域幅を増減させることができる。
【0013】
[適用例7]
適用例1または2記載のネットワーク中継装置であって、さらに、
データフロー毎の過去の平均パケット流量と、データフロー毎の過去の最大パケット流量とのうちの少なくとも一方を測定する統計情報部を備え、
前記転送性能上昇処理および前記転送性能下降処理における前記パケット転送部の帯域の増減幅は、前記平均パケット流量と、前記最大パケット流量とのうちの少なくとも一方より定まる帯域幅によって決定される、ネットワーク中継装置。
こうすれば、データフロー毎の過去のパケット流量(トラフィック量)の統計に基づいて、より適切に、ネットワーク中継装置のパケット転送部の帯域幅を増減させることができる。
【0014】
[適用例8]
適用例1または2記載のネットワーク中継装置であって、さらに、
外部の端末と接続される複数の回線と、
1つ以上の前記回線をそれぞれ収容する複数の回線収容部と、
データフロー毎の過去の平均パケット流量と、データフロー毎の過去の最大パケット流量とのうちの少なくとも一方を測定する統計情報部と、
を備え、
前記転送性能上昇処理および前記転送性能下降処理における前記パケット転送部の帯域の増減幅は、
(i)TCPコネクション毎に予め定められた帯域幅と、
(ii)前記回線毎に予め定められた帯域幅と、
(iii)前記回線収容部毎に予め定められた帯域幅と、
(iv)QoS情報に従って予め定められた帯域幅と、
(v)前記平均パケット流量と、前記最大パケット流量とのうちの少なくとも一方より定まる帯域幅と、
のうちのいずれか1つを用いて決定され、前記(i)〜(v)のいずれを用いるかはTCPコネクション毎に予め定められている、ネットワーク中継装置。
こうすれば、TCPコネクション毎に、適用例3〜7記載のいずれかの方法で帯域幅を増減させることができる。この結果、よりきめ細かく、ネットワーク中継装置のパケット転送部の帯域幅を増減させることが可能となる。
【0015】
なお、本発明は、種々の態様で実現することが可能である。例えば、ネットワーク中継装置および方法、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記憶媒体等の形態で実現することができる。
【発明を実施するための最良の形態】
【0016】
次に、本発明の実施の形態を実施例に基づいて以下の順序で説明する。
A〜G.実施例1〜7:
H.変形例:
【0017】
A.第1実施例:
図1は、本発明の一実施例としてのネットワーク中継装置が用いられたネットワークの概略構成を示す説明図である。このネットワークは、ネットワーク中継装置10(以降、「ルータ」とも呼ぶ)と、管理端末90と、4台のクライアント端末40〜70(以降、「クライアント」とも呼ぶ)とを備え、外部ネットワークであるインターネットINETに接続されている。また、インターネットINETには、サーバ20とサーバ30とが接続されている。換言すれば、ルータ10は、クライアント端末間もしくはクライアント端末とサーバ間の伝送路上に配置されるネットワーク中継装置である。
【0018】
ルータ10は、回線収容部200と、2つの回線収容部201と、パケット転送部300と、制御部400とを備えている。回線収容部200はインターネットINETと接続するための回線110を収容するユニットである。2つの回線収容部201のうち、LRU#2はクライアント40と接続するための回線120と、クライアント50と接続するための回線130を収容するユニットである。一方、LRU#3はクライアント60と接続するための回線140とクライアント70と接続するための回線150を収容するユニットである。パケット転送部300は、ルータ10を介した(例えば、クライアント端末間、クライアント端末とサーバ間)パケットの転送機能を有する。具体的には、パケット転送部300は、受信したパケットのヘッダからパケットの出力先を判定し、該当する回線収容部200へ転送する。パケットは、回線収容部200に接続されている目的の回線を通じて、宛先へと送信される。なお、本実施例におけるルータ10は、ハードウェア処理でパケット転送を行う構成としている。制御部400は、ルータ10の各部を制御するほか、ルーティングプロトコルの処理等を行う。管理端末90は、ルータ10に接続され、ルータ10を管理するための端末(例えば、パーソナルコンピュータ)である。
【0019】
図2は、クライアント40とサーバ30が通信する場合におけるルータ10の動作を示すシーケンス図である。ルータ10は、クライアント40とサーバ30との間で通信が行われていない場合、最低限のパケット転送性能を保持した状態の省電力モードで待機する。
【0020】
クライアント40とサーバ30とがTCPプロトコルを用いて通信を行う場合、通信するためのTCPコネクションを確立してから通信を行う。このTCPコネクションを確立するために、クライアント40とサーバ30との間で、スリーウェイハンドシェイク(3−way handshake)と呼ばれる1往復半のやり取りを行う。具体的には、クライアント40は、これから通信を行いたいことを示すSYN(Synchronization)というコネクション確立要求のパケット(SYNパケット)を送信する(ステップS11)。ルータ10は、クライアント40からのSYNパケットをサーバ30へ転送する(ステップS12)。SYNパケットを受信したサーバ30は、当該SYNパケットに対する確認応答であるACKと、サーバ30からクライアント40へのコネクション確立要求のSYNを兼ねたパケット(SYN+ACKパケット)を送信する(ステップS21、S22)。クライアント40は、このSYN+ACKパケットを受信した後、これに対するACKパケットを送信する(ステップS31、S32)。このACKパケットがサーバ30へ届いた時点で、クライアント40とサーバ30とのTCPコネクションが確立される。以降は、この論理的な通信路であるTCPコネクションを用いて、クライアント40とサーバ30の間でデータ転送が行われる。
【0021】
ルータ10は、端末間でのパケットを監視し、クライアント40からのSYNパケット受信(ステップS11、時刻t1)をトリガとして、クライアント40とサーバ30とのTCPコネクションが確立されるまでに、自身の転送性能を上昇させる(以降、「転送性能上昇処理」とも呼ぶ)。この転送性能の上昇は、ルータ10が、クライアント40からのACKパケット受信後、当該パケットをサーバ30へ転送するまで(ステップS32、時刻t2)に完了することが好ましい。こうすれば、TCPコネクションが確立されるまでの間に、確実に転送性能を上昇させることができる。この転送性能の上昇は、ルータ10のパケット転送部300の帯域幅を広くすることにより行う。なお、転送性能上昇処理についての詳細は後述する。このようにすれば、クライアント40とサーバ30の間のTCPコネクションが確立するまでの間に、ルータ10の転送性能を上昇させることができる。このため、クライアント40とサーバ30の間のデータ転送に必要な転送性能を確保することができ、パケットロスの発生を抑制することが可能となる。
【0022】
クライアント40とサーバ30とが通信を終了する場合は、両者の間に確立されているTCPコネクションを切断した上で通信を終了する。具体的には、クライアント40は、サーバ30に対してFINというコネクション切断要求のパケット(FINパケット)を送信する(ステップS41)。ルータ10はクライアント40からのFINパケットをサーバ30へ転送する(ステップS42)。FINパケットを受信したサーバ30は、当該FINパケットに対する確認応答であるACKパケットを送信する(ステップS51、S52)。また、サーバ30の側からも、クライアント40に対するコネクション切断要求のFINパケットを送信する(ステップS61、S62)。クライアント40は、このFINパケットを受信した後、これに対するACKパケットを送信する(ステップS71、S72)。このACKパケットがサーバ30へ届いた時点で、クライアント40とサーバ30とのTCPコネクションが切断される。
【0023】
ルータ10は、端末間でのパケットを監視し、クライアント40からのFINパケット受信(ステップS41、時刻t3)をトリガとして、自身の転送性能を下降させる(以降、「転送性能下降処理」とも呼ぶ)。この転送性能の下降は、ルータ10のパケット転送部300の帯域幅を狭くすることによって行う。なお、転送性能下降処理における下降幅は、転送上昇処理における上昇幅とは等しくすることが好ましいが、個別に設定してもよい。このようにすれば、TCPコネクション切断要求時のFINパケットによって、クライアント40とサーバ30の間のデータ転送終了を判断し、ルータ10の転送性能を下降させることができる。このため、低消費電力を実現することが可能となる。
【0024】
図2では、クライアント40とサーバ30とが通信を行う場合を例として、ルータ10の転送性能上昇処理および転送性能下降処理について説明した。ルータ10は、他の端末間(例えば、クライアント端末間、クライアント端末とサーバ間)のパケットを転送する際にも、図2で説明した転送性能上昇処理と転送性能下降処理を行う。このようにすれば、ルータ10を介して複数の端末同士が通信を行う場合であっても、個々のTCPコネクション毎に、転送性能上昇処理と転送性能下降処理をすることが可能となる。この結果、TCPコネクション毎にきめ細かい転送性能の制御ができるため、パケットロスの発生を抑制しつつ低消費電力を実現することが可能となる。
【0025】
図3は、ルータ10で用いられるパケット1000の構造を示す説明図である。パケット1000は、装置内ヘッダ1100と、イーサネットヘッダ1200と、IPヘッダ1300と、TCPヘッダ1400と、データ1500とを含んでいる。これら各ヘッダについての詳細は後述する。
【0026】
図4は、装置内ヘッダ1100の構造を示す説明図である。装置内ヘッダ1100は、入力回線収容部番号1110と、入力回線番号1120と、出力回線番号1130と、キュー番号1140とを含んでいる。入力回線収容部番号1110は、パケット1000が受信された回線収容部200を識別するための情報である。入力回線番号1120は、パケット1000が受信された回線を識別するための情報である。出力回線番号1130は、ルータ10がパケット1000を送信する際の回線を識別するための情報である。キュー番号1140は、ルータ10がパケット1000を送信する際に使用するキューを識別するための情報である。このキューによって、ルータ10がパケットを送信する順序を制御する。
【0027】
図5は、イーサネットヘッダ1200の構造を示す説明図である。イーサネットヘッダ1200は、宛先MACアドレス1210と、送信元MACアドレス1220と、タイプ1230とを含んでいる。タイプ1230は、上位層(すなわち、ネットワーク層)のプロトコルを示す情報である。
【0028】
図6は、IPヘッダ1300の構造を示す説明図である。IPヘッダ1300は、送信元IPアドレス1310と、宛先IPアドレス1320と、プロトコル1330とを含んでいる。プロトコル1330は、上位層(すなわち、トランスポート層)のプロトコルを示す情報である。
【0029】
図7は、TCPヘッダ1400の構造を示す説明図である。TCPヘッダ1400は、送信元ポート番号1410と、宛先ポート番号1420と、シーケンス番号1430と、確認応答番号1440と、データオフセット1450と、予約フィールド1460と、コントロールフラグ1470と、ウィンドウサイズ1480とを含んでいる。送信元ポート番号1410および宛先ポート番号1420は、パケット1000が、どのアプリケーションに必要なパケットであるかを示す情報である。シーケンス番号1430および確認応答番号1440は、パケット1000に含まれるデータ1500の通し番号として使用される情報である。データオフセット1450は、TCPヘッダ1400の長さを示す情報である。
【0030】
コントロールフラグ1470は、CWRフラグ1471と、ECEフラグ1472と、URGフラグ1473と、ACKフラグ1474と、PSHフラグ1475と、RSTフラグ1476と、SYNフラグ1477と、FINフラグ1478とを含んでいる。CWRフラグ1471とECEフラグ1472は、輻輳制御に使用されるフラグである。URGフラグ1473は、パケット1000中に緊急データが含まれていることを示すフラグである。ACKフラグ1474は、パケットが正常に受信されたことを示すフラグである。PSHフラグ1475は、パケット1000が到着次第、上位のプロトコルへデータを渡してほしい旨を示すフラグである。RSTフラグ1476は、コネクションのリセットを要求する旨を示すフラグである。SYNフラグ1477は、コネクションの確立を要求する旨を示すフラグである。転送性能上昇処理(図2)において、ルータ10は、このSYNフラグ1477の値が1のパケット1000を受信した場合に、SYNパケットを受信したものと判断する(ステップS11、時刻t1)。FINフラグ1478は、コネクションの切断を要求する旨を示すフラグである。転送性能下降処理(図2)において、ルータ10は、このFINフラグ1478の値が1のパケット1000を受信した場合に、FINパケットを受信したものと判断する(ステップS41)。ウィンドウサイズ1480は、セグメント欠陥時等におけるバッファリング可能なバイト数を示す情報である。
【0031】
図8は、ルータ10の概略構成を示す説明図である。回線収容部LRU#1は、装置内ヘッダ付与部210と、回線読出部220と、バッファ230とを備えている。
【0032】
装置内ヘッダ付与部210は、回線110を介して受信したパケット1000に対して、装置内ヘッダ1100(図3、図4)を付加する機能を有する。回線収容部LRU#1が、回線110を経由してパケット1000を受信した場合を例にして説明する。まず、装置内ヘッダ付与部210は、パケット1000に対して装置内ヘッダ1100を付与する。そして、入力回線収容部番号1110フィールドに、回線収容部LRU#1を識別するための情報を格納する。さらに、入力回線番号1120フィールドに、回線110を識別するための情報を格納する。その後、装置内ヘッダ付与部210は、当該パケットをバッファ230へ格納する。このバッファ230は、一時的にパケットを格納しておくためのバッファメモリ領域である。
【0033】
バッファ230に格納されたパケット1000は、パケット転送部300および制御部400によって種々の処理(詳細については後述)がなされ、バッファ230内のキューに格納される。回線読出部220は、バッファ230内のキューに格納されたパケット1000を読み出して、パケット1000を回線110に送信する。なお、回線読出部220は、キュー毎に定められた出力帯域に従って、パケット1000を回線110に送信するものとしてもよい。回線収容部LRU#2は、2つの回線に対応して、2つの装置内ヘッダ付与部210と、回線読出部220と、バッファ230とを備えている。各部の動作は前述の通りである。また、回線収容部LRU#3は回線収容部LRU#2と同様であるため、詳細な図示を省略した。
【0034】
パケット転送部300は、検索処理部310と、転送処理部320とを備えている。転送処理部320は、パケット読出部323と、パケットメモリ324と、内部読出部321と、ヘッダ書込部322と、統計情報部325と、性能制御部329とを備えている。パケット読出部323は、バッファ230に蓄積されたパケット1000を読み出し、パケットメモリ324へ格納する。パケットメモリ324は、一時的にパケットを格納しておくためのバッファメモリ領域である。内部読出部321は、パケットメモリ324に蓄積されたパケットを読み出し、検索処理部310および制御部400内のCPU410へと転送する。ヘッダ書込部322は、検索処理部310で処理されたパケット1000の情報を上書きする機能を有する。この上書きは、パケットメモリ324内の該当するパケット1000に対して行う。なお、検索処理部310での処理については後述する。性能制御部329は、転送処理部320の転送性能を上昇または下降させる機能を有する。具体的には、性能制御部329は、CPU410から転送性能制御情報を受信し、この転送性能制御情報に基づいて、転送処理部320内の各部(パケット読出部323、パケットメモリ324、内部読出部321、ヘッダ書込部322)のクロック周波数や電源電圧を制御し、転送性能を増減させる。
【0035】
検索処理部310は、ルーティングテーブル311と、QoSテーブル312と、テーブル検索駆動部313と、性能制御部319とを備えている。ルーティングテーブル311は、送信先IPアドレスごとの出力回線番号が格納されているテーブルである。QoSテーブル312は、シェーピングやポリシングといった、出力レート制限機能を実現するためのパケットの優先度情報を格納するテーブルである。テーブル検索駆動部313は、内部読出部321から受け取ったパケット1000のヘッダ情報(装置内ヘッダ1100〜TCPヘッダ1400)を元に、ルーティングテーブル311とQoSテーブル312とを検索する。そして、ルーティングテーブル311から検索した出力回線番号を、装置内ヘッダ1100の出力回線番号1130フィールドに格納する。さらに、QoSテーブル312から検索したキュー番号を、装置内ヘッダ1100のキュー番号1140フィールドに格納する。性能制御部319は、検索処理部310の転送性能を上昇または下降させる機能を有する。具体的には、性能制御部319は、CPU410から転送性能制御情報を受信し、この転送性能制御情報に基づいて、検索処理部310内の各部(テーブル検索駆動部313、ルーティングテーブル311、QoSテーブル312)のクロック周波数や電源電圧を制御し、転送性能を増減させる。
【0036】
制御部400は、CPU410と、メモリ420とを備えている。CPU410は、転送性能上昇処理や転送性能下降処理などの機能を有する汎用プロセッサである。メモリ420は、ステートテーブル421と、コネクション帯域テーブル422とを備える記憶領域である。ステートテーブル421は、現時点におけるTCPコネクションの状態を示すテーブルである。コネクション帯域テーブル422は、TCPコネクションのタイプ等に応じて、そのコネクションに割り当てるべき帯域を示すテーブルである。各テーブルについての詳細は後述する。
【0037】
図9は、転送性能上昇処理の処理手順を示すフローチャートである。まず、CPU410は、内部読出部321から受信したパケット1000がSYNパケットであるか否かを判断する(ステップS50)。具体的には、パケット1000のTCPヘッダ1400(図7)のうち、SYNフラグ1477の値が1である場合にSYNパケットであると判断する。次にCPU410は、帯域検索を行う(ステップS51)。帯域検索についての詳細は後述する。帯域検索の後、CPU410は、ルータ10の帯域計算を行う(ステップS52)。帯域計算についての詳細は後述する。ルータ10の帯域計算が終了した後、CPU410は、転送性能制御情報を送信する(ステップS53)。この転送性能制御情報は、検索処理部310の性能制御部319と、転送処理部320の性能制御部329とに向けて送信される。転送性能制御情報を受信後の転送性能の増減処理については前述の通りである。
【0038】
図10は、ステートテーブル421の一例を示す説明図である。ステートテーブル421は、送信元IPアドレスFIPと、送信先IPアドレスTIPと、送信元ポート番号FPTと、送信先ポート番号TPTと、ステートSTと、帯域BAとを含んでいる。このうち、送信元IPアドレスFIPと、送信先IPアドレスTIPと、送信元ポート番号FPTと、送信先ポート番号TPTとの組から、TCPコネクションを識別することができる。なお、これら4つの情報(送信元IPアドレスFIP、送信先IPアドレスTIP、送信元ポート番号FPT、送信先ポート番号TPT)をまとめて「コネクション情報」とも呼ぶ。
【0039】
ステートSTは、コネクション情報によって識別されるTCPコネクションの状態である。具体的には、ステートSTフィールドの値と、TCPコネクションの状態とは以下のような対応関係となる。
・ST=0:SYNパケットを受信していない状態
・ST=1:TCPコネクション確立要求をする側からのSYNパケットを受信した状態(図2、ステップS11)
・ST=2:TCPコネクション確立要求をされる側からのSYN+ACKパケットを受信した状態(図2、ステップS21)
・ST=3:TCPコネクション確立要求をする側からのACKパケットを受信した状態(図2、ステップS31)
・ST=4:TCPコネクション切断要求をする側からのFINパケットを受信した状態(図2、ステップS41)
・ST=5:TCPコネクション切断要求をされる側からのACKパケットを受信した状態(図2、ステップS51)
・ST=6:TCPコネクション切断要求をされる側からのFINパケットを受信した状態(図2、ステップS61)
・ST=7:TCPコネクション切断要求をする側からのACKパケットを受信した状態(図2、ステップS71)
【0040】
帯域BAは、コネクション情報によって識別されるTCPコネクション毎の帯域の増減幅であり、初期値は0である。CPU410は、内部読出部321から受信したパケット1000について、そのコントロールフラグ1470を確認する。そして、TCPコネクションの状態が変化する都度、前述の対応関係に基づいてステートテーブル421のステートSTフィールドの値を更新する。また、CPU410は、ステートSTフィールドの値が7となったエントリについて、当該エントリを削除する。なお、このとき、当該エントリを削除するのではなく、下記のような処理を行ってもよい。
・帯域BAフィールドの値を0とする。
・帯域BAフィールドの値を0、ステートSTフィールドの値を0とする。
【0041】
図11は、コネクション帯域テーブル422の一例を示す説明図である。コネクション帯域テーブル422は、送信元IPアドレスSFIPと、送信先IPアドレスSTIPと、送信元ポート番号SFPTと、送信先ポート番号STPTと、帯域SBAとを含んでいる。コネクション帯域テーブル422においては、送信元IPアドレスSFIPと、送信先IPアドレスSTIPと、送信元ポート番号SFPTと、送信先ポート番号STPTとの組からTCPコネクションを識別する。帯域SBAは、TCPコネクション毎に割り当てるべき帯域である。帯域SBAフィールドの値は、予めルータ10の管理者等により設定される。送信元IPアドレスSFIPと、送信先IPアドレスSTIPと、送信元ポート番号SFPTと、送信先ポート番号STPTには、どのような値であっても一致するという意味の値「*」を格納することができる。なお、コネクション情報に一致するエントリがコネクション帯域テーブル422に無い場合を考慮し、エントリの末尾にはエントリE06のようなエントリを設けておくことが好ましい。このエントリにおける帯域は小さな値としておくことが好ましい。
【0042】
図12は、第1実施例における帯域検索(図9、ステップS51)の処理手順を示すフローチャートである。図13は、帯域検索に伴ってステートテーブル421が更新される様子を示す説明図である。ステップS100において、CPU410は、ステートテーブル421へパケット1000の情報を追加する。具体的には、CPU410は、ステートテーブル421に新たなエントリE04(図13(B))を追加する。また、このエントリE04の送信元IPアドレスFIPフィールドにIPヘッダ1300の送信元IPアドレス1310の値(IP40)を格納する。同様に、送信先IPアドレスTIPフィールドにIPヘッダ1300の宛先IPアドレス1320の値(IP30)を、送信元ポート番号FPTにTCPヘッダ1400の送信元ポート番号1410の値(1065)を、送信先ポート番号TPTにTCPヘッダ1400の宛先ポート番号1420の値(80)を格納する。また、CPU410は、ステートSTフィールドに、SYNパケットを受信した状態を示す数字(1)を格納する。帯域BAフィールドの値は初期値(0)である。
【0043】
ステップS101において、CPU410は、コネクション帯域テーブル422を検索して帯域を求める。具体的には、CPU410は、ステートテーブル421に格納したコネクション情報(送信元IPアドレスFIP、送信先IPアドレスTIP、送信元ポート番号FPT、送信先ポート番号TPT)をキーとして、コネクション帯域テーブル422を検索する。ここでは、コネクション帯域テーブル422のエントリSE01(図11)に一致するため、帯域SBAの値は50である。ステップS102において、CPU410は、ステップS101で検索した帯域SBA=50をステートテーブル421のエントリE04の帯域BAフィールドに格納する(図13(C))。
【0044】
図14は、帯域計算における帯域とクロック周波数との関係を示すグラフである。図14の縦軸はパケット転送部300内の各部のクロック周波数を、横軸はステートテーブル421の合計帯域を示している。この合計帯域は大きくなればなるほど必要な帯域幅が広くなることを意味する。必要な帯域幅が広くなれば、クロック周波数が上がるため、ルータ10の転送性能は増大する。合計帯域は、ステートテーブル421のステートSTフィールドの値が1〜3であるエントリを抽出し、そのエントリについての、帯域BAフィールドの値の和により求める。ステートSTフィールドの値が4以上のエントリは、既にFINパケットを受信した後のエントリとなるからである。図13(C)の例では、合計帯域は、100(エントリE01)+50(エントリE04)=150(Kbps)となる。CPU410は、合計帯域からクロック周波数を求め、その値を転送性能制御情報として、検索処理部310の性能制御部319および転送処理部320の性能制御部329へ送信する。なお、図14においては、縦軸をパケット転送部300内の各部のクロック周波数としているが、縦軸はルータ10に供給される電源電圧としてもよい。また、合計帯域からクロック周波数と電源電圧との両方を決定する構成とすることもできる。
【0045】
図15は、転送性能下降処理の処理手順を示すフローチャートである。まず、CPU410は、内部読出部321から受信したパケット1000がFINパケットであるか否かを判断する(ステップS60)。具体的には、パケット1000のTCPヘッダ1400(図7)のうち、FINフラグ1478の値が1である場合にFINパケットであると判断する。次にCPU410は、前述した手順を用いてルータ10の帯域計算を行う(ステップS61)。ルータ10の帯域計算が終了した後、CPU410は、合計帯域からパケット転送部300内の各部のクロック周波数を求め、その値を転送性能制御情報として、検索処理部310の性能制御部319および転送処理部320の性能制御部329へ送信する(ステップS62)。
【0046】
このようにすれば、端末間でやり取りされるパケットの内容から、TCPコネクションが確立されることと、切断されることを知ることができる。そして、このTCPコネクションの状態に応じて、ルータの転送性能が必要な場合は転送性能上昇処理を行う。これにより、パケットロスの発生を抑制することができる。一方、ルータの転送性能が必要ない場合は転送性能下降処理を行う。これにより、低消費電力を実現することができる。この結果、ネットワーク中継装置において、パケットロスの発生を抑制しつつ低消費電力を実現することが可能となる。また、第1実施例においては、コネクション帯域テーブルを元にしてルータの帯域の増減幅を定めている。このため、TCPコネクション毎の特性を考慮して、ルータのパケット転送部の帯域幅を増減させることができる。
【0047】
B.第2実施例:
図16は、第2実施例におけるルータ10の概略構成を示す説明図である。図8で示した第1実施例との大きな違いは、制御部400のメモリ420内に、ステートテーブル421およびコネクション帯域テーブル422の代わりに、回線帯域テーブル423とルーティングテーブル424とを備えている点だけであり、他の構成は第1実施例とほぼ同じである。
【0048】
図17は、ルーティングテーブル424の一例を示す説明図である。ルーティングテーブル424は送信先IPアドレスIPと、出力回線番号LNとを含んでいる。出力回線番号LNフィールドの各値#110、#120、#130は、個々の回線110、回線120、回線130に予め割り当てられた番号である。なお、このルーティングテーブル424は、パケット転送部300のルーティングテーブル311のコピーであることが好ましい。
【0049】
図18は、回線帯域テーブル423の一例を示す説明図である。回線帯域テーブル423は、回線番号LNOと、帯域LBAと、コネクション数LCEとを含んでいる。帯域LBAフィールドは、第2実施例における帯域の増減幅であり、回線毎に割り当てられている最大帯域が格納される。この設定は、予めルータ10の管理者等によって行われる。コネクション数LCEは、回線毎のTCPコネクションの数である。なお、詳細については後述する。転送性能上昇処理における大まかな処理の流れは、図9と同様である。
【0050】
図19は、第2実施例における帯域検索(図9、ステップS51)の処理手順を示すフローチャートである。図20は、第2実施例における帯域検索方法の説明に利用するTCPコネクションの例を示す説明図である。図21は、帯域検索によって更新された回線帯域テーブル423の様子を示す説明図である。
【0051】
ステップS200において、CPU410は、ルーティングテーブル424の情報を検索する。具体的には、以下のようにして、TCPコネクション間で使用されている回線を検索する。
i)CPU410は、IPヘッダ1300の送信元IPアドレス1310の値(図6)と、ルーティングテーブル424の送信元IPアドレスIPの値(図17)とが一致する出力回線番号LN(図17)を検索する。
ii)CPU410は、IPヘッダ1300の宛先IPアドレス1320の値(図6)と、ルーティングテーブル424の送信元IPアドレスIPの値(図17)とが一致する出力回線番号LN(図17)を検索する。
【0052】
図20では、2つのTCPコネクションCO1、CO2が確立されている。CO1は、クライアント40からサーバ30へのTCPコネクションである。CO2は、クライアント50からサーバ20へのTCPコネクションである。
・CO1:
i)送信元IPアドレス1310はIP40であるため、出力回線番号LN=#120(図17、エントリRE03)
ii)宛先IPアドレス1320はIP30であるため、出力回線番号LN=#110(図17、エントリRE02)
・CO2:
i)送信元IPアドレス1310はIP50であるため、出力回線番号LN=#130(図17、エントリRE04)
ii)宛先IPアドレス1320はIP20であるため、出力回線番号LN=#110(図17、エントリRE01)
【0053】
CPU410は、ステップS200で求めた出力回線番号をキーとして回線帯域テーブル423(図21(A))を検索する(ステップS201)。CPU410は、ステップS200で求めた出力回線番号と、回線帯域テーブル423の回線番号LNOとの値が一致するエントリについて、当該エントリのコネクション数LCEフィールドの値に「1」を加える(ステップS202)。ステップS201、S202の処理は、ルーティングテーブル424の検索結果それぞれについて行う。図21(B)は、コネクション数LCEフィールド更新後の回線帯域テーブル423を示している。TCPコネクションの確立に使用されている回線は、回線110が2本(LE01)、回線120が1本(LE02)、回線130が1本(LE03)である。
【0054】
第2実施例では、合計帯域の計算方法のみ第1実施例と異なる。合計帯域は、回線帯域テーブル423のコネクション数LCEフィールドの値が1以上であるエントリを抽出し、そのエントリについての、帯域LBAフィールドの値の和により求める。コネクション数LCEフィールドの値が0であれば、その回線は使用されていないからである。図21(B)の例では、合計帯域は、10000(エントリLE01)+1000(エントリLE02)+1000(エントリLE03)=12000(Kbps)となる。CPU410は、合計帯域からクロック周波数を求めて転送性能制御情報として検索処理部310の性能制御部319および転送処理部320の性能制御部329へ送信する。合計帯域からクロック周波数を求める方法は図14で説明した通りである。
【0055】
転送性能下降処理における大まかな処理の流れは、図15とほぼ同様である。しかし、第2実施例においては、ステップS60の後、回線帯域テーブル423の更新を行う点において第1実施例と異なる。CPU410は、内部読出部321から受信したパケット1000がFINパケットである場合に、回線帯域テーブル423を更新する。具体的には、まず、パケット1000のTCPヘッダ1400(図7)のうち、FINフラグ1478の値が1である場合に、受信パケットがFINパケットであると判断する。次にCPU410は、当該パケットの出力回線番号LNを検索する(詳細は図19、i、iiで説明した通り)。CPU410は、検索した出力回線番号LNと、回線帯域テーブル423(図21(B))の回線番号LNOとの値が一致するエントリについて、コネクション数LCEフィールドの値から「1」を減ずる。CPU410は、コネクション数LCEフィールド更新後、図15のステップS61以降の処理を行う。
【0056】
このようにすれば、回線毎に帯域幅を増減する大きさを定めることができる。回線帯域テーブルに、回線毎に使用可能な最大帯域を設定しておくことで、TCPコネクションがある(使用している)回線は最大の帯域幅を使用しての通信が可能となり、パケットロスの発生を抑制することができる。また、TCPコネクションがない(使用していない)回線は帯域幅を割り当てないことによって低消費電力を実現することができる。このため、使用されている回線毎に、ルータのパケット転送部の帯域幅を増減させることができる。この結果、ネットワーク中継装置において、パケットロスの発生を抑制しつつ低消費電力を実現することが可能となる。
【0057】
C.第3実施例:
図22は、第3実施例におけるルータ10の概略構成を示す説明図である。図16で示した第2実施例との大きな違いは、制御部400のメモリ420内に、回線帯域テーブル423の代わりに、収容部帯域テーブル425を備えている点だけであり、他の構成は第2実施例とほぼ同じである。
【0058】
図23は、収容部帯域テーブル425の一例を示す説明図である。収容部帯域テーブル425は、回線収容部番号RNOと、帯域RBAと、コネクション数RCEとを含んでいる。帯域RBAフィールドは、第3実施例における帯域の増減幅であり、回線収容部毎に割り当てられている最大帯域が格納される。この設定は、予めルータ10の管理者等によって行われる。コネクション数RCEは、回線収容部毎のTCPコネクションの数である。なお、詳細については後述する。転送性能上昇処理における大まかな処理の流れは、図9と同様である。
【0059】
図24は、第3実施例における帯域検索(図9、ステップS51)の処理手順を示すフローチャートである。CPU410は、図19において説明したステップS200の処理を行ったあと、ステップS200で求めた出力回線番号から、当該回線が収容されている回線収容部200、201の番号を識別する(ステップS300)。この識別処理は、回線と回線収容部との対応関係を保持するテーブル(図示省略)を用いて行うほか、任意の方法を採用することができる。CPU410は、ステップS300で求めた回線収容部番号をキーとして収容部帯域テーブル425を検索する(ステップS301)。CPU410は、ステップS300で求めた回線収容部番号と、収容部帯域テーブル425の回線収容部番号RNOとの値が一致するエントリについて、コネクション数RCEフィールドの値に「1」を加える(ステップS302)。
【0060】
2つのTCPコネクションCO1、CO2がある場合(図20)は、TCPコネクションの確立に使用されている回線は、回線110が2本、回線120が1本、回線130が1本である。回線110は回線収容部LRU#1に収容されている。回線120と回線130は回線収容部LRU#2に収容されている。従って、図23に示すように、回線収容部LRU#1のコネクション数RCEは2(エントリEE01)、回線収容部LRU#2のコネクション数RCEは2(エントリEE02)、回線収容部LRU#3のコネクション数RCEは0(エントリEE03)となる。
【0061】
第3実施例では、合計帯域の計算方法のみ第2実施例と異なる。合計帯域は、収容部帯域テーブル425のコネクション数RCEフィールドの値が1以上であるエントリを抽出し、そのエントリについての、帯域RBAフィールドの値の和により求める。コネクション数RCEフィールドの値が0であれば、その回線収容部に収容されている回線は使用されていないからである。図23の例では、合計帯域は、10000(エントリEE01)+2000(エントリEE02)=12000(Kbps)となる。CPU410は、合計帯域からクロック周波数を求めて転送性能制御情報として検索処理部310の性能制御部319および転送処理部320の性能制御部329へ送信する。合計帯域からクロック周波数を求める方法は図14で説明した通りである。
【0062】
転送性能下降処理における大まかな処理の流れは、図15とほぼ同様である。しかし、第3実施例においては、ステップS60の後、収容部帯域テーブル425の更新を行う点において第2実施例と異なる。CPU410は、内部読出部321から受信したパケット1000FINパケットである場合に、収容部帯域テーブル425を更新する。具体的には、パケット1000のTCPヘッダ1400(図7)のうち、FINフラグ1478の値が1である場合に、受信パケットがFINパケットであると判断する。次にCPU410は、当該パケットの出力回線番号LNを検索する(詳細は図19、i、iiで説明した通り)。その後、CPU410は、検索した回線が収容されている回線収容部の番号を識別する。そして、当該回線収容部の番号と、収容部帯域テーブル425の回線収容部番号RNOとの値が一致するエントリについて、コネクション数RCEフィールドの値から「1」を減ずる。CPU410は、コネクション数RCEフィールド更新後、図15のステップS61以降の処理を行う。
【0063】
このようにすれば、回線収容部毎に帯域幅を増減する大きさを定めることができる。収容部帯域テーブルに、回線収容部毎に使用可能な最大帯域を設定しておくことで、TCPコネクションがある(使用している)回線を収容する回線収容部は最大の帯域幅を使用しての通信が可能となり、パケットロスの発生を抑制することができる。また、TCPコネクションがない(使用していない)回線を収容する回線収容部は帯域幅を割り当てないことによって低消費電力を実現することができる。このため、使用されている回線収容部毎に、ルータのパケット転送部の帯域幅を増減させることができる。この結果、ネットワーク中継装置において、パケットロスの発生を抑制しつつ低消費電力を実現することが可能となる。
【0064】
D.第4実施例:
図25は、第4実施例におけるルータ10の概略構成を示す説明図である。図8で示した第1実施例との大きな違いは、制御部400のメモリ420内に、コネクション帯域テーブル422の代わりに、QoS帯域テーブル426を備えている点だけであり、他の構成は第1実施例とほぼ同じである。
【0065】
図26は、QoS帯域テーブル426の一例を示す説明図である。QoS帯域テーブル426は、送信元IPアドレスQFIPと、送信先IPアドレスQTIPと、送信元ポート番号QFPTと、送信先ポート番号QTPTと、キュー番号QQNと、帯域QBAとを含んでいる。このうち、送信元IPアドレスQFIPと、送信先IPアドレスQTIPと、送信元ポート番号QFPTと、送信先ポート番号QTPTとの組から、TCPコネクションを識別する。キュー番号QQNは、データフローがキューイングされるキュー番号である。なお、「データフロー」とは、一定のルールによってグルーピング可能なデータの集合を意味する。そして、本明細書におけるルールは、「送信元IPアドレス、送信先IPアドレス、送信元ポート番号、送信先ポート番号から識別されるTCPコネクションが同一であること」としている。帯域QBAは、第4実施例における帯域の増減幅である。
【0066】
送信元IPアドレスQFIPと、送信先IPアドレスQTIPと、送信元ポート番号QFPTと、送信先ポート番号QTPTには、どのような値であっても一致するという意味の値「*」を格納することができる。コネクション情報に一致するエントリがQoS帯域テーブル426に無い場合を考慮し、エントリの末尾にはエントリQE03のようなエントリを設けておくことが好ましい。このエントリにおける帯域QBAの値は小さな値に設定しておくことが好ましい。なお、このQoS帯域テーブル426は、パケット転送部300のQoSテーブル312のコピーであることが好ましい。転送性能上昇処理における大まかな処理の流れは、図9と同様である。
【0067】
図27は、第4実施例における帯域検索(図9、ステップS51)の処理手順を示すフローチャートである。ステップS400において、CPU410は、QoS帯域テーブル426を検索して帯域を求める。具体的には、CPU410は、ステートテーブル421に格納したコネクション情報をキーとして、QoS帯域テーブル426を検索する。ここでは、QoS帯域テーブル426のエントリQE01(図26)に一致するため、帯域QBAの値は50である。なお、帯域計算および転送性能下降処理は、第1実施例と同様である。
【0068】
このようにすれば、第1実施例と同様に、ネットワーク中継装置において、パケットロスの発生を抑制しつつ低消費電力を実現することが可能となる。また、第4実施例においては、QoS帯域テーブルを元にしてルータの帯域の増減幅を定めている。このため、QoSサービス品質(例えば、シェーピングやポリシング)を考慮した上で、ルータのパケット転送部の帯域幅を増減させることができる。
【0069】
E.第5実施例:
図28は、第5実施例におけるルータ10の概略構成を示す説明図である。図8で示した第1実施例との大きな違いは、i)制御部400のメモリ420内に、コネクション帯域テーブル422の代わりに、統計帯域テーブル427を備えている点、ii)転送処理部320内に統計情報部325を備える点であり、他の構成は第1実施例とほぼ同じである。統計情報部325は、各回線収容部(LRU#1〜#3)が受信したパケットの流量等の情報を測定し、CPU410へ送信する。CPU410は、受信した情報から、統計帯域テーブル427を作成する。この処理についての詳細は後述する。
【0070】
図29は、統計帯域テーブル427の一例を示す説明図である。統計帯域テーブル427は、送信元IPアドレスFFIPと、送信先IPアドレスFTIPと、送信元ポート番号FFPTと、送信先ポート番号FTPTと、平均実帯域AVBAと、最大実帯域MXBAとを含んでいる。このうち、送信元IPアドレスFFIPと、送信先IPアドレスFTIPと、送信元ポート番号FFPTと、送信先ポート番号FTPTとの組から、TCPコネクションを識別する。平均実帯域AVBAは、過去に回線収容部200、201が受信したパケットの平均帯域をデータフロー毎に集計したものである。最大実帯域MXBAは、過去に回線収容部200、201が受信したパケットの最大帯域をデータフロー毎に集計したものである。
【0071】
ルータ10の管理者は、平均実帯域AVBAと最大実帯域MXBAのうち、どちらを転送性能上昇処理および転送性能下降処理における帯域の増減幅とするか、予め設定しておく。なお、予め設定するのではなく、帯域の変動に応じて、平均実帯域AVBAと最大実帯域MXBAを流動的に変更しつつ適用する構成としてもよい。例えば、平均実帯域AVBAの値が上昇傾向にあるTCPコネクションについては最大実帯域MXBAを適用し、平均実帯域AVBAの値が下降傾向にあるTCPコネクションについては平均実帯域AVBAを適用する構成としてもよい。転送性能上昇処理における大まかな処理の流れは、図9と同様である。
【0072】
図30は、第5実施例における帯域検索(図9、ステップS51)の処理手順を示すフローチャートである。ステップS500において、CPU410は、統計帯域テーブル427を検索して帯域を求める。具体的には、CPU410は、ステートテーブル421に格納したコネクション情報をキーとして、統計帯域テーブル427を検索する。ここでは、統計帯域テーブル427のエントリFE01(図29)に一致する。このため、転送性能上昇処理および転送性能下降処理において、平均実帯域AVBAを適用する設定がなされている場合は、平均実帯域AVBAは48である。一方、最大実帯域MXBAを適用する設定がなされている場合は、最大実帯域MXBAは123である。なお、帯域計算および転送性能下降処理は、第1実施例と同様である。
【0073】
このようにすれば、第1実施例と同様に、ネットワーク中継装置において、パケットロスの発生を抑制しつつ低消費電力を実現することが可能となる。また、第5実施例においては、統計帯域テーブルを元にしてルータの帯域の増減幅を定めている。このため、データフロー毎の過去のパケット流量(トラフィック量)の統計に基づいて、より適切に、ネットワーク中継装置のパケット転送部の帯域幅を増減させることができる。
【0074】
F.第6実施例:
図31は、第6実施例におけるルータ10の概略構成を示す説明図である。図8、図16、図22、図25、図28で示した第1〜第5実施例との大きな違いは、i)制御部400のメモリ420内に、第1〜第5実施例で説明した全てのテーブル(ステートテーブル421、コネクション帯域テーブル422、回線帯域テーブル423、ルーティングテーブル424、収容部帯域テーブル425、QoS帯域テーブル426、統計帯域テーブル427)を備える点、ii)転送処理部320内に統計情報部325を備える点であり、他の構成は第1実施例とほぼ同じである。これによって、第6実施例におけるルータ10は、第1〜第5実施例で説明した各処理の切り替えを行うことができる。
【0075】
図32は、省電力モード切り替えコマンドの一例を示す説明図である。本実施例においては、第1〜第5実施例をそれぞれ個別の「省電力モード」としている。具体的には、第1実施例をコネクション情報による帯域設定モードとしている。同様に、第2実施例を回線帯域による帯域設定モードと、第3実施例を回線収容部帯域による帯域設定モードと、第4実施例をQoS情報による帯域設定モードと、第5実施例を統計情報による帯域設定モードとしている。第6実施例におけるルータ10は、これらの各モードを切り替えることができる。図32(A)は、省電力モード切り替えコマンドの凡例を示している。この切り替えコマンドは、ルータ10に接続される管理端末90のコンソールから入力する。図32(B)は、省電力モードCTYと、省電力モード名と、コマンド中に使用されるモード値と、実施例との対応を示す表である。図32(C)は、管理端末90のコンソールへ入力する設定コマンドの例である。なお、コマンド入力による処理切り替えではなく、GUIベースでの処理切り替えとしてもよい。例えば、管理用のウェブページ等を設け、当該ウェブページから任意の省電力モードを選択する構成を採用することができる。
【0076】
このようにすれば、第1〜第5実施例と同様に、ネットワーク中継装置において、パケットロスの発生を抑制しつつ低消費電力を実現することが可能となる。また、第6実施例においては、ネットワーク中継装置の管理者が、利用状況に応じた適切な省電力モードを選択することができる。
【0077】
G.第7実施例:
図33は、第7実施例におけるルータ10の概略構成を示す説明図である。図31で示した第6実施例との大きな違いは、制御部400のメモリ420内に省電力モードテーブル428を備えている点であり、他の構成は第6実施例とほぼ同じである。省電力モードテーブル428は、TCPコネクション毎の省電力モードを予め定めるためのテーブルである。
【0078】
図34は、省電力モードテーブル428の一例を示す説明図である。省電力モードテーブル428は、送信元IPアドレスCFIPと、送信先IPアドレスCTIPと、送信元ポート番号CFPTと、送信先ポート番号CTPTと、省電力モードCTYとを含んでいる。このうち、送信元IPアドレスCFIPと、送信先IPアドレスCTIPと、送信元ポート番号CFPTと、送信先ポート番号CTPTとの組から、TCPコネクションを識別する。省電力モードCTYは、適用される省電力モードを示す記号である。なお、図34における省電力モードと識別記号の対応関係は、図32(B)と同様である。
【0079】
この省電力モードテーブル428は、予めルータ10の管理者等によって設定される。送信元IPアドレスCFIPと、送信先IPアドレスCTIPと、送信元ポート番号CFPTと、送信先ポート番号CTPTには、どのような値であっても一致するという意味の値「*」を格納することができる。なお、コネクション情報に一致するエントリが省電力モードテーブル428に無い場合を考慮し、エントリの末尾にはエントリAE05のようなエントリを設けておくことが好ましい。
【0080】
図35は、第7実施例における省電力モード判定の処理手順を示すフローチャートである。CPU410は、コネクション情報をキーとして、省電力モードテーブル428を検索する(ステップS600)。そして、省電力モードCTYに応じたモードの処理を行う(ステップS601)。各省電力モードの処理内容は、第1〜第5実施例で説明した通りであるが、第7実施例においては、転送性能上昇処理の合計帯域の計算方法が第1〜第5実施例と異なる。これについての詳細は後述する。
【0081】
図36は、第7実施例における合計帯域の計算方法の説明に利用するTCPコネクションの例を示す説明図である。図36では、4つのTCPコネクションCO11〜14が確立されている。CO11は、クライアント40からサーバ30へのTCPコネクションである。CO12は、クライアント70からサーバ20へのTCPコネクションである。CO13は、サーバ30からクライアント50へのTCPコネクションである。CO14は、クライアント70からサーバ30へのTCPコネクションである。
【0082】
省電力モードテーブル428が図34のような内容であった場合、図36の各TCPコネクションについての帯域を求めると、以下のようになる。
・CO11:省電力モード=1(図34、エントリAE01)、帯域=50kbps(第1実施例、図11、エントリSE01)
・CO12:省電力モード=2(図34、エントリAE02)、帯域=11000kbps(第2実施例、図18、エントリLE01、LE05)
・CO13:省電力モード=5(図34、エントリAE03)、帯域=250kbps(第5実施例、図29、エントリFE03)
・CO14:省電力モード=3(図34、エントリAE04)、帯域=12000kbps(第3実施例、図23、エントリEE01、EE03)
【0083】
しかし、回線帯域テーブル423における帯域LBAフィールドには、その回線における最大帯域が予め入力されている。収容部帯域テーブル425についても同様である。従って、省電力モードが2、3(第2実施例、第3実施例)により処理が行われるTCPコネクションがある回線もしくは回線収容部については、他のTCPコネクションの有無に関わらず、最大帯域が割り当てられることとなる。このため、回線収容部毎に、下記の規則に従って、最大帯域を越えないように帯域を計算したのち、それらの和によって合計帯域を求める。
【0084】
具体的には、まず、求めた帯域が、下記「省電力モードの分類」のうち、何れに該当するかを調べる。さらに、上記で求めた帯域を当該TCPコネクションが所属する回線収容部毎にグルーピングする。
<省電力モードの分類>
分類ca)TCPコネクション毎に帯域を求めるもの:省電力モード1、4、5
分類cb)回線毎に帯域を求めるもの:省電力モード2
分類cc)回線収容部毎に帯域を求めるもの:省電力モード3
【0085】
次に、回線収容部毎に、以下のステップ1〜3の処理を行う。
ステップ1)分類ccがある場合:合計帯域に、分類ccにより求めた帯域を加算する。分類ca、cbは加算しない。
ステップ2)ステップ1には該当しないが分類cbがある場合:合計帯域に、分類cbにより求めた帯域を加算する。分類cbにより求めた帯域が複数ある場合は、異なる回線である場合にのみ、合計帯域に当該帯域を加算する。分類caは加算しない。
ステップ3)ステップ1、2には該当しないが分類caがある場合:合計帯域に分類caにより求めた帯域を加算する。分類caにより求めた帯域が複数ある場合は、TCPセッションが所属する回線の最大帯域を超えない範囲において、合計帯域に当該帯域を加算する。
上記のルールに従って計算した場合、図36の例における合計帯域は以下のようになる。
10000kbps(回線収容部LRU#1)+300kbps(回線収容部LRU#2)+2000kbps(回線収容部LRU#3)=12300kbps
【0086】
このようにすれば、第1〜第5実施例と同様に、ネットワーク中継装置において、パケットロスの発生を抑制しつつ低消費電力を実現することが可能となる。また、第7実施例においては、TCPコネクション毎に、実施例1〜5記載のいずれかの方法で帯域幅を増減させることができる。この結果、よりきめ細かく、ネットワーク中継装置のパケット転送部の帯域幅を増減させることが可能となる。
【0087】
H.変形例:
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【0088】
H1.変形例1:
上記実施例では、ネットワーク中継装置の一構成例を記載した。しかし、上記実施例において記載した態様に限らず、任意の態様を採用することができる。具体的には、以下に例示するような構成としてもよい。
・ネットワーク中継装置をルータではなく、レイヤ3スイッチとする。
・IPv4だけでなく、IPv6にも対応可能なネットワーク中継装置とする。
・回線収容部および回線の数量を任意に増減させる。
・ハードウェア処理のルータではなく、ソフトウェア処理のルータとする。
【0089】
H2.変形例2:
上記実施例のルータは、転送性能上昇処理と転送性能下降処理との両方を行うものとして記載したが、転送性能上昇処理のみを行う構成としてもよい。
【0090】
H3.変形例3:
上記実施例では、転送性能上昇処理を動作させるためのトリガは、SYNパケットの受信であるものとした。しかし、TCPコネクション確立要求時に端末間でやり取りされるパケットであれば、SYNパケット以外の任意のパケットをトリガとして採用することが可能である。例えば、通信相手方からの応答であるSYN+ACKパケット(図2、ステップS21)をトリガとしてもよい。
【0091】
H4.変形例4:
上記実施例では、転送性能下降処理を動作させるためのトリガは、FINパケットの受信であるものとした。しかし、TCPコネクション切断要求時に端末間でやり取りされるパケットであれば、FINパケット以外の任意のパケットをトリガとして採用することが可能である。例えば、通信相手方からの切断要求であるFINパケット(図2、ステップS61)をトリガとしてもよい。
【図面の簡単な説明】
【0092】
【図1】本発明の一実施例としてのネットワーク中継装置が用いられたネットワークの概略構成を示す説明図である。
【図2】クライアント40とサーバ30が通信する場合におけるルータ10の動作を示すシーケンス図である。
【図3】ルータ10で用いられるパケット1000の構造を示す説明図である。
【図4】装置内ヘッダ1100の構造を示す説明図である。
【図5】イーサネットヘッダ1200の構造を示す説明図である。
【図6】IPヘッダ1300の構造を示す説明図である。
【図7】TCPヘッダ1400の構造を示す説明図である。
【図8】ルータ10の概略構成を示す説明図である。
【図9】転送性能上昇処理の処理手順を示すフローチャートである。
【図10】ステートテーブル421の一例を示す説明図である。
【図11】コネクション帯域テーブル422の一例を示す説明図である。
【図12】第1実施例における帯域検索(図9・ステップS51)の処理手順を示すフローチャートである。
【図13】帯域検索に伴ってステートテーブル421が更新される様子を示す説明図である。
【図14】帯域計算における帯域とクロック周波数との関係を示すグラフである。
【図15】転送性能下降処理の処理手順を示すフローチャートである。
【図16】第2実施例におけるルータ10の概略構成を示す説明図である。
【図17】ルーティングテーブル424の一例を示す説明図である。
【図18】回線帯域テーブル423の一例を示す説明図である。
【図19】第2実施例における帯域検索(図9・ステップS51)の処理手順を示すフローチャートである。
【図20】第2実施例における帯域検索方法の説明に利用するTCPコネクションの例を示す説明図である。
【図21】帯域検索によって更新された回線帯域テーブル423の様子を示す説明図である。
【図22】第3実施例におけるルータ10の概略構成を示す説明図である。
【図23】収容部帯域テーブル425の一例を示す説明図である。
【図24】第3実施例における帯域検索(図9・ステップS51)の処理手順を示すフローチャートである。
【図25】第4実施例におけるルータ10の概略構成を示す説明図である。
【図26】QoS帯域テーブル426の一例を示す説明図である。
【図27】第4実施例における帯域検索(図9・ステップS51)の処理手順を示すフローチャートである。
【図28】第5実施例におけるルータ10の概略構成を示す説明図である。
【図29】統計帯域テーブル427の一例を示す説明図である。
【図30】第5実施例における帯域検索(図9・ステップS51)の処理手順を示すフローチャートである。
【図31】第6実施例におけるルータ10の概略構成を示す説明図である。
【図32】省電力モード切り替えコマンドの一例を示す説明図である。
【図33】第7実施例におけるルータ10の概略構成を示す説明図である。
【図34】省電力モードテーブル428の一例を示す説明図である。
【図35】第7実施例における省電力モード判定の処理手順を示すフローチャートである。
【図36】第7実施例における合計帯域の計算方法の説明に利用するTCPコネクションの例を示す説明図である。
【符号の説明】
【0093】
10…ネットワーク中継装置(ルータ)
20…サーバ
30…サーバ
40…クライアント
50…クライアント
60…クライアント
70…クライアント
90…管理端末
110…回線
120…回線
130…回線
140…回線
150…回線
200…回線収容部
210…装置内ヘッダ付与部
220…回線読出部
230…バッファ
300…パケット転送部
310…検索処理部
311…ルーティングテーブル
313…テーブル検索駆動部
319…性能制御部
320…転送処理部
321…内部読出部
322…ヘッダ書込部
323…パケット読出部
324…パケットメモリ
325…統計情報部
329…性能制御部
400…制御部
410…CPU
420…メモリ
421…ステートテーブル
422…コネクション帯域テーブル
423…回線帯域テーブル
424…ルーティングテーブル
425…収容部帯域テーブル
427…統計帯域テーブル
428…省電力モードテーブル

【特許請求の範囲】
【請求項1】
TCPプロトコルを用いて通信を行う第1の端末と第2の端末との間の伝送路上に配置されるネットワーク中継装置であって、
前記第1の端末と前記第2の端末との間のパケットの転送を行うパケット転送部と、
前記ネットワーク中継装置の各部を制御する制御部と、
を備え、
前記制御部は、
前記第1の端末と前記第2の端末との間のパケットを監視して、前記パケット転送部の帯域幅を広くする転送性能上昇処理および前記パケット転送部の帯域幅を狭くする転送性能下降処理を実行し、この際、前記パケットがTCPコネクション確立要求時のSYNパケットである場合に、予め定められた規則に従って前記転送性能上昇処理を行うか否かを判定するとともに、前記転送性能上昇処理を行うと判定した場合は、前記SYNパケットの受信後、前記TCPコネクション確立要求によるTCPコネクション確立までの間に前記パケット転送部の帯域幅を広くする、ネットワーク中継装置。
【請求項2】
請求項1記載のネットワーク中継装置であって、
前記制御部は、
前記パケットがTCPコネクション切断要求時のFINパケットである場合に、予め定められた規則に従って前記転送性能下降処理を行うか否かを判定するとともに、前記転送性能下降処理を行うと判定した場合は、前記FINパケットの受信をトリガとして前記パケット転送部の帯域幅を狭くする、ネットワーク中継装置。
【請求項3】
請求項1または2記載のネットワーク中継装置であって、
前記転送性能上昇処理および前記転送性能下降処理における前記パケット転送部の帯域の増減幅は、TCPコネクション毎に予め定められた帯域幅によって決定される、ネットワーク中継装置。
【請求項4】
請求項1または2記載のネットワーク中継装置であって、さらに、
外部の端末と接続される複数の回線を備え、
前記転送性能上昇処理および前記転送性能下降処理における前記パケット転送部の帯域の増減幅は、前記回線毎に予め定められた帯域幅によって決定される、ネットワーク中継装置。
【請求項5】
請求項1または2記載のネットワーク中継装置であって、さらに、
外部の端末と接続される複数の回線と、
1つ以上の前記回線をそれぞれ収容する複数の回線収容部と、
を備え、
前記転送性能上昇処理および前記転送性能下降処理における前記パケット転送部の帯域の増減幅は、前記回線収容部毎に予め定められた帯域幅によって決定される、ネットワーク中継装置。
【請求項6】
請求項1または2記載のネットワーク中継装置であって、
前記転送性能上昇処理および前記転送性能下降処理における前記パケット転送部の帯域の増減幅は、QoS情報に従って予め定められた帯域幅によって決定される、ネットワーク中継装置。
【請求項7】
請求項1または2記載のネットワーク中継装置であって、さらに、
データフロー毎の過去の平均パケット流量と、データフロー毎の過去の最大パケット流量とのうちの少なくとも一方を測定する統計情報部を備え、
前記転送性能上昇処理および前記転送性能下降処理における前記パケット転送部の帯域の増減幅は、前記平均パケット流量と、前記最大パケット流量とのうちの少なくとも一方より定まる帯域幅によって決定される、ネットワーク中継装置。
【請求項8】
請求項1または2記載のネットワーク中継装置であって、さらに、
外部の端末と接続される複数の回線と、
1つ以上の前記回線をそれぞれ収容する複数の回線収容部と、
データフロー毎の過去の平均パケット流量と、データフロー毎の過去の最大パケット流量とのうちの少なくとも一方を測定する統計情報部と、
を備え、
前記転送性能上昇処理および前記転送性能下降処理における前記パケット転送部の帯域の増減幅は、
(i)TCPコネクション毎に予め定められた帯域幅と、
(ii)前記回線毎に予め定められた帯域幅と、
(iii)前記回線収容部毎に予め定められた帯域幅と、
(iv)QoS情報に従って予め定められた帯域幅と、
(v)前記平均パケット流量と、前記最大パケット流量とのうちの少なくとも一方より定まる帯域幅と、
のうちのいずれか1つを用いて決定され、前記(i)〜(v)のいずれを用いるかはTCPコネクション毎に予め定められている、ネットワーク中継装置。
【請求項9】
ネットワーク中継装置の制御方法であって、
(a)TCPプロトコルを用いて通信を行う第1の端末と第2の端末との間でパケットを転送する転送工程と、
(b)前記第1の端末と前記第2の端末との間のパケットを監視し、前記パケットがTCPコネクション確立要求時のSYNパケットである場合に、予め定められた規則に従って前記転送工程における帯域幅を広くするか否かを判定するとともに、前記転送工程における帯域幅を広くすると判定した場合は、前記SYNパケットの受信後、前記TCPコネクション確立要求によるTCPコネクション確立までの間に前記転送工程における帯域幅を広くする工程と、
を備える、ネットワーク中継装置の制御方法。
【請求項10】
コンピュータプログラムであって、
TCPプロトコルを用いて通信を行う第1の端末と第2の端末との間でパケットを転送する転送機能と、
前記第1の端末と前記第2の端末との間のパケットを監視し、前記パケットがTCPコネクション確立要求時のSYNパケットである場合に、予め定められた規則に従って前記転送機能における帯域幅を広くするか否かを判定するとともに、前記転送機能における帯域幅を広くすると判定した場合は、前記SYNパケットの受信後、前記TCPコネクション確立要求によるTCPコネクション確立までの間に前記転送機能における帯域幅を広くする機能と、
を備える、コンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate


【公開番号】特開2010−147744(P2010−147744A)
【公開日】平成22年7月1日(2010.7.1)
【国際特許分類】
【出願番号】特願2008−322024(P2008−322024)
【出願日】平成20年12月18日(2008.12.18)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.イーサネット
【出願人】(504411166)アラクサラネットワークス株式会社 (315)
【Fターム(参考)】