Netzwerkschnittstellen-Controller

Eine ATM-Netzwerkschnittstelle.

Intel 82574L Gigabit-Ethernet-Netzwerkkarte, eine PCI Express × 1-Karte, die zwei Hardware-Empfangswarteschlangen

bereitstellt

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

Die hardwarebasierte Verteilung der Interrupts, Das oben beschriebene wird als empfangsseitige Skalierung (RSS) bezeichnet: 82 Es gibt auch reine Software-Implementierungen, wie beispielsweise die Empfangspaketsteuerung (RPS) und die Empfangsflusssteuerung (RFS). Weitere Leistungsverbesserungen können erzielt werden, indem die Interrupt-Anforderungen 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 zu einer höheren Gesamtleistung, einer verringerten Latenz und einer besseren Hardwareauslastung aufgrund der höheren Auslastung der CPU-Caches und weniger erforderlichen Kontextwechseln. Beispiele für solche Implementierungen sind RFS und Intel Flow Director.:98,99

Mit NICs mit mehreren Warteschlangen können zusätzliche Leistungsverbesserungen erzielt werden, indem ausgehender Datenverkehr auf verschiedene Übertragungswarteschlangen verteilt wird. Durch Zuweisen unterschiedlicher Übertragungswarteschlangen zu unterschiedlichen CPUs oder CPU-Kernen können interne Betriebssystemkonflikte vermieden werden. Dieser Ansatz wird normalerweise als XPS (Transmit Packet Steering) bezeichnet.

Einige Produkte verfügen über eine NIC-Partitionierung (NPAR, auch als Port-Partitionierung bezeichnet), die mithilfe der SR-IOV-Virtualisierung eine einzelne 10-Gigabit-Ethernet-NIC unterteilt Mehrere diskrete virtuelle Netzwerkkarten mit dedizierter Bandbreite, die der Firmware und dem Betriebssystem als separate PCI-Gerätefunktionen präsentiert werden.

Die TCP-Offload-Engine ist eine Technologie, die in einigen Netzwerkkarten zum Offloading der Verarbeitung des gesamten TCP / IP-Stacks verwendet wird an den Netzwerkcontroller. Es wird hauptsächlich mit Hochgeschwindigkeitsnetzwerkschnittstellen wie Gigabit-Ethernet und 10-Gigabit-Ethernet verwendet, für die der Verarbeitungsaufwand des Netzwerkstapels erheblich wird.

Einige Netzwerkkarten bieten integrierte feldprogrammierbare Gate-Arrays (FPGAs) ) für die vom Benutzer programmierbare Verarbeitung des Netzwerkverkehrs, bevor dieser den Host-Computer erreicht, wodurch die Latenzen bei zeitkritischen Workloads erheblich reduziert werden. Darüber hinaus bieten einige Netzwerkkarten vollständige TCP / IP-Stacks mit geringer Latenz, die auf integrierten FPGAs ausgeführt werden, in Kombination mit Userspace-Bibliotheken, die Netzwerkvorgänge abfangen, die normalerweise vom Betriebssystemkern ausgeführt werden. Ein Beispiel ist der Open-Source-OpenOnload-Netzwerkstapel von Solarflare, der unter Linux ausgeführt wird. Diese Art von Funktionalität wird normalerweise als Netzwerk auf Benutzerebene bezeichnet.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.