When you open a website, your computer sends a request to one specific server and gets a response from that one specific server. Not all servers. Not a group. One.
That is unicast, and it is so completely the default that most engineers never learn what actually happens between the two ends. This lesson is about that middle part, because it turns out to be four separate mechanisms stacked on each other, and three of them explain tools you already use.
It also matters as a baseline. The next four lessons are broadcast, multicast and anycast, and every one of them is defined by what it changes about this picture.

Every row has exactly one sender. That is not what distinguishes them.
What changes is what the destination address means. In unicast it names one machine. In the others it names a scope, a group, or a set of locations, and every other difference between the four follows from that.
Before following a packet anywhere, it is worth knowing what a router looks at when it arrives. The answer is: almost nothing.

The destination address is the only field the forwarding decision consults. The source address is not used for routing at all, only so that a reply can be addressed later.
The hop limit is decremented by every router and is the only thing counting the journey. The payload is never opened, which is what makes end-to-end encryption possible in the first place.
Two consequences worth carrying: a router does not know or care what protocol you are speaking, and the destination address on your packet is unchanged from your machine all the way to the last hop, however many networks it crosses.
Routing sounds like something that happens elsewhere, to other people. Your laptop is doing it several times a second, using exactly the same rule every router on the path uses.

A route is an address plus how many of its leading bits must match. More than one route usually matches, and the default route matches everything by specifying zero bits.
The winner is whichever specifies the most bits, regardless of the order they appear in the table.
That rule is called longest prefix match, and it is worth watching happen.

An IP address does not deliver anything. On a physical link, delivery is by hardware address, and your machine has to find out what that is before it can send a single byte.

The machine broadcasts a question to the entire local network. Everybody hears it, the owner answers, and the answer goes into the ARP cache so it does not have to be asked again.
IPv6 does the same job with Neighbour Discovery, using multicast rather than broadcast.
So the very first step of a unicast conversation is a broadcast. That is worth remembering when the next lesson describes broadcast as a legacy idea you will never touch, because your machine is doing it right now.

The hop limit exists so a routing loop cannot circulate a packet forever. Somebody noticed it could also be used as a measuring instrument.

A router that decrements the hop limit to zero must drop the packet and send back an ICMP notice, and that notice carries the router's own address.
Increase the limit by one each round and you walk the route one hop at a time.

Three things in that output surprise people, and none of them is a fault.

Hop one is yours, and it is the only device on the whole path you can configure. The middle hops belong to your ISP. The last ones belong to the destination's provider.
The handover between them is BGP, and it is a policy decision rather than a shortest path.
This is what people mean when they say the internet is a network of networks. There is no operator of the whole path and nobody to escalate an end-to-end problem to, which is why in the middle is genuinely hard to do anything about.

Each network along the path picks its next hop by its own policy and its own table. Your ISP's outbound preferences have nothing to do with the server's outbound preferences.

The router replaces your source address with its own and notes which port belongs to which machine. The reply arrives addressed to the router, which looks up the note and forwards it in.
So the connection is unicast end to end, and the two endpoints do not agree about what the addresses are.
This is also why an inbound connection to your laptop does not work without configuration. No note exists until you send something first, so the router has no idea which machine inside was meant.


This is arithmetic rather than a benchmark. Unicast means the server produces and sends an individual copy for every single receiver, so the line is straight because nothing is shared between two viewers.
The flat line is what it costs when the network duplicates instead of the server, which is multicast, and it is a later lesson in this chapter.
Every technique for delivering the same content to a very large audience exists to avoid that line: CDNs, edge , multicast, peer to peer. For everything else, which is nearly all web traffic, unicast is exactly right.

The handshake exists to establish state on both machines, not to check reachability. Every later packet is interpreted against that state: which byte, which window, what to retransmit.

Nothing in the packet distinguishes the two. The difference is entirely in the routing: whether that destination address is announced from one location or from many.
Anycast gets you to the nearest edge. From that edge back to the origin is ordinary unicast, usually over a network the provider controls and tunes.
Two things make anycast subtle, and both are worth stating precisely because they are usually glossed over.
Nearest is measured in routing terms, not in kilometres. BGP prefers paths by policy and by AS hop count, not by , so a user can occasionally be sent to a distant site that is topologically near. This is real, and it is why large operators measure actual latency per prefix rather than trusting the routing to be optimal.
Nothing guarantees two packets land in the same place.


