World Library  
Flag as Inappropriate
Email this Article

Network interface controller

Article Id: WHEBN0000243613
Reproduction Date:

Title: Network interface controller  
Author: World Heritage Encyclopedia
Language: English
Subject: MAC spoofing, List of AMD chipsets, MAC address, Localhost, Preboot Execution Environment
Collection: Ethernet, Networking Hardware
Publisher: World Heritage Encyclopedia

Network interface controller

Network interface controller
A 1990s Ethernet network interface controller that connects to the motherboard via the now-obsolete ISA bus. This combination card features both a BNC connector (left) for use in (now obsolete) 10BASE2 networks and an 8P8C connector (right) for use in 10BASE-T networks.
Connects to

Motherboard via one of:

Network via one of:

Speeds 10 Mbit/s
100 Mbit/s
1 Gbit/s
10 Gbit/s
up to 160 Gbit/s
Common manufacturers Intel
Marvell Technology Group

A network interface controller (NIC, also known as a network interface card, network adapter, LAN adapter or physical network interface,[1] and by similar terms) is a computer hardware component that connects a computer to a computer network.[2]

Early network interface controllers were commonly implemented on expansion cards that plugged into a computer bus. The low cost and ubiquity of the Ethernet standard means that most newer computers have a network interface built into the motherboard.

Modern network interface controllers offer advanced features such as interrupt and DMA interfaces to the host processors, support for multiple receive and transmit queues, partitioning into multiple logical interfaces, and on-controller network traffic processing such as the TCP offload engine.


  • Purpose 1
  • Implementation 2
  • Performance and advanced functionality 3
  • See also 4
  • References 5
  • External links 6


A Madge 4/16 Mbit/s Token Ring ISA-16 NIC

The network controller implements the electronic circuitry required to communicate using a specific physical layer and data link layer standard such as Ethernet, Fibre Channel, Wi-Fi or Token Ring. This provides a base for a full network protocol stack, allowing communication among small groups of computers on the same local area network (LAN) and large-scale network communications through routable protocols, such as Internet Protocol (IP).

The NIC allows computers to communicate over a computer network, either by using cables or wirelessly. The NIC is both a physical layer and data link layer device, as it provides physical access to a networking medium and, for IEEE 802 and similar networks, provides a low-level addressing system through the use of MAC addresses that are uniquely assigned to network interfaces.

Although other network technologies exist, IEEE 802 networks including the Ethernet variants have achieved near-ubiquity since the mid-1990s.


An ATM network interface.

Whereas network controllers used to operate on expansion cards that plugged into a computer bus, the low cost and ubiquity of the Ethernet standard means that most new computers have a network interface built into the motherboard. Newer server motherboards may even have dual network interfaces built-in. The Ethernet capabilities are either integrated into the motherboard chipset or implemented via a low-cost dedicated Ethernet chip, connected through the PCI (or the newer PCI Express) bus. A separate network card is not required unless additional interfaces are needed or some other type of network is used.

The NIC may use one or more of the following techniques to indicate the availability of packets to transfer:

  • Polling is where the CPU examines the status of the peripheral under program control.
  • Interrupt-driven I/O is where the peripheral alerts the CPU that it is ready to transfer data.

Also, NICs may use one or more of the following techniques to transfer packet data:

  • Programmed input/output is where the CPU moves the data to or from the designated peripheral to memory.
  • Direct memory access is where an intelligent peripheral assumes control of the system bus to access memory directly. This removes load from the CPU but requires more logic on the card. In addition, a packet buffer on the NIC may not be required and latency can be reduced.

An Ethernet network controller typically has an 8P8C socket where the network cable is connected. Older NICs also supplied BNC, or AUI connections. A few LEDs inform the user of whether the network is active, and whether or not data transmission occurs. Ethernet network controllers typically support 10 Mbit/s Ethernet, 100 Mbit/s Ethernet, and 1000 Mbit/s Ethernet varieties. Such controllers are designated as "10/100/1000", meaning that they can support a notional maximum transfer rate of 10, 100 or 1000 Mbit/s. 10 Gigabit Ethernet NICs are also available, and, as of November 2014, are beginning to be available on computer motherboards.[3][4]

Performance and advanced functionality

An Intel 82574L Gigabit Ethernet NIC, PCI Express x1 card; it provides two hardware receive queues[5]

