dpdk für Netzgeschwindigkeit

Promwad maximiert die Netzgeschwindigkeit mit DPDK

Denis Petronenko

 

Von Denis Petronenko

Leiter des Referats Telekommunikation bei Promwad

 

Wir haben die DPDK-Technologie übernommen und erfolgreich in Projekten unserer Kunden eingesetzt, bei denen die Geschwindigkeit der Datenübertragung entscheidend war. Dieses Data Plane Development Kit reduziert die Latenz und beschleunigt die Verarbeitung des Netzwerkverkehrs – bis zu 10 Mal schneller als der Linux-Kernel-Netzwerkstack. Werfen wir einen Blick auf unsere Fallstudien und die Grundlagen von DPDK.

Inhaltsverzeichnis

Was ist DPDK in Netzwerken?

DPDK-Anwendung im Netzwerk

Fallstudie #1: TCP PEP- und QoS-Softwaremodule für das HTS-Satellitenkommunikationssystem

Fallstudie #2: Systemsoftware für Hochgeschwindigkeits-Netzwerk-Datenspeicherung

 

DPDK wickelt den Netzwerkverkehr mit geringem Overhead ab und minimiert die Latenzzeit, was für Handelsplattformen, Finanzplattformen, Online-Spiele und große Rechenzentren besonders wichtig ist. Diese Technologie spielt auch eine Schlüsselrolle bei der Gewährleistung der Cybersicherheit, da sie Zugriff auf Netzwerkpakete bietet und mit eigens entwickelter Logik DDoS-Angriffe verhindert.

Darüber hinaus nutzen unsere Ingenieure das Storage Performance Development Kit (SPDK), eine Reihe von Tools und Bibliotheken zum Schreiben von 8-KB-Blöcken bei maximaler Mediengeschwindigkeit mit Non-Volatile Memory Express (NVMe). Dieser besonders schnelle Weg zum Speichern von Daten steigert die Geschwindigkeit von Speichersystemen erheblich.

Was ist DPDK in Netzwerken?

Das Data Plane Development Kit (DPDK) ist ein Open-Source-Set von Bibliotheken und optimierten Treibern, die unter Linux laufen. Es wurde ursprünglich für Intel-Plattformen entwickelt, aber mittlerweile umfasst die Liste der DPDK-unterstützten Hardware Lösungen der meisten Technologieanbietern.
 
Die DPDK-API ist umfangreich und enthält viele Hilfsfunktionen, die schnelle und einfache Vorgänge ermöglichen.
 
Geschwindigkeit und Einfachheit werden durch die DPDK-Treiber gewährleistet, die direkt mit dem Netzwerkcontroller (NIC) arbeiten und die Netzwerkadaptertreiber des Linux-Kernels umgehen (Zero-Copy).
 
wie dpdk funktioniert

Data processing with DPDK

DPDK-Anwendung im Netzwerk

Die Nutzung des universellen Kernel-Stacks für einfache und schnelle Aktionen ist oft nicht sinnvoll. Oft werden zusätzliche (und nicht immer notwendige) Vorgänge parallel gestartet, was die Gesamtleistung des Kernels und die Ausführungsgeschwindigkeit beeinträchtigt.

DPDK hat die Zero-Copy-Eigenschaft, die es ermöglicht, Daten zwischen verschiedenen Bereichen zu bewegen, ohne zusätzliche Kopien zu erstellen.

Darüber hinaus bietet DPDK ein Framework und Tools, um Vektor-Paketverarbeitung auf unterstützten Hardware-Plattformen zu nutzen.
 
Vektor-Paketverarbeitung (VPP) ist eine Technologie, die es ermöglicht, mehrere Pakete oder Datenobjekte parallel mit einem einzigen Befehl zu verarbeiten, wodurch eine hohe Paketverarbeitungsleistung erreicht wird.

Hier sind einige einfache Traffic-Processing-Operationen, die mit DPDK implementiert werden können:

  • Verkehrskontrolle mit Geschwindigkeitsbegrenzungen zur gleichmäßigen Verteilung der Bandbreite unter mehreren Nutzern;
  • Filtern nach festgelegten Kriterien, z. B. MAC- und IP-Adressen, VLAN-Tags;
  • Verkehrserfassung für Überwachung, Analyse und Fehlerbehebung;
  • Inspektion und Musterabgleich zur Überprüfung und Sicherheit;
  • Verschlüsselung, Entschlüsselung und Hashing zum Schutz;
  • Lastverteilung mit Verteilung des Datenverkehrs über mehrere Schnittstellen oder Pfade.

