Groupe de travail Réseau	B. Claise, éditeur, Cisco Systems, Inc.
Request for Comments : 5476	A. Johnson, Cisco Systems, Inc.
Catégorie : Sur la voie de la normalisation	J. Quittek, NEC Europe Ltd.
Traduction Claude Brière de L'Isle	mars 2009

Spécifications du protocole d'échantillonnage de paquet (PSAMP)

Statut du présent mémoire
Le présent document spécifie un protocole de l’Internet sur la voie de la normalisation pour la communauté de l’Internet, et appelle à des discussions et suggestions pour son amélioration. Prière de se référer à l’édition en cours des "Protocoles officiels de l’Internet" (STD 1) pour voir l’état de normalisation et le statut de ce protocole. La distribution du présent mémoire n’est soumise à aucune restriction.

Notice de droits de reproduction
Copyright (c) 2009 IETF Trust et les personnes identifiées comme auteurs du document. Tous droits réservés.

Le présent document est soumis au BCP 78 et aux dispositions légales de l’IETF Trust qui se rapportent aux documents de l’IETF (http://trustee.ietf.org/license-info) en vigueur à la date de publication de ce document. Prière de revoir ces documents avec attention, car ils décrivent vos droits et obligations par rapport à ce document. Les composants de code extraits du présent document doivent inclure le texte de licence simplifié de BSD comme décrit au paragraphe 4.e des dispositions légales du Trust et sont fournis sans garantie comme décrit dans la licence de BSD simplifiée.

Le présent document peut contenir des matériaux provenant de documents de l’IETF ou de contributions à l’IETF publiées ou rendues disponibles au public avant le 10 novembre 2008. La ou les personnes qui ont le contrôle des droits de reproduction sur tout ou partie de ces matériaux peuvent n’avoir pas accordé à l’IETF Trust le droit de permettre des modifications de ces matériaux en dehors du processus de normalisation de l’IETF. Sans l’obtention d’une licence adéquate de la part de la ou des personnes qui ont le contrôle des droits de reproduction de ces matériaux, le présent document ne peut pas être modifié en dehors du processus de normalisation de l’IETF, et des travaux dérivés ne peuvent pas être créés en dehors du processus de normalisation de l’IETF, excepté pour le formater en vue de sa publication comme RFC ou pour le traduire dans une autre langue que l’anglais.

Résumé
Le présent document spécifie l'exportation des informations de paquet d'un processus d'exportation d'échantillonnage de paquet (PSAMP, Packet SAMPling)  à un processus de collecte PSAMP. Pour l'exportation des informations de paquet, le protocole d'exportation d'informations de flux IP (IPFIX, IP Flow Information eXport) est utilisé, car les architectures de IPFIX comme de PSAMP correspondent toutes deux très bien, et les moyens fournis par le protocole IPFIX sont suffisants. Le document spécifie en détails comment le protocole IPFIX est utilisé pour l'exportation PSAMP des informations de paquet.
Table des matières
1. Introduction	2
1.1 Conventions utilisées dans ce document	2
2. Vue d'ensemble des documents PSAMP	2
3. Terminologie	2
3.1 Terminologie IPFIX	3
3.2 Terminologie de PSAMP	3
3.3 Comparaison de la terminologie IPFIX et PSAMP	6
4. Différences entre PSAMP et IPFIX	6
4.1 Point de vue de l'architecture	6
4.2 Point de vue du protocole	7
4.3 Point de vue du modèle d'information	7
5. Exigences de PSAMP contre solution IPFIX	8
5.1 Vue générale de l'intégration	8
6. Utilisation du protocole IPFIX pour PSAMP	9
6.1 Identifiant de sélecteur	9
6.2 Identifiant de séquence de sélection	9
6.3 Processus d'exportation	9
6.4 Rapport de paquet	9
6.5 Interprétation du rapport	12
7. Considérations sur la sécurité	25
8. Considérations relatives à l’IANA	25
8.1 Considérations relatives à IPFIX	25
8.2 Considérations relatives à PSAMP	25
9. Références	25
9.1 Références normatives	25
9.2 Références pour information	26
10. Remerciements	26
Adresse des auteurs	26
 	1.	Introduction

Le nom PSAMP est la contraction de la locution "Packet Sampling" (échantillonnage de paquet). Le mot "échantillonnage" porte l'idée que seul un sous ensemble de tous les paquets qui passent par un élément de réseau va être choisi pour le rapport. Les opérations de sélection de PSAMP incluent le choix aléatoire, le choix déterministe, et des approximations déterministes d'un choix aléatoire (sélection fondée sur le hachage).

Le protocole d'exportation des informations de flux IP (IPFIX, IP Flow Information eXport) spécifié dans la [RFC5101] exporte les informations de trafic IP [RFC5102] observées aux appareils du réseau. Cela satisfait les exigences générales de protocole mentionnées dans le cadre de PSAMP [RFC5474]. Cependant, il y a des différences d'architecture entre IPFIX et PSAMP sur les exigences pour un protocole d'exportation. Alors que l'architecture IPFIX [RFC5470] se concentre sur la collecte et l'exportation des informations de flux de trafic IP, le cadre PSAMP [RFC5474] se concentre sur l'exportation d'informations sur des paquets individuels. Cette différence de base et un ensemble de différences dérivées dans les exigences du protocole sont mentionnés à la Section 4. En dépit de ces différences, le protocole IPFIX convient bien pour le protocole PSAMP. La Section 5 spécifie comment le protocole IPFIX est utilisé pour l'exportation d'échantillons de paquets. Les extensions requises au modèle d'informations IPFIX sont spécifiées dans le modèle d'informations PSAMP [RFC5477].

 	1.1	Conventions utilisées dans ce document
Les mots clés "DOIT", "NE DOIT PAS", "EXIGE", "DEVRA", "NE DEVRA PAS", "DEVRAIT", "NE DEVRAIT PAS", "RECOMMANDE", "PEUT", et "FACULTATIF" en majuscules dans ce document sont à interpréter comme décrit dans le BCP 14, [RFC2119].

 	2.	Vue d'ensemble des documents PSAMP

Le présent document fait partie d'une série de documents du groupe de travail PSAMP.

[RFC5474] : "Cadre de travail pour la sélection et le rapport de paquet" décrit le cadre de PSAMP pour que les éléments de réseau choisissent des sous ensembles de paquets par des méthodes statistiques et autres, et pour exporter un flux de rapports sur les paquets choisis à un collecteur.

RFC 5475 : "Techniques d'échantillonnage et de filtrage pour la sélection de paquets IP" décrit l'ensemble de techniques de sélection de paquets prise en charge par PSAMP.

[RFC5476] (ce document) : "Spécification du protocole d'échantillonnage de paquet (PSAMP)" spécifie l'exportation des informations de paquet d'un processus d'exportation PSAMP à un processus de collecte PSAMP.

[RFC5477] : "Modèle d'information pour l'exportation d'échantillonnage de paquet" définit un modèle d'information et de données pour PSAMP.

 	3.	Terminologie

Comme le protocole d'exportation IPFIX est utilisé pour exporter les informations PSAMP, la terminologie pertinente de IPFIX de la [RFC5101] est copiée dans le présent document. Tous les termes définis dans cette section ont leur première lettre en majuscule quand ils sont utilisés dans ce document (seulement dans la version anglaise). Le tableau de résumé de la terminologie du paragraphe 3.1 donne une vue d'ensemble rapide des relations entre les différents termes IPFIX. La terminologie PSAMP définie ici est pleinement cohérente avec tous les termes mentionnés dans les [RFC5475] et [RFC5474], mais seules les définitions qui sont pertinentes pour le protocole PSAMP apparaissent ici. Le paragraphe 3.3 applique la terminologie de PSAMP à la terminologie du protocole IPFIX.

 	3.1	Terminologie IPFIX
La terminologie spécifique de IPFIX utilisée dans ce document est définie à la Section 2 de la [RFC5101]. Les seules exceptions sont le processus de mesure, le processus d'exportation, et le terme de collecteur, qui sont définis avec plus de précision dans la section de terminologie de PSAMP. Dans ce document, comme dans la [RFC5101], la première lettre de chaque terme spécifique de IPFIX est en majuscule.

      +------------------+------------------------------------------------+
      |                  |                 contenu                        |
      |                  +--------------------+---------------------------+
      |     Ensemble     |      Gabarit       |       Enregistrement      |
      +------------------+--------------------+---------------------------+
      | Ensemble données |          /         | Enregistrement de données |
      +------------------+--------------------+---------------------------+
      | Ensemble de      | Enregistrement de  |           /               |
      |    gabarits      |     gabarit        |                           |
      +------------------+--------------------+---------------------------+
      | Ensemble de      | Enregistrement de  |           /               |
      |gabarits d'options| gabarits d'options |                           |
      +------------------+--------------------+---------------------------+

Figure A : Tableau sommaire de la terminologie

 	3.2	Terminologie de PSAMP
La section de terminologie PSAMP a été copiée de la [RFC5475].

 	3.2.1	Flux de paquets et contenu de paquet
Flux de paquets observé : c'est l'ensemble de tous les paquets observés au point d'observation.

Flux de paquets : ensemble de paquets provenant du flux de paquets observé qui s'écoule après un point spécifié dans le processus de mesure. Un exemple de flux de paquets est le résultat du processus de sélection. Noter que les paquets choisis dans un flux, par exemple, par échantillonnage, ne possèdent pas nécessairement une propriété qui peut les distinguer des paquets qui n'ont pas été choisis. Pour cette raison, le terme de "flux" est préféré à celui de "courant", qui est défini comme un ensemble de paquets avec des propriétés communes [RFC3917].

Contenu de paquet : il note l'union de l'en-tête de paquet (qui inclut des champs d'en-tête de couche de liaison, de couche réseau, et autre couche d'encapsulation) et la charge utile du paquet. À certains points d'observation, les informations d'en-tête de couche de liaison peuvent n'être pas disponibles.

 	3.2.2	Processus de choix
Processus de choix : il prend en entrée le flux de paquets observé et choisit un sous ensemble de ce flux comme résultat.

État de sélection : un processus de choix peut maintenir des informations d'état à utiliser par le processus de choix. À un moment donné, l'état de sélection peut dépendre des paquets observés à ce moment ou avant, et d'autres variables. Des exemples incluent :
(i) les numéros de séquence des paquets à l'entrée des sélecteurs ;
(ii) un horodatage de l'observation du paquet au point d'observation ;
(iii) des itérateurs pour les générateurs de nombres pseudo aléatoires ;
(iv) des valeurs de hachage calculées durant la sélection ;
(v) des indicateurs de si le paquet a été choisi par un sélecteur donné.

Les processus de choix peuvent changer des portions de l'état de sélection par suite du traitement d'un paquet. L'état de sélection pour un paquet est de refléter l'état après le traitement du paquet.

Sélecteur : un sélecteur définit quelle sorte d'action effectue un processus de choix sur un seul paquet de son entrée. Si il est choisi, le paquet devient un élément du flux de paquets de sortie.
Le sélecteur peut utiliser les informations suivantes pour déterminer si un paquet est choisi :
(i) le contenu du paquet ;
(ii) des informations déduites du traitement du paquet au point d'observation ;
(iii) tout état de sélection qui peut être maintenu par le processus de choix.

Sélecteur composite : c'est une composition ordonnée de sélecteurs, dans laquelle le flux de paquets de sortie provenant d'un sélecteur forme le flux de paquets d'entrée du sélecteur suivant.

Sélecteur primaire : un sélecteur est primaire si il n'est pas un sélecteur composite.

Séquence de sélection : à partir de tous les paquets observés à un point d'observation, seuls quelques paquets sont choisis par un ou plusieurs sélecteurs. La séquence de sélection est une valeur unique par domaine d'observation décrivant le point d'observation et les identifiants de sélecteur à travers lesquels les paquets sont choisis.

 	3.2.3	Rapports
Rapports de paquets : ils comprennent un sous ensemble configurable d'une entrée de paquets au processus de sélection, incluant le contenu de paquet, les informations relatives à son traitement (par exemple, l'interface de sortie) et son état de sélection associé (par exemple, un hachage du contenu du paquet).

