martes, 17 de noviembre de 2009

Ancho de banda y Throughput

Bandwidth y Throughput son dos conceptos importantes de la comunicación entre redes que a menudo no son completamente entendidos y algunos exámenes sobre neworking incluyen preguntas sobre los conceptos, como el 640-802 para CCNA de Cisco.

Creo que el ancho de banda es algo que casi todos concebimos, que se define técnicamente como la cantidad de información que puede fluir por un elemento de red en un periodo dado de tiempo; por ejemplo, un enlace WAN E1, tiene un ancho de banda simétrico de 2048Kbps; un enlace Fast Ethernet tiene un ancho de banda de 100Mbps. Como vemos, el ancho de banda se mide en bits por segundo, y el prefijo kilo nos indica que hay que multiplicarlo por mil, o el prefijo Mega, por un millón; el prefijo Giga, por mil millones. Un enlace ADSL típicamente tiene 1Mbps o 2Mbps por 256Kbps de upstream (subida).

Es importante notar que usamos bits (b) por segundo, y los archivos se miden en bytes (B); para hacer la conversión dividimos los bits por segundo entre 8:

2048Kbps/8 = 256 KB/sec

Esto podemos notarlo fácilmente cuando descargamos un archivo y nuestro browser (Firefox, Chrome o Explorer) nos dice que está descargando el archivo a 73.4KB/sec,

throughput (by [95148845@N00])

Ahora bien, este ejemplo fue tomado de un enlace a internet dedicado a través de un E1 (2048Kbps), pero el ancho de banda real utilizable es de 1984Kbps porque se usan 64Kbps para control y administración de mi carrier. Ese es el ancho de banda del enlace, que comparto con más usuarios y por el cual, además de mi archivo, fluyen paquetes de señalización, por ejemplo, en el caso de las comunicaciones basadas en TCP, hay SYN packets, ACK packets, etc, relativos al proceso de windowing y control de flujo, que ocupan ancho de banda pero finalmente no es parte de mi tráfico interesante, que en este caso es un MP3. Y debo considerar que también el otro extremo debe tener un ancho de banda disponible para que mi descarga sea veloz, es decir, si yo usara un E3 (34Mbps) y el servidor tiene un internet de 256Kbps, mi descarga será limitada por ese ancho de banda.

Concluyendo, el ancho de banda es la capacidad teórica disponible de un enlace, 1984Kbps en el ejemplo, pero puedo ver que mi archivo baja a una velocidad real de 74.3KB/sec, lo convertimos a Kbps:

74.3x8 = 594.4Kbps

Aquí podemos ver el throughput, si bien mi ancho de banda es de 1984Kbps, mi throughput es de 594Kbps, es el nivel de utilización real del enlace, o técnicamente es la capacidad de información que un elemento de red puede mover en un periodo de tiempo.

Por ejemplo, un router Cisco 1841 viene equipado con dos puertos Fast Ethernet y sabemos que el ancho de banda de esos puertos es de 100Mbps, pero la capacidad de proceso del router (throughput) es de 75pps, y aquí vemos un ejemplo práctico de esa diferencia. Teóricamente podemos alcanzar los 100Mbps entre ambas interfases, pero el router sólo procesará hasta 38.4Mbps (bajo condiciones ideales, Cisco recomienda que se instalen capacidades de hasta un E1 en esa plataforma).

Adicional a esta consideración, tomemos en cuenta que el delay (latencia) entre dos puntos afecta el throughput entre ellos. Es decir, si tengo dos puntos con una latencia alta, la naturaleza de TCP, basado en acuses de recibo, hará que se inicie el proceso (como vimos en un post anterior) pero con tiempos de espera largos. La latencia es el tiempo en segundos que le toma a un paquete llegar a un destino.

Por ejemplo, supongamos que tenemos un enlace de 34Mbps de internet en la Ciudad de México y queremos pasar un archivo por FTP a dos puntos; si la latencia de México a Suecia es de 400ms, y la latencia entre dos puntos de México es de 40ms, el mismo enlace presentará throughputs diferentes hacia esos dos destinos, donde seguramente rondaremos los 34Mbps en el enlace México-México y podría bajar mucho en el enlace a Suecia, porque al iniciar nuestra sesión de TCP enviaremos un paquete que tomará 400ms en ir y venir, y hasta recibir dicha respuesta podremos establecer la sesión; después el control de flujo de TCP exigirá que haya un paquete de acknowledge cada determinado número de paquetes, y deberemos esperar que llegue, sea procesado y regrese, lo que causa tiempos muertos de utilización del enlace; es decir, tenemos los 34Mbps libres, pero no los estamos usando porque esperamos la respuesta del contro de flujo de TCP para continuar.

