RFC 2963

A Rate Adaptive Shaper for Differentiated Services

๐Ÿ“… published October 2000, from ietf

RFC 2963: A Rate Adaptive Shaper for Differentiated Services ๐ŸŽ€

Okay bestie, this one is by Bonaventure (FUNDP) and De Cnodder (Alcatel) ๐Ÿฆ‹. It's Informational, so it's sharing ideas with the Internet community and isn't a standard ๐Ÿ’…. It came out in October 2000. The title block lists no obsoletes or updates, so it isn't replacing or changing any other RFC. ๐ŸŒธ

Status of this Memo โœจ

This memo gives info to the Internet community. It is NOT a standard of any kind, and anyone can share it freely ๐Ÿ’–.

Copyright (C) The Internet Society (2000). All Rights Reserved.

Abstract ๐ŸŒˆ

Okay so this memo describes a few Rate Adaptive Shapers (RAS) that you can pair with the single rate Three Color Markers (srTCM) and the two rate Three Color Marker (trTCM) from RFC2697 and RFC2698 ๐Ÿ”ฅ. The RAS makes TCP perform better when a TCM sits at the ingress of a diffserv network, because it smooths out the burstiness of the traffic ๐Ÿงš. With TCP, less burstiness means fewer packets get marked and TCP goodput goes up ๐Ÿ“ˆ. The shapers are meant for ingress of Diffserv networks that give the Assured Forwarding Per Hop Behavior (AF PHB) โœจ. They're especially helpful when a TCM is marking traffic from just a few TCP connections ๐Ÿ’….

1. Introduction โœจ

In DiffServ networks [RFC2475], incoming data traffic (especially the AF PHB) can get marked. The point of that marking is to give a low drop probability to a small slice of the traffic, while the excess gets a higher drop probability ๐ŸŽ€. Markers like this are mostly token bucket based, like the single rate Three Color Marker (srTCM) and two rate Three Color Marker (trTCM) from [RFC2697] and [RFC2698] respectively ๐Ÿ’–.

Similar markers were proposed for ATM networks, and simulations showed their TCP performance wasn't always great ๐Ÿ™ˆ. Researchers found two ways to fix those performance problems:

  1. increasing the burst size, meaning increasing the Committed Burst Size (CBS) and the Peak Burst Size (PBS) in the case of the trTCM, or
  2. shaping the traffic so some of the burstiness gets removed.

Here's the tea โ˜•. The first fix has a big downside: the traffic hitting the network can be super bursty, which makes it hard to engineer the network for a low packet loss ratio ๐Ÿ˜ญ. Bursty traffic also needs extra resources like buffer space. The big downside of shaping is different: traffic has to wait around for extra delay in the shaper's buffer โณ.

In this document, we propose two shapers that cut down the burstiness of traffic upstream of a TCM ๐Ÿฆ‹. Less burstiness means the adaptive shapers boost the percentage of packets the TCM marks as green, and that raises the overall goodput for the users behind the shaper ๐Ÿ“.

These rate adaptive shapers will probably be useful at the edge of the network, like inside access routers or even network adapters ๐ŸŒธ. The simulation results in [Cnodder] show they're especially useful when only a small number of TCP connections go through a TCM ๐Ÿ‘‘.

This document follows the structure proposed in [Nichols]. Section two describes the two types of rate adaptive shapers, which match the srTCM and the trTCM. Section three describes an extension to the simple shapers that can perform better. The appendix briefly talks about simulation results ๐Ÿงš.

2. Description of the rate adaptive shapers ๐Ÿ’…

2.1. Rate adaptive shaper โœจ

The rate adaptive shaper is based on a similar shaper proposed in [Bonaventure]. That one improved TCP performance with the Guaranteed Frame Rate [TM41] service category in ATM networks ๐ŸŒˆ. Another kind of rate adaptive shaper, one that fits differentiated services, was briefly discussed in [Azeem] ๐Ÿ’œ. A RAS typically sits in front of a meter and a marker, which are the TCMs from [RFC2697] and [RFC2698], as shown in figure 1 ๐ŸŽ€.

                                     Result
                                  +----------+
                                  |          |
                                  |          V
                 +--------+   +-------+   +--------+
      Incoming   |        |   |       |   |        |   Outgoing
      Packet  ==>|  RAS   |==>| Meter |==>| Marker |==>Packet
      Stream     |        |   |       |   |        |   Stream
                 +--------+   +-------+   +--------+

                        Figure 1. Rate adaptive shaper

