JP2023531436A - キュースケジューリングのための方法および装置 - Google Patents

キュースケジューリングのための方法および装置 Download PDF

Info

Publication number
JP2023531436A
JP2023531436A JP2022577688A JP2022577688A JP2023531436A JP 2023531436 A JP2023531436 A JP 2023531436A JP 2022577688 A JP2022577688 A JP 2022577688A JP 2022577688 A JP2022577688 A JP 2022577688A JP 2023531436 A JP2023531436 A JP 2023531436A
Authority
JP
Japan
Prior art keywords
queue
packet
scheduling
balance
packets
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
Application number
JP2022577688A
Other languages
English (en)
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2023531436A publication Critical patent/JP2023531436A/ja
Pending 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/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • 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
    • 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/12Avoiding congestion; Recovering from congestion
    • 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/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6275Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
    • 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/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • H04L47/521Static queue service slot or fixed bandwidth allocation
    • 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/56Queue scheduling implementing delay-aware scheduling
    • 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/622Queue service order
    • H04L47/6225Fixed service order, e.g. Round Robin
    • 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/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6255Queue scheduling characterised by scheduling criteria for service slots or service orders queue load conditions, e.g. longest queue first
    • 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/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6265Queue scheduling characterised by scheduling criteria for service slots or service orders past bandwidth allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本出願の実施形態は、パケット伝送プロセスにおけるネットワークレイテンシを低減するための、キュースケジューリングのための方法および装置を開示する。方法は、第1のデバイスが、第1のキューをスケジューリングするときに第1のパケットバランスを取得するステップであって、第1のパケットバランスは、第1のキューからデキューされ得るパケットの量を示す、ステップと、第1のデバイスが、第1のパケットバランスに基づいて第2のキューをスケジューリングするステップと、を含む。

Description

