SlideShare a Scribd company logo
1 of 9
Download to read offline
Laurea Triennale in Ingegneria Elettronica
e Informatica
Candidato:

Leonardo IURADA
Relatore:

Prof. Marco TESSAROTTO
Summary of “The Case for Writing Network Drivers
in High-Level Programming Languages”[1]
Anno Accademico 2019/2020
[1] Paul Emmerich, Simon Ellmann, Fabian Bonk, Alex Egger, Esaú García Sánchez- Torija, Thomas Günzel,
Sebastian Di Luzio, Alexandru Obada, Maximilian Stadl- meier, Sebastian Voit, Georg Carle The Case for Writing
Network Drivers in High-Level Programming Languages ANCS’ 19, 13 September 2019
DRIVER IN SPAZIO UTENTE
IN LINGUAGGI AD ALTO LIVELLO
• Linux Kernel, 2017: 66% codice nei driver (scritti in C)

• RILEVANZA: 65 bug di sicurezza in Linux Kernel, 2017:

• 8 use-after-free, double-free

• 32 out-of-bounds

• 14 bug logici

• 11 non indagati
39 su 40 

nei driver
Risolti da 

linguaggi ad 

alto livello
DOMANDA: Quali linguaggi ad alto livello
sono adatti allo sviluppo di driver in
spazio utente?
• Driver di rete, perché?

• Richiede prestazioni elevate confronto rilevante

• 13 su 39 bug nei driver di rete

• In spazio utente, perché?

• Isolamento dal Kernel
DRIVER: Sicurezza
• CONTROLLI DI SICUREZZA:

• bug use-after-free/double-free : 

risolti da compilatori/interpreti autonomamente

• bug out-of-bounds : 

risolti controllando che le operazioni siano
eseguite solo all’interno di intervalli di indirizzi di
memoria specificati
CONFIGURAZIONE DI TEST
• DOMANDA: Quali linguaggi ad alto livello sono adatti allo sviluppo di
driver in spazio utente?

• PRESTAZIONI: 

• Test single core su CPU Xeon E3-1230 v2 clock 3.3 GHz

• Applicazione di forwarding su 2 Intel X520 NIC 10Gbit/s

• Traffico generato con MoonGen

• LATENZA:

• Mirroring pacchetti su server con NIC Xeon D + MoonSniff
RISULTATI:
Prestazioni di forwarding
RISULTATI: Latenza
CONCLUSIONE: Rust
• PRESTAZIONI: Rust raggiunge almeno 90% di quelle di C

• LATENZA: Sia Rust che C < 40 a 20 Mpps

• Driver futuri scritti in Rust risolti 13 su 39 bug (33%)
μs
GRAZIE PER L’ATTENZIONE
Leonardo Iurada

More Related Content

Similar to Summary of “The Case for Writing Network Drivers in High-Level Programming Languages"

Architetture per la riservatezza, integrità e disponibilità dei dati nei sist...
Architetture per la riservatezza, integrità e disponibilità dei dati nei sist...Architetture per la riservatezza, integrità e disponibilità dei dati nei sist...
Architetture per la riservatezza, integrità e disponibilità dei dati nei sist...Adriano Scaruffi
 
SpecializzazionI Chimica, Informatica e Meccanica - IT Torricelli, Milano
SpecializzazionI Chimica, Informatica e Meccanica - IT Torricelli, MilanoSpecializzazionI Chimica, Informatica e Meccanica - IT Torricelli, Milano
SpecializzazionI Chimica, Informatica e Meccanica - IT Torricelli, MilanoCISEM - Milano
 
Presentazione - Algoritmo di Dijkstra
Presentazione - Algoritmo di DijkstraPresentazione - Algoritmo di Dijkstra
Presentazione - Algoritmo di DijkstraMassimoPalmisano
 
Open Source Parallel Computing ltcsp
Open Source Parallel Computing ltcspOpen Source Parallel Computing ltcsp
Open Source Parallel Computing ltcspLaura Camellini
 
Thanatos - Parallel & Distributed Computing
Thanatos -  Parallel & Distributed ComputingThanatos -  Parallel & Distributed Computing
Thanatos - Parallel & Distributed ComputingIdriss Riouak
 
HCIM08 - Mobile Applications
HCIM08 - Mobile ApplicationsHCIM08 - Mobile Applications
HCIM08 - Mobile ApplicationsStefano Sanna
 
Praticamente... AWS - Amazon Web Services
Praticamente... AWS - Amazon Web ServicesPraticamente... AWS - Amazon Web Services
Praticamente... AWS - Amazon Web ServicesSpeck&Tech
 