Figure 1 puts things in a slightly different order than [RFC2475], which places the shaper after the meter ๐Ÿ™ˆ. The main goal of the shaper is to output traffic that's less bursty than what came in. The difference from classic token bucket shapers is that it avoids discarding packets ๐Ÿซถ. The shaper itself is a tail-drop FIFO queue that gets emptied at a variable rate ๐Ÿ”ฅ. That shaping rate (the rate the queue empties at) depends on how full the FIFO queue is. If the queue fills up, the shaping rate goes up too, so you don't get loss or huge delays through the shaper ๐Ÿš€. The shaping rate also depends on the average rate of the incoming traffic. The shaper was designed to work with meters like the TCMs in [RFC2697] and [RFC2698] ๐Ÿ’–.

There are two types of rate adaptive shapers. The single rate rate adaptive shaper (srRAS) typically goes upstream of a srTCM, and the two rates rate adaptive shaper (trRAS) usually goes upstream of a trTCM ๐Ÿฆ‹.

2.2. Configuration of the srRAS โš™๏ธ

The srRAS gets configured with four parameters: the Committed Information Rate (CIR), the Maximum Information Rate (MIR), and two buffer thresholds, CIR_th (Committed Information Rate threshold) and MIR_th (Maximum Information Rate threshold) ๐ŸŽ€. The CIR shall be specified in bytes per second and MUST be configurable ๐Ÿ’…. The MIR shall be specified in the same unit as the CIR and SHOULD be configurable ๐ŸŒธ. For good performance, the CIR of an srRAS is usually set to the same value as the CIR of the downstream srTCM ๐Ÿงš. A typical MIR value is the line rate of the shaper's output link ๐Ÿ“. When the CIR and optionally the MIR are configured, the srRAS MUST ensure that this relation holds:

               CIR <= MIR <= line rate

The two buffer thresholds, CIR_th and MIR_th, shall be specified in bytes and SHOULD be configurable ๐Ÿ’œ. If these thresholds are configured, the srRAS MUST ensure that this relation holds:

               CIR_th <= MIR_th <= buffer size of the shaper

The values you pick for CIR_th and MIR_th usually depend on the CBS and PBS values in the downstream srTCM ๐Ÿ‘‘. However, that dependency doesn't need to be standardized ๐Ÿ™ˆ.

2.3. Behavior of the srRAS ๐Ÿ”ฅ

The output rate of the shaper depends on two factors. The first is the (long term) average rate of the incoming traffic ๐Ÿ“ˆ. You can compute that average a few ways. For example, the function proposed in [Stoica] works: EARnew = [(1-exp(-T/K))*L/T] + exp(-T/K)*EARold. In that formula, EARold is the previous Estimated Average Rate value, EARnew is the updated value, K is a constant, L is the size of the arriving packet, and T is the time since the previous packet arrived ๐Ÿง . Other averaging functions work too โœจ.

The second factor is the instantaneous occupancy of the shaper's FIFO buffer ๐Ÿซง. When the buffer occupancy is below CIR_th, the shaper's output rate is set to the bigger of the estimated average rate (EAR(t)) and the CIR. This makes sure the shaper buffer empties at least at the CIR rate ๐ŸŒท. When the buffer occupancy goes above CIR_th, the output rate is the bigger of EAR(t) and a linear function F of the buffer occupancy, where F(CIR_th)=CIR and F(MIR_th)=MIR ๐Ÿ’…. Once the buffer occupancy hits the MIR_th threshold, the output rate is set to the maximum information rate ๐Ÿš€. Figure 2 shows how the shaping rate is computed. The authors expect that real implementations will only use an approximate function for this ๐ŸŽ€.

                   ^
     Shaping rate  |
                   |
                   |
              MIR  |                      =========
                   |                    //
                   |                  //
           EAR(t)  |----------------//
                   |              //
                   |            //
             CIR   |============
                   |
                   |
                   |
                   |------------+---------+----------------------->
                             CIR_th      MIR_th Buffer occupancy

              Figure 2. Computation of shaping rate for srRAS

