SlideShare une entreprise Scribd logo
1  sur  19
Télécharger pour lire hors ligne
Transmission Error Detector

per Wi-Fi

su kernel Linux 4.0
Alma Mater Studiorum · Università degli Studi di Bologna
SCUOLA DI SCIENZE
Corso di Laurea in Informatica
Relatore:
Chiar.mo Prof.
Vittorio Ghini
Presentata da:
Gabriele Di Bernardo
Sessione I
Anno Accademico 2014/2015
• Mobile device multi-homed
• Wi-Fi
• Real-time multimedia oriented app (ad esempio
un app VoIP, solitamente implementate over
UDP)
Scenario
• Architettura distribuita per consentire ad un app in
esecuzione su un device mobile multi-homed di
sfruttare tutte le sue interfacce di rete
• Ciascun datagram UDP inviato sull’interfaccia di
rete più vantaggiosa
Always Best Packet Switching
• Client proxy
• Server proxy
Always Best Packet Switching
• Modulo fondamentale ABPS client proxy
• Monitora ciascun datagram UDP in invio attraverso una
certa scheda wireless
• Notifica al proxy client lo stato di consegna di ogni frame
trasmesso al first-hop (First-hop Transmission
Notification)
• Implementato in modo cross-layer lungo il kernel del
nodo mobile
Transmission Error Detector
• Estendere kernel Linux 4.0 con un modulo
Transmission Error Detector per Wi-Fi
• Definire un’interfaccia che consenta ad una qualsiasi
app in esecuzione sul sistema ottenuto di sapere se
i pacchetti trasmessi sono stati consegnati o meno
al primo AP
• Modulo TED precedentemente sviluppato per kernel
Linux 2.6.30-rc5
Obiettivo
Nelle trasmissioni Wi-Fi l’accesso al mezzo trasmissivo è
regolamentato dal protocollo CSMA/CA
A trasmissione dati completata il
nodo sorgente si pone in attesa di
ricezione di un ACK da parte della
stazione ricevente.
IEEE 802.11
Implementazione
Implementazione - user space

• App necessita di un identificativo per monitorare ogni
messaggio in invio
• Utilizzo system call sendmsg
• App specifica in ancillary data puntatore di memoria in
user space
• Identificativo messaggio utile a contestualizzare notifiche
provenienti da TED
Struttura socket buffer
struct sk_buff
{
..
..
/* new field added */
uint32_t sk_buff_identifier;
};
Implementazione - kernel space
Implementazione - Transport layer

• Trasmissione UDP controllo ceduto a udp_sendmsg
• Parsing ancillary data
• Allocazione struttura sk_buff moduli livello rete
• Identificativo passato ad app richiedente attraverso
indirizzo di memoria specificato negli ancillary data
Implementazione - Network layer

• Contatore incrementato per ogni messaggio in invio
• Valore contatore assegnato a socket buffer
• Frammentazione, ciascun frammento mantiene
l’identificativo pacchetto originario
• Introduzione contatore per identificare ciascun messaggio
in invio
• Sottosistema mac80211 realizza logica di creazione e
gestione frame 802.11 per device softMAC
Implementazione - mac80211 subsystem
mac80211 subsystem - Invio frame

• TED mantiene informazioni principali frame in invio in
apposite strutture dati
• Informazioni associate a campo sequence control header
IEEE 802.11
mac80211 subsystem - Ricezione ACK

• Sottosistema mac80211 notificato sullo status di consegna
frame
• Accesso header IEEE 802.11 ed utilizzo sequence
control come chiave di ricerca all’interno strutture dati
mantenute da TED
• Sollevata First-hop Transmission Notification contente
informazioni memorizzate da TED e informazioni relative
allo stato di consegna del frame ( ACK/NACK, retry count )
• App può ricevere First-hop Transmission Notification
come qualsiasi messaggio di tipo ICMP
• App può leggere ( tramite system call recvmsg ) dalla
coda degli errori del socket abilitando flag IP_RECVERR
• Messaggio di errore allocato nel kernel tramite struttura
struct sock_extended_err
First-hop Transmission Notification