本出願は、2020年6月19日に中国国家知識産権局に出願された「METHOD AND APPARATUS FOR QUEUE SCHEDULING」という名称の中国特許出願第202010566274.2号に基づく優先権を主張し、その全体が参照により本明細書に組み込まれる。
本出願は、通信分野に関し、特に、キュースケジューリングのための方法および装置に関する。
サービス品質(quality of service、QoS)は、ネットワーク状態を反映する指標であり、ネットワーク状態は、ネットワークレイテンシまたはネットワーク輻輳などの状態を含む。キュースケジューリングは、QoSネットワークに対する高い要件を満たすための重要な技術である。具体的には、キュースケジューリングは、複数のキューにバッファリングされたパケットを、特定のポリシーに従ってデキューする技術である。
不足ラウンドロビン(Deficit Round Robin、DRR)スケジューリング方法は、広く使用されているキュースケジューリング方法である。キュースケジューリング方法では、デバイスのネットワーク帯域幅リソースが最大化され、複数のキューの各々にバッファリングされたパケットをデキューするために使用される。キュースケジューリング方法では、ネットワークレイテンシの問題は考慮されていない。したがって、キュースケジューリング方法は、パケット転送レイテンシに対する高い要件を有する適用シナリオ、例えば、第5世代モバイル通信技術(5th generation mobile networks、5G)における超高信頼低遅延通信(Ultra-reliable and Low Latency Communications、URLLC)の適用シナリオに適用可能ではない。
本出願の実施形態は、パケット伝送プロセスにおけるネットワークレイテンシを低減するための、キュースケジューリングのための方法および装置を提供する。
第1の態様によれば、キュースケジューリングのための方法が提供される。方法は、第1のデバイスに適用され得る。第1のデバイスは、ルータまたはスイッチなどのネットワークデバイスであってもよく、または、キュースケジューリングを行うように構成された他のデバイスであってもよい。方法は、具体的には以下のステップを含み得る:すなわち、第1のデバイスが第1のキューをスケジューリングするとき、第1のデバイスは、第1のパケットバランスを取得し、第1のパケットバランスに基づいて第2のキューをスケジューリングしうる。第1のパケットバランスは、第1のキューからデキューされ得るパケットの量を示し、第1のキューおよび第2のキューは、各々がレイテンシに対する高い要件を有するキューであり得る。換言すれば、第2のキューをスケジューリングするための機会は、第1のキューによって占有される帯域幅リソースおよび第2のキューによって占有される帯域幅リソースがそれぞれ基本的に固定された状態にあることを保証するために、第1のキューの第1のパケットバランスに基づいて決定される。各キューによって占有される帯域幅リソースが固定されない従来のDRRスケジューリング方式と比較して、本出願は、トラフィックバーストによって引き起こされるネットワーク輻輳によって引き起こされるレイテンシ問題を低減しうる。
可能な実装形態では、第1のデバイスは、以下の2つの方式で第2のキューをスケジューリングしうる。
第1の方式では、第1のデバイスは、第1のパケットバランスが消費された後に第2のキューをスケジューリングしうる。第1のパケットバランスは、第1のキューからデキューされ得るパケットの量を識別する。第1のデバイスは、第1のキューからパケットをデキューすることによって第1のパケットバランスを消費してもよく、または他のキューをスケジューリングすることによって第1のパケットバランスを消費してもよく、または第1のキューを待機状態にスケジューリングすることによって第1のパケットバランスを消費しうる。第1のデバイスが第1のパケットバランスを消費することができないとき、または第1のパケットバランスが使い果たされた後、第1のデバイスは、第2のキューをスケジューリングしうる。このようにして、第1のキュー内のパケットをスケジューリングする各回の総時間期間は同じでありえ、すなわち、第1のキューをスケジューリングする各回に第1のデバイスによって消費される時間期間が基本的に同じであることが保証される。
第2の方式では、第1のデバイスは、第1のパケットバランスが第1のキューにバッファリングされた先頭パケットの量未満であるとき、第2のキューをさらにスケジューリングしうる。第1のキューにバッファリングされた先頭パケットは、第1のキュー内の第1のデキューされる位置にあるパケットであってもよく、先頭パケットの量は、先頭パケットのバイト数、すなわち、先頭パケットの長さであってもよい。第1のパケットバランスは、第1のキューからデキューされ得るパケットの量を示す。第1のパケットバランスが第1のキューにバッファリングされた先頭パケットの量未満である場合、それは、第1のキューからデキューされ得るパケットの残りの量が先頭パケットをデキューするための要件を満たすことができないことを示す。したがって、第1のデバイスは、第1のパケットバランスを使用することによって、デキューされる第1のキューにバッファリングされたパケットをスケジューリングすることができず、すなわち、ここで第1のキューのスケジューリングが終了する。したがって、第1のデバイスは、第2のキューをスケジューリングしうる。このようにして、長時間にわたって第1のキューによって取得されるパケットスケジューリング機会は、第1のキューのために構成されたシェア(サブ割り当て量)以上であり得る。換言すれば、第1のキューが複数回スケジューリングされた後、第1のデバイスによって第1のキューをスケジューリングする各回に消費される平均時間期間が基本的に等しいことが保証される。
可能な実装形態では、第1のデバイスは、以下の4つの方式で第1のパケットバランスを消費しうる。
第1の方式では、第1のキューにバッファリングされたパケットの量は0ではなく、第1のパケット割り当て量未満であり、第1のパケット割り当て量は、毎回のキュースケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量と、第1のキューをスケジューリングする前回の間に取得された第1のパケットバランスとの和であり、第1のパケットバランスは、第1のパケット割り当て量と第1のキューからデキューされたパケットの量との差である。第1のキューにバッファリングされたパケットの量が第1のパケット割り当て量未満であるため、第1のキューにバッファリングされたパケットがデキューされると、第1のキューにバッファリングされたパケットの量は0に減少する。第1のキューにバッファリングされたパケットの量が0である場合、すなわち、第1のキューからデキューされるパケットが存在しない場合、第1のデバイスは、第1のキューにバッファリングされたパケットがデキューされるようにスケジューリングすることによって第1のパケットバランスを消費することができない。したがって、第1のデバイスは、残りの第1のパケットバランスを消費しうる。第1のパケットバランスを消費するプロセスにおいて、第1のデバイスは、第3のキューをスケジューリングしてもよく、または第1のキューを待機状態にスケジューリングしうる。第3のキューは、レイテンシに対する高い要件を有さないキュー、すなわち、低い優先度を有するキューであり得る。このようにして、第1のキューをスケジューリングするたびに、第1のデバイスは、毎回のキュースケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量に基づいて、第1のパケット割り当て量を増加させうる。したがって、第1のキューをスケジューリングするたびに、第1のキューに新たに追加され、デキューされ得るパケットの総量は基本的に固定される。加えて、第1のデバイスは、第1のパケットバランスを消費した後にのみ第2のキューをスケジューリングするので、第1のキューをスケジューリングするたびに消費される時間期間も基本的に固定され、すなわち、第1のデバイスによって第1のキューをスケジューリングするたびに消費される時間期間は基本的に等しい。このようにして、トラフィックバーストによって引き起こされるネットワーク輻輳およびレイテンシを防止するために、第1のキューによって占有されるネットワーク帯域幅リソースが第2のキューによって占有されないことが保証され得る。さらに、第1のキューにバッファリングされたパケットの量が0であるときに第3のキューをスケジューリングすることは、第1のキューによって使用されることができない第1のパケットバランスを使用することによって第3のキューをスケジューリングすることと等価である。これは、第1のキューのレイテンシを保証することを前提として、ネットワーク帯域幅リソースの利用率を改善しうる。
第2の方式では、第1のキューにバッファリングされたパケットの量は0ではなく、第1のパケット割り当て量より大きく、第1のパケット割り当て量は、毎回のキュースケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量と、第1のキューをスケジューリングする前回の間に取得された第1のパケットバランスとの和であり、第1のパケットバランスは、第1のパケット割り当て量と第1のキューからデキューされたパケットの量との差である。第1のキューにバッファリングされたパケットの量が第1のパケット割り当て量より大きいため、第1のキューをスケジューリングするプロセスにおいて、第1のキューにバッファリングされたパケットがデキューされると、第1のキューにバッファリングされたパケットの量はM1からM2に減少する。第1のキューにバッファリングされたパケットの量M2が第1のパケットバランスより大きいとき、それは、第1のキューからデキューされ得るパケットの残りの総量が、第1のキューにバッファリングされたパケットの残りの量をデキューするための要件を満たすことができないことを示す。したがって、第1のデバイスは、第1のキューのスケジューリングを停止し、第1のパケットバランスの消費を開始しうる。第1のパケットバランスを消費するプロセスにおいて、第1のデバイスは、第3のキューをスケジューリングしうる。第3のキューは、レイテンシに対する高い要件を有さないキュー、すなわち、低い優先度を有するキューであり得る。このようにして、第1のキューをスケジューリングするたびに、第1のデバイスは、毎回のキュースケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量に基づいて、第1のパケット割り当て量を増加させうる。したがって、第1のキューをスケジューリングするたびに、第1のキューに新たに追加され、デキューされ得るパケットの総量が固定される。加えて、第1のデバイスは、第1のパケットバランスを消費した後にのみ第2のキューをスケジューリングするので、第1のキューをスケジューリングするたびに消費される時間期間も固定され、すなわち、第1のデバイスによって第1のキューをスケジューリングするたびに消費される時間期間は基本的に等しい。このようにして、トラフィックバーストによって引き起こされるネットワーク輻輳およびレイテンシを防止するために、第1のキューによって占有されるネットワーク帯域幅リソースが第2のキューによって占有されないことが保証され得る。加えて、第1のキューにバッファリングされたパケットの量が0であるときに第3のキューをスケジューリングすることは、第1のキューによって使用されることができない第1のパケットバランスを使用することによって第3のキューをスケジューリングすることと等価である。これは、第1のキューのレイテンシを保証することを前提として、ネットワーク帯域幅リソースの利用率を改善しうる。
第3の方式では、第1のキューにバッファリングされたパケットの量は0ではなく、第1のパケット割り当て量より大きく、第1のパケット割り当て量は、毎回のキュースケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量であり、第1のパケットバランスは、第1のパケット割り当て量と第1のキューからデキューされたパケットの量との間の差である。第1のキューにバッファリングされたパケットの量は第1のパケット割り当て量未満であるため、第1のキューをスケジューリングするプロセスにおいて、第1のキューにバッファリングされたパケットがデキューされると、第1のキューにバッファリングされたパケットの量はM1からM2に減少する。第1のキューにバッファリングされたパケットの量M2が第1のパケットバランスより大きいとき、それは、第1のキューからデキューされ得るパケットの残りの総量が、第1のキューにバッファリングされたパケットの残りの量をデキューするための要件を満たすことができないことを示す。したがって、第1のデバイスは、第1のキューのスケジューリングを停止し、第1のパケットバランスの消費を開始しうる。第1のパケットバランスを消費するプロセスにおいて、第1のデバイスは、第3のキューをスケジューリングしうる。第3のキューは、レイテンシに対する高い要件を有さないキュー、すなわち、低い優先度を有するキューであり得る。このようにして、第1のキューをスケジューリングするたびに、第1のデバイスは、毎回のキュースケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量に基づいて、第1のパケット割り当て量を増加させうる。したがって、第1のキューをスケジューリングするたびに、第1のキューに新たに追加され、デキューされ得るパケットの総量が固定される。加えて、第1のデバイスは、第1のパケットバランスを消費した後にのみ第2のキューをスケジューリングするので、第1のキューをスケジューリングするたびに消費される時間期間も固定され、すなわち、第1のデバイスによって第1のキューをスケジューリングするたびに消費される時間期間は基本的に等しい。このようにして、トラフィックバーストによって引き起こされるネットワーク輻輳およびレイテンシを防止するために、第1のキューによって占有されるネットワーク帯域幅リソースが第2のキューによって占有されないことが保証され得る。加えて、第1のキューにバッファリングされたパケットの量が0であるときに第3のキューをスケジューリングすることは、第1のキューによって使用されることができない第1のパケットバランスを使用することによって第3のキューをスケジューリングすることと等価である。これは、第1のキューのレイテンシを保証することを前提として、ネットワーク帯域幅リソースの利用率を改善しうる。
第4の方式では、第1のキューにバッファリングされたパケットの量は0であり、第1のパケット割り当て量は、毎回のキュースケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量であり、第1のパケットバランスは第1のパケット割り当て量である。したがって、第1のキューがここでスケジューリングされるとき、第1のキューからデキューされるパケットの量は0であり、第1のパケットバランスは第1のパケット割り当て量であり、第1のパケット割り当て量は、毎回のキュースケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量である。第2のキューをスケジューリングする前に、第1のデバイスは、第1のパケットバランスを消費しうる。第1のパケットバランスを消費するプロセスにおいて、第1のデバイスは、第3のキューをスケジューリングしてもよく、または第1のキューを待機状態にスケジューリングしうる。このようにして、第1のキュー内にバッファリングされたパケットが存在しない場合であっても、第1のデバイスは、第2のキューが第1のキューのネットワーク帯域幅リソースを占有することを防止するために、第1のパケットバランスが使い果たされた後に依然として第2のキューをスケジューリングしうる。
可能な実装形態では、第1のデバイスは、第2のパケット割り当て量に基づいて第3のキューをスケジューリングしうる。第2のパケット割り当て量は、毎回のキュースケジューリング中に第3のキューからデキューされ得るパケットの事前設定された総量であり得る。第3のキューをスケジューリングするとき、第1のデバイスは、まず第2のパケット割り当て量を取得し、第1のパケットバランスが第2のパケット割り当て量より大きいとき、第2のパケット割り当て量を消費するために、第3のキューにバッファリングされたパケットがデキューされるようにスケジューリングしうる。したがって、第1のデバイスが第1のキューをスケジューリングするたびに、第3のキューからデキューされ得るパケットの総量は、第2のパケット割り当て量によって制限される。このようにして、第3のキューは、第1のキューのネットワーク帯域幅リソースを過剰に占有することができず、第3のキューのネットワーク帯域幅リソースは、第3のキューの優先度よりも低い優先度を有するキューによって占有されず、その結果、第3のキューのレイテンシが低減され得る。
可能な実装形態では、第2のパケット割り当て量が第1のパケットバランスより大きい場合、それは、第1のキューからデキューされ得るパケットの残りの総量が、毎回のキュースケジューリング中に第3のキューからデキューされ得るパケットの事前設定された総量の要件を満たすことができないことを示す。したがって、第1のデバイスは、第3のキューにバッファリングされたパケットがデキューされるようにスケジューリングするとき、第1のパケットバランスを消費する。
可能な実装形態では、第1のパケットバランスが第2のパケット割り当て量より大きいとき、第1のデバイスが第2のパケット割り当て量を使い果たした後に残りの第1のパケットバランスが存在する。したがって、第1のデバイスは、第2のパケットバランスを取得し、第4のキューにバッファリングされたパケットがデキューされるようにスケジューリングすることによって、第1のパケットバランスを消費しうる。第2のパケットバランスは、第1のパケットバランスと第2のパケット割り当て量との間の差であってもよく、第4のキューは、レイテンシまたはネットワーク帯域幅に関する要件が第3のキューよりも低い、すなわち、第4のキューの優先度が第3のキューよりも低い、他の低優先度キューであってもよい。このようにして、第3のキューのネットワーク帯域幅リソースが第4のキューによって占有されないことを保証することを前提として、第1のパケットバランスの利用率が改善されうる。
可能な実装形態では、第1のデバイスは、第2のパケット割り当て量および第3のパケット割り当て量をさらに取得してもよく、第2のパケット割り当て量は、毎回のキュースケジューリング中に第3のキューからデキューされ得るパケットの事前設定された総量であり、第3のパケット割り当て量は、第1のパケットバランスと事前設定された重みとの積であり、事前設定された重みは0より大きく1より小さい。第1のデバイスは、第2のパケット割り当て量および第3のパケット割り当て量の値を比較しうる。第3のパケット割り当て量が第2のパケット割り当て量よりも大きいとき、第1のデバイスは、第3のキューにバッファリングされたパケットがデキューされるようにスケジューリングするために第2のパケット割り当て量を消費しうる。
可能な実装形態では、第1のデバイスは、第2のパケット割り当て量および第3のパケット割り当て量をさらに取得してもよく、第2のパケット割り当て量は、毎回のキュースケジューリング中に第3のキューからデキューされ得るパケットの事前設定された総量であり、第3のパケット割り当て量は、第1のパケットバランスと事前設定された重みとの積であり、事前設定された重みは0より大きく1より小さい。第1のデバイスは、第2のパケット割り当て量および第3のパケット割り当て量の値を比較しうる。第3のパケット割り当て量が第2のパケット割り当て量以下であるとき、第1のデバイスは、第3のキューにバッファリングされたパケットがデキューされるようにスケジューリングするために第3のパケット割り当て量を消費しうる。このようにして、第1のデバイスは、第3のキューが過度に大量のネットワーク帯域幅リソースを占有することを防止し、第3のキューのトラフィックバーストによって引き起こされる第1のキューのレイテンシおよびネットワーク輻輳を防止するために、第2のパケット割り当て量および第3のパケット割り当て量のうちの小さい方の値に基づいて、デキューされる第3のキューにバッファリングされたパケットをスケジューリングしうる。
第2の態様によれば、キュースケジューリングのための方法が提供される。方法は、キューセットをスケジューリングするためのものであり、第1のデバイスに適用され得る。第1のデバイスは、ルータまたはスイッチなどのネットワークデバイスであってもよく、または、キュースケジューリングを行うように構成された他のデバイスであってもよい。方法は、具体的には以下のステップを含んでよく、すなわち、第1のデバイスは、N回目にキューセットをスケジューリングするときに第1のパケットバランスを取得しうる。第1のデバイスは、第1のパケットバランスが消費された後、(N+1)回目にキューセットをスケジューリングしうる。キューセットは、少なくとも2つのキュー、すなわち第1のキューおよび第2のキューを含む。第1のパケットバランスは、第1のキューおよび第2のキューからデキューされ得るパケットの量を示す。第1のキューおよび第2のキューは、各々がレイテンシに対する高い要件を有するキューであってもよく、Nは1以上の整数である。換言すれば、第1のキューおよび第2のキューからデキューされ得るパケットの量が使い果たされた後、第1のデバイスは、次回のキューセットスケジューリングを行う。換言すれば、(N+1)回目のスケジューリングのための機会は、キューセットの第1のパケットバランスに基づいて決定され、キューセット内の第1のキューおよび第2のキューによって占有される帯域幅リソースならびに第2のキューによって占有される帯域幅リソースが基本的に固定された状態にあることを保証する。各キューによって占有される帯域幅リソースが固定されない従来のDRRスケジューリング方式と比較して、本出願は、トラフィックバーストによって引き起こされるネットワーク輻輳によって引き起こされるレイテンシ問題を低減しうる。
可能な実装形態では、第1のデバイスは、以下の5つの方式で第1のパケットバランスを消費しうる。
第1の方式では、第2のキューのスケジューリングは第1のキューのスケジューリングよりも後であり、第2のキューにバッファリングされたパケットの量は0ではなく、第2のパケット割り当て量未満である。第1のパケットバランスは、第2のパケットバランスおよび第3のパケットバランスを含み、第2のパケットバランスは、第2のパケット割り当て量と第1のキューからデキューされたパケットの量との差であり、第2のパケット割り当て量は、毎回のキューセットスケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量と前回のキューセットスケジューリング中に取得された第2のパケットバランスとの和であり、第3のパケットバランスは、第3のパケット割り当て量と第2のキューからデキューされたパケットの量との差であり、第3のパケット割り当て量は、毎回のキューセットスケジューリング中に第2のキューからデキューされ得るパケットの事前設定された総量と前回のキューセットスケジューリング中に取得された第3のパケットバランスとの和である。第2のキューにバッファリングされたパケットの量は第2のパケット割り当て量未満であるため、第2のキューにバッファリングされたパケットがデキューされると、第2のキューにバッファリングされたパケットの量は0に減少する。また、第1のデバイスは、第1のキューのスケジューリングが終了したので、第1のキューにバッファリングされたパケットまたは第2のキューにバッファリングされたパケットがデキューされるようにスケジューリングする。したがって、第1のデバイスは、第1のパケットバランスを消費しうる。第1のパケットバランスを消費するプロセスにおいて、第1のデバイスは、第3のキューをスケジューリングしてもよく、またはキューセットを待機状態にスケジューリングしうる。第3のキューは、レイテンシに対する高い要件を有さないキュー、すなわち、低い優先度を有するキューであり得る。このようにして、N回目にキューセットをスケジューリングするとき、第1のデバイスは、毎回のキュースケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量に基づいて、第1のパケット割り当て量を増加させ得る。したがって、第1のキューをスケジューリングするたびに、第1のキューに新たに追加され、デキューされ得るパケットの総量は基本的に固定される。加えて、第1のデバイスは、第1のパケットバランスを消費した後にのみ、(N+1)回目のキューセットをスケジューリングするので、キューセットをスケジューリングする各回に消費される時間期間も基本的に固定され、すなわち、第1のデバイスによってキューセットをスケジューリングする各回に消費される時間期間は基本的に等しい。このようにして、キューセット内の第1のキューおよび第2のキューによって占有される帯域幅リソースならびに第2のキューによって占有される帯域幅リソースが基本的に固定された状態にあることを保証しうる。さらに、第1のキューにバッファリングされたパケットの量が0であるときに第3のキューをスケジューリングすることは、第1のキューおよび第2のキューによって使用されることができない第1のパケットバランスを使用することによって第3のキューをスケジューリングすることと等価である。これは、第1のキューおよび第2のキューのレイテンシを保証することを前提として、ネットワーク帯域幅リソースの利用率を改善しうる。
第2の方式では、第2のキューのスケジューリングは第1のキューのスケジューリングよりも後であり、第2のキューにバッファリングされたパケットの量は0ではなく、第2のパケット割り当て量よりも大きい。第1のパケットバランスは、第2のパケットバランスおよび第3のパケットバランスを含み、第2のパケットバランスは、第2のパケット割り当て量と第1のキューからデキューされたパケットの量との差であり、第2のパケット割り当て量は、毎回のキューセットスケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量と前回のキューセットスケジューリング中に取得された第2のパケットバランスとの和であり、第3のパケットバランスは、第3のパケット割り当て量と第2のキューからデキューされたパケットの量との差であり、第3のパケット割り当て量は、毎回のキューセットスケジューリング中に第2のキューからデキューされ得るパケットの事前設定された総量と前回のキューセットスケジューリング中に取得された第3のパケットバランスとの和である。第2のキューにバッファリングされたパケットの量は第2のパケット割り当て量より大きいため、キューセットがN回目にスケジューリングされるとき、第2のキューにバッファリングされたパケットがデキューされると、第2のキューにバッファリングされたパケットの量はM1からM2に減少する。第2のキューにバッファリングされたパケットの量M2が第2のパケットバランスより大きいとき、それは、第2のキューからデキューされ得るパケットの残りの総量が、第2のキューにバッファリングされたパケットの残りの量をデキューするための要件を満たすことができないことを示す。したがって、第1のデバイスは、第2のキューのスケジューリングを停止し、第1のパケットバランスの消費を開始しうる。第1のパケットバランスを消費するプロセスにおいて、第1のデバイスは、第3のキューをスケジューリングしてもよく、またはキューセットを待機状態にスケジューリングしうる。第3のキューは、レイテンシに対する高い要件を有さないキュー、すなわち、低い優先度を有するキューであり得る。このようにして、N回目にキューセットをスケジューリングするとき、第1のデバイスは、毎回のキュースケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量に基づいて、第1のパケット割り当て量を増加させ得る。したがって、第1のキューをスケジューリングするたびに、第1のキューに新たに追加され、デキューされ得るパケットの総量は基本的に固定される。加えて、第1のデバイスは、第1のパケットバランスを消費した後にのみ、(N+1)回目のキューセットをスケジューリングするので、キューセットをスケジューリングする各回に消費される時間期間も基本的に固定され、すなわち、第1のデバイスによってキューセットをスケジューリングする各回に消費される時間期間は基本的に等しい。このようにして、キューセット内の第1のキューおよび第2のキューによって占有される帯域幅リソースならびに第2のキューによって占有される帯域幅リソースが基本的に固定された状態にあることを保証しうる。さらに、第1のキューにバッファリングされたパケットの量が0であるときに第3のキューをスケジューリングすることは、第1のキューおよび第2のキューによって使用されることができない第1のパケットバランスを使用することによって第3のキューをスケジューリングすることと等価である。これは、第1のキューおよび第2のキューのレイテンシを保証することを前提として、ネットワーク帯域幅リソースの利用率を改善しうる。
第3の実装形態では、第2のキューのスケジューリングは第1のキューのスケジューリングよりも後であり、第2のキューにバッファリングされたパケットの量は0ではなく、第2のパケット割り当て量未満である。第1のパケットバランスは、第2のパケットバランスおよび第3のパケットバランスを含み、第2のパケットバランスは、第2のパケット割り当て量と第1のキューからデキューされたパケットの量との間の差であり、第2のパケット割り当て量は、毎回のキューセットスケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量であり、第3のパケットバランスは、第3のパケット割り当て量と第2のキューからデキューされたパケットの量との間の差であり、第3のパケット割り当て量は、毎回のキューセットスケジューリング中に第2のキューからデキューされ得るパケットの事前設定された総量である。第2のキューにバッファリングされたパケットの量は第2のパケット割り当て量未満であるため、第2のキューにバッファリングされたパケットがデキューされると、第2のキューにバッファリングされたパケットの量は0に減少する。また、第1のデバイスは、第1のキューのスケジューリングが終了したので、第1のキューにバッファリングされたパケットまたは第2のキューにバッファリングされたパケットがデキューされるようにスケジューリングする。したがって、第1のデバイスは、第1のパケットバランスを消費しうる。第1のパケットバランスを消費するプロセスにおいて、第1のデバイスは、第3のキューをスケジューリングしてもよく、またはキューセットを待機状態にスケジューリングしうる。第3のキューは、レイテンシに対する高い要件を有さないキュー、すなわち、低い優先度を有するキューであり得る。このようにして、N回目にキューセットをスケジューリングするとき、第1のデバイスは、毎回のキュースケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量に基づいて、第1のパケット割り当て量を増加させ得る。したがって、第1のキューをスケジューリングするたびに、第1のキューに新たに追加され、デキューされ得るパケットの総量は基本的に固定される。加えて、第1のデバイスは、第1のパケットバランスを消費した後にのみ、(N+1)回目のキューセットをスケジューリングするので、キューセットをスケジューリングする各回に消費される時間期間も基本的に固定され、すなわち、第1のデバイスによってキューセットをスケジューリングする各回に消費される時間期間は基本的に等しい。このようにして、キューセット内の第1のキューおよび第2のキューによって占有される帯域幅リソースならびに第2のキューによって占有される帯域幅リソースが基本的に固定された状態にあることを保証しうる。さらに、第1のキューにバッファリングされたパケットの量が0であるときに第3のキューをスケジューリングすることは、第1のキューおよび第2のキューによって使用されることができない第1のパケットバランスを使用することによって第3のキューをスケジューリングすることと等価である。これは、第1のキューおよび第2のキューのレイテンシを保証することを前提として、ネットワーク帯域幅リソースの利用率を改善しうる。
第4の実装形態では、第2のキューのスケジューリングは第1のキューのスケジューリングよりも後であり、第2のキューにバッファリングされたパケットの量は0ではなく、第2のパケット割り当て量よりも大きい。第1のパケットバランスは、第2のパケットバランスおよび第3のパケットバランスを含み、第2のパケットバランスは、第2のパケット割り当て量と第1のキューからデキューされたパケットの量との間の差であり、第2のパケット割り当て量は、毎回のキューセットスケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量であり、第3のパケットバランスは、第3のパケット割り当て量と第2のキューからデキューされたパケットの量との間の差であり、第3のパケット割り当て量は、毎回のキューセットスケジューリング中に第2のキューからデキューされ得るパケットの事前設定された総量である。第2のキューにバッファリングされたパケットの量は第2のパケット割り当て量より大きいため、キューセットがN回目にスケジューリングされるとき、第2のキューにバッファリングされたパケットがデキューされると、第2のキューにバッファリングされたパケットの量はM1からM2に減少する。第2のキューにバッファリングされたパケットの量M2が第2のパケットバランスより大きいとき、それは、第2のキューからデキューされ得るパケットの残りの総量が、第2のキューにバッファリングされたパケットの残りの量をデキューするための要件を満たすことができないことを示す。したがって、第1のデバイスは、第2のキューのスケジューリングを停止し、第1のパケットバランスの消費を開始しうる第1のパケットバランスを消費するプロセスにおいて、第1のデバイスは、第3のキューをスケジューリングしてもよく、またはキューセットを待機状態にスケジューリングしうる。第3のキューは、レイテンシに対する高い要件を有さないキュー、すなわち、低い優先度を有するキューであり得る。このようにして、N回目にキューセットをスケジューリングするとき、第1のデバイスは、毎回のキュースケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量に基づいて、第1のパケット割り当て量を増加させ得る。したがって、第1のキューをスケジューリングするたびに、第1のキューに新たに追加され、デキューされ得るパケットの総量は基本的に固定される。加えて、第1のデバイスは、第1のパケットバランスを消費した後にのみ、(N+1)回目のキューセットをスケジューリングするので、キューセットをスケジューリングする各回に消費される時間期間も基本的に固定され、すなわち、第1のデバイスによってキューセットをスケジューリングする各回に消費される時間期間は基本的に等しい。このようにして、キューセット内の第1のキューおよび第2のキューによって占有される帯域幅リソースならびに第2のキューによって占有される帯域幅リソースが基本的に固定された状態にあることを保証しうる。さらに、第1のキューにバッファリングされたパケットの量が0であるときに第3のキューをスケジューリングすることは、第1のキューおよび第2のキューによって使用されることができない第1のパケットバランスを使用することによって第3のキューをスケジューリングすることと等価である。これは、第1のキューおよび第2のキューのレイテンシを保証することを前提として、ネットワーク帯域幅リソースの利用率を改善しうる。
第5の実装形態では、第1のキューにバッファリングされたパケットの量と第2のキューにバッファリングされたパケットの量の両方が0である。第1のパケットバランスは、第2のパケットバランスおよび第3のパケットバランスを含み、第2のパケットバランスは、第2のパケット割り当て量と第1のキューからデキューされたパケットの量との間の差であり、第2のパケット割り当て量は、毎回のキューセットスケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量であり、第3のパケットバランスは、第3のパケット割り当て量と第2のキューからデキューされたパケットの量との間の差であり、第3のパケット割り当て量は、毎回のキューセットスケジューリング中に第2のキューからデキューされ得るパケットの事前設定された総量である。第1のキューおよび第2のキューにはパケットが存在しないため、第2のパケットバランスは第2のパケット割り当て量に等しく、第3のパケットバランスは第3のパケット割り当て量に等しく、第1のパケットバランスは第2のパケット割り当て量と第3のパケット割り当て量との和に等しい。この場合、(N+1)回目にキューセットをスケジューリングする前に、第1のデバイスは、第1のパケットバランスを消費しうる。第1のパケットバランスを消費するプロセスにおいて、第1のデバイスは、第3のキューをスケジューリングしてもよく、または第1のキューを待機状態にスケジューリングしうる。このようにして、キューセット内にバッファリングされたパケットが存在しない場合であっても、第1のデバイスは、第1のパケットバランスが使い果たされた後に、依然として次のスケジューリングを行って、キューセット内の第1のキューおよび第2のキューによって占有される帯域幅リソース、ならびに第2のキューによって占有される帯域幅リソースが基本的に固定された状態にあることを保証しうる。
可能な実装形態では、第1のデバイスは、第4のパケット割り当て量に基づいて第3のキューをスケジューリングしうる。第4のパケット割り当て量は、毎回のキュースケジューリング中に第3のキューからデキューされ得るパケットの事前設定された総量であり得る。第3のキューをスケジューリングするとき、第1のデバイスは、まず第4のパケット割り当て量を取得し、第1のパケットバランスが第4のパケット割り当て量より大きいとき、第4のパケット割り当て量を消費するために、第3のキューにバッファリングされたパケットがデキューされるようにスケジューリングしうる。したがって、第1のデバイスが第1のキューをスケジューリングするたびに、第3のキューからデキューされ得るパケットの総量は、第4のパケット割り当て量によって制限される。このようにして、第3のキューは、第1のキューのネットワーク帯域幅リソースを過剰に占有することができず、第3のキューのネットワーク帯域幅リソースは、第3のキューの優先度よりも低い優先度を有するキューによって占有されず、その結果、第3のキューのレイテンシが低減され得る。
可能な実装形態では、第1のパケットバランスが第4のパケット割り当て量より大きいとき、第1のデバイスが第4のパケット割り当て量を使い果たした後に残りの第1のパケットバランスが存在する。したがって、第1のデバイスは、第4のパケットバランスを取得し、第4のキューにバッファリングされたパケットがデキューされるようにスケジューリングすることによって、第1のパケットバランスを消費しうる。第2のパケットバランスは、第1のパケットバランスと第4のパケット割り当て量との間の差であってもよく、第4のキューは、レイテンシまたはネットワーク帯域幅に関する要件が第3のキューよりも低い、すなわち、第4のキューの優先度が第3のキューよりも低い、他の低優先度キューであってもよい。このようにして、第3のキューのネットワーク帯域幅リソースが第4のキューによって占有されないことを保証することを前提として、第1のパケットバランスの利用率が改善されうる。
可能な実装形態では、第4のパケット割り当て量が第1のパケットバランスより大きい場合、それは、第1のキューからデキューされ得るパケットの残りの総量が、毎回のキュースケジューリング中に第3のキューからデキューされ得るパケットの事前設定された総量の要件を満たすことができないことを示す。したがって、第1のデバイスは、第3のキューにバッファリングされたパケットがデキューされるようにスケジューリングするとき、第1のパケットバランスを消費する。
第3の態様によれば、キュースケジューリングのための装置が提供される。装置は、第1の態様または第1の態様の可能な実装形態のいずれか1つにおけるキュースケジューリングのための方法を実装するための対応する機能を有する。装置は少なくとも1つのユニットを含み、少なくとも1つのユニットは、第1の態様または第1の態様の可能な実装形態のうちのいずれか1つにおいて提供されるキュースケジューリングのための方法を実装するように構成される。一実装形態では、装置は、第1のキューがスケジューリングされるときに第1のパケットバランスを取得し、第1のパケットバランスは、第1のキューからデキューされ得るパケットの量を示すように構成された第1の取得ユニットと、第1のパケットバランスに基づいて第2のキューをスケジューリングするように構成された第1のスケジューリングユニットと、を含む。
第4の態様によれば、キュースケジューリングのための装置が提供される。装置は、第2の態様または第2の態様の可能な実装形態のいずれか1つにおけるキュースケジューリングのための方法を実装するための対応する機能を有する。装置は少なくとも1つのユニットを含み、少なくとも1つのユニットは、第2の態様または第2の態様の可能な実装形態のいずれか1つにおいて提供されるキュースケジューリングのための方法を実装するように構成される。一実装形態では、装置は、キューセットがN回目にスケジューリングされるときに第1のパケットバランスを取得し、キューセットは、第1のキューおよび第2のキューを含み、第1のパケットバランスは、第1のキューおよび第2のキューからデキューされ得るパケットの量を示し、Nは、1以上の整数であるように構成された第1の取得ユニットと、第1のパケットバランスが消費された後に(N+1)回目にキューセットをスケジューリングするように構成された第1のスケジューリングユニットと、を含む。
第5の態様によれば、キュースケジューリングのための装置が提供される。装置は、プロセッサおよびメモリを含み、メモリは、第1の態様または第2の態様において提供されるキュースケジューリングのための方法を行う際に装置をサポートするプログラムを記憶し、第1の態様または第2の態様において提供されるキュースケジューリングのための方法を実装するために使用されるデータを記憶するように構成される。プロセッサは、メモリに記憶されたプログラムを実行するように構成される。装置は、通信バスをさらに含んえもよく、通信バスは、プロセッサとメモリとの間の接続を確立するように構成される。
第6の態様によれば、コンピュータ可読記憶媒体が提供される。コンピュータ可読記憶媒体は命令を記憶し、命令がコンピュータ上で実行されると、コンピュータは、第1の態様または第2の態様によるキュースケジューリングのための方法を行うことを可能にされる。
第7の態様によれば、命令を含むコンピュータプログラム製品が提供される。コンピュータプログラム製品がコンピュータ上で動作するとき、コンピュータは、第1の態様または第2の態様によるキュースケジューリングのための方法を行うことを可能にされる。
本出願の一実施形態によるシステム10のアーキテクチャの概略図である。 本出願の一実施形態によるキュースケジューリングのための方法のフローチャートである。 本出願の一実施形態によるキュースケジューリングのための他の方法のフローチャートである。 本出願の一実施形態によるキュースケジューリングのためのさらに他の方法のフローチャートである。 本出願の一実施形態によるキュースケジューリングのためのさらに他の方法のフローチャートである。 本出願の一実施形態によるキュースケジューリングのためのさらに他の方法のフローチャートである。 本出願の一実施形態によるキュースケジューリングのためのさらに他の方法のフローチャートである。 本発明の一実施形態によるキュースケジューリングのための装置700の構造の概略図である。 本出願の一実施形態によるキュースケジューリングのための他の装置800の構造の概略図である。 本出願の一実施形態によるデバイス1000の構造の概略図である。
以下では、添付の図面を参照して、従来技術および本出願の実施形態において提供されるキュースケジューリングのための方法および装置を説明する。
一般的なDRRスケジューリング方法では、デバイスのネットワーク帯域幅リソースが最大化され、複数のキューの各々にバッファリングされたパケットをデキューするために使用される。具体的には、デバイスは、デバイスのDRRキューセットに含まれる複数のDRRキューを順次スケジューリングし、ここで、順次スケジューリングは、特定のスケジューリング順序に従って複数のDRRキューを1つずつスケジューリングすることを指し、スケジューリング順序は、優先度またはシステム設定に基づいて決定されてもよい。例えば、DRRキューセットは、第1のDRRキューと第2のDRRキューとを含む。毎回のキュースケジューリングのプロセスにおいて、デバイスAは、第1のDRRキューおよび第2のDRRキューの順序に従ってスケジューリングを行う。デバイスAが、第1のDRRキューにバッファリングされたパケットが存在する(デキューされるのを待っているパケットがある)と決定した場合、デバイスAは、第1のDRRキューに対応するパケット割り当て量を取得し、第1のDRRキューに対応するパケット割り当て量を使用することによって、第1のDRRキューにバッファリングされたパケットがデキューされるようにスケジューリングする。第1のDRRキューに対応するパケット割り当て量は、毎回のキュースケジューリング中に第1のDRRキューからデキューされ得るパケットの事前設定された総量である。デバイスAが、第1のDRRキューにバッファリングされたパケットが存在しないと決定した場合、デバイスAは、第2のDRRキューをスケジューリングする。デバイスAが、第2のDRRキューにバッファリングされたパケットが存在する(デキューされるのを待っているパケットが存在する)と決定した場合、デバイスAは、第2のDRRキューに対応するパケット割り当て量を取得し、第2のDRRキューに対応するパケット割り当て量を使用することによって、第2のDRRキューにバッファリングされたパケットがデキューされるようにスケジューリングする。第2のDRRキューに対応するパケット割り当て量は、毎回のキュースケジューリング中に第2のDRRキューからデキューされ得るパケットの事前設定された総量である。第1のDRRキューに対応するパケット割り当て量と第2のDRRキューに対応するパケット割り当て量との比は、固定されてもよく、例えば、1:2または3:1であり得る。この比は、第1のDRRキューによって占有されるポート帯域幅と第2のDRRキューによって占有されるポート帯域幅との比と同じである。例えば、DRRキューセットに対応するポートレートは300Mbpsであり、第1のDRRキューに対応するパケット割り当て量は1000バイトであり、第2のDRRキューに対応するパケット割り当て量は2000バイトである。第1のDRRキューにバッファリングされたパケットは、(1000/(2000+1000))*300=100Mbpsの最大レートでデキューされてもよく、第2のDRRキューにバッファリングされたパケットは、(2000/(2000+1000))*300=200Mbpsの最大レートでデキューされてもよい。第1のDRRキューに対応するパケット割り当て量が使い果たされる前に、第1のDRRキューにバッファリングされた全てのパケットがデキューされた場合、デバイスAは、第2のDRRキューを直接スケジューリングする。DRRキューセットが3つ以上のDRRキューを含む場合はこの場合と同様であり、詳細はここでは再度説明されない。デバイスAがDRRキューセット内の複数のDRRキューに対してキュースケジューリングを行うプロセスにおいて、少なくとも1つのDRRキューがしばしばパケットをバッファリングしていない状態にある場合、DRRキューセットに含まれる他のDRRキューは、他のDRRキューのポート帯域幅の割合を超えるスケジューリング機会を取得する可能性があり、すなわち、DRRキューセット内の他のDRRキューは、過度に大量の帯域幅を占有する可能性がある。例えば、第1のDRRキューが常に空である(パケットがバッファリングされていない)場合、第2のDRRキューにバッファリングされたパケットは、300Mbpsのレートでデキューされ得る。過度に大量の帯域幅を占有するDRRキューにおいてトラフィックバーストが発生すると、ネットワーク輻輳が発生する可能性があり、パケット伝送における長いレイテンシが引き起こされる。例えば、デバイスAは、第1のDRRキューにバッファリングされたパケットをデバイスBに送信し、第2のDRRキューにバッファリングされたパケットをデバイスCに送信する。デバイスBがパケットを受信する最大レートおよびデバイスCがパケットを受信する最大レートの両方が200Mbpsであり、デバイスAが、第2のDRRキューにバッファリングされたパケットを300MbpsのレートでデバイスCに送信する場合、デバイスCにおいてパケット輻輳が発生し、長いレイテンシが生じる。
前述のレイテンシの問題を解決するために、本出願の実施形態は、キュースケジューリングのための方法および装置を提供して、パケット伝送プロセスにおけるレイテンシを低減し、レイテンシに関する高い要件を有するシナリオにおけるパケット伝送要件を満たす。
図1は、本出願の一実施形態によるシステム10のアーキテクチャの概略図である。図1に示すように、システム10は、第1のデバイス11と、第2のデバイス12と、第3のデバイス13とを含む。第1のデバイス11は、第2のデバイス12および第3のデバイス13と通信可能である。第1のデバイス11、第2のデバイス12、および第3のデバイス13はそれぞれ、転送機能を有するデバイス、例えば、ルータ(router)またはスイッチ(switch)などの転送デバイスであってもよく、または転送機能を有するデバイス、例えば、サーバまたは端末デバイスであってもよい。
端末デバイスは、ユーザに音声および/またはデータ接続性を提供するデバイス、またはデバイス内に配置されたチップである。現在、端末デバイスの一部の例は、産業制御(industrial control)における無線端末、自動運転(self driving)における無線端末、遠隔医療手術(remote medical surgery)における無線端末、スマートグリッド(smart grid)における無線端末、交通安全(transportation safety)における無線端末、スマートシティ(smart city)における無線端末、スマートホーム(smart home)における無線端末、5Gアクセスをサポートする住居用ゲートウェイデバイス(5G-residential gateway、5G-RG)などである。
図2は、本出願の一実施形態によるキュースケジューリングのための方法のフローチャートである。本実施形態では、スケジューリングは、キューを単位として使用することによって行われ、すなわち、キューは、毎回スケジューリングされる。図2を参照して、以下に、本出願のこの実施形態において提供されるキュースケジューリングのための方法を説明する。
S201:第1のデバイスは、第1のキューをスケジューリングするときに第1のパケットバランスを取得し、第1のパケットバランスは、第1のキューからデキューされ得るパケットの量を示す。
例えば、第1のパケット割り当て量は、毎回のキュースケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量であり、または第1のパケット割り当て量は、毎回のキュースケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量と、第1のキューをスケジューリングする前回の間に取得された第1のパケットバランスとの和である。第1のデバイスは、第1のパケット割り当て量を使用することによって、第1のキューにバッファリングされたパケットがデキューされるようにスケジューリングしうる。例えば、第1のキューにバッファリングされた第1のパケットがデキューされた後、第1のパケット割り当て量は、第1のパケットに対応する値だけ減少する。第1のパケットバランスは、第1のパケット割り当て量以下である。換言すれば、第1のキューにバッファリングされたパケットが存在するとき、第1のキューにバッファリングされたパケットがデキューされた後、第1のパケット割り当て量の値は、第1のパケットバランスを取得するために減少される。パケットの量は、パケットの長さまたはパケットの数量であり得る。パケットの量がパケットの数量である場合、全てのパケットの長さは等しくてよい。パケットの量の具体的な形態は、要件に従って設定され得る。
本出願のこの実施形態では、キューからデキューされ得るパケットの量を示す第1のパケットバランス、第1のパケット割り当て量、後続の第2のパケットバランス、後続の第2のパケット割り当て量などは、キューに対応するカウンタまたはトークンバケット内のトークンを使用することによって計算され得る。
S202:第1のデバイスは、第1のパケットバランスに基づいて第2のキューをスケジューリングする。
本出願のこの実施形態では、第1のデバイスは、以下の2つの方式で第2のキューをスケジューリングする:方式1:第1のデバイスは、第1のパケットバランスが消費された後に第2のキューをスケジューリングする。方式2:第1のパケットバランスが第1のキューにバッファリングされた先頭パケットの量未満である場合、第1のデバイスは第2のキューをスケジューリングする。方式1の場合、第1のデバイスは、第1のパケットバランスを消費するプロセスにおいて、第3のキューをスケジューリングするか、または第1のキューを待機状態にスケジューリングしうる。第1のキューと比較して、第3のキューは、レイテンシに関する高い要件を有さないキュー、またはより低い優先度を有するキューであり得る。第3のキューは、第1のパケットバランスを使用することによってスケジューリングされ、その結果、レイテンシを保証することを前提として、第3のキューに対応するポート帯域幅の利用率が改善されうる。方式2の場合、第1のパケットバランスが第1のキューにバッファリングされた先頭パケットの量以上であるとき、第1のデバイスは、S201で述べた、第1のキューにバッファリングされたパケットがデキューされるようにスケジューリングする方式で処理を行いうる。第2のキューは、方式1でスケジューリングされ、その結果、第1のキュー内のパケットをスケジューリングする各回の総時間期間は、同じであり得る。第2のキューは、方式2でスケジューリングされ、その結果、長期間にわたって第1のキューによって取得されるパケットスケジューリング機会は、第1のキューのために構成されたシェア(サブ割り当て量)以上であり得る。
以下では、方式1を例として使用して、第1のデバイスが第2のキューをスケジューリングする前に第1のキューおよび第3のキューをスケジューリングする6つの方式の関連する説明を提供する。以下のスケジューリング方式では、第3のキューは、ベストエフォート(best effort、BE)キューまたは余剰ラウンドロビン(Surplus Round-Robin、SRR)キューであり得る。
スケジューリング方式1:第1のデバイスは、第1のキューにバッファリングされたパケットがデキューされるようにスケジューリングし、第1のデバイスは、第1のキューにバッファリングされたパケットの量が0であるときに第1のパケットバランスを消費し、第1のデバイスは、第1のパケットバランスを消費するプロセスにおいて第3のキューをスケジューリングする。
スケジューリング方式2:第1のデバイスは、第1のキューにバッファリングされたパケットがデキューされるようにスケジューリングし、第1のデバイスは、第1のキューにバッファリングされたパケットの量が0であるときに第1のパケットバランスを消費し、第1のデバイスは、第1のパケットバランスを消費するプロセスにおいて第1のキューを待機状態にスケジューリングする。第1のキューを待機状態にスケジューリングすることは、第1のキューにバッファリングされたパケットがデキューされるようにスケジューリングしないことを意味する。
前述のスケジューリング方式1およびスケジューリング方式2では、第1のキューにバッファリングされたパケットの量は0ではなく、第1のパケット割り当て量は、第1のキューにバッファリングされたパケットをデキューするための要件を満たすことができる。換言すれば、第1のキューにバッファリングされた全てのパケットがデキューされた後、第1のパケットバランスは0ではない。この場合、第1のデバイスは、第2のキューをスケジューリングする前に第1のパケットバランスを消費する。
スケジューリング方式3:第1のデバイスは、第1のキューにバッファリングされたパケットがデキューされるようにスケジューリングし、第1のキューにバッファリングされたパケットの量はM1であり、M1は1以上の整数であり、第1のデバイスは、第1のキューにバッファリングされたパケットの量M2が第1のパケットバランスより大きいときに第1のパケットバランスを消費し、M2はM1以下であり、第1のキューからデキューされたパケットの量はM1とM2との間の差であり、第1のデバイスは、第1のパケットバランスを消費するプロセスにおいて第3のキューをスケジューリングする。
スケジューリング方式4:第1のデバイスは、第1のキューにバッファリングされたパケットがデキューされるようにスケジューリングし、ここで、第1のキューにバッファリングされたパケットの量はM1であり、M1は1以上の整数であり、第1のデバイスは、第1のキューにバッファリングされたパケットの量M2が第1のパケットバランスより大きいときに第1のパケットバランスを消費し、ここで、M2はM1以下であり、第1のキューからデキューされたパケットの量はM1とM2との間の差であり、第1のデバイスは、第1のパケットバランスを消費するプロセスにおいて第1のキューを待機状態にスケジューリングする。第1のキューを待機状態にスケジューリングすることは、第1のキューにバッファリングされたパケットがデキューされるようにスケジューリングしないことを意味する。
前述のスケジューリング方式3およびスケジューリング方式4では、第1のキューにバッファリングされたパケットの量は0ではなく、第1のパケット割り当て量は、第1のキューにバッファリングされたパケットをデキューするための要件を満たすことができず、すなわち、第1のパケットバランスは、第1のキューにバッファリングされたパケットをデキューするための要件を満たさない。換言すれば、第1のパケットバランスは、第1のキューにバッファリングされたパケットの量よりも少ない。この場合、第1のデバイスは、第2のキューをスケジューリングする前に第1のパケットバランスを消費する。
前述のスケジューリング方式1からスケジューリング方式4のいずれか1つにおいて、第1のパケット割り当て量は、S101における任意のパケット割り当て量であってもよく、第1のパケットバランスは、第1のパケット割り当て量と第1のキューからデキューされたパケットの量との間の差である。以下のスケジューリング方式5およびスケジューリング方式6では、第1のパケットバランスは第1のパケット割り当て量であり、第1のパケット割り当て量は、毎回のキュースケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量であり、第1のキューに最初にバッファリングされたパケットの量は0であり、すなわち、第1のキューは最初に空のキューである。
スケジューリング方式5:第1のデバイスは、第1のキューにバッファリングされたパケットの量が0であるときに第1のパケットバランスを消費し、第1のデバイスは、第1のパケットバランスを消費するプロセスにおいて第3のキューをスケジューリングする。
スケジューリング方式6:第1のデバイスは、第1のキューにバッファリングされたパケットの量が0であるときに第1のパケットバランスを消費し、第1のデバイスは、第1のパケットバランスを消費するプロセスにおいて第1のキューを待機状態にスケジューリングする。第1のキューを待機状態にスケジューリングすることは、第1のキューにバッファリングされたパケットがデキューされるようにスケジューリングしないことを意味する。
前述の6つのスケジューリング方式では、第1のパケットバランスを消費するプロセスにおいて、第1のデバイスは、以下の4つの方式で第3のキューをスケジューリングしうる。
スケジューリング方式1:第1のデバイスは、第2のパケット割り当て量を取得し、第2のパケット割り当て量は、毎回のキュースケジューリング中に第3のキューからデキューされ得るパケットの事前設定された総量であり、第1のデバイスは、第1のパケットバランスが第2のパケット割り当て量より大きいとき、第2のパケット割り当て量を消費して、第3のキューにバッファリングされたパケットがデキューされるようにスケジューリングする。任意選択で、第3のキューにバッファリングされたパケットがスケジューリング方式でデキューされるようにスケジューリングされた後、方法は、第1のデバイスが第2のパケットバランスを取得し、第2のパケットバランスは、第1のパケットバランスと第2のパケット割り当て量との間の差であり、第1のデバイスは、第4のキューにバッファリングされたパケットがデキューされるようにスケジューリングするために第2のパケットバランスを消費することをさらに含む。第3のキューと比較して、第4のキューは、より低い優先度を有するキュー、またはレイテンシに対するより低い要件を有するキューであり得る。
スケジューリング方式2:第1のデバイスは、第2のパケット割り当て量を取得し、第2のパケット割り当て量は、毎回のキュースケジューリング中に第3のキューからデキューされ得るパケットの事前設定された総量であり、第1のデバイスは、第1のパケットバランスが第2のパケット割り当て量以下であるときに第1のパケットバランスを消費して、第3のキューにバッファリングされたパケットがデキューされるようにスケジューリングする。
スケジューリング方式3:第1のデバイスは、第2のパケット割り当て量および第3のパケット割り当て量を取得し、第2のパケット割り当て量は、毎回のキュースケジューリング中に第3のキューからデキューされ得るパケットの事前設定された総量であり、第3のパケット割り当て量は、第1のパケットバランスと事前設定された重みとの積であり、事前設定された重みは、0より大きく1より小さく、第1のデバイスは、第3のパケット割り当て量が第2のパケット割り当て量より大きいとき、第2のパケット割り当て量を消費して、第3のキューにバッファリングされたパケットがデキューされるようにスケジューリングする。任意選択で、第3のキューにバッファリングされたパケットがスケジューリング方式でデキューされるようにスケジューリングされた後、方法は、第1のデバイスが第3のパケットバランスを取得し、第3のパケットバランスは第3のパケット割り当て量と第2のパケット割り当て量との間の差であり、第1のデバイスは、第4のキューにバッファリングされたパケットがデキューされるようにスケジューリングするために、第3のパケットバランスを消費することをさらに含む。
スケジューリング方式4:第1のデバイスは、第2のパケット割り当て量および第3のパケット割り当て量を取得し、第2のパケット割り当て量は、毎回のキュースケジューリング中に第3のキューからデキューされ得るパケットの事前設定された総量であり、第3のパケット割り当て量は、第1のパケットバランスと事前設定された重みとの積であり、事前設定された重みは、0より大きく1より小さく、第1のデバイスは、第3のパケット割り当て量が第2のパケット割り当て量以下であるとき、第3のパケット割り当て量を消費して、第3のキューにバッファリングされたパケットがデキューされるようにスケジューリングする。
前述の4つのスケジューリング方式では、第1のデバイスは、先入れ先出し(First-in First-out、FIFO)スケジューリング方法または階層型サービス品質(Hierarchical Quality of Service、HQoS)スケジューリング方法などの従来のスケジューリング方法を使用することによって第3のキューをスケジューリングしうる。これは、本出願のこの実施形態では限定されない。
本出願で提供される他の実施形態では、図2に対応する実施形態で提供される方法に基づいて、第1のデバイスは、キューに割り振られたポート帯域幅、任意の取得されたパケット割り当て量、または任意の取得されたパケットバランスに基づいて対応する持続時間を取得し、持続時間に基づいてキュースケジューリングを行ってもよい。持続時間に基づいて第1のデバイスによってキュースケジューリングを行う概念は、パケットバランスを消費するステップまたはパケット割り当て量を消費するステップが、持続時間に基づいてタイムアウト決定を行うステップに置き換えられることを除いて、パケット割り当て量およびパケットバランスに基づいてキュースケジューリングを行う前述の概念と同じである。パケット割り当て量は、本出願のこの実施形態において言及される任意のパケット割り当て量であり得る。パケットバランスは、本出願のこの実施形態において言及される任意のパケットバランスであり得る。
本出願で提供されるさらに他の実施形態では、図2に対応する実施形態で提供される方法に基づいて、第1のパケットバランスを消費した後、第1のデバイスは、第2のキューをスケジューリングせず、第1のキューをスケジューリングし続けてもよい。第1のデバイスが第1のキューをスケジューリングする方式については、図2に対応する実施形態において提供される方法を参照されたい。
図3は、本出願の一実施形態によるキュースケジューリングのための方法のフローチャートである。本実施形態では、キュースケジューリングは、キューセットを単位として使用することによって行われ、すなわち、キューセットは、毎回スケジューリングされる。この実施形態におけるキューセットは、第1のキューと第2のキューとを含む。キューセットが3つ以上のキューを含むシナリオは、本出願のこの実施形態では再度説明されない。詳細については、以下の実施形態で提供される方法を参照されたい。図3を参照して、以下に、本出願のこの実施形態において提供されるキュースケジューリングのための方法を説明する。
S301:第1のデバイスは、N回目にキューセットをスケジューリングするときに第1のパケットバランスを取得し、第1のパケットバランスは、第1のキューからデキューされ得るパケットの量と第2のキューからデキューされ得るパケットの量との和を示し、Nは1以上の整数である。
例えば、第1のパケットバランスは、キューセットに含まれる全てのキューからデキューされ得るパケットの量の和を示す。本出願のこの実施形態におけるパケットの量の意味については、図2に対応する実施形態における対応する内容を参照されたい。第1のパケットバランスは、第2のパケットバランスと第3のパケットバランスとを含む。第2のパケットバランスは、第2のパケット割り当て量と第1のキューからデキューされたパケットの量との間の差である。第2のパケット割り当て量は、毎回のキューセットスケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量と、前回のキューセットスケジューリング中に取得された第2のパケットバランスとの和であるか、または第2のパケット割り当て量は、毎回のキューセットスケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量である。第3のパケットバランスは、第3のパケット割り当て量と第2のキューからデキューされたパケットの量との間の差である。第3のパケット割り当て量は、毎回のキューセットスケジューリング中に第2のキューからデキューされ得るパケットの事前設定された総量と、前回のキューセットスケジューリング中に取得された第3のパケットバランスとの和であるか、または第3のパケット割り当て量は、毎回のキューセットスケジューリング中に第2のキューからデキューされ得るパケットの事前設定された総量である。
S302:第1のデバイスは、第1のパケットバランスが消費された後、(N+1)回目にキューセットをスケジューリングする。
第1のデバイスが(N+1)回目にキューセットをスケジューリングする方法については、この実施形態において第1のデバイスがN回目にキューセットをスケジューリングする方法を参照されたい。詳細は、ここでは再度説明されない。
本実施形態では、(N+1)回目にキューセットをスケジューリングする前に、第1のデバイスは、以下の4つの方式で、取得された第1のパケットバランスを消費しうる。第1のデバイスは、最初に第1のキューをスケジューリングし、第1のキューのスケジューリングを完了した後に第2のキューをスケジューリングする。第1のデバイスは、第1のキューをスケジューリングするプロセスにおいて第2のパケット割り当て量および第2のパケットバランスを取得しうる。第1のデバイスは、第2のキューをスケジューリングするプロセスにおいて第3のパケット割り当て量および第3のパケットバランスを取得しうる。後続の第3のキューは、BEキューまたはSRRキューであり得る。これは、本出願のこの実施形態では限定されない。
スケジューリング方式1:第1のデバイスは、デキューされる第2のキューにバッファリングされたパケットをスケジューリングし、毎回のキューセットスケジューリング中の第2のキューのスケジューリングは、第1のキューのスケジューリングよりも後であり、第1のデバイスは、第2のキューにバッファリングされたパケットの量が0であるときに第1のパケットバランスを消費し、第1のデバイスは、第1のパケットバランスを消費するプロセスにおいて第3のキューをスケジューリングする。
スケジューリング方式2:第1のデバイスは、第2のキューにバッファリングされたパケットがデキューされるようにスケジューリングし、毎回のキューセットスケジューリング中の第2のキューのスケジューリングは、第1のキューのスケジューリングよりも後であり、第1のデバイスは、第2のキューにバッファリングされたパケットの量が0であるときに第1のパケットバランスを消費し、第1のデバイスは、第1のパケットバランスを消費するプロセスにおいてキューセットを待機状態にスケジューリングする。キューセットを待機状態にスケジューリングすることは、キューセット内のいずれのキューにもバッファリングされたパケットがデキューされるようにスケジューリングしないことを意味する。
スケジューリング方式3:第1のデバイスは、第2のキューにバッファリングされたパケットがデキューされるようにスケジューリングし、第2のキューにバッファリングされたパケットの量はM1であり、M1は1以上の整数であり、毎回のキューセットスケジューリング中の第2のキューのスケジューリングは第1のキューのスケジューリングよりも後であり、第1のデバイスは、第2のキューにバッファリングされたパケットの量M2が第3のパケットバランスよりも大きいときに第1のパケットバランスを消費し、M2はM1以下であり、第1のキューからデキューされたパケットの量はM1とM2との間の差であり、第1のデバイスは、第1のパケットバランスを消費するプロセスにおいて第3のキューをスケジューリングする。
スケジューリング方式4:第1のデバイスは、第2のキューにバッファリングされたパケットがデキューされるようにスケジューリングし、第2のキューにバッファリングされたパケットの量はM1であり、M1は1以上の整数であり、毎回のキューセットスケジューリング中の第2のキューのスケジューリングは第1のキューのスケジューリングよりも後であり、第1のデバイスは、第2のキューにバッファリングされたパケットの量M2が第3のパケットバランスよりも大きいときに第1のパケットバランスを消費し、M2はM1以下であり、第1のキューからデキューされたパケットの量はM1とM2との間の差であり、第1のデバイスは、第1のパケットバランスを消費するプロセスにおいてキューセットを待機状態にスケジューリングする。キューセットを待機状態にスケジューリングすることは、キューセット内のいずれのキューにもバッファリングされたパケットがデキューされるようにスケジューリングしないことを意味する。
前述の4つのスケジューリング方式では、第2のパケット割り当て量は、S301で言及された任意の第2のパケット割り当て量であってもよく、第3のパケット割り当て量は、S301で言及された任意の第3のパケット割り当て量であってもよい。
以下のスケジューリング方式5およびスケジューリング方式6では、第1のキューおよび第2のキューの両方が空のキューであり、第1のデバイスによって第1のキューおよび第2のキューをスケジューリングするシーケンスは、前述の4つのスケジューリング方式におけるスケジューリングキューのシーケンスと同じである。第2のパケット割り当て量は、毎回のキューセットスケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量である。第3のパケット割り当て量は、毎回のキューセットスケジューリング中に第2のキューからデキューされ得るパケットの事前設定された総量である。
スケジューリング方式5:第1のデバイスは、第2のキューにバッファリングされたパケットの量が0であるときに第1のパケットバランスを消費し、毎回のキューセットスケジューリング中の第2のキューのスケジューリングは、第1のキューのスケジューリングよりも後であり、第1のデバイスは、第1のパケットバランスを消費するプロセスにおいて第3のキューをスケジューリングする。
スケジューリング方式6:第1のデバイスは、第2のキューにバッファリングされたパケットの量が0であるときに第1のパケットバランスを消費し、毎回のキューセットスケジューリング中の第2のキューのスケジューリングは、第1のキューのスケジューリングよりも後であり、第1のデバイスは、第1のパケットバランスを消費するプロセスにおいてキューセットを待機状態にスケジューリングする。
前述の6つのスケジューリング方式では、第1のデバイスは、以下の4つの方式で第3のキューをスケジューリングしうる。
スケジューリング方式1:第1のデバイスは、第4のパケット割り当て量を取得し、第4のパケット割り当て量は、毎回のスケジューリング中に第3のキューからデキューされ得るパケットの事前設定された総量であり、第1のデバイスは、第1のパケットバランスが第4のパケット割り当て量より大きいときに第4のパケット割り当て量を消費して、第3のキューにバッファリングされたパケットがデキューされるようにスケジューリングする。任意選択で、第3のキューにバッファリングされたパケットがデキューされるようにスケジューリングされた後、方法は、第1のデバイスが第4のパケットバランスを取得し、第4のパケットバランスは、第1のパケットバランスと第4のパケット割り当て量との間の差であり、第1のデバイスは、第4のパケットバランスを消費して、第4のキューにバッファリングされたパケットがデキューされるようにスケジューリングすることをさらに含む。
スケジューリング方式2:第1のデバイスは、第4のパケット割り当て量を取得し、第4のパケット割り当て量は、毎回のスケジューリング中に第3のキューからデキューされ得るパケットの事前設定された総量であり、第1のデバイスは、第1のパケットバランスが第4のパケット割り当て量以下であるとき、第1のパケットバランスを消費して、第3のキューにバッファリングされたパケットがデキューされるようにスケジューリングする。
スケジューリング方式3:第1のデバイスは、第4のパケット割り当て量および第5のパケット割り当て量を取得し、第4のパケット割り当て量は、毎回のスケジューリング中に第3のキューからデキューされ得るパケットの事前設定された総量であり、第5のパケット割り当て量は、第1のパケット割り当て量と重みとの積であり、重みは0より大きく1より小さく、第1のデバイスは、第5のパケット割り当て量が第4のパケット割り当て量より大きいとき、第4のパケット割り当て量を消費して、第3のキューにバッファリングされたパケットがデキューされるようにスケジューリングする。任意選択で、第3のキューにバッファリングされたパケットがデキューされるようにスケジューリングされた後、方法は、第1のデバイスが第4のパケットバランスを取得し、第4のパケットバランスは、第5のパケット割り当て量と第4のパケット割り当て量との間の差であり、第1のデバイスは、第4のキューにバッファリングされたパケットがデキューされるようにスケジューリングするために、第4のパケットバランスを消費することをさらに含む。
スケジューリング方式4:第1のデバイスは、第4のパケット割り当て量および第5のパケット割り当て量を取得し、第4のパケット割り当て量は、毎回のスケジューリング中に第3のキューからデキューされ得るパケットの事前設定された総量であり、第5のパケット割り当て量は、第1のパケット割り当て量と重みとの積であり、重みは0より大きく1より小さく、第1のデバイスは、第5のパケット割り当て量が第4のパケット割り当て量以下であるときに第5のパケット割り当て量を消費して、第3のキューにバッファリングされたパケットがデキューされるようにスケジューリングする。
本出願で提供される他の実施形態では、図3に対応する実施形態で提供される方法に基づいて、第1のデバイスは、キューに割り振られたポート帯域幅、任意の取得されたパケット割り当て量、または任意の取得されたパケットバランスに基づいて対応する持続時間を取得し、持続時間に基づいてキュースケジューリングを行いうる。持続時間に基づいて第1のデバイスによってキュースケジューリングを行う概念は、パケットバランスを消費するステップまたはパケット割り当て量を消費するステップが、持続時間に基づいてタイムアウト決定を行うステップに置き換えられることを除いて、パケット割り当て量およびパケットバランスに基づいてキュースケジューリングを行う前述の概念と同じである。パケット割り当て量は、本出願のこの実施形態において言及される任意のパケット割り当て量であり得る。パケットバランスは、本出願のこの実施形態において言及される任意のパケットバランスであり得る。
図4は、本出願の一実施形態によるキュースケジューリングのための方法のフローチャートである。図4を参照して、以下に、本出願のこの実施形態において提供されるキュースケジューリングのための方法を説明する。
S401:第1のデバイスは、DSRR(deficit surplus round robin、DSRR)キューセットと、DSRRキューセットに含まれる各DSRRキューに対応するパラメータとを取得する。
例えば、不足余剰ラウンドロビンキューセットは、図3に対応する実施形態において言及されたキューセットであってもよい。DSRRキューは、図2または図3に対応する実施形態における第1のキューまたは第2のキューであってもよい。DSRRキューセットは、少なくとも2つのDSRRキューを含んでもよく、少なくとも2つのDSRRキューは、パケット伝送のために使用される。DSRRキューセット内の各DSRRキューに対応するパラメータは、DSRRキューに対応するパケットサブ割り当て量、パケット割り当て量、およびパケットバランスを含む。
以下では、DSRRキューセットが第1のDSRRキューを含む例を使用することによって、DSRRキューに対応するパラメータを説明する。第1のDSRRキューに対応するパケット割り当て量は、毎回のキュースケジューリング中に第1のDSRRキューからデキューされ得るパケットの事前設定された量であってもよく、または第1のDSRRキューに対応するパケット割り当て量は、毎回のキュースケジューリング中に第1のDSRRキューからデキューされ得るパケットの事前設定された量と、第1のDSRRキューに対応するスケジューリングの前回の間の第1のDSRRキューに対応するパケットバランスとの和であってもよい。毎回のキュースケジューリング中に第1のDSRRキューからデキューされ得るパケットの事前設定された量は、第1のDSRRキューに対応するパケットサブ割り当て量と称され得る。デキューは、キューからパケットを送信することを示す。第1のDSRRキューに対応するパケット割り当て量は、図2に対応する実施形態における第1のパケット割り当て量であり得る。第1のDSRRキューに対応するパケットバランスは、第1のDSRRキューからデキューされ得るパケットの残りの量を示す。第1のDSRRに対応するパケットバランスは、図2に対応する実施形態における第1のパケットバランスであり得る。本出願のこの実施形態では、第1のDSRRキューに対応するパケットバランスは、第1のDSRRキューに対応するパケット割り当て量と第1のDSRRキューからデキューされたパケットの量との間の差であり得る。
上述したように、パケットの量は、パケットの長さを表しうるか、またはパケットの数量を表しうる。説明を容易にするために、パケットの長さは、後の説明のための例として一様に使用される。パケットの量がパケットの長さを示すとき、3つのパラメータ、すなわち、パケットサブ割り当て量、パケット割り当て量、およびパケットバランスの単位は、データの単位、例えば、ビット(bit、b)、バイト(Byte、B)、およびキロバイト(kilobyte、KB)であってもよい。例えば、第1のDSRRキューに対応するパケットサブ割り当て量が1000ビットである場合、毎回のスケジューリング中に、第1のDSRRキューからデキューされ得るパケットの全長は、1000ビットだけさらに増加され得る。第1のDSRRキューに対応するパケット割り当て量が1100ビットである場合、それは、今回のキュースケジューリング中に、第1のDSRRキュー内の1100ビットの全長を有するパケットが和でデキューされ得ることを示す。第1のDSRRキューに対応するパケットバランスが1100ビットである場合、それは、1100ビットの全長を有するパケットが第1のDSRRキューにまだ残っており、デキューされ得ることを示す。後の説明を容易にするために、この実施形態におけるDSRRキューセットは、M個のDSRRキューを含み、Mは2以上の整数である。M個のDSRRキューのうちのi番目のDSRRキューに対応するパケットサブ割り当て量は、Q1[i]によって表され、i番目のDSRRキューに対応するパケット割り当て量は、Q2[i]によって表され、i番目のDSRRキューに対応するパケットバランスは、DC[i]によって表され、iの値範囲は、1≦i≦Mとして表され得る。
以下では、説明のために、第1のデバイスがi番目のDSRRキューを処理する例を使用する。第1のデバイスは、図1の第1のデバイス11または図2に対応する実施形態の第1のデバイスであってもよく、i番目のDSRRキューは、DSRRキューセット内の任意のDSRRキューであってもよい。第1のデバイスがDSRRキューセット内の全てのDSRRキューを処理する方法については、第1のデバイスがi番目のDSRRキューを処理する方法を参照されたい。例は1つずつ記載されていない。
S402:第1のデバイスは、i番目のDSRRキューに対応するパケットサブ割り当て量に基づいて、i番目のDSRRキューに対応するパケット割り当て量を修正する。
例えば、第1のデバイスがi番目のDSRRキューを処理するとき、第1のデバイスは、最初に、i番目のDSRRキューに対応するパケット割り当て量を決定してもよい。例えば、第1のデバイスは、Q1[i]と、前回のキュースケジューリング中に取得されたDC[i]との和を取得し、その和をQ2[i]に割り当ててもよい。したがって、今回のキュースケジューリング中に、i番目のDSRRキューからデキューされ得るパケットの全長は、Q2[i]である。例えば、i番目のDSRRキューに対応するパケットサブ割り当て量Q1[i]は、1000ビットに等しく、前回のキュースケジューリング中のi番目のDSRRキューに対応するパケットバランスDC[i]は、10ビットに等しい。今回のキュースケジューリング中、i番目のDSRRキューに対応するパケット割り当て量Q2[i]は、1000+10=1010ビットである。具体的には、今回のキュースケジューリング中に、i番目のDSRRキューからデキューされ得るパケットの全長は、1010ビットである。
S403:第1のデバイスは、i番目のDSRRキューからデキューされるパケットが存在するかどうかを判定する。i番目のDSRRキューからデキューされるパケットが存在しない場合、第1のデバイスはS406を行い、またはi番目のDSRRキューからデキューされるパケットが存在する場合、第1のデバイスはS404を行う。
例えば、第1のデバイスは、DSRRキューセット内のi番目のDSRRキューに対して、初期値が0であるカウンタを設定する。パケットがi番目のDSRRキューに入るたびに、i番目のDSRRキューに対応するカウンタの値が1だけ増加される。パケットがi番目のDSRRキューからデキューされるたびに、i番目のDSRRキューに対応するカウンタの値は1だけ減少される。このようにして、i番目のDSRRキューに対応するカウンタの値が0であるかどうかを判定することによって、第1のデバイスは、i番目のDSRRキューからデキューされるパケットが存在するかどうかを判定しうる。当然ながら、第1のデバイスは、パケットがi番目のDSRRキューに対応する記憶空間にバッファリングされているかどうかを判定することによって、i番目のDSRRキューからデキューされるパケットが存在するかどうかをさらに判定することができる。
S404:第1のデバイスは、i番目のDSRRキュー内の先頭パケットの長さがi番目のDSRRキューに対応するパケットバランスより大きいかどうかを判定する。i番目のDSRRキューに対応する先頭パケットの長さがi番目のDSRRキューに対応するパケットバランス以下である場合、第1のデバイスはS405を行い、またはi番目のDSRRキュー内の先頭パケットの長さがi番目のDSRRキューに対応するパケットバランスより大きい場合、第1のデバイスはS407を行う。
例えば、i番目のDSRRキューにバッファリングされたパケットは、順次デキューされる。i番目のDSRRキューからデキューされる少なくとも1つのパケットが存在するとき、第1のデキューされる位置にあり、かつ少なくとも1つのデキューされるパケット内にあるパケットは、先頭パケットと称され得る。i番目のDSRRキューの先頭パケットは、i番目のDSRRキューから最初にデキューされるパケットである。i番目のDSRRキューの先頭パケットの長さはL[i]によって表される。i番目のDSRRキューの先頭パケットの長さL[i]は、固定値でなくてもよく、i番目のDSRRキューの先頭パケットの変化に基づいて長さの値が変化する。
例えば、i番目のDSRRキュー内の先頭パケットがデキューされる前に、第1のデバイスは、デキューされる先頭パケットの長さL[i]がDC[i]より大きいかどうかを判定し、決定結果に基づいてS405またはS407を行ってもよい。具体的には、L[i]がDC[i]以下である場合、第1のデバイスはS405を行い、またはL[i]がDC[i]より大きい場合、第1のデバイスはS407を行う。
S405:第1のデバイスは、i番目のDSRRキューにバッファリングされた先頭パケットをデキューし、i番目のDSRRキューに対応する先頭パケットの長さをi番目のDSRRキューに対応するパケットバランスから差し引き、戻ってS403を行う。
例えば、i番目のDSRRキューに対応するパケットバランスDC[i]は、i番目のDSRRキューからデキューされ得る残りのパケットの全長を示す。L[i]がDC[i]以下であるとき、それは、i番目のDSRRキューに対応するパケットバランスが先頭パケットをデキューするための要件を満たすこと、すなわち、先頭パケットがデキューされ得ることを示す。第1のデバイスは、i番目のDSRRキュー内の先頭パケットをi番目のDSRRキューから移動させ、先頭パケットを他のデバイスに送信し得る。例えば、第1のデバイスが図1に示すデバイス11であるとき、第1のデバイスは、i番目のDSRRキュー中の先頭パケットをデバイス12に送信してもよい。
例えば、S402の後、S403が初めて行われるとき、DC[i]の値は、i番目のDSRRキューのパケット割り当て量Q2[i]に等しくてもよい。しかしながら、S405を行うとき、i番目のDSRRキュー内の先頭パケットがデキューされた後、第1のデバイスは、DC[i]からL[i]を差し引き、L[i]とDC[i]との間の差をDC[i]に再割り当てし、すなわち、DC[i]を更新しうる。第1のデバイスは、DC[i]を更新し、これは、先頭パケットをデキューするアクションが、i番目のDSRRキューからデキューされ得る残りのパケットの全長においてL[i]の長さの消費を引き起こすことを示す。例えば、パケットがデキューされる前のi番目のDSRRキューに対応するパケットバランスDC[i]が1010ビットであり、i番目のDSRRキュー内の先頭パケットの長さL[i]が100ビットである場合、第1のデバイスは、100ビットの長さを有するパケットがデキューされた後、DC[i]を910ビットに更新してもよい。
例えば、i番目のDSRRキュー内の先頭パケットがデキューされた後、第1のデバイスは、S403を行って、i番目のDSRRキューが空であるかどうかを再び判定し、決定結果に基づいて、i番目のDSRRキューからデキューされるパケットがなくなるまで、またはi番目のDSRRキューに対応するパケットバランスが先頭パケットの長さ未満になるまで、対応する処理を行う。i番目のDSRRキュー内に先頭パケットが存在し、先頭パケットの長さがi番目のDSRRキューに対応するパケットバランス以下である場合、i番目のDSRRキュー内のパケットはデキューされ得る。i番目のDSRRキューの先頭に位置するk(k≧0)個のパケットの全長がDC[i]未満であり、k+1個のパケットの全長がDC[i]より大きい場合、第1のデバイスは、単一回のキュースケジューリング中にk個のパケットをデキューし、次回のキュースケジューリング中に(k+1)番目のパケットを処理することができる。このようにして、ネットワーク帯域幅リソースの利用効率を改善するために、第1のデバイスが、キュースケジューリング中に、DC[i]よりも短く、DC[i]に最も近い全長を有する複数のパケットをデキューすることが保証され得る。例えば、i番目のDSRRキューには合計5つのパケットが存在し、5つのパケットの長さはそれぞれ100ビット、500ビット、200ビット、210ビット、および800ビットである。5つのパケットのうちの最初の4つのパケットは、順にそれぞれ100ビット、500ビット、200ビット、および210ビットである。S402を行うとき、第1のデバイスは、i番目のDSRRキューに対応するパケット割り当て量が1100ビットであることを取得する。この場合、今回のキュースケジューリングに、キュー内の最初の4つのパケットだけがデキューされることができ、処理後に得られるパケットバランスは90ビットである。800ビットの長さを有する最後のパケットは、デキューされることができず、次回のキュースケジューリング中に処理される必要がある。第1のデバイスは、残りのパケットバランスをi番目のDSRRキュー内の現在の先頭パケットの長さと比較しうる。残りのパケットバランスが90ビットのみであり、800ビットの長さを有する先頭パケットをデキューするための要件は満たされることができないので、第1のデバイスは、次回のキュースケジューリング中に使用するために90ビットの長さを有する残りのパケットバランスを予約し、次回のキュースケジューリング中に処理するために800ビットの長さを有する先頭パケットを予約することができる。
S406:第1のデバイスは、i番目のDSRRキューに対応するパケットバランスに基づいて、今回のキュースケジューリング中のi番目のDSRRキューに対応する待機持続時間を決定し、待機持続時間が満了した後にS407を行う。
例えば、i番目のDSRRキューからデキューされるパケットがなくなった後、第1のデバイスは、i番目のDSRRキューの残りのパケットバランスに基づいて、今回のキュースケジューリング中にi番目のDSRRキューに対応する待機持続時間を決定し、待機持続時間が満了した後にS407を行ってもよい。i番目のDSRRキューに対応する待機持続時間は、i番目のDSRRキューの残りのパケットバランスを消費するために必要な持続時間を示す。
従来のDRR技術では、第1のデバイスのパケット送信速度は比較的変わらないので、第1のデバイスによって処理されるパケットの量が多いほど、消費のための時間期間が長いことを示す。DSRRキューセットの1回目のキュースケジューリングの間に第1のデバイスによってi番目のDSRRキューを処理するために消費される時間期間t1が、DSRRキューセットの2回目のキュースケジューリングの間に第1のデバイスによってi番目のDSRRキューを処理するために消費される時間期間t2よりも短い場合、1回目のキュースケジューリングの間に消費される時間期間T1は、2回目のキュースケジューリングの間に消費される時間期間T2よりも短くなり得ることが明らかである。さらに、DSRRキューセット内のk番目のDSRRキューに常にパケットが存在し、DSRRキューセットの2回のキュースケジューリングの各々の間に合計長さQ1[k]を有するパケットがデキューされる場合、1回目のキュースケジューリングの間にk番目のDSRRキューによって取得されるネットワーク帯域幅リソースはQ1[k]/T1であり、2回目のキュースケジューリングの間にk番目のDSRRキューによって取得されるネットワーク帯域幅リソースはQ1[k]/T2である。T1<T2であるので、1回目のキュースケジューリング中にk番目のDSRRキューによって占有されるネットワーク帯域幅リソースは、2回目のキュースケジューリング中にk番目のDSRRキューによって占有されるネットワーク帯域幅リソースより大きい。第1のデバイスのネットワーク帯域幅リソースの総量は限られているので、k番目のDSRRキューが他のDSRRキューのネットワーク帯域幅リソースを占有することは明らかである。
DSRRキューセット内の任意のDSRRキューが他のDSRRキューのネットワーク帯域幅リソースを占有することができないことを確実にするために、第1のデバイスは、DSRRキューセットに対してキュースケジューリングを行う各回に消費される時間期間を近くなるように制御し得ることが分かる。したがって、第1のデバイスは、残りのDC[i]に基づいて、今回のキュースケジューリング中のi番目のDSRRキューに対応する待機持続時間を決定し、待機持続時間に基づいて待機し得る。待機持続時間は、i番目のDSRRキューが空であるときに、第1のデバイスによってi番目のDSRRキューを処理するために消費される時間期間を補償するために使用される。具体的には、第1のデバイスのポートのポートレートがcであると仮定すると、今回のキュースケジューリングの待機持続時間は、ポートレートcに対するDC[i]の比であり得る。第1のデバイスのポートは、出口ポートであってもよい。例えば、今回のキュースケジューリングの間、DC[i]は2000ビットであり、ポートレートcは500ビット/秒である。この場合、計算を通じて取得された待機持続時間tは4sであり、第1のデバイスは、4s待機した後にS407を行いうる。
S407:第1のデバイスは、DSRRキューセット内に未処理のDSRRキューが存在するかどうかを判定する。DSRRキューセット内に未処理のDSRRキューがまだ存在する場合、第1のデバイスは、未処理のDSRRキューに対してS402~S406を行う。
例えば、i番目のDSRRキューの処理を完了した後、第1のデバイスは、DSRRキューセット内に未処理のDSRRキューがまだ存在するかどうかを判定してもよい。例えば、DSRRキューセットに対してキュースケジューリングを行うとき、第1のデバイスは、最初にiの値を1に設定し、1番目のDSRRキューから処理を開始してもよい。i番目のDSRRキューの処理を完了した後、第1のデバイスは、iの値を1だけ増加させ、次のDSRRキューを処理してもよい。iの値がDSRRキューセット内のDSRRキューの総量M以下であるとき、それは、DSRRキューセット内に未処理のDSRRキューがまだ存在することを示し、第1のデバイスは、i番目のDSRRキューに対してS402~S406に示される方法を行い続けることができる。DSRRキューセット内の全てのDSRRキューが処理された後、それは、第1のデバイスがDSRRキューセットの1回のキュースケジューリングを完了したことを示し、第1のデバイスは、次回のキュースケジューリングを行いうる。
i番目のDSRRキューセットに対応する待機持続時間は、i番目のDSRRキューの残りのパケットバランスに基づいて決定されるので、i番目のDSRRキューセットに対応する待機持続時間は、DSRRキューセットに属さない仮想キューが、今回のキュースケジューリング中にi番目のDSRRキューにおいて完全に使用されていないパケットバランスを使い果たすために必要とされる持続時間に等しい。この場合、i番目のDSRRキューを処理するために消費される持続時間は、i番目のDSRRキューからデキューされたパケットの長さを消費するために必要とされる持続時間と、i番目のDSRRキューからデキューされていないパケットの長さを消費するために必要とされる持続時間とに等しい。i番目のDSRRキューがスケジューリングされるたびにデキューされ得るパケットの全長がQ1[i]によって制限され、第1のデバイスがデキューされるパケットをスケジューリングするかまたはパケットを処理する速度は比較的固定されているので、複数回のキュースケジューリングの後、毎回のキュースケジューリング中に消費される時間期間は固定値Tに近づく。Tの値は、第1のデバイスがパケットをスケジューリングするレートに対するDSRRキューセット内の全てのDSRRキューに対応するパケットサブ割り当て量の和の比に近い。このようにして、パケットがi番目のDSRRキューからデキューされる最大レートは、Q1[i]/Tを超えることができない。DSRRキューセット内の各DSRRキューからパケットがデキューされる最大レートが制限されるので、DSRRキューによって占有され得るネットワーク帯域幅リソースも制限される。このようにして、DSRRキューセット内の任意のDSRRキューは、他のDSRRキューが空であるので、過度に大量のネットワーク帯域幅リソースを占有しない。これは、トラフィックバーストによって引き起こされるネットワーク輻輳およびレイテンシを防止する。
第1の持続時間をより良好に使用するために、具体的には、DSRRキューの残りのパケットバランスの利用を使用するために、一部の他の実装形態では、第1のデバイスは、DSRRキューセットおよび1つのBEキューセットをスケジューリングしうる。DSRRキューセットは、少なくとも2つのDSRRキューを含み得る。BEキューセットは、少なくとも1つのBEキューを含み得る。図5は、本出願の一実施形態によるキュースケジューリングのための方法のフローチャートである。この実施形態では、第1のデバイスは、DSRRキューセットおよびBEキューセットに対してキュースケジューリングを行いうる。この実施形態は、BEキューセットが1つのBEキューを含む例を使用することによって説明される。BEキューセットが複数のBEキューを含むとき、第1のデバイスは、BEキューセットをスケジューリングするときに事前設定されたスケジューリングポリシーに従ってスケジューリングを行いうる。単一回のキュースケジューリングのプロセスにおいて、第1のデバイスは、最初に、DSRRキューセット内の任意のDSRRキューを処理し、DSRRキューの処理を完了した後、DSRRキューの残りのパケットバランスに基づいてBEキューを処理することができる。図5を参照して、以下に、この実施形態において提供されるキュースケジューリングのための方法を説明する。
S501:第1のデバイスは、DSRRキューセットに含まれる各DSRRキューに対応するパラメータ、およびBEキューに対応するパラメータを取得する。
例えば、第1のデバイスは、図4に対応する実施形態におけるS401の方式で、DSRRキューセットに含まれる各DSRRキューに対応するパラメータを取得してもよく、BEキューに対応するパラメータをさらに取得してもよい。DSRRキューおよびBEキューの両方は、パケット伝送のために使用され得る。
例えば、単一回のキュースケジューリングの間に、第1のデバイスは、DSRRキューセット内のDSRRキューの処理を完了した後にBEキューを処理し、BEキューの処理を完了した後にDSRRキューセット内の次のDSRRキューを処理してもよい。DSRRキューセット内の次のDSRRキューのスケジューリングは、スケジューリングされたDSRRキューのスケジューリングよりも後である。以下では、説明のために、第1のデバイスがi番目のDSRRキューおよびBEキューを処理する例を使用する。i番目のDSRRキューは、DSRRキューセット内の任意のDSRRキューであり得る。第1のデバイスがDSRRキューセット内の全てのDSRRキューを処理する方法については、第1のデバイスがi番目のDSRRキューを処理する方法を参照されたい。例は1つずつ記載されていない。BEキューに対応するパラメータは、BEキューに対応するパケット割り当て量およびパケットバランスを含み得る。BEキューに対応するパケット割り当て量は、今回のキュースケジューリング中にBEキューからデキューされ得るパケットの全長を示す。BEキューに対応するパケット割り当て量は、i番目のDSRRキューのパケットバランスDC[i]と、前回のキュースケジューリングの後に取得されたBEキューのパケットバランスとの和に等しい。BEキューに対応するパケットバランスは、BEキューからデキューされ得る残りのパケットの長さを示す。BEキューに対応するパケットバランスは、BEキューに対応するパケット割り当て量と、BEキューからデキューされたパケットの長さとの間の差である。この実施形態におけるDSRRキューセットは、M個のDSRRキューを含み、Mは2以上の整数である。BEキューに対応するパケット割り当て量は、Q[BE]によって表され、BEキューに対応するパケットバランスは、DC[BE]によって表される。加えて、i番目のDSRRキューに対応するパケットバランスは、DC[i]によって表されてもよく、iの値の範囲は、1≦i≦Mとして表されてもよい。
BEキューセットが複数のBEキューを含むとき、BEキューセット内の各BEキューに対応するパラメータと、複数のBEキューをスケジューリングするための方法とが、このステップで取得される。任意選択で、BEキューセットが複数のBEキューを含むとき、複数のBEキューの各々に対応する優先度が、このステップでさらに取得されてもよい。
S502:第1のデバイスは、i番目のDSRRキューを処理し、i番目のDSRRキューのパケットバランスに基づいて、BEキューに対応するパケット割り当て量を取得する。
例えば、i番目のDSRRキューは、図2に対応する実施形態における第1のキューであってもよい。第1のデバイスは、最初にi番目のDSRRキューを処理しうる。具体的な処理方法については、図4に対応する実施形態におけるステップS402からステップ18を参照されたい。詳細は、ここでは再度説明されない。i番目のDSRRキューの処理を完了した後、第1のデバイスは、i番目のDSRRに対応するパケットバランスDC[i]に基づいて、BEキューに対応するパケット割り当て量Q[BE]を取得しうる。例えば、第1のデバイスは、DC[i]と、前回のキュースケジューリング中のBEキューに対応するパケットバランスDC[BE]との和を取得し、今回のキュースケジューリング中のQ[BE]として和を使用してもよい。i番目のDSRRキューの残りのパケットバランスDC[i]は、今回のキュースケジューリング中にi番目のDSRRキューによって完全に使用することができないパケットバランスを表してもよく、例えば、i番目のDSRRキューにバッファリングされたパケットの量が0であるときにDC[i]であってもよく、またはi番目のDSRRキューにバッファリングされたパケットの量が0であるときにパケット割り当て量Q2[i]であってもよい。前回のキュースケジューリング中のBEキューに対応するパケットバランスDC[BE]が0である場合、またはBEキューが初めてスケジューリングされる場合、BEキューに対応するパケット割り当て量Q[BE]は、i番目のDSRRに対応するパケットバランスDC[i]に等しい。
S503:第1のデバイスは、BEキューからデキューされるパケットが存在するかどうかを判定する。BEキューからデキューされるパケットが存在しない場合、第1のデバイスはS506を行い、または、BEキューからデキューされるパケットが存在する場合、第1のデバイスはS504を行う。
S504:BEキュー内の先頭パケットの長さがBEキューに対応するパケットバランスより大きいかどうかを判定する。BEキュー内の先頭パケットの長さがBEキューに対応するパケットバランスより大きい場合、第1のデバイスはS507を行い、または、BEキュー内の先頭パケットの長さがBEキューに対応するパケットバランス以下である場合、第1のデバイスはS505を行う。
例えば、本実施形態では、BEキューにおける先頭パケットの長さはL[BE]として表されてもよい。BEキューの先頭パケットが変化すると、それに応じてL[BE]も変化する。第1のデバイスがBEキューセットに対してキュースケジューリングを行い、BEキューセットが複数のBEキューを含む場合、BEキュー内の先頭パケットは、BEキューセットに含まれるBEキューから最初にデキューされるパケットであり得る。第1のデバイスがBEキューセットに含まれる複数のBEキューをスケジューリングする方法では、第1のデバイスは、第1のデバイスがDSRRキューセットに含まれる複数のDSRRキューをスケジューリングする方法を使用してもよく、または複数のBEキューの優先度もしくは複数のBEキューのソートに基づいて複数のBEキューに対してキュースケジューリングを行ってもよい。詳細はここでは説明されない。
例えば、第1のデバイスは、図4に対応する実施形態に含まれるS403に示される方法を使用することによって、BEキューからデキューされるパケットが存在するかどうかを判定してもよい。BEキューからデキューされるパケットが存在しない場合、第1のデバイスはS506を行いうる。BEキューからデキューされるパケットが存在するとき、第1のデバイスは、BEキュー内の先頭パケットの長さがBEキューに対応するパケットバランスDC[BE]よりも大きいかどうかを判定し続けてもよい。第1のデバイスが初めてS504を行うとき、DC[BE]の値は、BEキューに対応するパケット割り当て量Q[BE]に等しくてよい。
例えば、第1のデバイスが、BEキュー内の先頭パケットの長さL[BE]がDC[BE]以下であることを検出した場合、それは、現在のBEキューに対応するパケットバランスDC[BE]が、先頭パケットをBEキューからデキューするための要件を満たすことができることを示し、第1のデバイスはS505を行ってもよい。L[BE]がDC[BE]より大きいことを第1のデバイスが検出した場合、それは、現在のBEキューに対応するパケットバランスDC[BE]が、BEキューから先頭パケットをデキューするための要件を満たすことができないこと、すなわち、先頭パケットをBEキューからデキューされることができないことを示す。この場合、第1のデバイスは、S507を行ってもよく、具体的には、DSRRキューセット内の次のDSRRキューを直接処理してもよく、BEキュー内の先頭パケットを出力するために使用される残りのパケットバランスは、BEキューをスケジューリングする次の時間の間に使用するために蓄積されてもよい。BEキューに長さの長いパケットが存在する場合、BEキューに対応するパケットバランスDC[BE]は、キュースケジューリング中に連続的に蓄積され得る。したがって、長い長さを有するパケットをデキューするための前述の要件が満たされ、長い長さを有するパケットを時間内にデキューすることに失敗したことによって引き起こされるBEキューの輻輳が防止される。
一部の可能な実装形態では、DSRRキューをスケジューリングするたびに消費される持続時間が同じであることを保証するために、第1のデバイスは、L[BE]がDC[BE]より大きいときにS507を行い、DC[BE]を消費して(DC[BE]とポート帯域幅との比に基づいて取得された持続時間が満了するのを待って)、DSRRキューに対応するレイテンシをさらに低減しうる。
S505:第1のデバイスは、先頭パケットをBEキューからデキューし、BEキュー内の先頭パケットの長さをBEキューのパケットバランスから差し引き、S503を行う。
この実施形態では、第1のデバイスは、DC[BE]がL[BE]以上であるとき、BEキュー内の先頭パケットをデキューしうる。BEキュー内の先頭パケットがデキューされた後、第1のデバイスは、DC[BE]とL[BE]との間の差を取得し、その差をDC[BE]に再割り当てしうる。これにより、BEキューの先頭のパケットがデキューされた後、DC[BE]が減少される。これにより、BEキューにバッファリングされたパケットが無制限にデキューされることを防止する。例えば、BEキューに対応するパケットバランスDC[BE]が500ビットであり、BEキュー内の先頭パケットの長さL[BE]が100ビットである場合、第1のデバイスは、100ビットの長さを有するこのパケットをデキューし、DC[BE]を400ビットに更新してもよい。
DC[BE]の更新を完了した後、第1のデバイスは、戻ってS504を行い、BEキューが空であるかどうか、およびBEキュー内の先頭パケットの長さがBEキューに対応する更新されたパケットバランスより大きいかどうかを再び判定しうる。このようにして、単一回のキュースケジューリングの間に、BEキュー内に先頭パケットが存在し、先頭パケットの長さがBEキューに対応するパケットバランスよりも大きくない場合、BEキュー内のパケットは連続的にデキューされることができる。このようにして、BEキュー内の要件を満たす全長を有する複数のパケットがデキューされ、ネットワーク帯域幅リソースが完全に利用されることが保証される。
S506:第1のデバイスは、BEキューに対応するパケットバランスを消費し、消費後にS507を行う。
例えば、一実装形態では、第1のデバイスは、BEキューに対応するパケットバランスを使用して低優先度キューをスケジューリングし、BEキューに対応するパケットバランスが消費された後にS507を行いうる。他の実装形態では、BEキューからデキューされるパケットが存在しないとき、第1のデバイスは、DC[BE]に基づいて、今回のキュースケジューリング中に必要とされる待機持続時間を決定し、待機しうる。待機持続時間を決定する方式は、図4に対応する実施形態におけるS407と同様である。待機持続時間が満了した後、第1のデバイスはS507を行う。
S507:第1のデバイスは、DSRRキューセット内に未処理のDSRRキューが存在するかどうかを判定する。DSRRキューセット内に未処理のDSRRキューがまだ存在する場合、第1のデバイスは、未処理のDSRRキューに対してS502~S506を行う。
例えば、BEキューのスケジューリングを完了した後、第1のデバイスは、図4に対応する実施形態のステップ18の方法において、DSRRキューセット内に未処理のDSRRキューがまだ存在すると決定してもよい。DSRRキューセット内に(i+1)番目の未処理のDSRRキューが存在するとき、第1のデバイスは、(i+1)番目のDSRRキューに対してS502~S506の方法を行いうる。DSRRキューセットに含まれる全てのDSRRキューについてキュースケジューリングが完了されたとき、それは、第1のデバイスがDSRRキューセットの1回のキュースケジューリングを完了したことを示し、第1のデバイスは、次回のキュースケジューリングを行いうる。
この実施形態では、i番目のDSRRキューの処理を完了した後、第1のデバイスは、i番目のDSRRキューに対応するパケットバランスを使用して、BEキューにバッファリングされたパケットをスケジューリングする。このようにして、DSRRキューによって完全に使用されていないパケットバランスが、BEキューにバッファリングされたパケットをスケジューリングするために使用され得る。このようにして、DSRRキューセット内の複数のDSRRキュー内のパケットがデキューされる最大レートを設定することを前提として、ネットワーク帯域幅リソースの利用率が改善される。
一部の可能な実装形態では、第1のデバイスは、あるいは、DSRRキューセットに含まれる全てのDSRRキューがスケジューリングされた後に、DSRRキューセット内の複数のDSRRキューにバッファリングされたパケットを最初にスケジューリングし、複数のDSRRキューの残りのパケットバランスの和に基づいて、BEキューにバッファリングされたパケットをスケジューリングし、すなわち、S502を完了した後にS507を直接行い、次いで、DSRRキューセット内の複数のDSRRキューの処理を完了した後にS504を行いうる。
さらに、元は空のDSRRキューについて、BEキュー内のパケットがデキューされるプロセスにおいて新しいパケットが取得され得ることを考慮すると、一部の可能な実装形態では、DSRRキューが空であると決定し、DC[i]に基づいてDC[BE]を更新した後、第1のデバイスは、DC[i]を直接クリアしない場合がある。代わりに、BEキュー中の先頭パケットまたはDSRRキュー中の先頭パケットがDC[BE]を消費した後、第1のデバイスは、DC[i]およびDC[BE]の両方からL[BE]を差し引く。このように、BEキューからパケットがデキューされる過程で、元は空であったi番目のDSRRキューに新たなパケットが追加されたと仮定される。パケットの長さがDC[BE]未満である場合、パケットは、次回のキュースケジューリングを待つことなく、直接デキューされ得る。
前述の実施形態では、DSRRキューセット内の複数のDSRRキューに対して、第1のデバイスは、複数のDSRRキュー内のパケットがデキューされる最高レートを設定して、他のDSRRキューが空であるときにDSRRキューが過度に大量のネットワーク帯域幅リソースを占有することを防止し、DSRRキュー内のパケットの最大レイテンシを低減してもよく、すなわち、DSRRキュー内のパケットに対してレイテンシ上限が設けられる。BEキューの場合、第1のデバイスは、DSRRキュー内のパケットのレイテンシ上限を保証しながら、BEキューのために可能な限り多くのネットワーク帯域幅リソースを提供しうる。
一部の可能な実装形態では、第1のデバイスは、ネットワーク帯域幅リソースに対する特定の要件を有するが、レイテンシ上限に対する高い要件を有さない1つ以上のキューをさらにスケジューリングしうる。本出願の本実施形態では、これらのキューは、SRRキューと称され得る。第1のデバイスが複数のSRRキューをスケジューリングするとき、複数のSRRキューは、SRRキューセットと総称され得る。
この実施形態では、DSRRキューは、図2または図3に対応する実施形態における第1のキューであってもよく、SRRキューは、図2または図3に対応する実施形態における第3のキューであってもよく、BEキューは、図2または図3に対応する実施形態における第4のキューであってもよく、DSRRキューセットは、図3に対応する実施形態における第1のキューセットであってもよい。
図6は、本出願の一実施形態によるキュースケジューリングのための方法のフローチャートである。この実施形態では、第1のデバイスは、DSRRキューセット内の複数のDSRRキューに対してキュースケジューリングを行いうる。単一回のキュースケジューリングのプロセスでは、第1のデバイスは、DSRRキューセット内の複数のDSRRキューを最初に処理し、次いでSRRキューを処理し、最後にBEキューを処理しうる。図6を参照して、以下に、この実施形態において提供されるキュースケジューリングのための方法を説明する。
S601:第1のデバイスは、DSRRキューセットに含まれる各DSRRキューに対応するパラメータ、SRRキューセットに含まれる各SRRキューに対応するパラメータ、およびBEキューに対応するパラメータを取得する。
例えば、図5に対応する実施形態のS501に示す方式で、DSRRキューセットに含まれる各DSRRキューに対応するパラメータおよびBEキューに対応するパラメータを取得することに加えて、第1のデバイスは、SRRキューセットに含まれる各SRRキューに対応するパラメータをさらに取得してもよい。SRRキューに対応するパラメータは、SRRキューに対応するパケットサブ割り当て量、理論パケットサブ割り当て量、パケット割り当て量、およびパケットバランスを含みうる。以下では、SRRキューセットが第1のSRRキューを含む例を使用することによって、SRRキューに対応するパラメータを説明する。第1のSRRキューに対応するパケットサブ割り当て量は、デキューされることが可能であり、1回のキュースケジューリングの間に第1のSRRキューにさらに追加されるパケットの全長を示す。第1のSRRキューに対応するパケットサブ割り当て量は、第1のSRRキューの理論上のパケットサブ割り当て量およびi番目のDSRRキューのパケットバランスのうちの小さい方の値である。例えば、第1のSRRキューの理論上のパケットサブ割り当て量が1000ビットであるが、キュースケジューリングの時間の間に、i番目のDSRRキューに対応するパケットバランスが500ビットである場合、今回のキュースケジューリング中に、第1のSRRキューのパケットサブ割り当て量は500ビットである。第1のSRRキューに対応する理論上のパケットサブ割り当て量は、毎回のキュースケジューリング中に第1のSRRキューからデキューされ得るパケットの事前設定された最大長であり得る。第1のSRRキューに対応するパケット割り当て量は、第1のSRRキューに対応するパケットサブ割り当て量と、前回のキュースケジューリング中の第1のSRRキューのパケットバランスとの和であり得る。第1のSRRキューに対応するパケットバランスは、第1のDSRRキューからデキューされ得る残りのパケットの長さを示し得る。DSRRキューと同様に、本出願のこの実施形態では、第1のSRRキューに対応するパケットバランスは、第1のSRRキューに対応するパケット割り当て量と第1のSRRキューからデキューされたパケットの長さとの間の差であり得る。
例えば、DSRRキューセットはN個のDSRRキューを含み、SRRキューセットはM個のSRRキューを含み、Nは2以上の整数であり、Mは1以上の整数である。M個のSRRキューのj番目のSRRキューに対応するパケットサブ割り当て量は、Q1[j]によって表され、j番目のSRRキューに対応する理論上のパケットサブ割り当て量は、Q1*[j]によって表され、j番目のSRRキューに対応するパケット割り当て量は、Q2[j]によって表され、j番目のSRRキューに対応するパケットバランスは、DC[j]によって表される。加えて、i番目のDSRRキューに対応するパケットバランスは、DC[i]によって表されてもよく、BEキューに対応するパケット割り当て量およびパケットバランスは、それぞれQ[BE]およびDC[BE]によって表されてもよい。iの値の範囲は1≦i≦Nと表されてもよく、jの値の範囲は1≦j≦Mと表され得る。
S602:第1のデバイスは、DSRRキューセット内のi番目のDSRRキューを処理する。
例えば、第1のデバイスは、i番目のDSRRキューを最初に処理してもよい。具体的な処理方法については、図4に対応する実施形態におけるステップS402からステップ18を参照されたい。詳細は、ここでは再度説明されない。
S603:第1のデバイスは、i番目のDSRRキューのパケットバランスが0より大きいかどうかを判定する。i番目のDSRRキューのパケットバランスが0に等しい場合、第1のデバイスはS611を行い、またはDSRRキューセット内のi番目のDSRRキューのパケットバランスが0より大きい場合、第1のデバイスはS604を行う。
S604:SRRキューセットは、デキューされるパケットがバッファリングされるSRRキューを含むかどうかを判定する。SRRキューセットが、デキューされるパケットがバッファリングされているSRRキューを含む場合、S605が行われ、またはSRRキューセット内の全てのSRRキューが空のキューである(デキューされるパケットがバッファリングされていない)場合、S606が行われる。
例えば、i番目のDSRRキューのキュースケジューリングを完了した後、第1のデバイスは、i番目のDSRRキューのパケットバランスDC[i]が0に等しいかどうかを最初に判定してもよい。DC[i]が0に等しい場合、それは、i番目のDSRRキュー内に未消費のパケットバランスが存在しないことを示し、第1のデバイスは、DC[i]を使用することによって、SRRキューセット内の任意のSRRキュー内にバッファリングされたパケットおよびBEキュー内にバッファリングされたパケットがデキューされるようにスケジューリングすることができない。次いで、第1のデバイスは、S610を行って、次のDSRRキューを処理するか、またはDSRRキューセットの次回のキュースケジューリングを行う。DC[i]が0より大きい場合、それは、i番目のDSRRキュー内に未消費のパケットバランスが存在することを示し、第1のデバイスは、DC[i]を使用することによって、SRRキューセット内のSRRキュー内にバッファリングされたパケットおよびBEキュー内にバッファリングされたパケットがデキューされるようにスケジューリングしうる。第1のデバイスは、デキューされるパケットがバッファリングされているSRRキューをSRRキューセットが含むかどうかを判定し続けてもよい。SRRキューセットに含まれる全てのSRRキューが空のキューである場合、それは、第1のデバイスが、DC[i]を使用することによって、デキューされるSRRキューセット内の任意のSRRキューにバッファリングされたパケットをスケジューリングすることができないことを示し、第1のデバイスは、S606を行いうる。SRRキューセットに含まれる少なくとも1つのSRRキューがデキューされるパケットをバッファリングする場合、第1のデバイスは、DC[i]を使用することによって、SRRキューセット内にあり、デキューされるパケットがバッファリングされるSRRキューをスケジューリングしてもよく、第1のデバイスはS605を行いうる。
S605:第1のデバイスは、i番目のDSRRキューに対応するパケットバランスに基づいて、SRRキューセット内の複数のSRRキューを処理する。
例えば、第1のデバイスは、DC[i]に基づいて、SRRキューセット中の1つ以上のSRRキューに対してキュースケジューリングを行ってもよい。DC[i]がSRRキューセットに含まれる全てのSRRキューに対応するパケット割り当て量以上であるとき、第1のデバイスは、DC[i]に基づいてSRRキューセットに対して1回または複数回のキュースケジューリングを行いうる。DC[i]がSRRキューセットに含まれる全てのSRRキューに対応するパケット割り当て量未満であるとき、第1のデバイスは、DC[i]を使用することによってSRRキューセット内の全てのSRRキューに対して1回のキュースケジューリングを行うことができず、SRRキューセット内の一部のSRRキューに対してのみキュースケジューリングを行いうる。図7において提供される方法を参照して、以下は、第1のデバイスがSRRキューセット内のSRRキューをスケジューリングする例を説明する。図7は、本出願の一実施形態によるキュースケジューリングのための方法の概略フローチャートである。以下では、説明のために、第1のデバイスがSRRキューセット内のj番目のSRRキューを処理する例を使用する。j番目のSRRキューは、SRRキューセット内の任意のSRRキューであり得る。第1のデバイスがSRRキューセット内の全てのSRRキューを処理する方法については、第1のデバイスがj番目のSRRキューを処理する方法を参照されたい。例は1つずつ記載されていない。
S6051:第1のデバイスは、j番目のSRRキューからデキューされるパケットが存在するかどうかを判定する。j番目のSRRキューからデキューされるパケットが存在しない場合、第1のデバイスはS6057を行い、またはj番目のSRRキューからデキューされるパケットが存在する場合、第1のデバイスはS6052を行う。
例えば、第1のデバイスは、図4に対応する実施形態におけるS403の方法において、j番目のSRRキューからデキューされるパケットが存在するかどうかを判定してもよい。j番目のSRRキューからデキューされるパケットが存在するとき、第1のデバイスはS6052を行い得、またはj番目のSRRキューからデキューされるパケットが存在しないとき、第1のデバイスはS6057を行い得る。
S6052:第1のデバイスは、j番目のSRRキューに対応する理論上のパケットサブ割り当て量に基づいて、j番目のSRRキューに対応するパケットサブ割り当て量を決定し、j番目のSRRキューに対応するパケットサブ割り当て量に基づいて、j番目のSRRキューに対応するパケット割り当て量およびi番目のDSRRキューに対応するパケットバランスを更新する。
例えば、j番目のSRRキューからデキューされるパケットが存在するとき、第1のデバイスは、j番目のSRRに対応する理論上のパケットサブ割り当て量Q1*[j]とi番目のDSRRキューに対応するパケットバランスDC[i]とのうちの小さい方の値を選択し、その値をj番目のSRRキューに対応するパケットサブ割り当て量Q1[j]として使用してもよい。第1のデバイスは、Q1[j]に基づいて、j番目のSRRキューに対応するパケット割り当て量Q2[j]およびi番目のDSRRキューに対応するパケットバランスDC[i]を更新しうる。具体的には、第1のデバイスは、Q1[j]と、前回のキュースケジューリング中のj番目のSRRキューに対応するパケットバランスDC[j]との和を最初に取得し、その和をQ2[j]に割り当てうる。第1のデバイスは、i番目のDSRRキューに対応するパケットバランスDC[i]とj番目のSRRキューに対応するパケットサブ割り当て量Q1[j]との間の差をさらに取得し、その差をi番目のDSRRキューに対応するパケットバランスDC[i]に再割り当てしうる。このように、Q2[j]が増加すると、それに同期してDC[i]が減少する。これは、第1のデバイスが、i番目のDSRRキューによって完全に使用されていないパケットバランスから、値がQ1[j]であるパケットバランスを抽出し、値がQ1[j]であり、完全に使用されていないパケットバランスをQ2[j]に転送して、その後、j番目のSRRキューに対してキュースケジューリングを行うことと等価である。例えば、キュースケジューリングの時間の間、DC[i]は2000ビットであり、Q1*[j]は1000ビットであり、前回のキュースケジューリングでj番目のSRRキューによって取得されたパケットバランスDC[j]は10ビットである。今回のキュースケジューリング中、j番目のSRRキューに対応するパケットサブ割り当て量Q1[j]は1000ビットであり、j番目のSRRキューに対応するパケット割り当て量Q2[j]は1000+10=1010ビットであり、i番目のDSRRキューに対応するパケットバランスDC[i]は2000-1000=1000ビットである。
S6053:第1のデバイスは、j番目のSRRキュー内の先頭パケットの長さがj番目のSRRキューに対応するパケットバランスより大きいかどうかを判定する。j番目のSRRキュー内の先頭パケットの長さがj番目のSRRキューに対応するパケットバランスより大きい場合、第1のデバイスはS6057を行い、またはj番目のSRRキュー内の先頭パケットの長さがj番目のSRRキューに対応するパケットバランス以下である場合、第1のデバイスはS6054を行う。
例えば、DSRRキューおよびBEキューと同様に、SRRキューにバッファリングされたパケットは、順番にデキューされる。SRRキューからデキューされる少なくとも1つのパケットが存在するとき、キューの第1の位置にあり、かつ少なくとも1つのデキューされるパケット内にあるパケットは、先頭パケットと称され得る。j番目のSRRキューの先頭パケットの長さはL[j]として表される。j番目のSRRキューの先頭パケットが変化すると、それに応じてL[j]が変化する。j番目のSRRキュー内の先頭パケットの長さL[j]がDC[j]以下である場合、それは、j番目のSRRキューに対応するパケットバランスがj番目のSRRキューから先頭パケットをデキューするための要件を満たすことができることを示し、第1のデバイスはS6054を行いうる。L[j]がDC[j]より大きい場合、それは、j番目のSRRキューに対応するパケットバランスがj番目のSRRキューから先頭パケットをデキューするための要件を満たすことができないこと、すなわち、先頭パケットがj番目のSRRキューからデキューされることができないことを示し、第1のデバイスはS6057を行いうる。j番目のSRRキュー内に長さの長いパケットが存在するとき、DC[j]は、第1のデバイスによってSRRキューセットに対して行われる複数回のキュースケジューリング中に連続的に蓄積して、長さの長いパケットをデキューするための要件を満たし、長さの長いパケットが時間内に送信されることができないためにj番目のSRRキューが輻輳するのを防止しうる。第1のデバイスが初めてS6053を行うとき、DC[j]の値は、j番目のSRRキューに対応するパケット割り当て量Q2[j]に等しくてもよい。
S6054:第1のデバイスは、j番目のSRRキューからデキューされる先頭パケットをスケジューリングし、j番目のSRRキュー内の先頭パケットの長さL[j]をj番目のSRRキューに対応するパケットバランスDC[j]から差し引く。
例えば、L[j]がDC[j]以下であると決定した後、第1のデバイスは、j番目のSRRキュー内の先頭パケットをデキューし、DC[j]とL[j]との間の差を取得し、その差をDC[j]に再割り当てして、DC[j]を更新してもよい。
S6055:第1のデバイスは、j番目のSRRキューからデキューされるパケットが存在するかどうかを判定する。j番目のSRRキューからデキューされるパケットが存在しない場合、第1のデバイスはS6056を行い、またはj番目のSRRキューからデキューされるパケットが存在する場合、第1のデバイスはS6053を行う。
例えば、DC[j]の更新を完了した後、第1のデバイスは、図4に対応する実施形態において提供されるS403の方法において、j番目のSRRキューからデキューされるパケットが存在するかどうかを再び判定し、j番目のSRRキューからデキューされるパケットが存在するとき、戻ってS6053を行い、j番目のSRRキュー内の新しい先頭パケットがデキューされ得るかどうかを判定してもよい。j番目のSRRキューからデキューされるパケットが存在しない場合、第1のデバイスはS6056を行い得る。
例えば、SRRキューセットの単一回のキュースケジューリング中に、j番目のSRRキュー内に先頭パケットが存在し、先頭パケットのパケットがj番目のSRRキューに対応するパケットバランスより大きくない場合、j番目のSRRキュー内のパケットは連続的にデキューされてもよい。したがって、第1のデバイスは、ネットワーク帯域幅リソースを完全に利用するために、j番目のSRRキュー内の要件を満たす全長を有する複数のパケットをデキューしうる。
S6056:第1のデバイスは、j番目のSRRキューに対応するパケットバランスに基づいて、i番目のDSRRキューに対応するパケットバランスを更新する。
例えば、j番目のSRRキューからデキューされるパケットが存在しないと決定した後、第1のデバイスは、DC[j]に基づいてDC[i]を更新してもよい。例えば、第1のデバイスは、DC[j]とDC[i]との和を取得し、その和をDC[i]に再割り当てして、DC[i]を更新してもよい。DC[i]の更新を完了した後に、第1のデバイスは、j番目のSRRキューのスケジューリングを終了し、S6057を行いうる。
例えば、j番目のSRRキューからデキューされるパケットが存在しないとき、第1のデバイスは、デキューされるj番目のSRRキューにバッファリングされたパケットをスケジューリングすることによって、j番目のSRRキューに対応するパケットバランスを消費することができない。DC[j]は、j番目のSRRキューに対する超過パケットバランスである。したがって、第1のデバイスは、DC[j]の値をDC[i]に転送してもよく、その結果、SRRキューセット内の他のSRRキューは、j番目のSRRキュー内で消費され得ないパケットバランスを使用する。
S6057:第1のデバイスは、SRRキューセット内に未処理のSRRキューが存在するかどうかを判定する。SRRキューセット内に未処理のSRRキューがまだ存在する場合、第1のデバイスは未処理のSRRキューに対してS6051を行い、またはSRRキューセット内に未処理のSRRキューが存在しない場合、第1のデバイスはS604を行う。
例えば、L[j]がDC[j]より大きいこと、またはj番目のSRRキューからデキューされるパケットが存在しないことを決定した後、第1のデバイスは、j番目のSRRキューのキュースケジューリングを終了し、SRRキューセット内に未処理のSRRキューがまだ存在するかどうかを判定してもよい。例えば、第1のデバイスは、図4に対応する実施形態のS407の方法において、SRRキューセット内にスケジューリングされていないSRRキューがまだ存在すると決定してもよい。SRRキューセット内にまだスケジューリングされていないSRRキューが存在するとき、第1のデバイスは、SRRキューセット内の全てのSRRキューのキュースケジューリングが完了されるまで、スケジューリングされていないSRRキューに対してS6051からS6056に示される方法を行う。
例えば、S6051~S6056を周期的に行うことによって、第1のデバイスは、SRRキューセット内の複数のSRRキューに対してキュースケジューリングを行ってもよい。SRRキューセット内にスケジューリングされていないSRRキューが存在しないとき、それは、第1のデバイスがSRRキューセット内の全てのSRRキューのキュースケジューリングを完了したことを示し、今回のキュースケジューリングは終了する。したがって、第1のデバイスは、戻ってS604を行い、次回のキュースケジューリングがSRRキューセットに対して行われる必要があるかどうかを判定しうる。
S606:第1のデバイスは、i番目のDSRRキューに対応するパケットバランスに基づいて、BEキューに対応するパケット割り当て量を決定する。
例えば、SRRキューセットからデキューされるパケットを有するSRRキューがなく、DC[i]が0でないとき、第1のデバイスは、デキューされるSRRキューセット内の任意のSRRキューにバッファリングされたパケットをスケジューリングすることによって、DSRRキューによって完全に使用されていないパケットバランスDC[i]を消費することができない。第1のデバイスは、BEキューにバッファリングされたパケットがデキューされるようにスケジューリングすることによってDC[i]を消費しうる。
BEキューにバッファリングされたパケットがデキューされるようにスケジューリングする前に、第1のデバイスは、BEキューに対応するパケット割り当て量Q[BE]を、まず決定しうる。第1のデバイスは、DC[i]と、処理の前回の間のBEキューの残りのパケットバランスDC[BE]との和を取得し、その和をQ[BE]として使用して、後続の処理を行いうる。
S607:第1のデバイスは、BEキューからデキューされるパケットが存在するかどうかを判定する。BEキューからデキューされるパケットが存在しない場合、第1のデバイスはS610を行い、または、BEキューからデキューされるパケットが存在する場合、第1のデバイスはS608を行う。
S608:BEキュー内の先頭パケットの長さがBEキューに対応するパケットバランスより大きいかどうかを判定する。BEキュー内の先頭パケットの長さがBEキューに対応するパケットバランスより大きい場合、S611が行われ、またはBEキュー内の先頭パケットの長さがBEキューに対応するパケットバランス以下である場合、S609が行われる。
前述の実施形態と同様に、第1のデバイスは、図5に対応する実施形態におけるS503の方式で、BEキューからデキューされるパケットが存在するかどうかを判定しうる。BEキューからデキューされるパケットが存在しない場合、それは、第1のデバイスが、BEキューにバッファリングされたパケットをスケジューリングすることによって、BEキューに対応するパケットバランスを消費することができないことを示し、第1のデバイスは、S610を行いうる。BEキューからデキューされるパケットが存在する場合、第1のデバイスは、BEキュー内の先頭パケットの長さがBEキューに対応するパケットバランスDC[BE]よりも大きいかどうかを判定し続けてもよい。BEキュー内の先頭パケットの長さL[BE]がDC[BE]以下である場合、それは、現在のBEキューに対応するパケットバランスDC[BE]が、先頭パケットをBEキューからデキューするための要件を満たすことができることを示し、第1のデバイスはS609を行いうる。L[BE]がDC[BE]より大きい場合、それは、現在のBEキューに対応するパケットバランスDC[BE]が、BEキューから先頭パケットをデキューするための要件を満たすことができないこと、すなわち、先頭パケットがBEキューからデキューされることができないことを示す。この場合、第1のデバイスは、S611を行ってもよく、具体的には、DSRRキューセット内の次のDSRRキューを直接処理してもよく、BEキュー内の先頭パケットを出力するために使用される残りのパケットバランスは、次にBEキューからデキューされるパケットをスケジューリングするために蓄積されてもよい。このようにして、BEキュー内に長い長さを有する長いパケットが存在するとき、BEキューに対応するパケットバランスDC[BE]は、キュースケジューリング中に連続的に蓄積され得る。したがって、長い長さを有するパケットをデキューするための要件が満たされ、BEキューは、長い長さを有する先頭パケットによってスタックされない。
S609:第1のデバイスは、先頭パケットをBEキューからデキューし、BEキュー内の先頭パケットの長さをBEキューに対応するパケットバランスから差し引き、S607を行う。
BEキューからデキューされるパケットが存在し、L[BE]がDC[BE]以下であるとき、第1のデバイスは、S504に示す方法でBEキューから先頭パケットをデキューし、DC[BE]を更新しうる。詳細は、ここでは再度説明されない。
S610:第1のデバイスは、BEキューに対応するパケットバランスを消費し、消費後にS611を行う。
例えば、第1のデバイスは、図5に対応する実施形態におけるS506の方式で、今回のキュースケジューリング中にi番目のDSRRキューに対応するパケットバランスを決定し、パケットバランスが消費された後にS611を行ってもよい。詳細は、ここでは再度説明されない。
S611:第1のデバイスは、DSRRキューセット内に未処理のDSRRキューが存在するかどうかを判定する。DSRRキューセット内に未処理のDSRRキューがまだ存在する場合、第1のデバイスは、未処理のDSRRキューに対してS604からS610を行う。
BEキューのスケジューリングを完了した後、第1のデバイスは、図4に対応する実施形態のステップ18の方法において、DSRRキューセット内に未処理のDSRRキューがまだ存在すると決定しうる。DSRRキューセット内に未処理のDSRRキューが存在するとき、第1のデバイスは、未処理のDSRRキューに対してS604から38の方法を行い続けてもよい。DSRRキューセット内の全てのDSRRキューが処理された後、それは、第1のデバイスがDSRRキューセットの今回のキュースケジューリングを完了したことを示し、第1のデバイスは、次回のキュースケジューリングを行いうる。
この実施形態では、第1のデバイスは、DSRRキューセット、SRRキューセット、およびBEキューをスケジューリングしうる。この実施形態において提供される方法を行うことによって、第1のデバイスは、DSRRキューに対してパケットスケジューリングを優先的に行い、DSRRキューセット内の全てのDSRRキュー内のパケットがデキューされる最大レートを設定して、レイテンシ上限に対する厳しい要件を有するパケットに対する要件を満たす転送サービスを提供しうる。第1のデバイスは、DSRRキューをスケジューリングした後にSRRキューをさらにスケジューリングし、SRRキューをスケジューリングするステップは、DSRRキューをスケジューリングするステップと同様であり、その結果、DSRRキューの正常な動作を保証することを前提として、可能な限り多くのネットワーク帯域幅リソースがSRRキューに割り振られることができる。第1のデバイスは、BEキューを最終的にスケジューリングし、その結果、DSRRキューおよびSRRキューに影響を及ぼすことなく、ネットワーク帯域幅リソースの利用率が改善されうる。
一部の可能な実装形態では、第1のデバイスは、あるいは、処理のためにDSRRキューセット内の複数のDSRRキューにバッファリングされたパケットを最初にスケジューリングし、全てのDSRRキューを処理した後、複数のDSRRキューの残りのパケットバランスに基づいてSRRキューセットまたはBEキューを処理してもよく、すなわち、S602を完了した後にS611を直接行い、次いで、DSRRキューセット内の複数のDSRRキューの処理を完了した後にS604を行いうる。
SRRキューセット内の複数のSRRキューによって取得されるネットワーク帯域幅リソースのバランスをとるために、ステップ34がスキップされた後、第1のデバイスは、SRRキューをスケジューリングするこの時間の進行を記録してもよく、その結果、ステップ34が次に行われるとき、SRRキューをスケジューリングする前回の進行が引き続き行われる。
具体的には、第1のデバイスは、Q1[j]を決定するために、理論的なパケットサブ割り当て量Q1*[j]を、j番目のSRRキューに対応する残りのパケットサブ割り当て量と置き換えうる。j番目のSRRキューに対応する残りのパケットサブ割り当て量は、SRRキューセットの今回のキュースケジューリング中に第1のデバイスによってj番目のSRRキューに割り振られ得る残りのパケットサブ割り当て量を示す。本出願のこの実施形態では、j番目のSRRキューに対応する残りのパケットサブ割り当て量は、LQ1[j]によって表される。
毎回設定されたSRRキューセットに対してキュースケジューリングを行う前に、第1のデバイスは、SRRキューセット内の各SRRキューに対応する残りのパケットサブ割り当て量をj番目のSRRキューに対応する理論上のパケットサブ割り当て量に調整する、すなわち、LQ1[j]の初期値をQ1*[j]に設定しうる。SRRキューセット中のj番目のSRRキューをスケジューリングするとき、第1のデバイスは、LQ1[j]およびDC[i]に基づいてQ1[j]を決定し、Q1[j]に基づいてQ2[j]を最初に決定しうる。第1のデバイスは、LQ1[j]とQ1[j]との間の差をさらに取得し、その差をLQ1[j]に再割り当てしうる。したがって、新しいパケットサブ割り当て量がj番目のSRRキューに割り振られた後、LQ1[j]は、それに応じて減少し得る。第1のデバイスは、DC[i]およびLQ1[j]のうち小さい方をQ1[j]として選択しうる。したがって、LQ1[j]が連続的に減少するにつれて、LQ1[j]の値が0であるとき、取得されたQ1[j]は0であり、新しいパケットサブ割り当て量は、j番目のSRRキューに割り振られることができない。したがって、SRRキューセットのキュースケジューリングの単一回の間に、j番目のSRRキュー内のQ1*[j]の全長を有する最大のパケットがデキューされることができる。第1のデバイスは、j番目のSRRキューを処理するための前述の方法でSRRキューセット内の複数のSRRキューを処理しうる。SRRキューセット内の全てのSRRキューが処理された後、SRRキューセットの今回のキュースケジューリングは終了し、第1のデバイスは、SRRキューセットの次回のキュースケジューリングを行いうる。
LQ1[j]は、付加的に追加され、j番目のSRRキューからデキューされ得る残りのパケットの合計長さの最大値を示し、それは、第1のデバイスが、j番目のSRRキューの処理を完了するために、SRRキューセットの今回のキュースケジューリング中に、LQ1[j]の長さを有するパケットサブ割り当て量をj番目のSRRキューにさらに割り振る必要があることを示す。このようにして、新しいパケットサブ割り当て量をSRRキューに割り振るとき、第1のデバイスは、それに応じて、残りのパケットサブ割り当て量を更新する。これは、SRRキューセット内の複数のSRRキューに対応する残りのパケットサブ割り当て量に、SRRキューセットに対して第1のデバイスによって行われた今回のキュースケジューリングの進行を記録することと等価である。このようにして、毎回第1のデバイスによってSRRキューセットに対して行われるキュースケジューリングは、不十分なDC[i]に起因して依然として中断され得るが、SRRキューセットに対して行われる毎回のキュースケジューリングが中断されるときの進行は、SRRキューセット内の複数のSRRキューに対応する残りのパケットサブ割り当て量に記憶される。第1のデバイスが再びステップ34を行うとき、第1のデバイスは、SRRキューセットに対してキュースケジューリングを行い続けるために、前の処理の進行に従いうる。このようにして、第1のデバイスによってSRRキューセットに対して行われるキュースケジューリングは、DSRRキューによって完全に使用されていないパケットバランスに依然として依存するが、第1のデバイスがSRRキューセットに対してキュースケジューリングを行う特定のプロセスは、第1のデバイスによってDSRRキューセットに対して行われるキュースケジューリングの進行によって影響されない。換言すれば、SRRキューセット内の複数のSRRキューに割り振られるネットワーク帯域幅リソースの割合が、複数のSRRキューの理論上のパケットサブ割り当て量の割合と一致することを保証するために、第1のデバイスによってSRRキューセットに対して行われるキュースケジューリングおよび第1のデバイスによってDSRRキューセットに対して行われるキュースケジューリングは、互いに独立している。
例えば、SRRキューセットがSRRキューAおよびSRRキューBを含み、SRRキューAに対応する理論上のパケットサブ割り当て量Q1*[A]が800ビットであり、SRRキューBに対応する理論上のパケットサブ割り当て量Q1*[B]が700ビットであると仮定される。SRRキューセットのキュースケジューリングを開始する前に、第1のデバイスは、SRRキューAの残りのパケットサブ割り当て量LQ1[A]が800ビットであり、SRRキューBの残りのパケットサブ割り当て量LQ1[B]が700ビットであると最初に決定しうる。
第1のデバイスがDSRRキューセット内のi番目のDSRRキューを処理した後、i番目のDSRRキューに対応するパケットバランスQ[i]は500ビットである。LQ1[A]がDC[i]よりも大きいので、第1のデバイスは、SRRキューAのパケットサブ割り当て量Q1[A]が500ビットであると決定し、LQ1[A]とQ1[A]との間の差を取得し、その差をLQ1[A]に再割り当てしうる。今回設定されたSRRキューに対する処理が完了されると、LQ1[A]は300ビットに変化する。第1のデバイスは、パケットサブ割り当て量をSRRキューBに割り振らない(第1のデバイスは、今回のキュースケジューリングの間、キューBをスケジューリングしない)ため、LQ1[B]は、依然として700ビットである。
第1のデバイスがk番目のDSRRキューを処理した後、k番目のDSRRキューに対応するパケットバランスQ[k]は800ビットである。この場合、LQ1[A]はDC[k]よりも小さく、第1のデバイスは、Q1[A]が300ビットであると決定し、DC[k]を500ビットに更新しうる。SRRキューAの処理を完了した後、第1のデバイスは、SRRキューBを処理しうる。LQ1[B]がDC[k]よりも大きいので、第1のデバイスは、SRRキューBに対応するパケットサブ割り当て量Q1[B]が500ビットであると決定し、LQ1[B]を200ビットに更新しうる。このSRRキューセット時間のスケジューリングが完了された後、LQ1[A]は0ビットに変化し、LQ1[B]は200ビットに変化する。
第1のデバイスがn回目のキューを処理した後、n回目のDSRRキューに対応するパケットバランスQ[n]は300ビットである。この場合、LQ1[A]は0であり、第1のデバイスは、SRRキューAを処理しないが、SRRキューBを直接処理する。LQ1[B]がDC[n]よりも小さいので、第1のデバイスは、Q1[B]が200ビットであると決定し、LQ1[B]を0ビットに更新し、DC[n]を100ビットに更新しうる。SRRキューBの処理を完了した後、第1のデバイスは、LQ1[A]およびLQ1[B]の値が両方とも0であることに基づいて、SRRキューセットの今回のキュースケジューリングが終了したと決定しうる。この場合、第1のデバイスは、LQ1[A]を800ビットに再更新し、LQ1[B]を700ビットに更新し、DC[n]に基づいてSRRキューAおよびSRRキューBを処理して、SRRキューセットの次回のキュースケジューリングを行いうる。
一部の可能な実装形態では、複数のSRRキュー間の均等な割り振りの原理を考慮して、第1のデバイスは、SRRキューセット内の各SRRキューに対応する事前設定された重みおよびDSRRキューに対応するパケットバランスに基づいて、SRRキューセット内の各SRRキューに対応するパケットサブ割り当て量をさらに決定しうる。具体的には、第1のデバイスは、j番目のSRRキューに対応する事前設定された重みに、i番目のDSRRキューに対応するパケットバランスDC[i]を乗算して、j番目のSRRキューに対応するパケットサブ割り当て量Q1[j]を取得してもよい。事前設定された重みは、当業者によって能動的に構成されてもよく、またはSRRキューセット内の各SRRキューに対応する理論的パケットサブ割り当て量に基づいて第1のデバイスによって決定されてもよい。例えば、第1のデバイスは、SRRキューセット内の複数のSRRキューにそれぞれ対応する複数の理論パケットサブ割り当て量の和を最初に取得し、理論パケットサブ割り当て量の和において各SRRキューの理論パケットサブ割り当て量によって占有される割合を計算し、比率をSRRキューの事前設定された重みとして使用する。例えば、SRRキューセットがSRRキューAおよびSRRキューBを含み、SRRキューAに対応する理論上のパケットサブ割り当て量Q1*[A]が1000ビットであり、SRRキューBに対応する理論上のパケットサブ割り当て量Q1*[B]が1500ビットであると仮定される。キュースケジューリングの時間の間、DSRRキューセット内のi番目のDSRRキューに対応するパケットバランスDC[i]は500ビットである。Q1*[A]対Q1*[B]の比が2:3であるので、SRRキューAに対応するパケットサブ割り当て量およびSRRキューBに対応するパケットサブ割り当て量を決定するとき、第1のデバイスは、DC[i]の5分の2をSRRキューAに対応するパケットサブ割り当て量として使用し、DC[i]の5分の3をSRRキューBに対応するパケットサブ割り当て量として使用しうる。したがって、SRRキューAに対応するパケットサブ割り当て量は200ビットであり、SRRキューBに対応するパケットサブ割り当て量は300ビットである。
図8を参照されたい。本出願の一実施形態は、キュースケジューリングのための装置800をさらに提供する。装置800は、図2に示す実施形態におけるステップS201およびステップS202を行うために、第1のデバイスに配置され得る。あるいは、第1のデバイスは装置800であってもよく、第1の取得ユニット801と第1のスケジューリングユニット802とを含んでよい。第1の取得ユニット801は、図2に示す実施形態におけるステップS201を行うように構成されてもよく、第1のスケジューリングユニット802は、図2に示す実施形態におけるステップS202を行うように構成されてもよい。具体的には、第1の取得ユニット801は、第1のキューをスケジューリングするときに第1のパケットバランスを取得するように構成され、第1のパケットバランスは、第1のキューからデキューされ得るパケットの量を示す。第1のスケジューリングユニット802は、第1のパケットバランスに基づいて第2のキューをスケジューリングする。第1のスケジューリングユニット801は、第1のパケットバランスが消費された後に第2のキューをスケジューリングするように特に構成される。あるいは、第1のスケジューリングユニット801は、第1のパケットバランスが第1のキューにバッファリングされた先頭パケットの量未満であるとき、第2のキューをスケジューリングするように特に構成される。本出願のこの実施形態における第1のデバイスに配置された装置800は、図4から図7に対応する実施形態において単一のキューをユニットとして使用することによってキュースケジューリングを行うための対応する方法を実装するようにさらに構成され得る。
例えば、第1のパケットバランスは、第1のパケット割り当て量と第1のキューからデキューされたパケットの量との間の差であり、第1のパケット割り当て量は、毎回のキュースケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量と、第1のキューをスケジューリングする前回の間に取得された第1のパケットバランスとの和である。装置800は、第1のスケジューリングユニット801が第2のキューをスケジューリングする前に、第1のキューにバッファリングされたパケットがデキューされるようにスケジューリングするように構成された第2のスケジューリングユニット803と、第1のキューにバッファリングされたパケットの量が0であるときに第1のパケットバランスを消費するように構成された第1の消費ユニット804と、第1のパケットバランスを消費するプロセスにおいて、第3のキューをスケジューリングするか、または第1のキューを待機状態にスケジューリングするように構成された第3のスケジューリングユニット805とをさらに含む。
例えば、第1のパケットバランスは、第1のパケット割り当て量と第1のキューからデキューされたパケットの量との間の差であり、第1のパケット割り当て量は、毎回のキュースケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量と、第1のキューをスケジューリングする前回の間に取得された第1のパケットバランスとの和である。装置800は、第1のスケジューリングユニット801が第2のキューをスケジューリングする前に、第1のキューにバッファリングされたパケットがデキューされるようにスケジューリングするように構成された第2のスケジューリングユニット803であって、第1のキューにバッファリングされたパケットの量がM1であり、M1が1以上の整数である、第2のスケジューリングユニット803と、第1のキューにバッファリングされたパケットの量M2が第1のパケットバランスより大きいときに第1のパケットバランスを消費するように構成された第1の消費ユニット804であって、M2がM1以下であり、第1のキューからデキューされたパケットの量がM1とM2との間の差である、第1の消費ユニット804と、第1のパケットバランスを消費するプロセスにおいて、第3のキューをスケジューリングするか、または第1のキューを待機状態にスケジューリングするように構成された第3のスケジューリングユニット805とをさらに含む。
例えば、第1のパケットバランスは、第1のパケット割り当て量と第1のキューからデキューされたパケットの量との間の差であり、第1のパケット割り当て量は、毎回のキュースケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量である。装置800は、第1のスケジューリングユニット801が第2のキューをスケジューリングする前に、第1のキューにバッファリングされたパケットがデキューされるようにスケジューリングするように構成された第2のスケジューリングユニット803であって、第1のキューにバッファリングされたパケットの量がM1であり、M1が1以上の整数である、第2のスケジューリングユニット803と、第1のキューにバッファリングされたパケットの量が0であるときに第1のパケットバランスを消費するように構成された第1の消費ユニット804と、第1のパケットバランスを消費するプロセスにおいて、第3のキューをスケジューリングするか、または第1のキューを待機状態にスケジューリングするように構成された第3のスケジューリングユニット805とをさらに含む。
例えば、第1のキューにバッファリングされたパケットの量は0であり、第1のパケットバランスは第1のパケット割り当て量であり、第1のパケット割り当て量は、毎回のキュースケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量である。装置800は、第2のキューをスケジューリングする前に、第1のキューにバッファリングされたパケットの量が0であるときに第1のパケットバランスを消費するように構成された第2の消費ユニット806と、第1のパケットバランスを消費するプロセスにおいて、第3のキューをスケジューリングするか、または第1のキューを待機状態にスケジューリングするように構成された第3のスケジューリングユニット805とをさらに含む。
具体的には、第3のスケジューリングユニット805は、以下の複数の方式で第3のキューをスケジューリングしうる。
方式1:第3のスケジューリングユニット805は、第2のパケット割り当て量を取得するように特に構成され、第2のパケット割り当て量は、毎回のキュースケジューリング中に第3のキューからデキューされ得るパケットの事前設定された総量である。第3のスケジューリングユニット805は、第1のパケットバランスが第2のパケット割り当て量より大きいとき、第2のパケット割り当て量を消費して、第3のキューにバッファリングされたパケットがデキューされるようにスケジューリングするように特に構成される。一実装形態では、第3のキューがスケジューリングされた後、装置800は、第2のパケットバランスを取得するように構成された第2の取得ユニット807であって、第2のパケットバランスは、第1のパケットバランスと第2のパケット割り当て量との間の差である、第2の取得ユニット807と、第2のパケットバランスを消費して、第4のキューにバッファリングされたパケットがデキューされるようにスケジューリングするように構成された第3の消費ユニット806とをさらに含む。第4のキューは、その優先度が第3のキューの優先度よりも低いキュー、またはそのスケジューリング順序が第3のキューのスケジューリング順序よりも後であるキューであり得る。
方式2:第3のスケジューリングユニット805は、第2のパケット割り当て量を取得するように特に構成され、第2のパケット割り当て量は、毎回のキュースケジューリング中に第3のキューからデキューされ得るパケットの事前設定された総量である。第3のスケジューリングユニット805は、第1のパケットバランスが第2のパケット割り当て量以下であるときに第1のパケットバランスを消費して、第3のキューにバッファリングされたパケットがデキューされるようにスケジューリングするように特に構成される。
方式3:第3のスケジューリングユニット805は、第2のパケット割り当て量および第3のパケット割り当て量を取得するように特に構成され、第2のパケット割り当て量は、毎回のキュースケジューリング中に第3のキューからデキューされ得るパケットの事前設定された総量であり、第3のパケット割り当て量は、第1のパケットバランスと事前設定された重みとの積であり、事前設定された重みは0より大きく1より小さい。第3のスケジューリングユニット805は、第3のパケット割り当て量が第2のパケット割り当て量より大きいとき、第2のパケット割り当て量を消費して、第3のキューにバッファリングされたパケットがデキューされるようにスケジューリングするように特に構成される。一実装形態では、第3のキューがスケジューリングされた後、装置800は、第3のパケットバランスを取得するように構成された第3の取得ユニット808であって、第3のパケットバランスは、第3のパケット割り当て量と第2のパケット割り当て量との間の差である、第3の取得ユニット808と、第4のキューにバッファリングされたパケットがデキューされるようにスケジューリングするために、第3のパケットバランスを消費するように構成された第4の消費ユニット809とをさらに含む。第4のキューは、その優先度が第3のキューの優先度よりも低いキュー、またはそのスケジューリング順序が第3のキューのスケジューリング順序よりも後であるキューであり得る。
方式4:第3のスケジューリングユニット805は、第2のパケット割り当て量および第3のパケット割り当て量を取得するように特に構成され、第2のパケット割り当て量は、毎回のキュースケジューリング中に第3のキューからデキューされ得るパケットの事前設定された総量であり、第3のパケット割り当て量は、第1のパケットバランスと事前設定された重みとの積であり、事前設定された重みは0より大きく1より小さい。第3のスケジューリングユニット805は、第3のパケット割り当て量が第2のパケット割り当て量以下であるときに第3のパケット割り当て量を消費して、第3のキューにバッファリングされたパケットがデキューされるようにスケジューリングするように特に構成される。
図9を参照されたい。本出願の一実施形態は、キューセット内のキューをスケジューリングするための装置900をさらに提供する。装置900は第1のデバイスにおいて使用され、第1のデバイスは、図3に示す実施形態におけるステップS301およびステップS302を行いうる。装置900は、第1の取得ユニット901および第1のスケジューリングユニット902を含みうる。第1の取得ユニット901は、図3に示す実施形態のステップS301を行うように構成されてもよく、第1のスケジューリングユニット902は、図3に示す実施形態のステップS302を行うように構成されてもよい。具体的には、第1の取得ユニット901は、キューセットがN回目にスケジューリングされたときに第1のパケットバランスを取得するように構成され、キューセットは第1のキューおよび第2のキューを含み、第1のパケットバランスは第1のキューおよび第2のキューからデキューされ得るパケットの量を示し、Nは1以上の整数である。第1のスケジューリングユニット902は、第1のパケットバランスが消費された後、(N+1)回目にキューセットをスケジューリングするように構成される。本出願のこの実施形態における第1のデバイスに配置された装置900は、図4から図7に対応する実施形態では、複数のキューを含むキューセットを単位として使用することによってキュースケジューリングを行うための対応する方法を実装するようにさらに構成され得る。
可能な実装形態では、第1のパケットバランスは、第2のパケットバランスおよび第3のパケットバランスを含み、第2のパケットバランスは、第2のパケット割り当て量と第1のキューからデキューされたパケットの量との差であり、第2のパケット割り当て量は、毎回のキューセットスケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量と前回のキューセットスケジューリング中に取得された第2のパケットバランスとの和であり、第3のパケットバランスは、第3のパケット割り当て量と第2のキューからデキューされたパケットの量との差であり、第3のパケット割り当て量は、毎回のキューセットスケジューリング中に第2のキューからデキューされ得るパケットの事前設定された総量と前回のキューセットスケジューリング中に取得された第3のパケットバランスとの和である。装置900は、第1のスケジューリングユニット902が(N+1)回目のキューセットをスケジューリングする前に、第2のキューにバッファリングされたパケットがデキューされるようにスケジューリングするように構成された第2のスケジューリングユニット903であって、毎回のキューセットスケジューリング中の第2のキューのスケジューリングが第1のキューのスケジューリングよりも後である、第2のスケジューリングユニット903と、第2のキューにバッファリングされたパケットの量が0であるときに第1のパケットバランスを消費するように構成された第1の消費ユニット904と、第1のパケットバランスを消費するプロセスにおいて、第3のキューをスケジューリングするか、またはキューセットを待機状態にスケジューリングするように構成された第3のスケジューリングユニット905とをさらに含む。
可能な実装形態では、第1のパケットバランスは、第2のパケットバランスおよび第3のパケットバランスを含み、第2のパケットバランスは、第2のパケット割り当て量と第1のキューからデキューされたパケットの量との差であり、第2のパケット割り当て量は、毎回のキューセットスケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量と前回のキューセットスケジューリング中に取得された第2のパケットバランスとの和であり、第3のパケットバランスは、第3のパケット割り当て量と第2のキューからデキューされたパケットの量との差であり、第3のパケット割り当て量は、毎回のキューセットスケジューリング中に第2のキューからデキューされ得るパケットの事前設定された総量と前回のキューセットスケジューリング中に取得された第3のパケットバランスとの和である。装置900は、第1のスケジューリングユニット902が(N+1)回目のキューセットをスケジューリングする前に、第2のキューにバッファリングされたパケットがデキューされるようにスケジューリングし、第2のキューにバッファリングされたパケットの量がM1であり、M1が1以上の整数であり、毎回のキューセットスケジューリング中の第2のキューのスケジューリングが第1のキューのスケジューリングよりも後であるように構成された第2のスケジューリングユニット903と、第2のキューにバッファリングされたパケットの量M2が第3のパケットバランスより大きく、M2がM1以下であり、第1のキューからデキューされたパケットの量がM1とM2との間の差であるとき、第1のパケットバランスを消費するように構成された第1の消費ユニット904と、第1のパケットバランスを消費するプロセスにおいて、第3のキューをスケジューリングするか、またはキューセットを待機状態にスケジューリングするように構成された第3のスケジューリングユニット905とをさらに含む。
可能な実装形態では、第1のパケットバランスは、第2のパケットバランスおよび第3のパケットバランスを含み、第2のパケットバランスは、第2のパケット割り当て量と第1のキューからデキューされたパケットの量との間の差であり、第2のパケット割り当て量は、毎回のキューセットスケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量であり、第3のパケットバランスは、第3のパケット割り当て量と第2のキューからデキューされたパケットの量との間の差であり、第3のパケット割り当て量は、毎回のキューセットスケジューリング中に第2のキューからデキューされ得るパケットの事前設定された総量である。装置900は、第1のスケジューリングユニット902が(N+1)回目のキューセットをスケジューリングする前に、第2のキューにバッファリングされたパケットがデキューされるようにスケジューリングするように構成された第2のスケジューリングユニット903であって、毎回のキューセットスケジューリング中の第2のキューのスケジューリングが第1のキューのスケジューリングよりも後である、第2のスケジューリングユニット903と、第2のキューにバッファリングされたパケットの量が0であるときに第1のパケットバランスを消費するように構成された第1の消費ユニット904と、第1のパケットバランスを消費するプロセスにおいて、第3のキューをスケジューリングするか、またはキューセットを待機状態にスケジューリングするように構成された第3のスケジューリングユニット905とをさらに含む。
可能な実装形態では、第1のパケットバランスは、第2のパケットバランスおよび第3のパケットバランスを含み、第2のパケットバランスは、第2のパケット割り当て量と第1のキューからデキューされたパケットの量との間の差であり、第2のパケット割り当て量は、毎回のキューセットスケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量であり、第3のパケットバランスは、第3のパケット割り当て量と第2のキューからデキューされたパケットの量との間の差であり、第3のパケット割り当て量は、毎回のキューセットスケジューリング中に第2のキューからデキューされ得るパケットの事前設定された総量である。装置900は、第1のスケジューリングユニット902が(N+1)回目のキューセットをスケジューリングする前に、第2のキューにバッファリングされたパケットがデキューされるようにスケジューリングし、第2のキューにバッファリングされたパケットの量がM1であり、M1が1以上の整数であり、毎回のキューセットスケジューリング中の第2のキューのスケジューリングが第1のキューのスケジューリングよりも後であるように構成された第2のスケジューリングユニット903と、第2のキューにバッファリングされたパケットの量M2が第3のパケットバランスより大きく、M2がM1以下であり、第1のキューからデキューされたパケットの量がM1とM2との間の差であるとき、第1のパケットバランスを消費するように構成された第1の消費ユニット904と、第1のパケットバランスを消費するプロセスにおいて、第3のキューをスケジューリングするか、またはキューセットを待機状態にスケジューリングするように構成された第3のスケジューリングユニット905とをさらに含む。
可能な実装形態では、第1のキューおよび第2のキューにバッファリングされたパケットの量は0であり、第1のパケットバランスは、第2のパケットバランスおよび第3のパケットバランスを含み、第2のパケットバランスは、第2のパケット割り当て量と第1のキューからデキューされたパケットの量との間の差であり、第2のパケット割り当て量は、毎回のキューセットスケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量であり、第3のパケットバランスは、第3のパケット割り当て量と第2のキューからデキューされたパケットの量との間の差であり、第3のパケット割り当て量は、毎回のキューセットスケジューリング中に第2のキューからデキューされ得るパケットの事前設定された総量である。装置900は、キューセットが(N+1)回目にスケジューリングされる前に、第2のキューにバッファリングされたパケットの量が0であるときに、第1のパケットバランスを消費するように構成された第1の消費ユニット904であって、毎回のキューセットスケジューリング中の第2のキューのスケジューリングが第1のキューのスケジューリングよりも後である、第1の消費ユニット904と、第1のパケットバランスを消費するプロセスにおいて、第3のキューをスケジューリングするか、またはキューセットを待機状態にスケジューリングするように構成された第3のスケジューリングユニット905とをさらに含む。
具体的には、本出願のこの実施形態における第3のスケジューリングユニット905は、以下の複数の方式で第3のキューをスケジューリングしうる。方式1:第3のスケジューリングユニット905は、第4のパケット割り当て量を取得するように特に構成され、第4のパケット割り当て量は、毎回のスケジューリング中に第3のキューからデキューされ得るパケットの事前設定された総量である。第3のスケジューリングユニット905は、第1のパケットバランスが第4のパケット割り当て量より大きいとき、第4のパケット割り当て量を消費して、第3のキューにバッファリングされたパケットがデキューされるようにスケジューリングするように特に構成される。可能な実装形態では、装置900は、第4のパケットバランスを取得するように構成された第2の取得ユニット906であって、第4のパケットバランスは、第1のパケットバランスと第4のパケット割り当て量との間の差である、第2の取得ユニット906と、第4のキューにバッファリングされたパケットがデキューされるようにスケジューリングするために、第4のパケットバランスを消費するように構成された第2の消費ユニット907とをさらに含む。第4のキューは、その優先度が第3のキューの優先度よりも低いキュー、またはそのスケジューリング順序が第3のキューのスケジューリング順序よりも後であるキューであり得る。方式2:第3のスケジューリングユニット905は、第4のパケット割り当て量を取得し、第4のパケット割り当て量は、毎回のスケジューリング中に第3のキューからデキューされ得るパケットの事前設定された総量であり、第1のパケットバランスが第4のパケット割り当て量以下であるとき、第1のパケットバランスを消費して、第3のキューにバッファリングされたパケットがデキューされるようにスケジューリングするように構成される。
本出願の一実施形態は、キュースケジューリングのための装置800に対応する、キュースケジューリングのためのデバイスをさらに提供する。デバイスは、プロセッサおよびメモリを含む。メモリは、命令を記憶するように構成される。プロセッサは、メモリ内の命令を実行して、図2に示す実施形態において提供され、第1のデバイスによって行われるキュースケジューリングのための方法を行うように構成される。
本出願の一実施形態は、キュースケジューリングのための装置900に対応する、キュースケジューリングのためのデバイスをさらに提供する。デバイスは、プロセッサおよびメモリを含む。メモリは、命令を記憶するように構成される。プロセッサは、メモリ内の命令を実行して、図3に示す実施形態において提供され、第1のデバイスによって行われるキュースケジューリングのための方法を行うように構成される。
図10に示される構造は、装置800に対応するキュースケジューリングのためのデバイスと、装置900に対応するキュースケジューリングのためのデバイスとの両方のハードウェア構造として使用され得る。図10は、本出願の一実施形態によるデバイスの構造の概略図である。図10を参照されたい。デバイス1000は、プロセッサ1010と、通信インターフェース1020と、メモリ1030とを含む。デバイス1000内には1つ以上のプロセッサ1010が存在してもよく、1つのプロセッサ1010が図10の例として使用される。本出願のこの実施形態では、プロセッサ1010、通信インターフェース1020、およびメモリ1030は、バスシステムを使用することによって、または他の方式で接続され得る。図10では、プロセッサ1010、通信インターフェース1020、およびメモリ1030がバスシステム1040を使用することによって接続される例が使用される。プロセッサ1010は、中央処理装置(central processing unit、CPU)、ネットワークプロセッサ(network processor、NP)、またはCPUとNPとの組合せであってもよい。一実装形態では、プロセッサ101は、あるいは、トラフィック管理(traffic management、TM)チップ、またはNPとTMチップとを統合したハードウェアであってもよく、TMチップ、またはNPとTMチップとを統合したハードウェアは、TMチップ内のキューに対して、本出願の実施形態において提供されるキュースケジューリングのための方法を行ってもよい。プロセッサ1010は、ハードウェアチップをさらに含んでもよい。ハードウェアチップは、特定用途向け集積回路(application-specific integrated circuit、ASIC)、プログラマブルロジックデバイス(programmable logic device、PLD)、またはこれらの組合せであってよい。PLDは、前述の複合プログラマブルロジックデバイス(complex programmable logic device、CPLD)、フィールドプログラマブルゲートアレイ(field-programmable gate array、FPGA)、ジェネリックアレイロジック(generic array logic、GAL)、またはそれらの任意の組合せであり得る。メモリ1030は、揮発性メモリ(英語:volatile memory)、例えば、ランダムアクセスメモリ(random-access memory、RAM)を含んでよい。あるいは、メモリ1030は、不揮発性メモリ(英語:non-volatile memory)、例えば、フラッシュメモリ(英語:flash memory)、ハードディスクドライブ(hard disk drive、HDD)、またはソリッドステートドライブ(solid-state drive、SSD)を含んでもよい。メモリ1030は、前述のタイプのメモリの組合せをさらに含み得る。メモリ1030は、オペレーティングシステムおよびプログラム、実行可能モジュールもしくはデータ構造、それらのサブセット、またはそれらの拡張セットを記憶する。プログラムは、種々の動作を実装するために使用される種々の動作命令を含みうる。オペレーティングシステムは、種々の基本サービスを実装し、ハードウェアベースのタスクを処理するために、種々のシステムプログラムを含みうる。バスシステム1040は、周辺機器相互接続(peripheral component interconnect、PCI)バス、拡張業界標準アーキテクチャ(extended industry standard architecture、EISA)バスなどであってもよい。バスシステム1040は、アドレスバス、データバス、制御バスなどに分類されうる。バスシステム1040は、図10において1本の太線のみを使用することによって表されているが、1つのバスのみまたは1つのタイプのバスのみが存在することを意味するものではない。
本出願の一実施形態は、命令を含むコンピュータ可読記憶媒体をさらに提供する。命令がコンピュータ上で実行されると、コンピュータは、前述の方法の実施形態において提供され、第1のデバイスによって行われる、キュースケジューリングのための方法を行うことを可能にされる。
本出願の一実施形態は、命令を含むコンピュータプログラム製品をさらに提供する。命令がコンピュータ上で実行されると、コンピュータは、前述の方法の実施形態において提供され、第1のデバイスによって行われる、キュースケジューリングのための方法を行うことを可能にされる。
本出願で提供される複数の実施形態では、装置および方法は、他の方式で実装され得る。例えば、ユニット分割は単に論理モジュール分割であり、実際の実装形態では他の分割方式が存在し得る。例えば、複数のユニットまたはコンポーネントは、1つのモジュールに結合または統合されてもよい。ユニットは、ハードウェアの形態で実装されてもよく、またはソフトウェアモジュールユニットの形態で実装されてもよい。ユニットがソフトウェアモジュールユニットの形態で実装され、独立した製品として販売または使用されるとき、ユニットは、コンピュータ可読記憶媒体に記憶され得る。本出願の実施形態において提供される装置は、ソフトウェア製品の形態で実装されてもよい。コンピュータソフトウェア製品は、記憶媒体に記憶され、コンピュータデバイス(パーソナルコンピュータ、サーバ、またはネットワークデバイスであり得る)に、本出願の実施形態で説明される方法のステップの全部または一部を行うように命令するための複数の命令を含む。
前述の実施形態は、本出願の技術的解決策を説明するためのものにすぎず、本出願を限定するためのものではない。本出願は、前述の実施形態を参照して詳細に説明されているが、当業者であれば、本出願の実施形態の技術的解決策の範囲から逸脱することなく、前述の実施形態で説明された技術的解決策に対して依然として修正を行うことができ、またはその一部の技術的特徴に対して同等の置換を行いうることを理解すべきである。
10 システム
11 第1のデバイス
12 第2のデバイス
13 第3のデバイス
700 装置
800 装置
801 第1の取得ユニット
802 第1のスケジューリングユニット
803 第2のスケジューリングユニット
804 第1の消費ユニット
805 第3のスケジューリングユニット
806 第2の消費ユニット
807 第2の取得ユニット
808 第3の取得ユニット
809 第4の消費ユニット
900 装置
901 第1の取得ユニット
902 第1のスケジューリングユニット
903 第2のスケジューリングユニット
904 第1の消費ユニット
905 第3のスケジューリングユニット
906 第2の取得ユニット
907 第2の消費ユニット
1000 デバイス
1010 プロセッサ
1020 通信インターフェース
1030 メモリ
1040 バスシステム
不足ラウンドロビン(Deficit Round Robin、DRR)スケジューリング方法は、広く使用されているキュースケジューリング方法である。キュースケジューリング方法では、デバイスのネットワーク帯域幅リソースが最大化され、複数のキューの各々にバッファリングされたパケットをデキューするために使用される。キュースケジューリング方法では、ネットワークレイテンシの問題は考慮されていない。したがって、キュースケジューリング方法は、パケット転送レイテンシに対する高い要件を有する適用シナリオ、例えば、第5世代(5th generation、5G)モバイル通信技術における超高信頼低遅延通信(Ultra-reliable and Low Latency Communications、URLLC)の適用シナリオに適用可能ではない。
第2の態様によれば、キュースケジューリングのための方法が提供される。方法は、キューセットをスケジューリングするためのものであり、第1のデバイスに適用され得る。第1のデバイスは、ルータまたはスイッチなどのネットワークデバイスであってもよく、または、キュースケジューリングを行うように構成された他のデバイスであってもよい。方法は、具体的には以下のステップを含んでよく、すなわち、第1のデバイスは、N回目にキューセットをスケジューリングするときに第1のパケットバランスを取得しうる。第1のデバイスは、第1のパケットバランスが消費された後、(N+1)回目にキューセットをスケジューリングしうる。キューセットは、少なくとも2つのキュー、すなわち第1のキューおよび第2のキューを含む。第1のパケットバランスは、第1のキューおよび第2のキューからデキューされ得るパケットの量を示す。第1のキューおよび第2のキューは、各々がレイテンシに対する高い要件を有するキューであってもよく、Nは1以上の整数である。換言すれば、第1のキューおよび第2のキューからデキューされ得るパケットの量が使い果たされた後、第1のデバイスは、次回のキューセットスケジューリングを行う。換言すれば、(N+1)回目のスケジューリングのための機会は、キューセットの第1のパケットバランスに基づいて決定され、キューセット内の第1のキューによって占有される帯域幅リソースおよび第2のキューによって占有される帯域幅リソースが基本的に固定された状態にあることを保証する。各キューによって占有される帯域幅リソースが固定されない従来のDRRスケジューリング方式と比較して、本出願は、トラフィックバーストによって引き起こされるネットワーク輻輳によって引き起こされるレイテンシ問題を低減しうる。
第1の方式では、第2のキューのスケジューリングは第1のキューのスケジューリングよりも後であり、第2のキューにバッファリングされたパケットの量は0ではなく、第2のパケット割り当て量未満である。第1のパケットバランスは、第2のパケットバランスおよび第3のパケットバランスを含み、第2のパケットバランスは、第2のパケット割り当て量と第1のキューからデキューされたパケットの量との差であり、第2のパケット割り当て量は、毎回のキューセットスケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量と前回のキューセットスケジューリング中に取得された第2のパケットバランスとの和であり、第3のパケットバランスは、第3のパケット割り当て量と第2のキューからデキューされたパケットの量との差であり、第3のパケット割り当て量は、毎回のキューセットスケジューリング中に第2のキューからデキューされ得るパケットの事前設定された総量と前回のキューセットスケジューリング中に取得された第3のパケットバランスとの和である。第2のキューにバッファリングされたパケットの量は第2のパケット割り当て量未満であるため、第2のキューにバッファリングされたパケットがデキューされると、第2のキューにバッファリングされたパケットの量は0に減少する。また、第1のデバイスは、第1のキューのスケジューリングが終了したので、第1のキューにバッファリングされたパケットまたは第2のキューにバッファリングされたパケットがデキューされるようにスケジューリングする。したがって、第1のデバイスは、第1のパケットバランスを消費しうる。第1のパケットバランスを消費するプロセスにおいて、第1のデバイスは、第3のキューをスケジューリングしてもよく、またはキューセットを待機状態にスケジューリングしうる。第3のキューは、レイテンシに対する高い要件を有さないキュー、すなわち、低い優先度を有するキューであり得る。このようにして、N回目にキューセットをスケジューリングするとき、第1のデバイスは、毎回のキュースケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量に基づいて、第1のパケット割り当て量を増加させ得る。したがって、第1のキューをスケジューリングするたびに、第1のキューに新たに追加され、デキューされ得るパケットの総量は基本的に固定される。加えて、第1のデバイスは、第1のパケットバランスを消費した後にのみ、(N+1)回目のキューセットをスケジューリングするので、キューセットをスケジューリングする各回に消費される時間期間も基本的に固定され、すなわち、第1のデバイスによってキューセットをスケジューリングする各回に消費される時間期間は基本的に等しい。このようにして、キューセット内の第1のキューによって占有される帯域幅リソースおよび第2のキューによって占有される帯域幅リソースが基本的に固定された状態にあることを保証しうる。さらに、第1のキューにバッファリングされたパケットの量が0であるときに第3のキューをスケジューリングすることは、第1のキューおよび第2のキューによって使用されることができない第1のパケットバランスを使用することによって第3のキューをスケジューリングすることと等価である。これは、第1のキューおよび第2のキューのレイテンシを保証することを前提として、ネットワーク帯域幅リソースの利用率を改善しうる。
第2の方式では、第2のキューのスケジューリングは第1のキューのスケジューリングよりも後であり、第2のキューにバッファリングされたパケットの量は0ではなく、第2のパケット割り当て量よりも大きい。第1のパケットバランスは、第2のパケットバランスおよび第3のパケットバランスを含み、第2のパケットバランスは、第2のパケット割り当て量と第1のキューからデキューされたパケットの量との差であり、第2のパケット割り当て量は、毎回のキューセットスケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量と前回のキューセットスケジューリング中に取得された第2のパケットバランスとの和であり、第3のパケットバランスは、第3のパケット割り当て量と第2のキューからデキューされたパケットの量との差であり、第3のパケット割り当て量は、毎回のキューセットスケジューリング中に第2のキューからデキューされ得るパケットの事前設定された総量と前回のキューセットスケジューリング中に取得された第3のパケットバランスとの和である。第2のキューにバッファリングされたパケットの量は第2のパケット割り当て量より大きいため、キューセットがN回目にスケジューリングされるとき、第2のキューにバッファリングされたパケットがデキューされると、第2のキューにバッファリングされたパケットの量はM1からM2に減少する。第2のキューにバッファリングされたパケットの量M2が第2のパケットバランスより大きいとき、それは、第2のキューからデキューされ得るパケットの残りの総量が、第2のキューにバッファリングされたパケットの残りの量をデキューするための要件を満たすことができないことを示す。したがって、第1のデバイスは、第2のキューのスケジューリングを停止し、第1のパケットバランスの消費を開始しうる。第1のパケットバランスを消費するプロセスにおいて、第1のデバイスは、第3のキューをスケジューリングしてもよく、またはキューセットを待機状態にスケジューリングしうる。第3のキューは、レイテンシに対する高い要件を有さないキュー、すなわち、低い優先度を有するキューであり得る。このようにして、N回目にキューセットをスケジューリングするとき、第1のデバイスは、毎回のキュースケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量に基づいて、第1のパケット割り当て量を増加させ得る。したがって、第1のキューをスケジューリングするたびに、第1のキューに新たに追加され、デキューされ得るパケットの総量は基本的に固定される。加えて、第1のデバイスは、第1のパケットバランスを消費した後にのみ、(N+1)回目のキューセットをスケジューリングするので、キューセットをスケジューリングする各回に消費される時間期間も基本的に固定され、すなわち、第1のデバイスによってキューセットをスケジューリングする各回に消費される時間期間は基本的に等しい。このようにして、キューセット内の第1のキューによって占有される帯域幅リソースおよび第2のキューによって占有される帯域幅リソースが基本的に固定された状態にあることを保証しうる。さらに、第1のキューにバッファリングされたパケットの量が0であるときに第3のキューをスケジューリングすることは、第1のキューおよび第2のキューによって使用されることができない第1のパケットバランスを使用することによって第3のキューをスケジューリングすることと等価である。これは、第1のキューおよび第2のキューのレイテンシを保証することを前提として、ネットワーク帯域幅リソースの利用率を改善しうる。
第3の実装形態では、第2のキューのスケジューリングは第1のキューのスケジューリングよりも後であり、第2のキューにバッファリングされたパケットの量は0ではなく、第2のパケット割り当て量未満である。第1のパケットバランスは、第2のパケットバランスおよび第3のパケットバランスを含み、第2のパケットバランスは、第2のパケット割り当て量と第1のキューからデキューされたパケットの量との間の差であり、第2のパケット割り当て量は、毎回のキューセットスケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量であり、第3のパケットバランスは、第3のパケット割り当て量と第2のキューからデキューされたパケットの量との間の差であり、第3のパケット割り当て量は、毎回のキューセットスケジューリング中に第2のキューからデキューされ得るパケットの事前設定された総量である。第2のキューにバッファリングされたパケットの量は第2のパケット割り当て量未満であるため、第2のキューにバッファリングされたパケットがデキューされると、第2のキューにバッファリングされたパケットの量は0に減少する。また、第1のデバイスは、第1のキューのスケジューリングが終了したので、第1のキューにバッファリングされたパケットまたは第2のキューにバッファリングされたパケットがデキューされるようにスケジューリングする。したがって、第1のデバイスは、第1のパケットバランスを消費しうる。第1のパケットバランスを消費するプロセスにおいて、第1のデバイスは、第3のキューをスケジューリングしてもよく、またはキューセットを待機状態にスケジューリングしうる。第3のキューは、レイテンシに対する高い要件を有さないキュー、すなわち、低い優先度を有するキューであり得る。このようにして、N回目にキューセットをスケジューリングするとき、第1のデバイスは、毎回のキュースケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量に基づいて、第1のパケット割り当て量を増加させ得る。したがって、第1のキューをスケジューリングするたびに、第1のキューに新たに追加され、デキューされ得るパケットの総量は基本的に固定される。加えて、第1のデバイスは、第1のパケットバランスを消費した後にのみ、(N+1)回目のキューセットをスケジューリングするので、キューセットをスケジューリングする各回に消費される時間期間も基本的に固定され、すなわち、第1のデバイスによってキューセットをスケジューリングする各回に消費される時間期間は基本的に等しい。このようにして、キューセット内の第1のキューによって占有される帯域幅リソースおよび第2のキューによって占有される帯域幅リソースが基本的に固定された状態にあることを保証しうる。さらに、第1のキューにバッファリングされたパケットの量が0であるときに第3のキューをスケジューリングすることは、第1のキューおよび第2のキューによって使用されることができない第1のパケットバランスを使用することによって第3のキューをスケジューリングすることと等価である。これは、第1のキューおよび第2のキューのレイテンシを保証することを前提として、ネットワーク帯域幅リソースの利用率を改善しうる。
第4の実装形態では、第2のキューのスケジューリングは第1のキューのスケジューリングよりも後であり、第2のキューにバッファリングされたパケットの量は0ではなく、第2のパケット割り当て量よりも大きい。第1のパケットバランスは、第2のパケットバランスおよび第3のパケットバランスを含み、第2のパケットバランスは、第2のパケット割り当て量と第1のキューからデキューされたパケットの量との間の差であり、第2のパケット割り当て量は、毎回のキューセットスケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量であり、第3のパケットバランスは、第3のパケット割り当て量と第2のキューからデキューされたパケットの量との間の差であり、第3のパケット割り当て量は、毎回のキューセットスケジューリング中に第2のキューからデキューされ得るパケットの事前設定された総量である。第2のキューにバッファリングされたパケットの量は第2のパケット割り当て量より大きいため、キューセットがN回目にスケジューリングされるとき、第2のキューにバッファリングされたパケットがデキューされると、第2のキューにバッファリングされたパケットの量はM1からM2に減少する。第2のキューにバッファリングされたパケットの量M2が第2のパケットバランスより大きいとき、それは、第2のキューからデキューされ得るパケットの残りの総量が、第2のキューにバッファリングされたパケットの残りの量をデキューするための要件を満たすことができないことを示す。したがって、第1のデバイスは、第2のキューのスケジューリングを停止し、第1のパケットバランスの消費を開始しうる第1のパケットバランスを消費するプロセスにおいて、第1のデバイスは、第3のキューをスケジューリングしてもよく、またはキューセットを待機状態にスケジューリングしうる。第3のキューは、レイテンシに対する高い要件を有さないキュー、すなわち、低い優先度を有するキューであり得る。このようにして、N回目にキューセットをスケジューリングするとき、第1のデバイスは、毎回のキュースケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量に基づいて、第1のパケット割り当て量を増加させ得る。したがって、第1のキューをスケジューリングするたびに、第1のキューに新たに追加され、デキューされ得るパケットの総量は基本的に固定される。加えて、第1のデバイスは、第1のパケットバランスを消費した後にのみ、(N+1)回目のキューセットをスケジューリングするので、キューセットをスケジューリングする各回に消費される時間期間も基本的に固定され、すなわち、第1のデバイスによってキューセットをスケジューリングする各回に消費される時間期間は基本的に等しい。このようにして、キューセット内の第1のキューによって占有される帯域幅リソースおよび第2のキューによって占有される帯域幅リソースが基本的に固定された状態にあることを保証しうる。さらに、第1のキューにバッファリングされたパケットの量が0であるときに第3のキューをスケジューリングすることは、第1のキューおよび第2のキューによって使用されることができない第1のパケットバランスを使用することによって第3のキューをスケジューリングすることと等価である。これは、第1のキューおよび第2のキューのレイテンシを保証することを前提として、ネットワーク帯域幅リソースの利用率を改善しうる。
第5の実装形態では、第1のキューにバッファリングされたパケットの量と第2のキューにバッファリングされたパケットの量の両方が0である。第1のパケットバランスは、第2のパケットバランスおよび第3のパケットバランスを含み、第2のパケットバランスは、第2のパケット割り当て量と第1のキューからデキューされたパケットの量との間の差であり、第2のパケット割り当て量は、毎回のキューセットスケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量であり、第3のパケットバランスは、第3のパケット割り当て量と第2のキューからデキューされたパケットの量との間の差であり、第3のパケット割り当て量は、毎回のキューセットスケジューリング中に第2のキューからデキューされ得るパケットの事前設定された総量である。第1のキューおよび第2のキューにはパケットが存在しないため、第2のパケットバランスは第2のパケット割り当て量に等しく、第3のパケットバランスは第3のパケット割り当て量に等しく、第1のパケットバランスは第2のパケット割り当て量と第3のパケット割り当て量との和に等しい。この場合、(N+1)回目にキューセットをスケジューリングする前に、第1のデバイスは、第1のパケットバランスを消費しうる。第1のパケットバランスを消費するプロセスにおいて、第1のデバイスは、第3のキューをスケジューリングしてもよく、または第1のキューを待機状態にスケジューリングしうる。このようにして、キューセット内にバッファリングされたパケットが存在しない場合であっても、第1のデバイスは、第1のパケットバランスが使い果たされた後に、依然として次のスケジューリングを行って、キューセット内の第1のキューによって占有される帯域幅リソースおよび第2のキューによって占有される帯域幅リソースが基本的に固定された状態にあることを保証しうる。
前述のスケジューリング方式1からスケジューリング方式4のいずれか1つにおいて、第1のパケット割り当て量は、S201における任意のパケット割り当て量であってもよく、第1のパケットバランスは、第1のパケット割り当て量と第1のキューからデキューされたパケットの量との間の差である。以下のスケジューリング方式5およびスケジューリング方式6では、第1のパケットバランスは第1のパケット割り当て量であり、第1のパケット割り当て量は、毎回のキュースケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量であり、第1のキューに最初にバッファリングされたパケットの量は0であり、すなわち、第1のキューは最初に空のキューである。
スケジューリング方式3:第1のデバイスは、第2のキューにバッファリングされたパケットがデキューされるようにスケジューリングし、第2のキューにバッファリングされたパケットの量はM1であり、M1は1以上の整数であり、毎回のキューセットスケジューリング中の第2のキューのスケジューリングは第1のキューのスケジューリングよりも後であり、第1のデバイスは、第2のキューにバッファリングされたパケットの量M2が第3のパケットバランスよりも大きいときに第1のパケットバランスを消費し、M2はM1以下であり、第2のキューからデキューされたパケットの量はM1とM2との間の差であり、第1のデバイスは、第1のパケットバランスを消費するプロセスにおいて第3のキューをスケジューリングする。
スケジューリング方式4:第1のデバイスは、第2のキューにバッファリングされたパケットがデキューされるようにスケジューリングし、第2のキューにバッファリングされたパケットの量はM1であり、M1は1以上の整数であり、毎回のキューセットスケジューリング中の第2のキューのスケジューリングは第1のキューのスケジューリングよりも後であり、第1のデバイスは、第2のキューにバッファリングされたパケットの量M2が第3のパケットバランスよりも大きいときに第1のパケットバランスを消費し、M2はM1以下であり、第2のキューからデキューされたパケットの量はM1とM2との間の差であり、第1のデバイスは、第1のパケットバランスを消費するプロセスにおいてキューセットを待機状態にスケジューリングする。キューセットを待機状態にスケジューリングすることは、キューセット内のいずれのキューにもバッファリングされたパケットがデキューされるようにスケジューリングしないことを意味する。
例えば、i番目のDSRRキューは、図2に対応する実施形態における第1のキューであってもよい。第1のデバイスは、最初にi番目のDSRRキューを処理しうる。具体的な処理方法については、図4に対応する実施形態におけるステップS402からステップS407を参照されたい。詳細は、ここでは再度説明されない。i番目のDSRRキューの処理を完了した後、第1のデバイスは、i番目のDSRRに対応するパケットバランスDC[i]に基づいて、BEキューに対応するパケット割り当て量Q[BE]を取得しうる。例えば、第1のデバイスは、DC[i]と、前回のキュースケジューリング中のBEキューに対応するパケットバランスDC[BE]との和を取得し、今回のキュースケジューリング中のQ[BE]として和を使用してもよい。i番目のDSRRキューの残りのパケットバランスDC[i]は、今回のキュースケジューリング中にi番目のDSRRキューによって完全に使用することができないパケットバランスを表してもよく、例えば、i番目のDSRRキューにバッファリングされたパケットの量が0であるときにDC[i]であってもよく、またはi番目のDSRRキューにバッファリングされたパケットの量が0であるときにパケット割り当て量Q2[i]であってもよい。前回のキュースケジューリング中のBEキューに対応するパケットバランスDC[BE]が0である場合、またはBEキューが初めてスケジューリングされる場合、BEキューに対応するパケット割り当て量Q[BE]は、i番目のDSRRキューに対応するパケットバランスDC[i]に等しい。
SRRキューセット内の複数のSRRキューによって取得されるネットワーク帯域幅リソースのバランスをとるために、ステップ603がスキップされた後、第1のデバイスは、SRRキューをスケジューリングするこの時間の進行を記録してもよく、その結果、ステップ603が次に行われるとき、SRRキューをスケジューリングする前回の進行が引き続き行われる。
LQ1[j]は、付加的に追加され、j番目のSRRキューからデキューされ得る残りのパケットの合計長さの最大値を示し、それは、第1のデバイスが、j番目のSRRキューの処理を完了するために、SRRキューセットの今回のキュースケジューリング中に、LQ1[j]の長さを有するパケットサブ割り当て量をj番目のSRRキューにさらに割り振る必要があることを示す。このようにして、新しいパケットサブ割り当て量をSRRキューに割り振るとき、第1のデバイスは、それに応じて、残りのパケットサブ割り当て量を更新する。これは、SRRキューセット内の複数のSRRキューに対応する残りのパケットサブ割り当て量に、SRRキューセットに対して第1のデバイスによって行われた今回のキュースケジューリングの進行を記録することと等価である。このようにして、毎回第1のデバイスによってSRRキューセットに対して行われるキュースケジューリングは、不十分なDC[i]に起因して依然として中断され得るが、SRRキューセットに対して行われる毎回のキュースケジューリングが中断されるときの進行は、SRRキューセット内の複数のSRRキューに対応する残りのパケットサブ割り当て量に記憶される。第1のデバイスが再びステップ603を行うとき、第1のデバイスは、SRRキューセットに対してキュースケジューリングを行い続けるために、前の処理の進行に従いうる。このようにして、第1のデバイスによってSRRキューセットに対して行われるキュースケジューリングは、DSRRキューによって完全に使用されていないパケットバランスに依然として依存するが、第1のデバイスがSRRキューセットに対してキュースケジューリングを行う特定のプロセスは、第1のデバイスによってDSRRキューセットに対して行われるキュースケジューリングの進行によって影響されない。換言すれば、SRRキューセット内の複数のSRRキューに割り振られるネットワーク帯域幅リソースの割合が、複数のSRRキューの理論上のパケットサブ割り当て量の割合と一致することを保証するために、第1のデバイスによってSRRキューセットに対して行われるキュースケジューリングおよび第1のデバイスによってDSRRキューセットに対して行われるキュースケジューリングは、互いに独立している。
図8を参照されたい。本出願の一実施形態は、キュースケジューリングのための装置800をさらに提供する。装置800は、図2に示す実施形態におけるステップS201およびステップS202を行うために、第1のデバイスに配置され得る。あるいは、第1のデバイスは装置800であってもよく、第1の取得ユニット801と第1のスケジューリングユニット802とを含んでよい。第1の取得ユニット801は、図2に示す実施形態におけるステップS201を行うように構成されてもよく、第1のスケジューリングユニット802は、図2に示す実施形態におけるステップS202を行うように構成されてもよい。具体的には、第1の取得ユニット801は、第1のキューをスケジューリングするときに第1のパケットバランスを取得するように構成され、第1のパケットバランスは、第1のキューからデキューされ得るパケットの量を示す。第1のスケジューリングユニット802は、第1のパケットバランスに基づいて第2のキューをスケジューリングする。第1のスケジューリングユニット802は、第1のパケットバランスが消費された後に第2のキューをスケジューリングするように特に構成される。あるいは、第1のスケジューリングユニット801は、第1のパケットバランスが第1のキューにバッファリングされた先頭パケットの量未満であるとき、第2のキューをスケジューリングするように特に構成される。本出願のこの実施形態における第1のデバイスに配置された装置800は、図4から図7に対応する実施形態において単一のキューをユニットとして使用することによってキュースケジューリングを行うための対応する方法を実装するようにさらに構成され得る。
例えば、第1のキューにバッファリングされたパケットの量は0であり、第1のパケットバランスは第1のパケット割り当て量であり、第1のパケット割り当て量は、毎回のキュースケジューリング中に第1のキューからデキューされ得るパケットの事前設定された総量である。装置800は、第1のスケジューリングユニット801が第2のキューをスケジューリングする前に、第1のキューにバッファリングされたパケットの量が0であるときに第1のパケットバランスを消費するように構成された第2の消費ユニット806と、前記第2の消費ユニット806が第1のパケットバランスを消費するプロセスにおいて、第3のキューをスケジューリングするか、または第1のキューを待機状態にスケジューリングするように構成された第3のスケジューリングユニット805とをさらに含む。

