5. Protokollkodierung, Verbindung und Übertragung (Protocol Encoding, Connection, and Transfer)
Das LDAP-Protokoll ist für den Betrieb über ein verbindungsorientiertes und zuverlässiges Transportmittel konzipiert. Der Datenstrom wird in Oktette (8-Bit-Einheiten) unterteilt; jedes Oktett und jedes Bit hat auf Protokollebene eine Bedeutung.
LDAPMessage wird mit den ASN.1 Basic Encoding Rules (BER) codiert. Um die Interoperabilität sicherzustellen, verwenden Implementierungen nur das in RFC 4511 festgelegte BER-Teilset: Die Länge (length) verwendet die bestimmte Form (definite form), Zeichenketten und Oktettketten werden gemäß ihrer LDAP-spezifischen Codierung übertragen, und die Marken (tag) und Werte der Protokollelemente MÜSSEN den in Kapitel 4 angegebenen ASN.1-Definitionen entsprechen.
Eine LDAP-Sitzung wird üblicherweise über TCP aufgebaut. Nach dem Verbindungsaufbau sendet der Client LDAPMessage, und der Server antwortet über dieselbe Verbindung mit einer Antwort oder einer unaufgeforderten Benachrichtigung (unsolicited notification). Sofern für eine bestimmte Operation nichts anderes festgelegt ist, lässt LDAP das gleichzeitige Senden mehrerer Requests über dieselbe Verbindung zu; die Antwort wird über messageID dem Request zugeordnet.
Implementierungen MÜSSEN den von der Transportschicht bereitgestellten Oktettstrom in ein vollständiges BER-Element zerlegen, bevor sie LDAPMessage interpretieren. Wird die Verbindung geschlossen, kann die wartende Operation kein protokollebene Ergebnis mehr liefern; der Client MUSS dies als Verbindungsfehler betrachten und je nach lokaler Richtlinie erneut versuchen oder einen Fehler melden.