Rozumiem, że porty USB w Pi współdzielą ten sam kontroler co port Ethernet.
Oznacza to, że gdyby użyć Pi jako NAS, przesyłanie danych przez sieć byłoby ograniczone, ponieważ zarówno porty USB, jak i port Ethernet byłyby używane jednocześnie.
Moje pytanie dotyczy tego, w jaki sposób spowalnia się przesyłanie danych i czy istnieje obejście tego problemu?
networking
usb
ethernet-port
data-transfer
Darth Vader
źródło
źródło
Odpowiedzi:
Masz rację, że współużytkowana magistrala USB / Ethernet jest wąskim gardłem.
Jedną z opcji jest użycie Pi 3 przez WiFi. Układ Wi-Fi nie dzieli magistrali z gniazdami USB i powinien działać z pełną prędkością.
Używając Pi innego niż Pi 3, jestem przekonany, że użycie adaptera Ethernet Gigabit USB 3 w gnieździe USB może zdziałać cuda dla szybkości twojego połączenia. Ten artykuł na stronie jeffgeerling.com sugeruje, że udało mu się znacznie poprawić przepustowość sieci w ten sposób.
źródło
USB 2.0 ma maksymalną szybkość transmisji 480Mb / s (mega bitów )
Teraz, rzeczywista szybkość transmisji w realnym świecie jest znacznie wolniejszy.
My Pi 2 ma maksymalnie 220MB / s (mega bitów ) przerobowej przez USB.
Maxium Pi może wypchnąć przez port sieciowy 10/100 wynosi około 90MB / s (Mega bity )
Więc:
Więc po pełnym załadowaniu dół port sieciowy, masz 130MB / s (Mega bity ) pasma lewej.
Aby grać bezpiecznie, zróbmy, że pozostało 100 Mb / s (Mega bitów ).
Dlatego (zakładając, że masz Pi 2):
Dopóki przepustowość USB nie przekracza 100 MB / s (Mega bitów ), wszystko będzie w porządku. 90MB / s (Mega bity ) stanowi, że zostaną wykorzystane przekazuje je do karty sieciowej.
Tak więc, o ile rzeczy inne niż dysk twardy podłączony do portów USB używają mniej niż 10 Mb / s (megabitów), będziesz działał z maksymalną prędkością, jaką Pi 2 może obsłużyć.)
źródło
Kontrolerem jest Microchip LAN9512, a przyczyną jego użycia jest np. Kilka niezależnych kontrolerów:
Cena £. Oto przykład, gdzie można kupić 100 z nich za 5 USD za sztukę.
Współczynnik kształtu. Możesz pamiętać, że Raspberry Pi jest sprzedawany lub blogowany jako „komputer wielkości karty kredytowej” lub „komputer, który mieści się w dłoni”, a nie „kolejny system mini-ITX” lub „komputer, który zmieści się pod dużym kapeluszem ”itp.
Moc. Rzut oka na pierwszą stronę arkusza danych (dostępnego poprzez łącze Microchip) „implementuje tryby pracy o zmniejszonej mocy” jest wymieniony jako jedna z „Funkcji”. Musiałbyś kopać głębiej, aby dowiedzieć się, co to naprawdę oznacza w kategoriach porównawczych, ale przynajmniej na pozór ma to sens.
Pamiętaj, że koszt pi wynosi ~ 35 USD detalicznej. Nie 135 USD lub 350 USD. Oto odpowiedź na dosłowne pytanie w twoim tytule: „Dlaczego porty USB i port Ethernet współużytkują ten sam kontroler?” .
Uwaga: nie jest niczym niezwykłym podejście do wielu portów USB, aby współużytkować tę samą magistralę - to prawdopodobnie norma. Zauważyłem, że laptop, na którym jestem teraz, ma 3 porty USB, ale
lsusb
zgłasza tylko dwa koncentratory 2.0 „Full speed”. Tak więc co najmniej dwa z tych portów współużytkują hub i oba nie osiągną „pełnej prędkości” w tym samym czasie. Jestem pewien, że jeśli sprawdzisz swój obecny system, jest on złożony w podobny sposób.Łączenie sieci Ethernet z tym jest niezwykłe, ale warto zauważyć, że USB 2.0 powinien zapewniać 480 Mbps, podczas gdy połączenie Ethernet 10/100 wymagałoby co najwyżej 100 z nich.
Wikipedia zauważa , podając jako źródło, że „Ze względu na ograniczenia dostępu do magistrali efektywna przepustowość szybkiej sygnalizacji jest ograniczona do 280 Mbit / s lub 35 MB / s”; nie wiadomo, czy to oznacza dla portu czy dla całego autobusu.
Oczywiście nie uzyskasz więcej niż 480 Mb / s, a prawdopodobnie nie dostaniesz więcej niż 280. Osobiście nigdy nie widziałem ani nie słyszałem doniesień o tym, że pi radzi sobie lepiej niż 10 MB / s transferu z lokalnej sieci Ethernet na USB dysk (tj. 80 Mb / s) konsekwentnie do normalnych celów. Jednak ta liczba jest po obsłużeniu samych protokołów, co doda zmienną, ale myślę, że mały procent - w przypadku Ethernetu może się znacznie różnić w zależności od topologii i aktywności podłączonej sieci.
Jeśli masz na myśli, czy mogę wycisnąć więcej wody przez rurę, aby rura nie zawierała, czy też nie, czy mogę sprawić, by pompa działała szybciej, albo jakaś kombinacja, albo znowu dwie, nie. Jeśli potrzebujesz szybszej pompy lub większej rury, kup szybszą pompę i większą rurę.
źródło
Ponieważ SoC na pi 1 do 3 nie ma kontrolera Ethernet, ma tylko jeden kontroler USB i nie ma żadnych innych interfejsów, które można łatwo wykorzystać do Ethernetu. Podczas gdy Eben mógł mieć wpływ na projekt BCM2835, był to ostatecznie produkt Broadcom, a jego szefowie w Broadcomie wołali, ale było tylko tyle rzeczy, z których mógł uciec.
Pamiętaj też, że Pi został zaprojektowany jako tani komputer, na którym dzieci mogłyby nauczyć się programować. Fakt, że został wychwycony i wykorzystany do wielu innych rzeczy, był po prostu szczęśliwym efektem ubocznym.
LAN9512 (później zastąpiony LAN9514 w celu dodania większej liczby portów i LAN7515 w celu zapewnienia szybszego Ethernetu) zapewnił wygodne rozwiązanie do dodania dodatkowego portu USB i portu Ethernet.
Kiedy zmodernizowali rdzenie ramion pi2 i pi3, postanowili zostawić resztę układu w spokoju (oprócz naprawienia błędu kontrolera pamięci, aby umożliwić 1 GB pamięci RAM). Rozumiem, że było to motywowane próbą uczynienia aktualizacji tak tanią i jak najmniej ryzykowną.
W końcu dotarli do punktu, w którym mieli niewielki wybór, ale musieli dokonać gruntownego przeglądu projektu SoC. Na szczęście rozbudowali oni także bazę klientów do tego stopnia, że taki przegląd był opłacalny finansowo. W przypadku Raspberry Pi 4 hub USB z układem Ethernet zniknął, zastąpiony przez układ Ethernet PHY napędzany przez MAC w nowym SoC i kontroler USB3 napędzany przez PCIe w nowym SoC.
źródło