Тестирование 32-битных гигабитных сетевых адаптеров

Закон Мура в применении к СКС гласит:
«Каждые 10 лет развитие новых технологий
передачи информации требует от кабельной системы
увеличения полосы пропускания канала на порядок».


На самом деле, пока этот закон перевыполняется с лихвой — скорости сетей возрастают на порядок (десятичный) чаще, чем раз в десять лет. Они уже покорили гигабитный рубеж и не останавливаются на этом. А мы пока остановимся на гигабите. Действительно, спешить пока некуда: и эта область нами еще не изучена.

Gigabit Ethernet возник в ответ на потребность во все больших и больших скоростях передачи данных. Он дает возможность избавиться от узких мест в сетях за счет увеличения полосы пропускания канала в 10 раз и в основном используется на магистральных линиях сети, для подключения серверов и так далее. Но в настоящее время его применение уже выходит за рамки бекбон-сетей, вычислительных кластеров и распределенных баз данных. Например, такие приложения, как потоковое видео, видеоконференции, обработка сложных изображений тоже предъявляют повышенные требования к пропускной способности, и при наличии большого количества пользователей 100-Мбитная сеть может не справиться с возросшим потоком данных. Поэтому сейчас мы наблюдаем тенденцию к сильному увеличению интереса к новой технологии и естественное возрастание продаж гигабитных адаптеров. Этому способствует и постепенное снижение цен на них.

Давайте поподробнее рассмотрим этот стандарт. Принятый IEEE в июне 1998 года, он был утвержден как IEEE 802.3z. Тогда в качестве среды передачи еще использовался только оптический кабель. Как дополнение, годом позднее утвердили стандарт 802.3ab, где в качестве среды передачи фигурировала неэкранированная витая пара пятой категории.

Gigabit Ethernet является дальнейшим развитием стандартов Ethernet и Fast Ethernet, которые уже хорошо зарекомендовали себя за почти двадцатилетнюю историю. Он быстрее в первого из них в 100 и второго — в 10 раз соответственно, а теоретическая пропускная способность gigabit Ethernet достигает 1000 Мбит/сек, что приблизительно равно 120 МБайтам в секунду, то есть вплотную приближается к скорости 32-битной шины PCI 33 МГц. Именно поэтому гигабитные адаптеры выпускаются как для 32-битной PCI (33 и 66 МГц), так и для 64-битной шины. Технология обладает обратной совместимостью с предыдущими стандартами Ethernet (10 и 100 Мбит), что позволяет плавно переводить существующие сети на более высокие скорости, возможно, даже не меняя существующую кабельную структуру.

Стандарт наследует все предыдущие особенности Ethernet, такие как формат кадров, технология CSMA/CD (чувствительный к передаче множественный доступ с обнаружением коллизий), полный дуплекс и тд. И конечно, появились некоторые нововведения, связанные в первую очередь с высокими скоростями передачи данных. Но именно в наследовании старых стандартов состоит огромное преимущество и популярность Gigabit Ethernet. Ведь внешне он выглядит, как старый добрый Ethernet (представляя собой его расширение), а высокие скорости было достигнуты без существенных изменений протокола. Из этого вырастает второе преимущество Gigabit Ethernet перед его ближайшими конкурентами ATM и Fibre Channel — его относительно низкая цена. В общем, пока Ethernet доминирует в области сетевых технологий (он составляет более 80 процентов мирового рынка передачи информации). И, возможно, будет доминировать и дальше — на горизонте уже показался 10 ГБит Ethernet.


Рис 1. Функциональные элементы технологии gigabit Ethernet.

Изначально gigabit Ethernet мог использовать в качестве среды передачи только оптические кабели — интерфейс 1000BASE-X. Он основывается на стандарте физического уровня Fibre Channel (это технология взаимодействия рабочих станций, устройств хранения данных и переферийных узлов). Так как эта технология уже была одобрена ранее, такое заимствование сильно сократило время на разработку стандарта gigabit Ethernet. 1000BASE-X включает три физических интерфейса со следующими характеристиками:

  • 1000Base-SX использует лазеры с допустимой длиной излучения в пределах диапазона 770-860 нм, мощность излучения передатчика в пределах от -10 до 0 дБм при отношении ON/OFF (сигнал / нет сигнала) не меньше 9 дБ. Чувствительность приемника -17 дБм, насыщение приемника 0 дБм;
  • 1000Base-LX использует лазеры с допустимой длиной излучения в пределах диапазона 1270-1355 нм, мощность излучения передатчика в пределах от -13,5 до -3 дБм, при отношении ON/OFF (есть сигнал / нет сигнала) не меньше 9 дБ. Чувствительность приемника -19 дБм, насыщение приемника -3 дБм;
  • 1000Base-CX — это экранированная витая пара (STP «twinax») на короткие расстояния.
