Multi-timescale packet marker
11695703 · 2023-07-04
Assignee
Inventors
- Szilveszter Nádas (Budapest, HU)
- Sándor Laki (Budapest, HU)
- Gergo Gombos (Budapest, HU)
- Ferenc Fejes (Budapest, HU)
Cpc classification
H04L47/31
ELECTRICITY
H04L47/283
ELECTRICITY
International classification
Abstract
A network node (120), such as a packet marking node, efficiently measures the bitrates of incoming packets on a plurality of timescales (TSs). A throughput-value function (TVF) is then graphed to indicate the throughput-packet value relationship for that TVF. Then, starting from the longest TS and moving towards the shortest TS, the packet marking node determines (88) a distance between the TVFs of different TSs at the measured bitrates. To determine the packet marking, the packet marking node selects a random throughput value between 0 and the bitrate measured on the shortest TS. Depending on how the random value relates to the measured bitrates, a TVF, and the distances to add to the random value, is then selected to determine (92) a packet value (PV) with which to mark the packet. The packet marking node then marks (94) the packet according to the determined PV.
Claims
1. A method of managing shared resources using per-packet marking, the method comprising: assigning a plurality of throughput-value function (TVFs) to a plurality of timescales (TSs), with each TVF being assigned to a respective TS, and wherein each TS is associated with one or more valid bitrate regions; determining a plurality of measured bitrates based on the plurality of TSs; determining a random bitrate; determining one or more distances between the plurality of TVFs, wherein each distance defines an invalid bitrate region between two TVFs; selecting a TVF based on the random bitrate and the one or more distances between the plurality of TVFs; determining a packet value with which to mark a received packet as a function of the selected TVF; marking the received packet with the packet value; and outputting the packet marked with the packet value.
2. The method of claim 1 wherein each TVF relates a plurality of packet values to bitrate throughput, and wherein both the packet values and the bitrate throughput are on a logarithmic scale.
3. The method of claim 1 further comprising updating the plurality of measured bitrates based on the plurality of TSs.
4. The method of claim 1 wherein the random bitrate is a randomly selected throughput value between 0 and a bitrate measured on a shortest TS.
5. The method of claim 1 further comprising selecting a valid bitrate region from the one or more valid bitrate regions, and wherein the selected TVF is associated with the selected valid bitrate region.
6. The method of claim 1 further comprising quantizing the TVFs into a token bucket matrix, with each TVF being quantized into one or more token buckets, and with each token bucket corresponding to a different maximum number of tokens.
7. The method of claim 6 wherein selecting a TVF based on the random bitrate and the one or more distances between the plurality of TVFs further comprises selecting the TVF based on a measured bitrate by: selecting a first TVF if the random bitrate is less than the measured bitrate; and selecting a second TVF if the random bitrate is larger than the measured bitrate.
8. The method of claim 1 wherein the measured bitrates in a first valid bitrate region is less than the measured bitrates in a second valid bitrate region.
9. The method of claim 1 further comprising updating the one or more distances responsive to determining that the measured bitrates comprising the one or more valid bitrate regions have changed.
10. The method of claim 1 further comprising: not updating any valid or invalid bitrate region that is associated with excessively long TSs for each packet arrival; and updating the valid or invalid bitrate region responsive to determining that: a predefined time period has elapsed; or a predefined number of bits has been received since a last update.
11. A network node configured to manage resources using per-packet marking, the node comprising: communications circuitry configured to send data packets to, and receive data packets from, one or more other nodes via a communications network; and processing circuitry operatively connected to the communications circuitry and configured to: assign a plurality of throughput-value function (TVFs) to a plurality of timescales (TSs), with each TVF being assigned to a respective TS, and wherein each TS is associated with one or more valid bitrate regions; determine a plurality of measured bitrates based on the plurality of TSs; determine a random bitrate; determine one or more distances between the plurality of TVFs, wherein each distance defines an invalid bitrate region between two TVFs; select a TVF based on the random bitrate and the one or more distances between the plurality of TVFs; determine a packet value with which to mark a received data packet as a function of the selected TVF; mark the received data packet with the packet value; and output the data packet marked with the packet value via the communications circuitry.
12. The network node of claim 11 wherein each TVF relates a plurality of packet values to bitrate throughput, wherein both the packet values and the bitrate throughput are on a logarithmic scale, and wherein the processing circuitry is further configured to update the plurality of measured bitrates based on the plurality of TSs.
13. The network node of claim 11 wherein the random bitrate is a randomly selected throughput value between 0 and a bitrate measured on a shortest TS.
14. The network node of claim 11 wherein the processing circuitry is further configured to select a valid bitrate region from the one or more valid bitrate regions, and wherein the selected TVF is associated with the selected valid bitrate region.
15. The network node of claim 11 wherein the processing circuitry is further configured to quantize the TVFs into a token bucket matrix, with each TVF being quantized into one or more token buckets, and with each token bucket corresponding to a different maximum number of tokens.
16. The network node of claim 15 wherein to select a TVF based on the random bitrate and the one or more distances between the plurality of TVFs, the processing circuitry is further configured to select the TVF based on a measured bitrate by: selecting a first TVF if the random bitrate is less than the measured bitrate; and selecting a second TVF if the random bitrate is larger than the measured bitrate.
17. The network node of claim 11 wherein the measured bitrates in a first valid bitrate region are less than the measured bitrates in a second valid bitrate region.
18. The network node of claim 11 wherein the processing circuitry is further configured to update the one or more distances responsive to determining that the measured bitrates comprising the one or more valid bitrate regions has changed.
19. The network node of claim 11 wherein the processing circuitry is further configured to: not update any valid or invalid bitrate region that is associated with excessively long TSs for each packet arrival; and update the valid or invalid bitrate region responsive to determining that” a predefined time period has elapsed; or a predefined number of bits has been received since a last update.
20. A non-transitory computer readable medium storing a control application thereon, the control application comprising instructions that, when executed by processing circuitry of a network node configured to manage resources using per-packet marking, causes the network node to: assign a plurality of throughput-value function (TVFs) to a plurality of timescales (TSs), with each TVF being assigned to a respective TS, and wherein each TS is associated with one or more valid bitrate regions; determine a plurality of measured bitrates based on the plurality of TSs; determine a random bitrate; determine one or more distances between the plurality of TVFs, wherein each distance defines an invalid bitrate region between two TVFs; select a TVF based on the random bitrate and the one or more distances between the plurality of TVFs; determine a packet value with which to mark a received data packet as a function of the selected TVF; mark the received data packet with the packet value; and output the data packet marked with the packet value via the communications circuitry.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
DETAILED DESCRIPTION
(10) Current methods of per-packet marking based bandwidth sharing control depend on the importance of the packets. Some methods define algorithms for a single buffer that result in a shared delay among flows, while other methods are based on bandwidth that is measured either on a short timescale or on a very long timescale. Still other methods utilize a plurality of token buckets. Each bucket represents a different timescale and is assigned to a same Drop Precedence level. Packets are marked in accordance with the assigned drop precedence level of all related buckets containing a predefined number of tokens.
(11) However, current methods of per-packet marking based bandwidth sharing control methods are problematic. For example, methods that utilize token buckets are only suitable for use with a few drop precedence levels. It is not possible with such methods to achieve the same type of fine-grained control of resource sharing that is possible with other methods. Quantizing a TVF to utilize a plurality of token buckets is also not helpful. Particularly, an unrealistic number of token buckets will be required as the number of drop precedence levels increases (e.g., to more than 10). This makes packet marking inefficient, both in memory usage and in computational demand.
(12) Embodiments of the present disclosure address these challenges by configuring a TVF for each of a plurality of TSs. More particularly, embodiments of the present disclosure efficiently measure the bitrates of incoming packets on all TSs. Each TVF is then graphed to indicate the throughput-packet value relationship for that TVF. Then, starting from the longest TS and moving towards the shortest TS, a distance is determined between the TVFs of different TSs at the measured bitrates. To determine the packet marking, a random throughput value between 0 and the bitrate measured on the shortest TS is selected. Then, depending on how the random throughput value relates to the measured bitrates, a TVF and the distances to add to the random throughput value are selected to determine the packet marking.
(13) Additionally, embodiments of the present disclosure re-use the existing PPV core stateless schedulers in the core of the network, and provide an optimized implementation where bitrate measurement on longer timescales is not updated for each packet arrival.
(14) As described herein, embodiments of the present disclosure provide benefits and advantages that current methods of per-packet marking based bandwidth sharing control are not able to provide. For example, not only do the embodiments described herein implement multi-timescale fairness, but they also provide a flexible way to control that multi-timescale fairness. Additionally, the embodiments described herein implement a fine-grained control of both traffic mix and resource bandwidth that is independent of other resource sharing control. Moreover, unlike prior art methods that define algorithms for a single buffer, implementing embodiments of the present disclosure requires no changes to the core of the network. This allows for fast implementation, while also minimizing any additional memory and computational requirements placed on the core of the network.
(15) Referring now to the drawings, exemplary embodiments of the present disclosure build on the TVF concept to define resource sharing targets.
(16) A given TVF can be quantized into token buckets. By way of example, the TVFs in
(17) In more detail, the embodiment of
(18) According to the present disclosure, a packet can be marked to Packet Value (PV) PV.sub.1 if both token buckets with bitrates R.sub.12 and R.sub.11 contain at least a predetermined number tokens. Thus:
R.sub.11>R.sub.12, and R.sub.21>R.sub.22
(19) This is because the TVFs are parallel on a logarithmic scale, and the equation
TVF.sub.i(x)>TVF.sub.i+1(x)
holds true for all i and x. At the same time, the maximum token levels for the token buckets (BS.sub.ij) are different, because of the timescales. Thus, with respect to the number of tokens in each token bucket BS.sub.ij:
BS.sub.11<BS.sub.12 and BS.sub.21<BS.sub.22
(20) Specifically, for a PV.sub.1 for a given burst, BS.sub.11 will first be emptied before BS.sub.12. When BS.sub.12 is also emptied, it means that bitrate R.sub.2 on TS.sub.2 (i.e., the timescale associated with TVF.sub.2) has already been reached. Assuming, then, that BS.sub.22 has not yet been emptied: TVF.sub.2 will be representative when marking packets until bitrate R.sub.2 is reached; and TVF.sub.1 will be representative when marking packets when the bitrate is above R.sub.2.
(21) However, according to the present embodiments, the region between R.sub.2 and R.sub.2+Δ.sub.2 cannot be used. This means that if packet marking is performed: a packet is marked according to TVF.sub.2(r) if r is smaller than R.sub.2; and a packet is marked according to TVF.sub.1(r+Δ.sub.2) if r is larger than R.sub.2.
(22)
(23) As seen in
(24) It should be noted that while this specific example indicates that R.sub.1>R.sub.2>R.sub.3>R.sub.4, this need not always be true. This is true, however, at the start of a burst. As seen in more detail later, the concept for the general case (i.e., the order of R.sub.i) is similar. The behavior for both TVF.sub.4 and TVF.sub.3 is similar as described previously with respect to
(25)
(26) According to the present embodiments, a PV for an incoming packet can be determined by: Updating all necessary Rs and Δs; Getting a random bitrate r, uniformly between 0 and R.sub.1; and Based on the relation of r and the R.sub.is, selecting the right region (i.e., from regions 1,3,5,7 in
(27) The areas marked L.sub.1-L.sub.4 in
(28)
(29) According to the present embodiments, the Δ.sub.is have to be updated only when the R.sub.is change.
(30) In a further optimization, embodiments of the present disclosure do not update the R.sub.is that are associated with excessively long TSs for each packet arrival. Instead, these R.sub.is are updated only if TS.sub.i/10 period have elapsed, or when R.sub.i*TS/10 bits have arrived since the last update. When not all R.sub.is are updated, i can be initialized at the index of the longest updated TS (i.e. the “j” in TS.sub.j−1). This optimizes the packet marker. In particular, as most timescales are likely to be above 1 second, the updates are likely to be infrequent. Additionally, to further optimize the performance of packet marking, embodiments of the present disclosure are configured to update of all R.sub.is in an offline control logic, rather than in the packet pipeline.
(31)
(32) In
(33)
(34) It should be noted that the present embodiments utilize bitrate measurement on different timescales. However, another embodiment of the present disclosure utilizes a sliding window based measurement. In these latter embodiments, the arrival of a packet during the last TS seconds is divided by the value of the TS. Further, the result of the disclosed configuration on the embodiment seen in
(35)
(36) Packet marking device also performs other functions in accordance with method 80. For example, as seen in
(37)
(38)
(39) In operation, the TVF and TS configuration module/unit 132 is configured to determine the TVFs and the TSs, and to assign a TVF to each of the plurality of TSs, as previously described. The packet receiving module/unit 134 is configured receive incoming packets that are to be marked according to embodiments of the present disclosure, while the R.sub.i and Δ.sub.i determination module/unit 136 is configured to compute the R.sub.is and Δ.sub.is, and select the desired Δ.sub.i, as previously described. The PV determination module/unit 138 is configured to select a desired TVF to compute the PV that will be utilized to mark the incoming packet, as previously described. The marked packet sending module/unit 140 is configured to send the marked packet to a destination node, as previously described.
(40) Embodiments further include a carrier containing a computer program, such as control program 126. This carrier may comprise one of an electronic signal, optical signal, radio signal, or computer readable storage medium.
(41) In this regard, embodiments herein also include a computer program product (e.g., control program 126) stored on a non-transitory computer readable (storage or recording) medium (e.g., memory circuitry 124) and comprising instructions that, when executed by a processor of an apparatus, cause the apparatus (e.g., a packet marking device 120) to perform as described above. Such a computer program product may be, for example, control program 126.
(42) Embodiments further include a computer program product, such as control program 84, comprising program code portions for performing the steps of any of the embodiments herein when the computer program product is executed by a computing device, such as packet marking device 120. This computer program product may be stored on a computer readable recording medium.
(43) Additionally, the packet marker configured according to the present embodiments is per traffic aggregate and no coordination between separate entities is required. Therefore a packet marking device configured in accordance with the present embodiments can be implemented in cloud.
(44) The present disclosure configures a packet marking node to implement function not implemented in prior art devices. For example, a packet marking node configured according to the present embodiments can control resource sharing continuously based on throughput fairness on several timescales. Additionally, multiple TVFs are configured to represent resource sharing on multiple time-scales. The TVFs are configured based on a relation between the TVFs. Additionally, the present embodiments measure bitrates on multiple time-scales in the profiler, and determine the Δ values and the valid regions of TVFs based on that information. The present embodiments also determine where the Δs are positioned based on the distance between TVFs at selected bitrates, as well as the packet value based on random bitrate. As previously described, the random bitrate is between zero and the rate measurement on the shortest time-scale. The present embodiments also configure a packet marking node to select the right TVF and the right Δs to add to the random bitrate r, and further, provide solutions for optimizing rate measurements.