2.4. Configuration of the trRAS ๐Ÿงš

The trRAS gets configured with six parameters: the Committed Information Rate (CIR), the Peak Information Rate (PIR), the Maximum Information Rate (MIR), and three buffer thresholds, CIR_th, PIR_th, and MIR_th ๐ŸŒˆ. The CIR shall be specified in bytes per second and MUST be configurable ๐Ÿ’–. For good performance, the CIR of a trRAS is usually set to the same value as the CIR of the downstream trTCM ๐Ÿ“. The PIR shall be specified in the same unit as the CIR and MUST be configurable ๐Ÿ’…. For good performance, the PIR of a trRAS is usually set to the same value as the PIR of the downstream trRAS ๐Ÿซถ. The MIR SHOULD be configurable and shall be specified in the same unit as the CIR ๐ŸŽ€. A typical MIR value is the line rate of the shaper's output link ๐ŸŒธ. When the CIR, PIR, and optionally MIR are configured, the trRAS MUST ensure that this relation is verified:

               CIR <= PIR <= MIR <= line rate

The three buffer thresholds, CIR_th, PIR_th, and MIR_th, shall be specified in bytes and SHOULD be configurable ๐Ÿ‘‘. If these thresholds are configured, the trRAS MUST ensure that this relation is verified:

               CIR_th <= PIR_th <= MIR_th <= buffer size of the shaper

CIR_th, PIR_th, and MIR_th usually depend on the CBS and PBS values in the downstream trTCM ๐Ÿ’œ. Again, that dependency doesn't need to be standardized ๐Ÿฆ‹.

2.5. Behavior of the trRAS โœจ

okay so the trRAS's output rate depends on two things ๐Ÿ’…. The first is the (long term) average rate of the incoming traffic, and you work that out the same way you would for the srRAS.

The second is the instantaneous occupancy of the FIFO buffer of the shaper ๐Ÿซถ. When the buffer occupancy is below CIR_th, the output rate gets set to the max of the estimated average rate (EAR(t)) and the CIR, so the shaper always sends at least at the CIR. Lowkey iconic ๐Ÿฆ‹. When occupancy goes above CIR_th, the output rate becomes the max of EAR(t) and a piecewise linear function F of the buffer occupancy. The first piece runs from zero to CIR_th, where F is just CIR, so while occupancy is under that threshold the shaping rate is at least CIR. The second piece is between CIR_th and PIR_th, where F climbs linearly from CIR up to PIR. The third piece goes from PIR_th to MIR_th, where F climbs linearly from PIR to the MIR. Once occupancy is above MIR_th, the shaping rate just stays constant at the MIR ๐Ÿ”ฅ. Figure 3 shows how the whole thing plays out. We expect real implementations to use an approximation of the function in this figure to compute the shaping rate, no cap ๐Ÿงš

                 ^
   Shaping rate  |
                 |
           MIR   |                               ======
                 |                            ///
                 |                         ///
           PIR   |                      ///
                 |                    //
                 |                  //
         EAR(t)  |----------------//
                 |              //
                 |            //
           CIR   |============
                 |
                 |
                 |
                 |------------+---------+--------+-------------------->
                         CIR_th      PIR_th    MIR_th  Buffer occupancy

            Figure 3. Computation of shaping rate for trRAS

3. Description of the green RAS. ๐ŸŒˆ

3.1. The green rate adaptive shapers

The srRAS and the trRAS from the last section are not aware of the status of the meter. That means a RAS could unnecessarily delay a packet even though there are plenty of tokens available to color the packet green ๐Ÿ˜ญ. That delay could mean TCP takes longer to grow its congestion window, which can tank the performance of TCP traffic. The green RAS in figure 4 fixes this by coupling the shaper with the meter ๐Ÿ’œ.

                     Status       Result
                  +----------+ +----------+
                  |          | |          |
                  V          | |          V
             +--------+   +-------+   +--------+
  Incoming   | green  |   |       |   |        |   Outgoing
  Packet  ==>|  RAS   |==>| Meter |==>| Marker |==>Packet
  Stream     |        |   |       |   |        |   Stream
             +--------+   +-------+   +--------+

                        Figure 4. green RAS

