Basic Encoding Rules: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Bot: Modifico: fr:Basic Encoding Rules |
m Correzioni ortografiche |
||
Riga 1:
{{W|informatica|luglio 2007|[[Utente:LaseriumFloyd|LaseriumFloyd]] 10:55, 29 lug 2007 (CEST)}}
'''Basic Encoding Rules''' (abbreviazione '''BER''') è un sistema di codifica composto da una serie di regole per la conversione di dati eterogenei in flussi di [[byte|
La codifica BER è strettamente legata allo standard [[ASN.1]] ed è utilizzata per le comunicazioni [[SNMP]] e [[LDAP]].
Riga 22:
Come si può immaginare la codifica di V dipende dal tipo T.
Ci sono alcuni tipi predefiniti in ASN.1 (si dice che sono ''Tag appartenenti alla Class UNIVERSAL'').
Per maggiori
Riga 68:
Nel secondo caso vanno invece codificati gli altri bytes di ''T''.
==== Altri
Per codificare gli altri
#si converte l' ''ID'' in binario
#si aggiunge un '''1''' ogni 7 bit
Riga 100:
==== Esempio 2 di codifica di T ====
Supponiamo di voler codificare un tipo PRIVATE e PRIMITIVE con <math>ID = 250_{10}</math><br \>
<math>ID>30</math> e quindi serviranno più
Primo byte: <br />
Riga 110:
In definitiva in questo caso <math>T = DF81FA_{16}</math> ed è di 3 [[byte|
=== Codifica di L ===
In questa sezione si indica con ''Len(V)'' il numero di
La codifica di L è strettamente legata alla lunghezza del dato codificato ''V''.
Se si conosce a priori ''Len(V)'' allora si procede con la codifica ''definite length'', altrimenti si applica la codifica ''indefinite length''. La prima tecnica è preferibile in quanto permette un Decoding più semplice.
Riga 124:
===== Caso 1: ''L'' in 1 byte - ''short definite form'' =====
Questo è il caso più semplice. ''V'' è codificato in meno di 127 bytes ed L contiene esclusivamente il valore di ''Len(V)'' in esadecimale </br>
Il limite di 127
Ciò è utile in fase di Decoding, infatti se il primo bit è zero, significa che è stata usata la codifica di L su un solo byte.
[[immagine:Short_Defined_Form_L.JPG |thumb|center|L in Short Defined Form]]</br>
Riga 137:
La formula del punto 3 ha la seguente giustificazione:
*aggiungendo <math>80_{16}</math> si obbliga l'ultimo bit del primo byte di L ad essere 1.
*nei primi 7
[[immagine:Long_Defined_Form_L.JPG |thumb|650px|center|L in Long Defined Form]]</br>
In fase di Decoding per capire che stiamo usando una codifica di L su più
*il primo bit del primo byte di ''L''= 1
*gli altri 7 bit del primo byte devono essere diversi da <math>0000000_2</math>
Riga 195:
==== Codifica di ''OCTECT STRING'' ====
In ASN.1 sono definite una grande varietà di stringhe, ma l'OCTECT STRING è quella fondamentale. In questo caso ogni carattere occupa 1 byte e viene utilizzata la codifica [[ASCII]]. </br>
Ad esempio l' OCTECT STRING "ciao" viene codificato in 4
==== Codifica di ''OBJECT IDENTIFIER'' ====
Riga 201:
I passi per codificare un OID sono i seguenti:
#si pone nel primo [[byte]] il valore <math>40*primonumero + secondonumero</math>
#si codificano gli altri numeri in [[byte|
##se <math>numero < 127 </math> si usa semplicemente la rappresentazione binaria di ''numero''
##se <math>numero < 127 </math> si usa la rappresentazione binaria di ''numero'' con:
|