Was ist der Netzwerkschnittstellen-Controller?

Was ist der Netzwerkschnittstellen-Controller?

Ein Netzwerkschnittstellen-Controller (NIC, auch als Netzwerkkarte, Netzwerkadapter, LAN-Adapter oder physikalische Netzwerkschnittstelle bezeichnet und mit ähnlichen Begriffen) ist eine Computerhardwarekomponente, die einen Computer mit einem Computernetzwerk verbindet.

Frühe Netzwerkschnittstellen-Controller wurden üblicherweise auf Erweiterungskarten implementiert, die in einen Computerbus eingesteckt wurden. Aufgrund der geringen Kosten und der Allgegenwart des Ethernet-Standards verfügen die meisten neueren Computer über eine in das Motherboard integrierte Netzwerkschnittstelle.

Moderne Netzwerkschnittstellen-Controller bieten erweiterte Funktionen wie Interrupt- und DMA-Schnittstellen für die Host-Prozessoren, Unterstützung für mehrere Empfangs- und Sendewarteschlangen, Partitionierung in mehrere logische Schnittstellen und Verarbeitung des Netzwerkverkehrs auf dem Controller wie die TCP-Offload-Engine.

Zweck

Der Netzwerkcontroller implementiert die für die Kommunikation erforderlichen elektronischen Schaltungen unter Verwendung eines bestimmten Standards für die physikalische Schicht und die Datenverbindungsschicht, wie z. B. Ethernet oder Wi-Fi. Dies bietet eine Basis für einen vollständigen Netzwerkprotokollstapel, der die Kommunikation zwischen Computern im selben lokalen Netzwerk (LAN) und die Netzwerkkommunikation in großem Maßstab über routingfähige Protokolle wie das Internet Protocol (IP) ermöglicht.

Die Netzwerkkarte ermöglicht Computern die Kommunikation über ein Computernetzwerk, entweder über Kabel oder drahtlos. Die Netzwerkkarte ist sowohl eine physische Schicht als auch eine Datenverbindungsschicht, da sie den physischen Zugriff auf ein Netzwerkmedium ermöglicht und für IEEE 802- und ähnliche Netzwerke ein Adressierungssystem auf niedriger Ebene durch die Verwendung von MAC-Adressen bereitstellt, die dem Netzwerk eindeutig zugewiesen sind Schnittstellen.

Leistung und erweiterte Funktionalität

Multiqueue-NICs bieten mehrere Sende- und Empfangswarteschlangen, sodass vom NIC empfangene Pakete einer seiner Empfangswarteschlangen zugewiesen werden können. Die Netzwerkkarte kann den eingehenden Verkehr unter Verwendung einer Hash-Funktion auf die Empfangswarteschlangen verteilen. Jede Empfangswarteschlange ist einem separaten Interrupt zugeordnet. Durch Weiterleiten dieser Interrupts an verschiedene CPUs oder CPU-Kerne kann die Verarbeitung der Interruptanforderungen, die durch den von einer einzelnen Netzwerkkarte empfangenen Netzwerkverkehr ausgelöst werden, verteilt werden, wodurch die Leistung verbessert wird.

Network-interface-controller-2

Die oben beschriebene hardwarebasierte Verteilung der Interrupts wird als empfangsseitige Skalierung (RSS) bezeichnet. Es gibt auch reine Software-Implementierungen, wie beispielsweise die Empfangspaketsteuerung (RPS) und die Empfangsflusssteuerung (RFS). Weitere Leistungsverbesserungen können erzielt werden, indem die Interruptanforderungen an die CPUs oder Kerne weitergeleitet werden, auf denen die Anwendungen ausgeführt werden, die die endgültigen Ziele für Netzwerkpakete sind, die die Interrupts generiert haben. Diese Technik verbessert die Referenzlokalität und führt aufgrund der höheren Auslastung der CPU-Caches und weniger erforderlicher Kontextwechsel zu einer höheren Gesamtleistung, einer verringerten Latenz und einer besseren Hardwarenutzung. Beispiele für solche Implementierungen sind RFS und Intel Flow Director.

Die mit einem * markierten Felder sind Pflichtfelder.