JP6036310B2 - パケット交換装置、伝送装置、及びパケットスケジューリング方法 - Google Patents

パケット交換装置、伝送装置、及びパケットスケジューリング方法 Download PDF

Info

Publication number
JP6036310B2
JP6036310B2 JP2013001557A JP2013001557A JP6036310B2 JP 6036310 B2 JP6036310 B2 JP 6036310B2 JP 2013001557 A JP2013001557 A JP 2013001557A JP 2013001557 A JP2013001557 A JP 2013001557A JP 6036310 B2 JP6036310 B2 JP 6036310B2
Authority
JP
Japan
Prior art keywords
read
queues
packet
packets
queue
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.)
Expired - Fee Related
Application number
JP2013001557A
Other languages
English (en)
Other versions
JP2014135581A (ja
Inventor
西村 和人
和人 西村
北田 敦史
敦史 北田
朝永 博
博 朝永
野口 勉
勉 野口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013001557A priority Critical patent/JP6036310B2/ja
Priority to US14/100,327 priority patent/US9608927B2/en
Publication of JP2014135581A publication Critical patent/JP2014135581A/ja
Application granted granted Critical
Publication of JP6036310B2 publication Critical patent/JP6036310B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • H04L47/527Quantum based scheduling, e.g. credit or deficit based scheduling or token bank
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/621Individual queue per connection or flow, e.g. per VC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/205Quality of Service based
    • H04L49/206Real Time traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3018Input queuing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/50Overload detection or protection within a single switching element
    • H04L49/505Corrective measures

Description

本件は、パケット交換装置、伝送装置、及びパケットスケジューリング方法に関する。
通信需要の増加に伴い、レイヤ2スイッチやルータなどのスイッチ機器、すなわちパケットを伝送する伝送装置のスループットの向上が求められている。スループットを向上するために、キューからのパケットの読み出し制御によりトラフィックを管理するスケジューリング機能の改善が提案されている。
例えば、特許文献1には、DRR(Deficit Round Robin)法において統計的観測情報に基づいて粒度を設定する点が開示されている。特許文献2には、帯域制御を維持するアルゴリズムの帯域の精度を、他の異なるアルゴリズムにより選択されたキューからデータを読み出した場合において維持する点が開示されている。
特許文献3には、パケットを格納するキューごとに、固定のセグメント長を単位としてスケジューリングを行うことにより、外部メモリに対するアクセス処理時間を低減する点が開示されている。特許文献4には、入力制御部及び出力帯域制御部がファブリックを介して接続された構成において、入力制御部が、要求により出力帯域制御部から取得したクレジットに基づいて、出力帯域制御部にファブリックを介してパケットを出力する点が開示されている。
特開2001−223740号公報 特開2005−33408号公報 特開2005−286383号公報 米国特許第7,990,858号明細書
キューから1つのパケットが読み出されるたびに、スケジューリングにより次の読み出し対象のキューを選択する場合、スケジューリングに許容される処理時間は、パケットの読み出し処理の時間に制約される。このため、スケジューリングに許容される処理時間は、パケットの長さが、例えばイーサネット(登録商標、以下同様)フレームのように可変であるとき、読み出されるパケットの長さ(つまり、データ量)に依存する。
例えば、通信速度を100(Gbps)とすると、スケジューリングに許容される処理時間は、1500(Byte)の長さのパケットの場合、約121(ns)であるのに対し、64(Byte)の長さのパケットの場合、約6.7(ns)となる。つまり、短いパケット(ショートパケット)が連続で読み出されるとき、スケジューリングに許容される時間は、比較的に短い時間に制限されるため、スケジューリングに高い処理性能が求められる。
例えば、ショートパケットだけを読み出す場合、スケジューリングに約148.8(Mbps)の処理速度が求められる。要求される処理速度は、スケジューリングに複雑なアルゴリズムを用いた場合、さらに高くなる。
これに対して、読み出し処理を、1パケット単位ではなく、所定のデータ量を単位として行えば、1以上のパケットを、バースト的なトラフィックとして扱い、連続して読み出せるので、スケジューリングに許容される時間の制限が緩和される。例えば、500(Byte)単位で読み出し処理を行う場合、8個の64(Byte)長のパケットを連続して読み出せるので、スケジューリングに許容される処理時間は、約6.7(ns)×8=約53.6(ns)となる。
しかし、この場合、1つのパケットを分割して読み出さないため、パケットの一部のデータは、余剰分として、上記の所定のデータ量を超えて読み出されることになる。この余剰分のデータ量は、パケット長に応じてばらつきがあるので、キュー間において帯域が不公平になるという問題が生ずる。例えば、イーサネットフレームは、64〜1518(Byte)の可変長を有するので、余剰分のデータ量は、最大で63〜1517(Byte)の範囲において、ばらつきが生ずる。
また、上記の場合、キューに蓄積されたデータ量が、所定のデータ量を超えるまでパケットが読み出されないため、ショートパケットが低いレートでキューに入力される場合、パケットの遅延量が増加するという問題がある。例えばVoIP(Voice Over Internet Protocol)において、音声データを収容するパケットは、ショートパケットであることが多いので、通話に支障を生ずることが考えられる。なお、このような問題は、イーサネットフレームに限られず、IP(Internet Protocol)パケットなどの他のパケットについても同様に存在する。
そこで本件は上記の課題に鑑みてなされたものであり、効果的にスループットを向上するパケット交換装置、伝送装置、及びパケットスケジューリング方法を提供することを目的とする。
本明細書に記載のパケット交換装置は、1以上のパケットを蓄積する複数のキューと、前記複数のキューの各々に一定の読出許容量を与えるスケジューラ部と、前記複数のキューから、該キューごとの前記読出許容量及び該キューごとに蓄積された前記1以上のパケットのデータ量に関する読出条件を満たした順に、前記読出許容量を消費して前記1以上のパケットを読み出す読出処理部と、前記読出処理部により読み出された前記1以上のパケットを、外部装置に送信するための複数のポートと、前記複数のポートにそれぞれ対応し、前記複数のキューの識別子が、前記読出条件を満たした順に登録される複数の読出順序登録部と、前記複数の読出順序登録部から1つを選択し、前記選択した読出順序登録部に登録された最先の前記識別子を前記読出処理部に出力する選択処理部とを有し、前記読出処理部は、前記複数のキューのうち、前記選択処理部から入力された前記識別子に応じたキューから前記1以上のパケットを読み出し、前記複数のポートのうち、当該キューに対応するポートに出力する
本明細書に記載のパケットスケジューリング方法は、1以上のパケットを蓄積する複数のキューの各々に一定の読出許容量を与え、前記複数のキューから、該キューごとの前記読出許容量及び該キューごとに蓄積された前記1以上のパケットのデータ量に関する読出条件を満たした順に、前記読出許容量を消費して前記1以上のパケットを読み出し、前記複数のキューから読み出された前記1以上のパケットを複数のポートから外部装置に送信し、前記複数のポートにそれぞれ対応する複数の読出順序登録部に、前記読出条件を満たした順に前記複数のキューの識別子を登録し、前記複数の読出順序登録部から1つを選択し、前記複数のキューのうち、前記選択した読出順序登録部に登録された最先の前記識別子に応じたキューから前記1以上のパケットを読み出し、前記複数のポートのうち、当該キューに対応するポートに出力する方法である。
本明細書に記載のパケット交換装置、伝送装置、及びパケットスケジューリング方法は、効果的にスループットを向上できるという効果を奏する。
実施例に係る伝送装置の機能構成を示す構成図である。 ネットワークインターフェースカードの機能構成を示す構成図である。 伝送装置内のパケットの経路を示す図である。 出力処理部の機能構成の比較例を示す構成図である。 図4に示された出力処理部の読み出し処理を示す図である。 出力処理部の機能構成の他例を示す構成図である。 パケットが入力されたときのスケジューラ部の動作例を示すフローチャートである。 クレジットを払い出すときのスケジューラ部の動作例を示すフローチャートである。 第1実施例の出力処理部の機能構成を示す構成図である。 キューにパケットを格納するときのキュー管理部の動作例を示すフローチャートである。 クレジットが払い出されたときのキュー管理部の動作例を示すフローチャートである。 パケットを読み出すときのキュー管理部の動作例を示すフローチャートである。 キュー管理部のパケット読み出し前の状態の一例を示す図である。 キュー管理部のパケット読み出し後の状態の一例を示す図である。 パケットを読み出すときの第2実施例のキュー管理部の動作を示すフローチャートである。 第2実施例のキュー管理部のパケット読み出し後の状態の一例を示す図である。 パケットを読み出すときの第3実施例のキュー管理部の動作を示すフローチャートである。 第3実施例のキュー管理部のパケット読み出し後の状態の一例を示す図である。 第4実施例のキュー管理部の構成を示す構成図である。 第5実施例のキュー管理部の構成を示す構成図である。 出力キューにパケットを格納したときの出力帯域制御部の動作例を示すフローチャートである。 出力キューからパケットを読み出すときの出力帯域制御部の動作例を示すフローチャートである。
図1は、実施例に係る伝送装置の機能構成を示す構成図である。伝送装置は、複数のネットワークインターフェースカード(パケット交換装置)1と、2枚のスイッチカード(スイッチ装置)2と、コントロールカード3とを有する。各カード1〜3は、筐体に設けられた個別のスロットに収容され、互いに電気的に接続される。なお、本明細書において、伝送装置として、レイヤ2スイッチやルータなどのスイッチ機器を例に挙げるが、これに限定されない。
伝送装置は、外部装置から受信したパケットを、その宛先に従って他の外部装置に中継する。なお、本明細書において、パケットとは、伝送されるデータ(情報)の伝送単位であり、例としてイーサネットフレームを挙げるが、これに限られず、IPパケットなどの他のフレームであってもよい。
複数のネットワークインターフェースカード1は、それぞれ、外部装置との間において、パケットを送受信する。外部装置としては、例えば、パーソナルコンピュータなどの端末装置、サーバ装置、及びルータが挙げられる。複数のネットワークインターフェースカード1は、複数のポートにより光ファイバと接続され、例えば1000BASE−SXの規格に基づく通信を行う。
2枚のスイッチカード2は、それぞれ、複数のネットワークインターフェースカード1の間において、パケットを交換する。より具体的には、スイッチカード2は、ネットワークインターフェースカード1からパケットが入力され、パケットを、その宛先に応じたネットワークインターフェースカード1に出力する。2枚のスイッチカード2は、例えば、ハードウェア故障などの障害に備えて、運用系及び予備系として使用される。
コントロールカード3は、複数のネットワークインターフェースカード1及び2枚のスイッチカード2を制御する。コントロールカード3は、ネットワーク制御装置などと接続され、ユーザーインターフェースに関する処理、各カード1,2に対する設定処理、及び各カード1,2からの情報収集処理などを行う。コントロールカード3は、これらの処理を実行するCPU(Central Processing Unit)などのプロセッサ30及びメモリ31を有する。
図2は、ネットワークインターフェースカード1の機能構成を示す構成図である。ネットワークインターフェースカード1は、複数の光送受信器10と、PHY/MAC部11と、入力処理部12と、出力処理部13と、制御部14とを有する。
複数の光送受信器10は、それぞれ、外部装置から光ファイバを介して受信した光信号を電気信号に変換してPHY/MAC部11に出力し、また、PHY/MAC部11から入力された電気信号を光信号に変換し、光ファイバを介して外部装置に送信する。つまり、複数の光送受信器10は、外部装置との間でパケットを送受信するためのポートとして機能する。
PHY/MAC部11は、外部装置とのリンクの確立処理や複数の光送受信器10に対するパケットの分配処理などを行う。PHY/MAC部11は、複数の光送受信器10から入力されたパケットを入力処理部12に出力し、出力処理部13から入力されたパケットを複数の光送受信器10に出力する。
入力処理部12及び出力処理部13は、イングレス(INGRESS)及びイーグレス(EGRESS)のパケット処理をそれぞれ行う。入力処理部12は、パケットの帯域制御処理などを行って、スイッチカード2にパケットを出力する。出力処理部13は、スイッチカード2から入力されたパケットの帯域制御処理などを行って、PHY/MAC部11にパケットを出力する。
制御部14は、コントロールカード3と通信を行い、入力処理部12及び出力処理部13の制御を行う。制御部14は、CPUなどのプロセッサ及びメモリ(図示せず)を備える。
図3には、伝送装置内のパケットの経路が示されている。なお、図3は、入力処理部12の構成も示す。
まず、パケットは、ネットワークインターフェースカード1の入力処理部12に入力される。入力処理部12は、クラス判定部120と、ポリサー121と、分配部122と、複数の入力キュー123と、出力部124とを有する。
クラス判定部120は、パケットごとの通信品質(QoS:Quality of Service)のクラスを判定し、クラスに応じたフローIDを、例えば装置内ヘッダに含めてパケットに付与する。クラス判定部120は、例えば、パケットのヘッダに含まれる宛先(DA:Destination Address)、またはVLAN(Virtual Local Area Network) IDに基づいてクラスを判定する。
ポリサー121は、入力されるパケットのトラフィック量が所定の帯域を超えないように、所定帯域を超える分のパケットを廃棄する。分配部122は、パケットをフローIDに応じて、複数の入力キュー123に分配する。複数の入力キュー123は、パケットを、出力部124により読み出されるまで蓄積する。出力部124は、複数の入力キュー123から1つを選択して、選択した入力キュー123からパケットを読み出して、スイッチカード2のスイッチ部20に出力する。スイッチ部20は、入力されたパケットを宛先に応じたネットワークインターフェースカード1の出力処理部13に出力する。
図4は、出力処理部13の機能構成の比較例を示す構成図である。出力処理部13は、分配部90と、複数のキュー911〜913と、複数のパケットシェーパ92と、スケジューラ部93とを有する。
分配部90は、入力されたパケット(図4中の「PKT」参照)を、フローIDに応じて複数のキュー911〜913に分配する。分配部90は、例えば、フロー#1のPKT#5〜#7をキュー911に格納し、フロー#2のPKT#3〜#6をキュー912に格納し、フロー#N(N:3以上の自然数)のPKT#5をキュー913に格納する。
複数のキュー911〜913は、フローIDごとにパケットを蓄積する。複数のキュー911〜913は、それぞれ、FIFO(First In First Out)などのパケットの格納手段である。
パケットシェーパ92は、キュー911〜913からそれぞれ読み出されるパケットの間隔を調整する。パケットシェーパ92は、例えば、送信権として扱われるトークンを貯めるトークンバケットを有し、トークンの残量に応じてパケットの読み出しを制限する。パケットシェーパ92は、パケットの間隔を、トークンの供給レートにより調整する。
スケジューラ部93は、トークンを消費して、パケットシェーパ92を介し、複数のキュー911〜913からパケットを読み出す。スケジューラ部93は、例えばラウンドロビン方式に従って、読み出し可能なキュー911〜913から読み出し対象のキューを選択する。読み出されたパケットは、ポートを介して外部装置に送信される。
上述したように、スケジューラ部93は、1パケット単位で読み出し処理を行う場合、スケジューリングに許容される時間が制限されるので、所定のデータ量分のパケットを連続して読み出す。図5には、図4に示された出力処理部の読み出し処理の例が示されている。
スケジューラ部93は、複数のキュー911〜913からのパケットの読み出しの可否をそれぞれ示す読出フラグ931〜933を有する。読出フラグ931〜933は、パケットの読み出しが可能である場合、”1”を示し、パケットの読み出しが不可能である場合、”0”を示す。
蓄積されたパケットのデータ量が所定量Kを超えるキュー911,912は、読出フラグ931,933が”1”に設定され、蓄積されたパケットのデータ量が所定量K以下のキュー933は、読出フラグ931〜933が”0”に設定される。スケジューラ部93は、複数のキュー911〜913のうち、読出フラグ931〜933が”1”を示すキューからパケットを読み出す。
これにより、スケジューラ部93は、1以上のパケットを、バースト的なトラフィックとして読み出すことができるので、スケジューリングに許容される時間の制限が緩和される。しかし、本例では、所定量Kを超えて読み出されるパケットのデータ量、すなわち余剰分R1,R2が存在するため、キュー911〜913間における帯域の公平性を担保できない。また、キュー911〜913に蓄積されたデータ量が、所定量Kを超えるまでパケットが読み出されないため、ショートパケットが低いレートでキューに入力される場合、パケットの遅延量が増加する。
そこで、上記の問題を解決するため、スケジューリング機能を、パケットの読み出し機能から独立して設け、読み出し可能なパケットのデータ量を示す読出許容量を、キューごとに平等に与える手法が考えられる。なお、本明細書では、この読出許容量を「クレジット」と表記する。
図6は、出力処理部13の機能構成の他例を示す構成図である。出力処理部13は、キュー管理部5及びスケジューラ部6を有する。キュー管理部5は、分配部50と、複数のキュー511〜513と、クレジットカウンタ部52と、読出調停手段8とを有し、クレジットを消費して複数のキュー511〜513からパケットを読み出す。スケジューラ部6は、蓄積量カウンタ部60と、クレジット払出部61と、複数のクレジットシェーパ62とを有し、クレジットをキュー管理部5に払い出す。
分配部50は、入力されたパケットを、フローIDに基づいて、複数のキュー511〜513に分配する。複数のキュー511〜513は、それぞれ、1以上のパケットを蓄積する。また、分配部50は、入力されたパケットを、フローID及びパケット長をスケジューラ部6に通知する。
蓄積量カウンタ部60は、分配部50からの通知に基づいて、フローIDごとのパケットのデータ量、つまりキュー511〜513ごとに蓄積されたパケットのデータ量を計数する。図6の例では、フロー#1に対応するキュー511に5800(Byte)のデータが蓄積され、フロー#2に対応するキュー512に3986(Byte)のデータが蓄積され、フロー#Nに対応するキュー513に128(Byte)のデータが蓄積されている。なお、以降の説明において、蓄積量カウンタ部60が計数したデータ量を、「蓄積量カウンタ」と表記する。
クレジットシェーパ62は、フロー#1〜#Nごとに設けられ、該フローのキュー511〜513にクレジットを与える間隔を調整する。クレジットシェーパ62は、例えば、送信権として扱われるトークンを貯めるトークンバケットを有し、トークンの残量に応じてクレジットの払い出しを制限する。クレジットシェーパ62は、クレジットを与える間隔を、トークンの供給レートにより調整する。
クレジット払出部61は、キュー管理部5に一定のクレジットを払い出す。つまり、クレジット払出部61は、複数のキュー511〜513の各々に一定のクレジットを与える。クレジット払出部61は、キュー511〜513ごとにクレジットの払い出しの可否を示す払出フラグ611〜613を有する。
払出フラグ611〜613は、それぞれ、クレジットの払い出しが可能である場合に”1”を示し、払い出しが不可能である場合に“0“を示す。払出フラグ611〜613は、それぞれ、該当するフローの蓄積量カウンタが所定量B以上であり、クレジットシェーパ62のトークンの残量が0より多いとき、”1”に設定される。
図6の例では、仮に所定量Bを1500(Byte)とすると、フロー#Nの蓄積量カウンタ(128(Bute))は、所定量Bより少ないため、払出フラグ613は”0”を示す。また、他のフロー#1,#2については、蓄積量カウンタが所定量Bより多いため、他の払出フラグ611,612は”1”を示す。このように、複数のキュー511〜513のうち、蓄積されたパケットのデータ量が一定量B以上であるキューに、クレジットを与えることにより、パケットを、一定のバースト性を有するトラフィックとして読み出して、スループットを向上することができる。
図7は、パケットが入力されたときのスケジューラ部6の動作例を示すフローチャートである。まず、蓄積量カウンタ部60は、キュー管理部5からフローID及びパケット長を取得する(ステップSt1)。次に、蓄積量カウンタ部60は、取得したフローID及びパケット長に基づいて、該当するフロー#1〜#Nの蓄積量カウンタを更新する(ステップSt2)。次に、クレジット払出部61は、該当するフロー#1〜#Nの蓄積量カウンタが所定量B以上であり、かつ、該当するクレジットシェーパ62のトークンの残量が0より多い、とする払出条件の成否を判定する(ステップSt3)。
払出条件が満たされる場合(ステップSt3のYes)、クレジット払出部61は、該当するフロー#1〜#Nの払出フラグ611〜613を“1”にし(ステップSt4)、処理を終了する。一方、払出条件が満たされない場合(ステップSt3のNo)、クレジット払出部61は、処理を終了する。このようにして、スケジューラ部6は、パケットが入力されたときの処理を行う。
クレジット払出部61は、払出フラグ611〜613が”1”を示すフロー#1〜#Nのキュー511〜513に、一定のクレジットを払い出す。図8は、クレジットを払い出すときのスケジューラ部6の動作例を示すフローチャートである。
まず、クレジット払出部61は、払出フラグ611〜613が”1”を示すフロー#1〜#Nから1つを選択する(ステップSt11)。クレジット払出部61は、例えばラウンドロビ方式によりフロー#1〜#Nを選択してもよい。
次に、クレジット払出部61は、キュー管理部5に一定のクレジットを払い出す(ステップSt12)。つまり、スケジューラ部6は、複数のキュー511〜513に一定のクレジットを与える。払い出されたクレジットは、キュー管理部5のクレジットカウンタ部52により計数される。
クレジットカウンタ部52は、フローIDごとに、つまりキュー511〜513ごとにクレジットを計数する。図6の例において、フロー#1のキュー511は、−250(Byte)のクレジットを有し、フロー#2のキュー512は、5486(Byte)のクレジットを有する。また、フロー#Nのキュー513は、1500(Byte)のクレジットを有する。クレジットは、スケジューラ部6により一定量ずつ各キュー511〜513に与えられる。なお、以降の説明において、クレジットカウンタ部52が計数したクレジットの量を、「クレジットカウンタ」と表記する。
次に、クレジット払出部61は、該当するフロー#1〜#Nの蓄積量カウンタから一定量を減算する(ステップSt13)。つまり、クレジット払出部61は、クレジットを払い出したときに、クレジット分のパケットが読み出されたものとして、蓄積量カウンタ部60の蓄積量カウンタを更新する。
次に、クレジット払出部61は、該当するフロー#1〜#Nのクレジットシェーパ62のトークンから一定量を減算する(ステップSt14)。つまり、クレジット払出部61は、トークンを消費してクレジットを払い出す。
次に、クレジット払出部61は、該当するフロー#1〜#Nの蓄積量カウンタが所定量B以上であり、かつ、該当するクレジットシェーパ62のトークンの残量が0より多い、とする払出条件の成否を判定する(ステップSt15)。
払出条件が満たされない場合(ステップSt15のNo)、クレジット払出部61は、該当するフロー#1〜#Nの払出フラグ611〜613を”0”に設定して(ステップSt16)、処理を終了する。一方、払出条件が満たされる場合(ステップSt15のYes)、クレジット払出部61は、処理を終了する。このようにして、スケジューラ部6は、クレジットを払い出す処理を行う。
一方、キュー管理部5において、読出調停手段8は、キュー511〜513ごとに、クレジットを消費してパケットを読み出す。読出調停手段8は、フロー#1〜#Nごとに読出フラグ81〜83を有している。読出フラグ81〜83は、キュー511〜513ごとのクレジット及びキュー511〜513ごとに蓄積されたパケットのデータ量に関する読出条件を満たす場合、”1”を示し、読出条件を満たさない場合、”0”を示す。
読出条件は、キュー511〜513のクレジット及びキュー511〜513に蓄積されたパケットのデータ量が、0より大きいときに満たされる。つまり、読出調停手段8は、キュー511〜513にパケットが格納され、クレジットカウンタが正の値であるとき、キュー511〜513からパケットを読み出す。
図6の例では、各キュー511〜513にパケットが格納され、フロー#1のクレジットカウンタが−250であるので、読出フラグ81は”0”に設定される。また、他のフロー#2、#Nは、クレジットカウンタが正の値であるので、読み出しフラグ82,83は”1”に設定される。この読出条件によると、少なくとも1(Byte)のクレジット、及び、少なくとも1つのパケットがあれば、該パケットは、パケット長によらずにキュー511〜513から読み出されるので、パケットの待機時間が低減され、スループットが向上する。
本例において、スケジューラ部6は、キュー511〜513からパケットを読み出すキュー管理部5から分離し、独立して設けられている。スケジューラ部6は、キュー511〜513に蓄積されている個々のパケットの長さ(パケット長)に関わらず、各フロー#1〜#N、つまり各キュー511〜513に一定のクレジット(つまり、一様な読出許容量)を払い出す。このクレジットは、読み出されたパケットのデータ量に応じて消費され、負の値にもなり得る。したがって、各キュー511〜513は、クレジットに基づいてパケットの読み出し量が制御され、キュー511〜513間の公平性が担保される。
また、本例では、図5に示された比較例とは異なり、各キュー511〜513に蓄積されたパケットのデータ量が一定量K以上とならない場合であっても、少なくとも1(Byte)以上のクレジットがあれば、パケットは読み出される。例えば、図6において、フロー#Nの蓄積量カウンタは、128(Byte)であるので、上述したようにフロー#Nのキュー513に対し、スケジューラ部6によるクレジットの払い出しは行われない。
しかし、フロー#Nのキュー513は、1500(Byte)のクレジットがあるため、キュー513に格納されたPKT#5は読み出される。したがって、各キュー511〜513に、あらかじめ一定のクレジットを初期値として与えておけば、ショートパケットが連続する場合であっても、クレジットを消費することにより、少ない遅延量でパケットの読み出しが可能である。
上述したように、読出調停手段8は、読出フラグ81〜83が”1”を示すフロー#1〜#Nに対応するキュー511〜513からパケットを読み出す。複数の読出フラグ81〜83が”1”を示す場合、読出調停手段8は、複数のキュー511〜513からパケットの読み出し対象とするキューを選択する。すなわち、読出調停手段8は、複数のキュー511〜513の間における読み出しの競合を調停する。なお、上記の特許文献4に開示された技術では、各入力制御部は、個別のパケットバッファ(キュー)が設けられ、出力制御部側の帯域と同じレートによりパケットの読み出しが可能であるため、このような調停は必要ない。
仮に、読出調停手段8として、新たなスケジューラを設けたとすると、スケジューラ部6を分離した意義が失われてしまう。スケジューラは、所定のスケジューリングアルゴリズムに従って、パケットの読み出しが可能なキューから1つのキューを選択するために、フローごとの優先度や重みなどのパラメータに基づくサーチ処理を行う。このサーチ処理は、読み出し可能なキューのパタン数が多いほど、多くの時間を必要とし、キュー数が多い場合、及びアルゴリズムが複雑である場合、さらに多くの時間を必要とする。したがって、サーチ処理の負担がない、もしくは少ない読出調停手段8を用いることが望ましい。
(第1実施例)
そこで、実施例のネットワークインターフェースカード1は、上記のサーチ処理を用いずに、キュー511〜513から読出調停手段8に対して、読み出し可能な状態であることを通知する手法を用いる。図9は、第1実施例の出力処理部13の機能構成を示す構成図である。なお、図9において、図6と共通する構成には、同一の符号を付し、その説明を省略する。
出力処理部13は、キュー管理部5及びスケジューラ部6を有する。キュー管理部5は、分配部50と、複数のキュー511〜513と、クレジットカウンタ部52と、読出処理部53と、読出条件判定部54と、読出順序登録FIFO55とを有する。スケジューラ部6は、蓄積量カウンタ部60と、クレジット払出部61と、複数のクレジットシェーパ62とを有する。なお、スケジューラ部6の動作は、図6を参照して述べたとおりである。
読出条件判定部54は、キュー511〜513が読出条件を満たしたか否かを判定し、読出条件を満たしたキュー511〜513のフローIDを読出順序登録FIFO55に登録する。読出条件判定部54は、キュー511〜513ごとに読出フラグ541〜543を有している。この読出フラグ541〜543の内容は、図6を参照して説明した読出フラグ81〜83と同一であり、読出条件も上述した通りである。
読出条件判定部54は、各キュー511〜513のフローIDを、読出条件を満たした順に、読出順序登録FIFO55に登録する。読出処理部53は、読出順序登録FIFO55からフローIDを読み出し、該フローのキュー511〜513から、クレジットを消費してパケットを読み出す。このとき、読出処理部53は、読出順序登録FIFO55に登録されたフローIDのうち、先頭のフローID、つまり時間的に最も早く登録されたフローIDを読み出す。
つまり、読出処理部53は、複数のキュー511〜513から、キューごとのクレジット及びキューごとに蓄積されたパケットのデータ量に関する読出条件を満たした順に、クレジットを消費してパケットを読み出す。図9の例では、フロー#2、フロー#97、フロー#196の順に、該当するキューからパケットが読み出される。このように、読出処理部53は、複雑なサーチ処理を行うことなく、読出順序登録FIFO55に登録されたフローIDに従って簡単に読み出し対象のキューを決定するので、少ない時間で読み出し処理を行うことができる。
キュー511〜513からパケットが読み出された後、読出条件判定部54は、該キューが読出条件をさらに満たす場合、当該フローIDを読出順序登録FIFO55に再び登録する。フローIDの登録処理は、読出条件が満たされるイベントを契機として行われる。このイベントとは、キュー511〜513へのパケットの格納、スケジューラ部6からのクレジットの払い出し、及びキュー511〜513からのパケットの読み出しである。以下に、各イベントにおけるキュー管理部5の動作について説明する。
図10は、キュー511〜513にパケットを格納するときのキュー管理部5の動作例を示すフローチャートである。まず、分配部50は、スイッチカード2から入力されたパケットから、フローID及びパケット長を取得する(ステップSt21)。
次に、分配部50は、取得したフローIDに対応するキュー511〜513に、パケットを格納する(ステップSt22)。次に、分配部50は、取得したフローID及びパケット長をスケジューラ部6に通知する(ステップSt23)。次に、読出条件判定部54は、該フローIDに対応するキュー511〜513に蓄積されたパケットのデータ量が0より大きく、かつ、該フローIDに対応するクレジットカウンタが0より大きい、とする読出条件の成否を判定する(ステップSt24)。
読出条件が満たされない場合(ステップSt24のNo)、キュー管理部5は、処理を終了する。一方、読出条件が満たされる場合(ステップSt24のYes)、読出条件判定部54は、読出順序登録FIFO55の該フローIDの登録の有無を判定する(ステップSt25)。該フローIDが登録されている場合(ステップSt25のNo)、キュー管理部5は、処理を終了する。
一方、該フローIDが登録されていない場合(ステップSt25のYes)、読出条件判定部54は、該フローIDを読出順序登録FIFO55に登録して(ステップSt26)、キュー管理部5は、処理を終了する。このようにして、キュー管理部5は、パケット入力時の処理を行う。
また、図11は、クレジットが払い出されたときのキュー管理部5の動作例を示すフローチャートである。まず、クレジットカウンタ部52は、スケジューラ部6から払い出された一定のクレジットを、該当するフローIDのクレジットカウンタに加算する(ステップSt31)。
次に、読出条件判定部54は、該フローIDに対応するキュー511〜513に蓄積されたパケットのデータ量が0より大きく、かつ、該フローIDに対応するクレジットカウンタが0より大きい、とする読出条件の成否を判定する(ステップSt32)。読出条件が満たされない場合(ステップSt32のNo)、キュー管理部5は、処理を終了する。
一方、読出条件が満たされる場合(ステップSt32のYes)、読出条件判定部54は、読出順序登録FIFO55の該フローIDの登録の有無を判定する(ステップSt33)。該フローIDが登録されている場合(ステップSt33のNo)、キュー管理部5は、処理を終了する。
一方、該フローIDが登録されていない場合(ステップSt33のYes)、読出条件判定部54は、該フローIDを読出順序登録FIFO55に登録し(ステップSt34)、キュー管理部5は、処理を終了する。このようにして、キュー管理部5は、クレジットが払い出されたときの処理を行う。
また、図12は、パケットを読み出すときのキュー管理部5の動作例を示すフローチャートである。まず、読出処理部53は、読出順序登録FIFO55から先頭のフローIDを読み出す(ステップSt41)。読み出されたフローIDは、読出順序登録FIFO55から削除される。
次に、読出処理部53は、読み出したフローIDに対応するキュー511〜513から、1つのパケットを読み出す(ステップSt42)。次に、読出処理部53は、該フローIDに対応するクレジットカウンタから、読み出したパケットの長さ分のクレジットを減算する(ステップSt43)。すなわち、読出処理部53は、複数のキュー511〜513から、キューごとのクレジット及びキューごとに蓄積されたパケットのデータ量に関する読出条件を満たした順に、クレジットを消費してパケットを読み出す。
次に、読出条件判定部54は、該フローIDに対応するキュー511〜513に蓄積されたパケットのデータ量が0より大きく、かつ、該フローIDのクレジットカウンタが0より大きい、とする読出条件の成否を判定する(ステップSt44)。読出条件が満たされない場合(ステップSt44のNo)、キュー管理部5は、処理を終了する。
一方、読出条件が満たされる場合(ステップSt44のYes)、読出条件判定部54は、当該フローIDを読出順序登録FIFO55に再登録し(ステップSt45)、キュー管理部5は、処理を終了する。このようにして、キュー管理部5は、パケット読み出し時の処理を行う。
このパケット読み出し動作について、図13及び図14を参照して具体例を述べる。図13には、キュー管理部5のパケット読み出し前の状態の一例が示されている。図14には、キュー管理部5のパケット読み出し後の状態の一例が示されている。
読み出し前、読出順序登録FIFO55には、フロー#1、フロー#2、フロー#Nの順にフローIDが登録されている。また、クレジットカウンタは、フロー#1が708(Byte)であり、フロー#2が5486(Byte)であり、フロー#Nが1500(Byte)である。
読出処理部53は、読出順序登録FIFO55に登録されたフローIDの順に従い、フロー#1のキュー511からPKT#5を読み出し、次にフロー#2のキュー512からPKT#3を読み出し、最後にフロー#Nのキュー513からPKT#1を読み出す。これにより、フロー#1のクレジットカウンタは、読み出されたPKT#5の長さ300(Byte)分のクレジットが減算され、408(Byte)となる。
また、フロー#2のクレジットカウンタは、読み出されたPKT#3の長さ500(Byte)分のクレジットが減算され、4986(Byte)となる。フロー#Nのクレジットカウンタは、読み出されたPKT#Nの長さ100(Byte)分のクレジットが減算され、1400(Byte)となる。
パケットの読み出し後、フロー#1及びフロー#2について、クレジットカウンタ>0、かつ、パケットのデータ量>0であるので、各々のキュー511,512は、読出条件を満たす。このため、読出条件判定部54は、フロー#1及びフロー#2を読出順序登録FIFO55に再登録する。なお、フロー#Nは、対応するキュー513にパケットが蓄積されていないため、読出条件が満たされず、再登録は行われない。
このように、読出処理部53は、複数のキュー511〜513のうち、読出条件を満たしたキューから、パケットを1つずつ読み出す。このため、読出処理の頻度は、比較的に高くなるが、トラヒックのバースト性が低減されるので、後段の機能ブロック、またはパケット送信先の外部装置におけるトラフィックの負荷が低減される。
また、読出条件判定部54は、上述したように、パケットの格納、クレジットの払い出し、パケットの読み出しの各イベントの発生時に、フローIDを読出順序登録FIFO55に登録する。各イベントは同時に発生することがないため、読出条件判定部54は、フローIDの登録にあたって、登録の競合の調停を行うことはない。
理由を述べると、まず、スイッチカード2から出力処理部13へのパケットの入力は、1つずつ順次に行われるため、パケットの格納のイベントが同時に発生することはない。クレジットの払い出し及びパケットの読み出しも、各フローについて順次に行われるため、これらのイベントも同時に発生することはない。また、異なるイベント同士の同時発生は、例えば、各イベントの処理に同期するクロックタイミングを、イベントの発生タイミングがずれるように調整することにより回避される。
本実施例では、上記のイベントの発生を契機として、読出条件判定部54が、読出条件を満たした順に、該当するフローIDを読出順序登録FIFO55に登録する。そして、読出処理部53は、登録されたフローIDを先頭から順に参照して、該当するキュー511〜513からパケットを読み出す。このため、読出処理部53は、多くの時間を必要とするサーチ処理を行うことなく、負荷が軽い簡単な処理でキュー511〜513を選択し、パケットを読み出すことができる。
このように、キュー管理部5は、単純な手法によりパケットの読み出しを行うが、スケジューラ部6は、クレジットシェーパ62によりフローごとの優先度や重みなどのパラメータを考慮し、各フローに対して公平にクレジットの払い出しを行う。したがって、ネットワークインターフェースカード1全体で見た通信品質が担保される。
(第2実施例)
第1実施例において、読出処理部53は、複数のキュー511〜513のうち、読出条件を満たしたキューから、パケットを1つずつ読み出すが、これに限定されず、読み出し済みのパケットのデータ量が所定量に達するまで連続して読み出してもよい。
図15は、パケットを読み出すときの第2実施例のキュー管理部5の動作を示すフローチャートである。まず、読出処理部53は、読出順序登録FIFO55から先頭のフローIDを読み出す(ステップSt51)。
次に、読出処理部53は、読み出したフローIDに対応するキュー511〜513から、1つのパケットを読み出す(ステップSt52)。次に、読出処理部53は、該フローIDに対応するクレジットカウンタから、読み出したパケットの長さ分のクレジットを減算する(ステップSt53)。
次に、読出条件判定部54は、該フローIDに対応するキュー511〜513に蓄積されたパケットのデータ量が0より大きく、かつ、該フローIDのクレジットカウンタが0より大きい、とする読出条件の成否を判定する(ステップSt54)。読出条件が満たされない場合(ステップSt54のNo)、キュー管理部5は、処理を終了する。
一方、読出条件が満たされる場合(ステップSt54のYes)、読出処理部53は読み出し済みのデータ量が、所定量Fより小さいか否かを判定する(ステップSt55)。読み出し済みのデータ量が所定量Fより小さい場合(ステップSt55のYes)、再びステップSt52の処理が行われる。
一方、読み出し済みのデータ量が所定量F以上である場合(ステップSt55のNo)、読出条件判定部54は、当該フローIDを読出順序登録FIFO55に再登録し(ステップSt56)、キュー管理部5は、処理を終了する。このようにして、キュー管理部5は、パケット読み出し時の処理を行う。
図13及び図16を参照して、このパケット読み出し動作の具体例を述べる。図16には、第2実施例のキュー管理部5のパケット読み出し後の状態の一例が示されている。ここでは、上記の所定量Fを1000(Byte)とする。また、図13については、上述したとおりであるので、説明を省略する。
読出処理部53は、読出順序登録FIFO55に登録されたフローIDの順に従い、まず、フロー#1のキュー511からPKT#5及びPKT#6(データ量の合計は800(Byte))を連続して読み出す。このとき、フロー#1のクレジットカウンタは、読み出し済みのPKT#5及びPKT#6の長さ800(Byte)分のクレジットが減算され、−92(Byte)となる。この時点において、フロー#1のキュー511は、読出条件を満たさなくなる(ステップSt54のNo)。このため、読出処理部53は、フロー#1のキュー511からのパケットの読み出しを終了する。このとき、読出条件判定部54は、フロー#1を読出順序登録FIFO55に再登録しない。
読出処理部53は、次に、フロー#2のキュー512からPKT#3〜PKT#5(データ量の合計は1100(Byte))を連続して読み出す。このとき、フロー#2のクレジットカウンタは、読み出し済みのPKT#3〜PKT#5の長さ1100(Byte)分のクレジットが減算され、4386(Byte)となる。この時点において、フロー#2のキュー512は、読出条件を満たしているが(ステップSt54のYes)、読み出し済みのパケットのデータ量が所定量Fに達している(ステップSt55のNo)。このため、読出条件判定部54は、フロー#2を読出順序登録FIFO55に再登録し(ステップSt56)、読出処理部53は、フロー#2のキュー512からのパケットの読み出しを終了する。
読出処理部53は、最後に、フロー#Nのキュー513からPKT#1(データ量は100(Byte))を読み出す。このとき、フロー#Nのクレジットカウンタは、読み出し済みのPKT#1の長さ100(Byte)分のクレジットが減算され、1400(Byte)となる。この時点において、フロー#Nのキュー513は、空になるので、読出条件を満たさなくなる(ステップSt54のNo)。このため、読出処理部53は、フロー#Nのキュー513からのパケットの読み出しを終了する。このとき、読出条件判定部54は、フロー#Nを読出順序登録FIFO55に再登録しない。
このように、読出処理部53は、複数のキュー511〜513のうち、読出条件を満たしたキューから、パケットを、読み出し済みのパケットのデータ量が所定量Fに達するまで連続して読み出す。このため、トラヒックのバースト性が第1実施例より高くなるが、読出処理の頻度が第1実施例より低くなるので、読出処理部53の負荷が低減される。
(第3実施例)
第2実施例では、読出処理部53は、読み出し済みのパケットのデータ量が所定量Fに達するまで連続して読み出すが、これに限定されず、パケットを、読出条件が満たさなくなるまで連続して読み出してもよい。
図17は、パケットを読み出すときの第3実施例のキュー管理部5の動作を示すフローチャートである。まず、読出処理部53は、読出順序登録FIFO55から先頭のフローIDを読み出す(ステップSt61)。
次に、読出処理部53は、読み出したフローIDに対応するキュー511〜513から、1つのパケットを読み出す(ステップSt62)。次に、読出処理部53は、該フローIDに対応するクレジットカウンタから、読み出したパケットの長さ分のクレジットを減算する(ステップSt63)。
次に、読出条件判定部54は、該フローIDに対応するキュー511〜513に蓄積されたパケットのデータ量が0より大きく、かつ、該フローIDのクレジットカウンタが0より大きい、とする読出条件の成否を判定する(ステップSt64)。読出条件が満たされない場合(ステップSt64のNo)、キュー管理部5は、処理を終了する。なお、本実施例では、上述した実施例とは異なり、読み出し動作が終了した時点において、読出条件が満たされていないため、必然的にフローIDの再登録は行われない。
一方、読出条件が満たされる場合(ステップSt64のYes)、再びステップSt62の処理が行われる。このようにして、キュー管理部5は、パケット読み出し時の処理を行う。
図13及び図18を参照して、このパケット読み出し動作の具体例を述べる。図18には、第3実施例のキュー管理部5のパケット読み出し後の状態の一例が示されている。なお、図13については、上述したとおりであるので、説明を省略する。
読出処理部53は、読出順序登録FIFO55に登録されたフローIDの順に従い、まず、フロー#1のキュー511からPKT#5及びPKT#6(データ量の合計は800(Byte))を連続して読み出す。このとき、フロー#1のクレジットカウンタは、読み出し済みのPKT#5及びPKT#6の長さ800(Byte)分のクレジットが減算され、−92(Byte)となる。この時点において、フロー#1のキュー511は、読出条件を満たさなくなる(ステップSt64のNo)。このため、読出処理部53は、フロー#1のキュー511からのパケットの読み出しを終了する。
読出処理部53は、次に、フロー#2のキュー512からPKT#3〜PKT#6(データ量の合計は1400(Byte))を連続して読み出す。このとき、フロー#2のクレジットカウンタは、読み出し済みのPKT#3〜PKT#6の長さ1400(Byte)分のクレジットが減算され、4086(Byte)となる。この時点において、フロー#2のキュー512は、空になるので、読出条件を満たさなくなる(ステップSt64のNo)。このため、読出条件判定部54は、読出処理部53は、フロー#2のキュー512からのパケットの読み出しを終了する。
読出処理部53は、最後に、フロー#Nのキュー513からPKT#1(データ量は100(Byte))を読み出す。このとき、フロー#Nのクレジットカウンタは、読み出し済みのPKT#1の長さ100(Byte)分のクレジットが減算され、1400(Byte)となる。この時点において、フロー#Nのキュー513は、空になるので、読出条件を満たさなくなる(ステップSt64のNo)。このため、読出処理部53は、フロー#Nのキュー513からのパケットの読み出しを終了する。
このように、読出処理部53は、複数のキュー511〜513のうち、読出条件を満たしたキューから、パケットを、読出条件が満たさなくなるまで連続して読み出す。このため、トラフィックのバースト性が、第1実施例及び第2実施例より高くなるが、読出処理の頻度が、第1実施例及び第2実施例より低くなるので、読出処理部53の負荷がさらに低減される。
(第4実施例)
上記の各実施例において、読出処理部53は、単一の読出順序登録FIFO55からフローIDを読み出したが、これに限定されず、複数のポートにそれぞれ対応する複数の読出順序登録FIFOからフローIDを読み出してもよい。
図19は、第4実施例のキュー管理部5の構成を示す構成図である。なお、図19において、図9と共通する構成には、同一の符号を付し、その説明を省略する。
出力処理部13は、キュー管理部5、スケジューラ部6、及び複数のポート#1〜#Mを有する。キュー管理部5は、分配部50と、複数のキュー511〜513と、クレジットカウンタ部52と、読出処理部53aと、読出条件判定部54aと、複数の読出順序登録FIFO(読出順序登録部)561〜563と、選択処理部57とを有する。なお、スケジューラ部6の構成については、図6〜図9を参照して述べたとおりである。
上述したように、出力処理部13は、読出処理部53aにより読み出されたパケットを、複数のポート#1〜#Mを介し、外部装置に送信する。複数の読出順序登録FIFO561〜563は、複数のポート#1〜#Mにそれぞれ対応し、複数のキュー511〜513のフローID(識別子)が、上記の読出条件を満たした順に登録される。
読出条件判定部54aは、キュー511〜513ごとに読出条件の成否を判定し、複数のキュー511〜513のうち、読出条件が満たされたキューに対応するフローIDを、該当するポート#1〜#Mの読出順序登録FIFO561〜563に登録する。ここで、フローID及びポート#1〜#Mの対応関係を示す情報は、読出条件判定部54a内に予め保持されている。なお、読出条件判定部54aは、上述した実施例と同様の読出フラグ541a〜543aを有する。
選択処理部57は、複数の読出順序登録FIFO561〜563から1つを選択し、選択した読出順序登録FIFOに登録された最先のフローIDを読出処理部53aに出力する。選択処理部57は、ラウンドロビン方式などに従い、読出順序登録FIFO561〜563から1つを選択する。なお、ポート数Mは、1つの出力処理部13に対し、多くとも数十個程度であり、フローIDの数(最大で数万)に比べると少ない。このため、選択処理部57の選択処理は、他のスケジューリング処理より負荷が低く、ネットワークインターフェー装置1のスループットを低下させることはない。
読出処理部53aは、複数のキュー511〜513のうち、選択処理部57から入力されたフローIDに応じたキューからパケットを読み出し、複数のポート#1〜#Mのうち、当該キューに対応するポートに出力する。このため、本実施例によると、ポート#1〜#Mごとのスループットの公平性を担保することができる。
また、選択処理部57は、ネットワークインターフェースカード1が、外部装置からポート#1〜#Mを介してフロー制御信号Fsを受信した場合、当該ポートに対応する読出順序登録FIFO561〜563を選択対象から除外する。このフロー制御信号Fsは、ネットワークインターフェースカード1から外部装置に入力されるトラフィック量が一定以上に達したとき、該トラフィック量を低減するために送信される。
したがって、ネットワークインターフェースカード1は、外部装置からの要求に応じて、当該外部装置へのパケットの送信を停止し、外部装置におけるトラフィックの負荷を低減することができる。なお、フロー制御信号Fsによるフロー制御は、例えばIEEE802.3x(IEEE:The Institute of Electrical and Electronics Engineers, Inc.)に規定されている。
(第5実施例)
例えば、第2実施例及び第3実施例のように、所定のデータ量を超えるパケットが、バースト的なトラフィックとして読み出される場合、トラフィック量が各ポート#1〜#Mの通信帯域を上回ることにより、パケット損失が発生することが懸念される。そこで、読出処理部53,53aの後段に、バースト性のトラフィックを吸収するバッファを設けることが望ましい。
図20は、第5実施例のキュー管理部5の構成を示す構成図である。なお、図20において、図19と共通する構成には、同一の符号を付し、その説明を省略する。
出力処理部13は、キュー管理部5、スケジューラ部6、及び複数のポート#1〜#Mを有する。キュー管理部5は、分配部50と、複数のキュー511〜513と、クレジットカウンタ部52と、読出処理部53bと、読出条件判定部54aと、複数の読出順序登録FIFO561〜563と、選択処理部57aとを有する。キュー管理部5は、さらに、複数の出力キュー701〜703と、複数のパケットシェーパ71と、出力帯域制御部72とを有する。なお、スケジューラ部6の構成については、図6〜図9を参照して述べたとおりである。
複数の出力キュー701〜703は、FIFOなどのパケットの格納手段であり、読出処理部53bから複数のポート#1〜#Mに出力されるパケットを、それぞれ蓄積する。読出処理部53bは、出力対象となるポート#1〜#Mごとに、パケットを複数の出力キュー701〜703に振り分けて格納する。なお、振り分け処理は、例えば、パケットのフローIDに基づいて行われる。
パケットシェーパ71は、出力キュー701〜703からそれぞれ読み出されるパケットの間隔を調整する。パケットシェーパ71は、例えば、送信権として扱われるトークンを貯めるトークンバケットを有し、トークンの残量に応じてパケットの読み出しを制限する。パケットシェーパ71は、パケットの間隔を、トークンの供給レートにより調整する。
出力帯域制御部72は、パケットシェーパ71を介して、複数の出力キュー701〜703からパケットを読み出す。出力帯域制御部72は、例えばラウンドロビン方式に従って、読み出し可能な出力キュー701〜703から読み出し対象のキューを決定する。読み出されたパケットは、ポートを介して外部装置に送信される。
出力帯域制御部72は、複数の出力キュー701〜703からのパケットの読み出しの可否をそれぞれ示す出力フラグ721〜723を有する。出力フラグ721〜723は、パケットの読み出しが可能である場合、”1”を示し、パケットの読み出しが不可能である場合、”0”を示す。
出力帯域制御部72は、複数の出力キュー701〜703の各々について、蓄積されたパケットのデータ量が0より大きく、かつ、パケットシェーパ71のトークン残量が0より大きい、とする出力条件の成否を判定する。この出力条件を満たす出力キュー701〜703は、出力フラグ721〜723が”1”に設定され、一方、出力条件を満たさない出力キュー701〜703は、出力フラグ721〜723が”0”に設定される。
図20の例では、複数の出力キュー701〜703のうち、出力キュー702のみが空であるため、出力フラグ722は”0”を示し、他の出力フラグ721,723は”1”を示す。スケジューラ部93は、複数の出力キュー701〜703のうち、出力フラグ721〜723が”1”を示す出力キュー701,703から、ラウンドロビン方式などに従って1つを選択し、選択した出力キューからパケットを読み出す。
出力帯域制御部72は、複数の出力キュー701〜703にそれぞれ蓄積されたパケットのデータ量が所定の閾値THを超えたとき、選択処理部57aに停止制御信号Spを出力する。停止制御信号Spは、当該出力キュー701〜703に対応するポート番号(#1〜#M)を示す情報を含む。
選択処理部57aは、停止制御信号Spに従い、複数の出力キュー701〜703のうち、当該出力キューに蓄積されたパケットが出力されるポート#1〜#Mに対応する読出順序登録FIFO561〜563を選択対象から除外する。より具体的には、選択処理部57aは、複数の読出順序登録FIFO561〜563のうち、停止制御信号Spが示すポート番号に対応する読出順序登録FIFOを選択対象から除外する。
図21は、出力キュー701〜703にパケットを格納したときの出力帯域制御部72の動作例を示すフローチャートである。まず、出力帯域制御部72は、出力キュー701〜703について、蓄積されたパケットのデータ量が0より大きく、かつ、対応するパケットシェーパ71のトークン残量が0より大きい、とする出力条件の成否を判定する(ステップSt81)。
出力条件が満たされる場合(ステップSt81のYes)、出力帯域制御部72は、当該出力フラグ721〜723を”1”に設定する(ステップSt82)。次に、出力帯域制御部72は、当該出力キュー701〜703に蓄積されたパケットのデータ量が所定の閾値THより大きいか否かを判定する(ステップSt83)。この判定処理は、出力条件が満たされない場合(ステップSt81のNo)にも行われる。
パケットのデータ量が所定の閾値THより大きい場合(ステップSt83のYes)、出力帯域制御部72は、停止制御信号Spを選択処理部57aに出力して(ステップSt84)、処理を終了する。一方、パケットのデータ量が所定の閾値TH以下である場合(ステップSt83のNo)、出力帯域制御部72は、停止制御信号Spを出力せずに、処理を終了する。このようにして、出力帯域制御部72は、パケットの格納時の処理を行う。
また、図22は、出力キュー701〜703からパケットを読み出すときの出力帯域制御部72の動作例を示すフローチャートである。出力帯域制御部72は、複数の出力キュー701〜703のうち、出力フラグ721〜723が”1”を示すキューの1つを選択して、選択した出力キューからパケットを読み出す(ステップSt91)。
次に、出力帯域制御部72は、当該出力キュー701〜703に対応するパケットシェーパ71のトークンから、読み出したパケットの長さ分のトークンを減算する(ステップSt92)。次に、出力帯域制御部72は、当該出力キュー701〜703について、蓄積されたパケットのデータ量が0より大きく、かつ、対応するパケットシェーパ71のトークン残量が0より大きい、とする出力条件の成否を判定する(ステップSt93)。
出力条件が満たされない場合(ステップSt93のNo)、出力帯域制御部72は、該当する出力フラグ721〜723を”0”に設定する(ステップSt94)。次に、出力帯域制御部72は、当該出力キュー701〜703に対応するポート#1〜#Mについて、停止制御信号Spを出力中であるか否かを判定する(ステップSt95)。この判定処理は、出力条件が満たされる場合(ステップSt93のYes)にも行われる。
停止制御信号Spを出力中である場合(ステップSt95のYes)、出力帯域制御部72は、当該出力キュー701〜703に蓄積されたパケットのデータ量が所定の閾値THより大きいか否かを判定する(ステップSt96)。一方、停止制御信号Spを出力中である場合(ステップSt95のNo)、出力帯域制御部72は、処理を終了する。
パケットのデータ量が所定の閾値TH以下である場合(ステップSt96のNo)、出力帯域制御部72は、停止制御信号Spの出力を停止する(ステップSt97)。一方、パケットのデータ量が所定の閾値THより大きい場合(ステップSt96のYes)、出力帯域制御部72は、処理を終了する。このようにして、出力帯域制御部72は、パケットの読み出し時の処理を行う。
本実施例において、読出処理部53,53aの後段に、複数の出力キュー701〜703が設けられているので、各ポート#1〜#Mに出力されるバースト性のトラフィックを吸収することができる。また、出力キュー701〜703に蓄積されたパケットのデータ量が所定の閾値THより大きい場合、選択処理部57aに停止制御信号Spを出力して、該当するフローのパケットの読み出しを停止させる。このため、いわゆるバックプレッシャー制御の効果により、一定のバースト性を有するトラフィックの出力により、出力処理部13内の後段の機能部におけるパケットの損失が低減される。
これまで述べたように、実施例に係るパケット交換装置(ネットワークインターフェースカード)1は、1以上のパケットを蓄積する複数のキュー511〜513と、複数のキュー511〜513の各々に一定のクレジットを与えるスケジューラ部6と、読出処理部53とを有する。読出処理部53は、複数のキュー511〜513から、キューごとのクレジット及びキューごとに蓄積されたパケットのデータ量に関する読出条件を満たした順に、クレジットを消費してパケットを読み出す。
上記のとおり、スケジューラ部6は、パケットを読み出す読出処理部53から独立して設けられ、各キュー511〜513に一定のクレジットを与える。また、読出処理部53は、各キュー511〜513から、クレジットを消費してパケットを読み出す。
したがって、実施例に係るパケット交換装置1によると、各キュー511〜513は、クレジットに基づいてパケットの読み出し量が制御され、キュー511〜513間の公平性が担保される。また、各キュー511〜513は、クレジットがあれば、パケットを読み出されるため、パケット長が短いショートパケットが連続して格納された場合であっても、クレジットを消費することにより、少ない遅延量でショートパケットの読み出しが可能である。
また、読出処理部53は、複数のキュー511〜513から、キューごとのクレジット及びキューごとに蓄積されたパケットのデータ量に関する読出条件を満たした順に、パケットを読み出す。このため、読出処理部53は、多くの時間を必要とするサーチ処理を行うことなく、負荷が軽い簡単な処理でキュー511〜513を選択し、パケットを読み出すことができる。よって、実施例に係るパケット交換装置1によると、効果的にスループットを向上することができる。
また、実施例に係る伝送装置は、外部装置との間において、パケットを送受信する複数のパケット交換装置1と、複数のパケット交換装置1の間において、パケットを交換するスイッチカード2とを有する。パケット交換装置1は、スイッチカード2から入力されたパケットを複数のキュー511〜513に蓄積し、複数のキュー511〜513から読み出したパケットを外装置部に送信する。
実施例に係る伝送装置によると、上記のパケット交換装置1を含むため、上述した作用効果を奏する。なお、この作用効果は、伝送装置に設けられるパケット交換装置1の少なくとも1つが、実施例に係るパケット交換装置1であれば得られる。
また、実施例に係るパケットスケジューリング方法は、以下の工程(1)及び(2)を含む。
(1)パケットを蓄積する複数のキュー511〜513の各々に一定のクレジットを与える工程
(2)複数のキュー511〜513から、キューごとのクレジット及びキューごとに蓄積されたパケットのデータ量に関する読出条件を満たした順に、クレジットを消費してパケットを読み出す工程
実施例に係るパケットスケジューリング方法によると、上記のパケット交換装置1と同様の構成のため、上述した作用効果を奏する。
以上、好ましい実施例を参照して本発明の内容を具体的に説明したが、本発明の基本的技術思想及び教示に基づいて、当業者であれば、種々の変形態様を採り得ることは自明である。
なお、以上の説明に関して更に以下の付記を開示する。
(付記1) 1以上のパケットを蓄積する複数のキューと、
前記複数のキューの各々に一定の読出許容量を与えるスケジューラ部と、
前記複数のキューから、該キューごとの前記読出許容量及び該キューごとに蓄積された前記1以上のパケットのデータ量に関する読出条件を満たした順に、前記読出許容量を消費して前記1以上のパケットを読み出す読出処理部とを有することを特徴とするパケット交換装置。
(付記2) 前記読出条件は、前記読出許容量及び前記複数のキューに蓄積された前記1以上のパケットのデータ量が、それぞれ、0より大きいときに満たされることを特徴とする付記1に記載のパケット交換装置。
(付記3) 前記スケジューラ部は、前記複数のキューのうち、蓄積された前記1以上パケットのデータ量が一定量以上であるキューに、前記読出許容量を与えることを特徴とする付記1または2に記載のパケット交換装置。
(付記4) 前記読出処理部は、前記複数のキューのうち、前記読出条件を満たしたキューから、前記1以上のパケットを1つずつ読み出すことを特徴とする付記1乃至3の何れかに記載のパケット交換装置。
(付記5) 前記読出処理部は、前記複数のキューのうち、前記読出条件を満たしたキューから、前記1以上のパケットを、読み出し済みのパケットのデータ量が所定量に達するまで連続して読み出すことを特徴とする付記1乃至3の何れかに記載のパケット交換装置。
(付記6) 前記読出処理部は、前記複数のキューのうち、前記読出条件を満たしたキューから、前記1以上のパケットを、前記読出条件が満たさなくなるまで連続して読み出すことを特徴とする付記1乃至3の何れかに記載のパケット交換装置。
(付記7) 前記読出処理部により読み出された前記1以上のパケットを、外部装置に送信するための複数のポートと、
前記複数のポートにそれぞれ対応し、前記複数のキューの識別子が、前記読出条件を満たした順に登録される複数の読出順序登録部と、
前記複数の読出順序登録部から1つを選択し、選択した読出順序登録部に登録された最先の前記識別子を前記読出処理部に出力する選択処理部とを、さらに有し、
前記読出処理部は、前記複数のキューのうち、前記選択処理部から入力された前記識別子に応じたキューから前記1以上のパケットを読み出し、前記複数のポートのうち、当該キューに対応するポートに出力することを特徴とする付記1乃至6の何れかに記載のパケット交換装置。
(付記8) 前記読出処理部から前記複数のポートに出力される前記1以上のパケットを、それぞれ蓄積する複数の出力キューと、
前記複数の出力キューにそれぞれ蓄積された前記1以上のパケットのデータ量が所定の閾値を超えたとき、停止制御信号を前記選択処理部に出力する出力帯域制御部とを、さらに有し、
前記選択処理部は、前記停止制御信号に従い、前記複数の出力キューのうち、当該出力キューに蓄積された前記1以上のパケットが出力される前記複数のポートに対応する前記複数の読出順序登録部を選択対象から除外することを特徴とする付記7に記載のパケット交換装置。
(付記9) 外部装置との間において、パケットを送受信する複数のパケット交換装置と、
前記複数のパケット交換装置の間において、前記パケットを交換するスイッチ装置とを有し、
前記複数のパケット交換装置の少なくとも1つは、付記1乃至8の何れかに記載のパケット交換装置であり、前記スイッチ装置から入力されたパケットを前記複数のキューに蓄積し、前記複数のキューから読み出したパケットを前記外部装置に送信することを特徴とする伝送装置。
(付記10) 1以上のパケットを蓄積する複数のキューの各々に一定の読出許容量を与え、
前記複数のキューから、該キューごとの前記読出許容量及び該キューごとに蓄積された前記1以上のパケットのデータ量に関する読出条件を満たした順に、前記読出許容量を消費して前記1以上のパケットを読み出すことを特徴とするパケットスケジューリング方法。
(付記11) 前記読出条件は、前記読出許容量及び前記複数のキューに蓄積された前記1以上のパケットのデータ量が、それぞれ、0より大きいときに満たされることを特徴とする付記10に記載のパケットスケジューリング方法。
(付記12) 前記読出許容量は、前記複数のキューのうち、蓄積された前記1以上パケットのデータ量が一定量以上であるキューに、与えられることを特徴とする付記10または11に記載のパケットスケジューリング方法。
(付記13) 前記複数のキューのうち、前記読出条件を満たしたキューから、前記1以上のパケットを1つずつ読み出すことを特徴とする付記10乃至12の何れかに記載のパケットスケジューリング方法。
(付記14) 前記複数のキューのうち、前記読出条件を満たしたキューから、前記1以上のパケットを、読み出し済みのパケットのデータ量が所定量に達するまで連続して読み出すことを特徴とする付記10乃至12の何れかに記載のパケットスケジューリング方法。
(付記15) 前記複数のキューのうち、前記読出条件を満たしたキューから、前記1以上のパケットを、前記読出条件が満たさなくなるまで連続して読み出すことを特徴とする付記10乃至12の何れかに記載のパケットスケジューリング方法。
1 ネットワークインターフェースカード(パケット交換装置)
2 スイッチカード(スイッチ装置)
6 スケジューラ部
53,53a,53b 読出処理部
57 選択処理部
62 出力帯域制御部
511〜513 キュー
561〜563 読出順序登録FIFO(読出順序登録部)
601〜603 出力キュー

Claims (9)

  1. 1以上のパケットを蓄積する複数のキューと、
    前記複数のキューの各々に一定の読出許容量を与えるスケジューラ部と、
    前記複数のキューから、該キューごとの前記読出許容量及び該キューごとに蓄積された前記1以上のパケットのデータ量に関する読出条件を満たした順に、前記読出許容量を消費して前記1以上のパケットを読み出す読出処理部と
    前記読出処理部により読み出された前記1以上のパケットを、外部装置に送信するための複数のポートと、
    前記複数のポートにそれぞれ対応し、前記複数のキューの識別子が、前記読出条件を満たした順に登録される複数の読出順序登録部と、
    前記複数の読出順序登録部から1つを選択し、前記選択した読出順序登録部に登録された最先の前記識別子を前記読出処理部に出力する選択処理部とを有し、
    前記読出処理部は、前記複数のキューのうち、前記選択処理部から入力された前記識別子に応じたキューから前記1以上のパケットを読み出し、前記複数のポートのうち、当該キューに対応するポートに出力することを特徴とするパケット交換装置。
  2. 前記読出条件は、前記読出許容量及び前記複数のキューに蓄積された前記1以上のパケットのデータ量が、それぞれ、0より大きいときに満たされることを特徴とする請求項1に記載のパケット交換装置。
  3. 前記スケジューラ部は、前記複数のキューのうち、蓄積された前記1以上パケットのデータ量が一定量以上であるキューに、前記読出許容量を与えることを特徴とする請求項1または2に記載のパケット交換装置。
  4. 前記読出処理部は、前記複数のキューのうち、前記読出条件を満たしたキューから、前記1以上のパケットを1つずつ読み出すことを特徴とする請求項1乃至3の何れかに記載のパケット交換装置。
  5. 前記読出処理部は、前記複数のキューのうち、前記読出条件を満たしたキューから、前記1以上のパケットを、読み出し済みのパケットのデータ量が所定量に達するまで連続して読み出すことを特徴とする請求項1乃至3の何れかに記載のパケット交換装置。
  6. 前記読出処理部は、前記複数のキューのうち、前記読出条件を満たしたキューから、前記1以上のパケットを、前記読出条件が満たさなくなるまで連続して読み出すことを特徴とする請求項1乃至3の何れかに記載のパケット交換装置。
  7. 前記読出処理部から前記複数のポートに出力される前記1以上のパケットを、それぞれ蓄積する複数の出力キューと、
    前記複数の出力キューにそれぞれ蓄積された前記1以上のパケットのデータ量が所定の閾値を超えたとき、停止制御信号を前記選択処理部に出力する出力帯域制御部とを、さらに有し、
    前記選択処理部は、前記停止制御信号に従い、前記複数の出力キューのうち、当該出力キューに蓄積された前記1以上のパケットが出力される前記複数のポートに対応する前記複数の読出順序登録部を選択対象から除外することを特徴とする請求項1乃至6の何れかに記載のパケット交換装置。
  8. 外部装置との間において、パケットを送受信する複数のパケット交換装置と、
    前記複数のパケット交換装置の間において、前記パケットを交換するスイッチ装置とを有し、
    前記複数のパケット交換装置の少なくとも1つは、請求項1乃至7の何れかに記載のパケット交換装置であり、前記スイッチ装置から入力されたパケットを前記複数のキューに蓄積し、前記複数のキューから読み出したパケットを前記外部装置に送信することを特徴とする伝送装置。
  9. 1以上のパケットを蓄積する複数のキューの各々に一定の読出許容量を与え、
    前記複数のキューから、該キューごとの前記読出許容量及び該キューごとに蓄積された前記1以上のパケットのデータ量に関する読出条件を満たした順に、前記読出許容量を消費して前記1以上のパケットを読み出し、
    前記複数のキューから読み出された前記1以上のパケットを複数のポートから外部装置に送信し、
    前記複数のポートにそれぞれ対応する複数の読出順序登録部に、前記読出条件を満たした順に前記複数のキューの識別子を登録し、
    前記複数の読出順序登録部から1つを選択し、
    前記複数のキューのうち、前記選択した読出順序登録部に登録された最先の前記識別子に応じたキューから前記1以上のパケットを読み出し、前記複数のポートのうち、当該キューに対応するポートに出力することを特徴とするパケットスケジューリング方法。
JP2013001557A 2013-01-09 2013-01-09 パケット交換装置、伝送装置、及びパケットスケジューリング方法 Expired - Fee Related JP6036310B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013001557A JP6036310B2 (ja) 2013-01-09 2013-01-09 パケット交換装置、伝送装置、及びパケットスケジューリング方法
US14/100,327 US9608927B2 (en) 2013-01-09 2013-12-09 Packet exchanging device, transmission apparatus, and packet scheduling method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013001557A JP6036310B2 (ja) 2013-01-09 2013-01-09 パケット交換装置、伝送装置、及びパケットスケジューリング方法

Publications (2)

Publication Number Publication Date
JP2014135581A JP2014135581A (ja) 2014-07-24
JP6036310B2 true JP6036310B2 (ja) 2016-11-30

Family

ID=51060912

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013001557A Expired - Fee Related JP6036310B2 (ja) 2013-01-09 2013-01-09 パケット交換装置、伝送装置、及びパケットスケジューリング方法

Country Status (2)

Country Link
US (1) US9608927B2 (ja)
JP (1) JP6036310B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9448321B2 (en) 2013-01-04 2016-09-20 Schlumberger Technology Corporation Torsional wave logging
US9450881B2 (en) * 2013-07-09 2016-09-20 Intel Corporation Method and system for traffic metering to limit a received packet rate
US9973424B1 (en) * 2013-12-31 2018-05-15 Sanmina Corporation Storage system with flow based services for flash storage
US10075383B2 (en) * 2016-03-30 2018-09-11 Advanced Micro Devices, Inc. Self-timed router with virtual channel control
JP6786996B2 (ja) * 2016-09-23 2020-11-18 富士通株式会社 伝送装置及び伝送処理方法
DE112017006939T5 (de) * 2017-01-27 2019-10-10 Mitsubishi Electric Corporation Relais und pakettransferverfahren
US10432536B1 (en) * 2017-12-11 2019-10-01 Xilinx, Inc. Systems and methods for policing streams in a network
JP6933815B2 (ja) * 2018-08-27 2021-09-08 日本電信電話株式会社 通信制御システム及び通信制御方法
JP7165622B2 (ja) * 2019-05-20 2022-11-04 ルネサスエレクトロニクス株式会社 無線通信装置および無線通信システム
US11206568B2 (en) * 2019-09-19 2021-12-21 Realtek Semiconductor Corporation Router and routing method
KR102626211B1 (ko) * 2019-12-02 2024-01-16 디알더블유 테크놀로지스, 엘엘씨 연속 대역폭 제어를 사용하는 레이턴시 크리티컬 서비스 품질을 위한 시스템 및 방법
CN114363267A (zh) * 2020-09-30 2022-04-15 华为技术有限公司 一种队列调度方法及装置

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5063562A (en) 1990-05-23 1991-11-05 International Business Machines Corporation Flow control for high speed networks
JPH0779252A (ja) * 1993-09-08 1995-03-20 Fujitsu Ltd パケット出力制御方式
JP2000295281A (ja) 1999-04-05 2000-10-20 Sumitomo Electric Ind Ltd マルチキャストパケットのフロー制御装置および方法
JP3592586B2 (ja) * 1999-07-26 2004-11-24 日本電信電話株式会社 競合制御装置
JP3683133B2 (ja) 1999-08-17 2005-08-17 日本電気株式会社 パケットスケジューリング装置
JP3566165B2 (ja) * 2000-02-09 2004-09-15 日本電信電話株式会社 競合制御方法及び装置
JP3872716B2 (ja) * 2002-04-30 2007-01-24 富士通株式会社 パケット出力制御装置
JP4118757B2 (ja) 2003-07-10 2008-07-16 三菱電機株式会社 重み付け優先制御方法
US20050047425A1 (en) 2003-09-03 2005-03-03 Yonghe Liu Hierarchical scheduling for communications systems
US7916638B2 (en) * 2003-12-24 2011-03-29 Alcatel Lucent Time-independent deficit round robin method and system
JP4409999B2 (ja) * 2004-03-16 2010-02-03 富士通株式会社 多重化パケット転送装置
JP2005286383A (ja) 2004-03-26 2005-10-13 Fujitsu Ltd 帯域制御方法及びそれを用いたパケット処理装置
US7304944B2 (en) 2004-05-03 2007-12-04 Lucent Technologies Inc. Unified scheduling and queueing architecture for a multiservice switch
US20070121499A1 (en) 2005-11-28 2007-05-31 Subhasis Pal Method of and system for physically distributed, logically shared, and data slice-synchronized shared memory switching
JP4648833B2 (ja) * 2005-12-28 2011-03-09 富士通株式会社 帯域管理装置
US7619970B2 (en) 2006-04-27 2009-11-17 Dune Semiconductor Ltd. Method, device and system of scheduling data transport over a fabric
US9015019B1 (en) 2006-11-08 2015-04-21 Nextel Communications Inc. Radio access network simulator
JP4894563B2 (ja) 2007-03-07 2012-03-14 日本電気株式会社 通信装置
JP5428203B2 (ja) * 2008-05-30 2014-02-26 富士通株式会社 データ出力装置および通信装置ならびにスイッチ装置
JP5307745B2 (ja) * 2010-02-08 2013-10-02 日本電信電話株式会社 トラヒック制御システムと方法およびプログラムならびに通信中継装置

Also Published As

Publication number Publication date
JP2014135581A (ja) 2014-07-24
US9608927B2 (en) 2017-03-28
US20140192819A1 (en) 2014-07-10

Similar Documents

Publication Publication Date Title
JP6036310B2 (ja) パケット交換装置、伝送装置、及びパケットスケジューリング方法
US9240953B2 (en) Systems and methods for managing traffic in a network using dynamic scheduling priorities
US8520522B1 (en) Transmit-buffer management for priority-based flow control
US6882642B1 (en) Method and apparatus for input rate regulation associated with a packet processing pipeline
US6934250B1 (en) Method and apparatus for an output packet organizer
US7616567B2 (en) Shaping apparatus, communication node and flow control method for controlling bandwidth of variable length frames
US7027457B1 (en) Method and apparatus for providing differentiated Quality-of-Service guarantees in scalable packet switches
US6594234B1 (en) System and method for scheduling traffic for different classes of service
JP3386117B2 (ja) マルチレイヤクラス識別通信装置と通信装置
US8248930B2 (en) Method and apparatus for a network queuing engine and congestion management gateway
US7948896B2 (en) Weighted-fair-queuing relative bandwidth sharing
US9722942B2 (en) Communication device and packet scheduling method
US9197570B2 (en) Congestion control in packet switches
JP2002232470A (ja) スケジューリング装置
AU2002339349B2 (en) Distributed transmission of traffic flows in communication networks
JP2017063388A (ja) 帯域制御装置及び帯域制御システム
US8228797B1 (en) System and method for providing optimum bandwidth utilization
US8879578B2 (en) Reducing store and forward delay in distributed systems
JP2009290297A (ja) 通信装置および通信装置の制御方法
US7619971B1 (en) Methods, systems, and computer program products for allocating excess bandwidth of an output among network users
JP2017041807A (ja) 帯域制御装置及び帯域制御方法
EP2063580B1 (en) Low complexity scheduler with generalized processor sharing GPS like scheduling performance
KR20120055947A (ko) 가입자 인지 플로우별 QoS 제공 방법 및 장치
JP6241128B2 (ja) 通信装置及びパケットスケジューリング方法
CN114448903A (zh) 一种报文处理方法、装置和通信设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150903

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160706

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160726

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160909

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161004

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161017

R150 Certificate of patent or registration of utility model

Ref document number: 6036310

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees