¿Qué velocidad esperar de una red Gigabit Ethernet?

Los que somos aficionados a la tecnología posiblemente sabremos que la red con la que conectamos nuestros ordenadores y demás dispositivos es Gigabit Ethernet. Pero, ¿qué quiere decir eso?. Pues que las tarjetas de red de nuestros equipos son capaces de inyectar al cable 1000 millones de bits por segundo y luego, por el cable, los bits se transmitirán casi a la velocidad de la luz (en caso de un cable categoría 5e, cercano a 200.000 km por segundo) hasta su destino.
¡Genial! pero, ¿esa velocidad es mucha o es poca?. Bien, si transmitimos un archivo de 5GB (giga bytes) por nuestra red (una película en calidad HD), a 1 Gbps (gigabit por segundo) costará sobre 40 segundos.
La velocidad de transferencia de datos se mide en bits por segundo mientras que la unidad de almacenamiento se mide en bytes, siendo 1 byte equivalente a 8 bits.
Si alguien ha hecho la prueba, habrá comprobado que se tardas algo más. ¿Eso quiere decir que nos engañan?, lo cierto es que no ya que para exprimir el máximo de nuestra red ethernet, deberemos disponer al menos de lo siguiente:
- Cableado: mínimo UTP categoría 5e.
- Bus de conexión al interfaz de red: PCI express
- Bus de conexión al disco: SATA3
- Velocidad de transferencia del disco duro; no menos de 200MB de lectura/escritura secuencial.
- Los equipos que intervienen en la comunicación no deben de estar excesivamente cargados (uso de CPU, memoria, disco, red).
De acuerdo, ya estamos poniendo limitaciones. No obstante, si cumplimos con los requisitos expuestos, ¿podríamos transmitir el archivo de 5GB en 40 segundos?. Pues bien, la respuesta sigue siendo no ya que no todos esos bits transmitidos corresponden con los del archivo que queremos mover y eso es de lo que va este post.
Velocidad teórica máxima de una red gigabit Ethernet
Transmitir datos por una red de ordenadores es un problema complejo que requiere dividirlo en varios problemas más simples. En concreto, los bits a transmitir se encapsulan en bloques (llamados Protocol Data Unit por sus siglas PDU) y estos, a su vez se encapsulan en otras PDU. Cada PDU contiene información adicional independientemente de los datos que se quieren transmitir.
Centrándose en Ethernet, los bits a transmitir se agrupan en bloques PDU llamados tramas. Estas tramas tienen un tamaño determinado de 1518 bytes y, entre cada trama, hay 8 bytes de preámbulo y 12 bytes adicionales de espacio entre tramas. Esto quiere decir que para transmitir una trama, hay que enviar por el interfaz de red 1538 bytes.
Pero por cada trama, ¿cuantos bits de nuestro archivo de vídeo, como máximo, podemos transmitir?. A esto se le llama MTU (Maximum Transfer Unit) y está estandarizado a 1500 bytes. ¿Eso quiere decir que todos esos bits de MTU son bits de nuestro archivo?. Pues nuevamente no ya que en esos 1500B se han de transmitir más bloques PDU. Si concretamos en usar como protocolo de red IP y como de transporte TCP que son los empleados en las comunicaciones de Internet y en nuestros hogares, hay que sustraer al menos 40B (datos adicionales de cabeceras) en cada uno de esos 1500B por lo que nos quedan 1460B de información de aplicación a transmitir y que se denomina MSS (Máximum Segment Size). Aún así nos quedaría sustraer varios bytes más en función de la aplicación que se usará para trasmitir (SMB, FTP, NFS, iSCSI, HTTP, etc).
Bien, ya tenemos claro que vamos a transmitir 1460 Bytes de datos de aplicación por cada 1538 Bytes por trama Ethernet. Como sabemos que podemos transmitir 1000Mbits por trama, se pueden calcular las tramas por segundo que transmite nuestro interfaz gigabit.
\frac{1000 \times 10^6\: \left[\frac{bit}{s}\right]}{1538\: \left[\frac{byte}{frame}\right]\times 8\: \left[\frac{bit}{byte}\right]} \approx 81274\: \left[\frac{frame}{s}\right]Ahora que sabemos las tramas por segundo y dado que sabemos cuántos bits de datos de aplicación hay por trama, podemos calcular la tasa de trasferencia real.
81274\: \left[\frac{frame}{s}\right]\times 1460\: \left[\frac{byte}{frame}\right]\times 8\: \left[\frac{bit}{byte}\right] \approx 949\: \left[\frac{Mbit}{s}\right]Por tanto sabemos que como máximo vamos a poder transmitir 949 Mbps o lo que es lo mismo 118 MBps de archivo.
Conclusiones
Con este post pretendía remarcar que por una red Gigabit Ethernet típica, se pueden transmitir, como máximo 949Mbps aunque, en realidad, está tasa de transferencia será en la mayoría de los casos menor porque:
- El protocolo de aplicación añade bits adicionales a lo que queremos transmitir.
- La interfaz de red está siendo usada por varias aplicaciones simultáneamente.
- El equipo puede tener la CPU, memoria o disco trabajando en otros procesos adicionales al de la transmisión.
- El equipo (discos, bus de conexión, etc) no está dimensionado para soportar la tasa de transferencia que permite la red.
Es cierto que existen tecnologías como las jumbo frames o la agregación de enlaces que permiten aumentar la tasa de transferencia efectiva aunque no todo sean ventajas.