Nowadays, individuals are surrounded by several personal multimedia capable devices. This can leverage ubiquitous computing. Yet, in recent years, multimedia applications have increased their popularity and demand. These two factors have been the main motivation forces to retake process migration research. We focus on process migration to enable ubiquitous computing with multimedia application requirements, such as bandwidth and time constrains. We call applications designed for process migration mobile applications. This thesis addresses the connection mobility challenges in process migration between networked devices, while fulfilling multimedia applications requirements.
We present the design, implementation and evaluation of a user-space socket migration solution called SOCKMAND. SOCKMAND enables mobile applications to resume their connections on other remote nodes after a migration. The work is motivated by research on process migration for regular consumers within their own Migration Community, an overlay of personal devices. SOCKMAND supports legacy corresponding hosts, hosts which do not include any logic concerning the socket migration. This is achieved by introducing a Migration Community Access Point (MCAP). An MCAP acts as a proxy server between the two endpoints of a socket. SOCKMAND uses IP in UDP tunnels to transfer packets between the node with the mobile application and the MCAP. We utilize libpcap and raw sockets to achieve a user-space implementation. Libpcap and raw sockets can capture and send raw IP packets from user-space. TCP and UDP are implemented in user-space. UNIX domain sockets provide the inter-process communication between mobile applications and SOCKMAND. We do our evaluation of SOCKMAND both by using analytical modeling as well as measurements on our implementation. The measurements are done on heterogeneous devices to determine if these devices are capable of running SOCKMAND with multimedia applications, like video conferencing.
Our evaluation shows that SOCKMAND is capable of utilizing the full bandwidth of various devices given a large enough packet size. We show that CPU load in MCAP and endpoints correlate to the number of packets per second, and not the bandwidth. This shows that application programmers should use larger packet sizes, when possible, to reduce CPU load. The round-trip time overhead introduced by Migration Community Access Points is negligible. SOCKMAND is able to support multimedia applications based on our requirements.