СтандартТип кабеляПолоса пропускания (не хуже), МГц*КмМакс. расстояние, м *
1000BASE-LX (лазерный диод 1300 нм)Одномодовое волокно (9 мкм)-5000 **
Многомодовое волокно
(50 мкм)
500550
Многомодовое волокно
(62,5 мкм)
320400
1000BASE-SX (лазерный диод 850 нм)Многомодовое волокно
(50 мкм)
400500
Многомодовое волокно
(62,5 мкм)
200275
Многомодовое волокно
(62,5 мкм)
160220
1000BASE-СXЭкранированная витая пара STP
(150 ОМ)
-25

* стандарты 1000BASE-SX и 1000BASE-LX предполагают наличие дуплексного режима
** Оборудование некоторых производителей может обеспечивать большее расстояние, оптические сегменты без промежуточных ретрансляторов/усилителей могут достигать 100 км.

Таблица 1. Технические характеристики стандартов 1000Base-X

Годом позже был принят стандарт 1000BASE-T, регламентирующий неэкранированную витую пару категории 5 в качестве среды передачи. Его мы рассмотрим поподробнее.

Отличие 1000BASE-T от Fast Ethernet 100BASE-TX состоит в том, что используются все четыре пары (в 100BASE-TX использовались только две). По каждой из четырех пар данные передаются со скоростью 250 Мбит/сек. Стандарт обеспечивает дуплексную передачу, причем передача по каждой паре обеспечивается в двух направлениях одновременно. В техническом плане реализация гигабитной передачи по витой паре, а тем более в дуплексном режиме, оказалась намного сложнее, чем в 100BASE-TX. Это связано с сильными помехами на пару от соседних трех витых пар, и потребовало разработки специальной скремблированной помехоустойчивой передачи, а также интеллектуального узла распознавания и восстановления сигнала на приеме. В качестве метода кодирования в стандарте 1000BASE-T было использовано 5-уровневое импульсно-амплитудное кодирование PAM-5.

К параметрам кабеля тоже применяются несколько повышенные требования (касающиеся наводок однонаправленной передачи, возвратных потерь, задержек и фазового сдвига). Это привело к появлению категории 5e для неэкранированной витой пары. Для гарантии работоспособности gigabit Ethernet на кабеле пятой категории, они должны проходить пересертификацию на соответствие новой категории. В принципе, большинство фирменных кабелей ее проходит, а в настоящее время в основном категория 5е и выпускается.

Обжим кабеля для 1000BASE-T производится по следующей схеме:

Прямой
(straight-through) кабель.

Перекрестный
(crossover) кабель.

Рис 2. Схема обжима кабеля для 1000BASE-T

Интересные нововведения коснулись уровня MAC-стандарта 1000BASE-T.

В Ethernet-сетях максимальное расстояние между станциями (коллизионный домен) определяется исходя из минимального размера кадра (в стандарте Ethernet IEEE 802.3 он равнялся 64 байтам). Максимальная длина сегмента должна быть такой, чтобы передающая станция могла обнаружить коллизию до окончания передачи кадра (сигнал должен успеть пройти в другой конец сегмента и вернуться обратно). Соответственно, при увеличении скорости передачи нужно либо увеличивать размер кадра, тем самым увеличивая минимальное время на передачу кадра, либо уменьшать диаметр коллизионного домена. При переходе к Fast Ethernet воспользовались вторым вариантом и сократили диаметр сегмента.

В gigabit Ethernet это было неприемлемо. Ведь в этом случае стандарт, наследовавший такие составляющие Fast Ethernet, как минимальный размер кадра, CSMA/CD и время обнаружения коллизии (time slot), сможет работать в коллизионных доменах диаметром не более 20 метров. Поэтому было предложено увеличить время на передачу минимального кадра. Вкупе с тем, что, для совместимости с предыдущими Ethernet, минимальный размер кадра был оставлен прежним — 64 байта, а к кадру добавилось дополнительное поле carrier extension (расширение носителя), которое дополняет кадр до 512 байт. Естественно, поле не добавляется в случае, если размер кадра больше 512 байт. Таким образом, результирующий минимальный размер кадра получился равным 512 байтам, время на обнаружение коллизии возросло, и диаметр сегмента увеличился до тех же 200 метров (в случае 1000BASE-T). Символы в поле carrier extension не несут смысловой нагрузки, контрольная сумма для них не вычисляется. При приеме кадра это поле отбрасывается еще на уровне MAC, поэтому вышележащие уровни продолжают работать с минимальными кадрами длиной 64 байта.

