This paper describes a new model for constructing distributed systems called the Remote Memory Model. The remote memory model consists of several client machines, one or more dedicated machines called remote memory servers, and a communication channel interconnecting them. In the remote memory model, client machines share the memory resources located on the remote memory server. Client machines that exhaust their local memory move portions of their address space to the remote memory server and retrieve pieces as needed. Because the remote memory server uses a machineindependent protocol to communicate with client machines, the remote memory server can support multiple heterogeneous client machines simultaneously. This paper describes the remote memory model and discusses the advantages and issues of systems that use this model. It examines the design of a highly efficient, reliable, machine-independent protocol used by the remote memory server to communicate with the client machines. ...