SPDY, protocolo de aceleración web

Leturia Azkarate, Igor

Informatikaria eta ikertzailea

Elhuyar Hizkuntza eta Teknologia

Las comunicaciones y transferencias que se producen en la web se realizan a través del protocolo HTTP. Sin embargo, este protocolo se diseñó en la creación de la web hace más de 20 años, mientras que la web ha cambiado mucho y el protocolo HTTP no es eficaz para las características de la web actual. Por eso han creado el protocolo SPDY, que se está extendiendo rápidamente con el objetivo de agilizar la web.
spdy-weba-azkartzeko-protokoloa
7 niveles del modelo OSI.

SPDY no son las siglas de nada, sino un juego de palabras de velocidad: speedy . ¿Recuerda el ratón Speedy Gonzales? SPDY considera que acelera mucho las transferencias de páginas, documentos y otros ficheros a la web. Según las pruebas de laboratorio realizadas por Google, el rendimiento puede mejorarse hasta un 64%. Y en las primeras pruebas en móviles, dicen que han conseguido cargar las páginas un 23% más rápido. ¿Pero cómo se consigue esta mejora?

Fundamentos de Comunicaciones Web

Para comprender cómo se consigue acelerar es necesario conocer previamente el funcionamiento del protocolo HTTP y de la propia web. La comunicación en web, al igual que cualquier tipo de telecomunicaciones de datos, está organizada en siete niveles según el modelo OSI (Open Systems Interconnection reference model, estándar de ISO), donde se utiliza un sistema o protocolo a cada nivel.

Internet es una red gigante descentralizada formada por millones de redes interconectadas. En el nivel más básico de la comunicación, es decir, a nivel físico, se utilizan tecnologías muy diferentes para transmitir los bits (0 y 1) (diferentes tensiones en el cable eléctrico, diferentes intensidades de luz en la fibra óptica, o modulación de frecuencias en las ondas de radio, etc.). En el siguiente nivel, a nivel de enlace, se detectan y corrigen los errores e interferencias en la transmisión utilizando bits redundantes de control, y el método preciso aquí utilizado depende del nivel físico. Sus combinaciones complementan los protocolos básicos de comunicación como Bluetooth, WiFi, etc., muchos de los cuales Internet utiliza en diferentes puntos de la red. Pero en niveles lógicos superiores, Internet utiliza siempre los mismos protocolos, funcionando en la práctica como una sola red.

El nivel superior, nivel de red, se encarga de organizar los datos en paquetes y de la dirección, utilizando para ello el protocolo IP de Internet ( Internet Protocol ). El siguiente nivel es el nivel de transporte que se ocupa, entre otros aspectos, de la implantación de las conexiones y de la fiabilidad de los mensajes, utilizando Internet el protocolo TCP ( Transmission Control Protocol ) en este nivel.

A continuación se incluye el nivel de sesión, encargado de la autenticación, etc., y el nivel de presentación, encargado de comprimir y/o cifrar los datos. Sin embargo, estos dos últimos en Internet están mezclados y dependen del último nivel de aplicación. Ejemplos de servicios de aplicación en Internet son el correo electrónico, la web, el servicio FTP, el chat, etc. Y el protocolo utilizado para la web es HTTP.

En el protocolo HTTP, un cliente (por ejemplo, el navegador web de nuestro ordenador) establece una conexión con un servidor (normalmente un servidor web que aloja webs) y envía una solicitud de una página web (en la que se recogen informaciones gratuitas como la página deseada, el sistema operativo y navegador del cliente o el idioma por defecto). El servidor responde devolviendo la página solicitada o con un código de error (como el famoso 404) y finaliza la conexión.

Mejoras SPDY

Implementación del modelo OSI en Internet.

El protocolo HTTP es adecuado para las características de la web de la época en la que se creó la web, es decir, para la que sólo disponía de páginas estáticas. Pero la web actual es muy diferente.

Por ejemplo, hoy en día estamos en una web, podemos establecer nuestras preferencias, que se almacenan en las cookies de nuestro ordenador; estos ajustes deben ser reenviados cada vez que solicitamos una nueva página de esa web, lo que puede ser una gran cantidad de información que estamos reenviando innecesariamente, ralentizando la comunicación. Por otro lado, la necesidad de restablecer la conexión cada vez que necesitamos una nueva página también inactiva la navegación. Por último, cuando estamos en una página para ver las actualizaciones (por ejemplo, si hay mensajes nuevos cuando estamos viendo el correo electrónico vía web), la única manera de que el navegador pregunte con cierta frecuencia al servidor, no es posible que el propio servidor avise al cliente cuando hay algo nuevo.

El protocolo SPDY pretende resolver estas ineficiencias de HTTP sin sustituir al propio protocolo HTTP. Se trata de un protocolo que se implementa en los niveles de sesión y aplicación y que se pone en marcha en el caso de que el cliente y el servidor lo tengan implementado, de lo contrario la comunicación se realizará con HTTP normal.

SPDY utiliza una única conexión con el servidor para todas las solicitudes que se le hagan, es decir, cuando el cliente tiene que solicitar una nueva página al mismo servidor no es necesario volver a establecer la conexión, lo que acelera la velocidad. Además, a través de esta conexión, el servidor también puede enviar información al cliente sin que éste lo solicite, permitiendo que las actualizaciones de las páginas se realicen en el momento y cuando sean necesarias. Por otro lado, el servidor guarda la huella de la información que el cliente ha enviado en solicitudes anteriores (sistema operativo, navegador, preferencias, idioma…) y no hace falta que se envíe todo de forma periódica, sólo se envía lo diferente o nuevo y además se comprime. Por último, la encriptación y la compresión se utilizan en todo momento.

Historia y difusión

Google creó el protocolo SPDY en 2009. En 2011 implementó Chrome en su navegador y su búsqueda y servicios Gmail. Por tanto, al acceder a estos servicios desde este navegador el usuario se beneficiaba de las ventajas de SPDY. Después Google abrió el código de su implementación y desde entonces también lo han implementado en los navegadores Firefox y Opera, que están más en marcha.

En cuanto al software de servidores, las últimas versiones de los servidores web Apache (el servidor web más utilizado del mundo), Nginx y Jetty ya tienen el protocolo SPDY. Twitter y WordPress también ofrecen soporte SPDY y Facebook anuncia su intención de colocarlo en breve.

Parece que SPDY está teniendo una gran difusión. Y parece que será aún mayor, ya que la siguiente versión del protocolo HTTP 2.0 que se está trabajando ahora tendrá como base SPDY. Por lo tanto, en breve toda la web será más rápida gracias a SPDY. ¡Ándele, ándele! Arriba, arriba! Epa! ¡Yebigw!

Babesleak
Eusko Jaurlaritzako Industria, Merkataritza eta Turismo Saila