Passa al contenuto principale

8. Serialization using the Basic Encoding Rules (Serializzazione utilizzando le regole di codifica di base)

8. Serialization using the Basic Encoding Rules (Serializzazione utilizzando le regole di codifica di base)

Quando un'entità SNMP serializza un messaggio SNMP, utilizza le regole di codifica di base (Basic Encoding Rules, BER) di ASN.1 [BER], con le seguenti restrizioni:

  1. Quando si codifica il campo lunghezza, viene utilizzata solo la forma definita. L'uso della forma indefinita è proibito.

  2. Quando si codifica un valore di tipo INTEGER, si applica la restrizione che il valore sia nell'intervallo da -2^31 a 2^31-1 incluso.

  3. Quando si codifica il valore di un tipo Counter32, Counter64 o Gauge32, vengono utilizzati solo valori non negativi. Il valore viene codificato come INTEGER, ma la restrizione nel punto 2 non si applica.

  4. Quando si codifica un valore di tipo TimeTicks, si applica la restrizione che il valore sia nell'intervallo da 0 a 2^32-1 incluso.

  5. Quando si codifica un OCTET STRING, il valore viene codificato utilizzando il metodo primitivo a lunghezza definita.

Le BER sono molto tolleranti rispetto alle codifiche che accetteranno. Ad esempio, quando si decodifica il campo lunghezza, vengono accettate sia la forma definita che la forma indefinita. Nell'interesse della semplicità del protocollo e della facilità di implementazione, tutte le implementazioni SNMP DEVONO seguire le restrizioni definite nei punti da 1 a 5 sopra quando codificano i valori. Questo garantisce che tutti i destinatari possano decodificare i valori.

Tuttavia, quando si decodificano i valori, un'implementazione SNMP DOVREBBE accettare valori che non sono conformi alle restrizioni sopra indicate. Nel caso di una codifica non conforme, l'implementazione SNMP dovrebbe interpretare il valore nel miglior modo possibile e continuare con il messaggio.