Interprétation de rapport : elle comporte des informations subsidiaires, relatives à un ou plusieurs paquets, qui sont utilisées pour l'interprétation de leurs rapports de paquet. Des exemples incluent des paramètres de configuration du processus de choix.

Flux de rapports : c'est le résultat du processus de mesures, comprenant deux types distincts d'informations : les rapports de paquet et l'interprétation de rapport.

 	3.2.4	Processus de mesures
Un processus de mesure choisit les paquets à partir du flux de paquets observé en utilisant un processus de choix, et produit comme résultat un flux de rapport concernant les paquets choisis.

Le processus de mesure PSAMP peut être vu comme l'analogue du processus de mesure IPFIX [RFC5101], qui produit des enregistrements de flux comme résultat, avec la différence que le processus de mesure PSAMP contient toujours un processus de choix. La relation entre PSAMP et IPFIX est décrite dans les [RFC5474] et [RFC5477].

 	3.2.5	Processus d'exportation
Processus d'exportation : il envoie, sous la forme de paquets d'exportation, le résultat d'un ou plusieurs processus de mesure à un ou plusieurs collecteurs.

Paquet d'exportation : combinaison d'interprétations de rapport et/ou d'un ou plusieurs rapports de paquet qui sont groupés par le processus d'exportation dans un paquet d'export à exporter à un collecteur.

 	3.2.6	Appareil PSAMP
Appareil PSAMP : appareil qui héberge au moins un point d'observation, un processus de mesure (qui inclut un processus de choix) et un processus d'exportation. Normalement, le ou les points d'observation, le ou les processus de mesure, et le ou les processus d'exportation correspondants sont colocalisés dans cet appareil, par exemple, dans un routeur.

 	3.2.7	Collecteur
Collecteur : un collecteur reçoit un flux de rapport exporté par un ou plusieurs processus d'exportation. Dans certains cas, l'hôte des processus de mesure et/ou d'exportation peut aussi servir de collecteur.

 	3.2.8	Méthodes de sélection
Filtrage : un filtre est un sélecteur qui choisit un paquet de façon déterministe sur la base du contenu du paquet, ou de son traitement, ou de leurs fonctions qui se produisent dans l'état de sélection. Deux exemples sont :
(i) Le filtrage par correspondance de propriété : un paquet est choisi si un champ spécifique du paquet est égal à une valeur prédéfinie.
(ii) Choix fondé sur le hachage : une fonction de hachage est appliquée au contenu du paquet, et le paquet est choisi si le résultat tombe dans la gamme spécifiée.

Échantillonnage : un sélecteur qui n'est pas un filtre est appelé une opération d'échantillonnage. Cela reflète la notion intuitive que si le choix d'un paquet ne peut pas être déterminé à partir de son seul contenu, il doit y avoir lieu à un certain type d'échantillonnage. Les opérations d'échantillonnage peuvent être divisées en deux sous-types :
(i) Échantillonnage indépendant du contenu, qui n'utilise pas le contenu du paquet pour prendre les décisions d'échantillonnage. Des exemples incluent l'échantillonnage systématique, et l'échantillonnage pseudo aléatoire uniforme conduit par un nombre pseudo aléatoire dont la génération est indépendante du contenu du paquet. Noter que dans l'échantillonnage indépendant du contenu, il n'est pas nécessaire d'accéder au contenu de paquet pour prendre la décision de sélection.
(ii) Échantillonnage dépendant du contenu, dans lequel le contenu du paquet est utilisé pour prendre les décisions de choix. Une application est un choix pseudo aléatoire conformément à une probabilité qui dépend du contenu d'un champ du paquet, par exemple, l'échantillonnage de paquets avec une probabilité dépendant de leur numéro d'accès TCP/UDP. Noter que cela n'est pas un filtre.

Domaine de hachage : c'est un sous ensemble du contenu de paquet et du traitement de paquet, vu comme une chaîne de N bits pour un entier positif N.

Gamme de hachage : c'est un ensemble de chaînes de M bits pour un entier positif M qui définit la gamme de valeurs que peut prendre le résultat de l'opération de hachage.

Fonction de hachage : elle définit une transposition déterministe du domaine de hachage à la gamme de hachage.

Gamme de choix de hachage : c'est un sous ensemble de la gamme de hachage. Le paquet est choisi si l'action de la fonction de hachage sur le domaine de hachage pour le paquet donne un résultat dans la gamme de choix de hachage.

Choix fondé sur le hachage : c'est un filtrage spécifié par un domaine de hachage, une fonction de hachage, une gamme de hachage, et une gamme de choix de hachage.

Choix approximatif : les sélecteurs dans toutes les catégories ci-dessus peuvent être approximés par des opérations dans la même catégorie ou une autre pour les besoins de la mise en œuvre. Par exemple, l'échantillonnage pseudo aléatoire uniforme peut être approximé par le choix fondé sur le hachage, en utilisant une fonction de hachage et un domaine de hachage convenables. Dans ce cas, la précision de l'approximation dépend du choix de la fonction de hachage et du domaine de hachage.

Population : c'est un flux de paquets ou un sous ensemble d'un flux de paquets. Une population peut être considérée comme un ensemble de base à partir duquel les paquets sont choisis. Un exemple est "tous les paquets dans le flux de paquets observés qui sont observés dans un intervalle de temps spécifié".

Taille de population : c'est le nombre total de paquets dans la population.

Taille d'échantillon : c'est le nombre de paquets choisis dans la population par un sélecteur.

Fraction configurée de choix : c'est le ratio attendu de la taille d'échantillon sur la taille de population, telle que fondée sur les paramètres de choix configurés.

Fraction de choix atteinte : c'est le ratio de la taille d'échantillon réelle sur la taille de population. Pour certaines méthodes d'échantillonnage, la fraction de choix atteinte peut différer de la fraction de choix configurée du fait, par exemple, de la variabilité statistique inhérente des décisions d'échantillonnage probabiliste et de choix fondé sur le hachage. Néanmoins, pour les grandes tailles de population et des sélecteurs configurés de façon appropriée, la fraction de choix atteinte approche généralement la fraction configurée de choix.

 	3.3	Comparaison de la terminologie IPFIX et PSAMP
La terminologie de PSAMP a été spécifiée avec un arrière plan IPFIX, car PSAMP et IPFIX ont des termes similaires. Cependant, ce paragraphe précise les termes entre la terminologie de IPFIX et celle de PSAMP.

 	3.3.1	Traitements IPFIX et PSAMP
La Figure B indique la séquence des processus IPFIX (mesure et exportation) au sein de l'appareil PSAMP.

                +---------------------+
                | Processus de mesure |
                | +-------------+     |     +-------------+
      Flux de   | | Processus de|     |     | Processus   |
      paquets-->| | choix       |---------->|d'exportation|--->Collecteur
      observé   | +-------------+     |     +-------------+
                +---------------------+

Figure B : Processus PSAMP

Le processus de choix, qui prend en entrée un flux de paquets observé, fait partie intégrante du processus de mesure.  Le processus de choix choisit quels paquets de son flux de paquets d'entrée vont être rapportés par le reste du processus de mesure. Noter qu'un "processus" n'est pas nécessairement mis en œuvre comme une trame de CPU séparée.

 	3.3.2	Rapport et interprétation de paquet, et enregistrement des données
La terminologie PSAMP parle de rapport de paquet et d'interprétation de paquet, tandis que la terminologie IPFIX parle d'enregistrement de données et d'enregistrement de gabarit (options). Le rapport de paquet PSAMP, qui comporte des informations sur le paquet observé, peut être vu comme analogue à l'enregistrement de données IPFIX défini par un enregistrement de gabarit. L'interprétation du rapport PSAMP, qui comporte des informations subsidiaires utilisées pour l'interprétation des rapports de paquet, peut être vue comme analogue de l'enregistrement de données IPFIX défini par un enregistrement de gabarit d'options. Cet enregistrement de gabarit d'options contient des informations subsidiaires, applicables au paquet observé envoyé dans le rapport de paquet PSAMP.

 	4.	Différences entre PSAMP et IPFIX

