Computer Networks
Computer networks take the previous topic's isolation, addressing, and controlled access and scale every one of those ideas up from one machine sharing resources among its own processes to many machines sharing a wire, a radio signal, or a fiber link. Instead of sending a file or a web page in one unbroken stream, a network breaks it into packets, small chunks of data each carrying its own header with a source and destination address, so that if one chunk gets lost or corrupted only that chunk needs to be resent rather than the entire transfer. An IP address identifies a specific machine on the network, playing exactly the same role at network scale that a memory address played inside one machine back in the memory-and-execution topic — a unique location that data can be addressed to and delivered toward. Routing is how a packet actually gets from its source to its destination across a network of many intermediate machines called routers: each router looks only at the destination address and forwards the packet one hop closer, the same kind of shortest-path graph traversal this series' algorithms topic already covered, except the graph here is made of physical routers and the edges are physical links. Once packets can reach a destination, TCP and UDP decide how reliably they arrive: TCP numbers every packet, waits for acknowledgment, and automatically retransmits anything lost or out of order, trading some speed for a guarantee that data arrives complete and in the right sequence — exactly what a file download or a web page needs; UDP skips all of that overhead and just fires packets off with no guarantee of delivery or order, which is wasted effort for a file but ideal for something like a live video call where a late packet is worthless anyway and arriving fast matters more than arriving guaranteed. DNS is the system that turns a human-readable name into the IP address routing actually needs, functioning as the internet's phone book: typing a domain name triggers a DNS lookup that resolves it to an IP address before a single packet can even be addressed. HTTP is the application-level language built on top of all of this — the actual request-and-response format a browser and a web server speak once a TCP connection is established, with a request naming a specific resource and a response carrying it back, which is the exact mechanism this series' own content has been delivered through this entire time. Every layer here builds on the one below it, the same layered discipline this series has applied since digital logic, and the next topic, databases, is what sits on the other end of that HTTP response, organizing the actual data being requested.