- Basic encoding rules
-
Basic Encoding Rules
Le codage Basic Encoding Rules (règles d'encodage basiques) ou son acronyme BER est un des format d'encodage définie par le standard ASN.1.
Sommaire
Description
Le BER fait partie des premières règles édictées par le standard ASN.1 pour l'encodage d'informations abstraites dans un flux de données. Les règles, connues dans le jargon ASN.1 comme la syntaxe de transfert, donnent les séquences exactes d'octets qui sont utilisées pour encoder une donnée. Cette syntaxe définie les éléments suivants : la représentation des types de données de base, la façon de construire des éléments complexes ou composés à partir d'éléments plus basiques. La syntaxe du codage BER, ainsi que ses sous-ensembles Canonical Encoding Rules (CER) et Distinguished Encoding Rules (DER) sont définis dans les standards X.690 de l'ITU-T, qui sont eux-mêmes une partie de la série de documents de l'ASN.1.
Le format BER donne un format pour encoder les structures de données ASN.1, qui se décrit et se délimite lui-même. Chaque element est encodé avec un type, une longueur, les valeurs et si nécessaire un marqueur de fin. Ce type d'encodage est couramment surnommé type-length-value (type-longueur-valeur) ou simplement encodage TLV. Ce format permet au récepteur du message de décoder des données au format ASN.1 même si le flux est incomplet et sans avoir de connaissances a priori de la taille, du contenu et de la sémantique des données[1].
Comparaison par rapport à des formats alternatifs
La différence clé du format BER (et également CER et DER) est la flexibilité apportée par sa syntaxe. Comme le dit le standard X.690 : "Des encodages alternatifs sont permis par le BER comme une option de l'émetteur. Les récepteurs qui se disent conformes au BER devraient accepter toutes les alternatives"[1]. Par exemple, lorsqu'il encode une valeur composée (c'est-à-dire une valeur composée de plusieurs valeurs plus petites et déjà encodées), l'émetteur peut utiliser une des trois formes pour indiquer la longueur des données[1]. Le récepteur doit être capable d'accepter tout les encodages conformes pour se dire conforme au codage BER. D'un autre côté, les encodages CER et DER font de la longueur une spécification optionnelle.
Une idée commune sur BER est qu'il est "inefficace" comparé à d'autres règles d'encodage. Les défenseurs de BER ont argumenté que cette impression était surtout due aux implémentations ratées plutôt qu'à des faiblesses dans les règles d'encodage[2]. Ces implémentations reposent sur la flexibilité de BER pour utiliser une logique d'encodage plus facile à coder, mais qui produit des données plus grosses que nécessaires. Que ces insuffisances soit réelles ou pas, cela a conduit à de nombreuses alternatives d'encodage dont le Packed Encoding Rules, qui a pour objectif d'améliorer les performances et la taille de BER.
D'autre alternatives fournissant la flexibilité de BER mais utilisant d'autres encodages sont toujours développées. Les plus populaires sont basées sur XML, comme le XML Encoding Rules et l'ASN.1 SOAP[3]. De plus, il existe un standard pour convertir les schémas XML en schémas ASN.1 qui peut lui même être encodé en utilisant BER[4].
Utilisation
BER reste malgré tout un format populaire pour transmettre des données entre des systèmes dont l'encodage natif diffère.
- Le protocole SNMP demande l'encodage ASN.1 avec BER.
- Le standard de signature numérique PKCS#7 utilise également ASN.1 avec BER pour encoder les messages cryptés.
- De nombreux systèmes de télécommunication utilisent ASN.1 avec BER pour transmettre des messages à travers leur réseau[5], comme l'ISDN et les services des téléphones mobiles.
- Les messages LDAP sont encodés en BER.
Notes et références
Cet article est basé sur une traduction de la Free On-line Dictionary of Computing et est utilisé avec permission selon la GFDL.
Voir aussi
Liens internes
- Canonical Encoding Rules
- Distinguished Encoding Rules
- Packed Encoding Rules
- SNMP
Liens externes
- (en) ITU-T X.690, ISO/IEC 8825-1
- (en) ITU-T X.892, ISO/IEC 24824-2
- (en) ITU-T X.694, ISO/IEC ISO/IEC 8825-5
- (en) simple BER tutorial
Catégorie : Codage des données
Wikimedia Foundation. 2010.