Claims (44)

  1. キュースケジューリングのための方法であって、前記方法は、
    第1のデバイスによって、第1のキューをスケジューリングするときに第1のパケットバランスを取得するステップであって、前記第1のパケットバランスは、前記第1のキューからデキューされ得るパケットの量を示す、ステップと、
    前記第1のデバイスによって、前記第1のパケットバランスに基づいて第2のキューをスケジューリングするステップと
    を含む、方法。
  2. 前記第1のデバイスによって、前記第1のパケットバランスに基づいて第2のキューをスケジューリングする前記ステップは、
    前記第1のデバイスによって、前記第1のパケットバランスが消費された後に前記第2のキューをスケジューリングするステップを含む、請求項1に記載の方法。
  3. 前記第1のデバイスによって、前記第1のパケットバランスに基づいて第2のキューをスケジューリングする前記ステップは、
    前記第1のデバイスによって、前記第1のパケットバランスが前記第1のキューにバッファリングされた先頭パケットの量未満であるとき、前記第2のキューをスケジューリングするステップを含む、請求項1に記載の方法。
  4. 前記第1のパケットバランスは、第1のパケット割り当て量と前記第1のキューからデキューされたパケットの量との差であり、前記第1のパケット割り当て量は、毎回のキュースケジューリング中に前記第1のキューからデキューされ得るパケットの事前設定された総量と、前記第1のキューの前回のスケジューリング中に取得された前記第1のパケットバランスとの和であり、前記第2のキューをスケジューリングする前記ステップの前に、前記方法は、
    前記第1のデバイスによって、前記第1のキューにバッファリングされたパケットがデキューされるようにスケジューリングするステップと、
    前記第1のキューにバッファリングされたパケットの量が0であるとき、前記第1のデバイスによって、前記第1のパケットバランスを消費するステップと、
    前記第1のデバイスによって、前記第1のパケットバランスを消費するプロセスにおいて、第3のキューをスケジューリングするか、または前記第1のキューを待機状態にスケジューリングするステップと
    をさらに含む、請求項2に記載の方法。
  5. 前記第1のパケットバランスは、第1のパケット割り当て量と前記第1のキューからデキューされたパケットの量との差であり、前記第1のパケット割り当て量は、毎回のキュースケジューリング中に前記第1のキューからデキューされ得るパケットの事前設定された総量と、前記第1のキューの前回のスケジューリング中に取得された前記第1のパケットバランスとの和であり、前記第2のキューをスケジューリングする前記ステップの前に、前記方法は、
    前記第1のデバイスによって、前記第1のキューにバッファリングされたパケットがデキューされるようにスケジューリングするステップであって、前記第1のキューにバッファリングされたパケットの量は、M1であり、M1は、1以上の整数である、ステップと、
    前記第1のキューにバッファリングされたパケットの量M2が前記第1のパケットバランスより大きいとき、前記第1のデバイスによって、前記第1のパケットバランスを消費するステップであって、M2は、M1以下であり、前記第1のキューからデキューされたパケットの前記量は、M1とM2との間の差である、ステップと、
    前記第1のデバイスによって、前記第1のパケットバランスを消費するプロセスにおいて、第3のキューをスケジューリングするか、または前記第1のキューを待機状態にスケジューリングするステップと
    をさらに含む、請求項2に記載の方法。
  6. 前記第1のパケットバランスは、第1のパケット割り当て量と前記第1のキューからデキューされたパケットの量との間の差であり、前記第1のパケット割り当て量は、毎回のキュースケジューリング中に前記第1のキューからデキューされ得るパケットの事前設定された総量であり、前記第2のキューをスケジューリングする前記ステップの前に、前記方法は、
    前記第1のデバイスによって、前記第1のキューにバッファリングされたパケットがデキューされるようにスケジューリングするステップであって、前記第1のキューにバッファリングされたパケットの量は、M1であり、M1は、1以上の整数である、ステップと、
    前記第1のキューにバッファリングされたパケットの前記量が0であるとき、前記第1のデバイスによって、前記第1のパケットバランスを消費するステップと、
    前記第1のデバイスによって、前記第1のパケットバランスを消費するプロセスにおいて、第3のキューをスケジューリングするか、または前記第1のキューを待機状態にスケジューリングするステップと
    をさらに含む、請求項2に記載の方法。
  7. 前記第1のキューにバッファリングされたパケットの量は、0であり、前記第1のパケットバランスは、第1のパケット割り当て量であり、前記第1のパケット割り当て量は、毎回のキュースケジューリング中に前記第1のキューからデキューされ得るパケットの事前設定された総量であり、前記第2のキューをスケジューリングする前記ステップの前に、前記方法は、
    前記第1のキューにバッファリングされたパケットの前記量が0であるとき、前記第1のデバイスによって前記第1のパケットバランスを消費するステップと、
    前記第1のデバイスによって、前記第1のパケットバランスを消費するプロセスにおいて、第3のキューをスケジューリングするか、または前記第1のキューを待機状態にスケジューリングするステップと
    をさらに含む、請求項2に記載の方法。
  8. 前記第1のデバイスによって、前記第1のパケットバランスを消費するプロセスにおいて第3のキューをスケジューリングする前記ステップは、
    前記第1のデバイスによって、第2のパケット割り当て量を取得するステップであって、前記第2のパケット割り当て量は、毎回のキュースケジューリング中に前記第3のキューからデキューされ得るパケットの事前設定された総量である、ステップと、
    前記第1のデバイスによって、前記第1のパケットバランスが前記第2のパケット割り当て量より大きいとき、前記第2のパケット割り当て量を消費して、前記第3のキューにバッファリングされたパケットがデキューされるようにスケジューリングするステップと
    を含む、請求項4から7のいずれか一項に記載の方法。
  9. 前記第1のデバイスによって、前記第1のパケットバランスを消費するプロセスにおいて第3のキューをスケジューリングする前記ステップは、
    前記第1のデバイスによって、第2のパケット割り当て量を取得するステップであって、前記第2のパケット割り当て量は、毎回のキュースケジューリング中に前記第3のキューからデキューされ得るパケットの事前設定された総量である、ステップと、
    前記第1のデバイスによって、前記第1のパケットバランスが前記第2のパケット割り当て量以下であるとき、前記第1のパケットバランスを消費して、前記第3のキューにバッファリングされたパケットがデキューされるようにスケジューリングするステップと
    を含む、請求項4から7のいずれか一項に記載の方法。
  10. 前記方法は、
    前記第1のデバイスによって、第2のパケットバランスを取得するステップであって、前記第2のパケットバランスは、前記第1のパケットバランスと前記第2のパケット割り当て量との間の差である、ステップと、
    前記第1のデバイスによって、前記第2のパケットバランスを消費して、第4のキューにバッファリングされたパケットがデキューされるようにスケジューリングするステップと
    をさらに含む、請求項8に記載の方法。
  11. 前記第1のデバイスによって、前記第1のパケットバランスを消費するプロセスにおいて第3のキューをスケジューリングする前記ステップは、
    前記第1のデバイスによって、第2のパケット割り当て量および第3のパケット割り当て量を取得するステップであって、前記第2のパケット割り当て量は、毎回のキュースケジューリング中に前記第3のキューからデキューされ得るパケットの事前設定された総量であり、前記第3のパケット割り当て量は、前記第1のパケットバランスと事前設定された重みとの積であり、前記事前設定された重みは、0より大きく1より小さい、ステップと、
    前記第1のデバイスによって、前記第3のパケット割り当て量が前記第2のパケット割り当て量より大きいとき、前記第2のパケット割り当て量を消費して、前記第3のキューにバッファリングされたパケットがデキューされるようにスケジューリングするステップと
    を含む、請求項4から7のいずれか一項に記載の方法。
  12. 前記第1のデバイスによって、前記第1のパケットバランスを消費するプロセスにおいて第3のキューをスケジューリングする前記ステップは、
    前記第1のデバイスによって、第2のパケット割り当て量および第3のパケット割り当て量を取得するステップであって、前記第2のパケット割り当て量は、毎回のキュースケジューリング中に前記第3のキューからデキューされ得るパケットの事前設定された総量であり、前記第3のパケット割り当て量は、前記第1のパケットバランスと事前設定された重みとの積であり、前記事前設定された重みは、0より大きく1より小さい、ステップと、
    前記第1のデバイスによって、前記第3のパケット割り当て量が前記第2のパケット割り当て量以下であるとき、前記第3のパケット割り当て量を消費して、前記第3のキューにバッファリングされたパケットがデキューされるようにスケジューリングするステップと
    を含む、請求項4から7のいずれか一項に記載の方法。
  13. 前記方法は、
    前記第1のデバイスによって、第3のパケットバランスを取得するステップであって、前記第3のパケットバランスは、前記第3のパケット割り当て量と前記第2のパケット割り当て量との間の差である、ステップと、
    前記第1のデバイスによって、前記第3のパケットバランスを消費して、第4のキューにバッファリングされたパケットがデキューされるようにスケジューリングするステップと
    をさらに含む、請求項11に記載の方法。
  14. キュースケジューリングのための方法であって、前記方法は、
    第1のデバイスによって、N回目にキューセットをスケジューリングするときに第1のパケットバランスを取得するステップであって、前記キューセットは、第1のキューおよび第2のキューを含み、前記第1のパケットバランスは、前記第1のキューおよび前記第2のキューからデキューされ得るパケットの量を示し、Nは、1以上の整数である、ステップと、
    前記第1のデバイスによって、前記第1のパケットバランスが消費された後に(N+1)回目に前記キューセットをスケジューリングするステップと
    を含む、方法。
  15. 前記第1のパケットバランスは、第2のパケットバランスおよび第3のパケットバランスを含み、前記第2のパケットバランスは、第2のパケット割り当て量と前記第1のキューからデキューされたパケットの量との差であり、前記第2のパケット割り当て量は、毎回のキューセットスケジューリング中に前記第1のキューからデキューされ得るパケットの事前設定された総量と前回のキューセットスケジューリング中に取得された前記第2のパケットバランスとの和であり、前記第3のパケットバランスは、第3のパケット割り当て量と前記第2のキューからデキューされたパケットの量との差であり、前記第3のパケット割り当て量は、毎回のキューセットスケジューリング中に前記第2のキューからデキューされ得るパケットの事前設定された総量と前回のキューセットスケジューリング中に取得された前記第3のパケットバランスとの和であり、(N+1)回目の前記キューセットをスケジューリングする前記ステップの前に、前記方法は、
    前記第1のデバイスによって、前記第2のキューにバッファリングされたパケットがデキューされるようにスケジューリングするステップであって、毎回のキューセットスケジューリング中の前記第2のキューのスケジューリングは、前記第1のキューのスケジューリングよりも後である、ステップと、
    前記第1のデバイスによって、前記第2のキューにバッファリングされたパケットの量が0であるときに前記第1のパケットバランスを消費するステップと、
    前記第1のデバイスによって、前記第1のパケットバランスを消費するプロセスにおいて、第3のキューをスケジューリングするか、または前記キューセットを待機状態にスケジューリングするステップと
    をさらに含む、請求項14に記載の方法。
  16. 前記第1のパケットバランスは、第2のパケットバランスおよび第3のパケットバランスを含み、前記第2のパケットバランスは、第2のパケット割り当て量と前記第1のキューからデキューされたパケットの量との差であり、前記第2のパケット割り当て量は、毎回のキューセットスケジューリング中に前記第1のキューからデキューされ得るパケットの事前設定された総量と前回のキューセットスケジューリング中に取得された前記第2のパケットバランスとの和であり、前記第3のパケットバランスは、第3のパケット割り当て量と前記第2のキューからデキューされたパケットの量との差であり、前記第3のパケット割り当て量は、毎回のキューセットスケジューリング中に前記第2のキューからデキューされ得るパケットの事前設定された総量と前回のキューセットスケジューリング中に取得された前記第3のパケットバランスとの和であり、(N+1)回目の前記キューセットをスケジューリングする前記ステップの前に、前記方法は、
    前記第1のデバイスによって、前記第2のキューにバッファリングされたパケットがデキューされるようにスケジューリングするステップであって、前記第2のキューにバッファリングされたパケットの量は、M1であり、M1は、1以上の整数であり、毎回のキューセットスケジューリング中の前記第2のキューのスケジューリングは、前記第1のキューのスケジューリングよりも後である、ステップと、
    前記第2のキューにバッファリングされたパケットの量M2が前記第3のパケットバランスより大きいとき、前記第1のデバイスによって、前記第1のパケットバランスを消費するステップであって、M2は、M1以下であり、前記第1のキューからデキューされたパケットの前記量は、M1とM2との間の差である、ステップと、
    前記第1のデバイスによって、前記第1のパケットバランスを消費するプロセスにおいて、第3のキューをスケジューリングするか、または前記キューセットを待機状態にスケジューリングするステップと
    をさらに含む、請求項14に記載の方法。
  17. 前記第1のパケットバランスは、第2のパケットバランスおよび第3のパケットバランスを含み、前記第2のパケットバランスは、第2のパケット割り当て量と前記第1のキューからデキューされたパケットの量との間の差であり、前記第2のパケット割り当て量は、毎回のキューセットスケジューリング中に前記第1のキューからデキューされ得るパケットの事前設定された総量であり、前記第3のパケットバランスは、第3のパケット割り当て量と前記第2のキューからデキューされたパケットの量との間の差であり、前記第3のパケット割り当て量は、毎回のキューセットスケジューリング中に前記第2のキューからデキューされ得るパケットの事前設定された総量であり、(N+1)回目の前記キューセットをスケジューリングする前記ステップの前に、前記方法は、
    前記第1のデバイスによって、前記第2のキューにバッファリングされたパケットがデキューされるようにスケジューリングするステップであって、毎回のキューセットスケジューリング中の前記第2のキューのスケジューリングは、前記第1のキューのスケジューリングよりも後である、ステップと、
    前記第1のデバイスによって、前記第2のキューにバッファリングされたパケットの量が0であるときに前記第1のパケットバランスを消費するステップと、
    前記第1のデバイスによって、前記第1のパケットバランスを消費するプロセスにおいて、第3のキューをスケジューリングするか、または前記キューセットを待機状態にスケジューリングするステップと
    をさらに含む、請求項14に記載の方法。
  18. 前記第1のパケットバランスは、第2のパケットバランスおよび第3のパケットバランスを含み、前記第2のパケットバランスは、第2のパケット割り当て量と前記第1のキューからデキューされたパケットの量との差であり、前記第2のパケット割り当て量は、毎回のキューセットスケジューリング中に前記第1のキューからデキューされ得るパケットの事前設定された総量であり、前記第3のパケットバランスは、第3のパケット割り当て量と前記第2のキューからデキューされたパケットの量との差であり、前記第3のパケット割り当て量は、毎回のキューセットスケジューリング中に前記第2のキューからデキューされ得るパケットの事前設定された総量であり、(N+1)回目の前記キューセットをスケジューリングする前記ステップの前に、前記方法は、
    前記第1のデバイスによって、前記第2のキューにバッファリングされたパケットがデキューされるようにスケジューリングするステップであって、前記第2のキューにバッファリングされたパケットの量は、M1であり、M1は、1以上の整数であり、毎回のキューセットスケジューリング中の前記第2のキューのスケジューリングは、前記第1のキューのスケジューリングよりも後である、ステップと、
    前記第2のキューにバッファリングされたパケットの量M2が前記第3のパケットバランスより大きいとき、前記第1のデバイスによって、前記第1のパケットバランスを消費するステップであって、M2は、M1以下であり、前記第1のキューからデキューされたパケットの前記量は、M1とM2との間の差である、ステップと、
    前記第1のデバイスによって、前記第1のパケットバランスを消費するプロセスにおいて、第3のキューをスケジューリングするか、または前記キューセットを待機状態にスケジューリングするステップと
    をさらに含む、請求項14に記載の方法。
  19. 前記第1のキューおよび前記第2のキューにバッファリングされたパケットの量は、0であり、前記第1のパケットバランスは、第2のパケットバランスおよび第3のパケットバランスを含み、前記第2のパケットバランスは、第2のパケット割り当て量と前記第1のキューからデキューされたパケットの量との間の差であり、前記第2のパケット割り当て量は、毎回のキューセットスケジューリング中に前記第1のキューからデキューされ得るパケットの事前設定された総量であり、前記第3のパケットバランスは、第3のパケット割り当て量と前記第2のキューからデキューされたパケットの量との間の差であり、前記第3のパケット割り当て量は、毎回のキューセットスケジューリング中に前記第2のキューからデキューされ得るパケットの事前設定された総量であり、(N+1)回目の前記キューセットをスケジューリングする前記ステップの前に、前記方法は、
    前記第2のキューにバッファリングされたパケットの量が0であるとき、前記第1のデバイスによって、前記第1のパケットバランスを消費するステップであって、毎回のキューセットスケジューリング中の前記第2のキューのスケジューリングは、前記第1のキューのスケジューリングよりも後である、ステップと、
    前記第1のデバイスによって、前記第1のパケットバランスを消費するプロセスにおいて、第3のキューをスケジューリングするか、または前記キューセットを待機状態にスケジューリングするステップと
    をさらに含む、請求項14に記載の方法。
  20. 前記第1のデバイスによって、前記第1のパケットバランスを消費するプロセスにおいて第3のキューをスケジューリングする前記ステップは、
    前記第1のデバイスによって、第4のパケット割り当て量を取得するステップであって、前記第4のパケット割り当て量は、毎回のスケジューリング中に前記第3のキューからデキューされ得るパケットの事前設定された総量である、ステップと、
    前記第1のデバイスによって、前記第1のパケットバランスが前記第4のパケット割り当て量より大きいとき、前記第4のパケット割り当て量を消費して、前記第3のキューにバッファリングされたパケットがデキューされるようにスケジューリングするステップと
    を含む、請求項15から19のいずれか一項に記載の方法。
  21. 前記方法は、
    前記第1のデバイスによって、第4のパケットバランスを取得するステップであって、前記第4のパケットバランスは、前記第1のパケットバランスと前記第4のパケット割り当て量との間の差である、ステップと、
    前記第1のデバイスによって、前記第4のパケットバランスを消費して、第4のキューにバッファリングされたパケットがデキューされるようにスケジューリングするステップと
    をさらに含む、請求項20に記載の方法。
  22. 前記第1のデバイスによって、前記第1のパケットバランスを消費するプロセスにおいて第3のキューをスケジューリングする前記ステップは、
    前記第1のデバイスによって、第4のパケット割り当て量を取得するステップであって、前記第4のパケット割り当て量は、毎回のスケジューリング中に前記第3のキューからデキューされ得るパケットの事前設定された総量である、ステップと、
    前記第1のデバイスによって、前記第1のパケットバランスが前記第4のパケット割り当て量以下であるとき、前記第1のパケットバランスを消費して、前記第3のキューにバッファリングされたパケットがデキューされるようにスケジューリングするステップと
    を含む、請求項15から19のいずれか一項に記載の方法。
  23. キュースケジューリングのための装置であって、前記装置は、
    第1のキューがスケジューリングされるときに第1のパケットバランスを取得し、前記第1のパケットバランスは、前記第1のキューからデキューされ得るパケットの量を示すように構成された第1の取得ユニットと、
    前記第1のパケットバランスに基づいて第2のキューをスケジューリングするように構成された第1のスケジューリングユニットと、を備える、装置。
  24. 前記第1のスケジューリングユニットは、前記第1のパケットバランスが消費された後に前記第2のキューをスケジューリングするように特に構成されている、請求項23に記載の装置。
  25. 前記第1のスケジューリングユニットは、前記第1のパケットバランスが前記第1のキューにバッファリングされた先頭パケットの量未満であるとき、前記第2のキューをスケジューリングするように特に構成されている、請求項23に記載の装置。
  26. 前記第1のパケットバランスは、第1のパケット割り当て量と前記第1のキューからデキューされたパケットの量との差であり、前記第1のパケット割り当て量は、毎回のキュースケジューリング中に前記第1のキューからデキューされ得るパケットの事前設定された総量と、前記第1のキューの前回のスケジューリング中に取得された前記第1のパケットバランスとの和であり、前記装置は、
    前記第1のスケジューリングユニットが前記第2のキューをスケジューリングする前に、前記第1のキューにバッファリングされたパケットがデキューされるようにスケジューリングするように構成された第2のスケジューリングユニットと、
    前記第1のキューにバッファリングされたパケットの量が0であるとき、前記第1のパケットバランスを消費するように構成された第1の消費ユニットと、
    前記第1のパケットバランスを消費するプロセスにおいて、第3のキューをスケジューリングするか、または前記第1のキューを待機状態にスケジューリングするように構成された第3のスケジューリングユニットと
    をさらに備える、請求項24に記載の装置。
  27. 前記第1のパケットバランスは、第1のパケット割り当て量と前記第1のキューからデキューされたパケットの量との差であり、前記第1のパケット割り当て量は、毎回のキュースケジューリング中に前記第1のキューからデキューされ得るパケットの事前設定された総量と、前記第1のキューの前回のスケジューリング中に取得された前記第1のパケットバランスとの和であり、前記装置は、
    前記第1のスケジューリングユニットが前記第2のキューをスケジューリングする前に、前記第1のキューにバッファリングされたパケットがデキューされるようにスケジューリングし、前記第1のキューにバッファリングされたパケットの量は、M1であり、M1は、1以上の整数であるように構成された第2のスケジューリングユニットと、
    前記第1のキューにバッファリングされたパケットの量M2が前記第1のパケットバランスより大きいとき、前記第1のパケットバランスを消費し、M2は、M1以下であり、前記第1のキューからデキューされたパケットの前記量は、M1とM2との間の差であるように構成された第1の消費ユニットと、
    前記第1のパケットバランスを消費するプロセスにおいて、第3のキューをスケジューリングするか、または前記第1のキューを待機状態にスケジューリングするように構成された第3のスケジューリングユニットと
    をさらに備える、請求項24に記載の装置。
  28. 前記第1のパケットバランスは、第1のパケット割り当て量と前記第1のキューからデキューされたパケットの量との間の差であり、前記第1のパケット割り当て量は、毎回のキュースケジューリング中に前記第1のキューからデキューされ得るパケットの事前設定された総量であり、前記装置は、
    前記第1のスケジューリングユニットが前記第2のキューをスケジューリングする前に、前記第1のキューにバッファリングされたパケットがデキューされるようにスケジューリングし、前記第1のキューにバッファリングされたパケットの量は、M1であり、M1は、1以上の整数であるように構成された第2のスケジューリングユニットと、
    前記第1のキューにバッファリングされたパケットの前記量が0であるとき、前記第1のパケットバランスを消費するように構成された第1の消費ユニットと、
    前記第1のパケットバランスを消費するプロセスにおいて、第3のキューをスケジューリングするか、または前記第1のキューを待機状態にスケジューリングするように構成された第3のスケジューリングユニットと
    をさらに備える、請求項24に記載の装置。
  29. 前記第1のキューにバッファリングされたパケットの量は、0であり、前記第1のパケットバランスは、第1のパケット割り当て量であり、前記第1のパケット割り当て量は、毎回のキュースケジューリング中に前記第1のキューからデキューされ得るパケットの事前設定された総量であり、前記装置は、
    前記第1のスケジューリングユニットが前記第2のキューをスケジューリングする前に、前記第1のキューにバッファリングされたパケットの前記量が0であるときに前記第1のパケットバランスを消費するように構成された第2の消費ユニットと、
    前記第1のパケットバランスを消費するプロセスにおいて、第3のキューをスケジューリングするか、または前記第1のキューを待機状態にスケジューリングするように構成された第3のスケジューリングユニットと
    をさらに備える、請求項24に記載の装置。
  30. 前記第3のスケジューリングユニットは、
    第2のパケット割り当て量を取得し、前記第2のパケット割り当て量は、毎回のキュースケジューリング中に前記第3のキューからデキューされ得るパケットの事前設定された総量であり、
    前記第1のパケットバランスが前記第2のパケット割り当て量より大きいとき、前記第2のパケット割り当て量を消費して、前記第3のキューにバッファリングされたパケットがデキューされるようにスケジューリングする
    ように特に構成されている、請求項26から29のいずれか一項に記載の装置。
  31. 前記第3のスケジューリングユニットは、
    第2のパケット割り当て量を取得し、前記第2のパケット割り当て量は、毎回のキュースケジューリング中に前記第3のキューからデキューされ得るパケットの事前設定された総量であり、
    前記第1のパケットバランスが前記第2のパケット割り当て量以下であるとき、前記第1のパケットバランスを消費して、前記第3のキューにバッファリングされたパケットがデキューされるようにスケジューリングする
    ように特に構成されている、請求項26から29のいずれか一項に記載の装置。
  32. 前記装置は、
    第2のパケットバランスを取得し、前記第2のパケットバランスは、前記第1のパケットバランスと前記第2のパケット割り当て量との間の差であるように構成された第2の取得ユニットと、
    前記第2のパケットバランスを消費して、第4のキューにバッファリングされたパケットがデキューされるようにスケジューリングするように構成された第3の消費ユニットと
    をさらに備える、請求項30に記載の装置。
  33. 前記第3のスケジューリングユニットは、
    第2のパケット割り当て量および第3のパケット割り当て量を取得し、前記第2のパケット割り当て量は、毎回のキュースケジューリング中に前記第3のキューからデキューされ得るパケットの事前設定された総量であり、前記第3のパケット割り当て量は、前記第1のパケットバランスと事前設定された重みとの積であり、前記事前設定された重みは、0より大きく1より小さく、
    前記第3のパケット割り当て量が前記第2のパケット割り当て量より大きいとき、前記第2のパケット割り当て量を消費して、前記第3のキューにバッファリングされたパケットがデキューされるようにスケジューリングする
    ように特に構成されている、請求項26から29のいずれか一項に記載の装置。
  34. 前記第3のスケジューリングユニットは、
    第2のパケット割り当て量および第3のパケット割り当て量を取得し、前記第2のパケット割り当て量は、毎回のキュースケジューリング中に前記第3のキューからデキューされ得るパケットの事前設定された総量であり、前記第3のパケット割り当て量は、前記第1のパケットバランスと事前設定された重みとの積であり、前記事前設定された重みは、0より大きく1より小さく、
    前記第3のパケット割り当て量が前記第2のパケット割り当て量以下であるとき、前記第3のパケット割り当て量を消費して、前記第3のキューにバッファリングされたパケットがデキューされるようにスケジューリングする
    ように特に構成されている、請求項26から29のいずれか一項に記載の装置。
  35. 前記装置は、
    第3のパケットバランスを取得し、前記第3のパケットバランスは、前記第3のパケット割り当て量と前記第2のパケット割り当て量との間の差であるように構成された第3の取得ユニットと、
    前記第3のパケットバランスを消費して、第4のキューにバッファリングされたパケットがデキューされるようにスケジューリングするように構成された第4の消費ユニットと
    をさらに備える、請求項33に記載の装置。
  36. キュースケジューリングのための装置であって、前記装置は、
    キューセットがN回目にスケジューリングされるときに第1のパケットバランスを取得し、前記キューセットは、第1のキューおよび第2のキューを含み、前記第1のパケットバランスは、前記第1のキューおよび前記第2のキューからデキューされ得るパケットの量を示し、Nは、1以上の整数であるように構成された第1の取得ユニットと、
    前記第1のパケットバランスが消費された後に(N+1)回目に前記キューセットをスケジューリングするように構成された第1のスケジューリングユニットと
    を備える、装置。
  37. 前記第1のパケットバランスは、第2のパケットバランスおよび第3のパケットバランスを含み、前記第2のパケットバランスは、第2のパケット割り当て量と前記第1のキューからデキューされたパケットの量との差であり、前記第2のパケット割り当て量は、毎回のキューセットスケジューリング中に前記第1のキューからデキューされ得るパケットの事前設定された総量と前回のキューセットスケジューリング中に取得された前記第2のパケットバランスとの和であり、前記第3のパケットバランスは、第3のパケット割り当て量と前記第2のキューからデキューされたパケットの量との差であり、前記第3のパケット割り当て量は、毎回のキューセットスケジューリング中に前記第2のキューからデキューされ得るパケットの事前設定された総量と前回のキューセットスケジューリング中に取得された前記第3のパケットバランスとの和であり、前記装置は、
    前記キューセットが前記(N+1)回目にスケジューリングされる前に、前記第2のキューにバッファリングされたパケットがデキューされるようにスケジューリングし、毎回のキューセットスケジューリング中の前記第2のキューのスケジューリングは、前記第1のキューのスケジューリングよりも後であるように構成された第2のスケジューリングユニットと、
    前記第2のキューにバッファリングされたパケットの量が0であるときに前記第1のパケットバランスを消費するように構成された第1の消費ユニットと、
    前記第1のパケットバランスを消費するプロセスにおいて、第3のキューをスケジューリングするか、または前記キューセットを待機状態にスケジューリングするように構成された第3のスケジューリングユニットと
    をさらに備える、請求項36に記載の装置。
  38. 前記第1のパケットバランスは、第2のパケットバランスおよび第3のパケットバランスを含み、前記第2のパケットバランスは、第2のパケット割り当て量と前記第1のキューからデキューされたパケットの量との差であり、前記第2のパケット割り当て量は、毎回のキューセットスケジューリング中に前記第1のキューからデキューされ得るパケットの事前設定された総量と前回のキューセットスケジューリング中に取得された前記第2のパケットバランスとの和であり、前記第3のパケットバランスは、第3のパケット割り当て量と前記第2のキューからデキューされたパケットの量との差であり、前記第3のパケット割り当て量は、毎回のキューセットスケジューリング中に前記第2のキューからデキューされ得るパケットの事前設定された総量と前回のキューセットスケジューリング中に取得された前記第3のパケットバランスとの和であり、前記装置は、
    前記キューセットが前記(N+1)回目にスケジューリングされる前に、前記第2のキューにバッファリングされたパケットがデキューされるようにスケジューリングし、前記第2のキューにバッファリングされたパケットの量は、M1であり、M1は、1以上の整数であり、毎回のキューセットスケジューリング中の前記第2のキューのスケジューリングは、前記第1のキューのスケジューリングよりも後であるように構成された第2のスケジューリングユニットと、
    前記第2のキューにバッファリングされたパケットの量M2が前記第3のパケットバランスより大きいとき、前記第1のパケットバランスを消費し、M2は、M1以下であり、前記第1のキューからデキューされたパケットの前記量は、M1とM2との差であるように構成された第1の消費ユニットと、
    前記第1のパケットバランスを消費するプロセスにおいて、第3のキューをスケジューリングするか、または前記キューセットを待機状態にスケジューリングするように構成された第3のスケジューリングユニットと
    をさらに備える、請求項36に記載の装置。
  39. 前記第1のパケットバランスは、第2のパケットバランスおよび第3のパケットバランスを含み、前記第2のパケットバランスは、第2のパケット割り当て量と前記第1のキューからデキューされたパケットの量との差であり、前記第2のパケット割り当て量は、毎回のキューセットスケジューリング中に前記第1のキューからデキューされ得るパケットの事前設定された総量であり、前記第3のパケットバランスは、第3のパケット割り当て量と前記第2のキューからデキューされたパケットの量との差であり、前記第3のパケット割り当て量は、毎回のキューセットスケジューリング中に前記第2のキューからデキューされ得るパケットの事前設定された総量であり、前記装置は、
    前記キューセットが前記(N+1)回目にスケジューリングされる前に、前記第2のキューにバッファリングされたパケットがデキューされるようにスケジューリングし、毎回のキューセットスケジューリング中の前記第2のキューのスケジューリングは、前記第1のキューのスケジューリングよりも後であるように構成された第2のスケジューリングユニットと、
    前記第2のキューにバッファリングされたパケットの量が0であるときに前記第1のパケットバランスを消費するように構成された第1の消費ユニットと、
    前記第1のパケットバランスを消費するプロセスにおいて、第3のキューをスケジューリングするか、または前記キューセットを待機状態にスケジューリングするように構成された第3のスケジューリングユニットと
    をさらに備える、請求項36に記載の装置。
  40. 前記第1のパケットバランスは、第2のパケットバランスおよび第3のパケットバランスを含み、前記第2のパケットバランスは、第2のパケット割り当て量と前記第1のキューからデキューされたパケットの量との差であり、前記第2のパケット割り当て量は、毎回のキューセットスケジューリング中に前記第1のキューからデキューされ得るパケットの事前設定された総量であり、前記第3のパケットバランスは、第3のパケット割り当て量と前記第2のキューからデキューされたパケットの量との差であり、前記第3のパケット割り当て量は、毎回のキューセットスケジューリング中に前記第2のキューからデキューされ得るパケットの事前設定された総量であり、前記装置は、
    前記キューセットが前記(N+1)回目にスケジューリングされる前に、前記第2のキューにバッファリングされたパケットがデキューされるようにスケジューリングし、前記第2のキューにバッファリングされたパケットの量は、M1であり、M1は、1以上の整数であり、毎回のキューセットスケジューリング中の前記第2のキューのスケジューリングは、前記第1のキューのスケジューリングよりも後であるように構成された第2のスケジューリングユニットと、
    前記第2のキューにバッファリングされたパケットの量M2が前記第3のパケットバランスより大きいとき、前記第1のパケットバランスを消費し、M2は、M1以下であり、前記第1のキューからデキューされたパケットの前記量は、M1とM2との差であるように構成された第1の消費ユニットと、
    前記第1のパケットバランスを消費するプロセスにおいて、第3のキューをスケジューリングするか、または前記キューセットを待機状態にスケジューリングするように構成された第3のスケジューリングユニットと
    をさらに備える、請求項36に記載の装置。
  41. 前記第1のキューおよび前記第2のキューにバッファリングされたパケットの量は、0であり、前記第1のパケットバランスは、第2のパケットバランスおよび第3のパケットバランスを含み、前記第2のパケットバランスは、第2のパケット割り当て量と前記第1のキューからデキューされたパケットの量との差であり、前記第2のパケット割り当て量は、毎回のキューセットスケジューリング中に前記第1のキューからデキューされ得るパケットの事前設定された総量であり、前記第3のパケットバランスは、第3のパケット割り当て量と前記第2のキューからデキューされたパケットの量との差であり、前記第3のパケット割り当て量は、毎回のキューセットスケジューリング中に前記第2のキューからデキューされ得るパケットの事前設定された総量であり、前記装置は、
    前記キューセットが前記(N+1)回目にスケジューリングされる前に、前記第2のキューにバッファリングされたパケットの前記量が0であるとき、前記第1のパケットバランスを消費し、毎回のキューセットスケジューリング中の前記第2のキューのスケジューリングは、前記第1のキューのスケジューリングよりも後であるように構成された第1の消費ユニットと、
    前記第1のパケットバランスを消費するプロセスにおいて、第3のキューをスケジューリングするか、または前記キューセットを待機状態にスケジューリングするように構成された第3のスケジューリングユニットと
    をさらに備える、請求項36に記載の装置。
  42. 前記第3のスケジューリングユニットは、
    第4のパケット割り当て量を取得し、前記第4のパケット割り当て量は、毎回のスケジューリング中に前記第3のキューからデキューされ得るパケットの事前設定された総量であり、
    前記第1のパケットバランスが前記第4のパケット割り当て量より大きいとき、前記第4のパケット割り当て量を消費して、前記第3のキューにバッファリングされたパケットがデキューされるようにスケジューリングする
    ように特に構成されている、請求項37から41のいずれか一項に記載の装置。
  43. 前記装置は、
    第4のパケットバランスを取得し、前記第4のパケットバランスは、前記第1のパケットバランスと前記第4のパケット割り当て量との間の差であるように構成された第2の取得ユニットと、
    前記第4のパケットバランスを消費して、第4のキューにバッファリングされたパケットがデキューされるようにスケジューリングするように構成された第2の消費ユニットと、をさらに備える、請求項42に記載の装置。
  44. 前記第3のスケジューリングユニットは、
    第4のパケット割り当て量を取得し、前記第4のパケット割り当て量は、毎回のスケジューリング中に前記第3のキューからデキューされ得るパケットの事前設定された総量であり、
    前記第1のパケットバランスが前記第4のパケット割り当て量以下であるとき、前記第1のパケットバランスを消費して、前記第3のキューにバッファリングされたパケットがデキューされるようにスケジューリングする
    ように特に構成されている、請求項37から41のいずれか一項に記載の装置。