Но и тут возникли подводные камни. Хоть расширение носителя и позволило сохранить совместимость с предыдущими стандартами, оно привело к неоправданной трате полосы пропускания. Потери могут достигать 448 байт (512–64) на кадр в случае коротких кадров. Поэтому стандарт 1000BASE-T был модернизирован — ввели понятие Packet Bursting (пакетная перегруженность). Она позволяет намного эффектней использовать поле расширения. А работает это так: если у адаптера или коммутатора есть несколько небольших кадров, требующих отправки, то первый из них отправляется стандартным образом, с добавлением поля расширения до 512 байт. А все последующие отправляются в оригинальном виде (без поля расширения), с минимальным интервалом между ними в 96 бит. И, что самое главное, этот межкадровый интервал заполняется символами расширения носителя. Это происходит до тех пор, пока суммарный размер отправляемых кадров не достигнет предела 1518 байт. Таким образом, среда не замолкает на всем протяжении передачи малых кадров, поэтому коллизия может возникнуть только на первом этапе, при передаче первого правильного малого кадра с полем расширения носителя (размером 512 байт). Этот механизм позволяет существенно повысить производительность сети, особенно при больших нагрузках, за счет уменьшения вероятности возникновения коллизий.

Но и этого оказалось мало. Сначала gigabit Ethernet поддерживал только стандартные размеры кадров Ethernet — от минимального 64 (дополняемых до 512) до максимального 1518 байт. Из них 18 байт занимает стандартный служебный заголовок, а для данных остается от 46 до 1500 байт соответственно. Но даже пакет данных размером 1500 байт слишком мал в случае гигабитной сети. Особенно для серверов, передающих большие объемы данных. Давайте немного посчитаем. Для передачи файла размером 1 Гигабайт по незагруженной Fast Ethernet сети, сервер обрабатывает 8200 пакетов/сек и затрачивает на это минимум 11 секунд. В это случае только на обработку прерываний у компьютера мощностью 200 MIPS уйдет около 10 процентов времени. Ведь центральный процессор должен обработать (посчитать контрольную сумму, передать данные в память) каждый пришедший пакет.

Скорость10 Мбит/сек100 Мбит/сек1000 Мбит/сек
Размер кадра64 байта1518 байт64 байта1518 байт64 байта1518 байт
Кадры/сек14.8K812148K8,1K1,48M81K
Скорость передачи данных, Мбит/сек5,59,85598550980
Интервал между кадрами, мкс6712006,71200,712

Табл 2. Характеристики передачи сетей Ethernet.

В гигабитных сетях ситуация еще печальней — нагрузка на процессор возрастает примерно на порядок из-за сокращения временного интервала между кадрами и соответственно запросами на прерывания к процессору. Из таблицы 1 видно, что даже в наилучших условиях (использование кадров максимального размера), кадры отстоят друг от друга на временной интервал, не превышающий 12 мкс. В случае использования кадров меньшего размера этот временной интервал только уменьшается. Поэтому в гигабитных сетях узким местом, как ни странно, стал именно этап обработки кадров процессором. Поэтому на заре становления gigabit Ethernet фактические скорости передачи были далеки от теоретического максимума — процессоры просто не справлялись с нагрузкой.

Очевидными выходами из сложившейся ситуации являлись:

  • увеличение временного интервала между кадрами;
  • перекладывание части нагрузки обработки кадров с центрального процессора на сам сетевой адаптер.