• TED identifier, informazioni frammentazione, informazioni
trasmissione
struct sock_extended_err
{
__u32 ee_errno;
__u8 ee_origin;
__u8 ee_type;
__u8 ee_code;
__u8 ee_pad;
__u32 ee_info;
__u32 ee_data;
/* Transmission Error Detector new field for retry count */
__u8 ee_retry_count;
};
#define SO_EE_ORIGIN_NONE 0
#define SO_EE_ORIGIN_LOCAL 1
#define SO_EE_ORIGIN_ICMP 2
#define SO_EE_ORIGIN_ICMP6 3
#define SO_EE_ORIGIN_TXSTATUS 4
/* Transmission Error Detector new value for ee_origin field*/
#define SO_EE_ORIGIN_LOCAL_NOTIFY 5
retry count
fragment length & offset
more fragment
ACK/NACK
message identifier
First-hop Transmission Notification
Valutazioni sperimentali

0
250
500
750
1000
A B C
Ricezione notifica in ms
25 ms
235 ms
955 ms
• (A) 71MB trasmessi da
Raspberry Pi a 40Mbps
5000 pacchetti 1096
Byte ciascuno
• (B) Due host trasmettono
36MB rispettivamente a
10Mbps e 15Mbps
• (C) Tre host trasmettono
23MB rispettivamente a
10Mbps, 11Mbps e
15Mbps
Traffico generato client
Realizzazione modulo Transmission Error Detector per Wi-Fi
su kernel Linux 4.0
È stata sviluppata un’app che sfrutta modulo TED su cui è
stato possibile condurre test e valutazioni sperimentali
Sviluppi futuri:
• Porting piattaforma Android
• Estensione First-hop Transmission Error Notification con
bit rate trasmissivo frame
Conclusioni & sviluppi futuri

Contenu connexe

Similaire à Transmission Error Detector per Wi-Fi su kernel Linux 4.0

70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#
70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#
70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#DotNetCampus
 
IoT: protocolli, dispositivi, architetture
IoT: protocolli, dispositivi, architettureIoT: protocolli, dispositivi, architetture
IoT: protocolli, dispositivi, architettureStefano Valle
 
5 Protocolli Trasporto Parte2
5 Protocolli Trasporto Parte25 Protocolli Trasporto Parte2
5 Protocolli Trasporto Parte2Majong DevJfu
 
Azure IoTHub - Roboval 2018
Azure IoTHub - Roboval 2018Azure IoTHub - Roboval 2018
Azure IoTHub - Roboval 2018Andrea Tosato
 
Vpn Virtual Private Network
Vpn Virtual Private NetworkVpn Virtual Private Network
Vpn Virtual Private Networkcarmine ricca
 
5 Protocolli Trasporto Parte1
5 Protocolli Trasporto Parte15 Protocolli Trasporto Parte1
5 Protocolli Trasporto Parte1Majong DevJfu
 
Crouzet Automation - em4 Ethernet opuscolo, versione italiana
Crouzet Automation - em4 Ethernet opuscolo, versione italiana Crouzet Automation - em4 Ethernet opuscolo, versione italiana
Crouzet Automation - em4 Ethernet opuscolo, versione italiana Crouzet
 
SIGNALR TO-THE-MAX: VERSO IL WEB ED OLTRE!
SIGNALR TO-THE-MAX: VERSO IL WEB ED OLTRE!SIGNALR TO-THE-MAX: VERSO IL WEB ED OLTRE!
SIGNALR TO-THE-MAX: VERSO IL WEB ED OLTRE!DotNetCampus
 
Signal r to the-max
Signal r to the-maxSignal r to the-max
Signal r to the-maxDotNetCampus
 
Del furia signalr-to-the-max
Del furia   signalr-to-the-maxDel furia   signalr-to-the-max
Del furia signalr-to-the-maxDotNetCampus
 
Il web service e i sistemi embedded - Tesi - cap2
Il web service e i sistemi embedded - Tesi - cap2Il web service e i sistemi embedded - Tesi - cap2
Il web service e i sistemi embedded - Tesi - cap2pma77
 
3 Livello Trasporto
3 Livello Trasporto3 Livello Trasporto
3 Livello Trasportoacapone
 
CommSEC - linea prodotti InterLINK (IT)
CommSEC - linea prodotti InterLINK (IT)CommSEC - linea prodotti InterLINK (IT)
CommSEC - linea prodotti InterLINK (IT)iBLio
 

Similaire à Transmission Error Detector per Wi-Fi su kernel Linux 4.0 (20)

