Sei sulla pagina 1di 5

Network interface controller

A network interface controller (NIC, also known as a network interface


Network interface controller
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 themotherboard.

Modern network interface controllers offer advanced features such as A 1990s Ethernet network interface
interrupt and DMA interfaces to the host processors, support for multiple controller that connects to the motherboard
receive and transmit queues, partitioning into multiple logical interfaces, and via the now-obsolete ISA bus. This
on-controller network traffic processing such as the TCP offload engine. 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
Contents networks.
1 Purpose Connects to Motherboard via one of:
2 Implementation
3 Performance and advanced functionality Integrated

4 See also PCI Connector


5 References ISA Connector
6 External links PCI-E
FireWire
USB
Purpose Thunderbolt

Network via one of:

Ethernet
Wi-Fi
Fibre Channel
ATM
FDDI
A Madge 4/16 Mbit/s Token Ring ISA-16 NIC
Token ring

The network controller implements the electronic circuitry required to


Speeds 10 Mbit/s
communicate using a specific physical layer and data link layer standard
100 Mbit/s
such as Ethernet, Fibre Channel, or Wi-Fi (in the past: Token Ring, FDDI,
1 Gbit/s
ATM, ARCNET). This provides a base for a full network protocol stack,
10 Gbit/s
allowing communication among small groups of computers on the same
up to 160 Gbit/s
local area network (LAN) and large-scale network communications through Common Intel
routable protocols, such asInternet Protocol (IP). manufacturers Realtek
The NIC allows computers to communicate over a computer network, either Broadcom (includes
by using cables or wirelessly. The NIC is both a physical layer and data link former Avago, Emulex)
layer device, as it provides physical access to a networking medium and, for Marvell Technology
IEEE 802 and similar networks, provides a low-level addressing system Group
through the use of MAC addresses that are uniquely assigned to network Cavium (formerly QLogic)
interfaces. Mellanox
Chelsio
Although other network technologies exist, Ethernet (IEEE 802.3) and Wi-Fi
(IEEE 802.11) have achieved near-ubiquity as LAN technologies since the mid-1990s.

Implementation
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 12 early ISA 8 bit and 16 bit PC
of packets to transfer: network cards. The lower right-most
card is an early wireless network
Polling is where the CPU examines the status of theperipheral under card, and the central card with partial
program control. beige plastic cover is a PSTN
Interrupt-driven I/O is where the peripheral alerts the CPU that it is ready modem.
to transfer data.
Also, NICs may use one or more of the following techniques to transfer packet data:

Programmed input/outputis where the CPU moves the data to or from the NIC to memory .
Direct memory access (DMA) is where some other device other than the CPU assumes control of the system bus to
move data to or from the NIC to memory . This removes load from the CPU but requires more logic on the card. In
addition, a packet buffer on the NIC may notbe 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]

In addition to embedding the physical port into the NIC, modular designs like SFP
and SFP+ are highly popular, especially for fiber-optic communication. These define
a standard receptacle for media-dependent transceivers, so users can easily adapt the
network interface to their needs.

Performance and advanced functionality


Multiqueue NICs provide multiple transmit and receive queues, allowing packets A Qlogic QLE3442-CU SFP+ dual
received by the NIC to be assigned to one of its receive queues. Each receive queue port NIC
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 theIRQ 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 An ATM network interface.
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 Intel 82574L Gigabit Ethernet NIC, a
contentions can be avoided; this approach is usually referred to as transmit packet PCI Express 1 card, which provides
steering (XPS).[6] two hardware receive queues[5]

Some NICs[12] support transmit and receive queues without kernel support allowing
the NIC to execute even when the functionality of the operating system of a critical system has been severely compromised. Those
NICs support:

1. Accessing local and remote memory without involving the remote CPU.
2. Accessing local and remote I/O devices without involving local/remote CPU. This capability is supported by device-
to-device communication over the I/O bus, present in switched-based I/O interconnects.
3. Controlling access to local resources such as control registers and memory
.
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.[13][14] 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
[15]
Gigabit Ethernet, for which the processing overhead of the network stack becomes significant.

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.[16] 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 asuser-level networking.[17][18][19]

See also
Consistent Network Device Naming
Converged network adapter(CNA)
Host adapter
ifconfig
Intel Data Direct I/O (DDIO)
Network interface
Network monitoring interface card(NMIC)
New API
Virtual network interface(VIF)
Wireless network interface controller(WNIC)