В настоящее время реализованы оба метода. В 1999 году было предложено увеличить размер пакета. Такие пакеты получили название гига-кадры (Jumbo Frames), и их размер мог быть от 1518 до 9018 байт (в настоящее время оборудование от некоторых производителей поддерживает и большие размеры гига-кадров). Jumbo Frames позволили уменьшить нагрузку на центральный процессор до 6 раз (пропорционально своему размеру) и, таким образом, значительно повысить производительность. Например, максимальный пакет Jumbo Frame в 9018 байт, кроме 18-байтового заголовка, содержит 9000 байт под данные, что соответствует шести стандартным максимальным кадрам Ethernet. Выигрыш в производительности достигается не из-за избавления от нескольких служебных заголовков (трафик от их передачи не превышает нескольких процентов общей пропускной способности), а за счет уменьшения времени на обработку такого кадра. Точнее, время на обработку кадра осталось прежним, но вместо нескольких небольших кадров, каждый из которых потребовал бы для себя N тактов процессора и одно прерывание, мы обрабатываем только один, больший кадр.

Также многие современные сетевые адаптеры используют специальные аппаратные средства для снятия части нагрузки по обработке трафика с центрального процессора. Кроме того, при большом трафике используется буферизация — процессор прерывается для обработки нескольких кадров сразу. Конечно, подобные особенности сказываются и на увеличении цены этих адаптеров.

Список карт

В обзоре мы рассмотрим три карты стандарта gigabit Ethernet (все они являются «Desktop» (не серверными) версиями). Все были протестированы на шине PCI 33 Мгц.

Первая — LNIC-1000T от LG Electronics.



Двухчиповая карта использует микроконтроллеры от National Semiconductor Corporation. Карта имеет 6(!) светодиодных индикаторов, три из которых несут информацию о скоростях 10/100/1000 Мбит (3 индикатора), а остальные три показывают наличие коллизии, передачи данных и режима полного дуплекса. Один из контроллеров карты — DP83861VQM-3 — скрыт под радиатором. Он является трансивером физического уровня и может работать на скоростях 10/100/1000 Мбит/сек в режимах полу- и полного дуплекса. Поддерживает режим автосогласования скоростей и режимов из вышеназванного списка (IEEE 802.3u Auto-Negotiation).

             

Второй контроллер — DP83820 — является 10/100/1000 Мбит Ethernet контроллером, связывающим сетевую карту с шиной PCI. Его особенности:

  • MDI-X — автодетектирование прямого и кросс-кабеля;
  • встроенные очереди FIFO размерами 8 КБ на передачу и 32 КБ на прием;
  • поддержка Jumbo-фреймов;
  • поддержка VLAN (Virtual LAN) с автодетектированием и удалением VLAN-тэгов для принимаемых пакетов и автоматической установкой VLAN-тэгов на уходящие пакеты;
  • поддержка 802.1D и 802.1Q QoS, в том числе, несколько очередей в обоих направлениях (на прием и передачу);
  • ускорение обсчета контрольных сумм кадров протокола IPv.4 — поддерживается расчет и проверка заголовков протоколов IP, TCP, и UDP.

Для установки сетевого адаптера в ОС Windows 2000 использовались прилагаемые в поставке драйвера, так как на сайте компании новых версий обнаружено не было.

           

Версия драйвера — 5.0.1.24. Он обеспечивает доступ к довольно большому числу настроек карты. Во время тестирования все настройки оставлялись по умолчанию, менялся только размер Jumbo Frame (он мог задаваться дискретными величинами — 1514, 4088, 9014 и 10000 байт).

В ОС Linux прилагаемые драйвера не заработали. Точнее, исходники драйвера не собирались, поэтому использовался встроенный в ОС драйвер «National Semiconduct DP83820» версии 0.18. В этом драйвере размер Jumbo Frame лимитирован сверху числом 8192.

Следующая карта — Hardlink HA-32G от MAS Elektronik AG.


Сетевая карта собрана на тех же двух контроллерах, что и предыдущая. Но используется немного другая PCB и отсутствует радиатор на трансивере. В наличии три светодиодных индикатора, показывающих скорость работы 10/100/1000 Мбит и передачу данных мерцанием. Так как на сайте компании тоже отсутствовали новые версии драйверов, использовались те, что шли в комплекте.

           

Версия драйвера в Windows 2000 — тоже 5.0.1.24. Но его интерфейс предоставляет намного меньше настроек сетевого адаптера, чем у предыдущей карты. Настройки драйвера тоже были оставлены по умолчанию. Верхний предел размера Jumbo Frame неизвестен, но максимальный используемый при тестировании размер (16128 байт) устанавливался без проблем.

