CS176A: Introduction to Computer Communication Networks
Fall 2009
Course Description
Basic concepts in networking, the OSI model, error detection codes, flow
control, routing, medium access control, and high-speed networks.
Course Objectives
- Understand the challenges of network communication.
- Understand the basics of network communication.
- Understand the operation of the protocols that are used inside the Internet.
Course Objectives and Department Mission
Because the Internet is such an important part of the communications
infrastructure, understanding how it works is of benefit to everyone.
Understanding the Internet in detail is especially critical for Computer
Science students. Not only do students learn how communication takes place,
but the Internet serves as an excellent example of a highly distributed and
complex computer system. As a consequence, understanding the Internet fits
well with the CS Department's Mission.
Course Information
- Lecture Time/Place
- Tuesday/Thursday--2:00pm to 3:15pm (Phelps 3505)
- Discussion Time/Place
- Monday--11:00am to 11:50am (Phelps 1440)
- First discussion is October 9
- Last discussion is December 4
- Course WWW Site: http://www.moodle.cs.ucsb.edu/course/view.php?id=70
- Moodle site requires "enrollment code", which is "cs176a"
- Course Material
- Two different styles of the class textbook:
- [Requred] J. Kurose and K. Ross, Computer Networking: A Top-Down Approach Featuring the Internet", Addison-Wesley, 2nd edition (July 2002), 3rd edition (May 2004), 4th edition (April 2007), or 5th edition (Mar 2009).
- Good
descriptive text, but top-down instead of bottom-up. Also, a bit light
on detail in some places, expect to have to occassionaly look elsewhere
for more detail.
- The fifth edition was just released. The third or fourth editions are
fine (and probably the second too).
- [Optional] Andrew S. Tanenbaum: Computer Networks, Prentice Hall, 4th Edition, August 2002.
- Terse but thorough. Some of the explanations can be quite confusing.
- Note: I used this book several years ago and while it still has some useful information, I tend to go by Kurose/Ross more.
- Shiv Kalyanaraman's Online Computer Networking Lessons
- A colleaque has put together some useful lessons. Try it, you might
like it!
- http://www.google.com/
- There is tons of additional information on the web about topics we will be covering.
Required Prerequisites: PSTAT120A or ECE139.
Recommended Prerequisites: PSTAT120B and CS170.
Instructor Information
Kevin Almeroth (almeroth@cs.ucsb.edu)
Office Location: 2113, Engineering I
Office Hours: 12:00pm-1:00pm on Tue; 1:00pm-2:00pm on Thur; and 3:15pm-4:00pm on Tue/Thur; by appointment, or if my door is open.
Teaching Assistant
Daniel Havey (dhavey@yahoo.com)
Office Location: HFH2152A (through the double doors across from Wim van Dam's office, then through the door on the left)
Office Hours: 1:00pm-2:00pm on Mon and 1:00pm-3:00pm on Wed
Student Evaluation
- 40%: Homeworks
- 08%: Homework #1
- 04%: Homework #2A
- 04%: Homework #2B
- 24%: Homework #3
- 25%: Midterm Exam
- 35%: Final Exam
NOTE#1: There is no late homework/exam make-up. All missed homeworks/exams earn a 0.
NOTE#2: All exams are closed notes/books/calculator/etc.
Course Outline
- Lecture #01: Internet History and Organization
- Lecture #02: OSI Stack
- Kurose/Ross: Chapter 1 (Tanenbaum: 1.2, 1.3, 1.4, 1.6)
- Lecture #03: Physical Layer
- Kurose/Ross: Chapter 1 (Tanenbaum: 2.1-2.4)
- Lecture #04: Sockets
- Kurose/Ross: 2.1, 2.7-2.8 (Tanenbaum: 6.1)
- Lecture #05: Data Link Layer Overview
- Kurose/Ross: 5.1, 5.2 (Tanenbaum: 3.1, 3.2, 3.3, 3.4)
- Lecture #06: Point-to-Point Protocols
- Lecture #07: Shared Medium Protocols
- Kurose/Ross: 5.3, 5.4 (Tanenbaum: 4.1, 4.2)
- Lecture #08: Ethernet and Other Shared Medium Protocols
- Kurose/Ross: 5.5, 5.6, 6.1-6.3 (Tanenbaum: 4.3, 4.4, 4.7.5)
- Lecture #09: Network Layer Overview
- Kurose/Ross: 4.1, 4.2 (Tanenbaum: 5.1)
- Lectures #10 and #11: IP
- Kurose/Ross: 4.4 (Tanenbaum: 5.6.1-5.6.3,5.6.7-5.6.8)
- Lecture #12: Routing
- Kurose/Ross: 4.3, 4.5, 4.6 (Tanenbaum: 5.2, 5.5.6, 5.6.4, 5.6.5)
- Lecture #13: Finish IP
- Lecture #14: Transport Layer Overview and TCP
- Kurose/Ross: 3.1-3.2, 3.4-3.7 (Tanenbaum: 6.1, 6.2, 6.5)
- Lecture #15: TCP (cont'd) and UDP
- Kurose/Ross 3.3 (Tanenbaum: 6.4)
- Lecture #16: DNS, HTTP, and the WWW
- Kurose/Ross: 2.1, 2.2, 2.5 (Tanenbaum: 7.1-7.3)
- Lecture #17: NATs, Tunnelling, P2P, and CDNs