Le protocole NetFlow répartit les communications TCP/IP en vue de la conservation des enregistrements statistiques à l'aide du concept de flux. Un flux est un écoulement unidirectionnel de paquets entre un système source spécifique et une destination donnée. La figure illustre le concept de flux.

En ce qui concerne le protocole NetFlow, qui est bâti sur la suite de protocoles TCP/IP, la source et la destination sont définies par leur adresse IP de couche réseau ainsi que par leurs numéros de port source et de destination de couche transport.

Si la technologie NetFlow a connu plusieurs générations offrant des sophistications supplémentaires en matière de définition de flux de trafic, le protocole NetFlow d'origine distinguait les flux à l'aide d'une combinaison de sept champs. Si la valeur de l'un des champs suivants varie entre différents paquets, cela signifie que ces paquets appartiennent à des flux distincts :

Les quatre premiers champs utilisés par NetFlow pour identifier un flux devraient vous être familiers. Les adresses IP source et de destination, avec les ports source et de destination, identifient la connexion entre l'application source et celle de destination. Le type de protocole de couche 3 identifie le type d'en-tête qui suit l'en-tête IP (généralement TCP ou UDP, mais d'autres options incluent ICMP). L'octet ToS de l'en-tête IPv4 contient des informations sur le mode d'application des règles de qualité de service (QS) aux paquets de ce flux.

Flexible NetFlow prend en charge plus d'options relatives aux enregistrements de données de flux. Le protocole Flexible NetFlow permet à un administrateur de définir les enregistrements d'un cache de contrôle de flux Flexible NetFlow en spécifiant les champs facultatifs et obligatoires définis par l'utilisateur afin de personnaliser la collecte de données en fonction d'exigences spécifiques. Lors de la définition des enregistrements d'un cache de contrôle de flux Flexible NetFlow, ces enregistrements sont considérés comme étant des enregistrements définis par l'utilisateur. Les valeurs figurant dans des champs facultatifs sont ajoutées aux flux afin de fournir des informations supplémentaires sur le trafic de ces flux. Une modification de la valeur d'un champ facultatif ne crée pas un nouveau flux.