Buscar en este blog

Mostrando entradas con la etiqueta best effort. Mostrar todas las entradas
Mostrando entradas con la etiqueta best effort. Mostrar todas las entradas

lunes, 1 de agosto de 2011

Uso razonable de Gestión de Tráfico

Acerca de "La Gestión de Tráfico" se ha visto que su uso, teniendo en cuenta condiciones cómo "Ancho de banda, latencia y jitter" disponibles, puede resultar beneficiosa. Pero el problema está en determinar qué se considera una Gestión de Tráfico razonable y que no sea discriminatoria ni injusta. Los defensores de la Net Neutrality en su posición mas extrema abogan por un Internet en el que todos los paquetes sean tratados por igual, sin distinción de ningún tipo, no admitiendo ningún tipo de gestión. En el otro extremo se encuentra la Gestión de Tráfico en la que todo puede ser controlado y administrado sin ninguna condición (esto podría dar lugar a situaciones anticompetitivas donde, por ejemplo, un ISP pudiese llegar a bloquear el tráfico de otro ISP).


El esquema anterior muestra una buena aproximación de las posibles aplicaciones que se le puede dar a la Gestión de Tráfico. Cómo se puede apreciar, los usos posibles pueden ser beneficiosos cómo por ejemplo el bloqueo de aplicaciones maliciosas o prestación de mejor servicio para aplicaciones más vulnerables cómo VoIP, streaming, etc. No obstante, otras aplicaciones posibles serían degradación de tráfico P2P (ver "El tráfico P2P") o la priorización de algunos tipos de servicios según acuerdos comerciales (por ejemplo, el ISP A tiene un acuerdo con Skype y permite su tráfico sin problemas, mientras que el ISP B no lo tiene y lo degrada). Otro modelo podría ser el que se muestra en el post "La Neutralidad de Red", dónde se aplicacarían tarifas diferenciadas según los servicios consumidos. Cómo se puede apreciar las posibilidades que ofrece la Gestión de Tráfico son varias.

Ahora bien, qué es lo que se considera aceptable? Evidentemente esto dependerá de quien lo considere, no tendrá la misma opinión un usuario que un operador de red. Una buena aproximación de lo que debería ser una buena Gestión de Red debería cumplir con los siguientes criterios:

  • Particularizada. Se debe adaptar a situaciones de la red teniendo en cuenta factores cómo picos de consumo, densidad de suscriptores, limitaciones propias del medio de acceso, etc.
  • Proporcional. Debería aplicarse en la medida en que se produzca congestión en la red para evitar situaciones abusivas, llegando incluso al modelo 'best effort' si no exsite congestión.
  • Equitativa. Se debería llevar a cabo de forma justa, sin llegar a privar a ningún cliente del servicio ni llegando a situaciones dónde un cliente tenga prioridad sobre otro.
  • Necesidad técnica. Se debería planificar y diseñar una política de gestión en función de las necesidades técnicas que se den en la red en concreto.
  • Transparente. El operador o ISP debería dar a conocer que medidas se toman y en que condiciones de modo que el cliente esté informado correctamente.
  • Legítima. Evidentemente cualquier técnica de gestión debe cumplir con la legislación vigente en la zona geográfica en la que se aplique.
  • Auditable. Para evitar problemas de cualquier índole los operadores e ISPs deberían de ser capaces de demostrar que la aplicación de Gestión de Tráfico responde a necesidades reales y que las medidas resultan efectivas.
El uso de técnicas de gestión bien llevado puede contribuir a un mejor Internet, siempre que esto no atente contra las bases sobre las que se ha sustentado su crecimiento. Internet ha llegado a ser lo que és precisamente gracias a estas bases que lo hacen libre y abierto, dónde todo tiene cabida. La tecnología disponible a día de hoy es capaz de detectar y gestionar el tráfico según las aplicaciones y necesidades asignando la calidad más apropiada y contribyendo a una mejora de la QoE (Quality of Experience), además de detectar posibles ataques e intrusiones.

