The Case for a Unified Extensible Data-centric Mobility Infrastructure Data-centric Mobility Infrastructure Yun Mao, Boon Thau Loo Zachary Ives Jonathan M Smith Zachary Ives, Jonathan M. Smith University of Pennsylvania Aug 27 2007 Aug 27, 2007 Project funded by NSF NeTS-0721845
Motivation Motivation • Mobile environment is the driving force of the M bil i t i th d i i f f th Internet architecture redesign – New environment diversified wireless technologies New environment, diversified wireless technologies – New applications and services • Naming, location-aware, context-aware services, etc • Current network architecture is not extensible to meet the demand – Slow adoption of Mobile IP, IPv6 Slow adoption of Mobile IP IPv6 – Too many custom made overlay networks – Emerging networks: sensor, DTN Emerging networks: sensor, DTN • Problem: the architecture is tightly coupled with implementation 2
Our approach: a declarative architecture • Core idea: separate logical specification from physical implementation: – “Ask for what you want, not how to implement it” – SQL vs C in the 70s imperative approach declarative approach goal goal Decide how to declare goal implement System decides how to implement network network network 3
What is the right high-level abstraction in mobile networks? • Network state as distributed data N t k t t di t ib t d d t – Router state – Mobile home agent state Mobile home agent state – Service description – Network load • Cross-layer info as data C f – All kinds of link/physical layer state – Session state Session state – Application state • Network protocol: query of distributed data – Network state can be maintained using declarative queries – Optimization decisions as cross-layer data manipulation 4
Declarative Networks - data-centric approach to networking messages Dataflow Dataflow messages Dataflow messages Dataflow Dataflow Declarative query Declarative query Dataflow Declarative Networks Traditional Networks Network State Distributed db tables Declarative Query Execution Declarative Query Execution Network protocol Network protocol Distributed Dataflow Network messages 5
Datalog: a declarative language Datalog: a declarative language Datalog rule syntax: Datalog rule syntax: < result> ← < condition1> , < condition2> , … , < conditionN> . Head H d Body d • Similar to Prolog Si il t P l • Types of conditions in body: – Input tables: link(src,dst) predicate – Arithmetic and list operations • Head is an output table – Recursive rules: result of head in rule body y 6
Routing as a Query Routing as a Query R1: reachable(S,D) ← link(S,D) R2: reachable(S,D) ← link(S,Z), reachable(Z,D) “For all nodes S,D, link(a,b) – “there is a link from node a to node b ” If th If there is a link from S to D, then S can reach D”. i li k f S t D th S h D” reachable(a,b) – “node a can reach node b ” “For all nodes S,D, if there is a link from S to Z, and there is a path from Z to D, then S can reach D”. Input: link(source, destination) Output: reachable(source, destination) 7
Network Datalog (NDLog) Network Datalog (NDLog) • A distributed variant of Datalog – express distributed computation over network state p p – Compiled into distributed data flows, and executed by query processors (i.e. routers) • Concise yet expressive: – Textbook routing protocols (3-8 lines) g p ( ) • Distance-vector, dynamic source routing, path-vector • QoS routing – Chord DHT (48 lines) • Efficiency y 8
NDLog Examples in Mobile Networks NDLog Examples in Mobile Networks • Mobile home agent selection for overlays – i3 / Roam (16 lines) ( ) – DHARMA (10 lines) • Naming N i • Customizable routing • Service discovery and composition T1 leastLoad(@PI, SI, min<L>) :- proxy(@SI, P, PI), transcoders(@PI, TI, TID, L). T1 l tL d(@PI SI i <L>) (@SI P PI) t d (@PI TI TID L) T2 bestTranscoder(@SI, TI, TID) :- transcoders(@PI, TI, TID, L), leastLoad(@PI, SI, L). Query bestTranscoder(@SI, TI, TID). Q y (@ , , ) 9
Declarative Mobile Networking (at 30000 feet) Agent 6 Mobile Host M bil H t Agent 1 Agent 2 C Correspondent d t Host Agent 5 Agent 4 A Agent 3 t 3 Out-of-band deployment of distributed queries by ISPs 10
Declarative HA Selection Declarative HA Selection Agent 6 Mobile Host M bil H t Agent 1 Agent 2 Correspondent C d t Host Agent 5 Agent 4 ClosestAgent Mapping Table ClosestAgent Mapping Table A Agent 3 t 3 IP Range Closest Agent Query: 158 130 0 0/16 158.130.0.0/16 Agent 1 Agent 1 ClosestAgent(@A3, MH, HA) …. Agent 2 11
Declarative HA Selection Declarative HA Selection Agent 6 Mobile Host M bil H t Agent 1 Agent 2 C Correspondent d t Host Agent 5 Agent 4 ClosestAgent Mapping Table ClosestAgent Mapping Table Agent 3 A t 3 IP Range Closest Agent ClosestAgent(@A3, MH, Agent1) g (@ , , g ) 158 130 0 0/16 158.130.0.0/16 Agent 1 Agent 1 …. Agent 2 12
Mobile IP Mobile IP Mobility binding table Home address Care of address Home Agent IP1 Mobile Node 13
Mobile IP Mobile IP Mobility binding table Home address Care of address HomeIP HomeIP IP1 IP1 register g Home Agent IP1 Mobile Node 14
Mobile IP Mobile IP Mobility binding table Home address Care of address HomeIP HomeIP IP2 IP2 Home Agent update IP2 Mobile Node 15
QoS-aware routing: low latency QoS-aware routing: low latency QUERY: bestPath(@Src, Dest, Path) Agent 6 M bil H Mobile Host t Agent 1 Agent 2 Correspondent C d t Host Agent 5 Agent 4 Agent 3 A t 3 R1: path(@S,D,P,C) ← closestAgent(@NI,S), link(@S,D,C), P:=(S,D). R2: path(@S,D,P,C) ← link(@S,Z,C 1 ), path(@Z,D,P 2 ,C 2 ), C:=C 1 +C 2 , P:=(S, P 2 ) R3: bestPathCost(@S,D,min<C>) ← path(@S,D,Z,C). R3 b tP thC t(@S D i C ) th(@S D Z C) R4: bestPath(@S,D,P,C) ← bestPathCost(@S,D,C), path(@S,D,P,C). 16 Query: bestPath(@S,D,P,C)
QoS-aware routing: low latency QoS-aware routing: low latency Return( list<agent1, agent2>) Agent 6 M bil H Mobile Host t Agent 1 Agent 2 C Correspondent d t Host Agent 5 Agent 4 Agent 3 A t 3 R1: path(@S,D,P ,C) ← closestAgent(@NI,S), link(@S,D,C), P:= (S,D). ,C) ← link(@S,Z,C 1 ), path(@Z,D,P 2 ,C 2 ), C:= C 1 + C 2 , P:= (S, P 2 ) R2: path(@S,D,P R3: bestPathCost(@S,D,min<C>) ← path(@S,D,Z,C). R3 b tP thC t(@S D i C ) th(@S D Z C) R4: bestPath(@S,D,P,C) ← bestPathCost(@S,D,C), path(@S,D,P,C). 17 Query: bestPath(@S,D,P ,C)
QoS-aware routing: low latency QoS-aware routing: low latency Agent 6 M bil H Mobile Host t Agent 1 Agent 2 C Correspondent d t Host Agent 5 Agent 4 Agent 3 A t 3 R1: path(@S,D,P ,C) ← closestAgent(@NI,S), link(@S,D,C), P:= (S,D). ,C) ← link(@S,Z,C 1 ), path(@Z,D,P 2 ,C 2 ), C:= C 1 + C 2 , P:= (S, P 2 ) R2: path(@S,D,P R3: bestPathCost(@S,D,min<C>) ← path(@S,D,Z,C). R3 b tP thC t(@S D i C ) th(@S D Z C) R4: bestPath(@S,D,P,C) ← bestPathCost(@S,D,C), path(@S,D,P,C). 18 Query: bestPath(@S,D,P ,C)
QoS-aware routing: high b/w QoS-aware routing: high b/w QUERY:bestPath(@Src,Dest,Path) Agent 6 Mobile Host M bil H t Agent 1 Agent 2 C Correspondent d t Host Agent 5 Agent 4 Agent 3 A t 3 R1: path(@S,D,P ,C) ← closestAgent(@NI, S), link(@S,D,C), P:= (S,D). ,C) ← link(@S,Z,C 1 ), path(@Z,D,P 2 ,C 2 ), C:= min(C 1, C 2 ) , P:= (S, P 2 ) R2: path(@S,D,P R3: bestPathCost(@S,D, max <C>) ← path(@S,D,Z,C). R3 b tP thC t(@S D C ) th(@S D Z C) R4: bestPath(@S,D,P,C) ← bestPathCost(@S,D,C), path(@S,D,P,C). 19 Query: bestPath(@S,D,P ,C)
QoS-aware routing: high b/w QoS-aware routing: high b/w Return( list<agent5, agent2>) Agent 6 Mobile Host M bil H t Agent 1 Agent 2 C Correspondent d t Host Agent 5 Agent 4 Agent 3 A t 3 R1: path(@S,D,P ,C) ← closestAgent(@NI,S), link(@S,D,C), P:= (S,D). ,C) ← link(@S,Z,C 1 ), path(@Z,D,P 2 ,C 2 ), C:= min(C 1, C 2 ) , P:= (S, P 2 ) R2: path(@S,D,P R3: bestPathCost(@S,D, max <C>) ← path(@S,D,Z,C). R3 b tP thC t(@S D C ) th(@S D Z C) R4: bestPath(@S,D,P,C) ← bestPathCost(@S,D,C), path(@S,D,P,C). 20 Query: bestPath(@S,D,P ,C)
QoS-aware routing: high b/w QoS-aware routing: high b/w Agent 6 M bil H Mobile Host t Agent 1 Agent 2 C Correspondent d t Host Agent 5 Agent 4 A Agent 3 t 3 R1: path(@S,D,P ,C) ← closestAgent(@NI,S), link(@S,D,C), P:= (S,D). ,C) ← link(@S,Z,C 1 ), path(@Z,D,P 2 ,C 2 ), C:= min(C 1, C 2 ) , P:= (S, P 2 ) R2: path(@S,D,P R3: bestPathCost(@S,D, max <C>) ← path(@S,D,Z,C). R3 b tP thC t(@S D C ) th(@S D Z C) R4: bestPath(@S,D,P,C) ← bestPathCost(@S,D,C), path(@S,D,P,C). 21 Query: bestPath(@S,D,P ,C)
Multiple Overlay-based architectures ROAM Mobile IP DHARMA Mobile Node 22
Implementation Implementation • Built on P2 declarative networking system • Built two overlay networks for mobility Built two overlay networks for mobility. – ROAM, DHARMA • Tested on Emulab with 200 nodes – Performance comparable to the native p implementation 23
Recommend
More recommend