A Protocol Design of Communication State Transfer for Distributed Computing * Kasidit Chanchio Xian-He Sun Department of Computer Science Illinois Institute of Technology Chicago, IL 60616 kasidit, sun @cs.iit.edu Abstract This paper presents the design of a communication state transfer protocol to support process migration in a dynamic, distributed computing environment. In our design, pro- cesses in distributed computation communicate one another via message passing and are migration-enabled. Due to mo- bility, mechanisms to maintainreliability and correctness of data communication are needed. Following an event-based approach, such mechanisms are derived to handle various communication situations when a process migrates. These mechanisms collectively preserve the semantics of the com- munication and support efficient communication state trans- fer. 1 Introduction Process migration is a basic function of dynamic pro- gramming. It moves a running process from one com- puter to another. Motivations of process migration include load balancing, fault tolerance, data access locality, resource sharing, reconfigurable computing, and system administra- tion, etc [1]. Recent research shows process migration is necessary for achieving high performance via utilizing un- used network resources. Process migration is a fundamental technique needed for the next generation of internet compu- tation [2]. However, despite these advantages, process mi- gration has not been adopted in engineering practice due to its design and implementation complexities, especially in a large distributed environment. Snow [3] is a distributed environment supporting user- level process migration. Snow provides solutions for three problem domains for transferring computation state, mem- * This work was supported in part by National Science Foundation un- der NSF grant ASC-9720215, CCR-9972251, and by IIT under the ERIF award. ory state, and communication state of a process. Methods to transfer the execution and memory state have been devel- oped [3]. This paper presents a solution to transfer the com- munication state. Activities in a large-scale distributed environment are dy- namic in nature. Adding process migration functionality makes data communication even more challenging. A num- ber of fundamental problems have to be addressed. First, processes should be able to communicate one another from anywhere and at anytime. Process migration could occur during a communication. Mechanisms need to be developed to guarantee correct message arrivals. Second, the problem of updating location information of a migrating process has to be solved. After a process migrates, other processes have to know its new location for future communications. The updating technique should be scalable enough to apply to a large network environment. Finally, if a sequence of mes- sages are sent to a migrating process, correct message order- ing must be maintained. We have developed data communication and process mi- gration protocols working cooperatively to solve the afore- mentioned problems. This paper focuses on basic ideas be- hind our protocol design and discusses how the protocols work under various communication situations. Our protocol design is based on the concept of point-to-point connection- oriented communication. It aims to provide a robust and general solution for communication state transfer. Mecha- nisms to handle process state transfer are implanted into a number of communication operations which could occur at data communication end points. These operations include send and receive operations in the data communication pro- tocol and migration operation in the process migration pro- tocol. They coordinate one another during the migration to guarantee correct message passing. The protocols are natu- rally suitable for large-scale distributed environment due to their inherited properties. First, they are scalable. During a migration, the protocols coordinate only those processes di-