CPSC 441: Computer Communications
(C. Williamson -- January 2008)

The purpose of this course is to introduce the key concepts and principles of computer networks. The course will use a top-down approach to study the Internet and its protocol stack. First, we will study popular network applications, such as email, Web, media streaming, and Peer-to-Peer (P2P) file sharing applications. Next, we will study TCP/IP and the communication services required to support these network applications. Finally, we will study how these communication services are implemented and deployed in practical networks, including wired and wireless Local Area Network (LAN) environments. Throughout the course, the Internet's architecture and protocols will be used as the primary examples to illustrate the fundamental principles of computer networking. (See the official CPSC 441 calendar entry and course information sheet (MS Word) for more information.)

Announcements and Updates

April 21, 2008: Don't forget the final exam today! It is on Monday April 21 at noon in ICT 102. Professors Zongpeng Li and Majid Ghaderi will invigilate the exam while Professor Williamson is on his way to WWW2008 in Beijing. Good luck!
April 20, 2008: Here is a sample solution for Assignment 4 along with sample results that it generates.
April 16, 2008: An optional CPSC 441 review session will take place in class on Friday, April 18. Don't forget the final exam on Monday April 21 at noon in ICT 102.
April 14, 2008: The CPSC 441 final exam is on Monday April 21 at noon in ICT 102. Professor Williamson will unfortunately be away that day, on his way to WWW2008 in Beijing. In his absence, the exam will be administered by Professors Zongpeng Li and Majid Ghaderi.
April 4, 2008: Another reminder that the CPSC 441 final exam is scheduled for Monday April 21 at noon in ICT 102. Also, please fill out your USRI teaching evaluation for CPSC 441 when you get a chance. Thanks.
March 30, 2008: Here is Assignment 5 at last.
March 28, 2008: Assignment 5 will be released very soon. Here is a sample solution for Assignment 3 and a sample final exam from CPSC 441 in a previous year.
March 22, 2008: Professor Williamson has moved his office from ICT 740 to ICT 736. Office hours remain the same.
March 12, 2008: The CPSC 441 final exam is scheduled for Monday April 21 at noon in ICT 102.
March 10, 2008: Here is a sample solution for the midterm exam.
March 5, 2008: One last reminder about the in-class midterm exam on Friday March 7. Deadline for Assignment 3 has been changed to March 18. Here is a sample solution for Assignment 2 along with its include file.
February 24, 2008: Lectures and tutorials resume starting February 25. A few small edits have been done on Assignment 2, which is due on February 28. Don't forget the midterm that is coming up on Friday March 7.
February 15, 2008: This is a reminder that Assignment 2 is due on February 28. Here is a sample solution for Assignment 1. Also, here is a sample midterm from CPSC 441 in a previous year.
February 8, 2008: Professor Williamson will be away in Chicago for an ACM SIG Governing Board meeting on Monday, February 11. Professor Zongpeng Li will be filling in for him on Monday and starting the introductory material on TCP.
February 6, 2008: The new TA is Mingwei Gong. Students in T01 or T03 can send Assignment 1 to Mingwei (gongm@cpsc.ucalgary.ca), while those in T02 or T04 can send it to Ajay (agopinat@cpsc.ucalgary.ca).
February 5, 2008: Information on the TA replacement for Rohit Joshi will be here shortly. The Wednesday tutorial session will offer last-minute help with Assignment 1.
February 1, 2008: We decided on Friday, March 7 as the date for the midterm exam.
January 20, 2008: Assignment 1 is now available. It is due on February 7.
January 14, 2008: An update on TA assignments and tutorial sections. The TAs for this course are Ajay Gopinathan and Rohit Joshi. Their detailed contact information will be provided on this page shortly.
December 21, 2007: Course Web site launched today. First lecture is Monday, January 14 at 12 noon in ICT 122.

Administrative Details

Lectures: MWF 12:00 - 12:50 in ICT 122
Instructor: Professor Carey Williamson (ICT 740)
Office Hours: M 13:00 - 15:00 hours, or by appointment

Prerequisites: Please see the CPSC 441 calendar entry to ensure that you have the correct pre-requisites to take this course. Students without the proper pre-requisites cannot obtain credit for CPSC 441.

Tutorials: This course will have regular weekly tutorials to present supplementary material mentioned briefly in the lectures, to introduce socket programming using C/C++, to cover network protocol debugging using ethereal, and to provide useful assistance with assignments and exams. The tutorials are organized for your benefit and you are strongly encouraged to attend them.

There are four tutorial sections to choose from for this course. Please choose the one that best fits your schedule:

Tutorials will start the week of January 21.

TA: Detailed contact information for the Teaching Assistants (TAs) for this course is available here now:
Ajay's CPSC 441 TA page
Mingwei's CPSC 441 TA page

Textbook

Computer Networking: A Top-Down Approach (Fourth Edition), by Jim Kurose and Keith Ross, Addison Wesley, 2008.
Lecture material will be drawn from this required textbook, as well as from some of the recent networking research literature.
This textbook has a companion Web site for registered users, providing useful information for students and instructors.

