Abstract
This chapter presents several message-passing services, or channels for short.A channel allows a user at one location to transmit a message to be received by a user at another location. Because a channel is a service that is spread over different locations, users access the service via multiple systems, one at each location (unlike the previous lock service and bounded-buffer service). Specifically, a channel has a set of addresses, each identifying a location. (MAC addresses, IP addresses, and URLs are examples of addresses.) At each address there is a system within the channel, referred to as an access system, with which users interact. Figure 4.1 illustrates a channel where each access system provides functions tx(k,msg), to transmit message msg to address k, and rx(), to receive a message. Messages are sequences. We require channels to have at least one address. Although a channel with one address doesn’t do anything, it can be convenient for writing programs that use the channel.
Keywords
Input Function Service Program Access System Remote User Incoming MessageReferences
- 1.S. Banerjee, B. Bhattacharjee, C. Kommareddy, Scalable application layer multicast, in Proceedings of the 2002 Conference on Applications, Technologies, Architectures, and Protocols for Computer Communications, SIGCOMM ’02 (ACM, New York, 2002), pp. 205–217. doi:10.1145/633025.633045. http://doi.acm.org/10.1145/633025.633045
- 2.K.P. Birman, T.A. Joseph, Reliable communication in the presence of failures. ACM Trans. Comput. Syst. 5(1), 47–76 (1987). doi:10.1145/7351.7478. http://doi.acm.org/10.1145/7351.7478 Google Scholar
- 3.K.M. Chandy, L. Lamport, Distributed snapshots: determining global states of distributed systems. ACM Trans. Comput. Syst. 3(1), 63–75 (1985). doi:10.1145/214451.214456. http://doi.acm.org/10.1145/214451.214456
- 4.K.M. Chandy, J. Misra, The drinking philosophers problem. ACM Trans. Program. Lang. Syst. 6(4), 632–646 (1984). doi:10.1145/1780.1804. http://doi.acm.org/10.1145/1780.1804 Google Scholar
- 5.D. Comer, Internetworking with TCP/IP, 4th edn. Vol 1: Principles, Protocols, and Architectures (Prentice-Hall, Upper Saddle River, 2000)Google Scholar
- 6.D.E. Knuth, Verification of link-level protocols. BIT 21(1), 31–36 (1981)MathSciNetMATHGoogle Scholar
- 7.L. Lamport, Time, clocks, and the ordering of events in a distributed system. Commun. ACM 21(7), 558–565 (1978). doi:10.1145/359545.359563. http://doi.acm.org/10.1145/359545.359563
- 8.J.C. Lin, S. Paul, RMTP: a reliable multicast transport protocol, in Proceedings of the Fifteenth Annual Joint Conference of the IEEE Computer and Communications Societies Conference on the Conference on Computer Communications – Volume 3, INFOCOM’96 (IEEE Computer Society, Washington DC, 1996), pp. 1414–1424. http://dl.acm.org/citation.cfm?id=1895726.1895798
- 9.L.L. Peterson, B.S. Davie, Computer Networks: A Systems Approach, 3rd edn. (Morgan Kaufmann, San Francisco, 2003)Google Scholar
- 10.A.U. Shankar, Verified data transfer protocols with variable flow control. ACM Trans. Comput. Syst. 7(3), 281–316 (1989). doi:10.1145/65000.65003. http://doi.acm.org/10.1145/65000.65003
- 11.A.U. Shankar, S.S. Lam, An HDLC protocol specification and its verification using image protocols. ACM Trans. Comput. Syst. 1(4), 331–368 (1983). doi:10.1145/357377.357384. http://doi.acm.org/10.1145/357377.357384