Freigeben über


Einführung in die NDIS PacketDirect-Anbieterschnittstelle

Die PacketDirect Provider Interface (PDPI) erweitert NDIS um ein beschleunigtes E/A-Modell für physische und virtuelle Umgebungen, das die Anzahl der pro Sekunde verarbeiteten Pakete um eine Größenordnung erhöhen und den Jitter im Vergleich zum herkömmlichen NDIS-E/A-Pfad erheblich verringern kann.

Hintergrund

Das herkömmliche E/A-Modell in Windows wurde implementiert, um eine universelle E/A-Plattform zu sein, die für die Arbeit mit mehreren Medientypen mit vielen verschiedenen Merkmalen vorgesehen war und bei dem Netzwerk nur ein Aspekt des Gesamtsystems war. Heute, da die Netzwerkvirtualisierung zu einer weit verbreiteten Technologie in Rechenzentren geworden ist, reicht das herkömmliche NDIS-E/A-Modell im Windows Server-Betriebssystem nicht nur nicht aus, um mit den netzwerkintensiven Workloads Schritt zu halten, von denen wir erwarten, dass sie immer häufiger werden, sondern auch ein ungeeignetes Modell, um Ressourcen für die Netzwerk-E/A-Verarbeitung bereitzustellen. In Rechenzentrumsumgebungen ist es nicht ungewöhnlich, einen Single-Purpose-Computer für Netzwerkfunktionen zu implementieren, die normalerweise für Hardwaregeräte reserviert waren. Beispiele für diese Netzwerkgeräte sind Software-Lastenausgleichsmodule, DDoS-Appliances und Weiterleitungsgateways. Erschwerend kommt hinzu, dass es Mechanismen auf anderen Betriebssystemen gibt, um die E/A-Vorgänge zu beschleunigen, die diese alternativen Betriebssysteme zur bevorzugten Plattform machen, um netzwerkintensive Anwendungen wie virtuelle Appliances zu erstellen.

PacketDirect (PD) erweitert das aktuelle NDIS-Modell um einen beschleunigten Netzwerk-E/A-Pfad, der für die Anzahl von Paketen pro Sekunde (pps) optimiert ist, um eine Größenordnung höher als beim herkömmlichen NDIS-E/A-Modell. Dies wird durch Folgendes erreicht:

  • Reduzierte Latenz
  • Reduzierte Zyklen/Pakete
  • Lineare Beschleunigung durch Nutzung zusätzlicher Systemressourcen

PacketDirect ist parallel zum herkömmlichen Modell vorhanden. Der neue PD-Pfad kann verwendet werden, wenn er von einer Anwendung bevorzugt wird und genügend Hardwareressourcen vorhanden sind, um ihn aufzunehmen. PD ist nicht als Ersatz für das herkömmliche E/A-Modell vorgesehen und geht davon aus, dass ein Client, der in die PD-Schnittstelle schreibt, strenge Partitionierungsanforderungen für die zugrunde liegenden Ressourcen hat, die auf der Systemtopologie basieren. PD soll der neue Hochgeschwindigkeitsdatenpfad sein, der einem Windows-System dabei hilft, hohe Pps-Workloads zu ersetzen, die traditionell in Der Hardware ausgeführt wurden, wodurch Rechenzentrumsbesitzer Millionen an Infrastrukturkosten sparen.

PacketDirect-Konzepte

