Как подключить Сетевую карту

Контроллер сетевого интерфейса ( сетевой адаптер , также известный как плата сетевого интерфейса , сетевой адаптер , сетевой адаптер или физический сетевой интерфейс , и аналогичные термины) представляет собой компонент компьютерного оборудования, который соединяет компьютер с компьютерной сетью.

Ранние контроллеры сетевого интерфейса обычно выполнялись на картах расширения , подключенных к компьютерной шине. Низкая стоимость и повсеместность стандарта Ethernet означает, что большинство новых компьютеров имеют сетевой интерфейс, встроенный в материнскую плату.

Современные контроллеры сетевого интерфейса предлагают расширенные функции, такие как интерфейсы прерывания и DMA для хост-процессоров, поддержку нескольких очередей приема и передачи, разбиение на несколько логических интерфейсов и обработку сетевого трафика на контроллере, такие как механизм разгрузки TCP.

Назначение

Сетевой контроллер реализует электронную схему, необходимую для связи с использованием определенного уровня физического уровня и уровня канала передачи данных, такого как Ethernet или Wi-Fi. Это обеспечивает основу для полного стека сетевых протоколов , позволяя общаться между компьютерами в одной локальной сети (LAN) и крупномасштабной сетевой связью через маршрутизируемые протоколы, такие как Internet Protocol (IP).

Сетевой адаптер позволяет компьютерам обмениваться данными через компьютерную сеть, используя кабели или беспроводную связь. NIC является устройством уровня физического уровня и уровня канала передачи данных, поскольку он обеспечивает физический доступ к сетевому средству, а для IEEE 802 и аналогичных сетей обеспечивает низкоуровневую систему адресации с использованием MAC-адресов , которые уникально назначены для сети интерфейсы.

Сетевые контроллеры первоначально были реализованы как карты расширения, подключенные к компьютерной шине. Низкая стоимость и повсеместность стандарта Ethernet означает, что большинство новых компьютеров имеют контроллер сетевого интерфейса, встроенный в материнскую плату. Более новые серверные материнские платы могут иметь несколько сетевых интерфейсов. Возможности Ethernet интегрированы в чипсет материнской платы или реализованы через недорогой выделенный Ethernet-чип. Отдельная сетевая карта обычно больше не требуется, если не требуются дополнительные независимые сетевые подключения или используется некая сеть Ethernet.

Сетевой адаптер может использовать один или несколько из следующих способов для указания доступности пакетов для передачи:

— Опрос — это то место, где CPU проверяет состояние периферийного устройства под программным управлением.

— Прерывание ввода-вывода — это то, где периферийное устройство предупреждает CPU о готовности передачи данных.

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

— Запрограммированный вход / выход — это то место, где CPU перемещает данные в или из NIC в память.

— Прямой доступ к памяти (DMA) — это то, где какое-либо другое устройство, отличное от ЦП, предполагает управление системной шиной для перемещения данных в или из NIC в память. Это снимает нагрузку с CPU, но требует больше логики на карте. Кроме того, пакетный буфер на NIC может не потребоваться, а латентность может быть уменьшена.

Сетевой контроллер Ethernet обычно имеет разъем 8P8C, в котором подключен сетевой кабель. Старшие сетевые карты также поставляли BNC или AUI- соединения. Светодиоды информируют пользователя о том, подключена ли сеть и когда происходит активность данных. Сетевые контроллеры Ethernet обычно поддерживают Ethernet 10 Мбит / с, Ethernet 100 Мбит / с и 1000 Мбит / с . Такие контроллеры обозначаются как 10/100/1000 , что означает, что они могут поддерживать скорость передачи данных 10, 100 или 1000 Мбит / с. 10 сетевых адаптеров Gigabit Ethernet также доступны, а с ноября 2014 года начинают появляться на компьютерных материнских платах .

Производительность и расширенная функциональность

Многоэлементные сетевые адаптеры обеспечивают несколько очередей передачи и приема, позволяя пакетам, принятым NIC, назначаться одной из его очередей приема. Каждой очереди приема присваивается отдельное прерывание. путем маршрутизации каждого из этих прерываний на разные процессоры / ядра , обработка запросов прерываний, инициируемых сетевым трафиком, полученным одним сетевым адаптером, может быть распределена между несколькими ядрами, что приводит к дополнительным улучшениям производительности при обработке прерываний. Обычно сетевой адаптер распределяет входящий трафик между очередями приема с использованием хеш-функции , в то время как отдельные прерывания могут быть перенаправлены на различные CPU / ядра автоматически либо операционной системой , либо вручную, путем настройки IRQ-близости.

Аппаратное распределение прерываний, описанное выше, называется масштабированием на стороне приема (RSS). Существуют также программные реализации, такие как управление приемным пакетом (RPS) и управление потоком трафика (RFS). Дальнейшие улучшения производительности могут быть достигнуты путем маршрутизации запросов прерывания на процессоры / ядра, выполняющие приложения, которые на самом деле являются конечными точками для сетевых пакетов, которые генерировали прерывания. Таким образом, учет локальности приложения приводит к более высокой общей производительности, уменьшенной задержке и лучшему использованию аппаратного обеспечения, что связано с более высоким использованием кэшей процессоров и меньшим количеством необходимых переключателей контекста.

При использовании многоэлементных сетевых адаптеров дополнительные улучшения производительности могут быть достигнуты путем распределения исходящего трафика между различными очередями передачи. Назначая разные очереди передачи для разных процессоров / ядер, можно избежать внутренних утверждений различных операционных систем. этот подход обычно упоминается как управление передачей пакетов (XPS).

Некоторые сетевые адаптеры [12] поддерживают очереди передачи и приема без поддержки ядра, что позволяет выполнять NIC, даже если функциональность операционной системы критически важной системы сильно нарушена. Эти сетевые адаптеры поддерживают:

— Доступ к локальной и удаленной памяти без привлечения удаленного процессора.

— Доступ к локальным и удаленным устройствам ввода-вывода без привлечения локального / удаленного процессора. Эта возможность поддерживается связью «устройство-устройство» по шине ввода-вывода, присутствующей в коммутируемых межсетевых соединениях на основе коммутации.

— Управление доступом к локальным ресурсам, таким как регистры управления и память.

В некоторых продуктах имеется разделение NIC (NPAR, также известное как разделение портов ), которое использует SR-IOV для разделения одного сетевого адаптера 10 Gigabit Ethernet на несколько дискретных виртуальных сетевых адаптеров с выделенной полосой пропускания, которые представляются прошивке и операционной системе в виде отдельных функций устройства PCI , Механизм разгрузки TCP — это технология, используемая в некоторых сетевых адаптерах для разгрузки обработки всего стека TCP / IP на сетевой контроллер. Он в основном используется с высокоскоростными сетевыми интерфейсами, такими как Gigabit Ethernet и 10 Gigabit Ethernet , для которых значительная часть затрат на обработку сетевого стека становится значительным.

Некоторые сетевые адаптеры предлагают интегрированные программируемые пользователем вентильные матрицы (FPGA) для пользовательской программируемой обработки сетевого трафика до того, как он достигнет главного компьютера, что позволяет значительно сократить задержки в зависящих от времени рабочих нагрузках. Кроме того, некоторые сетевые адаптеры предлагают полные стеки TCP / IP с низкой задержкой, работающие на интегрированных FPGA, в сочетании с библиотеками пользовательского пространства, которые перехватывают сетевые операции, обычно выполняемые ядром операционной системы. Например, сетевой стек SolarFare с открытым исходным кодом OpenOnload , работающий на Linux. Такая функциональность обычно называется сетевым интерфейсом пользователя.