El equipo de ingeniería de Cloudflare analiza SOCKMAP, una infraestructura del kernel de Linux pensada originalmente para Cilium, y la presenta como una herramienta clave para optimizar el reenvío de datos en proxies inversos y balanceadores. Hasta ahora, los programas que mueven grandes volúmenes de tráfico TCP entre sockets recurren a llamadas al sistema especializadas como sendfile, splice o vmsplice, que evitan copiar datos a espacio de usuario pero siguen siendo síncronas, costosas en syscalls y generan latencia de wakeup.
El artículo compara tres implementaciones de un servidor echo TCP para ilustrar el problema: una versión naïve que lee y escribe en bucle, una basada en splice() que evita copias pero aún necesita dos syscalls por bloque de datos, y una con io_submit() y AIO que reduce las llamadas al sistema.
La propuesta central es SOCKMAP, un tipo de mapa eBPF introducido en el kernel 4.14 y creado por John Fastabend. Permite asociar sockets TCP como valores del mapa y adjuntar dos programas eBPF (parser y verdict) directamente al mapa, de modo que el empalme entre sockets ocurre dentro del kernel, sin pasar por espacio de usuario. Sus ventajas son claras: menos syscalls, cero copia y menor latencia. Como limitaciones, la API requiere privilegios de root, está poco documentada y todavía presenta errores. Cloudflare considera que SOCKMAP puede provocar un cambio estructural en la arquitectura de proxies software y otras aplicaciones con alto volumen de datos.
