Marking network data packets with differentiated services codepoints based on network load
First Claim
1. A method for marking one or more packets of data in a packet-switched network based on achieved flow bandwidth information within the network, comprising the computer-implemented steps of:
- receiving a first group of one or more packets of a data flow at a router in the network;
marking the first group of one or more packets of said data flow with a first behavioral treatment value, wherein the first behavioral treatment value directs devices within the network to treat the first group of one or more packets with a first quality of service treatment;
transmitting the first group of one or more packets of said data flow in the network;
determining an achieved flow bandwidth for the data flow based on data traffic within the network;
determining packet flow characteristics of the first group of one or more packets of said data flow;
determining a second behavioral treatment value based on the achieved flow bandwidth for the data flow within the network and on the packet flow characteristics of the first group of one or more packets of the data flow;
receiving a second group of one or more packets of said data flow from at the router in the network;
marking the second group of one or more packets of said data flow with said second behavioral treatment value, wherein the second behavioral treatment value directs devices within the network to treat the second group of one or more packets with a second quality of service treatment that is different than the first quality of service treatment;
transmitting the second group of one or more packets of said data flow in the network; and
repeating the preceding steps for successive groups of one or more packets of said data flow, wherein each of the successive groups is dynamically marked with a behavioral treatment value that is determined based at least in part on a successively determined achieved flow bandwidth for the data flow.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus for performing load-based packet marking within a network is described. In one aspect, a first group of one or more packets of a data flow are marked with a first behavioral treatment value that directs devices within the network to treat the first group of one or more packets with a first quality of service treatment. The bandwidth that is currently being achieved for the flow within the network is determined based on data traffic within the network. Based on the achieved flow bandwidth within the network a second behavioral treatment value is then determined. Thereafter, a second group of one or more packets of the data flow is marked with a second behavioral treatment value that directs devices within the network to treat the second group of one or more packets with a second quality of service treatment. The process of dynamically marking the packets for a particular data flow may be performed multiple times.
-
Citations
59 Claims
-
1. A method for marking one or more packets of data in a packet-switched network based on achieved flow bandwidth information within the network, comprising the computer-implemented steps of:
-
receiving a first group of one or more packets of a data flow at a router in the network; marking the first group of one or more packets of said data flow with a first behavioral treatment value, wherein the first behavioral treatment value directs devices within the network to treat the first group of one or more packets with a first quality of service treatment; transmitting the first group of one or more packets of said data flow in the network; determining an achieved flow bandwidth for the data flow based on data traffic within the network; determining packet flow characteristics of the first group of one or more packets of said data flow; determining a second behavioral treatment value based on the achieved flow bandwidth for the data flow within the network and on the packet flow characteristics of the first group of one or more packets of the data flow; receiving a second group of one or more packets of said data flow from at the router in the network; marking the second group of one or more packets of said data flow with said second behavioral treatment value, wherein the second behavioral treatment value directs devices within the network to treat the second group of one or more packets with a second quality of service treatment that is different than the first quality of service treatment; transmitting the second group of one or more packets of said data flow in the network; and repeating the preceding steps for successive groups of one or more packets of said data flow, wherein each of the successive groups is dynamically marked with a behavioral treatment value that is determined based at least in part on a successively determined achieved flow bandwidth for the data flow. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A computer-readable medium carrying one or more sequences of instructions for marking one or more packets of data in a packet-switched network based on achieved flow bandwidth information within the network, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:
-
receiving a first group of one or more packets of a data flow at a router in the network; marking the first group of one or more packets of said data flow with a first behavioral treatment value, wherein the first behavioral treatment value directs devices within the network to treat the first group of one or more packets with a first quality of service treatment; transmitting the first group of one or more packets of said data flow in the network; determining an achieved flow bandwidth for the data flow based on data traffic within the network; determining packet flow characteristics of the first group of one or more packets of said data flow; determining a second behavioral treatment value based on the achieved flow bandwidth for the data flow within the network and on the packet flow characteristics of the first group of one or more packets of the data flow; receiving a second group of one or more packets of said data flow at the router in the network; marking the second group of one or more packets of said data flow with said second behavioral treatment value, wherein the second behavioral treatment value directs devices within the network to treat the second group of one or more packets with a second quality of service treatment that is different than the first quality of service treatment; transmitting the second group of one or more packets of said data flow in the network; and repeating the preceding steps for successive groups of one or more packets of said data flow, wherein each of the successive groups is dynamically marked with a behavioral treatment value that is determined based at least in part on a successively determined achieved flow bandwidth for the data flow. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. A computer apparatus comprising:
-
a processor; and a memory coupled to the processor, the memory containing one or more sequences of instructions for marking one or more packets of data in a packet-switched network based on achieved flow bandwidth information within the network, wherein execution of the one or more sequences of instructions by the processor causes the processor to perform the steps of; receiving a first group of one or more packets of a data flow from the network; marking the first group of one or more packets of said data flow with a first behavioral treatment value, wherein the first behavioral treatment value directs devices within the network to treat the first group of one or more packets with a first quality of service treatment; transmitting the first group of one or more packets of said data flow in the network; determining an achieved flow bandwidth for the data flow based on data traffic within the network; determining packet flow characteristics of the first group of one or more packets of said data flow; determining a second behavioral treatment value based on the achieved flow bandwidth for the data flow within the network and on the packet flow characteristics of the first group of one or more packets of the data flow; receiving a second group of one or more packets of said data flow from the network; marking the second group of one or more packets of said data flow with said second behavioral treatment value, wherein the second behavioral treatment value directs devices within the network to treat the second group of one or more packets with a second quality of service treatment that is different than the first quality of service treatment; transmitting the second group of one or more packets of said data flow in the network; and repeating the preceding steps for successive groups of one or more packets of said data flow, wherein each of the successive groups is dynamically marked with a behavioral treatment value that is determined based at least in part on a successively determined achieved flow bandwidth for the data flow; wherein the computer apparatus is any one of a bridge, a switch, and a router. - View Dependent Claims (32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45)
-
-
46. A network device configured for marking one or more packets of data in a packet-switched network based on achieved flow bandwidth information within the network, comprising:
-
means for receiving a first group of one or more packets of a data flow from the network; means for marking the first group of one or more packets of said data flow with a first behavioral treatment value, wherein the first behavioral treatment value directs devices within the network to treat the first group of one or more packets with a first quality of service treatment; means for transmitting the first group of one or more packets of said data flow in the network; means for determining an achieved flow bandwidth for the data flow based on data traffic within the network; means for determining packet flow characteristics of the first group of one or more packets of said data flow; means for determining a second behavioral treatment value based on the achieved flow bandwidth for the data flow within the network and on the packet flow characteristics of the first group of one or more packets of the data flow; means for receiving a second group of one or more packets of said data flow from the network; means for marking the second group of one or more packets of said data flow with said second behavioral treatment value, wherein the second behavioral treatment value directs devices within the network to treat the second group of one or more packets with a second quality of service treatment that is different than the first quality of service treatment; means for transmitting the second group of one or more packets of said data flow in the network; and means for repeating the preceding steps for successive groups of one or more packets of said data flow, wherein each of the successive groups is dynamically marked with a behavioral treatment value that is determined based at least in part on a successively determined achieved flow bandwidth for the data flow; wherein the network device is any one of a bridge, a switch, and a router.
-
-
47. A method for marking one or more packets of data in a packet-switched network based on achieved flow bandwidth information within the network, comprising the computer-implemented steps of:
-
causing one or more network devices to receive a first group of one or more packets of a data flow from the network; causing the one or more network devices to mark the first group of one or more packets of said data flow with a first behavioral treatment value, wherein the first behavioral treatment value directs devices within the network to treat the first group of one or more packets with a first quality of service treatment; causing the one or more network devices to transmit the first group of one or more packets of said data flow in the network; determining an achieved flow bandwidth for the data flow based on data traffic within the network; determining packet flow characteristics of the first group of one or more packets of said data flow; determining a second behavioral treatment value based on the achieved flow bandwidth for the data flow within the network and on the packet flow characteristics of the first group of one or more packets of the data flow; causing the one or more network devices to receive a second group of one or more packets of said data flow from the network; causing the one or more network devices to mark the second group of one or more packets of said data flow with said second behavioral treatment value, wherein the second behavioral treatment value directs devices within the network to treat the second group of one or more packets with a second quality of service treatment that is different than the first quality of service treatment; causing the one or more network devices to transmit the second group of one or more packets of said data flow in the network; and causing the one or more network devices to repeat the preceding steps for successive groups of one or more packets of said data flow, wherein each of the successive groups is dynamically marked with a behavioral treatment value that is determined based at least in part on a successively determined achieved flow bandwidth for the data flow.
-
-
48. A method for marking one or more packets of data in a packet-switched network based on achieved flow bandwidth information within the network, comprising the computer-implemented steps of:
-
receiving a first group of packets of a plurality of data flows at a router in the network; marking the first group of packets of said plurality of data flows with an initial set of behavioral treatment values, wherein the initial set of behavioral treatment values direct devices within the network to treat the first group of packets with an initial set of quality of service treatments; transmitting the first group of packets of said plurality of data flows in the network; determining achieved flow bandwidths, wherein an achieved flow bandwidth is determined for each of the plurality of data flows based on data traffic within the network; determining packet flow characteristics of the first group of packets of said plurality of data flows; determining an updated set of behavioral treatment values based on the achieved flow bandwidths within the network and on the packet flow characteristics of the first group of packets; receiving a second group of packets of said plurality of data flows at the router in the network; after the steps of marking the first group and determining the updated set of behavioral treatment values, marking the second group packets of said plurality of data flows with said updated set of behavioral treatment values, wherein the updated set of behavioral treatment values direct devices within the network to treat the second group of packets with an updated set of quality of service treatments that is different than the initial set of quality of service treatments; transmitting the second group of packets of said plurality of data flows in the network; and repeating the preceding steps for successive groups of packets of said plurality of data flows, wherein each of the successive groups is dynamically marked with a set of behavioral treatment values that is determined based at least in part on successively determined achieved flow bandwidths for said plurality of data flows. - View Dependent Claims (49, 50)
-
-
51. A method for performing packet marking comprising the computer-implemented steps of:
-
defining an initial set of Quality of Service (QoS) values for coloring packets within a plurality of data flows, wherein each of the QoS values indicates an allocation of bandwidth; coloring a first group of one or more packets of a given data flow selected from the plurality of data flows, without regard to an achieved flow bandwidth, by at least; communicating the initial set of QoS values to each of one or more edge differentiated services domain nodes that are located at one or more edges of a differentiated services domain, and the one or more edge differentiated services domain nodes using one or more of the initial set of QoS values to color the first group; estimating traffic bandwidth within the network based on bandwidth information corresponding to a current traffic pattern of the network, wherein the traffic bandwidth estimated includes an achieved flow bandwidth for the given data flow; determining packet flow characteristics of the first group of one or more packets of the given data flow; determining an updated set of QoS values for coloring packets within the plurality of data flows, based on the traffic bandwidth estimated and on the packet flow characteristics of the first group of one or more packets, wherein the updated set of QoS values provide lower levels of service than other available choices of QoS values, and wherein the updated set of QoS values provide a high enough level of service to accommodate the traffic bandwidth estimated; coloring a subsequent group of one or more packets of the given data flow with the one or more of updated set of QoS values by at least; communicating the updated set of QoS values to each of one or more edge differentiated services domain nodes, and the one or more edge differentiated services domain nodes using one or more of the updated set of QoS values to color the subsequent group; and repeating the steps of estimating traffic bandwidth, determining packet flow characteristics, determining an updated set of QoS values, and coloring a subsequent group multiple times, therein tuning the network on an ongoing basis.
-
-
52. A computer-readable medium carrying one or more sequences of instructions for marking one or more packets of data in a packet-switched network based on achieved flow bandwidth information within the network, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:
-
receiving a first group of packets of a plurality of data flows at a router in the network; marking the first group of packets of said plurality of data flows with an initial set of behavioral treatment values, wherein the initial set of behavioral treatment values direct devices within the network to treat the first group of packets with an initial set of quality of service treatments; transmitting the first group of packets of said plurality of data flows in the network; determining achieved flow bandwidths, wherein an achieved flow bandwidth is determined for each of the plurality of data flows based on data traffic within the network; determining packet flow characteristics of the first group of packets of said plurality of data flows; determining an updated set of behavioral treatment values based on the achieved flow bandwidths within the network and on the packet flow characteristics of the first group of packets; receiving a second group of packets of said plurality of data flows at the router in the network; after the steps of marking the first group and determining the updated set of behavioral treatment values, marking the second group packets of said plurality of data flows with said updated set of behavioral treatment values, wherein the updated set of behavioral treatment values direct devices within the network to treat the second group of packets with an updated set of quality of service treatments that is different than the initial set of quality of service treatments; transmitting the second group of packets of said plurality of data flows in the network; and repeating the preceding steps for successive groups of packets of said plurality of data flows, wherein each of the successive groups is dynamically marked with a set of behavioral treatment values that is determined based at least in part on successively determined achieved flow bandwidths for said plurality of data flows. - View Dependent Claims (53, 54)
-
-
55. A computer-readable medium carrying one or more sequences of instructions for marking one or more packets of data in a packet-switched network based on achieved flow bandwidth information within the network, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:
-
defining an initial set of Quality of Service (QoS) values for coloring packets within a plurality of data flows, wherein each of the QoS values indicates an allocation of bandwidth; coloring a first group of one or more packets of a given data flow selected from the plurality of data flows, without regard to an achieved flow bandwidth, by at least; communicating the initial set of QoS values to each of one or more edge differentiated services domain nodes that are located at one or more edges of a differentiated services domain, and the one or more edge differentiated services domain nodes using one or more of the initial set of QoS values to color the first group; estimating traffic bandwidth within the network based on bandwidth information corresponding to a current traffic pattern of the network, wherein the traffic bandwidth estimated includes an achieved flow bandwidth for the given data flow; determining packet flow characteristics of the first group of one or more packets of the given data flow; determining an updated set of QoS values for coloring packets within the plurality of data flows, based on the traffic bandwidth estimated and on the packet flow characteristics of the first group of one or more packets, wherein the updated set of QoS values provide lower levels of service than other available choices of QoS values, and wherein the updated set of QoS values provide a high enough level of service to accommodate the traffic bandwidth estimated; coloring a subsequent group of one or more packets of the given data flow with the one or more of updated set of QoS values by at least; communicating the updated set of QoS values to each of one or more edge differentiated services domain nodes, and the one or more edge differentiated services domain nodes using one or more of the updated set of QoS values to color the subsequent group; and repeating the steps of estimating traffic bandwidth, determining packet flow characteristics, determining an updated set of QoS values, and coloring a subsequent group multiple times, therein tuning the network on an ongoing basis.
-
-
56. A computer apparatus comprising:
-
a processor; and a memory coupled to the processor, the memory containing one or more sequences of instructions for marking one or more packets of data in a packet-switched network based on achieved flow bandwidth information within the network, wherein execution of the one or more sequences of instructions by the processor causes the processor to perform the steps of; receiving a first group of packets of a plurality of data flows from the network; marking the first group of packets of said plurality of data flows with an initial set of behavioral treatment values, wherein the initial set of behavioral treatment values direct devices within the network to treat the first group of packets with an initial set of quality of service treatments; transmitting the first group of packets of said plurality of data flows in the network; determining achieved flow bandwidths, wherein an achieved flow bandwidth is determined for each of the plurality of data flows based on data traffic within the network; determining packet flow characteristics of the first group of packets of said plurality of data flows; determining an updated set of behavioral treatment values based on the achieved flow bandwidths within the network and on the packet flow characteristics of the first group of packets; receiving a second group of packets of said plurality of data flows from the network; after the steps of marking the first group and determining the updated set of behavioral treatment values, marking the second group packets of said plurality of data flows with said updated set of behavioral treatment values, wherein the updated set of behavioral treatment values direct devices within the network to treat the second group of packets with an updated set of quality of service treatments that is different than the initial set of quality of service treatments; transmitting the second group of packets of said plurality of data flows in the network; and repeating the preceding steps for successive groups of packets of said plurality of data flows, wherein each of the successive groups is dynamically marked with a set of behavioral treatment values that is determined based at least in part on successively determined achieved flow bandwidths for said plurality of data flows; wherein the computer apparatus is any one of a bridge, a switch and a router. - View Dependent Claims (57, 58)
-
-
59. A computer apparatus comprising:
-
a processor; and a memory coupled to the processor, the memory containing one or more sequences of instructions for marking one or more packets of data in a packet-switched network based on achieved flow bandwidth information within the network, wherein execution of the one or more sequences of instructions by the processor causes the processor to perform the steps of; defining an initial set of Quality of Service (QoS) values for coloring packets within a plurality of data flows, wherein each of the QoS values indicates an allocation of bandwidth; coloring a first group of one or more packets of a given data flow selected from the plurality of data flows, without regard to an achieved flow bandwidth, by at least; communicating the initial set of QoS values to each of one or more edge differentiated services domain nodes that are located at one or more edges of a differentiated services domain, and the one or more edge differentiated services domain nodes using one or more of the initial set of QoS values to color the first group; estimating traffic bandwidth within the network based on bandwidth information corresponding to a current traffic pattern of the network, wherein the traffic bandwidth estimated includes an achieved flow bandwidth for the given data flow; determining packet flow characteristics of the first group of one or more packets of the given data flow; determining an updated set of QoS values for coloring packets within the plurality of data flows, based on the traffic bandwidth estimated and on the packet flow characteristics of the first group of one or more packets, wherein the updated set of QoS values provide lower levels of service than other available choices of QoS values, and wherein the updated set of QoS values provide a high enough level of service to accommodate the traffic bandwidth estimated; coloring a subsequent group of one or more packets of the given data flow with the one or more of updated set of QoS values by at least; communicating the updated set of QoS values to each of one or more edge differentiated services domain nodes, and the one or more edge differentiated services domain nodes using one or more of the updated set of QoS values to color the subsequent group; and repeating the steps of estimating traffic bandwidth, determining packet flow characteristics, determining an updated set of QoS values, and coloring a subsequent group multiple times, therein tuning the network on an ongoing basis; wherein the computer apparatus is any one of a bridge, a switch, and a router.
-
Specification