5. Encodage, connexion et transfert du protocole (Protocol Encoding, Connection, and Transfer)
Le protocole LDAP est conçu pour fonctionner sur un transport orienté connexion et fiable. Le flux de données est divisé en octets (unités de 8 bits), chaque octet et chaque bit ayant une signification au niveau du protocole.
LDAPMessage est encodé à l'aide des ASN.1 Basic Encoding Rules (BER). Pour garantir l'interopérabilité, les implémentations n'utilisent que le sous-ensemble BER spécifié par la RFC 4511 : la longueur (length) utilise la forme définie (definite form), les chaînes de caractères et les octet strings sont transmises selon leur encodage spécifique à LDAP (LDAP-specific encoding), et les balises (tag) et valeurs des éléments de protocole doivent respecter les définitions ASN.1 données au chapitre 4.
Une session LDAP est généralement établie sur TCP. Après avoir établi la connexion, le client envoie des LDAPMessage, et le serveur renvoie une réponse ou une notification non sollicitée (unsolicited notification) sur la même connexion. Sauf indication contraire pour une opération donnée, LDAP autorise l'envoi simultané de plusieurs requêtes sur une même connexion ; la réponse est associée à la requête à l'aide de messageID.
Les implémentations doivent analyser le flux d'octets fourni par la couche de transport sous la forme d'un élément BER complet avant d'interpréter le LDAPMessage. Si la connexion est fermée, l'opération en attente ne peut plus recevoir de résultat au niveau protocole ; le client doit la considérer comme un échec de connexion et, selon sa politique locale, relancer ou signaler l'erreur.