Content deleted Content added
→Performance and advanced functionality: MOS:BOLD terms which redirect here. Merge two lists of software receive steering implementations. TBD: Is Intel Flow Director truly a software-only implementation? |
added reference to receive side scaling wiki page |
||
(33 intermediate revisions by 20 users not shown) | |||
Line 5:
| name = Network interface controller
| image = Network card.jpg
| caption = A 1990s [[Ethernet]] network interface
| invent-date =
| invent-name =
Line 22:
| via2_3 = [[Fibre Channel]]
| via2_4 = [[Asynchronous Transfer Mode|ATM]]
| via2_5 = [[
| via2_6 = [[Token Ring]]
| via2_7 = [[ARCNET]]
Line 29:
| class2 = {{bulleted list|10 Mbit/s|100 Mbit/s|1 Gbit/s}}
| class3 = [[Full-duplex]]:<ref>{{Cite web|title=Port speed and duplex mode configuration|url=http://docs.ruckuswireless.com/fastiron/08.0.70/fastiron-08070-managementguide/GUID-EDD7D44C-A627-4B76-A9FE-D7657FFF62D3.html|access-date=2020-09-25|website=docs.ruckuswireless.com|language=en-US}}</ref><ref>{{Cite web|last=Admin|first=Arista|date=2020-04-23|title=Section 11.2: Ethernet Standards - Arista|url=https://www.arista.com/en/um-eos/eos-section-11-2-ethernet-standards|access-date=2020-09-28|website=Arista Networks|language=en-gb}}</ref>
| class4 = {{bulleted list|2.5 Gbit/s|5 Gbit/s|10 Gbit/s|up to {{nowrap|160 Gbit/s}}}}
| manuf1 = [[Intel]]
| manuf2 = [[Realtek]]
Line 39:
}}
A '''network interface controller''' ('''NIC''',<!--"Controller" is correct; once upon a time, they might all have been add-in cards, and called "network interface cards", but most of them are probably on the motherboard or in the SoC these days.--> also known as a '''network interface card''',<ref name="Dell"/> '''network adapter''', '''LAN adapter'''
|url = http://www.windowsnetworking.com/articles_tutorials/networking-basics-part1.html
|title = Networking Basics: Part 1 - Networking Hardware
Line 49:
}}</ref>
Early network interface controllers were commonly implemented on [[expansion card]]s 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]], or is contained into a [[USB]]-connected [[dongle]], although network cards remain available.
Modern network interface controllers offer advanced features such as [[interrupt]] and [[Direct memory access|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]].
Line 60:
== Implementation ==
[[File:12 early PC network cards.jpg|thumb|12 early ISA 8 bit and 16 bit PC network cards. The lower right-most card is an early wireless network card, and the central card with partial beige plastic cover is a PSTN [[modem]].]]
[[File:Intel Ophir 82571 Dual Port Gigabit Ethernet Controller Die Shot.png|thumb|Intel Ophir 82571 dual-port Gigabit Ethernet controller [[Die (integrated circuit)|die]]]]
Network controllers were originally implemented as 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 controller built into the motherboard. Newer [[Server (computing)|server]] motherboards may have multiple network interfaces built-in. The Ethernet capabilities are either [[Integrated circuit|integrated]] into the motherboard [[chipset]] or implemented via a low-cost dedicated Ethernet chip. A separate network card is typically no longer required unless additional independent network connections are needed or some non-Ethernet type of network is used. A general trend in computer hardware is towards [[System on a chip|integrating the various components of systems on a chip]], and this is also applied to network interface cards.
An Ethernet network controller typically has an [[8P8C]] socket where the network cable is connected. Older NICs also supplied [[BNC connector|BNC]], or [[Attachment Unit Interface|AUI]] connections. Ethernet network controllers typically support 10 [[
[[File:Qle3442-cu 10gbe nic.jpg|thumb|A [[Qlogic]] QLE3442-CU SFP+ dual-port NIC]]
Modular designs like [[Small
[[
The NIC may include [[ROM]] to store its factory-assigned [[MAC address]].<ref>{{cite web |url=https://www.itprotoday.com/cloud-computing/how-can-i-change-network-adapter-cards-mac-address |title=How can I change a network adapter card's MAC address? |author=John Savill |date=Nov 12, 2000 |access-date=2023-11-06}}</ref>
Line 100 ⟶ 101:
| publisher = [[Intel]] }}</ref>
The hardware-based distribution of the interrupts, described above, is referred to as
| url = http://www.intel.com/content/dam/technology-provider/secure/us/en/documents/product-marketing-information/tst-grantley-launch-presentation-2014.pdf
| title = Intel Look Inside: Intel Ethernet
Line 135 ⟶ 136:
| date = September 2011 | access-date = September 24, 2015
| author1 = Patrick Kutch | author2 = Brian Johnson | author3 = Greg Rose
| publisher = [[Intel]] }}</ref>
Some NICs provide a [[TCP offload engine]] 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.<ref>{{cite web
|