OS X 10.9 porta veloce ma choppy Thunderbolt networking
Se si apre le impostazioni di rete nelle Preferenze di sistema dopo l’aggiornamento a OS X 10.9 “Mavericks”, sarete informati che una nuova interfaccia di rete “Thunderbolt Bridge” è stato aggiunto al sistema. Quindi è ora possibile collegare in rete due Mac su Thunderbolt. Prendiamo la nostra nuova rete per un giro.
Ovviamente è necessario un cavo Thunderbolt per collegare due Mac dotati di Thunderbolt. Ho lo 0.5 metro uno da Apple, che è piuttosto breve, e collegato la mia metà del 2011 MacBook Air a un nuovo MacBook Pro (“con display Retina”, ma che quasi va da sé ora). Il MacBook Pro ha 20 Gbps Thunderbolt 2 mentre l’aria deve accontentarsi del normale 10 Gbps Thunderbolt-ma su entrambi l’utilità di rete riporta una velocità di collegamento di 10 Gbps.
In onda, l’interfaccia di rete ora si avvicinò, ma non sul Pro. La ragione di ciò è che l’interfaccia Thunderbolt Bridge è in realtà un’interfaccia bridge virtuale che consente di passare i pacchetti di rete da un’interfaccia di rete fisica a un’altra. Ciò significa anche che i pacchetti verso quelle interfacce dovrebbero ora passare attraverso l’interfaccia bridge. La porta Thunderbolt solitaria dell’Air faceva parte del ponte Thunderbolt, ma sul Pro solo una delle porte faceva parte del ponte—e naturalmente avevo collegato il mio cavo all’altra porta. Questo è stato facilmente risolto.
Con l’interfaccia Thunderbolt Bridge attiva e funzionante su entrambi i computer, ho disattivato il Wi-Fi sul Pro per assicurarmi di non collegarmi accidentalmente in modalità wireless. Ho quindi collegato dall’aria al Pro attraverso il Finder, montando l’SSD del Pro come condivisione di rete. Ora ero nella posizione di copiare i file avanti e indietro e il tempo per quanto tempo ci sono voluti.
Il risultato: molto più lungo del previsto, almeno nella direzione Pro-to-Air. Tuttavia, monitorando il throughput di rete nel monitor attività, si è scoperto che durante la copia dal MacBook Pro al MacBook Air, i trasferimenti potrebbero essere estremamente veloci, a volte mostrando velocità di trasferimento di un gigabyte al secondo. Ma a intervalli casuali, il trasferimento si bloccava per un certo numero di secondi, per poi continuare a velocità molto bassa o molto alta.
Nella direzione opposta, dal più vecchio, più lento MacBook Air per il nuovo marchio, molto più veloce MacBook Pro, non ci sono stati tali problemi. Qui, Activity Monitor ha mostrato in modo abbastanza coerente circa 500 MB al secondo di traffico di rete. Tuttavia, tale numero non corrisponde ai tempi di trasferimento e alle dimensioni dei file. Sulla base di questi, la velocità di trasferimento era di 200MB/sec. Parte della discrepanza è spiegata dall’overhead di rete e dal TCP che impiega un po ‘ di tempo per salire a velocità multi-Gbps, ma sono abbastanza sicuro che ciò che sta realmente accadendo qui è che il sistema conta l’attività di rete sia dell’interfaccia fisica Thunderbolt che dell’interfaccia bridge virtuale, riportando così il doppio dell’attività di rete di ciò che è realmente avvenuto.
Non è chiaro il motivo per cui i trasferimenti dal Pro all’Air fossero così incoerenti. Una ragione ovvia sarebbe che il Pro invia pacchetti più velocemente di quanto l’Air possa gestire, ma guardando le statistiche dell’interfaccia (netstat-i en1-ss), si scopre che la differenza tra i pacchetti inviati e i pacchetti ricevuti era solo dello 0,02%—non abbastanza da causare il comportamento osservato. Anche uscire da tcpdump e ispezionare il traffico dati non ha mostrato alcun motivo per il rallentamento: Non sono riuscito a trovare una singola istanza di blocchi SACK, il che indicherebbe i pacchetti persi nel mezzo di un trasferimento. L’unica indicazione che qualcosa sta succedendo è che una volta ogni tanto, non ci sono semplicemente pacchetti per 10 millisecondi o giù di lì, per nessun motivo che ho potuto trovare.
Forse c’è un problema software, o forse c’è un collo di bottiglia in una delle implementazioni Thunderbolt—la metà del 2011 MacBook Air è stato il primo modello a guadagnare Thunderbolt. Con Mavericks, Apple è passata a SMB come protocollo predefinito per trasferire file localmente, ma l’utilizzo di AFP non ha fatto la differenza.
Sebbene le interfacce riportino utilizzando la dimensione del pacchetto Ethernet standard o MTU (maximum transfer unit) di 1500 byte, in realtà i trasferimenti SMB si sono verificati in genere come quattro pacchetti da 65212 byte e quindi un pacchetto da 1556 byte, il che crea un carico utile di 256 Kb. Tuttavia, a volte le dimensioni dei pacchetti sarebbero diverse.
L’interfaccia di rete Thunderbolt indica anche che supporta l’offloading della segmentazione TCP sia per IPv4 che per IPv6 (TSO4 e TSO6), ma presumibilmente non esiste un hardware di rete effettivo nell’interfaccia Thunderbolt in grado di eseguire questa funzione. L’idea alla base del TSO è che il software di rete crea un pacchetto o segmento di grandi dimensioni e l’hardware di rete divide quel pacchetto in pezzi conformi al limite MTU. Ciò consente alle reti su scala gigabit di funzionare senza utilizzare quantità eccessive di tempo della CPU. Quello che sembra accadere qui è che il sistema mantiene un aspetto esteriore dell’utilizzo della dimensione MTU standard, quindi non accade nulla di inaspettato, ma trasmette semplicemente il grande segmento TCP su Thunderbolt senza preoccuparsi della segmentazione promessa.
Poiché Apple ha effettivamente implementato la rete Thunderbolt come Ethernet su Thunderbolt piuttosto che IP su Thunderbolt, è possibile aggiungere altre interfacce Ethernet ed Ethernet (come Wi-Fi) al ponte Thunderbolt: utilizzare “gestisci interfacce virtuali” nel menu little gear sotto l’elenco delle interfacce nelle impostazioni di rete.
Ho avuto il Pro bridge la sua interfaccia Wi-Fi per l’aria su Thunderbolt, e dal punto di vista dell’aria era proprio come se fosse collegato alla rete Wi-Fi: altri computer si sono presentati nel Finder e tutto il resto. Tuttavia, il Pro ha avuto un kernel panic e l’Air ha avuto difficoltà a copiare file o caricare pagine web. Potrebbe essere un effetto collaterale della presa creativa su TSO, o forse qualcos’altro sta succedendo.
Supponendo che la stabilità e la coerenza saranno migliorate, la rete Thunderbolt è utile in primo luogo?
Ovviamente, equipaggiare i Mac con adattatori Thunderbolt 10 Gigabit Ethernet e collegarli a uno switch 10GE è la soluzione superiore. Con un prezzo altrettanto superiore. In situazioni in cui una rete veloce è necessaria solo per copiare i file tra due computer, utilizzando un cavo Thunderbolt Thunder 30 o Thunder 40 è molto più conveniente ad una frazione del prezzo. Posso anche immaginare un Mac Pro dotato di un adattatore 10GE e quindi uno o due altri Mac che si connettono alla rete 10GE tramite una connessione Thunderbolt a quel Mac Pro. E se la rete Thunderbolt prende piede, potremmo persino vedere le porte Thunderbolt sui dispositivi NAS.
Dì quello che vuoi su Apple, ma non hanno paura di provare qualcosa di nuovo. Come mostra questa nuova funzionalità, è davvero utile avere una porta generica ad alta velocità in ogni Mac. Non vedo l’ora di vedere cos’altro Thunderbolt ha in serbo per noi.
IP over Thunderbolt sembra che abbia un sacco di potenziale, ma d’altra parte, anche IP over Firewire era piuttosto bello un decennio fa. Windows in realtà gestito IP su Firewire più o meno allo stesso modo come OS 10.9 gestisce Thunderbolt di rete, che consente di ponte tra Firewire e porte Ethernet. Ma poi è stato lasciato cadere in Vista. Quindi goditi la tua rete veloce finché dura.
Aggiornare: a grande richiesta, ho anche testato con iPerf, che verifica le prestazioni TCP raw, senza leggere o scrivere su disco. iPerf trasferisce i dati senza l’overhead sostenuto dai protocolli di condivisione file effettivi e questi numeri non saranno rappresentativi delle prestazioni effettive nella maggior parte dei casi. L’invio dal MacBook Pro al MacBook Air è avvenuto a 5.3 Gbps, nell’altra direzione leggermente più veloce a 5.7 Gbps.