FIRE: Flexible Intra-AS Routing Environment
Download
Report
Transcript FIRE: Flexible Intra-AS Routing Environment
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
Proxies 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.xxx.xxx.xxx
yyy.yyy.yyy.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
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