Un error común de concepto: La "velocidad" de conexión a Internet

Post original en JASoft.org: http://www.jasoft.org/Blog/post/Un-error-comun-de-concepto-La-velocidad-de-conexion-a-Internet.aspx

FerrariCaracolEstos días mi proveedor de acceso a Internet (R cable) nos ha hecho un gran regalo a todos los clientes: nos ha duplicado la "velocidad" gratuitamente y para siempre. Así que en lugar de conectarme a 50 Mbps como hasta ahora. lo haré a 100 Mbps. Mira, ¡como los japoneses!. Así da gusto. Ahora podré bajarme las cosas el doble de rápido… ¡Error!

Esta (en cualquier caso) buena noticia me ha hecho recordar que tenía pendiente escribir algo sobre este asunto de la "velocidad" de conexión a Internet. Y es que escribo el término entre comillas porque es incorrecto, y de hecho es un concepto que casi todo el mundo interpreta mal y confunde. Y los primeros que fomentan esta confusión, por intereses comerciales, son los propios proveedores de conexión a Internet, a los que le resulta mucho más fácil venderte que te aumentan la velocidad cuando en realidad lo que aumentan es la capacidad, que son cosas muy diferentes. Pasa algo parecido al comprar una cámara de fotos (te venden Megapíxeles que es casi lo de menos a partir de cierta cantidad e influye más el tamaño del sensor y su calidad) o un ordenador del que te venden la velocidad del procesador, cuya influencia hoy en día es muy pequeña.

Por eso tenía ganas de escribir este artículo: creo que es importante aclararlo y que todos sepamos distinguir correctamente la velocidad de la capacidad de una conexión. Nos ayudará a entender mejor lo que nos ocurre muchas veces con nuestras conexiones.

Un símil para empezar

Imagínate que tienes que transportar a 50 personas desde Madrid a Valencia (unos 350 Km) de la manera más rápida posible, y para ello dispones de un autobús y de un Ferrari.

¿Cuál de los dos vehículos es más rápido?

Creo que está claro para todo el mundo que el Ferrari es mucho más rápido, pero si la pregunta fuese:

¿Cuál de los dos vehículos tiene más capacidad?

está claro entonces que el autobús tiene más capacidad.

Así que:

¿cuál escogerías para la tarea que te han encomendado?

Pues de nuevo está claro que el autobús, que será capaz de llevar a toda esa gente en un solo viaje, aunque tarde 4 horas. Si usásemos el Ferrari y no nos importan las multas ni la vida de los demás podríamos llevar a dos personas en un tiempo ideal de 1 hora, pero para llevar a 50 tendríamos que hacer 25 viajes, así que tardaríamos mucho más que con el autobús. Si la tarea fuese transportar a 2 personas de Madrid a Valencia lo antes posible, entonces escogeríamos el Ferrari sin lugar a dudas.

Para ver mejor el concepto que quiero transmitir vamos a hacer unos pocos números, de modo que veamos los tiempos que necesitan nuestros vehículos para transportar a los 50 viajeros:

  • Autobús: 50 personas/4 horas = 12,5 personas/hora
  • Ferrari: 50 personas / 2 pasajeros cada viaje = 25 viajes, 25 viajes x 2 horas cada viaje (ida y vuelta, OJO) = 50 horas, así que 50 pasajeros / 50 horas = 1 pasajero/hora

Es decir, para transportar a 50 personas el autobús es 12,5 veces más "rápido" que el Ferrari.

Pero todos sabemos que no es cierto, y que el autobús no es más rápido que el Ferrari, sólo tiene más capacidad. Si alguien nos viniese a vender un autobús al precio de un Ferrari diciéndonos que es mucho más rápido le diríamos que nos está tomando el pelo.

Pues esto es precisamente lo que hacen los proveedores de conexión a Internet cuando te están vendiendo sus productos de conectividad, diciendo que te ofrecen 20 Mbps o 100 Mbps de "velocidad". Simplemente no es cierto. Lo que te están vendiendo es capacidad de transmisión de datos, que es algo muy diferente.

