CPSC 441: Computer Communications (Section L02, Winter 2005)

The purpose of this course is to introduce fundamental principles and concepts of computer networks. This year the course will follow a top-down approach, where we will first study popular network applications, then study communications services required to support these applications, and finally study how these communication services are implemented. Throughout this course, we will use the Internet's architecture and protocols to reinforce fundamental computer networking principles.

This page provides information on the following:


April 29, 2005 (10:30 pm)
I have finished grading the final examination papers. You can find marks and projected letter grades here (PDF document, 3 pages). Overall, the class did well; the class average is 72%, the median is 75%, and the highest is 98%. Four students received the A+ grade, while six students received the A grade. Please have a careful look at your marks and if there are issues, do send me email. The official grades will be available from INFONET after May 9th.

Administrative Information

Here you will find administrative information for the CPSC 441 offering during the Winter 2005 session. Note that there are two sections of CPSC 441 this semester. The other section is taught by Professor Ivo Jisarek in ICT 121 (at the same time as this section). Please make sure that you attend the section for which you have registered.
There are six tutorial sessions for this course. The Teaching Assistants (TAs) will discuss material referred to as "self study" in the lectures, introduce socket programming using C/C++, and provide help with assignments. The tutorials are organized for your benefit and you are strongly encouraged to attend them. Details pertaining to your tutorial sessions are given below:

Textbook and References

The recommended textbooks for this course are: It is recommended that you purchase one of the above-mentioned textbooks. Note that lectures will be drawn from both textbooks as well as recent research literature.


  1. Introduction (2 weeks)
    Overview of the Internet, client/server paradigm, circuit switching, packet switching, physical media, queuing delay and packet loss, TCP/IP and OSI reference models, Internet Protocol Stack
    Lecture Slides: Introduction (PPT , PDF)
    CAnet4 map
    Readings: Chapter 1 (Kurose and Ross); Sections 1.1 - 1.9, 2.2 (Tanenbaum)
  2. Network Layer Addressing (1 week)
    NIC addressing, IP addressing, IPv4, IPv6, ICMP
    Lecture Slides: Network Layer Addressing (PPT, PDF), Link Layer Addressing (PPT, PDF)
    Readings: Section 4.4, 5.4 (Kurose and Ross); Section 5.6 (Tanenbaum)
  3. Application Layer (1.5 weeks)
    Service requirements, WWW, HTTP, Electronic Mail, Domain Name System, Socket programming
    Lecture Slides: HTTP and WWW (PPT , PDF), FTP, SMTP (PPT, PDF), DNS (PPT, PDF)
    Readings: Chapter 2 (Kurose and Ross); Sections 7.1 - 7.3 (Tanenbaum)
  4. 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
    Lecture Slides: Introduction/UDP (PPT, PDF), Checksum IP/UDP (PPT, PDF), Reliable Data Transfer (PPT, PDF), Transmission Control Protocol (PPT, PDF)
    Readings: Chapter 3 (Kurose and Ross); Chapter 6 (Tanenbaum)
  5. Network Layer Routing (1.5 weeks)
    Routing and forwarding, Routing algorithms, Routing in the Internet, Multicast
    Lecture Slides: Forwarding (PPT, PDF), Routing (PPT, PDF)
    Readings: Chapter 4 (Kurose and Ross); Chapter 5 (Tanenbaum)
  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
    Lecture Slides: (PPT, PDF)
    Readings: Chapter 5 (Kurose and Ross); Sections 3.1, 4.1 - 4.3 (Tanenbaum)
  7. Wireless and Mobile Networks (1.5 weeks)
    Wireless links and network characteristics, Wi-Fi: IEEE 802.11 Wireless LANs, Cellular Internet Access, Mobility management and Mobile IP
    Lecture Slides: (PPT, PDF)
    Readings: Chapter 6 (Kurose and Ross); Sections 4.4 - 4.5 (Tanenbaum)
  8. Multimedia Networking (1 week)
    Networked multimedia applications, best-effort service and multimedia delivery requirements, Multimedia protocols (RTSP, RTP, RTCP, SIP), Content Distribution Networks
    Lecture Slides: (PPT, PDF)
    Readings: Sections 7.1 - 7.5 (Kurose and Ross); Section 7.4 (Tanenbaum)
  9. Security (1 week)
    Principles of cryptography, symmetric key algorithms, public key algorithms
    Readings: Sections 8.1 - 8.5 (Kurose and Ross); Sections 8.1 - 8.3 (Tanenbaum)


  1. Assignments (30%)
    There will be four equally weighted assignments in this course. The assignments will consist of a mix of paper & pencil questions, and programming projects. These assignments will be approximately equally spaced throughout the term (due dates - early February 2, March 9, March 30, and April 13).
    • Assignment 1, Due by 08:59 hours on February 2, 2004.
      Download the tracefile: simpletrace.cap (right click and then select the "save as" option)
      You might find the Ethereal User's Guide useful. (Solution Key)
    • Assignment 2, Due by 23:55 hours on March 9, 2005.
      Please consult RFC 1034 and 1035 for part II of the assignment.
      Also, plan on attending the tutorials.
      You might want to familiarize yourself with the Domain Information Groper (dig) tool as the functionality desired in your resolver program is similar to that of dig. Here are some dig examples to get you started. (Solution Key for the written questions)
    • Assignment 3, Due by 23:55 hours on April 5, 2005.
    • Assignment 4, Due by 23:55 hours on April 15, 2005. (Solution Key)

  2. Midterm Examination (30%)
    A 50-minute "closed-book" (no books, no notes) in-class midterm examination will be held. In-class on Friday March 4, 2005.
    Last semesters midterm examination along with the solution key (Viewable only from machines with ucalgary.ca domain names) is available for your reference.
  3. Final Examination (40%)
    This course will have a 120-minute closed-book final examination, scheduled by the Registrar's office.