CS 168: The Internet
CS168 Notes #
Here are my notes for the Fall 2022 offering of CS168, Berkeley’s Introduction to the Internet course.
Table of Contents #
- Intro to the Internet: What is the internet, and why should I care?
About this Class There are two meanings of internet: the infrastructure that connects computing devices, or the ecosystem of applications built...
- CLI Tools: Tools to explore the internet
Networking Command Line Tools
nslookup Resolves a hostname to an IP address (or the reverse). Basic usage: nslookup Example: ❯ nslookup cs168.io Server: ...
- Intradomain Routing: Least-Cost routing, Distance-Vector protocols, Link-State routing, Spanning Tree protocol
Introduction to Routing
Addressing and Naming In the real world, people have names and are located at addresses. When we move around, our name...
- Measuring Link Performance: Terms to discuss how good a link is
Some values The Bandwidth of a link is the number of bits sent/received per unit time (measured in bps, bits per...
- Resource Sharing (Packet and Circuit Switching): Statistical Multiplexing; packet switching vs. circuit switching
Resource Sharing
Statistical Multiplexing On the internet, millions of packets going to different destinations must share the same routers and paths. One way...
- Internet Organization and Layers: The OSI Model and the End to End Princple
Internet Organization
Currently, five internet layers exist: Application (L7), where code interfaces with the internet as an abstraction, Transport (L4), which can...
- Sockets and Ports: Definition of a socket
Network Ports Switches and routers have physical ports where links connect to switches. The OS supports logical ports where applications connect to...
- Addressing (IP): IPv4, IPv6, CIDR, prefix matching
Addressing
How do we scale the ideas of routing and forwarding to the scale of the entire internet? This is mainly...
- Interdomain Routing (BGP): Autonomous Systems, BGP, Gao-Rexford Rules
- TCP: Modern TCP implementation for ‘reliable’ packet delivery
TCP
The Transport Layer The transport layer (L4) is built directly on top of the networking layer. Many different protocols exist on...
- Reliability: Algorithms for implementing reliability
In general, the network is best-effort, meaning that packets are not guaranteed to be delivered successfully. How do we build...
- Congestion Control: Algorithms for congestion detection and avoidance
If the capacity of the output link is less than the capacity of the incoming links, then it is possible...
- DNS: The Domain Name System protocol
DNS (domain name system) was created as a solution to make IP addresses human-readable for users. In the early days,...
- Web: HTTP
Origins In 1989, Tim Berners-Lee set out to solve a problem: there was a lot of information being stored digitally, and...
- Ethernet: ARP, DHCP
Shared Media In a radio network, nodes use a shared medium (the electromagnetic spectrum). As such, transmissions from different nodes might...
- End to End Operation: A full example request walkthrough
Suppose we have the following scenario: Host H1 boots up Fetches small file from H5 Goes idle Fetches two small...
- Final Review: Practice problems and detailed solutions
Part 1 Original questions: final review part 1 1.1 less aggressive than normal TCP. Aggressiveness is determined by the throughput. Higher throughput =...
How to contribute #
See the
contributing guide
Thanks for your interest in contributing to my notes! There's a lot of room for improvement, and I don't have...Contributing
For the most part, these notes should be pretty complete in terms of content, but could use some cleaning up (as well as more examples).