Computer Networks

How the internet works, layer by layer, with Python and simulators: delay, error detection, Ethernet and switches, IP addressing and subnetting, routing, TCP and UDP, reliable delivery, congestion control, DNS and HTTP.

  1. 1

    How networks work: layers and packets

    Packets, packet switching, and the five layers of the internet, each adding its own header to your data.

  2. 2

    Delay and throughput

    Where the time goes when a packet travels (transmission, propagation, queueing and processing delay) and why the slowest link sets the speed.

  3. 3

    Detecting errors: parity, checksums and CRC

    Noise flips bits. Add a little extra information to every frame so the receiver can tell when something arrived damaged.

  4. 4

    Ethernet, MAC addresses and switches

    How frames cross a local network: MAC addresses, switches that learn where everyone is, and ARP, which finds a MAC address from an IP address.

  5. 5

    IP addresses

    IPv4 addresses in decimal and binary, the network and host parts, private addresses, NAT, and why IPv6 has 128 bits.

  6. 6

    Subnetting Intermediate

    Work out a network's mask, network address, broadcast address and host range, and split a network into smaller subnets.

  7. 7

    Routers and forwarding tables

    How a router chooses where to send each packet: forwarding tables, the longest matching prefix, and the default route.

  8. 8

    Routing algorithms: link state and distance vector Intermediate

    How routers fill their tables: link-state routing with Dijkstra (OSPF), distance-vector routing with Bellman-Ford (RIP), and the count-to-infinity problem.

  9. 9

    Ports, UDP and TCP

    The transport layer: ports and sockets, UDP's quick messages, and TCP's reliable connections with the three-way handshake and sequence numbers.

  10. 10

    Reliable delivery: Go-Back-N and Selective Repeat Advanced

    Sequence numbers, ACKs and timeouts make delivery reliable; sliding windows make it fast. Compare how Go-Back-N and Selective Repeat recover from a loss.

  11. 11

    TCP congestion control Advanced

    How TCP senders share a busy network: the congestion window, slow start, additive increase and multiplicative decrease, and how Tahoe and Reno react to a loss.

  12. 12

    DNS and HTTP: the application layer

    How a name like example.com becomes an address, and what a browser and a web server actually say to each other.