GWT Development for Handheld Devices
GWT Development for Handheld DevicesGWT Development for Handheld Devices
GWT Development for Handheld DevicesGWTcon
 
Whymca Mobyt Strumenti Open Source Per Infrastrutture Dimobile Messaging
Whymca Mobyt Strumenti Open Source Per Infrastrutture Dimobile MessagingWhymca Mobyt Strumenti Open Source Per Infrastrutture Dimobile Messaging
Whymca Mobyt Strumenti Open Source Per Infrastrutture Dimobile MessagingWhymca
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDaniele Mondello
 
Are you a Gadgeteer? - NetMF@Work
Are you a Gadgeteer? - NetMF@WorkAre you a Gadgeteer? - NetMF@Work
Are you a Gadgeteer? - NetMF@WorkMirco Vanini
 
Microcontrollori scalabili s12 g con periferiche di comunicazione on chip da ...
Microcontrollori scalabili s12 g con periferiche di comunicazione on chip da ...Microcontrollori scalabili s12 g con periferiche di comunicazione on chip da ...
Microcontrollori scalabili s12 g con periferiche di comunicazione on chip da ...Ionela
 
Reti locali cablate e wireless
Reti locali cablate e wirelessReti locali cablate e wireless
Reti locali cablate e wirelessSalvatore La Tona
 
Generazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGenerazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGiacomoZorzin
 
Software Engineering Introduction in Italian
Software Engineering Introduction in ItalianSoftware Engineering Introduction in Italian
Software Engineering Introduction in ItalianPierpaoloCaricato
 
Summary of "MalNet: A binary-centric network-level profiling of IoT Malware"
Summary of "MalNet: A binary-centric network-level profiling of IoT Malware"Summary of "MalNet: A binary-centric network-level profiling of IoT Malware"
Summary of "MalNet: A binary-centric network-level profiling of IoT Malware"DanieleMaijnelli
 
Soluzioni per la difesa da attacchi DoS nelle reti SDN
Soluzioni per la difesa da attacchi DoS nelle reti SDNSoluzioni per la difesa da attacchi DoS nelle reti SDN
Soluzioni per la difesa da attacchi DoS nelle reti SDNMatteo D'Amore
 

Similar to Summary of “The Case for Writing Network Drivers in High-Level Programming Languages" (20)

Architetture per la riservatezza, integrità e disponibilità dei dati nei sist...
Architetture per la riservatezza, integrità e disponibilità dei dati nei sist...Architetture per la riservatezza, integrità e disponibilità dei dati nei sist...
Architetture per la riservatezza, integrità e disponibilità dei dati nei sist...
 
SpecializzazionI Chimica, Informatica e Meccanica - IT Torricelli, Milano
SpecializzazionI Chimica, Informatica e Meccanica - IT Torricelli, MilanoSpecializzazionI Chimica, Informatica e Meccanica - IT Torricelli, Milano
SpecializzazionI Chimica, Informatica e Meccanica - IT Torricelli, Milano
 
Presentazione - Algoritmo di Dijkstra
Presentazione - Algoritmo di DijkstraPresentazione - Algoritmo di Dijkstra
Presentazione - Algoritmo di Dijkstra
 
Open Source Parallel Computing ltcsp
Open Source Parallel Computing ltcspOpen Source Parallel Computing ltcsp
Open Source Parallel Computing ltcsp
 
Thanatos - Parallel & Distributed Computing
Thanatos -  Parallel & Distributed ComputingThanatos -  Parallel & Distributed Computing
Thanatos - Parallel & Distributed Computing
 
Thanatos
ThanatosThanatos
Thanatos
 
HCIM08 - Mobile Applications
HCIM08 - Mobile ApplicationsHCIM08 - Mobile Applications
HCIM08 - Mobile Applications
 
Praticamente... AWS - Amazon Web Services
Praticamente... AWS - Amazon Web ServicesPraticamente... AWS - Amazon Web Services
Praticamente... AWS - Amazon Web Services
 
GWT Development for Handheld Devices
GWT Development for Handheld DevicesGWT Development for Handheld Devices
GWT Development for Handheld Devices
 
Whymca Mobyt Strumenti Open Source Per Infrastrutture Dimobile Messaging
Whymca Mobyt Strumenti Open Source Per Infrastrutture Dimobile MessagingWhymca Mobyt Strumenti Open Source Per Infrastrutture Dimobile Messaging
Whymca Mobyt Strumenti Open Source Per Infrastrutture Dimobile Messaging
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele Mondello
 