The two rate adaptive shapers from section 2 each calculate a shaping rate. That's defined as the max of the estimated average incoming data rate and some function of the buffer occupancy. Using this shaping rate, the RAS works out the time schedule for when the packet at the head of the shaper's queue gets released ๐ŸŽ€. The main idea of the green RAS is to couple the shaper with the downstream meter, so the green RAS knows the exact time the packet at the head of its queue would be accepted as green by the meter. If that time comes earlier than the release time from the current shaping rate, the packet can go out at that earlier instant. Otherwise, the packet at the head of the green RAS queue gets released at the time from the current shaping rate.

3.2. Configuration of the Green single rate Rate Adaptive Shaper (GsrRAS)

The G-srRAS MUST be configured in the same way as the srRAS (see section 2.2).

Heads up, this one's a key word, so it stays in caps for a reason ๐Ÿ‘€

3.3. Behavior of the G-srRAS

First things first, the shaping rate of the G-srRAS is calculated the same way as for the srRAS ๐Ÿง . With the srRAS, that shaping rate sets a time schedule, T1, for when the packet at the head of the queue gets released from the shaper.

A second time schedule, T2, gets calculated as the earliest time instant at which the packet at the head of the shaper's queue would be colored as green by the downstream srTCM. Say a packet of size B bytes is at the head of the shaper, and CIR is the Committed Information Rate of the srTCM in bytes per second. If the current time is t, and Tc(t) is the amount of green tokens in the srTCM's token bucket at time t, then T2 is equal to max(t, t+(B-Tc(t))/CIR). If B is larger than CBS, the Committed Burst Size of the srTCM, then T2 is set to infinity ๐Ÿ’€.

When a packet arrives at the head of the shaper's queue, it leaves that queue no sooner than min(T1, T2) from the shaper โœจ.

3.4 Configuration of the Green two rates Rate Adaptive Shaper (G-trRAS)

The G-trRAS MUST be configured in the same way as the trRAS (see section 2.4).

Same vibe here, MUST is doing the heavy lifting ๐Ÿ’…

3.5. Behavior of the G-trRAS

First of all, the shaping rate of the G-trRAS gets calculated the same way as for the trRAS. With the trRAS, that shaping rate sets a time schedule, T1, for when the packet at the head of the queue is released from the shaper ๐Ÿฆ‹.

A second time schedule, T2, is the earliest time instant at which the packet at the head of the shaper's queue would be colored as green by the downstream trTCM. Say a packet of size B bytes is at the head of the shaper, and CIR is the Committed Information Rate of the srTCM in bytes per second. If the current time is t, Tc(t) is the amount of green tokens in the trTCM's token bucket at time t, and Tp(t) is the amount of yellow tokens at that same time, then T2 is equal to max(t, t+(B-Tc(t))/CIR, t+(B-Tp(t))/PIR). If B is larger than CBS, the committed burst size, or PBS, the peak burst size, of the srTCM, then T2 is set to infinity ๐Ÿ™ˆ.

When a packet arrives at the head of the shaper's queue, it leaves that queue no sooner than min(T1, T2) from the shaper ๐ŸŽ€.


4. Assumption ๐Ÿงš

The shapers discussed in this document assume that Internet traffic is mostly made up of protocols like TCP, which react to congestion by lowering their transmission rate. That's the vibe they're built around ๐Ÿ’–.

The proposed shapers don't give a performance gain if the traffic is made up of protocols that don't react to congestion by lowering their transmission rate. So if your traffic doesn't do that, these shapers aren't gonna help ๐Ÿ˜ฌ.

5. Example services ๐Ÿซถ

The shapers discussed in this document can be used wherever the TCMs proposed in [RFC2697] and [RFC2698] are used. In fact, simulations briefly discussed in Appendix A show that TCP performance can improve when a rate adaptive shaper runs upstream of a TCM ๐Ÿ“ˆ. We expect these rate adaptive shapers to be especially useful at the edge of the network, like inside (small) access routers or even network adapters ๐ŸŒธ.

