
Комментарии 11
Резюме - один костыль (агрегация каналов аплинка, которой место на маршрутизаторе) сломал другой костыль (локальная сеть на базе tb3), всё на винде.
Автор знатный изобретатель.
Дополню свою статью важными моментами.
Так как Thunderbolt 3/4/5/USB 4/4 v2.0 кабели - это не просто кусок провода, а высокотехнологичное устройство с контроллерами на обоих концах кабеля, расположенных в коннекторах, то и ведёт себя такой кабель, как электронное устройство, со своими нюансами. И заключаются эти нюансы в следующем.
Если один из соединенных таким кабелем ноутбуков/компьютеров “заснёт” или же будет выключен, то в случае, если второй компьютер/ноутбук будет подключен через TB4/5/USB 4/4 v 2.0 порт, то на нем немедленно “исчезнет” из системы Thunderbolt Networking сетевая карта. И что особенно обидно, если на том конце провода второй компьютер/ноутбук “проснется” или будет включен, то на компьютере/ноутбуке с TB4/5/USB 4/4 v 2.0 портом, Thunderbolt Networking сетевая карта самостоятельно уже никак не вернется в системе и не будет работать!
И “вернуть” Thunderbolt Networking сетевую карту в такой ситуации можно будет двумя способами.
Способ 1 - простой, но изнашивающий TB-порты и коннекторы кабеля.
Просто вытащить и вставить кабель на стороне компьютера/ноутбука с TB4/5/USB 4/4 v 2.0 портом. Это немедленно заставит OS заново опросить TB-контроллер и “найти” потерянное устройство - кабель с его контроллером и включить его снова.
Это простой способ, но, как Вы понимаете, туда-сюда дергать кабель - это износ порта и коннектора. Это “не наш метод”!
Я решил поступать другим образом.
Способ 2 - правильный и изящный! Применительно к OS Windows. С другими OS алгоритм будет примерно похожий.
Перезагружаем ноутбук с TB4, чтобы сетевая карта “Thunderbolt Networking” снова появилась.
Открываем “Диспетчер устройств”.
В верхнем меню выбираем “Вид” -> “Устройства по подключению”.
Находим в дереве устройств работающий адаптер “Thunderbolt Networking”.
Нажимаем правой кнопкой мыши по устройству, которое находится выше в дереве (оно будет называться “Корневой порт PCI Express” или “Мост PCI-PCI”), и выбираем “Свойства”.
Переходим на вкладку “Сведения”, в выпадающем списке выбираем “Путь к экземпляру устройства” (Device Instance Path).
Скопируем эту строку (пример вида: PCI\VEN_8086&DEV_464D&…_02\3&11583659&0&D0). У Вас строка будет своя!
Создаём текстовый файл, например, на диске C:\, например ,под именем "fix_tb.ps1"
Вставляем в него код, расположенный ниже (строго между линиями ИЗМЕНЯЕМЫЙ КОД СКРИПТА).
Для этого меняем значение переменной $portID во второй строчке на ваш реальный путь, скопированный на пункте 7
-------------------------- [ИЗМЕНЯЕМЫЙ КОД СКРИПТА --------------------------
# Идентификатор Thunderbolt™ Controller - 1137
$portID = “PCI\VEN_8086&DEV_1137&SUBSYS_00008086&REV_00\CE80444A2DB7D00000”
# Безопасный точечный перезапуск контроллера
Get-PnpDevice -InstanceId false Start-Sleep -Seconds 1 Get-PnpDevice -InstanceId
false
-------------------------- [ИЗМЕНЯЕМЫЙ КОД СКРИПТА] --------------------------
11. Кликаем правой кнопкой мыши по Рабочему столу -> Создать -> Ярлык.
12. В поле “Укажите расположение объекта” вводим команду строго в одну строку:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -WindowStyle Hidden -ExecutionPolicy Bypass -File “c:\fix_tb.ps1”
(путь и имя файла можно изменить на Ваши).
13. Нажимаем “Далее”, укажите имя (например, “FixTB”) и нажимаем “Готово”.
Как теперь всё будет работать?
Когда один из компьютеров/ноутбуков снова уснет или полностью выключится, а сеть на втором компьютере/ноутбуке с портом TB4 пропадет:
Включите или разбудите второй ноутбук или компьютер (кабель перетыкать не надо).
На ноутбуке с TB4 дважды кликните по созданному ярлыку на Рабочем столе.
Подтвердите запрос прав администратора (если включен UAC). Скрипт за 1 секунду сбросит зависший порт, Windows найдет сетевую карту и включить её. Коннект между ноутбуками/компьютерами будет немедленно восстановлен!
Несколько лет назад экспериментировал с двумя маками, еще на intel.
Подключал через Thunderbolt 3, кабель использовал от монитора Dell (у него он подключается в видео-вход USB type C + у монитора встроенный USB Hub.)
Получилось около 15.6 Gbit/sec , тестировал через iperf3
Скриншот

Я так понимаю, пользователей Windows ноутбуков в очередной раз обидели и обделили скоростью. Потому что на MacBook это работает со скоростью в 10 раз больше чем радостно описал автор
olegzn1, я думаю, что Вы не совсем правильно поняли статью. Разумеется, у "пользователей Windows ноутбуков" скорость была бы гораздо больше, если бы с обеих сторон кабеля было два современных ноутбука с TB4/5 портами. В моём же описанном случае, на одной стороне ноутбук 8-ми летней давности, всего лишь с TB3 портом. Его скоростные возможности сильно ограничены. Ну и, в любом, случае, есть такое подозрение, что Вы, мягко говоря, сильно преувеличиваете, сообщая о скоростях на "макбуках" в 10 раз больше. Через TB3 порты ни один "макбук" 5-7 гигабайт в секунду (не путать с гигабитами) протащить при файловом в режиме Thunderbolt Networking просто физически не сможет.
Речь о TB3, вместо ваших ущербных 500мб/с (чему вы так обрадовались) на Макбуке были бы полноценные 5Гб/с
olegzn1, я, конечно, понимаю, что джентльменам принято верить на слово, но еще раз:
1) стандарты TB и USB4 - это не привилегия Apple, и передача данных в таких стандартах обязана физически одинаково работать на любых устройствах с их поддержкой при прочих равных условиях.
2) TB3 по скоростным характеристикам в любом случае медленнее, чем TB4. И развивать через Thunderbolt Networking реальные 5-7 гигабайт сек - физически не может, в том числе потому что, скорость, которую показывает iperf3 в режиме Thunderbolt Networking, отражает только лишь чистую пропускную способность сетевого стека и кабеля, и она (скорость) практически никогда не совпадает с реальной скоростью копирования файлов через SMB.
iperf3 работает по принципу RAM -to - RAM, полностью исключая из теста дисковую подсистему нотубука/компьютера. А дисковая подсистема - это "ахиллесова пята" на многих макбуках. Они просто мигом "захлебнутся" на скорости 5-7 гигабайт сек. Кроме того SMB - это совсем не простой протокол, и поддержка мультипоточности штатно включена в SMB 3.0 в Windows 11, но требует аппаратной поддержки такой мультипоточности ещё и от самого TB, что от слова никак не зависит от Windows.
3) Накладные расходы протокола SMB: протокол SMB (особенно на Windows) имеет значительный оверхед. Он постоянно синхронизирует метаданные: запрашивает права доступа, открывает и закрывает дескрипторы файлов, проверяет целостность данных и отправляет подтверждения о получении каждого блока. А это значит, что скорость будет падать на каждом шагу! И Вы не получите Ваших 5-7 гигабайт сек на TB3.
Но Вы конечно же можете записать видео, как Вы между двумя макбуками с TB3 портами прогоняете большой файл не через сферического коня в вакууме (iperf3), а через SMB-обмен с реального диска одного макбука на реальный диск второго макбука и не 2-3 секунды (пока не закончится быстрый кэш диска), чтобы навсегда заставить замолчать бедных и глубоко несчастных пользователей Windows,
1) стандарты TB и USB4 - это не привилегия Apple
делать ПК не привилегия Эпл, разумеется.
Но только у Эпл это получается лучше всех. И уж точно нет таких проблем с глюками и совместимостью, как в windows-зоопарке
olegzn1, Вами сейчас движет исключительное желание поддеть и унизить пользователей Windows, а мной - лишь беспристрастное и сухое следование фактам и спецификациям. И я абсолютно не склонен боготворить и идеализировать мифические суперспособности ни эппловского "железа", ни любого другого.
На любом устройстве от любого производителя, скорость порта TB в режиме Thunderbolt Networking никогда не будет равна реальной скорости файлового обмена через такой порт.
Передайте файл на скоростях, о которых Вы заявляете, на устройствах, о которых Вы заявляете стабильно, хотя бы в течение минуты, запишите не видео процесс, и я совершенно спокойно признаю Вашу правоту и почерпну полезный опыт.
Ну, и чтобы совсем расставить все точки над “i”.
Выше в комментариях deepblack предоставил отличный скриншот. На скриншоте - результаты теста между двумя маками через TB3 порты в режиме Thunderbolt Networking через утилиту iperf3.
Разберем результаты этого теста. На скриншоте отлично видно, что результаты получены чисто в синтетическом тесте пропускной способности сети «из памяти в память». Мы видим, что скорость порта TB3 установилась на 15,4 гбит сек, что отлично вписывается в “потолок” в 20 гбит.сек, который обычно устанавливается при включении Thunderbolt Networking между двумя TB3 портами исключительно по спецификациям самого стандарта. А тут мы видим вообще - классический потолок для macOS при стандартном размере пакета (MTU 1500). Ядро macOS ограничивает эмуляцию виртуального сетевого интерфейса Thunderbolt 3 на отметке около 16 Гбит/с. Переводим 15,5 Гбит/с в байты: (15,5 \div 8 \approx 1,93) Гбайт/с. Это и есть чистая скорость генерации пакетов в ОЗУ без учета задержек накопителей и файловых систем. Дальше на скриншоте четко видно, что обмен данных в пересчете на гигабайты в сек составлял на стандартном 10 секундном тесте в iperf3 около 1,81 гигабайт сек.
То есть, даже на синтетическом тесте “из памяти в память” уже понятно, что выше 1,81 гигабайт в секунду скорость передача данных физически невозможна! И заявление olegzn1 о “5 гигабайт в секунду” именно в описанной ситуации - не имеет под собой абсолютно никакой доказательной основы, да и просто физически не может иметь.
Идем дальше. Мы увидели синтетические 1,81 гигабайт сек. А что же будет при реальном физическом копировании даже больших файлов между двумя маками в режиме Thunderbolt Networking именно через TB3 порты? В macOS и Thunderbolt Bridge архитектурно полностью повторяются все ограничения Windows. Если бы deepblack попробовал перетащить реальный фильм или архив через стандартный общий доступ (SMB), скорость немедленно бы упала до 500–1000 Мбайт/с (обычно в районе 700–900 Мбайт/с в зависимости от поколения процессоров Intel/Apple Silicon). И этому бы поспособствовали, как минимум три причины:
Снова, как и в Windows, тот самый оверхед протокола SMB на Mac. SMB на macOS всё также накладывает огромные накладные расходы на каждую транзакцию. Накладные расходы и на шифрование, и на подпись пакетов, и на проверку метаданных просто «съедят» до 40-50% от синтетической скорости моста.
Служебные данные сетевого стека. В отличие от PCIe-накопителей (например, установленных в скоростные USB4/tb4/5 боксы), сетевой мост в режиме Thunderbolt Networking дробит данные на миллионы мелких Ethernet-кадров, тратя такты процессора на сборку и проверку каждого пакета. И это, опять же, очень жестко снизит скорость.
И, наконец, тот самый лимит скорости записи накопителя на принимающей стороне. Даже если предположить, что на маках установлен самые быстрые SSD, при получении файлов по сети логика выделения кэша файловой системы APFS не позволяет вести запись непрерывным потоком на максимальной скорости контроллера. То есть даже с огромным быстрым кэшем самих дисков всё еще раньше упрется именно в это.
Так что, чуда нет! Если бы deepblack показал нам реальный файловый обмен, то мы бы и увидели 500-1000 мегабайт сек.
И единственный способ "перепрыгнуть" через этот "потолок" именно в режиме Thunderbolt Networking - переход на TB5 и соответствующие кабели + самое свежее "железо". Но Apple в такой ситуации будет абсолютно не при чем. Что на их "железе", что на условном "вин-железе" скорости будут плюс/минус совершенно аналогичные.
Неожиданные технические моменты при использовании режима Thunderbolt Networking