Reconsidering Internet Mobility Alex C Snoeren Hari Balakrishnan
Reconsidering Internet Mobility Alex C. Snoeren, Hari Balakrishnan, M. Frans Kaashoek MIT Laboratory for Computer Science
A Model of Mobility • Hosts change attachment point § Move from home, to office, to … § Use multiple physical technologies • Mobility events are rare § When compared with packet RTTs • Long Running Applications § SSH Tunnels § Streaming apps
Services Required • Locate the mobile host or service • Preserve communication § Support changes in network attachment • Expect and support disconnection § Gracefully detect lack of connectivity § Conserve resources during disconnection § Reconnect quickly and efficiently Keep the application informed!
Naming is not Enough • Naming can abstract location details § E. g. , Mobile IP uses “home IP address” § But specifies both timing and granularity • Mobility is more than a naming problem § Apps need different semantics (IP, DNS) § Handle resolution failures (disconnection) § Lookup granularity is application specific Don’t prescribe a naming scheme!
The Problem with Proxies OProxies provide transparency § Applications oblivious to changes § Must highly engineer and place well ü End host support more flexible § Can integrate with other resources § Simplifies trust model § Can be equally transparent WAP Proxy
Migrate Architecture Location Query (DNS Lookup) Location Update (DNS Update) Naming Service (Dynamic DNS) Session Initiation Session Migration Correspondent Host Mobile Host foo. bar. edu xxx yyy
Positioning Mobility Services Generality User space Application Session Layer Kernel Transport Protocol Network Layer Link Layer Transparency
Migrate Approach • Provide services in a Session Layer § Applications define what a “session” is: • A single RPC-like packet exchange • A bundle of semantically-related streams • Or any combination in between • Manage sessions as a group • Resources can be associated with network activity, and allocated accordingly • Support is strictly optional
Session Layer Services • Provide robust communication across changes of end-point addresses § Resynchronize transport protocols • Detect and handle disconnectivity § Buffer, discard, or distill connections • Manage related system resources § Memory, timers, files, devices • Marshall and store session state
A Conference Session User space Kernel vat Application Resources Session Layer vic Distill Discard wb Buffer System Resources
Migrate Framework Session Creation Connectivity Monitor Application Session Layer Session Callbacks Policy Engine Transport Protocol Connectivity Updates Network Layer Link Layer Policy Decisions
Robust Communication • Handle disconnection § Block or buffer sockets of reliable connections § Proactively discard unreliable datagrams Application Session Layer • Restart transport layers? § Rebind network endpoints § Replay buffered data TCP
Disconnection and Hibernation • Monitor network connectivity § Exploit transport/network layer signals § Support application hints § Interface with network monitoring agents • Support application-dependent behavior § Default handlers can spool to disk § Virtualize remote services § Invoke application-specific handlers
Resource Management • Notify application to hibernate § Blocked apps can be swapped out § Shared files and devices can be released • System resources can be reallocated § Similar to Resource Containers § Timers, locks, semaphores released § Buffer space drained/paged
State Management • Enable state migration § Associate application and system state § Transfer from kernel to app, host to host • Context management § State may depend on path characteristics § Support transcoding, different transport protocol, etc.
Summary • Mobility services are session oriented § Often several related network activities • Naming neither necessary nor sufficient § Applications have different needs • Resource management is key § Especially with large numbers of hibernated sessions • Sessions enable state management
- Slides: 16