PD ermöglicht es einem PD-Client, den Netzwerkdatenverkehr über einen Netzwerkadapter (NIC) explizit zu verwalten. PD ermöglicht dem PD-Client die Steuerung der leistungsstarken Sende- und Empfangsfunktionen der NIC über die PacketDirect-Clientschnittstelle (PDCI). Intern werden die PDCI-Sende-/Empfangsfunktionen direkt dem PDPI zugeordnet. Pd-Sende-/Empfangsfunktionen funktionieren mit PD-Warteschlangen, die vom PD-Client auf PD-fähigen NICs erstellt wurden. PD bietet den PD-Clients die Möglichkeit, benutzerdefinierte Filter für sehr spezifische Arten von Datenverkehr oder sehr generischen Datenverkehr basierend auf den Anforderungen des PD-Clients festzulegen. Dadurch kann der PD-Client bestimmte eingehende Pakete an seine PD-Warteschlangen weiterleiten. Die Paketverarbeitung im PD-Modell findet immer in einem Ausführungskontext statt, der dem PD-Client gehört (oder gesteuert/koordiniert ist). Der PD-fähige NIC-Treiber ist völlig passiv, was bedeutet, dass er eingehende Pakete oder Vervollständigungsanzeigen für gesendete Pakete nicht aktiv an den PD-Client in einem treibereigenen Ausführungskontext wie einem DPC oder Workerthread weiterleitet.

Wenn ein PD-Client nicht versteht, wie ein Paket verarbeitet werden soll oder ein Steuerungspaket in einer seiner Warteschlangen empfängt, z. B. ARP-, LLDP- oder andere Protokollpakete, kann der PD-Client das Paket zur Verarbeitung an den aktuellen E/A-Pfad umleiten. Dadurch kann PD weiterhin die Pakete verarbeiten, für die es Kontext hat, und keine Zyklen für den Kontrolldatenverkehr zu verschwenden.

Wichtig Es kann einen PD-Anbieter und einen PD-Client pro Netzadapter geben. Daher kann es mehrere PD-Clients und PD-Anbieter auf einem einzigen System geben.

Der PD-Client hat die Kontrolle über die Ressourcen, die PD im System zugeordnet sind. Bei hohem Netzwerkdatenverkehr ist der PD-Client für die Minimierung seiner Workload verantwortlich, sodass das Betriebssystem auf andere Workloads reagieren kann.

Die von Windows implementierte PacketDirect-Plattform ordnet die Clientschnittstelle der Anbieterschnittstelle zu. Die Plattform steuert die Pufferverwaltung und die Möglichkeit, per PD empfangene Pakete erneut in den aktuellen NDIS-Empfangspfad einzuschleusen. Außerdem wird die Interaktion mit PD-Clients verarbeitet, um die Anforderungen an den NDIS-Steuerungspfad zu erfüllen, z. B. NIC-Deaktivierung, Energiesparen, Herunterfahren des Systems und Überraschendes Entfernen auf eine Weise, die die Leistung des PD-Datenpfads NICHT beeinträchtigt.

PacketDirect Provider Interface (PDPI)

Mit dem PDPI können NIC-Treiber ihre leistungsstarken Sende- und Empfangsfunktionen für das Windows-Betriebssystem verfügbar machen. Die implementierten Funktionen sind eine Teilmenge der vollständigen MiniPort-Funktionalität und sind generisch für alle NICs, die PD implementieren. Referenzdokumentation für PDPI finden Sie unter PacketDirect Provider Interface (PDPI)-Referenz.

PacketDirect Client Interface (PDCI)

Die PDCI ermöglicht es Erstanbieter-Windows-Diensten/-Anwendungen (z. B. Load-Balancer, NAT, VM-switch usw.), ihren Datenpfad zu beschleunigen, indem das PacketDirect-E/A-Modell mithilfe der PD-Clients genutzt wird. Diese Schnittstelle ist eine Schnittstelle der Ebene 2, genau wie die aktuelle NDIS-Sende-/Empfangsschnittstelle. Die Standard Funktionalität, die PDCI (zusätzlich zum PDPI-Zugriff) bietet, ist die PD-Paketpufferzuordnung/-verwaltung, ein Backkanal zum Zurückeinfügen von Paketen in den regulären NDIS-Empfangspfad und die Behandlung von NDIS-Power-/PnP-Ereignissen.

Referenz zur PacketDirect Provider Interface (PDPI)