通信装置および通信方法
【課題】通信装置においてタグ情報を含むフレームの帯域制御を効率的に行う。
【解決手段】制御部13は、タグ情報を含むフレームを出力するポート11a,11bとフレームの宛先アドレスとポート11a,11bに対して指定された帯域幅との関係から、タグ情報を含むフレームが入力されるポート11に対応付ける閾値情報14aを生成する。受信処理部14は、ポート11から入力されるフレームについて、タグ情報および宛先アドレスに応じた受信レートを測定し、受信レートおよび閾値情報14aから、ポート11a,11bで優先的に廃棄されるフレームを選択する。
【解決手段】制御部13は、タグ情報を含むフレームを出力するポート11a,11bとフレームの宛先アドレスとポート11a,11bに対して指定された帯域幅との関係から、タグ情報を含むフレームが入力されるポート11に対応付ける閾値情報14aを生成する。受信処理部14は、ポート11から入力されるフレームについて、タグ情報および宛先アドレスに応じた受信レートを測定し、受信レートおよび閾値情報14aから、ポート11a,11bで優先的に廃棄されるフレームを選択する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は通信装置および通信方法に関する。
【背景技術】
【0002】
現在、物理的なネットワーク上に複数の論理的なネットワークを形成するネットワークの仮想化技術が利用されている。ネットワークの仮想化技術の1つとして、タグ方式のVLAN(Virtual Local Area Network)がある。タグ方式のVLANでは、フレームに、VLAN識別子(VLAN−ID)を含むタグが挿入される。フレームを転送する通信装置(例えば、レイヤ2スイッチ)は、タグを参照して、異なるVLANのフレームが混在しないようにフレームの転送先を制御する。タグ方式のVLANは、例えば、データセンタのレイヤ2ネットワークにおいて、フレームをユーザ毎に分離するために用いられる。
【0003】
なお、VLANの帯域制御に関し、保守端末がレイヤ2スイッチに各VLANグループの帯域を設定しておく方法が提案されている。また、レイヤ2スイッチにVLANグループ間の帯域の比率を設定し、比率に応じた自動的な帯域制御を可能にする方法も提案されている。また、IP(Internet Protocol)パケットとレイヤ2パケットを1つのスイッチで転送できる通信装置であって、仮想チャネルを管理するテーブルをARP(Address Resolution Protocol)を用いて収集した情報を用いて生成するものが提案されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007−274529号公報
【特許文献2】特開2007−68050号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、通信装置がタグ情報に応じて帯域制御を行う場合、出力ポート側において、タグ情報毎に滞留フレーム量を管理して特定のタグ情報を含むフレームを廃棄するなどの処理を行う方法も考えられる。しかし、出力ポート毎にフレームをタグ情報に応じて分類して処理するようにすることは、処理効率が低いという問題がある。
【0006】
例えば、タグ方式のVLANでは、VLAN−IDが12ビットで表現され、予約済みの2個を除く4094個のVLAN−IDがユーザによって使用され得る。出力ポート側でVLAN毎の処理を行う場合、これらVLAN−IDに対応する複数のバッファや、複数のバッファに格納されたフレームの送信順序を制御するスケジューラなどを、ポート毎に設けることが考えられる。しかし、出力ポート毎にこのような回路を実装すると、出力ポート側の処理負荷の増大、回路規模の増大、消費電力の増加などの問題が生じる。
【0007】
本発明はこのような点に鑑みてなされたものであり、タグ情報を含むフレームの帯域制御を効率的に行うことができる通信装置および通信方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
複数のポートを有し、タグ情報を含むフレームを転送する通信装置が提供される。通信装置は、制御部と受信処理部とを有する。制御部は、タグ情報を含むフレームを出力する第1のポートとフレームの宛先アドレスと第1のポートに対して指定された帯域幅との関係から、タグ情報を含むフレームが入力される第2のポートに対応付ける閾値情報を生成する。受信処理部は、第2のポートから入力されるフレームについて、タグ情報および宛先アドレスに応じた受信レートを測定し、受信レートおよび閾値情報から、第1のポートで優先的に廃棄されるフレームを選択する。
【0009】
また、複数のポートを有する通信装置が実行する通信方法が提供される。タグ情報を含むフレームを出力する第1のポートとフレームの宛先アドレスと第1のポートに対して指定された帯域幅との関係から、タグ情報を含むフレームが入力される第2のポートに対応付ける閾値情報を生成する。第2のポートから入力されるフレームについて、タグ情報および宛先アドレスに応じた受信レートを測定し、受信レートおよび閾値情報から、第1のポートで優先的に廃棄されるフレームを選択する。
【発明の効果】
【0010】
タグ情報を含むフレームの帯域制御を効率的に行うことができる。
【図面の簡単な説明】
【0011】
【図1】第1の実施の形態の通信装置を示す図である。
【図2】第2の実施の形態の通信システムを示す図である。
【図3】フレームのフォーマット例を示す図である。
【図4】スイッチの構造例を示すブロック図である。
【図5】MACアドレステーブルの例を示す図である。
【図6】帯域制御テーブルの例を示す図である。
【図7】測定処理部と制御部の第1の構造例を示すブロック図である。
【図8】受信記録テーブルの例を示す図である。
【図9】廃棄処理部と制御部の構造例を示すブロック図である。
【図10】閾値設定の第1の例を示すフローチャートである。
【図11】受信処理の例を示すフローチャートである。
【図12】送信処理の例を示すフローチャートである。
【図13】廃棄処理部の他の構造例を示すブロック図である。
【図14】測定処理部と制御部の第2の構造例を示すブロック図である。
【図15】閾値設定の第2の例を示すフローチャートである。
【発明を実施するための形態】
【0012】
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の通信装置を示す図である。第1の実施の形態の通信装置10は、タグ情報を含むフレームを転送する。通信装置10としては、例えば、VLANタグを含むMAC(Medium Access Control)フレームを転送するレイヤ2スイッチが挙げられる。通信装置10は、ポート11,11a,11bを含む複数のポート、内部スイッチ12、制御部13、受信処理部14および送信処理部15a,15bを有する。
【0013】
ポート11には、宛先アドレス、送信元アドレスおよびタグ情報を含むフレームが入力される。ポート11a,11bからは、フレームが出力される。ただし、ポート11は出力ポートを兼ねてもよく、ポート11a,11bは入力ポートを兼ねてもよい。タグ情報は、例えば、VLAN−IDを含む。アドレスは、例えば、MACアドレスである。
【0014】
内部スイッチ12は、通信装置10が受信したフレームを出力するポートを、フレームに含まれるタグ情報と宛先アドレスに基づいて決定する。内部スイッチ12は、出力ポートを決定するために用いる転送テーブルを保持していてもよい。また、内部スイッチ12は、フレームの送信元アドレスを当該フレームが入力されたポートと対応付けて転送テーブルに記録することで、フレームの転送先を学習してもよい。
【0015】
制御部13は、タグ情報に応じた帯域制御を実現するため、閾値情報14aを生成して受信処理部14に設定する。閾値情報14aは、例えば、タグ情報と1またはそれ以上の宛先アドレスを含むアドレスグループと閾値の対応関係を示す。制御部13は、タグ情報を含むフレームを出力するポート11a,11bと、ポート11a,11bから出力されるフレームの宛先アドレスと、ポート11a,11bに対して指定された帯域幅との関係から、閾値情報14aを生成する。
【0016】
例えば、制御部13は、ポート11a,11bそれぞれについて、タグ情報に応じて指定された帯域幅を、当該タグ情報を含むフレームが入力される他のポート(ポート11を含む)に配分することで、閾値を算出する。このとき、例えば、ポート11a,11bそれぞれから出力されるフレームに含まれ得る宛先アドレスのグループを、閾値と対応付ける。制御部13は、閾値情報14aを生成するとき、ポート毎の宛先アドレスを特定するため、内部スイッチ12が保持する転送テーブルを参照してもよい。
【0017】
受信処理部14は、ポート11から入力されるフレームに対して、受信レートに応じて廃棄の優先付けを行い、内部スイッチ12に出力する。例えば、受信処理部14は、フレームに、“Red”や“Green”などのカラーを示すカラービットを付加する。このような受信処理部は、フレームが入力されるポート毎に設けられてもよい。例えば、受信処理部14は、ポート11に対応付けられて設けられたものである。
【0018】
ここで、受信処理部14は、タグ情報に応じた帯域制御のため、フレームに含まれるタグ情報および宛先アドレスに応じた受信レートを測定し、測定した受信レートと閾値情報14aとからフレームを優先付ける。例えば、受信処理部14は、閾値情報14aで定義されたタグ情報とアドレスグループの組み合わせ毎に、受信レートを測定する。そして、受信レートが閾値を超えるとき、当該タグ情報とアドレスグループの組み合わせに該当するフレームを、優先的に廃棄するフレームと判定する。閾値情報14aに基づいてフレームを優先付けることは、タグ情報を含むフレームの出力先を入力ポート側で判断することで、出力ポート側でのタグ情報毎のフレーム滞留を予測すると言うこともできる。
【0019】
例えば、ポート11aから、タグ情報#1と宛先アドレスAを含むフレームが出力される可能性があり、ポート11bから、タグ情報#1と宛先アドレスB,Cを含むフレームが出力される可能性があるとする。このとき、ポート11aのタグ情報#1用の帯域幅をポート11に配分することで、タグ情報#1とアドレスグループ{A}と閾値Th1とが対応付けられて、受信処理部14に設定される。また、ポート11bのタグ情報#1用の帯域幅をポート11に配分することで、タグ情報#1とアドレスグループ{B,C}と閾値Th2とが対応付けられて、受信処理部14に設定される。
【0020】
送信処理部15aは、内部スイッチ12からフレームを取得し、ポート11aから送信する。送信処理部15bは、内部スイッチ12からフレームを取得し、ポート11bから送信する。送信処理部15a,15bは、帯域制御のため、フレーム滞留を検出すると、入力ポート側の優先付けの結果に基づいて一部のフレームを廃棄する。例えば、内部スイッチ12から取得したフレームをキューに格納し、キュー長が閾値を超えると、フレーム滞留が解消するまで、“Red”を示すカラービットが付加されたフレームを廃棄する。フレームの優先付けはタグ情報を考慮して行われているため、送信処理部15a,15bは、タグ情報毎にフレームを分類してフレーム滞留を判定しなくてもよい。
【0021】
第1の実施の形態の通信装置10によれば、制御部13によって、タグ情報を含むフレームを出力するポート11a,11bとフレームの宛先アドレスとポート11a,11bに対して指定された帯域幅との関係から、タグ情報を含むフレームが入力されるポート11に対応付ける閾値情報14aが生成される。受信処理部14によって、ポート11から入力されるフレームについて、タグ情報および宛先アドレスに応じた受信レートが測定され、受信レートおよび閾値情報14aから、ポート11a,11bで優先的に廃棄されるフレームが選択される。
【0022】
これにより、入力ポート側で、タグ情報を含むフレームの出力先を考慮して出力ポート側でのタグ情報毎のフレーム滞留を予測し、フレームの優先廃棄を判断できる。そして、出力ポート側で、タグ情報毎にフレームを分類しなくても、入力ポート側での優先廃棄の判断に基づいて、フレームを廃棄することができる。例えば、通信装置10が、VLANをサポートするレイヤ2スイッチである場合、出力ポートそれぞれに対して4094個のキューを設けなくても、VLAN毎の帯域制御が可能となる。このように、タグ情報毎の帯域制御を入力ポート側と出力ポート側で分担して、効率的に行うことが可能となる。よって、出力ポート側の処理負荷、回路規模、消費電力などを抑制できる。
【0023】
[第2の実施の形態]
図2は、第2の実施の形態の通信システムを示す図である。第2の実施の形態の通信システムは、サーバ装置21,22,23を含む複数のサーバ装置、ストレージ装置31,32,33を含む複数のストレージ装置、ルータ41、管理装置42、クライアント装置44およびスイッチ100,100a,100bを含む。この通信システムは、例えば、データセンタのシステムとして実装することができる。
【0024】
サーバ装置21,22,23およびスイッチ100は、サーバラック20に格納されている。ストレージ装置31,32,33およびスイッチ100aは、ストレージラック30に格納されている。この通信システムは、複数のサーバラックを含んでもよく、複数のストレージラックを含んでもよい。ルータ41は、内側(ラック側)と外側(ネットワーク43)側を分離する。ルータ41の内側には、レイヤ2ネットワークが形成される。
【0025】
サーバ装置21,22,23は、複数のユーザが利用できるコンピュータである。サーバ装置21,22,23上では、ユーザ間で情報処理を分離するため、ユーザ毎に1またはそれ以上の仮想マシン(VM:Virtual Machine)が動作する。例えば、仮想マシン毎にオペレーティングシステム(OS:Operating System)が実行される。仮想マシンは、ユーザ間でレイヤ2通信を分離するため、VLANタグを含むフレームを送信する。例えば、ユーザ毎に1またはそれ以上のVLAN−IDが割り当てられる。
【0026】
ストレージ装置31,32,33は、サーバ装置21,22,23上で動作する仮想マシンが利用するデータやプログラムを管理するコンピュータである。ストレージ装置31,32,33は、データやプログラムを記憶するため、HDD(Hard Disk Drive)やSSD(Flash Solid State Drive)などの不揮発性の記憶装置を備えてもよい。
【0027】
ルータ41は、IPレイヤ(レイヤ3)のパケット処理を行う通信装置である。ルータ41は、レイヤ3スイッチやレイヤ3を超える通信処理を行う通信装置であってもよい。ルータ41は、ネットワーク43とスイッチ100bの間でパケットを転送する。
【0028】
管理装置42は、管理者が使用する端末装置としてのコンピュータである。管理装置42は、例えば、スイッチ100,100a,100bの設定を変更するために用いる。
クライアント装置44は、ユーザが使用する端末装置としてのコンピュータである。クライアント装置44は、ネットワーク43を介してルータ41の内側のレイヤ2ネットワークにアクセスし、当該ユーザに割り当てられた仮想マシンに情報処理を実行させる。
【0029】
スイッチ100,100a,100bは、MACレイヤ(レイヤ2)のフレーム処理を行う通信装置である。スイッチ100,100a,100bは、レイヤ2スイッチであってもよい。スイッチ100は、ラックレベルスイッチであり、サーバ装置21,22,23と上位のスイッチ100bの間でフレームを転送する。同様に、スイッチ100aは、ラックレベルスイッチであり、ストレージ装置31,32,33と上位のスイッチ100bの間でフレームを転送する。一方、スイッチ100bは、集約レベルスイッチであり、ルータ41と複数のラックの間でフレームを転送する。
【0030】
スイッチ100,100a,100bは、VLANをサポートする。ここで、サーバ装置21,22,23で多数のユーザの仮想マシンが動作することで多数のVLAN−IDが使用される可能性があるため、スイッチ100,100a,100bは、最大4094個のVLAN−IDを処理できるようにする。また、サーバ装置21,22,23とストレージ装置31,32,33との間は、フレームの伝送量が多いため、スイッチ100,100a,100bは、高レートでフレームを処理できるようにする。なお、スイッチ100,100a,100bは、第1の実施の形態の通信装置10の一例である。
【0031】
図3は、フレームのフォーマット例を示す図である。スイッチ100,100a,100bは、図3に示すようなフレームを転送する。
このフレーム例は、7バイトのプリアンブル、1バイトのSFD(Start Frame Delimiter)、6バイトの宛先MACアドレス、6バイトの送信元MACアドレス、4バイトのVLANタグ、2バイトのタイプまたは長さ、46バイト以上1500バイト以下の可変長のデータ、および、4バイトのFCS(Frame Check Sequence)を含む。
【0032】
プリアンブルは、ビット列“10101010”が7バイト分だけ続いたものである。SFDは、ビット列“10101011”である。プリアンブルおよびSFDを検出することで、フレームの先頭を判断することができる。
【0033】
宛先MACアドレスは、フレームの宛先を示すアドレスであり、送信元MACアドレスは、フレームの送信元を示すアドレスである。MACアドレスは、装置に割り当てられた物理的アドレスでもよいし、仮想マシンに割り当てられた仮想的アドレスでもよい。
【0034】
VLANタグは、VLANを識別するための情報である。VLANタグは、12ビットのVLAN−IDを含む。ユーザには、12ビットで表現できる4096個のVLAN−IDのうち、予約された2個を除く4094個を割り当てることができる。VLAN−IDを参照することで、フレームの伝送範囲が制限される。例えば、フレームをブロードキャストするとき、VLAN−IDによって当該フレームを出力するポートを制限できる。
【0035】
タイプまたは長さのフィールドは、値が1500以下の場合はデータ長を意味し、値がそれを超える場合はタイプを意味する。長さは、当該フィールドに続くデータのデータ長を示す。タイプは、上位プロトコルの種類を示す。タイプの値の例として、0x0800(IP)、0x0806(ARP)、0x8100(802.1Q)などがある。
【0036】
データのフィールドには、上位プロトコルのパケットが格納される。パケット長が64バイト未満の場合は、64バイトになるようにパディング用のビットを詰める。
FCSは、宛先MACアドレス、送信元MACアドレス、タイプまたは長さ、および、データから算出されるCRC(Cyclic Redundancy Check)32の値である。受信側のスイッチでCRC32の値を再計算しCRCと照合することで、ビット誤りを検出できる。
【0037】
図4は、スイッチの構造例を示すブロック図である。スイッチ100は、ポート111,111a,111b,111cを含む複数のポート、ポート112、MACデバイス120,120a,120b,120cを含む複数のMACデバイス、MACスイッチ130および制御部140を有する。スイッチ100a,100bも、スイッチ100と同様のブロック構造によって実現することができる。
【0038】
ポート111,111a,111b,111cは、物理レイヤ(レイヤ1)の通信処理を行い、フレームの信号の送信および受信を行う。ポート111,111a,111b,111cには、ケーブルを介して、サーバ装置21,22,23やスイッチ100bが接続される。例えば、ポート111は、プリアンブルおよびSFCを検出して受信信号から各フレームを切り出し、フレームをMACデバイス120に出力する。また、ポート111は、MACデバイス120から取得したフレームを伝送信号に変換して送信する。
【0039】
ポート112は、スイッチ100の管理に用いるポートである。ポート112には、ケーブルや他の通信装置を介して、管理装置42が接続される。例えば、ポート112は、管理装置42から受信したコマンドを制御部140に出力する。
【0040】
MACデバイス120,120a,120b,120cは、MACレイヤのフレーム処理を行う。MACデバイス120,120a,120b,120cは、ポート111,11a,111b,111cとそれぞれ対応付けて設けられている。MACデバイス120は、フレーム処理部121、測定処理部122、廃棄処理部123を有する。他のMACデバイスも、MACデバイス120と同様のブロック構造によって実現できる。
【0041】
フレーム処理部121は、ポート111で受信されたフレームの誤り検出を、当該フレームに含まれるFCSを用いて行う。そして、誤りが検出されなかったフレームを、測定処理部122に出力する。また、フレーム処理部121は、廃棄処理部123から取得したフレームに、プリアンブル、SFDおよびFCSを付加し、ポート111に出力する。
【0042】
測定処理部122は、フレーム処理部121から取得したフレームの受信レートを測定し、受信レートに応じてフレームにマーキングを行う。受信レートは、VLAN−IDおよび宛先MACアドレスに応じたグループ単位で行う。マーキングでは、“Red”または“Green”を示すカラービットをフレームに付加する。マーキングの判断に用いる閾値情報は、制御部140から通知される。そして、測定処理部122は、マーキングを行ったフレームを、MACスイッチ130に出力する。
【0043】
廃棄処理部123は、MACスイッチ130から取得したフレームをキューに一旦格納し、キューからフレーム処理部121にフレームを順次出力する。廃棄処理部123は、キューに滞留するフレームが多くなる(輻輳が生じる)と、フレームに付加されたカラービットを参照して、MACスイッチ130から到着するフレームの一部を廃棄する。
【0044】
MACスイッチ130は、VLAN−IDと宛先MACアドレスに基づいて、到着したフレームの出力先のポートを判定し、フレームをMACデバイス120,120a,120b,120cに振り分ける。MACスイッチ130は、MACアドレステーブルを記憶するテーブル記憶部131を有する。MACスイッチ130は、MACアドレステーブルから、VLAN−IDと宛先MACアドレスに対応するポートを検索して、出力先を判定する。宛先MACアドレスがMACアドレステーブルに登録されていない場合は、当該VLAN−IDに対応する全てのポートを出力先とする(フラッディング)。
【0045】
また、MACスイッチ130は、MACアドレスの学習を行う。MACスイッチ130は、フレームが到着したポートと当該フレームの送信元MACアドレスとを対応付けて、MACアドレステーブルに登録する。これにより、当該ポートに当該MACアドレスをもつ装置が接続されていることが認識される。一方で、MACスイッチ130は、MACアドレステーブルから、登録されてから一定時間経過したMACアドレスを削除する(エージング)。これは、装置間の接続関係が変更される可能性を考慮した処理である。
【0046】
制御部140は、管理装置42と連携して、スイッチ100を制御する。例えば、制御部140は、フレームのマーキングを制御するための情報を測定処理部122に設定し、フレームの廃棄を制御するための情報を廃棄処理部123に設定する。
【0047】
制御部140は、CPU(Central Processing Unit)141、RAM(Random Access Memory)142およびROM(Read Only Memory)143を有する。CPU141は、ROM143からプログラムやデータを読み出してRAM142に展開し、プログラムに従った処理を行う。また、CPU141は、管理装置42からのコマンドの入力を受け付ける。RAM142は、プログラムやデータを一時的に記憶する揮発性のメモリである。ROM143は、プログラムやデータを記憶する不揮発性のメモリである。ROM143は、書き換え可能なメモリ(例えば、フラッシュメモリ)であってもよい。
【0048】
なお、ポート111,111a,111b,111cは、第1の実施の形態のポート11,11a,11bの一例である。測定処理部122は、第1の実施の形態の受信処理部14の一例である。廃棄処理部123は、第1の実施の形態の送信処理部15a,15bの一例である。MACスイッチ130は、第1の実施の形態の内部スイッチ12の一例である。制御部140は、第1の実施の形態の制御部13の一例である。
【0049】
図5は、MACアドレステーブルの例を示す図である。MACアドレステーブル151は、MACスイッチ130のテーブル記憶部131に記憶されている。MACアドレステーブル151は、ポート番号、VLAN−IDおよびMACアドレスの項目を含む。
【0050】
ポート番号の項目には、各ポートを識別するための識別情報が登録される。VLAN−IDの項目には、ポート番号が示すポートに対応付けられたVLANのVLAN−IDが登録される。各ポートには、フレームの通過を許可する1またはそれ以上のVLANが、管理装置42によって対応付けられている。MACアドレスの項目には、各ポートから出力され得るフレームの宛先MACアドレスのグループが、VLAN毎に登録される。
【0051】
ポート番号およびVLAN−IDの項目には、管理装置42からのコマンドに応じて値が登録される。MACアドレスの項目には、MACスイッチ130によって値が更新される。MACアドレステーブル151には、例えば、ポート番号=1,VLAN−ID=1,MACアドレス=A,Hという情報が登録される。これは、例えばポート111がVLAN#1のフレームの通過を許容し、ポート111にはアドレスAの装置(または仮想マシン)とアドレスHの装置(または仮想マシン)とが接続されていることを示す。
【0052】
図6は、帯域制御テーブルの例を示す図である。帯域制御テーブル152は、制御部140によって生成されて、例えば、RAM142に記憶される。帯域制御テーブル152は、VLAN毎の帯域制御を実現するために用いられる。帯域制御テーブル152は、ポート番号、VLAN−ID、MACアドレス、帯域幅および閾値の項目を含む。
【0053】
ポート番号の項目には、各ポートを識別するための識別情報が登録される。VLAN−IDの項目には、ポート毎に1またはそれ以上のVLAN−IDが登録される。MACアドレスの項目には、MACアドレスのグループが、各ポートのVLAN毎に登録される。帯域幅の項目には、フレームの送信レートの上限値(例えば、ビット毎秒(bps:bit per second)の値)が、各ポートのVLAN毎に登録される。帯域幅は、管理者によって指定される。閾値の項目には、各ポートのVLAN毎に、当該ポートから入力される当該VLANのフレームの受信レートの上限値が登録される。
【0054】
第2の実施の形態では、ポート番号、VLAN−ID、MACアドレスおよび帯域幅の項目には、管理装置42からのコマンドに応じて値が登録される。閾値の項目には、制御部140によって算出された値が登録される。閾値の算出方法の詳細は後述する。なお、VLAN−IDとMACアドレスのグループと閾値の対応関係を示す情報は、制御部140からMACデバイス120,120a,120b,120cに通知される。
【0055】
例えば、帯域制御テーブル152には、ポート番号=3,VLAN−ID=1,閾値=A&H=0.5Mbps;D=0.5Mbpsという情報が登録される。これは、例えばポート111bに入力されるVLAN#1のフレームのうち、宛先MACアドレス=Aのフレームと宛先MACアドレス=Hのフレームの合計の受信レートの閾値が、0,5Mbpsであることを示す。また、宛先MACアドレス=Dのフレームの受信レートの閾値が、0,5Mbpsであることを示す。
【0056】
図7は、測定処理部と制御部の第1の構造例を示すブロック図である。測定処理部122は、測定部124、受信情報記憶部125およびマーキング部126を有する。制御部140は、VLAN設定部144および閾値算出部145を有する。VLAN設定部144と閾値算出部145は、CPU141が実行するプログラムとして実装してもよい。または、VLAN設定部144と閾値算出部145は、FPGA(Field Programmable Gate Array)などの回路で実装してもよい。
【0057】
VLAN設定部144は、管理装置42からコマンドを受け付け、帯域制御テーブル152を生成する。第2の実施の形態では、帯域制御テーブル152のポート番号、VLAN−ID、MACアドレスおよび帯域幅の項目の情報が、管理者から指定される。
【0058】
閾値算出部145は、帯域制御テーブル152のポート番号、VLAN−ID、MACアドレスおよび帯域幅の項目の情報から、閾値の項目の情報を生成し、帯域制御テーブル152に登録する。そして、閾値算出部145は、ポート111についての、VLAN−IDとMACアドレスのグループと閾値の対応情報を、測定処理部122に通知する。
【0059】
測定部124は、フレーム処理部121からフレームを取得し、マーキング部126に出力する。また、測定部124は、閾値算出部145から通知されたVLAN−IDと宛先MACアドレスのグループの組み合わせ毎に、受信レートを測定する。そして、受信レートが閾値算出部145から通知された閾値を超えるか判定し、判定結果に応じて、マーキング部126にフレームのカラー(“Red”または“Green”)を指定する。
【0060】
受信情報記憶部125は、測定部124が受信レートを測定するために用いる受信記録テーブルを記憶する。受信記録テーブルには、VLAN−IDと宛先MACアドレスのグループの組み合わせ毎に、フレームの受信時刻が登録される。受信記録テーブルは、測定部124によって、VLANタグを含むフレームの受信毎に更新される。
【0061】
マーキング部126は、測定部124から取得したフレームに、測定部124から指定されたカラー(“Red”または“Green”)を示すカラービットを付加する。そして、マーキングしたフレームを、MACスイッチ130に出力する。
【0062】
図8は、受信記録テーブルの例を示す図である。受信記録テーブル153は、測定部124によって生成されて、受信情報記憶部125に記憶される。受信記録テーブル153は、VLAN−ID、MACアドレスおよび受信時刻の項目を含む。
【0063】
VLAN−IDの項目には、ポート111に対応付けられたVLANのVLAN−IDが登録される。MACアドレスの項目には、宛先MACアドレスのグループがVLAN毎に登録される。1つの宛先MACアドレスのグループは、1つの出力ポートに対応する。受信時刻の項目には、VLANおよび宛先MACアドレスのグループ毎の最終受信時刻が登録される。受信時刻は、測定部124で算出される。なお、測定部124は、閾値算出部145から通知された閾値を、受信記録テーブル153に登録しておいてもよい。
【0064】
図9は、廃棄処理部と制御部の構造例を示すブロック図である。廃棄処理部123は、キュー127、キューモニタ128および廃棄判定部129を有する。制御部140は、図7で説明したモジュールに加えて廃棄設定部146を有する。廃棄設定部146は、CPU141が実行するプログラムとして実装してもよい。
【0065】
キュー127は、ポート111から送信するフレームを一時的に記憶する。キュー127は、FIFO(First-In First-Out)方式により、先に格納されたフレームから順に、フレーム処理部121にフレームを出力する。ただし、廃棄処理部123は、QoS(Quality of Service)制御のため、優先度の異なる複数のキューを備えていてもよい。
【0066】
キューモニタ128は、キュー127に滞留しているフレームの量(キュー長)を監視し、キュー長を廃棄判定部129に報告する。
廃棄判定部129は、MACスイッチ130からフレームを取得し、フレームのカラービットとキューモニタ128から報告されるキュー長に基づいて、当該フレームを廃棄するか否か判定する。キュー長が閾値を超えるとき、“Red”を示すカラービットが付加されたフレーム(入力ポート側で優先的に廃棄すると認定されたフレーム)を廃棄する。廃棄判定部129は、廃棄しないと判定したフレームを、キュー127に挿入する。
【0067】
廃棄設定部146は、キュー長の閾値を廃棄判定部129に設定する。キュー長の閾値は、例えば、管理者が操作する管理装置42からのコマンドによって指定される。
図10は、閾値設定の第1の例を示すフローチャートである。以下、図10に示す処理をステップ番号に沿って説明する。
【0068】
(ステップS11)VLAN設定部144は、管理装置42からVLAN設定の入力を受け付け、帯域制御テーブル152を生成する。VLAN設定の入力には、ポート番号、VLAN−ID、宛先MACアドレスのグループおよび帯域幅の情報が含まれる。
【0069】
(ステップS12)閾値算出部145は、帯域制御テーブル152に登録されているVLAN−IDの中から、VLAN−IDを1つ選択する。
(ステップS13)閾値算出部145は、出力ポートとして、ステップS12で選択したVLAN−IDが対応付けられているポートを1つ選択する。
【0070】
(ステップS14)閾値算出部145は、帯域制御テーブル152から、ステップS12で選択したVLAN−IDおよびステップS13で選択したポートに対応する帯域幅を特定する。そして、特定した帯域幅を、選択したVLAN−IDが対応付けられている、入力ポートとしての他のポートに配分する。例えば、特定した帯域幅を他のポートの数で割ることで、帯域幅を他のポートに均等に配分する。
【0071】
(ステップS15)閾値算出部145は、ステップS13で、条件に合致する全てのポートを選択したか判断する。全てのポートを選択した場合、処理をステップS16に進める。未選択のポートがある場合、処理をステップS13に進める。
【0072】
(ステップS16)閾値算出部145は、ステップS12で、全てのVLAN−IDを選択したか判断する。全てのVLAN−IDを選択した場合、処理をステップS17に進める。未選択のVLAN−IDがある場合、処理をステップS12に進める。
【0073】
(ステップS17)閾値算出部145は、ステップS14で配分した帯域幅を、各入力ポートの閾値として帯域制御テーブル152に登録する。閾値は、VLAN−IDと出力ポート側の宛先MACアドレスのグループと対応付けられるようにする。閾値算出部145は、閾値の情報をMACデバイス120,120a,120b,120cに通知する。
【0074】
例えば、図6の帯域制御テーブル152の例の場合、ポート111(ポート#1)のVLAN#1に割り当てられた帯域1Mbpsが、VLAN#1に使用される他のポート111b(ポート#2)とポート111c(ポート#3)に均等配分されている。これにより、ポート#2では、ポート#1から出力されることになるVLAN#1のフレーム(宛先MACアドレスがAまたはHのフレーム)の閾値が、0.5Mpbsに設定される。
【0075】
同様に、ポート#2のVLAN#1に割り当てられた帯域1Mbpsが、他のポート#1,#3に均等配分される。ポート#3のVLAN#1に割り当てられた帯域1Mbpsが、他のポート#1,#2に均等配分される。これにより、ポート#1では、ポート#2から出力されることになるフレーム(宛先MACアドレスがDのフレーム)の閾値が、0.5Mpbsに設定される。また、ポート#3から出力されることになるフレーム(宛先MACアドレスがEのフレーム)の閾値が、0.5Mpbsに設定される。
【0076】
なお、以上の説明では、出力ポートの帯域幅を、同一VLANの他の入力ポートに均等配分することとしたが、他の方法で配分するようにしてもよい。例えば、各入力ポートに接続されたサーバ装置上で動作している仮想マシンの数を用いて重み付けして、帯域幅を配分してもよい。動作する仮想マシンの多いサーバ装置が接続されたポートの閾値を大きくすることで、フレームを送信する仮想マシンに公平に帯域を割り当てることができる。サーバ装置21,22,23上で動作している仮想マシンの数および各仮想マシンが使用するVLAN−IDは、例えば、スイッチ100,100a,100bがサーバ装置21,22,23に問い合わせることで知ることができる。
【0077】
図11は、受信処理の例を示すフローチャートである。以下、図11に示す処理をステップ番号に沿って説明する。
(ステップS21)測定部124は、フレーム処理部121から取得したフレームに含まれるVLAN−IDと宛先MACアドレスを確認する。
【0078】
(ステップS22)測定部124は、ステップS21で確認したVLAN−IDが、ポート111に対して登録されているVLAN−IDか判断する。登録されている場合、処理をステップS23に進める。登録されていない場合、不適切なフレームの受信であると判断し、当該フレームを廃棄して処理を終了する。
【0079】
(ステップS23)測定部124は、受信情報記憶部125に記憶された受信記録テーブル153に、ステップS21で確認した宛先MACアドレスが登録されているか判断する。宛先MACアドレスが登録されている場合、処理をステップS24に進める。登録されていない場合、処理をステップS29に進める。
【0080】
(ステップS24)測定部124は、受信記録テーブル153から、ステップS21で確認したVLAN−IDと宛先MACアドレスに対応する前回の受信時刻を検索する。
(ステップS25)測定部124は、VLAN−IDと宛先MACアドレスに対応する受信時刻として、現在時刻を受信記録テーブル153に記録する。
【0081】
(ステップS26)測定部124は、VLAN−IDと宛先MACアドレスに応じた受信レートを算出する。受信レートは、例えば、フレームのデータ長を、現在時刻とステップS24で検索した前回の受信時刻との差(受信間隔)で割ることで算出できる。
【0082】
(ステップS27)測定部124は、ステップS26で算出した受信レートが、閾値算出部145で算出された、VLAN−IDと宛先MACアドレスに応じた閾値を超えるか判断する。受信レートが閾値を超える場合、処理をステップS29に進める。受信レートが閾値以下の場合、処理をステップS28に進める。
【0083】
(ステップS28)測定部124は、フレーム処理部121から取得したフレームをマーキング部126に出力し、カラーとして“Green”をマーキング部126に指定する。マーキング部126は、フレームに“Green”を示すカラービットを付加し、マーキングしたフレームをMACスイッチ130に出力する。
【0084】
(ステップS29)測定部124は、フレーム処理部121から取得したフレームをマーキング部126に出力し、カラーとして“Red”をマーキング部126に指定する。マーキング部126は、フレームに“Red”を示すカラービットを付加し、マーキングしたフレームをMACスイッチ130に出力する。
【0085】
図12は、送信処理の例を示すフローチャートである。以下、図12に示す処理をステップ番号に沿って説明する。
(ステップS31)廃棄判定部129は、MACスイッチ130から取得したフレームに付加されているカラービットを確認する。
【0086】
(ステップS32)廃棄判定部129は、ステップS31で確認したカラービットが“Red”を示しているか判断する。カラービットが“Red”の場合、処理をステップS33に進める。カラービットが“Green”の場合、処理をステップS35に進める。
【0087】
(ステップS33)廃棄判定部129は、キューモニタ128により測定されたキュー長(キュー127に滞留しているフレームの量)を確認する。
(ステップS34)廃棄判定部129は、ステップS33で確認したキュー長が、閾値を超えるか判断する。キュー長が閾値を超える場合、処理をステップS36に進める。キュー長が閾値以下の場合、処理をステップS35に進める。
【0088】
(ステップS35)廃棄判定部129は、MACスイッチ130から取得したフレームをキュー127に挿入する。当該フレームは、キュー127に一時的に保持された後、フレーム処理部121に出力されてポート111から送信される。
【0089】
(ステップS36)廃棄判定部129は、当該フレームを廃棄する。
第2の実施の形態では、入力ポート側でVLAN毎の帯域幅を考慮してフレームをマーキングするため、出力ポート側ではカラービットに基づいて廃棄するフレームを選択すればよく、VLAN毎にフレームを管理しなくてもよい。これに対し、入力ポート側でVLAN毎の帯域幅を考慮しない場合、出力ポート側でVLAN毎にフレームを管理することになる。以下、出力ポート側でVLAN毎にフレームを管理するスイッチの例を挙げる。
【0090】
図13は、廃棄処理部の他の構造例を示すブロック図である。出力ポート側でVLAN毎にフレームを管理する場合、MACスイッチ130とフレーム処理部121の間に、廃棄処理部160が設けられる。廃棄処理部160は、分離部161、キューの集合162(キュー#1〜#4094)およびスケジューラ163を有する。
【0091】
分離部161は、MACスイッチ130から取得したフレームを、フレームに含まれるVLAN−IDに応じてキュー#1〜#4094に振り分ける。キューの集合162は、ユーザに割り当て可能な4094個のVLAN−IDに対応する4094個のキューを含む。各キューには、同一のVLAN−IDを含むフレームが格納される。スケジューラ163は、フレームの送信をスケジューリングする。スケジューラ163は、キュー#1〜#4094から、所定のアルゴリズムに従ってフレームを抽出し、フレーム処理部121に出力する。アルゴリズムとしては、例えば、ラウンドロビン方式が用いられる。
【0092】
前述の廃棄処理部123を用いることで、廃棄処理部160と比べて、キューの数を削減でき回路規模を縮小できる。また、フレームを多数のキューに振り分ける大規模回路を設けなくてよく、また、多数のキューに格納されたフレームをスケジューリングする大規模回路を設けなくてよく、回路規模を縮小できる。
【0093】
第2の実施の形態のスイッチ100,100a,100bによれば、入力ポート側で、VLANタグを含むフレームの出力先を考慮して出力ポート側でのVLAN毎のフレーム滞留を予測し、フレームを優先付けできる。そして、出力ポート側で、VLAN毎にフレームを分類しなくても、入力ポート側での優先付けに基づいてフレームを廃棄することができる。よって、VLAN毎の帯域制御を、入力ポート側と出力ポート側で分担して効率的に行うことができ、処理負荷、回路規模および消費電力を抑制できる。
【0094】
また、出力ポート側のVLAN毎の帯域幅を指定すれば、帯域幅を自動的に入力ポート側に配分して、入力ポート毎の閾値を自動的に算出できる。また、VLANを対応付けるポートの増減に応じて、帯域幅の配分を自動的に再計算できる。よって、管理者の操作負担を軽減でき、また、設定ミスを抑制できる。
【0095】
[第3の実施の形態]
次に、第3の実施の形態を説明する。第2の実施の形態との差異を中心に説明し、同様の事項については説明を省略する。第3の実施の形態のスイッチは、アドレス学習の結果を用いることで、管理者のVLAN設定の負担を軽減する。
【0096】
第3の実施の形態のスイッチは、図4に示した第2の実施の形態のスイッチ100と同様のブロック構造によって実現できる。ただし、CPU141およびRAM142を用いて実行されるプログラムのモジュールが、スイッチ100と異なる。
【0097】
図14は、測定処理部と制御部の第2の構造例を示すブロック図である。第3の実施の形態のスイッチは、図7に示した制御部140に代えて制御部140aを用いる。制御部140aは、VLAN設定部144に加えて、閾値算出部145aおよびテーブル監視部147を有する。
【0098】
テーブル監視部147は、テーブル記憶部131に記憶されたMACアドレステーブル151を監視する。例えば、テーブル監視部147は、CAM(Content Addressable Memory)スヌーパとして実装される。テーブル監視部147は、定期的にMACアドレステーブル151にアクセスして(ポーリング)、更新の有無を確認してもよい。また、MACアドレステーブル151が更新されたときに、MACスイッチ130から更新イベントを取得するようにしてもよい。MACアドレステーブル151の更新が検出されると、テーブル監視部147は、追加または削除されたMACアドレスを、ポート番号およびVLAN−IDと対応付けて閾値算出部145aに通知する。
【0099】
閾値算出部145aは、VLAN設定部144が管理装置42からコマンドを受け付けて帯域制御テーブル152を生成すると、第2の実施の形態の閾値算出部145と同様、VLAN−IDおよび宛先MACアドレスのグループの組み合わせ毎の閾値を算出する。また、閾値算出部145aは、テーブル監視部147から、MACアドレスの追加または削除の通知を受けると、閾値に対応する宛先MACアドレスのグループを更新する。そして、更新内容をMACデバイス120,120a,120b,120cに通知する。
【0100】
図15は、閾値設定の第2の例を示すフローチャートである。
(ステップS41)VLAN設定部144は、管理装置42からVLAN設定の入力を受け付けたか判断する。入力を受け付けた場合、処理をステップS42に進める。受け付けていない場合、処理をステップS49に進める。
【0101】
(ステップS42〜S48)図10に示したステップS11〜S17と同様の処理が実行されるため、説明を省略する。
(ステップS49)テーブル監視部147は、アドレス学習によってMACスイッチ130のMACアドレステーブル151が更新されたか判断する。更新された場合、処理をステップS50に進める。更新されていない場合、処理を終了する。
【0102】
(ステップS50)閾値算出部145aは、帯域制御テーブル152のMACアドレスおよび閾値の項目を更新して、閾値に対応する宛先MACアドレスのグループを変える。閾値算出部145aは、更新内容をMACデバイス120,120a,120b,120cに通知する。MACデバイス120の測定部124は、受信情報記憶部125に記憶された受信記録テーブル153のMACアドレスの項目を更新する。
【0103】
第3の実施の形態のスイッチによれば、第2の実施の形態と同様の効果が得られる。また、第3の実施の形態のスイッチでは、アドレス学習によるMACアドレステーブル151の更新と連動させて、自動的に帯域制御テーブル152が更新される。よって、管理者の操作負担を更に軽減でき、また、設定ミスを抑制できる。
【符号の説明】
【0104】
10 通信装置
11,11a,11b ポート
12 内部スイッチ
13 制御部
14 受信処理部
14a 閾値情報
15a,15b 送信処理部
【技術分野】
【0001】
本発明は通信装置および通信方法に関する。
【背景技術】
【0002】
現在、物理的なネットワーク上に複数の論理的なネットワークを形成するネットワークの仮想化技術が利用されている。ネットワークの仮想化技術の1つとして、タグ方式のVLAN(Virtual Local Area Network)がある。タグ方式のVLANでは、フレームに、VLAN識別子(VLAN−ID)を含むタグが挿入される。フレームを転送する通信装置(例えば、レイヤ2スイッチ)は、タグを参照して、異なるVLANのフレームが混在しないようにフレームの転送先を制御する。タグ方式のVLANは、例えば、データセンタのレイヤ2ネットワークにおいて、フレームをユーザ毎に分離するために用いられる。
【0003】
なお、VLANの帯域制御に関し、保守端末がレイヤ2スイッチに各VLANグループの帯域を設定しておく方法が提案されている。また、レイヤ2スイッチにVLANグループ間の帯域の比率を設定し、比率に応じた自動的な帯域制御を可能にする方法も提案されている。また、IP(Internet Protocol)パケットとレイヤ2パケットを1つのスイッチで転送できる通信装置であって、仮想チャネルを管理するテーブルをARP(Address Resolution Protocol)を用いて収集した情報を用いて生成するものが提案されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007−274529号公報
【特許文献2】特開2007−68050号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、通信装置がタグ情報に応じて帯域制御を行う場合、出力ポート側において、タグ情報毎に滞留フレーム量を管理して特定のタグ情報を含むフレームを廃棄するなどの処理を行う方法も考えられる。しかし、出力ポート毎にフレームをタグ情報に応じて分類して処理するようにすることは、処理効率が低いという問題がある。
【0006】
例えば、タグ方式のVLANでは、VLAN−IDが12ビットで表現され、予約済みの2個を除く4094個のVLAN−IDがユーザによって使用され得る。出力ポート側でVLAN毎の処理を行う場合、これらVLAN−IDに対応する複数のバッファや、複数のバッファに格納されたフレームの送信順序を制御するスケジューラなどを、ポート毎に設けることが考えられる。しかし、出力ポート毎にこのような回路を実装すると、出力ポート側の処理負荷の増大、回路規模の増大、消費電力の増加などの問題が生じる。
【0007】
本発明はこのような点に鑑みてなされたものであり、タグ情報を含むフレームの帯域制御を効率的に行うことができる通信装置および通信方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
複数のポートを有し、タグ情報を含むフレームを転送する通信装置が提供される。通信装置は、制御部と受信処理部とを有する。制御部は、タグ情報を含むフレームを出力する第1のポートとフレームの宛先アドレスと第1のポートに対して指定された帯域幅との関係から、タグ情報を含むフレームが入力される第2のポートに対応付ける閾値情報を生成する。受信処理部は、第2のポートから入力されるフレームについて、タグ情報および宛先アドレスに応じた受信レートを測定し、受信レートおよび閾値情報から、第1のポートで優先的に廃棄されるフレームを選択する。
【0009】
また、複数のポートを有する通信装置が実行する通信方法が提供される。タグ情報を含むフレームを出力する第1のポートとフレームの宛先アドレスと第1のポートに対して指定された帯域幅との関係から、タグ情報を含むフレームが入力される第2のポートに対応付ける閾値情報を生成する。第2のポートから入力されるフレームについて、タグ情報および宛先アドレスに応じた受信レートを測定し、受信レートおよび閾値情報から、第1のポートで優先的に廃棄されるフレームを選択する。
【発明の効果】
【0010】
タグ情報を含むフレームの帯域制御を効率的に行うことができる。
【図面の簡単な説明】
【0011】
【図1】第1の実施の形態の通信装置を示す図である。
【図2】第2の実施の形態の通信システムを示す図である。
【図3】フレームのフォーマット例を示す図である。
【図4】スイッチの構造例を示すブロック図である。
【図5】MACアドレステーブルの例を示す図である。
【図6】帯域制御テーブルの例を示す図である。
【図7】測定処理部と制御部の第1の構造例を示すブロック図である。
【図8】受信記録テーブルの例を示す図である。
【図9】廃棄処理部と制御部の構造例を示すブロック図である。
【図10】閾値設定の第1の例を示すフローチャートである。
【図11】受信処理の例を示すフローチャートである。
【図12】送信処理の例を示すフローチャートである。
【図13】廃棄処理部の他の構造例を示すブロック図である。
【図14】測定処理部と制御部の第2の構造例を示すブロック図である。
【図15】閾値設定の第2の例を示すフローチャートである。
【発明を実施するための形態】
【0012】
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の通信装置を示す図である。第1の実施の形態の通信装置10は、タグ情報を含むフレームを転送する。通信装置10としては、例えば、VLANタグを含むMAC(Medium Access Control)フレームを転送するレイヤ2スイッチが挙げられる。通信装置10は、ポート11,11a,11bを含む複数のポート、内部スイッチ12、制御部13、受信処理部14および送信処理部15a,15bを有する。
【0013】
ポート11には、宛先アドレス、送信元アドレスおよびタグ情報を含むフレームが入力される。ポート11a,11bからは、フレームが出力される。ただし、ポート11は出力ポートを兼ねてもよく、ポート11a,11bは入力ポートを兼ねてもよい。タグ情報は、例えば、VLAN−IDを含む。アドレスは、例えば、MACアドレスである。
【0014】
内部スイッチ12は、通信装置10が受信したフレームを出力するポートを、フレームに含まれるタグ情報と宛先アドレスに基づいて決定する。内部スイッチ12は、出力ポートを決定するために用いる転送テーブルを保持していてもよい。また、内部スイッチ12は、フレームの送信元アドレスを当該フレームが入力されたポートと対応付けて転送テーブルに記録することで、フレームの転送先を学習してもよい。
【0015】
制御部13は、タグ情報に応じた帯域制御を実現するため、閾値情報14aを生成して受信処理部14に設定する。閾値情報14aは、例えば、タグ情報と1またはそれ以上の宛先アドレスを含むアドレスグループと閾値の対応関係を示す。制御部13は、タグ情報を含むフレームを出力するポート11a,11bと、ポート11a,11bから出力されるフレームの宛先アドレスと、ポート11a,11bに対して指定された帯域幅との関係から、閾値情報14aを生成する。
【0016】
例えば、制御部13は、ポート11a,11bそれぞれについて、タグ情報に応じて指定された帯域幅を、当該タグ情報を含むフレームが入力される他のポート(ポート11を含む)に配分することで、閾値を算出する。このとき、例えば、ポート11a,11bそれぞれから出力されるフレームに含まれ得る宛先アドレスのグループを、閾値と対応付ける。制御部13は、閾値情報14aを生成するとき、ポート毎の宛先アドレスを特定するため、内部スイッチ12が保持する転送テーブルを参照してもよい。
【0017】
受信処理部14は、ポート11から入力されるフレームに対して、受信レートに応じて廃棄の優先付けを行い、内部スイッチ12に出力する。例えば、受信処理部14は、フレームに、“Red”や“Green”などのカラーを示すカラービットを付加する。このような受信処理部は、フレームが入力されるポート毎に設けられてもよい。例えば、受信処理部14は、ポート11に対応付けられて設けられたものである。
【0018】
ここで、受信処理部14は、タグ情報に応じた帯域制御のため、フレームに含まれるタグ情報および宛先アドレスに応じた受信レートを測定し、測定した受信レートと閾値情報14aとからフレームを優先付ける。例えば、受信処理部14は、閾値情報14aで定義されたタグ情報とアドレスグループの組み合わせ毎に、受信レートを測定する。そして、受信レートが閾値を超えるとき、当該タグ情報とアドレスグループの組み合わせに該当するフレームを、優先的に廃棄するフレームと判定する。閾値情報14aに基づいてフレームを優先付けることは、タグ情報を含むフレームの出力先を入力ポート側で判断することで、出力ポート側でのタグ情報毎のフレーム滞留を予測すると言うこともできる。
【0019】
例えば、ポート11aから、タグ情報#1と宛先アドレスAを含むフレームが出力される可能性があり、ポート11bから、タグ情報#1と宛先アドレスB,Cを含むフレームが出力される可能性があるとする。このとき、ポート11aのタグ情報#1用の帯域幅をポート11に配分することで、タグ情報#1とアドレスグループ{A}と閾値Th1とが対応付けられて、受信処理部14に設定される。また、ポート11bのタグ情報#1用の帯域幅をポート11に配分することで、タグ情報#1とアドレスグループ{B,C}と閾値Th2とが対応付けられて、受信処理部14に設定される。
【0020】
送信処理部15aは、内部スイッチ12からフレームを取得し、ポート11aから送信する。送信処理部15bは、内部スイッチ12からフレームを取得し、ポート11bから送信する。送信処理部15a,15bは、帯域制御のため、フレーム滞留を検出すると、入力ポート側の優先付けの結果に基づいて一部のフレームを廃棄する。例えば、内部スイッチ12から取得したフレームをキューに格納し、キュー長が閾値を超えると、フレーム滞留が解消するまで、“Red”を示すカラービットが付加されたフレームを廃棄する。フレームの優先付けはタグ情報を考慮して行われているため、送信処理部15a,15bは、タグ情報毎にフレームを分類してフレーム滞留を判定しなくてもよい。
【0021】
第1の実施の形態の通信装置10によれば、制御部13によって、タグ情報を含むフレームを出力するポート11a,11bとフレームの宛先アドレスとポート11a,11bに対して指定された帯域幅との関係から、タグ情報を含むフレームが入力されるポート11に対応付ける閾値情報14aが生成される。受信処理部14によって、ポート11から入力されるフレームについて、タグ情報および宛先アドレスに応じた受信レートが測定され、受信レートおよび閾値情報14aから、ポート11a,11bで優先的に廃棄されるフレームが選択される。
【0022】
これにより、入力ポート側で、タグ情報を含むフレームの出力先を考慮して出力ポート側でのタグ情報毎のフレーム滞留を予測し、フレームの優先廃棄を判断できる。そして、出力ポート側で、タグ情報毎にフレームを分類しなくても、入力ポート側での優先廃棄の判断に基づいて、フレームを廃棄することができる。例えば、通信装置10が、VLANをサポートするレイヤ2スイッチである場合、出力ポートそれぞれに対して4094個のキューを設けなくても、VLAN毎の帯域制御が可能となる。このように、タグ情報毎の帯域制御を入力ポート側と出力ポート側で分担して、効率的に行うことが可能となる。よって、出力ポート側の処理負荷、回路規模、消費電力などを抑制できる。
【0023】
[第2の実施の形態]
図2は、第2の実施の形態の通信システムを示す図である。第2の実施の形態の通信システムは、サーバ装置21,22,23を含む複数のサーバ装置、ストレージ装置31,32,33を含む複数のストレージ装置、ルータ41、管理装置42、クライアント装置44およびスイッチ100,100a,100bを含む。この通信システムは、例えば、データセンタのシステムとして実装することができる。
【0024】
サーバ装置21,22,23およびスイッチ100は、サーバラック20に格納されている。ストレージ装置31,32,33およびスイッチ100aは、ストレージラック30に格納されている。この通信システムは、複数のサーバラックを含んでもよく、複数のストレージラックを含んでもよい。ルータ41は、内側(ラック側)と外側(ネットワーク43)側を分離する。ルータ41の内側には、レイヤ2ネットワークが形成される。
【0025】
サーバ装置21,22,23は、複数のユーザが利用できるコンピュータである。サーバ装置21,22,23上では、ユーザ間で情報処理を分離するため、ユーザ毎に1またはそれ以上の仮想マシン(VM:Virtual Machine)が動作する。例えば、仮想マシン毎にオペレーティングシステム(OS:Operating System)が実行される。仮想マシンは、ユーザ間でレイヤ2通信を分離するため、VLANタグを含むフレームを送信する。例えば、ユーザ毎に1またはそれ以上のVLAN−IDが割り当てられる。
【0026】
ストレージ装置31,32,33は、サーバ装置21,22,23上で動作する仮想マシンが利用するデータやプログラムを管理するコンピュータである。ストレージ装置31,32,33は、データやプログラムを記憶するため、HDD(Hard Disk Drive)やSSD(Flash Solid State Drive)などの不揮発性の記憶装置を備えてもよい。
【0027】
ルータ41は、IPレイヤ(レイヤ3)のパケット処理を行う通信装置である。ルータ41は、レイヤ3スイッチやレイヤ3を超える通信処理を行う通信装置であってもよい。ルータ41は、ネットワーク43とスイッチ100bの間でパケットを転送する。
【0028】
管理装置42は、管理者が使用する端末装置としてのコンピュータである。管理装置42は、例えば、スイッチ100,100a,100bの設定を変更するために用いる。
クライアント装置44は、ユーザが使用する端末装置としてのコンピュータである。クライアント装置44は、ネットワーク43を介してルータ41の内側のレイヤ2ネットワークにアクセスし、当該ユーザに割り当てられた仮想マシンに情報処理を実行させる。
【0029】
スイッチ100,100a,100bは、MACレイヤ(レイヤ2)のフレーム処理を行う通信装置である。スイッチ100,100a,100bは、レイヤ2スイッチであってもよい。スイッチ100は、ラックレベルスイッチであり、サーバ装置21,22,23と上位のスイッチ100bの間でフレームを転送する。同様に、スイッチ100aは、ラックレベルスイッチであり、ストレージ装置31,32,33と上位のスイッチ100bの間でフレームを転送する。一方、スイッチ100bは、集約レベルスイッチであり、ルータ41と複数のラックの間でフレームを転送する。
【0030】
スイッチ100,100a,100bは、VLANをサポートする。ここで、サーバ装置21,22,23で多数のユーザの仮想マシンが動作することで多数のVLAN−IDが使用される可能性があるため、スイッチ100,100a,100bは、最大4094個のVLAN−IDを処理できるようにする。また、サーバ装置21,22,23とストレージ装置31,32,33との間は、フレームの伝送量が多いため、スイッチ100,100a,100bは、高レートでフレームを処理できるようにする。なお、スイッチ100,100a,100bは、第1の実施の形態の通信装置10の一例である。
【0031】
図3は、フレームのフォーマット例を示す図である。スイッチ100,100a,100bは、図3に示すようなフレームを転送する。
このフレーム例は、7バイトのプリアンブル、1バイトのSFD(Start Frame Delimiter)、6バイトの宛先MACアドレス、6バイトの送信元MACアドレス、4バイトのVLANタグ、2バイトのタイプまたは長さ、46バイト以上1500バイト以下の可変長のデータ、および、4バイトのFCS(Frame Check Sequence)を含む。
【0032】
プリアンブルは、ビット列“10101010”が7バイト分だけ続いたものである。SFDは、ビット列“10101011”である。プリアンブルおよびSFDを検出することで、フレームの先頭を判断することができる。
【0033】
宛先MACアドレスは、フレームの宛先を示すアドレスであり、送信元MACアドレスは、フレームの送信元を示すアドレスである。MACアドレスは、装置に割り当てられた物理的アドレスでもよいし、仮想マシンに割り当てられた仮想的アドレスでもよい。
【0034】
VLANタグは、VLANを識別するための情報である。VLANタグは、12ビットのVLAN−IDを含む。ユーザには、12ビットで表現できる4096個のVLAN−IDのうち、予約された2個を除く4094個を割り当てることができる。VLAN−IDを参照することで、フレームの伝送範囲が制限される。例えば、フレームをブロードキャストするとき、VLAN−IDによって当該フレームを出力するポートを制限できる。
【0035】
タイプまたは長さのフィールドは、値が1500以下の場合はデータ長を意味し、値がそれを超える場合はタイプを意味する。長さは、当該フィールドに続くデータのデータ長を示す。タイプは、上位プロトコルの種類を示す。タイプの値の例として、0x0800(IP)、0x0806(ARP)、0x8100(802.1Q)などがある。
【0036】
データのフィールドには、上位プロトコルのパケットが格納される。パケット長が64バイト未満の場合は、64バイトになるようにパディング用のビットを詰める。
FCSは、宛先MACアドレス、送信元MACアドレス、タイプまたは長さ、および、データから算出されるCRC(Cyclic Redundancy Check)32の値である。受信側のスイッチでCRC32の値を再計算しCRCと照合することで、ビット誤りを検出できる。
【0037】
図4は、スイッチの構造例を示すブロック図である。スイッチ100は、ポート111,111a,111b,111cを含む複数のポート、ポート112、MACデバイス120,120a,120b,120cを含む複数のMACデバイス、MACスイッチ130および制御部140を有する。スイッチ100a,100bも、スイッチ100と同様のブロック構造によって実現することができる。
【0038】
ポート111,111a,111b,111cは、物理レイヤ(レイヤ1)の通信処理を行い、フレームの信号の送信および受信を行う。ポート111,111a,111b,111cには、ケーブルを介して、サーバ装置21,22,23やスイッチ100bが接続される。例えば、ポート111は、プリアンブルおよびSFCを検出して受信信号から各フレームを切り出し、フレームをMACデバイス120に出力する。また、ポート111は、MACデバイス120から取得したフレームを伝送信号に変換して送信する。
【0039】
ポート112は、スイッチ100の管理に用いるポートである。ポート112には、ケーブルや他の通信装置を介して、管理装置42が接続される。例えば、ポート112は、管理装置42から受信したコマンドを制御部140に出力する。
【0040】
MACデバイス120,120a,120b,120cは、MACレイヤのフレーム処理を行う。MACデバイス120,120a,120b,120cは、ポート111,11a,111b,111cとそれぞれ対応付けて設けられている。MACデバイス120は、フレーム処理部121、測定処理部122、廃棄処理部123を有する。他のMACデバイスも、MACデバイス120と同様のブロック構造によって実現できる。
【0041】
フレーム処理部121は、ポート111で受信されたフレームの誤り検出を、当該フレームに含まれるFCSを用いて行う。そして、誤りが検出されなかったフレームを、測定処理部122に出力する。また、フレーム処理部121は、廃棄処理部123から取得したフレームに、プリアンブル、SFDおよびFCSを付加し、ポート111に出力する。
【0042】
測定処理部122は、フレーム処理部121から取得したフレームの受信レートを測定し、受信レートに応じてフレームにマーキングを行う。受信レートは、VLAN−IDおよび宛先MACアドレスに応じたグループ単位で行う。マーキングでは、“Red”または“Green”を示すカラービットをフレームに付加する。マーキングの判断に用いる閾値情報は、制御部140から通知される。そして、測定処理部122は、マーキングを行ったフレームを、MACスイッチ130に出力する。
【0043】
廃棄処理部123は、MACスイッチ130から取得したフレームをキューに一旦格納し、キューからフレーム処理部121にフレームを順次出力する。廃棄処理部123は、キューに滞留するフレームが多くなる(輻輳が生じる)と、フレームに付加されたカラービットを参照して、MACスイッチ130から到着するフレームの一部を廃棄する。
【0044】
MACスイッチ130は、VLAN−IDと宛先MACアドレスに基づいて、到着したフレームの出力先のポートを判定し、フレームをMACデバイス120,120a,120b,120cに振り分ける。MACスイッチ130は、MACアドレステーブルを記憶するテーブル記憶部131を有する。MACスイッチ130は、MACアドレステーブルから、VLAN−IDと宛先MACアドレスに対応するポートを検索して、出力先を判定する。宛先MACアドレスがMACアドレステーブルに登録されていない場合は、当該VLAN−IDに対応する全てのポートを出力先とする(フラッディング)。
【0045】
また、MACスイッチ130は、MACアドレスの学習を行う。MACスイッチ130は、フレームが到着したポートと当該フレームの送信元MACアドレスとを対応付けて、MACアドレステーブルに登録する。これにより、当該ポートに当該MACアドレスをもつ装置が接続されていることが認識される。一方で、MACスイッチ130は、MACアドレステーブルから、登録されてから一定時間経過したMACアドレスを削除する(エージング)。これは、装置間の接続関係が変更される可能性を考慮した処理である。
【0046】
制御部140は、管理装置42と連携して、スイッチ100を制御する。例えば、制御部140は、フレームのマーキングを制御するための情報を測定処理部122に設定し、フレームの廃棄を制御するための情報を廃棄処理部123に設定する。
【0047】
制御部140は、CPU(Central Processing Unit)141、RAM(Random Access Memory)142およびROM(Read Only Memory)143を有する。CPU141は、ROM143からプログラムやデータを読み出してRAM142に展開し、プログラムに従った処理を行う。また、CPU141は、管理装置42からのコマンドの入力を受け付ける。RAM142は、プログラムやデータを一時的に記憶する揮発性のメモリである。ROM143は、プログラムやデータを記憶する不揮発性のメモリである。ROM143は、書き換え可能なメモリ(例えば、フラッシュメモリ)であってもよい。
【0048】
なお、ポート111,111a,111b,111cは、第1の実施の形態のポート11,11a,11bの一例である。測定処理部122は、第1の実施の形態の受信処理部14の一例である。廃棄処理部123は、第1の実施の形態の送信処理部15a,15bの一例である。MACスイッチ130は、第1の実施の形態の内部スイッチ12の一例である。制御部140は、第1の実施の形態の制御部13の一例である。
【0049】
図5は、MACアドレステーブルの例を示す図である。MACアドレステーブル151は、MACスイッチ130のテーブル記憶部131に記憶されている。MACアドレステーブル151は、ポート番号、VLAN−IDおよびMACアドレスの項目を含む。
【0050】
ポート番号の項目には、各ポートを識別するための識別情報が登録される。VLAN−IDの項目には、ポート番号が示すポートに対応付けられたVLANのVLAN−IDが登録される。各ポートには、フレームの通過を許可する1またはそれ以上のVLANが、管理装置42によって対応付けられている。MACアドレスの項目には、各ポートから出力され得るフレームの宛先MACアドレスのグループが、VLAN毎に登録される。
【0051】
ポート番号およびVLAN−IDの項目には、管理装置42からのコマンドに応じて値が登録される。MACアドレスの項目には、MACスイッチ130によって値が更新される。MACアドレステーブル151には、例えば、ポート番号=1,VLAN−ID=1,MACアドレス=A,Hという情報が登録される。これは、例えばポート111がVLAN#1のフレームの通過を許容し、ポート111にはアドレスAの装置(または仮想マシン)とアドレスHの装置(または仮想マシン)とが接続されていることを示す。
【0052】
図6は、帯域制御テーブルの例を示す図である。帯域制御テーブル152は、制御部140によって生成されて、例えば、RAM142に記憶される。帯域制御テーブル152は、VLAN毎の帯域制御を実現するために用いられる。帯域制御テーブル152は、ポート番号、VLAN−ID、MACアドレス、帯域幅および閾値の項目を含む。
【0053】
ポート番号の項目には、各ポートを識別するための識別情報が登録される。VLAN−IDの項目には、ポート毎に1またはそれ以上のVLAN−IDが登録される。MACアドレスの項目には、MACアドレスのグループが、各ポートのVLAN毎に登録される。帯域幅の項目には、フレームの送信レートの上限値(例えば、ビット毎秒(bps:bit per second)の値)が、各ポートのVLAN毎に登録される。帯域幅は、管理者によって指定される。閾値の項目には、各ポートのVLAN毎に、当該ポートから入力される当該VLANのフレームの受信レートの上限値が登録される。
【0054】
第2の実施の形態では、ポート番号、VLAN−ID、MACアドレスおよび帯域幅の項目には、管理装置42からのコマンドに応じて値が登録される。閾値の項目には、制御部140によって算出された値が登録される。閾値の算出方法の詳細は後述する。なお、VLAN−IDとMACアドレスのグループと閾値の対応関係を示す情報は、制御部140からMACデバイス120,120a,120b,120cに通知される。
【0055】
例えば、帯域制御テーブル152には、ポート番号=3,VLAN−ID=1,閾値=A&H=0.5Mbps;D=0.5Mbpsという情報が登録される。これは、例えばポート111bに入力されるVLAN#1のフレームのうち、宛先MACアドレス=Aのフレームと宛先MACアドレス=Hのフレームの合計の受信レートの閾値が、0,5Mbpsであることを示す。また、宛先MACアドレス=Dのフレームの受信レートの閾値が、0,5Mbpsであることを示す。
【0056】
図7は、測定処理部と制御部の第1の構造例を示すブロック図である。測定処理部122は、測定部124、受信情報記憶部125およびマーキング部126を有する。制御部140は、VLAN設定部144および閾値算出部145を有する。VLAN設定部144と閾値算出部145は、CPU141が実行するプログラムとして実装してもよい。または、VLAN設定部144と閾値算出部145は、FPGA(Field Programmable Gate Array)などの回路で実装してもよい。
【0057】
VLAN設定部144は、管理装置42からコマンドを受け付け、帯域制御テーブル152を生成する。第2の実施の形態では、帯域制御テーブル152のポート番号、VLAN−ID、MACアドレスおよび帯域幅の項目の情報が、管理者から指定される。
【0058】
閾値算出部145は、帯域制御テーブル152のポート番号、VLAN−ID、MACアドレスおよび帯域幅の項目の情報から、閾値の項目の情報を生成し、帯域制御テーブル152に登録する。そして、閾値算出部145は、ポート111についての、VLAN−IDとMACアドレスのグループと閾値の対応情報を、測定処理部122に通知する。
【0059】
測定部124は、フレーム処理部121からフレームを取得し、マーキング部126に出力する。また、測定部124は、閾値算出部145から通知されたVLAN−IDと宛先MACアドレスのグループの組み合わせ毎に、受信レートを測定する。そして、受信レートが閾値算出部145から通知された閾値を超えるか判定し、判定結果に応じて、マーキング部126にフレームのカラー(“Red”または“Green”)を指定する。
【0060】
受信情報記憶部125は、測定部124が受信レートを測定するために用いる受信記録テーブルを記憶する。受信記録テーブルには、VLAN−IDと宛先MACアドレスのグループの組み合わせ毎に、フレームの受信時刻が登録される。受信記録テーブルは、測定部124によって、VLANタグを含むフレームの受信毎に更新される。
【0061】
マーキング部126は、測定部124から取得したフレームに、測定部124から指定されたカラー(“Red”または“Green”)を示すカラービットを付加する。そして、マーキングしたフレームを、MACスイッチ130に出力する。
【0062】
図8は、受信記録テーブルの例を示す図である。受信記録テーブル153は、測定部124によって生成されて、受信情報記憶部125に記憶される。受信記録テーブル153は、VLAN−ID、MACアドレスおよび受信時刻の項目を含む。
【0063】
VLAN−IDの項目には、ポート111に対応付けられたVLANのVLAN−IDが登録される。MACアドレスの項目には、宛先MACアドレスのグループがVLAN毎に登録される。1つの宛先MACアドレスのグループは、1つの出力ポートに対応する。受信時刻の項目には、VLANおよび宛先MACアドレスのグループ毎の最終受信時刻が登録される。受信時刻は、測定部124で算出される。なお、測定部124は、閾値算出部145から通知された閾値を、受信記録テーブル153に登録しておいてもよい。
【0064】
図9は、廃棄処理部と制御部の構造例を示すブロック図である。廃棄処理部123は、キュー127、キューモニタ128および廃棄判定部129を有する。制御部140は、図7で説明したモジュールに加えて廃棄設定部146を有する。廃棄設定部146は、CPU141が実行するプログラムとして実装してもよい。
【0065】
キュー127は、ポート111から送信するフレームを一時的に記憶する。キュー127は、FIFO(First-In First-Out)方式により、先に格納されたフレームから順に、フレーム処理部121にフレームを出力する。ただし、廃棄処理部123は、QoS(Quality of Service)制御のため、優先度の異なる複数のキューを備えていてもよい。
【0066】
キューモニタ128は、キュー127に滞留しているフレームの量(キュー長)を監視し、キュー長を廃棄判定部129に報告する。
廃棄判定部129は、MACスイッチ130からフレームを取得し、フレームのカラービットとキューモニタ128から報告されるキュー長に基づいて、当該フレームを廃棄するか否か判定する。キュー長が閾値を超えるとき、“Red”を示すカラービットが付加されたフレーム(入力ポート側で優先的に廃棄すると認定されたフレーム)を廃棄する。廃棄判定部129は、廃棄しないと判定したフレームを、キュー127に挿入する。
【0067】
廃棄設定部146は、キュー長の閾値を廃棄判定部129に設定する。キュー長の閾値は、例えば、管理者が操作する管理装置42からのコマンドによって指定される。
図10は、閾値設定の第1の例を示すフローチャートである。以下、図10に示す処理をステップ番号に沿って説明する。
【0068】
(ステップS11)VLAN設定部144は、管理装置42からVLAN設定の入力を受け付け、帯域制御テーブル152を生成する。VLAN設定の入力には、ポート番号、VLAN−ID、宛先MACアドレスのグループおよび帯域幅の情報が含まれる。
【0069】
(ステップS12)閾値算出部145は、帯域制御テーブル152に登録されているVLAN−IDの中から、VLAN−IDを1つ選択する。
(ステップS13)閾値算出部145は、出力ポートとして、ステップS12で選択したVLAN−IDが対応付けられているポートを1つ選択する。
【0070】
(ステップS14)閾値算出部145は、帯域制御テーブル152から、ステップS12で選択したVLAN−IDおよびステップS13で選択したポートに対応する帯域幅を特定する。そして、特定した帯域幅を、選択したVLAN−IDが対応付けられている、入力ポートとしての他のポートに配分する。例えば、特定した帯域幅を他のポートの数で割ることで、帯域幅を他のポートに均等に配分する。
【0071】
(ステップS15)閾値算出部145は、ステップS13で、条件に合致する全てのポートを選択したか判断する。全てのポートを選択した場合、処理をステップS16に進める。未選択のポートがある場合、処理をステップS13に進める。
【0072】
(ステップS16)閾値算出部145は、ステップS12で、全てのVLAN−IDを選択したか判断する。全てのVLAN−IDを選択した場合、処理をステップS17に進める。未選択のVLAN−IDがある場合、処理をステップS12に進める。
【0073】
(ステップS17)閾値算出部145は、ステップS14で配分した帯域幅を、各入力ポートの閾値として帯域制御テーブル152に登録する。閾値は、VLAN−IDと出力ポート側の宛先MACアドレスのグループと対応付けられるようにする。閾値算出部145は、閾値の情報をMACデバイス120,120a,120b,120cに通知する。
【0074】
例えば、図6の帯域制御テーブル152の例の場合、ポート111(ポート#1)のVLAN#1に割り当てられた帯域1Mbpsが、VLAN#1に使用される他のポート111b(ポート#2)とポート111c(ポート#3)に均等配分されている。これにより、ポート#2では、ポート#1から出力されることになるVLAN#1のフレーム(宛先MACアドレスがAまたはHのフレーム)の閾値が、0.5Mpbsに設定される。
【0075】
同様に、ポート#2のVLAN#1に割り当てられた帯域1Mbpsが、他のポート#1,#3に均等配分される。ポート#3のVLAN#1に割り当てられた帯域1Mbpsが、他のポート#1,#2に均等配分される。これにより、ポート#1では、ポート#2から出力されることになるフレーム(宛先MACアドレスがDのフレーム)の閾値が、0.5Mpbsに設定される。また、ポート#3から出力されることになるフレーム(宛先MACアドレスがEのフレーム)の閾値が、0.5Mpbsに設定される。
【0076】
なお、以上の説明では、出力ポートの帯域幅を、同一VLANの他の入力ポートに均等配分することとしたが、他の方法で配分するようにしてもよい。例えば、各入力ポートに接続されたサーバ装置上で動作している仮想マシンの数を用いて重み付けして、帯域幅を配分してもよい。動作する仮想マシンの多いサーバ装置が接続されたポートの閾値を大きくすることで、フレームを送信する仮想マシンに公平に帯域を割り当てることができる。サーバ装置21,22,23上で動作している仮想マシンの数および各仮想マシンが使用するVLAN−IDは、例えば、スイッチ100,100a,100bがサーバ装置21,22,23に問い合わせることで知ることができる。
【0077】
図11は、受信処理の例を示すフローチャートである。以下、図11に示す処理をステップ番号に沿って説明する。
(ステップS21)測定部124は、フレーム処理部121から取得したフレームに含まれるVLAN−IDと宛先MACアドレスを確認する。
【0078】
(ステップS22)測定部124は、ステップS21で確認したVLAN−IDが、ポート111に対して登録されているVLAN−IDか判断する。登録されている場合、処理をステップS23に進める。登録されていない場合、不適切なフレームの受信であると判断し、当該フレームを廃棄して処理を終了する。
【0079】
(ステップS23)測定部124は、受信情報記憶部125に記憶された受信記録テーブル153に、ステップS21で確認した宛先MACアドレスが登録されているか判断する。宛先MACアドレスが登録されている場合、処理をステップS24に進める。登録されていない場合、処理をステップS29に進める。
【0080】
(ステップS24)測定部124は、受信記録テーブル153から、ステップS21で確認したVLAN−IDと宛先MACアドレスに対応する前回の受信時刻を検索する。
(ステップS25)測定部124は、VLAN−IDと宛先MACアドレスに対応する受信時刻として、現在時刻を受信記録テーブル153に記録する。
【0081】
(ステップS26)測定部124は、VLAN−IDと宛先MACアドレスに応じた受信レートを算出する。受信レートは、例えば、フレームのデータ長を、現在時刻とステップS24で検索した前回の受信時刻との差(受信間隔)で割ることで算出できる。
【0082】
(ステップS27)測定部124は、ステップS26で算出した受信レートが、閾値算出部145で算出された、VLAN−IDと宛先MACアドレスに応じた閾値を超えるか判断する。受信レートが閾値を超える場合、処理をステップS29に進める。受信レートが閾値以下の場合、処理をステップS28に進める。
【0083】
(ステップS28)測定部124は、フレーム処理部121から取得したフレームをマーキング部126に出力し、カラーとして“Green”をマーキング部126に指定する。マーキング部126は、フレームに“Green”を示すカラービットを付加し、マーキングしたフレームをMACスイッチ130に出力する。
【0084】
(ステップS29)測定部124は、フレーム処理部121から取得したフレームをマーキング部126に出力し、カラーとして“Red”をマーキング部126に指定する。マーキング部126は、フレームに“Red”を示すカラービットを付加し、マーキングしたフレームをMACスイッチ130に出力する。
【0085】
図12は、送信処理の例を示すフローチャートである。以下、図12に示す処理をステップ番号に沿って説明する。
(ステップS31)廃棄判定部129は、MACスイッチ130から取得したフレームに付加されているカラービットを確認する。
【0086】
(ステップS32)廃棄判定部129は、ステップS31で確認したカラービットが“Red”を示しているか判断する。カラービットが“Red”の場合、処理をステップS33に進める。カラービットが“Green”の場合、処理をステップS35に進める。
【0087】
(ステップS33)廃棄判定部129は、キューモニタ128により測定されたキュー長(キュー127に滞留しているフレームの量)を確認する。
(ステップS34)廃棄判定部129は、ステップS33で確認したキュー長が、閾値を超えるか判断する。キュー長が閾値を超える場合、処理をステップS36に進める。キュー長が閾値以下の場合、処理をステップS35に進める。
【0088】
(ステップS35)廃棄判定部129は、MACスイッチ130から取得したフレームをキュー127に挿入する。当該フレームは、キュー127に一時的に保持された後、フレーム処理部121に出力されてポート111から送信される。
【0089】
(ステップS36)廃棄判定部129は、当該フレームを廃棄する。
第2の実施の形態では、入力ポート側でVLAN毎の帯域幅を考慮してフレームをマーキングするため、出力ポート側ではカラービットに基づいて廃棄するフレームを選択すればよく、VLAN毎にフレームを管理しなくてもよい。これに対し、入力ポート側でVLAN毎の帯域幅を考慮しない場合、出力ポート側でVLAN毎にフレームを管理することになる。以下、出力ポート側でVLAN毎にフレームを管理するスイッチの例を挙げる。
【0090】
図13は、廃棄処理部の他の構造例を示すブロック図である。出力ポート側でVLAN毎にフレームを管理する場合、MACスイッチ130とフレーム処理部121の間に、廃棄処理部160が設けられる。廃棄処理部160は、分離部161、キューの集合162(キュー#1〜#4094)およびスケジューラ163を有する。
【0091】
分離部161は、MACスイッチ130から取得したフレームを、フレームに含まれるVLAN−IDに応じてキュー#1〜#4094に振り分ける。キューの集合162は、ユーザに割り当て可能な4094個のVLAN−IDに対応する4094個のキューを含む。各キューには、同一のVLAN−IDを含むフレームが格納される。スケジューラ163は、フレームの送信をスケジューリングする。スケジューラ163は、キュー#1〜#4094から、所定のアルゴリズムに従ってフレームを抽出し、フレーム処理部121に出力する。アルゴリズムとしては、例えば、ラウンドロビン方式が用いられる。
【0092】
前述の廃棄処理部123を用いることで、廃棄処理部160と比べて、キューの数を削減でき回路規模を縮小できる。また、フレームを多数のキューに振り分ける大規模回路を設けなくてよく、また、多数のキューに格納されたフレームをスケジューリングする大規模回路を設けなくてよく、回路規模を縮小できる。
【0093】
第2の実施の形態のスイッチ100,100a,100bによれば、入力ポート側で、VLANタグを含むフレームの出力先を考慮して出力ポート側でのVLAN毎のフレーム滞留を予測し、フレームを優先付けできる。そして、出力ポート側で、VLAN毎にフレームを分類しなくても、入力ポート側での優先付けに基づいてフレームを廃棄することができる。よって、VLAN毎の帯域制御を、入力ポート側と出力ポート側で分担して効率的に行うことができ、処理負荷、回路規模および消費電力を抑制できる。
【0094】
また、出力ポート側のVLAN毎の帯域幅を指定すれば、帯域幅を自動的に入力ポート側に配分して、入力ポート毎の閾値を自動的に算出できる。また、VLANを対応付けるポートの増減に応じて、帯域幅の配分を自動的に再計算できる。よって、管理者の操作負担を軽減でき、また、設定ミスを抑制できる。
【0095】
[第3の実施の形態]
次に、第3の実施の形態を説明する。第2の実施の形態との差異を中心に説明し、同様の事項については説明を省略する。第3の実施の形態のスイッチは、アドレス学習の結果を用いることで、管理者のVLAN設定の負担を軽減する。
【0096】
第3の実施の形態のスイッチは、図4に示した第2の実施の形態のスイッチ100と同様のブロック構造によって実現できる。ただし、CPU141およびRAM142を用いて実行されるプログラムのモジュールが、スイッチ100と異なる。
【0097】
図14は、測定処理部と制御部の第2の構造例を示すブロック図である。第3の実施の形態のスイッチは、図7に示した制御部140に代えて制御部140aを用いる。制御部140aは、VLAN設定部144に加えて、閾値算出部145aおよびテーブル監視部147を有する。
【0098】
テーブル監視部147は、テーブル記憶部131に記憶されたMACアドレステーブル151を監視する。例えば、テーブル監視部147は、CAM(Content Addressable Memory)スヌーパとして実装される。テーブル監視部147は、定期的にMACアドレステーブル151にアクセスして(ポーリング)、更新の有無を確認してもよい。また、MACアドレステーブル151が更新されたときに、MACスイッチ130から更新イベントを取得するようにしてもよい。MACアドレステーブル151の更新が検出されると、テーブル監視部147は、追加または削除されたMACアドレスを、ポート番号およびVLAN−IDと対応付けて閾値算出部145aに通知する。
【0099】
閾値算出部145aは、VLAN設定部144が管理装置42からコマンドを受け付けて帯域制御テーブル152を生成すると、第2の実施の形態の閾値算出部145と同様、VLAN−IDおよび宛先MACアドレスのグループの組み合わせ毎の閾値を算出する。また、閾値算出部145aは、テーブル監視部147から、MACアドレスの追加または削除の通知を受けると、閾値に対応する宛先MACアドレスのグループを更新する。そして、更新内容をMACデバイス120,120a,120b,120cに通知する。
【0100】
図15は、閾値設定の第2の例を示すフローチャートである。
(ステップS41)VLAN設定部144は、管理装置42からVLAN設定の入力を受け付けたか判断する。入力を受け付けた場合、処理をステップS42に進める。受け付けていない場合、処理をステップS49に進める。
【0101】
(ステップS42〜S48)図10に示したステップS11〜S17と同様の処理が実行されるため、説明を省略する。
(ステップS49)テーブル監視部147は、アドレス学習によってMACスイッチ130のMACアドレステーブル151が更新されたか判断する。更新された場合、処理をステップS50に進める。更新されていない場合、処理を終了する。
【0102】
(ステップS50)閾値算出部145aは、帯域制御テーブル152のMACアドレスおよび閾値の項目を更新して、閾値に対応する宛先MACアドレスのグループを変える。閾値算出部145aは、更新内容をMACデバイス120,120a,120b,120cに通知する。MACデバイス120の測定部124は、受信情報記憶部125に記憶された受信記録テーブル153のMACアドレスの項目を更新する。
【0103】
第3の実施の形態のスイッチによれば、第2の実施の形態と同様の効果が得られる。また、第3の実施の形態のスイッチでは、アドレス学習によるMACアドレステーブル151の更新と連動させて、自動的に帯域制御テーブル152が更新される。よって、管理者の操作負担を更に軽減でき、また、設定ミスを抑制できる。
【符号の説明】
【0104】
10 通信装置
11,11a,11b ポート
12 内部スイッチ
13 制御部
14 受信処理部
14a 閾値情報
15a,15b 送信処理部
【特許請求の範囲】
【請求項1】
複数のポートを有し、タグ情報を含むフレームを転送する通信装置であって、
前記タグ情報を含むフレームを出力する第1のポートとフレームの宛先アドレスと前記第1のポートに対して指定された帯域幅との関係から、前記タグ情報を含むフレームが入力される第2のポートに対応付ける閾値情報を生成する制御部と、
前記第2のポートから入力されるフレームについて、前記タグ情報および前記宛先アドレスに応じた受信レートを測定し、前記受信レートおよび前記閾値情報から、前記第1のポートで優先的に廃棄されるフレームを選択する受信処理部と、
を有する通信装置。
【請求項2】
前記制御部は、フレームの前記宛先アドレスから当該フレームを出力するポートを判定するための転送テーブルが更新されたことを検出し、前記転送テーブルの更新に基づいて前記閾値情報を更新する、請求項1記載の通信装置。
【請求項3】
前記制御部は、各第1のポートから出力されるフレームに含まれる前記宛先アドレスと対応付けて、当該第1のポートに対して指定された前記帯域幅から閾値を算出し、
前記閾値情報は、前記タグ情報と前記宛先アドレスと前記閾値との対応関係を示す、
請求項1または2記載の通信装置。
【請求項4】
前記閾値情報は、前記タグ情報および前記宛先アドレスに応じたグループ毎に、前記第2のポートから入力されるフレームに適用される閾値を含み、
前記受信処理部は、前記グループ毎に前記受信レートを測定し、前記受信レートおよび前記閾値に基づいて、前記優先的に廃棄されるフレームを選択する、
請求項1乃至3の何れか一項に記載の通信装置。
【請求項5】
複数のポートを有する通信装置が実行する通信方法であって、
タグ情報を含むフレームを出力する第1のポートとフレームの宛先アドレスと前記第1のポートに対して指定された帯域幅との関係から、前記タグ情報を含むフレームが入力される第2のポートに対応付ける閾値情報を生成し、
前記第2のポートから入力されるフレームについて、前記タグ情報および前記宛先アドレスに応じた受信レートを測定し、前記受信レートおよび前記閾値情報から、前記第1のポートで優先的に廃棄されるフレームを選択する、
通信方法。
【請求項1】
複数のポートを有し、タグ情報を含むフレームを転送する通信装置であって、
前記タグ情報を含むフレームを出力する第1のポートとフレームの宛先アドレスと前記第1のポートに対して指定された帯域幅との関係から、前記タグ情報を含むフレームが入力される第2のポートに対応付ける閾値情報を生成する制御部と、
前記第2のポートから入力されるフレームについて、前記タグ情報および前記宛先アドレスに応じた受信レートを測定し、前記受信レートおよび前記閾値情報から、前記第1のポートで優先的に廃棄されるフレームを選択する受信処理部と、
を有する通信装置。
【請求項2】
前記制御部は、フレームの前記宛先アドレスから当該フレームを出力するポートを判定するための転送テーブルが更新されたことを検出し、前記転送テーブルの更新に基づいて前記閾値情報を更新する、請求項1記載の通信装置。
【請求項3】
前記制御部は、各第1のポートから出力されるフレームに含まれる前記宛先アドレスと対応付けて、当該第1のポートに対して指定された前記帯域幅から閾値を算出し、
前記閾値情報は、前記タグ情報と前記宛先アドレスと前記閾値との対応関係を示す、
請求項1または2記載の通信装置。
【請求項4】
前記閾値情報は、前記タグ情報および前記宛先アドレスに応じたグループ毎に、前記第2のポートから入力されるフレームに適用される閾値を含み、
前記受信処理部は、前記グループ毎に前記受信レートを測定し、前記受信レートおよび前記閾値に基づいて、前記優先的に廃棄されるフレームを選択する、
請求項1乃至3の何れか一項に記載の通信装置。
【請求項5】
複数のポートを有する通信装置が実行する通信方法であって、
タグ情報を含むフレームを出力する第1のポートとフレームの宛先アドレスと前記第1のポートに対して指定された帯域幅との関係から、前記タグ情報を含むフレームが入力される第2のポートに対応付ける閾値情報を生成し、
前記第2のポートから入力されるフレームについて、前記タグ情報および前記宛先アドレスに応じた受信レートを測定し、前記受信レートおよび前記閾値情報から、前記第1のポートで優先的に廃棄されるフレームを選択する、
通信方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2012−235207(P2012−235207A)
【公開日】平成24年11月29日(2012.11.29)
【国際特許分類】
【出願番号】特願2011−100942(P2011−100942)
【出願日】平成23年4月28日(2011.4.28)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成24年11月29日(2012.11.29)
【国際特許分類】
【出願日】平成23年4月28日(2011.4.28)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]