netmap — это фреймворк для высокопроизводительного пакетного ввода/вывода в операционных системах, обеспечивающий быструю передачу сетевых пакетов между userspace и ядром. Он разработан для снижения накладных расходов традиционных сетевых стеков и позволяет приложениям обходить часть стандартного сетевого пути, получая прямой доступ к буферам сетевых интерфейсов и опираясь на эффективные структуры данных для массовой обработки пакетов. В состав экосистемы netmap входят механизмы работы с физическими сетевыми картами, виртуальными портами и общими областями памяти, а также программный коммутатор VALE для соединения потоков трафика внутри хоста.
Изначально netmap создавался как исследовательский и инженерный проект для ускорения сетевых приложений, отладочных инструментов и виртуализации сетевого ввода/вывода. Решение сочетает изменения в драйверах сетевых устройств и интерфейс в userspace, позволяющий приложениям читать и записывать пакеты пакетами (batch) с минимальными копированиями и системными вызовами. Архитектура ориентирована на достижение миллионов пакетов в секунду при одновременной сохранности упорядочивания, контроля целостности и совместимости с существующими сетевыми интерфейсами.
- Низкоуровневый доступ: общий разделяемый буфер между ядром и userspace для обмена пакетами без лишних копирований.
 - Высокая пропускная способность: обработка пакетов пакетами (batch processing) и минимальное количество системных переходов.
 - Поддержка физических и виртуальных интерфейсов: совместимость с реальными NIC, TAP-подобными интерфейсами и виртуальными портами VALE.
 - VALE — программный коммутатор: внутренняя коммутационная подсистема для быстрой передачи трафика между netmap-портами внутри хоста.
 - Масштабируемость: эффективная работа на многопроцессорных системах с распределением нагрузки по ядрам.
 - Снижение задержек: упрощённый путь обработки пакета уменьшает латентность по сравнению со стандартным стеком.
 - Совместимость с драйверами: адаптации для существующих драйверов сетевых карт с минимальными модификациями.
 - Интерфейс для пользователей: API, позволяющее приложениям напрямую управлять кольцевыми буферами и дескрипторами пакетов.
 - Поддержка виртуализации: применение в гипервизорах и контейнерах для ускорения сетевого ввода/вывода виртуальных машин и сервисов.
 - Надёжность и контроль: механизмы синхронизации и контроля доступа при совместном использовании буферов несколькими процессами.