Topical Prerequisities

Texts

ABET Category

Engineering Science: 67%Engineering Design: 33%

Course Goals

This course is a technical elective for ECE majors, and attracts a diverse set of students from the ECE and CS departments, ranging from juniors to graduate students. The objective of this course is to provide students with a foundation in distributed systems, with a basic introduction to computer networks. This course complements ECE/CS 438, which focuses on the fundamental concepts in computer networks. Through a combination of theoretical studies, practical protocol design, analytical problem solving, and open ended design problems, students develop the ability to critically evaluate distributed systems, understand the fundamental concepts in distributed systems, and design new solutions to adapt existing distributed systems to emerging technologies.

Instructional Objectives

A. By the time of exam #1 (after 13 lectures) the students should be able to do the following:

Impossibility Results: Understand impossibility results such as for distributed consensus, with the proof behind it. (a)

Large-Scale Systems: Understand the design of large-scale distributed systems such as peer-to-peer and sensor networks. (a,e)

Networking Basics: Understand the basics of networking, including 7-layer OSI reference model for computer networks, the functions of each layer, the concept of layering, the trade-offs between layered and unlayered protocol stacks, and the relationship between the lower 4 (network) layers with the higher 3 (end system) layers. Understand the basic concepts of packet-switching and circuit-switching, broadcast and point-to-point networks, and the distinction between computer telephony and computer networking. Understand the concepts of IP addressing and routing. Solve problems relating to source routing, virtual circuits, and datagram routing. Design the addressing scheme for simple IP networks with multiple subnetworks. Understand the specifications for IPv4 and IPv6, the current and emerging standards for the Internet network layer protocol. Differentiate between the concepts of IPv4 and IPv6, and understand the trade-offs between the two with respect to scalability, extensibility, support for multicast, and support for mobility. (a,c,k)

B. By the time of exam #2 (after 32 lectures) the students should be able to do the following:

RPCs: Understand the basics of Remote Procedure Call, and different flavors of it. Understand the concepts of stubs, stub generators, and marshalling parameters. (a)

Distributed File Systems: Understand the concepts and design of distributed file systems. Compare different types of file systems. Understand solutions for distributed file systems for different practical environments, such as a file system for partially connected operation, a file system for low bandwidth connectivity, and a web file system. (a)

Security: Understand authentication protocols using the public key/private key and shared key cryptosystems, and variants of the Needham Schroeder protocols. Study the Kerberos security protocol and design implementation variations of Kerberos. Study PGP and its applications. Understand the RSA key generation algorithm, and solve problems relating to the generation of public/private keys using RSA. (a,c,k)

In addition to the above topics, students are also exposed to the latest developments in networking and distributed systems, such as the evolution of the Internet and high speed networks, quality of service, CORBA, and WWW protocols. The reading material for these topics may be drawn form Internet Drafts and protocol standards, or published literature, thereby introducing students to current day developments and also building the bridge between the fundamental design principles in distributed systems to state-of-the-art applications of these principles. (e,j)