В ОС Linux поставляемые в комплекте драйвера тоже отказались собираться с установками по умолчанию, поэтому я попытался использовать встроенный в ОС драйвер (тот же, что и в предыдущем случае). Но возникла интересная проблема. В связке Linux-Linux карты не детектировали линк. То есть сетевые интерфейсы поднимаются, но линк отсутствует. При перезагрузке одного компьютера в Windows 2000 линк замечательно поднимался. Использовался как прямой, так и кросс-кабель — результат аналогичен. Ситуация повторилась с ядрами 2.4.17, .18 и .19. Поэтому тесты этого адаптера в ОС Linux отсутствуют.

Последняя рассматриваемая в этом обзоре плата — Intel PRO/1000 MT Desktop от Intel Corporation.


Это уже одночиповое решение (более новое поколение), собранное на микроконтроллере Intel 82540EPВ, который выполняет функции обоих чипов вышеописанных карт. Карта имеет два светодиодных индикатора, один из которых показывает наличие линка и передачи данных, а второй (двухцветный) — скорость работа 10/100/1000 Мбит. Некоторые параметры микроконтроллера:

  • поддержка скорости 10/100/1000 Мбит в режимах полу- и полного дуплекса;
  • MDI-X — автодетектирование прямого и кросс кабеля;
  • автодетектирование длины кабеля;
  • конфигурируемые очереди FIFO на прием и передачу, размером 64 КБ;
  • очереди приема/передачи с низким временем ожидания;
  • передача до 64 дескрипторов пакетов по шине за операцию;
  • программируемые буфера приема размером от 256 байт до 64 КБ;
  • ускорение обсчета контрольных сумм кадров протоколов IP, TCP, и UDP.
  • поддержка IEEE 802.1Q VLAN c установкой и удалением VLAN-тэгов, а также пакетная фильтрация до 4096 VLAN тагов;
  • средства контроля для уменьшения количества прерываний при работе;
  • поддержка Jumbo-фреймов размером до 16 КБ.

Драйверы для обоих ОС брались с сайта компании. Версия драйвера в Windows 2000 — 6.2.33.0, он предоставляет богатые возможности по конфигурированию адаптера. Тем не менее, настройки оставлялись по умолчанию. Как обычно, менялся только размер Jumbo Frame (он мог задаваться дискретными значениями: 4088, 9014, 16128 байт).

Linux-драйвер версии 4.3.15 собрался и заработал без проблем.

Методика тестирования

В качестве тестовых стендов использовались два компьютера со следующими параметрами:

  • Pentium 4  1,8 ГГц и 2,2 ГГц;
  • Память 512 MБ;
  • Жесткий диск Maxtor 20 ГБ;
  • ОС Windows 2000 с установленным сервис-паком версии 3 и Linux Red Hat 7.3 с ядром версии 2.4.19
Компьютеры напрямую (без использования коммутатора) соединялись пятиметровым кабелем категории 5е (практически идеальные условия).

В Windows 2000 для генерации трафика и снятия показаний использовались программы Iperf версии 1.2 и NTttcp из Windows 2000 DDK. Обе программы запускались для снятия показателей скорости передачи данных и загрузки процессора при размерах Jumbo Frame

  • 1514 байт (Jumbo-фреймы отсутствуют);
  • 9014 байт;
  • 16128 байт (драйвер адаптера Hardlink HA-32G этот размер не поддерживал)

Также осуществлялся небольшой тюнинг ОС. Параметры запуска программ и установки реестра следующие:

  • Максимальный размер пакета 1514 байт (Jumbo Frame отсутствуют)

    Hkey_Local_MachineSystemCurrentControlSetServicesTcpipParameters
    TcpWindowSize = ffff

    Параметры запуска Iperf:
    клиент: iperf -c 10.0.0.1 -M 100000 -w 64K -l 24K
    сервер: iperf -s -m -M 100000 -w 64K -l 24K

    Параметры запуска NTttcp:
    передатчик: ntttcps -m 1,0,10.0.0.2 -a 4 256K -n 10000
    приемник: ntttcpr -m 1,0,10.0.0.1 -a 4 -l 256K -n 10000

  • Максимальный размер пакета 9014 или 16128 байт (включены Jumbo Frame)

    Hkey_Local_MachineSystemCurrentControlSetServicesTcpipParameters
    TcpWindowSize = 20971520 (20 Мб)
    Tcp1323Opts = 3

    Параметры запуска Iperf:
    клиент: iperf -c 10.0.0.1 -M 100000 -w 1M -l 24K
    сервер: iperf -s -m -M 100000 -w 1M -l 24K

    Параметры запуска NTttcp:
    передатчик: ntttcps -m 1,0,10.0.0.2 -a 4 256K -n 10000
    приемник: ntttcpr -m 1,0,10.0.0.1 -a 4 -l 256K -rb 20000000 -n 10000

