Network interface controller: Difference between revisions

Content deleted Content added
m Reverted edits by 81.145.200.82 (talk) to last version by 97.102.205.224
FrancioT (talk | contribs)
added reference to receive side scaling wiki page
 
(30 intermediate revisions by 19 users not shown)
Line 5:
| name = Network interface controller
| image = Network card.jpg
| caption = A 1990s [[Ethernet]] network interface controller card 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.
| invent-date =
| invent-name =
Line 22:
| via2_3 = [[Fibre Channel]]
| via2_4 = [[Asynchronous Transfer Mode|ATM]]
| via2_5 = [[Fiber Distributed Data Interface|FDDI]]
| 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''' orand '''physical network interface''',<ref>{{cite web|url=https://technet.microsoft.com/en-us/library/dd392944(v=ws.10).aspx|title=Physical Network Interface|publisher=[[Microsoft]]|date=January 7, 2009}}</ref> and by similar terms) is a [[computer hardware]] component that connects a [[computer]] to a [[computer network]].<ref name=networking_01>{{cite web
|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&nbsp;[[Megabit per second|Mbit/s]] Ethernet, [[Fast Ethernet|100&nbsp;Mbit/s Ethernet]], and [[Gigabit Ethernet|{{nowrap|1000&nbsp; Mbit/s}} Ethernet]] varieties. Such controllers are designated as ''[[10/100/1000]]'', meaning that they can support data rates of 10, 100 or {{nowrap|1000&nbsp; Mbit/s}}. [[10 Gigabit Ethernet]] NICs are also available, and, {{As of|2014|11|lc=yes}}, are beginning to be available on [[computer motherboard]]s.<ref>{{cite web |url=http://www.networkcomputing.com/networking/will-2014-be-the--year-of-10-gigabit-ethernet/a/d-id/1234640? |title=Will 2014 Be The Year Of 10 Gigabit Ethernet? |author=Jim O'Reilly |publisher=Network Computing |date=2014-01-22 |access-date=2015-04-29}}</ref><ref>{{cite web |url=http://www.asrock.com/news/index.asp?id=2517 |title=Breaking Speed Limits with ASRock X99 WS-E/10G and Intel 10G BASE-T LANs |website=asrock.com |date=24 November 2014 |access-date=19 May 2015}}</ref>
 
[[File:Qle3442-cu 10gbe nic.jpg|thumb|A [[Qlogic]] QLE3442-CU SFP+ dual-port NIC]]
Modular designs like [[Small formForm-factor pluggable transceiverPluggable|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.
 
[[Light-emitting diode|LEDsLED]]s adjacent to or integrated into the network connector inform the user of whether the network is connected, and when data activity occurs.
 
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 '''[[receive-side scaling''']] (RSS).<ref name="intel-grantley">{{cite web
| 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