(57)【要約】【課題】装置の再立ち上げ等の装置運用を停止せず、かつ、バッファ量等処理デバイスの内部リソースを増やすことなく、全ポートを同時に使用することができるようにする。【解決手段】本発明のバッファ制御装置は、１又は複数のポートのそれぞれから入力したデータを一時的に蓄積して出力するバッファ手段のバッファ量を制御するバッファ制御装置において、バッファ手段が、固定的なバッファサイズからなる固定量バッファメモリを複数有するものであり、各ポートの接続状態を監視する接続状態監視手段と、接続状態監視手段により監視された各ポートの接続状態に基づき、各ポートに割り当てるバッファ量を、固定量バッファメモリ数で決定するバッファ割当決定手段と、各ポートに入力されたデータを、バッファ割当決定手段により各ポートに割り当てられた固定量バッファメモリに振り分けるデータ振分手段とを備えることを特徴とする。【選択図】      図１
2008060700.tif 000002
【特許請求の範囲】
【請求項１】
１又は複数のポートのそれぞれから入力したデータを一時的に蓄積して出力するバッファ手段のバッファ量を制御するバッファ制御装置において、
上記バッファ手段が、固定的なバッファサイズからなる固定量バッファメモリを複数有するものであり、
上記各ポートの接続状態を監視する接続状態監視手段と、
上記接続状態監視手段により監視された上記各ポートの接続状態に基づき、上記各ポートに割り当てるバッファ量を、上記固定量バッファメモリ数で決定するバッファ割当決定手段と、
上記各ポートに入力されたデータを、上記バッファ割当決定手段により上記各ポートに割り当てられた上記固定量バッファメモリに振り分けるデータ振分手段と
を備えることを特徴とするバッファ制御装置。
【請求項２】
上記バッファ割当決定手段が、
上記各ポートに割り当てるバッファメモリの優先順位を上記バッファメモリ毎に設定したバッファ割当テーブルと、
上記接続状態監視手段によるリンクポートの検出情報に基づいて上記バッファ割当テーブルを参照し、上記リンクポートに割り当てる上記バッファメモリを決定するバッファメモリ決定部と
を有することを特徴とする請求項１に記載のバッファ制御装置。
【請求項３】
上記バッファ手段が、上記各バッファメモリの次の書込み先を示す次書込アドレス情報を上記データ振分手段に通知し、
上記データ振分手段が、上記バッファ手段からの上記各バッファメモリの上記次書込アドレス情報に基づいて、リンクポートに入力したデータを対応するバッファメモリの次の書込み先から与える
ことを特徴とする請求項１又は２に記載のバッファ制御装置。
【請求項４】
上記各バッファメモリの使用状態を監視するバッファ状態監視手段と、
上記バッファ状態監視手段により使用状態が過多となっている上記バッファメモリが割り当てられているリンクポートに対して割り当てるバッファメモリ数を変更するバッファ割当変更手段と
を備えることを特徴とする請求項１〜３のいずれかに記載のバッファ制御装置。
【請求項５】
１又は複数のポートのそれぞれから入力したデータを一時的に蓄積して出力するバッファ手段のバッファ量を制御するバッファ制御方法において、
上記バッファ手段が、固定的なバッファサイズからなる固定量バッファメモリを複数有するものであり、
接続監視状態手段が、上記各ポートの接続状態を監視する接続状態監視工程と、
上記バッファ割当決定手段が、上記接続状態監視手段により監視された上記各ポートの接続状態に基づき、上記各ポートに割り当てるバッファ量を、上記固定量バッファメモリ数で決定するバッファ割当決定工程と、
データ振分手段が、上記各ポートに入力されたデータを、上記バッファ割当決定手段により上記各ポートに割り当てられた上記固定量バッファメモリに振り分けるデータ振分工程と
を備えることを特徴とするバッファ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バッファ制御装置及びバッファ制御方法に関し、例えば、ネットワーク装置において、受信したパケットを一時的に蓄積するパケットバッファを管理するバッファ制御装置及び方法に適用し得る。
【背景技術】
【０００２】
例えばパケット転送を行なうネットワーク装置は、受信パケットに対してスイッチング処理やルーティング処理等のパケット分析処理を行なうが、このパケット分析処理により生じる瞬間的な送受信転送レート差を吸収するため、例えば特許文献１に記載のように、各ポートに個別のパケットバッファを具備する。
【０００３】
図２及び図３は、最大処理スループット１０Ｇｂｐｓの処理デバイスを有するネットワーク装置における従来のバッファ管理方式を説明する説明図である。
【０００４】
図２に示す処理デバイスは、最大転送レート１Ｇｂｐｓのポートを１０個備え、各ポートに１Ｇバイト容量のバッファを固定的に備えたものである。また、図３に示す処理デバイスは、最大転送レート１０Ｇｂｐｓのポートを１個備え、このポートに１０Ｇ容量のバッファを備えたものである。
【０００５】
ネットワーク装置が備えるパケットバッファのバッファサイズは、例えば、各ポートの最大転送レートや、最大送受信転送レート差や、ネットワーク装置内での許容遅延（レイテンシ）等に応じて決められる。
【０００６】
【特許文献１】特開平１１−３２０５５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、上述した例のように、最大処理スループット１０Ｇｂｐｓの同じ処理デバイスを有するネットワーク装置を構成にもつネットワークシステムであっても、その使用態様によっては、１Ｇｂｐｓのポートを複数必要とする場合もあれば、また、例えばバックボーンネットワーク中継等に対応するため１０Ｇｂｐｓのポートを１個のみ必要であればよいとする場合ある。また、システムの導入当初は１Ｇｂｐｓのネットワーク通信を行なえれば良いが、将来的に１０Ｇｂｐｓのネットワーク通信に切り換える予定がある若しくは切り換えたいとする顧客があり、その要望するに応える必要がある。
【０００８】
このように、近年はシステムの使用態様が多様化しており、それぞれの使用態様の変化に応じてバッファサイズの異なる処理デバイスを用意することはコストが増大するため、通信状況に応じてバッファサイズを変更できるものが強く望まれている。
【０００９】
従来、これに対する対応策として、例えば、図４に示すような構成の処理デバイスを有するネットワーク装置がある。図４に示す処理デバイスは、１Ｇｂｐｓ対応のポートに対応する専用のバッファを１０個と、１０Ｇｂｐｓ対応の１個のポートに対応するバッファを１個とを予め備えておき、システムの使用態様に応じていずれかのバッファを選択的に切り換えて用いるものとする。
【００１０】
そのため、図４に示すような従来の装置は、１Ｇｂｐｓ対応の１０個のポートと１０Ｇｂｐｓ対応の１個のポートとを有するので、計２０Ｇｂｐｓ対応のポートを具備させる必要があった。
【００１１】
しかしながら、図４に示すような従来の装置は、使用するポートを予め限定する必要があるので、ネットワーク装置のセットアップ時に、ポート毎に、その使用ポート専用の設定値の設定や変更等を行なう必要があった。
【００１２】
さらに、全ポートを同時に使用する場合、図４に示すように、バッファ量は２倍となり、かつ、送信側回路において送信レートを１０Ｇｂｐｓにシェーピングする必要があった。
【００１３】
そのため、装置の再立ち上げ等の装置運用を停止せず、かつ、バッファ量等処理デバイスの内部リソースを増やすことなく、全ポートを同時に使用することができるバッファ制御装置及び方法が求められている。
【課題を解決するための手段】
【００１４】
かかる課題を解決するために、第１の本発明のバッファ制御装置は、１又は複数のポートのそれぞれから入力したデータを一時的に蓄積して出力するバッファ手段のバッファ量を制御するバッファ制御装置において、（１）バッファ手段が、固定的なバッファサイズからなる固定量バッファメモリを複数有するものであり、（２）各ポートの接続状態を監視する接続状態監視手段と、（３）接続状態監視手段により監視された各ポートの接続状態に基づき、各ポートに割り当てるバッファ量を、固定量バッファメモリ数で決定するバッファ割当決定手段と、（４）各ポートに入力されたデータを、バッファ割当決定手段により各ポートに割り当てられた固定量バッファメモリに振り分けるデータ振分手段とを備えることを特徴とする。
【００１５】
第２の本発明のバッファ制御方法は、１又は複数のポートのそれぞれから入力したデータを一時的に蓄積して出力するバッファ手段のバッファ量を制御するバッファ制御方法において、（１）バッファ手段が、固定的なバッファサイズからなる固定量バッファメモリを複数有するものであり、（２）接続監視状態手段が、各ポートの接続状態を監視する接続状態監視工程と、（３）バッファ割当決定手段が、接続状態監視手段により監視された各ポートの接続状態に基づき、各ポートに割り当てるバッファ量を、固定量バッファメモリ数で決定するバッファ割当決定工程と、（４）データ振分手段が、各ポートに入力されたデータを、バッファ割当決定手段により各ポートに割り当てられた固定量バッファメモリに振り分けるデータ振分工程とを備えることを特徴とする。
【発明の効果】
【００１６】
本発明によれば、ポートに割り当てるバッファ量を固定量バッファメモリ数により決定することにより、装置の再立ち上げ等の装置運用を停止せず、かつ、バッファ量等処理デバイスの内部リソースを増やすことなく、全ポートを同時に使用することができる。
【発明を実施するための最良の形態】
【００１７】
（Ａ）第１の実施形態
以下、本発明のバッファ制御装置及びバッファ制御方法の第１の実施形態を図面を参照しながら詳細に説明する。
【００１８】
第１の実施形態は、ネットワーク装置が備える処理デバイスにおけるバッファ制御装置に、本発明のバッファ制御装置及びバッファ制御方法を適用する場合を説明する。
【００１９】
（Ａ−１）第１の実施形態の構成
（Ａ−１−１）全体構成
図１は、第１の実施形態に係るネットワーク装置の主なハードウェア構成を示す内部構成図である。
【００２０】
図１に示すように、第１の実施形態に係るネットワーク装置１０は、レイヤ２処理デバイス１、ＰＨＹ・ＭＡＣ処理部２、ネットワークプロセッサ３、記憶部４、ＰＨＹ・ＭＡＣ処理部５、コネクタ６、コネクタ７、を少なくとも有して構成されるものである。
【００２１】
ネットワーク装置１は、受信したパケットのパケットヘッダを分析し、その分析結果に基づいて転送先に向けて受信したパケットを送出するものであり、図１では、ＬＡＮとＷＡＮとの間でパケット中継を実現する中継装置（例えばブロードバンドルータ等）とする。
【００２２】
なお、ネットワーク装置１が接続するネットワークは、いわゆるブロードバンドネットワークであり、パケットサイズが異なるパケットを伝送できるネットワークを想定し、有線回線に限定されず、無線回線を含むネットワークとしてもよい。勿論、ブロードバンドネットワークに限定されず、情報伝送を実現する伝送路に広く適用することができる。
【００２３】
コネクタ７は、ＬＡＮ側のポートであり、ＰＨＹ・ＭＡＣ処理部２と接続するものである。
【００２４】
ＰＨＹ・ＭＡＣ処理部２は、ＬＡＮ側のＰＨＹ・ＭＡＣ処理部であり、ＬＡＮ側のポートであるコネクタ７及びレイヤ２処理デバイス１に接続し、コネクタ７又はレイヤ２処理デバイス１からのパケットについて物理層及びＭＡＣ（メディアアクセス制御）層に対する所定処理を行なうものである。
【００２５】
レイヤ２処理デバイス１は、ＰＨＹ・ＭＡＣ処理部２からパケットを受け取り、受け取ったパケットのパケットヘッダに基づいて、ＬＡＮ側ノード間の通信ルーティング処理や、ＭＡＣフィルタリング処理を行なうものである。また、レイヤ２処理デバイス１は、ＷＡＮ側へ転送するパケットについては、ネットワークプロセッサ３に与えるものである。
【００２６】
また、レイヤ２処理デバイス１は、レイヤ２処理デバイス１の処理による送受信転送レート差を吸収するバッファを管理するバッファ管理部１ａを有する。このバッファ管理部１ａの機能の詳細については後述する。
【００２７】
ネットワークプロセッサ３は、レイヤ２処理デバイス１及びＷＡＮ側のＰＨＹ・ＭＡＣ処理部５と接続しており、レイヤ２処理デバイス１又はＰＨＹ・ＭＡＣ処理部５から受け取ったパケットに対して所定のパケット処理を行ない、ＰＨＹ・ＭＡＣ処理部５又はレイヤ２処理デバイス１に与えるものである。
【００２８】
記憶部４は、処理プログラムや処理に必要な固定データ等を記憶する記憶手段であり、例えばＲＡＭやＲＯＭ等が該当する。所定のパケット処理を実行する際、ネットワークプロセッサ３は、記憶部４に記憶されている処理プログラムを読み出し実行することにより、その機能が実現される。
【００２９】
ＰＨＹ・ＭＡＣ処理部５は、ＷＡＮ側のＰＨＹ・ＭＡＣ処理部であり、ＷＡＮ側のポートであるコネクタ６及びネットワークプロセッサ３に接続し、コネクタ６又はネットワークプロセッサ３からのパケットについて物理層及びＭＡＣ（メディアアクセス制御）層に対する所定処理を行なうものである。
【００３０】
コネクタ６は、ＷＡＮ側のポートであり、ＰＨＹ・ＭＡＣ処理部５と接続するものである。
【００３１】
（Ａ−１−２）バッファ管理部の構成
上述したように、第１の実施形態のバッファ管理部１ａは、レイヤ２処理デバイス１が有するものであり、レイヤ２処理デバイス１によるゆらぎを吸収するために、受け取ったパケットデータをストアするものである。
【００３２】
また、第１の実施形態では、レイヤ２処理デバイス１は、１０Ｇｂｐｓ対応ポートを１個と１Ｇｂｐｓ対応ポートを１０個の計１１個のポートを備えるものとし、１０Ｇｂｐｓ対応ポートをポートＡ、１０個の１Ｇｂｐｓ対応ポートをポートＢ〜ポートＫと示して説明する。
【００３３】
図５は、第１の実施形態のバッファ管理部１ａの内部構成を示す構成図である。図５に示すように、バッファ管理部１ａは、リンク状態監視部１１、バッファ量が固定量である１０個のバッファメモリＮｏ１〜Ｎｏ１０を有するバッファ部１２、各ポートＡ〜Ｋに対応して設けられているデータ振分部１３、調停回路部１２１、を少なくとも有するものである。
【００３４】
なお、図５では、データ振分部１３についてはポートＧに対応するもののみを示し、他のポートについての表示を省略している。
【００３５】
リンク状態監視部１１は、全てのポートＡ〜Ｋのリンク状態を監視しており、ポートＡ〜Ｋのうち１個でもリンク状態が変化した場合、リンクポート別バッファ割当テーブル１１１を参照して、その変化した新しいリンク情報に基づいて、各ポートＡ〜Ｋに割り当てる割当バッファ情報を検索するものである。また、リンク状態監視部１１は、検索した各ポートＡ〜Ｋの割当バッファ情報を、各ポートＡ〜Ｋに対応するデータ振分部１３に与えるものである。
【００３６】
ここで、図６は、リンクポート別バッファ割当テーブル１１１の構成例を説明する説明図である。図６において、第１の実施形態のリンクポート別バッファ割当テーブル１１１は、リンクするポートに割り当てるバッファメモリの優先順位を、バッファ部１２のバッファメモリ毎に対応付けたものである。
【００３７】
バッファ部１２は、バッファ量が固定量である固定量バッファメモリを複数個有するものであり、第１の実施形態では、１０個のバッファメモリＮｏ１〜Ｎｏ１０を有するものである。また、バッファ部１２は、常時又は定期的に、各ポートＡ〜Ｋに対応する全てのデータ振分部１３に対して、全てのバッファメモリＮｏ１〜Ｎｏ１０における次書込アドレス情報を通知するものである。このように、各バッファメモリＮｏ１〜Ｎｏ１０の次書込アドレス情報を各データ振分部１３に通知することにより、割り当てられたバッファメモリＮｏ１〜Ｎｏ１０のストア先をデータ振分部１３に知らせることができる。
【００３８】
データ振分部１３は、ポートＡ〜Ｋのそれぞれに対応して設けられているものであり、リンク状態監視部１１から割当バッファ情報が与えられると、対応ポートＡ〜Ｋが受信したパケットデータを、割当バッファ情報が示すバッファメモリＮｏ１〜Ｎｏ１０に与えるものである。このとき、パケットデータのストア先は、バッファ部１２からの各バッファメモリＮｏ１〜Ｎｏ１０の次書込アドレス情報のアドレス先とする。
【００３９】
調停回路部１２１は、バッファ部１２を構成するバッファメモリＮｏ１〜Ｎｏ１０から送信データを抜き取り、抜き取った送信データをネットワークプロセッサ３に送信するものである。ここで、調整回路部１２１は、全バッファメモリＮｏ１〜Ｎｏ１０からラウンドロビンで１パケットずつ送信データ抜き取り、１パケットずつネットワークプロセッサ３に送信するものとする。これにより、各ポートに割り当てられた転送レート帯域は、使用する固定サイズバッファ数により必然的に決定される。
【００４０】
（Ａ−２）第１の実施形態の動作
次に、第１の実施形態のバッファ管理部１ａによるバッファ管理処理の動作を図面を参照しながら詳細に説明する。
【００４１】
以下の説明において、まず、ポートＡ〜ＫのうちポートＧ〜Ｋの５個のポートがリンクしているものとする（このときの処理をフェーズ１とする）。
【００４２】
（Ａ−２−１）フェーズ１
リンク状態監視部１１は、全ポートＡ〜Ｋがリンクしているか否かを監視し、全ポートＡ〜ＫのうちポートＧ〜Ｋがリンクしていることを検出する。そうすると、リンク状態監視部１１は、リンクポート別バッファ割当テーブル１１１を参照して、ポートＧ〜Ｋのそれぞれに割り当てるバッファメモリＮｏを検索し、その検索したバッファメモリＮｏを割当バッファ情報として各ポートＧ〜Ｋに対応するデータ振分部１３に与える（Ｓ１）。
【００４３】
ここで、ポートＧ〜Ｋに割り当てるバッファメモリＮｏの検索方法について、例えば、ポートＧに割り当てるバッファメモリＮｏを、図６のリンクポート別バッファ割当テーブル１１１を参照して検索する場合を例に挙げて説明する。
【００４４】
図６に示すように、リンクポート別バッファ割当テーブル１１１において、バッファメモリＮｏ１に関する割当優先の順位を見ると、割当優先「１」はポートＢであり、割当優先「２」はポートＡであり、割当優先「３」はポートＧである。そして、リンクしているポートはポートＧ〜Ｋであり、ポートＢ及びポートＡはリンクしていないから、バッファメモリＮｏ１の割当優先「３」としてポートＧへの割り当てが決定する。
【００４５】
上記と同様の検索方法を、全てのバッファメモリＮｏ１〜Ｎｏ１０について、全てのポートＡ〜Ｋに対して行ない、その結果として、図７及び図８に示すように、ポートＧにはバッファメモリＮｏ１及びＮｏ６、ポートＨにはバッファメモリＮｏ２及びＮｏ７、ポートＩにはバッファメモリＮｏ３及びＮｏ８、ポートＪにはバッファメモリＮｏ４及びＮｏ９、ポートＫにはバッファメモリＮｏ５及びＮｏ１０、というように割り当てられる。
【００４６】
このように、第１の実施形態では、リンク状態監視部１１が、リンクポート別バッファ割当テーブル１１１を用いて、リンクポートに対して固定量バッファを割り当てることにより、各ポートに固定的にバッファを割り当てるときと異なり、未使用バッファをリンクポートに割り当てることができる。そのため、固定量バッファ数を変えることにより、リンクポートに対するバッファ量を増やす（ここではバッファ量を２倍とする）ことができる。
【００４７】
リンク状態監視部１１において、リンクしているポートＧ〜Ｋに割り当てるバッファメモリＮｏが検索されると、図５に示すように、リンク状態監視部１１はデータ振分部１３に対して割当アドレス情報（バッファメモリＮｏ１及びＮｏ６とする情報）を与える。
【００４８】
また、バッファ部１２は、常時又は定期的に、全バッファメモリＮｏ１〜Ｎｏ１０における次書込アドレス情報を各ポートに対するデータ振分部１３に通知する（Ｓ２）。
【００４９】
そして、リンク状態監視部１１からの割当アドレス情報がデータ振分部１３に与えられると、データ振分部１３は、割当アドレス情報と次書込アドレス情報とに基づいて、割り当てられたバッファメモリの次書込アドレスが示すメモリ領域に、パケットデータを与えて格納させる（Ｓ３〜Ｓ５）。
【００５０】
例えば、図５では、バッファ部１２からの全バッファメモリＮｏ１〜Ｎｏ１０の次書込アドレス情報がデータ振分部１３に与えられる（Ｓ２）。
【００５１】
このとき、ポートＧに対応するデータ振分部１３に割り当てられたバッファメモリはバッファメモリＮｏ１及びＮｏ６であり、バッファメモリＮｏ１及びＮｏ６の次書込アドレス情報を「１ａ」及び「６ａ」とする。
【００５２】
そうすると、データ振分部１３は、受信したパケットデータをバッファメモリＮｏ１及びＮｏ６の次書込アドレス先の領域にストアするが、割り当てられたバッファメモリは複数あるので、このような場合、データ振分部１３は、バッファメモリＮｏ１〜Ｎｏ１０のメモリ番号が小さいものほど高優先とするラウンドロビンにより、パケットデータを複数のバッファメモリ間で巡回的に格納するものとする。
【００５３】
すなわち、まず、ポートＧに対応するデータ振分部１３は、割り当てられたバッファメモリのうちメモリ番号が最小であるバッファメモリＮｏ１の次書込アドレス先「１ａ」の領域に、受信したパケットデータをストアする（Ｓ３）。
【００５４】
次に、受信したパケットデータについて、ポートＧに対応するデータ振分部１３は、割り当てられたバッファメモリのうち次にメモリ番号が小さいバッファメモリＮｏ６の次書込アドレス先「６ａ」の領域に、受信したパケットデータをストアする（Ｓ４）。
【００５５】
さらに、続いて受信したパケットデータについては、さらに次にメモリ番号が小さいバッファメモリが割り当てられていないので、ポートＧに対応するデータ振分部１３は、ラウンドロビンにより再度メモリ番号の最小であるバッファメモリＮｏ１に戻って、そのバッファメモリＮｏ１の次書込アドレス先の領域に格納する。
【００５６】
（Ａ−２−２）フェーズ２
続いて、フェーズ１の状態から、ポートＢ〜ポートＦについてもリンクした場合の動作をフェーズ２として説明する。図９は、フェーズ２におけるバッファ管理部１ａによる処理を説明する説明図である。
【００５７】
全てのポートのリンク状態を監視するリンク状態監視部１１がポートＢ〜Ｆについてリンクされたことを検出すると、リンク状態監視部１１は、リンクポート別バッファ割当テーブル１１１を参照して、新たなリンク状態に基づくリンクポートに割り当てるバッファメモリを検索する。
【００５８】
図９において、リンク状態監視部１１が、例えばポートＢのリンクアップを検出すると、リンク状態監視部１１は、リンクポート別バッファ割当テーブル１１１よりバッファメモリＮｏ１の割当優先の順位を見る。
【００５９】
そうすると、それまでのバッファメモリＮｏ１の割当先はポートＧであるが、ポートＢに対する割当優先は「１」であり、ポートＧに対する割当優先「３」よりも高優先であるから、リンク状態監視部１１はバッファメモリＮｏ１の割当先をポートＧからポートＢに切り換える。
【００６０】
このような新たなリンク状態に対して、ポートＢ〜Ｋのそれぞれについても同様な検索方法を行ない、その結果として、図１０及び図１１に示すように、各ポートＢ〜Ｋはそれぞれバッファメモリが割り当てられる。
【００６１】
リンク状態監視部１１において、新たなリンク状態での各ポートに割り当てるバッファメモリが検索されると、その新たな割当バッファ情報がリンク状態監視部１１から各データ振分部１３に与えられる（Ｓ６）。
【００６２】
例えば、図９では、リンク状態監視部１１から新たな割当バッファ情報（バッファメモリＮｏ６のみとする情報）がポートＧに対応するデータ振分部１３に与えられる。
【００６３】
そうすると、ポートＧに対応するデータ振分部１３は、この新たな割当バッファ情報の通知以後、バッファメモリＮｏ１へのストア順序が回ってきても、パケットデータをバッファメモリＮｏ１にストアせず、バッファメモリＮｏ１以外の割当バッファであるバッファメモリＮｏ６の次書込アドレス先の領域にパケットデータを与えてストアする（Ｓ７）。
【００６４】
このように、ネットワーク装置の運用中であっても、ネットワーク装置の立ち上げや設定変更等を行なうことなく、ポートに割り当てるバッファ量を動的に変更することができる。
【００６５】
（Ａ−２−３）フェーズ３
次に、フェーズ２の状態から、１０Ｇｂｐｓ対応ポートであるポートＡがリンクした場合の動作をフェーズ３として説明する。図１２は、フェーズ３におけるバッファ管理部１ａによる処理を説明する説明図である。
【００６６】
全てのポートのリンク状態を監視するリンク状態監視部１１がポートＡについてリンクされたことを検出すると、リンク状態監視部１１は、リンクポート別バッファ割当テーブル１１１を参照して、新たなリンク状態に基づくリンクポートに割り当てるバッファメモリを検索する。
【００６７】
図１２において、リンク状態監視部１１がポートＡのリンクアップを検出すると、リンク状態監視部１１は、リンクポート別バッファ割当テーブル１１１を見て、ポートＡに割り当てるバッファメモリＮｏを検索する。
【００６８】
例えば、図１３及び図１４において、それまでのバッファメモリＮｏ１の割当先はポートＢである。ポートＢに対する割当優先は「１」であり、ポートＢはポートＡに対する割当優先「２」よりも高優先であるから、リンク状態監視部１１は、バッファメモリＮｏ１の割当先についてはポートＢのまま変えないようにする。同様に、バッファメモリＮｏ２〜Ｎｏ５の割当先についてはそれまでのままとする。
【００６９】
また、それまでのバッファメモリＮｏ６の割当先はポートＧであるが、ポートＡに対する割当優先「１」であり、ポートＧに対する割当優先「２」より高優先であるから、リンク状態監視部１１は、バッファメモリＮｏ１の割当先をポートＡに変更する。
【００７０】
このような新たなリンク状態になり、リンク状態監視部１１は、各ポートＡ〜Ｋのそれぞれに対するバッファッメモリの割り当てを行なう。
【００７１】
その結果、図１３及び図１４に示すように、１０Ｇｂｐｓ対応のポートＡにはバッファメモリＮｏ６〜Ｎｏ１０が割り当てられ、ポートＢ〜ポートＦのそれぞれにはバッファメモリＮｏ１〜Ｎｏ５が割り当てられる。そうすると、それまでバッファメモリが割り当てられていたポートＧ〜ポートＫについては、バッファメモリの割り当てがなくなる。
【００７２】
リンク状態監視部１１が各ポートへのバッファメモリの割り当てを行なうと、リンク状態監視部１１は、各ポートに対応するデータ振分部１３に対して、割当バッファ情報を通知する（Ｓ８）。
【００７３】
このとき、例えば、ポートＧへのバッファメモリの割り当てはなくなったので、図１２に示すように、リンク状態監視部１１は、ポートＧに対応するデータ振分部１３に割当なしを示す割当バッファ情報を通知する。
【００７４】
リンク状態監視部１１からの割当バッファ情報がポートＧのデータ振分部１３に与えられると、データ振分部１３は、ポートＧを通じて受信したパケットデータを廃棄し、バッファメモリへのストアを行なわない（Ｓ９）。
【００７５】
このように、各ポートに割り当てるバッファサイズと転送帯域を自由度を高くして柔軟に変更することができる。
【００７６】
（Ａ−３）第１の実施形態の効果
以上のように、第１の実施形態によれば、リンク状態監視部１１が、各ポートのリンク状態を監視し、その監視結果と予め設定した各バッファメモリの割当優先とに基づいて各リンクポートにバッファメモリを割り当てることができるので、ネットワーク装置のセットアップ時に、各ポート毎の設定値の設定や変更をする必要はなく、かつ、送信側回路の送信レートにあわせるためのシェーピングを行なう必要がなくなる。その結果、大幅に内部バッファの容量を減少でき、採用するデバイス規模を抑えることで、コストダウンに繋がる。
【００７７】
また、第１の実施形態によれば、固定量バッファメモリは各ポートに固定的に設けられていないから、ポートのリンク状態に応じて固定量バッファメモリをリンクポートに割り当てることができる。
【００７８】
（Ｂ）第２の実施形態
次に、本発明のバッファ制御装置及びバッファ制御方法の第２の実施形態を図面を参照しながら詳細に説明する。
【００７９】
第２の実施形態は、第１の実施形態と同様に、ネットワーク装置が備える処理デバイスにおけるバッファ制御装置に、本発明のバッファ制御装置及びバッファ制御方法を適用する場合を説明する。
【００８０】
第２の実施形態が第１の実施形態と異なる点は、第２の実施形態では、各バッファメモリの滞留量をも考慮して、各リンクポートに割り当てるバッファメモリを決定する点である。
【００８１】
（Ｂ−１）第２の実施形態の構成及び動作
図１５は、第２の実施形態のバッファ制御装置の内部構成を示す構成図である。なお、バッファ管理部１ｂについては、第１の実施形態と同様に、図１に示すネットワーク装置１０のレイヤ処理デバイス１が備えるものとして説明する。
【００８２】
図１５において、第２の実施形態のバッファ管理部１ｂは、リンク状態監視部１１、バッファ滞留量監視部１４、情報通知部１５、データ振分部１３、バッファ部１６、を少なくとも有して構成される。
【００８３】
第２の実施形態のバッファ管理部１ｂにおいて、リンク状態監視部１１及びデータ振分部１３は第１の実施形態のリンク状態監視部１１及びデータ振分部１３に対応するものであるから、これら構成要素の詳細な機能説明は省略し、第２の実施形態の特徴的な構成要素を中心に詳細に説明する。
【００８４】
バッファ部１６は、第１の実施形態と同様に、１０個のバッファッメモリＮｏ１〜Ｎｏ１０を有し、常時又は定期的に各バッファメモリの次書込アドレス情報を、各ポートＡ〜Ｋに対応のデータ振分部１３に与えるものである。
【００８５】
また、バッファ部１６は、常時又は定期的に、各バッファメモリＮｏ１〜Ｎｏ１０の滞留量をバッファ滞留量監視部１４に与えるものである。ここで、各バッファメモリの滞留量は、例えば、各バッファメモリＮｏ１〜Ｎｏ１０の次書込アドレスと次読出アドレスとの差分から算出することで求めるものとする。
【００８６】
バッファ滞留量監視部１４は、バッファ部１６から各バッファメモリの滞留量を受け取り、バッファ滞留量別バッファ割当テーブル１４１を参照して、各リンクポートに割り当てている各バッファメモリの滞留量が予め設定された滞留量閾値を超えているか否かを判定する。そして、各バッファメモリの滞留量が滞留量閾値を超えている場合に、バッファ滞留量監視部１４は、滞留量閾値を超えているバッファメモリを割り当てているリンクポートに対して、バッファメモリの割り当て量を増加させるよう、割り当てるバッファメモリを変更し、その変更した割当バッファ情報を情報通知部１５に与える。
【００８７】
情報通知部１５は、リンク状態監視部１１及びバッファ滞留量監視部１４から割当バッファ情報を受け取り、受け取った割当アドレス情報を、各ポートＡ〜Ｋに対応するデータ振分部１３に与えるものである。ここで、情報通知部１５は、バッファ滞留量監視部１５から割当バッファ情報を受け取った場合には、リンク状態監視部１１からの割当バッファ情報よりも、バッファ滞留量監視部１４からのものを優先して、データ振分部１３に与えるものとする。
【００８８】
次に、第２の実施形態のバッファ管理部１ｂにおけるバッファ管理処理の動作を図面を参照しながら詳細に説明する。
【００８９】
以下の説明では、図１３及び図１４に示すように、１０Ｇｂｐｓ対応ポートＡにバッファメモリＮｏ６〜Ｎｏ１０が割り当てられており、ポートＢ〜ポートＦにはバッファメモリＮｏ１〜Ｎｏ５が割り当てられている状態とする。
【００９０】
バッファ部１６は、常時又は定期的に、各バッファメモリＮｏ１〜Ｎｏ１０の滞留量をバッファ滞留量監視部１４に与える（Ｓ２１）。
【００９１】
バッファ部１６から各バッファメモリＮｏ１〜Ｎｏ１０の滞留量がバッファ滞留量監視部１４に与えられると、バッファ滞留量監視部１４は、バッファ滞留量別バッファ割当テーブル１４１を参照して、リンクポートに割り当てられている各バッファメモリの滞留量が滞留量閾値を超えているか否かを判定する。
【００９２】
そして、リンクポートのバッファメモリの滞留量が滞留量閾値を超えている場合、バッファ滞留量監視部１４は、滞留量閾値を超えているバッファメモリを割り当てているリンクポート対して、バッファメモリの割り当て量を増加させるよう、割当バッファ情報を情報通知部１５に与える（Ｓ２２）。
【００９３】
例えば、上記のようなバッファ割当状態において、ポートＡを通じて受信されたパケットデータはバッファメモリＮｏ６〜Ｎｏ１０の所定の領域に巡回的にストアされていくが、バッファメモリＮｏ６〜Ｎｏ１０でのデータ滞留量がかさんでくる。
【００９４】
図１６は、バッファ滞留量別バッファ割当テーブル１４１の構成例を示す図であり、バッファ滞留量監視部１４は、ポートＡに割り当てられているバッファメモリＮｏ６〜Ｎｏ１０の滞留量が、図１６に示すバッファ滞留量別バッファ割当テーブル１４１に設定される滞留量閾値ｘバイトを超えたと判定すると、滞留量閾値を超えているバッファメモリを割り当てているポートＡに対して、バッファメモリの割り当て量を増加させるようにする。
【００９５】
第２の実施形態では、次のようにして、ポートＡに対するバッファメモリの割り当て量を増加させるものとする。
【００９６】
バッファ滞留量監視部１４は、滞留量閾値を超えているバッファメモリ以外のバッファメモリの割当先を、当該滞留量閾値を超えているバッファメモリを割り当てているポートＡに変更するよう割当バッファ情報を通知する。
【００９７】
つまり、バッファ滞留量監視部１４は、ポートＡに対して、滞留量閾値を超えているバッファメモリ以外のバッファメモリ（すなわちバッファメモリＮｏ１〜Ｎｏ５）を割当先とする割当バッファ情報を通知するようにする。
【００９８】
このようにして、バッファ滞留量監視部１４から割当アドレス情報が情報通知部１５に与えられると、情報通知部１５は、リンク状態監視部１１からの割当バッファ情報より、バッファ滞留量監視部１４からの割当バッファ情報を優先して（Ｓ２３）、ポートＡに対応のデータ振分部１３に通知する。
【００９９】
その結果、図１７に示すように、ポートＡに割り当てられるバッファメモリは、バッファメモリＮｏ６〜Ｎｏ１０に加えて、バッファメモリＮｏ１〜Ｎｏ５も新たに割り当てられ、バッファオーバーフローによるパケットロスを回避することができる。
【０１００】
（Ｂ）第２の実施形態の効果
以上のように、第２の実施形態によれば、第１の実施形態で得られる効果と同様の効果を得ることができる。
【０１０１】
また、第２の実施形態によれば、バッファ滞留量監視部１４を備えることにより、バッファメモリの滞留量を考慮して、リンクポートへの固定量バッファメモリの割り当てを変更することができ、その結果、バッファオーバーフローによるパケットロスを回避することができる。
【０１０２】
（Ｃ）第３の実施形態
次に、本発明のバッファ制御装置及びバッファ制御方法の第３の実施形態を図面を参照しながら説明する。
【０１０３】
第３の実施形態も、第１及び第２の実施形態と同様に、ネットワーク装置が備える処理デバイスにおけるバッファ制御装置に、本発明のバッファ制御装置及びバッファ制御方法を適用する場合を説明する。特に、第３の実施形態では、例えばＲＴＰパケットを転送するネットワーク装置の適用とする。
【０１０４】
第３の実施形態が第１の実施形態と異なる点は、第３の実施形態では、各バッファメモリの遅延時間をも考慮して、各リンクポートに割り当てるバッファメモリを決定する点である。
【０１０５】
（Ｃ−１）第３の実施形態の構成及び動作
図１８は、第３の実施形態のバッファ制御装置の内部構成を示す構成図である。なお、バッファ管理部１ｃについては、第１の実施形態と同様に、図１に示すネットワーク装置１０のレイヤ処理デバイス１が備えるものとして説明する。
【０１０６】
図１８において、第３の実施形態のバッファ管理部１ｃは、リンク状態監視部１１、バッファ通過レイテンシ監視部１７、リアルタイムクロック部１８、レイテンシ算出部１９、情報通知部１５、データ振分部１３、バッファ部１２、を少なくとも有して構成される。
【０１０７】
第３の実施形態のバッファ管理部１ｃにおいて、リンク状態監視部１１、バッファ部１２、データ振分部１３及び情報通知部１５は、第１及び第２の実施形態のリンク状態監視部１１、バッファ部１２、データ振分部１３及び情報通知部１５に対応するものであるから、これら構成要素の詳細な機能説明は省略し、第３の実施形態の特徴的な構成要素を中心に詳細に説明する。
【０１０８】
リアルタイムクロック部１８は、バッファメモリにストアされる全てのパケットデータに対してストア時刻を付与するものである。リアルタイムクロック部１８は、図１９に示すように、ストアするパケットデータの先頭部分にタイムスタンプとしてストア時刻を付与する。
【０１０９】
レイテンシ算出部１９は、バッファメモリから送出されるパケットデータが有するストア時刻を抽出し、その抽出したストア時刻とリアルタイムクロック部１８の現在時刻とに基づいて、バッファメモリを通過するまでに生じたバッファ通過レイテンシ情報（時間情報）を算出し、その算出したバッファ通過レイテンシ情報を、バッファ通過レイテンシ監視部１７に与えるものである。
【０１１０】
バッファ通過レイテンシ監視部１７は、レイテンシ算出部１９が算出した各バッファメモリのバッファ通過レイテンシ情報を受け取り、レイテンシ別バッファ割当テーブル１７１を参照して、各バッファメモリのバッファ通過レイテンシ情報が予め設定した遅延時間閾値を超えているか否かを判定する。そして、遅延時間閾値を超えている場合、バッファ通過レイテンシ監視部１７は、遅延時間閾値を超えているバッファメモリを割り当てているポートに対して、バッファメモリの割り当て量を増加させるよう、割り当てるバッファメモリを変更し、その変更した割当バッファ情報を情報通知部１５に与える。
【０１１１】
次に、第３の実施形態のバッファ管理部１ｃにおけるバッファ管理処理の動作を図面を参照しながら詳細に説明する。
【０１１２】
以下の説明では、図１３及び図１４に示すように、１０Ｇｂｐｓ対応ポートＡにバッファメモリＮｏ６〜Ｎｏ１０が割り当てられており、ポートＢ〜ポートＦにはバッファメモリＮｏ１〜Ｎｏ５が割り当てられている状態とする。
【０１１３】
図１８において、各ポートに対応するデータ振分部１３により振り分けられたパケットデータは、それぞれ割り当てられたバッファメモリＮｏ１〜Ｎｏ１０にストアされる。
【０１１４】
このとき、バッファメモリＮｏ１〜Ｎｏ１０にストアされるパケットデータは、リアルタイムクロック部１８によりバッファメモリＮｏ１〜Ｎｏ１０への書込み時刻（ストア時刻）が付与され（Ｓ３１）、その後各バッファメモリＮｏ１〜Ｎｏ１０にストアされる。
【０１１５】
その後、バッファメモリＮｏ１〜Ｎｏ１０からパケットデータが読み出される際、そのパケットデータに含まれているストア時間は、レイテンシ算出部１９により抽出され、レイテンシ算出部１９により、バッファメモリを通過するまでの時間（バッファ通過レイテンシ時間）情報が算出される（Ｓ３２）。
【０１１６】
レイテンシ算出部１９により算出された各バッファ通過レイテンシ情報がバッファ通過レイテンシ監視部１７に与えられると（Ｓ３３）、バッファ通過レイテンシ監視部１７は、レイテンシ別バッファ割当テーブル１７１を参照して、各バッファメモリのバッファ通過レイテンシ情報が遅延時間閾値を超えているか否かを判定する。
【０１１７】
そして、各バッファメモリのバッファ通過レイテンシ情報が遅延時間閾値を超えている場合、バッファ通過レイテンシ監視部１７は、遅延時間閾値を超えているバッファメモリを割り当てているリンクポート対して、バッファメモリの割り当て量を増加させるよう、割当バッファ情報を情報通知部１５に与える（Ｓ３４）。
【０１１８】
例えば、上記のようなバッファ割当状態において、ポートＡを通じて受信されたパケットデータはバッファメモリＮｏ６〜Ｎｏ１０の所定の領域に巡回的にストアされていくが、バッファメモリＮｏ６〜Ｎｏ１０でのデータ滞留量がかさみ、バッファ通過時間が長くなる。
【０１１９】
図２０は、レイテンシ別バッファ割当テーブル１７１の構成例を示す図であり、バッファ通過レイテンシ監視部１７は、ポートＡに割り当てられているバッファメモリＮｏ６〜Ｎｏ１０のバッファ通過レイテンシ情報が、図２０に示すレイテンシ別バッファ割当テーブル１７１に設定される遅延時間閾値ｙｍｓを超えたと判定すると、遅延時間閾値を超えているバッファメモリを割り当てているポートＡに対して、バッファメモリの割り当て量を増加させるようにする。
【０１２０】
第３の実施形態では、次のようにして、ポートＡに対するバッファメモリの割り当て量を増加させるものとする。
【０１２１】
バッファ通過レイテンシ監視部１７は、遅延時間閾値を超えているバッファメモリ以外のバッファメモリの割当先を、当該遅延時間閾値を超えているバッファメモリを割り当てているポートＡに変更するよう割当バッファ情報を通知する。
【０１２２】
つまり、バッファ通過レイテンシ監視部１７は、ポートＡに対して、遅延時間閾値を超えているバッファメモリ以外のバッファメモリ（すなわちバッファメモリＮｏ１〜Ｎｏ５）を割当先とする割当バッファ情報を通知するようにする。
【０１２３】
このようにして、バッファ通過レイテンシ監視部１７から割当アドレス情報が情報通知部１５に与えられると、情報通知部１５は、リンク状態監視部１１からの割当バッファ情報より、バッファ通過レイテンシ監視部１７からの割当バッファ情報を優先して、ポートＡに対応のデータ振分部１３に通知する。
【０１２４】
その結果、第２の実施形態と同様に、図１７に示すように、ポートＡに割り当てられるバッファメモリは、バッファメモリＮｏ６〜Ｎｏ１０に加えて、バッファメモリＮｏ１〜Ｎｏ５も新たに割り当てられ、バッファオーバーフローによるパケットロスを回避することができる。
【０１２５】
（Ｃ−２）第３の実施形態の効果
以上のように、第３の実施形態によれば、第１及び第２の実施形態で説明した効果と同様の効果を得ることができる。
【０１２６】
また、第３の実施形態によれば、各バッファメモリの遅延時間をも考慮して、各リンクポートに割り当てるバッファメモリを決定することにより、バッファ通過レイテンシにより、例えば音声パケットのようなリアルタイム情報の遅延を回避することができ、その結果、音声の途切れやノイズ等をなくし、通話品質を向上させることができる。
【０１２７】
（Ｄ）他の実施形態
第１〜第３の実施形態では、リンクポート別バッファ割当テーブル１１１、バッファ滞留別バッファ割当テーブル１４１、レイテンシ別バッファ割当テーブル１７１をそれぞれ別のテーブルとして示したが、リンクポート別バッファ割当テーブル１１１とバッファ滞留別バッファ割当テーブル１４１、又は、リンクポート別バッファ割当テーブル１１１とレイテンシ別バッファ割当テーブル１７１とを組み合わせた構成のテーブルとしてもよい。
【０１２８】
第１〜第３の実施形態では、レイヤ２処理デバイスが備えるバッファ制御装置を例に挙げて説明したが、１又は複数のポートを具備するパケット処理装置が備えるバッファ制御装置に広く適用することができる。
【図面の簡単な説明】
【０１２９】
【図１】第１の実施形態のネットワーク装置の内部構成を示す構成図である。
【図２】従来の処理デバイスにおけるバッファ部の構成を示す構成図である。
【図３】従来の処理デバイスにおけるバッファ部の構成を示す構成図である。
【図４】従来の処理デバイスにおけるバッファ部の構成を示す構成図である。
【図５】第１の実施形態のバッファ制御装置の内部構成を示す構成図である(フェーズ１)。
【図６】第１の実施形態のリンクポート別バッファ割当テーブルの構成例を説明する説明図である。
【図７】第１の実施形態のフェーズ１でのリンクポートへのバッファ割当を示す説明図である。
【図８】第１の実施形態のフェーズ１でのリンクポートへのバッファ割当を示す説明図である。
【図９】第１の実施形態のバッファ制御装置の内部構成を示す構成図である(フェーズ２)。
【図１０】第１の実施形態のフェーズ２でのリンクポートへのバッファ割当を示す説明図である。
【図１１】第１の実施形態のフェーズ２でのリンクポートへのバッファ割当を示す説明図である。
【図１２】第１の実施形態のバッファ制御装置の内部構成を示す構成図である(フェーズ３)。
【図１３】第１の実施形態のフェーズ３でのリンクポートへのバッファ割当を示す説明図である。
【図１４】第１の実施形態のフェーズ３でのリンクポートへのバッファ割当を示す説明図である。
【図１５】第２の実施形態のバッファ制御装置の内部構成を示す構成図である。
【図１６】第２の実施形態のバッファ滞留量別バッファ割当テーブルの構成例を説明する説明図である。
【図１７】第２の実施形態のリンクポートへのバッファ割当を示す説明図である。
【図１８】第３の実施形態のバッファ制御装置の内部構成を示す構成図である。
【図１９】第３の実施形態のストア時刻の付与を説明する説明図である。
【図２０】第３の実施形態のレイテンシ別バッファ割当テーブルの構成例を説明する説明図である。
【符号の説明】
【０１３０】
１ａ、１ｂ、１ｃ…バッファ制御装置、１１…リンク状態監視部、１１１…リンクポート別バッファ割当テーブル、１２、１６…バッファ部、１３…データ振分部、Ｎｏ１〜Ｎｏ１０…固定量バッファ、１４…バッファ滞留量監視部、１４１…バッファ滞留量別バッファ割当テーブル、１７…バッファ通過レイテンシ監視部、１７１…レイテンシ別バッファ割当テーブル、１８…リアルタイムクロック部、１９…レイテンシ算出部。
【図１】
2008060700.tif 000003
【図２】
2008060700.tif 000004
【図３】
2008060700.tif 000005
【図４】
2008060700.tif 000006
【図５】
2008060700.tif 000007
【図６】
2008060700.tif 000008
【図７】
2008060700.tif 000009
【図８】
2008060700.tif 000010
【図９】
2008060700.tif 000011
【図１０】
2008060700.tif 000012
【図１１】
2008060700.tif 000013
【図１２】
2008060700.tif 000014
【図１３】
2008060700.tif 000015
【図１４】
2008060700.tif 000016
【図１５】
2008060700.tif 000017
【図１６】
2008060700.tif 000018
【図１７】
2008060700.tif 000019
【図１８】
2008060700.tif 000020
【図１９】
2008060700.tif 000021
【図２０】
2008060700.tif 000022