Насколько я понимаю, порты USB на Pi совместно используют тот же контроллер, что и порт Ethernet.
Это означает, что если использовать Pi в качестве NAS, передача данных по сети будет ограничена, поскольку порты USB и порт Ethernet будут использоваться одновременно.
Мой вопрос заключается в том, как замедляется передача данных, и есть ли способ обойти эту проблему?
networking
usb
ethernet-port
data-transfer
Дарт Вейдер
источник
источник
Ответы:
Вы правильно понимаете, что общая шина USB / Ethernet является узким местом.
Одним из вариантов является использование Pi 3 через WiFi. Чип WiFi не разделяет шину с разъемами USB и должен работать на полной скорости.
Использование любого Pi другой , чем Pi 3, я привел верить , что с помощью USB 3 Gigabit Ethernet адаптер в разъем USB может творить чудеса для вашей скорости соединения. Эта статья на сайте jeffgeerling.com предполагает, что ему удалось значительно улучшить пропускную способность сети.
источник
Максимальная скорость передачи данных по USB 2.0 составляет 480 Мбит / с (мегабиты ).
Реальная скорость передачи данных в реальном мире намного ниже.
Мой Pi 2 имеет максимум 220MB / сек (Мег бит ) пропускную способность через USB.
Maxium Пи может толкнуть через сетевой порт 10/100 составляет около 90 Мб / с (мега бит )
Так:
Таким образом , после полной загрузки вниз сетевого порта, у вас есть 130MB / сек (Мег бит ) пропускная способность левой.
Для большей безопасности давайте оставим 100 Мбит / с (мегабит ).
Поэтому (при условии, что у вас есть Pi 2):
Пока ваша пропускная способность USB не превышает 100 Мбит / с (мегабит ), все будет в порядке. 90MB / сек (Мега бит ) из этого будет использоваться пересылать его к сетевой карте.
Таким образом, до тех пор, пока все, кроме жесткого диска, подключенного к USB-портам, использует менее 10 Мбит / с (мегабит), вы будете работать на максимальной скорости, которую может выдержать Pi 2.)
источник
Контроллер представляет собой Microchip LAN9512, и причина его использования, например, вместо группы независимых контроллеров, предположительно:
Цена. Вот пример, где вы можете купить 100 из них по $ 5 каждый.
Фактор формы. Возможно, вы помните, что Raspberry Pi, продаваемый на рынке, или технический блог, описываемый как «компьютер размером с кредитную карту» или «компьютер, который умещается на ладони», а не «еще одна система mini-ITX» или «компьютер, который подойдет под большую шапку "и т. д.
Мощность. Взглянув на первую страницу таблицы данных (доступной по ссылке «Микрочип») «реализует режимы работы с пониженной мощностью», упоминается как одна из «функций». Вы должны были бы копнуть глубже, чтобы узнать, что это на самом деле означает в сравнительных терминах, но, по крайней мере, на первый взгляд, это имеет смысл.
Помните, пи стоил ~ 35 долларов в розницу. Не 135 или 350 долларов. Так что это ответ на буквальный вопрос в вашем заголовке: «Почему USB-порты и Ethernet-порты используют один и тот же контроллер?» ,
Обратите внимание, что использование нескольких USB-портов для одной и той же шины не является необычным - это, вероятно, норма. Я заметил, что ноутбук, на котором я сейчас работаю, имеет 3 порта USB, но
lsusb
сообщает только о двух 2.0 "Full speed" концентраторах. Таким образом, по крайней мере два из этих портов совместно используют концентратор, и они не будут одновременно получать «полную скорость». Я уверен, что если вы проверите свою текущую систему, она собрана аналогично.Комбинирование Ethernet с этим необычно, но стоит отметить, что USB 2.0 должен обеспечивать 480 Мбит / с, тогда как для соединения Ethernet 10/100 потребуется не более 100 из них.
Википедия отмечает , ссылаясь на спецификацию в качестве источника, что «из-за ограничений доступа к шине эффективная пропускная способность высокоскоростной сигнализации ограничена 280 Мбит / с или 35 МБ / с»; неясно, означает ли это для каждого порта или для шины в целом.
Очевидно, что вы не получите более 480 Мбит / с, и, вероятно, не получите более 280. Лично я никогда не видел и не слышал сообщений о том, что пи делает передачу лучше, чем 10 МБ / с из локальной сети Ethernet на USB диск (т. е. 80 Мбит / с) последовательно для обычных целей. Тем не менее , это число после обработки самих протоколов, что добавит переменную, но я думаю, что небольшой процент - с Ethernet это может сильно отличаться в зависимости от топологии и активности подключенной сети.
Если вы имеете в виду, могу ли я выжать больше воды через трубу, чем было сделано для того, чтобы труба не содержала, тогда нет, или я могу заставить насос работать быстрее, или какую-то комбинацию, или снова две, нет. Если вам нужен более быстрый насос или труба большего размера, купите более быстрый насос и трубу большего размера.
источник
Поскольку SoC на пи 1-3 не имеет контроллера Ethernet, он имеет только один контроллер USB и не имеет никаких других интерфейсов, которые можно легко использовать для Ethernet. В то время как Эбен мог оказать некоторое влияние на дизайн BCM2835, в конечном итоге это был продукт Broadcom, и его боссы в Broadcom могли бы назвать это выстрелами, он мог избежать неприятностей.
Также помните, что Pi был разработан как дешевый компьютер, на котором дети могли бы учиться программировать. Тот факт, что он был подобран и использован для всех других вещей, был просто счастливым побочным эффектом.
LAN9512 (позднее замененный на LAN9514 для добавления большего количества портов и LAN7515 для обеспечения более быстрого Ethernet) предоставил удобное решение для добавления дополнительного порта USB и порта Ethernet.
Когда они модернизировали ядра arm pi2 и pi3, они решили оставить остальную часть чипа в покое (кроме исправления ошибки контроллера памяти, чтобы позволить 1 ГБ оперативной памяти). Я понимаю, что это было мотивировано попыткой сделать обновление как можно более дешевым и с минимальным риском.
Наконец, они достигли точки, когда у них не было иного выбора, кроме как сделать капитальный ремонт дизайна SoC. К счастью, они также увеличили свою клиентскую базу до такой степени, что такой капитальный ремонт был финансово жизнеспособным. С Raspberry Pi 4 USB-концентратор с Ethernet-чипом пропал, его заменил Ethernet-PHY-чип, управляемый MAC на новом SoC, и USB3-контроллер, управляемый PCIe на новом SoC.
источник