Сетевая карта (NIC, Network Interface Controller или Network Interface Card) — аппаратный компонент, соединяющий сервер с сетевой инфраструктурой. Реализует уровни OSI Physical (L1) и Data Link (L2): кодирует/декодирует сигнал, управляет MAC-адресами, формирует Ethernet-кадры. Без NIC сервер не может общаться с сетью.
Типы и скорости NIC
1GbE — гигабитный Ethernet, стандарт для базовых серверов с 2000-х. RJ-45 разъём, витая пара Cat5e/Cat6. Пропускная способность 125 МБ/с. Встроена в большинство материнских плат серверов начального уровня.
10GbE — 10-гигабитный Ethernet, стандарт для серверов с 2010-х. SFP+ разъём (оптика) или RJ-45 (медь, ограниченная дальность). 1 250 МБ/с. Позволяет «не упираться» в сеть при работе с SSD.
25GbE — актуальный стандарт для современных серверов. SFP28. 3 125 МБ/с. Оптимальный вариант для серверов с NVMe SSD.
100GbE — для магистральных серверов, spine-leaf архитектур, систем хранения. QSFP28. 12 500 МБ/с.
Аппаратное ускорение в NIC
Современные серверные NIC содержат специализированный процессор (ASIC или FPGA) и выполняют задачи, разгружающие основной CPU: TCP/IP checksum offload — вычисление контрольных сумм аппаратно, TSO (TCP Segmentation Offload) — разбивка больших TCP-сегментов, LRO (Large Receive Offload) — сборка входящих сегментов, RSS (Receive Side Scaling) — распределение входящих пакетов по очередям процессора.
Smart NIC (DPU — Data Processing Unit) — следующий уровень: NIC с ARM-процессором, который может выполнять шифрование (TLS), файрвол, виртуальный коммутатор (OVS) без нагрузки на основной CPU. NVIDIA BlueField, Intel IPU — примеры DPU.
SR-IOV и виртуализация
SR-IOV NIC позволяет передавать виртуальные функции (VF) напрямую в виртуальные машины. Это устраняет программный стек виртуализации на пути сетевого трафика: задержка снижается до 1–5 мкс против 30–100 мкс при virtio.
Bonding и LACP
Серверы часто имеют 2–4 NIC. Linux bonding (802.3ad LACP) объединяет их в один логический интерфейс: отказоустойчивость (при отказе одной карты трафик переходит на другую) и балансировка нагрузки (active-active). Типичная конфигурация хостинг-сервера: 2× 10GbE в bond, 2× 1GbE для управления.
История
Ethernet изобретён Меткалфом и Боггсом в Xerox PARC в 1973 году (10 Мбит/с). NIC стал отдельной картой расширения в 1980-х (ISA-шина). Fast Ethernet (100 Мбит/с) — 1995 год. Gigabit Ethernet — 1998–1999. 10GbE — 2002, массовое распространение с 2010. 25GbE появился в 2015 году как альтернатива 40GbE для серверов.
NIC для виртуализации
В виртуализированных средах NIC играет ключевую роль. Программная виртуальная сеть (vNIC через virtio или vmxnet3) добавляет 30–100 мкс латентности. SR-IOV позволяет ВМ получить прямой доступ к физической NIC через Virtual Functions, снижая задержку до 1–10 мкс. DPDK (Data Plane Development Kit) — технология Intel для обхода сетевого стека ядра: приложение напрямую управляет NIC, достигая задержек <1 мкс.
Современные серверные NIC (Mellanox ConnectX-6/7, Intel E810) — не просто сетевые карты. Они поддерживают: аппаратное шифрование TLS (TLS offload), разгрузку CPU от TCP-операций (TOE, TCP Offload Engine), RDMA — передача памяти между серверами без участия CPU, аппаратный мониторинг трафика.
Bonding/LACP для надёжности
Объединение двух NIC в один логический интерфейс: active-backup — одна активная, вторая резервная (failover ~1-3 сек), LACP (802.3ad) — оба интерфейса активны, балансировка нагрузки, суммирование пропускной способности. Для сервера с двумя 10 GbE портами в LACP: суммарная пропускная способность до 20 Гбит/с при работе с несколькими потоками. Linux bonding настраивается через /etc/network/interfaces или NetworkManager.