JP4032027B2 - パケットベースのコンピュータネットワークにおいてレートシェーピングを実現する方法及びシステム - Google Patents

パケットベースのコンピュータネットワークにおいてレートシェーピングを実現する方法及びシステム Download PDF

Info

Publication number
JP4032027B2
JP4032027B2 JP2003550030A JP2003550030A JP4032027B2 JP 4032027 B2 JP4032027 B2 JP 4032027B2 JP 2003550030 A JP2003550030 A JP 2003550030A JP 2003550030 A JP2003550030 A JP 2003550030A JP 4032027 B2 JP4032027 B2 JP 4032027B2
Authority
JP
Japan
Prior art keywords
rate
current
packet
residue
buffer
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
JP2003550030A
Other languages
English (en)
Other versions
JP2005512365A5 (ja
JP2005512365A (ja
Inventor
ローダ サンディープ
アートレッシュ ディーパック
Original Assignee
リバーストン ネットワークス インコーポレーテッド
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 リバーストン ネットワークス インコーポレーテッド filed Critical リバーストン ネットワークス インコーポレーテッド
Publication of JP2005512365A publication Critical patent/JP2005512365A/ja
Publication of JP2005512365A5 publication Critical patent/JP2005512365A5/ja
Application granted granted Critical
Publication of JP4032027B2 publication Critical patent/JP4032027B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/10Flow control; Congestion control
    • H04L47/22Traffic shaping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0002Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/0262Arrangements for detecting the data rate of an incoming signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/22Traffic shaping
    • H04L47/225Determination of shaping rate, e.g. using a moving window
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Power Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、パケットベースのコンピュータネットワークに関し、より詳細には、パケットベースのネットワークにおけるトラフィックレートの制御に関する。
パケットベースのネットワークは、データをバースト伝送するものとして知られている。バースト型のトラフィックは、ネットワーク内に混乱を生じさせ、入力バッファが一杯になった際にパケットがドロップする可能性がある。ネットワークのパフォーマンスを改善し、サービス品質(QoS)を保証するためには、ネットワーク内の多くの場所においてトラフィックの流れの、特定の所望レートへの制御を可能にすることが必要である。トラフィックの流れを制御するための2つの技術は、一般にレートシェーピングとレート制限に関連している。レートシェーピングは、所与のアルゴリズムに従って、ある場所に到達したパケットをバッファし、該バッファを離れるパケットの流れを制御することで所望のレートを満たす。パケットはバッファされるので、パケットのバーストを吸収した後に、制御された方法でディスパッチできるために、入力パケットのドロップが生じることがない。レート制御では、ある場所に入力されたパケットのレートを測定し、次に、所望レートを超過して到達したパケットのドロップを実施する。
レートシェーピング又はレート制限を達成するために使用できるいくつかの共通のアルゴリズムには、既知のリーキー・バケット・アルゴリズムとトークン・バケット・アルゴリズムが含まれる。レートシェーピングを達成するためのリーキー・バケット・アルゴリズムの使用では、入力パケットをバッファした後に、該バッファから、一定のレート、すなわちリークレート(例えば、バイト/秒において測定)にて、パケットをディスパッチする。たとえば、サイズCのパケット(つまり、バイトで表される)が受信されると、C/リークレートの期間中はバッファ内に保持され、その後、バッファからディスパッチされる。バッファが空状態にある間は、リークレートで表される伝送容量は使用されず、後続のパケットのバーストのために累積されることもない。したがって、ノートラフィック期間後に、新規のパケットのバーストがバッファ内に到達すると、この新規のパケットはやはりバッファされ、リークレートにてディスパッチされる。この技術は、パケットベースのネットワーク・トラフィックにバースト型性質の要因となる柔軟性を与えるものではない。
トークン・バケット・アルゴリズムの使用には、一定レートでのバケットへのビット値(つまり、1,000バイト、50セル等)の割り当てと、必須の数のビット、バイト、セルがバケット内に累積されている場合のみにおける、バッファからのパケットのディスパッチの許可が含まれる。ノートラフィック期間中には、ビットが、一定レートにてバケット内に累積し続け、後続のトラフィックのバーストが、この累積したビットを使用することができる。この技術は、ネットワークのバースト型性質の要因である柔軟性を提供するが、ノートラフィック期間中にバケットが過剰に累積した場合には、後続のパケット・バーストがシェーピングされない可能性がある。許可可能なバーストのサイズは、バケット内に累積できるビット数に最大値を設定することで制限することができるが、バケットの最大値は、大型のパケットがバッファ内にトラップされることを防止するために、少なくとも予想される最大のパケットでなくてはならない。予想される最大サイズのパケットの最大バケットサイズを設定する上での欠点は、比較的小型のパケットのバーストの多くが、シェーピングされないまま残ってしまうことである。
レートシェーピング又はレート制限に使用できる別のアルゴリズムには、ある場所においてカレントトラフィックレートを計算し、カレントレートを所望レートと比較して、後述のパケットをディスパッチすべきか否かの決定を行うことが含まれる。アルゴリズムによれば、カレントレートが所望レート未満である場合には、パケットの流れが許可され、また、カレントレートが所望レートよりも大きい場合には、パケットの流れが許可されない。レートシェーピングに使用されるこのような既知のアルゴリズムは、指数加重移動平均(EWMA)アルゴリズムと呼ばれる。EWMAアルゴリズムの一例は次式で表すことができる。
Current_RateN=(1−Gain)・Current_RateN−1+Gain・BytesN
ここで、tN+1=t+Δt
この場合、Current_RateNは、N番目のサンプリング・インターバルにおけるEWMAであり、Current_RateN−1は、N−1番目のサンプリング・インターバルにおけるEWMAであり、BytesNは、N番目のサンプリング・インターバル中にディスパッチされたバイト数であり、各サンプリング・インターバルはΔtの期間を有する。Gainが、本質的に低パスフィルタ動作であるものの時間定数(つまり周波数応答)を制御する。バッファからのパケットのディスパッチに使用する際に、Current_RateNが事前定義した所望レート(Desired_Rateと呼ばれる)よりも高い場合には、パケットはディスパッチされない。Current_RateNがDesired_Rate未満である場合には、パケットはディスパッチされる。バッファからのパケットのディスパッチを制御するアルゴリズムは、従来技術において次式で表される。
If(Current_RateN>Desired_Rate)
No packets dispatched
else
Packets dispatched
図1は、バッファがパケットで完全にロードされた状態にあるレートシェーピング・システムにおける上述のEWMAアルゴリズムを適用した結果生じた時間(Δt単位)に対する、トラフィック104のカレントレートの例証的なグラフを示す。最初の時間tにて、トラフィックのバーストがディスパッチされ、EWMAとして計算されたカレントレートが所望レートを超えて上昇するが、この場合、所望レートを水平な破線106で示している。カレントレートが所望レートよりも高い限り、トラフィックレートはディスパッチされず、また、カレントレートの安定性が低下する。カレントレートが所望レート(つまり、時間t)未満にまで低下すると、新規のトラフィックのバーストがディスパッチされ、カレントレートが再び所望レートよりも上昇する。図1に示すように、完全にロードされた状態のシステムでは、トラフィックのカレントレートのほぼ全体が所望レートを上回るが、これは、カレントレートが所望レート未満に低下する瞬間により多くのパケットがディスパッチされるためである。カレントレートのほぼ全体が所望レートを上回っているため、完全なローディングの期間にかけて取得される伝送レートが所望レートよりも高くなり、この場合、取得されるレートは、ビットをディスパッチした時間で割った、ディスパッチされた総ビット数として計算される。例えば、図1では、完全にローディングした状態のシステムにおいて、時間t〜tにかけて取得されたレート108は所望レートよりも高い。理想的には、取得されたレートは所望レートと等しくなければならない。
特定のネットワーク・トラフィックの所望レートへの制御を可能にする必要性に鑑み、また、従来技術のレートシェーピング・アルゴリズム及びレート制限・アルゴリズムの欠点に鑑み、パケットベースのトラフィックレートを効率的に制御することが可能な、柔軟で、特にハードウェア内での実現が容易なアルゴリズムが必要である。
パケットベースのトラフィックの流れを、所望レートを満たすべく制御する方法及びシステムでは、リンク上にあるパケットベースのトラフィックのカレントレートを、移動平均として計算し、算出したカレントレートと所望レートの間の総エラー数を計算し、算出した総エラー数に応じて、パケットを流すことが可能であるか否かを決定する。ある実施形態では、カレントレートと所望レートの間の総エラー数がゼロ未満、又はゼロと等しい場合には、バッファからリンク上にパケットがディスパッチされ、総エラー数がゼロよりも大きい場合には、パケットがバッファ内に保持される。カレントレートと所望レートの間の総エラー数に応じてパケットの流れが制御されるため、たとえバースト型のトラフィック環境においてでも、取得するトラフィックのレートが所望レートに接近して維持される。
本発明の一実施形態では、総エラー数を閾値と比較して、パケットの流れを許可するか否かを決定する。総エラー数が閾値未満である場合には、パケットの流れが許可され、総エラー数が閾値よりも大きい場合には、パケットの流れは許可されない。ある実施形態では、閾値はゼロであり、総エラー数がゼロ未満、又はゼロと等しい場合には、パケットの流れが許可される。別の実施形態では、総エラー数が、取得されるトラフィックのレートが所望レート未満であることを示す場合には、パケットの流れが許可され、総エラー数が、取得したトラフィックのレートが所望レートよりも高いことを示す場合には、パケットの流れは許可されない。
カレントレートに最小値を確立して、ノートラフィック期間後に流れを許可されたバーストの大きさを制御することができる。カレントレートが最小値未満の場合には、算出したカレントレートを最小値に調整する。同様に、総エラー数に最小値を確立することができ、総エラー数がこの最小値未満である場合には、算出した総エラー数が該最小値に調整される。この両方の技術は、静寂期間から「借りる」ことのできる帯域幅の量を制御するものである。詳細には、後出の(2番目の)技術は、負の留数が大量に累積してしまうことを防止する。
ある実施形態では、カレントレート及び総エラー数を計算し、パケットを流すことができるか否かを決定する工程が各サイクル毎に繰り返され、この場合、Δt毎に1サイクルが発生する。
ある実施形態では、カレントレートが次式のとおり計算される。
Current_Rate=Previous_Rate+(W・C−W・Previous_Rate)
この場合、Cはカレントサイクル中にディスパッチされたビット数を表し、WとWは重量である。上記の公式を使用する場合には、次の計算サイクルのPrevious_Rateを、一つ前の計算サイクルで算出したCurrent_Rateに設定することができる。ある実施形態では、WはN及びΔtの関数であり、この場合、Δtはサンプリング・インターバルであり、Nはサンプリング・インターバルの定数である。より詳細には、WはW=1/(N・Δt)と定義できる。ある実施形態では、WはNの関数である。より詳細には、WはW=1/Nと定義できる。
上記のレート公式を使用する場合、Initial_Rateを確立し、また、Current_RateがInitial_Rate未満に低下した場合に、Current_RateをInitial_Rateに調整することで、トラフィック・バーストの大きさを制御することが可能である。
総エラー数は次式で計算することができる。
Current_Error=Previous_Error+(Current_Rate−Desired_Rate)
この場合、Current_Rateは上記の公式に従って計算される。パケット・バーストの大きさは、Current_Errorに最小閾値を確立し、また、Current_Errorが該閾値未満に低下した場合に、Current_Errorを該閾値に調整することで制御できる。上記のエラー表式を用いる場合、次の計算サイクルのPrevious_Errorを、1つ前の計算サイクルで算出したCurrent_Errorに設定する。ある実施形態では、Current_Errorがゼロ未満、又はゼロと等しい場合に、パケットの流れは許可され、Current_Errorがゼロよりも大きい場合に、パケットの流れは許可されない。本発明は、パケットベースのトラフィックの流れを制御する方法及びシステムにおいて実現することができる。この方法及びシステムは、レートシェーピング又はレート制限に使用することができ、また、ユーザが提供したInitial_Rate、Desired_Rate、N、Δtの入力パラメータを調整することで、アルゴリズムのパフォーマンス特徴を容易に調整することが可能である。
さらに本発明は、レートシェーピングに特化した方法において実現可能であり、この場合、算出したカレントレートと所望レート間の算出した総エラー数に応じて、バッファからパケットがディスパッチされる。
本発明のこれ以外の態様及び利点は、添付の図面と連携した、本発明の原理を例証の方法で示している、これ以降の詳細な記述によって明白となる。
図1は、従来技術に従って、バッファをパケットで完全にロードした状態のレートシェーピング・システムにおいて、EWMAアルゴリズムを適用した結果得られたΔt単位の時間に対する、トラフィックレートの例証的なグラフを示す。
図2は、本発明のある実施形態に従ってレートシェーピング・アルゴリズムを実現するレートシェーピング・システムを示す。
図3(a)は、本発明のある実施形態に従ってレートシェーピング・アルゴリズムの実現から生成されたトラフィックプロファイルのグラフを示す。
図3(b)は、算出したカレントレートと、図3(a)から得た所望レートの間の総エラー数のグラフを示す。
図3(c)は、算出したカレントレートと、図3(b)から得た所望レートの間の総エラー数に応じて生成されたスイッチ制御信号のグラフを示す。
図4は、本発明のある実施形態に従って、パケットベースのトラフィックのフローレートを制御して、所望レートを満たすためのプロセスフロー線図を示す。
図5(a)は、図4に示したレートシェーピング・アルゴリズムを用いて生成した未調整のレートプロファイルのグラフを示しており、本発明の別の実施形態に従って調整したレートプロファイルの一部分を含んでいる。
図5(b)は、算出したレートと、図5(a)のレートプロファイルから得た所望レートの間の未調整の総エラー数を示すグラフであり、本発明の別の実施形態に従って調整された総エラー数の一部分を含んでいる。
図6は、本発明の別の実施形態に従ってノートラフィックの期間に関連して変更した所望レートを満たすために、パケットベースのトラフィックのフローレートを制御するプロセスフロー線図を示す。
図7は、同一の出力リンクに接続し、バッファ固有のスイッチにより制御された2個のバッファの例証的な実施形態を示し、この場合、本発明の実施形態に従って、他のバッファが未使用の帯域幅を使用できるようにするために、図4又は図6からのレートシェーピング・アルゴリズムの複数の例が実現される。
図8は、本発明のある実施形態に従って、使用可能な帯域幅を共用できるようにするために、図7のセレクタのうち1個によって実現される論理の例証的なマトリックスを示す
図9は、QoSシステムのある実施形態を示し、この場合、図4又は図6のレートシェーピング・アルゴリズムを利用して、本発明のある実施形態に従って複数のバッファからパケットをディスパッチする。
所望のレートを満たすべく、パケットベースのトラフィックの流れを制御する方法及びシステムは、リンク上にあるパケットベースのトラフィックのカレントレートを移動平均として計算し、算出したカレントレートと所望レートの間の総エラー数を計算し、算出した総エラー数に応じて、パケットが流れることが可能であるか否かを決定する。ある実施形態では、カレントレートと所望レートの間の総エラー数がゼロ未満又はゼロと等しい場合に、バッファからリンク上にパケットがディスパッチされ、また、総エラー数がゼロよりも大きい場合には、パケットがバッファ内に保持される。総エラー数に応じて、カレントレートと所望レートの間でパケットの流れが制御されるため、たとえバースト型のトラフィック環境においても、取得したトラフィックのレートは所望レート付近に維持される。
図2は、本発明の焦点であるレートシェーピング・アルゴリズムの実現に使用することができるレートシェーピング・システムの例を示す。レートシェーピング・システムは、バッファ112、スイッチ114、レートシェーピング論理116を含む。バッファは、入力リンク118上の入力パケットを受信し、これらのパケットが出力リンク120にディスパッチされるまで、これらのパケットをバッファする。スイッチは、バッファと出力リンクの間のゲートウェイである。また、スイッチは、レートシェーピング論理によって制御され、このレートシェーピング論理は、以下に示すようにレートシェーピング・アルゴリズムを実現する。レートシェーピング・アルゴリズムの実施形態では、4個のフィールド(Initial_Rate、Desired_Rate、Δt、N)内の初期情報を、ユーザ定義の入力パラメータとして、レートシェーピング論理に提供する必要がある。フィールドのInitial_Rate,Desired_Rate,Δt、Nについては以降で定義する。動作中に、レートシェーピング論理が、出力リンクに関連した実伝送情報Cを受信し、制御信号(Switch_Control)をスイッチに出力する。レートシェーピング論理により生成された制御信号によって、スイッチがオン状態になることで(既にオン状態でない場合)、バッファからパケットがディスパッチされるか、又は、スイッチがオフ状態になることで(既にオフ状態でない場合)、パケットがバッファ内に保持される。図2中では、スイッチは、バッファからパケットをディスパッチするための機構として示されているが、これ以外の機構を使用してバッファからパケットをディスパッチすることも可能である。ここで定義しているように、入力リンクと出力リンクは、集積回路上のバス、集積基板上のバス、また、ワイヤ、光ファイバのような媒体、2個のネットワーク装置を接続するRF信号、あるいは、パケット化した情報の通信に使用するこれ以外のリンクを実装することができる。さらに、入力リンクと出力リンクは、上述したリンクの任意の組み合わせを実装することが可能である。
本発明のアルゴリズムを実行する主要なステップのうちの1つでは、パケットベースのトラフィックのカレントレートを、移動平均として計算する。パケットベースのトラフィックのカレントレートを、移動平均として計算する技術については以降で示しており、その後、算出したカレントレートと所望レート間の総エラー数を計算する技術についても記述している。その後、図3〜図9を参照しながら、レートシェーピング・アルゴリズムの実施形態についてより詳細に記述する。
所与の期間Tにおける、パケットベースのトラフィックのレート(つまり、ビット/秒で表示するレート)を次式で表すことができる。
Figure 0004032027
この場合、ΣCは、時間T中に伝送された総ビット数である。サンプリングした、Nサンプリング・インターバルのドメインでは、レートを次式で表すことができる。
Figure 0004032027
この場合、Δtはサンプリング・インターバルであり、Nは、レートを計算するサンプリング・インターバルの数である。これにより、N番目のインターバルに先行するサンプリング・インターバルに関した次式が誘導される。
Figure 0004032027
この後に、サンプリング・インターバル0〜Nの最中に伝送された総ビット数を次式で表すことができ、
Figure 0004032027
上述のRateとRateN−1を使用して置換し、
Rate・N・Δt=RateN−1・(N−1)・Δt+C
したがって、Rateを次式のとおり帰納的に表すことができ、
Figure 0004032027
又は、
Rate=RateN−1+Wa・C−W・RateN−1
この場合、重量W及びWが以下のとおり定義され、
Figure 0004032027
及び
Figure 0004032027
上式においてNは変数であるが、Nを定数値に設定して、レート計算を単純化することができる。ある実施形態では、Nは、重量W、Wを計算するために、定数値Nに設定されるため:
Figure 0004032027
及び
Figure 0004032027
この場合、Nは、サンプリング・インターバルの一定数を表す。レート計算を次式のとおり表すことができる:
Current_Rate=Previous_Rate+[W・C−W・Previous_Rate]
この場合、Current_RateがRateに関連し、Previous_RateがRateN−1に関連し、W及びWがNを用いて計算され、Cが、最新のサンプリング・インターバルの最中に伝送されたビット数に関連した実伝送情報である。
図2の実施形態では、Cは、1つ前のサンプリング・インターバルにおいてシステムの出力リンク120にディスパッチされたビットの実数を表す。図2では、論理ライン122は、レートシェーピング論理に供給される出力リンクに関連した実伝送情報を表す。図2中では、論理ライン122は出力リンクと接続しているが、実伝送情報は、様々な技術によってレートシェーピング論理に供給することができ、どの技術を使用するかは本発明にとって重要ではない。たとえば、実伝送情報をバッファから供給することができる。
アルゴリズムを実行する上でのこれ以外の主要段階には、算出したカレントレートと所望レートにおける間の総エラー数の計算が含まれる。この説明全体をとおして、算出したカレントレートと所望レートの間のエラーは「留数」と呼ばれるが、「エラー」と「留数」という用語は相互交換可能であることが理解されるべきである。Nサンプリング・インターバルのサンプリングしたドメインにおいて、N番目のサンプリング・インターバルにおける瞬間留数は、
Residue=Rate−Desired_Rate
と表される。
N番目のサンプリング・インターバルにおける総留数は、ここでは次式のとおり表される。
Figure 0004032027
ここから、N番目のサンプリング・インターバルの前に生じるサンプリング・インターバルについて次式が導かれ、
Figure 0004032027
したがって、N番目のサンプリング・インターバルにおける総留数も、前のN−1サンプリング・インターバルにおける総留数と、N番目のサンプリング・インターバルにおける瞬間留数の合計に関連して表すことができ、
Figure 0004032027
Residue=Rate−Desired_Rateで置換することにより、次式が得られ、
Figure 0004032027
したがって、N番目のサンプリング・インターバルにおける総留数を、カレント留数と以前の留数に関連して、次式で表すことができ、
Current_Residue=Previous_Residue+(Current_Rate−Desired_Rate)
この場合、Current_Rateは上述のように計算され、Previous_Residueは最後のサンプリング・インターバルにおける総留数に関連し、Desired_Rateはユーザ入力として得られる。
レートシェーピングへのアルゴリズムの使用には、各サンプリング・インターバル、つまり、各Δt毎のCurrent_RateとCurrent_Residueを計算し、次に、Current_Residueの値に基づいてスイッチ制御信号を生成することが含まれる。ある実施形態では、Current_Residueがゼロ未満又はゼロと等しい場合には、スイッチにパケット(すなわち「1」)のディスパッチを生じさせる制御信号が生成され、また、Current_Residueがゼロよりも大きい場合には、スイッチにパケット(すなわち「0」)の保持を生じさせる制御信号が生成される。総留数が、取得したレートが現在、所望レートと等しい、又は所望レートよりも低いことを示すために、Current_Residueがゼロ未満又はゼロと等しい場合にパケットがディスパッチされ、また反対に、総留数が、取得したレートが、現在、所望レートよりも低いことを示すために、Current_Residueがゼロよりも大きい場合にはパケットが保持される。このアルゴリズムを使用することで、長時間にわたり、パケットトラフィックの取得したレートが所望レートに接近する。この実施形態では、ゼロの留数値は、パケットのディスパッチとパケットの保持の間の臨界値であるが、別の実施形態では、この値を、ゼロ以外のある値に数学的に操作することができる。
ある実施形態では、レートシェーピング・アルゴリズムがサイクル実行され、この場合、各サイクルは、サンプリング・インターバルと同一である時間Δtにまたがる。新規のサイクルを開始すると、Previous_Rate及びPrevious_Residueの値が更新されて、カレント値が反映される。詳細には、先行のサイクルで算出したCurrent_RateがPrevious_Rateに使用され、また、この先行のサイクルで算出したCurrent_ResidueがPrevious_Residueに使用される。全体のレートシェーピング・アルゴリズムは、例えば以下に示す擬似コードで表すことができる:すなわち、
//Rate Shaping Algorithm:Executes every Δt.
//PartI:Update Rate and Residue:
Current_Rate=Previous_Rate+W・C−W・Previous_Rate;
Current_Residue=Previous_Residue+(Current_Rate−Desired_Rate);

//PartII:Update the Switch:
If(Current_Residue<=0)Switch_Control=1;
else Switch_Control=0;

Previous_Rate=Current_Rate;
Previous_Residue=Current_Residue;
図3(a)、図3(b)、図3(c)は、上述したレートシェーピングのアルゴリズムの実現から得た例証的な結果を表す同期したグラフの一連の時間を示す。図3(a)は、上述のアルゴリズムを実現して生成されたレートプロファイルのグラフである。このグラフは、パケットトラフィックの所望レート306に関連する時間(Δtの増分における)に対する移動平均として計算した、パケットトラフィックのCurrent_Rate304の例を示す。図3(b)は、図3(a)のレートプロファイルから得た留数328の合計のグラフであり、図3(c)は、総留数に応じて、レートシェーピング・アルゴリズムから生成されたスイッチ制御信号330のグラフである。この例では、「1」のスイッチ制御信号がパケットのディスパッチを生じさせ、また、「0」のスイッチ制御信号がパケットの保持を生じさせる。
図3(a)〜図3(c)の例証的な結果の記述において、アルゴリズムが時間tから開始し、同一の時間にパケットのバーストがバッファからディスパッチされると仮定する。時間tにてディスパッチされたパケットにより、Current_Rateが図3(a)に示すように急増する。時間tにおいて、Current_Rateが増加することで、Current_Residueがゼロから、ゼロよりも大きな何らかの値へと増加し、次にこれによって、スイッチ制御信号が「1」から「0」へ変わり、次に、残っている任意のバッファされたパケットが保持されるスイッチが新規のパケットをディスパッチしていないため、時間tと時間tの間のCurrent_Rateの下方傾斜によって、パケットトラフィックのCurrent_Rateが図3(a)に示すとおりに低下する。図3(b)に示したCurrent_Rateに応じて、Current_RateがDisired_Rateよりも高い限り、Current_Residueが増加し、また、一旦Current_RateがDesired_Rate未満になると、Current_Residueが低下する。上述したCurrent_Residue、Current_Rate、Disired_Rate間の関係から、Current_Residueの反応が得られる。Current_Residueがゼロ未満、又はゼロと等しくなる地点において、スイッチ制御信号が「0」から「1」へ変化し、これにより、パケットの別のバーストがバッファからディスパッチされる。例えば、時間tにおいて、Current_Residueはゼロと等しく、これにより、図3(c)に示すとおり、スイッチ制御信号が「0」から「1」に変更する。スイッチ制御信号が「1」になると、時間tにおけるCurrent_Rateで示すものと同様に、別のパケットのバーストが開放され、Current_Rateが急増する。図3(b)、図3(c)を参照すると、Current_Residueがゼロになるたびに、スイッチ制御信号が「0」から「1」に切り替わり、その後、Current_Residueがゼロよりも高くなると、再び「1」から「0」に切り替わる。この機構により、完全にロードされたシステムにおける全体平均トラフィックレートが所望レートに、又は所望レート付近に留まる。
図4は、上述のレートシェーピング・アルゴリズムを実行するためのプロセスフロー・ダイアグラムの実施形態を示す。第1サイクルが開始する前に、ステップ434において、レートシェーピング・アルゴリズムについてDesired_Rateの値及びΔtが設定される。Desired_Rateの値Nc、Δtの設定は、手作業でのユーザ入力、又は、より幅広いQoSシステムに応答して生成される自動入力が関連する。ステップ436の第1サイクルの開始時に、ステップ438にて、Previous_Rate及びPrevious_Residueがゼロに設定される。ステップ440にて、伝送情報Cが取得される。ステップ442にて、Current_Rateが、上述のように、提供された式を用いて計算される。Current_Rateの計算に使用する値には、Previous_Rate、C、W、Wが含まれる。ステップ444にて、Current_Rateを計算した後に、Current_Residueが、上述のとおり、提供された式を使用して計算される。Current_Residueの計算に使用する値には、Previous_Residue、Current_Rate、Desired_Rateが含まれる。次に、算出したCurrent_Residueを決定ポイント446にて使用して、パケットをディスパッチするべきか、保持するべきかを決定する。Current_Residueがゼロ未満、又はゼロと等しい場合には、ステップ448にて、パケットがディスパッチされ、また、Current_Residueがゼロよりも大きい場合には、ステップ450にて、パケットが保持される。ある実施形態では、パケットのディスパッチには、スイッチをオンにする制御信号の生成が含まれ、また、パケットの保持には、スイッチをオフにする制御信号の生成が含まれる。パケットをディスパッチするか、保持するかを決定した後に、決定ポイント452にて、サンプリング・インターバルΔtが満了している場合には、ステップ454にて次のサイクルが開始される。ステップ456では、次のサイクルを開始するために、前回のサイクルで算出したCurrent_Rateの値を、次のレート計算のためにPrevious_Rateとして使用し、前回のサイクルで算出したCurrent_Residueの値を、次のResidue計算のためにPrevious_Residueとして使用する。Previous_Rate及びPrevious_Residueの値の設定後に、伝送情報Cを取得し(ステップ440)、Current_Rateを計算し(ステップ442)、Current_Residueを計算し(ステップ444)、パケットをディスパッチするか、保持するかを決定する(決定ポイント446)処理が上述のとおり繰り返される。この処理は、Δt時間インターバル毎に連続的に繰り返される。


上述のアルゴリズムは、レートシェーピング・システムの入力バッファが完全にロードされた際に上手く働くが、レートシェーピング・アルゴリズムによって、ノートラフィックの期間がバーストに先行する場合に、レートシェーピングを実施しなくても、入力バーストをディスパッチすることが可能になる。ノートラフィックの期間が先行している場合には、バーストをレートシェーピング実行なしでディスパッチすることができるが、これは、ノートラフィックの期間により、比較的大きな負の留数が収集されるためである。Current_Residueがゼロ未満に維持される限り、上述したアルゴリズムの下で、大きな負の留数により、パケットのバーストをディスパッチすることが可能になる。ノートラフィック期間の後に、トラフィックの大きなバーストを防止するために、特定の状態において、Current_Rateの値とCurrent_Residueの値が、事前に確立された閾値に人工的に制御される。詳細には、ある実施形態において、Current_Rateは制御されるため、ここでInitial_Rateと呼ばれる事前に確立したレートよりも低くなることはできず、また、Current_Residueが制御されるため、ゼロよりも低くなることができない。Current_Rate及びCurrent_Residueが特定の閾値レベルよりも低くならないようにすることで、先行のノートラフィックの期間から「借りる」ことができる帯域の量が制御される。図5(a)、図5(b)は、ノートラフィックの期間によって生じた問題を示し、さらに、たとえノートラフィックの期間後でも、全てのパケットを確実にレートシェーピングするために、Current_Rate及びCurrent_Residueに実施される調整を示している。図5(a)は、レートシェーピング・アルゴリズムを使用して生成したレートプロファイルのグラフを示し、さらに、図5(b)は、図5(a)のレートプロファイルの結果得られた総留数の時間同期したグラフを示す。
図5(a)を参照すると、例証的な目的で、時間tにおける初回のトラフィックのバーストの後に、ノートラフィックの期間が続くと仮定する。人工的に調整しない限り、時間の経過と共に、算出したCurrent_Rate504がゼロに向かって低下する。最小値におけるCurrent_Rateを維持するために、算出したCurrent_RateがInitial_Rateを下回る場合には常に、Current_Rateが所定のInitial_Rate556に調整される。図5(a)は、算出したCurrent_RateがInitial_Rateを下回る際に常に、Current_Rateを所定のInitial_Rateに調整する方法を示す。
ある実施形態では、シミュレーションを使用して、Initial_Rateの値を求めている。このシミュレーションは、完全にパケットをロードしたシステム内で生じるCurrent_Rateの最小値を求めるために使用される。次に、この最小値がInitial_Rateとして確立される。ある実施形態では、シミュレーションが開始すると、Current_RateがDesired_Rateに初期化される。
図5(b)を参照すると、図5(a)中のCurrent_Rate504がDisired_Rate506を下回る際には常に、Current_Residue528が低下する。人工的に調整しない限り、Current_RateがDesired_Rateを下回っている間は、Current_Residueが不定に低下する。Current_Residueを最小値に維持するために、算出したCurrent_Residueがゼロ未満である際には常に、Current_Residueがゼロに調整される。図5(b)は、算出したCurrent_Residueがゼロ未満であったためにゼロに調整された、Current_Residueのある区間を示す。この実施形態では、Current_Residueがゼロの最小Current_Residueに調整されるが、Current_Residueをこれ以外の最小閾値に調整することも可能である。
更新したレートシェーピング・アルゴリズムの擬似コードは以下のとおりである:
//Modified Rate Shaping Algorithm:Executes every Δt.
//PartI:Update Rate and Residue:
Current_Rate=Previous_Rate+Wa・C−Wb・Previous_Rate;
If(Current_Rate<Initial_Rate)Current_Rate=Initial_Rate;
Current_Residue=Previous_Residue+(Current_Rate−Desired_Rate);
If(Current_Residue<0)Current_Residue=0;

//PartII:Update the Switch:
If(Current_Residue=0)Switch_Control=1;
else Switch_Control=0;

Previous_Rate=Current_Rate;
Previous_Residue=Current_Residue;
図6は、上述の変更を加えた、図4のレートシェーピング・アルゴリズムを実行するためのプロセスフロー・ダイアグラムを示す。このプロセスフロー・ダイアグラムは、以下を除いて、図4のプロセスフロー・ダイアグラムと類似しており;すなわち、ステップ634にて、他のパラメータに加えてInitial_Rateが確立され、追加のステップ660にて、Current_RateがInitial_Rate未満の場合、Current_RateがInitial_Rateに設定され、追加のステップ662にて、Current_Residueがゼロ未満である場合、Current_Residueがゼロに設定され、また、決定ポイント646にて、Current_Residueがゼロと等しい場合に、パケットがディスパッチされ、Current_Residueがゼロよりも大きい場合に、パケットが保持される。
別の実施形態では、マルチバッファ・システムにおいて、上述のレートシェーピング・アルゴリズムを実現することができ、これにより、この使用可能な帯域幅を、同一リンクに接続している他のバッファが使用することができるようになる。詳細には、マルチバッファ・システムにより、第2バッファがパケットを全く保持していない場合(つまり、第2バッファが、その使用可能な帯域幅を十分に活用していない場合)に、第2バッファに割り当てられた帯域幅を第1バッファが借りられるようになる。図7は、共通の出力リンク764に接続し、バッファ固有のスイッチ714によって制御された2個のバッファ712(バッファ1、バッファ2)の例証的な実施形態を示す。各々のバッファ固有のスイッチは、バッファ固有のセレクタ766によって、2個のバッファ固有のレートシェーピング装置716、717に接続している。バッファ固有のレートシェーピング装置は、上述したレートシェーピング・アルゴリズムの2つのバージョンを実現する。破線768で示すように、各セレクタが、他のバッファからバッファ状態情報を受信し、また、ライン722で示すように、各レートシェーピング装置が、各々のバッファに関連した実伝送情報を受信する。
図7の実施形態では、バッファ1からのディスパッチのレートを所望レートに制御する必要があり、また、共通の出力リンク764上に未使用で使用可能な帯域幅が存在する場合、ディスパッチのレートを最大レートに制御できると仮定している。これはバッファ2についても同様である。各バッファにて所望のレートシェーピングを達成するには、2個のレートシェーピング装置を各バッファに関連付ける。バッファ1を参照すると、一方のレートシェーピング装置RS1_Desired716が、バッファ1を所望のレートにレートシェーピングするように設定され(つまり、アルゴリズム内のDesired_Rateフィールドが所望レートに設定され)、他方のレートシェーピング装置、RS1_Maximum717が、バッファ1を最大レートにレートシェーピングするように設定される(つまり、アルゴリズム内のDesired_Rateフィールドが最大レートに設定される。同様に、バッファ2を参照すると、RS2_Desired716が、バッファ2を所望のレートにレートシェーピングするように設定され(つまり、アルゴリズム内のDesired_Rateフィールドが所望のレートに設定され)、他方のレートシェーピング装置RS2_Maximum717が、バッファ2を最大レートにレートシェーピングするように設定される(つまり、アルゴリズム内のDesired_Rateフィールドが最大レートに設定される)。図7の実施形態では、各バッファ内にトラフィックがある場合に、各バッファが、レートシェーピング装置RS1_Desired及びRS2_Desiredの各々によって、その所望レートに制御される。しかしながら、バッファのうち1個がバッファ・トラフィックを含んでいない場合には、これ以外のバッファがその最大レートにまで上昇することが可能となる。
図7、図8を参照して、2個のレートシェーピング装置を実装したバッファ1のレートシェーピングについて例証的目的で説明する。図8は、バッファ1用のセレクタ766によって実現される、論理の例証的なマトリックス770を示す。RS1_Desired716からの制御信号出力が、バッファ1からのパケットのディスパッチが可能であることを表す「1」である場合には、セレクタが「1」の制御信号をスイッチに出力し、パケットがディスパッチされる。セレクタが、RS1_Maximum717の値に無関係に、及び、バッファ2内にパケットが含まれているか否かに関わらず、「1」の制御信号を出力する。RS1_Desiredから出力された制御信号が「0」で、RS1_Maximumから出力された制御信号が「0」である場合には、バッファ2内にパケットが含まれているか否かに関係なく、セレクタが「0」の制御信号をスイッチに出力する。RS1_Desiredから出力された制御信号が「0」であり、RS1_Maximumから出力された制御信号が「1」である場合には、セレクタが、パケットをディスパッチできるか否かを決定するために、バッファ2の状態に注目する。バッファ2内にパケットが含まれている場合には、セレクタが"0"の制御信号を出力し、バッファ1からパケットはディスパッチされない。バッファ1からパケットはディスパッチされないが、これは、バッファ2内のパケットのために確保された帯域幅が、他のバッファによって消費されてはならないためである。しかし、バッファ2内にパケットが含まれておらず、RS1_Maximumが「1」である場合には、スイッチ1用のセレクタが、「1」の制御信号をスイッチ1に出力し、バッファ1からパケットがディスパッチされる。バッファ2内にパケットが存在せず、RS1_Desiredが「0」に維持される限り、このバッファ1からのパケットのディスパッチがRS1_Maximumによって制御される。
図7を参照して説明したシステムを、2個よりも多いバッファの制御を含むようにスケーリングすることが可能である。このスケーリングしたシステムでは、各バッファ用のセレクタが、他のバッファ全てのバッファ状態、又は他のバッファの組み合わせのバッファ状態を監視し、このバッファ情報を使用して、指定した最高レートでのパケットのディスパッチが可能であるか否かが決定される。
上述したレートシェーピング・アルゴリズムは、複数のバッファの同時制御にも使用することができる。図9は、同じレートシェーピング論理制御が複数のバッファを制御するQoSシステムの実施形態を示す。QoSシステムは、パケット・クラシファイア972、バッファアクセス制御装置974、メモリ976、レートシェーピング論理916、スケジューラ978を含む。メモリは、バッファ固有のスイッチ914によって制御される複数のバッファ(つまりバッファ1〜M)を含んでいる。バッファ固有のスイッチの各々が、上述のようにレートシェーピング論理によって制御される。レートシェーピング論理は、対応する出力リンク920に関連した実伝送情報を受信し、また、この実伝送情報を使用して、レートシェーピング・アルゴリズムを実行し、スイッチ制御信号を生成する。
動作中に、クラシファイア972が、入力パケットをどのバッファに入れるべきかを決定する。パケットの分類が終わると、バッファアクセス制御装置974が、パケットをその適切なバッファに転送できるか否かを決定する。ある実施形態では、バッファアクセス制御装置が重み付けランダム早期検出(WRED)アルゴリズムを使用して、分類されたパケットを各々対応するバッファに転送するべきか否かを決定する。レートシェーピング論理916は、バッファしたパケットがスケジューラ978によって受信されたか否かを決定する。ある実施形態では、レートシェーピング論理が、各サイクル中に、各バッファについて、図6を参照して記述したステップを実行し、また、スイッチ制御信号(Switch_1_Control及びSwitch_M_Control)を各々対応するスイッチに出力する。スケジューラは、スイッチの状態に従ってパケットをディスパッチする。たとえば、パケットを、スイッチファブリックにかけて切り替えを実行するようにスケジュールすることができる。
ある実施形態では、図2〜図9を参照して記述したレートシェーピング・アルゴリズムをハードウェア内で実現する。上述したように、Current_Rateの計算には、2つの乗算演算が必要である。ハードウェア実現では、乗算演算は比較的多量のリソースを要し、また、ハードウェア実現のリソースの必要性を制限することが望ましい。乗算演算のリソースの必要性を減少させる1つの方法は、乗算演算をシフティングに減少させるというものである。2つの乗算演算をシフティングに減少したレートシェーピング・アルゴリズムのハードウェア実施形態を以下に記述する。
上記において、重量定数Waは1/(N・Δt)と定義されており、この場合、Nは時間インターバルの数である。ある実施形態において、Nを2の累乗となるように選択することが可能であり、Nは、2から213の間の(及びこれらを含む)2の累乗である。上述したように、アルゴリズムが各Δt時間インターバルを実行する。乗算演算をシフティングに減少させるために、時間インターバルΔtが、さらに、2の累乗、より詳細には2の負の累乗となるように選択される。ある実施形態では、時間インターバルΔtは、ハードウェア・クロック時間(又は期間)の関数であり、レートシェーピング・アルゴリズムによって制御されるバッファの個数である。ある好ましい実施形態では、Δtは、レートシェーピング論理(つまり、Δt>clock_time・number_of_buffers)によって制御されるバッファの個数を乗算したクロック時間よりも大きくなくてはならないため、各々のΔtの最中に、Current_Rate、Current_Residue、及びスイッチを、各バッファについて更新することができる。これにより、1個のシングルバッファについて、Current_Rate、Current_Residue、及びスイッチを更新するために、1つのクロック周期が必要であると仮定されることに留意すること。表1は、レートシェーピング論理によって制御されるバッファ数の関数として、また、クロック周期の関数として使用できる例証的なΔt値を提供する。この表はさらに、使用が可能な最小Δtと、また、2の負の累乗として選択したΔtとを含む。
Figure 0004032027
重量定数Wは1/(N・Δt)として定義される。定数Wraは:Wra=log(W)として定義することができ、また、1/(N・Δt)が2の累乗であり、1よりも大きい場合には、W・Cが次式のとおり減少する。
Wa・C≒(C<<Wra
したがって、この乗算演算が左シフト演算に減少する。
重量定数Wは1/Nと定義される。定数Wrbは:Wrb=log(W)と定義することができ、また、1/Nが2の累乗であり、1未満の場合には、Previous_Rate・Wが次式のとおり減少する。
Previous_Rate・W≒(Previous_Rate>>Wrb
したがって、乗算演算が右シフト演算に減少する。
このシフティングによってビットが損失されるため、計算の正確性が低下する可能性がある。正確性の低下を防止するために、固定点の計算が実現され、小数点以下のビット数がACCURACYとして参照される。レートシェーピング・アルゴリズムのハードウェア実現は例証的な目的で、擬似コードで以下のとおり表すことができる。
//Hardware Implementation of Rate Shaping Algorithm:Executes every Δt.
//PartI:Update Rate and Residue:
Current_Rate=Previous_Rate+((C<<ACCURACY)<<Wra)−(Previous_Rate>>Wrb);
If(Current_Rate<Initial_Rate)Current_Rate=Initial_Rate;
Current_Residue=Previous_Residue+(Current_Rate−Desired_Rate);

If(Current_Residue<0)Current_Residue=0;
//PartII:Update the Switch:
If(Current_Residue=0)Switch_Control=1;
else Switch_Control=0;

Previous_Rate=Current_Rate;
Previous_Residue=Current_Residue;
ある実施形態では、レートシェーピング・アルゴリズムは、変数長パケットを利用した環境、例えばイーサネット(登録商標名)環境において実現されるが、しかし、レートシェーピング・アルゴリズムは、固定長セル(又はパケット)を利用した環境、例えば非同期伝送モード(ATM)環境において実現することも可能である。
ここで実現されるアルゴリズムは、レートシェーピングを達成するために使用されるが、レート制限又は他のレート制御技術を達成するために、このアルゴリズムを使用することも可能である。レート制限のためにアルゴリズムを使用する場合には、Current_Residueが閾値(つまりゼロ)未満である際にパケットがドロップされ、また、Current_Residueが閾値よりも高い場合にはパケットが伝送される。
上述したアルゴリズムの実施形態では、カレントレートと所望レートの間の総エラー数が、提供された公式を用いて、特定の方法で計算される。しかし、カレントレートと所望レートの間の総エラー数は、この説明及び特許請求項に記述した本発明の範囲及び精神から逸脱せずに、多数の方法で計算できることが理解されるべきである。
レートシェーピング・アルゴリズムをハードウェアで実現する場合でも、ソフトウェアで実現する場合でも、単純に、ユーザ入力フィールド、Initial_Rate、Desired_Rate、Δt、及びNのいずれかを調整することにより、アルゴリズムのパフォーマンスを容易に調整することが可能である。Initial_Rateに関すれば、より低いInitial_Rateが、先行するノートラフィックの期間から「借りる」帯域幅を効率的に許容され、これにより、より大きなパケットのバーストが静寂の後に流れることが可能となる。Δtに関すれば、スイッチ更新とスイッチ更新の間が長いため、より大きなΔtが、トラフィック・プロファイルをよりバースト的に作成する傾向にある。Nに関すれば、Nの値が小さい程、算出したCurrent_Rateによる瞬間レートの追跡が接近し、これにより、応答時間がより高速化する。同様に、Nの値が大きくなる程、算出したCurrent_Rateによる瞬間レートの追跡が遠ざかり、これにより、応答時間が低速化する。
レートシェーピング・アルゴリズムは、スイッチがネットワーク内のノードを表すマクロレベルで、又は、スイッチが特定のバッファからのディスパッチ機能を制御するより低いレベルで、実現することができる。さらに、スイッチは、リンク上のパケットの流れを制御するあらゆる機構であってよい。
本発明の特定の実施形態を記述及び例証してきたが、本発明は、記述及び例証した部分の特定の形状及び配置に限定されるものではない。本発明は特許請求の範囲のみによって限定される。
従来技術に従って、バッファをパケットで完全にロードした状態のレートシェーピング・システムにおいて、EWMAアルゴリズムを適用した結果得られたΔt単位の時間に対する、トラフィックレートの例証的なグラフを示す図である。 本発明のある実施形態に従ってレートシェーピング・アルゴリズムを実現するレートシェーピング・システムを示す図である。 図3(a)は本発明のある実施形態に従ってレートシェーピング・アルゴリズムの実現から生成されたトラフィックプロファイルのグラフを示し、図3(b)は算出したカレントレートと図3(a)から得た所望レートの間の総エラー数のグラフを示し、図3(c)は算出したカレントレートと図3(b)から得た所望レートの間の総エラー数に応じて生成されたスイッチ制御信号のグラフを示す図である。 本発明のある実施形態に従って、パケットベースのトラフィックのフローレートを制御して、所望レートを満たすためのプロセスフロー線図を示す図である。 図5(a)は図4に示したレートシェーピング・アルゴリズムを用いて生成した未調整のレートプロファイルのグラフを示し、図5(b)は算出したレートと図5(a)のレートプロファイルから得た所望レートの間の未調整の総エラー数を示すグラフである。 本発明の別の実施形態に従ってノートラフィックの期間に関連して変更した所望レートを満たすために、パケットベースのトラフィックのフローレートを制御するプロセスフロー線図である。 同一の出力リンクに接続し、バッファ固有のスイッチにより制御された2個のバッファの例証的な実施形態を示す図である。 本発明のある実施形態に従って、使用可能な帯域幅を共用できるようにするために、図7のセレクタのうち1個によって実現される論理の例証的なマトリックスを示す図である。 QoSシステムのある実施形態を示す図である。

Claims (10)

  1. 所望レートを満たすべく、パケットベースのトラフィックの流れを制御する方法であって、
    リンク上にあるパケットベースのトラフィックのカレントレートを、重み付き移動平均として計算し;
    前記算出したカレントレートと前記所望レートの間の総エラー数を計算し;
    前記算出した総エラー数に応じて、パケットを流すことができるか否かを決定し;
    前記カレントレートが次のとおり計算されることを特徴とする方法:
    Current_Rate Previous_Rate +(W ・C−W Previous_Rate );
    この場合、Cはビット数、W 及びW は重量を表し、W =1/(N ・Δt)及びW =1/N であり、Δtはサンプリング・インターバル時間、N はサンプリング・インターバルの定数である。
  2. 前記パケットを流すことができるか否かの決定において、前記総エラー数がエラー閾値未満である場合にはパケットの流れを許可し、前記総エラー数が前記エラー閾値よりも高い場合にはパケットの流れを許可しない、請求項1に記載の方法。
  3. 前記パケットを流すことができるか否かの決定において、前記総エラー数が、取得したトラフィックのレートが所望レート未満であることを示す場合にはパケットの流れを許可し、前記総エラー数が、取得したトラフィックのレートが所望レートよりも高いことを示す場合にはパケットの流れを許可しない、請求項1に記載の方法。
  4. さらに、前記カレントレートの最小値を確立し、前記カレントレートが最小値未満である場合に前記カレントレートの値を調整する、請求項1に記載の方法。
  5. さらに、前記総エラー数の最小値を確立し、前記総エラー数が前記最小値未満である場合に前記総エラー数の値を調整する、請求項1に記載の方法。
  6. さらに、
    前記カレントレート及び前記総エラー数の最小値を確立し;
    前記カレントレートが前記カレントレートの前記最小値未満である場合に、前記カレントレートの値を調整し;
    前記総エラー数が前記総エラー数の前記最小値未満である場合に、前記総エラー数を調整する、請求項1に記載の方法。
  7. が2の累乗及びΔtが2の累乗である、請求項1に記載の方法。
  8. 前記総エラー数が、
    Current_Error=Previous_Error+(Current_Rate−Desired_Rate)
    として計算される、請求項1に記載の方法。
  9. 所望レートを満たすべく、入力リンクと出力リンクの間のパケットベースのトラフィックの流れを制御するシステムであって、
    前記入力リンクと前記出力リンクの間を接続するスイッチを備え、前記スイッチが、前記スイッチをオンにすると、前記入力リンクから前記出力リンクへのトラフィックの流れを許可し、前記スイッチをオフにすると、パケットの流れを許可せず;
    前記スイッチを制御するべく接続したレートシェーピング論理をさらに備え、前記レートシェーピング論理が:
    前記入力リンクと出力リンクのうちの一方上に流れるパケットベースのトラフィックのカレントレートを重み付き移動平均として計算する手段と;
    前記算出したカレントレートと前記所望レートの間の総エラー数を計算する手段と;
    前記算出した総エラー数に応じて、パケットを前記出力リンクに流すことができるか否かを決定する手段と;を含み、
    前記カレントレートが次のとおり計算されることを特徴とするシステム:
    Current_Rate Previous_Rate +(W ・C−W Previous_Rate );
    この場合、Cはビット数、W 及びW は重量を表し、W =1/(N ・Δt)及びW =1/N であり、Δtはサンプリング・インターバル時間、N はサンプリング・インターバルの定数である。
  10. が2の累乗及びΔtが2の累乗である、請求項9に記載のシステム。
JP2003550030A 2001-12-05 2002-12-05 パケットベースのコンピュータネットワークにおいてレートシェーピングを実現する方法及びシステム Expired - Fee Related JP4032027B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/007,409 US6798741B2 (en) 2001-12-05 2001-12-05 Method and system for rate shaping in packet-based computer networks
PCT/US2002/038751 WO2003048903A2 (en) 2001-12-05 2002-12-05 Rate shaping in packet-based computer network

Publications (3)

Publication Number Publication Date
JP2005512365A JP2005512365A (ja) 2005-04-28
JP2005512365A5 JP2005512365A5 (ja) 2006-01-05
JP4032027B2 true JP4032027B2 (ja) 2008-01-16

Family

ID=21725974

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003550030A Expired - Fee Related JP4032027B2 (ja) 2001-12-05 2002-12-05 パケットベースのコンピュータネットワークにおいてレートシェーピングを実現する方法及びシステム

Country Status (7)

Country Link
US (1) US6798741B2 (ja)
EP (1) EP1461627B1 (ja)
JP (1) JP4032027B2 (ja)
KR (1) KR100915185B1 (ja)
CN (1) CN100405778C (ja)
AU (1) AU2002362058A1 (ja)
WO (1) WO2003048903A2 (ja)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5048184B2 (ja) * 2001-01-26 2012-10-17 富士通株式会社 伝送レート監視装置および伝送レート監視方法
US7382793B1 (en) * 2002-01-17 2008-06-03 Juniper Networks, Inc. Systems and methods for determining the bandwidth used by a queue
US7352761B2 (en) * 2002-06-04 2008-04-01 Lucent Technologies Inc. Distributing unused allocated bandwidth using a borrow vector
US7310309B1 (en) * 2002-07-17 2007-12-18 Foundry Networks, Inc. Dynamic rate limiting adjustment
EP1416668B1 (en) * 2002-11-04 2009-04-22 Siemens Aktiengesellschaft Method and apparatus for achieving an optimal response time in a telecommunication system
US20040179479A1 (en) * 2003-03-13 2004-09-16 Alcatel Determination of average queue depth for RED (random early packet discard)
US7627675B2 (en) * 2003-05-01 2009-12-01 Cisco Technology, Inc. Methods and devices for regulating traffic on a network
US20060190998A1 (en) * 2005-02-17 2006-08-24 At&T Corp Determining firewall rules for reverse firewalls
US8788640B1 (en) 2005-08-16 2014-07-22 F5 Networks, Inc. Employing rate shaping class capacities and metrics to balance connections
US7995474B2 (en) * 2005-09-13 2011-08-09 International Business Machines Corporation Grid network throttle and load collector
US7853948B2 (en) * 2005-10-24 2010-12-14 International Business Machines Corporation Method and apparatus for scheduling grid jobs
US7831971B2 (en) * 2005-10-24 2010-11-09 International Business Machines Corporation Method and apparatus for presenting a visualization of processor capacity and network availability based on a grid computing system simulation
US20070118839A1 (en) * 2005-10-24 2007-05-24 Viktors Berstis Method and apparatus for grid project modeling language
US20070258445A1 (en) * 2006-05-02 2007-11-08 Harris Corporation Systems and methods for protocol filtering for quality of service
US7738377B1 (en) * 2006-05-22 2010-06-15 At&T Intellectual Property Ii, L.P. Method and apparatus for volumetric thresholding and alarming on internet protocol traffic
US8516153B2 (en) 2006-06-16 2013-08-20 Harris Corporation Method and system for network-independent QoS
US8730981B2 (en) 2006-06-20 2014-05-20 Harris Corporation Method and system for compression based quality of service
EP2036267B1 (en) 2006-06-22 2009-10-07 Xelerated AB A processor and a method for a processor
PL2033366T3 (pl) * 2006-06-26 2010-11-30 Ericsson Telefon Ab L M Węzeł sieciowy oraz sposób szybkiego monitorowania i pomiaru ruchu
US20080013559A1 (en) * 2006-07-14 2008-01-17 Smith Donald L Systems and methods for applying back-pressure for sequencing in quality of service
US8300653B2 (en) * 2006-07-31 2012-10-30 Harris Corporation Systems and methods for assured communications with quality of service
US8027254B2 (en) * 2006-08-16 2011-09-27 France Telecom Method of limiting bit rate in a telecommunications network
KR101007024B1 (ko) * 2007-02-01 2011-01-12 삼성전자주식회사 이동통신 시스템에서 서비스품질 트래픽 속도를 보장하기위한 장치 및 방법
TW200838215A (en) * 2007-03-15 2008-09-16 Univ Nat Central System device utilizing policy to manage network service
US8271715B2 (en) * 2008-03-31 2012-09-18 Intel Corporation Modular scalable PCI-Express implementation
US8908540B2 (en) * 2009-02-13 2014-12-09 Toshiba America Research, Inc. Efficient and loss tolerant method and mechanism for measuring available bandwidth
EP2550775A4 (en) * 2010-03-22 2013-11-06 Freescale Semiconductor Inc APPARATUS FOR MANAGING TOKEN BUCKET AND METHOD FOR MANAGING BUCKET BUCKET
JP5673321B2 (ja) * 2011-04-18 2015-02-18 富士通株式会社 伝送装置およびインタフェースカード
US8897301B2 (en) * 2012-03-14 2014-11-25 International Business Machines Corporation Multicast bandwidth multiplication for a unified distributed switch
US8953619B2 (en) 2012-03-14 2015-02-10 International Business Machines Corporation Dynamic optimization of a multicast tree hierarchy for a distributed switch
US8913620B2 (en) 2012-03-14 2014-12-16 International Business Machines Corporation Multicast traffic generation using hierarchical replication mechanisms for distributed switches
US8811406B2 (en) 2012-03-14 2014-08-19 International Business Machines Corporation Delivering multicast frames to aggregated link trunks in a distributed switch
US9197572B2 (en) * 2013-03-15 2015-11-24 The Regents Of The University Of California Throughput enabled rate adaptation in wireless networks
US20150334703A1 (en) * 2014-05-15 2015-11-19 Qualcomm Incorporated Determining modem information and overhead information
CN106950527B (zh) * 2017-04-14 2020-01-31 中国电子科技集团公司第二十九研究所 一种多基线干涉仪测向体制下的脉冲信号分选方法
US10558392B2 (en) * 2017-06-30 2020-02-11 Seagate Technology Llc Enhancing quality of service of a storage device
US11294850B2 (en) * 2019-03-29 2022-04-05 Intel Corporation System, apparatus and method for increasing bandwidth of edge-located agents of an integrated circuit
JP7010268B2 (ja) * 2019-04-19 2022-01-26 オムロン株式会社 通信監視システムおよび通信監視方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4750175A (en) 1986-08-29 1988-06-07 Pactel Communications Companies Network diagnostic apparatus and method
US5251213A (en) 1992-05-12 1993-10-05 Microcom Systems, Inc. Multiport source routing token ring bridge apparatus
US5276677A (en) * 1992-06-26 1994-01-04 Nec Usa, Inc. Predictive congestion control of high-speed wide area networks
US5907800A (en) * 1995-06-07 1999-05-25 Lightbridge, Inc. Apparatus for use in inhibiting telecommunication subscriber termination
US5796719A (en) 1995-11-01 1998-08-18 International Business Corporation Traffic flow regulation to guarantee end-to-end delay in packet switched networks
US5754530A (en) 1996-04-18 1998-05-19 Northern Telecom Limited Flow control of ABR traffic in ATM networks
US5790131A (en) 1996-05-15 1998-08-04 Iterated Systems, Inc. System and method for lossy compression of data with output file size control
US5748901A (en) 1996-05-21 1998-05-05 Ramot University Authority Ltd. Flow control algorithm for high speed networks
JP3169552B2 (ja) * 1996-06-20 2001-05-28 沖電気工業株式会社 シェーピング方法及び装置
US6144639A (en) * 1996-09-03 2000-11-07 Sbc Technology Resources, Inc. Apparatus and method for congestion control in high speed networks
US6597660B1 (en) * 1997-01-03 2003-07-22 Telecommunications Research Laboratory Method for real-time traffic analysis on packet networks
US6167027A (en) * 1997-09-09 2000-12-26 Cisco Technology, Inc. Flow control technique for X.25 traffic in a high speed packet switching network
US6052375A (en) 1997-11-26 2000-04-18 International Business Machines Corporation High speed internetworking traffic scaler and shaper
US6407983B1 (en) * 1998-02-20 2002-06-18 Adc Telecommunications, Inc. Circuit and method for shaping traffic in a virtual connection network
US6411946B1 (en) * 1998-08-28 2002-06-25 General Instrument Corporation Route optimization and traffic management in an ATM network using neural computing
US6584111B1 (en) * 1998-11-04 2003-06-24 Northern Telecom Limited ABR flow control using single bit congestion indication and wavelet transform filtering
US6549587B1 (en) * 1999-09-20 2003-04-15 Broadcom Corporation Voice and data exchange over a packet based network with timing recovery
US6917585B1 (en) 1999-06-02 2005-07-12 Nortel Networks Limited Method and apparatus for queue management

Also Published As

Publication number Publication date
KR20040071709A (ko) 2004-08-12
EP1461627A4 (en) 2010-04-14
WO2003048903A3 (en) 2003-10-16
EP1461627B1 (en) 2013-02-20
WO2003048903A2 (en) 2003-06-12
AU2002362058A1 (en) 2003-06-17
KR100915185B1 (ko) 2009-09-02
US6798741B2 (en) 2004-09-28
US20030107988A1 (en) 2003-06-12
EP1461627A2 (en) 2004-09-29
CN1618024A (zh) 2005-05-18
CN100405778C (zh) 2008-07-23
JP2005512365A (ja) 2005-04-28

Similar Documents

Publication Publication Date Title
JP4032027B2 (ja) パケットベースのコンピュータネットワークにおいてレートシェーピングを実現する方法及びシステム
US5533009A (en) Bandwidth management and access control for an ATM network
US6144639A (en) Apparatus and method for congestion control in high speed networks
KR100234212B1 (ko) 패킷 네트워크에서의 적응 속도기반 혼잡제어
US6973032B1 (en) Selective backpressure control for multistage switches
CA2291802C (en) Explicit rate computation for flow control in computer networks
US7324535B1 (en) Methods and apparatus for maintaining a queue
US6175554B1 (en) Asynchronous transfer mode (ATM) traffic control apparatus and control method for handling a wide variety of ATM services
Kasera et al. Fast and robust signaling overload control
EP1430642A2 (en) Method and system for congestion avoidance in packet switching devices
EP0860068B1 (en) Method and device for traffic control in a communications system
US7843825B2 (en) Method and system for packet rate shaping
US7333436B2 (en) Network device with traffic shaping functions and bandwidth control method using leaky bucket algorithm
KR100546968B1 (ko) 컴퓨터 네트워크에서의 패킷 전송 제어 방법 및 장치
US7477650B2 (en) Method and apparatus for frame-aware and pipelined hierarchical scheduling
EP1228663A1 (en) A method for predicting a fill-up level of a buffer in an atm network element
EP2247044A1 (en) Packet network processing node and method
CA2401425C (en) Method and system for controlling flows in sub-pipes of computer networks
US6920111B1 (en) Multiple update frequencies for counters in a multi-level shaping system
EP1517484A1 (en) Method and apparatus for traffic scheduling
Valeroso et al. Adaptive resource scheduling strategies and performance analysis of broadband networks
JP2004007230A (ja) 通信帯域制御方式
Hu et al. An Oscillation Reducing Rate-based Protocol based on Multiple Time Scale for ABR Flow Control
Chong et al. Spectral Analysis of Access Rate Control in High-Speed Networks
Ani Resource Allocation Methodology for Internet Heterogeneous Traffic

Legal Events

Date Code Title Description
A072 Dismissal of procedure [no reply to invitation to correct request for examination]

Free format text: JAPANESE INTERMEDIATE CODE: A072

Effective date: 20050216

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050315

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050315

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070308

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070607

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070614

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070704

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: 20070920

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071022

R150 Certificate of patent or registration of utility model

Ref document number: 4032027

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101026

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101026

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111026

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111026

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121026

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121026

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131026

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees