4.2 接口功能
本规范重点定义了中国移动上网日志留存系统网络日志服务器与应用层IF2相关接口的数据通信机制。
图4-2系统接口示意图
接口功能描述如下:
? IF2-0:可以兼容上网日志留存系统已有的上网日志查询接口。具体接口规范参考
《用户上网日志查询系统接口规范》。
? IF2-0.1:IF_QUERY,基于HTTP协议的用户信息查询接口
? IF2-0.2:IF_UPLOAD, 基于FTP/SFTP协议的用户信息上报接口
? IF2-0.3:IF_NOTIFY,基于HTTP协议的用户信息上报完毕通知接口
? IF2-1:共享层与应用系统之间的接口,主要用于传输全量信令数据(原始信令经
IP化后的数据),该接口所采用的协议为SDTP(共享数据传输协议)或FTP。 ? IF2-2:共享层与应用系统之间的接口,主要用于传输XDR记录以及XDR原始信令
数据,该接口所采用的协议为SDTP(共享数据传输协议)。
第9页
5 接口协议
5.1 SDTP实时通信协议
SDTP为实时数据共享传输协议。该协议是采集层与解码层的接口传输协议,也是解码层和共享层之间的接口传输协议。其传输特点是数据传输量大,实时性要求高,过程简单,不需要握手鉴权过程。
SDTP实时数据共享传输协议应用于以下场景:
? 解码层将合成后的PS域XDR数据封装后传送到共享层; ? 解码层将CS域MC口XDR数据封装后传送到共享层; ? 解码层将CS域MC原始码流封装后传送到共享层;
共享数据传输协议(SDTP)以TCP/IP作为底层通信承载,具体协议结构如下图所示:
APPSDTP应用层传输层TCPIP承载层
图5-1 信令数据传输协议栈
协议栈分为3层,分别为承载层、传输层和应用层。其中,承载层为IP协议,它提供可靠的数据传输通道;传输层(SDTP+TCP)为上层应用提供通用的数据传输协议;应用层封装适合于各应用系统的原始信令数据、CDR/TDR数据。数据合成服务器通过SDTP协议适配各应用系统所需的特定协议。
第10页
数据订阅点数据提供点SDTPTCPIP数据链路层SDTPTCPIP数据链路层物理层物理层 图5-2 SDTP协议栈
数据提供方与数据接受方之间进行信息交互时,采用长连接方式:
? 通信双方以Client-Server方式建立TCP连接,用于双方信息的交互。其中:在网络
日志服务器与应用系统的连接中,请求的发起方作为连接的客户端;在网络日志服务器与数据合成服务器的连接中,网络日志服务器作为连接的服务端,数据合成服务器作为连接的客户端。
? 当连接断开后,客户端以反复重试的方式连接服务端。
? 在一个连接上可以连续发送多个数据包,在连接保持期间,如果没有数据包发送,
由客户端发送链路检测,服务器端发送应答消息以维持此连接。当信道上没有数据传输时,客户端应每隔时间C发送链路检测包以维持此连接,当链路检测包发出超过时间T后未收到响应,应立即再发送链路检测包,再连续发送N-1次后仍未得到响应则断开此连接。参数C、T、N可灵活配置,现阶段建议取值为:C=3分钟,T=60秒,N=3。
? 数据提供点与数据接收点之间的消息发送后等待T秒后未收到响应,应立即重发,
再连续发送N-1次后仍未得到响应则停发。现阶段建议取值为:T=60秒,N=3。 ? 消息采用并发方式发送,加以滑动窗口流量控制,窗口大小参数W可配置,现阶段
建议为16,即接收方在应答前一次收到的消息最多不超过16条。 ? 数据合成服务器需支持应用系统与接入模块之间的多个并发连接。 ? 考虑到数据的安全性,建议在应用系统和数据合成服务器间采用链路安全机制(如
TLS、VPN等方式),可根据实际需求选择开启。
数据合成服务器与网络日志服务器间基于SDTP传输全量信令数据时,SDTP层的重传机制和滑动窗口控制机制为可选,但客户端与服务器端的实现机制需保持一致。 5.1.1
消息类型
SDTP协议的消息类型定义如下表所示:
表5-1 消息类型定义 消息名 verNego_Req MessageType值 0x0001 说明 版本协商请求 第11页
verNego_Resp linkAuth_Req linkAuth_Resp linkCheck_Req linkCheck_Resp linkRel_Req linkRel_Resp notifyCDR/TDRData_Req notifyCDR/TDRData_Resp XDRRawDataSend_Req XDRRawDataSend_Resp linkDataCheck_Req linkCheck_Resp 5.1.2
消息结构
0x8001 0x0002 0x8002 0x0003 0x8003 0x0004 0x8004 0x0005 0x8005 0x0006 0x8006 0x0007 0x8007 版本协商应答 鉴权请求 鉴权响应 链路检测请求 链路检测应答 连接释放请求 连接释放应答 CDR/TDR信令数据通知请求 CDR/TDR信令数据通知应答 XDR对应原始数据传输 XDR对应原始数据传输应答 链路数据发送校验请求 链路数据发送校验应答 SDTP消息结构如下所示:
表5-2 SDTP消息结构
项目 Message Header Message Body 说明 消息头(所有消息公共包头) 消息体,即各类参数 消息头(Message Header)的包含如下字段:(对SDTP接口,下述所有字段必填)
表5-3 消息头 字段名 TotalLength MessageType SequenceId 字节数 2 2 4 类型 Unsigned Integer Unsigned Integer Unsigned Integer 消息类型 交互的流水号,顺序累加,步长为1,循环使用(一个交互的一对请求和应答消息的流水号必须相同) 消息体中的事件数量(最多40条) 若考虑实时性要求,可每次只填一个事件 描述 消息总长度(含消息头及消息体) TotalContents 1 Unsigned Integer 5.1.3 连接管理流程
使用SDTP协议通信时,遵照本章的消息交互流程。消息交互的基本流程分为:版本协商,鉴权请求,数据传输,链路检测,连接终止。客户端侧应支持对链路检测周期的灵活设定.
SDTP协议连接管理流程如下图所示:
第12页