UNIVERSITÀ DEGLI STUDI ROMA TRE Metodi e strumenti per lanalisi dellevoluzione dei rapporti tra fornitori e fruitori di servizi di connettività in Internet Candidato: Massimo Rimondini Relatore: prof. Giuseppe Di Battista Correlatori: Maurizio Patrignani Maurizio Pizzonia 28 Maggio 2003
2 Background: Autonomous Systems e BGP
3 STOP Background: Autonomous Systems e BGP AS1AS /24 Dati per /24 AS /24 Tabella BGP Tabella BGP Tabella BGP
4 Relazioni tra Autonomous Systems Provider Customer Provider Customer Provider Customer
5 Relazioni tra Autonomous Systems Peer
6 Inferenza delle relazioni
7 Inferenza delle relazioni: stato dellarte Lixin Gao, 2000: Grado degli AS Subramanian, Agarwal, Rexford, Katz, 2001: Multiple Vantage Points Di Battista, Patrignani, Pizzonia, 2002: Soddisfacibilità di Formule Logiche (2SAT) Tabelle BGP
8 Un ambiente per lanalisi dellevoluzione Efficace Flessibile Affidabile Portabile Chiaro Modulare
9 Architettura dellambiente (TORQUE) File1 Nodi File2 Archi File3 Orientazioni File Generatore di grafi differenziali File … File4 AS path Generatore di grafi Analizzatore di grafi Tabella BGP Estrattore di AS path
File Principio di utilizzo … Tabella BGP Estrattore di AS path Algoritmo di inferenza Lista AS path Orientazione Generatore di grafi File Tabella BGP Estrattore di AS path Algoritmo di inferenza Generatore di grafi File Lista AS path Orientazione Tabella BGP Estrattore di AS path Algoritmo di inferenza Generatore di grafi File Lista AS path Orientazione … File Generatore di grafi differenziali Analizzatore di grafi
11 Esempio di utilizzo Linux C++ tesi]$ tesi]$./tmakeGraph --file:pnec all.paths \ > --file:sd finalAssignment.1 -o final1.graph tmakeGraph 1.0 Reading nodes, edges, path covering file (step 1 of 2) `all.paths [********** ] ( 29.0 %) tesi]$./tmakeGraph --file:pnec all.paths \ > --file:sd finalAssignment.1 -o final1.graph tmakeGraph 1.0 Reading nodes, edges, path covering file (step 1 of 2) `all.paths [****************************** ] ( 79.0 %) tesi]$./tmakeGraph --file:pnec all.paths \ > --file:sd finalAssignment.1 -o final1.graph tmakeGraph 1.0 Reading nodes, edges, path covering file (step 1 of 2) `all.paths [****************************************] (100.0 %) tesi]$./tmakeGraph --file:pnec all.paths \ > --file:sd finalAssignment.1 -o final1.graph tmakeGraph 1.0 Reading nodes, edges, path covering file (step 1 of 2) `all.paths [****************************************] (100.0 %) Reading edge directions file (step 2 of 2) `finalAssignment.1 [*********** ] ( 30.0 %) tesi]$./tmakeGraph --file:pnec all.paths \ > --file:sd finalAssignment.1 -o final1.graph tmakeGraph 1.0 Reading nodes, edges, path covering file (step 1 of 2) `all.paths [****************************************] (100.0 %) Reading edge directions file (step 2 of 2) `finalAssignment.1 [****************************** ] ( 80.0 %) tesi]$./tmakeGraph --file:pnec all.paths \ > --file:sd finalAssignment.1 -o final1.graph tmakeGraph 1.0 Reading nodes, edges, path covering file (step 1 of 2) `all.paths [****************************************] (100.0 %) Reading edge directions file (step 2 of 2) `finalAssignment.1 [****************************************] (100.0 %) Saving graph to file... tesi]$./tmakeGraph --file:pnec all.paths \ > --file:sd finalAssignment.1 -o final1.graph tmakeGraph 1.0 Reading nodes, edges, path covering file (step 1 of 2) `all.paths [****************************************] (100.0 %) Reading edge directions file (step 2 of 2) `finalAssignment.1 [****************************************] (100.0 %) Saving graph to file... tesi]$ tesi]$./tdiffGraph final1.graph \ > final2.graph tesi]$./tdiffGraph final1.graph \ > final2.graph tdiffGraph 1.0 Reading graph file `final1.graph'... tesi]$./tdiffGraph final1.graph \ > final2.graph tdiffGraph 1.0 Reading graph file `final1.graph'... Reading graph file `final2.graph'... tesi]$./tdiffGraph final1.graph \ > final2.graph tdiffGraph 1.0 Reading graph file `final1.graph'... Reading graph file `final2.graph'... Computing differences... Nodes in 1st graph: only in 1st graph: 1289 Nodes in 2nd graph: only in 2nd graph: 3088 Common nodes: 9620 Edges in 1st graph: peering: 0 - directed: unoriented: 41 - only in 1st graph: 7873 * peering: 0 * directed: 7850 * unoriented: 23 Edges in 2nd graph: peering: 0 - directed: unoriented: 25 - only in 2nd graph: * peering: 0 * directed: * unoriented: 18 Common edges: oppositely dir.: differently dir.: consistently dir.: 15118
12 Algoritmo di inferenza: scelta ed ottimizzazione Lixin Gao: –implementazione disponibile Subramanian, Agarwal, Rexford, Katz: –implementazione non disponibile Di Battista, Patrignani, Pizzonia: –implementazione disponibile –possibilità di interagire con gli autori dellalgoritmo –ma… sviluppato in poco tempo poco efficiente
13 Algoritmo di inferenza: ottimizzazione Individuazione di operazioni critiche (profiling) Ottimizzazione –Copie aggiornamenti –Correzione del test di soddisfacibilità 1-2 oreIn seguito allottimizzazione orePrima dellottimizzazione Tempo totale per una computazione
14 Sperimentazione su situazioni significative Prove: –Stabilità –Coerenza Origine dati: –Sito Subramanian, Agarwal, Rexford, Katz 1 prove con lalgoritmo non ottimizzato anomalie nei dati –Archivio Oregon Route Views 2 indispensabile lalgoritmo ottimizzato molti dati disponibili, ad intervalli regolari periodo stabile ed instabile (informazioni da 3 )
15 Risultati della sperimentazione Settimana 25-31/03/03 98 %
16 Risultati della sperimentazione Settimane 25/09/01-08/10/01
17 Risultati della sperimentazione
18 Conclusioni e problemi aperti Ambiente funzionale Nuove prospettive aperte in seguito allottimizzazione Ottima stabilità –Scarsa sensibilità ad oscillazioni nelle informazioni di routing –Oscillazioni quasi soltanto su archi poco importanti Grafi delle relazioni Exchange points Gradi di libertà Peering, sibling e backup Best practice