En la primera parte de esta entrada de blog de cuatro partes, describimos un hipotético robot capaz de ver vídeos a 10 GB/s. Para entender bien lo que significan estos 10 GB/s, añadimos otras tres partes al post. La segunda parte definía los bits y los bytes, que son las unidades básicas de los datos, y algunos de los múltiplos de estas unidades. La tercera parte introdujo diferentes definiciones de prefijos múltiples como mega y giga. Esta cuarta, y última, entrega examina las medidas utilizadas en las tasas de transferencia y cómo se aplican de forma diferente a las redes y a los medios de almacenamiento.
En el momento de escribir este artículo, a principios de 2017, Adelaida, Australia, estaba llevando a cabo planes para desplegar una red de banda ancha de 10 Gb/s. La velocidad prevista es impresionante, y aunque suena similar a la tasa de rendimiento de 10 GB/s de la unidad SSD de Seagate del mundo real en nuestro hipotético robot adicto a las películas, definitivamente no son lo mismo. Ambos ejemplos hablan de tasas de transferencia de datos, por lo que son similares, pero también son muy diferentes. Esta última parte del blog de cuatro partes mostrará no sólo las similitudes y diferencias entre los dos, sino también por qué se utilizan diferentes unidades para medirlos en primer lugar.
Todo menos el fregadero de la cocina
Antes de profundizar en las tuercas y los pernos de la transferencia de datos en relación con el almacenamiento y las redes, vamos a ver cómo fluye el agua en su cocina. Tu grifo puede tener una capacidad de, por ejemplo, 2 g/m. Esto significa que fue diseñado para que el agua pase por su boquilla a una velocidad máxima teórica de unos 2 galones por cada minuto que transcurre. Sin embargo, es posible que no obtenga ese caudal, ya que el flujo de agua en un momento dado puede verse afectado por factores como la acumulación de minerales en la cabeza del grifo, la baja presión general del agua en su condominio o las tuberías obstruidas. Un fontanero que diagnostique su problema podría decir que el agua sale del grifo más bien a 1 g/m.
¿Cómo se relaciona esto con los datos?
Los caudales siempre se miden como una cantidad durante un periodo de tiempo. En el caso de los datos, estos caudales se expresan como ancho de banda o rendimiento, y ambos miden la cantidad de información que se puede mover en un periodo de tiempo determinado. Aunque estos dos términos se utilizan a menudo indistintamente, en realidad son bastante diferentes.
El ancho de banda describe la tasa máxima teórica de transferencia de datos que un enlace está diseñado para manejar, como el índice de flujo de agua de su grifo. Pero al igual que factores externos, como las descargas de los inodoros o las fugas en las tuberías, pueden impedir que el grifo suministre agua a su máxima velocidad, en el mundo de las redes de datos y los ordenadores, factores como la sobrecarga de los protocolos, la latencia de la red y la fiabilidad, entre otros, suelen conspirar para que la conexión de datos no alcance su potencial. Otro término, rendimiento, se utiliza para describir la cantidad real de datos que se mueven a través del enlace, como la medición del flujo de agua que su fontanero obtuvo en su prueba.
El tamaño importa
Tanto el ancho de banda como el rendimiento se miden normalmente como alguna forma de bits por segundo (b/s) o bytes por segundo (B/s)-Mb/s, MB/s, Gb/s, GB/s, etc. Fíjate en la diferencia: la b pequeña es para los bits; la B grande es para los bytes. A menudo se encuentran velocidades de transferencia de datos expresadas en ambas unidades de medida.
Las métricas utilizadas en los ejemplos de la red de Adelaida y de las unidades SSD de Seagate describen velocidades de transferencia de datos, pero una utiliza gigabits como unidad de medida y la otra utiliza gigabytes. Como recordarás de la segunda parte, un byte se define hoy en día como 8 bits. Así que, normalmente, para convertir de bits a bytes, se divide el número de bits por 8; para convertir de bytes a bits se multiplica el número de bytes por 8. Recuerde que se trata de una regla muy general, y más adelante veremos una notable excepción cuando se trata de tasas de transferencia de datos.
Ahora que sabe cómo convertir estas unidades de medida, veamos por qué se miden de forma diferente en primer lugar.
Una regla general: En el caso de la memoria y el almacenamiento, las tasas de transferencia de datos suelen expresarse en bytes por segundo; en el caso de las redes y las interfaces, las tasas de transferencia de datos suelen expresarse en bits por segundo.
Un error muy común es que las empresas del sector de las redes o de Internet utilizan los bits por segundo para engañar a los clientes y hacerles creer que las velocidades de la red son realmente mucho más rápidas de lo que son. El razonamiento es que, como 8 Gb/s suena mucho mejor que 1 GB/s, los clientes pensarán que están obteniendo una velocidad de conexión más rápida de la que realmente tienen. Sin embargo, no se trata de una estratagema de marketing. Si fuera así, los mismos que piensan así tendrían que preguntarse por qué los grupos de marketing de las empresas de memoria y almacenamiento no convierten todo en bits también. Las razones de las diferencias son elementales, como veremos a continuación.
Bytes para ordenadores
Cuando se habla de transferencias de datos entre un ordenador y su memoria o almacenamiento, las transferencias se expresan mayoritariamente en términos de bytes por segundo. Ya vimos en la Parte 2 que el byte es la unidad de datos direccionable más fundamental para la memoria del ordenador y los dispositivos de almacenamiento, por lo que los ordenadores se interesan principalmente por los bytes. Y como vimos en la Parte 3, cuando los ordenadores acceden a los datos de la memoria, lo hacen a nivel de bytes. Por lo tanto, si usted ordena a su ordenador que identifique o manipule un bit individual, primero debe acceder al byte al que pertenece, y luego debe realizar una operación adicional para aislar ese bit. Además, como los archivos también se miden por el número de bytes que contienen, expresar la velocidad de transferencia en bytes por segundo es útil para saber cuánto tiempo se tarda en copiar un archivo de una parte del sistema informático a otra. Esto se expresa comúnmente como rendimiento.
El estándar funciona bien para las transferencias de archivos dentro de un solo sistema porque un ordenador generalmente habla el mismo idioma que todos sus dispositivos periféricos. Sin embargo, cuando se trata de transferir datos entre sistemas informáticos diferentes o a través de una red, los problemas son distintos.
Bits para redes
En las conexiones de red, o en cualquier situación en la que dos o más ordenadores estén conectados por cable o por aire para compartir datos, la velocidad de transferencia se describe tradicionalmente en términos de bits por segundo. Esto se debe a que, a diferencia de los sistemas informáticos, los datos que se mueven a través de una red se transfieren en serie, o un bit cada vez, y no en trozos de bits, o uno o más bytes cada vez.
Como también vimos en la Parte 2, históricamente el tamaño de un byte dependía de la plataforma de hardware. Algunos ordenadores necesitaban 4 bits para hacer su byte, otros necesitaban 6 bits, y otros necesitaban 8 bits. Así que cuando los datos se transferían de un ordenador a otro, no era práctico medir las transferencias en términos de cuántos bytes se movían, porque el byte del ordenador emisor podía ser razonablemente de un tamaño diferente al byte del ordenador receptor.
Incluso después de que los 8 bits se convirtieran en la definición estándar de facto del byte, seguía teniendo poco sentido expresar las transferencias de datos en términos de bytes. Los ingenieros de redes miden las tasas de transferencia en bits por segundo porque así se refleja con mayor precisión la capacidad real de un enlace de red para transferir todos los datos necesarios, no sólo los del archivo o archivos. En la mayoría de las comunicaciones de red, no todos los bits que se envían por el enlace forman parte realmente de los archivos que se transfieren. La red suele emplear esquemas de codificación, añadiendo bits adicionales por cada byte que se envía. Estos bits adicionales contienen información que la red necesita para asegurarse de que los datos se envían al destinatario correcto y para confirmar que los datos se han enviado sin errores y se han recibido sin incidentes, entre otras cosas.
Un esquema de codificación común es el llamado 8b/10b, que recibe su nombre porque por cada 8 bits enviados a través de un enlace, se añaden 2 bits como metadatos; en otras palabras, se envían 10 bits de datos por cada byte de 8 bits. Con este esquema de codificación, la mera transferencia de datos por la red supone una sobrecarga del 20%. Aunque en teoría las aspiraciones de banda ancha de Adelaida de una red de 10 Gb/s, si se miden en bytes, deberían ser de aproximadamente 1,25 GB/s (10 Gb divididos por 8), si se tiene en cuenta la sobrecarga del 20%, equivaldría más bien a 1 GB/s. Hay otros esquemas que están cobrando importancia, sobre todo el adoptado por el estándar PCIe 3.0, que utiliza un 128b/130b. Lo has adivinado; esto significa que se añaden 2 bits de sobrecarga por cada 128 bits de datos. El nuevo esquema es más eficiente que el estándar 8b/10b, ya que la actualización supone una penalización de la sobrecarga de sólo un 1,5 por ciento aproximadamente, en comparación con el 20 por ciento anterior.
Final de línea
Entender las tecnologías y las terminologías que las describen puede ser muy confuso si no se presta atención. Esto es especialmente cierto cuando se trata de ver los datos en tránsito. Por desgracia, aunque un gigabyte y un gigabit son unidades muy distintas para medir cosas similares pero diferentes, en el mundo real, la gente suele acortar 10 GB/s y 10 Gb/s de la misma manera: como «10 gigas».
Sin embargo, es de esperar que ahora tengas muy claro que el robot que proclama que ha visto sus películas de Netflix a 10 gigas de rendimiento está diciendo algo completamente distinto a los australianos que pronto presumirán de estar en una red de 10 gigas, amigo.