ECE 428
Distributed Systems

Section Type Times Days Location Instructor
P3 LCD 1400 - 1515 T R   1320 Digital Computer Lab  Indranil Gupta
P4 LCD 1400 - 1515 T R   1320 Digital Computer Lab  Indranil Gupta
Web Page http://courses.engr.illinois.edu/ece428/spring2012/index.shtml
Official Description Course Information: Same as CS 425. See CS 425.
Subject Area Computer Engineering
Course Prerequisites Credit in CS 241 or ECE 391
Course Directors Nitin H Vaidya
Detailed Description and Outline

To teach software principles involved in computer networks.

Topics:

  • Introduction: Examples of computer networks and distributed systems; concept of layered architecture; ISO reference model of Open System Interconnection
  • Overview of communication subnetworks: Physical layer protocol issues; data link layer protocols; network layer protocol issues (virtual circuits vs. tachogram; local-area network architectures; satellite and packet radio networks; point-to-point packet switched networks; models of network interconnection; standard network access protocols)
  • Transport and session protocol design issues: Transport and connection and connection establishment; flow control and buffering; synchronization in distributed environment; multiplexing; crash recover; networking facilities in well-known systems.
  • Presentation layer protocols: Terminal handling and protocols; file transfer protocol design issues; network security and privacy; standard for presentation of layer protocols
  • Distributed operating system design: Models and primitives of distributed computing; distributed resource management and scheduling (file allocation, load sharing, task assignment, etc.; current topics)
  • Distributed database systems: Distributed database systems; concurrency control and synchronization; current topics; examples of distributed database systems

Same as CS 425.

Computer Usage
Several machine problems, each of which is a problem statement to be solved by writing and debugging a computer program.
Topical Prerequisities
  • Data structures
  • Assembler language principles
Texts
Coulouris, Dollimore & Kindberg, Distributed Systems: Concepts and Design, 4th Edition, Addison-Wesley.
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:

  1. Basics: Understand the basics of time synchronization, causality, logical timestamps, vector timestamps, etc. (a)
  1. Classical Problems: Understand seminal solution to classical distributed computing problems such as global snapshots, mutual exclusion, leader election, multicast, and failure detectors, etc. (a)
  1. Impossibility Results: Understand impossibility results such as for distributed consensus, with the proof behind it. (a)
  1. Large-Scale Systems: Understand the design of large-scale distributed systems such as peer-to-peer and sensor networks. (a,e)
  1. 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:

  1. RPCs: Understand the basics of Remote Procedure Call, and different flavors of it. Understand the concepts of stubs, stub generators, and marshalling parameters. (a)
  1. Transactions and Concurrency Control: Understand and prove the necessity of the ACID criteria for transactions: atomicity, consistency, isolation, and durability. Solve problems involving serialization and consistency of interleaved transactions. Understand handling of concurrent transactions. Understand distributed transactions. Understand Replication Control. (a,e)
  1. 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)
  1. 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)
  1. Distributed Shared Memory: Understand the basics of distributed shared memory, update vs. invalidate rules. (a,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)

Last updated: 5/22/2013