A Software Architecture for Network Communication
Anderson, David P.
Technical Report Identifier: CSD-87-386
November 30, 1987
Abstract: A distributed system is based on a layered set of abstractions of network communication. At a low level, current distributed systems use primitives such as datagrams, request/reply message-passing, reliable virtual circuits, or a combination of these. Future distributed systems will use high-performance large-scale communication networks, and will support a range of communication-intensive applications. What are the appropriate communication abstractions for such systems?
In answer to this question, we have developed a communication abstraction called Real-Time Message Streams (RMS). An RMS is a simplex (unidirectional) stream with several performance and security parameters. These parameters express 1) the needs of RMS clients (user program and communication protocols), and 2) the capabilities of the RMS provider (network and higher layers). This information can be used in two ways. First, RMS providers can eliminate unnecessary or redundant work, and can optimally schedule resources such as network bandwidth and CPU. Second, the RMS client can use the parameters to select optimal methods for achieving whatever reliability and flow control are needed.
RMS is the communication primitive of the DASH distributed system currently being developed at UC Berkeley. This paper describes 1) the RMS abstraction itself, 2) the role of RMS in the DASH communication architecture, and 3) techniques and algorithms for providing RMS at various system levels.