Watch how TCP establishes a connection before any data is sent.
Client sends a SYN (synchronize) segment with an initial sequence number (ISN). This opens the connection request.
Server responds with SYN-ACK: acknowledges the client's ISN and sends its own ISN. Connection is half-open.
Client acknowledges the server's ISN. The connection is now ESTABLISHED and data transfer can begin.
Both sides must synchronize sequence numbers and acknowledge each other's readiness. Two messages aren't enough to confirm bidirectional reliability.
Follow a packet from your browser through the internet to a server and back.
Adjust latency and packet loss to see how network conditions affect throughput.
TCP throughput ≈ MSS / (RTT × √loss). Even 1% packet loss can cut throughput by 10x on a high-latency link.
High latency without packet loss often means oversized buffers. Packets queue instead of dropping, adding 100s of ms delay.
TCP detects loss via timeouts or duplicate ACKs, halving its congestion window. Recovery can take many RTTs on slow links.
Watch how a domain name is resolved step-by-step to an IP address.
Your OS and resolver cache results per TTL. A warm cache skips the chain entirely — resolution takes <1ms.
13 root nameserver clusters (A–M) exist globally, operated by ICANN. They don't know IPs, only where TLD servers are.
.com, .net, .app — each TLD has authoritative servers that know which nameservers are responsible for each domain.
Time-To-Live in seconds. Low TTL (60s) allows fast failover. High TTL (86400s = 1 day) reduces resolver load.