Около месяца назад я решил испытать один интересный технический сценарий организации кабельного скоростного канала передачи данных между двумя компьютерами/ноутбуками. Речь о штатной возможности Thunderbolt 3/4/5 портов работать в так называемом режиме Thunderbolt Networking. Суть этого способа кабельной передачи в следующем:
-
Берется качественный Thunderbolt 3/4/5 (или USB 4/4 v2) кабель длиной от 50 см до 2 метров (чем длиннее, тем кабель дороже и тем более качественный он должен быть), и этот кабель с обеих сторон подключается в Thunderbolt 3/4/5 порт каждого из двух компьютеров/ноутбуков.
-
После такого подключения на обоих компьютерах/ноутбуках при условии уже установленного Thunderbolt драйвера на каждом из них, автоматически появляется дополнительная сетевая карта “Thunderbolt Networking” для которой, как и для самой обычной сетевой карты, нужно указать IP адрес и маску подсети и после этого можно спокойно пользоваться любыми сетевыми шарами между этими двумя ноутбуками/компьютерами, просто обращаясь по таким назначенным для Thunderbolt Networking IP-адресам. Причем уже работающему интернет-соединению, например, через ваши wi-fi или Ethernet-карты, такой канал передачи данных совершенно не мешает и работает параллельно с ним.
Я всё это сделал, Thunderbolt сеть действительно появилась, и файлы действительно стало возможно передавать именно по такому настроенному кабельному соединению.
Но тут возник самый интересный технический момент!
Указанные выше карты Thunderbolt Networking включаются на скорости 20 гигабит.сек. То есть, теоретически, при условии наличия скоростных SSD дисков на обоих ноутбуках/компьютерах, скорость файлового обмена (особенно больших одиночных файлов) должна была бы достигать около 2,6 гигабайт в секунду, но практически, из-за кучи дополнительных ограничений протокола передачи данных, работы самого сетевого стека и разных тонких технических моментов при работе Thunderbolt портов, реальная скорость передачи данных может быть около 8 гигабит.сек. То есть примерно 1 гигабайт в секунду “на пике”.
Какого же было мое удивление, когда я увидел следующие картину. Я объединил описанным выше способом два ноутбука Lenovo Thinkpad, на одном из которых (P50) Thunderbolt 3 порт (и ноутбуку уже 8 лет), а на втором — в разы более производительном и “свежем” ноутбуке (P16 gen 2), установлен Thunderbolt 4 порт, и этому ноутбуку всего полтора года.
Разумеется, в сторону “старого” ноутбука P50 с его Thunderbolt 3 портом, ожидалась меньшая скорость передачи данных, чем в сторону P16 gen 2 с его Thunderbolt 4 портом и с его в разы более производительным “железом”.
Но в реальности изначально получились совсем печальные результаты.
Скорость чтения/записи файлов в сторону P50 оказалась всего лишь только от 12 до 60 мегабайт сек, а в сторону P16 gen 2 — гораздо лучше, но не более 300 мегабайт в секунду, иногда “сползая” до 150 мегабайт в секунду.
И на этом моменте я очень расстроился! Как же так? У меня же два очень хороших ноутбука, один из которых вообще почти топовый. И ведь я “разорился” на покупку одного из лучших USB4 v2 кабелей от Satechi, длиной 120 см, полностью совместимого с Thunderbolt 3/4/5. Причем кабель весьма недешевый, с большим запасом на будущее.
Но полученные скорости оказались такими низкими!
Что я только не делал, какие только тонкие и глубокие настройки в операционной системе не задействовал — всё было совершенно бесполезно! Скорость передачи данных никак не хотела увеличиваться. И вот так я экспериментировал почти месяц, уже почти смирившись, что между моими двумя ноутбуками этот потенциально суперскоростной режим передачи данных никогда не сможет работать на максимальной скорости по причине какой-то редкой несовместимости “железа”.
К счастью, по воле случая, я оказался не прав!
В очередной раз экспериментируя с настройками Thunderbolt Networking, я совершенно случайно обратил внимание на то, какие именно чекбоксы на каких именно сетевых компонентах находятся в состоянии включено на обеих сетевых картах Thunderbolt Networking? При этом на одном из ноутбуков я давно и постоянно использую крайне узкоспециализированный софт — Connectify Dispatch, который уже даже не выпускается, но продолжает отлично работать и выполнять свою редкую задачу. А именно, программно объединять (агрегировать) любые сетевые интерфейсы на компьютере/ноутбуке в один общий сетевой канал, для организации умноженного на общую скорость всех объединенных сетевых интерфейсов “супер канал”. И это приложение у меня прекрасно работает уже много лет на разных компьютерах и ноутбуках, позволяя программно агрегировать сразу 3-4 интернет канала от провайдера с нескольких wi-fi интерфейсов. Но главной особенностью этого приложения является то, что оно работает на самом низком уровне — на уровне драйвера со всеми имеющимися сетевыми интерфейсами в Вашей системе, автоматически добавляя каждому сетевому интерфейсу сетевой компонент Connectify Lightweight Filter. И этот компонент прекрасно работает с обычными физическими сетевыми интерфейсами, но, как оказалось — конфликтует с “виртуальными” сетевыми интерфейсами Thunderbolt Networking!
Именно для Thunderbolt Networking компонент Connectify Lightweight Filter надо в обязательном порядке отключить. Об этом нигде не написано, это нигде не документировано, и я совершенно интуитивно, в процессе экспериментов с настройками, об этом узнал.
В итоге, как только я отключил этот компонент Connectify Lightweight Filter в настройках Thunderbolt Networking, скорость передачи данных между обоими ноутбуками мгновенно выросла до 500-700 мегабайт в секунду в обе стороны! То есть — почти до реального предела. С учетом “накладных расходов” и “древности” Thunderbolt 3 порта на одном из двух ноутбуков — это прекрасная и предельно достижимая скорость.
Сказать что я был в шоке — ничего не сказать. Столько времени потратить на эксперименты и настройки, а решение проблемы оказалось таким неожиданным и крайне нетипичным. И как Вы поняли, если и Вы захотите организовать и у себя такой же кабельный канал передачи данных, то обязательно внимательно посмотрите, какие сетевые компоненты будут автоматически включены в настройках Thunderbolt Networking в Вашем случае и не окажется ли среди них какой-нибудь узко специфический драйверный компонент от какого-то редкого софта, который нарушит всю работу Thunderbolt Networking интерфейса. В случае, если такой компонент есть — обязательно отключите его для достижения максимальной скорости передачи данных!
Так что, крайне рекомендую всем кому нужно “гонять файлы” между двумя современными компьютерами/ноутбуками на максимальной скорости, не достижимой ни через какой иной кабельный способ передачи данных, использовать описанный мной сценарий, но обязательно с учетом нюансов, о которых я рассказал.
P.S. Первоначально (в один день и тот же день) статья мной была опубликована на форуме ресурса ixbt.com (https://forum.ixbt.com/topic.cgi?id=17:58337#0)
ссылка на оригинал статьи https://habr.com/ru/articles/1043172/