6. The rate adaptive shaper combined with other markers ๐ŸŒˆ

This document explains how the idea of a rate adaptive shaper can be combined with the srTCM and the trTCM. That gave us the srRAS and the G-srRAS for the srTCM, and the trRAS and the G-trRAS for the trTCM. Similar adaptive shapers could be developed to support other traffic markers, like the Time Sliding Window Three Color Marker (TSWTCM) [Fang]. However, the exact definition of those new adaptive shapers and how they perform is outside the scope of this document ๐Ÿงš.

7. Security Considerations ๐Ÿ”ฅ

The shapers described in this document have no known security concerns. Periodt ๐Ÿ’….

8. Intellectual Property Rights โœจ

The IETF has been notified of intellectual property rights claimed in regard to some or all of the specification contained in this document. For more information, consult the online list of claimed rights ๐ŸŽ€.

9. Acknowledgement ๐Ÿซถ

Big thank u to Emmanuel Desmet for his comments ๐Ÿ’–.

10. References ๐Ÿ“š

   [Azeem]       Azeem, F., Rao, A., Lu, X. and S. Kalyanaraman, "TCP-
                 Friendly Traffic Conditioners for Differentiated
                 Services", Work in Progress.

   [RFC2475]     Blake S., Black, D., Carlson, M., Davies, E., Wang, Z.
                 and W. Weiss, "An Architecture for Differentiated
                 Services", RFC 2475, December 1998.

   [Bonaventure] Bonaventure O., "Integration of ATM under TCP/IP to
                 provide services with a minimum guaranteed bandwidth",
                 Ph. D. thesis, University of Liege, Belgium, September
                 1998.

   [Clark]       Clark D. and Fang, W., "Explicit Allocation of Best-
                 Effort Packet Delivery Service", IEEE/ACM Trans. on
                 Networking, Vol. 6, No. 4, August 1998.

   [Cnodder]     De Cnodder S., "Rate Adaptive Shapers for Data Traffic
                 in DiffServ Networks", NetWorld+Interop 2000 Engineers
                 Conference, Las Vegas, Nevada, USA, May 10-11, 2000.

   [Fang]        Fang W., Seddigh N. and B. Nandy, "A Time Sliding
                 Window Three Colour Marker (TSWTCM)", RFC 2859, June
                 2000.

   [Floyd]       Floyd S. and V. Jacobson, "Random Early Detection
                 Gateways for Congestion Avoidance", IEEE/ACM
                 Transactions on Networking, August 1993.

   [RFC2697]     Heinanen J. and R. Guerin, "A Single Rate Three Color
                 Marker", RFC 2697, September 1999.

   [RFC2698]     Heinanen J. and R. Guerin, "A Two Rate Three Color
                 Marker", RFC 2698, September 1999.

   [RFC2597]     Heinanen J., Baker F., Weiss W. and J. Wroclawski,
                 "Assured Forwarding PHB Group", RFC 2597, June 1999.

   [Nichols]     Nichols K. and B. Carpenter, "Format for Diffserv
                 Working Group Traffic Conditioner Drafts", Work in
                 Progress.

   [Stoica]      Stoica I., Shenker S. and H. Zhang, "Core-stateless
                 fair queueuing: achieving approximately fair bandwidth
                 allocations in high speed networks", ACM SIGCOMM98, pp.
                 118-130, Sept. 1998

   [TM41]        ATM Forum, Traffic Management Specification, verion
                 4.1, 1999

Appendix ๐Ÿฆ‹

A. Simulation results ๐ŸŒŸ

We briefly discuss simulations showing the benefits of the proposed shapers in simple network environments. Additional simulation results can be found in [Cnodder] ๐Ÿ’….

A.1 description of the model ๐ŸŽ€

