流水号必须相同) TotalContents 1 Unsigned Integer 消息体中的事件数量(最多40条) 若考虑实时性要求,可每次只填一个事件 18.4. 连接管理流程
使用SDTP协议通信时,遵照本章的消息交互流程。消息交互的基本流程分为:版本协商,鉴权请求,数据传输,链路检测,连接终止。客户端侧应支持对链路检测周期的灵活设定。
SDTP协议连接管理流程如下图所示:
客户端服务端1. TCP连接建立2. 版本协商请求verNego_Req2. 版本协商应答verNego_Resp3. 链路鉴权请求linkAuth_Req3. 链路鉴权应答linkAuth_Resp4. 数据发送请求4. 数据发送应答5. 链路检测请求linkCheck_Req5. 链路检测应答linkCheck_Resp6.链路数据发送校验linkDataCheck_Req6.链路数据发送校验应答linkDataCheck_Resp7.链路释放请求linkRel_Req7.链路释放应答linkRel_Resp8. TCP连接拆除
第42页
图5. SDTP协议连接管理流程
SDTP连接建立和通信流程说明如下:
(1) 请求的发起方作为客户端向服务端指定的IP地址和端口建立TCP长连接; (2) 客户端发起版本协商流程,若协商失败,则转(7)拆除连接;
(3) 客户端向服务端发起链路鉴权请求(使用数据合成服务器与各应用系统间协商
好的共享密钥),若服务端鉴权失败,则转(7)拆除连接;
(4) 请求的发起方发送数据,接收方收到数据并处理后回复处理结果;涉及的数据
包括XDR数据和XDR对应原始数据两类;
(5) 在连接保持期间,如果没有数据包发送,客户端发送链路检测/应答包以维持此
连接;若发现链路断开,则转(7)拆除连接;
(6) 通信完成后,客户端主动发起链路释放请求; (7) 双方均可拆除该连接; 18.5. 连接管理消息
18.5.1. 版本协商verNego
18.5.1.1. 请求
版本协商请求,用于在连接的鉴权通过后,客户端与服务器端协商通信协议版本的信息,由连接的建立方主动发起协议版本协商。参数定义如下:
字段名 Version SubVersion 字节数 1 1 类型 Unsigned Integer Unsigned Integer 描述 协议的主版本号 协议的子版本号 版本协商的发起方从自身支持的最高版本开始协商,高版本协商失败后再协商低版本。
18.5.1.2. 应答
版本协商应答,用于返回版本信息的核对结果,参数定义如下: 字段名 Result 字节数 1 类型 Unsigned Integer 描述 返回原因值。 协议协商的结果,各个值代表意义如下: 1: 版本协商通过。 2: 版本过高。 3: 版本过低。 18.5.2. 链路认证linkAuth
18.5.2.1. 请求
连接鉴权请求,参数定义如下:
第43页
字段名 LoginID 字节数 12 类型 String 描述 账户ID。 由连接的服务端给连接的客户端分配的连接帐号。 用于鉴别源用户。其值通过SHA256计算得出。当对端用相同方式加密之后与接收的值比较,如果计算出来的值相同,则通过校验,否则出错。 Digest= SHA256(LoginID+SHA256(Sharedsecret)+Timestamp+\”+RAND) 其中Shared secret为与LoginID对应的账户密码,由认证双方实体事先商定; LoginID为本消息带的LoginID字段,12字节,不足12字节以空格“”补齐; Timestamp为本消息带的Timestamp字段数值,单位为秒(1970年1月1日0时0分0秒起至当前的偏移总秒数); 计算后结果为32位,后32位补零(二进制0); 时间戳的明文。 由客户端产生,单位为秒(1970年1月1日0时0分0秒起至当前的偏移总秒数) 由客户端产生的随机数 Digest 64 String Timestamp 4 Unsigned Integer Unsigned Integer RAND 2 18.5.2.2. 应答
连接鉴权应答,参数定义如下: 字段名 Result 字节数 1 类型 Unsigned Integer 描述 鉴权的返回结果。各个值的含义如下定义: 1 代表鉴权通过。 2 代表LoginID不存在。 3 代表SHA256加密结果出错。 用于对端对本端进行鉴权,其值通过SHA256计算得出。当对端使用相同方式加密之后与接收的值比较,如果计算出来的值相同,则通过校验,否则出错。 Digest 64 String 18.5.3. 链路检测linkCheck
18.5.3.1. 请求
第44页
当信道上没有数据传输时,客户端应每隔时间C发送链路检测包以维持此连接,当链路检测包发出超过时间T后未收到响应,应立即再发送链路检测包。服务端收到链路检测请求包后,立即回复链路检测应答。
无参数。
18.5.3.2. 应答
链路检测请求的应答,无参数。 18.5.4. 链路数据发送校验linkDataCheck
18.5.4.1. 请求
本消息与notifyXDRData_Req和XDRRawDataSend_Req消息同方向。消息的作用是,告知数据接收方,在两个本消息间隔期内发送的notifyXDRData_Req和XDRRawDataSend_Req消息包数量,以便接收方校验是否有丢包情况发生。若有丢包发生时,notifyXDRData_Req和XDRRawDataSend_Req消息的接收方应立即通过返回消息告知发送方有数据丢失。本消息建议5分钟进行数据校验,数据量大时为避免过多的传输缓存,可减少时间间隔,数据接收方应不受校验周期影响。 字段名 Sendflag 字节数 4 类型 Int 描述 检测包顺序标签,1小时内不重复即可。本参数目的是为发现校验包的丢失情况发生。 距离上次发送间发送的数据包数量。(仅仅包含notifyXDRData_Req和XDRRawDataSend_Req包的数量) SendDataInfo 4 int 18.5.4.2. 应答
本消息与notifyXDRData_Req和XDRRawDataSend_Req消息方向相反。消息的作用是,告知数据发送方,在两个本消息间隔期内接收了多少个notifyXDRData_Req和XDRRawDataSend_Req消息包,以便告知发送方是否有丢包情况发生。 字段名 Sendflag result 字节数 4 1 类型 Int int 描述 检测包顺序标签,1小时内不重复即可。(与请求包相同) 0:数据量正确;1:接收方数据小于发送方数据;2:接收方;数据大于发送方数据。 距离上次发送间发送的数据包数量。(仅包含notifyXDRData_Req和XDRRawDataSend_Req包的数量)(与请求包相同) 第45页
SendDataInfo 4 int
RecDataInfo 4 int 距离上次发送间接收的数据包数量。(仅包含notifyXDRData_Req和XDRRawDataSend_Req包的数量)
18.5.5. 链路释放linkRel
18.5.5.1. 请求
连接释放请求,指示连接的某一方由于某些原因而需要断开连接,参数定义如下: 字段名 Reason 字节数 1 类型 Unsigned Integer 描述 连接释放的原因,各个值代表意义如下: 1: 用户正常释放。 2: 数据类型错误。 3: 超出机器处理能力。 18.5.5.2. 应答
连接释放完成应答,收到本消息之后或者请求超时后,释放本连接的所有资源,参数定义如下: 字段名 Result 字节数 1 类型 Unsigned Integer 描述 连接释放的完成状态 1:释放完成。 其它:释放失败。
18.6. 数据传输消息
18.6.1. XDR数据传输notifyXDRData
采集解析设备需要将生成的XDR数据上报给数据合成服务器。
18.6.1.1. 请求 属性 Load
18.6.1.2. 应答 属性
字节数 类型 描述 第46页
字节数 不定长 类型 描述 XDR数据,各种接口的XDR数据格式参考本规范第6至16节。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库中国移动统一DPI设备技术规范-LTE信令采集解析服务器接口规范v2.(5)在线全文阅读。
相关推荐: