Diameter

Diameter

Diameter協議被IETF的AAA工作組作為下一代的AAA協議標準。Diameter(為直徑,意為著Diameter協議是RADIUS協議的升級版本)協議包括基本協議,NAS(網路接入服務)協議,EAP(可擴展鑒別)協議,MIP(移動IP)協議,CMS(密碼消息語法)協議等。

Diameter協議支持移動IP、NAS請求和移動代理的認證、授權和計費工作,協議的實現和RADIUS類似,也是採用AVP,屬性值對(採用Attribute-Length-Value三元組形式)來實現,但是其中詳細規定了錯誤處理,failover機制,採用TCP協議,支持分散式計費,克服了RADIUS的許多缺點,是最適合未來移動通信系統的AAA協議。

介紹


Diameter協議層次
Diameter協議層次
Diameter協議不是一個單一的協議,而是一個協議族,它包括基本協議(Diameter Base Protocol)和各種由基本協議擴展而來的應用協議,如NASREQ、Mobile、CMSSecurity等。Diameter基本協議為各種認證、授權和計費業務提供了安全、可靠、易於擴展的框架。其主要涉及性能協商、消息如何被發送、對等雙方最終如何結束通信等方面,基本協議一般不單獨使用,往往被擴展成新的應用來使用,所有應用和服務的基本功能都是在基礎協議中實現,應用特定功能則是由擴展協議在基礎協議的基礎上擴展后實現的。

協議


Diameter基本協議設定通訊是以對等的模式進行的,而不是客戶/伺服器模式,其注重能力協商,消息發送以及對等端如何最終被拒絕,同時,基礎規則還制訂了特定規則來進行Diameter節點之間所有的信息交換,Diameter基礎協議旨在提供一個AAA框架,以用於各種應用。其主要的設計思想為:
①保持基本協議的輕巧和簡單,易於實現協議;
②所有的由協議傳送的數據都以AVP形式出現,並有與RADIUS相似的高效的屬性編碼,被使用的AVP包含的數據有用戶認證信息、服務相關的授權信息、交換資源使用消息和中繼、代理和重定向消息等類型,AVP的標識符名字空間要足夠大,以便擴展,還支持廠商自定義的AVP和命令;
③能同時支持大量的請求;
④Diameter網路節點運行在TCP或者SCTP上,能夠提供可靠傳輸和具有重傳機制,由傳輸層來提供可靠性;
⑤能快速的檢測出不可到達對等端的能力,並有很好的故障切換機制;
⑥Diameter協議要求代理鏈上的每一個節點響應或確認每一個請求,代理鏈上的每一個節點有責任對沒有響應的消息進行重傳。所有的消息都要有應答,而不能無聲丟棄;
⑦Diameter協議是對等模式的協議,允許主動地消息發送到接入伺服器。對等模式有很多好處,如可以按需返回計帳信息、由伺服器發起會話終止信息等。
⑧採用IPSec或TLS或二者為Diameter的對等雙方提供數據完整和保密等安全性,有AVP級的完整性和保密性;
⑨每一個認證/授權流有一個與之對應的會話,會話通過一個會話標識符來標識,這在一個給定時間內是全局唯一的,所有後續的Diameter事務(如計費)必須包含這個會話標識,以用來引用這個會話;
⑩支持重定向服務。

應用協議


Diameter基本協議一般不會單獨使用,需要應用擴展它來提供具體的服務,應用協議擴展了基本協議,以完成特定的接入和應用業務,它充分利用基礎協議提供的消息傳送機制,並以此為基礎定義應用協議的應用標識、參與通信的網路功能實體、相互通信的功能實體間的消息內容以及協議過程等,目前已完成的應用主要有:DiameterNASREQ應用、Diamete rMobile Ipv4等應用。

基本概念


Diameter Node
網路中的Diameter節點,分為Client、Agent、Server三種。
Diameter Client
Diameter客戶端是處於網路邊緣的節點,一般是發起請求的節點。離線計費中IMS網元一般是Diameter Client角色。
Diameter Server
Diameter伺服器是處理請求的節點。離線計費中CDF一般是Diameter Server角色。
Diameter Agent
一種提供中繼(Relay)、代理(Proxy)、重定向(Redirect)、翻譯(Translation)服務的Diameter節點。
Relay Agent
根據消息中的路由信息轉發消息,只能修改消息的路由信息,不關心消息其他內容。
Proxy Agent
根據消息中的內容執行不同的策略,可以轉發或拒絕消息,可以修改消息內容。
Redirect Agent
不負責消息的轉發,負責向客戶端提供伺服器地址,使客戶端能夠直接與伺服器通信。
Translation Agent
負責在Diameter協議與其他AAA協議之間轉換消息,例如RADIUS。
Diameter Peer
直接相連的兩個節點互為“Peer”。