OS X 10.9 ger snabb men hackig Thunderbolt networking

om du öppnar dina nätverksinställningar i systeminställningarna efter uppgradering till OS X 10.9 ”Mavericks”, kommer du att informeras om att en ny ”Thunderbolt Bridge” nätverksgränssnitt lades till systemet. Så det är nu möjligt att nätverka två Mac-datorer över Thunderbolt. Låt oss ta vårt nya nätverk för en snurr.

självklart behöver du en Thunderbolt-kabel för att ansluta två Thunderbolt-utrustade Mac-datorer. Jag fick 0.5 meter en från Apple, som är ganska kort, och kopplade min mitten av 2011 MacBook Air till en helt ny MacBook Pro (”med Retina Display”, men det säger nästan självklart nu). MacBook Pro har 20 Gbps Thunderbolt 2 medan luften har att göra med den vanliga 10 Gbps Thunderbolt—men på båda nätverksverktyget rapporterar en länkhastighet på 10 Gbps.

på luften kom nätverksgränssnittet nu upp, men inte på Pro. Anledningen till det är att Thunderbolt Bridge-gränssnittet faktiskt är ett virtuellt brogränssnitt som gör att nätverkspaket kan överföras från ett fysiskt nätverksgränssnitt till ett annat. Detta innebär också att paket mot dessa gränssnitt nu ska gå igenom brogränssnittet. Luftens ensamma Thunderbolt-port var en del av Thunderbolt—bron ur lådan, men på Pro var bara en av portarna en del av bron-och naturligtvis hade jag anslutit min kabel till den andra porten. Detta var lätt fixat.

med Thunderbolt Bridge-gränssnittet igång på båda datorerna stängde jag av Wi-Fi på Pro för att se till att jag inte av misstag skulle ansluta trådlöst. Jag anslöt sedan från luften till Pro via Finder och monterade Pro: s SSD som en nätverksdelning. Nu var jag i stånd att kopiera filer fram och tillbaka och tid hur lång tid det tog.

resultatet: mycket längre än väntat, åtminstone i pro-to-Air-riktningen. Men genom att övervaka nätverksflödet i Aktivitetsmonitorn visade det sig att när du kopierar från MacBook Pro till MacBook Air kan överföringarna vara extremt snabba, ibland visar överföringshastigheter på en gigabyte per sekund. Men med slumpmässiga intervaller skulle överföringen stanna i ett antal sekunder och fortsätta sedan med antingen mycket låg eller mycket hög hastighet.

i den andra riktningen, från den äldre, långsammare MacBook Air till den helt nya, mycket snabbare MacBook Pro, fanns inga sådana problem. Här visade Activity Monitor ganska konsekvent runt 500MB per sekund värde av nätverkstrafik. Det numret motsvarar dock inte överföringstiderna och filstorlekarna. Baserat på dessa var överföringshastigheten 200MB/sek. en del av avvikelsen förklaras av nätverksöverhead och TCP tar lite tid att rampa upp till flera Gbps-hastigheter, men jag är ganska säker på vad som verkligen händer här är att systemet räknar nätverksaktiviteten för både det fysiska Thunderbolt-gränssnittet och det virtuella brogränssnittet, vilket rapporterar dubbelt så mycket nätverksaktivitet som vad som verkligen ägde rum.

det är fortfarande oklart varför överföringarna från Pro till luften var så inkonsekventa. En uppenbar anledning skulle vara att Pro skickar paket snabbare än Air kan hantera, men när man tittar på gränssnittsstatistiken (netstat-i en1-ss) visar det sig att skillnaden mellan skickade paket och mottagna paket bara var 0, 02 procent—inte riktigt tillräckligt för att orsaka det observerade beteendet. Att komma ut tcpdump och inspektera datatrafiken visade inte heller någon anledning till avmattningen: Jag kunde inte hitta en enda instans av SÄCKBLOCK, vilket skulle indikera förlorade paket mitt i en överföring. Den enda indikationen på att något händer är att då och då, det finns helt enkelt inga paket för 10 millisekunder eller så, utan anledning att jag kunde hitta.

kanske finns det ett programvaruproblem, eller kanske finns det en flaskhals i en av Thunderbolt—implementeringarna-mitten av 2011 MacBook Air var den första modellen som fick Thunderbolt. Med Mavericks bytte Apple till SMB som standardprotokoll för att överföra filer lokalt, men att använda AFP gjorde ingen skillnad.

