RELOAD(REsource LOcation And Discovery, RELOAD)协议,由
IETF(Internet Engineering Task Force)P2PSIP(Peer-to-Peer Session Initiation Protocol)工作组指定。其核心成果,提供了统一的叠加网对等体和客户端协议,实现抽象的存储和消息路由服务。在很多问题上已经达成一致,可能成为RFC。
功能
Ø 算法插件化
RELOAD协议中支持P2P 算法插件化,协议只定义了三种叠加网维护
原语:Join、Update、Leave。而对于具体的消息内容、消息的发送时机、精确的语义由实际采用的算法决定,RELOAD只提供通用的框架。
Ø 二进制消息编码
RELOAD协议采用请求/应答的消息机制。
Ø 对称路由为主的多种路由机制
RELOAD将对称递归
路由作为默认的必选的路由机制。但对于不同的网络环境或应用,允许采用其它的可选
路由机制。消息的具体路由策略由上层应用发送消息时确定。
Ø 三层安全机制
链接层,RELOAD协议规定叠加网对等体之间采用TLS或
DTLS保证传输安全。
消息层,RELOAD消息需要签名。
对下层,RELOAD协议规定存储对象必须由存储节点签名。
RELOAD还提供基于共享密钥和TLS-PSK的许可控制机制。为了与叠加网建立TLS链接,新节点需要获取叠加网共享密匙,从而对授权用户实现严格的准入控制。
协议场景
RELOAD协议特点。
ØRELOAD不仅是一个消息网,同时也是存储网。
Ø资源id和节点id在同一空间;
Ø每个节点负责存储节点id值附近的资源id;
ØClient节点可能根据需要和要求升级为peer。
RELOAD协议考虑的主要场景图1所示。
架构
RELOAD是一种底层叠加网络,在Internet网络
层次模型中的位置如图2。
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三部分,其中消息头格式如图3所示。
原语
RELOAD协议主要包括叠加网操作维护、资源定位发现两类原语。
表A 网络维护类原语
表B 数据存储类原语
应用
RELOAD协议设计支持多种应用,每种应用可以自定义所需的数据模型。
P2PSIP
基于RELOAD的SIP(Session Initiation Protocol)应用实例,如图4所示。
其它应用
RELOAD协议考虑支持的其他应用包括
★ Certificate Store Usage
★ TURN Server Usage
★ Dianostics Usage