«Каждые 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.
Изначально 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 фактические скорости передачи были далеки от теоретического максимума — процессоры просто не справлялись с нагрузкой.
Очевидными выходами из сложившейся ситуации являлись:
- увеличение временного интервала между кадрами;
- перекладывание части нагрузки обработки кадров с центрального процессора на сам сетевой адаптер.
Также многие современные сетевые адаптеры используют специальные аппаратные средства для снятия части нагрузки по обработке трафика с центрального процессора. Кроме того, при большом трафике используется буферизация — процессор прерывается для обработки нескольких кадров сразу. Конечно, подобные особенности сказываются и на увеличении цены этих адаптеров.
Список карт
В обзоре мы рассмотрим три карты стандарта 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
В 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 этот размер не поддерживали)
приемник: 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).
Адаптеры LG LNIC-1000T предоставлены компанией ОЛДИ
Адаптеры Hardlink HA-32G предоставлены компанией MAS Elektronik AG