Handshake Visualization
> Click "Replay Animation" to watch the TCP 3-way handshake...

Step 1 — SYN

Client sends a SYN (synchronize) segment with an initial sequence number (ISN). This opens the connection request.

Step 2 — SYN-ACK

Server responds with SYN-ACK: acknowledges the client's ISN and sends its own ISN. Connection is half-open.

Step 3 — ACK

Client acknowledges the server's ISN. The connection is now ESTABLISHED and data transfer can begin.

Why 3 Steps?

Both sides must synchronize sequence numbers and acknowledge each other's readiness. Two messages aren't enough to confirm bidirectional reliability.

Hop-by-Hop Journey
> Click "Send Packet" to trace the journey...
Hop Timeline
Network Conditions
Latency: 50ms
Packet Loss: 0%
Bandwidth: 100 Mbps
Throughput Impact
Effective BW
90.0 Mbps
TCP Goodput
85.0 Mbps
Retransmits
0.2 Mbps
Round-Trip
100ms
Packet Stream Simulation

Mathis Formula

TCP throughput ≈ MSS / (RTT × √loss). Even 1% packet loss can cut throughput by 10x on a high-latency link.

Bufferbloat

High latency without packet loss often means oversized buffers. Packets queue instead of dropping, adding 100s of ms delay.

TCP Congestion

TCP detects loss via timeouts or duplicate ACKs, halving its congestion window. Recovery can take many RTTs on slow links.

DNS Lookup Chain
> Click "Resolve ximg.app" to watch the DNS lookup chain...
Resolution Steps

DNS Cache

Your OS and resolver cache results per TTL. A warm cache skips the chain entirely — resolution takes <1ms.

Root Servers

13 root nameserver clusters (A–M) exist globally, operated by ICANN. They don't know IPs, only where TLD servers are.

TLD Servers

.com, .net, .app — each TLD has authoritative servers that know which nameservers are responsible for each domain.

TTL

Time-To-Live in seconds. Low TTL (60s) allows fast failover. High TTL (86400s = 1 day) reduces resolver load.