Я говорил с коллегой об ограничениях длины USB-кабеля, и насколько я помню, он был ограничен узким окном, в котором хост требует, чтобы устройство отвечало (упомянуто здесь ).
Он отметил, что Ethernet передает данные с более высокой скоростью ( USB 1,5 / 12/480/5000 Мбит / с (в зависимости от режима) по сравнению с Ethernet 10/100 Гбит / с) и допускает большую длину кабеля ( 100 м для кабеля CAT6 ).
Итак, я думаю, нам обоим интересно, какой аспект протокола USB ограничивает длину кабеля до 5 м и чем она отличается от Ethernet?
Ответы:
Согласно Википедии :
Таким образом, с задержкой на кабель 26 нс и спецификацией, требующей задержки кабеля менее 5,2 нс / м, это дает теоретическую максимальную длину кабеля 26 нс / (5,2 нс / м) = 5 м.
В этом источнике также упоминается, что USB 2.0 ограничен 5 м, а USB 3.0 - нет.
источник
USB был разработан для замены различных периферийных интерфейсов ПК, включая такие, как клавиатуры и мыши. Приоритеты включали низкую стоимость, низкое энергопотребление и пропуск трафика с высоким приоритетом с низкой задержкой. Поддержка длинных кабелей не была приоритетом. Таким образом, на стороне протокола они выбрали простой полудуплексный протокол «говори, когда говоришь» с пакетами небольшого размера. С аппаратной стороны они выбрали неизолированную систему дифференциальной сигнализации, которая приняла несколько комбинаций при завершении.
USB постепенно развивался, добавляя более высокие скорости и полный дуплекс, но большее расстояние никогда не было целью проектирования.
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). Однако, поскольку он дуплексный, подтверждения могут отправляться по одной паре, не прерывая поток данных, идущий в другом направлении.
источник