JP2022577688A 2020-06-19 2021-06-18 キュースケジューリングのための方法および装置 Pending JP2023531436A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN202010566274.2 2020-06-19
CN202010566274.2A CN113824652B (zh) 2020-06-19 2020-06-19 一种用于调度队列的方法及装置
PCT/CN2021/100831 WO2021254475A1 (zh) 2020-06-19 2021-06-18 一种用于调度队列的方法及装置

Publications (1)

Publication Number Publication Date
JP2023531436A true JP2023531436A (ja) 2023-07-24

Family

ID=78912021

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022577688A Pending JP2023531436A (ja) 2020-06-19 2021-06-18 キュースケジューリングのための方法および装置

Country Status (6)

Country Link
US (1) US20230117851A1 (ja)
EP (1) EP4156614A4 (ja)
JP (1) JP2023531436A (ja)
KR (1) KR20230024987A (ja)
CN (1) CN113824652B (ja)
WO (1) WO2021254475A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114567566A (zh) * 2022-02-16 2022-05-31 上海联虹技术有限公司 一种报文处理方法、装置、终端设备及存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6914881B1 (en) * 2000-11-28 2005-07-05 Nortel Networks Ltd Prioritized continuous-deficit round robin scheduling
WO2002062013A2 (en) * 2001-01-30 2002-08-08 Nomadix, Inc. Methods and systems providing fair queuing and priority scheduling to enhance quality of service in a network
US7916638B2 (en) * 2003-12-24 2011-03-29 Alcatel Lucent Time-independent deficit round robin method and system
KR100693058B1 (ko) * 2005-02-04 2007-03-12 삼성전자주식회사 패킷의 유실을 방지하기 위한 라우팅 방법 및 장치
CN101964745B (zh) * 2010-06-12 2012-06-27 福建星网锐捷网络有限公司 一种网络转发设备及其进行报文转发的方法
EP3021540B1 (en) * 2014-11-14 2017-08-02 Huawei Technologies Co., Ltd. Scheduler and method for layer-based scheduling queues of data packets
CN106533982B (zh) * 2016-11-14 2019-05-21 西安电子科技大学 基于带宽借用的动态队列调度装置及方法
US10397124B2 (en) * 2017-01-17 2019-08-27 Argela Yazilim ve Bilisim Teknolojileri San. ve Tic. A.S. System and method to prevent persistent full switch queues in software defined networks
CN108259377A (zh) * 2018-02-13 2018-07-06 中国联合网络通信集团有限公司 队列分配方法及装置
CN109347764A (zh) * 2018-09-29 2019-02-15 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 实现带宽匹配的调度方法、系统及介质

