资源预览内容
第1页 / 共189页
第2页 / 共189页
第3页 / 共189页
第4页 / 共189页
第5页 / 共189页
第6页 / 共189页
第7页 / 共189页
第8页 / 共189页
第9页 / 共189页
第10页 / 共189页
亲,该文档总共189页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
中国电信数字音乐平台技术规范平台接口协议分册(MGP v1.3)修订稿1 前言中国电信数字音乐业务(爱音乐iMusic)是面向中国电信固定电话、小灵通、移动及互联网用户提供的集海量、正版、高价值音乐内容、多业务平台支持为一体的一站式音乐体验服务。本规范为中国电信集团公司企业规范,主要规定了中国电信数字音乐全国平台与其它音乐类业务平台的接口协议。本规范的解释权属于中国电信集团公司。2 适用范围本规范适用于中国电信数字音乐全国平台与其它数字音乐业务平台之间的业务接口开发。本规范适用于中国电信数字音乐平台系统软件开发商、内容提供商、应用开发商开发业务接口。3 文档说明3.1 参考文档 下列标准/技术规范包括的条文,通过在本技术规范中引用而构成本技术规范的条文。本技术规范出版时,所示版本均为有效。所有标准/技术规范都会被修订,使用本技术规范的各方应探讨使用下列标准/技术规范最新版本的可能性。互联星空个性化回铃音业务平台与省级个性化回铃音平台间接口协议 V2.03.2 缩略语MGP数字音乐平台接口协议HTTP超文本传输协议CP/SP内容/应用提供商URL统一资源定位TCP/IP传输控制协议/互联网协议IVR交互式语音应答CBGP互联星空个性化回铃音业务平台与省级个性化回铃音平台间接口协议CRBT个性化回铃音4 协议概述4.1 概述 数字音乐平台接口协议(以下简称MGP)主要用于全国数字音乐平台和各类业务平台之间的业务消息通讯,是基于TCP/IP的应用层协议,定义了通信方式、资源管理、用户管理、排行榜、业务接口、信息类接口、管理接口等几部分的业务内容。MGP定义统一的命令编码、字段编码、错误代码,在实现MGP时应当遵循这些定义,在使用过程中逐渐完善更新。为了满足现有业务系统平滑升级,MGP协议兼容CBGP 2.0协议,继承了其定义的七彩铃音业务接口,扩充了新的业务功能接口,完善了错误代码定义。实现MGP协议的网关可以连接CBGP 2.0协议的网关并进行原有七彩铃音业务交互。新开发的MGP协议网关可以但并非必要来使用新的协议版本号通讯,以实现一些增加的新功能和新特性。4.2 组网模型4.3 通信方式4.3.1 协议栈MGPTCP/IP下层协议MGPTCP/IP下层协议通信 数字音乐平台为通信的客户端,其它连接平台作为通信的服务端。4.3.2 端口号 服务端监听端口号默认为8910,客户端连接端口为动态方式。4.3.3 消息交互 本协议采用请求/应答的非阻塞通讯模型实现。通信双方以客户-服务器方式建立TCP连接,用于双方信息的相互提交。当信道上没有数据传输时,通信双方应每隔时间C发送链路检测包以维持此连接,当链路检测包发出超过时间T后未收到响应,应立即再发送链路检测包,再连续发送N-1次后仍未得到响应则断开此连接。 参数C、T、N原则上应可配置,现阶段建议取值为:C=3分钟,T=60秒,N=3。 通信双方之间的消息如果不能成功发送,应隔时间R进行重发,再连续发送N-1次后仍未发送成功则停发。现阶段建议取值为:R=60秒,N=3。 通信双方采用一问一答的通讯机制,即一次请求对应于一次应答。 通信双方之间的消息发送后等待T秒后未收到响应,应立即重发,再连续发送N-1次后仍未得到响应则停发。现阶段建议取值为:T=60秒,N=3。消息采用并发方式发送,加以滑动窗口流量控制,窗口大小参数W可配置,现阶段建议为32,即接收方在应答前一次收到的消息最多不超过32条。通信方式如下图所示:服务端和客户端之间应当支持同时多个TCP/IP连接,允许多个连接情况下并发请求和应答。并允许返回消息不按顺序应答,只需在规定时间内返回即可,如按顺序发送:请求1,请求2,请求3,应答允许为顺序:响应3, 响应1,响应2。4.4 安全机制4.4.1 加密数据包格式字段长度类型描述MAC校验标志1String0:不需要MAC校验1:需要MAC校验数据加密标志1String0:不加密1:DES加密2:3DES加密密钥ID号8String密钥的ID,定期更新,不可重复长度4Integer指加密数据内容域的长度加密数据内容String将需要传输的协议数据包,进行一次整体性的加密,传输到对端完整的加密包消息示意结构如下:加密标识信息MGP消息头MGP消息体4.4.2 MAC值的计算及校验过程4.4.2.1 计算MAC值及加密信息计算MAC值 计算MAC值的算法为基于CBC模式的DES算法,MAC值的长度为8字节。初始向量取为0向量,长度为8字节,即0X00 0X00 0X00 0X00 0X00 0X00 0X00 0X00 将需要认证的明文数据P分成64比特长的分组D1, D2, ,Dn,其中最后一个分组不够64比特的话,在其右边用0X00补足。 按以下过程计算MAC值:O1=Ek(D10)O2=Ek(D2O1) MAC=Ek(DnOn-1)MAC值计算流程图 其中E为DES加密算法,K为计算MAC值使用的密钥,K的值与交易密钥有关。如果本次加密使用的交易密钥为56位,则K=交易密钥,如果本次加密使用的交易密钥为112位,则K取交易密钥的左半部分56位。加密信息 将明文数据P与MAC值一起加密,MAC值链接在明文数据P后面(用P+MAC表示),若P的位数不是8的整数倍,则先补充0至8的整数倍。设密文为C,则C=DES(P+MAC,交易密钥)或C=3DES(P+MAC,交易密钥)。4.4.2.2 解密信息及校验MAC值解密信息 对密文C进行解密,得到P+MAC,其中最后64位为MAC值。校验MAC值 对解密得到的明文P按前述步骤计算MAC值,得到MAC。 比较计算得到的MAC与解密得到的MAC,若两者相同,则校验通过,说明解密得到的明文P是可信任的。若两者不相同,则校验不通过,要求对方重新发送信息。5 数据类型5.1 基本数据类型类型说明String定长字符串。如无特别说明则左对齐右补空格(0x20)Integer无符号整数Date表示日期,格式为YYYY.MM.DDTime表示时间,格式为HH:MM:SSDateTime完整时间,格式为YYYY.MM.DD HH:MM:SSVarchar(n)变长字符串。实际长度在TLV标签中指定,字段描述定义长度(n)为最大长度。nDataType某种数据类型的列表。5.2 必选参数 在消息体中必须存在或者处理的参数、字段。5.3 可选参数在一个数据包中,如果存在若干个可选参数,则在最后一个有值的可选参数前面的可选参数必须填充(值或占位符)。其后面的可选参数可以不填。如:一共有4个可选参数,前两个没有值,而第三个需要填值。则前两个必须用占位符填满,而第四个可以填充占位符,也可以不填。可选参数的占位符是一串字符串,以一个“#”开头,跟随若干个严格填满参数长度的任意字符。比如:有4byte长度的可选参数为空值,为了占位,他用“# ”(三个空格)、“#123”、“#abc”等都可以表示;如果可选参数长度只有1byte ,则只能表示为“#”。整型的可选参数默认填0。5.4 扩展参数扩展参数采用 TLV(Tag、Length、Value)形式定义,每个可选参数的 Tag、Length、Value的可自定义。各省公司和厂家可以利用扩展参数进行业务扩展,实现特色化业务。字段长度(字节)数据类型说明Tag2Integer字段的标签,用于唯一标识一个参数Length2Integer字段的长度Value可变长度可变类型字段内容6 协议定义6.1 消息结构项目说明Message Header消息头(所有消息公共包头,长度和字段顺序固定)Message Body消息体6.2 消息头字段长度数据类型说明command_length4String此域为字符形式表示的十进制数字,表示消息包(包括消息头和消息体的总长)的长度,最大长度为9999字节category2String01:业务处理接口06:管理接口08:网管接口sub_command2String01:业务请求02:业务请求应答opcode4Integer操作码command_status4String此域表示一个命令的成功与失败,如失败,指示引起失败的错误类型等信息,取值参照附录。它在请求中必须设为0。sou_addr6String此域为消息源地址,表示消息发起的原始发起方地址描述字符串。该字符串为特征字符串。des_addr6String此域为消息目的地址,表示消息希望到达的终端地址描述字符串。该字符串为特征字符串seq_no10String此域为字符形式表示的十进制数字,表示一个序列号,由消息发起者设定,应答者对应给回此序列号。每发起一次请求,该序列号加1。序列号范围:00000000009999999999,循环使用。LinkID20String交易标识,用于唯一标识一次完整的业务。该域为字符形式表示的十进制数字,由消息发起者设定,应答者对应给回此序列号。每发起一次业务,该序列号加1。6.3 消息体消息体不是必须存在的,需要依据具体消息定义。 6.4 对话建立通信的双方在建立TCP/IP连接后,其中一方向对方发起的绑定操作认证过程。通过认证,认证方可以确信对方的身份并给予相应的通信对话权利。绑定操作由以下四条命令组成:MGP_bind_rc、MGP_bind_rc_rsp、MGP_bind_sr和MGP_bind_sr_rsp。客户端建立了到服务器的TCP连接后,即向服务器提交MGP_bind_rc请求,服务器端收到请求后,发送MGP_bind_rc_rsp命令,送回客户端;客户端按照刚刚提交的认证方法对随机数进行处理,并将结果(response)通过MGP_bind_sr命令发回服务器端;服务器端验证response后返回MGP_bind_sr_rsp应答认证是否成功。对于auth_method=01(CRAM-MD5认证方法),详细认证过程如下:(1). 客户端首先发送MGP_bind_rc命令,指定双方验证认证的方法(auth_method=01);(2). 由服务器送回一段随机数();(3). 客户端使用KEYED-MD5方法对加密,生成。 = KEYED-MD5(, ),然后将和发送给服务器方; (4). 服务器方使用同样的生成, 即 server-resp
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号