Introduction to the Internet: Architecture and Protocols

By Peyrin Kao, based on lectures by Sylvia Ratnasamy, Rob Shakir, and others.

These are the course notes for CS 168: Introduction to the Internet at UC Berkeley.

Here is the official course description:

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).

Disclaimer: Beta

These notes have not been proofread. They likely contain errors.

If you’re a CS 168 student at Berkeley, in any case of dispute, the official course lectures are the correct source of truth.

Diagrams

Slideshow versions of these notes with diagrams are available here.

PDF Version

These notes are available as a PDF here.

The PDF version is not always up-to-date. It was last updated in November 2024.

Corrections

As of the Fall 2024 semester, this textbook is still being actively maintained and updated.

If you see any parts that needs to be corrected, please open a Github issue here.

Source and Changelog

The source for the textbook and a log of all changes is available on Github.

License

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.