Express Data Path
XDP (eXpress Data Path) és una ruta de dades d'alt rendiment basada en eBPF que s'utilitza per enviar i rebre paquets de xarxa a altes velocitats evitant la majoria de la pila de xarxa del sistema operatiu. Es fusiona al nucli Linux des de la versió 4.8.[1] Aquesta implementació té llicència GPL. Grans empreses tecnològiques com Amazon, Google i Intel donen suport al seu desenvolupament. Microsoft va llançar la seva implementació gratuïta i de codi obert XDP per a Windows el maig de 2022. Té llicència sota la llicència MIT.[2] Ruta de dades![]() La idea darrere de XDP és afegir un ganxo primerenc a la ruta RX del nucli i deixar que un programa eBPF subministrat per l'usuari decideixi el destí del paquet. El ganxo es col·loca al controlador del controlador d'interfície de xarxa (NIC) just després del processament d'interrupció i abans de qualsevol assignació de memòria necessària per la pròpia pila de xarxa, perquè l'assignació de memòria pot ser una operació costosa. A causa d'aquest disseny, XDP pot deixar caure 26 milions de paquets per segon per nucli amb maquinari bàsic. El programa eBPF ha de passar una prova de verificador [3] abans de carregar-se, per evitar executar codi maliciós a l'espai del nucli. El verificador comprova que el programa no conté accessos fora de límits, bucles o variables globals. El programa pot editar les dades del paquet i, després que el programa eBPF torni, un codi d'acció determina què fer amb el paquet:
XDP requereix suport al controlador NIC però, com que no tots els controladors ho admeten, pot tornar a una implementació genèrica, que realitza el processament eBPF a la pila de xarxa, tot i que amb un rendiment més lent.[4] XDP disposa d'una infraestructura per descarregar el programa eBPF a un controlador d'interfície de xarxa que l'admet, reduint la càrrega de la CPU. El 2023, només les targetes Netronome [5] ho admeten. Microsoft s'ha associat amb altres empreses i afegeix suport per a XDP en la seva implementació MsQuic del protocol QUIC. AF_XDPJuntament amb XDP, una nova família d'adreces va entrar al nucli Linux a partir de 4.18.[6] AF_XDP, abans conegut com AF_PACKETv4 (que mai es va incloure al nucli de la línia principal), [7] és un sòcol en brut optimitzat per al processament de paquets d'alt rendiment i permet la còpia zero entre el nucli i les aplicacions. Com que el sòcol es pot utilitzar tant per rebre com per transmetre, admet aplicacions de xarxa d'alt rendiment exclusivament a l'espai d'usuari.[8] Referències
|
Portal di Ensiklopedia Dunia