5. 协议编码, 连接和传输 (Protocol Encoding, Connection, and Transfer)
LDAP 协议设计为运行在面向连接且可靠的 transport 上. 数据流按 octet (8 bit 单元) 划分, 每个 octet 以及每个 bit 都具有协议意义.
LDAPMessage 使用 ASN.1 Basic Encoding Rules (BER) 编码. 为了保证互操作性, 实现只使用 RFC 4511 规定的 BER 子集: length 使用 definite form, 字符串和 octet string 按其 LDAP-specific encoding 传输, 协议元素的 tag 和 value 必须符合第 4 章给出的 ASN.1 定义.
一个 LDAP session 通常建立在 TCP 之上. client 建立连接后发送 LDAPMessage, server 按相同连接返回 response 或 unsolicited notification. 除非特定 operation 另有说明, LDAP 允许在同一连接上并发发送多个 request; response 使用 messageID 与 request 关联.
实现必须把传输层提供的 octet stream 解析为完整 BER element 后再解释 LDAPMessage. 如果连接关闭, 正在等待的 operation 不再有协议级结果可返回; client 应把它视为连接失败并按本地策略重试或报告错误.