Esta nota todavía no está traducida, así que se muestra la fuente en inglés.
Reference Registry
External references normalized in one place instead of repeated across every branch index.
Specifications (canonical)
- RFC 6455 — The WebSocket Protocol. The primary, mandatory source for the whole
websocket-protocol-from-scratchbranch — read it directly, don't just read summaries of it. - RFC 1122 — Requirements for Internet Hosts. Framing and transport fundamentals underneath the custom binary protocol.
man tcp,man setsockopt— read past the tutorials forTCP_NODELAY,SO_RCVBUF/SO_SNDBUF, and socket options in general.man epoll,man kqueue— the two event-loop APIs this atlas uses, Linux and macOS respectively.
Books (canonical)
- Beej's Guide to Network Programming — Brian "Beej" Hall. Free, the backbone of the sockets material in
tcp-fundamentals. - TCP/IP Illustrated, Volume 1 — W. Richard Stevens. Deep reference for what's actually on the wire during the handshake, teardown, and flow control.
- Designing Data-Intensive Applications — Martin Kleppmann. Messaging and streaming chapters for
presence-rooms-and-fanout. - Test-Driven Development for Embedded C — James Grenning. TDD discipline for systems code, carried over from Atlas I and II.
Papers & classic writeups
- Dan Kegel, "The C10K Problem" — the argument for event loops over thread-per-connection, and the starting point for its C10M evolution; central to
connection-concurrency-at-scale. - Jeff Preshing (preshing.com) — memory ordering and lock-free patterns, carried over from Atlas I/II, applied here to the connection registry.
- Discord engineering blog, Slack engineering blog — real, documented chat-at-scale architecture, referenced (not implemented) in
presence-rooms-and-fanout.
Tools & reference implementations
- MDN, "Writing WebSocket Servers" — complementary implementation guide alongside RFC 6455.
swss(C, RFC 6455, no dependencies) — a reference implementation for design comparison only; never copy its code.- Wireshark /
tcpdump— used throughoutnetwork-craftsmanshipto see TCP and WebSocket frames on the wire. ws(Node) documentation — referenced only for expected behavior inclient-in-typescript, not used as a dependency; the client is hand-written over the protocol.- libFuzzer / AFL++ — frame and parser fuzzing, carried over from Atlas I/II, applied here to malformed WebSocket frames.
- Redis Pub/Sub documentation — mentioned in
presence-rooms-and-fanoutas the real-world backplane solution for the optional v5 milestone; not implemented in depth here.
See also: Full Index