A Discrete-Time Simulation for Throughput Performance Evaluation of IEEE802.11 with Hidden Stations
Theesid Sriprasert
1, Amir Parnianifard
1, Rafee Al Ahsan
1, Pruk Sasithong
1,
Muhammad Saadi
2, Pisit Vanichchanunt
3, Varanya Plodchinda
4, Warakorn Srichavengsup
5, Lunchakorn Wuttisittikulkij
11
Wireless Communication Ecosystem Research Unit, Department of Electrical Engineering, Chulalongkorn University, Bangkok, Thailand
2
Department of Electrical Engineering, University of Central Punjab, Lahore, Pakistan
3
King Mongkut's University of Technology North Bangkok, Thailand
4
Suratthani Rajabhat University, Thailand
5
Computer Engineering, Robotics and Technology Laboratory, Faculty of Engineering, Thai-Nichi Institute of Technology
Email: [email protected]
1 AbstractThe hidden station is a major problem in Wireless Local Area Network (WLAN). As the hidden stations obstruct the perception of transmitting packets, this results in a collision during transmission. In this paper, a discrete-time simulation for IEEE802.11 is demonstrated, and the saturation throughput is observed. A comparison between the analytical model and the simulation model is also conducted. For the sake of lucidity, the number of hidden channels is varied and the shared channel medium is monitored over a longer period to observe the situation of hidden and contending stations. Results show an excellent agreement between the analytical and experimental approaches.
Keywords: Hidden Station, IEEE802.11, MAC Protocol, Wireless LAN
1. Introduction
With the ever-increasing demand for mobile and Internet of Things (IoT) devices, WLAN has emerged as a viable solution to provide connectivity to these devices [1]. WLAN has adopted the IEEE 802.11 Medium Access Control (MAC) protocol and physical layer standards (PHY) for communication.
The IEEE 802.11 Distributed Coordination Function (DCF) employs a carrier-sense multiple access with collision avoidance (CSMA/CA) with binary exponential backoff algorithm [2]. DCF functions can be categorized into two types; Basic Access (BA), which resorted to two-way handshaking and Request-To-Send/Clear-To- Send (RTS/CTS), which adopts a four-way-handshaking.
The following are the steps on which two-way handshaking works for IEEE 802.11 standard.
1) When a station detects that the channel is available and it has a packet to transmit, it waits for Distributed Interframe Space (DIFS) time before transmission.
2) If the channel is sensed busy by the station, it waits till the channel is sensed free for DIFS time.
Before transmission, the station selects a random backoff value from a backoff window {0,...,CWmin-1}, where CWmin is referred to as the initial backoff window size.
3) After the counter has reached the value of zero, packet transmission by the stations and done and it waits for ACK message for Short Interframe Space (SIFS) time. In case, the station has more packets to transmit, it again follows Step 2.
4) If no ACK received within SIFS, it restarts the backoff process (Step 2) with an increased backoff window.
Common problems which do happen in WLAN are the self-interference and hidden station. Both issues result in performance degradation due to collision [3].
This paper addresses the issue of hidden station in WLANs. A station in a WLAN can be repositioned as the stations are mobile. This can result from stations being hidden from each other. Besides, because of the dynamic nature of the station, a number of hidden stations vary with respect to time. Thus, a collision may occur during the transmission when two or more packets are sent within the same period [4-6].
The rest of the paper is organized as follows. In Section 2, a detailed description about the proposed algorithm for the identification of hidden stations is given. Section 3 presents the experimental results and lucid discussion is done on the results. The paper is finally concluded in Section 4.
2. The Proposed Algorithm for Hidden Station Identification
Figure 1 shows the proposed algorithm. At the beginning, (state = IDLE and time = 0), the program goes to the connecter point (A) and update the time. In this block, if the state is Id, the program goes the sub- routine of I (Id) as shown in Fig. 2. If not, the next The 36th International Technical Conference on Circuits/Systems, Computers, and Communications 2021
- 283 -
decision block is the waiting state as shown in Fig. 3.
And again, if the state is WAITING (W), the sub-routine of W is executed. Nevertheless, if not, then the program goes again to the next decision block. The algorithm runs continually until it gains the final decision block and will continue the loop to finish the program.
State = IDLE
Time = 0
Time = Time + 1
State = IDLE ?
State = SUCCESS ?
State = COLLISION ? State = SUCCESSLast ?
State = COLLISIONLast ?
START Y
N
Y N
Y
Y N
State = WAITING ?
State = WAITINGLast ? WL CL
SL
C
S Id
A
Y W
Y N
N
Figure 1: The Main Program
All the packets attain the idle (Id) state at the start of transmission. At that instant, the backoff counters (BackoffCnt) for each packet are randomly assigned. If a packet randomly achieves BackoffCnt = 0 in the beginning, it searches for the states of other packets and tries to find out whether they are transmitting or not. If at that instant, no other packets are being transmitted, the packet having a BackoffCnt = 0 can successfully transmit and attains success (S) state. The duration of time for successful transmission (Ts) is always fixed for each packet and is initialized before the transmission begins. As a result, once a packet reaches a state of S, the time it spends in each state decreases by 1. On the contrary, if there are more than 1 packets transmitting together at the same instant by reaching a BackoffCnt = 0, both the packets will reach the collision (C) state. In addition, the duration of their collision time (Tc) will also decrement by 1 with each passing time slot. Normally Tc
< Ts in a particular network and this provides the collided packet with a higher chance to re-transmit more frequently.
In cases when a packet randomly attains a BackoffCnt > 0, it also investigates the states of other packets. When it finds that the other packets are transmitting,the packet reaches awaiting (W) state. On the other hand, if the packets having a BackoffCnt > 0 discovers that no other packets are transmitting at that instant, then they stay in their initial Id state, and their BackoffCnt decreases by 1. After 1-time slot has passed, the packets again inspect on the BackoffCnt of each other. If one of the packets reaches a BackoffCnt = 0, it will start to transmit.
In this sup-program (WAITING), if other stations are not transmitting in the last slot, the state W is assigned and followed by action “NotTRANSMIT”. If the slot sent to this subprogram is the last, it enables the state =
WAITINGLast and goes to the decision block and check whether Backoffcnt = 1 or not. If the Backoffcnt = 1, it will gain the action of (TRANSMIT) to prepare the station in order to send. On the other hand, if the Backoffcnt ≠ 1, the station, still does not send the package.
CntBackoff==0
Other stations transmitting ?
State = SUCCESS State = COLLISION
CntSlotTs = Ts - 1 CntSlotTc = Tc - 1 Y N
Other stations transmitting ?
State = IDLE State = WAITING
CntBackoff -= 1 Y N
Id
CntBackoff==0? Y N
Action = TRANSMIT
Action = NotTRANSMIT
A
Y N
Action = TRANSMIT Action =
NotTRANSMIT
Figure 2: The IDLE (Id) state
Other stations transmitting last slot ?
State = WAITING State =
WAITINGLast
Action =
NotTRANSMIT BackoffCnt==1?
Action =
NotTRANSMIT Action =
TRANSMIT
A
Y N
N Y
W
Figure 3: The WAITING (W) state
CntBackoff==0?
State = SUCCESS
CntSlotTs = Ts - 1
State = COLLISION
CntSlotTc = Tc - 1
Action = TRANSMIT Other stations
transmitting ?
State = IDLE
CntBackoff -= 1 Y N
CntBackoff==0?
Other stations transmitting ?
State = WAITING
Action = NotTRANSMIT
Action = TRANSMIT Action =
NotTRANSMIT
A N
N
N Y
Y
Y
Action = TRANSMIT ActionDetail =
NotLastSUCCESS ActionDetail = NotLastCOLLISION WL
Figure 4: The WAITINGLast (WL) state According to figure 4, after passing the decision block, a packet reaches the WaitingLast. If a packet randomly achieves BackoffCnt = 0, it searches for the state of other packets. If no other packet is being transmitted, then the packet having a BackoffCnt = 0 is successfully transmitted and reaches S state. Once a The 36th International Technical Conference on Circuits/Systems, Computers, and Communications 2021
- 284 -
packet attains S, then the time it spends in each state decreases by 1 with each passing time slot and then will update ActionDetail that NotLastSuccess and vice versa.
In scenarios, when it finds that other packets are transmitting then the packet reaches a W state. On the other hand, if packets having a BackoffCnt > 0 discover that no other packets are being transmitted, then they stay in their Id state and their BackoffCnt decrease by 1.
TsSlotCnt == 1 ?
State = SUCCESSLast CurrentWindowSize =
MinWindowSize BackoffCnt = random.randint(0,currentWindowSize)
BackoffCnt==0?
Action = TRANSMIT Action =
NotTRANSMIT State = SUCCESS
SlotCnt == 2 ? Action = TRANSMIT
ActionDetail = LastSUCCESS ActionDetail =
NotLastSuccess SlotCnt -=1
A Y
Y Y
N
N
N S
Figure 5: The SUCCESS(S) State
After a packet gains state S (in Fig.5), it checks whether the past packets have been sent or not and the program will check whether the duration of time for successful transmission slot counters == 1 (TsSlotCnt) or not. If at that instant TsSlotCnt ==1, it means the state will update to SuccessLast. Then, the state being SuccessLast is assigned and followed by CurrentWindowSize = MinWindowSize. After that, if the BackoffCnt ≠ 0, it transmits; otherwise, no transmission.
On the other hand, the state being S is assigned that follows by action “TRANSMIT”. Then, the program goes to the decision block and tries to check whether SlotCnt == 2 or not. If the SlotCnt is equal to 2, it gains the ActionDetail of (LastSUCCESS). On the contrary, if the SlotCnt is not equal to 2, the station gains the ActionDetail of (NotLastSUCCESS). Finally, the program will SlotCnt-=1.
After reaching state C (in Fig.6), it wants to check whether the past packets have been sent all slots have been sent or not. The program will check if the duration of their collision time slot counters TcSlotCnt == 1 or not. If at that instant TcSlotCnt ==1, the state will update to SuccessLast. Hence the state being C is assigned and followed by CurrentWindowSize = min(MAX_WINDOW_SIZE,2*CurrentWindowSize) [7].
After that, the program will have Random Backoff (0,currentWindowSize) and then go to the decision block and check if Backoffcnt = 0 or not. If the BackoffCnt = 0, it gains the action of TRANSMIT to prepare the station to send. On the other hand, if the BackoffCnt ≠ 0, the station still does not send the package.
In contrast, if state C is assigned and followed by action TRANSMIT, the program goes to the decision block and tries to check if SlotCnt == 2 or not. If yes, then SlotCnt = 2, and it gains the ActionDetail of LastCOLLISION; otherwise, the station gains the ActionDetail of NotLastCOLLISION. Eventually, the program will have SlotCnt-=1
Note : A computer simulation was written and run by a Python program.
TcSlotCnt == 1 ?
State = COLLSIONLast CurrentWindowSize = min(MAX_WINDOW_SIZE,2*currentWindowSize)
BackoffCnt = random.randint(0,CurrentWindowSize)
BackoffCnt ==0?
Action = TRANSMIT Action =
NotTRANSMIT State = COLLSION
SlotCnt == 2 ? Action = TRANSMIT
ActionDetail = LastCOLLSION ActionDetail =
NotLastCOLLSION SlotCnt -=1
A
Y
Y Y
N N
N
C
Figure 6: The COLLISION (C) state 3. Experiment Results and Discussion
We have compared our simulation results (in Fig. 7) with analytical results as illustrated in [7]. It can be seen that when the number of stations is large, the simulation results agreed well with the analytical model. However, the discrepancy between simulation results and analytical results witnessed when the number of stations is small. This is because the analytical model of [7] is more accurate as of the window size and the number of stations is larger as described. Five contending stations as shown in Fig. 8 are simulated. In this scenario, there are no hidden stations. As we can see that the chance of collision is low because every station can sense the packets from all stations.
According to figure 9, stations 0 and 3 are hidden from each other. These hidden stations cannot sense each other’s transmission. Therefore, they may incorrectly determine the channel as idle and send the packets simultaneously. In this figure, the packet collisions between hidden stations are indicated as crossed symbols.
In Figure 10, the transmissions of contending and hidden stations have been observed for a longer time. In the dashed lines, most of the time both hidden stations send the packets simultaneously. This is because they determine the channel as idle most of the time. For that reason, collisions between hidden stations are inevitable and resulting in system throughput degradation.
The 36th International Technical Conference on Circuits/Systems, Computers, and Communications 2021
- 285 -
4. Conclusion
The invention of IoT has triggered the utilization of wireless media for telecommunication. This is conducive to many devices using a shared media for communication and can result in a collision. In this paper, a discrete-time simulation for throughput performance evaluation of IEEE 802.11 is conducted.
The proposed algorithm experimental results match with the results presented in the theoretical work [7]. Results further suggest that hidden station(s) has a serious concern in the network throughput. As the hidden station is not visible to the other stations bringing about a collision. Consequently, in the presence of hidden station(s), the two-way handshaking is not suitable approach to handle collision. In the future work, the authors intend to develop a four-way simulation and implement its asymmetric full-duplex protocol in the presence of hidden stations.
Figure 7: The saturation throughput performance of IEEE802.11 DCF (simulation vs. analytic model)
Figure 8: Contending station scenario
Figure 9: Contending and hidden station scenario
Figure 10: Contending and hidden station scenario (observed for a longer time)
6. References
[1] M.Saadi et al., "IoT enabled quality of experience measurement for next generation networks in smart cities" in Sustainable Cities and Society, vol. 60, 2020.
[2] W. Tariq Toor et al.,”Evolution of random access process: From Legacy networks to 5G and beyond”
in Transactions on Emerging Telecommunications Technologies, p.e3776,2019
[3] M. Alvi et al., “Performance analysis of access class barring for next generation IoT devices” in Alexandria Engineering Journal, vol. 60 no. 1, 2021.
[4] S. Khurana, S. Khurana, S. K. S. Gupta and P. K.
Srimani,”Performance Evaluation of Distributed Co- Ordination Function for IEEE 802.11 Wireless LAN Protocol in Presence of Mobile and Hidden Terminals”, IEEE, 24-28 Oct. 1999
[5] O. Ekici,A. Yongacoglu, “IEEE802.11a Throughput Performance with Hidden Nodes” IEEE communications lettes, vol. 12, no. 6, june 2008
[6] A. Tang,X. Wang, “A-Duplex: Medium Access Control for Efficient Coexistence Between Full-Duplex and Half- Duplex Communications”, IEEE Transactions on wireless communications, vol. 14, no. 10, October2015 [7] G. Bianchi, “Performance Analysis of the IEEE
802.11Distributed Coordination Function”, IEEE Journal on selected areas in communication, vol.18 , no.3, MARCH 2000
The 36th International Technical Conference on Circuits/Systems, Computers, and Communications 2021
- 286 -