Message-Passing Services

  • A. Udaya Shankar


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.


Input Function Service Program Access System Remote User Incoming Message 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 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.
  2. 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. Google Scholar
  3. 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.
  4. 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. Google Scholar
  5. 5.
    D. Comer, Internetworking with TCP/IP, 4th edn. Vol 1: Principles, Protocols, and Architectures (Prentice-Hall, Upper Saddle River, 2000)Google Scholar
  6. 6.
    D.E. Knuth, Verification of link-level protocols. BIT 21(1), 31–36 (1981)MathSciNetMATHGoogle Scholar
  7. 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.
  8. 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.
  9. 9.
    L.L. Peterson, B.S. Davie, Computer Networks: A Systems Approach, 3rd edn. (Morgan Kaufmann, San Francisco, 2003)Google Scholar
  10. 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.
  11. 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.

Copyright information

© Springer Science+Business Media New York 2013

Authors and Affiliations

  • A. Udaya Shankar
    • 1
  1. 1.Department of Computer ScienceUniversity of MarylandCollege ParkUSA

Personalised recommendations