Ethernet через USB
Эта статья нуждается в дополнительных цитатах для проверки . ( сентябрь 2016 г. ) |
Ethernet через USB — это использование канала USB как части сети Ethernet , что приводит к соединению Ethernet через USB (вместо, например, PCI или PCIe ).
USB over Ethernet (также называемый USB over Network или USB over IP ) — это система для совместного использования USB-устройств через Ethernet, Wi-Fi или Интернет, обеспечивающая доступ к устройствам по сети. Это можно сделать на нескольких сетевых устройствах с помощью концентраторов USB через Ethernet.
Протоколы
[ редактировать ]Существует множество протоколов для работы в сети Ethernet через USB. Использование этих протоколов позволяет обеспечить независимый от приложения обмен данными с USB-устройствами вместо специализированных протоколов, таких как видео или MTP (протокол передачи мультимедиа) . Несмотря на то, что USB не является физическим Ethernet, сетевые стеки всех основных операционных систем настроены на передачу кадров IEEE 802.3 без необходимости использования определенного базового транспорта.
Основными отраслевыми протоколами являются удаленный NDIS (RNDIS, протокол поставщика Microsoft), модель управления Ethernet (ECM), модель эмуляции Ethernet (EEM) и модель управления сетью (NCM). Последние три являются частью более крупной класса коммуникационных устройств группы протоколов (CDC) Форума разработчиков USB (USB-IF). Они доступны для загрузки с USB-IF (см. ниже). Спецификацию RNDIS можно найти на веб-сайте Microsoft. Что касается стандартов де-факто , некоторые стандарты, такие как ECM, определяют использование ресурсов USB, которых не было в ранних системах. Однако незначительные модификации стандартных подмножеств делают возможным практическое внедрение на таких платформах. Примечательно, что даже некоторые из самых современных платформ нуждаются в незначительных изменениях, и поэтому поддержка этих подмножеств по-прежнему необходима.
Из этих протоколов ECM можно классифицировать как самый простой: кадры просто отправляются и принимаются без изменений по одному за раз. Это была удовлетворительная стратегия для систем USB 1.1 (действующей на момент выпуска протокола) с 64-байтовыми пакетами, но не для систем USB 2.0, которые используют 512-байтовые пакеты.
Одна из существенных проблем заключается в том, что кадры Ethernet имеют размер около 1500 байт — около 3 пакетов USB 2.0 и 23 пакета USB 1.1. Система USB работает так, что каждый пакет отправляется как передача , серия пакетов максимальной длины, завершающаяся коротким пакетом или специальным ZLP (пакетом нулевой длины). После этого возникает задержка шины, когда ничего не отправляется до тех пор, пока не будет инициирована другая передача. Это снижает занятость автобуса, а это означает, что в течение значительной части времени автобуса ничего не отправляется. Разрыв каждые 23 кадра не заметен, но разрыв каждые три кадра можно рассматривать как очень дорогостоящий для пропускной способности.
Поскольку USB стал быстрее, устройства используют больше данных, и, следовательно, теперь существует потребность в отправке больших объемов данных — либо для хранения на устройстве, либо для передачи по беспроводным каналам связи (см. Долгосрочное развитие 3GPP ).
Эти новые устройства по-прежнему имеют гораздо меньшую мощность, чем настольные ПК, поэтому возникает проблема тщательной обработки данных, чтобы максимально использовать ресурсы DMA на устройстве и минимизировать (или исключить) копирование данных (нулевое копирование). Протокол NCM содержит подробные положения для этого. См. ссылку ниже для сравнения протоколов.
Драйвер для Linux
[ редактировать ]Модуль USB-eth в Linux делает компьютер, на котором он работает, разновидностью устройства Ethernet, использующего USB в качестве физической среды. Он создает сетевой интерфейс Linux, которому можно назначить IP-адрес и в остальном рассматривать его так же, как и настоящий интерфейс Ethernet. Любые приложения, работающие через реальные интерфейсы Ethernet, будут работать через интерфейс USB-Ethernet без изменений, поскольку нет разницы между использованием правильного или неправильного оборудования Ethernet. [1] [2]
На хостах Linux соответствующий модуль ядра Ethernet-over-USB называется usbnet. Сетевой драйвер Bahia [3] — это драйвер в стиле usbnet, доступный для хостов Win32.
Этот подход позволяет устройствам с очень ограниченным коммуникационным оборудованием работать через IP-сети. Ядро Linux для iPAQ использует исключительно эту стратегию связи, поскольку оборудование iPAQ не имеет ни доступного устаревшего последовательного порта (RS-232/ RS-422 ), ни выделенного сетевого интерфейса.
Ссылки
[ редактировать ]- ^ Embedded.com — USB-устройства на базе Linux.
- ^ «Как использовать сеть USB-устройств | USB-сеть Linux» . Developer.ridgerun.com . Проверено 17 октября 2022 г.
- ^ BND — сетевой драйвер Bahia