Also Published As

Publication number Publication date
CN113824652B (zh) 2024-04-30
WO2021254475A1 (zh) 2021-12-23
KR20230024987A (ko) 2023-02-21
US20230117851A1 (en) 2023-04-20
EP4156614A4 (en) 2023-11-08
CN113824652A (zh) 2021-12-21
EP4156614A1 (en) 2023-03-29

Similar Documents

Publication Publication Date Title
US10772081B2 (en) Airtime-based packet scheduling for wireless networks
US10764215B2 (en) Programmable broadband gateway hierarchical output queueing
US9225668B2 (en) Priority driven channel allocation for packet transferring
US20070070895A1 (en) Scaleable channel scheduler system and method
US6950396B2 (en) Traffic control method and system
US20060187949A1 (en) Queuing and scheduling architecture for a unified access device supporting wired and wireless clients
US8369219B2 (en) System and method for managing bandwidth
EP1080560A1 (en) Method and apparatus for forwarding packets from a plurality of contending queues to an output
US20140036680A1 (en) Method to Allocate Packet Buffers in a Packet Transferring System
US7292578B1 (en) Flexible, high performance support for QoS on an arbitrary number of queues
CN109787910B (zh) 一种流量管理方法、系统及织状网络处理器
CN111526095A (zh) 一种流量控制方法和装置
US20130044755A1 (en) Scalable Packet Scheduling Policy for Vast Number of Sessions
US20230117851A1 (en) Method and Apparatus for Queue Scheduling
CN113783785A (zh) Ecn水线值的配置方法、装置及网络设备
US7907632B2 (en) Data output apparatus, communication apparatus and switch apparatus
KR100739493B1 (ko) Ip 망에서의 서비스 품질 향상을 위한 패킷 트래픽 관리장치 및 그 방법
US20060153243A1 (en) Scheduling eligible entries using an approximated finish delay identified for an entry based on an associated speed group
US11868292B1 (en) Penalty based arbitration
CN114363267B (zh) 一种队列调度方法及装置
CN115460151A (zh) 一种流量控制方法、系统、存储介质及电子设备
Jain FPGA as a Reconfigurable Access Point in Dense Wireless LANs Using FDMA-TDMA Combination

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230210

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240311

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240529