OS X 10.9 trae redes Thunderbolt rápidas pero entrecortadas

Si abre la configuración de red en las Preferencias del sistema después de actualizar a OS X 10.9 «Mavericks», se le informará de que se agregó una nueva interfaz de red «Puente Thunderbolt» al sistema. Por lo tanto, ahora es posible conectar dos Mac a través de Thunderbolt. Demos una vuelta a nuestra nueva red.

Obviamente, necesita un cable Thunderbolt para conectar dos Mac equipados con Thunderbolt. Tengo el 0.5 metros uno de Apple, que es bastante corto, y conecté mi MacBook Air de mediados de 2011 a un nuevo MacBook Pro («con pantalla Retina», pero eso casi no hace falta decirlo ahora). El MacBook Pro tiene 20 Gbps Thunderbolt 2, mientras que el Air tiene que conformarse con el Thunderbolt normal de 10 Gbps, pero en ambos la utilidad de red informa una velocidad de enlace de 10 Gbps.

En el aire, la interfaz de red ahora surgió, pero no en el Pro. La razón de esto es que la interfaz de puente Thunderbolt es en realidad una interfaz de puente virtual que permite que los paquetes de red se pasen de una interfaz de red física a otra. Esto también significa que los paquetes hacia esas interfaces ahora deben pasar por la interfaz puente. El único puerto Thunderbolt del Air era parte del Puente Thunderbolt, pero en el Pro solo uno de los puertos era parte del puente, y por supuesto, había conectado mi cable al otro puerto. Esto se arregló fácilmente.

Con la interfaz Thunderbolt Bridge en funcionamiento en ambos equipos, desactivé el Wi-Fi en el Pro para asegurarme de que no me conectaría accidentalmente de forma inalámbrica. Luego me conecté desde el aire al Pro a través del Finder, montando el SSD del Pro como un recurso compartido de red. Ahora estaba en la posición de copiar archivos de ida y vuelta y el tiempo que me llevó.

El resultado: mucho más de lo esperado, al menos en la dirección Pro-to-Air. Sin embargo, al monitorear el rendimiento de la red en el Monitor de actividad, resultó que al copiar desde el MacBook Pro al MacBook Air, las transferencias podían ser extremadamente rápidas, a veces mostrando velocidades de transferencia de un gigabyte por segundo. Pero a intervalos aleatorios, la transferencia se detendría durante varios segundos, y luego continuaría a muy baja o muy alta velocidad.

En la otra dirección, desde el MacBook Air más antiguo y lento hasta el nuevo MacBook Pro mucho más rápido, no hubo tales problemas. Aquí, el Monitor de actividad mostró de manera bastante consistente alrededor de 500 MB por segundo de tráfico de red. Sin embargo, ese número no corresponde a los tiempos de transferencia ni al tamaño de los archivos. En base a esto, la velocidad de transferencia fue de 200MB/seg. Parte de la discrepancia se explica por la sobrecarga de la red y el tiempo que el TCP tarda en aumentar a velocidades de varios Gbps, pero estoy bastante seguro de que lo que realmente está sucediendo aquí es que el sistema cuenta la actividad de red tanto de la interfaz Thunderbolt física como de la interfaz de puente virtual, lo que reporta el doble de actividad de red de lo que realmente tuvo lugar.

No está claro por qué las transferencias del Pro al Aire fueron tan inconsistentes. Una razón obvia sería que el Pro envía paquetes más rápido de lo que el Air puede manejar, pero mirando las estadísticas de la interfaz (netstat-i en1-ss), resulta que la diferencia entre los paquetes enviados y los recibidos fue solo del 0,02 por ciento, no lo suficiente para causar el comportamiento observado. Salir de tcpdump e inspeccionar el tráfico de datos tampoco mostró ninguna razón para la desaceleración: No pude encontrar una sola instancia de bloques de SACOS, lo que indicaría paquetes perdidos en medio de una transferencia. La única indicación de que algo está pasando es que de vez en cuando, simplemente no hay paquetes durante 10 milisegundos o así, sin ninguna razón que pudiera encontrar.

