The Network Layer: IP Addressing, Subnets, and CIDR
The link layer from the last course only gets a frame across one hop — machine to the next switch. But the internet is billions of machines separated by dozens of hops across netw…
Transport and Network Layer covers: The Network Layer, Routing, TCP, Congestion Control and TCP vs UDP, CDNs, Load Balancing, and the Edge. Year 2, Quarter 7. Includes 10 exercises and 3 projects.
This course unlocks once you've finished its prerequisite. Open prerequisite →
Complete prerequisites first to enroll.
The link layer from the last course only gets a frame across one hop — machine to the next switch. But the internet is billions of machines separated by dozens of hops across netw…
You have an addressed packet (last lesson) and you want it to reach a server on the other side of the planet. No single machine knows the whole path. Instead, dozens of routers ea…
The network layer you just learned is best-effort: it forwards packets and shrugs. Packets get lost, duplicated, reordered, corrupted, and delayed, and IP promises nothing about a…
The last lesson showed how TCP makes your connection reliable. But your connection isn't alone — it shares the internet's links and routers with millions of others, and if every s…
This lesson closes the networking quarter by turning everything you've learned into architecture — the network techniques that make real systems fast and scalable. Two ideas domin…
- [ ] Subnetting exercises: Given 192.168.1.0/24, create 4 subnets — Calculate ranges, broadcast, usable hosts - [ ] Trace a packet path using traceroute — Identify hops, RTT, net…
- [ ] Implement a reliable transport protocol over UDP in C — Add sequence numbers, ACKs, retransmission - [ ] Build a simple load balancer in Ruby — Round-robin distribution acro…
- [ ] Implement a simple BGP route table in Ruby — Parse route announcements, longest prefix matching - [ ] Build a NAT simulator in C — Rewrite source IP/port, maintain translati…
- [ ] Build a peer-to-peer file sharing tool in C — Discover peers on LAN via UDP broadcast, request file chunks via TCP, reassemble; handle peer disconnection
Build a reliable transport protocol on top of UDP sockets. Implement sequence numbers, ACKs, retransmission with exponential backoff, and a sliding window. Transfer a file reliabl…
Build a TCP load balancer that accepts connections on a port and distributes them across backend servers using round-robin, least-connections, or weighted algorithms. Health-check…
Implement the WebSocket handshake (HTTP Upgrade), frame parsing/encoding, ping/pong, and message echo. Connect with a browser or websocat. No gems (use TCPServer directly). (~5 ho…
- [ ] Explain TCP's three-way handshake (SYN, SYN-ACK, ACK). Why is it necessary? - [ ] What is TCP flow control? Explain the sliding window mechanism. - [ ] What is TCP congestio…
- [ ] Course 7.1 knowledge check passed - [ ] Course 7.2 knowledge check passed - [ ] HTTP/1.1 Server capstone completed
14 lessons. Read in order; spiral back when you need to. By the end you'll have used the core ideas twice — once on the abstract, once on something you'll meet at work next week.