The Migrate Internet Mobility Project
Migrate is a new end-to-end framework for Internet mobility being developed at MIT's Lab for Computer Science. By providing a unified framework to support address changes and disconnectivity, Migrate allows legacy applications to adapt to today's highly-mobile environment, and provides mobile-aware applications with a robust set of system primitives for disconnectivity support, resource conservation, and rapid re-instantiation of network connections. Unlike current Internet mobility solutions, Migrate treats disconnection as a fundamental component of mobility, and enables applications to gracefully reduce their resource consumption during periods of disconnection and rapidly resume sessions upon reconnection.
The Migrate system currently has two main components: a session layer that handles the vast majority of mobility issues, and a highly-efficient TCP extension that supports the rapid rebinding of endpoints for established TCP connections.
Migrate support for UNIX is being developed as a user-level, session-layer library that manages session-based network activity and resource allocation for applications. Applications linked against the Migrate library communicate with a system-wide Migrate daemon, which monitors the status of open network connections, detects network partitions, and supports rebinding network connections across address changes.
Legacy applications are supported through TESLA, an interposition agent that allows the insertion of arbitrary session-layer services.
The Migrate and Migrate Permitted TCP options support the migration of an active TCP connection across IP addresses. A peer can migrate an open connection to any other IP address simply by sending a new SYN packet from the desired IP address with the Migrate option enabled. Security is provided through the use of a secret cryptographic cookie negotiated through an Elliptic Curve Diffie-Hellman exchange during the initial connection establishment as part of the Migrate Permitted option negotiation.
Since both the original and migrated connections use the same sequence space, acknowledgement flow is not disturbed by the new SYN exchange, and standard TCP semantics are preserved across the migration. Furthermore, unlike previous approaches, no modification is required to the TCP header or packet format, and no additional information is included in data packets, as opposed to proposed flow-identifier schemes.
We have also leveraged the end-to-end connection migration provided by the TCP Migrate Options to develop a novel approach server load balancing. Our system achieves connection-level fail-over across both local- and wide-area server replication, without requiring a front-end transport- or application-layer switch.
Migrate is an enabling technology for MIT's Project Oxygen, a lab-wide exploration into pervasive computing.
An initial version of the Migrate session layer toolkit is now available. The session layer can be compiled for many operating systems.
Unfortunately our TCP Migrate options are currently available only for Linux 2.2.
Enabling Internet Suspend/Resume with Session Continuations, Alex C. Snoeren, To appear in Proc. Student Oxygen Workshop '02, July 2002.
The Migrate Approach to Internet Mobility, Alex C. Snoeren, Hari Balakrishnan, and M. Frans Kaashoek, Proc. Student Oxygen Workshop '01, July 2001.
The Migrate Architecture
|CSAIL||E E C S||M I T|
M. I. T. Computer Science and Artificial Intelligence Laboratory · 32 Vassar Street · Cambridge, MA 02139 · USA