NetFlow обрабатывает соединения TCP/IP для ведения статистического учёта, используя понятие потока. «Поток» (flow) — это однонаправленная последовательность пакетов между определённой системой-источником и определённым назначением. На рисунке иллюстрируется понятие потока.

Для протокола NetFlow, построенного на основе TCP/IP, источник и назначение определяются IP-адресами сетевого уровня, а также номерами порта источника и портов назначения транспортного уровня.

Существует несколько поколений технологии NetFlow, каждое из которых отличается усовершенствованиями в области определения потоков трафика. Первоначально протокол NetFlow различал потоки с помощью сочетания из семи характеристик. Если значение одного из этих полей отличается от значения другого пакета, можно с уверенностью утверждать, что эти пакеты относятся к разным потокам:

Первые 4 поля, используемые NetFlow для определения потока, вам уже знакомы. IP-адреса источника и назначения, а также порты источника и назначения определяют связь между исходным и конечным приложением. Тип протокола уровня 3 определяет тип заголовка, следующий за заголовком IP (обычно TCP или UDP, но возможны другие варианты включая ICMP). Байт ToS в заголовке IPv4 содержит сведения о том, как устройства должны применять правила качества обслуживания (QoS) к пакетам в данном потоке.

Flexible NetFlow поддерживает больше различных параметров в записях данных о потоках. Flexible NetFlow позволяет администратору определять записи для кэша контроля потока Flexible NetFlow, выбирая определяемые пользователем дополнительные и обязательные поля для настройки сбора данных в соответствии с конкретными требованиями. Записи для кэша контроля потока Flexible NetFlow называются определяемыми пользователем записями. Значения в дополнительных полях добавляются к потокам для предоставления дополнительной информации о трафике в потоках. При изменении значения дополнительного поля новый поток не создаётся.