70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#
70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#
70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#
 
IoT: protocolli, dispositivi, architetture
IoT: protocolli, dispositivi, architettureIoT: protocolli, dispositivi, architetture
IoT: protocolli, dispositivi, architetture
 
5 Protocolli Trasporto Parte2
5 Protocolli Trasporto Parte25 Protocolli Trasporto Parte2
5 Protocolli Trasporto Parte2
 
Sic
SicSic
Sic
 
Azure IoTHub - Roboval 2018
Azure IoTHub - Roboval 2018Azure IoTHub - Roboval 2018
Azure IoTHub - Roboval 2018
 
Reti Domestiche
Reti DomesticheReti Domestiche
Reti Domestiche
 
Cac Es3 2009
Cac Es3 2009Cac Es3 2009
Cac Es3 2009
 
Vpn Virtual Private Network
Vpn Virtual Private NetworkVpn Virtual Private Network
Vpn Virtual Private Network
 
5 Protocolli Trasporto Parte1
5 Protocolli Trasporto Parte15 Protocolli Trasporto Parte1
5 Protocolli Trasporto Parte1
 
Crouzet Automation - em4 Ethernet opuscolo, versione italiana
Crouzet Automation - em4 Ethernet opuscolo, versione italiana Crouzet Automation - em4 Ethernet opuscolo, versione italiana
Crouzet Automation - em4 Ethernet opuscolo, versione italiana
 
SIGNALR TO-THE-MAX: VERSO IL WEB ED OLTRE!
SIGNALR TO-THE-MAX: VERSO IL WEB ED OLTRE!SIGNALR TO-THE-MAX: VERSO IL WEB ED OLTRE!
SIGNALR TO-THE-MAX: VERSO IL WEB ED OLTRE!
 
Signal r to the-max
Signal r to the-maxSignal r to the-max
Signal r to the-max
 
Del furia signalr-to-the-max
Del furia   signalr-to-the-maxDel furia   signalr-to-the-max
Del furia signalr-to-the-max
 
Network essentials
Network essentialsNetwork essentials
Network essentials
 
Il web service e i sistemi embedded - Tesi - cap2
Il web service e i sistemi embedded - Tesi - cap2Il web service e i sistemi embedded - Tesi - cap2
Il web service e i sistemi embedded - Tesi - cap2
 
Java lezione 14
Java lezione 14Java lezione 14
Java lezione 14
 
TCP IP
TCP IPTCP IP
TCP IP
 
The Missing Link
The Missing LinkThe Missing Link
The Missing Link
 
3 Livello Trasporto
3 Livello Trasporto3 Livello Trasporto
3 Livello Trasporto
 
CommSEC - linea prodotti InterLINK (IT)
CommSEC - linea prodotti InterLINK (IT)CommSEC - linea prodotti InterLINK (IT)
CommSEC - linea prodotti InterLINK (IT)
 

