Le format de la trame SNMPv3 est très différent du format de SNMPv1. Ils sont toutefois codés tous deux dans le format ASN.1 [ISO 87]. Ceci assure la compatibilité des types de données entres les ordinateurs d’architectures différentes.

Pour rendre plus facile la distinction entre les versions, le numéro de la version SNMP est placé tout au début du paquet. La figure suivante montre le trame SNMPv3:



Ce shéma montre clairement les différents champs du paquet SNMPv3. Toutefois, le contenu de chaque champ varie selon la situation. Selon que l’on envoie une requête, une réponse, ou un message d’erreur, les informations placées dans le paquet respectent des règles bien définies dans le standard. Voici comment les champs d’un paquet SNMPv3 sont remplis :

Version SNMP
Pour SNMPv3, on place la valeur 3 dans ce champ. On place 0 pour un paquet SNMPv1.

Identificateur de message
Ce champ est laissé à la discrétion du moteur SNMP. On retrouve souvent des algorithmes, où le premier message de requête est envoyé avec un nombre aléatoire et les suivants avec les incréments de 1. Les paquets qui sont émis en réponse à une requête portent la même identification que le paquet de la requête.

Taille maximale
Le moteur choisit la taille maximale d’une réponse à une requête selon ses capacités en mémoire tampon et ses limites à décoder de longs paquets. Quand on envoie une réponse à une requête, on doit veiller à ne pas dépasser la taille maximale.

Drapeaux



Comme le shéma nous l'indique, trois bits sont utilisés pour indiquer :

- Si une réponse est attendue à la réception de ce paquet. (Reportable Flag)
- Si un modèle d’encryption a été utilisé (Privacy Flag)
- Si un modèle d’authentification a été utilisé (Authentification Flag)

On note qu’il n’est pas possible d’envoyer un paquet qui utilise un modèle d’encryption sans qu’il soit aussi authentifié, donc qu’il utilise un modèle d’authentification.

Le modèle de sécurité
Ce module identifie le type de sécurité qui est utilisé pour encrypter le reste du paquet. Cet identificateur doit identifier de façon unique chaque module de sécurité. Le groupe de l’IETF recommande qu’il y ait relativement peu de modules de sécurité pour permettre de maximiser l’intercompatibilité des équipements. Actuellement, l’algorithme d’encryption DES (Data Encryption Standard) et l’algorithme d’authentification HMAC-MD5-96 ont été choisis comme algorithmes utilisés dans SNMPv3. HMAC-SHA-96 est optionnel.

Les informations de sécurité
Ces informations ne sont pas décrites dans le standard SNMPv3, ce bloc est laissé au soin des modules de sécurité. D’un module de sécurité à un autre, ces informations seront différentes. Le module de sécurité DES a standardisé le contenu de ce bloc.

Les identificateurs de contextes
Avec SNMPv1, il était possible avoir qu'une seule base d’informations (MIB) par agent. Ceci n’est pas suffisant pour certains équipements qui peuvent contenir plusieurs fois les mêmes variables. Par exemple, un commutateur ATM contient plusieurs cartes qui ont chacune leurs propres bases d’informations. Le contexte permet de distinguer entre plusieurs bases d’informations et même plusieurs agents. On distingue entre des agents, par exemple, quand on a un moteur qui agit comme passerelle entre SNMPv3 et du SNMPv1. On envoie donc un paquet SNMPv3 en identifiant à quel agent SNMPv1 on désire que le paquet soit retransmis.