Multiqueue NICs provide multiple transmit and receive queues, allowing packets received by the NIC to be assigned to one of its receive queues. Each receive queue is assigned to a separate interrupt; by routing each of those interrupts to different CPUs/cores, processing of the interrupt requests triggered by the network traffic received by a single NIC can be distributed among multiple cores, bringing additional performance improvements in interrupt handling. Usually, a NIC distributes incoming traffic between the receive queues using a hash function, while separate interrupts can be routed to different CPUs/cores either automatically by the operating system, or manually by configuring the IRQ affinity.[6][7]

The hardware-based distribution of the interrupts, described above, is referred to as receive-side scaling (RSS).[8]:82 Purely software implementations also exist, such as the receive packet steering (RPS) and receive flow steering (RFS).[6] Further performance improvements can be achieved by routing the interrupt requests to the CPUs/cores executing the applications which are actually the ultimate destinations for network packets that generated the interrupts. That way, taking the application locality into account results in higher overall performance, reduced latency and better hardware utilization, resulting from the higher utilization of CPU caches and fewer required context switches. Examples of such implementations are the RFS[6] and Intel Flow Director.[8]:98,99[9][10][11]

With multiqueue NICs, additional performance improvements can be achieved by distributing outgoing traffic among different transmit queues. By assigning different transmit queues to different CPUs/cores, various operating system's internal contentions can be avoided; this approach is usually referred to as transmit packet steering (XPS).[6]

Some products feature NIC partitioning (NPAR, also known as port partitioning) that uses SR-IOV to divide a single 10 Gigabit Ethernet NIC into multiple discrete virtual NICs with dedicated bandwidth, which are presented to the firmware and operating system as separate PCI device functions.[12][13] TCP offload engine is a technology used in some NICs to offload processing of the entire TCP/IP stack to the network controller. It is primarily used with high-speed network interfaces, such as Gigabit Ethernet and 10 Gigabit Ethernet, for which the processing overhead of the network stack becomes significant.[14]

Some NICs offer integrated field-programmable gate arrays (FPGAs) for user-programmable processing of network traffic before it reaches the host computer, allowing for significantly reduced latencies in time-sensitive workloads. Moreover, some NICs offer complete low-latency TCP/IP stacks running on integrated FPGAs in combination with userspace libraries that intercept networking operations usually performed by the operating system kernel; Solarflare's open-source OpenOnload network stack that runs on Linux is an example. This kind of functionality is usually referred to as user-level networking.[15][16][17]

See also


  1. ^ "Physical Network Interface".  
  2. ^ Posey, Brien M. (2006). "Networking Basics: Part 1 - Networking Hardware". TechGenix Ltd. Retrieved 2012-06-09. 
  3. ^ Jim O'Reilly (2014-01-22). "Will 2014 Be The Year Of 10 Gigabit Ethernet?". Network Computing. Retrieved 2015-04-29. 
  4. ^ "Breaking Speed Limits with ASRock X99 WS-E/10G and Intel 10G BASE-T LANs". 24 November 2014. Retrieved 19 May 2015. 
  5. ^ "Intel 82574 Gigabit Ethernet Controller Family Datasheet" (PDF).  
  6. ^ a b c d Tom Herbert; Willem de Bruijn (May 9, 2014). "Linux kernel documentation: Documentation/networking/scaling.txt".  
  7. ^ "Intel Ethernet Controller i210 Family Product Brief" (PDF).  
  8. ^ a b "Intel Look Inside: Intel Ethernet" (PDF).  
  9. ^ "Linux kernel documentation: Documentation/networking/ixgbe.txt".  
  10. ^ "Intel Ethernet Flow Director".  
  11. ^ "Introduction to Intel Ethernet Flow Director and Memcached Performance" (PDF).  
  12. ^ "Enhancing Scalability Through Network Interface Card Partitioning" (PDF).  
  13. ^ Patrick Kutch; Brian Johnson; Greg Rose (September 2011). "An Introduction to Intel Flexible Port Partitioning Using SR-IOV Technology" (PDF).  
  14. ^ Jonathan Corbet (August 1, 2007). "Large receive offload".  
  15. ^ Timothy Prickett Morgan (2012-02-08). "Solarflare turns network adapters into servers: When a CPU just isn't fast enough".  
  16. ^ "OpenOnload". 2013-12-03. Retrieved 2014-05-08. 
  17. ^ Steve Pope; David Riddoch (2008-03-21). "OpenOnload: A user-level network stack" (PDF). Retrieved 2014-05-08. 

External links

  • Physical Network Interface, Microsoft
  • Predictable Network Interface Names,
  • Multi-queue network interfaces with SMP on Linux
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.

Copyright © World Library Foundation. All rights reserved. eBooks from Project Gutenberg are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.