La confusión inicial viene de que Kbps significa Kilobits por segundo, es decir, cantidad de miles de bits por segundo o Kb/s. Y como la velocidad en el mundo físico se mide en m/s (espacio entre tiempo), el ver esos segundos en el denominador nos evoca la idea de velocidad, pero no es así en absoluto, como espero que el ejemplo haya dejado claro.

La latencia de una conexión

Hay un parámetro del que raramente se habla y que es tan importante (o más, según la aplicación que quieras darle a la conexión) que la mal llamada velocidad de conexión: la latencia. Yo jamás he visto a ningún proveedor que la mencione en sus ofertas, ni siquiera bajo un asterisco en la letra pequeña. Y este parámetro es de crucial importancia.

La latencia es una medida del retraso, es decir, es el tiempo que tarda un paquete de datos de ir de su origen (tu ordenador) a su destino (Google por ejemplo). Se suele medir en milisegundos, y se suele considerar (por facilidad de medida) el tiempo que tarda un paquete de datos en hacer un camino completo de ida y vuelta entre dos ordenadores.

La latencia entre dos máquinas es muy fácil de determinar, pues basta hacer un "ping" a nuestro nodo de destino para ver este dato.

Por ejemplo, nuestro servidor de campusMVP internacional está ubicado en EEUU, precisamente para que la latencia para los clientes que tenemos allí sea la menor posible. Veamos qué tiempos me da si hago un ping desde mi ordenador en España:

Ping_campusMVP_net

 

En promedio 164 milisegundos de latencia, es decir, tarda 164 ms en ir y volver de mi portátil hasta nuestro servidor en EEUU. No está nada mal aparentemente…

Veamos ahora el mismo ping pero a campusMVP.com que está ubicado en España:

Ping_campusMVP_com

¡42 ms! Es decir, cuatro veces menos tiempo o lo que es lo mismo 4 veces más rápido, más velocidad (¡ahora sí!). La diferencia es enorme. Sin embargo es la misma conexión, y por lo tanto el mismo ancho de banda.

Nota: Si haces la prueba contra Google, por ejemplo, verás que la latencia es mínima siempre, porque estas empresas tienen servidores repartidos por todo el mundo y siempre te conectas al que está más cercano a ti.

¿A qué se debe esa diferencia?

Hay varios factores que contribuyen a la latencia de una conexión:

  • Retardos de transmisión: cuando un ordenador en España se comunica con un servidor ubicado en Estados Unidos, lo primero que debe hacer es cruzarse medio mundo. Aunque la fibra óptica hace un gran trabajo moviendo la señal y consigue velocidades de más de la mitad de la velocidad de la luz, cuanto más lejos esté un servidor del otro más retardo existe por las propias restricciones físicas. Así que ahí perderemos siempre unos cuantos milisegundos (más cuanto más lejos sea) incluso aunque tendamos un cable de fibra óptica directo y en línea recta entre los dos nodos.
  • Retardos de propagación: hace un momento decía que la fibra óptica consigue más de la mitad de la velocidad de la luz, pero no la velocidad completa. El motivo es que las propiedades físicas inherentes al medio limitan la velocidad de propagación de la señal. Dependiendo del medio que se use para transmitir puede llegar a influir mucho. Las conexiones a través del "aire" como las de los móviles o las de satélite tienen una latencia muy elevada.
  • Retardos de procesado: los aparatos que están en el medio de toda transmisión incorporan su propio retraso también: tarjeta de red, router, switches… y demás elementos que forman parte de la red y de Internet, deben procesar cada paquete y eso añade cierto retraso aunque sea muy pequeño. Hoy en día tiene muy poca importancia, pero por ejemplo cuando hace 15 años nos conectábamos con módems de 53 Kbps, esos chismes solían añadir latencias enormes a las conexiones. O sea, no es que tuvieran poca capacidad, sino que encima le añadían mucha latencia a las comunicaciones.

