FIRE: Flexible Intra-AS Routing Environment



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)

Naming Service

(Dynamic DNS)

Session Initiation

Session Migration



Location Update

(DNS Update)

Mobile Host

Positioning Mobility Services


User space


Session Layer

Transport Protocol

Network Layer

Link Layer



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 vic vat wb






System Resources

Migrate Framework

Session Creation


Session Callbacks



Session Layer

Connectivity Updates

Transport Protocol

Network Layer

Link Layer



Policy Decisions

Robust Communication

• Handle disconnection

 Block or buffer sockets of reliable connections

 Proactively discard unreliable datagrams

• Restart transport layers?

 Rebind network endpoints

 Replay buffered data


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.


• 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