Download Routing Algebras

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
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
QV
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
QV
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


AB  ( 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!
AB
Scoped Product
BGP  EBGPIBGP
Scoped Product : Monotonicity Preservation
A
B
AB
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?
Related documents