OCP协议学习标记
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
OCP协议学习笔记(协议结构和协议格式)
(2011-06-10 22:00:37)
转载▼
分类:学习笔记
标签:
杂谈
一、OCP协议结构:
OCP协议是建立在Diameter基础协议上的Diameter Credit Control Application 应用协议的具体定义及扩展。
OCP协议采用TCP作为传输层协议。
Diameter Credit Control Application:DCC应用;
TLS:Transport Layer Security,传输层安全;
二、协议格式:
1.消息头格式:OCP协议的数据包是以网络字节顺序传送的。
说明:OCP协议的消息头长度为固定长度20个字节;
a.version:版本号,该版本字段必须置为1,表明Diameter版本为1;
b.Message Length:该消息长度字段为3个八位组,指明该Diameter消息的字
节长度,包括头字段+AVPs;
mand flags:该命令标记字段为8个比特。已经分配的比特位如下:
R(equest) -如果设置,表明该消息是一个请求。如果清零,该消息是一个应答。
P(roxiable) –如果设置,表明该消息可以被Proxy、中继或者复位向。如果清零,该消息必须在本地处理。
E(rror) -如果设置,表明该消息包含一个协议差错,且该消息与ABNF中描述的该命令不一致。“E”比特设
置的消息一般当作差错消息。在请求消息中不能设置该比特。
T(Potentially re-transmitted message)-该标记在链路失败过程后被设置,以帮助去除重复的请求。当重发请求还没有被确认时,需要设置该比特,以作为链路失败而造成的可能的重复包的指示。当第一次发送
一个请求时,该比特必须被清零,否则发送者必须设置该比特。Diameter代理仅需要关心它们发送的同一
请求消息的遍数;其它实体进行的重传不须考虑。Diameter代理接收到一个T比特设置为1的请求,必须在
前转该请求时保持T标记的设置。如果接收到一个以前消息的差错消息(例如协议差错),则不可以设置该
标记。该标记只有在没有接收到任何来自服务器的该请求的应答、且该请求再次被发送的情况下,才能被
设置。该标记不能在应答消息中设置。
r(eserved) -这些标记比特为将来使用预留,必须设置为0,接收者应当忽略。
mand-Code:该命令码字段为3个八位组,用于表明与该消息相关联的命令。该24位地址空间由IETF 的
IANA负责分配管理。例如:CER、CEA消息命令码为257,CCR、CCA消息命令码为272,DWR、DWA 消息命令码为
280。
e.Application-ID:应用ID为4个8位组,用于标识该消息可适用于哪个应用。
f.Hop-by-Hop Identifier:Hop-by-Hop标识符为一个无符号32比特整数字段(按网络字节顺序),用来帮助
匹配请求和响应。发送者必须保证请求中的Hop-by-Hop标识符在特定的连接上在任何特定的时间是唯一的,
并且保证该数字在经过重启动后仍然唯一。
g.End-to-End Identifier:端到端标识符是一个无符号32比特整数字段(按网络字节顺序),用来检测重复消息。
h.AVPs:传递数据的部分,很多AVP头+数据的组合;
例如:DCC客户端和一个DCC服务之间CER消息的消息头如下:
01 00 00 d4 80 00 01 01 00 00 00 00 00 00 00 00 00 00 00 00
说明:01 00 00 d4---01:DCC应用的版本为1,d4:CER消息的长度,10进制值为212,标识该CER消息长度为
212字节;
80 00 01 01---80:flags的值为128(10进制),表明是一个请求消息,01 01:值为257(10进制)与
前面d步骤中CER消息命令码257吻合;
00 00 00 00---Application-ID,值为0
00 00 00 00---Hop-by-Hop标识符,值为0
00 00 00 00---End-to-End标识符,值为0
2.AVP头格式:AVP中的字段必须按网络字节顺序发送。头的格式如图所示:
说明:
AVP Code:AVP码与制造商ID 结合,可以唯一标识属性。AVP 1到255为前向兼容RADIUS预留,无需设置制造
商ID字段。256以及大于256的AVP用于Diameter,由IANA负责分配。
AVP 标记:AVP标记字段告知接收者如何处理每个属性。
“r”:(预留)比特不使用,应设置为0。表示以后的Diameter应用可以在AVP头中定义附加的比特,一个
未被承认的比特应被看作差错。
“P”比特指明为保证端到端安全需要加密。
“M”比特,称为强制比特,指明对该AVP的支持是否是必需的。如果Diameter客户、服务器、Proxy、或者
翻译代理接收到一个AVP,其“M”比特设置为1,且该AVP或其值为未知,该消息必须被拒绝。Diameter 中
继和复位向代理不可以拒绝带有未知AVP的消息。“M”比特清零的AVP仅是信息提示性的,接收者接收到其
不支持的(包括不支持其值)“M”比特为零的AVP,可以简单忽略该AVP。
“V”比特,称作制造商定义(Vendor-Specific)比特,指明在AVP头中是否出现可选的制造商ID字段。当设
置时,该AVP码属于某特定制造商编码地址空间。除非另外注明,AVP将拥有以下缺省AVP标记字段设置:
“M”比特必须设置。“V”比特不可以设置。
制造商ID(Vendor-ID):如果在AVP标记字段中设置了“V”比特,则会出现制造商ID字段。可选的四个八位
组的制造商ID字段包含IANA分配的“SMI网络管理私有企业码”值,按网络顺序编码。任何希望实现制造商