Como vemos, el ancho de banda, mal llamado "velocidad", no es el único factor que debería preocuparnos…

Nuestro proveedor de acceso a Internet puede tener una influencia muy alta en la latencia de nuestra conexión, ya que si usa equipos de transmisión lentos puede llegar a afectarnos muy negativamente por muy bueno que sea el ancho de banda que nos da.

¿Cómo sabemos qué parte de la latencia corresponde a nuestro proveedor o a nuestro router frente al resto de elementos que entran en juego?

Muy fácil: usando la herramienta tracert (o traceroute), que sirve para trazar la ruta entre nuestro equipo y otro en Internet, dejándonos ver los nodos intermedios por los que pasa y el tiempo que tarda en alcanzarlos:

tracert_campusMVP_net

 

En la captura anterior podemos ver todos los nodos por los que pasan los paquetes de comunicación para llegar desde mi portátil hasta el servidor que alberga www.campusmvp.net, ubicado en EEUU. Dentro de la red de mi proveedor de Internet (R-cable) la latencia es muy pequeña. Son los 3 primeros saltos y no se demora más de 10-11 ms, lo cual está muy bien. Puedo decir que mi proveedor funciona de maravilla en este momento concreto, pues me está dando un ancho de banda enorme con una latencia muy buena. Pero a otra hora del día o si hay cualquier otro tipo de problema, la situación no tiene porque ser tan favorable (los cable-módem son muy sensibles a problemas en la señal y ya he tenido algún que otro problema antes) y conviene que lo controlemos.

La importancia de la latencia

Ahora es cuando alguno dirá: "Bueno, muy interesante, pero me da igual: yo sólo me bajo archivos grandes, como vídeos y música, así que aunque tarde un poco más en arrancar la descarga, no me importa".

Se trata de un error. De lo que el usuario medio de Internet no se da cuenta es de que el protocolo TCP/IP utiliza paquetes para mover la información entre dos nodos. Así que cualquier archivo que queramos transmitir, por grande que sea, se divide en miles o millones de esos pequeños paquetes, que se transmiten entre ambos nodos. Además, esos paquetes no se envían y ya está, sino que como hay que asegurar que se reciben todos y además juntarlos en el orden adecuado, entre ambas máquinas se están transmitiendo todo tipo de paquetes de control y "acuse de recibo" que ayudan a coordinar esa recepción (TCP/IP se diseñó así para que fuera redundante y tolerante a fallos). Así que incluso con archivos grandes la velocidad de transmisión de los paquetes, o sea la latencia, es muy importante.

Incuso en protocolos que utilizan TCP/UDP, modalidad en la que los paquetes se envían pero no se asegura ni el orden de recepción ni la integridad, es importante la latencia. Por ejemplo, la mayoría de las aplicaciones de videoconferencia o telefonía por Internet utilizan el protocolo de transmisión UDP, así que no tienen tanto tráfico de coordinación. Es más, para mantener una conversación de voz por Internet el ancho de banda necesario es muy pequeño. Incluso con un módem de hace 15 años tendríamos ancho de banda suficiente para hacer voz sobre IP. El problema que había entonces con esos aparatos que hacía que fuera un infierno y acabó con muchos de los precursores de Skype, era precisamente la latencia, y de hecho hoy en día sufrimos los mismos problemas cuando usamos estas aplicaciones a través del móvil y su conexión 3G. Si tienes una latencia de 100 ms (que no parece mucho, es una décima parte de un segundo), lo más probable es que la conversación se oiga entrecortada y tengas mala calidad.

Aunque una conexión 3G puede dar capacidades superiores a los 3Mbps, en la práctica lo normal es que estén alrededor de los 1,7 o 2 Mbps si tenemos suerte, lo cual de todos modos no está nada mal. Para la mayor parte de las aplicaciones ese ancho de banda es suficiente. Sin embargo la latencia de una conexión 3G es muy alta. Para hacernos una idea mira el mismo ping anterior a campusmvp.com, pero esta vez hecho desde mi móvil, ubicado en la misma habitación desde la que escribo pero conectándome a través de 3G:

