Универсальная шина USB появилась давно, вот только то многообразие устройств, которое мы можем сейчас наблюдать на рынке, возникло значительно позже. Очевидно, что сейчас пропускной способности USB 1.1 (в районе мегабайта в секунду) уже не хватает. Именно поэтому в новых материнских платах появились контроллеры USB 2.0 — скорость передачи данных в новой версии выросла более чем на порядок. Но, тем не менее, свое дело USB 1.1 сделала (универсальность и распространенность), да и устройства на ней прослужат еще долго. А мы из всего многообразия USB-устройств остановимся на сетевой карте, выпускающейся под маркой HardLink.
В комплект поставки входит само устройство, usb-кабель для подключения к компьютеру, небольшая брошюрка и дискета (!) с драйверами. Я уже было забыл о дискетах, как о страшном сне, ан нет — они еще живы.. Конечно драйвер занимает совсем мало места, но это все же не объясняет, почему нельзя было записать его на компакт диск — по крайней мере, CD-диски выходят из строя значительно реже... А некоторые новые материнские платы вообще не имеют контроллера дисковода. Из драйверов в комплекте обнаруживаем только версии под операционные системы вездесущего семейства Windows — Windows 98, Windows ME и Windows 2000.
Кроме драйвера, на диске содержится программа Web Manager (работающая, кстати говоря, на любых сетевых картах), которая, устанавливаясь на компьютере, позволяет через WEB-интерфейс просматривать (только просматривать) некоторую информацию о системе — конфигурацию компьютера, установленные программы, параметры сети, а также получить скриншот с экрана удаленного компьютера. В общем, я не нашел ей применения — правда, еще она поддерживает удаленное включение компьютера при помощи посылки “Magic Packet” с MAC-адресом этого хоста. Причем для работы этой опции компьютер и сетевая карта должны поддерживать функцию “Wake-on-LAN”). По-моему, это единственное достоинство программы Web Manager.
Само устройство небольших размеров и имеет два интерфейса — FastEthernet и USB 1.1. Поддерживаются режимы работы со скоростью 10 и 100mbit. Рядом с сетевым разъемом присутствуют два индикатора. Зеленый сигнализирует о наличии линка (подключения к другому сетевому устройству), оранжевый — о скорости работы в режиме 100Mbits. Кстати о пропускной способности.. Понятно, что скоростей выше мегабайта в секунду мы не получим в силу наличия бутылочного горлышка — USB 1.1, тем не менее, поддержка адаптером скоростей 100Mbits позволяет подключать подобные карты к устройствам, которые не могут работать на скоростях ниже 100Mbits, например старым концентраторам (hub-ам).
Работа в Windows 2000
Инсталляция устройства прошла без проблем — после подключения Windows обнаружила новое устройство и попросила вставить диск с драйверами. Правда, во время инсталляции ОС предупредила, что драйвер может не подойти для данного устройства USB и уточнила, уверен ли я в своих действиях.. Но после клика на кнопку OK она успокоилась и нормально установила драйвер.
После установки драйверов в диспетчере устройств появилась новая сетевая карта. Из интересного в ее настройках хотелось бы отметить наличие переключения сред передачи между Ethernet и Home Lan. Что означает последнее — загадка, но при его активации адаптер переставал видеть сеть.
В общем, все установилось без проблем, осталось только задать нужный IP-адрес и запустить тесты. Кроме тестов скорости, о которых ниже, был проведен тест на подключение/отключение адаптера от компьютера во время работы последнего. После отключения карты Windows выдала предупреждение о неправильном отключении устройства (непонятно правда, чего тут неправильного):
При повторном включении никаких сообщений не выдавалось, устройство просто через несколько секунд весело замигало индикаторами и включилось в работу — придраться не к чему.
Работа в Linux
На сайте компании упоминания о работоспособности адаптера под ОС, отличными от Windows, нет. Тем не менее, попробуем запустить его и в Linux. Использовался дистрибутив Redhat 7.2 с некоторыми апдейтами и ядро 2.4.18.
make menuconfig
Изначально в разделе “USB Support” отсутствуют какие-либо сетевые адаптеры. Их список появляется после активации в разделе “Code maturity level options” опции “Prompt for development and/or incomplete code/drivers” (позволить показ кода и драйверов, находящихся в стадии разработки). Так как многие драйверы и опции уже по нескольку лет находятся в стадии разработки, поэтому оставлять выключенной “Prompt for development and/or incomplete code/drivers” смысла не имеет. В этом разделе нам нужны только драйверы контроллера USB и сетевого адаптера, поэтому активируем необходимый минимум:
Собственно, опция самого драйвера адаптера называется “USB ADMtek Pegasus-based ethernet device support”. Возможно его работа как в составе ядра, так и модулем (в случае модуля в /etc/modules.conf достаточно прописать нечто вроде “alias eth2 pegasus”). После пересборки ядра и перезагрузки мы обнаруживаем еще один работоспособный сетевой интерфейс. Ура! Под Linux-ом адаптер тоже работает, что не может не радовать. Ядро при загрузке выдает следующее:
Тест на отключение/включение сетевого USB-адаптера во время работы компьютера тоже был пройден успешно. Правда, если Windows сама заботится о автоматическом активации устройства после его подключения, то тут приходится заботиться об этом самому командой ifconfig eth2, ну или можно один раз написать соответствующий скрипт.
Тесты
Мне так и не удалось собрать под Linux работоспособную dynamo из исходников IOMeter версии 2001.07.19 — полученный бинарник (а это и есть собственно консольная программа-тест) не коннектится к win32-версии IOMeter (графической среде управления тестом). Поэтому все силы были брошены в великую сеть на поиски замены. И они увенчались успехом - на сцену выходит Iperf v1.6. Более подробно о программе и ее возможностях будет рассказано в следующих статьях. А сейчас просто отмечу, что эта клиент-серверная программа позволяет измерить максимально возможную пропускную способность канала. Конечно при условии, что узким местом является канал, а не, к примеру, центральный процессор pentium-100.
Для тестирования использовались два компьютера следующей конфигурации:
- Платформа — Asus Terminator
- Процессор — VIA C3 866MHz
- Память — 128MB SDRAM
- Жесткий диск — Maxtor 20GB
- ОС — Windows2000 Pro +SP2 и Linux 2.4.18
Для каждой ОС прогонялось тесты для двух видов подключения сетевых карт:
- напрямую, с помощью кроссовер-кабеля
- через коммутатор, в качестве которого использовался Intel Express 460T Stendalone Switch
Для тестирования пропускной способности были использованы две программы:
- IOMeter 2001.07.19 win32 версия
- Iperf v1.6 win32 and linux версии
Для каждого теста IOMeter запускался три раза, продолжительность одного теста — 5 минут. Режим генерации трафика — односторонний. Параметры трафика обычные:
- тип передачи — 100% последовательная
- вид передачи — 100% запись
- размер блока данных — 64KB
- время задержки при передаче пакетов — минимально.
Iperf запускался три раза подряд на тест продолжительностью 5 минут с параметрами по умолчанию (используется протокол TCP), передача данных осуществляется в один конец — от клиента к серверу. Параметры запуска:
- iperf -s — со стороны сервера
- iperf -t 300 -c server — со стороны клиента
Полученные результаты сведены в таблицу:
| метод соединения и тестирующая программа | скорость в Linux, Mbits/sec | скорость в Windows, Mbits/sec |
| коммутатор, Iperf | 5,8 | 5,5 |
| кроссовер, Iperf | 5,8 | 5,6 |
| коммутатор, IOMeter | 5,5 | |
| кроссовер, IOMEter | 5,5 |
Результаты схожи в обоих операционных системах и при разных типах подключения адаптеров друг к другу. Но хорошо видно, что максимальная скорость передачи данных ниже пропускной способности шины USB 1.1 почти в два раза. Вряд ли в этом виноваты драйвера — тестирование происходило на разных ОС. С другой стороны скорость ~600Kb/sec не такая уж и маленькая, если конечно не ставить себе задачу перекачки 20Gb mpeg4 фильмов по сети.
Выводы
Хотя скорость передачи данных этих сетевых карт невелика, их безусловное преимущество в быстроте подключения компьютера к Ethernet-сети — для этого достаточно иметь лишь порт USB. А сам компьютер при этом не требует разборки и отключения от сети.
Выражаем благодарность VIA Technologies за предоставленные процессоры VIA C3 866Mhz









