Длина кабеля USB и Ethernet

Я разговаривал с коллегой об ограничениях длины USB-кабеля, и, насколько я помню, он был ограничен узким окном, в котором хост требует, чтобы устройство отвечало (упоминается здесь ).

Он указал, что Ethernet передает данные с более высокой скоростью ( USB 1,5/12/480/5000 Мбит/с (в зависимости от режима) по сравнению со скоростью Ethernet 10/100 Гбит/с) и позволяет использовать кабель большей длины ( 100 м для кабеля CAT6 ).

Итак, я думаю, нам обоим интересно, какой аспект протокола USB ограничивает длину кабеля до 5 м и чем это отличается от Ethernet?

ключевой аспект Ethernet, который вы ищете, называется «домен коллизий».
Сетевые коллизии @rawbrawb могут замедлить соединение Ethernet, но Ethernet по-прежнему может передавать данные от узла к маршрутизатору со скоростью 10 Гбит/с в идеальных условиях. USB не имеет коллизий, насколько я понимаю, потому что хост решает, кто говорит; поэтому кажется, что столкновения не должны быть причиной.
Я обсуждал ТОЛЬКО Ethernet - кажется, вы контролируете USB.
«... по сравнению с Ethernet 10/100 Гбит/с) и позволяет использовать кабель большей длины (100 м для кабеля CAT6)» — неверно. 10G Ethernet по CAT6 подходит только для 55M (см. эту таблицу ), а 100G вообще не может работать по витой паре (см. эту таблицу ). Я думаю, вы путаете стандарты Ethernet с более низкой скоростью (например, 1 гигабит).

Ответы (3)

Согласно Википедии :

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 — нет.

Я предполагаю, что вопрос в том, почему они ограничили максимальное время прохождения туда и обратно до 1,5 мкс? Сначала я думал, что это из-за высокой скорости передачи, но Ethernet каким-то образом избегает этой проблемы.
@LukeQuinane, я только что заметил, что причина указана чуть выше области в ссылке, которую вы разместили, usb.org/developers/usbfaq#cab1
@PeterJ, это очень интересно. Любые идеи, как Ethernet избежать этой проблемы?
@LukeQuinane, нет, я мало что знаю о физическом уровне Ethernet. Я подозреваю, что общее решение для USB было принято для того, чтобы максимально снизить стоимость устройства за счет упрощения драйверов.
Первоначальный Ethernet был разработан в другую эпоху, когда существовали другие приоритеты, стоимость компонентов и сложность кабеля VS. USB разработан с минимально возможной стоимостью и минимальной площадью / разъемом / кабелем / потреблением энергии для Джо Блоггса и его iPhone.
Ethernet — совершенно другой зверь, но мне интересно, как USB 3.0 (поскольку он намного ближе к USB 2.0, чем Ethernet, очевидно) обходит этот предел?
superuser.com/questions/203757/… USB 3 имеет меньшую максимальную длину кабеля.
Википедия ошибается в отношении причин ограничений кабеля USB2, все наоборот. Ограничивающим фактором являются дешевые кабели и дешевые драйверы с одной амплитудой без предыскажения и частотной коррекции на стороне приемника. В результате экономически сложно установить открытый сигнальный глазок на дальнем конце 5-метрового USB-кабеля. Ограничение отклика в 1,5 мкс (на самом деле 1,7 мкс) исходит из звездообразной топологии из 5 концентраторов (каждый из которых имеет собственную задержку в повторителях) и времени отклика устройства 400 нс.

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). Однако, поскольку это полный дуплекс, подтверждения могут быть отправлены по одной паре без прерывания потока данных, идущего в другом направлении.

Также есть часть управления окнами TCP: TCP не ждет ACK. Вместо этого он просто продолжает отправлять данные, и если ACK отсутствует, он отправляет данные повторно. В дополнение к этому TCP позволяет одному ACK подтверждать несколько дейтаграмм TCP.
«... высокоскоростной Ethernet является полнодуплексным: используются две пары кабелей, по одной для каждого направления». - Это верно для 100-мегабитного Ethernet, но не для Gigabit Ethernet (1000BASE-T), который использует четыре пары кабелей одновременно в обоих направлениях (см. wikipedia/1000BASE-T ).