IP Library Granted Patent US 10,708,192
Granted Patent B2
US 10,708,192 · App. 16/251,697 · Granted Jul 7, 2020

Method to achieve bounded buffer sizes and quality of service guarantees in the internet network

Inventor: Tadeusz H. Szymanski (Toronto, CA)
H04L47/6215H04L47/14H04L47/20H04L47/22H04L47/30H04L47/50H04L47/56H04L47/724H04W28/10H04L47/19H04L47/215H04L47/2441H04L47/29H04L47/32H04L47/824
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,708,192
App. No.
16/251,697
Granted
Jul 7, 2020
Kind
B2
Abstract

Methods to achieve bounded router buffer sizes and Quality of Service guarantees for traffic flows in a packet-switched network are described. The network can be an Internet Protocol (IP) network, a Differentiated Services network, an MPLS network, wireless mesh network or an optical network. The routers can use input queueing, possibly in combination with crosspoint queueing and/or output queueing. Routers may schedule QoS-enabled traffic flows to ensure a bounded normalized service lead/lag. Each QoS-enabled traffic flow will buffer O(K) packets per router, where K is an integer bound on the normalized service lead/lag. Three flow-scheduling methods are analysed. Non-work-conserving flow-scheduling methods can guarantee a bound on the normalized service lead/lag, while work-conserving flow-scheduling methods typically cannot guarantee the same small bound. The amount of buffering required in a router can be reduced significantly, the network links can operate near peak capacity, and strict QoS guarantees can be achieved.

Claims (67)

1. A switch for transmitting a plurality of traffic flows over a scheduling frame with duration F seconds for F>0 with a plurality of transmission intervals, wherein each of the traffic flows belongs to either a first traffic class or a second traffic class, and wherein each of the traffic flows has an associated data rate, comprising:

N input ports, M output ports for integers N>0 and M>0;

N×M Virtual Queues (VQs) for buffering data associated with the traffic flows, wherein each of the N×M VQs is associated with an input port and an output port, and M of the VQs are associated with each one of the N input ports, wherein each of the traffic flows is associated with one VQ, and wherein each of said VQs is associated with a guaranteed data rate;

wherein each of said VQs is further partitioned into a first sub-queue and a second sub-queue, wherein said first sub-queue buffers data associated with those of the traffic flows belonging to the first traffic class, wherein said second sub-queue buffers data associated with those of the traffic flows belonging to the second traffic class, and wherein each of said sub-queues is associated with a guaranteed data rate;

memory for storing a first schedule, wherein said first schedule specifies for each input port which associated VQ, if any, has a reservation to transmit data to its associated output port in each transmission interval in said scheduling frame;

memory for storing a second schedule, wherein said second schedule specifies for each of said VQs which has a reservation to transmit data in a transmission interval in said scheduling frame, which of its associated sub-queues, if any, has a reservation to transmit data in said transmission interval;

wherein the first schedule provides each of said VQs with a guaranteed rate of transmission through said switch in each scheduling frame, sufficient to satisfy its guaranteed data rate requirement;

wherein the second schedule provides each of the first and second sub-queues associated with each of said VQs with a guaranteed rate of transmission through said switch in each scheduling frame, sufficient to satisfy its guaranteed data rate requirement; and

wherein for each VQ with R reservations per scheduling frame, said first schedule provides that VQ with at least R/2−K reservations and at most R/2+K reservations in each half of said scheduling frame with duration F/2 seconds, wherein integer K is the bound on the service lead and service lag measured in reservations per scheduling frame, and wherein R is substantially larger than K.

2. A switch for switching a plurality of guaranteed-rate (GR) traffic flows over a set of output ports, given a scheduling frame comprising a plurality of transmission intervals defined over a duration of time of F seconds for real number F, said switch comprising:

N input ports for receiving data and M output ports for transmitting data, for integers N and M;

a plurality of queues, wherein each queue buffers data which arrives at a common one of said N input ports and which departs on a common one of said M output ports; wherein each GR traffic flow is associated with a guaranteed data-rate requirement, wherein each GR traffic flow is associated with one queue, and wherein data associated with a GR traffic flow is buffered in its associated queue;

