Survey
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
Metarouting and Network Optimization (work in progress) [email protected] [email protected] CISS 2006 The Current Situation • IP Connectivity is implemented with dynamic routing protocols • These protocols are few in number • Existing protocols tend to get in the way of network optimization, network analysis Routing Algebras (Sobrinho) A (,,, 0,1 ) 1970s 1980s: Path Algebra = Idempotent semiring. Carre’, Gondran & Minoux A (, ,, 0) 2002: Algebra and Algorithms for QoS Path Computation and Hop-by-Hop Routing in the Internet. A (, , ,,0) 2003: Network Routing and Path Vector Protocols: Theory and Applications. Routing Algebras Generalized Routing Algebras (Gurney & Griffin, ongoing work) A ( S , L,) S (, ) L ( ,) This is a pre-order A semi-group is a semi-group action on (1 2 ) 1 (2 ) Big Picture Routing Algebras Path Algebras Generalized Routing Algebras “Best” Routes min (S ) { S | S : } For finite, non-empty S Total order min( S ) { } Partial order min( S ) {1 , 2 ,, n } i # j Total pre-order Pre-order min( S ) {1 , 2 ,, n } i j min( S ) S1 S 2 S n , Si : Si S j : # Weighted Graph, solution G (V , E , w : E ) (v, s) min {w( P) | v s} P w( s ) s w( u, v, ) (u, v) w( v, ) w( P) ( P) s Generalized Dijkstra for all v in V: d[v] 0 d[s] s QV while Q not empty: choose u in Q with d[u] in min{d[v] | v in Q}; Q Q - {u}; for all v in V with (u, v) in E: if d[v] > (w(u, v) d[u]) then: d[v] w(u, v) d[u]; Generalized Bellman-Ford for all v in V: d[v] 0 d[s] s QV for i in {1, 2, ..., |V| - 1} for all (u, v) in E if d[v] > (w(u, v) d[u]]) then d[v] w(u, v) d[u] -- Negative weight cycle detection for (u, v) in E if d[v] > (w(u, v) d[u]) then: return false -- Found “neg-weight” cycle return true -- No “neg-weight” cycle Some Important Properties Monotonicity (M) : Strict monotonicity (SM) : Isotonicity (I) : Strict isotonicity (SI) : ( 0) What makes these algorithms work (for bounded path algebras)? • Dijkstra – Correctness proof uses monotonicity and isotonicity, – Loop-freedom for hop-by-hop forwarding uses strict monontonicity. • Bellman-Ford – Correctness proof uses monotonicity, – Loop-freedom for hop-by-hop forwarding uses strict monotonicity Metarouting (Griffin & Sobrinho 2005) • A meta-language for Routing Algebras – Base algebras – Constructors • Property Preservation Rules – Properties of base algebras known, – Preservation rules for each constructor • Can be implemented, standardized Direct Product ( S A , L A , A) ( S B , L B , B ) ( S A S B , L A L B , A B ) (1 , 1 ) ( 2 , 2 ) (1 A 2 ) (1 B 2 ) ( , ) (A , B ) (A A , B B ) Direct Product ( S A , L A , A) ( S B , L B , B ) ( S A S B , L A L B , A B ) (1 , 1 ) ( 2 , 2 ) (1 A 2 ) (1 B 2 ) A B A B A B A B M M M I I I SM M M SI I I M SM M I SI I SM SM SM SI SI SI Distance x Bandwidth London Prague Moscow (100, 30) (311, 70) (10, 80) (200, 30) Paris Rome (250, 90) P = Rome Prague Moscow = (300, 30) Q = Rome Paris London Moscow = (571, 70) min {w(P), w(Q)} = {(300, 30), (571, 70)} The corresponding path algebra gives glb {(300, 30), (571, 70)} = (300, 70) Lexicographic Product ( S A , L A , A) ( S B , L B , B ) ( S A S A , L A L B , A B ) (1 , 1 ) ( 2 , 2 ) (1 A 2 ) ((1 A 2 ) (1 B 2 )) Property Preservation with Lex Product A B A B M M SM M SM A B A B M EQ,SI I I SM EQ,SI SI SI SM A design pattern: EQ EQ EQ ( EQ ) SM A1 A2 Ai 1 Ai An All at least M SM Don’t care! Local Preference, Origin Preference A (S A ( A , A ), L A ( A , A ), A) LP( A) (S A , L ( A ,),l ) l OP( A) (S A , L ({},),r ) r (Always M) Disjoint Union ( S , L A , A) ( S , L B , B ) ( S , L A L B , A B ) left (A ) A A right (B ) B B Disjoint Union : Property Preservation A B A B A B A B M M M I I I SM M M SI I I M SM M I SI I SM SM SM SI SI SI Scoped Product AB ( A LP( B)) (OP ( A) B) ( , ) (A , ) (A A , ) ( , B ) ( , B B ) Q : What is a good mathematical framework for the analysis of routing algebra metalanguages? A : CATEGORY THEORY! AB Scoped Product BGP EBGPIBGP Scoped Product : Monotonicity Preservation A B AB SM M M SM SM SM Dependent Lexicographic Product Ai ((i , i ), Li ,i ) A i {0,1,, n} : Ai {( i, )} i{0 ,1,, n} Ai A ((, ), (,),) {( i, )} i{0 ,1,, n} i (i, ) ( j, ) (i j ) ((i j ) ( i )) (i, i ) i j (i, ) ( j , ) 0 i j An application… This can be viewed as an instance of A i {0,1,, n} : Ai Operations at the Protocol Level A0 A1 i {0,1} : Ai P1 ( A B, M ) P2 ( A, M A ) ( B, M B ) ( A B, M A M B ) B A B A B A B A B A B A A B A B A B …or ( A, M A ) ( B, M B ) ( A B, M A M B ) B A B A A A B A Adjacencies of B supported by connectivity of provided by A Think of A = OSPF and B = IBGP …. OSPF Revisited ( Areas, bellman ) ( IntraArea, Dijkstra) Something like (max{ 0,1}) ( flat ( Seq(2))) Something like i {0,1,2} : Ai where A0 SP (shortest paths) A1 OP(...) A2 OP(...) Challenge • If you could “roll your own” routing protocols, what would you do? • How does this kind of flexibility change the way you might think about network optimization?