okay so bestie, to test the rate adaptive shaper with simulations, we use this simple network model (Figure A.1 below) ๐Ÿ’…. It's a backbone network giving a LAN Interconnection service to ten pairs of LANs ๐ŸŒธ. Each LAN is an uncongested switched 10 Mbps LAN with ten workstations hanging off a customer router (C1-C10 in the figure) ๐Ÿงš. The delay on the LAN links is set to 1 msec โฑ๏ธ. The MSS size of the workstations is 1460 bytes. The workstations on the left side send traffic to their companion workstations on the right side ๐Ÿฆ‹. All traffic from the LAN on customer router C1 goes to the LAN on customer router C1' ๐Ÿ’–. Each LAN has ten workstations, and every workstation runs SACK-TCP with a maximum window size of 64 KBytes ๐Ÿซถ.

           2.5 msec, 34 Mbps                      2.5 msec, 34 Mbps
          <-------------->                      <-------------->
     \+---+                                                     +---+/
     -| C1|--------------+                       +--------------|C1'|-
     /+---+              |                       |              +---+\
     \+---+              |                       |              +---+/
     -| C2|------------+ |                       | +------------|C2'|-
     /+---+            | |                       | |            +---+\
     \+---+            | |                       | |            +---+/
     -| C3|----------+ | |                       | | +----------|C3'|-
     /+---+          | | |                       | | |          +---+\
     \+---+          | | |                       | | |          +---+/
     -| C4|--------+ +-+----------+     +----------+-+ +--------|C4'|-
     /+---+        |   |          |     |          |   |        +---+\
     \+---+        +---|          |     |          |---+        +---+/
     -| C5|------------|   ER1    |-----|   ER2    |------------|C5'|-
     /+---+        +---|          |     |          |---+        +---+\
     \+---+        |   |          |     |          |   |        +---+/
     -| C6|--------+   +----------+     +----------+   +--------|C6'|-
     /+---+            ||||                     ||||            +---+\
     \+---+            ||||      <------->      ||||            +---+/
     -| C7|------------+|||       70 Mbps       |||+------------|C7'|-
     /+---+             |||       10 msec       |||             +---+\
     \+---+             |||                     |||             +---+/
     -| C8|-------------+||                     ||+-------------|C8'|-
     /+---+              ||                     ||              +---+\
     \+---+              ||                     ||              +---+/
     -| C9|--------------+|                     |+--------------|C9'|-
     /+---+               |                     |               +---+\
     \+---+               |                     |               +----+/
     -|C10|---------------+                     +---------------|C10'|-
     /+---+                                                     +----+\
                     Figure A.1. the simulation model.

So the customer routers hook up to the backbone with 34 Mbps links ๐Ÿ”—. The backbone is, in our case, one single bottleneck 70 Mbps link between the edge routers ER1 and ER2 ๐Ÿšง. The delay on all the customer-edge 34 Mbps links is 2.5 msec, which models a MAN or small WAN environment ๐ŸŒˆ. These links and the customer routers are not a bottleneck here, and no losses happen inside the edge routers ๐Ÿ™Œ. The customer routers each have a trTCM [Heinanen2] that marks the incoming traffic ๐Ÿท๏ธ. The trTCM parameters are in table A.1 (slay, we love a table) ๐Ÿ“‹.

        Table A.1: configurations of the trTCMs

        Router          CIR               PIR             Line Rate
        C1              2 Mbps            4 Mbps          34 Mbps
        C2              4 Mbps            8 Mbps          34 Mbps
        C3              6 Mbps           12 Mbps          34 Mbps
        C4              8 Mbps           16 Mbps          34 Mbps
        C5             10 Mbps           20 Mbps          34 Mbps
        C6              2 Mbps            4 Mbps          34 Mbps
        C7              4 Mbps            8 Mbps          34 Mbps
        C8              6 Mbps           12 Mbps          34 Mbps
        C9              8 Mbps           16 Mbps          34 Mbps
        C10            10 Mbps           20 Mbps          34 Mbps

Okay so every customer router has a trTCM, and the CIR is 2 Mbps for C1 and C6, 4 Mbps for C2 and C7, 6 Mbps for C3 and C8, 8 Mbps for C4 and C9, and 10 Mbps for C5 and C10 ๐Ÿ’…โœจ. The difference is that routers C6-C10 also have a trRAS on top of the trTCM, while routers C1-C5 only have the trTCM ๐Ÿงšโ€โ™€๏ธ. In every simulation the PIR is always twice the CIR ๐Ÿ‘‘. The PBS is also double the CBS ๐Ÿ“. The CBS gets varied between the different simulation runs ๐ŸŽฒ.