memory for storing a flow-schedule,

wherein the flow-schedule determines which of the GR traffic flows associated with said queues, if any, have a reservation to transmit in each transmission interval in said scheduling frame;

wherein the flow-schedule provides each of said GR traffic flows with a guaranteed number of reservations per scheduling frame sufficient to meet its guaranteed data-rate requirement,

and wherein for each GR traffic flow with R reservations per scheduling frame for integer R, said flow-schedule provides said GR traffic flow with a least R/2−K reservations and at most R/2+K reservations in each half of said scheduling frame with a duration of F/2 seconds, where integer K is the bound on the service lead and service lag measured in reservations per scheduling frame, and wherein R is substantially larger than K.

3. The switch of claim 2 ,

wherein for each GR traffic flow with R reservations per scheduling frame, said flow-schedule provides said GR traffic flow with a least R/4−K reservations and at most R/4+K reservations in each quarter of said scheduling frame with a duration of F/4 seconds.

4. The switch of claim 3 ,

wherein for each GR traffic flow with R reservations per scheduling frame, said flow-schedule provides said GR traffic flow with at least R*(E/F)−K reservations and at most R*(E/F)+K reservations in the subset of the scheduling frame spanning time 0 to E, wherein E<F, and wherein E is a real number.

5. The switch of claim 3 , wherein the memory is distributed throughout the switch.

6. The switch of claim 3 , wherein the GR traffic flows belong to a new traffic class representing Guaranteed-Rate traffic, equivalently Deterministic, traffic, in a Differentiated Services service model.

7. The switch of claim 3 , further comprising:

a traffic-shaper module, said module comprising:

a controller, memory to buffer data, memory to buffer tokens, and a token-generator;

wherein said traffic-shaper module is operable to buffer incoming data associated with at least one of the GR traffic flows, and release said data in a manner to reduce the burstiness of said GR traffic flow.

8. The switch of claim 3 , wherein each of said queues is partitioned into a plurality of flow-queues, and wherein each flow-queue buffers data associated with one GR traffic flow.

9. The switch of claim 4 , wherein each of said queues is partitioned into a plurality of flow-queues, and wherein each flow-queue buffers data associated with one GR traffic flow.

10. The switch of claim 3 , further comprising:

memory for storing a queue-schedule, wherein each of said plurality of queues is associated with a guaranteed data-rate requirement;

wherein said queue-schedule determines which of said queues, if any, have a reservation to transmit in each transmission interval of said scheduling frame,

and wherein said queue-schedule provides each of said queues with a guaranteed number of reservations per scheduling frame sufficient to satisfy its guaranteed data-rate requirement.

11. The switch of claim 10 , wherein for each queue with R reservations per scheduling frame, said queue-schedule provides that queue with at least R/2−K reservations and at most R/2+K reservations in each half of said scheduling frame with duration F/2 seconds.

12. The switch of claim 11 ,

wherein for each queue with R reservations per scheduling frame, said queue-schedule provides that queue with at least R/4−K reservations and at most R/4+K reservations in each quarter of said scheduling frame with duration F/4 seconds.

13. A switch for switching a plurality of class-based (CB) traffic flows over a set output ports, given a scheduling frame comprising a plurality of transmission intervals defined over a duration of time of F seconds for real number F, said switch comprising:

N input ports for receiving data and M output ports for transmitting data, for integers N and M;

a plurality of class-queues, wherein each class-queue buffers data associated with one class of traffic;

wherein each class-queue buffers data which arrives at a common one of said N input ports and departs on a common one of said M output ports;

wherein each class-queue is associated with a guaranteed data-rate requirement;

wherein each CB traffic flow is associated with one class of traffic and with one class-queue;

wherein data associated with a CB traffic flow is buffered in its associated class-queue; memory far storing a class-schedule;

wherein the class-schedule determines which of said class-queues, if any, has a reservation to transmit in each transmission interval in said scheduling frame; and

wherein said class-schedule provides each of said class-queues with a guaranteed number of reservations per scheduling frame sufficient to meet its guaranteed data-rate requirement; and