Are you a Gadgeteer? - NetMF@Work
Are you a Gadgeteer? - NetMF@WorkAre you a Gadgeteer? - NetMF@Work
Are you a Gadgeteer? - NetMF@Work
 
Back to Mainframe
Back to MainframeBack to Mainframe
Back to Mainframe
 
Microcontrollori scalabili s12 g con periferiche di comunicazione on chip da ...
Microcontrollori scalabili s12 g con periferiche di comunicazione on chip da ...Microcontrollori scalabili s12 g con periferiche di comunicazione on chip da ...
Microcontrollori scalabili s12 g con periferiche di comunicazione on chip da ...
 
Reti locali cablate e wireless
Reti locali cablate e wirelessReti locali cablate e wireless
Reti locali cablate e wireless
 
Generazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGenerazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptx
 
Software Engineering Introduction in Italian
Software Engineering Introduction in ItalianSoftware Engineering Introduction in Italian
Software Engineering Introduction in Italian
 
Summary of "MalNet: A binary-centric network-level profiling of IoT Malware"
Summary of "MalNet: A binary-centric network-level profiling of IoT Malware"Summary of "MalNet: A binary-centric network-level profiling of IoT Malware"
Summary of "MalNet: A binary-centric network-level profiling of IoT Malware"
 
Giacomo Barbieri - Modulo 5 - Valorizzare lo studio con la tecnologia - Milan...
Giacomo Barbieri - Modulo 5 - Valorizzare lo studio con la tecnologia - Milan...Giacomo Barbieri - Modulo 5 - Valorizzare lo studio con la tecnologia - Milan...
Giacomo Barbieri - Modulo 5 - Valorizzare lo studio con la tecnologia - Milan...
 
Soluzioni per la difesa da attacchi DoS nelle reti SDN
Soluzioni per la difesa da attacchi DoS nelle reti SDNSoluzioni per la difesa da attacchi DoS nelle reti SDN
Soluzioni per la difesa da attacchi DoS nelle reti SDN
 

Summary of “The Case for Writing Network Drivers in High-Level Programming Languages"

  • 1. Laurea Triennale in Ingegneria Elettronica e Informatica Candidato: Leonardo IURADA Relatore: Prof. Marco TESSAROTTO Summary of “The Case for Writing Network Drivers in High-Level Programming Languages”[1] Anno Accademico 2019/2020 [1] Paul Emmerich, Simon Ellmann, Fabian Bonk, Alex Egger, Esaú García Sánchez- Torija, Thomas Günzel, Sebastian Di Luzio, Alexandru Obada, Maximilian Stadl- meier, Sebastian Voit, Georg Carle The Case for Writing Network Drivers in High-Level Programming Languages ANCS’ 19, 13 September 2019
  • 2. DRIVER IN SPAZIO UTENTE IN LINGUAGGI AD ALTO LIVELLO • Linux Kernel, 2017: 66% codice nei driver (scritti in C) • RILEVANZA: 65 bug di sicurezza in Linux Kernel, 2017: • 8 use-after-free, double-free • 32 out-of-bounds • 14 bug logici • 11 non indagati 39 su 40 nei driver Risolti da linguaggi ad alto livello
  • 3. DOMANDA: Quali linguaggi ad alto livello sono adatti allo sviluppo di driver in spazio utente? • Driver di rete, perché? • Richiede prestazioni elevate confronto rilevante • 13 su 39 bug nei driver di rete • In spazio utente, perché? • Isolamento dal Kernel
  • 4. DRIVER: Sicurezza • CONTROLLI DI SICUREZZA: • bug use-after-free/double-free : 
 risolti da compilatori/interpreti autonomamente • bug out-of-bounds : 
 risolti controllando che le operazioni siano eseguite solo all’interno di intervalli di indirizzi di memoria specificati
  • 5. CONFIGURAZIONE DI TEST • DOMANDA: Quali linguaggi ad alto livello sono adatti allo sviluppo di driver in spazio utente? • PRESTAZIONI: • Test single core su CPU Xeon E3-1230 v2 clock 3.3 GHz • Applicazione di forwarding su 2 Intel X520 NIC 10Gbit/s • Traffico generato con MoonGen • LATENZA: • Mirroring pacchetti su server con NIC Xeon D + MoonSniff
  • 8. CONCLUSIONE: Rust • PRESTAZIONI: Rust raggiunge almeno 90% di quelle di C • LATENZA: Sia Rust che C < 40 a 20 Mpps • Driver futuri scritti in Rust risolti 13 su 39 bug (33%) μs