上次對Ldap做了簡單的介紹,以及實現一個JNDI Ldap service provider需要做哪些事情,這次來說說Ldap協議。
這里的協議主要是指網絡傳輸協議,消息的編碼格式以及client和server的交互方式。
先說交互方式,Ldap明確指出:協議雙方交互信息必須封裝為LDAPMessage進行。也就是說client向server發的是LDAPMessage,
server向client發的也是LDAPMessage。這樣server和client只需要收發LDAPMessage就可以了,何等簡單。
協議本身是基于request-response方式進行的,就是問答方式了:client發出請求,server接收到后處理,最后將結果返回給client,
當然也有個別request沒有response,如abandon,而search有多個response。消息到達的順序可以是任意的,也就是說client可以使勁的
發request,然后再去接收response,接收到的response并不保證和request的順序一致,request和response的對應通過MessageID保證。
這部分要完全實現還是有點小麻煩的,目前我們的實現都是發一個收一個,避免這種情況的產生,如果有時間的話還是希望能實現一下,
蠻有挑戰的。
關于LDAPMessage的編碼解碼下次寫,玩游戲去了:-)