Transmission Error Detector per Wi-Fi su kernel Linux 4.0

  • 1. Transmission Error Detector per Wi-Fi su kernel Linux 4.0 Alma Mater Studiorum · Università degli Studi di Bologna SCUOLA DI SCIENZE Corso di Laurea in Informatica Relatore: Chiar.mo Prof. Vittorio Ghini Presentata da: Gabriele Di Bernardo Sessione I Anno Accademico 2014/2015
  • 2. • Mobile device multi-homed • Wi-Fi • Real-time multimedia oriented app (ad esempio un app VoIP, solitamente implementate over UDP) Scenario
  • 3. • Architettura distribuita per consentire ad un app in esecuzione su un device mobile multi-homed di sfruttare tutte le sue interfacce di rete • Ciascun datagram UDP inviato sull’interfaccia di rete più vantaggiosa Always Best Packet Switching
  • 4. • Client proxy • Server proxy Always Best Packet Switching
  • 5. • Modulo fondamentale ABPS client proxy • Monitora ciascun datagram UDP in invio attraverso una certa scheda wireless • Notifica al proxy client lo stato di consegna di ogni frame trasmesso al first-hop (First-hop Transmission Notification) • Implementato in modo cross-layer lungo il kernel del nodo mobile Transmission Error Detector
  • 6. • Estendere kernel Linux 4.0 con un modulo Transmission Error Detector per Wi-Fi • Definire un’interfaccia che consenta ad una qualsiasi app in esecuzione sul sistema ottenuto di sapere se i pacchetti trasmessi sono stati consegnati o meno al primo AP • Modulo TED precedentemente sviluppato per kernel Linux 2.6.30-rc5 Obiettivo
  • 7. Nelle trasmissioni Wi-Fi l’accesso al mezzo trasmissivo è regolamentato dal protocollo CSMA/CA A trasmissione dati completata il nodo sorgente si pone in attesa di ricezione di un ACK da parte della stazione ricevente. IEEE 802.11
  • 9. Implementazione - user space • App necessita di un identificativo per monitorare ogni messaggio in invio • Utilizzo system call sendmsg • App specifica in ancillary data puntatore di memoria in user space • Identificativo messaggio utile a contestualizzare notifiche provenienti da TED
  • 10. Struttura socket buffer struct sk_buff { .. .. /* new field added */ uint32_t sk_buff_identifier; }; Implementazione - kernel space
  • 11. Implementazione - Transport layer • Trasmissione UDP controllo ceduto a udp_sendmsg • Parsing ancillary data • Allocazione struttura sk_buff moduli livello rete • Identificativo passato ad app richiedente attraverso indirizzo di memoria specificato negli ancillary data
  • 12. Implementazione - Network layer • Contatore incrementato per ogni messaggio in invio • Valore contatore assegnato a socket buffer • Frammentazione, ciascun frammento mantiene l’identificativo pacchetto originario • Introduzione contatore per identificare ciascun messaggio in invio
  • 13. • Sottosistema mac80211 realizza logica di creazione e gestione frame 802.11 per device softMAC Implementazione - mac80211 subsystem
  • 14. mac80211 subsystem - Invio frame • TED mantiene informazioni principali frame in invio in apposite strutture dati • Informazioni associate a campo sequence control header IEEE 802.11
  • 15. mac80211 subsystem - Ricezione ACK • Sottosistema mac80211 notificato sullo status di consegna frame • Accesso header IEEE 802.11 ed utilizzo sequence control come chiave di ricerca all’interno strutture dati mantenute da TED • Sollevata First-hop Transmission Notification contente informazioni memorizzate da TED e informazioni relative allo stato di consegna del frame ( ACK/NACK, retry count )
  • 16. • App può ricevere First-hop Transmission Notification come qualsiasi messaggio di tipo ICMP • App può leggere ( tramite system call recvmsg ) dalla coda degli errori del socket abilitando flag IP_RECVERR • Messaggio di errore allocato nel kernel tramite struttura struct sock_extended_err First-hop Transmission Notification • TED identifier, informazioni frammentazione, informazioni trasmissione
  • 17. struct sock_extended_err { __u32 ee_errno; __u8 ee_origin; __u8 ee_type; __u8 ee_code; __u8 ee_pad; __u32 ee_info; __u32 ee_data; /* Transmission Error Detector new field for retry count */ __u8 ee_retry_count; }; #define SO_EE_ORIGIN_NONE 0 #define SO_EE_ORIGIN_LOCAL 1 #define SO_EE_ORIGIN_ICMP 2 #define SO_EE_ORIGIN_ICMP6 3 #define SO_EE_ORIGIN_TXSTATUS 4 /* Transmission Error Detector new value for ee_origin field*/ #define SO_EE_ORIGIN_LOCAL_NOTIFY 5 retry count fragment length & offset more fragment ACK/NACK message identifier First-hop Transmission Notification
  • 18. Valutazioni sperimentali 0 250 500 750 1000 A B C Ricezione notifica in ms 25 ms 235 ms 955 ms • (A) 71MB trasmessi da Raspberry Pi a 40Mbps 5000 pacchetti 1096 Byte ciascuno • (B) Due host trasmettono 36MB rispettivamente a 10Mbps e 15Mbps • (C) Tre host trasmettono 23MB rispettivamente a 10Mbps, 11Mbps e 15Mbps Traffico generato client
  • 19. Realizzazione modulo Transmission Error Detector per Wi-Fi su kernel Linux 4.0 È stata sviluppata un’app che sfrutta modulo TED su cui è stato possibile condurre test e valutazioni sperimentali Sviluppi futuri: • Porting piattaforma Android • Estensione First-hop Transmission Error Notification con bit rate trasmissivo frame Conclusioni & sviluppi futuri