Full Introduction to Network Interface Card [MiniTool Wiki]
Definition of Network Interface Card
To begin with, what is the network interface card? It can be called network interface controller (NIC card), network adapter, LAN adapter, or physical network interface, which is a computer hardware component used to connect a computer to a computer network.
Early network interface cards were usually implemented on expansion cards inserted into the computer bus. The low cost and universality of the Ethernet standard mean that most newer computers have built-in network interfaces on the motherboard.
Modern network interface cards provide advanced features, such as interrupt and DMA interfaces with the host processor, support for multiple receive and transmit queues, divided into multiple logical interfaces, and network traffic processing on the controller (such as TCP offload engine).
Purpose of Network Interface Card
The network interface card uses a specific physical layer and data link layer standards (such as Ethernet or Wi-Fi) to implement the electronic circuits required for communication, which provides the basis for a complete network protocol stack, allowing computers on the same local area network (LAN) to communicate and large-scale network communication through routable protocols, such as Internet Protocol (IP).
The NIC card enables computers to communicate through computer networks using cables or wirelessly. The NIC card is both a physical layer and a data link layer device because it offers physical access to network media, and offers a low-level addressing system for IEEE 802 and similar networks by using the MAC address uniquely assigned to the network. interface.
Implementation of Network Interface Card
The network interface card was initially implemented as an expansion card plugged into the computer bus. The low cost and ubiquity of the Ethernet standard mean that most new computers have a network interface card built into the motherboard.
Newer server motherboards may have multiple network interfaces built-in. The Ethernet feature can be integrated into the motherboard chipset, or it can be realized by a low-cost dedicated Ethernet chip.
Unless you need other independent network connections or use some non-Ethernet type network, usually a separate network card is no longer needed. The general trend of computer hardware is to integrate the various components of the system onto the chip, which also applies to network interface cards.
Ethernet controllers usually have an 8P8C socket for connecting network cables. Earlier NICs also provided BNC or AUI connections. Ethernet network controllers usually support 10 Mbit/s Ethernet, 100 Mbit/s Ethernet, and 1000 Mbit/s Ethernet.
Such controllers are designated as 10/100/1000, which means they can support data rates of 10, 100, or 1000 Mbit/s. Ten Gigabit Ethernet NICs have also been provided, and since November 2014, they have also been available on computer motherboards.
Modular designs like SFP and SFP+ are very popular, especially in fiber-optic communications. They define a standard receptacle for media-related transceivers, so users can easily adjust the network interface according to their needs.
Performance and Advanced Functionality of Network Interface Card
Multi-queue NICs provide multiple transmit and receive queues, allowing data packets received by the NIC to be assigned to one of its receive queues. The NIC can use a hash function to distribute incoming traffic between receive queues.
Each receive queue is assigned an independent interrupt; by routing each of these interrupts to different CPUs or CPU cores, interrupt requests triggered by network traffic received by a single NIC can be distributed to improve performance.
With multi-queue NICs, performance can be improved by distributing outgoing traffic among different transmission queues. By assigning different transmit queues to different CPUs or CPU cores, internal operating system contention can be avoided. This method is commonly referred to as transmission packet steering (XPS).
Some products have a NIC partition (NPAR, also known as a port partitioning) that uses SR-IOV virtualization to divide a single 10 GB Ethernet NIC into multiple discrete virtual NICs with dedicated bandwidth, which is provided to the firmware and operating system as separate PCI device functions.
The TCP offload engine is a technology used in some NICs to offload the processing of the entire TCP/IP stack to the network controller. It is mainly used for high-speed network interfaces like Gigabit Ethernet and 10 Gigabit Ethernet. For these interfaces, the processing overhead of the network stack becomes very large.