Multihoming 4 DUMMIES GRUPPO DI LAVORO Matteo ”bonko” Bonicolini - Alessandro ”DarkDruid” Gentile - Dennis ”Domle” Dalla Torre -
Multihoming 4 DUMMIES PROGETTO Sistema Proxy per la gestione di Multi-homing (multilink) a livello applicazione su macchine POSIX
Multihoming 4 DUMMIES Multihoming for Moca2008 TALK: Prima parte: teoria e progettazione (discussione delle problematiche e delle possibili soluzioni). Seconda parte: implementazione (discussione delle tecniche di programmazione e descrizione dettagliata del codice del progetto). LABORATORIO: Attivo per tutta la durata del MoCa Possibilità di testare, discutere e modificare il software
Multihoming 4 DUMMIES MULTI-HOMING Tecniche volte a migliorare affidabilità e prestazioni in una rete di calcolatori. Prevede la moltiplicazione degli indirizzi ip e/o dei link mediante cui una macchina comunica con la rete.
Multihoming 4 DUMMIES VARIANTI Link singolo, indirizzi ip multipli. L'host è raggiungibile mediante molteplici indirizzi, ma se il link cade diventa irraggiungibile. Link multipli, indirizzo ip singolo. L'host è raggiungibile tramite un singolo ip, ma molteplici link. Se un link cade la comunicazione resta disponibile sugli altri link. Link multipli, indirizzi ip multipli. L'host è raggiungibile tramite molteplici link, ognuno con un ip associato. Se un link cade, l'ip corrispondente non è più raggiungibile, ma la comunicazione può continuare sugli altri link.
Multihoming 4 DUMMIES SCENARIO
Multihoming 4 DUMMIES VANTAGGI Prestazioni: utilizzo simultaneo dei link multipli Ridondanza: il crash di un singolo link non compromette la comunicazione Sicurezza: si rendono più difficili packet sniffing, M.I.T.M., ecc.
Multihoming 4 DUMMIES Quali compiti ci attendono? Astrarre dai normali protocolli di trasporto...e fornire... Adeguato bilanciamento del carico dati sui canali disponibili Interattività del bilanciamento carico Ridondanza Portabilità
Multihoming 4 DUMMIES PROBLEMI Due gamme di problemi, legati a: (1)I nostri obbiettivi: bilanciamento carico, ridondanza, ecc. (2) I limiti dei protocolli di trasporto
Multihoming 4 DUMMIES PROBLEMI(1): bilanciamento carico Alcune considerazioni: I link di connessione di cui disponiamo avranno dei limiti in termini di ampiezza di banda e latenza Il tipo di traffico può essere di diversi tipi: chat testuale, streaming, download, ecc. ==> Bilanciamento: riconoscere il link migliore per il tipo di traffico in atto
Multihoming 4 DUMMIES PROBLEMI(1): bilanciamento carico Alternativa: ignorare il tipo di traffico in atto e basarsi su un metro di paragone assoluto dei link. ==> Bilanciamento: riconoscere il link migliore in base al prodotto banda x latenza
Multihoming 4 DUMMIES PROBLEMI(1): monitorare i link Di ogni link disponibile vogliamo conoscere: ampiezza di banda e latenza Questi valori sono presumibilmente: Diversi per ogni link Soggetti a variazioni nel tempo Come procedere?
Multihoming 4 DUMMIES PROBLEMI(1): monitorare i link Scelte possibili: Eseguire test periodici sui link (ping, algoritmi packet-pair, ecc.) Utilizzare algoritmi adattativi per l'invio dei dati Soluzione ibrida
Multihoming 4 DUMMIES PROBLEMI(2): limiti dei protocolli di trasporto Che problemi ci sono nella consegna dei pacchetti? Consegna di TUTTI i pacchetti Consegna INTEGRA dei pacchetti Consegna IN ORDINE dei pacchetti TCP assolve a questi problemi?...SI! :-) Anche quando la comunicazione è splittata su più link?... NO! :-( Dobbiamo quindi implementare soluzioni apposite nella nostra applicazione!
Multihoming 4 DUMMIES PROBLEMI(2): limiti dei protocolli di trasporto A questo punto sorge spontanea una domanda: Perchè non implementare direttamente un protocollo a livello trasporto?
Multihoming 4 DUMMIES Portabilità? Come problema aggiunto abbiamo quello della portabilità sul numero maggiore possibile di sistemi. E' un problema tipico di molti programmi. In questo caso assume particolare rilievo, trattandosi di applicazioni protocollari.
Multihoming 4 DUMMIES SOLUZIONI(1): bilanciamento carico L'applicazione bilancia in base al tipo di dati in transito sulla rete: vantaggio: ottimizzazione rispetto al singolo benchmark inconveniente: bilanciamento statico (minori prestazioni, minore flessibilità), oppure inconveniente: applicazione poco leggera dal punto di vista computazionale e della programmazione
Multihoming 4 DUMMIES SOLUZIONI(1): bilanciamento carico L'applicazione bilancia in base al prodotto banda x latenza vantaggio: applicazione leggera vantaggio: bilanciamento dinamico (migliori prestazioni) vantaggio: ottimizzazione rispetto alla media dell'utilizzo (flessibilità) inconveniente: perdita prestazioni rispetto al singolo benchmark
Multihoming 4 DUMMIES SOLUZIONI(1): bilanciamento carico Soluzione ibrida? Bilanciare rispetto al prodotto banda x latenza...ma Fornire una gamma di strategie diverse impostabili dall'utente Questa politica unisce i vantaggi delle due strategie, limitando al minimo gli inconvenienti.
Multihoming 4 DUMMIES SOLUZIONI(1): monitorare i link Utilizzo di test periodici: vantaggio: misurazione accurata delle prestazioni della rete problema aggiunto: stabilire la scansione temporale dei test inconveniente: si rischia di commettere errori o di intasare la rete con troppi test inconveniente: i test potrebbero non essere adatti a tutti i tipi di link
Multihoming 4 DUMMIES SOLUZIONI(1): monitorare i link Utilizzo di algoritmi adattativi: vantaggio: non si sovraccarica la normale comunicazione vantaggio: sinergia fra il bilanciamento carico e il monitor prestazionale dei link inconveniente: minore accuratezza nelle misurazioni vantaggio/inconveniente: occorrono molte statistiche per calibrare tali algoritmi, ma cosi' facendo si offre flessibilità d'uso all'utente
Multihoming 4 DUMMIES SOLUZIONI(1): monitorare i link Soluzione ibrida? Iniziale test prestazionale della rete Gestione del monitoraggio tramite algoritmi adattativi Uso di test nei momenti di crisi della rete Aggiunge accuratezza, senza gli inconvenienti legati alla scansione temporale dei test.
Multihoming 4 DUMMIES SOLUZIONI(1): limiti dei protocolli di trasporto Risolvere la carenza di TCP rispetto ad uno scenario multi-link richiede: Un header di protocollo Un sistema di ACK Risolvere il problema dei crash delle connessioni Buona notizia: per i primi due aspetti possiamo limitarci ad emulare il comportamento di TCP.
Multihoming 4 DUMMIES PROTOTIPO Un core minimale composto di due applicativi: Lato Client (Proxy_sender): riceve dati in locale dall'applicazione Client reale e instrada verso la destinazione remota, bilanciando il carico sui link disponibili. Lato Server (Proxy_receiver): riceve dati dalla sorgente remota e inoltra in locale verso l'applicazione Server reale.
Multihoming 4 DUMMIES
Compiti assolti? Proxy_sender: I. Ricezione dati dal Client reale II. Divisione dati in pacchetti, scelta del/dei link e invio III. Store dei dati inviati in attesa di ACK IV. Ricezione ACK dalla rete e misurazioni prestazionali V. Valutazioni globali sull'andamento della comunicazione Assolve all'instradamento, al bilanciamento carico, al monitoraggio dei canali e (implicitamente) alla ridondanza.
Multihoming 4 DUMMIES Compiti assolti? Proxy_receiver: I. Ricezione pacchetti dalla Rete II. Conferma dei pacchetti mediante ACK III. Ordinamento dei pacchetti ed estrazione del carico utile IV. Invio dei dati al Server reale Assolve alla consegna e al riordinamento