ネットワーク中継装置
【課題】ネットワーク中継装置におけるマルチキャスト転送において、パケット送信部で輻輳が発生するとパケット受信部で宛先に輻輳が発生している送信部を含むパケットを止めることになり、他のパケットにまで遅延の影響が出てしまう。
【解決手段】本発明では入力部に廃棄閾値書換え回路を備え、パケットのスイッチングを行なうクロスバースイッチから受け取った輻輳情報をもとに、宛先に輻輳が起きている出力部を含むパケットの廃棄閾値を小さく書き換える。廃棄閾値を小さくすると該当のパケットを廃棄されやすくなり、他のパケットに及ぼす遅延の影響を小さくすることができる。
【解決手段】本発明では入力部に廃棄閾値書換え回路を備え、パケットのスイッチングを行なうクロスバースイッチから受け取った輻輳情報をもとに、宛先に輻輳が起きている出力部を含むパケットの廃棄閾値を小さく書き換える。廃棄閾値を小さくすると該当のパケットを廃棄されやすくなり、他のパケットに及ぼす遅延の影響を小さくすることができる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワーク中継装置に係り、特に輻輳を制御してデータ転送を行なうネットワーク中継装置に関する。
【背景技術】
【0002】
近年の情報通信ネットワークでは情報の通信量が急増していることから、ネットワーク中継装置においても高速かつ大容量のデータ処理が求められている。特に1つの地点からの情報を複数の地点へ転送するマルチキャスト転送は、ネットワーク中継装置内部では、1つの回線から入力されたデータを複数の回線に複製して出力する。このため、複製によってさらに増大した大量のデータを高効率で処理を行なう必要がある。
【0003】
特許文献1は、マルチキャストパケットに許容される入力レートを低下させることなく、処理の負荷を低減することができるパケットスイッチを開示する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2002−208938号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は複数の送受信部を備えるパケット転送装置において、一つの受信部で受信したパケットを一つまたは複数の送信部へ転送するパケット転送のスイッチングを行なう際に、送信部の輻輳状況に応じて受信部の転送制御を行なう技術であり、特にマルチキャスト転送に有効な技術である。
【0006】
図3のパケット転送装置において、あるパケット転送部50から転送されるパケットをサブクロスバースイッチ(SSW)60からクロスバースイッチ(CSW)70を介して別のSSW60へスイッチングを行なう際、一つのSSW60にパケットが集中するとSSW60の通信容量を超えてパケット転送が遅延する輻輳が発生する。特に、CSW70が一つのパケットを複数のSSW60にコピーして転送するマルチキャスト転送は、輻輳が発生しやすい。
【0007】
図1を参照して、輻輳に対処するための従来方法を説明する。図1において、パケット転送装置900は、パケット転送受信部50(I)と、サブクロスバースイッチ受信部60(I)と、クロスバースイッチ70と、サブクロスバースイッチ送信部60(E)と、パケット転送送信部50(E)とから構成される。なお、パケット転送受信部50(I)と、サブクロスバースイッチ受信部60(I)と、サブクロスバースイッチ送信部60(E)と、パケット転送送信部50(E)とは、それぞれn台である。それぞれを区別するとき、パケット転送受信部50(In)(n=0〜n−1)と記載する。
【0008】
SSW受信部60(I)は、マルチキャスト用SSW送信キュー90と、スケジューラ130とを含む。CSW70は、スイッチング部200と、CSW送信キュー110と、輻輳監視回路120と、輻輳情報書換え回路140と、輻輳情報生成回路100とを含む。ここで、CSW送信キュー110と、輻輳監視回路120と、輻輳情報書換え回路140とは、それぞれn台である。SSW送信部60(E)は、ヘッダ解析回路150を含む。
【0009】
パケット転送装置900におけるスイッチングでは、輻輳が起こっているSSW送信部60(E)宛のパケットはSSW受信部60(I)で待機させ、輻輳が解消されるまで待つ。図1において、スイッチングを行なうCSW70にある輻輳監視回路120は、担当のCSW送信キュー110で輻輳が起きたことがわかると輻輳情報生成回路100へ輻輳情報を通知する。CSW送信キュー110が輻輳しているということは、いずれかのSSW送信部60(E)が輻輳しているということである。このため、輻輳情報生成回路100は、輻輳が起きているSSW送信部60(E)を表す輻輳情報を生成し、SSW送信部60(E)ごとに存在する輻輳情報書換え回路140へ送る。
【0010】
輻輳情報書換え回路140は、SSW送信部60(E)へ送信するスイッチヘッダの輻輳情報を書き込むフィールドを更新する。一定時間送信するパケットがない場合、輻輳情報書換え回路140は、ダミーパケットを生成しヘッダに輻輳情報を書き込んでSSW送信部60(E)へ送信する。SSW送信部60(E)のヘッダ解析回路150(E)は、スイッチヘッダから輻輳情報を読出し、SSW受信部60(I)へ送信する。
【0011】
SSW受信部60(I)にはCSW70へ転送するパケットを一時的に書き込むSSW送信キュー90があり、スケジューラ130によって管理されている。スケジューラ130は、輻輳情報を受け取ると、輻輳が起こっているSSW送信部60(E)を宛先に含むパケットがSSW送信キュー90の先頭にきた場合は、そのパケットをCSW70へ送信しないようにスケジューリングを行ない、輻輳が解消されるのを待つ。しかし、この方式では図2に示すような問題がある。
【0012】
図2のように、SSW送信部60(E1)で輻輳が発生しているとする。SSW受信部60(I0)では、SSW送信キュー90の先頭のパケット”1”の宛先がSSW送信部60(E0)およびSSW送信部60(E1)であるため、パケット”1”を待機させる。すると、SSW送信キュー90に保持されているパケットが全て待機状態になる。このため、宛先がSSW送信部60(E2)およびSSW送信部60(E3)であるパケット”2”についても、遅延が発生してしまう。つまり、従来方法では輻輳が発生していないSSW送信部宛のみのパケットまで遅延を起こしてしまうという問題がある。
【0013】
その課題は、ユニキャスト転送は、SSW受信部60(I)の送信キューを宛先ごとに分けることで解決できる。しかし、マルチキャスト転送は、宛先が複数存在するため、宛先ごとにキューを分けることができない。この理由から、一般的にマルチキャストパケットは、宛先に関わらず1つのキュー90を使用している。
【0014】
パケット転送装置におけるマルチキャスト転送において、SSW送信部で輻輳が発生するとSSW受信部で宛先に輻輳が発生している送信部を含むパケットを止めることになり、他のパケット転送にまで遅延の影響が出てしまう。
【課題を解決するための手段】
【0015】
本発明ではマルチキャスト転送において輻輳が起きているSSW出力ポート宛を含むパケットの廃棄閾値を下げることにより、パケットを廃棄されやすくする。その結果、輻輳していない宛先のみのマルチキャストパケットが転送されやすくなる。廃棄閾値とは、パケット転送部において付加されるスイッチヘッダについており、SSW受信部において送信キューのキュー長が廃棄閾値より小さい場合にはバッファに送信し、送信キューのキュー長が廃棄閾値より大きい場合にはそのパケットを廃棄するという値である。キュー長とはキュー内の在留パケット数である。つまり、廃棄閾値を小さくするということは、キューに送信されずに廃棄される確率が高くなるということである。
【0016】
上述した課題は、パケットの転送を行なう複数のパケット転送部と、パケットのスイッチングを行なうクロスバースイッチ部と、パケット転送部とパケットを送受信し、クロスバースイッチの入出力を制御する複数のスイッチを有するネットワーク中継装置において、クロスバースイッチは、検出した輻輳情報をスイッチに送信し、輻輳情報を受信したスイッチは、スイッチヘッダの廃棄閾値を書き換えるネットワーク中継装置により、達成できる。
【0017】
また、パケットの転送を行なう複数のパケット転送部と、パケットのスイッチングを行なうクロスバースイッチ部と、パケット転送部とパケットを送受信し、クロスバースイッチの入出力を制御する複数のスイッチを有するネットワーク中継装置において、クロスバースイッチは、検出した輻輳情報をスイッチヘッダに書き込んでスイッチに送信し、輻輳情報を受信したスイッチは、スイッチヘッダの廃棄閾値を書き換えるネットワーク中継装置により、達成できる。
【発明の効果】
【0018】
マルチキャスト転送において、輻輳が起きている出力ポート宛を含むパケットの廃棄閾値を下げ、パケットが破棄されやすくする。それによって、輻輳が起きているポートを含まないパケットの遅延の影響を小さくすることができる。
【図面の簡単な説明】
【0019】
【図1】従来のパケット転送装置のブロック図である。
【図2】輻輳を説明するパケット転送装置主要部のブロック図である。
【図3】ネットワーク中継装置のブロック図である。
【図4】ネットワーク中継装置の詳細ブロック図である。
【図5】輻輳監視回路のブロック図である。
【図6】輻輳情報のシリアル転送を説明する図である。
【図7】パケットのヘッダフォーマットを説明する図である。
【図8】廃棄閾値書換え回路と廃棄判定回路のブロック図である。
【図9】パケット廃棄のフローを説明する図である。
【図10】SSWの処理を説明するフローチャートである。
【図11】ネットワーク中継装置の処理を説明するフローチャートである。
【図12】他のネットワーク中継装置の詳細ブロック図である。
【図13】さらに他のネットワーク中継装置の詳細ブロック図である。
【図14】パケットの他のヘッダフォーマットを説明する図である。
【図15】他のネットワーク中継装置の処理を説明するフローチャートである。
【図16】他のネットワーク中継装置のブロック図である。
【発明を実施するための形態】
【0020】
以下、本発明の実施の形態について、実施例を用い図面を参照しながら詳細に説明する。なお、実質同一部位には同じ参照番号を振り、説明は繰り返さない。
【実施例1】
【0021】
図3を参照して、ネットワーク中継装置の構成を説明する。図3において、ネットワーク中継装置100は、n式の回線20と、n台のパケット転送ユニット30と、スイッチングユニット40と、CPU10とで構成される。パケット転送ユニット30は、パケット転送部50と、SSW60とを有する。スイッチングユニット40は、CSW70を含む。
【0022】
パケット転送部50は、回線20から受信したパケットにスイッチヘッダを付加および削除する。SSW60は、廃棄閾値を参照してパケットの廃棄を行なう。スイッチヘッダにはスイッチング情報と廃棄閾値が含まれる。CSW70は、パケットのスイッチヘッダのスイッチング情報を元にスイッチングを行なう。CPU10は、全てのパケット転送ユニット30とスイッチングユニット40を監視制御する。CPU10は、CPUバス170を介してパケット転送ユニット30とスイッチングユニット40と接続されている。SSW60とCSW70は、データパス180および輻輳通知専用線190を介して接続されている。
【0023】
図4を参照して、ネットワーク中継装置の詳細を説明する。図4において、ネットワーク中継装置1000は、パケット転送受信部50(I)と、SSW受信部60A(I)と、CSW70と、SSW送信部60(E)と、パケット転送送信部50(E)とから構成されている。パケット転送受信部50(I)、SSW受信部60A(I)、SSW送信部60(E)、パケット転送送信部50(E)は、それぞれn台で構成されている。パケット転送受信部50(I)とパケット転送送信部50(E)を合わせるとパケット転送部50に相当する。また、SSW受信部60A(I)とSSW送信部60(E)を合わせるとSSW60に相当する。SSW受信部60A(I)は、廃棄閾値書換え回路80と、廃棄判定回路160と、マルチキャスト用SSW送信キュー90とを含む。CSW70は、スイッチング部200と、CSW送信キュー110と、輻輳監視回路120と、輻輳情報生成回路100とを含む。CSW送信キュー110、輻輳監視回路120は、それぞれn台で構成されている。
【0024】
パケット転送受信部50(I)は、パケットにパケットの解析結果や装置の状態から生成したスイッチヘッダを付加する。廃棄閾値書換え回路80は、スイッチヘッダの廃棄閾値フィールドを書き換える。SSW送信キュー90は、CSW70へ送信するパケットを一時的に保存する。廃棄判定回路160は、スイッチヘッダの廃棄閾値フィールドとSSW送信キュー90のキュー長を比較してパケットをSSW送信キュー90へ送るか廃棄するかを決定する。スイッチング部200は、スイッチヘッダのスイッチング情報を参照して出力先を決定し、パケットをスイッチングする。CSW送信キュー110は、SSW送信部へ送信するパケットを一時的に保存する。輻輳監視回路120は、CSW送信キューを監視する。輻輳情報生成回路100は、輻輳監視回路120から送られた情報を基に輻輳情報を生成する。SSW送信部60(E)は、パケットのスイッチヘッダを解析し、パケット転送部へ送信するかどうかを決定する。パケット転送受信部50(E)は、パケットのスイッチヘッダを削除する。また、SSW受信部60(I)とCSW70の間に輻輳情報を通知するために輻輳通知専用線190を設ける。
【0025】
図5を参照して、輻輳検出を説明する。図5において、CSW70の輻輳監視装置120は、キュー長レジスタ121と、輻輳基準値レジスタ122と、大小比較器123とで構成されている。キュー長レジスタ121は、キュー長を管理する。輻輳基準値レジスタ122は、輻輳発生と判断するための基準値を管理する。
【0026】
輻輳監視装置120は、CSW送信キュー110のキュー長を監視しており、キュー長レジスタ121に記憶している。キュー長レジスタ121と輻輳基準値レジスタ122を比較し、キュー長レジスタ121のほうが大きい場合に転送先のSSW送信部60(E)で輻輳発生と判断し、各CSW送信キューに対応する複数の輻輳情報生成回路100へ輻輳情報を通知する。
【0027】
輻輳情報生成回路100は、輻輳監視回路120の情報を元に輻輳情報を生成し、輻輳通知専用線190で全てのSSW受信部60(I)の廃棄閾値書換え回路80へ輻輳情報を転送する。輻輳情報は、輻輳しているSSW送信部60(E)を表すビットマップで表現する。
【0028】
図6を参照して、輻輳情報ビットマップのシリアル信号転送を説明する。図6において、輻輳情報生成回路100は、各送信キュー110の輻輳情報を記憶しているビットマップテーブルを有する。輻輳情報生成回路100は、テーブル情報をマルチプレクサ101により順に選択して廃棄閾値書換え回路80に転送する。廃棄閾値書換え回路80は、デマルチプレクサ102により輻輳情報をビットマップテーブルで再現する。これにより輻輳情報をシリアル信号で転送することができる。
【0029】
ここでは輻輳情報をビットマップとして生成し、シリアル信号として送受信しているが、輻輳情報は輻輳が起こっているSSWの番号で表してもよい。また、輻輳通知専用線を複数本設けてパラレル信号で転送してもよい。
【0030】
輻輳情報を受け取ったSSW受信部60(I)の廃棄閾値書換え回路80は、パケットのスイッチヘッダの宛先と輻輳情報を比較する。スイッチヘッダの宛先が輻輳しているSSW送信部60(E)を含んでいる場合、廃棄閾値書換え回路80は、パケットのスイッチヘッダの廃棄閾値フィールドの値を下げる。一方、含まない場合、廃棄閾値書換え回路80は、そのまま廃棄判定回路へパケットを送信する。
【0031】
図7を参照して、廃棄閾値と宛先SSWの情報を含んだスイッチヘッダを説明する。図7において、パケットは、ヘッダ608と、データ609とで構成されている。ヘッダ608には、廃棄閾値610と、宛先ビットマップ611とを含む。
【0032】
廃棄閾値フィールド610は、2ビットである。2ビットで0〜3の4レベルを表すことができ、0に近いほど廃棄されやすく、3に近いほど廃棄されにくい。また、宛先ビットマップを8個のSSW分の8ビットで表している。宛先ビットマップは宛先SSWに対応するビットを1と表現している。宛先ビットマップ600で示される場合はSSW#7宛のユニキャストパケットである。宛先ビットマップ601の場合はSSW#1および#5宛のマルチキャストパケット、宛先ビットマップ602の場合はSSW#4および#5および#6および#7宛のマルチキャストパケット、宛先ビットマップ603の場合はSSW#3宛のユニキャストパケットとなる。
【0033】
図4に戻って、廃棄判定回路160は、パケットのスイッチングヘッダの廃棄閾値を読み取り、SSW送信キューのキュー長と比較する。廃棄閾値よりキュー長が小さい場合、廃棄判定回路160は、パケットをSSW送信キューに送信する。一方、廃棄閾値よりキュー長が大きい場合、廃棄判定回路160は、パケットをSSW送信キューに送信せずに廃棄する。
【0034】
図8を参照して、輻輳閾値の書換えおよびパケット廃棄を説明する。図8において、廃棄閾値書換え回路80は、レジスタ802と、比較器803と、減算器804とで構成される。レジスタ802は、輻輳情報ビットマップを格納する。比較器803は、輻輳情報ビットマップと宛先ビットマップを比較する。減算器804は、廃棄閾値の値を小さくする。
【0035】
比較器803は、スイッチヘッダの宛先ビットマップ801と輻輳情報ビットマップ802を比較する。宛先に輻輳が起きているSSWを含むとき、減算器804は、廃棄閾値800から1だけ減算して廃棄閾値805に書換える。宛先に輻輳が起きているSSWを含まないとき、減算器804は、廃棄閾値800をそのまま廃棄閾値805とする。
【0036】
廃棄閾値判定回路160は、比較器807と、判定器808とで構成される。比較器807は、廃棄閾値とキュー長を比較する。判定器808は、廃棄を判断する。
【0037】
比較器807は、書換え後の廃棄閾値805とSSW送信キュー90のキュー長806を比較する。キュー長806が廃棄閾値805より小さいとき、判定器808は、パケットをSSW送信キュー90へ送信する。一方、キュー長806が廃棄閾値805より大きいとき、判定器808は、パケットを廃棄する。
【0038】
図9を参照して、廃棄閾値書換えおよび廃棄のフローを説明する。図9において、輻輳が起こっているSSWのフィールドが1となるような輻輳情報ビットマップ700を用いている。輻輳情報ビットマップ700よりSSW#1で輻輳が発生していることが判明した場合、廃棄閾値書換え回路80は、スイッチヘッダの宛先ビットマップ701からSSW#1宛を含むかどうかを判定する。含む場合、廃棄閾値書換え回路80は、該当のパケットの廃棄閾値702の値を小さく書き換える。図9ではパケット1および2が該当するので、廃棄閾値書換え回路80は、パケット1および2の廃棄閾値の値を1だけ小さくする。
【0039】
廃棄判定回路160は、SSW送信キュー90のキュー長703を常に監視している。廃棄判定回路160は、パケットをSSW送信キュー90に送信するときにパケットの廃棄閾値702と比較する。廃棄閾値702がキュー長703より大きいパケットについて、廃棄判定回路160は、SSW送信キュー90に送信する。一方、廃棄判定回路160は、廃棄閾値702がキュー長703以下のパケットについては廃棄する。
【0040】
図9では、パケット1および2について、廃棄判定回路160は、廃棄閾値がキュー長以下のため廃棄する。一方、廃棄判定回路160は、パケット0および3についてはSSW送信キューへ送信する。上述した説明では、廃棄閾値の減算は常に1だけとしたが、宛先と輻輳が起きているSSWの一致している数を数えて、その一致している数の分だけ廃棄閾値を減算してもよい。
【0041】
図10を参照して、SSW受信部での処理を説明する。図10において、の流れを図10に示す。ステップ300において、SSW受信部60A(I)は、入力された輻輳情報を廃棄閾値書換え回路80へ送る。ステップ301において、廃棄閾値書換え回路80は、スイッチヘッダの宛先ビットマップを参照する。ステップ302において、廃棄閾値書換え回路80は、宛先に輻輳が起こっているSSWの宛先を含むかどうかを判定し、含む場合はステップ303へ、含まない場合はステップ304へ進む。ステップ303において、廃棄閾値書換え回路80は、廃棄閾値の値を小さく書き換えてステップ304へ進む。ステップ304において、廃棄判定回路160は、SSW送信キュー90のキュー長を参照する。ステップ305において、廃棄判定回路160は、スイッチヘッダの廃棄閾値とキュー長を比較し、キュー長が廃棄閾値より小さければステップ306へ進みパケットをSSW送信キューへ送信し、大きければステップ307へ進みパケットを廃棄して、終了する。
【0042】
図11を参照して、実施例1の全体の処理の流れを説明する。図11において、ステップ400において、CSW70の輻輳監視回路120は、CSW送信キュー110のキュー長を監視しており、キュー長があらかじめ決められた基準値を超えると(YES)、ステップ401へ進み対応するSSW受信部60(I)で輻輳が発生していると判断し、輻輳情報生成回路100へ輻輳発生を通知する。ステップ402において、輻輳情報生成回路100は、輻輳の通知を受け取るとどのSSWで輻輳が起きているかを表す輻輳情報ビットマップを生成し、輻輳通知専用線140を用いて全てのSSW受信部60(I)へと送信する。ステップ403において、輻輳情報ビットマップを受信した廃棄閾値書換え回路80が、輻輳の起きているSSWを宛先に含むパケットの廃棄閾値を小さく書き換える。ステップ404において、廃棄判定回路160は、パケットの廃棄閾値とSSW送信キュー90のキュー長を比較し、キュー長が廃棄閾値より小さければステップ405へ進みパケットをSSW送信キューへ送信し、大きければステップ406へ進みパケットを廃棄する。
これにより、輻輳が起きているSSW宛先を含むパケットは、SSW送信キューで廃棄されやすくなり、装置全体として輻輳による遅延の影響を小さくすることができる。
【実施例2】
【0043】
図12を参照して、実施例2のネットワーク中継装置1000Aを説明する。図12において、ネットワーク中継装置1000Aの輻輳情報は、既存のCPUバス170を使ってSSW受信部に通知される。ネットワーク中継装置1000Aは、パケット転送受信部50(I)と、SSW受信部60A(I)と、CSW70Aと、SSW送信部60(E)と、パケット転送送信部50(E)と、CPU130とを有する。パケット転送受信部50(I)とパケット転送送信部50(E)を合わせるとパケット転送部50に、SSW受信部60A(I)とSSW送信部60(E)を合わせるとSSW60に相当する。パケット転送受信部50(I)は、パケットにパケットの解析結果や装置の状態から生成したスイッチヘッダを付加する。SSW受信部60A(I)は、スイッチヘッダの廃棄閾値フィールドを書き換える廃棄閾値書換え回路80と、CSWへ送信するパケットを一時的に保存するSSW送信キュー90と、スイッチヘッダの廃棄閾値フィールドとSSW送信キューのキュー長を比較してパケットをSSW送信キューへ送るか廃棄するかを決定する廃棄判定回路160を有する。CSW70Aは、スイッチング情報を参照して出力先を決定しパケットをスイッチングするスイッチング部200と、SSW送信部へ送信するパケットを一時的に保存するCSW送信キュー110と、CSW送信キューを監視する輻輳監視回路120と、輻輳監視回路120から送られた情報を下に輻輳情報を生成する輻輳情報生成回路100Aと、輻輳情報を格納するための輻輳情報格納バッファ210とを有する。SSW送信部60(E)は、パケットのスイッチヘッダを解析し、パケット転送部へ送信するかどうかを決定する。パケット転送受信部50(E)は、パケットのスイッチヘッダを削除する。CPU130は、全てのSSWとCSWを監視する。
【0044】
輻輳発生を知る方法は実施例1と同じであるが、輻輳情報生成回路100Aは、輻輳情報を生成すると輻輳情報格納バッファ210にその輻輳情報を書き込む。CPU10は、定期的に輻輳情報格納バッファ210にアクセスし、書き込まれている輻輳情報を読み取り、CPUバスで各SSW受信部へと通知する。SSW受信部60A(I)が輻輳情報を処理する方法は、実施例1と同じである。
【実施例3】
【0045】
図13を参照して、実施例3のネットワーク中継装置1000Bを説明する。図13において、ネットワーク中継装置1000Bは、そのCSW70Bの送信キュー110の出力に輻輳情報書換え回路140を設ける。また、SSW送信部60A(E)にヘッダ解析回路150を備える。
【0046】
輻輳情報生成回路100Bは、輻輳監視回路120から送られた情報を下に輻輳情報を生成する。輻輳情報生成回路100Bは、輻輳情報をヘッダ解析回路150に送信する。輻輳情報書換え回路140は、スイッチヘッダの輻輳情報フィールドの値を書き換える。ヘッダ解析回路150は、パケットのスイッチヘッダを解析する。ヘッダ解析回路150は、輻輳情報を取り出し、パケット転送送信部50(E)へ送信するかどうかを決定する。
【0047】
輻輳発生を知る方法は実施例1と同じであるが、輻輳情報生成回路100Bは、輻輳情報を生成するとそれぞれのSSWごとに存在する輻輳情報書換え回路140へ送信する。各輻輳情報書換え回路140は、担当のSSW宛のスイッチヘッダの輻輳情報フィールドを更新する。あらかじめ設定した時間担当のSSW宛のパケットが流れない場合、輻輳情報書換え回路140は、ダミーパケットを生成し、スイッチヘッダの輻輳情報フィールドに輻輳情報を書き込んで転送する。パケットがSSW送信部60A(E)へ転送されると、ヘッダ解析回路150は、ヘッダから輻輳情報を読出しSSW受信部60A(I)へ転送する。SSW受信部60A(I)が輻輳情報を処理する方法は実施例1と同じである。
【0048】
CSW70ネットワーク中継装置1000BのCSW70からSSW送信部60A(E)へ送信されるデータのヘッダに輻輳情報のフィールドを設ける。図14を参照して、輻輳情報のフィールドを設けたヘッダを説明する。図14において、図7との対比から明らかなように、ヘッダ608に輻輳情報612が追加されている。また、CSW70のスイッチング部200でスイッチングが行なわれた後に宛先ビットマップを使用しない場合は、輻輳情報のフィールド612は宛先ビットマップのフィールド611と共有してもよい。
【0049】
図15を参照して、ネットワーク中継装置1000Bの輻輳によるフレーム廃棄処理を説明する。図15において、ネットワーク中継装置1000Bは、CSW送信キューのキュー長が基準を超えているか判断する(S501)。YESのとき、ネットワーク中継装置1000Bは、CSW内で輻輳発生を判断する(S502)。ネットワーク中継装置1000Bは、輻輳情報ビットマップを作成する(S503)。ネットワーク中継装置1000Bは、各SSWに関して送信するパケットが一定期間内にあるか判定する(S504)。YESのとき、ネットワーク中継装置1000Bは、輻輳情報ビットマップを送信パケットのパケットヘッダに書き込む(S504)。ステップ503でNOのとき、ネットワーク中継装置1000Bは、ダミーパケットを生成し、輻輳情報ビットマップをダミーパケットのパケットヘッダに書き込む(S505)。ステップ504またはステップ505のあと、SSW送信部60A(E)は、パケットヘッダより輻輳情報ビットマップを取り出し、SSW受信部60A(I)へ送信する(S506)。ネットワーク中継装置1000Bは、輻輳情報ビットマップより、輻輳が起きているSSWを宛先に含むパケットヘッダの廃棄閾値を小さく書き換える(S507)。ネットワーク中継装置1000Bは、廃棄閾値がSSW送信キューのキュー長より小さいか判定する(S508)。YESのとき、ネットワーク中継装置1000Bは、対象フレームをSSW送信キューへ送信して(S509)、終了する。ステップ508でNOのとき、ネットワーク中継装置1000Bは、対象フレームを廃棄して(S510)、終了する。
【実施例4】
【0050】
図16を参照して、CSW70を複数個に、CPU10を2個に拡張したパケット転送装置1000Cを説明する。図16において、ネットワーク中継装置1000Cは、複数の回線20と複数のパケット転送ユニット31と複数のスイッチングユニット41と2つのCPU10で構成される。
【0051】
図16のパケット転送ユニット31は、図3のパケット転送ユニット30に加えて、CPUバス170(0)またはCPUバス170(1)のいずれかを選択するバス選択部220を有する。SSW60は、複数のCSW70のうち、動作中の1つのCSW70を選択してパケットデータを転送する。
【0052】
図16のスイッチングユニット41は、図3のスイッチングユニット40に加えて、CPUバス170(0)またはCPUバス170(1)のいずれかを選択するバス選択部221を有する。
【0053】
さらに、CPU100(0)とCPU100(1)は、それぞれ2つのCPUバス170(0)とCPUバス170(1)を介して、それぞれの複数のパケット転送ユニット31と複数のスイッチングユニット41に接続されている。
【0054】
CPU100(0)とCPU100(1)は、いずれか1つが現用系として動作し、ネットワーク中継装置全体を監視、制御を行なう。他方は、現用系がなんらかの原因で動作不能となった場合に備えて予備系として動作する。
【0055】
2つのスイッチングユニット41は、一方を現用系としてスイッチング処理を行ない、他方は予備系として待機させる方式をとることもできる。
【0056】
また、図16のネットワーク中継装置1000Cが、k個のスイッチングユニット41を有する場合は、k−1個のスイッチングユニット41を現用系としてスイッチング処理を行ない、1個のスイッチングユニットは、k−1個のスイッチングユニット41の予備系として待機させることもできる。
【0057】
さらに、図16のネットワーク中継装置が、k個のスイッチングユニット41を有する場合は、k個のすべてのスイッチングユニット41を現用系としてスイッチング処理を行ない、i個のスイッチングユニット41が動作不可能になった場合には、k−i個のスイッチングユニット41で動作を継続させるなど、さまざまな動作形態をとることがきる。
【0058】
さらに、図16のネットワーク中継装置は、パケット転送ユニット31がn個、スイッチングユニットがk個の場合は、n×k本のデータバス180を有し、SSW60(0)〜SSW60(n−1)とCSW70(0)〜CSW70(k−1)を任意の組み合わせで接続してもよい。
【実施例5】
【0059】
実施例4のネットワーク中継装置は、図16の構成図にさらに、パケット転送ユニット31がn個、スイッチングユニットがk個、n×k本の輻輳情報通知専用線190(図示されていない)を有し、SSW60(0)〜SSW60(n−1)とCSW70(0)〜CSW70(k−1)を任意の組み合わせで接続する。
CSW70における輻輳情報の生成およびSSW60への輻輳情報の転送方法は実施例1と同様である。
【0060】
実施例5では複数のCSW70からの輻輳情報が1つのSSW60へ転送される。SSW60に有する輻輳情報ビットマップ802に輻輳情報を格納する際に、複数のCSW70からの輻輳情報をビット毎にORする、あるいは任意の演算を行なった結果を格納することによって、複数のCSW70の輻輳情報を輻輳情報ビットマップ802に反映させることができる。
【0061】
また、SSW60に複数の輻輳情報ビットマップ802を備え、それぞれを複数のCSW70の情報を格納することも可能である。例えば、k個のCSW70(0)からCSW70(k−1)に対応して、k個の輻輳情報ビットマップ802(0)から輻輳情報ビットマップ802(k−1)を備える。この場合はSSW60にさらに複数の比較器803(0)から比較器803(k−1)を備え、あて先ビットマップ801と複数の輻輳情報ビットマップ802を比較し、複数の比較結果により減算器804での廃棄閾値の減数に反映させることも可能である。あて先ビットマップ801が輻輳情報ビットマップ802(0)のみの輻輳しているSSWを含んでいた場合は、廃棄閾値(書換え後)805は廃棄閾値(書換え前)800から1減じた値とし、あて先ビットマップ801が輻輳情報ビットマップ802(0)の輻輳しているSSWを含んでおり、輻輳情報ビットマップ802(1)の輻輳しているSSWも含んでいる場合には廃棄閾値(書換え後)は廃棄閾値(書換え前)から2減じた値とする、などの様々方式でとることができる。
【0062】
実施例5の輻輳情報の転送方法を実施例2のように、CPUバス170を用いることも可能であり、この実施例を実施例6とする。
【実施例6】
【0063】
実施例6では、図16のネットワーク転送装置における複数のCSW70から複数のSSW60への輻輳情報の転送を実施例2と同様にCPU10(0)およびCPUバス170(0)または、CPU10(1)およびCPUバス170(1)のどちらかを用いて転送する。
【0064】
SSW60において、複数のCSW70からの輻輳情報を用いて廃棄閾値を書き換える動作は実施例5と同様である。実施例5の輻輳情報の転送方法を実施例3のように、スイッチヘッダの輻輳情報フィールドを用いることも可能であり、この実施例を実施例6とする。
【0065】
実施例6では、図16のネットワーク転送装置における複数のCSW70から複数のSSW60への輻輳情報の転送を実施例3と同様に、スイッチヘッダの輻輳情報フィールドを用いて転送する。
【0066】
SSW60において、複数のCSW70からの輻輳情報を用いて廃棄閾値を書き換える動作は実施例5と同様である。
【符号の説明】
【0067】
10…CPU、20…回線、30…パケット転送ユニット、31…パケット転送ユニット、40…スイッチングユニット、41…スイッチングユニット、50…パケット転送部、60…サブクロスバースイッチ(SSW)、70…クロスバースイッチ(CSW)、80…廃棄閾値書換え回路、90…マルチキャスト用SSW送信キュー、100…輻輳情報生成回路、101…マルチプレクサ、102…デマルチプレクサ、110…CSW送信キュー、120…輻輳監視回路、121…キュー長レジスタ、122…輻輳基準値レジスタ、123…大小比較器、130…スケジューラ、140…輻輳情報書換え回路、150…ヘッダ解析回路、160…廃棄判定回路、170…CPUバス、180…データバス、190…輻輳通知専用線、200…スイッチング部、210…輻輳情報格納バッファ、220…バス選択部、600…宛先ビットマップ例1、601…宛先ビットマップ例2、602…宛先ビットマップ例3、603…宛先ビットマップ例4、604…輻輳情報ビットマップ例1、605…輻輳情報ビットマップ例1、606…輻輳情報ビットマップ例1、607…輻輳情報ビットマップ例1、608…スイッチヘッダ部、609…データ部、610…廃棄閾値フィールド、611…宛先ビットマップフィールド、612…輻輳情報フィールド、700…輻輳情報ビットマップ、701…宛先ビットマップ、702…廃棄閾値、703…SSW送信キューキュー長、800…廃棄閾値(書換え前)、801…宛先ビットマップ、802…輻輳情報ビットマップ、803…比較器、804…減算器、805…廃棄閾値(書換え後)、806…SSW送信キューキュー長、807…比較器、808…判定器、900…パケット転送装置、1000…ネットワーク中継装置。
【技術分野】
【0001】
本発明は、ネットワーク中継装置に係り、特に輻輳を制御してデータ転送を行なうネットワーク中継装置に関する。
【背景技術】
【0002】
近年の情報通信ネットワークでは情報の通信量が急増していることから、ネットワーク中継装置においても高速かつ大容量のデータ処理が求められている。特に1つの地点からの情報を複数の地点へ転送するマルチキャスト転送は、ネットワーク中継装置内部では、1つの回線から入力されたデータを複数の回線に複製して出力する。このため、複製によってさらに増大した大量のデータを高効率で処理を行なう必要がある。
【0003】
特許文献1は、マルチキャストパケットに許容される入力レートを低下させることなく、処理の負荷を低減することができるパケットスイッチを開示する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2002−208938号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は複数の送受信部を備えるパケット転送装置において、一つの受信部で受信したパケットを一つまたは複数の送信部へ転送するパケット転送のスイッチングを行なう際に、送信部の輻輳状況に応じて受信部の転送制御を行なう技術であり、特にマルチキャスト転送に有効な技術である。
【0006】
図3のパケット転送装置において、あるパケット転送部50から転送されるパケットをサブクロスバースイッチ(SSW)60からクロスバースイッチ(CSW)70を介して別のSSW60へスイッチングを行なう際、一つのSSW60にパケットが集中するとSSW60の通信容量を超えてパケット転送が遅延する輻輳が発生する。特に、CSW70が一つのパケットを複数のSSW60にコピーして転送するマルチキャスト転送は、輻輳が発生しやすい。
【0007】
図1を参照して、輻輳に対処するための従来方法を説明する。図1において、パケット転送装置900は、パケット転送受信部50(I)と、サブクロスバースイッチ受信部60(I)と、クロスバースイッチ70と、サブクロスバースイッチ送信部60(E)と、パケット転送送信部50(E)とから構成される。なお、パケット転送受信部50(I)と、サブクロスバースイッチ受信部60(I)と、サブクロスバースイッチ送信部60(E)と、パケット転送送信部50(E)とは、それぞれn台である。それぞれを区別するとき、パケット転送受信部50(In)(n=0〜n−1)と記載する。
【0008】
SSW受信部60(I)は、マルチキャスト用SSW送信キュー90と、スケジューラ130とを含む。CSW70は、スイッチング部200と、CSW送信キュー110と、輻輳監視回路120と、輻輳情報書換え回路140と、輻輳情報生成回路100とを含む。ここで、CSW送信キュー110と、輻輳監視回路120と、輻輳情報書換え回路140とは、それぞれn台である。SSW送信部60(E)は、ヘッダ解析回路150を含む。
【0009】
パケット転送装置900におけるスイッチングでは、輻輳が起こっているSSW送信部60(E)宛のパケットはSSW受信部60(I)で待機させ、輻輳が解消されるまで待つ。図1において、スイッチングを行なうCSW70にある輻輳監視回路120は、担当のCSW送信キュー110で輻輳が起きたことがわかると輻輳情報生成回路100へ輻輳情報を通知する。CSW送信キュー110が輻輳しているということは、いずれかのSSW送信部60(E)が輻輳しているということである。このため、輻輳情報生成回路100は、輻輳が起きているSSW送信部60(E)を表す輻輳情報を生成し、SSW送信部60(E)ごとに存在する輻輳情報書換え回路140へ送る。
【0010】
輻輳情報書換え回路140は、SSW送信部60(E)へ送信するスイッチヘッダの輻輳情報を書き込むフィールドを更新する。一定時間送信するパケットがない場合、輻輳情報書換え回路140は、ダミーパケットを生成しヘッダに輻輳情報を書き込んでSSW送信部60(E)へ送信する。SSW送信部60(E)のヘッダ解析回路150(E)は、スイッチヘッダから輻輳情報を読出し、SSW受信部60(I)へ送信する。
【0011】
SSW受信部60(I)にはCSW70へ転送するパケットを一時的に書き込むSSW送信キュー90があり、スケジューラ130によって管理されている。スケジューラ130は、輻輳情報を受け取ると、輻輳が起こっているSSW送信部60(E)を宛先に含むパケットがSSW送信キュー90の先頭にきた場合は、そのパケットをCSW70へ送信しないようにスケジューリングを行ない、輻輳が解消されるのを待つ。しかし、この方式では図2に示すような問題がある。
【0012】
図2のように、SSW送信部60(E1)で輻輳が発生しているとする。SSW受信部60(I0)では、SSW送信キュー90の先頭のパケット”1”の宛先がSSW送信部60(E0)およびSSW送信部60(E1)であるため、パケット”1”を待機させる。すると、SSW送信キュー90に保持されているパケットが全て待機状態になる。このため、宛先がSSW送信部60(E2)およびSSW送信部60(E3)であるパケット”2”についても、遅延が発生してしまう。つまり、従来方法では輻輳が発生していないSSW送信部宛のみのパケットまで遅延を起こしてしまうという問題がある。
【0013】
その課題は、ユニキャスト転送は、SSW受信部60(I)の送信キューを宛先ごとに分けることで解決できる。しかし、マルチキャスト転送は、宛先が複数存在するため、宛先ごとにキューを分けることができない。この理由から、一般的にマルチキャストパケットは、宛先に関わらず1つのキュー90を使用している。
【0014】
パケット転送装置におけるマルチキャスト転送において、SSW送信部で輻輳が発生するとSSW受信部で宛先に輻輳が発生している送信部を含むパケットを止めることになり、他のパケット転送にまで遅延の影響が出てしまう。
【課題を解決するための手段】
【0015】
本発明ではマルチキャスト転送において輻輳が起きているSSW出力ポート宛を含むパケットの廃棄閾値を下げることにより、パケットを廃棄されやすくする。その結果、輻輳していない宛先のみのマルチキャストパケットが転送されやすくなる。廃棄閾値とは、パケット転送部において付加されるスイッチヘッダについており、SSW受信部において送信キューのキュー長が廃棄閾値より小さい場合にはバッファに送信し、送信キューのキュー長が廃棄閾値より大きい場合にはそのパケットを廃棄するという値である。キュー長とはキュー内の在留パケット数である。つまり、廃棄閾値を小さくするということは、キューに送信されずに廃棄される確率が高くなるということである。
【0016】
上述した課題は、パケットの転送を行なう複数のパケット転送部と、パケットのスイッチングを行なうクロスバースイッチ部と、パケット転送部とパケットを送受信し、クロスバースイッチの入出力を制御する複数のスイッチを有するネットワーク中継装置において、クロスバースイッチは、検出した輻輳情報をスイッチに送信し、輻輳情報を受信したスイッチは、スイッチヘッダの廃棄閾値を書き換えるネットワーク中継装置により、達成できる。
【0017】
また、パケットの転送を行なう複数のパケット転送部と、パケットのスイッチングを行なうクロスバースイッチ部と、パケット転送部とパケットを送受信し、クロスバースイッチの入出力を制御する複数のスイッチを有するネットワーク中継装置において、クロスバースイッチは、検出した輻輳情報をスイッチヘッダに書き込んでスイッチに送信し、輻輳情報を受信したスイッチは、スイッチヘッダの廃棄閾値を書き換えるネットワーク中継装置により、達成できる。
【発明の効果】
【0018】
マルチキャスト転送において、輻輳が起きている出力ポート宛を含むパケットの廃棄閾値を下げ、パケットが破棄されやすくする。それによって、輻輳が起きているポートを含まないパケットの遅延の影響を小さくすることができる。
【図面の簡単な説明】
【0019】
【図1】従来のパケット転送装置のブロック図である。
【図2】輻輳を説明するパケット転送装置主要部のブロック図である。
【図3】ネットワーク中継装置のブロック図である。
【図4】ネットワーク中継装置の詳細ブロック図である。
【図5】輻輳監視回路のブロック図である。
【図6】輻輳情報のシリアル転送を説明する図である。
【図7】パケットのヘッダフォーマットを説明する図である。
【図8】廃棄閾値書換え回路と廃棄判定回路のブロック図である。
【図9】パケット廃棄のフローを説明する図である。
【図10】SSWの処理を説明するフローチャートである。
【図11】ネットワーク中継装置の処理を説明するフローチャートである。
【図12】他のネットワーク中継装置の詳細ブロック図である。
【図13】さらに他のネットワーク中継装置の詳細ブロック図である。
【図14】パケットの他のヘッダフォーマットを説明する図である。
【図15】他のネットワーク中継装置の処理を説明するフローチャートである。
【図16】他のネットワーク中継装置のブロック図である。
【発明を実施するための形態】
【0020】
以下、本発明の実施の形態について、実施例を用い図面を参照しながら詳細に説明する。なお、実質同一部位には同じ参照番号を振り、説明は繰り返さない。
【実施例1】
【0021】
図3を参照して、ネットワーク中継装置の構成を説明する。図3において、ネットワーク中継装置100は、n式の回線20と、n台のパケット転送ユニット30と、スイッチングユニット40と、CPU10とで構成される。パケット転送ユニット30は、パケット転送部50と、SSW60とを有する。スイッチングユニット40は、CSW70を含む。
【0022】
パケット転送部50は、回線20から受信したパケットにスイッチヘッダを付加および削除する。SSW60は、廃棄閾値を参照してパケットの廃棄を行なう。スイッチヘッダにはスイッチング情報と廃棄閾値が含まれる。CSW70は、パケットのスイッチヘッダのスイッチング情報を元にスイッチングを行なう。CPU10は、全てのパケット転送ユニット30とスイッチングユニット40を監視制御する。CPU10は、CPUバス170を介してパケット転送ユニット30とスイッチングユニット40と接続されている。SSW60とCSW70は、データパス180および輻輳通知専用線190を介して接続されている。
【0023】
図4を参照して、ネットワーク中継装置の詳細を説明する。図4において、ネットワーク中継装置1000は、パケット転送受信部50(I)と、SSW受信部60A(I)と、CSW70と、SSW送信部60(E)と、パケット転送送信部50(E)とから構成されている。パケット転送受信部50(I)、SSW受信部60A(I)、SSW送信部60(E)、パケット転送送信部50(E)は、それぞれn台で構成されている。パケット転送受信部50(I)とパケット転送送信部50(E)を合わせるとパケット転送部50に相当する。また、SSW受信部60A(I)とSSW送信部60(E)を合わせるとSSW60に相当する。SSW受信部60A(I)は、廃棄閾値書換え回路80と、廃棄判定回路160と、マルチキャスト用SSW送信キュー90とを含む。CSW70は、スイッチング部200と、CSW送信キュー110と、輻輳監視回路120と、輻輳情報生成回路100とを含む。CSW送信キュー110、輻輳監視回路120は、それぞれn台で構成されている。
【0024】
パケット転送受信部50(I)は、パケットにパケットの解析結果や装置の状態から生成したスイッチヘッダを付加する。廃棄閾値書換え回路80は、スイッチヘッダの廃棄閾値フィールドを書き換える。SSW送信キュー90は、CSW70へ送信するパケットを一時的に保存する。廃棄判定回路160は、スイッチヘッダの廃棄閾値フィールドとSSW送信キュー90のキュー長を比較してパケットをSSW送信キュー90へ送るか廃棄するかを決定する。スイッチング部200は、スイッチヘッダのスイッチング情報を参照して出力先を決定し、パケットをスイッチングする。CSW送信キュー110は、SSW送信部へ送信するパケットを一時的に保存する。輻輳監視回路120は、CSW送信キューを監視する。輻輳情報生成回路100は、輻輳監視回路120から送られた情報を基に輻輳情報を生成する。SSW送信部60(E)は、パケットのスイッチヘッダを解析し、パケット転送部へ送信するかどうかを決定する。パケット転送受信部50(E)は、パケットのスイッチヘッダを削除する。また、SSW受信部60(I)とCSW70の間に輻輳情報を通知するために輻輳通知専用線190を設ける。
【0025】
図5を参照して、輻輳検出を説明する。図5において、CSW70の輻輳監視装置120は、キュー長レジスタ121と、輻輳基準値レジスタ122と、大小比較器123とで構成されている。キュー長レジスタ121は、キュー長を管理する。輻輳基準値レジスタ122は、輻輳発生と判断するための基準値を管理する。
【0026】
輻輳監視装置120は、CSW送信キュー110のキュー長を監視しており、キュー長レジスタ121に記憶している。キュー長レジスタ121と輻輳基準値レジスタ122を比較し、キュー長レジスタ121のほうが大きい場合に転送先のSSW送信部60(E)で輻輳発生と判断し、各CSW送信キューに対応する複数の輻輳情報生成回路100へ輻輳情報を通知する。
【0027】
輻輳情報生成回路100は、輻輳監視回路120の情報を元に輻輳情報を生成し、輻輳通知専用線190で全てのSSW受信部60(I)の廃棄閾値書換え回路80へ輻輳情報を転送する。輻輳情報は、輻輳しているSSW送信部60(E)を表すビットマップで表現する。
【0028】
図6を参照して、輻輳情報ビットマップのシリアル信号転送を説明する。図6において、輻輳情報生成回路100は、各送信キュー110の輻輳情報を記憶しているビットマップテーブルを有する。輻輳情報生成回路100は、テーブル情報をマルチプレクサ101により順に選択して廃棄閾値書換え回路80に転送する。廃棄閾値書換え回路80は、デマルチプレクサ102により輻輳情報をビットマップテーブルで再現する。これにより輻輳情報をシリアル信号で転送することができる。
【0029】
ここでは輻輳情報をビットマップとして生成し、シリアル信号として送受信しているが、輻輳情報は輻輳が起こっているSSWの番号で表してもよい。また、輻輳通知専用線を複数本設けてパラレル信号で転送してもよい。
【0030】
輻輳情報を受け取ったSSW受信部60(I)の廃棄閾値書換え回路80は、パケットのスイッチヘッダの宛先と輻輳情報を比較する。スイッチヘッダの宛先が輻輳しているSSW送信部60(E)を含んでいる場合、廃棄閾値書換え回路80は、パケットのスイッチヘッダの廃棄閾値フィールドの値を下げる。一方、含まない場合、廃棄閾値書換え回路80は、そのまま廃棄判定回路へパケットを送信する。
【0031】
図7を参照して、廃棄閾値と宛先SSWの情報を含んだスイッチヘッダを説明する。図7において、パケットは、ヘッダ608と、データ609とで構成されている。ヘッダ608には、廃棄閾値610と、宛先ビットマップ611とを含む。
【0032】
廃棄閾値フィールド610は、2ビットである。2ビットで0〜3の4レベルを表すことができ、0に近いほど廃棄されやすく、3に近いほど廃棄されにくい。また、宛先ビットマップを8個のSSW分の8ビットで表している。宛先ビットマップは宛先SSWに対応するビットを1と表現している。宛先ビットマップ600で示される場合はSSW#7宛のユニキャストパケットである。宛先ビットマップ601の場合はSSW#1および#5宛のマルチキャストパケット、宛先ビットマップ602の場合はSSW#4および#5および#6および#7宛のマルチキャストパケット、宛先ビットマップ603の場合はSSW#3宛のユニキャストパケットとなる。
【0033】
図4に戻って、廃棄判定回路160は、パケットのスイッチングヘッダの廃棄閾値を読み取り、SSW送信キューのキュー長と比較する。廃棄閾値よりキュー長が小さい場合、廃棄判定回路160は、パケットをSSW送信キューに送信する。一方、廃棄閾値よりキュー長が大きい場合、廃棄判定回路160は、パケットをSSW送信キューに送信せずに廃棄する。
【0034】
図8を参照して、輻輳閾値の書換えおよびパケット廃棄を説明する。図8において、廃棄閾値書換え回路80は、レジスタ802と、比較器803と、減算器804とで構成される。レジスタ802は、輻輳情報ビットマップを格納する。比較器803は、輻輳情報ビットマップと宛先ビットマップを比較する。減算器804は、廃棄閾値の値を小さくする。
【0035】
比較器803は、スイッチヘッダの宛先ビットマップ801と輻輳情報ビットマップ802を比較する。宛先に輻輳が起きているSSWを含むとき、減算器804は、廃棄閾値800から1だけ減算して廃棄閾値805に書換える。宛先に輻輳が起きているSSWを含まないとき、減算器804は、廃棄閾値800をそのまま廃棄閾値805とする。
【0036】
廃棄閾値判定回路160は、比較器807と、判定器808とで構成される。比較器807は、廃棄閾値とキュー長を比較する。判定器808は、廃棄を判断する。
【0037】
比較器807は、書換え後の廃棄閾値805とSSW送信キュー90のキュー長806を比較する。キュー長806が廃棄閾値805より小さいとき、判定器808は、パケットをSSW送信キュー90へ送信する。一方、キュー長806が廃棄閾値805より大きいとき、判定器808は、パケットを廃棄する。
【0038】
図9を参照して、廃棄閾値書換えおよび廃棄のフローを説明する。図9において、輻輳が起こっているSSWのフィールドが1となるような輻輳情報ビットマップ700を用いている。輻輳情報ビットマップ700よりSSW#1で輻輳が発生していることが判明した場合、廃棄閾値書換え回路80は、スイッチヘッダの宛先ビットマップ701からSSW#1宛を含むかどうかを判定する。含む場合、廃棄閾値書換え回路80は、該当のパケットの廃棄閾値702の値を小さく書き換える。図9ではパケット1および2が該当するので、廃棄閾値書換え回路80は、パケット1および2の廃棄閾値の値を1だけ小さくする。
【0039】
廃棄判定回路160は、SSW送信キュー90のキュー長703を常に監視している。廃棄判定回路160は、パケットをSSW送信キュー90に送信するときにパケットの廃棄閾値702と比較する。廃棄閾値702がキュー長703より大きいパケットについて、廃棄判定回路160は、SSW送信キュー90に送信する。一方、廃棄判定回路160は、廃棄閾値702がキュー長703以下のパケットについては廃棄する。
【0040】
図9では、パケット1および2について、廃棄判定回路160は、廃棄閾値がキュー長以下のため廃棄する。一方、廃棄判定回路160は、パケット0および3についてはSSW送信キューへ送信する。上述した説明では、廃棄閾値の減算は常に1だけとしたが、宛先と輻輳が起きているSSWの一致している数を数えて、その一致している数の分だけ廃棄閾値を減算してもよい。
【0041】
図10を参照して、SSW受信部での処理を説明する。図10において、の流れを図10に示す。ステップ300において、SSW受信部60A(I)は、入力された輻輳情報を廃棄閾値書換え回路80へ送る。ステップ301において、廃棄閾値書換え回路80は、スイッチヘッダの宛先ビットマップを参照する。ステップ302において、廃棄閾値書換え回路80は、宛先に輻輳が起こっているSSWの宛先を含むかどうかを判定し、含む場合はステップ303へ、含まない場合はステップ304へ進む。ステップ303において、廃棄閾値書換え回路80は、廃棄閾値の値を小さく書き換えてステップ304へ進む。ステップ304において、廃棄判定回路160は、SSW送信キュー90のキュー長を参照する。ステップ305において、廃棄判定回路160は、スイッチヘッダの廃棄閾値とキュー長を比較し、キュー長が廃棄閾値より小さければステップ306へ進みパケットをSSW送信キューへ送信し、大きければステップ307へ進みパケットを廃棄して、終了する。
【0042】
図11を参照して、実施例1の全体の処理の流れを説明する。図11において、ステップ400において、CSW70の輻輳監視回路120は、CSW送信キュー110のキュー長を監視しており、キュー長があらかじめ決められた基準値を超えると(YES)、ステップ401へ進み対応するSSW受信部60(I)で輻輳が発生していると判断し、輻輳情報生成回路100へ輻輳発生を通知する。ステップ402において、輻輳情報生成回路100は、輻輳の通知を受け取るとどのSSWで輻輳が起きているかを表す輻輳情報ビットマップを生成し、輻輳通知専用線140を用いて全てのSSW受信部60(I)へと送信する。ステップ403において、輻輳情報ビットマップを受信した廃棄閾値書換え回路80が、輻輳の起きているSSWを宛先に含むパケットの廃棄閾値を小さく書き換える。ステップ404において、廃棄判定回路160は、パケットの廃棄閾値とSSW送信キュー90のキュー長を比較し、キュー長が廃棄閾値より小さければステップ405へ進みパケットをSSW送信キューへ送信し、大きければステップ406へ進みパケットを廃棄する。
これにより、輻輳が起きているSSW宛先を含むパケットは、SSW送信キューで廃棄されやすくなり、装置全体として輻輳による遅延の影響を小さくすることができる。
【実施例2】
【0043】
図12を参照して、実施例2のネットワーク中継装置1000Aを説明する。図12において、ネットワーク中継装置1000Aの輻輳情報は、既存のCPUバス170を使ってSSW受信部に通知される。ネットワーク中継装置1000Aは、パケット転送受信部50(I)と、SSW受信部60A(I)と、CSW70Aと、SSW送信部60(E)と、パケット転送送信部50(E)と、CPU130とを有する。パケット転送受信部50(I)とパケット転送送信部50(E)を合わせるとパケット転送部50に、SSW受信部60A(I)とSSW送信部60(E)を合わせるとSSW60に相当する。パケット転送受信部50(I)は、パケットにパケットの解析結果や装置の状態から生成したスイッチヘッダを付加する。SSW受信部60A(I)は、スイッチヘッダの廃棄閾値フィールドを書き換える廃棄閾値書換え回路80と、CSWへ送信するパケットを一時的に保存するSSW送信キュー90と、スイッチヘッダの廃棄閾値フィールドとSSW送信キューのキュー長を比較してパケットをSSW送信キューへ送るか廃棄するかを決定する廃棄判定回路160を有する。CSW70Aは、スイッチング情報を参照して出力先を決定しパケットをスイッチングするスイッチング部200と、SSW送信部へ送信するパケットを一時的に保存するCSW送信キュー110と、CSW送信キューを監視する輻輳監視回路120と、輻輳監視回路120から送られた情報を下に輻輳情報を生成する輻輳情報生成回路100Aと、輻輳情報を格納するための輻輳情報格納バッファ210とを有する。SSW送信部60(E)は、パケットのスイッチヘッダを解析し、パケット転送部へ送信するかどうかを決定する。パケット転送受信部50(E)は、パケットのスイッチヘッダを削除する。CPU130は、全てのSSWとCSWを監視する。
【0044】
輻輳発生を知る方法は実施例1と同じであるが、輻輳情報生成回路100Aは、輻輳情報を生成すると輻輳情報格納バッファ210にその輻輳情報を書き込む。CPU10は、定期的に輻輳情報格納バッファ210にアクセスし、書き込まれている輻輳情報を読み取り、CPUバスで各SSW受信部へと通知する。SSW受信部60A(I)が輻輳情報を処理する方法は、実施例1と同じである。
【実施例3】
【0045】
図13を参照して、実施例3のネットワーク中継装置1000Bを説明する。図13において、ネットワーク中継装置1000Bは、そのCSW70Bの送信キュー110の出力に輻輳情報書換え回路140を設ける。また、SSW送信部60A(E)にヘッダ解析回路150を備える。
【0046】
輻輳情報生成回路100Bは、輻輳監視回路120から送られた情報を下に輻輳情報を生成する。輻輳情報生成回路100Bは、輻輳情報をヘッダ解析回路150に送信する。輻輳情報書換え回路140は、スイッチヘッダの輻輳情報フィールドの値を書き換える。ヘッダ解析回路150は、パケットのスイッチヘッダを解析する。ヘッダ解析回路150は、輻輳情報を取り出し、パケット転送送信部50(E)へ送信するかどうかを決定する。
【0047】
輻輳発生を知る方法は実施例1と同じであるが、輻輳情報生成回路100Bは、輻輳情報を生成するとそれぞれのSSWごとに存在する輻輳情報書換え回路140へ送信する。各輻輳情報書換え回路140は、担当のSSW宛のスイッチヘッダの輻輳情報フィールドを更新する。あらかじめ設定した時間担当のSSW宛のパケットが流れない場合、輻輳情報書換え回路140は、ダミーパケットを生成し、スイッチヘッダの輻輳情報フィールドに輻輳情報を書き込んで転送する。パケットがSSW送信部60A(E)へ転送されると、ヘッダ解析回路150は、ヘッダから輻輳情報を読出しSSW受信部60A(I)へ転送する。SSW受信部60A(I)が輻輳情報を処理する方法は実施例1と同じである。
【0048】
CSW70ネットワーク中継装置1000BのCSW70からSSW送信部60A(E)へ送信されるデータのヘッダに輻輳情報のフィールドを設ける。図14を参照して、輻輳情報のフィールドを設けたヘッダを説明する。図14において、図7との対比から明らかなように、ヘッダ608に輻輳情報612が追加されている。また、CSW70のスイッチング部200でスイッチングが行なわれた後に宛先ビットマップを使用しない場合は、輻輳情報のフィールド612は宛先ビットマップのフィールド611と共有してもよい。
【0049】
図15を参照して、ネットワーク中継装置1000Bの輻輳によるフレーム廃棄処理を説明する。図15において、ネットワーク中継装置1000Bは、CSW送信キューのキュー長が基準を超えているか判断する(S501)。YESのとき、ネットワーク中継装置1000Bは、CSW内で輻輳発生を判断する(S502)。ネットワーク中継装置1000Bは、輻輳情報ビットマップを作成する(S503)。ネットワーク中継装置1000Bは、各SSWに関して送信するパケットが一定期間内にあるか判定する(S504)。YESのとき、ネットワーク中継装置1000Bは、輻輳情報ビットマップを送信パケットのパケットヘッダに書き込む(S504)。ステップ503でNOのとき、ネットワーク中継装置1000Bは、ダミーパケットを生成し、輻輳情報ビットマップをダミーパケットのパケットヘッダに書き込む(S505)。ステップ504またはステップ505のあと、SSW送信部60A(E)は、パケットヘッダより輻輳情報ビットマップを取り出し、SSW受信部60A(I)へ送信する(S506)。ネットワーク中継装置1000Bは、輻輳情報ビットマップより、輻輳が起きているSSWを宛先に含むパケットヘッダの廃棄閾値を小さく書き換える(S507)。ネットワーク中継装置1000Bは、廃棄閾値がSSW送信キューのキュー長より小さいか判定する(S508)。YESのとき、ネットワーク中継装置1000Bは、対象フレームをSSW送信キューへ送信して(S509)、終了する。ステップ508でNOのとき、ネットワーク中継装置1000Bは、対象フレームを廃棄して(S510)、終了する。
【実施例4】
【0050】
図16を参照して、CSW70を複数個に、CPU10を2個に拡張したパケット転送装置1000Cを説明する。図16において、ネットワーク中継装置1000Cは、複数の回線20と複数のパケット転送ユニット31と複数のスイッチングユニット41と2つのCPU10で構成される。
【0051】
図16のパケット転送ユニット31は、図3のパケット転送ユニット30に加えて、CPUバス170(0)またはCPUバス170(1)のいずれかを選択するバス選択部220を有する。SSW60は、複数のCSW70のうち、動作中の1つのCSW70を選択してパケットデータを転送する。
【0052】
図16のスイッチングユニット41は、図3のスイッチングユニット40に加えて、CPUバス170(0)またはCPUバス170(1)のいずれかを選択するバス選択部221を有する。
【0053】
さらに、CPU100(0)とCPU100(1)は、それぞれ2つのCPUバス170(0)とCPUバス170(1)を介して、それぞれの複数のパケット転送ユニット31と複数のスイッチングユニット41に接続されている。
【0054】
CPU100(0)とCPU100(1)は、いずれか1つが現用系として動作し、ネットワーク中継装置全体を監視、制御を行なう。他方は、現用系がなんらかの原因で動作不能となった場合に備えて予備系として動作する。
【0055】
2つのスイッチングユニット41は、一方を現用系としてスイッチング処理を行ない、他方は予備系として待機させる方式をとることもできる。
【0056】
また、図16のネットワーク中継装置1000Cが、k個のスイッチングユニット41を有する場合は、k−1個のスイッチングユニット41を現用系としてスイッチング処理を行ない、1個のスイッチングユニットは、k−1個のスイッチングユニット41の予備系として待機させることもできる。
【0057】
さらに、図16のネットワーク中継装置が、k個のスイッチングユニット41を有する場合は、k個のすべてのスイッチングユニット41を現用系としてスイッチング処理を行ない、i個のスイッチングユニット41が動作不可能になった場合には、k−i個のスイッチングユニット41で動作を継続させるなど、さまざまな動作形態をとることがきる。
【0058】
さらに、図16のネットワーク中継装置は、パケット転送ユニット31がn個、スイッチングユニットがk個の場合は、n×k本のデータバス180を有し、SSW60(0)〜SSW60(n−1)とCSW70(0)〜CSW70(k−1)を任意の組み合わせで接続してもよい。
【実施例5】
【0059】
実施例4のネットワーク中継装置は、図16の構成図にさらに、パケット転送ユニット31がn個、スイッチングユニットがk個、n×k本の輻輳情報通知専用線190(図示されていない)を有し、SSW60(0)〜SSW60(n−1)とCSW70(0)〜CSW70(k−1)を任意の組み合わせで接続する。
CSW70における輻輳情報の生成およびSSW60への輻輳情報の転送方法は実施例1と同様である。
【0060】
実施例5では複数のCSW70からの輻輳情報が1つのSSW60へ転送される。SSW60に有する輻輳情報ビットマップ802に輻輳情報を格納する際に、複数のCSW70からの輻輳情報をビット毎にORする、あるいは任意の演算を行なった結果を格納することによって、複数のCSW70の輻輳情報を輻輳情報ビットマップ802に反映させることができる。
【0061】
また、SSW60に複数の輻輳情報ビットマップ802を備え、それぞれを複数のCSW70の情報を格納することも可能である。例えば、k個のCSW70(0)からCSW70(k−1)に対応して、k個の輻輳情報ビットマップ802(0)から輻輳情報ビットマップ802(k−1)を備える。この場合はSSW60にさらに複数の比較器803(0)から比較器803(k−1)を備え、あて先ビットマップ801と複数の輻輳情報ビットマップ802を比較し、複数の比較結果により減算器804での廃棄閾値の減数に反映させることも可能である。あて先ビットマップ801が輻輳情報ビットマップ802(0)のみの輻輳しているSSWを含んでいた場合は、廃棄閾値(書換え後)805は廃棄閾値(書換え前)800から1減じた値とし、あて先ビットマップ801が輻輳情報ビットマップ802(0)の輻輳しているSSWを含んでおり、輻輳情報ビットマップ802(1)の輻輳しているSSWも含んでいる場合には廃棄閾値(書換え後)は廃棄閾値(書換え前)から2減じた値とする、などの様々方式でとることができる。
【0062】
実施例5の輻輳情報の転送方法を実施例2のように、CPUバス170を用いることも可能であり、この実施例を実施例6とする。
【実施例6】
【0063】
実施例6では、図16のネットワーク転送装置における複数のCSW70から複数のSSW60への輻輳情報の転送を実施例2と同様にCPU10(0)およびCPUバス170(0)または、CPU10(1)およびCPUバス170(1)のどちらかを用いて転送する。
【0064】
SSW60において、複数のCSW70からの輻輳情報を用いて廃棄閾値を書き換える動作は実施例5と同様である。実施例5の輻輳情報の転送方法を実施例3のように、スイッチヘッダの輻輳情報フィールドを用いることも可能であり、この実施例を実施例6とする。
【0065】
実施例6では、図16のネットワーク転送装置における複数のCSW70から複数のSSW60への輻輳情報の転送を実施例3と同様に、スイッチヘッダの輻輳情報フィールドを用いて転送する。
【0066】
SSW60において、複数のCSW70からの輻輳情報を用いて廃棄閾値を書き換える動作は実施例5と同様である。
【符号の説明】
【0067】
10…CPU、20…回線、30…パケット転送ユニット、31…パケット転送ユニット、40…スイッチングユニット、41…スイッチングユニット、50…パケット転送部、60…サブクロスバースイッチ(SSW)、70…クロスバースイッチ(CSW)、80…廃棄閾値書換え回路、90…マルチキャスト用SSW送信キュー、100…輻輳情報生成回路、101…マルチプレクサ、102…デマルチプレクサ、110…CSW送信キュー、120…輻輳監視回路、121…キュー長レジスタ、122…輻輳基準値レジスタ、123…大小比較器、130…スケジューラ、140…輻輳情報書換え回路、150…ヘッダ解析回路、160…廃棄判定回路、170…CPUバス、180…データバス、190…輻輳通知専用線、200…スイッチング部、210…輻輳情報格納バッファ、220…バス選択部、600…宛先ビットマップ例1、601…宛先ビットマップ例2、602…宛先ビットマップ例3、603…宛先ビットマップ例4、604…輻輳情報ビットマップ例1、605…輻輳情報ビットマップ例1、606…輻輳情報ビットマップ例1、607…輻輳情報ビットマップ例1、608…スイッチヘッダ部、609…データ部、610…廃棄閾値フィールド、611…宛先ビットマップフィールド、612…輻輳情報フィールド、700…輻輳情報ビットマップ、701…宛先ビットマップ、702…廃棄閾値、703…SSW送信キューキュー長、800…廃棄閾値(書換え前)、801…宛先ビットマップ、802…輻輳情報ビットマップ、803…比較器、804…減算器、805…廃棄閾値(書換え後)、806…SSW送信キューキュー長、807…比較器、808…判定器、900…パケット転送装置、1000…ネットワーク中継装置。
【特許請求の範囲】
【請求項1】
パケットの転送を行なう複数のパケット転送部と、パケットのスイッチングを行なうクロスバースイッチ部と、前記パケット転送部とパケットを送受信し、前記クロスバースイッチの入出力を制御する複数のスイッチを有するネットワーク中継装置において、
前記クロスバースイッチは、検出した輻輳情報を前記スイッチに送信し、
輻輳情報を受信したスイッチは、スイッチヘッダの廃棄閾値を書き換えることを特徴とするネットワーク中継装置。
【請求項2】
請求項1に記載のネットワーク中継装置であって、
前記クロスバースイッチは、前記輻輳情報をCPU線を用いて、前記スイッチに送信することを特徴とするネットワーク中継装置。
【請求項3】
パケットの転送を行なう複数のパケット転送部と、パケットのスイッチングを行なうクロスバースイッチ部と、前記パケット転送部とパケットを送受信し、前記クロスバースイッチの入出力を制御する複数のスイッチを有するネットワーク中継装置において、
前記クロスバースイッチは、検出した輻輳情報をスイッチヘッダに書き込んで前記スイッチに送信し、
輻輳情報を受信したスイッチは、スイッチヘッダの廃棄閾値を書き換えることを特徴とするネットワーク中継装置。
【請求項4】
請求項1または請求項3に記載のネットワーク中継装置であって、
前記スイッチは、送信キューと、廃棄判定部とを備え、
前記廃棄判定部は、前記送信キューのキュー長と、前記廃棄閾値とを比較し、受信したパケットの廃棄閾値が前記キュー長以下のとき、前記受信したパケットを廃棄することを特徴とするネットワーク中継装置。
【請求項1】
パケットの転送を行なう複数のパケット転送部と、パケットのスイッチングを行なうクロスバースイッチ部と、前記パケット転送部とパケットを送受信し、前記クロスバースイッチの入出力を制御する複数のスイッチを有するネットワーク中継装置において、
前記クロスバースイッチは、検出した輻輳情報を前記スイッチに送信し、
輻輳情報を受信したスイッチは、スイッチヘッダの廃棄閾値を書き換えることを特徴とするネットワーク中継装置。
【請求項2】
請求項1に記載のネットワーク中継装置であって、
前記クロスバースイッチは、前記輻輳情報をCPU線を用いて、前記スイッチに送信することを特徴とするネットワーク中継装置。
【請求項3】
パケットの転送を行なう複数のパケット転送部と、パケットのスイッチングを行なうクロスバースイッチ部と、前記パケット転送部とパケットを送受信し、前記クロスバースイッチの入出力を制御する複数のスイッチを有するネットワーク中継装置において、
前記クロスバースイッチは、検出した輻輳情報をスイッチヘッダに書き込んで前記スイッチに送信し、
輻輳情報を受信したスイッチは、スイッチヘッダの廃棄閾値を書き換えることを特徴とするネットワーク中継装置。
【請求項4】
請求項1または請求項3に記載のネットワーク中継装置であって、
前記スイッチは、送信キューと、廃棄判定部とを備え、
前記廃棄判定部は、前記送信キューのキュー長と、前記廃棄閾値とを比較し、受信したパケットの廃棄閾値が前記キュー長以下のとき、前記受信したパケットを廃棄することを特徴とするネットワーク中継装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2012−244348(P2012−244348A)
【公開日】平成24年12月10日(2012.12.10)
【国際特許分類】
【出願番号】特願2011−111491(P2011−111491)
【出願日】平成23年5月18日(2011.5.18)
【出願人】(504411166)アラクサラネットワークス株式会社 (315)
【Fターム(参考)】
【公開日】平成24年12月10日(2012.12.10)
【国際特許分類】
【出願日】平成23年5月18日(2011.5.18)
【出願人】(504411166)アラクサラネットワークス株式会社 (315)
【Fターム(参考)】
[ Back to top ]