All You Need to Know About WiFi Driver
Today, almost every other device is online – from a mobile phone to an electric kettle. There is a wireless network in every home and its main backbone is the WiFi driver. Without it, modern technologies in everyday life are simply unable to perform their basic functions. And a modern comfortable life would not be so comfortable without the appropriate software. That is why Sirin Software invites you to learn more about the internals of wireless technologies, in particular about drivers.
What is a WiFi Driver in a Nutshell?
In simple terms, a device driver is a piece of software that enables the connection and interaction between hardware and the operating system. When you consider that Wi-Fi is a type of wireless networking technology designed to connect to the Internet, it turns out that the WiFi driver is software that helps user devices find and connect to wireless connections.
How Does a Wireless Network Work?
WiFi standard uses collision detection mechanisms to get access to the wireless medium. A similar approach to CSMA/CA (carrier-sense medium access with collision avoidance) that is used in Ethernet. Access to wireless medium is controlled by coordination functions. There are several such functions:
- Distributed coordination function (DCF). This is the standard access mechanism. Before starting the transmission, it checks whether the communication channel is free, then uses a random frame rollback. In this case, the first transmitter acquires the channel.
- PCF, or point coordination function. For its implementation, point coordinators are used, which ensure uninterrupted transmission of the channel using shorter frames. This option is usually limited to infrastructure networks and is not widely used.
The transfer function that the WiFi Driver uses, for instance, depends on the network congestion, the quality of the connection, and the interaction between the devices.
Most 802.11 Ethernet frames contain a duration field for media protection. For this, NAV (network allocation vector) is used – a timer that shows the amount of time during which the environment will be backed up. With its help, the transmitting stations ensure the continuity of operations.
The 802.11 standard uses four types of interframe intervals to define the access environment:
- SIFS (Short interframe space) – used to transfer data of the highest priority (for example, RTS/CTS frames);
- PIFS (PCF interframe space) – interframe space that is used during the PCF protocol;
- DIFS (DCF interframe space) – the minimum time at which the channel cannot be busy; access is provided immediately if the channel was free for a period exceeding DIFS;
- EIFS (Extended interframe space) is not a fixed interval, which is used only if there is an error in transmission.
The Distributed coordination function (DCF) enables multiple independent transmit stations to communicate without central control.
To avoid collisions, they use an ordered exponential backtracking algorithm.
MAC Access Modes – What are They for?
Nearly all Wi-Fi consumer devices use the Distributed coordination function (DCF) protocol. It is considered basic and is used in both infrastructure and ad-hoc networks. It is also the basis for carrier sense multiple access with collision avoidance or detection.
When using DCF, two rules should work:
- if the channel has remained free longer than SIFS provides, the data is given the highest priority for immediate transmission
- if the environment was busy, then the channel waits for a certain time – for a period of the so-called access grace period.
The Distributed Coordination Function (DCF) is used in modern devices as the basis for Carrier-sense multiple access (CSMA). At the same time, wireless local networks, as a rule, do not detect but avoid possible conflicts when searching for free channels.
How to Configure the Mac WiFi Driver in Order to Avoid Access Errors?
When installing drivers on the device, the basic software is used to connect to the wireless network. Under the standard connection protocol, the MAC access modes are provided to the user on a first come, first served basis. But this method does not exclude the possibility of a conflict when different users connect to the channel. In addition, it is not able to withstand a heavy load when a significant number of users are simultaneously connected to the wireless network. How can you avoid such collisions?
The essential component that determines the performance of the wireless software is the WiFi Driver. It is a collection of files that provide media access control. In fact, it is also responsible for the interaction between the device and the transmission channel.
Thus, to normalize MAC access modes, Carrier-sense multiple access (CSMA) is used. This multiple access protocol was designed to avoid collisions in the event that two or more stations simultaneously send a signal to the same data channel, which requires each station to check the status of the media. If the function shows that the channel is busy, the MAC reports this to higher levels
Despite the fact that these protocols are able to provide almost unhindered access to the network for a large number of users, they, unfortunately, are not able to solve some of the problems of multiple access. In particular, they do not solve the problem of hidden nodes.
RTS and CTS are used to solve the problem. Thanks to the latter, hidden nodes are drowned out, and the receiver sees only free channels. RTS/CTS can only be used on high bandwidth networks due to high traffic consumption, but it can be configured by setting the RTS threshold.
On the one hand, Carrier-sense multiple access (CSMA) was developed to improve the quality of wireless communications. But at the same time, it is not able to fix all the possible errors in the WiFi drivers.
It takes a little time and effort to understand how wireless networks work, but Sirin Software can easily walk you through the basics in more detail. Contact us for that or if you need help customizing existing WiFi drivers or integrating them with different embedded platforms.!