Condividi tramite


Introduzione all'interfaccia del provider NDIS PacketDirect

L'interfaccia del provider PackageDirect (PDPI) estende NDIS con un modello di I/O accelerato, sia per ambienti fisici che virtuali, che possono aumentare il numero di pacchetti elaborati al secondo da un ordine di grandezza e ridurre significativamente il jitter rispetto al percorso I/O NDIS tradizionale.

Sfondo

Il modello di I/O tradizionale in Windows è stato implementato come una piattaforma di I/O multiuso che era destinata a lavorare con più tipi di supporti con molte caratteristiche diverse e dove la rete era solo un aspetto del sistema complessivo. Oggi, poiché la virtualizzazione di rete è diventata una tecnologia prevalente nei data center, il modello di I/O NDIS tradizionale nel sistema operativo Windows Server non è solo sufficiente per mantenere i carichi di lavoro a elevato utilizzo di rete che ci si aspetta di diventare più e più comuni, ma anche un modello inappropriato per dedicare risorse all'elaborazione di I/O di rete. Negli ambienti del data center non è raro implementare un singolo computer dedicato alla rete che esegue funzioni che sono in genere riservate per le appliance hardware. Esempi di queste appliance di rete includono servizi di bilanciamento del carico software, appliance DDoS e gateway di inoltro. Per peggiorare le cose, esistono meccanismi su altri sistemi operativi per accelerare l'I/O che rendono la piattaforma alternativa del sistema operativo preferita per creare applicazioni a elevato utilizzo di rete, ad esempio appliance virtuali.

PacketDirect (PD) estende il modello NDIS corrente con un percorso di I/O di rete accelerato ottimizzato per il pacchetto al secondo (pps) conta un ordine di grandezza superiore a quello visualizzato con il modello I/O NDIS tradizionale. Questa operazione viene eseguita tramite:

  • Riduzione della latenza
  • Cicli/pacchetti ridotti
  • Velocità lineare con l'uso di risorse di sistema aggiuntive

PacketDirect esiste side-by-side con il modello tradizionale. Il nuovo percorso PD può essere usato quando un'applicazione lo preferisce e ci sono risorse hardware sufficienti per adattarla. PD non è destinato a sostituire il modello di I/O tradizionale e presuppone che un client che scrive nell'interfaccia PD abbia requisiti di partizionamento rigorosi per le risorse sottostanti in base alla topologia di sistema. PD è destinato a essere il nuovo percorso di dati ad alta velocità che aiuterà un sistema Windows a sostituire carichi di lavoro pps elevati che sono stati tradizionalmente eseguiti nell'hardware, risparmiando i proprietari del data center milioni di costi dell'infrastruttura.

Concetti relativi a PacketDirect

PD funziona consentendo a un client PD di gestire in modo esplicito il traffico di rete da una scheda di rete (NIC). PD consente al client PD di inviare e ricevere funzionalità di invio e ricezione elevate della scheda di interfaccia di interfaccia di rete tramite l'interfaccia client di PacketDirect (PDCI). Internamente, le funzioni di invio/ricezione PDCI vengono mappate direttamente al PDPI. Le funzioni pd send/receive operano sulle code PD create dal client PD nelle schede di interfaccia di rete con supporto per PD. PD fornisce ai client PD la possibilità di impostare filtri personalizzati per tipi di traffico molto specifici o molto generici, in base alle esigenze del client PD. Ciò consente al client PD di indirizzare determinati pacchetti in ingresso alle code PD. L'elaborazione dei pacchetti nel modello PD viene sempre eseguita in un contesto di esecuzione di proprietà (o controllato/coordinato) dal client PD. Il driver di interfaccia di interfaccia di rete compatibile con PD è completamente passivo, ovvero non inoltra attivamente pacchetti in ingresso o indicazioni di completamento per i pacchetti inviati al client PD in un contesto di esecuzione di proprietà del driver, ad esempio un DPC o un thread di lavoro.

Se un client PD non capisce come elaborare un pacchetto o riceve un pacchetto di controllo in una delle relative code, ad esempio ARP, LLDP o altri pacchetti di protocollo, il client PD può reindirizzare nuovamente il pacchetto al percorso di I/O corrente per l'elaborazione. Ciò consente al PD di continuare a elaborare i pacchetti che ha il contesto per e non i cicli di rifiuti sul traffico di controllo.

Importante Può essere presente un provider PD e un client PD per scheda net. Pertanto, possono essere presenti più client PD e provider PD in un unico sistema.

Il client PD ha il controllo sulle risorse allocate al PD nel sistema. Nei casi di traffico di rete elevato, il client PD è responsabile della riduzione del carico di lavoro in modo che il sistema operativo possa essere reattivo ad altri carichi di lavoro.

La piattaforma PacketDirect implementata da Windows esegue il mapping dell'interfaccia client all'interfaccia del provider. La piattaforma controlla la gestione del buffer e la possibilità di inserire nuovamente i pacchetti ricevuti tramite PD al percorso di ricezione NDIS corrente. Gestisce anche l'interazione con i client PD per soddisfare i requisiti del percorso di controllo NDIS, ad esempio la disabilitazione della scheda di interfaccia di rete, la disattivazione del sistema, l'arresto del sistema e la rimozione delle sorprese in modo che non impedisca le prestazioni del percorso dei dati PD.

Interfaccia del provider PacketDirect (PDPI)

PDPI consente ai driver della scheda di interfaccia di rete di esporre la funzionalità di invio e ricezione ad alte prestazioni al sistema operativo Windows. Le funzioni implementate sono un subset della funzionalità MiniPort completa e sono generiche per tutte le schede di interfaccia di rete che implementano PD. Per la documentazione di riferimento per PDPI, vedere Informazioni di riferimento su PacketDirect Provider Interface (PDPI).

Interfaccia client di PacketDirect (PDCI)

PDCI consente ai servizi/applicazioni Windows di prima parte (ad esempio, Bilanciamento del carico, NAT, commutatore vm e così via) di velocizzare il percorso dei dati sfruttando il modello di I/O PackageDirect tramite l'uso dei client PD. Questa interfaccia è un'interfaccia di livello 2 simile all'interfaccia di invio/ricezione NDIS corrente. La funzionalità principale fornita da PDCI (oltre all'accesso PDPI) è l'allocazione/gestione del buffer dei pacchetti PD, un canale back-channel per l'inserimento di pacchetti al normale percorso di ricezione NDIS, la gestione degli eventi power/PnP di NDIS.

Informazioni di riferimento su PacketDirect Provider Interface (PDPI)