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.
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:
- T01: MW 10:00-10:50 in ST 061 (Mingwei Gong)
- T02: MW 11:00-11:50 in MS 319 (Ajay Gopinathan)
- T03: MW 9:00-9:50 in ST 061 (Mingwei Gong)
- T04: TuTh 16:00-16:50 in ST 064 (Ajay Gopinathan)
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
-
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)
-
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)
-
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)
-
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)
-
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)
-
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)
-
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)
-
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)
-
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)
Some Relevant Networking URLs
Here are some relevant networking links.
If you know other good stuff to put here,
please let me know, and I will add it.