If the data differs per receiver there is nothing to share, and unicast is the only option. Identical bytes at the identical moment is the only case with a real alternative.
Multicast needs the network in between to cooperate, which is realistic on a local network and not across the internet.
The bottom-right box is worth noticing, because it is not multicast. Internet-wide multicast was specified, deployed and largely abandoned, and the industry solved the same problem by moving the sender nearer to the receiver instead. The next lessons in this chapter cover why that happened.
6 questions - Score 80% to pass
What makes unicast different from the other three delivery modes?
Your traceroute shows hop 7 at 35 ms and hop 4 at 44 ms. What does that mean?
A packet for 192.168.0.50 matches three routes in the table: 0.0.0.0/0, 192.168.0.0/16 and 192.168.0.0/24. Which is used, and why?
A server streams 5 Mbps to 100,000 simultaneous viewers using pure unicast. What does the server need to push?
Small HTTP requests over your company VPN work fine, but any large upload hangs and eventually times out. What should you suspect first?
Why is anycast a natural fit for DNS over UDP and an awkward fit for a long-lived TCP connection?
127.0.0.1 matches a route that never leaves the machine. 192.168.0.50 matches the local wire and needs no gateway at all, because the destination is directly reachable. 1.1.1.1 matches nothing specific and falls through to the default route, which is precisely what a default route is for.
Run netstat -rn on your own machine and you will see the same three shapes.
The last section of that capture is the part almost nobody is taught, and it deserves its own explanation.
At every hop the packet is unwrapped from one link-layer frame and rewrapped in another with different hardware addresses, because hardware addresses only have meaning on one link.
The IP addresses are written once by you and only read after that. The hop limit drops by one each time.
The first hops carry private RFC 1918 addresses, so your packet is not on the public internet yet even though it has left your building. A hop that prints a star is a router configured not to send those ICMP notices, and the packet went straight through it. And the round trip to hop 7 reads lower than to hop 4.
That last point is worth being precise about, because it looks like an error and is not. Each number is an independent measurement to that hop, not a running total. The replies are also generated by a router's general-purpose processor rather than its forwarding hardware, and that processor deprioritises them. A busy router can therefore look slow while forwarding your traffic perfectly.

The first two hops are under four milliseconds. Between hop 2 and hop 4 the number jumps by forty, which is a long physical link being crossed.
After that it barely moves, because the remaining hops are near each other. Whatever that one link is, it is essentially the entire of the connection.
So the two paths commonly differ in length, in latency and in who operates them.
Two practical consequences. Traceroute shows you one direction only, so it is half of any latency investigation. And a firewall on the return path can break a connection that appears to have left successfully, which is a genuinely confusing failure to debug from the sending side.

Forwarding a packet is fast and simple. Deciding what the table should say is the hard part, and it happens continuously in the background.
BGP is the third box: it exchanges reachability between organisations and is what makes the internet a single network rather than many.

Aggregation is what keeps the global table at a manageable size instead of one entry per machine.
No specific count is quoted here as fact, because it changes weekly and is published live rather than estimated.
The second box in that figure is the one worth remembering, because it is the mechanism behind route hijacking. A more specific announcement always wins, so a network announcing a smaller slice of somebody else's block will attract their traffic. That is a legitimate traffic-engineering tool between consenting parties, an accident when it is a misconfiguration, and an attack when it is not.
Every router on the public internet drops these, which is exactly what makes them reusable by everybody simultaneously.
Recognising them on sight is genuinely useful: a private address in a traceroute or a log tells you immediately which side of a boundary you are looking at.

The usable size for a path is the smallest link on it, and the sender learns that only from an ICMP message it may never receive.
When that message is blocked, the symptom is a hang on large payloads rather than an error.
If small requests succeed and large ones hang, especially over a VPN or a tunnel, suspect this before anything else. It is called a path MTU discovery black hole, it is common, and it is completely invisible from inside the application.
A packet arriving at a machine with no matching state is answered with a reset.
That is the deepest reason unicast is the default rather than a choice. Almost everything above it assumes one identifiable peer, and every alternative delivery mode has to give something up to escape that assumption.
The routing system has no idea a connection exists. It forwards packets, and a change anywhere upstream can make a different site closer mid-conversation.
The new site holds no connection state, so it resets rather than continues.
That is why anycast's original success was over UDP: one packet out, one packet back, nothing to lose. Long-lived connections over anycast work well in practice, and they rely on route stability rather than on any guarantee.