The edge routers ER1 and ER2 are joined by a 70 Mbps link, and that's the bottleneck in this whole setup ๐Ÿ”ฅ. Both of these routers run the RIO algorithm [Clark], which we extended to support three drop priorities instead of two ๐Ÿ’œ. The thresholds are 100 and 200 packets (minimum and maximum threshold) for the red packets, 200 and 400 packets for the yellow packets, and 400 and 800 for the green packets ๐ŸŒธ. These thresholds make sense because 100 TCP connections cross each edge router ๐Ÿซถ. The maxp parameter of RIO is set to 0.02 for green, 0.05 for yellow, and 0.1 for red ๐Ÿ’…. The weight used to calculate the average queue length, which RED or RIO uses, is 0.002 [Floyd] ๐Ÿฆ‹.

The simulated time is 102 seconds, but the first two seconds are a warm-up and don't count toward the TCP statistics like goodput ๐Ÿ™ˆโณ.

A.2 Simulation results for the trRAS ๐Ÿ’–

For our first round, routers C1-C5 only use a trTCM, while routers C6-C10 use a rate adaptive shaper together with a trTCM ๐Ÿง. Every router uses a CBS of 3 KBytes ๐ŸŽ€. Table A.2 shows the total throughput of the workstations on each LAN, plus the total throughput for green and yellow packets, as a function of the CIR of the trTCM on that LAN's customer router ๐Ÿ“Š. The red throughput is just the total minus green and yellow (easy math, iykyk) ๐Ÿงฎ. Table A.3 shows the total throughput of the workstations on the routers that have a rate adaptive shaper ๐ŸŒˆ.

        Table A.2: throughput in Mbps for the unshaped traffic.

                      green           yellow          total
        2Mbps [C1]    1.10            0.93            2.25
        4Mbps [C2]    2.57            1.80            4.55
        6Mbps [C3]    4.10            2.12            6.39
        8Mbps [C4]    5.88            2.32            8.33
        10Mbps [C5]   7.57            2.37            10.0

        Table A.3: throughput in Mbps for the adaptively shaped
        traffic.
                            green           yellow          total
        2Mbps [C6]    2.00            1.69            3.71
        4Mbps [C7]    3.97            2.34            6.33
        6Mbps [C8]    5.93            2.23            8.17
        8Mbps [C9]    7.84            2.28            10.1
        10Mbps [C10]  9.77            2.14            11.9

This first simulation shows clearly that workstations behind an edge router with a rate adaptive shaper get a clear performance advantage over workstations behind an edge router with only a trTCM ๐Ÿ†๐Ÿ˜ญ. The boost comes from the higher share of packets the edge routers mark as green when the rate adaptive shaper is in use ๐Ÿ’…๐Ÿ’œ.

To see how the CBS affects TCP goodput, we ran extra simulations where we varied the CBS on all customer routers ๐Ÿ”.

Table A.4 gives the total goodput for workstations on four routers: C1 (trTCM, 2 Mbps CIR, no adaptive shaping), C6 (trRAS, 2 Mbps CIR, adaptive shaping), C3 (trTCM, 6 Mbps CIR, no adaptive shaping), and C8 (trRAS, 6 Mbps CIR, adaptive shaping), across a range of CBS values ๐Ÿ“. Honestly the takeaway is clear: the rate adaptive shapers give a performance benefit when the CBS is small ๐Ÿ”ฅ. With a very large CBS, performance drops when the shaper is in use ๐Ÿ“‰. Still, a CBS of a few hundred KBytes is probably too big for lots of environments ๐Ÿ™ˆ.

      Table A.4: goodput in Mbps (link rate is 70 Mbps) versus CBS
      in KBytes.
      CBS  2_Mbps_unsh     2_Mbps_sh      6_Mbps_unsh    6_Mbps_sh
      3       1.88            3.49          5.91           7.77
      10      2.97            2.91          6.76           7.08
      25      3.14            2.78          7.07           6.73
      50      3.12            2.67          7.20           6.64
      75      3.18            2.56          7.08           6.58
      100     3.20            2.64          7.00           6.62
      150     3.21            2.54          7.11           6.52
      200     3.26            2.57          7.07           6.53
      300     3.19            2.53          7.13           6.49
      400     3.13            2.48          7.18           6.43

