Adaptive mechanisms
As we pointed out earlier, the most challenging aspect of quality adaptation is predicting upcoming congestion which has a random nature. In a shared network with large number of flows, behavior of the aggregate traffic changes fairly smoothly. Thus the recent past could be a reasonable prediction of near future. This is the philosophy in the majority of measurement-based or adaptive approaches.
The server can measure the average behavior of the connection throughout the session. As it learns more about the connection, it can adaptively adjust its parameters. These adjustments occur in a longer time scale than rate adaptation and are based on long term trend rather than transient changes in network traffic. The server will always consider a moving average history of the network’s variation to capture a long-term trend in the network’s behavior. The major issue is to find the appropriate weight for averaging that result in a smooth behavior without oscillation.
One may study the behavior of the network traffic to extract some patterns and design its add and drop schemes based on the observed patterns. There are couple of problems with this approach. Many of the studies on the Internet traffic are out dated. Since the emergence of the Web, the behavior of the network traffic has change substantially. Web applications have a combination of short and long term
transmissions(known as mice and elephants respectively). This impacts the behavior of the aggregate traffic because the large portion of today’s Internet load consist of the Web traffic.
Inter-layer Bandwidth Allocation
We have described the impact of inter-layer rate adaptation on the duration of recovery period. Here we try to discuss some of the extreme cases to identify border lines of the design space.
Assuming the number of surviving layers are known after a back off, the following questions must be answered in turn:
1. How many of the surviving layers will participate in recovery?
Two extreme cases are possible; 1. the serve may drop half of the layers and the transmission of the surviving layers remain intact and no recovery is needed. This approach does not take advantage of buffered data at all. This scheme is shown in figure 20. 2. All the surviving layers participate in recovery. Since all layers buffer some data at the client side, this scheme results in an optimal use of buffering if back off does not occur earlier than it is expected. Thus we follow the second scheme and assume all surviving layers will participate in the recovery.
2. How much bandwidth should be allocated for each one of the surviving layers?
As we mentioned earlier, one of our goal is to have more buffered data for lower layers. Given that, if the server allocates more bandwidth for lower layers, higher layers should consume more from buffered data while they have less amount of buffering. Allocating more bandwidth for higher layers also seems inappropriate because they consume their buffers faster and lose their protections(i.e. buffering) against an unexpected back off. Thus, even allocation of the aggregate bandwidth across the surviving flow seems the most reasonable scheme. The even allocation of bandwidth across layers during recovery period can be performed within boundary of two extreme cases:
(a) Sequential recovery (b) Parallel recovery
In the sequential recovery, the server allocates all the extra bandwidth for recovery of a single layer, starting from the base layer, until its recovery is completed, i.e. transmission of the layer reaches to the consumption rate and goes beyond that to refill the buffers for next back off. Once the recovery period of layer
i
is completed, its transmission rate goes back to its consumption rate and the extra bandwidth is exclusively utilized for recovery of layeri
+1. This approach minimizesAggregate Tx Rate. Tx Rate, L0 Tx Rate, L1 Tx Rate, L2 Tx Rate Li (Parallel) C C C C 3C Sequential Recovery Parallel Recovery
Consumed Data From Buffer
Refilling Buffer Recovery Period Time Time Time Time Time
the amount of wasted bandwidth for delivery of small chunks of data for the highest layer that are delivered but are not large enough to be displayed, i.e. less than a unit. Since we recover a lower layer before start a higher one, if an unexpected congestion occurs, only the layer that is being recovered might be affected. All the higher layers that have not been recovered yet are dropped automatically since we didn’t get a chance to send any data for them. The main draw back of this scheme is that amount of buffered data for participating layers in recovery has a skewed pattern. This implies that larger amount of storage is required at the client.
In the parallel recovery, all layers go through recovery simultaneously. Thus the server allocates an even portion of the available bandwidth for each layer. The last graph at the bottom of figure 23 shows rate adaptation for a single layer in the parallel recovery. Note that transmission of all layers have the same variation. The advantage of this approach is that the amount of buffered data for all layers remain close to each other. Thus the volume of aggregate buffered data for all layers is less than the sequential scheme.
In summary, a parallel recovery scheme with even share of bandwidth among all the surviving layers seems the most reasonable approach.
Adding Mechanism
Intuitively, a conservative adding scheme should minimize the oscillation in quality. Assuming a peri- odic loss pattern with
n
layers, this implies:(
n
+1)C
BW
avgn
C
,BW
extra =BW
avg ;n
C
This means that
BW
extra is not enough to add a new layer(i.e. layern
+1). Instead, the extra bandwidthis used for retransmission of potential losses after refilling buffers for all layers. Since required amount of buffered data increases linearly with the number of layers(i.e. equation 1), the server must ensure that current
n
layers have enough data to recover from a back off withn
+1 layers before initiatingtransmission of a new layer. Based on equation (1), if the number of layers is increased by one, the minimum required buffering is increased as followings:
Buf
c(n
)Buf
c(n
;1)+C 2 2R K;1 K+1 (2)of the available bandwidth for each layer. If no back off occurs, first all layers will reach to their con- sumption rates. Then all buffers will be filled up to the level that is required for parallel recovery with
n
layers (i.e. the level they had before the back off). At this point if available bandwidth is still increasing, this extra bandwidth is evenly used by all layers to further increase their buffers as preparation for adding a new layer.To add a new layer, two conditions must be met:
1. All the current layers should evenly increase their buffers until each layer has enough data to recover with
n
+1layers, i.e.Buf
c(n
+1CKR
).2. The average bandwidth satisfy the following condition:
BW
avg (n
+1)C
Once both conditions are met, the server can initiate transmission of a new layer. If the new layer can buffer enough data to recover from a back off, it will be kept. This approach increases the probability of successful adding.
Dropping Mechanism
Dropping usually occurs after a back off. In a simple scenario, when average bandwidth remains un- changed, the server backs off periodically. Having an estimate for the time when next back off occurs and the average slope of increase based on the measurement of the recent history as well as amount of buffering for each layer, the server will run the following algorithm as a primary dropping scheme to decide how many layers can survive.
i
=No of layer
While
(Buf
i (Required Recovery Buffer With i Surviving Layers
))Drop Layer i
i
=i
;1In this algorithm, the server checks the amount of buffered data for each layer, starting from the highest layer. If layer
i
does not have enough buffered data to consume until its transmission rate reaches to its consumption rate(i.e. half way through the next estimated back off), iti
is dropped. The next iteration of the algorithm is done with a smalleri
. Note that as the number of surviving layers decreases in subse- quent iterations , the minimum buffering requirement decreases (since each layer obtains higher portionof bandwidth). Once layer
i
satisfies the condition, all the lower layers below will be automatically qualify.This scheme relies on estimation of the time of the next back off. If the back off occurs earlier than it is expected or the average bandwidth decreases layers can not fill up their buffers in time. Under these circumstances, the server needs to invoke a secondary dropping mechanism. This is a subject of our future work.
Buffering Mechanism
The Adding and Dropping mechanism assume that the following condition is always held for every
i
andj
:Buf
iBuf
j, iffi
j
(3)Moreover, the adding mechanism ensures that each layer would have enough buffer to recover with an extra layer before the new layer is added.
All layers require the same amount of buffered data during the recovery period. The amount of buffered data is required for the recovery of a single layer is called recovery buffer(
Buf
rec) which is a linear function of the number of surviving layers. To ensure that lower layers have higher protections, we assume that the amount of the required buffering per layer can be estimated as following:Buf
i =n
Buf
rec +Buf
protect i
where
Buf
iprotectis the protection buffer for layeri
such that it satisfies equation (3). Thus we need:Buf
protecti
Buf
protect
j iff
i
j
During normal operation, the recovery buffer is consumed and refilled periodically. If there is a mi- nor variation in average bandwidth, the client may use a little bit of the protection buffer too. The protection buffer will be used in critical situation when an unexpected back off occurs and provide some room for the server to adjust the number of layers to the new situation. The server requires to refill the protection buffers of current layers before adding a new layer.
The larger the protection buffer is, the less interactive the session becomes, the bigger buffer (at the client) is required. At the other end, small protection buffers are not able to protect against a critical
event. Amount of the protection buffer for each layer can be fixed or adaptive. For the fixed case, it can be enough data to feed the display for
t
seconds andt
is a configuration parameter. Whereas for the adaptive case, the amount of the protection buffer is adaptively adjusted with the behavior of the connection so that it would be able to handle large portion of potential unexpected events. These adjustments have longer time scale than rate variations.Retransmission
Retransmission seems a feasible approach for repair because of the sufficient buffering at the client side. Retransmission has a time window and must be completed before playback time of the lost packet reaches. The server relies on the moving average measured bandwidth and moving average retrans- mission rate to allocate a portion of the bandwidth for selective retransmission. Thus the server can retransmit a lost packet even during the recovery period. If there is not sufficient bandwidth for retrans- mission, the server needs to be selective and set up some priorities. We consider the following rules for (re)transmission:
1. It is generally prefered to use extra bandwidth to retransmit losses rather than adding a new layer. 2. Retransmission of some packets is more important than others (e.g. I frame in MPEG coded
stream), thus the server should assign them a higher priority.
3. Retransmission of a packet from layer