以下に、本願の開示する通信制御装置、及び通信制御方法の実施例を、図面を参照しながら詳細に説明する。なお、以下の実施例により本願の開示する通信制御装置、及び通信制御方法が限定されるものではない。
まず、本願の開示する一実施例に係るブリッジ装置の構成を説明する。図1は、実施例1に係るブリッジ装置10の構成を示す図である。図1に示す様に、ブリッジ装置10は、Inter Face(IF)カード10aとSwitch(SW)カード10bとを有し、SWカード10bを介して、IFカード20、30、40と接続される。ブリッジ装置10は、Physical/Media Access Control(PHY/MAC)回路11と、フレーム識別回路12と、MAC DA検索回路13と、方路選択回路14と、MAC SA検索回路15と、エージング回路16と、アクセス制御回路17と、アクセス監視回路18とを有する。これら各構成部分は、一方向又は双方向に、信号やデータの入出力が可能な様に接続されている。
PHY/MAC回路11は、回線ポートから受信されたフレームをフレーム識別回路12に出力する。また、PHY/MAC回路11は、MACアドレスが学習済または未学習と判定されたフレームを、IFカード10aから回線ポートへ送信する。フレーム識別回路12は、PHY/MAC回路11から入力されたフレームのヘッダを参照し、該フレームのMAC DA及びMAC SAを識別する。MAC DA検索回路13は、フレーム識別回路12による識別結果を基に、後述するアクセス監視回路18とアクセス制御回路17とを経由して、MACアドレステーブル171に対するMAC DA検索を行う。
方路選択回路14は、送信対象のフレームの情報(例えば、宛先情報)がMACアドレステーブル171に登録されている場合、該フレームの宛先及び送信経路を決定する。該フレームは、SWカード10b経由で、IFカード20、30、40の内、宛先として決定されたIFカードに向けて、ユニキャストまたはマルチキャスト転送される。なお、送信対象のフレームの情報(例えば、宛先情報)がMACアドレステーブル171に登録されていない場合には、該フレームは、ブロードキャスト転送される。
MAC SA検索回路15は、SWカード10bからIFカード10aに入力されたフレームの情報(例えば、送信元情報)を基に、後述するアクセス監視回路18とアクセス制御回路17とを経由して、MACアドレステーブル171に対するMAC SA検索を行う。エージング回路16は、フレームの情報(例えば、送信元情報)をメモリから削除するまでの時間を、エージング時間として管理する。エージング回路16は、エージング時間(例えば、10秒〜5分程度)内にSWカード10bから到達しないフレームの情報を、MACアドレステーブル171から削除すると共に、これに伴い、エントリ数管理テーブル172のエントリ数を“1”減算する。
アクセス制御回路17は、アクセス監視回路18からの指示に従い、MACアドレステーブル171に対して、アドレスの検索、登録、削除等の各処理を行う。また、アクセス制御回路17は、MACアドレステーブル171に対し、アドレス等の情報の登録、または削除を指示した場合、併せて、エントリ数管理テーブル172に対し、エントリ数の加算、または減算を指示する。アクセス監視回路18は、受信されたフレームを蓄積するためのバッファ18aを有する。アクセス監視回路18は、後述する各種テーブル及びカウンタを参照して、MACアドレステーブル171及びエントリ数管理テーブル172へのアクセスの要否を判定する。アクセス監視回路18は、アクセスが必要と判定した場合には、アクセス制御回路17に対し、アドレスの検索、登録、削除等の上記各処理の実行を指示する。
図2は、MACアドレステーブル171におけるデータ格納例を示す図である。例えば、エントリ数が1000の場合、48ビットのMACアドレスは、図2に示す様に、エントリの識別子である“#0〜#999”と対応付けて、メモリ内に格納される。図3Aは、エントリ数管理テーブル172aの構成を示す図である。図3Bは、エントリ数管理テーブル172bにおけるデータ格納例を示す図である。図3Bに示す様に、エントリ数管理テーブル172bには、MACアドレステーブル171に現在登録されているMACアドレスの数(例えば、“150”)が、「エントリ数」として保持される。ここで、MACアドレステーブル171内の全エントリ数に対する空きエントリ数の割合を該テーブルの「空きエントリ率」と定義する。例えば、エントリ数管理テーブル172bの格納値が“150”である場合、全てのエントリ数を“1000”とすると、MACアドレステーブル171における空きエントリ率は、((1000−150)/1000)×100により、“85%”と算定される。
図4Aに移り、前提として、MACアドレステーブル171への全ての処理アクセス(A)〜(D)に対する各処理アクセスの割合を、該テーブルの「アクセス比率」と定義する。図4Aは、アクセス比率設定テーブル181aの構成を示す図である。図4Bは、アクセス比率設定テーブル181bにおけるデータ格納例を示す図である。図4Bに示す様に、アクセス比率設定テーブル181bには、MACアドレステーブル171へのアクセス比率(単位は%)が、MACアドレステーブル171における空きエントリ率(単位は%)と、アクセス種別毎に対応付けて、格納されている。アクセス比率の設定値は、帯域幅や通信速度、装置仕様、フレームの属性(データ長や種別)等をパラメータとして、ネットワークの管理者や通信事業者によって適宜更新可能である。例えば、広帯域のネットワークで通信が行われている場合には、管理者は、高速転送を実現するために、MAC DA検索用のアクセス比率を従前よりも高めの値に更新するものとしてもよい。あるいは、メモリの空き容量ではなく、ブリッジ装置10のメモリ自体の容量が大きい場合には、ブリッジ装置10は、MACアドレスを記憶するための十分なデータ領域をメモリ内に確保することができる。このため、管理者は、MAC学習用のアクセス比率を従前よりも高めの値に更新するものとしてもよい。
例えば、上述した様に、MACアドレステーブル171における空きエントリ率が“85%”と算定された場合、“85%”は80〜100%の範囲に該当する。したがって、各アクセス種別(A)〜(D)のアクセス比率として、それぞれ“(A)=10%”、“(B)=78%”、“(C)=9%”、“(D)=3%”が採用されることとなる。なお、アクセス比率設定テーブル181bは、図4Bに示す様に、MACアドレステーブル171の空きエントリ率の種類数のエントリで構成される。本実施例では、空きエントリ率が6段階に設定されているため、エントリ数は6エントリであるが、エントリ数は、任意の値に設定及び変更可能である。
図5Aは、クリア時間テーブル182aにおけるデータ格納例を示す図である。図5Bは、クリア時間テーブル182bにおけるデータ格納例を示す図である。クリア時間テーブル182bは、アクセス種別カウンタ183bのカウンタ値を定期的にクリアするために参照されるテーブルである。図5Bに示す様に、クリア時間テーブル182bは、1エントリ分の情報を保持可能であり、クリア時間テーブル182bには、上記カウンタ値をクリアする迄の時間(周期)として、例えば“1ms”が設定されている。MACアドレステーブル171の最大アクセス性能は、例えば、1秒間に最大で15×106回のアクセスが可能という様に、ハードウェアに固有の性能である。したがって、ブリッジ装置10は、クリア時間テーブル182bの参照により、クリア時間内での最大アクセス回数を算出することができる。
例えば、アクセス種別カウンタ183bのクリア時間が1msに設定されている場合に、MACアドレステーブル171への最大アクセス回数が15Mpps(10Gbps)と算出されたとする。この場合、ブリッジ装置10のメモリは、MACアドレステーブル171に対して1ms間に最大で15,000回のアクセスを許容することとなる。なお、上記クリア時間は、1msに限らず、例えば、100msや1s等、任意の時間を設定可能である。
図6Aは、アクセス種別カウンタ183aの構成を示す図である。図6Bは、アクセス種別カウンタ183bにおけるデータ格納例を示す図である。図6Bに示す様に、アクセス種別カウンタ183bは、各アクセス種別毎に個別のエントリ(計4エントリ)を有し、アクセス種別カウンタ183bには、MACアドレステーブル171へのアクセス回数が、その処理内容を表す種別(アクセス種別)毎に保持される。アクセス種別カウンタ183bのカウンタ値(アクセス回数)は、MACアドレステーブル171に何れかのアクセスが発生する度に更新されていくため、アクセス監視回路18は、上記カウンタ値を参照することで、アクセス比率の現状値をその種別毎に常時把握することができる。
アクセス制御回路17は、アクセス監視回路18による上記カウンタ値の監視結果に基づき、MACアドレステーブル171へのアクセスを行うか否かを決定する。決定に際して、アクセス監視回路18は、アクセス種別カウンタ183bを参照するが、アクセス種別カウンタ183bのカウンタ値は、上述のクリア時間テーブル182bにより、クリア時間単位での平準化が図られている。したがって、アクセス制御回路17は、上記監視結果を基にアクセスの許否を判定することで、最新の通信状態が反映された数値に基づき、アクセスを実行するか否かを決定することができる。その結果、ブリッジ装置10は、より信頼性の高い判断を、アクセス種別毎に行うことが可能となる。
ここで、アクセス許否判定では、MACアドレステーブル171へのアクセス比率の設定値(図4B参照)と現状値とが比較照合されるが、MACアドレステーブル171へのアクセス比率の現状値は、対応する種別のアクセス回数÷上記最大アクセス回数により算定可能である。例えば、(A)のMAC DA検索のためのアクセスが要求された場合、アクセス監視回路18は、アクセス比率の現状値を“20%(=(3000/15000)×100)” と算出する。再び図4Bを参照すると、アクセス比率設定テーブル181bには、対応するアクセス種別のアクセス比率として“10%”が設定されている。したがって、現状値“20%”>設定値“10%”の関係が成り立つので、アクセス監視回路18は、(A)のアクセス比率を減少させるため、アクセス制御回路17によるMACアドレステーブル171へのアクセスを禁止する。これに対して、(B)のMAC SA検索のためのアクセスが要求された場合には、アクセス監視回路18は、アクセス比率の現状値を“53%(=(8000/15000)×100)” と算出する。アクセス比率設定テーブル181bには、対応するアクセス比率として“78%”が設定されているため、依然アクセスしても問題ない。したがって、アクセス監視回路18は、アクセス制御回路17に対し、MACアドレステーブル171へのアクセスを許可し、アクセス制御回路17は、(B)のアクセスを行う。
同様に、(C)のMAC学習のためのアクセスが要求された場合、アクセス監視回路18は、アクセス比率の現状値を“2.6%(=(400/15000)×100)”と算出する。図4Bを参照すると、アクセス比率設定テーブル181bには、対応するアクセス種別のアクセス比率として“9%”が設定されている。したがって、現状値≦設定値の関係が成り立つので、アクセス制御回路17は、(C)のアクセス比率の不足を補うため、MACアドレステーブル171へのアクセスを実行する。これに対して、(D)のエージングのためのアクセスが要求された場合には、アクセス比率の現状値は、“1.3%(=(200/15000)×100)”と算出される。アクセス比率設定テーブル181bには、対応するアクセス比率として“3%”が設定されているため、現状値は設定値に満たず、依然アクセス可能である。したがって、アクセス制御回路17は、アクセス監視回路18からの指示に従い、MACアドレステーブル171にアクセスする。
バッファ管理テーブル184bは、バッファ18aの監視の要否、及び、アクセス比率の可変的調整の要否を決定するために参照されるテーブルである。アクセス監視回路18は、バッファ管理テーブル184bを参照することで、各種別(A)〜(D)に該当するアクセスが突発的に増加した場合でも、MACアドレステーブル171へのアクセス数が、許容される最大のアクセス数を超えない様に制御する。なお、本実施例では、バッファ18aに蓄積可能なフレーム数の最大値は、100フレームとする。
図7Aは、バッファ管理テーブル184aの構成を示す図である。図7Bは、バッファ管理テーブル184bにおけるデータ格納例を示す図である。図7Bに示す様に、バッファ管理テーブル184bには、バッファ監視フラグF1と調整開始用閾値H1(High Water Mark(HWM)閾値)と調整解除用閾値L1(Low Water Mark(LWM)閾値)とがそれぞれ設定される。バッファ監視フラグF1は、アクセス監視回路18がバッファ18aの監視を行うか否かを決定する際の指標となる情報である。すなわち、バッファ監視フラグF1として“1”が設定されている場合には、アクセス監視回路18は、バッファ18a内に蓄積されているフレームの総数をカウントするが、“0”が設定されている場合には、カウントを行わない。バッファ監視フラグF1は、ブリッジ装置10の属するネットワークの帯域幅や通信速度、装置仕様(例えば、メモリ容量)、フレームの属性(データ長や種別)等に応じて、ネットワークの管理者や通信事業者によって適宜変更可能である。
調整開始用閾値H1は、ブリッジ装置10が空きエントリ率に応じたアクセス比率の調整処理を実行するか否かを決定する際の指標となる。図7Bでは、調整開始用閾値H1として“70フレーム”が設定されている。したがって、バッファ18a内に蓄積されたフレーム数(滞留数)が、調整開始用閾値H1である70フレーム以上ある場合、ブリッジ装置10は、アクセス制御フラグF2に“1”を設定することで、MACアドレステーブル171へのアクセスの比率を調整するトリガーを与える。バッファ管理テーブル184bには調整解除用閾値L1(例えば、50フレーム)も設定されており、一旦、アクセス比率の調整処理が開始されると、バッファ18a内の蓄積フレーム数が該閾値L1以下となるまで、継続して実行される。そして、バッファ18a内の蓄積フレーム数が調整解除用閾値L1に達した時点で、アクセス制御フラグF2は“0”に更新され、空きエントリ率に応じたアクセス比率の調整処理は解除される。
なお、本実施例では、アクセス比率調整の要否を決定するための閾値として、上限値70、下限値50のフレーム数を例示したが、これらの閾値についても、適切な値に適宜変更可能である。すなわち、調整開始用閾値H1と調整解除用閾値L1とは、ブリッジ装置10の属するネットワークの帯域幅や通信速度、輻輳状態、あるいは、装置仕様(例えば、メモリ容量)、フレームの属性(データ長や種別)等に応じて、ネットワークの管理者や通信事業者によって適宜更新可能である。
次に、動作を説明する。図8は、実施例1に係るブリッジ装置10の動作を説明するためのフローチャートの前半部分である。まずS1では、アクセス監視回路18は、バッファ管理テーブル184のバッファ監視フラグF1に“1”が設定されているか否かを判定する。該判定の結果、“1”が設定されている場合(S1;Yes)、アクセス監視回路18は、バッファ18aの監視を開始する。監視の結果、バッファ18a内に現在蓄積されているフレームの数が、バッファ管理テーブル184の調整開始用に設定されている閾値H1(例えば、70)以上である場合(S2;Yes)、アクセス監視回路18は、空きエントリ率に応じたアクセス調整が必要と判断する。このため、アクセス監視回路18は、上述したアクセス制御フラグF2に“1”の値を設定する(S3)ことで、ブリッジ装置10の各構成部分に対し、アクセス比率の調整処理を開始するトリガーを与える。
一方、S2において、バッファ18a内に現在蓄積されているフレームの数が調整開始用閾値H1未満である場合(S2;No)、アクセス監視回路18は、続いて、上記蓄積されているフレームの数と、バッファ管理テーブル184の調整解除用に設定されている閾値L1(例えば、50)との大小関係を比較する。該比較の結果、上記蓄積されているフレームの数が調整解除用閾値L1以下である場合(S4;Yes)、アクセス監視回路18は、空きエントリ率に応じたアクセス調整が不要となったものと判断する。このため、アクセス監視回路18は、上述したアクセス制御フラグF2を“0”に更新する(S5)ことで、ブリッジ装置10の各構成部分に対し、アクセス比率の調整処理を解除(終了)するトリガーを与える。
なお、S4において、上記蓄積されているフレームの数が調整解除用閾値L1を超える値の場合(S4;No)には、アクセス監視回路18は、アクセス制御フラグF2を現在の設定値から変更することなく、S6の処理に移行する。
S6では、アクセス監視回路18は、アクセス制御フラグF2の現在の設定値を確認する。アクセス制御フラグF2に“1”が設定されている場合(S6;Yes)には、アクセス監視回路18は、アクセス比率の調整のため、エントリ数管理テーブル172から現在の登録エントリ数(例えば、150)を取得する(S7)。なお、上記S1における判定の結果、バッファ監視フラグF1に“0”が設定されている場合(S1;No)にも、S2〜S6の各処理は省略され、同様に、現在の登録エントリ数がテーブルから取得される(S7)。S8では、アクセス監視回路18は、S7で取得されたエントリ数を用いて、MACアドレステーブル171における現在の空きエントリ率を算出する。
図9に移り、図9は、実施例1に係るブリッジ装置10の動作を説明するためのフローチャートの後半部分である。S9〜S19では、アクセス監視回路18は、MACアドレステーブル171における現在の空きエントリ率に応じたアクセス比率の設定値を、アクセス比率設定テーブル181からそれぞれ取得する。具体的には、空きエントリ率が80%以上100%以下の場合(S9;Yes)、アクセス監視回路18は、アクセス比率設定テーブル181を参照し、上記範囲に対応するアクセス比率の設定値(図4Bでは、(A)〜(D)=10%、78%、9%、3%)を取得する(S10)。取得後は、後述するS20の処理に移行する。
空きエントリ率が60%以上80%未満の場合(S11;Yes)も同様に、アクセス監視回路18は、アクセス比率設定テーブル181を参照し、上記範囲に対応するアクセス比率の設定値(図4Bでは、(A)〜(D)=30%、60%、7%、3%)を取得する(S12)。また、空きエントリ率が40%以上60%未満の場合(S13;Yes)、アクセス監視回路18は、アクセス比率設定テーブル181を参照し、上記範囲に対応するアクセス比率の設定値(図4Bでは、(A)〜(D)=46%、46%、5%、3%)を取得する(S14)。更に、空きエントリ率が20%以上40%未満の場合(S15;Yes)にも、アクセス監視回路18は、アクセス比率設定テーブル181を参照し、上記範囲に対応するアクセス比率の設定値(図4Bでは、(A)〜(D)=64%、30%、3%、3%)を取得する(S16)。
そして、空きエントリ率が0%超20%未満の場合(S17;Yes)、アクセス監視回路18は、アクセス比率設定テーブル181を参照し、上記範囲に対応するアクセス比率の設定値(図4Bでは、(A)〜(D)=86%、10%、1%、3%)を取得する(S18)。また、MACアドレステーブル171に空きエントリが存在しない場合(S17;No)、アクセス監視回路18は、アクセス比率設定テーブル181を参照し、空きエントリ率が“0%”に対応するアクセス比率の設定値(図4Bでは、(A)〜(D)=92%、5%、0%、3%)を取得する(S19)。
アクセス比率が取得されると、アクセス監視回路18は、クリア時間テーブル182から上記クリア時間の設定値(例えば、1ms)を取得する(S20)。S21では、アクセス監視回路18は、MACアドレステーブル171に固有の最大アクセス性能(例えば、15Mpps)と、S20で取得された上記クリア時間とを用いて、上記クリア時間内でのMACアドレステーブル171の最大アクセス回数を算出する(S21)。
次に、アクセス監視回路18は、アクセス種別カウンタ183から、MACアドレステーブル171へのアクセス回数を、アクセス種別(A)〜(D)毎に取得する(S22)。アクセス監視回路18は、S22で取得されたアクセス回数から、全アクセス回数に対する各種別のアクセス回数を特定し、MACアドレステーブル171へのアクセス比率の現状値を、アクセス種別毎に算出する(S23)。S24では、アクセス監視回路18は、S23で算出されたアクセス比率の現状値を、上記S10、S12、S14、S16、S18、S19で取得された設定値と、アクセス種別毎に比較する。
S24における比較の結果、現状値が設定値以下の場合(S24;Yes)には、アクセスを許可してもアクセス比率が適正な範囲内に維持されるとの判断が可能である。そこで、アクセス監視回路18は、対応するアクセス種別の処理の実行を、アクセス制御回路17に指示する(S25)。併せて、アクセス監視回路18は、許可されたアクセス処理の実行をカウンタ値に反映させるため、アクセス種別カウンタ183における、対応するアクセス種別の値を現状値から“1”インクリメントする(S26)。一方、S24において、現状値が設定値を超えている場合(S24;No)には、アクセスを禁止しない限り、アクセス比率が適正な範囲を脱してしまう可能性があるとの判断が可能である。したがって、アクセス監視回路18は、上記S25、S26の各処理を省略し、対応するアクセス種別の処理の実行を、アクセス制御回路17に指示することなく、一連の処理を終了する。
なお、図8のS6において、アクセス制御フラグが“0”に設定されている場合(S6;No)には、アクセス監視回路18は、空きエントリ率に応じたアクセス比率の可変的調整は不要であるものと判断し、S7〜S24の処理を省略する。そして、上述したS25、S26の処理を実行する。
ここで、本実施例では、ブリッジ装置10は、空きエントリ率の変動に迅速に追従するために、所定の時間間隔(例えば、1ms)で、必要に応じて、MACアドレステーブル171へのアクセス比率を更新する。このため、アクセス監視回路18は、上記クリア時間が経過する度に、アクセス種別カウンタ183のカウンタ値を、初期値である“0”に戻す必要がある。図10は、アクセス種別カウンタ183のリセット処理を説明するためのフローチャートである。S31では、アクセス監視回路18は、初期状態または前回のリセットの時点からの経過時間を監視する。アクセス監視回路18は、クリア時間テーブル182に設定されているクリア時間(例えば、1ms)の到来を監視し(S31)、到来を検知した場合(S31;Yes)、クリア時間の経過に伴うアクセス種別カウンタ183のリセットを実行する(S32)。
以上説明した様に、ブリッジ装置10は、MACアドレステーブル171とアクセス監視回路18とアクセス制御回路17とを少なくとも有する。MACアドレステーブル171は、フレームの送信元及び宛先を記憶する。アクセス監視回路18は、MACアドレステーブル171の空き状況に応じて、MACアドレステーブル171へのアクセスの種別毎に該アクセスの比率を決定する。アクセス制御回路17は、アクセス監視回路18により決定された比率(上記設定値)と、MACアドレステーブル171に対して現に実行されたアクセスの比率(上記現状値)とを用いて、MACアドレステーブル171へのアクセスを実行するか否かの制御を行う。具体的には、ブリッジ装置10は、現に実行されたアクセスの比率がアクセス監視回路18により決定された比率と一致する様に、設定値が高ければアクセスを実行し、低ければアクセスを実行しないといった調整を図る。
通信制御装置としてのブリッジ装置10において、記憶部(例えば、MACアドレステーブル171)は、例えば、ハードディスク、Read Only Memory(ROM)、フラッシュメモリ等の不揮発性記憶装置の他、Synchronous Dynamic Random Access Memory(SDRAM)等のRAMの様な独立したデバイスの形態を有する。記憶部は、その他の形態として、回路に組み込まれていてもよい。決定部(例えば、アクセス監視回路18)は、例えば、回路の形態を有する。あるいは、決定部は、例えば、Field Programmable Gate Array(FPGA)の様な独立したデバイスの形態を有していてもよい。その他の形態として、決定部は、Central Processing Unit(CPU)、Digital Signal Processor(DSP)等のプロセッサや、プロセッサにより制御されるソフトウェアの形態を有していてもよい。同様に、制御部(例えば、アクセス制御回路17)は、例えば、回路、独立したデバイス、FPGA、プロセッサや、プロセッサにより制御されるソフトウェアの形態を有するものとしてもよい。
更に、ブリッジ装置10は、他のハードウェア構成要素として、管理者が、空きエントリ率に応じたアクセス比率の設定及び更新等を行うための入力装置、及び、アクセス比率の設定値や現状値の確認等を行うための表示装置を有することもできる。入力装置は、例えば、キーボード、マウス、タッチパネルにより構成され、表示装置は、例えば、Liquid Crystal Display(LCD)、Electro Luminescence Display(ELD)により構成される。
ブリッジ装置10において、アクセス監視回路18は、MACアドレステーブル171に記憶されている、上記フレームの送信元の数(MAC学習数)に基づき、上記フレームの宛先をMACアドレステーブル171から検索するためのアクセス(MAC DA検索)の比率を決定するものとしてもよい。より具体的には、アクセス監視回路18は、MACアドレステーブル171に記憶されている、上記フレームの送信元の数(MAC学習数)が少ない程、上記フレームの宛先をMACアドレステーブル171から検索するためのアクセスの比率が低くなる様に、該比率を決定するものとしてもよい。これにより、ブリッジ装置10は、MAC学習数が少ない場合には、MAC DA検索によるアクセス比率を減少させる一方、MAC学習数が多い場合には、MAC DA検索によるアクセス比率を増加させる制御が可能となる。
上述した様に、ブリッジ装置10は、MACアドレステーブル171に対する異なる複数のアクセス処理に対して、任意のアクセス比率を装置外部から設定可能とする。また、ブリッジ装置10は、現在のアクセス比率(現状値)を、装置外部のモニタ等から常時監視可能とする。これにより、ブリッジ装置10は、装置の運用中であっても、ネットワークの運用形態に合わせて、最適なアクセス比率の再設定を可能とする。
本実施例に係るブリッジ装置10によれば、メモリへの負荷の低い効率的なメモリアクセスを実現することができる。これにより、例えば100Gbps程度の広帯域なネットワーク上においても、ブリッジ装置10は、比較的廉価なメモリで、高頻度のメモリアクセスに対応することができる。その結果、ブリッジ装置10は、コストの増加を抑制しつつ、メモリに対する多数のアクセス要求を満足することが可能となる。同様に、広帯域なネットワーク上においても、ブリッジ装置10は、比較的低速なメモリで、高頻度のメモリアクセスに対応することができる。その結果、ブリッジ装置10は、消費電力や発熱量の増加を抑制しつつ、メモリに対する多数のアクセス要求を満足することが可能となる。
本実施例に係るブリッジ装置10は、MACアドレステーブル171を格納するメモリ(例えば、Ternary Content Addressable Memory(TCAM)、Static Random Access Memory(SRAM)、Dynamic Random Access Memory(DRAM)等)へのアクセス性能(例えば、MAC学習性能)が不足する場合への適用が、特に好適である。すなわち、フレームの入力レートをXpacket per second(pps)とすると、ブリッジ機能に要求されるアクセス性能は、下記算定式(1)により算出可能である。
要求されるアクセス性能=(MAC DA検索性能+MAC SA検索性能+MAC学習性能)+エージング性能=3X+(MACアドレステーブルエントリ数/最小エージング時間)・・・(1)
しかしながら、高速化によるフレームデータの増加に伴い、MACアドレステーブル171を有するメモリへのアクセス頻度も増加しつつある。かかる状況に適切に対応するためには、メモリ自体の性能を向上させることも有効ではあるが、要求されるアクセス性能を満たすメモリは、一般的に、高速であるが故に、高価であると共に、消費電力や発熱量が高い。そこで、本実施例に係るブリッジ装置10は、MACアドレステーブル171内の空きエントリ率に応じて、該テーブルへのアクセス種別(上記(A)〜(D))毎のアクセス割合を可変的に設定することで、アクセス性能の動的な調整を可能とする。これにより、効率的なメモリアクセスが実現されるため、メモリ自体に要求される性能は低減される。換言すれば、高速なメモリを使用しなくとも、通信速度の高速化に対応することができる。その結果、装置の低コスト化や低消費電力化が可能となる。
具体的には、例えば、MACアドレステーブル171の空きエントリ率が80〜100%と高く、MAC学習数の少ない場合、通常、ブリッジ装置10により受信されたフレームの殆どは、MAC DA検索にはヒットしない。その結果、これらのフレームは、フラッディング(例えば、ブロードキャスト)されることとなる。すなわち、ブリッジ装置10は、MAC学習数が少ない段階で、MAC DAの検索を行っても、所望のMAC DAの検出は見込めないことから、MAC DA検索のためのアクセスは、あまり効果的ではない。したがって、メモリへのアクセス効率を高める観点からは、ブリッジ装置10は、MAC DA検索のためのアクセス比率を減少させてでも、MAC SA検索やMAC学習のためのアクセスを増加させることが望ましい。
一方、例えば、MACアドレステーブル171の空きエントリ率が0〜20%と低く、MAC学習数が多い場合には、MACアドレステーブル171には、空きエントリが殆ど存在しない。このため、仮に、ブリッジ装置10により受信されたフレームのMACアドレスが未登録であったとしても、メモリ容量が不足しているため、MACアドレステーブル171へのMAC学習はあまり期待できない。また、受信されたフレームのMACアドレスが、MACアドレステーブル171に既に登録されている可能性も高い。したがって、この様な状況では、ブリッジ装置10は、メモリへのアクセス効率を高める観点から、MAC SA検索やMAC学習によるアクセス比率を抑制し、その分、MAC DA検索のためのアクセスを増加させることが望ましい。
更に、エージングに関し、エージングの周期は、通常10秒〜5分程度であることから、エージングのためのアクセス頻度は、他の処理(アクセス種別)のためのアクセス頻度と比較して、それほど高くする必要は無い。但し、ブリッジ装置10は、MACアドレステーブル171からエントリ情報を確実に削除可能とするため、エージングに関し、少なくとも所定比率(例えば、3%以上)のアクセスは、常時必要となる。すなわち、ブリッジ装置10は、エージングのアクセス比率を、エントリを所定周期で確実に抹消可能な範囲内で、最も低い値(例えば、3%)に設定すれば十分である。ブリッジ装置10は、エージング処理のアクセス比率をより低い値に設定することで、その分、他の処理のアクセス比率を増加させることができる。なお、エージングのアクセス比率は、MACアドレステーブル171の空きエントリ率に拘らず、固定的な値(例えば、3%)を採ることもできるが、空きエントリ率に応じて、異なる値を設定することも勿論可能である。例えば、ブリッジ装置10は、空きエントリ率が低くメモリ容量に余裕のない場合には上記アクセス比率を低目の値(例えば、3%)に設定する一方で、空きエントリ率が高くメモリ容量に余裕のある場合には、高目の値(例えば、5〜7%)に設定するという様な可変的な設定も可能である。
特に、本実施例に係るブリッジ装置10は、アクセス比率の可変的制御に先立ち、MACアドレステーブル171へのアクセス状況をバッファ18aにて監視する。バッファ18aにフレームが滞留していない場合、ブリッジ装置10は、各アクセス種別(A)〜(D)の処理に起因するアクセスの状況を監視しないが、滞留している場合には、上記アクセス状況の監視を行う。ブリッジ装置10は、空きエントリ率に応じたアクセス比率の可変的制御の実行要否を判定する際、高低2種類の閾値を使用する2段階閾値制御方式を採る。これにより、バッファ18aに蓄積されているフレームの数が2種類の閾値L1、H1の間に収まっている間は、アクセス比率の可変的制御は、継続して実行されることとなる。したがって、閾値境界付近におけるテーブルアクセス制御の開始、解除のばたつきが抑制される。その結果、安定したアクセス比率の調整が可能となる。
次に、実施例2について説明する。図11は、実施例2に係るブリッジ装置の構成を示す図である。図11に示す様に、実施例2に係るブリッジ装置の構成は、統計管理テーブル、及び統計情報テーブルを新たに設ける点を除き、図1に示した実施例1に係るブリッジ装置10の構成と同様である。したがって、共通する構成要素には、同一の参照符号を付すと共に、その詳細な説明は省略する。実施例2が実施例1と異なる点は、ブリッジ装置10が、MACアドレステーブル171へのアクセスの実行または未実行時に、統計情報の収集を可能とした点である。図11に示す様に、ブリッジ装置10は、統計管理テーブル185と統計情報テーブル186とを有することで、アクセス回数と未アクセス回数とをアクセス種別毎にカウント(計数)し、その結果を統計情報として収集する。
図12Aは、統計管理テーブル185の構成を示す図である。また、図12Bは、統計管理テーブル185におけるデータ格納例を示す図である。図12Bに示す様に、統計管理テーブル185は、1エントリで構成され、統計管理テーブル185には、統計収集フラグF3が設定されている。統計収集フラグF3は、ブリッジ装置10が統計情報の収集を行うか否かを判断する際の指標として使用される。すなわち、統計収集フラグF3が“1”に設定されている場合には、アクセス監視回路18は、統計情報の収集を行うが、“0”に設定されている場合には、統計収集の処理は省略される。
図13Aは、統計情報テーブル186aの構成を示す図である。図13Bは、統計情報テーブル186bにおけるデータ格納例を示す図である。図13Bに示す様に、統計情報テーブル186は、4エントリで構成され、統計情報テーブル186には、アクセス回数と未アクセス回数とが、統計カウンタとして、その種別毎に保持される。アクセス回数は、アクセス監視回路18によってアクセスが許可されたことに伴い、アクセス制御回路17が、MACアドレステーブル171へのアクセス処理を実際に行った回数(実測値)である。これに対して、未アクセス回数は、何れかの種別のアクセスが要求されたにも拘らず、アクセス監視回路18によってアクセスが許可されなかったことに伴い、アクセス制御回路17が、MACアドレステーブル171へのアクセス処理を実行に移さなかった回数(実測値)である。
次に、動作を説明する。以下においては、実施例2に係るブリッジ装置10の動作を、図14、図15を参照しながら、実施例1との相違点を中心として説明する。図14は、実施例2に係るブリッジ装置10の動作を説明するためのフローチャートの前半部分である。図14は、実施例1に係る動作の説明において参照した図8と同様であることから、共通するステップには、末尾が同一の参照符号を付すと共に、その詳細な説明は省略する。図15は、実施例2に係るブリッジ装置10の動作を説明するためのフローチャートの後半部分である。図15は、実施例1に係る動作の説明において参照した図9と、同様の処理を含むことから、共通するステップには、末尾が同一の参照符号を付すと共に、その詳細な説明は省略する。具体的には、図14のステップT1〜T8は、図8に示したステップS1〜S8にそれぞれ対応する。また、図15のステップT9〜T26の各処理は、図9に示したステップS9〜S26の各処理と同様である。
T27では、アクセス監視回路18は、統計管理テーブル185を参照し、該テーブルに設定されている統計収集フラグF3の値が“1”であるか否かを判定する。判定の結果、統計収集フラグF3=1である場合(T27;Yes)、アクセス監視回路18は、アクセス処理の実行を統計情報に反映させるため、統計情報テーブル186の統計カウンタにおける、対応するアクセス種別の値を現状値から“1”インクリメントする(T28)。一方、T27において、統計収集フラグF3=0である場合(T27;No)には、アクセス監視回路18は、T28の処理を省略し、統計情報を収集することなく、一連のアクセス比率調整処理を終了する。
T29、T30では、アクセス比率の現状値が設定値を超えているという判定結果(T24;No)を受けて、T27、T28と同様の処理が実行される。すなわち、T29では、アクセス監視回路18は、統計管理テーブル185に設定されている統計収集フラグF3の値が“1”であるか否かを判定する。判定の結果、統計収集フラグF3=1である場合(T29;Yes)、アクセス監視回路18は、対応するアクセス種別の統計カウンタ値を現状の値から“1”インクリメントする(T30)。これに対し、T29において、統計収集フラグF3=0である場合(T29;No)には、アクセス監視回路18は、T30の処理を省略し、一連の処理を終了する。
なお、実施例2においても、クリア時間の経過に伴うアクセス種別カウンタのリセット処理(図10参照)は、実施例1と同様に実行される。
上述した様に、実施例2に係るブリッジ装置10は、アクセス監視回路18とアクセス制御回路17とを少なくとも有する。アクセス監視回路18は、MACアドレステーブル171に対するアクセスが許可されたアクセス回数と、MACアドレステーブル171に対するアクセスが拒否された未アクセス回数とを、アクセスの種別(A)〜(D)毎に計数する。アクセス制御回路17は、アクセス監視回路18により計数された上記アクセス回数と上記未アクセス回数とを用いて、MACアドレステーブル171へのアクセスを制御する。例えば、アクセス監視回路18は、アクセス回数が未アクセス回数に比して過度に少ない種別のアクセスを許可する回数を増加させることで、アクセス制御回路17によるMACアドレステーブル171へのアクセスを増やす。また、例えば、アクセス監視回路18は、アクセス回数が未アクセス回数に比して過度に多い種別のアクセスを拒否する回数を増加させることで、未アクセス回数を増やし、アクセス制御回路17によるMACアドレステーブル171へのアクセスを減らす。
すなわち、実施例2に係るブリッジ装置10は、空きエントリ率に応じてアクセス比率を変動する制御を行うのみならず、MACアドレステーブル171へのアクセス回数と未アクセス回数とをカウントする。このカウントは、アクセスの目的を表すアクセス種別単位で行われるので、ブリッジ装置10は、加減乗除により、カウント値を、新たなアクセス比率の再設定に活用することができる。例えば、図13Bに示す様に、(A)MAC DA検索につき、アクセス回数が“3000”回、未アクセス回数が“5000”回である場合、未アクセス回数がアクセス回数を大幅に上回っている。このため、管理者は、MAC DA検索の不足を防止するため、MAC DA検索のアクセス比率を上げて微調整を図る等の再設定が可能である。また、(B)MAC SA検索につき、アクセス回数が“8000”回、未アクセス回数が“1000”回である場合、管理者は、過剰なアクセスを抑制するため、MAC SA検索のアクセス比率を低下させる調整を行う、といった統計情報の利用が可能である。
なお、上記各実施例においては、ブリッジ装置10は、MACアドレステーブル171に対するアクセス調整をハードウェアにより実現するものとしたが、ソフトウェア(例えば、ポリサー等)により実現するものとしてもよい。また、ブリッジ装置10による登録(学習)及び削除の対象は、MAC SA検索により検索されたフレーム送信元情報としたが、これに限らず、例えば、MAC DA検索により検索されたフレーム宛先情報であってもよい。更に、上記各実施例では、MACアドレステーブル171の空きエントリ率に応じたアクセス比率の調整を行う主体として、データリンク層のネットワーク機器であるブリッジ装置を例示した。しかしながら、上記各実施例は、レイヤを問わず、メモリを有する他のネットワーク機器(例えば、ハブ、リピータ、ルータ、ゲートウェイ、スイッチ)に対しても適用可能である。また、フレームに関しても、Transmission Control Protocol/Internet Protocol(TCP/IP)のパケット、Asynchronous Transfer Mode(ATM)のセル等、他のProtocol Data Unit(PDU)に対しても、上記各実施例を適用することができる。
また、上記各実施例では、MACアドレステーブル171に対するアクセスの種別は、(A)MAC DA検索、(B)MAC SA検索、(C)MAC学習、(D)エージングの4種類を例示したが、2種類以上であればよい。また、アクセスの目的に関しても、フレームの宛先の検索、フレームの送信元の検索、記憶(登録)、削除に限らず、フレーム宛先の記憶、削除、あるいは、宛先や送信元の表示、修正等、例示とは異なる目的のアクセスであってもよい。
また、上記各実施例では、ブリッジ装置10は、バッファ管理テーブル184bを用いたバッファ管理を、アクセス種別に拘らず、受信された全てのフレームを対象として実行するものとした。しかしながら、かかる態様に限らず、ブリッジ装置10は、バッファ18aの監視の要否、及び、アクセス比率の可変的調整の要否を決定する処理についても、アクセス比率の調整自体の処理と同様、アクセス種別毎に実行するものとしてもよい。この場合、ブリッジ装置10は、調整開始用閾値H1と調整解除用閾値L1との各値を、それぞれのアクセス種別(A)〜(D)毎に個別に設定することとなるが、これにより、通信環境の変化に応じた、より柔軟性の高いバッファ管理が可能となる。
更に、上述の空きエントリ率は空きエントリ数でもよく、アクセス比率はアクセス数でもよい。また、上記各実施例では、ブリッジ装置10は、空きエントリ率を段階的に設定するものとしたが、連続的あるいは線形的に設定するものとしてもよい。これにより、より木目細やかなアクセス比率の調整が可能となる。加えて、空きエントリ率は、0%を含め、20%刻みで6段階に設定されるものとしたが、段階数は、25%刻みで5段階、10%刻みで11段階という様に、任意の値を採ることができる。1段階当たりの比率についても、必ずしも均等である必要はない。例えば、登録エントリ数の多い0〜40%までは20%単位で割り当て、登録エントリ数の少ない40〜80%の範囲は10%単位、更に少ない80〜100%の範囲は5%単位で割り当てるという様な不均一な段階設定も可能である。これにより、空きエントリ数に応じて過不足の少ない、より効率的かつ柔軟性の高いアクセス比率の決定が可能となる。
上記各実施例では、アクセス比率設定テーブル181、クリア時間テーブル182、及びバッファ管理テーブル184における各設定値は、例えば、ネットワーク管理者といった人による操作によって、設定及び更新されるものとした。しかしながら、ブリッジ装置10が、上記各設定値を自動的に設定及び更新するものとしてもよい。その際、ブリッジ装置10は、得られた統計情報を用いて、新たなアクセス比率やクリア時間、閾値等の設定を行う。これにより、統計管理の結果を評価及び反映(フィードバック)して、より実状に即した最適なアクセス比率による制御が実現される。したがって、ブリッジ装置10は、高精度に設定されたアクセス比率に従い、より正確なアクセス制御を行うことが可能となる。その結果、ブリッジ装置10の信頼性が向上する。
また、上記各実施例においては、ブリッジ装置10の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的態様は、図示のものに限らず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することもできる。例えば、アクセス監視回路18とアクセス制御回路17、MAC DA検索回路13とMAC SA検索回路15、あるいは、各テーブル171、172b、181b、182b、184bをそれぞれ1つの構成要素として統合してもよい。反対に、アクセス監視回路18に関し、アクセス比率の調整を行う部分と、バッファ18aの管理を行う部分とに分散してもよい。また、アクセス制御回路17に関し、アドレスの検索、登録、削除を行う部分と、エントリ数の減算を指示する部分とに分散してもよい。更に、上記各テーブルやカウンタを保持するメモリを、ブリッジ装置10の外部装置として、ネットワークやケーブル経由で接続する様にしてもよい。