PERMESSO PERsistent MESSaging in ad hOc networks Corso di Reti di Calcolatori LS A.A. 2005/2006 Alessio Franco Matr. 0000233544 Overview • Realizzazione di servizi di messaggistica istantanea in MANET • Garanzia di servizi di invio messaggi sincrono/asincrono • Presenza/assenza di un nodo centrale (persistent server) • Necessità di utilizzare dispositivi dalle ridotte capacità compuazionali (J2ME) • Tutti i nodi in diretta visibilità (distanza 1-hop) Struttura e scelte progettuali • Identificazione degli host tramite UUID • Scelta del protocollo per lo scambio dei messaggi: UDP • Gestione dei pacchetti: PacketFactory, Router, Dispatcher e ForwardPacket • Definizione della relazione di amicizia • Protocolli di comunicazione realizzati ad hoc (si vedano i lucidi seguenti) • Trasparenza nei confronti del server Protocolli: Join (1/4) B: offline online C: offline online A Host_Online B A: offline online C: online Join_Network Z: offline A: offline online B: online C D Protocolli: Left (2/4) B: online C: online B A A: offline online C: online Free_Memory_Response Leave_Network Free_Memory_Ask A: offline online B: online Z: offline C D Protocolli: Amicizia (3/4) D: offline online A B C: online A: C: online Query_Alias Friendship_Ask Query_Response Host_Online Friendship_Yes B: online A: B: online Z: offline A: offline online C D Protocolli: Chatting sincrono (4/4) B A 1000 B: 2000 E la porta remota di B? Dummy A: 1000 2000 1000 D’ora in avanti lo scambio di messaggi avviene a regime passando per thread? i thread Come gestire il ciclo di vita del 2000 Affidabilità sui messaggi di testo • E nel caso (non così remoto…) che un messaggio di testo venga perso? • UDP non ci dà garanzie a riguardo: aggiungiamo quindi un controllo sui messaggi di testo • Ricevuto il messaggio il destinatario risponde inviando un ACK (portiamo su UDP alcuni dei controlli che TCP esegue in automatico) • Invio di ACK singolo o cumulativo? • E se ad andare perso è l’ACK? • Chi gestisce invio e ricezione dell’ACK? Sviluppi futuri • • • • • • • Meccanismi di replicazione Load balancing Routing multi-hop Realizzazione di chat multiutente Possibilità di scambio file Introduzione di tematiche di sicurezza …