Para ello muchas veces se hace uso de "Deep Packet Inspection (DPI)" y/o análisi heurístico precisamente porqué muchas apliaciones enmascaran el tipo de tráfico que se transporta y porqué violan algunas recomendaciones o normas de Internet. Pero esto ya es otro tema, que se analizará en el próximo post “Violación de recomendaciones y normas en Internet”.

miércoles, 13 de julio de 2011

Cómo funciona Internet?

Después de haber hablado brevemente sobre "Qué es Internet?", se pretende dar un pequeña explicación de cómo funciona, que no es poca cosa. Para ello, primero de todo, se debe conocer el modelo en que está estructurado, que se corresponde con el modelo OSI.  

El Modelo OSI fue creado en 1984 por la ISO (International Organization for Standardization) con la intención de ser el marco de referencia para la conexión de equipos de comunicaciones y para estimular la compatibilidad entre diferentes tipos de redes.  Así, se definieron 7 capas a las que se atribuyen unas funciones determinadas y que hacen referencia a los procesos que atraviesan los datos desde su origen hasta su destino.

Capa física (L1): Describe las características físicas de los datos, esto abarca desde los conectores que se deben utilizar hasta la temporización de los datos, pasando por los niveles de potencia, etc.

Capa de enlace (L2): Prepara los datos para que puedan ser enviados a lo largo de los medios utilizados (a esta unidad de de datos se les llama tramas), lo que puede significar que los prepara para un medio inalámbrico (Wi-Fi, UMTS/HSPA, etc.) o bien para ser enviados a lo largo de una conexión cableada (Ethernet, ATM). Los dispositivos que realizan esta función son generalmente los switch, que trabajan con direcciones MAC (cada dispositivo de red posee una de estas, que es única en todo el mundo).

Capa de red (L3): Proporciona el direccionamiento y enrutamiento, es decir, gestiona como los datos (en este nivel, paquetes) se transportan de una parte de la red a otra. Es la responsable de configurar el paquete a un estándar de transmisión apropiada (por ejemplo, IP). El dispositivo que se encarga de esta tarea en Internet es el router, que trabaja con direcciones IP (aunque también con MAC).

Capa de transporte (L4): Establece una conexión extremo a extremo entre el punto de origen y destino asegurando que los paquetes se reúnen en el orden correcto. A estas unidades de datos se les llama datagrama y aquí es dónde se especifica el número de puerto donde conectarse una vez alcanzada la máquina a la que accedemos (por ejemplo, para navegación web se utiliza el puerto 80). Un puerto no es más que un número que se emplea a nivel software en los dispositivos para saber qué hacer con la información. Los firewall suelen analizar esta capa de la información.

Capa de sesión (L5): Crea, administra y termina sesiones de comunicaciones entre el remitente y el destinatario de tráfico de datos.  Como sesión podemos entender un proceso de intercambio de datos.

Capa de presentación (L6): Tiene que ver con el formato en que los datos se presentan. Esta capa también funciona como la capa que cifra y comprime los datos. 

Capa de aplicación (L7): Esta capa interactúa con el programa que está haciendo una petición de datos y es dónde se definen los protocolos que se van a utilizar.


Cuando se hace una petición de comunicación, los datos se van encapsulando en las diferentes capas y cada una de ellas aporta una cierta información sobre qué protocolo y características está utilizando, esto se conoce como cabecera.  Este encapsulado se produce desde el L7 hasta el L2, hasta que se envia a la red. En la recepción se des-encapsula en el sentido contrario.


