Foundations: Wires & Voices — Networking & Protocols
High Level Design·beginner·~25 min read
- basics
- networking
- protocols
- load-balancing
- api-gateway
- Communication Protocols - OSI Model & Networking Fundamentals - Load Balancer Types - Proxies - API Gateway and Service Discovery ---
What you'll learn
Communication Protocols
| Protocol | Direction | Use Case | When to Choose | |----------|-----------|----------|----------------| | HTTP/REST | Request-Response | Most APIs | Default for 90% of interviews | | SSE | Server → Client | Notifications, live scores |…
Protocol Mechanisms Deep Dive
Protocol Comparison Matrix
| Capability | REST | WebSockets | gRPC | GraphQL | UDP | Long-Polling | |-----------|------|-----------|------|---------|-----|-------------| | External APIs | Yes | Yes | No | Yes | Yes | Yes | | Bidirectional | No | Yes | No | No | Ye…
TCP vs UDP
| Aspect | TCP | UDP | |--------|-----|-----| | Connection | Connection-oriented (3-way handshake) | Connectionless | | Reliability | Guaranteed delivery, retransmission | Best-effort, no guarantee | | Ordering | Preserves order | No ord…
REST API Best Practices
| Practice | Rule | |----------|------| | URL structure | Nouns (not verbs): /users/123/posts not /getPostsByUser | | HTTP methods | GET=read, POST=create, PUT=full update, PATCH=partial update, DELETE=remove | | Idempotency | GET, PUT,…
OSI Model & Networking Fundamentals
The 7-Layer OSI Model
Layers 7-5 = Host layers (software, application-level concerns) Layers 4-1 = Media layers (transport and physical delivery)
TCP/IP Model (Practical Mapping)
SSH vs SSL vs Telnet
| Protocol | Purpose | Encryption | Port | Key Difference | |----------|---------|-----------|------|----------------| | SSH | Remote shell access + commands + file transfer | Yes (symmetric + asymmetric) | 22 | Creates secure tunnel for…
L4 vs L7 Load Balancing (OSI Context)
| Aspect | L4 (Transport Layer) | L7 (Application Layer) | |--------|---------------------|----------------------| | Sees | TCP/UDP packets only | Full HTTP request (URL, headers, cookies, body) | | Routes by | IP + port | URL path, host…
Load Balancer Types
| Type | Layer | Capabilities | Best For | |------|-------|-------------|----------| | L7 (Application) | HTTP | Routes based on URL, headers, cookies | API routing, path-based | | L4 (Transport) | TCP | Distributes connections without i…
Web Server vs Application Server
| Aspect | Web Server (Nginx, Apache) | Application Server (Tomcat, Gunicorn) | |--------|---------------------------|--------------------------------------| | Primary purpose | Serve static content (HTML, CSS, JS, images) | Execute busi…
Implementation Options
| Type | Pros | Cons | When to Use | |------|------|------|-------------| | Software LB (e.g., HAProxy, Nginx) | Easy to set up, runs locally on each machine, manages health checks automatically | Additional process per machine | Default…
Redundant Load Balancers
A single load balancer is itself a single point of failure. Production systems use an active/passive cluster: - Both LBs monitor each other via heartbeat - If the active LB fails, the passive detects missed heartbeats and promotes itself…
Balance at Every Layer
A scalable system needs load balancing at multiple layers — not just at the edge: Each layer adds both capacity (horizontal scalability) and redundancy (losing a node reduces capacity proportionally without disruption). ---
Proxies
A proxy is an intermediate server between client and backend. Two main types:
Forward Proxy (Client-side)
Sits in front of clients. The backend servers don't know the real client identity. Types of forward proxy: - Open Proxy (Anonymous) — accessible by any internet user; hides client IP from the server - Transparent Proxy — identifies itsel…
Reverse Proxy (Server-side)
Sits in front of servers. The client doesn't know which backend server handles the request. Use cases: Load balancing, SSL termination, compression, caching, serving static content, shielding backend from direct exposure. Key insight: A…
API Gateway and Service Discovery
API Gateway Responsibilities
An API Gateway sits at the entry point of a microservices system: | Responsibility | What It Does | |---------------|-------------| | Rate limiting | Track request counts per IP/user, block excessive traffic | | Protocol translation | HT…
Service Registry Pattern
Services register themselves with a central registry that maps service names to available instances: - Services self-register on startup with their IP, health check endpoint, and handler routes - Gateway caches registry lookups locally (…
Database-Per-Service Pattern
Each microservice owns its database exclusively: | Benefit | Why | |---------|-----| | Access isolation | Developers can't accidentally read other service's data | | Independent scaling | Each DB scales based on its service's needs | | T…