även om gränssnitten rapporterar med standard Ethernet-paketstorlek eller MTU (maximal överföringsenhet) på 1500 byte, hände i själva verket SMB-överföringarna vanligtvis som fyra 65212—byte-paket och sedan ett 1556-byte-paket-vilket ger en 256KB nyttolast. Ibland skulle dock paketstorlekarna vara olika.

Thunderbolt-nätverksgränssnittet indikerar också att det stöder TCP-segmenteringsavlastning för både IPv4 och IPv6 (TSO4 och TSO6), men förmodligen finns det ingen faktisk nätverkshårdvara i Thunderbolt-gränssnittet som kan utföra denna funktion. Tanken bakom TSO är att nätverksprogramvaran skapar ett stort paket eller segment, och nätverkshårdvaran delar upp paketet i bitar som överensstämmer med MTU-gränsen. Detta gör det möjligt för gigabit-nätverk att fungera utan att använda alltför stora mängder CPU-tid. Det som verkar hända här är att systemet upprätthåller ett yttre utseende att använda standard MTU-storlek så att inget oväntat händer, men överför sedan helt enkelt det stora TCP-segmentet över Thunderbolt utan att störa den utlovade segmenteringen.

eftersom Apple faktiskt implementerade Thunderbolt-nätverk som Ethernet över Thunderbolt snarare än IP över Thunderbolt, är det möjligt att lägga till andra Ethernet-och Ethernet-liknande gränssnitt (som Wi-Fi) till Thunderbolt Bridge: använd ”hantera virtuella gränssnitt” i den lilla växelmenyn under listan över gränssnitt i nätverksinställningarna.

jag hade Pro bridge sitt Wi-Fi-gränssnitt till luften över Thunderbolt, och ur luftens perspektiv var det precis som det var anslutet till Wi-Fi-nätverket: andra datorer visade sig i Finder och allt. Pro hade dock en kärnpanik och luften hade svårt att kopiera filer eller ladda webbsidor. Kan vara en bieffekt av den kreativa ta på TSO, eller kanske något annat pågår.

förutsatt att stabilitet och konsistens kommer att förbättras, är Thunderbolt-nätverk användbart i första hand?

självklart är det den överlägsna lösningen att utrusta Mac-datorer med Thunderbolt 10 Gigabit Ethernet-adaptrar och ansluta dem till en 10GE-switch. Med en lika överlägsen prislapp. I situationer där ett snabbt nätverk bara behövs för att kopiera filer mellan två datorer är det mycket bekvämare att använda en Thunderbolt-kabel på $30 eller $40 till en bråkdel av priset. Jag kan också föreställa mig att en Mac Pro är utrustad med en 10GE-adapter och sedan en eller två andra Mac-datorer som ansluter till 10GE-nätverket via en Thunderbolt-anslutning till den Mac Pro. Och om Thunderbolt networking fångar på kan vi till och med se Thunderbolt-portar på NAS-enheter.

Säg vad du vill om Apple, men de är inte rädda för att prova något nytt. Som den här nya funktionen visar, lönar det sig verkligen att ha en generisk höghastighetsport i varje Mac. Jag kan inte vänta med att se vad Thunderbolt har i beredskap för oss.

IP över Thunderbolt ser ut som om det har mycket potential, men å andra sidan var IP över Firewire ganska coolt för ett decennium sedan också. Windows hanterade faktiskt IP över Firewire på ungefär samma sätt som OS 10.9 hanterar Thunderbolt-nätverk, så att du kan överbrygga mellan Firewire-och Ethernet-portar. Men sedan släpptes det i Vista. Så njut av ditt snabba nätverk medan det varar.

Uppdatering: på populär efterfrågan testade jag också med iPerf, som testar raw TCP-prestanda, utan att läsa eller skriva till disk. iPerf överför data utan de kostnader som uppstår av faktiska fildelningsprotokoll, och dessa siffror kommer inte att vara representativa för den faktiska prestandan i de flesta fall. Sändning från MacBook Pro till MacBook Air hände vid 5, 3 Gbps, i andra riktningen något snabbare vid 5, 7 Gbps.