CS 436: Distributed Computer Systems

CS 436: Distributed Computer Systems (Winter 2012, University of Waterloo). Instructors: Professor Srinivasan Keshav and Andy Curtis. This curse provides an introduction to computer networks, protocols, and distributed system architecture. It provides an introduction to principles, algorithms, protocols, and technology standards used in computer networks and distributed systems. Topics covered include: layered models, resource management, naming, addressing and routing, reliable communication, security, and higher-level services.


Lecture 01 - Introduction, Internet Topology
Lecture 02 - Application Layer: Networked Applications
Lecture 03 - Application Layer Protocols
Lecture 04 - Application Layer Protocols (cont.)
Lecture 05 - Distribution Models: P2P and Cloud Computing
Lecture 06 - Transport Layer: Socket Programming
Lecture 07 - Transport Layer Overview
Lecture 08 - Transport Layer: Reliability and Flow Control
Lecture 09 - Transport Layer: TCP
Lecture 10 - Transport Layer: TCP (cont.)
Lecture 11 - Network Layer: Addresses, Forwarding, Routing
Lecture 12 - Network Layer: Networks and Subnets, Datagrams and Virtual Circuits
Lecture 13 - Network Layer: IP Header, Address Allocation, Routing in a LAN
Lecture 14 - Network Layer: Public and Private IP Addresses, NAT, MAC Addresses, ARP
Lecture 15 - Routing Overview, Graphs, Link State and Distance Vector, OSPF, BGP
Lecture 16 - Link Layer: Context, Types, Services, Multiple Access, Ethernet
Lecture 17 - Link Layer: WIFI
Lecture 18 - Link Layer: Cellular Networks
Lecture 19 - Network Security and Privacy
Lecture 20 - Network Security and Privacy (cont.)
Lecture 21 - Distributed Systems
Lecture 22 - Distributed Systems: Currency (Locking), Design Principles
Lecture 23 - Distributed Systems: Implementation
Lecture 24 - Distributed Systems: Design Techniques