CS176A: Introduction to Computer Communication Networks
Fall 2008
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--12:00pm to 12:50pm (Girvetz 2124)
- First discussion is September 29
- Last discussion is December 1
- Course WWW Site: http://www.moodle.cs.ucsb.edu/course/view.php?id=67
- 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) or (3rd edition--May 2004) or (4th edition--April 2007).
- 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.
- Note:
The fourth edition was just released. The third or fourth editions are
fine (and probably the second too). The reading list shows the
(slightly) different readings for v3 and v4.
- [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.
- http://www.google.com/
- Learn it, know it, love it.
- Shiv Kalyanaraman's Online Computer Networking Lessons
- A colleaque has put together some useful lessons. Try it, you might
like it!
- Required Prerequisites: PSTAT120A or ECE139.
- Recommended Prerequisites: PSTAT120B and CS170.
Instructor Information
Kevin Almeroth (almeroth@cs.ucsb.edu)
Office Location: 1020, Engineering I (note new location, in Dean's Office wing on first floor)
Office Hours: 1:00pm-2:00pm and 3:15pm-4:00pm on Tue/Thur; by appointment, or if my door is open.
Teaching Assistants
Lara Deek (laradeek@cs.ucsb.edu)
Office Location: HFH2152A (through the double doors across from Wim van Dam's office, then through the door on the left)
Office Hours: 9:00am-11:00am on Mon and 11:00am-1:00pm on Thur
Student Evaluation
- 40%: Homeworks
- 08%: Homework #1 [October 12 @ 11:59pm]
- 08%: Homework #2 [November 12 @ 11:59pm]
- 24%: Homework #3 [December 7 @ 11:59pm]
- 25%: Midterm Exam [October 23 during class]
- 35%: Final Exam [Wednesday, Dec 10 from 4:00pm-6:00pm]
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: Sockets
- Kurose/Ross: 2.1, 2.7-2.8 (Tanenbaum: 6.1)
- Lecture #04: Physical Layer
- Kurose/Ross: 1.4(v3)/1.2(v4) (Tanenbaum: 2.1-2.4)
- 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, 5.7 (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.3, 4.4, 4.7 (Tanenbaum: 5.6.1-5.6.3,5.6.7-5.6.8)
- Lecture #12: Routing
- Kurose/Ross: 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.2, 2.4, 2.5 (Tanenbaum: 7.1-7.3)
- Lecture #17: NATs, Tunnelling, P2P, and CDNs