PERMESSO PERsistent MESSaging in ad hOc networks Alessio Franco Matr Corso di Reti di Calcolatori LS A.A. 2005/2006
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) A: offline C: online Z: offline A: offline B: online B: offline C: offline A B C D A: online C: online A: online B: online C: online Join_Network Host_Online
A: online B: online Protocolli: Left (2/4) Z: offline A A: offline B: online B C D A: online C: online B: online C: online A: offline C: online Leave_Network Free_Memory_Ask Free_Memory_Response
Protocolli: Amicizia (3/4) A: online B: online Z: offline A B: online B C D A: online C: online Z: offline A: offline D: offline Z: offline A: online D: online Query_Alias Query_Response Friendship_Ask Friendship_Yes Host_Online
Protocolli: Chatting sincrono (4/4) A B A: 1000 B: 2000 Come gestire il ciclo di vita del thread? E la porta remota di B? Dora in avanti lo scambio di messaggi avviene a regime passando per i thread Dummy
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 è lACK? Chi gestisce invio e ricezione dellACK?
Sviluppi futuri Meccanismi di replicazione Load balancing Routing multi-hop Realizzazione di chat multiutente Possibilità di scambio file Introduzione di tematiche di sicurezza …