Assignments, Exams, and Grading

Assignments (25%): There will be five equally-weighted assignments in this course. Most of the assignments will be programming assignments in C/C++, perhaps supplemented with short-answer or problem-solving questions. Students are expected to complete assignments individually, unless stated otherwise in the assignment specification. Plagiarism will not be tolerated.

The assignments will be roughly equally spaced throughout the term, and will appear here in the near future.


Midterm Examination (25%): A 50-minute "closed-book" midterm examination will be held in class on Friday March 7.

Final Examination (50%): A 2-hour closed-book final examination will be scheduled by the Registrar's office for mid-to-late April.

Course Syllabus and Lecture Notes

  1. Introduction (1.5 weeks)
    Overview of the Internet. LANs and WANs. OSI reference model, Internet TCP/IP Protocol Stack.
    Client/server paradigm, circuit-switching, packet-switching, Internet structure, networking delays and packet loss.
    Slides: Introduction to Networking PowerPoint version (1.4 MB) PDF version (950 KB)
    Readings: Chapter 1 (Sections 1.1, 1.2, 1.3, 1.4, and 1.5)
  2. Application Layer (2 weeks)
    Service requirements, WWW, HTTP, Electronic Mail, Domain Name System, P2P, Socket programming API
    Slides: Application Layer, Web, and HTTP PowerPoint version (480 KB) PDF version (420 KB)
    HTTP and TCP PowerPoint version (180 KB) PDF version (150 KB)
    FTP and SMTP PowerPoint version (110 KB) PDF version (135 KB)
    P2P Applications PDF version (900 KB) (courtesy Don Towsley, UMass)
    DNS PowerPoint version (200 KB) PDF version (150 KB)
    Readings: Chapter 2 (Sections 2.1, 2.2, 2.3, 2.4, 2.5, and 2.6)
  3. Transport Layer (2 weeks)
    Service models, Multiplexing/Demultiplexing, Connection-less transport (UDP), Principles of reliable data transfer, Connection-oriented transport (TCP), TCP congestion control, TCP variants
    Slides: Transport Layer and UDP PowerPoint version (170 KB) PDF version (107 KB)
    Reliable Data Transfer PowerPoint version (450 KB) PDF version (400 KB)
    Transmission Control Protocol (TCP) PowerPoint version (270 KB) PDF version (245 KB)
    Readings: Chapter 3 (Sections 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, and 3.7)
  4. Network Layer Addressing (1 week)
    Network layer services, IP, IP addressing, IPv4, DHCP, NAT, ICMP, IPv6
    Slides: Network Layer, IP, Addressing, ICMP, and NAT PowerPoint version (530 KB) PDF version (380 KB)
    Service Models, Routing and Forwarding, Router Design PowerPoint version (420 KB) PDF version (230 KB)
    Readings: Chapter 4 (Sections 4.1, 4.2, 4.3, and 4.4)
  5. Network Layer Routing (1.5 weeks)
    Routing and forwarding, Routing algorithms, Routing in the Internet, RIP, OSPF, BGP, Multicast
    Slides: Internet Routing PowerPoint version (350 KB) PDF version (260 KB)
    Readings: Chapter 4 (Sections 4.5 and 4.6)
  6. Link Layer and Local Area Networks (1.5 weeks)
    Link layer services, Error detection and correction, Multiple Access Protocols, Link layer addressing, Ethernet, Hubs and switches, Point-to-Point Protocol
    Slides: Link Layer Services and MAC Protocols PowerPoint version (870 KB) PDF version (590 KB)
    Link Layer Addressing PowerPoint version (240 KB) PDF version (170 KB)
    Readings: Chapter 5 (Sections 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, and 5.7)
  7. Wireless and Mobile Networks (1 week)
    Wireless links and network characteristics, Wi-Fi: IEEE 802.11 Wireless LANs, Mobility management and Mobile IP
    Slides: Wireless Networks PowerPoint version (1.3 MB) PDF version (1.1 MB)
    Wireless TCP Issues PowerPoint version (1.1 MB) PDF version (1.1 MB)
    Readings: Chapter 6 (Sections 6.1, 6.2, 6.3, 6.5, 6.6, and 6.8)
  8. Multimedia Networking (1 week)
    Networked multimedia applications, best-effort service and multimedia delivery requirements, Multimedia protocols (RTSP, RTP, RTCP, SIP), Content Distribution Networks
    Slides: Multimedia network applications PowerPoint version (1.3 MB) PDF version (600 KB)
    Readings: Chapter 7 (Sections 7.1, 7.2, 7.3, 7.5, and 7.6)
  9. Networking Research and Review (1 week)
    Selected topics from the networking literature. Course wrapup and review.
    Slides: P2P Streaming PowerPoint version (1.2 MB)
    Network Traffic Measurement PowerPoint version (750 KB)
    U of C WLAN Measurements PowerPoint version (10.4 MB)
    YouTube Traffic Characterization PowerPoint version (820 KB)
Here are some relevant networking links. If you know other good stuff to put here, please let me know, and I will add it.