IP Library Granted Patent US 10,237,199
Granted Patent B2
US 10,237,199 · App. 15/405,018 · Granted Mar 19, 2019

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

Inventor: Tadeusz H. Szymanski (Toronto, CA)
Assignee: Tadeusz H. Szymanski
H04L47/6215H04L47/56
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,237,199
App. No.
15/405,018
Granted
Mar 19, 2019
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 (77)

1. A switch for switching a plurality of guaranteed-rate (GR) traffic flows over a set of output ports, given a scheduling frame comprising F time-slots for integer F, comprising:

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

a plurality of queues, wherein each queue buffers packets which arrive at a common one of said N input ports and which depart 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 packets associated with a GR traffic flow are 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 time-slot in said scheduling frame;

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

and wherein for each GR traffic flow with a guaranteed data-rate requirement which exceeds one packet transmission per scheduling frame, said flow-schedule provides said GR traffic flow with a substantially equal number of time-slot reservations for transmission in each half of the scheduling frame with a substantially equal size.

2. The switch of claim 1 ,

wherein the flow-schedule provides each of said GR traffic flows with a substantially pro-rated number of time-slot reservations for transmission in a subset of the scheduling frame comprising time-slots 1 . . . E for integer E, where 1<=E<=F.

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

4. The switch of claim 1 , wherein the GR traffic flows belong to a traffic class in the Differentiated Services service model.

5. The switch of claim 1 , further comprising a traffic-shaper module,

comprising a controller, memory to buffer packets, memory to buffer tokens, and a token-generator,

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

6. The switch of claim 1 , wherein each of said queues is partitioned into a plurality of flow-queues,

and wherein each flow-queue buffers packets associated with one GR traffic flow.

7. The switch of claim 2 , 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.

8. The switch of claim 1 ,

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 time-slot of said scheduling frame,

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

9. The switch of claim 8 ,

wherein for each queue with a guaranteed data-rate requirement which exceeds one packet transmission per scheduling frame, said queue-schedule provides that queue with a substantially equal number of time-slot reservations for transmission in each half of the scheduling frame with a substantially equal size.

10. The switch of claim 9 ,

wherein the queue-schedule provides each queue with a substantially pro-rated number of time-slot reservations for transmission in a subset of said scheduling frame comprising time-slots 1 . . . E for integer E, where 1<=E <=F.

11. The switch of claim 1 which also switches a plurality of class-based (CB) traffic flows over a set of output ports, comprising

a plurality of class-queues, wherein each class-queue is associated with a guaranteed data-rate requirement,

wherein each class-queue buffers packets which arrive at a common one of said N input ports and depart on a common one of said M output ports, wherein each CB traffic flow is associated with one class-queue, and wherein packets associated with a CB traffic flow are buffered in its associated class-queue;

wherein a class-queue can transmit in the time-slots when a corresponding queue is not transmitting.

12. The switch of claim 11 , 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 time-slot in said scheduling frame;

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

13. The switch of claim 12 ,

wherein for each class-queue with a guaranteed data-rate requirement which exceeds one packet transmission per scheduling frame, said class-schedule provides each of said class-queues with a substantially equal number of time-slot reservations for transmission in each half of the scheduling frame with a substantially equal size.

14. The switch of claim 13 ,

wherein said class-schedule provides each of said class-queues with a substantially pro-rated number of time-slot reservations for transmission in a subset of the scheduling frame comprising time-slots 1 . . . E for integer E, where 1<=E <=F.

15. The switch of claim 12 ,

wherein the CB traffic flows belong to a traffic class in the Differentiated Services service model.

16. The switch of claim 10 , further associated with a scheduling-processor,

wherein said scheduling-processor will process the contents of a class-queue, to determine which of the packets buffered within said class-queue is selected to transmit next.

17. The switch of claim 16 ,

wherein said scheduling-processor selects an oldest packet in the class-queue to transmit next.

18. The switch of claim 1 which also switches a plurality of Best-Effort (BE) traffic flows over a set of output ports, comprising

a plurality of BE-queues, wherein each BE-queue buffers packets which arrive at a common one of said N input ports and depart on a common one of said M output ports, wherein a plurality of one or more BE traffic flows is associated with each BE-queue, and wherein packets associated with a BE traffic flow are buffered in its associated BE-queue;

wherein a BE-queue can transmit in the time-slots when a corresponding queue is not transmitting.

19. The switch of claim 11 which also switches a plurality of Best-Effort (BE) traffic flows over a set of output ports, comprising

a plurality of BE-queues, wherein each BE-queue buffers packets which arrive at a common one of said N input ports and depart on a common one of said M output ports, wherein a plurality of one or more BE traffic flows is associated with each BE-queue, and wherein packets associated with a BE traffic flow are buffered in its associated BE-queue;

wherein a BE-queue can transmit in the time-slots when a corresponding queue is not transmitting, and when a corresponding class-queue is not transmitting.

20. A packet-switched network to deliver a plurality of guaranteed rate (GR) traffic flows through a plurality of switches,

wherein each of said plurality of GR traffic flows originates at a source node, terminates at a destination node, and traverses a fixed path of intermediate switches between its source node and its destination node, and wherein each GR traffic flow is associated with a guaranteed data-rate requirement;

said network comprising a plurality of J switches for integer J, wherein said switches satisfy the requirements of claim 1 .

21. The network of claim 20 ,

wherein for each switch, the schedule for said switch provides each flow-queue within said switch with a substantially pro-rated number of time-slot reservations for transmission in a subset of the scheduling frame comprising time-slots 1 . . . E for integer E, where 1<=E<=F, wherein F is the length of the scheduling-frame for said switch.

22. The network of claim 20 ,

wherein the memory within each switch is distributed throughout the switch.

23. The network of claim 20 , wherein the GR traffic flows belong to a traffic class in the Differentiated Services service model.

24. The network of claim 20 ,

wherein each switch further satisfies the requirements of claim 9 .

25. The network of claim 24 ,

wherein each switch further satisfies the requirements of claim 10 .

26. The network of claim 20 ,

wherein each switch further satisfies the requirements of claim 13 .

27. The network of claim 26 ,

wherein each switch further satisfies the requirements of claim 14 .

28. The network of claim 20 ,

wherein at least one of said plurality of GR traffic flows is associated with a plurality of fixed paths between its source node and its destination node,

wherein each fixed path comprises a plurality of intermediate switches,

and wherein each fixed path in said plurality of fixed paths is associated with a guaranteed data-rate requirement.

29. The network of claim 20 ,

wherein a source node of at least one of said GR traffic flows comprises a traffic shaper module,

wherein said traffic-shaper module comprises a controller, memory to buffer packets, memory to buffer tokens, and a token-generator,

wherein said traffic-shaper module is operable to buffer packets associated with said GR traffic flow, and release said packets for transmission along a fixed path with a relatively constant rate of transmission.

Continuity (5)
Continuation 14792226 · Jul 6, 2015
Continuation 14093874 · Dec 2, 2013
Continuation 13074834 · Mar 29, 2011
Provisional Application 61318663 · Mar 29, 2010
Related Publication 20170230301A1 · Aug 10, 2017
Cited By (2)
US 12,199,876 US 12,568,052