Beispiele für DPDK-Einsatz

Wir teilen gerne unsere Erfahrungen mit DPDK. In beiden Fällen mussten wir eine ultraschnelle Paketverarbeitung implementieren:

  1. Software für Satellitenkommunikation: Mit Intel DPDK haben wir den TCP-Verkehr getrennt und Geschwindigkeitsbeschränkungen hinzugefügt, um den gleichberechtigten Zugang der Nutzer zu qualitativ hochwertiger Kommunikation zu gewährleisten.
  2. Videostreaming-Software: Wir verwendeten DPDK, um 8K-Videostreams von 8 Kameras gleichzeitig zu empfangen und zu speichern.

Fallstudie #1: TCP PEP- und QoS-Softwaremodule für das HTS-Satellitenkommunikationssystem

TCP PEP

Wir entwickelten TCP PEP- und QoS-Softwaremodule für das HTS-Satellitenkommunikationssystem für einen globalen Anbieter von Satellitentelekommunikationsausrüstung und setzten auf Wunsch des Kunden DPDK ein.

Geostationäre Satelliten zeichnen sich durch eine hohe Signallatenz aus, die die Leistung von TCP, dem am weitesten verbreiteten Internetprotokoll, erheblich beeinträchtigt. Unsere Ingenieure nutzten einen speziellen TCP Performance Enhancing Proxy (PEP), um die negativen Auswirkungen der Signallatenz zu minimieren. Wir trennten den TCP-Verkehr vom allgemeinen Transitverkehr mit Intel DPDK und leiteten ihn an den TCP PEP des Kunden weiter.

Dadurch gelang es uns, den TCP-Betrieb über Satellitenkommunikation ohne zusätzliche Konfigurationen auf der Seite des Endkunden zu steuern.

Zudem haben wir mit DPDK Geschwindigkeitsbeschränkungen implementiert. Der Kunde hatte viele Endnutzer, und einige von ihnen nutzten den Verkehr intensiver als andere, was zu einer ungleichen Verteilung und einer Verschlechterung der Kommunikationsqualität führte. Daher wurde diesen Kunden eine bestimmte Geschwindigkeit zugewiesen, um sicherzustellen, dass alle Benutzer Zugang zu qualitativ hochwertiger Kommunikation haben.

Klicken Sie auf die Schaltfläche unten, um weitere technische Informationen zu lesen:

 

Fallstudie #2: Systemsoftware für hochgeschwindigkeitsfähige Netzwerkspeicher

Unser Team arbeitet an einer Systemsoftware für hochgeschwindigkeitsfähige Datenspeicher im Netzwerk. Dieses System empfängt und speichert gleichzeitig 8K-Videostreams von 8 Kameras. Eine der Hauptfunktionen des Systems besteht darin, Videostreams von zwei Quellen mit Zeitsynchronisation und in 8K-Qualität zu decodieren und abzuspielen.

DPDK ist ein Werkzeug, das wir verwenden, um einige der Prozesse in diesem System zu organisieren:

  • Wir erhalten Zugriff auf die in Pakete zerlegten Frames, setzen sie im physischen Speicher wieder zusammen und senden sie zur Dekodierung an die Grafikkarte, während wir den Frame auf die Festplatte speichern;
  • Dank Zero-Copy empfangen wir Pakete, ohne den Kernel zu durchlaufen, was eine zwei- bis dreifache Leistungssteigerung im Vergleich zu Standardtechnologien wie Linux-Sockets ermöglicht.

In Zukunft könnte auch SPDK in dieses Projekt integriert werden.

***

Das Data Plane Development Kit ermöglicht eine schnelle Bereitstellung von Netzwerkprozessen, wodurch Überlastungen und eine ineffiziente Nutzung des Kernnetz-Stacks vermieden werden.

Aufgrund seiner Fähigkeit, die Latenz zu minimieren und Engpässe zu umgehen, wird DPDK in den größten und komplexesten Projekten eingesetzt, die die Übertragung großer Datenmengen betreffen. Es gibt ähnliche Tools mit solchen Funktionen (Netmap und PF_RING), aber DPDK zeichnet sich durch breite Unterstützung, eine aktive Community und plattformübergreifende Kompatibilität aus.

Erzählen Sie uns von Ihren technischen Aufgaben, und wir helfen Ihnen, diese mit DPDK auf die effizienteste Weise umzusetzen.