wherein for each class-queue with R reservations per scheduling frame for integer R>=2, said class-schedule provides that class-queue at least R/2−K reservations and at most R/2+K reservations in each half of said scheduling frame with duration F/2 seconds, wherein integer K is the bound on the service lead and service lag measured in reservations per scheduling frame, and wherein R is substantially larger than K.

14. The switch of claim 13 , further comprising: memory to store a class-schedule; wherein each class-queue is associated with a guaranteed data-rate requirement, wherein said class-schedule determines which of said class-queues, if any, has a reservation to transmit in each transmission interval in said scheduling frame; and wherein said class-schedule provides each of said class-queues with a guaranteed number of reservations per scheduling frame sufficient to meet its guaranteed data-fate requirement.

15. The switch of claim 14 ,

wherein for each class-queue with R reservations per scheduling frame, said class-schedule provides that class-queue with at least R/2−K reservations and at most R/2+K reservations in each half of said scheduling frame with duration F/2 seconds.

16. The switch of claim 15 ,

wherein for each class-queue with R reservations per scheduling frame, said class-schedule provides that class-queue with at least R/4−K reservations and at most R/4+K reservations in each quarter of said scheduling frame with duration F/4 seconds.

17. The switch of claim 16 ,

wherein for each class-queue with R reservations per scheduling frame, said class-schedule provides said class-queue with at least R*(E/F)−K reservations and at most R*(E/F)+K reservations in the subset of the scheduling frame spanning time 0 to E, wherein E is real number and E<F.

18. The switch of claim 14 , wherein at least one of the CB traffic flows belongs to a traffic class in a Differentiated Services service model, said classes including an Expedited Forwarding (EF) traffic class, an Assured Forwarding (AF) traffic class, and a Best Effort (BE) traffic class.

19. The switch of claim 15 , further comprising a set of class-queues for at least one traffic, class in a Differentiated Services (DiffServ) service model, said classes including an Expedited Forwarding (EF) traffic class, an Assured Forwarding (AF) traffic class, and a Best Effort (BE) traffic class.

20. The switch of claim 15 , wherein the GE traffic flows belong to a new traffic class representing Guaranteed-Rate traffic, equivalently Deterministic traffic, in a Differentiated Services (DiffServ) service model.

21. The switch of claim 15 , further comprising a scheduling processor, wherein said scheduling-processor will process the contents of a class-queue, to determine which data buffered within said class-queue is selected to transmit next.

22. The switch of claim 21 , wherein said scheduling-processor selects the oldest data in said class-queue to transmit next.

23. The switch of claim 21 ,

wherein said scheduling-processor selects the data with the smallest ‘Virtual Finishing Time’ (VFT) in said class-queue to transmit next, wherein the VFT is assigned to data arriving to said class-queue using the Generalized Processor Sharing/Weighted Fair Queuing (GPS/WFQ) algorithms developed by Parekh and Gallager.

24. The switch of claim 3 , wherein all transmission intervals within the scheduling frame have the same duration.

25. The switch of claim 3 , wherein at least 2 transmission intervals within the scheduling frame have different durations.

26. The switch of claim 3 , wherein R>=64 and K does not exceed the square-root of R.

27. The switch of claim 3 , wherein R>=16 and K=4.

28. The switch of claim 3 , wherein the data to be transmitted is formatted as fixed-sized cells.

29. The switch of claim 3 , wherein the data to be transmitted is formatted as Internet Protocol (IP) packets with variable sizes.

30. The switch of claim 3 , wherein the data to be transmitted is formatted as MPLS packets.

31. The switch of claim 3 , wherein the data to be transmitted is formatted as Ethernet packets.

Continuity (6)
Continuation 15405018 · Jan 12, 2017
Continuation 14792226 · Jul 6, 2015
Continuation 14093874 · Dec 2, 2013
Continuation 13074834 · Mar 29, 2011
Provisional Application 61318663 · Mar 29, 2010
Related Publication 20190230042A1 · Jul 25, 2019
Cited By (1)
US 12,199,876