Каждый тест запускался 15 раз, после чего выбирался лучший (по скорости) результат. В случае NTttcp загрузка процессора измерялась встроенными средствами программы, а в Iperf — с помощью системного монитора Windows 2000.

В ОС Linux для генерации трафика и снятия показаний использовалась программа netPIPE версии 2.4. Программа осуществляет генерацию трафика с постепенно возрастающим размером пакета данных (пакет размера N передается несколько раз, количество передач обратно пропорционально его размеру, но не меньше семи). Эта схема позволяет наглядно увидеть процент использования канала в зависимости от размера передаваемых данных.

Изменение размера Jumbo Frame осуществлялось через изменение MTU в настройках сетевого интерфейса командой
ifconfig eth0 MTU _size_ up
При тестировании устанавливались следующие размеры MTU:

  • 1500 байт (Jumbo фреймы отсутствуют);
  • 6000 байт;
  • 9000 байт (драйверы адаптеров Hardlink HA-32G и LG LNIC-1000T этот размер не поддерживали);
  • 16128 байт (драйверы адаптеров Hardlink HA-32G и LG LNIC-1000T этот размер не поддерживали)
Параметры запуска netPIPE:
приемник: NTtcp -b 65535 -o logfile -P -r
передатчик: NTtcp -b 65535 -o logfile -P -t

Результаты тестирования

1. Windows 2000, скорость передачи данных.


2. Windows 2000, загрузка процессора.


Как ни странно, скорость работы не превышает 600 Мбит/сек даже с размером Jambo frame в 16128 байт. Непонятно, где узкое место, так как процессор в любом случае загружен не полностью. Также заметно, что от увеличения размера кадра менее всего в плане производительности (скорости передачи данных) выигрывает адаптер от Intel — скорость возрастает незначительно, хотя загрузка процессора и падает. Рекордсмен в плане наименьшей процессорной загрузки — адаптер Intel PRO/1000 MT, он минимум в два раза обгоняет своих конкурентов. Это неудивительно — базируется на более новом контроллере. А вот по скоростным характеристикам с отключенными Jumbo Frame вперед опять вырывается Intel, а если их включить, то в основном лидирует LG LNIC-1000T. Почему отстал адаптер от Intel, неясно, возможно проблема в драйвере.

3. Linux, изменяем размер MTU.


Как ни странно, при увеличении размера кадра скорость у адаптера PRO 1000/MT только падает. Наверное, виноват все-таки драйвер. Зато у LNIC-1000T тут все в порядке.

4. Linux, сравнение производительности на одинаковом размере MTU.


При отсутствии Jumbo Frame Intel PRO 1000/MT, как обычно, лидирует, а вот при их включении карты меняются местами, и их скорость сравнивается только на очень больших размерах передаваемых блоков данных.

В заключение приведу диаграмму сравнения пиковой производительности этих двух адаптеров при различных размерах MTU. Кстати, обращаю внимание, что результирующая скорость в Linux больше, чем в Windows.

Выводы

Тестирование показало значительные преимущества при использовании больших кадров (Jumbo Frame) в работе, поэтому их лучше включать. Конечно, их поддержка требуется не только от сетевого адаптера, но и от коммутатора, а не все из них эти кадры поддерживают.

Безусловно, после нормализации ситуации с производительностью адаптера Intel PRO 1000/MT при использовании Jumbo Frame, он будет безусловным лидером. Хотя он уже выигрывает по наименьшей загрузке процессора, что немаловажно. Повторюсь, что это заслуга в первую очередь более нового контроллера.

Вопрос же низкой (не более 600 Мбит) скорости работы всех объясняется достаточно просто. Максимальная теоретическая пропускная способность шины PCI 33 МГц равна 1066,(6) Мбит/сек (32 бит × 33,(3) МГц). Реальная же пропускная способность шины несколько (до 20-30 процентов) меньше из-за:

  • накладных расходов по обслуживанию самой шины;
  • потоков данных, создаваемых другими устройствами, подсоединенными к шине;
  • реализации PCI в конкретном чипсете и даже в модели материнской платы (включая такую вещь, как параметры BIOS).
