El Protocolo de control de transmisión (TCP), uno de los estándares más establecidos de los últimos 40 años, puede estar viendo el final de la línea, al menos para aplicaciones en algunos de los centros de datos más grandes del mundo.
Sin embargo, para el resto del mundo, el inconveniente del cambio puede ser demasiado pesado, incluso si las capacidades de entrega de mensajes 100 veces más rápidas están al alcance.
Pero lo que es bueno para los que están por encima del nivel puede ser beneficioso para una TI mediana. Al final, de todos modos.
Hace cuatro décadas, TCP, con su enfoque en redes de quizás mil nodos distribuidos geográficamente, a menudo a cientos de kilómetros de distancia, era verdaderamente innovador. Podría realizar la tarea entonces crítica de transmitir grandes cantidades de datos a largas distancias, e incluso hoy en día sigue siendo la base predeterminada para casi todas las tecnologías basadas en la web.
El centro de datos actual es, por supuesto, muy diferente. Ahora, tratamos con cientos de máquinas en estrecha proximidad, comunicándose en intervalos cortos. TCP está diseñado para un mundo de milisegundos para entregar un paquete de un extremo de una red a otro, pero en un centro de datos, esa tarea se realiza en una fracción de segundo.
John Osterhout, profesor de informática en Stanford, dice registro. «Con TCP no puedes hacer eso, el protocolo está construido de tantas maneras que es difícil de hacer».
No es como darse cuenta de las limitaciones de TCP es algo nuevo. Ha habido avances en la superación de algunos de los problemas más importantes, incluido el control de congestión para resolver el problema de enviar dispositivos al mismo objetivo al mismo tiempo, lo que provoca una copia de seguridad de la red. Pero estos son ajustes incrementales a algo que es intrínsecamente inapropiado, especialmente para las aplicaciones de centros de datos más grandes (piense en Google y otros).
“Cada decisión de diseño en TCP es incorrecta para el centro de datos y el problema es que no hay nada que pueda hacer para mejorarlo, tiene que cambiar en casi todos los sentidos, incluida la API, que es la interfaz que usa la gente. para enviar y recibir datos. Cada algo tiene que cambiar».
Por supuesto, esto es mucho más fácil decirlo que hacerlo. «firme» no comienza a describir TCP. Casi todos los programas dependen de él y de formas muy concretas, nada menos.
Pero Ousterhout es una de esas personas en la investigación de sistemas que puede mirar un problema intratable como este y ver el camino a seguir, sin necesidad de lentes color de rosa.
Si bien su cargo actual en la Universidad de Stanford se enfoca en sistemas y software distribuidos, si su nombre le suena familiar, es porque creó tecnologías destinadas a desplazar cosas que ya no se ajustan a los tiempos. Por ejemplo, el lenguaje de secuencias de comandos Tcl (Tool Command Language) de alto nivel existe desde hace más de tres décadas.
Esto lo llevó a trabajar en Sun para continuar desarrollando este esfuerzo, y luego a la compañía de soporte y herramientas de Tcl, Scriptics. El tema en todas sus patentes e investigaciones fue constantemente sacar de raíz tecnología antigua y reemplazarla con algo más fácil y más ajustado para los sistemas modernos.
Su respuesta a la trampa de tiempo de TCP se llama «hombre» [PDF] Ya tiene una implementación del kernel de Linux que dice que está lista para la producción. El desafío es cómo cambiar de aplicación para que puedan usar su nueva interfaz. El mayor y más lejano problema es que hay millones de aplicaciones que dependen de TCP.
El punto de partida es uno de los superlativos donde este tipo de reparación sería más bienvenida. La mayoría de las aplicaciones de centros de datos a gran escala que se ejecutan en Google, Amazon o Azure tienden a no programar directamente en la interfaz de socket TCP, sino que optan por usar bibliotecas que implementan llamadas a procedimientos remotos, donde el programa envía un SMS a otra máquina pidiéndole que realice una tarea. y luego recibe una breve respuesta.
Los centros de datos más grandes tienen marcos que facilitan la emisión de llamadas a procedimientos remotos (RPC) y estas suelen ser herramientas internas como gRPC de Google. En opinión de Ousterhout, si Google modifica sus marcos para admitir Homa junto con gRPC, las aplicaciones que usan esos marcos solo deberían requerir un cambio de una línea.
«Esta es la mejor esperanza para lograr la transición lejos de TPC», nos dice. «Si hacemos eso, muchas de las aplicaciones de centros de datos más interesantes pueden beneficiarse del nuevo protocolo». Agrega que las aplicaciones heredadas basadas en TCP seguirán funcionando bien, pero para las aplicaciones de centros de datos más grandes, cambiar a Homa, así como a sus herramientas RPC dedicadas, podría significar una entrega de mensajes hasta 100 veces más rápida, un gran problema a escala.
Hay una lista completa de todo lo que está mal con TCP para el centro de datos moderno, junto con algo de contexto sobre lo que se necesitaría para comenzar a hacer la transición, aunque solo sea conceptualmente. ®
«Fanático del café. Amable aficionado a los zombis. Devoto practicante de la cultura pop. Malvado defensor de los viajes. Organizador típico».