Chapter 2 Previous Work
2.4 The Distributed Deficit Round-Robin Scheme
The distributed deficit round-robin (DDRR [8]) QoS scheme is based on the concept of DRR scheduling [1] at the MAC layer of IEEE 802.11. As shown in Fig. 5, the mechanism translates user requirements into appropriate interframe spaces to provide service differentiation and achieves fairness by making use of deficit round-robin fair scheduling [1]. Traffic at each mobile station is categorized into classes with different QoS requirements. A traffic class requiring high throughput receives a fast service quantum rate [8]. Each traffic class maintains a deficit counter of accumulated quanta and can transmit only when its deficit counter achieves a minimum requirement. If the deficit counter of a traffic class falls below a minimum requirement, the traffic class must wait until its deficit counter becomes higher than the minimum requirement. The deficit counter is reduced by the length of the transmitted frame. The deficit counter value is translated into an appropriate interframe space. A traffic class with a smaller interframe space will access the medium first than that with a higher interframe space. A mobile station will transmit its frame immediately after the medium has been free for the interframe space period.
If the medium is busy, the mobile station waits for it to become idle, and then immediately transmits after the medium has been free for the new interframe space period. In the DDRR scheme, it eliminates the backoff algorithm because of its contribution to large variation in throughput and delay [14]. Instead, the interframe space value resulting from a deficit counter is multiplied by a random number between 1 and a value β > 1 to reduce collision probability [14]. The DDRR suffers from high collision probability when the number of mobile stations is large.
Fig. 5. The DDRR mechanism.
Chapter 3
Design Approach: Enhanced Fair Scheduling
We first describe our EFS design framework, including the state transition and the mechanism in each state. Then, we describe how we dynamically update the Division_Factor.
3.1 The EFS Design Framework
We propose an efficient fair scheduling scheme by integrating some of ideas from the DFS scheme [2] and the FCR [10]. The proposed EFS borrows the DFS’s idea of calculating backoff interval of packets and the FCR’s idea of decreasing backoff timer exponentially. The goal of the proposed EFS is to provide fair bandwidth allocation and good throughput by reducing idle backoff slot time. The essential idea of the proposed EFS is to choose a backoff interval that is proportional to the finish tag of a packet to be transmitted and decrement the backoff timer exponentially when consecutive idle slots are detected. We now describe the design approach in detail. We assume that all packets at a node belong to a single flow as proposed in [2]. In a multiple flows case, when station i needs to select the next packet that it will attempt to transmit, it selects the packet with the smallest finish tag among packets at the front of all backlogged flows at station i. When packet Pik reaches the front of its queue, it is tagged with a start tag and a finish tag. Pik
represents the k packet arriving at the flow at station i. Sk, the start tag of Pk, is
calculated as Sik
=v(aik
), whereaikrepresents the real time when packet Pik
reaches the front of the flow. Finish tag Fik
is assigned as follows:
i
represents the length of packet Pik
and φi represents the weight of station i. An appropriate choice of the Scaling_Factor allows us to choose a suitable scale for the virtual time.
Fig. 6. The state transition of EFS.
The next step is to choose a backoff interval such that a packet with smaller finish tag will be assigned a smaller backoff interval. This step will be performs in the successful packet transmission state. An active station can be in two modes at each contention cycle, namely, the transmitting mode when it wins a contention and the deferring mode when it loses a contention. When a station transmits a packet, the result is either successful or failed. Therefore, a station will be in one of the following four states at each contention cycle: a successful packet transmission state, a backoff timer decrement state, a transmission failure state, and a deferring state. Fig. 6 shows the state transition of the EFS. The operation of the proposed EFS is described as follows according to the state of a station is in:
1) Backoff timer decrement state: If an active station senses the medium idle for a slot, then it will start decrementing its backoff timer by aSlotTime, as shown in equation (5):
aSlotTime B
Bnew = old − . (5)
where Bold means the old backoff interval and Bnew means the new backoff interval.
When the backoff timer reaches to zero, the station will transmit a packet immediately.
If there are BTD (Backoff Threshold) consecutive idle slots being detected, its backoff timer will be decreased much faster according to equation (6):
DF B
Bnew = old / (if Bnew < aSlotTime, then Bnew =0). (6)
where DF represents Division_Factor.
BTD is a constant parameter which will be clear later and the DF parameter will be modified dynamically according to the network load condition. The value of DF can determine the speed of decreasing the backoff interval. The algorithm of modifying DF will be explained in detail later. A station can maintain a counter (called BTD Counter) whose default value is equal to BTD. When the station detects an idle slot time, it decrements its BTD counter by one. When the BTD counter reaches zero, the station will start decrementing the backoff timer exponentially. That is, the station enters the fast decreasing stage from the linear decreasing stage (as shown in Fig. 7).
Fig. 7. The backoff timer decrement state.
For example, consider two flows, flow 1 at station 1 with weight 0.1 and flow 2 at station 2 with weight 0.05. Let the packet size be 1000 bytes, the Division_Factor (DF) be 1.5, the Backoff Threshold (BTD) be 60, and the Scaling_Factor be 0.02. The value of Scaling_Factor × PacketSize/weight is the backoff interval (The detail of
choosing a backoff interval will be illustrated in “3) successful packet transmission state” and for simplicity, we assume that ρ is 1). Thus, the backoff interval will be 200 time slots for flow 1, and 400 time slots for flow 2. When an idle slot is detected, the backoff interval will be 199 time slots for flow 1, and 399 time slots for flow 2, respectively. Each flow will subtract one slot time from its backoff interval until there are 60 consecutive idle time slots being detected. Suppose that there are 60 consecutive idle slots being detected. Now the backoff interval is 140 time slots for flow 1 and 340 time slots for flow 2. Then when an idle slot is detected, the backoff interval will be 93 (140/1.5) time slots for flow 1 and 226 (340/1.5) time slots for flow 2. When an idle slot is detected again, the backoff interval will be 62 (93/1.5) time slots for flow 1 and 150 (226/1.5) time slots for flow 2. The rest may be deduced by analogy. The backoff interval of flow 1 will reach zero first, and then flow 1 will transmit its packet immediately.
2) Transmission failure (packet collision) state: Each station must maintain a CollisionCounter that counts the number of successive collisions. If a station notifies that its packet transmission has failed possibly due to a packet collision, then the station must react with the following procedure:
(i) It increments CollisionCounter by 1
(ii) It chooses a new Backoff interval uniformly distributed collision for a packet. The station will choose a backoff interval in the range
⎣ ⎦
[1, (1+1/DF)×K ] if collision occurs again. To protect against the situation when too many stations collide, the range for the backoff interval grows exponentially with the number of consecutive collisions. The station with higher DF than others will access the medium with a higher probability. The motivation for choosing a small backoff interval after the first collision is that since the colliding station was a potential winner of the contention for channel access, it is the colliding station turn to transmit in the near future. Therefore, the backoff interval is chosen to be small to increase the probability that the colliding station wins the contention soon. We set K to 8 while in the DFS K is set to 4. The reason for setting K to 8 is that since the proposed EFS includes a fast decreasing stage of the backoff interval, we double its value to reduce the collision probability.
For example, assume that flow 1 with DF 1.4 at station 1 and flow 2 with DF 1.0 at station 2 collide and that K is equal to 8. Then flow 1 and flow 2 will increment their CollisionCounter’s by 1 and pick a new backoff interval uniformly distributed in [1, 8]. Suppose that the DF of flow 1 and the DF of flow 2 remain the same and flow 1 and flow 2 will collide again after picking their new backoff intervals. Then flow 1 and flow 2 will increment their CollisionCounter’s by 1, flow 1 will pick a new backoff interval uniformly distributed in [1, 13] (⎣(1+1/1.4)×8⎦=13), and flow 2 will pick a new backoff interval uniformly distributed in [1, 16] (⎣(1+1/1)×8⎦=16).
Suppose that unfortunately flow 1 and flow 2 collide again after picking their new backoff intervals. Flow 1 and flow 2 both increment their CollisionCounter’s by 1 again and now their CollisionCounter’s are equal to 2. Thus, flow 1 will pick a new backoff interval uniformly distributed in [1, 23] (
⎣
(1+1/1.4)2×8⎦
=23) and flow 2 will pick a new backoff interval uniformly distributed in [1, 32] (⎣
(1+1/1)2×8⎦
=32). Thus,we let a high DF flow get a higher probability to access the medium than a low DF
flow.
3) Successful packet transmission (choosing a backoff interval) state: If a station i successfully transmits a packet with finish tag Z at time t, it will pick a suitable backoff interval Bi for its next packet as proposed in [2] and it sets its virtual clock vi
equal to max(vi(t), Z). The backoff interval is derived from equation (4). Suppose the station i will transmit its next packet, Pik
. The station i will tag the packet with a finish tag. This step is performed at time aik. Thus, station i picks a backoff interval Bi for packet Pik
Finally, we will randomize the Bi as shown in equation (9). The meaning of Lik
and ψi have been described before. ρ is a random variable uniformly distributed in the range [0.9, 1.1] to reduce the possibility of collisions. After deciding the value of Bi, we assign Bold the value of Bi to preserve Bi which will be used in the deferring state. Bold is used in the backoff timer decrement state.
⎥⎦
In this state, the station must reset its CollisionCounter to zero and the BTD Counter to BTD.
4) Deferring state: Each transmitted packet is tagged with a finish tag. So when at time t station i hears a packet with finish tag Z, it calculates the difference between Z and the current virtual clock vi(t)., i.e.∆=(Z−vi(t)). If station i is in the fast decreasing stage with∆>0, it resets its Bi according to equation (10).
)} to maintain fairness, this procedure is necessary since we incorporate a fast backoff mechanism. Finally, the station i sets its virtual clockv equal toi max(vi(t),Z).
For example, consider two flows, flow 1 at station 1, and flow 2 at station 2, with weights 0.2 and 0.1, respectively. Let the packet size be 1000 bytes, the Division_Factor (DF) be 1.5, the Backoff Threshold (BTD) be 60, and the Scaling_Factor be 0.02. Then, the backoff interval will be 100 time slots for flow 1, and 200 time slots for flow 2. For simplicity, we also assume thatρ used for calculating a backoff interval is 1.0 in this example. Then, flow 1 will choose a backoff interval of 100 time slots for all its packets and flow 2 will choose a backoff
interval of 200 time slots for all its packets. As a result, on average, the number of packets transmitted by flow 1 is 2 times than the number of packets transmitted by flow 2. However, since we introduce the fast backoff mechanism, we must recalculating a backoff interval to maintain fairness. When an idle slot is detected, the backoff interval will be 99 time slots for flow 1, and 199 time slots for flow 2, respectively. Each flow will subtract one slot time from its backoff interval until there are 60 consecutive idle time slots being detected. Suppose that there are 60 consecutive idle time slots being detected. Now the backoff interval is 40 time slots for flow 1 and 140 time slots for flow 2. Then when an idle slot is detected, the backoff interval will be 26 (40/1.5) time slots for flow 1 and 93 (140/1.5) time slots for flow 2. When an idle slot is detected again, the backoff interval will be 17 (26/1.5) time slots for flow 1 and 62 (93/1.5) time slots for flow 2. The rest may be deduced similarly. The backoff interval of flow 1 will reach zero first, and transmit its packet immediately. After flow 1 transmits its packet, the backoff interval of flow 2 is 5. If we did not incorporate the fast backoff mechanism, the backoff interval of flow 2 should be 100. Thus we must recalculate the backoff interval of flow 2. The new backoff interval of flow 2 is 100 (max {5, 200-100}). One notable point is why we select max in equation (10). The consideration is that when a station i receiving a packet just enters the fast decreasing stage, the Bold of the station may be greater than Bi-△. At this moment, resetting the backoff interval, Bi, to Bold is more appropriate.
3.2 Dynamically Updating Division_Factor
In order to take into account the network load condition for Division_Factor adaptation, we use a measurement scheme similar to [11] to get the related network information. We use the number of collisions as an indicator of the network load condition. The time domain is divided into continuous measurement periods (MPs)
with specified period size. A measurement period (MP) is defined as the number of time slots. When the kth measurement period, denoted by MPk, expires, the station summarizes the network load condition indicatorδ(k)[11] during MPk as follows:
s number of packets sent during MPk. Because δ(k)cannot precisely represent the long-term network load condition, we also use an estimator of Exponentially Weighted Moving Average [11] to smoothen the estimated value of each measurement period.
The average network load condition indicator during MPk, denoted by δavg(k)is computed as follows: Division_Factor (DF) will be modified every MP according to the following condition:
If∆k >0, DF =min(1,(1−δavg(k))×DF) (14)
If∆k <0, DF =max(2,(1+δavg(k))×DF) (15)
So when the network load condition becomes better than that in the last MP, we increase the DF to decrement the backoff timer faster and when the network load condition becomes worse than that in the last MP, we decrease the DF to decrement the backoff timer slower. Thus the value of DF is adapted to the network condition.
We let the minimum value of DF be 1 so that the backoff timer decrements just like the original procedure (i.e., equation (5)). We let the maximum value of DF be 2 so that the backoff timer will not decrement too fast so as to increase the collision probability.
Chapter 4
Simulation Model and Simulation Results
We evaluate the performance of the proposed EFS using the network simulator ns-2 [9] which supports IEEE 802.11 DCF functionality. We extended the simulator to implement the proposed EFS. We also included the implementations of DFS [2] and EDCA [13] made by other researchers.
4.1 Simulation Model
In the simulation model, the bandwidth of the wireless LAN is 11 Mbps and the number of stations in the wireless LAN is n. In a wireless LAN with n stations, we set up n/4 high priority flows and n/4 low priority flows (n is always chosen to be a multiple of 4) Flow i is set up from station i to station i+1 (the stations are numbered 0 through n-1). In the simulations of all schemes, the high priority traffic flows generate packets with a constant bit rate of 1 Mbps and the low priority traffic flows generate packets with a constant bit rate of 500 Kbps. All flows generate packets with length of 1000 bytes. Table 1 shows the parameters used in the simulations for comparison of different schemes.
Table 1:Simulation parameters [2, 11, 16].
Measurement period 5000 time slots
The IEEE 802.11 working group has not yet decided on the values of AIFS and CWmin. When choosing the parameter settings to use for different schemes, we have tried to use settings specified in the standards or papers where the schemes were specified [2, 11, 13]. In the simulation of EDCA, We choose queue 2 and queue 3 with default values [13] so that queue 2 can get bandwidth that is close to 2 times the bandwidth of queue 3. (We test this with 4 stations where 2 flows generate packets with a constant rate of 11 Mbps.) So we assign the queue 2 with weight 3/8n and the queue 3 with weight 4/8n. The sum of weights of all flows adds to 1. In the simulation of EFS, we set BTD to 60 and DF to 1.3. We also set the smoothing factor θ to 0.8 and the Measurement Period with 5000 time slots, as proposed in [11].
4.2 Simulation Results
We evaluate the aggregate throughput of high priority flows by summarizing all the throughput of high priority flows and the aggregate throughput of low priority flows by summarizing all the throughput of low priority flows. We also evaluate the fairness index [12]. We compare the proposed EFS with DFS and EDCA.
4.2.1 Aggregate Throughput
Fig. 8 shows the aggregate throughput for low and high priority stations versus the number of stations. Each high priority flow is assigned a weight of 8/3n and each low priority flow is assigned a weight of 4/3n. We can see that the EDCA’s aggregate throughput of high priority flows is higher than EFS and DFS. EDCA can achieve higher throughput because in the EDCA ns-2 implementation [13], it has implemented the Contention Free Burst (CFB). The EDCA can achieve much higher aggregate throughput with CFB than without CFB. We also can see that the throughput changes between 16 and 24 stations. The throughput degrades because in the case of 16 stations, there are 8 flows whose total offered load are 6 Mbps while in the case of 24 stations, there are 12 flows whose total offered load are 9 Mbps, which are greater than the real bandwidth limit of 11 Mbps in Wireless LAN. Thus, in the case of 24 stations, some time was wasted due to contention such as collision or choosing larger backoff intervals. In addition, the high priority flows get more and more throughputs because the low priority flows get less and less throughputs. EFS and DFS both can allocate bandwidth to flows in proportion to their weights. The proposed EFS can achieve higher aggregate throughput than DFS because the EFS effectively reduce idle slots using Division_Factor (DF) and can dynamically change the DF value according to the network load condition. Note that, the high priority flows of EDCA
get more and more aggregate throughput than the low ones with the increase of the number of stations. The EDCA results in unfairness between high and low priority flows.
Fig. 8. The aggregate throughput of High and Low priority flows.
4.2.2 Fairness Index and Throughput Variance
For environments where all flows are always backlogged, we evaluate a fairness index [12] as follows:
where Tf denotes the throughput of flow f, and ψf denotes the weight of flow f.
Remind that, the higher the value of the fairness index, the higher is the fairness. Fig.
9 shows that the fairness index achieved by EDCA degrades as the number of stations in the wireless LAN increases. This is because that as the number of stations increases, there is an increase of collisions. To be fair, colliding stations should get prior access over other stations after suffering a collision. However, in EDCA, the colliding nodes start binary exponential backoff to pick a larger backoff interval and hence do not get prior access over other stations. This results in unfairness towards the colliding nodes.
On the other hand, the proposed EFS and the DFS achieve a high fairness index even when the number of stations increases.
0.7
Fig. 9. The fairness index of different schemes.
Fig. 10 and 11 show the throughput achieved by each high priority flow and