Najlepszy sposób na wykonywanie TCP / IP przez USB w systemie Linux

10

Chcę ustanowić łącze TCP / IP między dwoma komputerami z systemem Linux, które mają kilka portów USB 2.0 jako jedyne opcje połączenia. Ponieważ dostępne są zarówno porty hosta, jak i slave, mogę je podłączyć za pomocą prostego kabla USB. Jakie są możliwości przekazywania TCP / IP za pomocą tego kabla i którego należy użyć, aby uzyskać najwyższą przepustowość?

Do tej pory próbowałem przekierowania ADB (Android Debug Bridge), ale przepustowość jest niska - tylko 30-40 Mb / s. Myślę, że powinno być możliwe osiągnięcie co najmniej 150-200 Mb / s za pomocą specjalistycznego sterownika - dyski twarde USB czasami przenoszą pliki z prędkością 240-280 Mb / s z 480 dostępnych teoretycznie.

jons34yp
źródło
1
Możesz dostać dwie karty sieciowe USB (możesz uzyskać gigabitowe, ale nie będą one maksymalne przy pełnej prędkości) i po prostu użyj zwykłego stosu sieciowego ...?
Mark Henderson
Kosztują więcej i dodają dodatkowe koszty ogólne.
jons34yp
1
Cóż, nie wspomniałeś nic w swoim pytaniu na temat wymagań budżetowych i mogą być narzutem, ale będzie to więcej niż 40 Mb / s.
Mark Henderson
Co masz na myśli, że oba porty master i slave są dostępne? Komputery PC mają tylko porty główne.
psusi
1
@ MarkHenderson - „pobierz dwie karty sieciowe USB” - nie jest (poprawnie) nazywany „kartą”, kiedy nie jest już nagą płytką drukowaną (płytką drukowaną). Gdy jest zamknięty, to jest to moduł lub adapter. W przeciwnym razie zgadzam się, że para adapterów USB-Ethernet jest najprostszym (i być może „najlepszym”) rozwiązaniem. Chyba że „najlepszy” oznacza tylko „najszybszy”.
trociny

Odpowiedzi:

11

Sterowniki Ethernet przez USB są zawarte w systemie Linux. Odpowiednimi sterownikami wielkości hosta są CDC_ETHER i RNDIS. Ich odpowiednikami wielkości slave (które zasadniczo emulują mostek USB-Ethernet w oprogramowaniu) są USB_ETH, USB_ETH_RNDIS. USB_G_ANDROID obsługuje także protokół RNDIS, co w moim przypadku jest świetne, ponieważ dane urządzenia używają jądra Androida, więc sterownik jest domyślnie włączony.

Zmierzona przepustowość mostu USB przy użyciu sterownika USB_G_ANDROID wynosi ~ 130 Mb / s od hosta do urządzenia podrzędnego i ~ 90 Mb / s na odwrót.

jons34yp
źródło