功能
Ø 算法外掛程式化
RELOAD協定中支持P2P 算法外掛程式化,協定只定義了三種疊加網維護
原語:Join、Update、Leave。而對於具體的訊息內容、訊息的傳送時機、精確的語義由實際採用的算法決定,RELOAD只提供通用的框架。
Ø 二進制訊息編碼
RELOAD協定採用請求/應答的訊息機制。
Ø 對稱路由為主的多種路由機制
RELOAD將對稱遞歸
路由作為默認的必選的路由機制。但對於不同的網路環境或套用,允許採用其它的可選
路由機制。訊息的具體路由策略由上層套用傳送訊息時確定。
Ø 三層安全機制
連結層,RELOAD協定規定疊加網對等體之間採用TLS或
DTLS保證傳輸安全。
訊息層,RELOAD訊息需要簽名。
對下層,RELOAD協定規定存儲對象必須由存儲節點簽名。
RELOAD還提供基於共享密鑰和TLS-PSK的許可控制機制。為了與疊加網建立TLS連結,新節點需要獲取疊加網共享密匙,從而對授權用戶實現嚴格的準入控制。
協定場景
RELOAD協定特點。
ØRELOAD不僅是一個訊息網,同時也是存儲網。
Ø資源id和節點id在同一空間;
Ø每個節點負責存儲節點id值附近的資源id;
ØClient節點不參與、不影響
數據存儲;
ØClient節點可能根據需要和要求升級為peer。
RELOAD協定考慮的主要場景如圖所示。
架構
RELOAD是一種底層疊加網路,在Internet網路
層次模型中的位置如圖。
RELOAD協定框架的主要組件有:
Ø Usage Layer
基於RELOAD的每個套用對應一組數據和行為描述(如何使用Reload提供的服務)。包括:映射數據並存儲到overlay,
數據安全,應用程式對數據的查找和使用等。
Ø Message Transport
處理end-to-end的可靠性,管理套用的請求狀態、轉發存儲和獲取操作到storage,並負責分發訊息回響到請求的初始模組;
Ø Storage
負責處理與數據存儲和查找相關的訊息,與Message Transport互動(傳送和接收訊息),與Topology Plugin互動(數據的複製和轉移)。
Ø Topology Plugin
負責執行具體的overlay算法,Chord/Pastry/Kademlia/Bamboo。與Message Transport互動(傳送接收overlay管理類訊息),與storage互動(管理數據的複製),與Forwarding Layer(控制hop-by-hop訊息傳遞)。
Ø Forwarding and Link Management
存儲和執行
路由表,實現
節點間的轉發服務;處理節點間的連線建立,包括功能。
Link LayerRELOAD使用TLS和
DTLS作為hop-by-hop的
傳輸協定,對於不可靠傳輸要求提供臨時回響機制。
訊息格式
RELOAD訊息採用二進制訊息編碼,採用請求/應答的
訊息機制,採用請求/應答模式。
RELOAD訊息包含Forwarding Header、Message Content、Security Signature三部分,其中訊息頭格式如圖所示。
RELOAD原語
RELOAD協定主要包括疊加網操作維護、資源定位發現兩類原語。
表A 網路維護類原語
分類 | 原語 | 重要參數 | 功能說明 |
拓撲維護 | Join | 節點ID | 節點加入請求 |
Leave | 節點ID | 節點離開請求 | |
Update | 路由表 | 路由表更新請求,請求訊息攜帶路由表 | |
Route_Query | 是否發起Update; 目的地; | 路由查詢請求,用於疊代路由時查詢訊息路由的下一跳信息;可以攜帶標識要求回響者發起一個Update請求; | |
Probe | 探測類型 | 探測回響者負責的網路片段(路由表);或 探測回響者當前存儲的數據數目; | |
連線管理 | Attach | ICE信息 | 建立ICE連結用於傳輸RELOAD或套用層訊息; |
AttachLite | 簡化ICE信息 | 相對於全功能ICE的一個簡化實現,在某些NAT場景下可能功能受限; | |
Ping | — | 測試路徑連通性; | |
Config_Update | 配置檔案 | 更新疊加網配置檔案,使用訊息頭sequence參數驗證; | |
註:源自draft-ietf-p2psip-base-02 | | | |
表B 數據存儲類原語
分類 | 原語 | 重要參數 | 功能說明 |
數據存儲 | Store | 資源ID; Kind ID; 數據模型; 數據內容; | 數據存取和刪除; |
Fetch | 資源ID; KindID; 數據模型; 關鍵字; 數據內容; | 數據獲取; | |
Stat | 同Fetch | 數據狀態查詢(長度、代數、摘要等); | |
Find | 資源ID; KindID; | 查詢指定KindID的數據的最近SourceID; | |
註:源自draft-ietf-p2psip-base-11 | | | |
RELOAD套用
RELOAD協定設計支持多種套用,每種套用可以自定義所需的數據模型。
P2PSIP
基於RELOAD的SIP(Session Initiation Protocol)套用實例,如圖所示。
其它套用
RELOAD協定目前考慮支持的其他套用包括
★ Certificate Store Usage