Le résultat du groupe de travail IPFIX pertinent pour le présent document est structuré en trois documents :
- Architecture des informations de flux IP [RFC5470]
- Spécifications de protocole IPFIX [RFC5101]
- Modèle d'informations d'exportation des informations de flux IP [RFC5102]

Dans les paragraphes qui suivent, on examine les différences entre IPFIX et PSAMP pour chacun de ces aspects.

 	4.1	Point de vue de l'architecture
La mesure de flux de trafic telle que décrite dans les exigences pour IPFIX [RFC3917] et l'architecture IPFIX [RFC5470] peut être séparée en deux étapes : traitement de paquet et traitement de flux. La Figure C illustre ces étapes.

Dans l'étape 1, toutes les étapes du traitement agissent sur les paquets. Les paquets sont capturés, horodatés, sélectionnés par une ou plusieurs étapes de sélection, et finalement transmis à la classification de paquet qui transpose les paquets en flux. Les étapes de sélection de paquets peuvent inclure des fonctions de filtrage et d'échantillonnage.

Dans l'étape 2, toutes les étapes du traitement agissent sur les flux. Après la classification des paquets (transposés en flux) les flux sont générés (est mis à jour si ils existent déjà). La génération de flux et les étapes de mise à jour peuvent être effectuées de façon répétée pour agréger les flux. Finalement, les flux sont exportés.

L'échantillonnage de paquets comme décrit dans le cadre PSAMP [RFC5474] couvre seulement l'étape 1 de l'architecture IPFIX avec la classification des paquets remplacée par l'exportation des rapports de paquets tandis que IPFIX couvre aussi l'étape 2, car il génère des enregistrements de flux à partir des paquets choisis.

      Architecture IPFIX                       Cadre PSAMP
      Capture d'en-tête de paquet              Capture d'en-tête de paquet
              |         \                             |    
              |          |                            |
         Horodatage      |                        Horodatage
              |          |                            |
              v          |                            v
      +------>+          |  Étape 1 :         +------>+
      |       |           > traitement        |       |
      |   Choix          |  de paquet         |   Choix
      |   de paquet      |                    |  de paquet
      |       |          |                    |       |
      +-------+          |                    +-------+
              |          |                            |
              v          |                            v
        Classification   /                      Exportation de
        de paquet        \                      rapport de paquet
              |          |
              v          |
      +------>+          |
      |       |          |
      |Génération et mise|
      | à jour de flux   |  Étape 2 :
      |       |           > Traitement
      |       v          |  de flux
      |    Choix de      |
      |    flux          |
      |       |          |
      +-------+          |
              |          |
              v          |
        Exportation de   /
        rapport de flux

Figure C : Comparaison de l'architecture IPFIX et du cadre PSAMP

 	4.2	Point de vue du protocole
Concernant le protocole, la différence majeure entre IPFIX et PSAMP est que le protocole IPFIX exporte les enregistrements de flux tandis que le protocole PSAMP exporte les rapports de paquet. Du pur point de vue de l'exportation, IPFIX ne va pas distinguer un enregistrement de flux composé de plusieurs paquets agrégés d'un enregistrement de flux composé d'un seul paquet.

Donc l'exportation PSAMP peut être vue comme un enregistrement de flux IPFIX particulier contenant des informations sur un seul paquet.

Toutes les extensions du protocole IPFIX qui sont requises pour satisfaire les exigences de PSAMP ont déjà été incorporées dans le protocole IPFIX [RFC5101], qui a été développé en parallèle avec le protocole PSAMP. Un exemple est le besoin d'un type de données pour les champs de protocole qui ont une longueur flexible, comme un arrangement d'octets. Cela a été ajouté à la spécification du protocole IPFIX afin de satisfaire l'exigence du protocole PSAMP de rapporter le contenu des paquets capturés, par exemple, les premiers octets d'un paquet.

 	4.3	Point de vue du modèle d'information
Du point de vue du modèle d'information, le chevauchement entre les protocoles IPFIX et PSAMP est assez grand. La plupart des éléments d'information dans le protocole IPFIX sont aussi pertinents pour l'exportation des informations de paquet, par exemple, tous les champs qui rapportent les propriétés d'en-tête de paquet. Seuls quelques éléments d'information, comme observedFlowTotalCount (dont la valeur va toujours être 1 pour PSAMP) etc., ne peuvent pas être utilisés d'une façon significative par le protocole PSAMP. Aussi, les exigences du protocole IPFIX concernant l'étape 2 de la Figure C ne s'appliquent pas au processus de mesure PSAMP.

D'autres extensions exigées s'appliquent au modèle d'information. Même si le mandat de IPFIX parle d'échantillonnage, aucun élément d'information relatif à l'échantillonnage n'est spécifié dans la [RFC5102]. La tâche de les spécifier a été intentionnellement laissée au modèle d'information de PSAMP [RFC5477]. Un ensemble de champs supplémentaires est nécessaire pour satisfaire les exigences du modèle d'information de PSAMP [RFC5475].

Exploitant l'extensibilité du modèle d'information de IPFIX, l'extension requise est couverte par le modèle d'information de PSAMP spécifié dans la [RFC5477].

 	5.	Exigences de PSAMP contre solution IPFIX

La [RFC5474] contient les exigences du protocole PSAMP dans tout le document, avec une attention particulière dans la Section 4, "Exigences génériques pour PSAMP", et ses différents paragraphes.

La Section 4 de la [RFC5474] décrit une exigence qui, si elle ne se rapporte pas directement au protocole d'exportation, va faire peser un certain nombre de contraintes sur lui. Mesures parallèles : plusieurs processus de choix indépendants à la même entité.

La [RFC5474] décrit aussi unc série d'exigences qui spécifient les différents éléments d'information qui DOIVENT et DEVRAIENT être rapportés au collecteur. Néanmoins, IPFIX, étant un protocole d'exportation générique, peut exporter tout élément d'information pour autant qu'il est décrit dans le modèle d'information. Donc ces exigences sont principalement ciblés par la [RFC5477].

La spécification du protocole PSAMP satisfait presque toutes les exigences du protocole déclarées dans le document du cadre PSAMP [RFC5474] :
* Extensibilité
* Processus de sélection parallèle
* Paquets chiffrés
* Indication de perte d'informations
* Précision
* Confidentialité
* À propos
* Évitement d'encombrement
* Exportation sûre
* Limitation du taux d'exportation
* Résolution d'horodatage à la microseconde

La seule exigence qui n'est pas satisfaite est la compression de paquet d'exportation. Avec le choix de IPFIX comme protocole d'exportation PSAMP, l'option de compression de paquet d'exportation mentionnée au paragraphe 8.5 du document cadre [RFC5474] n'est pas traitée.

 	5.1	Vue générale de l'intégration
L'enregistrement de gabarit dans l'ensemble de gabarits est utilisé pour décrire les différents éléments d'information PSAMP qui vont être exportés au collecteur. Le collecteur décode l'enregistrement de gabarit dans l'ensemble de gabarits et sait quels éléments d'information attendre quand il reçoit les enregistrements de données dans l'ensemble de données de rapport de paquet PSAMP. Normalement, dans le niveau de base de la fonction PSAMP, l'ensemble de gabarits va contenir le numéro de séquence d'entrée, le fragment de paquet (un certain nombre d'octets contigus depuis le début du paquet ou le début de la charge utile) et la séquence de choix.

L'enregistrement de gabarit d'options dans l'ensemble de gabarits d'options est utilisé pour décrire les différents éléments d'information PSAMP qui concernent le processus de mesure lui-même : fonctions d'échantillonnage et/ou de filtrage, et les paramètres associés. Le collecteur décode les enregistrements de gabarit d'options dans l'ensemble de gabarits d'options et sait quels éléments d'information attendre quand il reçoit les enregistrements de données dans l'ensemble de données d'interprétation de rapport PSAMP. Normalement, le gabarit d'options va contenir la séquence de choix, les fonctions d'échantillonnage ou de filtrage, et les paramètres d'échantillonnage ou de filtrage associés.