Ping_campusMVp_com_3G

Fíjate como lo normal es que sea de 249 ms (5,4 veces más que desde el cable) y ¡con picos de casi 500 ms!

Además las conexiones móviles tienen el problema adicional de que, para ahorrar batería, no están todo el tiempo conectadas y a veces para iniciar la conexión tienen que negociarla de nuevo, lo que puede añadir uno o dos segundos más de retraso antes de que empiece a funcionar con la latencia tan mala que hemos visto.

Otro ejemplo: OnLive. Ya he hablado en mi otro blog de este servicio de juegos 3D renderizados en la nube. Sólo pueden atender a clientes ubicados a menos de 1.000 millas de sus servidores (unos 1.600 kilómetros). Y da igual el ancho de banda que tengas: se trata de una limitación física que viene dada por la latencia, no por la capacidad. Es un ejemplo claro.

Hay otras muchas aplicaciones en las que la latencia tiene un papel importante, pero lo más común son la videoconferencia, la voz sobre IP y los videojuegos.

Entonces ¿el ancho de banda no importa?

Claro que sí, pero no es tan importante como todo el mundo piensa y su influencia en la velocidad real de descarga de páginas y archivos es menor de lo que nos quieren hacer pensar. De hecho el gigante de Internet Akamai en su estudio trimestral del estado de Internet hace hincapié en la influencia del ancho de banda y de la latencia en los tiempos de carga de las páginas y los resultados son reveladores: a partir de cierta capacidad de ancho de banda (en torno a los 8 mbps) la cosa no mejora:

bandwidth-vs-latency_pagespeed

La gráfica de la izquierda es el tiempo de carga medio de las páginas en función del ancho de banda. Como vemos para los tramos inferiores la cosa se nota bastante, pero a partir de los 7-8 Mbps ya no. Sin embargo la gráfica de la derecha es muy reveladora pues es ese mismo tiempo de carga promedio para páginas web en función de la latencia: cada mejora de unos pocos milisegundos en la latencia se traduce inmediatamente en una reducción del tiempo de carga de la página.

Para descargar archivos de servidores con mucho ancho de banda seguramente la influencia es mayor y mejor tener más ancho de banda todavía, pero sinceramente de 50 Mbps a 100 Mbps la diferencia no será apreciable. Eso sí, para mi proveedor de acceso a Internet es una estrategia comercial estupenda: tiene a los clientes dando palmas con las orejas porque les han duplicado la velocidad de descarga, pero el alcance es mucho más limitado de lo que esos clientes se piensan.

En resumen

Los proveedores de conexión a Internet suelen hablar de "velocidad de conexión" cuando realmente deberían hablar de "ancho de banda". Además ninguno da información sobre la latencia ni asegura de modo alguno un mínimo para ésta dentro de su red. De hecho por eso la contratación de líneas exclusivas para comunicaciones en centros de datos es tan cara: lo que pagamos no es tanto el ancho de banda, que es muy barato, sino la latencia mínima que incluyen con ellas los proveedores.

A la hora de valorar la calidad de una conexión a Internet doméstica, el ancho de banda no es la única variable que importa. La latencia de la conexión es muy importante también y según las aplicaciones que queramos utilizar puede llegar a ser más determinante incluso que el propio ancho de banda. Así que deberíamos tratar de ver ambos. Los miles de test de velocidad que hay por Internet son útiles de manera bastante limitada y deberían darnos también datos de latencia. De todos modos usando dos herramientas muy comunes incluidas en todos los ordenadores que tenemos en casa es posible estimar muy bien este parámetro también y tener una visión mucho mejor de la calidad de nuestra conexión.

Espero que todo esto te ayude a entender mejor cómo funciona Internet y a determinar posibles problemas con tu conexión a Internet y la calidad de tu proveedor de acceso 🙂

Sin categoría

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *