Контроллер сетевого интерфейса
Подключается к | Материнская плата через один из:
Сеть через один из: |
---|---|
Скорости | Полнодуплексный или полудуплексный режим :
Полнодуплексный режим : [1] [2]
|
Общие производители | Интел Реалтек Broadcom (включает бывшие Avago , Emulex ) Технологическая группа Марвелл Cavium (ранее QLogic ) Мелланокс Челсио |
Контроллер сетевого интерфейса ( NIC , также известный как сетевая карта , [3] сетевой адаптер , адаптер локальной сети и физический сетевой интерфейс [4] ) — аппаратный компонент компьютера , который подключает компьютер к компьютерной сети . [5]
Ранние контроллеры сетевого интерфейса обычно реализовывались на картах расширения , которые подключались к компьютерной шине . Низкая стоимость и повсеместное распространение стандарта Ethernet означает, что большинство новых компьютеров имеют сетевой интерфейс, встроенный в материнскую плату или содержащийся в USB - ключе .
Современные контроллеры сетевых интерфейсов предлагают расширенные функции, такие как интерфейсы прерываний и DMA для хост-процессоров, поддержку нескольких очередей приема и передачи, разделение на несколько логических интерфейсов и обработку сетевого трафика на контроллере, например механизм разгрузки TCP .
Цель
[ редактировать ]Сетевой контроллер реализует электронную схему, необходимую для связи, используя определенный стандарт физического уровня и уровня канала передачи данных, такой как Ethernet или Wi-Fi . [а] Это обеспечивает основу для полного стека сетевых протоколов , обеспечивающего связь между компьютерами в одной локальной сети (LAN) и крупномасштабную сетевую связь через маршрутизируемые протоколы, такие как Интернет-протокол (IP).
Сетевая карта позволяет компьютерам обмениваться данными через компьютерную сеть с помощью кабелей или по беспроводной сети. NIC является устройством как физического уровня, так и уровня канала передачи данных, поскольку он обеспечивает физический доступ к сетевой среде, а для IEEE 802 и аналогичных сетей обеспечивает систему адресации низкого уровня за счет использования MAC-адресов , которые однозначно назначаются сети. интерфейсы.
Выполнение
[ редактировать ]Сетевые контроллеры изначально были реализованы как карты расширения, подключаемые к компьютерной шине. Низкая стоимость и повсеместное распространение стандарта Ethernet означает, что большинство новых компьютеров имеют контроллер сетевого интерфейса, встроенный в материнскую плату. Более новые материнские платы для серверов могут иметь несколько встроенных сетевых интерфейсов. Возможности Ethernet либо интегрированы в набор микросхем материнской платы , либо реализованы с помощью недорогого специализированного чипа Ethernet. Отдельная сетевая карта обычно больше не требуется, если не требуются дополнительные независимые сетевые подключения или не используется какой-либо тип сети, отличный от Ethernet. Общая тенденция в компьютерном оборудовании направлена на интеграцию различных компонентов систем на кристалле , и это также относится к сетевым картам.
Сетевой контроллер Ethernet обычно имеет разъем 8P8C , к которому подключается сетевой кабель. Более старые сетевые карты также обеспечивали соединения BNC или AUI . Сетевые контроллеры Ethernet обычно поддерживают Ethernet 10 Мбит/с , Ethernet 100 Мбит/с и Ethernet 1000 Мбит/с варианты . Такие контроллеры обозначаются как 10/100/1000 , что означает, что они могут поддерживать скорость передачи данных 10, 100 или 1000 Мбит/с. 10 сетевых карт Gigabit Ethernet , и по состоянию на ноябрь 2014 г. Также доступны [update], начинают появляться на материнских платах компьютеров . [6] [7]
Модульные конструкции, такие как SFP и SFP+, очень популярны, особенно для оптоволоконной связи . Они определяют стандартный разъем для приемопередатчиков, зависящих от среды передачи, поэтому пользователи могут легко адаптировать сетевой интерфейс к своим потребностям.
Светодиоды , расположенные рядом с сетевым разъемом или встроенные в него, информируют пользователя о том, подключена ли сеть и когда происходит активность передачи данных.
Сетевая плата может включать в себя ПЗУ для хранения назначенного на заводе MAC-адреса . [8]
NIC может использовать один или несколько из следующих методов для указания доступности пакетов для передачи:
- Опрос — это процесс, при котором ЦП проверяет состояние периферийного устройства, находящегося под управлением программы.
- Ввод-вывод, управляемый прерываниями , — это когда периферийное устройство предупреждает ЦП о том, что оно готово к передаче данных.
Сетевые адаптеры могут использовать один или несколько из следующих методов для передачи пакетных данных:
- Программируемый ввод/вывод , при котором ЦП перемещает данные в сетевую карту или из нее в память.
- Прямой доступ к памяти (DMA), когда устройство, отличное от ЦП, берет на себя управление системной шиной для перемещения данных в сетевую карту или из нее в память. Это снимает нагрузку с ЦП, но требует больше логики на карте. Кроме того, буфер пакетов на сетевой карте может не потребоваться, и задержка может быть уменьшена.
Производительность и расширенная функциональность
[ редактировать ]Сетевые адаптеры с несколькими очередями предоставляют несколько очередей передачи и приема , что позволяет назначать пакеты, полученные сетевым адаптером, в одну из его очередей приема. Сетевая карта может распределять входящий трафик между очередями приема с помощью хэш-функции . Каждая очередь приема назначается отдельному прерыванию ; маршрутизируя каждое из этих прерываний на разные ЦП или ядра ЦП , можно распределить обработку запросов на прерывания, вызванных сетевым трафиком, полученным одним сетевым адаптером, что повышает производительность. [10] [11]
Аппаратное распределение прерываний, описанное выше, называется масштабированием на стороне приема (RSS). [12] : 82 Существуют также чисто программные реализации, такие как управление приемом пакетов (RPS), управление потоком приема (RFS), [10] и Intel Flow Director . [12] : 98, 99 [13] [14] [15] Дальнейшее повышение производительности может быть достигнуто за счет маршрутизации запросов на прерывания к процессорам или ядрам, выполняющим приложения, которые являются конечными пунктами назначения сетевых пакетов , генерирующих прерывания. Этот метод улучшает локальность ссылок и приводит к повышению общей производительности, уменьшению задержек и лучшему использованию оборудования благодаря более высокому использованию кэшей ЦП и меньшему количеству необходимых переключений контекста .
При использовании сетевых адаптеров с несколькими очередями можно добиться дополнительного повышения производительности за счет распределения исходящего трафика между различными очередями передачи. Назначая разные очереди передачи разным ЦП или ядрам ЦП, можно избежать внутренних конфликтов операционной системы. Этот подход обычно называют управлением пакетами передачи (XPS). [10]
Некоторые продукты поддерживают разделение сетевых карт ( NPAR , также известное как разделение портов ), которое использует виртуализацию SR-IOV для разделения одной сетевой карты 10 Gigabit Ethernet на несколько дискретных виртуальных сетевых карт с выделенной полосой пропускания, которые представляются встроенному ПО и операционной системе как отдельное устройство PCI. функции . [3] [16]
Некоторые сетевые адаптеры предоставляют механизм разгрузки TCP для разгрузки обработки всего стека TCP/IP на сетевой контроллер. В основном он используется с высокоскоростными сетевыми интерфейсами, такими как Gigabit Ethernet и 10 Gigabit Ethernet, для которых затраты на обработку сетевого стека становятся значительными. [17]
Некоторые сетевые адаптеры предлагают интегрированные программируемые пользователем вентильные матрицы (FPGA) для программируемой пользователем обработки сетевого трафика до того, как он достигнет главного компьютера, что позволяет значительно сократить задержки в чувствительных ко времени рабочих нагрузках. [18] с малой задержкой Более того, некоторые сетевые карты предлагают полные стеки TCP/IP , работающие на интегрированных FPGA, в сочетании с библиотеками пользовательского пространства , которые перехватывают сетевые операции, обычно выполняемые ядром операционной системы ; компании Solarflare с открытым исходным кодом сетевой стек OpenOnload , работающий на Linux Примером может служить . Этот вид функциональности обычно называется сетью на уровне пользователя . [19] [20] [21]
См. также
[ редактировать ]- Адаптер конвергентной сети (CNA)
- Хост-адаптер
- Intel Data Direct I/O (DDIO)
- Шлейфовый интерфейс
- Интерфейсная плата сетевого мониторинга (NMIC)
- Виртуальный сетевой интерфейс (VIF)
- Контроллер беспроводного сетевого интерфейса (WNIC)
Примечания
[ редактировать ]- ^ Хотя существуют и другие сетевые технологии, Ethernet ( IEEE 802.3 ) и Wi-Fi ( IEEE 802.11 ) с середины 1990-х годов достигли почти повсеместного распространения как технологии локальных сетей.
Ссылки
[ редактировать ]- ^ «Настройка скорости порта и дуплексного режима» . docs.ruckuswireless.com . Проверено 25 сентября 2020 г.
- ^ Админ, Ариста (23 апреля 2020 г.). «Раздел 11.2: Стандарты Ethernet — Ариста» . Ариста Нетворкс . Проверено 28 сентября 2020 г.
- ^ Jump up to: а б «Повышение масштабируемости за счет разделения сетевых карт» (PDF) . Делл . Апрель 2011 года . Проверено 12 мая 2014 г.
- ^ «Физический сетевой интерфейс» . Майкрософт . 7 января 2009 г.
- ^ Поузи, Брайен М. (2006). «Основы работы в сети: Часть 1 — Сетевое оборудование» . Windowsnetworking.com . ООО "ТехДженикс" . Проверено 9 июня 2012 г.
- ^ Джим О'Рейли (22 января 2014 г.). «Будет ли 2014 год годом 10-гигабитного Ethernet?» . Сетевые вычисления . Проверено 29 апреля 2015 г.
- ^ «Преодоление ограничений скорости с помощью локальных сетей ASRock X99 WS-E/10G и Intel 10G BASE-T» . asrock.com . 24 ноября 2014 года . Проверено 19 мая 2015 г.
- ^ Джон Сэвилл (12 ноября 2000 г.). «Как изменить MAC-адрес сетевой карты?» . Проверено 6 ноября 2023 г.
- ^ «Техническое описание семейства контроллеров Gigabit Ethernet Intel 82574» (PDF) . Интел . Июнь 2014. с. 1 . Проверено 16 ноября 2014 г.
- ^ Jump up to: а б с Том Герберт; Виллем де Брейн (9 мая 2014 г.). «Документация по ядру Linux: Documentation/networking/scaling.txt» . ядро.орг . Проверено 16 ноября 2014 г.
- ^ «Краткое описание семейства Ethernet-контроллеров Intel i210» (PDF) . Интел . 2012 . Проверено 16 ноября 2014 г.
- ^ Jump up to: а б «Взгляд изнутри: Intel Ethernet» (PDF) . Запуск Xeon E5 v3 (Grantley) . Интел . 27 ноября 2014 г. Архивировано из оригинала (PDF) 26 марта 2015 г. . Проверено 26 марта 2015 г.
- ^ «Документация по ядру Linux: Documentation/networking/ixgbe.txt» . ядро.орг . 15 декабря 2014 года . Проверено 26 марта 2015 г.
- ^ «Директор потока Intel Ethernet» . Интел . 16 февраля 2015 года . Проверено 26 марта 2015 г.
- ^ «Введение в Intel Ethernet Flow Director и производительность Memcached» (PDF) . Интел . 14 октября 2014 года . Проверено 11 октября 2015 г.
- ^ Патрик Кач; Брайан Джонсон; Грег Роуз (сентябрь 2011 г.). «Введение в гибкое разделение портов Intel с использованием технологии SR-IOV» (PDF) . Интел . Проверено 24 сентября 2015 г.
- ^ Джонатан Корбет (1 августа 2007 г.). «Большая разгрузка приема» . LWN.net . Проверено 2 мая 2015 г.
- ^ «Высокопроизводительные решения для кибербезопасности» . Проектирование и проверка новой волны . Новая волна ДВ.
- ^ Тимоти Прикетт Морган (8 февраля 2012 г.). «Solarflare превращает сетевые адаптеры в серверы: когда процессор недостаточно быстр» . Регистр . Проверено 8 мая 2014 г.
- ^ «ОпенОнлоад» . openonload.org . 03.12.2013 . Проверено 8 мая 2014 г.
- ^ Стив Поуп; Дэвид Риддок (21 марта 2008 г.). «OpenOnload: сетевой стек пользовательского уровня» (PDF) . openonload.org . Проверено 8 мая 2014 г.