JP2017063388A - 帯域制御装置及び帯域制御システム - Google Patents
帯域制御装置及び帯域制御システム Download PDFInfo
- Publication number
- JP2017063388A JP2017063388A JP2015188822A JP2015188822A JP2017063388A JP 2017063388 A JP2017063388 A JP 2017063388A JP 2015188822 A JP2015188822 A JP 2015188822A JP 2015188822 A JP2015188822 A JP 2015188822A JP 2017063388 A JP2017063388 A JP 2017063388A
- Authority
- JP
- Japan
- Prior art keywords
- unit
- flow
- port
- amount
- credit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/621—Individual queue per connection or flow, e.g. per VC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/25—Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/52—Queue scheduling by attributing bandwidth to queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/52—Queue scheduling by attributing bandwidth to queues
- H04L47/522—Dynamic queue service slot or variable bandwidth allocation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】 フロー間の帯域制御の公平性を損なわずに、帯域制御処理の負荷を低減する帯域制御装置及び帯域制御システムを提供する。
【解決手段】 帯域制御装置は、パケットをフローごとに格納する複数のパケット格納部と、前記フローごとに供給された読出許容量に基づき前記複数のパケット格納部からパケットを読み出して、前記フローに応じたポートに出力する出力部と、前記ポートを順次に選択し、前記ポートを選択するたびに選択中の前記ポートに応じた前記フローを選択し、該選択したフローに前記読出許容量を供給するスケジューラ部と、前記選択したフローが帯域保証されている場合、前記スケジューラ部により供給される前記読出許容量が増加し、前記選択したフローが帯域保証されていない場合、前記ポートの選択が切り替わる前に、選択中の前記ポートに応じた他のフローにも前記読出許容量が供給されるように、前記スケジューラ部を制御する制御部とを有する。
【選択図】図3
【解決手段】 帯域制御装置は、パケットをフローごとに格納する複数のパケット格納部と、前記フローごとに供給された読出許容量に基づき前記複数のパケット格納部からパケットを読み出して、前記フローに応じたポートに出力する出力部と、前記ポートを順次に選択し、前記ポートを選択するたびに選択中の前記ポートに応じた前記フローを選択し、該選択したフローに前記読出許容量を供給するスケジューラ部と、前記選択したフローが帯域保証されている場合、前記スケジューラ部により供給される前記読出許容量が増加し、前記選択したフローが帯域保証されていない場合、前記ポートの選択が切り替わる前に、選択中の前記ポートに応じた他のフローにも前記読出許容量が供給されるように、前記スケジューラ部を制御する制御部とを有する。
【選択図】図3
Description
本件は、帯域制御装置及び帯域制御システムに関する。
通信需要の増加に伴い、ネットワークを流れるトラフィックの帯域が増加している。このため、例えばネットワーク内のルータやレイヤ2スイッチには、ユーザごとのトラフィックの帯域を制御する手段が設けられる。
例えば特許文献1には、スケジューラ部から複数のキューの各々に与えられるクレジットを消費してキューからパケットを読み出すことにより帯域を制御する手法が開示されている。この手法によると、クレジット量分のパケットを一度に読み出すことができるため、パケットごとではなく、クレジットの供給量ごとに読み出し対象のキューを選択すればよく、読み出し対象のキューの選択回数が低減される。
例えば、パケットごとにキューを選択する場合、100(Gbps)のイーサネット(登録商標、以下同様)における最短フレーム長の64(Byte)のスケジューリングでは、約150M(回/秒)、つまり6.72(ns)の周期の選択処理が必要となる。しかし、クレジットの供給量ごとにキューを選択する場合、例えばクレジットの供給量を10(KByte)とすると、約1.25M(回/秒)、つまり800(ns)の周期の選択処理で済む。さらに、クレジットの供給量を10倍の100(KByte)とすれば、約125K(回/秒)、つまり8(μs)の周期の選択処理で済む。
上記の手法では、クレジットの供給量を増やすほど、キューの選択回数が低減されるため、スケジューラ部におけるクレジットを供給処理の負荷が低減されるが、その一方でキューから一度に読み出されるパケットのデータ量が増加する。
一度に読み出されるパケットのデータ量が増加すると、トラフィックのバースト性が増加してしまう。この場合、例えばVoIP(Voice Over Internet Protocol)や映像配信などのリアルタイム系の通信サービスの品質が低下する。このため、バースト性の観点からすると、クレジットの供給量は小さい方が望ましい。
しかし、例えばスケジューラ部をCPU(Central Processing Unit)などのプロセッサによりソフトウェアで構成した場合、スケジューラ部の処理の負荷は、クレジットの供給処理以外の処理の発生により変動し得る。この場合、スケジューラ部は、低負荷のときには、クレジットの供給量を小さくして(例えば10(KByte))、高周期で供給することができるが、高負荷のときには、クレジットの供給処理がパケットの読み出し処理に間に合わずにパケットの出力レートが低下し得る。
これに対して、スケジューラ部の負荷に応じてクレジットの供給量を変更することが考えられる。しかし、クレジットの供給対象のキューを順次に選択している途中でクレジットの供給量が変更された場合、キュー間でパケットの読み出し量に差が生ずるため、キューごとのパケットのフロー間において帯域制御が不公平となる。さらに、クレジットの供給は、パケットのキューへの入力を契機として行われるため、クレジットの供給量を変更できる適切なタイミングを予測することは不可能である。
そこで本件は上記の課題に鑑みてなされたものであり、フロー間の帯域制御の公平性を損なわずに、帯域制御処理の負荷を低減する帯域制御装置及び帯域制御システムを提供することを目的とする。
本明細書に記載の帯域制御装置は、パケットをフローごとに格納する複数のパケット格納部と、前記フローごとに供給された読出許容量に基づき前記複数のパケット格納部からパケットを読み出して、前記フローに応じたポートに出力する出力部と、前記ポートを順次に選択し、前記ポートを選択するたびに選択中の前記ポートに応じた前記フローを選択し、該選択したフローに前記読出許容量を供給するスケジューラ部と、前記選択したフローが帯域保証されている場合、前記スケジューラ部により供給される前記読出許容量が増加し、前記選択したフローが帯域保証されていない場合、前記ポートの選択が切り替わる前に、選択中の前記ポートに応じた他のフローにも前記読出許容量が供給されるように、前記スケジューラ部を制御する制御部とを有する。
本明細書に記載の帯域制御システムは、ネットワークを介して通信する第1処理装置及び第2処理装置を有し、前記第1処理装置は、パケットをフローごとに格納する複数のパケット格納部と、前記フローごとに供給された読出許容量に基づき前記複数のパケット格納部からパケットを読み出して、前記フローに応じたポートに出力する出力部とを有し、前記第2処理装置は、前記ポートを順次に選択し、前記ポートを選択するたびに選択中の前記ポートに応じた前記フローを選択し、該選択したフローに、前記ネットワークを介して、前記読出許容量を供給するスケジューラ部と、前記選択した前記フローが帯域保証されている場合、前記読出許容量を増加させ、前記選択した前記フローが帯域保証されていない場合、前記ポートの選択が切り替わる前に、選択中の前記ポートに応じた他のフローにも前記読出許容量が供給されるように、前記スケジューラ部を制御する制御部とを有する。
フロー間の帯域制御の公平性を損なわずに、帯域制御処理の負荷を低減できる。
図1は、通信装置の一例を示す構成図である。通信装置は、複数のインターフェースカード91と、2枚のスイッチカード92と、コントロールカード93とを有する。各カード91〜93は、筐体に設けられた個別のスロットに収容され、互いに電気的に接続される。なお、本明細書では、実施例の帯域制御装置を実装した通信装置として、レイヤ2スイッチやルータなどを例に挙げるが、これに限定されず、実施例の帯域制御装置は、例えば波長多重伝送装置などの他種の通信装置にも同様に実装される。
通信装置は、他装置から受信したパケットを、その宛先に従って他装置に中継する。なお、本明細書において、パケットとは、伝送されるデータ(情報)の伝送単位(PDU:Protocol Data Unit)であり、例としてイーサネットフレームを挙げるが、これに限られず、IP(Internet Protocol)パケットなどの他のPDUが用いられてもよい。
インターフェースカード91は、それぞれ、他装置との間において、パケットを送受信する。他装置としては、例えば、パーソナルコンピュータなどの端末装置、サーバ、及びルータが挙げられる。インターフェースカード91は、複数のポートにより光ファイバと接続され、例えば10GBASE−LRの規格に基づく通信を行う。
2枚のスイッチカード92は、それぞれ、複数のインターフェースカード91の間において、パケットを交換する。より具体的には、スイッチカード92は、インターフェースカード91からパケットが入力され、パケットを、その宛先に応じたインターフェースカード91に出力する。2枚のスイッチカード92は、例えば、ハードウェア故障などの障害に備えて、現用系及び予備系として使用される。
コントロールカード93は、複数のインターフェースカード91及び2枚のスイッチカード92を制御する。コントロールカード93は、ネットワーク制御装置などと接続され、ユーザーインターフェースに関する処理、各カード91,92に対する設定処理、及び各カード91,92からの情報収集処理などを行う。コントロールカード93は、これらの処理を実行するCPUなどのプロセッサ930、及び、プロセッサ930を駆動するプログラムを記憶するメモリ931を有する。
また、コントロールカード93には、トラフィックの帯域制御機能が実装されてもよい。このような機能は、ネットワーク機能仮想化(NFV: Network Functions Virtualization)により例えばプロセッサ930、つまりソフトウェアにより実現される。
しかし、100(Gbps)を超えるようなトラフィックの帯域制御処理の全てをプロセッサ930で実現することは処理速度の観点から困難である。このため、後述するように、帯域制御処理のうち、例えばパケットのキューに対する入出力処理は、インターフェースカード91内のハードウェアに分担させ、QoS(Quality of Service)に関わる帯域割り当てや優先制御などのスケジューリング処理は、ソフトウェアに分担させるのが好ましい。
この場合、通信装置を運用するキャリアに応じたソフトウェアを用いることにより、キャリアの仕様に従った適切なスケジューリング処理が可能となる。なお、帯域制御処理は、これに限定されず、その全てがインターフェースカード91に実装されてもよい。
図2は、インターフェースカード91の機能構成を示す構成図である。インターフェースカード91は、複数の光送受信器910と、PHY/MAC部911と、入力処理部912と、出力処理部913と、制御部914と、記憶部915とを有する。
複数の光送受信器910は、例えばSFP(Small Form Factor Pluggable)であり、それぞれ、他装置から光ファイバを介して受信した光信号を電気信号に変換してPHY/MAC部911に出力し、また、PHY/MAC部911から入力された電気信号を光信号に変換し、光ファイバを介して他装置に送信する。つまり、複数の光送受信器910は、他装置との間でパケットを送受信するための複数のポート#1〜#N(N:正の整数)として機能する。
PHY/MAC部911は、他装置とのリンクの確立処理や複数の光送受信器910に対するパケットの分配処理などを行う。PHY/MAC部911は、複数の光送受信器910から入力されたパケットを入力処理部912に出力し、出力処理部913から入力されたパケットを複数の光送受信器910に出力する。
入力処理部912及び出力処理部913は、FPGA(Field Programmable Gate Array)やASIC(Application Specific Integrated Circuit)などの論理回路であり、イングレス(INGRESS)及びイーグレス(EGRESS)のパケット処理をそれぞれ行う。入力処理部912は、PHY/MAC部911からのパケットの入力レートの制御処理などを行って、スイッチカード92にパケットを出力する。
出力処理部913は、スイッチカード92から入力されたパケットのフローごとに帯域制御処理などを行って、PHY/MAC部911にパケットを出力する。記憶部915は、メモリなどの記憶手段であり、入力処理部912及び出力処理部913が処理に用いる各種のデータを記憶する。
制御部914は、コントロールカード93と通信を行い、入力処理部912及び出力処理部913の制御を行う。制御部914は、CPUなどのプロセッサ及びメモリ(図示せず)を備える。制御部914の処理としては、例えば、入力処理部912及び出力処理部913の各種の設定処理、及び入力処理部912及び出力処理部913で検出された警報の収集処理などが挙げられる。なお、帯域制御処理の一部を、制御部914のソフトウェア処理により実現することも可能である。
図3は、実施例に係る帯域制御装置を示す構成図である。帯域制御装置は、出力処理部913からPHY/MAC部911を介して各ポート#1〜#Nに出力されるパケットの帯域をフローごとに行う。つまり、帯域制御装置は、上記の帯域制御処理を行う。
帯域制御装置は、クレジット制御部1と、負荷監視部2と、キュー管理部4と、スケジューラ部5とを有する。キュー管理部4は、パケットのキューに対する入出力処理などを行い、例えば出力処理部913に設けられる。スケジューラ部5は、QoSに関わる帯域割り当てや優先制御などのスケジューリング処理などを行い、例えばコントロールカード93内のプロセッサ930の機能として構成される。
負荷監視部2は、監視部の一例であり、スケジューラ部5の処理の負荷を監視し、例えばコントロールカード93内のハードウェアに設けられる。例えばスケジューラ部5がCPUにより構成される場合、負荷監視部2は、CPU使用率を監視する。
クレジット制御部1は、制御部の一例であり、スケジューラ部5からキュー管理部4に供給されるクレジット量などを制御する。クレジット量は、キュー管理部4内のキュー41から一度に読み出し可能なパケットのデータ量、つまり読み出し許容量の一例である。クレジット制御部1は、負荷監視部2の監視結果に応じてスケジューラ部5を制御するため、スケジューラ部5の処理の負荷を動的に低減できる。以下に各部の機能の詳細を説明する。
キュー管理部4は、パケット(PKT)分配部40と、パケットpをフロー#1〜#M(M:整数)ごとに格納する複数のキュー41と、読出処理部42と、クレジットテーブル43と、読出判定部44と、読出順序登録FIFO(First In First Out)45とを有する。
PKT分配部40は、スイッチカード92から入力されたパケットのフロー#1〜#Mを特定し、そのフロー#1〜#Mに応じたキュー41にパケットを入力する。つまり、PKT分配部40は、複数のキュー41にパケットを分配する。PKT分配部40は、例えばパケットに付与されたVLAN(Virtual Local Area Network)タグなどからフロー#1〜#Mを特定する。
キュー41は、パケット格納部の一例であり、フロー#1〜#Mごとに設けられて、パケットpを格納する。パケットpは、そのフロー#1〜#Mに応じたキュー41に格納され、格納順に従い読出処理部42により読み出される。読出処理部42は、出力部の一例であり、フロー#1〜#Mごとに供給されたクレジット量に基づきキュー41からパケットpを読み出して、フローに応じたポート#1〜#Nに出力する。
クレジット量は、キュー41からの読み出しが許容されるパケットpのデータ量である読出許容量の一例である。読出処理部42は、クレジットを消費して、パケットpを読み出す。このため、読出処理部42は、クレジット量分のパケットpを一度に読み出すことができるので、パケットpごとではなく、クレジット量ごとに読み出し対象のキュー41を選択すればよい。
クレジットテーブル43は、フロー#1〜#Mごとのクレジット量を管理する。クレジットは、スケジューラ部5からフロー#1〜#Mごとに一定量ずつ供給される。クレジットテーブル43のクレジット量は、クレジットの供給により加算される。また、読出処理部42は、パケットpを読み出したとき、読み出したパケットpのデータ量に応じてクレジットテーブル43のクレジット量を減算する。なお、クレジットテーブル43は、例えばメモリまたはカウンタなどにより構成される。
図3の例において、フロー#1のクレジット量は−258(Byte)であり、フロー#2のクレジット量は360(Byte)である。読出処理部42は、クレジット量が0より大きければパケットpを読み出すため、クレジット量は負の値を取り得る。例えば、クレジット量が10(byte)であるとき、64(Byte)長のパケットpが読み出されると、クレジット量は−54(Byte)(=10−64)となる。
読出判定部44は、キュー41に格納されたパケットpのデータ量及びクレジットテーブル43のクレジット量に基づき、フロー#1〜#Mごとのパケットpの読み出しの可否を判定する。読出判定部44は、読み出し可能と判定したフローのフローID(#1〜#M)を読出順序登録FIFO45に登録する。
より具体的には、読出判定部44は、フロー#1〜#Mごとに、キュー41内のパケットpのデータ量>0かつクレジット量>0とする読み出し条件の成否を判定し、読み出し条件を満たしたフローIDを時系列で読出順序登録FIFO45に登録する。図3の例の場合、フロー#3、フロー#2、フロー#7の順番で読み出し条件が満たされたため、読出順序登録FIFO45には、「3」、「2」、「7」の順にフローIDが登録されている。なお、フロー#1については、クレジット量が負(−258(Byte))であるため、読み出し条件が満たされない。
読出順序登録FIFO45は、読み出し条件を満たしたフローIDが時系列で登録されている。読出処理部42は、読出順序登録FIFO45から登録順でフローIDを読み出し、読み出したフローIDに応じたキュー41からパケットpを読み出す。
このように、読出処理部42は、読み出し対象のキュー41を簡単に選択することができるので、キュー41の選択処理の負荷が低減される。
また、PKT分配部40は、要求部の一例であり、キュー41にパケットが入力されるたびに、スケジューラ部5に一定量のクレジットを要求する。PKT分配部40は、キュー41にパケットを入力したとき、クレジットの要求メッセージ(MSG)をスケジューラ部5に出力する。
PKT分配部40は、パケットのフローIDとデータ量、つまりパケット長を検出して、要求メッセージに格納する。これにより、スケジューラ部5は、キュー41に入力されたパケットpのデータ量がフロー#1〜#Mごとに通知される。
スケジューラ部5は、要求受付部50と、蓄積量テーブル51と、クレジット供給部52と、トークン管理部53と、フローシェーパ54と、通常フロー選択部55と、優先フロー選択部56と、ポートシェーパ57,58と、ポート選択部59とを有する。なお、フローシェーパ54、通常フロー選択部55、優先フロー選択部56、ポートシェーパ57,58、及びポート選択部59は、それぞれ、1つだけ示されているが、複数個設けられてもよい。
要求受付部50は、PKT分配部40から要求メッセージを受け付け、要求メッセージが示すデータ量を蓄積量テーブル51に登録する。蓄積量テーブル51は、キュー41に蓄積されたパケットpの仮想的な蓄積量がフロー#1〜#Mごとに登録されている。なお、蓄積量テーブル51は、例えばメモリまたはカウンタなどにより構成される。
要求受付部50は、受け付けた要求メッセージからフローID及びパケット長を取得して、蓄積量テーブル51の該当フローIDの蓄積量にパケット長を加算する。また、クレジット供給部52は、フロー#1〜#Mごとにクレジットを供給し、供給したクレジット量を、蓄積量テーブル51の該当フローIDの蓄積量から減算する。このとき、供給されたクレジット量は、読出処理部42により読み出されたパケットpのデータ量と仮定される。
しかし、上述したように、読出処理部42は、クレジットテーブル43内のクレジット量>0であればパケットpを読み出すため、クレジット量を超えるパケットpを読み出すことができる。このため、スケジューラ部5により供給されたクレジット量と、読出処理部42により読み出されたパケットpのデータ量との間には誤差が存在する。また、クレジットの供給レートがパケットの入力レートを上回る場合、蓄積量テーブル51の蓄積量は負の値となり得る。
したがって、蓄積量テーブル51の蓄積量は、キュー41内のパケットpの実際の蓄積量とは異なる仮想的な値である。クレジットの供給対象のフロー#1〜#Mは、蓄積量テーブル51の蓄積量に基づき選択される。
ポート選択部59、通常フロー選択部55、及び優先フロー選択部56は、クレジットの供給対象のフロー#1〜#Mを選択して、選択したフローのフローIDをクレジット供給部52に通知する。ポート選択部59、通常フロー選択部55、及び優先フロー選択部56は、フロー#1〜#Mとポート#1〜#Nの対応関係及びフロー#1〜#M同士の対応関係に基づいて階層的に配置されている。
図3には、一例としてフロー#1〜#4に関するポート選択部59、通常フロー選択部55、及び優先フロー選択部56の配置が示されている。ここで、フロー#1及びフロー#2のパケットは同一のポート#1に出力され、フロー#1及びフロー#2の両方とも帯域保証されない、いわゆるベストエフォートのフロー(以下、「非帯域保証フロー」と表記)であると仮定する。また、フロー#3及びフロー#4のパケットが同一のポート#2に出力され、フロー#3だけが帯域保証されたフロー(以下、「帯域保証フロー」と表記)であると仮定する。
通常フロー選択部55は、ポート#1に対応し、蓄積量テーブル51からフロー#1とフロー#2の蓄積量を取得する。優先フロー選択部56は、ポート#2に対応し、蓄積量テーブル51からフロー#3とフロー#4の蓄積量を取得する。
ポート選択部59は、ポート#1〜#Nを順次に選択する。より具体的には、ポート選択部59は、ポート#1に対応する通常フロー選択部55、及びポート#2に対応する優先フロー選択部56を交互に選択する。このとき、通常フロー選択部55は、ポートシェーパ57のトークンバケットに蓄積されたトークン量が0より大きい場合、配下のフロー#1、#2をクレジット供給対象として選択可能であり、トークン量が0以下である場合、配下のフロー#1、#2をクレジット供給対象として選択不可能である。また、優先フロー選択部56は、ポートシェーパ58のトークンバケットに蓄積されたトークン量が0より大きい場合、配下のフロー#3、#4をクレジット供給対象として選択可能であり、トークン量が0以下である場合、配下のフロー#3、#4をクレジット供給対象として選択不可能である。
ポートシェーパ57,58は、トークン管理部53からトークンが供給される。ポート#1の出力レートはポートシェーパ57のトークンの供給レートに基づき制御され、ポート#2の出力レートはポートシェーパ58のトークンの供給レートに基づき制御される。
このように、ポートシェーパ57,58のトークン量は、ポート#1、#2ごとに割り当てられる帯域量であり、クレジット供給部52は、ポートシェーパ57,58のトークン量に基づき、選択中のフロー#1〜#Mにクレジットを供給する。
通常フロー選択部55は、ポート選択部59から選択されるたびに、フロー#1とフロー#2の一方を選択する。通常フロー選択部55は、例えばラウンドロビン方式に基づきフロー#1とフロー#2を公平に選択する。通常フロー選択部55は、選択したフロー#1、#2の蓄積量を蓄積量テーブル51から取得してポート選択部59に通知する。
また、優先フロー選択部56は、ポート選択部59から選択されるたびに、フロー#3とフロー#4の一方を選択する。優先フロー選択部56は、例えば「Strict Priority」方式に基づき、フロー#3とフロー#4のうち、フロー#3を優先的に選択する。
このとき、フロー#3は、フローシェーパ54のトークンバケットに蓄積されたトークン量が0より大きい場合、選択可能であり、トークン量が0以下である場合、選択不可能である。フローシェーパ54は、トークン管理部53からトークンが供給される。フロー#3は、フローシェーパ54に対するトークンの供給レートに応じた帯域が保証される。優先フロー選択部56は、選択したフロー#3、#4の蓄積量を取得してポート選択部59に通知する。
ポート選択部59は、通常フロー選択部55または優先フロー選択部56から通知された蓄積量が0より大きい場合、選択されたフロー#1〜#MのフローIDをクレジット供給部52に通知する。一方、ポート選択部59は、蓄積量が0以下である場合、選択中のフローIDを通知せず、次のポートを選択する。すなわち、クレジット供給部52は、トークン量>0かつ蓄積量>0とする供給条件を満たしたフロー#1〜#Mを選択し、選択したフロー#1〜#Mにクレジットを供給する。フローの選択順序について、以下に例を挙げて説明する。
まず、ポート選択部59は、ポートシェーパ57のトークン量>0の場合、ポート#1に対応する通常フロー選択部55を選択する。通常フロー選択部55は、フロー#1を選択して、フロー#1の蓄積量をポート選択部59に通知する。ポート選択部59は、フロー#1の蓄積量が3000(>0)であるため、クレジット供給部52にフローID「#1」を通知する。このため、クレジット供給部52は、フロー#1にクレジットを供給する。
次に、ポート選択部59は、ポートシェーパ58のトークン量>0の場合、ポート#2に対応する優先フロー選択部56を選択する。優先フロー選択部56は、フローシェーパ54のトークン量>0の場合、フロー#3を選択して、フロー#3の蓄積量をポート選択部59に通知する。ポート選択部59は、フロー#3の蓄積量が−800(≦0)であるため、クレジット供給部52にフローID「#3」を通知しない。このため、クレジット供給部52は、フロー#3にはクレジットを供給しない。なお、仮にフロー#3の蓄積量>0であれば、フロー#3にもクレジットが供給される。
次に、ポート選択部59は、ポートシェーパ57のトークン量>0の場合、ポート#2に対応する通常フロー選択部55を選択する。通常フロー選択部55は、フロー#2を選択して、フロー#2の蓄積量をポート選択部59に通知する。ポート選択部59は、フロー#2の蓄積量が2800(>0)であるため、クレジット供給部52にフローID「#2」を通知する。このため、クレジット供給部52は、フロー#2にクレジットを供給する。以降は、同様にフロー#1〜#Mの選択が繰り返される。
このように、スケジューラ部5は、ポート#1〜#Nを順次に選択し、ポートを選択するたびに選択中のポートに応じたフロー#1〜#Mの1つを選択し、その選択したフローにクレジットを供給する。これにより、全てのフロー#1〜#Mにクレジットの供給の機会が与えられる。
また、トークン管理部53は、ポート単位またはフロー単位のパケットの出力レートを管理する。トークン管理部53は、後述するフロー管理テーブルに基づきフローシェーパ54へのトークンの供給レートを制御し、後述するポート管理テーブルに基づきポートシェーパ57,58へのトークンの供給レートを制御する。
クレジット供給部52は、キュー管理部4にクレジットの供給量と供給対象のフローIDを通知する。これにより、クレジットテーブル43が更新される。クレジット供給部52は、クレジットを供給すると、トークン管理部53にキュー管理部4にクレジットの供給量と供給対象のフローIDを通知する。トークン管理部53は、該当するフローに対応するポートシェーパ57,58のトークン量からクレジットの供給量を減算する。また、帯域保証フローの場合、トークン管理部53は、該当するフローに対応するフローシェーパ54のトークン量からクレジットの供給量を減算する。
負荷監視部2は、上述したようにスケジューラ部5の処理の負荷を監視して、監視結果を、アラーム情報としてクレジット制御部1に通知する。クレジット制御部1は、アラーム情報に応じて、クレジット供給部52のクレジットの供給量及びトークン管理部53のトークンの減算量を制御する。このとき、クレジット制御部1は、ポート選択部59から選択中のフローIDを取得して、フロー#1〜#Mの種別(帯域制御フローまたは非帯域制御フロー)に応じて制御内容を異ならせる。
このように、クレジット制御部1は、負荷監視部2による監視結果に応じてスケジューラ部5を制御するため、クレジットの供給量が適時に制御される。なお、後述するように、負荷監視部2は、アラーム情報を要求受付部50に通知してもよい(点線参照)。
図4は、負荷監視部2の処理の一例を示すフローチャートである。本処理は、例えば周期的に実行される。
まず、負荷監視部2は、スケジューラ部5の処理の負荷を取得する(ステップSt1)。スケジューラ部5が例えばCPUの機能として構成される場合、負荷はCPU使用率やメモリ使用率に基づいて判定される。
次に、負荷監視部2は、取得した負荷を閾値Lthと比較する(ステップSt2)。負荷をCPU使用率とした場合、閾値Lthは例えば70(%)である。
負荷監視部2は、負荷>Lthの場合(ステップSt2のYes)、アラーム情報として、アラーム発生通知をクレジット制御部1に出力して(ステップSt3)、処理を終了する。また、負荷監視部2は、負荷≦Lthの場合(ステップSt2のNo)、アラーム情報として、アラーム解除通知をクレジット制御部1に出力して(ステップSt4)、処理を終了する。このようにして、負荷監視部2の処理は実行される。
なお、スケジューラ部5が複数のCPUから構成されている場合、負荷監視部2は、CPUごとにステップSt2の判定処理を行い、何れかのCPUについて負荷>Lthが成立するとアラーム発生通知を出力すればよい。また、負荷監視部2は、以下のようにアラーム情報を、負荷に応じて複数の段階に区別して通知してもよい。
図5は、負荷監視部2の処理の他例を示すフローチャートである。本処理は、例えば周期的に実行される。
まず、負荷監視部2は、スケジューラ部5の処理の負荷を取得する(ステップSt11)。次に、負荷監視部2は、取得した負荷を閾値Lth1と比較する(ステップSt12)。閾値Lth1は例えば90(%)である。
負荷監視部2は、負荷>Lth1の場合(ステップSt12のYes)、アラーム情報として、アラームレベル「3」通知をクレジット制御部1に出力して(ステップSt16)、処理を終了する。また、負荷監視部2は、負荷≦Lth1の場合(ステップSt12のNo)、取得した負荷を閾値Lth2と比較する(ステップSt13)。閾値Lth2は例えば70(%)である。
負荷監視部2は、負荷>Lth2の場合(ステップSt13のYes)、アラーム情報として、アラームレベル「2」通知をクレジット制御部1に出力して(ステップSt17)、処理を終了する。また、負荷監視部2は、負荷≦Lth2の場合(ステップSt13のNo)、取得した負荷を閾値Lth3と比較する(ステップSt14)。閾値Lth3は例えば50(%)である。
負荷監視部2は、負荷>Lth3の場合(ステップSt14のYes)、アラーム情報として、アラームレベル「1」通知をクレジット制御部1に出力して(ステップSt18)、処理を終了する。また、負荷監視部2は、負荷≦Lth3の場合(ステップSt14のNo)、アラーム情報として、アラーム解除通知をクレジット制御部1に出力して(ステップSt15)、処理を終了する。このようにして、負荷監視部2の処理は実行される。
上述したように、アラーム情報をアラームレベル「1」〜「3」に分けて通知することにより、クレジット制御部1は、クレジットの供給量をアラームレベル「1」〜「3」に応じて制御することができる。例えば通常時のクレジットの供給量を10(KByte)とすると、クレジット制御部1は、クレジットの供給量を、アラームレベル「1」のとき、30(KByte)とし、アラームレベル「2」のとき、50(KByte)とし、アラームレベル「3」のとき、100(KByte)とすることが可能となる。
このように、クレジット制御部1は、負荷に応じてクレジットの供給量が増加するように、スケジューラ部5を制御する場合、クレジットの供給量が負荷に応じ適切に制御される。以下にクレジット制御部1の動作を説明する。
クレジット制御部1は、以下に述べるように、フロー#1〜#Mの間で帯域制御が不公平とならないように、クレジットの供給対象として選択されたフロー#1〜#Mの種別に応じてクレジットの供給を制御する。
クレジット制御部1は、例えば図3のフロー#3のような帯域保証フローが選択された場合、クレジットの供給量が増加するようにスケジューラ部5を制御する。帯域保証フローは、フローシェーパ54により帯域が制御されるため、クレジットの供給量が変更されても、トータルで見ると保証帯域に応じた一定のクレジット量が供給される。このため、帯域保証フローの場合、クレジットの供給量が変更されても、他のフロー#1〜#Mの帯域に影響がない。
また、クレジット制御部1は、例えば図3のフロー#1及びフロー#2のような非帯域保証フローが選択された場合、ポートシェーパ57のトークン量に応じてクレジットの供給を制御する。クレジット制御部1は、ポート選択部59が選択中のポートのトークン量が所定量Kより大きいとき、クレジットの供給量が増加するようにスケジューラ部5を制御する。
これは、トークン量に余剰分がある場合、クレジットの供給量を変更しても、同一ポート#1〜#Nに対応する他のフロー#1〜#Mにも十分な帯域が割り当てられるため、他のフロー#1〜#Mの帯域への影響がないからである。この制御により、クレジット制御部1は、非帯域保証フローの場合でも、クレジットの供給量を増加させることでスケジューラ部5の処理の負荷を低減できる。
一方、クレジット制御部1は、ポート選択部59が選択中のポートのトークン量が所定量K以下であるとき、クレジットの供給量を増加させない。これは、トークン量に余剰分がない場合、クレジットの供給量を変更すると、同一ポート#1〜#Nに対応する他のフロー#1〜#Mに割り当てる帯域が不足するため、フロー#1〜#M間で帯域の不公平が生じるからである。
しかし、上記の場合、クレジット制御部1は、ポート選択部59のポート#1〜#Nの選択処理をスキップさせる処理(以下、「スキップ処理」と表記)を実行するように、スケジューラ部5に指示する。より具体的には、クレジット制御部1は、ポート選択部59のポートの選択が切り替わる前に、選択中のポートに応じた他のフロー#1〜#Mにもクレジットが供給されるように、スケジューラ部5を制御する。
このため、選択中のポート#1〜#Nに対応する各フロー#1〜#Mには、ポートの選択が行われずに、クレジットが供給される。したがって、スケジューラ部5は、ポート#1〜#Nの選択を、該当するフロー数分だけスキップすることができるので、処理の負荷が低減される。
図6は、クレジット制御部1の処理の一例を示すフローチャートである。本処理は、例えば周期的に実行される。
まず、クレジット制御部1は、負荷監視部2からのアラーム情報に基づいてアラームの発生の有無を判定する(ステップSt61)。クレジット制御部1は、アラームが発生している場合(ステップSt61のYes)、クレジット供給部52が供給対象として選択中のフロー#1〜#Mの種別を取得する(ステップSt62)。より具体的には、クレジット制御部1は、ポート選択部59から選択中のフローIDを取得し、取得したフローIDに基づきトークン管理部53のフロー管理テーブルを参照することにより、フローの種別を取得する。
図7にはフロー管理テーブルの一例が示されている。フロー管理テーブルには、フローごとに種別(帯域保証または非帯域保証)及びレートが登録されている。レートは、帯域保証フローについてのみ登録されており、トークン管理部53は、帯域保証フローのレートに基づきフローシェーパ54にトークンを供給する。
再び図6を参照すると、クレジット制御部1は、フロー種別が帯域保証フローである場合(ステップSt63のYes)、クレジットの供給量が一定量だけ増加するようにスケジューラ部5を制御する(ステップSt64)。このとき、クレジット制御部1は、クレジットの供給量を、例えば10(Kbyte)から100(KByte)に増加させる。
このように、クレジット制御部1は、スケジューラ部5の負荷が所定の閾値Lthを上回ったとき、クレジットの供給量が一定量だけ増加するように、スケジューラ部5を制御する。したがって、スケジューラ部5は、負荷の増加に応じ、クレジットの供給レートを抑えることができるため、処理の負荷が低減される。
次に、クレジット制御部1は、クレジットの供給量の増加に合わせて、クレジット供給時のポートシェーパ58のトークンの減算量が増加するようにトークン管理部53を制御する(ステップSt65)。このとき、クレジット制御部1は、トークンの減算量を、例えば10(Kbyte)から100(KByte)に増加させる。このため、ポート単位の帯域の管理に矛盾が生ずることはない。
次に、クレジット制御部1は、クレジットの供給量の増加に合わせて、クレジット供給時のフローシェーパ54のトークンの減算量が増加するようにトークン管理部53を制御する(ステップSt66)。このとき、クレジット制御部1は、トークンの減算量を、例えば10(Kbyte)から100(KByte)に増加させる。このため、帯域保証フローの帯域の管理に矛盾が生ずることはない。
一方、クレジット制御部1は、フロー種別が非帯域保証フロー(ベストエフォートのフロー)である場合(ステップSt63のNo)、そのフローに対応するポートシェーパ57のトークン量をトークン管理部53から取得する(ステップSt67)。次に、クレジット制御部1は、取得したトークン量を所定量Kと比較する(ステップSt68)。
クレジット制御部1は、トークン量>Kの場合(ステップSt68のYes)、クレジットの供給量が一定量だけ増加するようにスケジューラ部5を制御する(ステップSt69)。このとき、クレジット制御部1は、クレジットの供給量を、例えば10(Kbyte)から100(KByte)に増加させる。
次に、クレジット制御部1は、クレジットの供給量の増加に合わせて、クレジット供給時のポートシェーパ57のトークンの減算量が増加するようにトークン管理部53を制御する(ステップSt70)。このとき、クレジット制御部1は、トークンの減算量を、例えば10(Kbyte)から100(KByte)に増加させる。このため、ポート単位の帯域の管理に矛盾が生ずることはない。
なお、図5の例のように、アラーム情報としてアラームレベル「1」〜「3」が通知される場合、上記のステップSt64,St69における増加後のクレジットの供給量、及び上記のステップSt65,St66,St70における増加後のトークンの減算量は、アラームレベルに応じて変化する。
クレジット制御部1は、トークン量≦Kの場合(ステップSt68のNo)、スケジューラ部5にスキップ処理を指示する(ステップSt71)。これにより、クレジット供給部52は、選択中のフロー#1〜#Mと同一ポートに対応する他のフロー#1〜#Mに、ポート#1〜#Nの選択を行うことなく、クレジットを供給する。このため、クレジットを供給した他のフロー数と同じ回数だけポート#1〜#Nの選択をスキップすることが可能となり、スケジューラ部5の処理の負荷が低減される。
また、ステップSt61の判定処理において、アラームが発生していない場合(ステップSt61のNo)、クレジット制御部1は、クレジットの供給量及びトークンの減算量を増加前の値に戻すようにスケジューラ部5を制御する(ステップSt72)。このとき、クレジット制御部1は、クレジットの供給量を100(Kbyte)から10(KByte)に戻し、トークンの減算量を100(Kbyte)から10(KByte)に戻す。なお、アラームが発生していないことは、アラーム解除通知により判定される。
このように、クレジット制御部1は、スケジューラ部5の処理の負荷が閾値Lth以下であるとき、クレジットの供給量を増加前の値に戻すように、スケジューラ部5を制御する。このため、クレジット制御部1は、スケジューラ部5の処理の負荷が低下した場合、クレジットの供給量を減少させることによりトラフィックのバースト性を低減できる。このようにして、クレジット制御部1の処理は実行される。
次にスケジューラ部5の処理について説明する。
図8は、要求受付部50の処理の一例を示すフローチャートである。本処理は、例えば周期的に実行される。
まず、要求受付部50は、キュー管理部4からの要求メッセージの有無を判定する(ステップSt21)。キュー管理部4から受信された要求メッセージは、後述するようにバッファに格納されている。
要求受付部50は、要求メッセージがない場合(ステップSt21のNo)、処理を終了する。また、要求受付部50は、要求メッセージがある場合(ステップSt21のYes)、その要求を受け付ける(ステップSt22)。このとき、要求受付部50は、要求メッセージをバッファから読み出す。なお、要求受付部50は、後述するように、スケジューラ部5の処理の負荷が閾値Lthを超える場合、複数の要求メッセージをまとめて受け付けてもよい。
次に、要求受付部50は、要求メッセージの内容に応じて蓄積量テーブル51を更新する(ステップSt23)。このとき、要求受付部50は、要求メッセージに格納されたパケット長を、蓄積量テーブル51の該当フロー#1〜#Mの蓄積量に加算する。このようにして、要求受付部50の処理は実行される。
図9は、スケジューリング処理の一例を示すフローチャートである。本処理は、例えば周期的に実行されるが、その周期はクレジットの供給量に応じて変化する。
まず、スケジューラ部5は、ポート選択部59によりポート#1〜#Nを選択する(ステップSt31)。より具体的には、ポート選択部59は、ポート#1〜#Nに対応する通常フロー選択部55または優先フロー選択部56を選択する。
次に、スケジューラ部5は、ポート選択部59が選択したポート#1〜#Nに対応する57のトークン量が0より大きいか否かを判定する(ステップSt32)。スケジューラ部5は、トークン量≦0の場合(ステップSt32のNo)、処理を終了する。また、スケジューラ部5は、トークン量>0の場合(ステップSt32のYes)、通常フロー選択部55または優先フロー選択部56によりフロー#1〜#Mを選択する(ステップSt33)。
スケジューラ部5は、選択したフロー#1〜#Mが非帯域保証フロー(ベストエフォートのフロー)である場合(ステップSt34のNo)、クレジット制御部1からのスキップ処理の指示の有無を判定する(ステップSt35)。スケジューラ部5は、スキップ処理の指示がある場合(ステップSt35のYes)、後述するスキップ処理を実行する(ステップSt36)。スケジューラ部5は、スキップ処理の指示がない場合(ステップSt35のNo)、後述するステップSt38以降の処理を実行する。
また、スケジューラ部5は、選択したフロー#1〜#Mが帯域保証フローである場合(ステップSt34のYes)、そのフロー#1〜#Mに対応するフローシェーパ54のトークン量が0より大きいか否かを判定する(ステップSt37)。スケジューラ部5は、トークン量≦0の場合(ステップSt37のNo)、処理を終了する。また、スケジューラ部5は、トークン量>0の場合(ステップSt37のYes)、クレジット供給部52によりクレジットをキュー管理部4に供給する(ステップSt39)。
次に、スケジューラ部5は、トークン管理部53によりトークン量を減算して(ステップSt40)、処理を終了する。このとき、スケジューラ部5は、選択したポート#1〜#Nが帯域保証フローである場合、ポートシェーパ58及びフローシェーパ54の各トークン量を減算し、選択したポート#1〜#Nが非帯域保証フローである場合、ポートシェーパ57のトークン量を減算する。このようにして、スケジューリング処理は実行される。
図10は、スキップ処理の一例を示すフローチャートである。本処理は、図9のステップSt36の処理に対応する。
スケジューラ部5は、蓄積量テーブル51から、選択したフロー#1〜#Mの蓄積量を取得する(ステップSt51)。次に、スケジューラ部5は、取得した蓄積量が0より大きいか否かを判定する(ステップSt52)。
スケジューラ部5は、蓄積量>0の場合(ステップSt52のYes)、クレジット供給部52によりクレジットをキュー管理部4に供給する。このときのクレジットの供給量は、増加しておらず、元の値である。また、スケジューラ部5は、蓄積量≦0の場合(ステップSt52のNo)、クレジットの供給処理は行わない。
次に、スケジューラ部5は、選択したフロー#1〜#Mと同一ポート#1〜#Nに対応する他のフローのうち、未選択のフローの有無を判定する(ステップSt54)。スケジューラ部5は、未選択のフローがある場合(ステップSt54のYes)、該当するフローの1つを選択して(ステップSt56)、上記のステップSt51〜St54の処理を繰り返す。
次に、スケジューラ部5は、未選択のフローがない場合(ステップSt54のNo)、ステップSt53の処理におけるクレジットの供給量の合計をポートシェーパ57のトークン量から減算して(ステップSt55)、処理を終了する。このようにして、スキップ処理は実行される。
スキップ処理において、スケジューラ部5は、ポート#1〜#Nを選択することなく、同一ポートに対応する各フロー#1〜#Mにクレジットを供給する。したがって、スケジューラ部5は、ポート#1〜#Nの選択処理を、クレジットを供給したフロー数分だけスキップできる。
例えば、フロー#1〜#10が同一ポートに対応する場合、クレジット供給部52が、非帯域保証フローであるフロー#1をクレジットの供給対象として選択した場合、残りのフロー#2〜#10にもクレジットを供給する。この場合、フロー#2〜#10と同数の9回分のポート選択処理がスキップされたことになる。これにより、スケジューラ部5は、処理の負荷が低減される。
次に、クレジットの供給動作を、例を挙げて説明する。
図11には、低負荷時(負荷<Lth)の非帯域保証フローへのクレジット供給動作の一例が示されている。図11において、図3と共通する構成については同一の符号を付し、その説明を省略する。また、符号54aはフローシェーパ54のトークンバケットを示し、符号57a,58aはポートシェーパ57,58のトークンバケットを示す。
本例において、フロー#1A〜#1Zはポート#1に対応し、フロー#2A,2B,・・・はポート#2に対応する。フロー#1A〜#1Z及びフロー#2Bは非帯域保証フローであり、フロー#2Aは帯域保証フローである。本例では、クレジット供給部52が非帯域保証フローを選択した場合の動作を挙げる。
クレジット供給部52は、ポート#1を選択し、さらにポート#1に対応するフロー#1Aを選択し、10(KByte)のクレジットを供給する(点線参照)。このとき、ポートシェーパ57のトークンバケット57aから10(KByte)のトークン量が減算される。クレジット供給部52は、ポート#1の選択後、ポート#2を選択する(「次選択」参照)。
また、図12には、高負荷時(負荷≧Lth)の非帯域保証フローへのクレジット供給動作の一例が示されている。図12において、図11と共通する構成については同一の符号を付し、その説明を省略する。本例は、図6のステップSt69,St70の処理が行われた場合の動作である。
クレジット供給部52は、ポート#1を選択し、さらにポート#1に対応するフロー#1Aを選択する。クレジット供給部52は、選択したフロー#1Aに対応するポートシェーパ57のトークンバケット57aのトークン量が所定量Kより多いため、フロー#1Aに100(KByte)のクレジットを供給する(点線参照)。このとき、帯域管理に矛盾が生じないように、ポートシェーパ57のトークンバケット57aから100(KByte)のトークン量が減算される。クレジット供給部52は、ポート#1の選択後、ポート#2を選択する(「次選択」参照)。
本例において、フロー#1Aには低負荷時の10倍のクレジット(=100(KByte)÷10(KByte))が供給されるため、例えば次のポート#2の選択に通常の10倍の時間を要したとしても、スケジューリング処理の性能は維持される。
また、図13は、高負荷時の帯域保証フローへのクレジット供給動作の一例が示されている。図13において、図11と共通する構成については同一の符号を付し、その説明を省略する。本例は、図6のステップSt64〜St66の処理が行われた場合の動作である。
クレジット供給部52は、上記の動作の後、ポート#2を選択し、さらにポート#2に対応するフロー#2Aを選択する。フロー#2Aは帯域保証フローであるため、クレジット供給部52は、選択したフロー#2Aに対応するポートシェーパ58のトークンバケット58aのトークン量またはフローシェーパ54のトークンバケット54aのトークン量によらず、フロー#2Aに100(KByte)のクレジットを供給する(点線参照)。このとき、帯域管理に矛盾が生じないように、ポートシェーパ58のトークンバケット58a及びフローシェーパ54のトークンバケット54aから100(KByte)のトークン量が減算される。
図14は、高負荷時の非帯域保証フロー及び帯域保証フローへのクレジット供給動作の一例を示すシーケンス図である。図14において、スケジューラ部5の処理は、ポート単位のものとフロー単位のものに分けて示されている。なお、符号Taは、図12に示された動作のシーケンスを示し、符号Tbは、図13に示された動作のシーケンスを示す。
負荷監視部2は、アラーム発生通知をクレジット制御部1に出力する。次に、スケジューラ部5は、ポート#1を選択し(符号S1参照)、フロー#1Aを選択する(符号S2参照)。次に、スケジューラ部5は、フロー種別及びポートシェーパ57のトークン量を含むフロー情報をクレジット制御部1に通知する。
クレジット制御部1は、フロー情報に基づき、フロー種別が非帯域保証フローであり、かつ、トークン量>Kと判定するため、クレジットの供給量及びトークンの減算量を100(KByte)に変更するように、クレジット変更指示をスケジューラ部5に出力する。スケジューラ部5は、クレジット変更指示に従い、ポートシェーパ57のトークン量から100(KByte)を減算し(符号S3参照)、100(KByte)のクレジットをフロー#1Aに供給する(符号S4参照)。
次に、スケジューラ部5は、ポート#2を選択し(符号S5参照)、フロー#2Aを選択する(符号S6参照)。次に、スケジューラ部5は、フロー種別を含むフロー情報をクレジット制御部1に通知する。
クレジット制御部1は、フロー情報に基づき、フロー種別が帯域保証フローであると判定するため、クレジットの供給量及びトークンの減算量を100(KByte)に変更するように、クレジット変更指示をスケジューラ部5に出力する。スケジューラ部5は、クレジット変更指示に従い、ポートシェーパ58のトークン量から100(KByte)を減算し(符号S7参照)、フローシェーパ54のトークン量から100(KByte)を減算する(符号S8参照)。また、スケジューラ部5は、100(KByte)のクレジットをフロー#2Aに供給する(符号S9参照)。
上述したように、本例において、フロー#1Aには低負荷時の10倍のクレジットが供給されるため、例えば次のポート#2の選択に通常の10倍の時間ΔTを要したとしても、スケジューリング処理の性能は維持される。
また、図15には、高負荷時の非帯域保証フローへのクレジット供給動作の他例が示されている。図15において、図11と共通する構成については同一の符号を付し、その説明を省略する。本例は、図6のステップSt71の処理が行われた場合の動作である。
本例では、蓄積量テーブル51において、ポート#1に対応するフロー#1A〜#1Zのうち、フロー#1A〜#1Jの蓄積量だけが0より大きいと仮定する。換言すれば、フロー#1A〜#1Jだけがクレジットを要求している。
クレジット供給部52は、ポート#1を選択し、さらにポート#1に対応するフロー#1Aを選択する。クレジット供給部52は、選択したフロー#1Aに対応するポートシェーパ57のトークンバケット57aのトークン量が所定量Kより少ないため、フロー#1Aに10(KByte)のクレジットを供給する(点線参照)。つまり、クレジットの供給量は増加しない。
次に、クレジット供給部52は、10個のフロー#1B,フロー#1C,・・・,フロー#1Jを順次に選択して10(KByte)のクレジットを供給する(「次選択」参照)。
このとき、帯域管理に矛盾が生じないように、ポートシェーパ57のトークンバケット57aから、10個のフロー#1A,フロー#1B,・・・,フロー#1Jのクレジットの供給量の合計である100(KByte)のトークン量が減算される。
このとき、帯域管理に矛盾が生じないように、ポートシェーパ57のトークンバケット57aから、10個のフロー#1A,フロー#1B,・・・,フロー#1Jのクレジットの供給量の合計である100(KByte)のトークン量が減算される。
このように、クレジット制御部1は、1回のポート選択で10個のフロー#1A,フロー#1B,・・・,フロー#1Jにクレジットを供給する。クレジット制御部1は、低負荷時には、1回のポート選択で1個のフロー#1〜#Mにクレジットを供給するため、9回分のポート選択をスキップしたことになる。これにより、スケジューラ部5は、処理の負荷が低減される。
図16は、高負荷時の非帯域保証フロー及び帯域保証フローへのクレジット供給動作の他例を示すシーケンス図である。本シーケンスは、図15に示された動作例に対応する。
負荷監視部2は、アラーム発生通知をクレジット制御部1に出力する。次に、スケジューラ部5は、ポート#1を選択し(符号S11参照)、フロー#1Aを選択する(符号S12参照)。次に、スケジューラ部5は、フロー種別及びポートシェーパ57のトークン量を含むフロー情報をクレジット制御部1に通知する。
クレジット制御部1は、フロー情報に基づき、フロー種別が非帯域保証フローであり、かつ、トークン量≦Kと判定するため、スキップ処理の指示をスケジューラ部5に出力する。スケジューラ部5は、スキップ処理の指示に従い、ポートシェーパ57のトークン量から、クレジットの供給量の合計である100(KByte)を減算する(符号S13参照)。また、スケジューラ部5は、10(KByte)のクレジットをフロー#1Aに供給する(符号S14参照)。
次に、スケジューラ部5は、フロー#1Bを選択して(符号S15参照)、10(KByte)のクレジットを供給する(符号S16参照)。その後、スケジューラ部5は、順次にフロー#1C〜#1Iを選択して、10(KByte)のクレジットを供給し、最後にフロー#1Jを選択して(符号S17参照)、10(KByte)のクレジットを供給する(符号S18参照)。
これにより、9回分のポート選択がスキップされるため、スケジューラ部5の処理の負荷が低減される。
なお、例えば、全てのフロー#1〜#Mが非帯域保証フローである場合、以下の例のように全てのフロー#1〜#Mについて一括でクレジットの供給量を増加させてもよい。この場合、クレジットの供給量の変更の所要時間が延びるため、その変更途中でアラームが停止し、クレジットの供給量を元の値に戻すとき、一部のフローだけのクレジットの供給量が増加した状態が生ずることでフロー#1〜#M間の帯域制御が不公平となる。これを回避するため、以下に述べるように、クレジットの供給量を元の値に戻すまでに一定の待機時間を設けてもよい。
図17は、他の実施例におけるクレジット制御部1の処理の一例を示すフローチャートである。本処理は、例えば周期的に実行される。
まず、クレジット制御部1は、アラームの発生の有無を判定する(ステップSt81)。このとき、アラーム発生の有無は、負荷監視部2からのアラーム情報に基づき判定される。
次に、クレジット制御部1は、変更フラグFlgが「1」であるか否かを判定する(ステップSt83)。変更フラグFlgは、「0」の場合、クレジットの供給量が変更されたことを示し、「1」の場合、クレジットの供給量の変更がないことを示す。
クレジット制御部1は、変更フラグFlg=「1」の場合(ステップSt82のYes)、処理を終了する。また、クレジット制御部1は、変更フラグFlg=「0」の場合(ステップSt82のNo)、変更フラグFlg=「1」とする(ステップSt83)。次に、クレジット制御部1は、クレジットの供給量を元の値に戻すための待機時間を計測するため、タイマをスタートさせる(ステップSt84)。
次に、クレジット制御部1は、全てのフロー#1〜#Mのクレジットの供給量が一定量だけ増加するようにスケジューラ部5を制御する(ステップSt85)。次に、クレジット制御部1は、全てのポートシェーパ57,58のトークン量の減算量が一定量だけ増加するようにスケジューラ部5を制御し(ステップSt86)、処理を終了する。
また、クレジット制御部1は、アラームが発生していない場合(ステップSt81のNo)、変更フラグFlgが「1」であるか否かを判定する(ステップSt88)。クレジット制御部1は、変更フラグFlg=「0」の場合(ステップSt88のNo)、処理を終了する。また、クレジット制御部1は、変更フラグFlg=「1」の場合(ステップSt88のYes)、タイマがタイムアウトしたか否かを判定する(ステップSt89)。なお、タイマがタイムアウトするまでの時間、つまり待機時間は、全てのフロー#1〜#Mのクレジットの供給量の変更に十分な時間とする。
クレジット制御部1は、タイマがタイムアウトしていない場合(ステップSt89のNo)、処理を終了する。また、クレジット制御部1は、タイマがタイムアウトしている場合(ステップSt89のYes)、タイマを初期化する(ステップSt90)。
次に、クレジット制御部1は、全てのフロー#1〜#Mのクレジットの供給量が増加前の値に戻るようにスケジューラ部5を制御する(ステップSt91)。次に、クレジット制御部1は、全てのポートシェーパ57,58のトークン量の減算量が増加前の値に戻るようにスケジューラ部5を制御し(ステップSt92)、処理を終了する。このようにして、クレジット制御部1の処理は実行される。
また、クレジット制御部1は、トークン管理部53からポートシェーパ57,58へのトークンの供給周期を延ばすことにより、スケジューラ部5の処理の負荷を低減してもよい。この場合、クレジット制御部1は、トークン管理部53のポート管理テーブルを制御する。
図18(a)には低負荷時のポート管理テーブルの一例が示されており、図18(b)には高負荷時のポート管理テーブルの一例が示されている。なお、低負荷時とは、スケジューラ部5の処理の負荷≦Lthの場合を指し、高負荷時とは、スケジューラ部5の処理の負荷>Lthの場合を指すものとする。なお、図5のような負荷監視部2の処理が行われる場合、例えば、低負荷時とは、スケジューラ部5の処理の負荷≦Lth1の場合を指し、高負荷時とは、スケジューラ部5の処理の負荷>Lth1の場合を指すものとする。
ポート管理テーブルには、ポートごとにレート(Gbps)、トークン供給量(MByte)、及び供給周期(ms)が登録されている。トークン管理部53は、例えばポート#1に対応するポートシェーパ57,58には、低負荷時、1(ms)の周期で1.25(MByte)のトークンを供給するが、高負荷時、10(ms)の周期で12.5(MByte)のトークンを供給する。
また、トークン管理部53は、例えばポート#2に対応するポートシェーパ57,58には、低負荷時、1(ms)の周期で5(MByte)のトークンを供給するが、高負荷時、10(ms)の周期で50(MByte)のトークンを供給する。つまり、トークン管理部53は、高負荷時、供給周期を低負荷時の10倍に延ばし、トークン供給量を低負荷時の10倍に増加させる。なお、本例では、ポートシェーパ57,58の制御を挙げたが、フローシェーパ54についても同様の制御が行われてもよい。
このように、クレジット制御部1は、ポート#1〜#Nへのトークンの割り当て周期を延ばすように、スケジューラ部5を制御することにより、スケジューラ部5の処理の負荷を低減できる。なお、スケジューラ部5が複数のCPUのソフトウェアにより実現されている場合、ポートシェーパ57,58のトークン供給処理を行うCPUが高負荷であるときだけ、上記のような制御が行われてもよい。
また、スケジューラ部5は、処理の負荷を低減するため、PKT分配部40からの要求メッセージを、個別ではなく、パケットの優先度ごとにまとめて受け付けて、受け付けた要求に応じてクレジットを供給してもよい。この場合、スケジューラ部5の要求受付部50は、以下に述べるように、例えば負荷監視部2が取得した負荷に応じて要求メッセージの受け付け周期を制御してもよい。
図19(a)には低負荷時(負荷≦Lth)の要求受付部50の動作の一例が示され、図19(b)には高荷時(負荷>Lth)の要求受付部50の動作の一例が示されている。本例において、PKT分配部40は、64(Byte)長の10個のパケット(PKT)が入力され、64(Byte)のクレジットを要求する10個の要求メッセージ(MSG)を要求受付部50に出力する。
要求受付部50は、振り分け部500と、フロー#1〜#Mごとに設けられたバッファ501と、メッセージ取得部502を有する。振り分け部500は、PKT分配部40から入力された要求メッセージのフローIDを識別して、そのフローIDに対応するバッファ501に入力する。バッファ501は、振り分け部500から入力された要求メッセージを格納する。
メッセージ取得部502は、一定の周期でバッファ501を順次に選択して、選択したバッファ501から要求メッセージを取得する。メッセージ取得部502は、取得した要求メッセージからパケット長、つまりクレジットの要求量(本例では64(Bye))を読み出して、蓄積量テーブル51の該当フローIDの蓄積量に加算する。
メッセージ取得部502は、図19(a)に示されるように、負荷≦Lthの場合、高周期でバッファ501を選択することにより、個別に要求メッセージを取得する(点線参照)。また、メッセージ取得部502は、図19(b)に示されるように、負荷>Lthの場合、低周期でバッファ501を選択することにより、10個の要求メッセージをまとめて取得する(点線参照)。このとき、メッセージ取得部502は、10個の要求メッセージを、640(Byte)(=64×10)のクレジットの要求として受け付ける。これにより、メッセージ取得部502は、高負荷時、複数の要求メッセージをまとめて受け付けることができる。
したがって、メッセージ取得部502は、蓄積量テーブル51の更新頻度を低減することができ、スケジューラ部5の処理の負荷が低減される。なお、メッセージ取得部502は、負荷監視部2からのアラーム情報に基づき負荷を判定することができる(図3の点線参照)。また、スケジューラ部5が複数のCPUのソフトウェアにより実現されている場合、要求メッセージの受付処理を行うCPUが高負荷であるときだけ、上記のような制御が行われてもよい。さらに、負荷監視部2が図5のような処理を行う場合、要求受付部50は、例えば、負荷≦Lth1の場合、図19(a)のような制御を行い、負荷>Lth1の場合、図19(b)のような制御を行ってもよい。
また、上記の場合、要求受付部50は、高負荷時、要求メッセージの受付処理が低負荷時より遅れる。このため、要求受付部50は、要求メッセージにより要求されたクレジット量の合計に応じた優先度に従い要求をまとめて受け付けてもよい。つまり、要求受付部50は、上記のバッファ501に加えて、高優先バッファ及び低優先バッファを設けることにより、要求メッセージの優先制御処理を行ってもよい。
図20には要求メッセージの優先制御処理の一例が示されている。図20において、図19(a)及び図19(b)と共通する構成については同一の符号を付し、その説明を省略する。
本例において、要求受付部50は、一例として、上述したフロー#1〜#Mごとのバッファ501と、優先度が最も高い高優先バッファ501aと、優先度が最も低い低優先バッファ501cとを有する。バッファ501の優先度は、高優先バッファ501a及び低優先バッファ501cの中間であり、要求メッセージは、このバッファ501にいったん格納された後、所定の条件が満たされた場合、高優先バッファ501aまたは低優先バッファ501cに移し替えられる。
メッセージ取得部502は、各バッファ501内の要求メッセージのクレジットの要求量の合計を算出して、要求量の合計に基づき優先制御を行う(「優先度」参照)。例えば、フロー#iの入力レートが高く、フロー#iのバッファ501内の要求メッセージのクレジットの要求量の合計が所定の閾値Dthを超える場合(「条件A」参照)、振り分け部500は、フロー#iのバッファ501内の全ての要求メッセージを高優先バッファ501aに移し替える。メッセージ取得部502は、クレジットの供給がパケットの処理に間に合うように、高優先バッファ501aを優先的に選択して要求メッセージを受け付ける。
また、フロー#kは、例えば、要求メッセージの出力の直前にクレジットが供給されたため、蓄積量テーブル51の蓄積量が負の値であると仮定する。このとき、フロー#kのバッファ501a内の要求メッセージのクレジットの要求量の合計と、蓄積量テーブル51の蓄積量の加算値が0以下である場合(「条件B」参照)、振り分け部500は、フロー#kのバッファ501内の全ての要求メッセージを低優先バッファ501cに移し替える。メッセージ取得部502は、最低優先で低優先バッファ501cを選択して要求メッセージを受け付ける。これは、条件Bが満たされる場合、蓄積量≦0であるため、フロー#kにはクレジットを供給できないからである。なお、上記の条件A及び条件Bの何れも満たされないフロー#1〜#Mの要求メッセージは、高優先バッファ501aまたは低優先バッファ501cに移し替えられることなく、中間の優先度のバッファ501に留まる。
上述した帯域制御装置は、1つの通信装置に実装されるものであるが、これに限定されない。例えば、通信装置にはキュー管理部4を実装し、通信装置を管理するネットワーク管理装置には負荷監視部2、クレジット制御部1、及びスケジューラ部5を実装してもよい。以下に通信装置及びネットワーク管理装置を含む帯域制御システムについて述べる。
図21は、帯域制御システムの一例を示す構成図である。帯域制御システムは、ネットワークNWを介して通信するネットワーク管理装置7及び通信装置8を有する。なお、通信装置8は第1処理装置の一例であり、ネットワーク管理装置7は第2処理装置の一例である。
通信装置8は、複数のポート80と、キュー管理部4と、通信処理部81とを有する。複数のポート80は、それぞれ、伝送路との間でパケット(PKT)の送受信を行う。
キュー管理部4は、ネットワーク管理装置7と通信処理部81を介して通信し、上記の帯域制御を行う。より具体的には、キュー管理部4は、ネットワーク管理装置7にクレジットを要求し、ネットワーク管理装置7からクレジットを供給され、クレジットに基づきキュー41からパケットを読み出してポート80へ出力する。
ネットワーク管理装置7は、通信処理部70と、スケジューラ部5と、クレジット制御部1と、負荷監視部2とを有する。通信処理部70は、キュー管理部4と通信処理部81を介して通信し、上記の帯域制御を行う。より具体的には、スケジューラ部5は、キュー管理部4からの要求に応じクレジットを供給する。なお、クレジット制御部1及び負荷監視部2の動作についても上述した通りである。
これまで述べたように、実施例に係る帯域制御装置は、複数のキュー41と、読出処理部42と、スケジューラ部5と、クレジット制御部1とを有する。複数のキュー41は、パケットをフロー#1〜#Mごとに格納する。読出処理部42は、フロー#1〜#Mごとに供給されたクレジットに基づき複数のキュー41からパケットを読み出して、フロー#1〜#Mに応じたポート#1〜#Nに出力する。
スケジューラ部5は、ポート#1〜#Nを順次に選択し、ポートを選択するたびに選択中のポートに応じたフロー#1〜#Mを選択し、その選択したフローにクレジットを供給する。
クレジット制御部1は、スケジューラ部5が選択したフローが帯域保証フローである場合、スケジューラ部5により供給されるクレジットが増加するようにスケジューラ部5を制御する。また、クレジット制御部1は、スケジューラ部5が選択したフローが非帯域保証フローである場合、ポート#1〜#Nの選択が切り替わる前に、選択中のポートに応じた他のフローにもクレジットが供給されるように、スケジューラ部5を制御する。
上記の構成によると、スケジューラ部5により帯域保証フローが選択された場合、クレジットの供給量が増加するため、スケジューラ部5の処理の負荷が低減される。また、スケジューラ部5により非帯域保証フローが選択された場合、選択中のフロー#1〜#Mには、ポートの選択が行われずに、クレジットが供給されるため、ポートの選択がスキップされることでスケジューラ部5の処理の負荷が低減される。
このように、クレジット制御部1は、フロー#1〜#Mの間で帯域制御が不公平とならないように、クレジットの供給対象として選択されたフロー#1〜#Mの種別に応じてクレジットの供給を制御する。したがって、実施例に係る帯域制御装置によると、フロー#1〜#M間の帯域制御の公平性を損なわずに、帯域制御処理の負荷を低減できる。
また、実施例に係る帯域制御システムは、ネットワークNWを介して通信する通信装置8及びネットワーク管理装置7を有する。通信装置8は、複数のキュー41と、読出処理部42とを有する。ネットワーク管理装置7は、スケジューラ部5と、クレジット制御部1とを有する。
複数のキュー41は、パケットをフロー#1〜#Mごとに格納する。読出処理部42は、フロー#1〜#Mごとに供給されたクレジットに基づき複数のキュー41からパケットを読み出して、フロー#1〜#Mに応じたポート#1〜#Nに出力する。
スケジューラ部5は、ポート#1〜#Nを順次に選択し、ポートを選択するたびに選択中のポートに応じたフロー#1〜#Mを選択し、その選択したフローにクレジットを供給する。
クレジット制御部1は、スケジューラ部5が選択したフローが帯域保証フローである場合、スケジューラ部5により供給されるクレジットが増加するようにスケジューラ部5を制御する。また、クレジット制御部1は、スケジューラ部5が選択したフローが非帯域保証フローである場合、ポート#1〜#Nの選択が切り替わる前に、選択中のポートに応じた他のフローにもクレジットが供給されるように、スケジューラ部5を制御する。
実施例に係る帯域制御システムは、上記の帯域制御装置と同様の構成を含むので、上述した内容と同様の作用効果を奏する。
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
なお、以上の説明に関して更に以下の付記を開示する。
(付記1) パケットをフローごとに格納する複数のパケット格納部と、
前記フローごとに供給された読出許容量に基づき前記複数のパケット格納部からパケットを読み出して、前記フローに応じたポートに出力する出力部と、
前記ポートを順次に選択し、前記ポートを選択するたびに選択中の前記ポートに応じた前記フローを選択し、該選択したフローに前記読出許容量を供給するスケジューラ部と、
前記選択したフローが帯域保証されている場合、前記スケジューラ部により供給される前記読出許容量が増加し、前記選択したフローが帯域保証されていない場合、前記ポートの選択が切り替わる前に、選択中の前記ポートに応じた他のフローにも前記読出許容量が供給されるように、前記スケジューラ部を制御する制御部と、
を有することを特徴とする帯域制御装置。
(付記2) 前記スケジューラ部は、前記ポートごとに割り当てられる帯域量に基づき、前記選択したフローに前記読出許容量を供給し、
前記制御部は、前記選択したフローが帯域保証されていない場合、選択中の前記ポートの前記帯域量が所定量より大きいとき、前記スケジューラ部により供給される前記読出許容量が増加し、選択中の前記ポートの前記帯域量が前記所定量以下であるとき、前記ポートの選択が切り替わる前に、選択中の前記ポートに応じた他のフローにも前記読出許容量が供給されるように、前記スケジューラ部を制御することを特徴とする付記1に記載の帯域制御装置。
(付記3) 前記制御部は、前記帯域量の割り当て周期を延ばすように、前記スケジューラ部を制御することを特徴とする付記2に記載の帯域制御装置。
(付記4) 前記スケジューラ部の処理の負荷を監視する監視部を、さらに有し、
前記制御部は、前記監視部による監視結果に応じて前記スケジューラ部を制御することを特徴とする付記1乃至3の何れかに記載の帯域制御装置。
(付記5) 前記制御部は、前記負荷が所定の閾値を上回ったとき、前記スケジューラ部により供給される前記読出許容量が一定量だけ増加するように、前記スケジューラ部を制御することを特徴とする付記4に記載の帯域制御装置。
(付記6) 前記制御部は、前記負荷が前記所定の閾値以下であるとき、前記スケジューラ部により供給される前記読出許容量を増加前の値に戻すように、前記スケジューラ部を制御することを特徴とする付記5に記載の帯域制御装置。
(付記7) 前記制御部は、前記負荷に応じて、前記スケジューラ部により供給される前記読出許容量が増加するように、前記スケジューラ部を制御することを特徴とする付記4に記載の帯域制御装置。
(付記8) 前記複数のパケット格納部にパケットが入力されるたびに、前記スケジューラ部に一定の前記読出許容量を要求する要求部を、さらに有し、
前記スケジューラ部は、前記負荷が前記所定の閾値を上回ったとき、前記要求部からの要求を前記フローごとにまとめて受け付けて、該受け付けた要求に応じ前記読出許容量を供給することを特徴とする付記5乃至7の何れかに記載の帯域制御装置。
(付記9) 前記スケジューラ部は、前記要求部から要求された前記読出許容量の合計に応じた優先度に従い要求をまとめて受け付けて、該受け付けた要求に応じ前記読出許容量を供給することを特徴とする付記8に記載の帯域制御装置。
(付記10) ネットワークを介して通信する第1処理装置及び第2処理装置を有し、
前記第1処理装置は、
パケットをフローごとに格納する複数のパケット格納部と、
前記フローごとに供給された読出許容量に基づき前記複数のパケット格納部からパケットを読み出して、前記フローに応じたポートに出力する出力部とを有し、
前記第2処理装置は、
前記ポートを順次に選択し、前記ポートを選択するたびに選択中の前記ポートに応じた前記フローを選択し、該選択したフローに、前記ネットワークを介して、前記読出許容量を供給するスケジューラ部と、
前記選択した前記フローが帯域保証されている場合、前記読出許容量を増加させ、前記選択した前記フローが帯域保証されていない場合、前記ポートの選択が切り替わる前に、選択中の前記ポートに応じた他のフローにも前記読出許容量が供給されるように、前記スケジューラ部を制御する制御部とを有することを特徴とする帯域制御システム。
(付記11) 前記スケジューラ部は、前記ポートごとに割り当てられる帯域量に基づき、前記選択したフローに前記読出許容量を供給し、
前記制御部は、前記選択したフローが帯域保証されていない場合、選択中の前記ポートの前記帯域量が所定量より大きいとき、前記スケジューラ部により供給される前記読出許容量が増加し、選択中の前記ポートの前記帯域量が前記所定量以下であるとき、前記ポートの選択が切り替わる前に、選択中の前記ポートに応じた他のフローにも前記読出許容量が供給されるように、前記スケジューラ部を制御することを特徴とする付記10に記載の帯域制御システム。
(付記12) 前記制御部は、前記帯域量の割り当て周期を延ばすように、前記スケジューラ部を制御することを特徴とする付記11に記載の帯域制御システム。
(付記13) 前記スケジューラ部の処理の負荷を監視する監視部を、さらに有し、
前記制御部は、前記監視部による監視結果に応じて前記スケジューラ部を制御することを特徴とする付記10乃至12の何れかに記載の帯域制御システム。
(付記14) 前記制御部は、前記負荷が所定の閾値を上回ったとき、前記スケジューラ部により供給される前記読出許容量が一定量だけ増加するように、前記スケジューラ部を制御することを特徴とする付記13に記載の帯域制御システム。
(付記15) 前記制御部は、前記負荷が前記所定の閾値以下であるとき、前記スケジューラ部により供給される前記読出許容量を増加前の値に戻すように、前記スケジューラ部を制御することを特徴とする付記14に記載の帯域制御システム。
(付記16) 前記制御部は、前記負荷に応じて、前記スケジューラ部により供給される前記読出許容量が増加するように、前記スケジューラ部を制御することを特徴とする付記13に記載の帯域制御システム。
(付記17) 前記第1処理装置は、前記複数のパケット格納部にパケットが入力されるたびに、前記スケジューラ部に一定の前記読出許容量を要求する要求部を、さらに有し、
前記スケジューラ部は、前記負荷が前記所定の閾値を上回ったとき、前記要求部からの要求を前記フローごとにまとめて受け付けて、該受け付けた要求に応じ前記読出許容量を供給することを特徴とする付記14乃至16の何れかに記載の帯域制御システム。
(付記18) 前記スケジューラ部は、前記要求部から要求された前記読出許容量の合計に応じた優先度に従い要求をまとめて受け付けて、該受け付けた要求に応じ前記読出許容量を供給することを特徴とする付記17に記載の帯域制御システム。
(付記1) パケットをフローごとに格納する複数のパケット格納部と、
前記フローごとに供給された読出許容量に基づき前記複数のパケット格納部からパケットを読み出して、前記フローに応じたポートに出力する出力部と、
前記ポートを順次に選択し、前記ポートを選択するたびに選択中の前記ポートに応じた前記フローを選択し、該選択したフローに前記読出許容量を供給するスケジューラ部と、
前記選択したフローが帯域保証されている場合、前記スケジューラ部により供給される前記読出許容量が増加し、前記選択したフローが帯域保証されていない場合、前記ポートの選択が切り替わる前に、選択中の前記ポートに応じた他のフローにも前記読出許容量が供給されるように、前記スケジューラ部を制御する制御部と、
を有することを特徴とする帯域制御装置。
(付記2) 前記スケジューラ部は、前記ポートごとに割り当てられる帯域量に基づき、前記選択したフローに前記読出許容量を供給し、
前記制御部は、前記選択したフローが帯域保証されていない場合、選択中の前記ポートの前記帯域量が所定量より大きいとき、前記スケジューラ部により供給される前記読出許容量が増加し、選択中の前記ポートの前記帯域量が前記所定量以下であるとき、前記ポートの選択が切り替わる前に、選択中の前記ポートに応じた他のフローにも前記読出許容量が供給されるように、前記スケジューラ部を制御することを特徴とする付記1に記載の帯域制御装置。
(付記3) 前記制御部は、前記帯域量の割り当て周期を延ばすように、前記スケジューラ部を制御することを特徴とする付記2に記載の帯域制御装置。
(付記4) 前記スケジューラ部の処理の負荷を監視する監視部を、さらに有し、
前記制御部は、前記監視部による監視結果に応じて前記スケジューラ部を制御することを特徴とする付記1乃至3の何れかに記載の帯域制御装置。
(付記5) 前記制御部は、前記負荷が所定の閾値を上回ったとき、前記スケジューラ部により供給される前記読出許容量が一定量だけ増加するように、前記スケジューラ部を制御することを特徴とする付記4に記載の帯域制御装置。
(付記6) 前記制御部は、前記負荷が前記所定の閾値以下であるとき、前記スケジューラ部により供給される前記読出許容量を増加前の値に戻すように、前記スケジューラ部を制御することを特徴とする付記5に記載の帯域制御装置。
(付記7) 前記制御部は、前記負荷に応じて、前記スケジューラ部により供給される前記読出許容量が増加するように、前記スケジューラ部を制御することを特徴とする付記4に記載の帯域制御装置。
(付記8) 前記複数のパケット格納部にパケットが入力されるたびに、前記スケジューラ部に一定の前記読出許容量を要求する要求部を、さらに有し、
前記スケジューラ部は、前記負荷が前記所定の閾値を上回ったとき、前記要求部からの要求を前記フローごとにまとめて受け付けて、該受け付けた要求に応じ前記読出許容量を供給することを特徴とする付記5乃至7の何れかに記載の帯域制御装置。
(付記9) 前記スケジューラ部は、前記要求部から要求された前記読出許容量の合計に応じた優先度に従い要求をまとめて受け付けて、該受け付けた要求に応じ前記読出許容量を供給することを特徴とする付記8に記載の帯域制御装置。
(付記10) ネットワークを介して通信する第1処理装置及び第2処理装置を有し、
前記第1処理装置は、
パケットをフローごとに格納する複数のパケット格納部と、
前記フローごとに供給された読出許容量に基づき前記複数のパケット格納部からパケットを読み出して、前記フローに応じたポートに出力する出力部とを有し、
前記第2処理装置は、
前記ポートを順次に選択し、前記ポートを選択するたびに選択中の前記ポートに応じた前記フローを選択し、該選択したフローに、前記ネットワークを介して、前記読出許容量を供給するスケジューラ部と、
前記選択した前記フローが帯域保証されている場合、前記読出許容量を増加させ、前記選択した前記フローが帯域保証されていない場合、前記ポートの選択が切り替わる前に、選択中の前記ポートに応じた他のフローにも前記読出許容量が供給されるように、前記スケジューラ部を制御する制御部とを有することを特徴とする帯域制御システム。
(付記11) 前記スケジューラ部は、前記ポートごとに割り当てられる帯域量に基づき、前記選択したフローに前記読出許容量を供給し、
前記制御部は、前記選択したフローが帯域保証されていない場合、選択中の前記ポートの前記帯域量が所定量より大きいとき、前記スケジューラ部により供給される前記読出許容量が増加し、選択中の前記ポートの前記帯域量が前記所定量以下であるとき、前記ポートの選択が切り替わる前に、選択中の前記ポートに応じた他のフローにも前記読出許容量が供給されるように、前記スケジューラ部を制御することを特徴とする付記10に記載の帯域制御システム。
(付記12) 前記制御部は、前記帯域量の割り当て周期を延ばすように、前記スケジューラ部を制御することを特徴とする付記11に記載の帯域制御システム。
(付記13) 前記スケジューラ部の処理の負荷を監視する監視部を、さらに有し、
前記制御部は、前記監視部による監視結果に応じて前記スケジューラ部を制御することを特徴とする付記10乃至12の何れかに記載の帯域制御システム。
(付記14) 前記制御部は、前記負荷が所定の閾値を上回ったとき、前記スケジューラ部により供給される前記読出許容量が一定量だけ増加するように、前記スケジューラ部を制御することを特徴とする付記13に記載の帯域制御システム。
(付記15) 前記制御部は、前記負荷が前記所定の閾値以下であるとき、前記スケジューラ部により供給される前記読出許容量を増加前の値に戻すように、前記スケジューラ部を制御することを特徴とする付記14に記載の帯域制御システム。
(付記16) 前記制御部は、前記負荷に応じて、前記スケジューラ部により供給される前記読出許容量が増加するように、前記スケジューラ部を制御することを特徴とする付記13に記載の帯域制御システム。
(付記17) 前記第1処理装置は、前記複数のパケット格納部にパケットが入力されるたびに、前記スケジューラ部に一定の前記読出許容量を要求する要求部を、さらに有し、
前記スケジューラ部は、前記負荷が前記所定の閾値を上回ったとき、前記要求部からの要求を前記フローごとにまとめて受け付けて、該受け付けた要求に応じ前記読出許容量を供給することを特徴とする付記14乃至16の何れかに記載の帯域制御システム。
(付記18) 前記スケジューラ部は、前記要求部から要求された前記読出許容量の合計に応じた優先度に従い要求をまとめて受け付けて、該受け付けた要求に応じ前記読出許容量を供給することを特徴とする付記17に記載の帯域制御システム。
1 クレジット制御部
2 負荷監視部
4 キュー管理部
5 スケジューラ部
40 パケット分配部
41 キュー
42 読出処理部
50 要求受付部
52 クレジット供給部
55 通常フロー選択部
56 優先フロー選択部
59 ポート選択部
2 負荷監視部
4 キュー管理部
5 スケジューラ部
40 パケット分配部
41 キュー
42 読出処理部
50 要求受付部
52 クレジット供給部
55 通常フロー選択部
56 優先フロー選択部
59 ポート選択部
Claims (10)
- パケットをフローごとに格納する複数のパケット格納部と、
前記フローごとに供給された読出許容量に基づき前記複数のパケット格納部からパケットを読み出して、前記フローに応じたポートに出力する出力部と、
前記ポートを順次に選択し、前記ポートを選択するたびに選択中の前記ポートに応じた前記フローを選択し、該選択したフローに前記読出許容量を供給するスケジューラ部と、
前記選択したフローが帯域保証されている場合、前記スケジューラ部により供給される前記読出許容量が増加し、前記選択したフローが帯域保証されていない場合、前記ポートの選択が切り替わる前に、選択中の前記ポートに応じた他のフローにも前記読出許容量が供給されるように、前記スケジューラ部を制御する制御部と、
を有することを特徴とする帯域制御装置。 - 前記スケジューラ部は、前記ポートごとに割り当てられる帯域量に基づき、前記選択したフローに前記読出許容量を供給し、
前記制御部は、前記選択したフローが帯域保証されていない場合、選択中の前記ポートの前記帯域量が所定量より大きいとき、前記スケジューラ部により供給される前記読出許容量が増加し、選択中の前記ポートの前記帯域量が前記所定量以下であるとき、前記ポートの選択が切り替わる前に、選択中の前記ポートに応じた他のフローにも前記読出許容量が供給されるように、前記スケジューラ部を制御することを特徴とする請求項1に記載の帯域制御装置。 - 前記制御部は、前記帯域量の割り当て周期を延ばすように、前記スケジューラ部を制御することを特徴とする請求項2に記載の帯域制御装置。
- 前記スケジューラ部の処理の負荷を監視する監視部を、さらに有し、
前記制御部は、前記監視部による監視結果に応じて前記スケジューラ部を制御することを特徴とする請求項1乃至3の何れかに記載の帯域制御装置。 - 前記制御部は、前記負荷が所定の閾値を上回ったとき、前記スケジューラ部により供給される前記読出許容量が一定量だけ増加するように、前記スケジューラ部を制御することを特徴とする請求項4に記載の帯域制御装置。
- 前記制御部は、前記負荷が前記所定の閾値以下であるとき、前記スケジューラ部により供給される前記読出許容量を増加前の値に戻すように、前記スケジューラ部を制御することを特徴とする請求項5に記載の帯域制御装置。
- 前記制御部は、前記負荷に応じて、前記スケジューラ部により供給される前記読出許容量が増加するように、前記スケジューラ部を制御することを特徴とする請求項4に記載の帯域制御装置。
- 前記複数のパケット格納部にパケットが入力されるたびに、前記スケジューラ部に一定の前記読出許容量を要求する要求部を、さらに有し、
前記スケジューラ部は、前記負荷が前記所定の閾値を上回ったとき、前記要求部からの要求を前記フローごとにまとめて受け付けて、該受け付けた要求に応じ前記読出許容量を供給することを特徴とする請求項5乃至7の何れかに記載の帯域制御装置。 - 前記スケジューラ部は、前記要求部から要求された前記読出許容量の合計に応じた優先度に従い要求をまとめて受け付けて、該受け付けた要求に応じ前記読出許容量を供給することを特徴とする請求項8に記載の帯域制御装置。
- ネットワークを介して通信する第1処理装置及び第2処理装置を有し、
前記第1処理装置は、
パケットをフローごとに格納する複数のパケット格納部と、
前記フローごとに供給された読出許容量に基づき前記複数のパケット格納部からパケットを読み出して、前記フローに応じたポートに出力する出力部とを有し、
前記第2処理装置は、
前記ポートを順次に選択し、前記ポートを選択するたびに選択中の前記ポートに応じた前記フローを選択し、該選択したフローに、前記ネットワークを介して、前記読出許容量を供給するスケジューラ部と、
前記選択した前記フローが帯域保証されている場合、前記読出許容量を増加させ、前記選択した前記フローが帯域保証されていない場合、前記ポートの選択が切り替わる前に、選択中の前記ポートに応じた他のフローにも前記読出許容量が供給されるように、前記スケジューラ部を制御する制御部と、
を有することを特徴とする帯域制御システム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015188822A JP2017063388A (ja) | 2015-09-25 | 2015-09-25 | 帯域制御装置及び帯域制御システム |
US15/259,313 US20170093739A1 (en) | 2015-09-25 | 2016-09-08 | Apparatus to reduce a load for bandwidth control of packet flows |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015188822A JP2017063388A (ja) | 2015-09-25 | 2015-09-25 | 帯域制御装置及び帯域制御システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017063388A true JP2017063388A (ja) | 2017-03-30 |
Family
ID=58407523
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015188822A Pending JP2017063388A (ja) | 2015-09-25 | 2015-09-25 | 帯域制御装置及び帯域制御システム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20170093739A1 (ja) |
JP (1) | JP2017063388A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020028087A (ja) * | 2018-08-16 | 2020-02-20 | 日本電信電話株式会社 | 通信制御装置、および、通信制御方法 |
CN111601329A (zh) * | 2020-04-15 | 2020-08-28 | 网宿科技股份有限公司 | 一种端口中断告警的处理方法及装置 |
JP7468219B2 (ja) | 2020-07-22 | 2024-04-16 | 富士通株式会社 | パケット伝送装置及びパケット伝送方法 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6569374B2 (ja) * | 2015-08-10 | 2019-09-04 | 富士通株式会社 | スイッチ装置及びスイッチ装置の制御方法 |
US10110551B1 (en) * | 2017-08-14 | 2018-10-23 | Reza Toghraee | Computer-implemented system and methods for providing IPoE network access using software defined networking |
US11159455B1 (en) | 2018-12-28 | 2021-10-26 | Innovium, Inc. | Reducing power consumption in an electronic device |
TWI765428B (zh) * | 2020-11-24 | 2022-05-21 | 啟碁科技股份有限公司 | 基於應用程式類別的服務品質調整方法及其系統 |
-
2015
- 2015-09-25 JP JP2015188822A patent/JP2017063388A/ja active Pending
-
2016
- 2016-09-08 US US15/259,313 patent/US20170093739A1/en not_active Abandoned
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020028087A (ja) * | 2018-08-16 | 2020-02-20 | 日本電信電話株式会社 | 通信制御装置、および、通信制御方法 |
WO2020036200A1 (ja) * | 2018-08-16 | 2020-02-20 | 日本電信電話株式会社 | 通信制御装置、および、通信制御方法 |
CN111601329A (zh) * | 2020-04-15 | 2020-08-28 | 网宿科技股份有限公司 | 一种端口中断告警的处理方法及装置 |
CN111601329B (zh) * | 2020-04-15 | 2023-08-18 | 网宿科技股份有限公司 | 一种端口中断告警的处理方法及装置 |
JP7468219B2 (ja) | 2020-07-22 | 2024-04-16 | 富士通株式会社 | パケット伝送装置及びパケット伝送方法 |
Also Published As
Publication number | Publication date |
---|---|
US20170093739A1 (en) | 2017-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2017063388A (ja) | 帯域制御装置及び帯域制御システム | |
US11095561B2 (en) | Phantom queue link level load balancing system, method and device | |
US11316795B2 (en) | Network flow control method and network device | |
US9722942B2 (en) | Communication device and packet scheduling method | |
US7616567B2 (en) | Shaping apparatus, communication node and flow control method for controlling bandwidth of variable length frames | |
JP6036310B2 (ja) | パケット交換装置、伝送装置、及びパケットスケジューリング方法 | |
US7414973B2 (en) | Communication traffic management systems and methods | |
US8817619B2 (en) | Network system with quality of service management and associated management method | |
US9197570B2 (en) | Congestion control in packet switches | |
US7706391B2 (en) | Packet transmission method and device | |
CN113162790A (zh) | 调整服务等级的方法、装置、设备及存储介质 | |
US10911364B2 (en) | Packet processing method and router | |
EP3968585A1 (en) | Method and device for transmitting traffic | |
WO2002098047A2 (en) | System and method for providing optimum bandwidth utilization | |
US7023865B2 (en) | Packet switch | |
CN109286582B (zh) | 一种在虚拟化交换机中实现网络带宽优先级的方法及装置 | |
JP2015216618A (ja) | 帯域制御装置及び帯域制御方法 | |
CN116318554A (zh) | 网络传输方法及装置 | |
JP5349242B2 (ja) | パケット交換装置及びパケット交換方法 | |
US7746775B2 (en) | Instant service method for deficit-round-robin (DRR) data packet scheduling | |
US20050073951A1 (en) | Method and apparatus for request/grant priority scheduling | |
CN114448903A (zh) | 一种报文处理方法、装置和通信设备 | |
JP2004253989A (ja) | ネットワークQoS制御システム | |
EP1517484A1 (en) | Method and apparatus for traffic scheduling | |
JPH1117702A (ja) | パケットデータメモリ装置 |