Computer Science 168 — Introduction to the Internet: Architecture and Protocols (4 Units)

Course Overview

Summary

This course is an introduction to the Internet architecture. We will focus on the concepts and fundamental design principles that have contributed to the Internet's scalability and robustness and survey the various protocols and algorithms used within this architecture. Topics include layering, addressing, intradomain routing, interdomain routing, reliable delivery, congestion control, and the core protocols (e.g., TCP, UDP, IP, DNS, and HTTP) and network technologies (e.g., Ethernet, wireless).

Prerequisites

  • CS 61A, 61B
  • Math 53 or 54 (Recommended by Professor)

Topics Covered

  • Internet Design
  • Socket Programming
  • Packets
  • Packet Forwarding
  • Packet Switch Networks
  • Routing Algorithms
  • Multiplexing
  • TCP/UDP
  • IPv4/IPv6
  • DNS
  • ICMP
  • Congestion Control
  • Interdomain Routing

Workload

Course Work

  • 6 Homework Assignments
  • 4 Projects (2 person max)
  • 1 Midterm
  • 1 Final

Time Commitment

  • 3 hours of lecture per week
  • 1 hour of discussion per week
  • 5-15 hours per project
  • 1-2 hours per HW

Choosing the Course

When to take

This is a relatively light workload class compared to other CS classes so you can take this with other heavier classes, and it acts as a good introduction to upper division classes. You can definitely take this class during your sophomore year if you finish CS 61B since plenty of the class topics do not overlap with other CS classes and do not require much knowledge beforehand. It may be beneficial to take this course with/after CS 162 since some of the networking concepts overlap. This course shares A LOT of material with EE122, but takes a different perspective on it. Different perspectives can be a really valuable thing when learning the thing that you’re going to build a career around, but for the put-upon undergrad trying to figure out how to best allocate 4 units of time, it’s probably not worth it to do both.

What's next?

  • CS194-30: This course goes into depth about actual networking used in the real world today. Sparingly offered in spring semesters
  • CS161: More details into the network security.

Usefulness for Research or Internships

This class is useful for internships related to networking. There are plenty of jobs and internships within the field of networking where the concepts of this class will be applied.

This class is also applicable for finding research since there is plenty of research being done in Internet Architecture and Networking.

Additional Comments/Tips

Attend lectures. The professor for this class usually does not webcast.

Participate early in the semester to get your participation point. As the semester gets later, it is harder to get it.

Stay on top of the material. The class has a lot of high level design principles which can get extremely complicated.

Last edited: Summer 2020