(57)【特許請求の範囲】
【請求項１】
各入力ポートに対して共通の出力バッファを有する複数のポート制御手段と、
前記ポート制御手段を介してパケットを受信した場合にその送信先を判断し、受信パケットをその送信先に対応するポート制御手段の前記出力バッファに転送するパケット転送手段と、
転送元ポートごとの個別転送流量及び転送先ポートごとのポート転送流量を測定して、その測定量に基づいて前記受信パケットの転送元に送信停止パケットを送信する帯域制御手段とを、
有するパケット転送装置。
【請求項２】
前記帯域制御手段は、タイマが所定時間を経過するモニタ周期ごとに、前記転送元ポートごとの前記個別転送流量から最大制限帯域を引いた個別超過流量を算出し、算出された前記個別超過流量が０を超える場合に前記送信停止パケットを送信するよう構成されている請求項１に記載のパケット転送装置。
【請求項３】
前記帯域制御手段は、タイマが所定時間を経過するモニタ周期ごとに、前記転送先ポートの前記ポート転送流量から前記転送先のポート帯域を引いたポート超過流量を算出し、算出された前記ポート超過流量が０を超え、かつ前記個別転送流量から最大制限帯域を引いた個別超過流量が最低保証帯域を超える場合に前記送信停止パケットを送信するよう構成されている請求項１又は２に記載のパケット転送装置。
【請求項４】
前記帯域制御手段は、タイマが所定時間を経過するモニタ周期ごとに、前のモニタ周期と現在のモニタ周期において同じ転送先ポートに転送を行った転送元ポートのアクティブフローの仮想的な割当て帯域を算出し、前記個別超過流量が前記仮想的な割当て帯域を超える場合に送信停止パケットを送信するよう構成されている請求項１又は２に記載のパケット転送装置。
【請求項５】
前記帯域制御手段は、前記仮想的な割当て帯域の算出を、アクティブフローに変化のあったときのみ行うよう構成されている請求項４に記載のパケット転送装置。
【請求項６】
前記帯域制御手段は、前記仮想的な割当て帯域を算出する際、そのポートの全てのアクティブフローの最低保証帯域の合計を算出し、ポート帯域に対する前記最低帯域の合計と各アクティブフローの最低帯域の比により各アクティブフローの前記割当て帯域を算出するよう構成されている請求項４又は５に記載のパケット転送装置。
【請求項７】
前記帯域制御手段は、前記仮想的な割当て帯域を算出する際、ポート帯域よりそのポートの全アクティブフローの最低保証帯域の合計を引いた残りの帯域を算出し、その残りの帯域をそのポートの全アクティブフロー数で均等に分割した帯域を算出し、その帯域に各アクティブフローの最低保証帯域に加えた値を前記割当て帯域として算出するよう構成されている請求項４又は５に記載のパケット転送装置。
【請求項８】
前記帯域制御手段は、前記仮想的な割当て帯域を算出する際、ポート帯域をそのポートの全アクティブフロー数で均等に分割した帯域を各アクティブフローの割当て帯域として算出するよう構成されている請求項４又は５に記載のパケット転送装置。
【請求項９】
前記帯域制御手段は、前記タイマが所定時間を経過するごとに前記ポート転送流量に前記ポート超過流量を代入して前記ポート超過流量を初期化するよう構成されている請求項２から８のいずれか１つに記載のパケット転送装置。
【請求項１０】
前記帯域制御手段は、タイマが所定時間を経過するごとに前記個別転送流量に前記個別超過流量を代入して前記個別超過流量を初期化するよう構成されている請求項１から９のいずれか１つに記載のパケット転送装置。
【請求項１１】
前記帯域制御手段は、前記送信停止パケットを送信した場合、前記タイマの残り時間には再び送信停止パケットを送信しないよう構成されている請求項４から１０のいずれか１つに記載のパケット転送装置。
【請求項１２】
前記帯域制御手段は、前記送信停止パケットを送信する際に、前記タイマの残り時間に応じた送信停止時間を含む送信停止パケットを送信するよう構成されている請求項２から１１のいずれか１つに記載のパケット転送装置。
【請求項１３】
前記帯域制御手段は、前記タイマの残り時間と、前記個別超過流量が出力ポート帯域の速度で出力される場合の時間とを加算した送信停止時間を含む送信停止パケットを送信するよう構成されている請求項２から１１のいずれか１つに記載のパケット転送装置。
【請求項１４】
各入力ポートに対して共通の出力バッファを有する複数のポート制御手段を介してパケットを受信した場合にその送信先を判断し、受信パケットをその送信先に対応するポート制御手段の前記出力バッファに転送するパケット転送ステップと、
転送元ポートごとの個別転送流量及び転送先ポートごとのポート転送流量を測定して、その測定量に基づいて前記受信パケットの転送元に送信停止パケットを送信する帯域制御ステップとを、
有するパケット転送方法。
【請求項１５】
各入力ポートに対して共通の出力バッファを有する複数のポート制御手段を介してパケットを受信した場合にその送信先を判断し、受信パケットをその送信先に対応するポート制御手段の前記出力バッファに転送するパケット転送ステップと、
転送元ポートごとの個別転送流量及び転送先ポートごとのポート転送流量を測定して、その測定量に基づいて前記受信パケットの転送元に送信停止パケットを送信する帯域制御ステップとを、
有するコンピュータプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、帯域制御を行うパケット転送装置に関し、詳しくは複数のフローを多重可能なポートを有するスイッチングハブの出力ポートに対するフロー毎の帯域制御を行うパケット転送装置、パケット転送方法及びコンピュータプログラムに関する。
【０００２】
【従来の技術】
パケットネットワークにおいて、フロー毎にサービス品質を保証するとともに、伝送路などのリソース（伝送可能なバンド幅）を最大限に利用してサービスの向上を図るため、従来のパケット転送装置は、フローに対応する複数のキューを備え、各キューに転送順序の重み付けを行って、各キュー間で公平なパケット転送が行われるように制御する重み付けマルチプルキューイング、及び一時的に余剰リソース（余ったバンド幅）を各々のフロー間で公平に分配してリソースを有効利用する公平キューイング（Fair Queueing）の機能を具備していた。
【０００３】
公平キューイング技術として、重み付け公平キューイング（WFQ：Weighted Fair Queueing）がよく知られている。このＷＦＱを用いた従来のパケット転送装置を図２５を用いて説明する。この装置は、パケットの入出力を行うパケット受信制御部２ａ及びパケット送信制御部２ｂを有する各ポート＃１〜＃ｎ毎の制御部２（２＃１〜２＃ｎ）と、ポート＃１〜＃ｎ間のパケット転送を制御するパケット転送制御部１とが制御バス３及びデータバス４を介して接続されて構成されている。
【０００４】
図２６にパケット送信制御部２ｂのブロック図を詳しく示す。パケット送信制御部２ｂはスケジューリング装置として、それぞれがパケット蓄積手段となる複数のパケットキュー２４（２４＃１〜２４＃ｎ）と、パケット入力回線を介して入力されるパケットを複数のパケットキュー２４のうちの適切なパケットキュー２４に格納するパケット入力部２１と、複数のパケットキュー２４の中からパケットを出力するパケットキュー２４を選択するスケジューリング管理部２２と、パケット送信時にスケジューリング管理部２２で選択されたパケットキュー２４からパケットを読み出してパケット出力回線に出力するパケット出力部２３とを備えている。
【０００５】
各々のキュー２４にはフロー＃１〜＃ｎ毎にパケットが格納され、各キュー２４内においてはＦＩＦＯで処理されるものとし、スケジューリング管理部２２は各キュー２４に格納された先頭パケットの中から、最も早く転送を終えることができるパケットを選択してこれを出力リンクに出力する処理を行う。このように重み付け公平キューイング（ＷＦＱ）による転送制御は、各キューＱｉ（ｉ＝１，２・・・，ｎ）のそれぞれの先頭パケットに対して、転送終了予定時刻Ｆi,1を算出し、 その値により出力順序に優先度を付け、各フロー＃１〜＃ｎ間のパケット転送の公平性とリソースの有効利用を図っている。
【０００６】
【発明が解決しようとする課題】
しかしながら、この複数のパケットキュー２４を使用し、各キュー２４の先頭パケットの転送終了予定時刻Ｆi,1を算出して優先度を付ける方法においては、 毎回新しい先頭パケットを出力するたびに、計算をやり直さなければならず、しかも前回のパケット出力のときに計算した各キュー２４の先頭パケット転送終了予定時刻Ｆi,1は選択されずに、キューＱiに残されたままとなった先頭パケットについても、次のパケット出力においてその計算結果をまったく流用することができず、転送順位決定のための計算量が極めて多くなってしまうという課題がある。
【０００７】
また、このようなスケジューリング管理部２２を用いた帯域制御方法を多数のユーザがポート＃１〜＃ｎを共有するイーサネット（Ｒ）スイッチに用いてアップリンクに対するユーザ間の出力制御を行う場合、接続ユーザ数分のパケットキュー２４が必要となり、さらに計算量を増加させるだけでなく、必要とされるメモリ量が非常に多くなるという問題がある。
【０００８】
本発明は上記従来例の問題点に鑑み、フロー毎にキューを設けることなく、複雑なパケット出力スケジューリング処理を行うことなく帯域制御を行うことができるパケット転送装置、パケット転送方法及びコンピュータプログラムを提供することを目的とする。
【０００９】
【課題を解決するための手段】
本発明のパケット転送装置は上記目的を達成するために、各入力ポートに対して共通の出力バッファを有する複数のポート制御手段と、
前記ポート制御手段を介してパケットを受信した場合にその送信先を判断し、受信パケットをその送信先に対応するポート制御手段の前記出力バッファに転送するパケット転送手段と、
転送元ポートごとの個別転送流量及び転送先ポートごとのポート転送流量を測定して、その測定量に基づいて前記受信パケットの転送元に送信停止パケットを送信する帯域制御手段とを、
有する構成とした（請求項１）。
また、本発明のパケット転送方法は上記目的を達成するために、各入力ポートに対して共通の出力バッファを有する複数のポート制御手段を介してパケットを受信した場合にその送信先を判断し、受信パケットをその送信先に対応するポート制御手段の前記出力バッファに転送するパケット転送ステップと、
転送元ポートごとの個別転送流量及び転送先ポートごとのポート転送流量を測定して、その測定量に基づいて前記受信パケットの転送元に送信停止パケットを送信する帯域制御ステップとを、
有する構成とした（請求項１４）。
また、本発明のコンピュータプログラムは上記目的を達成するために、各入力ポートに対して共通の出力バッファを有する複数のポート制御手段を介してパケットを受信した場合にその送信先を判断し、受信パケットをその送信先に対応するポート制御手段の前記出力バッファに転送するパケット転送ステップと、
転送元ポートごとの個別転送流量及び転送先ポートごとのポート転送流量を測定して、その測定量に基づいて前記受信パケットの転送元に送信停止パケットを送信する帯域制御ステップとを、
有する構成とした（請求項１５）。
上記構成により、フロー毎にキューを設けることなく、複雑なパケット出力スケジューリング処理を行うことなく帯域制御を行うことができる。
【００１２】
本発明はまた、前記帯域制御手段が、タイマが所定時間を経過するモニタ周期ごとに、前記転送元ポートごとの前記個別転送流量から最大制限帯域を引いた個別超過流量を算出し、算出された前記個別超過流量が０を超える場合に前記送信停止パケットを送信する構成とした（請求項２）。
上記構成により、フロー毎にキューを設けることなく、複雑なパケット出力スケジューリング処理を行うことなく帯域制御を行うことができる。
【００１３】
本発明はまた、前記帯域制御手段が、タイマが所定時間を経過するモニタ周期ごとに、前記転送先ポートの前記ポート転送流量から前記転送先のポート帯域を引いたポート超過流量を算出し、算出された前記ポート超過流量が０を超え、かつ前記個別転送流量から最大制限帯域を引いた個別超過流量が最低保証帯域を超える場合に前記送信停止パケットを送信する構成とした（請求項３）。
上記構成により、フロー毎にキューを設けることなく、複雑なパケット出力スケジューリング処理を行うことなく帯域制御を行うことができる。
【００１４】
本発明はまた、前記帯域制御手段が、タイマが所定時間を経過するモニタ周期ごとに、前のモニタ周期と現在のモニタ周期において同じ転送先ポートに転送を行った転送元ポートのアクティブフローの仮想的な割当て帯域を算出し、前記個別超過流量が前記仮想的な割当て帯域を超える場合に送信停止パケットを送信する構成とした（請求項４）。
上記構成により、よりリアルタイム性のある帯域制御を行うことができる。
【００１５】
本発明はまた、前記帯域制御手段が、前記仮想的な割当て帯域の算出を、アクティブフローに変化のあったときのみ行う構成とした（請求項５）。
上記構成により、計算処理を低減することができる。
【００１６】
本発明はまた、前記帯域制御手段が、前記仮想的な割当て帯域を算出する際、そのポートの全てのアクティブフローの最低保証帯域の合計を算出し、ポート帯域に対する前記最低帯域の合計と各アクティブフローの最低帯域の比により各アクティブフローの前記割当て帯域を算出する構成とした（請求項６）。
上記構成により、よりリアルタイム性のある帯域制御を行うことができる。
【００１７】
本発明はまた、前記帯域制御手段が、前記仮想的な割当て帯域を算出する際、ポート帯域よりそのポートの全アクティブフローの最低保証帯域の合計を引いた残りの帯域を算出し、その残りの帯域をそのポートの全アクティブフロー数で均等に分割した帯域を算出し、その帯域に各アクティブフローの最低保証帯域に加えた値を前記割当て帯域として算出する構成とした（請求項７）。
上記構成により、よりリアルタイム性のある帯域制御を行うことができる。
【００１８】
本発明はまた、前記帯域制御手段が、前記仮想的な割当て帯域を算出する際、ポート帯域をそのポートの全アクティブフロー数で均等に分割した帯域を各アクティブフローの割当て帯域として算出する構成とした（請求項８）。
上記構成により、よりリアルタイム性のある帯域制御を行うことができる。
【００１９】
本発明はまた、前記帯域制御手段が、前記タイマが所定時間を経過するごとに前記ポート転送流量に前記ポート超過流量を代入して前記ポート超過流量を初期化する構成とした（請求項９）。
上記構成により、よりリアルタイム性のある帯域制御を行うことができる。
【００２０】
本発明はまた、前記帯域制御手段が、タイマが所定時間を経過するごとに前記個別転送流量に前記個別超過流量を代入して前記個別超過流量を初期化する構成とした（請求項１０）。
上記構成により、よりリアルタイム性のある帯域制御を行うことができる。
【００２１】
本発明はまた、前記帯域制御手段が、前記送信停止パケットを送信した場合、前記タイマの残り時間には再び送信停止パケットを送信しない構成とした（請求項１１）。
上記構成により、送信停止パケットの送信処理を低減することができる。
【００２２】
本発明はまた、前記帯域制御手段が、前記送信停止パケットを送信する際に、前記タイマの残り時間に応じた送信停止時間を含む送信停止パケットを送信する構成とした（請求項１２）。
上記構成により、帯域制御を高精度で行うことができる。
【００２３】
本発明はまた、前記帯域制御手段が、前記タイマの残り時間と、前記個別超過流量が出力ポート帯域の速度で出力される場合の時間とを加算した送信停止時間を含む送信停止パケットを送信する構成とした（請求項１３）。
上記構成により、帯域制御をさらに高精度で行うことができる。
【００２４】
【発明の実施の形態】
（第１の実施の形態）
以下、本発明の第１の実施の形態として、最大帯域制限、最低帯域保証を行う帯域制御の形態について、図面を用いて説明する。また第１の実施の形態では、帯域制御の対象を転送元ポート単位に設定するものとする。図１は本発明の帯域制御を実現するパケット転送装置の構成を示した図である。このパケット転送装置は、アドレス管理を行い、受信パケットの転送先を決定するパケット転送処理部１１及び図２に詳しく示す帯域制御部１２を含む中央処理部１０と、ポート  ＃１〜＃ｎ毎に設けられた各ポート制御部２０（ポート＃１制御部２０＃１〜ポート＃ｎ制御部２０＃ｎ）により構成され、中央処理部１０と各ポート制御部２０はデータバス４と制御バス３を介して接続されている。また、各ポート制御部２０はパケット受信制御部２ａと図３に詳しく示すパケット送信制御部２０ｂにより構成されている。
【００２５】
帯域制御部１２は図２に詳しく示すように、最大制限帯域と最低保証帯域の設定帯域を管理する帯域管理部（メモリ）１２１と、帯域を算出する基準となるモニタ周期をカウントするタイマ部１２２と、出力ポートの出力バッファに転送する流量監視識別子に対する帯域制御の判断を行う帯域制御判断部（コントローラ及びメモリ）１２３より構成される。
【００２６】
パケット送信制御部２０ｂは図３に詳しく示すように、各入力ポート＃１〜  ＃ｎ共通の出力バッファ２０１としてデータ用バッファ２０１ａと、送信停止パケットを一時格納して出力するための送信停止パケット用バッファ２０１ｂを有する。パケット送信制御部２０ｂはまた、帯域制御部１２より指示のあった場合に送信停止パケットを生成する送信停止パケット生成部２０２と、送信停止パケット及びデータパケットの出力を制御する送信処理部２０３より構成される。
【００２７】
ここで、パケット受信時の処理シーケンスを図４を用いて説明する。まずパケットをポート＃ｎで受信したとすると、ポート＃ｎ制御部２０＃ｎのパケット受信制御部２ａで受信パケットの解析を行い、パケット情報として宛先アドレス、送信元アドレス、パケット長、送信元（転送元）ポート番号をパケット転送処理部１１に送信する。パケット転送処理部１１では、送信元アドレスの学習及び、転送先ポート＃ｍの検索を行い、パケットの転送先ポート＃ｍをポート＃ｎ制御部２０＃ｎのパケット受信制御部２ａに通知する。またパケット転送処理部１１は、同時に帯域制御部１２に対して、転送元ポート番号、転送先ポート番号、流量監視識別子（ここでは転送元ポート番号）、パケット長をパケット転送情報として通知する。
【００２８】
パケットの転送先ポート番号＃ｍを受信したポート＃ｎ制御部２０＃ｎのパケット受信制御部２ａは、転送先ポート＃ｍの出力バッファ２０１に受信パケットを転送する。またパケット転送情報を受信した帯域制御部１２は、その転送を行ったパケットの流量監視識別子に対してモニタ周期あたりの流量を測定し、帯域管理部１２１に設定された帯域を用いて帯域制御の判断を行い、帯域制御が必要と判断された場合、ポート＃ｎ制御部２０＃ｎのパケット送信制御部２０ｂに対して送信停止時間を含む送信停止パケットの送信を通知する。
【００２９】
送信停止パケットの送信通知を受信したパケット送信制御部２０ｂは、送信停止パケットを生成し出力する。これがパケット受信時の一連の処理の流れであり、パケットの転送のときに中央処理部１０において、送信停止パケットの送信判断を行い、帯域制御が必要な場合には、送信停止パケットを送信して、該当する流量監視識別子の帯域を制限して制御する。このため、パケット送信制御部２０ｂにおいては、転送順にパケットを出力するのみでよく、出力バッファ２０１は各入力ポート＃１〜＃ｎ共通の１つのみで、各フロー間の読み出し制御を行うこともなく、帯域制御を実現することができる。
【００３０】
次に、帯域制御部１２の具体的な処理の内容を説明する。帯域制御部１２内の帯域制御判断部１２３は、図５に示されるパケット転送毎の処理１２３ａとタイマによる処理１２３ｂの２つの処理を実行する。パケット転送毎の処理１２３ａは、パケット転送処理部１１からのパケット転送情報の受信時に流量監視識別子で区別されるフロー毎の転送レートを算出する転送レート算出手段１２３１と、その算出された転送レートに基づき送信停止の判断を行う送信停止判断手段１２３２と、送信停止判断を行った場合の送信停止時間を算出する停止時間算出手段１２３３より構成される。タイマー処理１２３ｂは、タイマ部１２２からのタイマイベントにより各種値の初期化を行う初期化手段１２３４より構成される。
【００３１】
図６は帯域管理部１２１の管理する帯域管理テーブルの構成を示す図である。帯域管理部１２１では、各出力ポート＃１〜＃ｎ毎にポート帯域Ａと、あらかじめ設定された流量監視識別子Ｂ（送信元ポート＃１〜＃ｎ）毎に、最低保証帯域Ｃ及び最大制限帯域Ｄが管理される。ここで、第１の実施の形態では、流量監視識別子Ｂは送信元（転送元）ポート＃１〜＃ｎで識別しているが、この識別は送信元のアドレス別又はグループ別などで管理することももちろん可能である。
【００３２】
図７は帯域制御判断部１２３内の流量監視テーブルの構成を示す図である。帯域制御判断部１２３では、パケット転送処理部１１より受信したパケット転送情報をもとに、各出力（転送先）ポート＃１〜＃ｎ毎のポート転送流量ａとポート超過流量ｂが管理され、またあらかじめ設定された流量監視識別子ｃ（転送元及び転送先のポート＃１〜＃ｎ）別に個別転送流量ｄと、個別超過流量ｅと、送信停止パケットの送信通知をした場合に '１' となるポーズフラグｆが管理される。ここで、本発明の第１の実施の形態では、流量監視テーブル内の流量を１秒を基準とした転送バイト数で示している。
【００３３】
図８は帯域制御部１２内のタイマ部１２２のタイマ処理を示している。このタイマ処理では、流量を算出するための基準となる時間（モニタ周期）とカウンタを減算するタイミングとなるサンプル時間よりカウンタの初期値が設定される。まず、この初期値にカウンタが初期化され（ステップＳ１１）、次いでサンプル時間が経過する毎にカウンタを１つ減算する（ステップＳ１２、Ｓ１３）。このときカウンタの値が０以下になると（ステップＳ１４でＮ）、タイマイベントを発生し（ステップＳ１５）、次いで再びカウンタを初期化する（ステップＳ１１）。このためカウンタ値はある時点でのモニタ周期の残り時間を示していることになる。
【００３４】
図９は帯域制御部１２内の転送レート算出手段１２３１での流量カウント処理を示している。パケット転送処理部１１よりパケットの転送情報として、転送先ポート、流量監視識別子ｃ、パケット長を受信すると（ステップＳ２１）、転送先ポートのポート転送流量ａに転送パケットのパケット長を加算し（ステップＳ２２）、次いで加算後のポート転送流量ａとポート帯域Ａを比較する（ステップＳ２３）。ポート転送流量ａがポート帯域Ａを超えていた場合（ステップＳ２３でＹ）、ポート超過流量ｂとしてポート転送流量ａよりポート帯域Ａを減算した値（ｂ＝ａ−Ａ）を代入する（ステップＳ２４）。
【００３５】
次に流量監視識別子ｃの個別転送流量ｄにパケット長を加算し（ステップＳ２５）、加算後の個別転送流量ｄと最大制限帯域Ｄを比較する（ステップＳ２６）。個別転送流量ｄが最大制限帯域Ｄを超えていた場合（ステップＳ２６でＹ）、個別超過流量ｅとして個別転送流量ｄより最大制限帯域Ｄを減算した値（ｅ＝ｄ−Ｄ）を代入する（ステップＳ２７）。この転送レート算出手段１２３１により、モニタ周期内のある時点での転送レートと超過分ｂ、ｅをそれぞれ出力ポート＃１〜＃ｎ単位、流量監視識別子ｃ（入力ポート＃１〜＃ｎ）単位で保持することができる。
【００３６】
図１０は送信停止判断手段１２３２の処理を示している。送信停止判断処理では、現タイマ周期内で、まだ流量監視識別子ｃに対して送信停止パケットの送信通知を行っていない場合（ステップＳ４１でＹ）、個別超過流量ｅが０より大きいか（ステップＳ４２でＹ）、またポート超過流量ｂが０より大きく、なおかつ個別転送流量ｅが最低保証帯域Ｃを超えている場合（ステップＳ４３でＹ）、輻輳により送信停止と判断してポーズフラグｆを１に変更し、次いで停止時間算出手段（１２３３）による処理ステップに移行する（ステップＳ４４、Ｓ４５）。上記条件に当てはまらない場合（ステップＳ４１、Ｓ４３でＮ）は処理を終了する。
【００３７】
図１１は停止時間算出手段１２３３の処理を示している。送信停止時間算出処理では、タイマ部１２２よりカウンタ値を修得し、次いでカウンタ値より停止時間を算出する（ステップＳ５１、Ｓ５２）。次いで送信停止パケットを送信するポート（パケット転送情報より受信した転送元ポート）のポート速度と上記停止時間により送信停止パケットに代入する値（ポート速度で５１２ビット送信する時間を１とした値）を算出し（ステップＳ５３）、送信停止パケットの生成情報を通知する（ステップＳ５４）。
【００３８】
図１２は帯域制御判断部１２３のタイマ処理１２３ｂの初期化手段１２３４の処理を示している。初期化手段１２３４はタイマイベントの受信によりモニタ周期間隔で実行される。タイマイベントを受信するとポート転送流量カウンタａをポート超過流量カウンタｂの値に初期化し（ステップＳ３１）、次いでポート超過流量カウンタｂを０に初期化する（ステップＳ３２）。次いで個別転送流量カウンタｄを個別超過流量カウンタｅの値に初期化し（ステップＳ３３）、次いで個別超過流量カウンタｅを０に初期化し（ステップＳ３４）、次いでポーズフラグｆを０に初期化する（ステップＳ３６）。
【００３９】
次にこれらの一連の処理により最大帯域制限を行う場合と、輻輳時の最低保証帯域を行う場合の動作を説明する。
ある流量監視識別子ｃの最大帯域制限は、送信停止判断手段（１２３２）による送信停止判断処理において個別超過流量ｅが０より大きい場合に送信停止パケットを送信する（図１０のステップＳ４２でＹ）ことで実施される。さらに送信停止時間として最大制限帯域Ｄを超えた転送があったときのタイマ部１２２のカウンタ値を利用するため、この流量監視識別子ｃのフローは、残りのモニタ周期の時間停止することになり、最大制限帯域Ｄの制御を行うことが可能となる。
【００４０】
また第１の実施の形態では、パケットの転送と帯域制御判断が独立しているため、送信停止パケットを送信して送信が停止するまでに受信するパケットがある可能性があるが、これらを個別超過流量分ｅとしてカウントし（図９のステップＳ２７）、次のモニタ周期の個別転送流量ｄの初期値とする（図１２のステップＳ３３）ことで、次のモニタ周期での最大制限帯域Ｄを超えたと判断されるまでの受信可能バイト数が減少し、平均して最大制限帯域Ｄを超えないよう制御することが可能である。
【００４１】
また、本発明ではポート超過流量ｂが０より大きい場合を輻輳と判断している。この場合に最低帯域保証は、最低保証帯域Ｃを超えている流量監視識別子ｃのフローのみに送信停止手段（１２３２）による送信停止判断処理を行うことで実施している（図１０のステップＳ４３でＹ）。この場合も送信停止時間にタイマ部１２２のカウンタ値を利用するため、最低保証帯域Ｃに帯域制限することが可能である。仮にポートが輻輳状態にあって最低保証帯域Ｃを超えていない流量識別子ｃのフローを受信した場合（図１０のステップＳ４３でＮ）、ポート超過流量ｂにカウントを行い（図９のステップＳ２３、Ｓ２４）、パケットを転送して送信停止パケットは送信しない。
【００４２】
このため最低保証帯域Ｃは確実に保証されるが、モニタ周期内にポート帯域Ａを超えるパケットを受信することになり、出力バッファ２０１にパケットが蓄積されていくことになる。しかし、このポート超過流量ｂを次のモニタ周期でポート転送流量ａの初期値とする（図１２のステップＳ３１）ことで、次のモニタ周期での輻輳と判断するまでの受信可能バイト数が減少して、早めに輻輳と判断され、このため、最低保証帯域Ｃを超えた流量監視識別子ｃのフローに対し早めに送信停止パケットが送信されることになり、その結果、ポート転送流量ａもポート帯域Ａに落ち着くことになり出力バッファ２０１の蓄積もなくなる。
【００４３】
第１の実施の形態によれば、従来例のように各出力ポート＃１〜＃ｎに制御対象となるフロー別のバッファ（図２６に示すパケットキュー２４＃１〜２４＃Ｎ）を設けることなく、またバッファ２４からの複雑な読み出し制御を行うことなく、各出力ポート＃１〜＃ｎに１つの出力バッファ２０１で、最大帯域制限及び輻輳時の最低帯域保証を行うことができる。
【００４４】
（第２の実施の形態）
次に図１３、図１４を参照して本発明の第２の実施の形態を説明する。第２の実施の形態では、第１の実施の形態の停止時間算出手段１２３３に加算値算出手段を追加している。全体の動作としては、第１の実施の形態と同様の動作となる。図１３は第２の実施の形態の停止時間算出処理を示し、ステップＳ５２に続くステップＳ５２ａにおいて加算値算出手段による停止時間の加算が追加されている以外は、図１１に示した第１の実施の形態の停止時間算出処理と同じである。
【００４５】
図１４は加算値算出処理ステップＳ５２ａを詳しく示している。送信停止の判断が行われたときに、個別超過流量ｅが０より大きい場合のみ（ステップＳ７１）、以下に示される加算値導出式（１）により送信停止時間の加算値を導出する（ステップＳ７２）。
0003905791.tif 000002
【００４６】
この個別超過流量ｅが出力される時間を加算値として加えることで、最大帯域制限により、送信停止パケットの送信対象となったフローの再送時間を超過流量分ｅだけ遅らせることが可能となり、より最大帯域制限の精度を上げることが可能となる。また、輻輳時は送信停止パケットを受信した他のフローとの送信時間が異なるため、モニタ周期が更新されたあとの再輻輳を起こりにくくする効果もある。
【００４７】
（第３の実施の形態）
次に図１５〜図２０を参照して本発明の第３の実施の形態を説明する。第３の実施の形態では図１５に示すように、帯域制御判断部１２３ａでのパケット転送毎処理１２３ａａにおいて、第１の実施の形態にアクティブフロー算出手段１２３５と割当て帯域算出手段１２３６を追加している。また、全体の動作としては、送信停止判断手段１２３２ａ、初期化手段１２３４ａを除き、第１の実施の形態と同様の動作となるが、輻輳時にポートを使用している流量監視識別子ｃのフローの有無を判断し、同時に同じポートを使用する流量監視識別子ｃのフローの最低保証帯域Ｃの比により仮想的な割当て帯域ｇを導出し、この帯域ｇと個別転送流量ｄの比較を行って、送信停止パケットの送信通知を行うことが特徴である。
【００４８】
図１５に示すアクティブフロー算出手段１２３５は、図５に示したパケット転送毎処理にモニタ周期内に転送のあった流量監視識別子ｃのフローを監視する。また、割当て帯域算出手段１２３６はアクティブフローに基づき、仮想的にある時点での流量監視識別子ｃ別の割当て帯域ｇを算出する。パケット転送時には、この処理の後、転送レート算出手段１２３１、送信停止判断手段１２３２ａ、停止時間算出手段１２３３が実行される。
【００４９】
図１６は帯域制御判断部１２３ａの管理する第２のテーブル（その２）の構成を示す。第３の実施の形態では、第１の実施の形態で示した図７の流量監視テーブルに加えて図１６に示すテーブルを保持する。図１６に示すテーブルは、前のモニタ周期及び現モニタ周期において転送のあったフローを '１' で示す「アクティブフローフラグＦ２」と、現モニタ周期において転送のあったフローを '１' で示す「現モニタ周期での転送フラグＦ３」と、出力ポート毎に出力ポート内の流量監視識別子ｃのフローの現モニタ周期の転送フラグＦ２が０から１に変更されたことを示す変更フラグＦ１と、あるパケットの転送があった時点での各アクティブフローの割当て帯域ｇにより構成される。
【００５０】
図１７にアクティブフロー算出手段１２３５の処理を示す。まず、パケット転送情報より送信元の流量監視識別子ｃを抽出後（ステップＳ８１）、流量監視識別子ｃの現モニタ周期での転送フラグＦ３が０であれば（ステップＳ８２でＹ）、アクティブフローフラグＦ２及び現モニタ周期での転送フラグＦ３を１にし  （ステップＳ８３）、次いで変更フラグＦ１も１にする（ステップＳ８４）。
【００５１】
図１８に割当て帯域算出手段１２３６の処理を示す。まず、パケット転送情報より転送先ポートを抽出し（ステップＳ９１）、次いで変更フラグＦ１が１であれば（ステップＳ９２でＹ）、割当て帯域ｇの再計算をおこなう（ステップＳ９３）。また変更フラグＦ１が０であれば、アクティブフローの変化がないことを意味するので割当て帯域ｇの再計算は行わない。
【００５２】
ステップＳ９３以下における割当て帯域ｇの再計算では、まず、出力ポートのアクティブフローフラグＦ２が１の流量監視識別子ｃの最低保証帯域Ｃの合計を算出する。その後、出力ポートの全ての流量監視識別子ｃについて、アクティブフローフラグＦ２が１である流量監視識別子ｃの割当て帯域ｇを下記の割当て帯域導出式（２）に基づいて算出する（ステップＳ９４〜Ｓ９８）。
0003905791.tif 000003
次いでその出力ポートの全ての流量監視識別子ｃについての計算を終了すると（ステップＳ９７でＹ）、変更フラグＦ１を０にして処理を終了する（ステップＳ９９）。
【００５３】
ここで、式（２）では、流量監視識別子ｃの割当て帯域ｇは、流量監視識別子ｃの最低保証帯域ＣをアクティブフローフラグＦ２が１の流量監視識別子ｃの最低保証帯域Ｃの合計ΣＣで割った割合を、ポート帯域Ａに掛けて導出されるので、割当て帯域ｇは最低保証帯域Ｃの比により割り当てられることになり、すべてのアクティブフローが１のとき以外は、割当て帯域ｇは最低保証帯域Ｃを上回る。
【００５４】
図１９に送信停止判断手段１２３２ａの処理を示す。第３の実施の形態では、第１の実施の形態の図１０のステップＳ４３の代わりに、ポート超過流量ｅが０より大きく、なおかつ個別転送流量ｄが割当て帯域ｇを超えている場合の送信停止と判断する（ステップＳ４３ａ）の部分が異なるのみで、他のステップＳ４１、Ｓ４２、Ｓ４４、Ｓ４５は第１の実施の形態と同様の処理となる。
【００５５】
図２０に初期化手段１２３４ａの処理を示す。第３の実施の形態では、図２０に示すように追加されたテーブルの初期化（ステップＳ３６〜Ｓ３８）が追加されている。第１の実施の形態での初期化処理（図１２）のステップＳ３１〜Ｓ３５の後、アクティブフローフラグＦ２に現モニタ周期での転送フラグＦ３を代入し（ステップＳ３６）、次いで現モニタ周期での転送フラグＦ３を０に（ステップＳ３７）、また、変更フラグＦ１と割当て帯域ｇをともに０に初期化する（ステップＳ３８）。このように初期化を行うことで、前モニタ周期で転送のなかった流量監視識別子ｃに関しては、アクティブフローがクリアされる。
【００５６】
このようにパケットの転送によりアクティブフローフラグＦ２を１に変更し、モニタ周期単位で転送のなかったアクティブフローフラグＦ２を０にすることで、出力ポートを同時に使用するフローを算出、更新し、よりリアルタイム性のある帯域制御を実現することが可能となる。また、第３の実施の形態では、輻輳時の帯域制御の判断に、同じ出力ポートを使用するアクティブフローの算出を行い、このアクティブフローに基づき、ポート帯域ＡをアクティブフローフラグＦ２が１の最低保証帯域Ｃの比で再割当てすることで、アクティブフローが少ない状態で輻輳した場合に、使用帯域を最低保証帯域Ｃの保証を行いつつ、最低保証帯域Ｃの比で割り当てることが可能になる。また、帯域の再計算は新たなアクティブフローが発生したときのみ実行されるため、帯域の再計算処理を削減することができる。
【００５７】
（第４の実施の形態）
次に図２１を参照して本発明の第４の実施の形態を説明する。第４の実施の形態では、割当て帯域ｇの算出において、最低保証帯域Ｃに加えて、ポート帯域Ａから最低保証帯域Ｃの合計を引いた残りの帯域をアクティブフローで均等に割り当てるよう算出する。図２１に示す割当て帯域算出処理と割当て帯域導出式（２）ａが異なるのみで、その他の動作はすべて第３の実施の形態と同じである。
【００５８】
図２１に示す割当て帯域算出処理では、図１８に示したステップＳ９３の後に、出力ポートのアクティブフローフラグＦ２が１の流量監視識別子ｃのフローの数の合計（アクティブフロー数）を算出するステップＳ９３ａが追加され、また、ステップＳ９６ａでは次式（２）ａにより割当て帯域ｇを算出する。
割当て帯域ｇ
＝最低保証帯域
＋（ポート帯域−最低保証帯域の合計＊）
／アクティブフロー数 …（２）ａただし、＊：アクティブフローフラグＦ２が１の流量監視識別子ｃの最低保証帯域Ｃの合計
【００５９】
ここで、（２）ａでは、割当て帯域ｇは最低保証帯域Ｃに対して、ポート帯域ＡからアクティブフローフラグＦ２が１の流量監視識別子ｃの最低保証帯域Ｃの合計ΣＣ＊を引いた残りの帯域＝Ａ−ΣＣ＊をアクティブフローの数の合計で割った均等な値を加算するので、輻輳時に、最低保証帯域Ｃの保証を行いつつ、余分な帯域は均等に使用できるよう帯域の割当てを行うことが可能となる。
【００６０】
（第５の実施の形態）
次に図２２、図２３を参照して本発明の第５の実施の形態を説明する。第５の実施の形態では、これまでの第１から第４までの実施の形態と異なり、最低帯域保証は行わず、輻輳時に公平な帯域の割当てを実現することを特徴とする。このため、帯域管理部１２１が管理するテーブルも図２２に示すように最低保証帯域Ｃのない構成となる。
【００６１】
図２３は第５の実施の形態の割当て帯域算出処理を示し、アクティブフロー数を算出し（ステップＳ９３ａ）、この値を用いて次式（２）ｂにより、ポート帯域Ａをアクティブフロー数で割った均等な値を割当て帯域ｇとして使用する。
割当て帯域ｇ
＝ポート帯域／アクティブフロー数    …（２）ｂ
【００６２】
このように、ポートを同時に使用するアクティブフロー数により、リアルタイムにポートの同時使用者数を算出し、この同時使用者数で均等に帯域を割り当てるため、輻輳時に公平な帯域の割当てを行うことが可能となる。また、最大帯域制限に関しては、独立して転送流量のカウントが行われ、また送信停止判断処理も行われるため、この輻輳時の制御とは関係なく、第１から第４の実施の形態と同様に実現可能である。
【００６３】
（第６の実施の形態）
次に図２４を参照して本発明の第６の実施の形態を説明する。第６の実施の形態では、第１の実施の形態の送信停止判断手段１２３２のポーズフラグｆによる判断（図１０のステップＳ４１）を行わない。図２４からも分かるように、ポーズフラグｆによる判断を行わず、送信停止と判断した場合（ステップＳ４２、Ｓ４３でＹ）、送信停止パケットを必ず送信する。このように送信停止パケットの送信を連続して行うことで、パケットロスの在る場合でも確実に送信元の送信停止を行うことができ、帯域の制御を行うことが可能となる。
【００６４】
（第７の実施の形態）
図２７は第７の実施の形態としてスイッチングハブＳＷを示した図である。ハブＳＷは、各ポート＃１〜＃ｎの制御をそれぞれ行うポート制御部１０１（１０１＃１〜１０１＃ｎ）と、各ポート＃１〜＃ｎの流量の監視を行う流量監視部１０２と、各ポート＃１〜＃ｎに要求された帯域を設定する帯域設定部１０３と、パケットのスイッチング判断とポーズパケット転送判断を担当するパケット転送制御部１０５と、設定された帯域情報と各ポート＃１〜＃ｎの流量を記録した流量状態テーブル１０４と、ポート＃１〜＃ｎの流量状態と輻輳状態を記録した帯域制御テーブル１０６を有する。流量監視部１０２と、流量状態テーブル１０４と、帯域設定部１０３と、パケット転送制御部１０５と帯域制御テーブル１０６と各ポート制御部１０１は制御バス３を介して接続され、また。各ポート制御部１０１はさらにデータバス４を介して接続されている。
【００６５】
図２８はポート制御部１０１を詳しく示したものである。例えばポート制御部１０１＃ｎは、ポート＃ｎから入力されたパケットの受信処理を行う受信処理部１０１１と、ポーズパケットとデータパケットとの送信制御を行ってパケットをポート＃ｎに送信する送信処理部１０１２と、パケット転送制御部１０５からの指示を元にIEEE８０２．３に準拠したポーズパケットの作成を行うポーズパケット生成部１０１３と、出力データパケットを格納する出力バッファ１０１４から構成される。出力バッファ１０１４はＦＩＦＯ(First In First Out)の構成をとり、各ポート制御部１０１に１個ずつ設けられ、出力ポートを共有する複数のフローのパケットを入力された順番に格納していく。送信処理部１０１２は、ポーズパケット生成部１０１３からポーズパケットが送信されてくると、直ちにそのポーズパケットをデータパケットに優先させて送信処理を行う。
【００６６】
図２９は流量監視部１０２を詳しく示したものである。流量監視部１０２は、受信されたパケットのサイズを認識するパケット解析部１０２１と、パケットの流量をフロー別に管理する流量管理部１０２２と、流量により出力ポートが輻輳しているかを判断する輻輳判断部１０２３と、フロー別の流量を要求された保証流量・ピーク流量と比較する流量判断部１０２４から構成される。
【００６７】
ここでいう流量とは、単位時間の間に転送されたパケットのバイト数の合計である。流量計算の実施例を図３０に示す。図３０では、単位時間をさらにＮ個の部分区間に分けている。部分区間は、その区間に転送されたパケットのバイト数ｒをフロー別に記憶する。流量は単位時間内の部分区間のバイト数の合計
ｒk-(N-2)+ｒk-(N-3)+・・・+ｒk-1+ｒk
として算出される。ここで１つの部分区間が経過すると、単位時間を「単位時間(1)」から１つの部分区間を経過した「単位時間(2)」に移動させる。このことにより、流量は
ｒk-(N-2)+ｒk-(N-3)+・・・+ｒk+ｒk+1
となる。新しく転送されたパケットのバイト数は、単位時間の最も新しい部分区間内の領域に加算される。
【００６８】
図３１は流量監視部１０２内の流量管理部１０２２を詳しく示したものである。流量管理部１０２２は、要求に応じて個別流量ｃ１とポート総流量ｄ１を計算する流量計算部１２２１と、フロー別に各部分区間内の転送バイト数を格納している流量状態メモリ１２２４と、部分区間分の時間経過ごとに単位時間の移動要求を出す流量更新タイマ１２２３と、パケット受信時と流量更新タイマからの要求時に流量状態メモリ１２２４の内容を更新する流量更新部１２２２とから構成される。
【００６９】
具体的には、流量計算部１２２１はフローごとにＮ個の部分区間の転送バイト数を合計して個別流量ｃ１を算出し、ポートを共用するフローの個別流量ｃ１を合計することによりポート総流量ｄ１を算出する。流量更新部１２２２は、パケット受信時にパケットのバイト数を、流量状態メモリ１２２４の受信パケットに対応した部分区間の最も新しい区間に加算する。また流量更新部１２２２は、流量更新タイマ１２２３からの要求があれば最も古い時刻の部分区間の値を消去し、最も新しい時刻の部分区間として使用する。
【００７０】
図３２は帯域設定部１０３を詳しく示したものである。帯域設定部１０３は、ユーザからの各フローに対する帯域の要求（最低保証流量Ｂ１とピーク転送流量Ａ１）を入力する流量入力部１０３１と、流量入力部１０３１に入力された要求流量値Ａ１、Ｂ１を流量監視部１０２が認識できる形式ａ１、ｂ１に変換する流量変換部１０３２と、変換された要求流量値ａ１、ｂ１を転送流量テーブルに書き込む流量設定部１０３３からなる。具体的には、ユーザからの要求Ａ１、Ｂ１は、１秒間に転送されるビット数（bps）の形式で流量入力部１０３１に入力され、流量変換部１０３２では単位時間に転送されるバイト数に変換される。つまり、流量計算の単位時間が１秒と設定されている場合には、１Ｍbpsは１２２バ イトと変換されることになる。ここで最低保証流量Ｂ１とはネットワークの状況にかかわらず保証される流量のことであり、ピーク転送流量Ａ１とは入力することが許される最大流量のことである。
【００７１】
図３３は流量状態テーブル１０４の構成例を示している。流量状態テーブル１０４は、ユーザから設定された要求流量ａ１、ｂ１と、各ポートにおける流量の状態ｃ１、ｄ１を管理している。テーブルは出力ポート＃１〜＃ｎ単位で構成され、さらに入力元ポート単位で構成されている。ピーク流量ａ１は、帯域設定部１０３にユーザが要求したピーク転送流量Ａ１を単位時間転送バイト数に変換した値であり、入力元ポートごとに値を持つ。保証流量ｂ１は、帯域設定部３にユーザが要求した最低保証流量Ｂ１を単位時間転送バイト数に変換した値であり、入力元ポートごとに値を持つ。個別流量ｃ１とは、入力元ポートごとの単位時間に転送されたパケットのバイト数である。ポート総流量ｄ１は、単位時間に出力ポートに転送されたパケットのバイト数である。
【００７２】
図３４は帯域制御テーブル１０６の構成例を示している。帯域制御テーブル１０６では、入力元ポートごとの流量レベルの状態ｆ１と、各出力ポートの輻輳状態ｆ２を管理している。流量状態ｆ１は入力元ポートごとに２bitで構成され、入力元ポートの個別流量ｃ１が保証流量ｂ１を下回っている状態にはｆ１＝００に、ピーク流量ａ１を上回っている状態にはｆ１＝１０に、保証流量ｂ１とピーク流量ａ１との間にある状態ではｆ１＝０１に設定される。輻輳状態ｆ２は出力ポートごとに１bitで構成され、出力ポートが輻輳していると判断された場合にはｆ２＝１に、輻輳していないと判断された場合にはｆ２＝０に設定される。
【００７３】
図３５は流量監視部１０２における流量監視処理を示したフローチャートである。パケットが入力されるとパケット解析部１０２１にてパケットヘッダを解析し、パケットサイズと入出力ポートとを認識する（ステップＳ１０１）。流量管理部１０２２は、認識したパケットサイズを元に入力ポート別の個別流量ｃ１と出力ポートのポート総流量ｄ１を計算し、流量状態テーブル１０４の個別流量ｃ１とポート総流量ｄ１を更新する（ステップＳ１０２）。流量状態テーブル１０４が更新されると、輻輳判断部１０２３は出力ポートの輻輳状態を調査する。
【００７４】
具体的には、流量状態テーブル１０４上の自フローが共用しているポートのポート総流量ｄ１とポート出力流量とを比較し（ステップＳ１０３）、ポート総流量ｄ１が上回っていればポートが輻輳していると判断し、輻輳状態ｆ２＝１として帯域制御テーブル１０６を更新する（ステップＳ１０３→Ｓ１０５）。逆に下回っている場合には輻輳していないと判断し、輻輳状態ｆ２＝０と更新する（ステップＳ１０３→Ｓ１０４）。ここでポート出力流量とは、出力ポートが単位時間の間に出力することができるバイト数のことである。例えば、単位時間を１秒と設定したときの１０Ｍbpsのポートのポート出力流量は１２２１バイトとなる。
【００７５】
次いで流量判断部１０２４では入力元ポート別の個別流量ｃ１の流量レベルを調査する。具体的には、流量状態テーブル１０４上の個別流量ｃ１とピーク流量ａ１とを比較し（ステップＳ１０６）、個別流量ｃ１がピーク流量ａ１を上回っていればピーク転送流量を超えたと判断し、流量状態ｆ１＝１０とする（ステップＳ１０６→Ｓ１１０）。ｃ１＞ａ１でなければ個別流量ｃ１と保証流量ｂ１を比較し（ステップＳ１０７）、個別流量ｃ１が保証流量ｂ１を下回っていれば最低保証流量を満たしていないと判断され、流量状態ｆ１＝００とする（ステップＳ１０７→Ｓ１０８）。個別流量ｃ１が保証流量ｂ１とピーク流量ａ１との間にあれば、流量状態ｆ１＝０１とする（ステップＳ１０７→Ｓ１０９）。このように、求められた流量状態値ｆ１は帯域制御テーブル１０６に更新される。なお、輻輳状態ｆ２の更新と流量状態ｆ１の更新順序は逆になっても構わない。
【００７６】
図３６はパケット転送制御部１０５におけるパケット転送処理を示したフローチャートである。パケット受信情報をポート制御部１０１から受け取ったパケット転送制御部１０５は、まず帯域制御テーブル１０６の輻輳状態ｆ２を参照してポートの輻輳状態を調査する（ステップＳ１１１）。輻輳状態ｆ２＝０であれば、ポートは輻輳していない状態である。続いてパケット転送制御部１０５は流量状態ｆ１を参照する（ステップＳ１１２）。
【００７７】
流量状態ｆ１＝１０であれば、フローはピーク転送流量を超えていると判断され、トラフィック制御対象とする。データパケット転送後、トラフィック制御対象のフローに対しては、ポート制御部１０１内のポーズパケット生成部１０１３に指示を出し、入力パケットの入力元ポートに対してＩＥＥＥ８０２．３に準拠したポーズパケットを送信する（ステップＳ１１２→Ｓ１１５）。流量状態ｆ２＝１０以外であれば、データパケットの転送のみを行い、トラフィック制御は行わない（ステップＳ１１２→Ｓ１１４）。これにより、ユーザが要求したピーク転送流量を超えて入力したフローを停止させることが可能となる。
【００７８】
また、帯域制御テーブル１０６が輻輳状態ｆ２＝１であれば、ポートは輻輳している状態である（ステップＳ１１１→Ｓ１１３）。続いて流量状態ｆ１を参照し、ここで流量状態ｆ１＝００であれば、データパケットの転送を行い、トラフィック制御を行わない（ステップＳ１１３→Ｓ１１６）。流量状態＝００以外であれば、データパケット転送後、前記ポーズパケットを送信することによりトラフィックを制御する（ステップＳ１１３→Ｓ１１６）。これにより、輻輳状態においても、最低保証流量を超えていないフローに対してトラフィック制御しないことが可能となる。
【００７９】
以上説明したように、ＦＩＦＯの出力バッファを１つ出力ポートに対して１つ設ける簡単な構成で、バッファメモリを効率よく使用し、流量監視をして流量レベルに応じたトラフィック制御を行うことにより、フローごとにピーク転送流量に最大流量を制限し、輻輳時には最低保証流量の転送を保証するといった帯域制御ができるという効果を有する。
【００８０】
【発明の効果】
以上説明したように本発明によれば、パケット転送時の流量を算出して送信停止判断を行い、制御が必要な場合は送信停止パケットを送信することで、帯域制御を行うようにしたので、各出力ポートにフロー毎の出力バッファを設けることなく、また出力バッファ間の複雑な読み出し制御を行うことなく、帯域制御を行うことができる。
また、送信停止判断処理を変更するのみで、最大帯域制限、また輻輳時の最低保証帯域、輻輳時の公平な帯域制御を実施することができる。
さらに、ポートを同時に使用するアクティブフローを算出し、割当て帯域を算出することで、輻輳時の帯域割当てにおいて、最低帯域の比や、最低帯域を保証した上で、残り帯域を公平に使用する制御に変更することができる。
【図面の簡単な説明】
【図１】本発明に係るパケット転送装置の一実施形態を示すブロック図
【図２】図１の帯域制御部を詳しく示すブロック図
【図３】図１のパケット送信制御部を詳しく示すブロック図
【図４】図１のパケット転送装置のパケット受信時の処理シーケンスを示す説明図
【図５】図２の帯域制御判断部の処理を示す説明図
【図６】図２の帯域管理部が管理するテーブルを示す説明図
【図７】図２の帯域制御判断部の流量監視テーブルを示す説明図
【図８】図２のタイマ部の処理を示すフローチャート
【図９】図２の帯域制御判断部の流量カウント処理を示すフローチャート
【図１０】図５の送信停止判断処理を示すフローチャート
【図１１】図５の停止時間算出処理を示すフローチャート
【図１２】図５のカウント初期化処理を示すフローチャート
【図１３】第２の実施形態の停止時間算出処理を示すフローチャート
【図１４】図１３の加算処理を詳しく示すフローチャート
【図１５】第３の実施形態の帯域制御判断部の処理を示す説明図
【図１６】第３の実施形態の帯域制御判断部の第２のテーブルを示す説明図
【図１７】図１５のアクティブフロー算出処理を示すフローチャート
【図１８】図１５の割当て帯域算出処理を示すフローチャート
【図１９】図１５の送信停止判断処理を示すフローチャート
【図２０】図１５のカウント初期化処理を示すフローチャート
【図２１】第４の実施形態の割当て帯域算出処理を示すフローチャート
【図２２】第５の実施形態の帯域制御判断部の流量監視テーブルを示す説明図
【図２３】第５の実施形態の割当て帯域算出処理を示すフローチャート
【図２４】第６の実施形態の送信停止判断処理を示すフローチャート
【図２５】従来のパケット転送装置を示すブロック図
【図２６】図２５のパケット送信制御部を詳しく示すブロック図
【図２７】第７の実施の形態を示すブロック図
【図２８】図２７のポート制御部を詳しく示すブロック図
【図２９】図２７の流量監視部を詳しく示すブロック図
【図３０】図２９の流量監視部における流量の算出方法を示す説明図
【図３１】図２９の流量管理部を詳しく示すブロック図
【図３２】図２７の帯域設定部を詳しく示すブロック図
【図３３】図２７の流量状態テーブルを詳しく示す説明図
【図３４】図２７の帯域制御テーブルを詳しく示す説明図
【図３５】図２９の流量監視部の処理を示すフローチャート
【図３６】図２７のパケット転送制御部の処理を示すフローチャート
【符号の説明】
１１  パケット転送処理部
１２  帯域制御部
２０（２０＃１、２０＃２…２０＃ｎ）  ポート制御部
１２１  帯域管理部
１２２  タイマ部
１２３  帯域制御判断部
【図１】
0003905791.tif 000004
【図２】
0003905791.tif 000005
【図３】
0003905791.tif 000006
【図４】
0003905791.tif 000007
【図５】
0003905791.tif 000008
【図６】
0003905791.tif 000009
【図７】
0003905791.tif 000010
【図８】
0003905791.tif 000011
【図９】
0003905791.tif 000012
【図１０】
0003905791.tif 000013
【図１１】
0003905791.tif 000014
【図１２】
0003905791.tif 000015
【図１３】
0003905791.tif 000016
【図１４】
0003905791.tif 000017
【図１５】
0003905791.tif 000018
【図１６】
0003905791.tif 000019
【図１７】
0003905791.tif 000020
【図１８】
0003905791.tif 000021
【図１９】
0003905791.tif 000022
【図２０】
0003905791.tif 000023
【図２１】
0003905791.tif 000024
【図２２】
0003905791.tif 000025
【図２３】
0003905791.tif 000026
【図２４】
0003905791.tif 000027
【図２５】
0003905791.tif 000028
【図２６】
0003905791.tif 000029
【図２７】
0003905791.tif 000030
【図２８】
0003905791.tif 000031
【図２９】
0003905791.tif 000032
【図３０】
0003905791.tif 000033
【図３１】
0003905791.tif 000034
【図３２】
0003905791.tif 000035
【図３３】
0003905791.tif 000036
【図３４】
0003905791.tif 000037
【図３５】
0003905791.tif 000038
【図３６】
0003905791.tif 000039