Сетевой адаптер, или сетевая интерфейсная карта (Network Interface Card, NIC), вместе со своим драйвером реализует канальный уровень модели OSI в конечном узле сети — компьютере. Точнее, в сетевой операционной системе пара адаптер-драйвер выполняет только функции физического уровня и уровня MAC, в то время как уровень LLC обычно реализуется модулем операционной системы, единым для всех драйверов и сетевых адаптеров. Например, в ОС Windows ХР уровень LLC реализуется в модуле NDIS, общем для всех драйверов сетевых адаптеров независимо от того, какую технологию поддерживает драйвер.
Сетевой адаптер совместно с драйвером выполняют две операции: передачу и прием кадра.
Передача кадра из компьютера в кабель требует выполнения перечисленных ниже этапов.
1. Прием кадра данных уровня LLC через межуровневый интерфейс вместе с адресной информацией уровня MAC. Обычно взаимодействие между протоколами внутри компьютера происходит через буферы, расположенные в оперативной памяти. Данные для передачи в сеть помещаются в эти буферы протоколами верхних уровней, которые извлекают их из дисковой памяти либо из файлового кэша с помощью подсистемы ввода-вывода операционной системы.
2. Оформление кадра данных уровня MAC, в который инкапсулируется кадр уровня LLC. Заполнение адресов приемника и источника, вычисление контрольной суммы.
3. Формирование символов кодов при использовании избыточных кодов типа 4В/5В. Скремблирование кодов для получения более равномерного спектра сигналов. Этот этап выполняется не во всех протоколах, например, технология Ethernet 10 Мбит/с обходится без него.
4. Выдача сигналов в кабель в соответствии с принятым линейным кодом — манчестерским, NRZI, MLT-3 и т. п.
Прием кадра из кабеля в компьютер включает следующие действия.
1. Прием из кабеля сигналов, кодирующих битовый поток.
2. Выделение сигналов на фоне шума. Эту операцию могут выполнять различные специализированные микросхемы или процессоры DSP. В результате в приемнике адаптера образуется некоторая битовая последовательность, с большой степенью вероятности совпадающая с той, которая была послана передатчиком.
3. Если данные перед отправкой в кабель подвергались скремблированию, то они пропускаются через дескремблер, после чего в адаптере восстанавливаются символы кода, посланные передатчиком.
4. Проверка контрольной суммы кадра. Если контрольная сумма неверна, то кадр отбрасывается, а через межуровневый интерфейс наверх, протоколу LLC передается соответствующий код ошибки. Если контрольная сумма верна, то из МАС-кадра извлекается LLC-кадр и передается через межуровневый интерфейс наверх, протоколу LLC.
Распределение обязанностей между сетевым адаптером и его драйвером стандартами не определяется, поэтому каждый производитель решает этот вопрос самостоятельно. Обычно сетевые адаптеры делятся на адаптеры для клиентских компьютеров и адаптеры для серверов.
В адаптерах для клиентских компьютеров значительная часть работы перекладывается на драйвер, тем самым адаптер оказывается проще и дешевле. Однако при этом увеличивается степень загрузки центрального процессора компьютера рутинными работами по передаче кадров из оперативной памяти компьютера в сеть.
Адаптеры, предназначенные для серверов, обычно снабжаются собственными процессорами, которые самостоятельно выполняют большую часть работы по передаче кадров из оперативной памяти в сеть и обратно.
В зависимости от того, какой протокол реализует адаптер, они делятся на адаптеры Ethernet, Token Ring, FDDI и т. д. Так как протокол Fast Ethernet позволяет за счет процедуры автопереговоров автоматически выбрать скорость работы сетевого адаптера, то многие адаптеры Ethernet сегодня поддерживают две скорости работы и имеют в своем названии приставку 10/100.
В сетевых адаптерах реализована конвейерная схема обработки кадров, то есть процессы приема кадра из оперативной памяти компьютера и передачи его в сеть совмещаются во времени. Таким образом, после приема нескольких первых байтов кадра начинается их передача. Это существенно (на 25-55 %) повышает производительность цепочки оперативная память — адаптер — физический канал — адаптер — оперативная память. Такая схема очень чувствительна к порогу начала передачи, то есть к количеству байтов кадра, которое загружается в буфер адаптера перед началом передачи в сеть. Сетевой адаптер осуществляет самонастройку этого параметра путем анализа рабочей среды и расчета, без участия администратора сети. Самонастройка обеспечивает максимально возможную производительность для конкретного сочетания внутренней шины компьютера, его системы прерываний и системы прямого доступа к памяти.
Адаптеры базируются на специализированных интегральных схемах, что повышает производительность и надежность адаптера при одновременном снижении его стоимости.
ВНИМАНИЕ --------------------------------------------------------------------------------------------------------
Повышение производительности канала «память-адаптер» очень важно для повышения производительности сети в целом, так как скорость продвижения кадра по любому мар шруту обработки, включающему, к примеру, концентраторы, коммутаторы, маршрутиза торы, глобальные каналы связи и т. п., всегда определяется производительностью самого медленного элемента этого маршрута. Следовательно, если сетевой адаптер сервера или клиентского компьютера работает медленно, никакие другие коммуникационные устройства не смогут повысить скорость работы сети.
Выпускаемые сегодня сетевые адаптеры можно отнести к четвертому поколению. В эти адаптеры обязательно входит интегральная схема ASIC (Application-Spe- cific Integrated Circuit), выполняющая функции уровня MAC, а также большое количество высокоуровневых функций. В набор таких функций может входить поддержка агента удаленного мониторинга, схема приоритезации кадров, функции дистанционного управления компьютером и т. п. В серверных вариантах адаптеров почти обязательно наличие мощного процессора, разгружающего центральный процессор.