How data moves between machines -- TCP/IP, HTTP, gRPC, and beyond.
TCP provides reliable, ordered, connection-oriented delivery with flow and congestion control, while UDP is a minimal connectionless protocol that trades reliability for lower latency. Choosing between them is one of the most fundamental networking decisions in system design.
The evolution from HTTP/1.1 through HTTP/2 to HTTP/3 represents a progression from text-based serial requests over TCP, to binary multiplexed streams over TCP, to multiplexed streams over QUIC/UDP with per-stream loss recovery and 0-RTT connection resumption.
WebSockets provide full-duplex, bidirectional communication over a single TCP connection, enabling real-time data exchange between clients and servers without the overhead of repeated HTTP request-response cycles.
Short polling sends periodic HTTP requests at fixed intervals, while long polling holds requests open until data is available or a timeout occurs. Both are server push strategies that work over standard HTTP without WebSocket support.
REST, gRPC, and GraphQL are three dominant API paradigms with different strengths: REST offers simplicity and universal HTTP support, gRPC provides high-performance binary communication with streaming, and GraphQL enables clients to request exactly the data they need.
The Domain Name System translates human-readable domain names into IP addresses through a hierarchical resolution process involving recursive resolvers, root servers, TLD servers, and authoritative nameservers. DNS is also used for load balancing, failover, and traffic routing.
A Content Delivery Network caches static and dynamic content at edge Points of Presence worldwide, reducing latency by serving content close to users and reducing origin load through tiered caching, cache-key optimization, and intelligent routing.
Load balancing algorithms determine how traffic is distributed across backend servers. From simple round-robin to sophisticated power-of-two-choices and EWMA, the algorithm choice directly impacts latency, throughput, and fault tolerance.
L4 load balancers operate at the transport layer (TCP/UDP), routing based on IP and port without inspecting content. L7 load balancers operate at the application layer (HTTP), enabling content-based routing, SSL termination, and header manipulation. Most large-scale architectures use both in a tiered configuration.