PSAMP exige toutes les différentes possibilités de la spécification du protocole IPFIX [RFC5101], c'est-à-dire, les trois types d'ensembles (ensemble de données, ensemble de gabarits et ensemble de gabarits d'options) avec les deux types d'enregistrements de gabarits (enregistrement de gabarit et enregistrement de gabarit d'options) comme décrit à la Figure A. Par conséquent, PSAMP ne peut pas s'appuyer sur un sous ensemble des spécifications du protocole IPFIX décrit dans la [RFC5101]. L'ensemble des spécifications du protocole IPFIX [RFC5101] DOIT être mis en œuvre pour le protocole PSAMP.

 	6.	Utilisation du protocole IPFIX pour PSAMP

Dans cette section, on décrit l' usage du protocole IPFIX pour PSAMP. On décrit les formats d'enregistrements et les exigences supplémentaires qui doivent être satisfaites. PSAMP utilise deux différents types de messages :
- rapports de paquet
- interprétation de rapport.

Le format des rapports de paquet est défini dans les enregistrements de gabarit IPFIX. Les données PSAMP sont transférées comme des éléments d'information dans les enregistrements de données IPFIX comme décrit par l'enregistrement de gabarit. Il y a deux différents types de rapports de paquet. Les rapports de paquet de base contiennent seulement les éléments d'information de base exigés pour le rapport PSAMP. Les rapports de paquet étendus PEUVENT contenir d'autres éléments d'information, et n'incluent pas nécessairement de contenu de paquet (voir le paragraphe 6.4.2).

Le format des interprétations de rapport est défini dans l'enregistrement de gabarit d'options IPFIX. Les éléments d'information sont transférés dans les enregistrements de données IPFIX comme décrit par l'enregistrement de gabarit d'options. Il y a quatre différents types de messages d'interprétation de rapport :
- Interprétation de rapport de séquence de choix,
- Interprétation de rapport de sélecteur,
- Interprétation de rapport de statistiques de séquence de sélection,
- Interprétation de rapport de précision.

Une description et des exemples de l'usage de ces rapports sont donnés ci-après.

 	6.1	Identifiant de sélecteur
L'identifiant de sélecteur est l'identifiant univoque d'un sélecteur primaire. Chaque sélecteur primaire DOIT avoir un identifiant unique dans le domaine d'observation. L'identifiant de sélecteur est représenté par l'élément d'information selectorId [RFC5477].

 	6.2	Identifiant de séquence de sélection
À partir de tous les paquets observés à un point d'observation, un sous ensemble de paquets est choisi par un ou plusieurs sélecteurs. La séquence de choix est la combinaison d'un point d'observation et de un ou plusieurs sélecteurs à travers lesquels les paquets sont choisis. L'identifiant de séquence de choix est une valeur unique qui représente cette combinaison.  L'identifiant de séquence de choix est représenté par l'élément d'information selectionSequenceId [RFC5477].

 	6.3	Processus d'exportation
Un processus d'exportation DOIT être capable de limiter le taux d'exportation conformément à une valeur configurable. Le processus d'exportation PEUT limiter le taux d'exportation selon le processus de collecte.

 	6.4	Rapport de paquet
Pour chaque séquence de choix, pour chaque paquet choisi, un rapport de paquet DOIT être créé. Le format du rapport de paquet est spécifié dans un enregistrement de gabarit contenu dans un ensemble de gabarits.

Il y a deux types de rapport de paquet, comme décrit dans la [RFC5474] : le rapport de paquet de base et le rapport de paquet étendu.

 	6.4.1	Rapport de paquet de base
Pour chaque paquet choisi, le rapport de paquet DOIT contenir les informations suivantes :

-	L'élément d'information selectionSequenceId. Si il y a une fonction de résumé dans la séquence de choix, le rapport de paquet DOIT contenir la valeur de hachage (élément d'information digestHashValue) générée par la fonction de hachage de résumé pour chaque paquet choisi. Si il y a plus d'une fonction de résumé, alors chaque valeur de hachage DOIT être incluse dans le même ordre que celui dans lequel elle apparaît dans la séquence de choix. Si il n'y a pas de fonction de résumé dans la séquence de choix, aucun élément n'a besoin d'être envoyé pour le résumé.

-	Un certain nombre d'octets contigus provenant du début du paquet, incluant l'en-tête de paquet (qui inclut les en-têtes de couche de liaison, de couche réseau, et autres en-têtes d'encapsulation) et des octets suivants de la charge utile de paquet. Autrement, le nombre d'octets contigus peut commencer au début de la charge utile. Les éléments d'information PSAMP dataLinkFrameSection, mplsLabelStackSection, mplsPayloadPacketSection, ipPacketSection, et ipPayloadPacketSection sont disponibles pour cela.

Pour chaque paquet choisi, le rapport de paquet DEVRAIT contenir un élément d'information relatif au temps qui corresponde à la précision de l'heure du processus de mesure. Normalement, l'élément d'information observationTimeMicroseconds. D'autres éléments d'information possibles sont observationTimeSeconds, observationTimeMilliseconds, est observationTimeNanoseconds.

Dans le rapport de paquet, l'appareil PSAMP DOIT être capable d'exporter le nombre de paquets observés et le nombre de paquets choisis par chaque instance de ses sélecteurs primaires (comme décrit par les éléments d'information non de portée de l'interprétation de rapport de statistiques de séquence de sélection) bien qu'il PUISSE être une option configurable de ne pas les inclure. Si elle est exportée, la fraction de sélection atteinte peut être calculée précisément pour le flux de paquets observé. Le rapport de paquet PEUT inclure seulement le sélecteur final packetSelected, pour agir comme index pour cette séquence de choix dans l'interprétation de rapport de statistiques de séquence de sélection, ce qui permet aussi le calcul de la fraction de sélection atteinte.

Les éléments d'information contigus (dataLinkFrameSection, mplsLabelStackSection, mplsPayloadPacketSection, ipPacketSection, et ipPayloadPacketSection) PEUVENT être codés avec un champ de longueur fixe ou avec un champ de longueur variable. Si un de ces éléments d'information est codé avec un champ de longueur fixe dont la longueur est trop grande pour le nombre d'octets contigus dans le paquet choisi, le bourrage NE DOIT PAS être utilisé. Dans ce cas, le processus d'exportation DOIT exporter les informations dans un nouvel enregistrement de gabarit avec le champ correct de longueur fixe ou dans un nouvel enregistrement de gabarit avec un champ de longueur variable.

Voici un exemple de rapport de paquet de base, avec une valeur d'élément d'information SelectionSequenceId de 9 et dataLinkFrameSection de 12 octets, 0x4500 005B A174 0000 FF11 832E, codée avec un champ de longueur fixe.

Enregistrement de gabarit IPFIX :

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Identifiant d'ensemble = 2   |       Longueur = 24           |
+---------------+---------------+---------------+---------------+
| Identifiant de gabarit = 260  |      Compte de champ = 4      |
+---------------+---------------+---------------+---------------+
|   selectionSequenceId = 301   |     Longueur de champ = 4     |
+---------------+---------------+---------------+---------------+
|      digestHashValue = 326    |     Longueur de champ = 4     |
+---------------+---------------+---------------+---------------+
|   dataLinkFrameSection = 315  |     Longueur de champ = 12    |
+---------------+---------------+---------------+---------------+
|observationTimeMicroseconds=324|     Longueur de champ = 4     |
+---------------+---------------+---------------+---------------+

Enregistrement de données IPFIX associées :

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifiant d'ensemble = 260  |         Longueur = 32         |
+---------------+---------------+---------------+---------------+
|                               9                               |
+---------------+---------------+---------------+---------------+
|                         0x9123 0613                           |
+---------------+---------------+---------------+---------------+
|                         0x4500 005B                           |
+---------------+---------------+---------------+---------------+
|                         0xA174 0000                           |
+---------------+---------------+---------------+---------------+
|                         0xFF11 832E                           |
+---------------+---------------+---------------+---------------+
|                    Heure d'observation ...                    |
+---------------+---------------+---------------+---------------+
|        ... codée comme dateTimeMicroSeconds [RFC5101]         |
+---------------+---------------+---------------+---------------+

Figure D : Exemple de rapport de paquet de base

Voici un exemple d'un rapport de paquet de base, avec une valeur d'élément d'information SelectionSequenceId de 9 et ipHeaderPacketSection de 12 octets, 0x4500 005B A174 0000 FF11 832E, codé avec un champ de taille variable.

Enregistrement de gabarit IPFIX :

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Identifiant d'ensemble = 2   |        Longueur = 16          |
+---------------+---------------+---------------+---------------+
| Identifiant de gabarit = 261  |        Compte de champ = 2    |
+---------------+---------------+---------------+---------------+
|    selectionSequenceId = 301  |     Longueur de champ = 4     |
+---------------+---------------+---------------+---------------+
|  ipHeaderPacketSection = 313  |     Longueur de champ = 65535 |
+---------------+---------------+---------------+---------------+

Enregistrement de données IPFIX associées :

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifiant d'ensemble = 261  |         Longueur = 21         |
+---------------+---------------+---------------+---------------+
|                               9                               |
+---------------+---------------+---------------+---------------+
| Longueur = 12 |                  0x4500 ...                   |
+---------------+---------------+---------------+---------------+
|   ...  005B   |                  0xA174 ...                   |
+---------------+---------------+---------------+---------------+
|   ...  0000   |                  0xFF11 ...                   |
+---------------+---------------+---------------+---------------+
|   ...  832E   |
+---------------+

Figure E : Exemple d'un rapport de paquet de base avec un champ de taille variable

 	6.4.2	Rapport de paquet étendu
À la place du rapport de paquet de base, le rapport de paquet étendu PEUT contenir d'autres éléments d'information relatifs aux protocoles utilisés dans le paquet (comme des adresses IP de source et destination) relatives au traitement du paquet (comme l'interface de sortie, le système autonome de destination BGP [RFC4271]) ou relatives à l'état de sélection associé au paquet (comme l'horodatage, la valeur de hachage).

Il est envisagé que la sélection des champs pour les rapports de paquet étendus puisse être utilisée pour réduire la bande passante de rapport, et dans ce cas l'option de rapporter un certain nombre d'octets contigus depuis le début du paquet, obligatoire dans le rapport de paquet de base, ne peut pas être exercée. Dans ce cas, le contenu de paquet PEUT être omis. Noter que cette configuration est assez similaire à celle d'un appareil IPFIX pour lequel un enregistrement de gabarit contenant des informations sur un seul paquet est rapporté.

Exemple d'un rapport de paquet étendu détaillé :

Enregistrement de gabarit IPFIX :

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifiant d'ensemble =  2   |         Longueur = 32         |
+---------------+---------------+---------------+---------------+
| Identifiant de gabarit = 261  |     Compte de champ = 6       |
+---------------+---------------+---------------+---------------+
|0|  selectionSequenceId = 301  |    Longueur de champ = 4      |
+-+-------------+---------------+---------------+---------------+
|0|  sourceIPv4Address = 8      |    Longueur de champ = 4      |
+-+-------------+---------------+---------------+---------------+
|0| destinationIPv4Address = 12 |    Longueur de champ = 4      |
+-+-------------+---------------+---------------+---------------+
|0|    totalLengthIPv4 = 190    |    Longueur de champ = 2      |
+-+-------------+---------------+---------------+---------------+
|0|     tcpSourcePort = 182     |    Longueur de champ = 2      |
+-+-------------+---------------+---------------+---------------+
|0|  tcpDestinationPort = 183   |    Longueur de champ = 2      |
+-+-------------+---------------+---------------+---------------+

Enregistrement de données IPFIX associées :

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifiant d'ensemble = 26   |          Longueur = 20        |
+---------------+---------------+---------------+---------------+
|                               9                               |
+---------------+---------------+---------------+---------------+
|                           192.0.2.1                           |
+---------------+---------------+---------------+---------------+
|                          192.0.2.106                          |
+---------------+---------------+---------------+---------------+
|                72             |                1372           |
+---------------+---------------+---------------+---------------+
|               80              |
+---------------+---------------+

Figure F : Exemple d'un rapport de paquet étendu

 	6.5	Interprétation du rapport
Pour donner tout son sens au rapport de paquet, un certain nombre d'éléments d'information supplémentaires doivent être communiqués au collecteur :
-	Les détails sur lesquels les sélecteurs et points d'observation sont utilisés au sein d'une séquence de choix DOIVENT être fournis en utilisant l'interprétation de rapport de séquence de choix.
-	Les détails de configuration de chaque sélecteur DOIVENT être fournis en utilisant l'interprétation de rapport de sélecteur.
-	Les statistiques d'identifiant de sélecteur DOIVENT être fournies en utilisant l'interprétation de rapport de statistiques de séquence de sélection.
-	La précision des champs rapportés DOIT être fournie en utilisant l'interprétation de rapport de précision.

 	6.5.1	Interprétation du rapport de séquence de choix
Chaque rapport de paquet contient un élément d'information selectionSequenceId qui identifie la combinaison particulière de point d'observation et de sélecteur(s) utilisée pour son choix. Pour chaque élément d'information selectionSequenceId utilisé, l'appareil PSAMP DOIT exporter une interprétation de rapport de séquence de choix en utilisant un gabarit d'options avec les éléments d'information suivants :

Scope : selectionSequenceId
Non-Scope : un élément d'information transposant le selectorId du point d'observation (un ou plusieurs)

Un élément d'information représentant le point d'observation va normalement être pris des éléments d'information ingressInterface, egressInterface, lineCardId, exporterIPv4Address, ou exporterIPv6Address (spécifiés dans la [RFC5102]) mais pas seulement : tout élément d'information spécifié dans la [RFC5102] ou la [RFC5477] peut éventuellement être utilisé. Dans des cas de points d'observation plus complexes (comme une liste d'interfaces, un bus, etc.) un nouvel élément d'information décrivant le nouveau type de point d'observation doit être spécifié, avec un enregistrement de gabarit d'options le décrivant plus en détails (si nécessaire).

Si les paquets sont choisis par un sélecteur composite, la séquence de choix est composée de plusieurs sélecteurs primaires. Dans ce cas, l'interprétation de rapport de séquence de choix DOIT contenir la liste de tous les identifiants de sélecteur primaire dans la séquence de choix. Si plusieurs sélecteurs sont contenus dans l'interprétation de rapport de séquence de choix, les selectorId DOIVENT être identifiés dans l'ordre de leur utilisation.

Exemple de deux séquences de choix :
Séquence de choix 7 (Filtre->Échantillonnage) :
ingressInterface     5
selectorId               5 (Filtre, correspondre à IPV4SourceAddress 192.0.2.1)
selectorId              10 (Échantillonneur, 1 sur dix au hasard)
Séquence de choix 9 (Échantillonnage->Filtrage) :
ingressInterface      5
selectorId              10 (Échantillonneur, 1 sur dix au hasard)
selectorId                5 (Filtre, correspondre à IPV4SourceAddress 192.0.2.1)

Enregistrement de gabarit d'options IPFIX :

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifiant d'ensemble = 3    |        Longueur = 26          |
+---------------+---------------+---------------+---------------+
| Identifiant de gabarit = 262  |     Compte de champ = 4       |
+---------------+---------------+---------------+---------------+
| Compte de champ Scope = 1     |0|  selectionSequenceId = 301  |
+---------------+---------------+-+-------------+---------------+
|     Longueur Scope 1 = 4      |0|     ingressInterface = 10   |
+---------------+---------------+-+-------------+---------------+
|   Longueur de champ = 4       |0|      selectorId = 302       |
+---------------+---------------+-+-------------+---------------+
|   Longueur de champ = 4       |0|      selectorId = 302       |
+---------------+---------------+-+-------------+---------------+
|   Longueur de champ = 4       |
+---------------+---------------+

Enregistrement de données IPFIX associées :

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifiant d'ensemble = 262  |         Longueur = 36         |
+---------------+---------------+---------------+---------------+
|                               7                               |
+---------------+---------------+---------------+---------------+
|                               5                               |
+---------------+---------------+---------------+---------------+
|                               5                               |
+---------------+---------------+---------------+---------------+
|                              10                               |
+---------------+---------------+---------------+---------------+
|                               9                               |
+---------------+---------------+---------------+---------------+
|                               5                               |
+---------------+---------------+---------------+---------------+
|                              10                               |
+---------------+---------------+---------------+---------------+
|                               5                               |
+---------------+---------------+---------------+---------------+

Figure G : Exemple d'interprétation de rapport de séquence de choix

Notes :
*	Il y a deux enregistrements dans le même ensemble de données. Chaque enregistrement définit une séquence de choix différente.
*	Si, par exemple, une séquence de choix différente est composée de trois sélecteurs, alors un gabarit d'options différent avec trois (au lieu de deux) éléments d'information selectorId doit être utilisé.

 	6.5.2	Interprétation du rapport de sélecteur
Un enregistrement de données IPFIX, défini par un enregistrement de gabarit d'options, DOIT être utilisé pour envoyer les détails de configuration de chaque sélecteur utilisé. L'enregistrement de gabarit d'options DOIT contenir l'élément d'information selectorId comme champ Scope et l'élément d'information SelectorAlgorithm suivi par des paramètres de configuration spécifiques :

Scope :     selectorId
Non-scope : éléments d'information selectorAlgorithm spécifiques de l'algorithme

Les éléments d'information spécifiques de l'algorithme sont spécifiés dans les paragraphes qui suivent, selon la méthode de choix représentée par la valeur de selectorAlgorithm [RFC5477].

 	6.5.2.1	Échantillonnage systématique fondé sur le compte
Dans l'échantillonnage systématique fondé sur le compte, les déclencheurs de début et de fin de l'intervalle d'échantillonnage sont définis en accord avec la position spatiale du paquet (compte de paquet) [RFC5475].

Les éléments d'information spécifiques de l'algorithme EXIGÉS dans le cas de l'échantillonnage systématique fondé sur le compte sont :

samplingPacketInterval : nombre de paquets choisis à la suite
samplingPacketSpace : nombre de paquets entre les choix

Exemple d'une définition simple de sélecteur systématique fondé sur le compte de 1 sur 10, où le samplingPacketInterval est 1 et le samplingPacketSpace est 9.

Enregistrement de gabarit d'options IPFIX :

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifiant d'ensemble = 3    |        Longueur = 26          |
+---------------+---------------+---------------+---------------+
| Identifiant de gabarit =  263 |     Compte de champ = 4       |
+---------------+---------------+---------------+---------------+
|  Compte de champ Scope = 1    |0|       selectorId = 302      |
+---------------+---------------+-+-------------+---------------+
|    Longueur de Scope 1 = 4    |0|   selectorAlgorithm = 304   |
+---------------+---------------+-+-------------+---------------+
|    Longueur de champ = 1      |0|samplingPacketInterval = 305 |
+---------------+---------------+-+-------------+---------------+
|    Longueur de champ = 1      |0|  samplingPacketSpace = 306  |
+---------------+---------------+-+-------------+---------------+
|    Longueur de champ = 1      |
+---------------+---------------+

Enregistrement de données IPFIX associées :

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifiant d'ensemble = 263  |        Longueur = 11          |
+---------------+---------------+---------------+---------------+
|                              15                               |
+---------------+---------------+---------------+---------------+
|       1       |      1        |      9        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure H : Exemple d'interprétation de rapport de sélecteur pour l'échantillonnage systématique fondé sur le compte

Notes :
*	Une valeur de selectorAlgorithm de 1 représente l'échantillonnage systématique fondé sur le compte.
*	samplingPacketInterval et samplingPacketSpace sont de type unsigned32 mais sont compressés ici à un octet, comme permis par la spécification du protocole IPFIX [RFC5101].

 	6.5.2.2	Échantillonnage systématique fondé sur le temps
Dans l'échantillonnage systématique fondé sur le temps, les déclencheurs de début et d'arrêt sont utilisés pour définir les intervalles d'échantillonnage [RFC5475]. Les éléments d'information spécifiques de l'algorithme EXIGÉS dans le cas de l'échantillonnage systématique fondé sur le temps sont :

samplingTimeInterval : heure (en microsecondes) où les paquets sont choisis
samplingTimeSpace : temps (en microsecondes) entre les sélections

Exemple d'une définition de sélecteur systématique fondé sur le temps de 100 microsecondes sur 1000, où le samplingTimeInterval est 100 et le samplingTimeSpace est 900.

Enregistrement de gabarit d'options IPFIX :

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifiant d'ensemble = 3    |        Longueur = 26          |
+---------------+---------------+---------------+---------------+
| Identifiant de gabarit = 264  |    Compte de champ = 4        |
+---------------+---------------+---------------+---------------+
| Compte de champ Scope = 1     |0|      selectorId = 302       |
+---------------+---------------+-+-------------+---------------+
|  Longueur de Scope 1 = 4      |0|     selectorAlgorithm = 304 |
+---------------+---------------+-+-------------+---------------+
|      Longueur de champ = 1    |0|  samplingTimeInterval = 307 |
+---------------+---------------+-+-------------+---------------+
|      Longueur de champ = 1    |0|   samplingTimeSpace = 308   |
+---------------+---------------+-+-------------+---------------+
|      Longueur de champ = 2    |
+---------------+---------------+

Enregistrement de données IPFIX associées :

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifiant d'ensemble = 264  |        Longueur = 12          |
+---------------+---------------+---------------+---------------+
|                              16                               |
+---------------+---------------+---------------+---------------+
|        2      |       100     |             900               |
+---------------+---------------+---------------+---------------+

Figure I : Exemple d'interprétation de rapport de sélecteur pour l'échantillonnage systématique fondé sur le temps

Notes :
*	Une valeur de selectorAlgorithm de 2 représente un échantillonnage systématique fondé sur le temps.
*	samplingTimeInterval et samplingTimeSpace sont du type unsigned32 mais sont compressés ici.

 	6.5.2.3	Échantillonnage aléatoire de n parmi N
Dans l'échantillonnage aléatoire de n parmi N, n éléments sont choisis parmi la population parente qui consiste en N éléments [RFC5475]. Les éléments d'information spécifiques de l'algorithme EXIGÉS dans le cas de l'échantillonnage aléatoire de n parmi N sont :

samplingSize : nombre de paquets choisis
samplingPopulation : nombre de paquets dans le choix de population

Exemple de sélecteur d'échantillonnage aléatoire de n parmi N :

Enregistrement de gabarit d'options IPFIX :

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifiant d'ensemble = 3    |        Longueur = 26          |
+---------------+---------------+---------------+---------------+
| Identifiant de gabarit = 265  |    Compte de champ = 4        |
+---------------+---------------+---------------+---------------+
|  Compte de champ Scope = 1    |0|      selectorId = 302       |
+---------------+---------------+-+-------------+---------------+
|  Longueur de Scope 1 = 4      |0|  selectorAlgorithm = 304    |
+---------------+---------------+-+-------------+---------------+
|  Longueur de champ = 1        |0|      samplingSize = 309     |
+---------------+---------------+-+-------------+---------------+
|  Longueur de champ = 1        |0|  samplingPopulation = 310   |
+---------------+---------------+-+-------------+---------------+
|  Longueur de champ = 1        |
+---------------+---------------+

Enregistrement de données IPFIX associées :

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifiant d'ensemble = 265  |        Longueur = 11          |
+---------------+---------------+---------------+---------------+
|                              17                               |
+---------------+---------------+---------------+---------------+
|       3       |       1       |        10     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure J : Exemple d'interprétation de rapport de sélecteur pour l'échantillonnage aléatoire de n parmi N

Notes :
*	Une valeur de selectorAlgorithm de 3 représente un échantillonnage aléatoire de n parmi N.
*	samplingSize et samplingPopulation sont de type unsigned32 mais sont ici compressés à un octet.

 	6.5.2.4	Échantillonnage probabiliste uniforme
Dans l'échantillonnage probabiliste uniforme, chaque élément a la même probabilité p d'être choisi dans la population parente [RFC5475]. l'élément d'information spécifique de l'algorithme en cas d'échantillonnage probabiliste uniforme est :

samplingProbability : un nombre en virgule flottante pour la probabilité d'échantillonnage.

Exemple d'un sélecteur d'échantillonnage probabiliste uniforme de 15 % :

Enregistrement de gabarit d'options IPFIX :

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Identifiant d'ensemble = 3   |           Longueur = 22       |
+---------------+---------------+---------------+---------------+
| Identifiant de gabarit = 271  |     Compte de champ = 3       |
+---------------+---------------+---------------+---------------+
|    Compte de champ Scope = 1  |0|      selectorId = 302       |
+---------------+---------------+-+-------------+---------------+
|      Longueur de champ = 4    |0|   selectorAlgorithm = 304   |
+---------------+---------------+-+-------------+---------------+
|      Longueur de champ = 1    |0| samplingProbability = 311   |
+---------------+---------------+-+-------------+---------------+
|      Longueur de champ = 4    |
+---------------+---------------+

Enregistrement de données IPFIX associées :

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifiant d'ensemble = 271  |        Longueur = 11          |
+---------------+---------------+---------------+---------------+
|                              20                               |
+---------------+---------------+---------------+---------------+
|      4        |                          0,15                 |
+---------------+---------------+---------------+---------------+
|               |
+---------------+

Figure K : Exemple d'interprétation de rapport de sélecteur pour l'échantillonnage probabiliste uniforme

Notes :
*	Une valeur de selectorAlgorithm de 4 représente l'échantillonnage probabiliste uniforme.
* samplingProbability est du type float64 mais est compressé ici à float32.

 	6.5.2.5	Filtrage de correspondance de propriété
Cette classification inclut des correspondances sur les champs au sein d'un paquet et/ou sur les propriétés de l'état du routeur. Avec cette méthode, un paquet est choisi si un champ spécifique du paquet est égal à une valeur prédéfinie.

Les éléments d'information spécifiques de l'algorithme qui définissent les paramètres de configuration pour le filtrage de correspondance de propriété sont tirés de la gamme complète des éléments d'information disponibles.

Quand plusieurs éléments d'information différents sont définis, le filtre agit comme un ET logique. Noter que le OU logique n'est pas couvert par les spécifications PSAMP. L'enregistrement de gabarit d'options de filtrage sur la correspondance de propriéte NE DOIT PAS avoir plusieurs éléments d'information identiques. Le résultat du filtre est indépendant de l'ordre des éléments d'information dans l'enregistrement de gabarit d'options, mais l'ordre peut être important pour les besoins de mise en œuvre, car le premier filtre va devoir travailler à un débit plus élevé. Dans tous les cas, une mise en œuvre n'est pas obligée de respecter l'ordre de filtrage pour autant que le résultat est le même, et elle peut même mettre en œuvre le filtrage composite en une seule étape.

Comme le chiffrement altère la signification des champs chiffrés, quand la classe de filtrage par correspondance de propriété est fondé sur des champs chiffrés dans le paquet, elle DOIT être capable de reconnaître que le ou les champs ne sont pas disponibles et elle NE DOIT PAS choisir ces paquets sauf mention spécifique de la description de l'élément d'information. Même si ils sont ignorés, les paquets chiffrés DOIVENT être pris en compte pour l'élément d'information  packetsObserved du sélecteur [RFC5477], au titre de l'interprétation de rapport de statistiques de séquence de sélection.

Exemple d'un sélecteur de filtre fondé sur la correspondance , dont les règles sont :
Adresse de source IPv4 = 192.0.2.1
Adresse IPv4 de prochain bond = 192.0.2.129

Enregistrement de gabarit d'options IPFIX :
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Identifiant d'ensemble = 3   |        Longueur = 26          |
+---------------+---------------+---------------+---------------+
| Identifiant de gabarit = 266  |   Compte de champ = 4         |
+---------------+---------------+---------------+---------------+
|  Compte de champ Scope = 1    |0|     selectorId = 302        |
+---------------+---------------+-+-------------+---------------+
|   Longueur de Scope 1 = 4     |0|   selectorAlgorithm = 304   |
+---------------+---------------+-+-------------+---------------+
|       Longueur de champ = 1   |0|    sourceIPv4Address = 8    |
+---------------+---------------+-+-------------+---------------+
|       Longueur de champ = 4   |0|   ipNextHopIPv4Address = 15 |
+---------------+---------------+-+-------------+---------------+
|       Longueur de champ = 4   |
+---------------+---------------+

Enregistrement de données IPFIX associées :
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifiant d'ensemble = 266  |      Longueur = 11            |
+---------------+---------------+---------------+---------------+
|                              21                               |
+---------------+---------------+---------------+---------------+
|       5       |                        192.0.2 ...            |
+---------------+---------------+---------------+---------------+
| ... .1        |                        192.0.2 ...            |
+---------------+---------------+---------------+---------------+
| ... .129      |
+---------------+

Figure L : Exemple d'interprétation de rapport de sélecteur pour le filtrage fondé sur la correspondance et l'état de routeur

Notes :
*	Une valeur de selectorAlgorithm de 5 représente la filtrage de correspondance de propriété.
*	Dans ce filtre, il y a un mélange d'informations provenant du paquet et d'informations provenant du routeur.

 	6.5.2.6	Filtrage fondé sur le hachage
Dans le choix fondé sur le hachage, une fonction de hachage fonctionne sur le trafic IPv4. Les champs suivants DOIVENT être utilisés en entrée de la fonction de hachage :
- Champ d'identification IP
- Champ des fanions
- Décalage de fragment
- Adresse IP de source
- Adresse IP de destination
- Un certain nombre d'octets de la charge utile IP. Le nombre d'octets et le début du décalage DOIVENT être configurables si la fonction de hachage le supporte.

Pour les octets tirés de la charge utile IP, IPSX a un décalage fixe de 0 octet et une taille fixe de 8 octets. Le nombre et le décalage des octets de charge utile dans la fonction BOB DOIVENT être configurables.

Les gammes minimum de configuration DOIVENT être comme suit :

Nombre d'octets : de 8 à 32
Décalage : de 0 à 64

Si les octets de charge utile choisis ne sont pas disponibles et si la fonction de hachage peut prendre une entrée de taille variable, alors la fonction de hachage DOIT être appliquée avec les informations qui sont disponibles et une plus courte taille. Passer 0 comme substitut des octets de charge utile manquants n'est acceptable que si la fonction de hachage prend une taille fixe comme c'est le cas avec IPSX.

Si la fonction de hachage peut prendre une valeur d'initialisation, alors cette valeur DOIT être configurable.

Une fonction de choix fondée sur le hachage PEUT être configurable comme fonction de résumé. Tout processus de choix qui est configuré comme une fonction de résumé DOIT avoir la valeur de résultat incluse dans le rapport de paquet de base pour tout paquet sélectionné.

Chaque fonction de hachage utilisée comme un sélecteur de choix fondé sur le hachage exige sa propre valeur pour le selectorAlgorithm. Actuellement, on a défini BOB (6), IPSX (7), et CRC (8) et tous PEUVENT être utilisés pour le filrage ou la création d'un résumé de paquet. Seul BOB est recommandé et DEVRAIT être utilisé.

Les éléments d'information spécifiques d'algorithme EXIGÉS en cas de choix fondé sur le hachage sont :
hashIPPayloadOffset : décalage de charge utile utilisé par un sélecteur de choix fondé sur le hachage.
hashIPPayloadSize : taille de charge utile utilisée par un sélecteur de choix fondé sur le hachage.
hashOutputRangeMin : une ou plusieurs valeurs pour le début de chaque gamme de sortie potentielle.
hashOutputRangeMax : une ou plusieurs valeurs pour la fin de chaque gamme de sortie potentielle..
hashSelectedRangeMin : une ou plusieurs valeurs pour le début de chaque gamme choisie.
hashSelectedRangeMax : une ou plusieurs valeurs pour la fin de chaque gamme choisie.
hashDigestOutput : valeur booléenne, VRAI si le résultat de ce sélecteur a été configuré à être inclus dans le rapport de paquet comme résumé de paquet.

Note : Si plus d'une gamme de choix ou de résultat doit être envoyée, alors les éléments minimum et maximum peuvent être répétés comme nécessaire. Cela DOIT faire une ou plusieurs gammes non chevauchantes. Les éléments DEVRAIENT être envoyés comme des paires de minimum et maximum en ordre ascendant ; cependant, si elles sont envoyées dans le désordre, il y aura alors une seule façon d'interpréter les gammes pour produire une gamme non chevauchante et le processus de collecte DOIT être prêt à les accepter et les décoder.

L'élément d'information spécifique de l'algorithme suivant PEUT être envoyé, mais est facultatif pour des considérations de sécurité :

hashInitialiserValue : valeur d'initialisation de la fonction de hachage.

Comme le chiffrement altère la signification des champs chiffrés, quand la classification de filtrage fondé sur le hachage est fondée sur le ou les champs chiffrés dans le paquet, elle DOIT être capable de reconnaître que le ou les champs ne sont pas disponibles et NE DOIT PAS choisir ces paquets. Même si ils sont ignorés, les paquets chiffrés DOIVENT être pris en compte dans l'élément d'information packetsObserved du sélecteur [RFC5477], qui fait partie de l'interprétation de rapport de statistiques de séquence de sélection.

Exemple d'un sélecteur de filtre fondé sur le hachage, dont la configuration est :
Fonction de hachage = BOB
Hachage de décalage de charge utile IP = 0
Hachage de taille de charge utile IP = 16
Hachage de valeur d'initialisation = 0x9A3F9A3F
Hachage de  gamme de sortie = 0 à 0xFFFFFFFF
Hachage de gamme choisie = 100 à 200 et 400 à 500

Enregistrement de gabarit d'options IPFIX :

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Identifiant d'ensemble = 3   |        Longueur = 50          |
+---------------+---------------+---------------+---------------+
| Identifiant de gabarit = 269  |   Compte de champ = 8         |
+---------------+---------------+---------------+---------------+
| Compte de champ Scope = 1     |0|     selectorId = 302        |
+---------------+---------------+-+-------------+---------------+
|  Longueur de Scope 1= 4       |0|   selectorAlgorithm = 302   |
+---------------+---------------+-+-------------+---------------+
|       Longueur de champ = 1   |0|  hashIPpayloadOffset = 327  |
+---------------+---------------+-+-------------+---------------+
|       Longueur de champ = 4   |0|   hashIPpayloadSize = 328   |
+---------------+---------------+-+-------------+---------------+
|       Longueur de champ = 4   |0|  hashInitialiserValue = 329 |
+---------------+---------------+-+-------------+---------------+
|       Longueur de champ = 4   |0|   hashOutputRangeMin = 330  |
+---------------+---------------+-+-------------+---------------+
|       Longueur de champ = 4   |0|   hashOutputRangeMax = 331  |
+---------------+---------------+-+-------------+---------------+
|       Longueur de champ = 4   |0|  hashSeletionRangeMin = 332 |
+---------------+---------------+-+-------------+---------------+
|       Longueur de champ = 4   |0|  hashSeletionRangeMax = 333 |
+---------------+---------------+-+-------------+---------------+
|       Longueur de champ = 4   |0|  hashSeletionRangeMin = 332 |
+---------------+---------------+-+-------------+---------------+
|       Longueur de champ = 4   |0|  hashSeletionRangeMax = 333 |
+---------------+---------------+-+-------------+---------------+
|       Longueur de champ = 4   |
+---------------+---------------+

Enregistrement de données IPFIX associées :

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifiant d'ensemble = 266  |      Longueur = 45            |
+---------------+---------------+---------------+---------------+
|                              22                               |
+---------------+---------------+---------------+---------------+
|       6       |                            ...                |
+---------------+---------------+---------------+---------------+
| ...   0       |                            ...                |
+---------------+---------------+---------------+---------------+
| ...  16       |                      0x9A3F9A ...             |
+---------------+---------------+---------------+---------------+
| ...  3F       |                            ...                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ...   0       |                      0xFFFFFF ...             |
+---------------+---------------+---------------+---------------+
| ...  FF       |                        ... 100                |
+---------------+---------------+---------------+---------------+
|      ...      |                        ... 200                |
+---------------+---------------+---------------+---------------+
|      ...      |                        ... 400                |
+---------------+---------------+---------------+---------------+
|      ...      |                        ... 500                |
+---------------+---------------+---------------+---------------+
|      ...      |
+---------------+

Figure M : Exemple d'interprétation de rapport de sélecteur pour le filtrage fondé sur le hachage

Note : Une valeur de selectorAlgorithm de 6 représente le filtrage fondé sur le hachage utilisant l'algorithme BOB.

 	6.5.2.7	Autres méthodes de sélection
De nouvelles méthodes de sélection potentielles PEUVENT être ajoutées. Certaines nouvelles méthodes de sélection, comme l'échantillonnage probabiliste non uniforme et l'échantillonnage dépendant de l'état du flux, sont décrites dans la [RFC5475], avec plus de références.

Une valeur unique DOIT être allouée à chaque nouvelle méthode de choix pour l'élément d'information selectorAlgorithm. Son ou ses paramètres de configuration, ainsi que la façon de les rapporter avec un gabarit d'options, DOIVENT être clairement spécifiés.

 	6.5.3	Interprétation des statistiques de séquence de sélection
Un sélecteur PEUT être utilisé dans plusieurs séquences de sélection. Cependant, chaque utilisation d'un sélecteur doit être indépendante, afin que chaque instance logique séparée d'un sélecteur DOIT maintenir son propre état de sélection individuel et ses statistiques.

L'interprétation de rapport de statistiques de séquence de sélection DOIT inclure le nombre de paquets observés (taille de population) et le nombre de paquets choisis (taille d'échantillon) par chaque instance de ses sélecteurs primaires.

Au sein d'une séquence de choix composée de plusieurs sélecteurs primaires, le nombre de paquets choisis pour un sélecteur est égal au nombre de paquets vus par le prochain sélecteur. L'ordre des sélecteurs dans l'interprétation de rapport de statistiques de séquence de sélection DOIT correspondre à l'ordre des sélecteurs dans la séquence de choix.

Si l'ensemble complet de statistiques n'est pas envoyé au titre des rapports de paquet de base, l'appareil PSAMP DOIT exporter une interprétation de rapport de statistiques de séquence de sélection pour chaque séquence de choix, en utilisant un gabarit d'options contenant les éléments d'information suivants :

Scope : selectionSequenceId
Non-scope : packetsObserved
                     packetsSelected (premier sélecteur)
                     ...
                     packetsSelected (dernier sélecteur)

L'élément d'information packetsObserved [RFC5477] DOIT contenir le nombre de paquets vus au point d'observation, et par conséquent passés au premier sélecteur dans la séquence de choix. L'élément d'information packetsSelected [RFC5477] contient le nombre de paquets choisis par un sélecteur dans la séquence de choix.

La fraction de sélection atteinte pour la séquence de choix est calculée en divisant le nombre de paquets choisis (élément d'information packetsSelected) pour le dernier sélecteur par le nombre de paquets observés (élément d'information packetsObserved). La fraction de sélection atteinte peut être calculée pour chaque sélecteur en divisant le nombre de paquets choisis pour ce sélecteur par la valeur pour le sélecteur précédent.

Les statistiques pour la séquence entière DEVRAIENT être prises à un seul instant logique ; la valeur entrée pour un sélecteur DOIT être égale à la valeur du résultat du sélecteur précédent.

L'interprétation de rapport de statistiques de séquence de sélection DOIT être exportée périodiquement.

Exemple d'interprétation de rapport de statistiques de séquence de sélection :

Séquence de choix 7 (Filtrage->Échantillonnage) :
Observé : 100 (observationPointId 1, Interface 5)
Choisi : 50 (selectorId 5, correspond à IPV4SourceAddress 192.0.2.1)
Choisi : 6 (selectorId 10, échantillonneur : un sur dix au hasard)

Séquence de choix 9 (Échantillonnage->Filtrage) :
Observé : 100  (observationPointId  1, Interface 5)
Choisi : 10  (selectorId 10, échantillonneur : un sur dix au hasard)
Choisi : 3  (selectorId 5, correspond à IPV4SourceAddress 192.0.2.1)

Enregistrement de gabarit d'options IPFIX :

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Identifiant d'ensemble = 3   |         Longueur = 26         |
+---------------+---------------+---------------+---------------+
| Identifiant de gabarit = 267  |     Compte de champ = 4       |
+---------------+---------------+---------------+---------------+
| Compte de champ Scope = 1     |0|  selectionSequenceId = 301  |
+---------------+---------------+-+-------------+---------------+
|  Longueur de Scope 1 = 4      |0|    paquetsObserved = 318    |
+---------------+---------------+-+-------------+---------------+
|       Longueur de champ = 4   |0|    paquetsSelected = 319    |
+---------------+---------------+-+-------------+---------------+
|       Longueur de champ = 4   |0|    paquetsSelected = 319    |
+---------------+---------------+-+-------------+---------------+
|       Longueur de champ = 4   |
+---------------+---------------+

Enregistrement de données IPFIX associées :

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifiant d'ensemble = 267  |        Longueur = 36          |
+---------------+---------------+---------------+---------------+
|                               7                               |
+---------------+---------------+---------------+---------------+
|                              100                              |
+---------------+---------------+---------------+---------------+
|                              50                               |
+---------------+---------------+---------------+---------------+
|                               6                               |
+---------------+---------------+---------------+---------------+
|                               9                               |
+---------------+---------------+---------------+---------------+
|                              100                              |
+---------------+---------------+---------------+---------------+
|                              10                               |
+---------------+---------------+---------------+---------------+
|                               3                               |
+---------------+---------------+---------------+---------------+

Figure N : Exemple d'interprétation des statistiques de séquence de sélection

Notes :
* Les fractions de sélection atteintes pour la séquence de choix 7 sont :
            Filtre 10 : 50/100
            Échantillonneur 5 : 6/50
            Nombre d'échantillons choisis : 6

* Les fractions de sélection atteintes pour la séquence de choix 9 sont :
            Échantillonneur 5 : 10/100
            Filtre 10 : 3/10
            Nombre d'échantillons choisis : 3

 	6.5.4	Interprétation de la précision du rapport
Afin que le processus de collecte détermine la précision inhérente des quantités  rapportées (par exemple, des horodatages) l'appareil PSAMP DEVRAIT envoyer une interprétation de rapport de précision.

L'interprétation de rapport de précision DOIT être exportée par un enregistrement de gabarit d'options avec une portée qui contient l'élément d'information pour lequel la précision est demandée. Dans le cas où la précision est spécifique d'un gabarit, une seconde portée contenant la valeur de templateId DOIT être ajoutée à l'enregistrement de gabarit d'options. La précision DEVRAIT être rapportée soit avec l'élément d'information absoluteError [RFC5477] soit avec l'élément d'information relativeError [RFC5477].

Interprétation de rapport de précision utilisant l'élément d'information absoluteError :
Scope : informationElementId
Non-scope : absoluteError

Interprétation de rapport de précision utilisant l'élément d'information absoluteError et une double portée :
Scope : templateId informationElementId
Non-scope : absoluteError

Interprétation de rapport de précision utilisant l'élément d'information relativeError :
Scope : informationElementId
Non-scope : relativeError

Interprétation de rapport de précision utilisant l'élément d'information relativeError et une double portée :
Scope : templateId informationElementId
Non-scope : relativeError

Par exemple, la précision d'un élément d'information dont le type de données abstraites est dateTimeMilliseconds [RFC5102], pour lequel l'unité spécifiée est la milliseconde, peut être spécifiée avec l'élément d'information absoluteError  avec des unités de milliseconde. Dans ce cas, l'intervalle d'erreur est la valeur d'élément d'information +/- la valeur rapportée dans "absoluteError".

Par exemple, la précision d'un élément d'information pour estimer la précision d'un flux échantillonné, pour lequel l'unité serait spécifiée en octets, peut être spécifiée avec l'élément d'information relativeError avec des unités d'octet. Dans ce cas, l'intervalle d'erreur est la valeur d'élément d'information +/- la valeur rapportée dans le relativeError multiplié par la valeur d'élément d'information rapportée.

Une solution de remplacement au rapport de l'élément d'information absoluteError ou relativeError dans l'interprétation de rapport de précision est de rapporter les deux. Dans ce cas, celui qui est le moins précis pour la valeur rapportée devrait être utilisé.

Si la précision d'une quantité rapportée change pendant le processus de mesure, une nouvelle interprétation de rapport de précision DOIT être générée. Le processus de collecte DOIT garder la précision de la dernière interprétation de rapport de précision.

Exemple d'interprétation de rapport de précision utilisant l'élément d'information absoluteError et une double portée : le timeMicroseconds contenu dans le gabarit 5 a une précision de +/- 2 ms, représentée par l'élément d'information absoluteError.

Scope : templateId = 6
             informationElementId = timeMicroseconds
Non-scope : absoluteError = 2 ms

Enregistrement de gabarit d'options IPFIX :

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifiant d'ensemble = 3    |         Longueur = 22         |
+---------------+---------------+---------------+---------------+
| Identifiant de gabarit = 267  |    Compte de champ = 3        |
+---------------+---------------+---------------+---------------+
| Compte de champ Scope = 2     |0|       templateId = 145      |
+---------------+---------------+-+-------------+---------------+
|  Longueur de Scope 1 = 2      |0| InformationElementId = 303  |
+---------------+---------------+-+-------------+---------------+
|  Longueur de Scope 2 = 2      |0|      absoluteError = 320    |
+---------------+---------------+-+-------------+---------------+
|       Longueur de champ = 4   |
+---------------+---------------+

Enregistrement de données IPFIX associées :

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifiant d'ensemble = 267  |        Longueur = 12          |
+---------------+---------------+---------------+---------------+
|              5                |             324               |
+---------------+---------------+---------------+---------------+
|                    2  (codé comme un float32)                 |
+---------------+---------------+---------------+---------------+

Figure O : Exemple d'interprétation des statistiques de séquence de sélection

Note : absoluteError est du type float64 mais est compressé ici à float32.

Le second exemple affiche une interprétation de rapport de précision utilisant l'élément d'information relativeError et une seule portée : le timeMicroseconds a une erreur de 5 %, représentée par un élément d'information proportionalAccuracy.

Scope : informationElementId = timeMicroseconds
Non-scope : relativeError = 0,05

Enregistrement de gabarit d'options IPFIX :

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Identifiant d'ensemble = 3   |         Longueur = 18         |
+---------------+---------------+---------------+---------------+
| Identifiant de gabarit = 268  |    Compte de champ = 2        |
+---------------+---------------+---------------+---------------+
|  Compte de champ Scope = 1    |0| InformationElementId = 303  |
+---------------+---------------+-+-------------+---------------+
|   Longueur de Scope 1 = 2     |0|      relativeError= 321     |
+---------------+---------------+-+-------------+---------------+
|   Longueur de champ = 4       |
+---------------+---------------+

Enregistrement de données IPFIX associées :

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifiant d'ensemble = 267  |        Longueur = 10          |
+---------------+---------------+---------------+---------------+
|             324               |                     0,05 ...  |
+---------------+---------------+---------------+---------------+
| ...(codé comme float32)       |
+---------------+---------------+

Figure P : Exemple d'interprétation des statistiques de séquence de sélection

Note : relativeError est de type float64 mais est compressé ici à float32.

 	7.	Considérations sur la sécurité

Comme IPFIX a été choisi comme protocole d'exportation de PSAMP et comme les exigences pour la sécurité de PSAMP ne sont pas plus strictes que celles de IPFIX, se reporter au protocole d'exportation de IPFIX [RFC5101] pour les considérations sur la sécurité.

Dans le rapport de paquet de base, un appareil PSAMP exporte un certain nombre d'octets contigus depuis le début du paquet, incluant l'en-tête de paquet (qui inclut les en-têtes de couche de liaison, de couche réseau, et autres en-têtes d'encapsulation) et des octets suivants de la charge utile de paquet. L'appareil PSAMP NE DEVRAIT PAS exporter toute la charge utile des conversations, car cela serait de l'espionnage [RFC2804]. L'appareil PSAMP DOIT respecter les règles locales de confidentialité.

 	8.	Considérations relatives à l’IANA

Le protocole PSAMP, comme décrit dans le présent document, a deux ensembles de numéros alloués. Les considérations sur leur allocation sont discutées dans cette section, en utilisant les exemples de politiques décrites dans la [RFC5226], "Lignes directrices pour la rédaction d'une section de considérations relatives à l'IANA".

 	8.1	Considérations relatives à IPFIX
Comme le protocole PSAMP utilise le protocole IPFIX, se reporter à la section de considérations relatives à l'IANA de la [RFC5101] pour les allocations des numéros utilisés dans le protocole et pour les numéros utilisés dans le modèle d'information.

 	8.2	Considérations relatives à PSAMP
Chaque nouvelle méthode de choix DOIT recevoir une valeur univoque pour l'élément d'information selectorAlgorithm  [RFC5477]. Le contenu initial de ce registre se trouve au paragraphe 8.2.1 de la [RFC5477]. Ses paramètres de configuration, ainsi que la façon de les rapporter avec un gabarit d'options, DOIVENT être clairement spécifiés.

Les nouvelles allocations pour des méthodes de choix PSAMP seront administrées par l'IANA, selon le principe du premier arrivé, premier servi [RFC5226], sous réserve d'une révision par experts [RFC5226]. Le groupe d'experts doit faire une confrontation des définitions d'éléments d'information avec les éléments d'information déjà définis quant à la complétude, la précision, et la redondance. Ces experts seront initialement pris parmi les présidents du groupe de travail et les éditeurs de document des groupes de travail IPFIX et PSAMP.

 	9.	Références
 	9.1	Références normatives

[RFC2119]	S. Bradner, "Mots clés à utiliser dans les RFC pour indiquer les niveaux d'exigence", BCP 14, mars 1997. (MàJ par RFC8174)

[RFC5101]	B. Claise, éd., "Spécification du protocole d'exportation d'informations de flux IP (IPFIX) pour l'échange d'informations de flux de trafic IP", janvier 2008. (P.S.) (Obsolète, voir RFC7011, STD77) 

[RFC5102]	J. Quittek et autres, "Modèle d'informations pour l'exportation d'informations de flux IP", janvier 2008. (P.S.) (Remplacée par RFC7012)

[RFC5226]	T. Narten et H. Alvestrand, "Lignes directrices pour la rédaction d'une section Considérations relatives à l'IANA dans les RFC", BCP 26, mai 2008. (Remplace RFC2434 ; remplacée par RFC8126) 

[RFC5475]	T. Zseby et autres, "Techniques d'échantillonnage et de filtrage pour sélection de paquet IP", mars 2009. (P.S.)

[RFC5477]	T. Dietz et autres, "Modèle d'information pour l'exportation d'échantillonnage de paquet", mars 2009. (P.S.)

 	9.2	Références pour information

[RFC2804]	IAB, IESG, "Politique de l'IETF en matière d'écoutes", mai 2000. (Information)

[RFC3917]	J. Quittek, T. Zseby, B. Claise, S. Zander, "Exigences pour l'exportation d'informations de flux IP (IPFIX)", octobre  2004. (Information)

[RFC4271]	Y. Rekhter, T. Li et S. Hares, "Protocole de routeur frontière version 4 (BGP-4)", janvier 2006. (D.S.) (MàJ par RFC6608, RFC8212, 9072)

[RFC5470]	G. Sadasivan et autres, "Architecture pour l'exportation d'informations de flux IP", mars 2009. (Information)

[RFC5474]	N. Duffield et autres, "Cadre de travail pour la sélection et le rapport de paquet", mars 2009. (Information)

 	10.	Remerciements

Les auteurs tiennent à remercier le groupe de travail PSAMP, et en particulier Paul Aitken pour les discussions fructueuses et ses multiples relectures du document.

 	Adresse des auteurs

Benoit Claise	Juergen Quittek	Andrew Johnson	
Cisco Systems	NEC Europe Ltd.	Cisco Systems	
De Kleetlaan 6a b1	Network Laboratories	96 Commercial Quay	
1831 Diegem	Kurfuersten-Anlage 36	Edinburgh EH6 6LX	
Belgique	69115 Heidelberg - Allemagne	Écosse	
téléphone : +32 2 704 5622	téléphone : +49 6221 90511-15	téléphone : +44 131 561 3641	
mél : bclaise@cisco.com	mél : quittek@nw.neclab.eu	mél : andrjohn@cisco.com