重新導向伺服器是特別為執行重新導向作業 (例如指定至 Instant Messaging 伺服器的連線端點) 而配置的 Instant Messaging 伺服器實例。將重新導向伺服器增加至您的部署,可藉由將可能於相同主機上互相通訊的使用者分組,來減少伺服器間的通訊量。這可減少您部署中往返於伺服器間的線上狀態通知量。使用者的群組由通訊錄清單內容來決定。通訊錄清單中的共用項目表示較高的通訊可能性。
Instant Messaging 會決定您部署中使用者的最佳除法,並建立使用者的群組或分割區。演算法 Instant Messaging 的用法如下:
決定一或多組使用者,或使用者網路以及它們在您部署中的連線。接著重新導向伺服器會建立稱為使用者對網路對映的表格可將每個使用者對映至使用者網路。
大於最弱繫結上最大分割區大小的分割區使用者網路,例如每個弱連線元件的最大大小,不再大於已配置的分割區大小。弱繫結可由使用者網路間的少數連線來決定,然而,當分割使用者網路時,其他參數,例如地理限制、每個使用者網路連線數,以及其他由管理員設定的限制,也可能會算在內。
以大約等分的大小將組合分配成特定的分割區。首先重新導向伺服器會將網路對分割區表格建立成此程序的一部份,最後建立使用者對分割區表格。這些表格會聯合組成重新導向資料庫。重新導向資料庫會以分割區 ID 來對映每個使用者。您可使用 rdadmin 指令行公用程式來建立與管理此資料庫。
此範例描述的是用戶端成功重新導向的事件順序。
管理員會執行 rdadmin 來產生和/或更新重新導向伺服器。
使用者會連線至重新導向伺服器,並嘗試進行認證。
重新導向伺服器會決定使用者的身份,並在重新導向資料庫中搜尋相符的使用者 ID。
如果重新導向伺服器在重新導向資料庫中找不到使用者 ID,則重新導向伺服器會聯繫下一個重新導向伺服器 (由循環配置資源機制來決定) 以找到包含使用者 ID 的重新導向資料庫。如果在重新導向資料庫中找到了使用者 ID,則重新導向伺服器會取得指定給使用者的分割區 ID。
重新導向伺服器會根據指定的分割區 ID 來決定重新導向使用者的目的節點。
重新導向伺服器會將錯誤傳回包含其重新導向至的節點之用戶端,並關閉到用戶端的連線。
重新導向伺服器會使用 see-other-host 串流錯誤來將此資訊傳回給用戶端。如需詳細資訊,請參閱RFC 3920。
用戶端會解譯錯誤,並建立到傳回錯誤之節點的連線。
重新導向伺服器會繼續監視節點,並依需要更新其「分割區至主機」表格。
資料庫僅包括本機使用者。閘道、元件與遠端使用者不包含於重新導向資料庫中。
重新導向伺服器是 Instant Messaging 伺服器的實例,其唯一功能就是重新導向用戶端連線。重新導向伺服器不會為一般使用者執行任何其他的服務。啟動時,重新導向伺服器會載入伺服器配置與分割區檔案,並建立下列資料結構:
此伺服器可重新導向用戶端連線的目的實例清單。這是重新導向伺服器的實例清單。實例清單是根據 redirect.hosts 檔案中的項目所建立的。
將分割區對映至實體主機的表格。此表格稱為分割區對映。重新導向伺服器會藉由通過實例清單,直至達到指定的最大分割區數為止,來建立分割區對映。
重新導向伺服器會使用兩種資料結構來重新導向用戶端連線。如需重新導向伺服器如何使用此資訊的說明,請參閱範例 7–1。
用戶端與重新導向伺服器之間可能會發生很多的 StartTLS 協商,直到建立連線用戶端身份。用戶端不需要驗證認證,相反地,它只需要使用者 ID。