A.3. Simulation results for the Green trRAS โœจ

okay so we're keeping the exact same scenario as A.2 ๐Ÿ’… the only difference is we're swapping in the Green trRAS (G-trRAS) ๐Ÿฆ‹

Table A.5 and Table A.6 are the same setup as Table A.2 and Table A.3, just with the G-trRAS as the shaper. the shaped traffic slays again, and it's even better than the trRAS case ๐Ÿ”ฅ the reason is that the amount of yellow traffic goes up, and the price is a slight drop in green traffic. the G-trRAS introduces some burstiness, and that's what explains it ๐Ÿซถ

   Table A.5: throughput in Mbps for the unshaped traffic.
                 green           yellow          total
   2Mbps [C1]    1.10            0.95            2.26
   4Mbps [C2]    2.41            1.66            4.24
   6Mbps [C3]    3.94            1.97            6.07
   8Mbps [C4]    5.72            2.13            7.96
   10Mbps [C5]   7.25            2.29            9.64

   Table A.6: throughput in Mbps for the adaptively shaped
   traffic.
                 green           yellow          total
   2Mbps [C6]    1.92            1.75            3.77
   4Mbps [C7]    3.79            3.24            7.05
   6Mbps [C8]    5.35            3.62            8.97
   8Mbps [C9]    6.96            3.48            10.4
   10Mbps [C10]  8.69            3.06            11.7

next up is the CBS ๐Ÿ“ Table A.7 is the same scenario as Table A.4, except the shaper is the G-trRAS now. when the CBS is small, the shaped traffic is way ahead of the unshaped traffic ๐Ÿ’– when the CBS is large, they're basically tied. this is different from the trRAS, where the shaped traffic was a little worse with a big CBS ๐Ÿ‘€

Table A.7: goodput in Mbps (link rate is 70 Mbps) versus CBS in KBytes.

   CBS  2_Mbps_unsh     2_Mbps_sh      6_Mbps_unsh    6_Mbps_sh
   3       1.90            3.44          5.62           8.44
   10      2.95            3.30          6.70           7.20
   25      2.98            3.01          7.03           6.93
   50      3.06            2.85          6.81           6.84
   75      3.08            2.80          6.87           6.96
   100     2.99            2.78          6.85           6.88
   150     2.98            2.70          6.80           6.81
   200     2.96            2.70          6.82           6.97
   300     2.94            2.70          6.83           6.86
   400     2.86            2.62          6.83           6.84

A.4. Conclusion simulations ๐ŸŒˆ

so the big takeaway from all these sims ๐Ÿงš when the CBS is small, the shaped traffic has way higher throughput than the unshaped traffic. when the CBS is large, the shaped traffic does a little worse than the unshaped traffic, and that's because of the delay in the shaper. the G-trRAS fixes that problem โœจ more simulation results are over in [Cnodder] if you want to dig deeper ๐Ÿค“

Authors' Addresses ๐Ÿ’œ

   Olivier Bonaventure
   Infonet research group
   Institut d'Informatique (CS Dept)
   Facultes Universitaires Notre-Dame de la Paix
   Rue Grandgagnage 21, B-5000 Namur, Belgium.

   EMail: Olivier.Bonaventure@info.fundp.ac.be
   URL:   http://www.infonet.fundp.ac.be


   Stefaan De Cnodder
   Alcatel Network Strategy Group
   Fr. Wellesplein 1, B-2018 Antwerpen, Belgium.

   Phone:  32-3-240-8515
   Fax:    32-3-240-9932
   EMail:  stefaan.de_cnodder@alcatel.be

Copyright (C) The Internet Society (2000). All Rights Reserved.

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.

The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.

This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Acknowledgement ๐Ÿซถ

Funding for the RFC Editor function is currently provided by the Internet Society. ๐Ÿ’–

๐Ÿ“ฆ where this page comes from