An interface driver links computer software to the hardware of a network interface card (NIC). NDIS is an API that establishes rules for interaction between an operating system and a NIC. It encompasses the complexity of a NIC and provides functions for communication. There are miniport drivers for lower hardware levels and higher level drivers for core network protocols. Intermediate drivers control traffic received by the NIC and are useful for data filtering, load balancing, and network traffic monitoring. NDIS is limited to Intel 80386 family processors, but NDISWrapper and Project Evil allow Windows interface drivers to be used with Unix-like operating systems and BSD derivatives.
An interface driver is a small computer program, or set of programs, that serves as a link between computer software and the hardware of a network interface card (NIC). NIC manufacturers and programmers use a specific application programming interface (API) known as the network driver interface specification (NDIS). It establishes all the rules necessary for a computer program, such as an operating system, to interact with a NIC. There are actually several types of interface drivers described in NDIS but, in essence, the main job of NDIS is to get a couple of layers of the Open Systems Interconnection Model (OSI) to work together.
The OSI model is made up of seven layers, some of which have multiple sublayers. The first layer is the physical layer, which deals with the physical specifications for a NIC such as a Universal Serial Bus (USB) dongle, an Ethernet card, a wireless adapter card, and so on. The second and third layers of the OSI model are where all the NDIS magic happens. The second layer is the data link layer and consists of two sublayers, the upper one called logical link control (LLC) and the lower one called media access control (MAC). A device driver handles the MAC sublayer, while the interface driver handles the LLC sublayer, providing an interface between it and the third layer of the OSI model, the network layer.
Acting as an intermediary, an NDIS essentially encompasses all the confusing hardware complexity of a NIC and provides a set of functions for its interaction with the network protocols needed for communication. A programmer simply has to follow the rules set out in the NDIS to create the actual interface drivers. At the lower hardware level, these drivers are known as miniport drivers, while higher level drivers are written using the NDIS API to handle core network protocols such as Internet Protocol (IP), Internet Protocol Security (IPsec), the Internet Control Message Protocol (ICMP) and Internetwork Packet Exchange (IPX), among others.
When network communication is through a NIC, the data bits are first received by the physical device and then, through the OSI model architecture, the data is moved from the hardware to the different layers of the OSI model until it is presented in a format that is easier for the user to understand. Thus, each level of the model provides services for its neighbors. The data leaves the first layer, the physical layer, and reaches the MAC of the lower sublayer in the second layer, where the device driver passes it to the LLC. The LLC’s protocol drivers then move it to the network layer.
Another type of interface driver is the intermediate driver, which acts as a sort of housing, containing interfaces for both miniport drivers and network protocol drivers. These intermediate drivers can then be chained together and provide the ability for the interface driver to control the traffic received by the NIC. Intermediate drivers are useful for various needs, such as data filtering, load balancing, network traffic monitoring, and statistical information gathering. They also work well as a translator between older transportation drivers and a miniport driver who speaks to a media format that the older driver may not understand.
NDIS was originally designed by Microsoft®, in collaboration with 3Com®, so many hardware manufacturers write their own drivers to support Microsoft® operating systems first. As a result, NDIS is limited to computer hardware architectures based on the Intel® 80386 family of 32-bit or 64-bit processors. The free software movement has also developed a program, called NDISWrapper, which is capable of loading interface drivers originally developed for Microsoft® Windows® for use with free Unix®-like operating systems such as Linux®. Users of Berkley Software Distributions (BSD) free derivatives, such as FreeBSD® and NetBSD®, have also discovered the ability to use Windows® interface drivers through the use of software developed by a project known as Project Evil . The x86 hardware limitations of NDIS led to another project, developed by Apple and Novell®, called the open data-link interface (ODI), which provided many of the same rules and functionality as an NDIS but with a focus on Apple® Macintosh& ; and Novell NetWare® systems.
Protect your devices with Threat Protection by NordVPN