Compare
Side-by-side on the decisions that recur: TCP vs UDP, HTTP/2 vs HTTP/3, flow vs congestion control, L4 vs L7, forward vs reverse proxy, IPv4 vs IPv6 — with when to choose each.
TCP vs UDPHTTP/2 vs HTTP/3Flow control vs Congestion controlSwitch vs RouterForward proxy vs Reverse proxyL4 load balancing vs L7 load balancingServer-Sent Events vs WebSocketsIPv4 vs IPv6ARP (IPv4) vs Neighbor Discovery (IPv6)Keep-alive (reuse) vs New connection per request
| IPv4 | IPv6 | |
|---|---|---|
| Address | 32 bits, dotted decimal 203.0.113.7 | 128 bits, hex groups 2001:db8::7, zero-compressed |
| Address supply | Exhausted; NAT and CGNAT stretch it | Effectively unlimited; every host gets a global address |
| Header | Variable length with options; checksum recomputed at every hop | Fixed 40 bytes, no header checksum, extension headers chained |
| Local resolution | ARP broadcast | Neighbor Discovery via ICMPv6 multicast |
| Fragmentation | Routers may fragment (unless DF set) | Only the sender fragments; PMTUD is mandatory, minimum MTU 1280 |
| Configuration | DHCP or static | SLAAC from router advertisements, or DHCPv6 |
| Broadcast | Yes (255.255.255.255, subnet broadcast) | None — multicast replaces it |
| Choose this when | You do not choose — you support it because most of the internet still speaks it, and you learn NAT because of it. | Deploy it alongside IPv4 (dual stack) and test both paths: a service that works only on one family is a latent outage. |