Именно поэтому, даже при максимальных размерах Jumbo Frame, рубеж в 600 Мбит не был преодолен — узким местом стала шина. Естественно, для шины PCI с разрядностью 64 бит ситуация должна поменяться, что и будет проверено в следующем тестировании.

 

Адаптер Intel PRO/1000 MT Desktop предоставлен представительством компании Intel
Адаптеры LG LNIC-1000T предоставлены компанией ОЛДИ
Адаптеры Hardlink HA-32G предоставлены компанией MAS Elektronik AG

 




31 октября 2002 Г.

32-

32-

:
« 10

».


, — () , . . . , : .

Gigabit Ethernet . 10 , . -, . , , , , , 100- . . .

. IEEE 1998 , IEEE 802.3z. . , 802.3ab, .

Gigabit Ethernet Ethernet Fast Ethernet, . 100 — 10 , gigabit Ethernet 1000 /, 120 , 32- PCI 33 . 32- PCI (33 66 ), 64- . Ethernet (10 100 ), , , .

Ethernet, , CSMA/CD ( ), . , , . Gigabit Ethernet. , Ethernet ( ), . Gigabit Ethernet ATM Fibre Channel — . , Ethernet ( 80 ). , , — 10 Ethernet.


1. gigabit Ethernet.

gigabit Ethernet — 1000BASE-X. Fibre Channel ( , ). , gigabit Ethernet. 1000BASE-X :

  • 1000Base-SX 770-860 , -10 0 ON/OFF ( / ) 9 . -17 , 0 ;
  • 1000Base-LX 1270-1355 , -13,5 -3 , ON/OFF ( / ) 9 . -19 , -3 ;
  • 1000Base-CX — (STP «twinax») .

( ), * . , *
1000BASE-LX ( 1300 ) (9 ) - 5000 **

(50 )
500 550

(62,5 )
320 400
1000BASE-SX ( 850 )
(50 )
400 500

(62,5 )
200 275

(62,5 )
160 220
1000BASE-X STP
(150 )
- 25

* 1000BASE-SX 1000BASE-LX
** , / 100 .

1. 1000Base-X

1000BASE-T, 5 . .

1000BASE-T Fast Ethernet 100BASE-TX , ( 100BASE-TX ). 250 /. , . , , , 100BASE-TX. , , . 1000BASE-T 5- - PAM-5.

( , , ). 5e . gigabit Ethernet , . , , 5 .

1000BASE-T :


(straight-through) .


(crossover) .

2. 1000BASE-T

MAC- 1000BASE-T.

Ethernet- ( ) ( Ethernet IEEE 802.3 64 ). , ( ). , , , . Fast Ethernet .

gigabit Ethernet . , Fast Ethernet, , CSMA/CD (time slot), 20 . . , , Ethernet, — 64 , carrier extension ( ), 512 . , , 512 . , 512 , , 200 ( 1000BASE-T). carrier extension , . MAC, 64 .

. , . 448 (512–64) . 1000BASE-T — Packet Bursting ( ). . : , , , 512 . ( ), 96 . , , . , 1518 . , , , ( 512 ). , , .

. gigabit Ethernet Ethernet — 64 ( 512) 1518 . 18 , 46 1500 . 1500 . , . . 1 Fast Ethernet , 8200 / 11 . 200 MIPS 10 . ( , ) .

10 / 100 / 1000 /
64 1518 64 1518 64 1518
/ 14.8K 812 148K 8,1K 1,48M 81K
, / 5,5 9,8 55 98 550 980
, 67 1200 6,7 120 0,7 12

2. Ethernet.

— - . 1 , ( ), , 12 . . , , . gigabit Ethernet — .

:

  • ;
  • .
. 1999 . - (Jumbo Frames), 1518 9018 ( -). Jumbo Frames 6 ( ) , , . , Jumbo Frame 9018 , 18- , 9000 , Ethernet. - ( ), . , , , N , , .

. , — . , .

gigabit Ethernet ( «Desktop» ( ) ). PCI 33 .

— LNIC-1000T LG Electronics.



National Semiconductor Corporation. 6(!) , 10/100/1000 (3 ), , . — DP83861VQM-3 — . 10/100/1000 / - . (IEEE 802.3u Auto-Negotiation).

             

— DP83820 — 10/100/1000 Ethernet , PCI. :

  • MDI-X — -;
  • FIFO 8 32 ;
  • Jumbo-;
  • VLAN (Virtual LAN) VLAN- VLAN- ;
  • 802.1D 802.1Q QoS, , ( );
  • IPv.4 — IP, TCP, UDP.