Resumiendo, el ancho de banda es la capacidad teórica del elemento de red y el Throughput es la utilización que podemos lograr con dicho elemento (router, puerto, enlace WAN, LAN, etc.).

25 comentarios :

  1. Gracias!! bastante aclarativo pero me queda una duda...

    1.- El throughput a nivel local de equipo... ¿se calcula teniendo en cuenta los datos de usuario de entrada y salida? ¿sólo los de entrada? (en el ejemplo los "datos útiles" era un fichero mp3).

    Si el throughput es la "utilización real" de la red, entonces supongo que se cuentan los datos útiles (datos de usuario) que se transmiten en un intervalo de tiempo determinado, da igual si son de entrada o de salida. Además, no sé si suponer también que tenemos throughput a nivel de enlace y throughput a nivel global de red.

    ¿es la respuesta que doy a mi pregunta la acertada?

    muchas gracias

    ResponderEliminar
  2. Aquí hablamos del thoughput que tenemos con el enlace, el cual depende del router y del enlace, y cuando hablamos de un equipo (firewall, router, switch, host) se refiere al total que puede procesar, entrada y salida juntos.

    De acuerdo a tu pregunta creo que llegamos a una inquietud bastante importante sobre los datos útiles:

    cuando haces una llamada con VoIP comprimida con G.729, el ancho de banda requerido es de 8Kbps, esos son tus datos útiles por llamada, y suponiendo que estés en una computadora, pasará a la tarjeta ethernet, y serán encapsulados en ethernet, ocupando un ancho de banda de 32.76 kbps en 50 paquetes por segundo; ahora, supongamos que esa misma llamada va a viajar por una VPN sobre MPLS con encapsulamiento Frame-Relay, el ancho de banda sobre esa red es de 31.5 kbps, y al pasar a una nueva red local será nuevamente de 32.76Kbps, hasta que llegue al host destino, lo desencapsule, lo procese y obtenga un ancho de banda de 8Kbps por llamada que inicialmente enviaste.

    Como verás es algo que depende del medio, la encapsulación, el tamaño y fragmentación de los paquetes, etc.

    Respecto a tu segunda pregunta, todo sistema tiene un thoughput, el router, el switch, el host, el enlace, la red en sí; etc.

    ResponderEliminar
  3. Entendido, explicacion clara...ahora como me doy cuenta si un enlace de Internet via Ethernet en simetrico o asimetrico??? en Cisco se utiliza el comando traffic-shape rate 10000000 (esto es 10Mbps) pero como me aseguro del upstream ya que el downstream esta controlado por el comando traffic-shape

    Saludos,
    Atte.

    Marco Hernandez
    Honduras

    ResponderEliminar
  4. Creo que confundes conceptos, la última milla si está transportada en Ethernet va a tener el ancho de banda que contrates, y la única manera de medirlo es saturando el enlace y midiendo el ancho de banda; si configuras tu router no afectará en gran medida el servicio, ya que habrá un NTU o incluso otra interface del otro extremo del circuito controlando el ancho de banda de tu servicio.

    ResponderEliminar
  5. que tal soy de México, entiendo poco del tema.. de hecho llegue aquí porque puse en el buscador códec G729, el punto es....

    veo que ustedes conocen muy bien eso de los codecs, datos y demás... tengo el servicio de "axtelconmigo" y probando diferentes tipos de apps para android he llegado al app CSipSimple para SIP VoIp, de varios me ha parecido el mejor y el que tiene mas secciones para configuración, ahora la compañía celular del android es iusacell y pues testeando la velocidad con la app de speedtest.net me da los siguientes valores


    El host es: Cablemas
    Tula

    Ping: 138
    Descarga: 2546kbps
    Carga: 373kbps

    La pregunta es.... con estos datos, que códec debo activar en la app CSipSimple para poder obtener el mejor audio tanto del que escucho como para que me escuchen??????????????????????

    en la lista me aparecen los siguientes disponibles:

    speex 16kHz
    speex 8kHz
    speex 32kHz
    GSM 8kHz
    G729 8kHz
    PCMU 8kHz
    PCMA 8kHz
    G722 16kHz
    SILK 24kHz
    SILK 16kHz
    SILK 8kHz
    ISAC 16kHz
    ILBC 8 kHz
    AMR 8kHz

    esos son todos los que me aparecen, espero alguien pueda contribuir y ayudar diciéndome cuales son los apropiados y cuáles no.

    Saludos y muchas gracias por adelantado.

    ResponderEliminar
  6. compadre, el ancho de banda se mide en Hz!!!! nose de donde mierda sacaron que la velocidad binaria (bits/seg) es equivalente al BW!!

    ResponderEliminar
  7. Compadre, creo que no entendiste que habla de la velocidad de muestreo de los códecs, no del ancho de banda

    ResponderEliminar
  8. El ancho de banda se mide en hertzios.....la tasa de bits en bps....la frecuencia de muestreo en hertzios.

    ResponderEliminar
    Respuestas
    1. depende de que estes hablando en electronica se maneja ancho de banda como medida del ancho de un rango de frecuencias y en efecto se mide en hertz.

      En informatica ancho de banda se refiere al termino antes expuesto.
      y se mide en bps

      saludos

      Eliminar
    2. Nop, en lo que sea, el ancho de banda es en Hz, pero por culpa de las compañías proveedoras de Internet se toma como similares ancho de banda y velocidad de transmisión, resumiendo:
      Ancho de banda en Hz
      Velocidad de transmisión en bps
      Velocidad de señal en baudios

      Eliminar
    3. En una red de comunicaciones viajan Bits por unidad de tiempo, cuando hablamos de Corriente Directa, que luego se convierten en Corriente alterna y se habla entonces de cantidad de ciclos de una onda por unidad de tiempo, te falta interpretar un poco el asunto.

      para nosotros los ingenieros de sistemas, es irrelevante hablar de AC, nos interesan los Bits y a la gente que alquila un servicio de Internet tampoco le importa mucho su archivo de word de 50 KB a que frecuencia viaja por una red electrica, ¿o si? que lo diga Maronxk

      Eliminar
  9. Creo que nadie es dueño absoluto de la verdad, y en parte les doy la razón a varias de sus opiniones, sin embargo, un sistema de unidades es algo que se usa por convención, y los fabricantes de equipo, clientes, y proveedores de servicio están de acuerdo en llamar ancho de banda (Band width) a la velocidad de transferencia digital en un medio, que nunca será lo mismo que la parte análoga porque muchas veces el mismo medio, con diferente codificación ha permito que superemos las velocidades para los que fueron diseñados.
    Así que, creo que todos deberían mostrar apertura y aceptar las convenciones de la industria, ya que no me los imagino corrigiendo a Cisco, Juniper, Huawei o Avaya por las etiquetas pueda colocar para indicar una capacidad de transferencia en el tiempo.

    ResponderEliminar
  10. Si tengo una tarjeta gigabit realtek y cuando le coloco la prueba de troughput a 1000 sin negociacion a full duplex porque el resultado me dice que no lo puede hacer?

    ResponderEliminar
  11. Desvirtuaron el tema en su totalidad con sus porquerías de preguntas y afirmaciones que no tenían nada que ver con el post.

    ResponderEliminar
  12. Hola.
    Cuando tengo un router con 2 interfaces fast ethernet, full duplex, como hago el cálculo del throughput
    Gracias

    ResponderEliminar
  13. Si quieres el cálculo del throughput de una interface a otra, no estará limitada por el BW de las interfaces sino por la capacidad de proceso del router, y varía de acuerdo a lo que haya que hacer para pasar, por ejemplo, filtrado de ACL (ya sea para seguridad o route maps, VRF's QoS)
    En esos casos se puede consultar la tabla de Cisco Router Performance Table:
    http://www.cisco.com/web/partners/downloads/765/tools/quickreference/routerperformance.pdf

    ResponderEliminar
  14. La persona que hablo de Hz para ancho de banada tiene una ensalada de conceptos.

    Efectivamente, cuando se habla de frecuencias (Filtros pasa bajos, pasa altos, ancho de modulacion, slew rate, etc.) se define un ancho de banda en Hz.

    Ahora, cuando se tranmsiten señales digitales, se puede transmitir el tren de pulsos (bit stream) ya sea en banda base (señales sobre pares de cobre, cable coaxial, Fibra optica), o se puede modular una frecuencia portadora con el tren de pusos (bit stream). En este segundo caso, la tecnica de modulacion provoca que la señal modulada tambien ocupe un ancho en lo que respecta a frecuencias (lo cual se mide en Hz). Sin embargo, y mediante un concepto denominado INDICE DE MODULACION, es posible determinar cual es la velocidad de simbolos por segundo que se pueden inyectar sobre ese ancho de banda en frecuencias.

    Ahora, cuento aparte es que un simbolo no es necesaramiente igual a un bit del bit stream original. Volviendo al munco de la informatica y dejando atras a la electronica, debemos medir la salida de los bit en un lugar equvalente a donde medimos desde la entrada. Es decir, si medimos antes de un codificador/modem, debemos medir a la salida del deco/modem. de no ser asi, no arriesgamos a mezclar peras con manzanas.

    Saludos

    ResponderEliminar
  15. Creo que deberían compartir todo el conocimiento que poseen y escribir su propio blog, desde su propia visión del tema y así aportar para tener más puntos de vista para leer sobre los mismos temas, enriqueciendo el conocimiento de todos.

    ResponderEliminar
  16. Ingeniero un cordial saludo. Si yo tengo un ancho de banda asignado para una red domestica de 10 Mbps. para una transmision IPTV un canal SD de video requiere como minimo 1,5 Mbps. mi pregunta es: si en el caso ideal que no existiera congestion en la red. y mi ancho de banda estuviera dedicado para ese servicio. el bit rate utilizado para ese canal de TV seria igual al ancho de banda asignado? o sea 10 Mbps, por lo tanto el tanto el throughput medido en porcentaje seria casi el 100 % o 10 Mbps medido en eficencia de la red? agradezco cordialmente su ayuda.

    ResponderEliminar
    Respuestas
    1. Es un poco más complicado que eso; si quieres saber el ancho de banda utilizado en total hay varios factrores, primero, ¿ese video es en tiempo real? si es así, utilizaría paquetes UDP seguramente, si es un video grabado, estarías enviando un archivo, basado en TCP seguramente.

      Ahora, ¿en donde lo estás transmitiendo? esto cobra relevancia por lo siguiente, si utilizas UDP, el encabezado de cada paquete es de 4 bytes (32bits) y si es TCP serían aprox 20bytes (160bits) adicionales a cada paquete; además los paquetes de control (SYN, ACK, etc) para controlar la transferencia, y los paquetes de control de la aplicación; es diferente el control de la capa de transporte que el control de la aplicación:

      Teniendo eso en cuenta te doy un ejemplo muy característico: la VoIP, si utilizas un codec como G.729 el ancho de banda, es decir, la información que genera una llamada, es de 8Kbps, si ese stream de datos entra en un dominio Ethernet, lleva un encabezado de UDP y un encabezado del frame de Ethernet y tu utilización real se vuelve de 32Kbps por canal (llamada).

      algo así sucede con el video, generas 1.5Mbps de datos puros, que se volverán el Payload, entrando al medio por todos los encabezados va a crecer en ocupación real, y ese ancho de banda necesario va a ser diferente según el medio, es decir, no es igual en wireless, o en ethernet, o en un enlace serial; además, si consideras un DSL que usualmente está basado en Ethernet, lleva un encabezado de trunking (802.1Q) un encapsulamiento de ATM y tráfico de control...

      para saber un número exacto, hay que conocer todos esos temas; además, algunas aplicaciones pueden ajustar el tamaño de paquete dependiendo de las condiciones de delay o jitter en la red, (bajan o suben la calidad del video).

      Espero no haberte confundido más, te dejo un par de ejemplos:
      http://www.cisco.com/c/en/us/support/docs/voice/voice-quality/7934-bwidth-consume.html

      https://supportforums.cisco.com/discussion/10473296/cisco-telepresence-bandwidth-calculator

      Eliminar
  17. Error estimado, el ancho de banda es la capacidad respecto a las frecuencias de uso. Si se habla de 10 mbps o 15 mbps, te estas refiriendo a la capacidad del canal, que es un concepto distinto.

    ResponderEliminar
    Respuestas
    1. desde tu marco teórico, quizás, en redes los conceptos son así.

      saludos!

      Eliminar
  18. Hola solo pasaba a saludar, y comentarte que la entrada y sus ejemplos me parecieron sumamente ilustrativos.

    Me llama la atención de los que comentan sobre los Mhz, yo creo que solo lo hacen para ver arder el mundo.

    En mi experiencia, siempre que me preguntan cuanto es el ancho de banda en el enlace, les digo entre risas, que es de 40Mhz... porque efectivamente ese el ancho de banda de mi enlace.

    Ya después con más calma y luego del chiste privado les comento que tenemos capacidad de hasta 300 Mbps(Unos 37MBps, ya hablando de unidades de almacenamiento jejeje) , aunque el Throughput con las aplicaciones usadas en ambos lados del enlace nunca supera los 3Mbps... Seguro a varios les ha pasado. Pues bien como lo mentas, lo primero que debemos ubicar (Cómo profesionales)es el marco teórico y el público al que vamos a exponer nuestros argumentos.


    Por cierto, soy otro más que llegó buscando información de códecs.

    Saludos..

    ResponderEliminar