Tal vez haya un problema de software, o tal vez haya un cuello de botella en una de las implementaciones de Thunderbolt: el MacBook Air de mediados de 2011 fue el primer modelo en obtener Thunderbolt. Con Mavericks, Apple cambió a SMB como protocolo predeterminado para transferir archivos localmente, pero el uso de AFP no hizo la diferencia.

Aunque las interfaces informan que usan el tamaño de paquete Ethernet estándar o MTU (unidad de transferencia máxima) de 1500 bytes, en realidad las transferencias SMB generalmente sucedían como cuatro paquetes de 65212 bytes y luego un paquete de 1556 bytes, lo que hace que la carga útil sea de 256 Kb. Sin embargo, a veces los tamaños de los paquetes serían diferentes.

La interfaz de red Thunderbolt también indica que admite la descarga de segmentación TCP para IPv4 e IPv6 (TSO4 y TSO6), pero es de suponer que no hay hardware de red real en la interfaz Thunderbolt que pueda realizar esta función. La idea detrás de TSO es que el software de red crea un paquete o segmento grande, y el hardware de red divide ese paquete en piezas que se ajustan al límite de MTU. Esto permite que las redes de escala gigabit funcionen sin usar cantidades excesivas de tiempo de CPU. Lo que parece estar sucediendo aquí es que el sistema mantiene una apariencia externa de usar el tamaño MTU estándar para que no ocurra nada inesperado, sino que simplemente transmite el gran segmento TCP a través de Thunderbolt sin molestarse con la segmentación prometida.

Como Apple implementó la red Thunderbolt como Ethernet sobre Thunderbolt en lugar de IP sobre Thunderbolt, es posible agregar otras interfaces Ethernet y similares a Ethernet (como Wi-Fi) al Puente Thunderbolt: use «administrar interfaces virtuales» en el menú pequeño engranaje en la lista de interfaces en la configuración de red.

Hice que el Pro conectara su interfaz Wi-Fi al Aire a través de Thunderbolt, y desde la perspectiva del Aire, era como si estuviera conectado a la red Wi-Fi: otros ordenadores aparecieron en el Finder y todo. Sin embargo, el Pro tenía pánico en el núcleo y el Air tenía dificultades para copiar archivos o cargar páginas web. Podría ser un efecto secundario de la toma creativa de TSO, o tal vez algo más está pasando.

Asumiendo que se mejorará la estabilidad y la consistencia, ¿es útil la red Thunderbolt en primer lugar?

Obviamente, equipar Mac con adaptadores Thunderbolt 10 Gigabit Ethernet y conectarlos a un switch 10GE es la solución superior. Con un precio igualmente superior. En situaciones en las que solo se necesita una red rápida para copiar archivos entre dos computadoras, usar un cable Thunderbolt de 3 30 o 4 40 es mucho más conveniente a una fracción del precio. También puedo imaginar un Mac Pro equipado con un adaptador 10GE, y luego uno o dos Mac que se conectan a la red 10GE a través de una conexión Thunderbolt a ese Mac Pro. Y si las redes Thunderbolt se activan, es posible que incluso veamos puertos Thunderbolt en dispositivos NAS.

Di lo que quieras sobre Apple, pero no tienen miedo de probar algo nuevo. Como muestra esta nueva característica, realmente vale la pena tener un puerto genérico de alta velocidad en cada Mac. No puedo esperar a ver qué más nos tiene reservado Thunderbolt.

IP sobre Thunderbolt parece que tiene mucho potencial, pero por otro lado, IP sobre Firewire también era bastante genial hace una década. Windows en realidad maneja IP a través de Firewire de la misma manera que OS 10.9 maneja las redes Thunderbolt, lo que le permite establecer un puente entre los puertos Firewire y Ethernet. Pero luego se cayó en Vista. Así que disfruta de tu red rápida mientras dure.Actualización

: por demanda popular, también probé con iPerf, que prueba el rendimiento de TCP sin procesar, sin leer ni escribir en el disco. iPerf transfiere datos sin los gastos generales incurridos por los protocolos de intercambio de archivos reales, y estos números no serán representativos del rendimiento real en la mayoría de los casos. El envío desde el MacBook Pro al MacBook Air ocurrió a 5,3 Gbps, en la otra dirección un poco más rápido a 5,7 Gbps.