What a Network Is
A network exists to move bytes between machines that share no memory and no clock. The defining decision of the internet is how it does that: it chops every message into small, independently addressed packets and lets each one find its own way, rather than reserving a dedicated path end to end the way a telephone call once did. That single choice — packet switching over circuit switching — shapes everything else in this course.
The trade it makes is deliberate. A packet-switched network gives up the guaranteed, reserved bandwidth of a circuit in exchange for sharing one set of links among millions of conversations and surviving the loss of any single node. The internet promises nothing about whether a given packet arrives, in what order, or how fast — and that emptiness, pushed up to the endpoints, is what made it scale.
Hosts, Links, and Nodes
Three words recur for the rest of the course, so pin them down now. A host is an endpoint that originates or consumes data — your laptop, a server, a phone. A link is a single physical or logical connection between two points: a fiber strand, an Ethernet cable, a Wi-Fi association. A node is any device the data passes through on the way — a switch, a router. Hosts talk; nodes relay.
No host has a direct link to every other host; that would need billions of cables. Instead a sparse mesh of nodes connects everyone, and the work of networking is deciding which sequence of links a packet should take across that mesh. The internet is not one network but tens of thousands of them, stitched together — the name is short for inter-network.
Packet Switching versus Circuit Switching
A circuit-switched network reserves a path before any data flows and holds it for the whole conversation. The classic phone system worked this way: dialing set up a continuous electrical path, yours alone, idle or not, until you hung up. The guarantee is real — constant bandwidth, fixed low delay — but the cost is brutal: a reserved circuit sits wasted during every pause, and the network can carry only as many calls as it has circuits.
A packet-switched network reserves nothing. Each packet carries its own destination address and is forwarded hop by hop, interleaved on the wire with packets from unrelated conversations. When a link or node fails, packets simply route around it on the next hop, because nothing was pinned to the dead path. This is why the internet has no "busy signal" — it degrades under load instead of refusing new connections.
# best-effort in one command: same destination, every packet routed # independently — note the varying round-trip times and the loss ping -c 5 example.com # 64 bytes ... time=11.4 ms # 64 bytes ... time=42.7 ms <- queued behind other traffic # 5 packets transmitted, 4 received, 20% packet loss
Statistical Multiplexing
The reason packet switching wins is statistical multiplexing: because most senders are idle most of the time, a shared link can serve far more users than its capacity divided by each user's peak rate would suggest. A hundred users who each burst to 10 Mbps but average 1 Mbps share a 200 Mbps link comfortably, because their bursts rarely coincide. A circuit-switched design would have to reserve 10 Mbps each and run out at twenty users.
The catch is the flip side of the same coin: when bursts do coincide, demand briefly exceeds capacity and packets queue or drop. There is no admission control saying "the network is full" — instead, latency rises and loss climbs, and the endpoints are expected to notice and slow down. Statistical multiplexing trades a guarantee for efficiency, and hands the consequences to TCP.
Best-Effort Delivery
The internet's core service is best-effort delivery: it will try to deliver each packet, but it may drop it, delay it, duplicate it, or deliver it out of order, and it will never tell the sender which happened. This is not a flaw to be fixed — it is the design that keeps the network's core simple and fast, with no per-conversation state to maintain in the routers.
Every reliability property you depend on — that a file arrives complete and in order — is built above this layer, at the endpoints, by TCP or QUIC. Knowing exactly where that line sits is the most useful thing in this chapter: the network gives you addressed best-effort packets, and everything more is something a host adds back on top. The rest of the course is, in large part, the story of how those guarantees get rebuilt.
Circuit switching reserves a dedicated path for the whole session — constant bandwidth and fixed delay, but capacity wasted while idle and a hard ceiling on simultaneous sessions. Choose it when you need a guaranteed, jitter-free rate: a leased line, an MPLS path for voice.
Packet switching reserves nothing and shares every link statistically — efficient and failure-tolerant, but with variable delay and possible loss. It is the internet's model, and the right default for anything that can tolerate best-effort and adapt to it.
- Assuming the network guarantees delivery or ordering. IP promises neither; an application that breaks when a packet is lost or reordered has a bug the network will eventually expose under load.
- Treating a "connection" as a physical path. A TCP connection is state held only at the two endpoints — the packets that carry it may take different routes, and no circuit is reserved anywhere in the middle.
- Reasoning about bandwidth as if it were latency. A higher-capacity link does not make a single small request return sooner; capacity and delay are independent, as the next topics make concrete.
- Expecting the network to signal "full." Packet-switched networks do not refuse new traffic — they queue and drop, so congestion shows up as rising latency and loss, not a clean rejection.
- Forgetting per-packet overhead. Every packet carries headers; chopping data into very small packets can spend more on headers than payload, an efficiency cost circuit switching never pays.
- Design as if any packet can be lost, delayed, or reordered, because at the IP layer it can. Lean on the transport (TCP, QUIC) for ordering and reliability rather than assuming the network provides them.
- Measure latency and loss separately from bandwidth when something feels slow — they are different numbers with different fixes, and conflating them sends you tuning the wrong thing.
- Expect graceful degradation, not hard limits, under congestion. Build timeouts and retries that respond to rising latency and loss, since that is how a packet-switched network tells you it is overloaded.
- Reserve circuit-like guarantees (leased lines, MPLS, dedicated interconnects) only for traffic that genuinely cannot tolerate variable delay, such as real-time voice, and let everything else ride best-effort.
- Reason in terms of hosts and nodes when diagnosing: decide whether the problem is at an endpoint that holds the connection or at a relay in the middle that merely forwards, because the fix differs.
Knowledge Check
Why does a packet-switched network have no "busy signal" the way the old telephone system did?
- It reserves no dedicated path per conversation, so it degrades with latency and loss under load rather than refusing new connections
- It has effectively unlimited capacity built into the core, so it can never actually run out of room for new traffic no matter how many users join
- A central admission controller accepts every new connection and pre-allocates bandwidth for it
- Each packet follows one reserved end-to-end path that is set up before any data is sent
What does statistical multiplexing rely on to let a shared link serve more users than capacity-divided-by-peak-rate would allow?
- That most senders are idle most of the time, so their peak bursts rarely all happen at once
- That every packet is compressed so more of them fit through the same link
- That a central controller reserves a guaranteed slice of bandwidth for each user well in advance
- That simultaneous bursts are impossible, so the link is never oversubscribed
In the internet's best-effort model, where do guarantees like in-order, complete delivery come from?
- The endpoints rebuild them above IP, in the transport layer such as TCP or QUIC
- The routers in the core track each connection and retransmit any packet they drop
- The IP layer itself guarantees ordered, exactly-once delivery of every packet
- A reserved physical circuit keeps every packet on one ordered path
You got correct