References
1. "Physical Network Interface"(https://technet.microsoft.com/en-us/library/dd392944(v=ws.10).aspx)
. Microsoft.
January 7, 2009.
2. Posey, Brien M. (2006). "Networking Basics: Part 1 - Networking Hardware"(http://www.windowsnetworking.com/arti
cles_tutorials/networking-basics-part1.html). Windowsnetworking.com. TechGenix Ltd. Retrieved 2012-06-09.
3. Jim O'Reilly (2014-01-22)."Will 2014 Be The Year Of 10 Gigabit Ethernet?" (http://www.networkcomputing.com/netw
orking/will-2014-be-the--year-of-10-gigabit-ethernet/a/d-id/1234640?)
. Network Computing. Retrieved 2015-04-29.
4. "Breaking Speed Limits with ASRock X99 WS-E/10G and Intel 10G BASE-T LANs"
(http://www.asrock.com/news/ind
ex.asp?id=2517). asrock.com. 24 November 2014. Retrieved 19 May 2015.
5. "Intel 82574 Gigabit Ethernet Controller Family Datasheet"(http://www.intel.com/content/dam/doc/datasheet/82574l-
gbe-controller-datasheet.pdf)(PDF). Intel. June 2014. p. 1. Retrieved November 16, 2014.
6. Tom Herbert; Willem de Bruijn (May 9, 2014). "Linux kernel documentation: Documentation/networking/scaling.txt"(h
ttps://www.kernel.org/doc/Documentation/networking/scaling.txt). kernel.org. Retrieved November 16, 2014.
7. "Intel Ethernet Controller i210 Family Product Brief"(http://www.mouser.com/pdfdocs/i210brief.pdf)(PDF). Intel.
2012. Retrieved November 16, 2014.
8. "Intel Look Inside: Intel Ethernet"(http://www.intel.com/content/dam/technology-provider/secure/us/en/documents/pr
oduct-marketing-information/tst-grantley-launch-presentation-2014.pdf) (PDF). Intel. November 27, 2014. Retrieved
March 26, 2015.
9. "Linux kernel documentation: Documentation/networking/ixgbe.txt"(https://www.kernel.org/doc/Documentation/netwo
rking/ixgbe.txt). kernel.org. December 15, 2014. Retrieved March 26, 2015.
10. "Intel Ethernet Flow Director"(http://www.intel.com/content/www/us/en/ethernet-controllers/ethernet-flow-director-vid
eo.html). Intel. February 16, 2015. Retrieved March 26, 2015.
11. "Introduction to Intel Ethernet Flow Director and Memcached Performance" (http://www.intel.com/content/dam/www/
public/us/en/documents/white-papers/intel-ethernet-flow-director
.pdf) (PDF). Intel. October 14, 2014. Retrieved
October 11, 2015.
12. "Defending Network-Centric Systems using Backdoors"(http://www.cs.rutgers.edu/~iftode/citadel.pdf) (PDF).
13. "Enhancing Scalability Through Network Interface Card Partitioning"(http://www.dell.com/downloads/global/product
s/pedge/en/Dell-Broadcom-NPAR-White-Paper.pdf) (PDF). Dell. April 2011. Retrieved May 12, 2014.
14. Patrick Kutch; Brian Johnson; Greg Rose (September 2011)."An Introduction to Intel Flexible Port Partitioning Using
SR-IOV Technology" (http://www.intel.com/content/dam/www/public/us/en/documents/solution-briefs/10-gbe-ethernet
-flexible-port-partitioning-brief.pdf)(PDF). Intel. Retrieved September 24, 2015.
15. Jonathan Corbet (August 1, 2007)."Large receive offload" (https://lwn.net/Articles/243949/). LWN.net. Retrieved
May 2, 2015.
16. "High Performance Solutions for Cyber Security"(http://newwavedv.com/markets/defense/cyber-security/). New
Wave Design & Verification. New Wave DV.
17. Timothy Prickett Morgan (2012-02-08)."Solarflare turns network adapters into servers: When a CPU just isn't fast
enough" (https://www.theregister.co.uk/2012/02/08/solarflare_application_onload_engine/)
. The Register. Retrieved
2014-05-08.
18. "OpenOnload" (http://www.openonload.org/). openonload.org. 2013-12-03. Retrieved 2014-05-08.
19. Steve Pope; David Riddoch (2008-03-21)."OpenOnload: A user-level network stack"(http://www.openonload.org/op
enonload-google-talk.pdf)(PDF). openonload.org. Retrieved 2014-05-08.

External links
Physical Network Interface, Microsoft
Predictable Network Interface Names, Freedesktop.org
Multi-queue network interfaces with SMP on Linux
Retrieved from "https://en.wikipedia.org/w/index.php?title=Network_interface_controller&oldid=805204984
"

This page was last edited on 13 October 2017, at 19:41.

Text is available under theCreative Commons Attribution-ShareAlike License ; additional terms may apply. By using this
site, you agree to the Terms of Use and Privacy Policy. Wikipedia is a registered trademark of theWikimedia
Foundation, Inc., a non-profit organization.

Potrebbero piacerti anche