signal.console/personal-atlas

Low-Level Atlas III

De “construí sistemas reales” a “construí sistemas que se hablan entre sí”

Parte III de la serie Low-Level Atlas: sockets, concurrencia y protocolos de red a fondo — TCP crudo, un protocolo binario propio, WebSocket según RFC 6455, concurrencia de conexiones a escala, y un chat en tiempo real con un cliente en C y otro en TypeScript hablando el mismo formato de cable. Sin frameworks, sin atajos. Asume que ya hiciste los atlas I y II.

20Notas
8Ramas
1Playbooks
1Registros
Parte 3 de la serie

Entendiste la máquina, después construiste con ella. Ahora hacela hablar.

El atlas I cubrió el modelo de máquina, C, punteros y memoria, assembly, el toolchain, programación de sistemas, concurrencia básica y un OS chico. El atlas II construyó sistemas reales y cotidianos en C — un shell, un malloc, un servidor HTTP, un motor de base de datos. Este atlas es un cambio de categoría: conexiones de larga vida que necesitan verse entre sí, no muchas requests stateless en paralelo — por eso tiene su propio espacio en vez de diluirse como una fase del atlas II.

Orden de construcción

Leelo como cola de build, no como catálogo de cursos.

Arrancá con TCP crudo, sufrí diseñar tu propio framing antes de adoptar WebSocket, después hacé que las conexiones escalen de verdad y dale al chat salas y presence — con un cliente en C y uno en TypeScript hablando el mismo protocolo al final.

Abrir Start Here
00
Fase 00 · Mapear la cola de build

Orientación

Por dónde empezar, qué atlas I y II necesitás antes, y cómo se organiza este atlas como cola de construcción.

Página de fase
01
Fase 01 · Entender el cable

TCP desde Cero

Sockets BSD crudos a fondo: el three-way handshake, TCP_NODELAY, buffers de socket, backpressure, half-close y manejo real de errores de red — un servidor de eco simple entendido hasta el fondo.

Página de fase
02
Fase 02 · Sufrir, después diseñar

Diseñar un Protocolo Propio

Diseñar un protocolo de aplicación propio sobre TCP crudo antes de adoptar WebSocket: framing, serialización binaria, versionado, heartbeats — sentir el problema que un estándar real existe para resolver.

Página de fase
03
Fase 03 · Hablar el estándar real

WebSocket, de Verdad

RFC 6455 implementado a mano en C: el handshake HTTP Upgrade, Sec-WebSocket-Accept, el frame format, frames de control, fragmentación y el close handshake.

Página de fase
04
Fase 04 · Hacer que las conexiones escalen

Concurrencia a Escala

Conexiones de larga vida que necesitan verse entre sí: event loops epoll/kqueue vs thread-per-connection vs pools híbridos, el problema C10K→C10M, y registros de conexiones lock vs lock-free.

Página de fase
05
Fase 05 · Modelar el dominio del chat

Arquitectura de Mensajería

Salas, presence, historial de mensajes, garantías de entrega y ordering — y el concepto de backplane pub/sub para escalar un servidor a varios procesos.

Página de fase
06
Fase 06 · Comparar los runtimes

Dos Clientes, un Protocolo

El mismo protocolo sobreviviendo a dos runtimes: un cliente de terminal en C y un cliente en TypeScript, lado a lado, bajo nivel vs alto nivel resolviendo el mismo problema de red.

Página de fase
Fase ★ · Sostener la disciplina

Siempre Activo

Testear protocolos de red: mock sockets, fuzzing de frames malformados, debugging con Wireshark/tcpdump, observabilidad de conexiones, y TDD aplicado a código async y concurrente.

Página de fase
Proyecto vertebrador

El chat en tiempo real, v0 → v5

Construido a través de todas las ramas de este atlas — un servidor de eco TCP crudo, después un protocolo binario, después WebSocket según RFC 6455, después salas y escala, después dos clientes hablando el mismo formato de cable — de la misma forma en que el atlas I construyó un OS y el atlas II un motor de base de datos: por hitos, no de una sola vez.

v0

Servidor de eco TCP crudo

Un cliente, un mensaje, ida y vuelta. Todavía sin protocolo — solo un socket que funciona.

v1

Protocolo binario propio

Un formato propio de framing y serialización funcionando entre N clientes — todavía sin WebSocket.

v2

WebSocket según RFC 6455

Migrar a una implementación de WebSocket compliant, verificada contra un cliente de navegador real.

v3

Salas, presence, escala

Broadcast a cientos de conexiones simuladas con concurrencia real, no un loop de juguete.

v4

Dos clientes, lado a lado

Un cliente en C completo y uno en TypeScript completo, ambos hablando con el mismo servidor.

v5

Backplane pub/sub (opcional)

Escalar el servidor a varios procesos — la puerta a la infraestructura distribuida, a discutir cuando se llegue.

Abrir TCP Fundamentals
Capa de referencia

Registros y memoria operativa

Los registros mantienen referencias externas, specs, herramientas y material fuente normalizados detrás de notas atómicas cortas.