Skip to content

Networking Foundations

Tier: 1 (System Constraints)

Concepts: 14

Durability: Timeless (rooted in physical constraints of light speed, bandwidth limits, and the fundamental impossibility of simultaneous reliable-and-fast communication)


Fundamental Tensions

Tension Description
Reliability vs. Latency Guaranteeing delivery requires acknowledgments and retransmissions, which add round-trip delays. Fast communication sacrifices delivery guarantees. This tension is physically unavoidable: confirming receipt requires waiting for a response signal that travels at finite speed.
Statelessness vs. Efficiency Stateless protocols are simpler to reason about and scale, but require re-establishing context on every interaction. Stateful connections amortize setup cost but require resource management and complicate failure recovery.
Simplicity vs. Performance Simple protocols (one request, one response) are easy to implement but underutilize connections. Optimized protocols (multiplexing, pipelining) improve throughput but add complexity for ordering, flow control, and error handling.
Security vs. Performance Encryption and authentication protect data but require computational overhead and additional round trips for key exchange. The trade-off is mathematical: strong cryptography requires computation.
Transparency vs. Control Hiding network details behind abstractions simplifies application code but removes the ability to make informed decisions about retries, timeouts, and failure handling. Network-aware code is more robust but more complex.

Concepts


Cross-Domain Transfer Summary

This Domain Concept Transfers To
Protocol Layering Software architecture, compiler design, OS design, API abstraction levels
Connection-Oriented vs. Connectionless Database connections, API design, messaging, authentication patterns
Acknowledgment and Retransmission Distributed consensus, message queues, UI optimistic updates
Delivery Guarantee Levels Message queues, event systems, payment processing, replication
Flow Control vs. Congestion Control Stream processing, rate limiting, backpressure in any producer-consumer system
Head-of-Line Blocking Concurrency, queue design, transaction systems, UI thread management
Name Resolution as Indirection Service discovery, dependency injection, configuration, any symbolic reference
Request-Response Pattern API design, RPC, database queries, any synchronous interaction
Streaming and Push Patterns Event-driven architecture, reactive systems, real-time UIs
Latency Components Performance optimization in any latency-sensitive system
Method Idempotency and Safety API design, CQRS, caching strategies, retry logic
Stateless Protocol Design Microservices, serverless, horizontal scaling
Transport Security as a Layer Defense in depth, zero-trust architecture, secure communication
Multiplexing Independent Streams Concurrency, connection pooling, resource sharing


Canonical Sources

Source Coverage
Tanenbaum, "Computer Networks" (1981, multiple editions) Comprehensive coverage of layering, protocols, and networking concepts
Stevens, "TCP/IP Illustrated, Volume 1" (1994) Deep treatment of TCP/UDP, reliability mechanisms, connection management
Fielding, "Architectural Styles and the Design of Network-based Software Architectures" (2000) REST principles, statelessness, HTTP semantics, architectural constraints
Clark, "The Design Philosophy of the DARPA Internet Protocols" (1988) Design rationale for TCP/IP, end-to-end arguments, layering decisions
Jacobson, "Congestion Avoidance and Control" (1988) Foundational work on congestion control algorithms
Cerf & Kahn, "A Protocol for Packet Network Intercommunication" (1974) Original TCP design, connection-oriented networking
Hohpe & Woolf, "Enterprise Integration Patterns" (2003) Message patterns, async communication, enterprise networking
Kleppmann, "Designing Data-Intensive Applications" (2017) Modern treatment of delivery guarantees, distributed systems over networks
Grigorik, "High Performance Browser Networking" (2013) Latency analysis, HTTP evolution, performance optimization
RFC 7230-7235, RFC 7540, RFC 9000 HTTP/1.1, HTTP/2, and QUIC specifications