Se ha hablado del modelo OSI, pero Internet se basa en el modelo TCP/IP. A grandes rasgos son muy similares pero con la diferencia de que en TCP/IP se integran los niveles del modelo OSI L6 y L5 en su L7 (aplicación). Esto es debido a que Internet no tiene un nivel de sesión unificado sobre el que los niveles superiores se sostengan, estas funciones son típicamente desempeñadas (o ignoradas) por las aplicaciones de usuario. El modelo OSI es posterior a la definición del modelo TCP/IP (1972), aunque es interesante describirlo porque las funcionalidades son prácticamente las mismas.  En cualquier caso, el modelo OSI no es más que un modelo teórico, y como todos sabemos la aplicación práctica suele distar bastante de la teoría, pudiendo mezclarse conceptos a la hora de aplicar algunos protocolos.

Aclarado esto, ya podemos hablar de como se transfieren los datos. Cuando un usuario hace una petición, sucede algo así:
  1. Los datos son encapsulados por el nivel de aplicación, que guarda la información de que programa está solicitando datos. Esto lo hace nuestro PC o dispositivo cualquiera.
  2. Esta información a su vez se encapsula en un datagrama TCP (Transfer Control Protocol) o UDP (User Data Protocol), que contiene la información de a qué puerto se va a pedir la conexión, además del orden en que están distribuidos los datos.
  3. Estos datagramas se fragmentan en paquetes IP, que son los que se irán distribuyendo por la red. En primer lugar irán desde nuestro router al router del ISP. En ese punto, el router del ISP consulta la dirección IP de destino que lleva escrita nuestro paquete, y según unas tablas internas lo redirigirá a otro router para que este a su vez haga lo mismo, hasta que el paquete alcance el destino. Dependiendo de la página accedida, en número de saltos puede variar, pero para dar una idea suele ser de varias unidades o decenas. (Existe una aplicación bastante interesante llamada traceroute que nos da esta información).
  4. En el destino se procederá de forma inversa para acceder a los datos.

En la descripción del proceso se ha obviado la función del nivel de enlace. Cada router asocia la dirección MAC que corresponde a la IP a la que se deba acceder, y envía los datos a esa dirección. Cuando se recibe en el siguiente router o salto, se quita la cabecera L2 y se analiza la L3, se consultan las tablas de este nuevo router, se añade cabecera L2 y se envía al siguiente punto.


Un router como tal tan solo debería consultar dirección IP de destino y de origen para determinar hacia donde enviar los datos.  No obstante, la realidad es que se suele consultar esto mas los puertos origen y destino y el protocolo de datos (esta información corresponde al L4, y no es específica de un router, sino más bien de un firewall). A esta combinación de datos se la conoce como 5-tuple, y se emplea para determinar si algún paquete no debe seguir por la red si está intentando acceder algún puerto prohibido o si el protocolo no es el pertinente.

Existe un principio sobre el diseño de Internet que dice que una red óptima debe tener la inteligencia en los extremos  esto es el principio end-to-end. Esto significa que si un paquete se pierde por el camino, no será el router quien se encargue de tomar las medidas pertinentes, si no que será el destinatario quien se encargue de pedir la retransmisión (esto sucede en el L4). Este modo de funcionamiento no aprovisiona un QoS (Quality of Service) mínima y se corresponde con lo que se denomina un servicio 'best effort' (mejor esfuerzo) y que como su nombre indica hace las tareas lo mejor que puede. Este modo de funcionamiento es totalmente contrario a los servicios de comunicación a los que estamos acostumbrados (la red telefónica conmutada o RTC) dónde una llamada no es cursada si no se puede establecer un mínimo QoS.

Habiendo simplificado mucho y con ánimo de dar tan solo una visión orientativa, así es como se mueven los datos por Internet. Se ha prescindido de comentar protocolos de seguridad, protocolos de control, medidas para evitar congestión y errores y varias cosas más, que poco a poco iré desgranando.

Para más información y detalles del funcionamiento de Internet ver "Cómo funciona Internet? (II)", además del resto de entradas del blog.



Os dejo un par de vídeos bastante amigables (y antiguos) que explican el proceso (están en inglés, aunque hay versión en castellano): "Warriors of the Net", "How the Internet works".