Я разговаривал с коллегой об ограничениях длины USB-кабеля, и, насколько я помню, он был ограничен узким окном, в котором хост требует, чтобы устройство отвечало (упоминается здесь ).
Он указал, что Ethernet передает данные с более высокой скоростью ( USB 1,5/12/480/5000 Мбит/с (в зависимости от режима) по сравнению со скоростью Ethernet 10/100 Гбит/с) и позволяет использовать кабель большей длины ( 100 м для кабеля CAT6 ).
Итак, я думаю, нам обоим интересно, какой аспект протокола USB ограничивает длину кабеля до 5 м и чем это отличается от Ethernet?
Согласно Википедии :
USB 2.0 предусматривает максимальную длину кабеля 5 метров для устройств, работающих на высокой скорости (480 Мбит/с). Основной причиной этого ограничения является максимально допустимая задержка приема-передачи около 1,5 мкс. Если команды USB-хоста остаются без ответа от USB-устройства в течение допустимого времени, хост считает команду потерянной. При добавлении времени отклика USB-устройства, задержек от максимального количества концентраторов к задержкам от соединительных кабелей максимально допустимая задержка на кабель составляет 26 нс. Спецификация USB 2.0 требует, чтобы задержка в кабеле была менее 5,2 нс на метр (192 000 км/с, что близко к максимально достижимой скорости передачи для стандартного медного провода).
Таким образом, при задержке на кабель 26 нс и спецификации, требующей, чтобы задержка кабеля была менее 5,2 нс/м, теоретическая максимальная длина кабеля составляет 26 нс/(5,2 нс/м) = 5 м.
В этом источнике также упоминается, что USB 2.0 ограничен 5 м, а USB 3.0 — нет.
USB был разработан для замены различных пергиперных интерфейсов ПК, включая такие вещи, как клавиатуры и мыши. Приоритетами были низкая стоимость, низкое энергопотребление и пропуск высокоприоритетного трафика с малой задержкой. Поддержка длинных кабелей не была приоритетом. Таким образом, на стороне протокола они выбрали простой полудуплексный протокол «говори, когда с тобой разговаривают» с небольшими размерами пакетов. Что касается аппаратного обеспечения, они выбрали неизолированную дифференциальную сигнальную систему, которая несколько упростила терминацию.
USB постепенно развивался, чтобы добавить более высокие скорости и полный дуплекс, но большее расстояние никогда не было целью дизайна.
Ethernet (в его ранней форме) имел другой набор критериев проектирования. Он был разработан как стандарт локальной сети, ни одна станция не была главной, и они выбрали систему множественного доступа с контролем несущей и обнаружением коллизий. Чтобы обеспечить правильную работу обнаружения коллизий, они наложили ограничения как на минимальный размер пакета, так и на общий размер сети. Физический уровень был разработан с гораздо более тщательной терминацией, чтобы обеспечить целостность сигнала даже при длительных пробегах. Был изолирующий барьер для защиты от проблем, вызванных разницей потенциалов земли на больших расстояниях (в сети Ethernet на основе витой пары используются трансформаторы, я полагаю, что в коаксиальной сети Ethernet используются оптоизоляторы и преобразователи постоянного тока в постоянный).
CSMA/CD отлично работал в небольших локальных сетях со скоростью 10 Мбит/с, но по мере роста скорости и размера сети он начинал демонстрировать нагрузку. Были введены мосты (позже известные как коммутаторы), позволяющие разделить сети на несколько доменов коллизий. Это позволило сделать сети больше, чем ограничения, установленные CSMA/CD, а также позволило сосуществовать нескольким скоростям.
Позже Ethernet отошёл от CSMA/CD 1 и концентраторов в сторону двухточечных полнодуплексных соединений и коммутаторов. Это позволяет использовать высокоскоростные соединения на большие расстояния, поскольку пакеты никогда не сталкиваются друг с другом.
Однако за все это приходится платить: физические уровни, которые могут работать на больших расстояниях, требуют значительно большей мощности и значительно более дорогих приемопередатчиков, чем те, которые предназначены только для работы на коротких расстояниях. Буферы данных на конечных устройствах должны быть намного больше, чтобы справиться с потенциально длительным временем подтверждения и потенциальной потерей пакетов. Коммутаторы — относительно сложные устройства, часто включающие значительный объем буферной памяти. Приоритизация требует, чтобы каждый коммутатор в цепочке знал информацию о приоритизации.
1 Концентраторы со скоростью 10 Мбит/с и CSMA/CD были практически универсальными. Ранние развертывания со скоростью 100 Мбит/с также активно использовали концентраторы и CSMA/CD. Более поздние сети со скоростью 100 Мбит/с, как правило, использовали полнодуплексные каналы связи и коммутаторы. В гигабитных стандартах были CSMA/CD и концентраторы, но я никогда не слышал, чтобы кто-то действительно продавал гигабитные концентраторы. На 10 гигабитах и выше поддержки CSMA/CD и хаба нет вообще.
Другим важным аспектом является то, что высокоскоростной Ethernet является полнодуплексным : используются две пары кабелей, по одной для каждого направления. USB является полудуплексным : есть только одна пара, и ее можно использовать только в одном направлении одновременно.
USB также требует подтверждения, а Ethernet — нет. Протоколы поверх него могут требовать подтверждения (TCP), а могут и не требовать (потоковая передача UDP). Однако, поскольку это полный дуплекс, подтверждения могут быть отправлены по одной паре без прерывания потока данных, идущего в другом направлении.
заполнитель
Люк Кинан
заполнитель
Марсельм