160 likes | 171 Views
Explore a model of mobility for Internet services, covering host transitions, resource conservation, session layer services, and more. Effective resource management and state migration are essential for session-oriented mobility services.
E N D
ReconsideringInternet 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!
End host support more flexible • Can integrate with other resources • Simplifies trust model • Can be equally transparent WAP Proxy The Problem with Proxies • Proxies provide transparency • Applications oblivious to changes • Must highly engineer and place well
Location Query (DNS Lookup) Location Update (DNS Update) Naming Service (Dynamic DNS) Session Initiation Session Migration Mobile Host foo.bar.edu yyy.yyy.yyy.yyy Migrate Architecture Correspondent Host xxx.xxx.xxx.xxx
Positioning Mobility Services Application Generality User space 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
vic Distill vat Discard wb Buffer A Conference Session User space Kernel Session Layer Application Resources System Resources
Session Creation Session Callbacks Connectivity Monitor Policy Engine Transport Protocol Network Layer Link Layer Connectivity Updates Policy Decisions Migrate Framework Application Session Layer
TCP TCP Robust Communication • Handle disconnection • Block or buffer sockets of reliable connections • Proactively discard unreliable datagrams • Restart transport layers? • Rebind network endpoints • Replay buffered data Application Session Layer
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