Study Guide for CS451 Midterm

1.    The PDFs of the class notes (which can be found at http://www.cs.virginia.edu/~humphrey/cs451) for 1/18 through the end of class on Friday March 16 (the make-up class)

2.   “A Note on Distributed Computing”

3.   The material from the first 9 chapters of Distributed System: Concepts and Design, 4th edition (pages 1-396), except:

1.    Section 3.5 (“Case studies: Ethernet, WiFi, Bluetooth, and ATM”)

2.   Section 4.5 (“Group communication”)

3.   Chapter 6 (“Operating System Support”, p.207-250): Note: We did not cover this specifically in class because I expect you to learn this material in CS414. I will not specifically ask a question on this material, but it is beneficial to know (it clearly relates to other topics in the class).

4.   The details of the cryptographic algorithms of Section 7.3

5.   The following case studies in Section 7.6: Needham-Schroeder, Kerberos, 802.11 WiFi (Note: you must know the TLS Case Study)

6.   Section 8.5 (“Enhancements and further developments”)

7.   Section 9.4 (“Case study of the Global Name Service”)

8.   Section 9.5 (“Case study of the X.500 Directory Service”)

4.   Assignment #1 and Assignment #2

1.    A small number of short answer (at most a three-sentence answer)

2.   A small number of longer answer (similar in spirit to the homework questions. NOTE: I might ask you to write some code and/or analyze some code)

 

Material to Know from the Text

 

Chapter 1: Characterization of Distributed Systems 

·        Examples of distributed systems

·        Resource sharing and the Web

·        Challenges (Heterogeneity, Openness, Security, Scalability, Failure Handling, Concurrency, Transparency)

·        Five particularly good exercises: 1.1, 1.7, 1.8, 1.11, 1.13

Chapter 2: System Models

·        Difficulties for and threats to distributed systems

·        Architectural models (platform vs. middleware; client-server model; peer processes; interfaces and objects; design requirements: responsiveness, quality of service, use of caching and replication, dependability)

·        Fundamental models (interaction model: synchronous vs. asynchronous; failure model: omission failures, arbitrary failures, timing failures, masking failures; security model: threats, risks, cryptography, denial of service)

·        Five particularly good exercises: 2.5, 2.6, 2.8, 2.10, 2.15

Chapter 3: Networking and Internetworking

·        Issues: performance, scalability, reliability, security, mobility, quality of service, multicasting

·        Types of network: LAN, WAN, MAN, wireless

·        Network principles: packets, data streaming, switching schemes, protocols, ISO OSI, routing, congestion control, internetworking

·        Internet protocols: IP addressing, IP protocol, IP routing, IPv6, TCP and UDP, firewalls

·        Five particularly good exercises: 3.1, 3.8, 3.10, 3.16, 3.17

Chapter 4: Interprocess Communication

·        API for the Internet protocols: sockets, UDP datagrams, TCP streams

·        External data representation and marshalling: CDR, Java object serialization, remote object references

·        Client-server communication: request-reply protocol

·        Case study: interprocess communication in UNIX

·        Five particularly good exercises: 4.7, 4.9, 4.17, 4.18, 4.19,

Chapter 5: Distributed Objects and Remote Invocation

·        Communication between distributed objects: object model, distributed objects, remote object references, remote interfaces, design issues for RMI, implementation of RMI, distributed garbage collection

·        Remote procedure call: Sun RPC case study

·        Events and notifications

·        Java RMI case study

·        Five particularly good exercises: 5.2, 5.5, 5.12, 5.13, 5.14

Chapter 7: Security

·        Threats and attacks

·        Overview of security techniques: cryptography, uses of cryptography, certificates, access control, credentials, firewalls

·        Basics of Cryptographic algorithms (symmetric vs. asymmetric)

·        Basics of Digital signatures (digital signing, digest functions, certificate standards

·        Cryptography pragmatics (performance, politics of cryptography)

·        Case study: TLS

·        Five particularly good exercises:  7.1, 7.2, 7.3, 7.4, 7.5

Chapter 8: Distributed File Systems

·        Distributed file systems requirements (transparency, concurrent file updates, file replication, heterogeneity, fault tolerance, consistency, security, efficiency)

·        File service architecture: directory service, client module, flat file service

·        Sun Network File System: VFS, access control and authentication, mount service, automounter, client caching, server caching

·        The Andrew File System

·        Five particularly good exercises: 8.1, 8.5, 8.9, 8.12, 8.17

Chapter 9: Name Services

·        Name services and the Domain Name System

·        Directory services

·        Five particularly good exercises: 9.1, 9.2, 9.5, 9.7, 9.10