Distributed Systems: Concepts and Design
The chapter does not assume any prior knowledge of computer networks, although the objectives and pace of study will differ considerably depending on whether students have taken an earlier networks course.
For students who have not previously studied computer networks: The main objective is to provide an understanding of the concepts and principles of local and wide-area computer networking and their impact on the design of distributed systems. This leads to an emphasis on Sections 3.2 and 3.3 dealing with network types and network principles. A second objective is to understand the basic operation of the Internet; as described in subsections 3.4.1-3 and 3.4.6-7. The case studies in Section 3.5 deal with some important technologies; the depth to which they are studied can be varied according to curriculum needs.
For students who have previously studied computer networks: The objective is to recapitulate and update existing knowledge of network principles, and to gain up-to-date knowledge of the Internet's infrastructure including topics such as classless inter-domain routing (CIDR), MobileIP and firewalls and to acquire knowledge of network technologies such as ATM and wireless LANs.
For all students, there should be an emphasis on the support required by open distributed systems and applications (including multimedia applications) and the evaluation of network technologies against those requirements.
Latency of communication is at least as important for distributed system performance as data transfer rate. The performance of distributed systems is determined by the speed and latency of end-to-end communication (sending process to receiving process) and not just the network performance. The software delays in the sending and receiving machines nearly always swamp the network transmission delays in determining the speed of communication, except for very heavily loaded networks or very high bandwidth applications.
Networks are highly reliable, whereas client and server computers and their software often aren't, so error detection and recovery is best performed end-to-end at the highest feasible level.
The TCP/IP and UDP suites are dominant, even for distributed systems implemented solely over local area networks. Since these are internetwork protocols, it is important to emphasize the layering of IP (the network layer protocol of the Internet) over various network-layer protocols for different physical networks.
For the majority of distributed applications, the choice of underlying protocols is unimportant once satisfactory RPC and (where applicable) multicast communication services are available. But the emergence of distributed multimedia applications has resulted in a new set of performance and quality-of-service requirements and these have stimulated the development of real-time protocols. These are dealt with mainly in Chapter 15.
The conceptualization of the basic communication models - store-and-forward packet switching, packet routing, broadcast with collision detection (CSMA/CD) as in Ethernet, packet relay as in ATM, and wireless protocols - can cause difficulty to students without previous networking knowledge. This leads to difficulty in evaluating the effect of a particular communication model on the potential performance of distributed systems - for example, routing delays in store-and-forward networks are variable and can be quite large. These distinctions should be emphasized and related to the case studies - for example, routing delays are variable even in ATM networks, but they are much smaller, and wireless networks have substantially different reliability characteristics.
For students without previous network knowledge, allow plenty of time for the treatment of protocol layering, routing algorithms and the Internet protocols.