Windows 2000 , .

           

— 5.0.1.24. . , Jumbo Frame ( — 1514, 4088, 9014 10000 ).

Linux . , , «National Semiconduct DP83820» 0.18. Jumbo Frame 8192.

— Hardlink HA-32G MAS Elektronik AG.


, . PCB . , 10/100/1000 . , , .

           

Windows 2000 — 5.0.1.24. , . . Jumbo Frame , (16128 ) .

Linux , ( , ). . Linux-Linux . , . Windows 2000 . , - — . 2.4.17, .18 .19. Linux .

— Intel PRO/1000 MT Desktop Intel Corporation.


( ), Intel 82540EP, . , , () — 10/100/1000 . :

  • 10/100/1000 - ;
  • MDI-X — ;
  • ;
  • FIFO , 64 ;
  • / ;
  • 64 ;
  • 256 64 ;
  • IP, TCP, UDP.
  • IEEE 802.1Q VLAN c VLAN-, 4096 VLAN ;
  • ;
  • Jumbo- 16 .

. Windows 2000 — 6.2.33.0, . , . , Jumbo Frame ( : 4088, 9014, 16128 ).

Linux- 4.3.15 .

:

  • Pentium 4  1,8 2,2 ;
  • 512 M;
  • Maxtor 20 ;
  • Windows 2000 - 3 Linux Red Hat 7.3 2.4.19
( ) 5 ( ).

Windows 2000 Iperf 1.2 NTttcp Windows 2000 DDK. Jumbo Frame

  • 1514 (Jumbo- );
  • 9014 ;
  • 16128 ( Hardlink HA-32G )

. :

  • 1514 (Jumbo Frame )

    Hkey_Local_Machine\System\CurrentControlSet\Services\Tcpip\Parameters
    TcpWindowSize = ffff

    Iperf:
    : iperf -c 10.0.0.1 -M 100000 -w 64K -l 24K
    : iperf -s -m -M 100000 -w 64K -l 24K

    NTttcp:
    : ntttcps -m 1,0,10.0.0.2 -a 4 256K -n 10000
    : ntttcpr -m 1,0,10.0.0.1 -a 4 -l 256K -n 10000

  • 9014 16128 ( Jumbo Frame)

    Hkey_Local_Machine\System\CurrentControlSet\Services\Tcpip\Parameters
    TcpWindowSize = 20971520 (20 )
    Tcp1323Opts = 3

    Iperf:
    : iperf -c 10.0.0.1 -M 100000 -w 1M -l 24K
    : iperf -s -m -M 100000 -w 1M -l 24K

    NTttcp:
    : ntttcps -m 1,0,10.0.0.2 -a 4 256K -n 10000
    : ntttcpr -m 1,0,10.0.0.1 -a 4 -l 256K -rb 20000000 -n 10000

15 , ( ) . NTttcp , Iperf — Windows 2000.

Linux netPIPE 2.4. ( N , , ). .

Jumbo Frame MTU
ifconfig eth0 MTU _size_ up
MTU:

  • 1500 (Jumbo );
  • 6000 ;
  • 9000 ( Hardlink HA-32G LG LNIC-1000T );
  • 16128 ( Hardlink HA-32G LG LNIC-1000T )
netPIPE:
: NTtcp -b 65535 -o logfile -P -r
: NTtcp -b 65535 -o logfile -P -t

1. Windows 2000, .


2. Windows 2000, .


, 600 / Jambo frame 16128 . , , . , ( ) Intel — , . — Intel PRO/1000 MT, . — . Jumbo Frame Intel, , LG LNIC-1000T. Intel, , .

3. Linux, MTU.


, PRO 1000/MT . , - . LNIC-1000T .

4. Linux, MTU.


Jumbo Frame Intel PRO 1000/MT, , , , .

MTU. , , Linux , Windows.

(Jumbo Frame) , . , , , .

, Intel PRO 1000/MT Jumbo Frame, . , . , .

( 600 ) . PCI 33 1066,(6) / (32 × 33,(3) ). ( 20-30 ) -:

  • ;
  • , , ;
  • PCI ( , BIOS).
, Jumbo Frame, 600 — . , PCI 64 , .

 

Intel PRO/1000 MT Desktop Intel
LG LNIC-1000T
Hardlink HA-32G MAS Elektronik AG