Method and apparatus for queuing data flows
First Claim
1. In a data system that receives data packets and routes said data packets to one or more destinations, each data packet to be routed to it'"'"'s destination according to a relative scheduling priority, a method of scheduling the delivery of packets to a destination comprising:
- assigning at least one desired latency characteristic to each relative scheduling priority.
11 Assignments
0 Petitions
Accused Products
Abstract
In a data system, such as a cable modem termination system, different-priority flows are scheduled to be routed to their logical destinations by factoring both the priority level and the time spent in queue. The time that each packet of each flow spends waiting for transmission is normalized such that the waiting times of all flows are equalized with respect to each other. A latency scaling parameter is calculated.
140 Citations
33 Claims
-
1. In a data system that receives data packets and routes said data packets to one or more destinations, each data packet to be routed to it'"'"'s destination according to a relative scheduling priority, a method of scheduling the delivery of packets to a destination comprising:
assigning at least one desired latency characteristic to each relative scheduling priority.
-
2. In a data system that receives data packets and routes said data packets to one or more destinations, each data packet to be routed to it'"'"'s destination according to a relative scheduling priority, a method of scheduling the delivery of packets to a destination comprising:
-
assigning at least one desired latency characteristic to each relative scheduling priority;
scheduling the delivery of at least one data packet to a destination using the at least one desired latency characteristic assigned to the packet'"'"'s relative scheduling priority.
-
-
3. In a data system that receives data packets and routes said data packets to one or more destinations, each data packet to be routed to it'"'"'s destination according to a relative scheduling priority, a method of scheduling the delivery of packets to a destination comprising:
-
assigning at least one desired latency characteristic to each relative scheduling priority;
determining a latency for at least one data packet;
scheduling the delivery of at least one data packet to a destination using the at least one desired latency characteristic assigned to the packet'"'"'s relative scheduling priority and the packet'"'"'s latency.
-
-
4. In a data system that receives data packets and routes said data packets to one or more destinations, each data packet to be routed to it'"'"'s destination according to a relative scheduling priority, a method of scheduling the delivery of packets to a destination comprising:
-
assigning at least one desired latency characteristic to each relative scheduling priority;
determining a latency for at least one data packet;
scheduling the delivery of at least one data packet to a destination as a first function of the packet'"'"'s latency and the at least one desired latency characteristic assigned to the relative scheduling priority for said packet. - View Dependent Claims (5)
-
-
6. In a data system that receives data packets and routes said data packets to one or more destinations, each data packet to be routed to it'"'"'s destination according to a relative scheduling priority, said data system having a plurality of data queues corresponding to the relative scheduling priorities of said packets, a method of scheduling the delivery of packets to a destination comprising:
-
assigning at least one desired latency characteristic to each relative scheduling priority;
storing at least one data packet into a queue corresponding to the packet'"'"'s relative scheduling priority;
determining a latency for at least one data packet;
scheduling the delivery of at least one data packet to a destination as a first function of the packet'"'"'s latency and the at least one desired latency characteristic assigned to the relative scheduling priority for said packet. - View Dependent Claims (7)
-
-
8. In a data system that receives data packets and routes said data packets to one or more destinations, each data packet to be routed to it'"'"'s destination according to a relative scheduling priority, said data system having a plurality of data queues corresponding to the relative scheduling priorities of said packets, a method of scheduling the delivery of packets to a destination comprising:
-
assigning at least one desired latency characteristic to each relative scheduling priority;
storing at least one data packet into a queue corresponding to the packet'"'"'s relative scheduling priority;
for at least one data packet in each data queue, determining a latency for said at least one data packet;
for said at least one data packet from each data queue, the latencies of which were determined, calculating a first function of;
a) each packet'"'"'s latency and b) the at least one desired latency characteristic assigned to the relative scheduling priority for each packet;
scheduling the delivery of at least one data packet to a destination using a selection function. - View Dependent Claims (9, 10, 11, 20)
-
-
12. In a data system that receives data packets and routes said data packets to one or more destinations, each data packet to be routed to it'"'"'s destination according to a relative scheduling priority, said data system having a plurality of data queues corresponding to the relative scheduling priorities of said packets, a method of scheduling the delivery of packets to a destination comprising:
-
assigning at least one desired latency characteristic to each relative scheduling priority;
determining at least one latency scaling parameter for each relative scheduling priority, as a function of the at least one desired latency characteristic;
for each data packet, assigning a data value indicating the packet'"'"'s arrival time;
storing each data packet, and it'"'"'s assigned data value, into at least one queue corresponding to the packet'"'"'s relative scheduling priority;
for each data queue, determining the current latency value for the packet that has been in the queue the longest (i.e., the oldest data packet) using it'"'"'s assigned data value and the current time;
for each data queue, determining if the oldest data packet is eligible to be routed (i.e., an eligible data packet) to a destination based on said oldest data packet'"'"'s current latency value and the desired latency characteristics assigned to the relative scheduling priority corresponding to said data queue;
for each data queue having an eligible data packet, calculating a first function of at least one of;
a) each eligible data packet'"'"'s current latency;
b) the desired latency characteristic assigned to the relative scheduling priority corresponding to said data queue;
c) the latency scaling parameter determined for the relative scheduling priority corresponding to said data queue;
scheduling the delivery of at least one data packet to a destination using a selection function. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 21, 22)
-
-
23. A method of controlling the flow of data packets of a data flow through a data system comprising:
-
receiving a first data packet of a first data flow at a port of said data system;
identifying the first data packet'"'"'s time of arrival at the port;
storing the first data packet in a queue, for a latency time that is greater than or equal to a minimum latency time and less than or equal to a maximum latency time;
outputting the first data packet from a port of the data system.
-
-
24. A method of controlling the flow of data packets of a data flow through a data system comprising:
-
receiving a first data packet of a first data flow at a port of said data system;
storing the first data packet in a queue;
identifying the first data packet'"'"'s time of arrival in the queue;
after the passage of a time that is greater than or equal to a minimum latency time and less than or equal to a maximum latency time, outputting the first data packet from a port of the data system.
-
-
25. A data system that receives data packets and routes said data packets to one or more destinations, each data packet to be routed to it'"'"'s destination according to a relative scheduling priority, said data system having a plurality of data queues corresponding to the relative scheduling priorities of said packets, said data system comprising:
processor means for assigning at least one desired latency characteristic to each relative scheduling priority.
-
26. A data system that receives data packets and routes said data packets to one or more destinations, each data packet to be routed to it'"'"'s destination according to a relative scheduling priority, said data system having a plurality of data queues corresponding to the relative scheduling priorities of said packets, said data system comprising:
-
processor means for assigning at least one desired latency characteristic to each relative scheduling priority;
a scheduling engine, scheduling the delivery of at least one data packet to a destination using the at least one desired latency characteristic assigned to the packet'"'"'s relative scheduling priority.
-
-
27. A data system that receives data packets and routes said data packets to one or more destinations, each data packet to be routed to it'"'"'s destination according to a relative scheduling priority, said data system having a plurality of data queues corresponding to the relative scheduling priorities of said packets, said data system comprising:
-
means for assigning at least one desired latency characteristic to each relative scheduling priority;
means for determining a latency for at least one data packet;
a scheduling engine, for scheduling the delivery of at least one data packet to a destination using the at least one desired latency characteristic assigned to the packet'"'"'s relative scheduling priority and the packet'"'"'s latency.
-
-
28. A data system that receives data packets and routes said data packets to one or more destinations, each data packet to be routed to it'"'"'s destination according to a relative scheduling priority, said data system having a plurality of data queues corresponding to the relative scheduling priorities of said packets, said data system comprising:
-
means for assigning at least one desired latency characteristic to each relative scheduling priority;
means for determining a latency for at least one data packet;
a scheduling engine for scheduling the delivery of at least one data packet to a destination as a first function of the packet'"'"'s latency and the at least one desired latency characteristic assigned to the relative scheduling priority for said packet.
-
-
29. A data system that receives data packets and routes said data packets to one or more destinations, each data packet to be routed to it'"'"'s destination according to a relative scheduling priority, said data system having a plurality of data queues corresponding to the relative scheduling priorities of said packets, said data system comprising:
-
means for assigning at least one desired latency characteristic to each relative scheduling priority;
a memory, storing at least one data packet into a queue corresponding to the packet'"'"'s relative scheduling priority;
means for determining a latency for at least one data packet;
a scheduling engine, for scheduling the delivery of at least one data packet to a destination as a first function of the packet'"'"'s latency and the at least one desired latency characteristic assigned to the relative scheduling priority for said packet.
-
-
30. A data system that receives data packets and routes said data packets to one or more destinations, each data packet to be routed to it'"'"'s destination according to a relative scheduling priority, said data system having a plurality of data queues corresponding to the relative scheduling priorities of said packets, said data system comprising:
-
processor means for assigning at least one desired latency characteristic to each relative scheduling priority;
processor means for determining at least one latency scaling parameter for each relative scheduling priority, as a function of the at least one desired latency characteristic;
a time stamp circuit means for assigning a data value indicating the packet'"'"'s arrival time;
a memory, storing each data packet, and it'"'"'s assigned data value, into at least one queue corresponding to the packet'"'"'s relative scheduling priority;
means for determining for each data queue, the current latency value for the packet that has been in the queue the longest (i.e., the oldest data packet) using it'"'"'s assigned data value and the current time; and
for determining for each data queue, if the oldest data packet is eligible to be routed (i.e., an eligible data packet) to a destination based on said oldest data packet'"'"'s current latency value and the desired latency characteristics assigned to the relative scheduling priority corresponding to said data queue;
for each data queue having an eligible data packet, calculating a first function of at least one of;
a) each eligible data packet'"'"'s current latency;
b) the desired latency characteristic assigned to the relative scheduling priority corresponding to said data queue;
c) the latency scaling parameter determined for the relative scheduling priority corresponding to said data queue;
scheduling engine for scheduling the delivery of at least one data packet to a destination using a selection function.
-
-
31. A data system that receives data packets and routes said data packets to one or more destinations, each data packet to be routed to it'"'"'s destination according to a relative scheduling priority, said data system having a plurality of data queues corresponding to the relative scheduling priorities of said packets, said data system comprising:
-
means for receiving a first data packet of a first data flow at a port of said data system;
means for identifying the first data packet'"'"'s time of arrival at the port;
means for storing the first data packet in a queue, for a latency time that is greater than or equal to a minimum latency time and less than or equal to a maximum latency time;
means for outputting the first data packet from a port of the data system.
-
-
32. A data system that receives data packets and routes said data packets to one or more destinations, each data packet to be routed to it'"'"'s destination according to a relative scheduling priority, said data system having a plurality of data queues corresponding to the relative scheduling priorities of said packets, said data system comprising:
-
means for receiving a first data packet of a first data flow at a port of said data system;
means for storing the first data packet in a queue;
means for identifying the first data packet'"'"'s time of arrival in the queue;
means for outputting the first data packet from a port of the data system after the passage of a time that is greater than or equal to a minimum latency time and less than or equal to a maximum latency time.
-
-
33. A data distribution system comprised of:
-
a cable distribution network;
a cable modem termination system operatively coupled to said cable distribution network and comprised of;
processor means for assigning at least one desired latency characteristic to each relative scheduling priority;
a scheduling engine, scheduling the delivery of at least one data packet to a destination using the at least one desired latency characteristic assigned to the packet'"'"'s relative scheduling priority.
-
Specification