En 2015 empezó en la práctica a utilizarse HTTP/2, volvemos a tener delante la nueva evolución. Este tipo de cambios afectan a la mayoría de tráfico generado en internet, los cambios son lentos y silenciosos en ocasiones. Desde 2019 en Chrome (v79) y 2020 en Edge, Safari y Firefox el protocolo esta integrado en los navegadores pero no activado.
Desde los inicios de DARPA en 1969, ARPAnet en 1974 y su utilización comercial desde 1990, el conjunto de protocolos TCP (Transmission Control Protocol), UDP (User Datagram Protoco) e IP (Internet Protocol) han sido la base del desarrollo para llegar a la red de redes que tenemos hoy en día.
De manera simplificada podemos indicar que IP se encarga de comunicar dos extremos, una vez se alcanza el acuerdo de como enviar la información se utiliza TCP, UDP o ambos. La diferencia es que TCP enviará la información (paquetes) numerados en orden y será necesario confirmar al emisor que se ha recibido cada uno de ellos, en caso contrario se vuelven a enviar. Todos estos procesos añaden retardo a la comunicación, así que UDP no realiza comprobaciones de este tipo, solo la comprobación de checksum se realiza en todos ellos de manera mínima y básica.
Mientras que la cabecera del protocolo TCP es de 20 bytes la de UDP es de 8 bytes, un ahorro exponencial en transmisión de información.
Volviendo al uso diario ¿Cuándo se utiliza UDP? mayoritariamente en transmisión de audio y video donde una perdida puntual de información es menos relevante que la velocidad a la que se realiza; imagina que empiezas a ver un video en streaming en tu plataforma preferida o algún juego online… se entrecorta una parte de la imagen durante pocos milisegundos pero no vuelves o esperas a la parte «perdida», la prioridad es continuar la comunicación a la suficiente velocidad.
Los dos tipos de tráfico discurren por la misma red, ambos son importantes por lo que se debe encontrar el equilibrio entre ambos. Parece más distante pero en 2024 se cumplirán 50 años del inicio de internet, durante este tiempo han surgido diferentes iniciativas para mejorar Internet pero ha sido QUIC (Quick UDP) el que ha extendido el protocolo UDP añadiendo características de TCP y otras nuevas.
A partir del diseño inicial de Jim Roskind (Google) se formalizó un grupo de trabajo para la estandarización IETF en 2016 con algunas mejoras a destacar:
- Se utiliza TLS 1.3 para todos los datos transmitidos, añade seguridad con menor latencia, en lugar de esperar la negociación (handshake) de TCP + TLS se realiza de forma única y más rápida. Se añaden protecciones frente a ataques DoS, playback, spoofing, reflection…
- Reutilización de conexiones previas, se definen dos mecanismos para reutilizar una sesión: streams y tickets, permiten no tener que volver a negociar las características del envío de datos entre las partes. Como consecuencia, un cambio de IP en el cliente no significa cerrar conexiones y renegociar; por ejemplo, navegar con tu portátil y cambiar a otra red wifi o por cable.
- Pensando en versiones futuras, el protocolo incorpora control de versiones para que su adopción sea más rápida así como posibilidad de realizar extensiones privadas o públicas.
Después de varios cambios HTTP/3 se ha adoptado como el nombre final a la especificación HTTP sobre QUIC, todos los navegadores modernos ya lo soportan, Windows 10 21Hx, Windows 11 y Windows Server 2022 lo soportan de manera nativa. Con la adopción paulatina en grandes empresas y redes (Google, Microsoft, Cloudflare, Akamai…) los resultados para los usuarios finales tal vez no serán tan apreciables, pero permitirá seguir creciendo internet.