《CMPP和SMPP协议的区别.doc》由会员分享,可在线阅读,更多相关《CMPP和SMPP协议的区别.doc(4页珍藏版)》请在金锄头文库上搜索。
1、CMPP和SMPP协议的区别并非同类型协议CMPP和SMPP都是短信协议中的一种,但它们不是同一类型的协议。SMPP和ESME和SMC(短信中心)之间的协议,而CMPP是SP和中国移动ISMG之间的通讯协议。以下是CMPP 3.0文档中的图示。与CMPP对应的协议有,联通的SGIP协议,中国电信的SMGP协议,网通的CNGP协议。作为SP,只需要了解CMPP,不需要了解SMPP。最新版本和兼容SMPP协议是一个国际标准,有SMS论坛制定,官方网址为,截至2006年7月2日,最新版本是5.0。曾经流行的版本是3.3、3.4。SMPP协议向后兼容的。CMPP 最新版本似乎是3.0。现在(2006年
2、7月),大多数还是使用CMPP 2.0。CMPP协议没有做到向后兼容,3.0的文档本身也没有讲到兼容的问题,甚至认为,协议制定者压根没想过要兼容。CMPP 3.0没做到向后兼容导致了一个问题,就是SP无法平滑升级。PDU格式PDU是协议数据单元的缩写,SMPP和CMPP都使用最先一个4位的长度标志整个PDU的长度。SMPP是一个国际标准,不同的SMC的是实现可能要增加特定参数,为了具备更好的扩展性,SMPP 3.4以上版本,增加了可选参数,在5.0中,可选参数叫做TLVTable。CMPP是中国移动定义的其内部ISMG(互联网短信网关)之间、ISMG与SP之间的通讯标准,涉及一些具体的计费信息
3、,但没有可选参数。在SMPP中,消息头包括4部分:PDU长度、Command_Id、Command_Status、Sequence_Id。其中Command_Status字段,只在回应消息中使用,存在冗余。CMPP中,消息头部包括3部分:PDU长度、Command_Id、Sequence_Id。个人认为,CMPP中的消息头,不包括Command_Status,似乎更好一些。消息传输模式SMPP和CMPP都支持异步传输,CMPP中,建议异步传输的窗口大小为16。CMPP使用一个连接发送短信息和接收短信息。SMPP支持多种的连接,其中TX类型的连接,只能发送短信息,RX类型的连接只能接收短信息,T
4、RX类型的连接支持接收和发送短信息。SMPP 3.4中,消息传输模式分三中:Store And Forward、Datagram、Forward。分别用在大吞吐量、可靠性保证等不同的应用场合。CMPP没有规定其消息传输的模式,根据实际使用的情况看来,华为的网关的消息传输模式类似SMPP协议中规定的Datagram模式基于CMPP3.0的企业短信网关API设计摘 要 CMPP(中国移动点对点协议)规定了移动梦网短信业务开展过程中各网元(包括ISMG、GNS和SP)之间的消息类型和定义,本文讲述基于 CMPP3.0标准的企业短信网关设计,支持CONNECT,SUBMIT,DELIVER,QUERY
5、,CANCEL,TERMINATE消息。关键词 短信 短信网关CMPP SP ISMG1 引言 随着短信息业务的快速发展,短信息已经成为手机用户最经常使用的业务之一。除了大量使用的手机用户到手机用户的点对点短信业务之外,从信息平台到手机用 户的短信信息服务业务也在快速发展,该业务已经成为广大用户及时方便地获取信息的一种手段。在广大服务提供商(SP)的支持下,用户可以采用短信点播或网 站定制的方式得到大量有用信息,SP也能通过提供有偿信息服务而获得收益。然而手机用户和SP的交互必须通过基于CMPP的短信网关。 CMPP(China Mobile Peer to Peer)中国移动点对点协议,目前
6、为3.0版本,是中国移动通信集团公司发布,规定了移动梦网短信业务开展过程中各网元(包括ISMG、GNS和SP) 之间的消息类型和定义,规定了以下三方面的内容:1)业务提供商与互联网短信网关之间的接口协议;2)互联网短信网关之间的接口协议;3)互联网短信网关 与汇接网关之间的接口协议。文章组织如下:第2节分析介绍了CMPP3.0;第3节分析设计企业短信网关API;第4节给出了SP的发展趋势,最后对全文进行总结。2 CMPP3.02.1网络结构 互联网短信网关(ISMG)是业务提供商(SP)与移动网内短信中心之间的中介实体,互联网短信网关一方面负责接收SP发送给移动用户的信息和提交给短 信中心。另
7、一方面,移动用户点播SP业务的信息将由短信中心通过互联网短信网关发给SP。另外,为了减轻短信中心的信令负荷,互联网短信网关还应根据路由 原则将SP提交的信息转发到相应的互联网短信网关。互联网短信网关通过向汇接网关(GNS)查询的方式获得网关间的转发路由信息。另外,ISMG还必须与数据业务管理平台DSMP进行连接,在业务流程中对用户、业务以及定购关系等进行鉴权并对业务进行批价。CMPP协议主要提供以下两类业务操作:(1)短信发送(Short Message Mobile Originate,SM MO)(2)短信接收(Short Message Mobile Terminated,SM MT)2
8、.2 CMPP协议栈CMPP协议以TCP/IP作为底层通信承载2.3 通讯方式 各网元之间共有两种连接方式:长连接和短连接。所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送, 需要双方发链路检测包以维持此连接。短连接是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接,即每次TCP连接只完 成一对CMPP消息的发送。现阶段,要求ISMG之间必须采用长连接的通信方式,建议SP与ISMG之间采用长连接的通信方式。2.4 CMPP涉及的端口号端口号应用7890长连接(SP与网关间)7900短连接(SP与网关间)7930长连
9、接(网关之间)9168短连接(短信网关与汇接网关之间)25交互过程中的应答方式在SP与ISMG之间、SMSC与ISMG之间及ISMG之间的交互过程中均采用异步方式,即任一个网元在收到请求消息后应立即回送响应消息。3 企业短信网关设计企业短信网关API必须实现CMPP3.0中业务提供商(SP)与互联网短信网关(ISMG)间的消息定义所规定的七个操作。 SP请求连接到ISMG(CMPP_CONNECT)操作CMPP_CONNECT操作的目的是SP向ISMG注册作为一个合法SP身份,若注册成功后即建立了应用层的连接,此后SP可以通过此ISMG接收和发送短信。ISMG以CMPP_CONNECT_RES
10、P消息响应SP的请求。 SP或ISMG请求拆除连接(CMPP_TERMINATE)操作CMPP_TERMINATE操作的目的是SP或ISMG基于某些原因决定拆除当前的应用层连接而发起的操作。此操作完成后SP与ISMG之间的应用层连接被释放,此后SP若再要与ISMG通信时应发起CMPP_CONNECT操作。ISMG或SP以CMPP_TERMINATE_RESP消息响应请求。 SP向ISMG提交短信(CMPP_SUBMIT)操作CMPP_SUBMIT操作的目的是SP在与ISMG建立应用层连接后向ISMG提交短信。ISMG以CMPP_SUBMIT_RESP消息响应。 SP向ISMG查询发送短信状态(
11、CMPP_QUERY)操作CMPP_QUERY操作的目的是SP向ISMG查询某时间的业务统计情况,可以按总数或按业务代码查询。ISMG以CMPP_QUERY_RESP应答。 ISMG向SP送交短信(CMPP_DELIVER)操作CMPP_DELIVER操作的目的是ISMG把从短信中心或其它ISMG转发来的短信送交SP,SP以CMPP_DELIVER_RESP消息回应。 SP向ISMG发起删除短信(CMPP_CANCEL)操作CMPP_CANCEL操作的目的是SP通过此操作可以将已经提交给ISMG的短信删除,ISMG将以CMPP_CANCEL_RESP回应删除操作的结果。 链路检测(CMPP_A
12、CTIVE_TEST)操作本操作仅适用于通信双方采用长连接通信方式时用于保持连接。以下为CMPPAPI实现的java部分代码public final class CMPPAPI.public CMPPAPI(). /初始化,完成SP请求连接到ISMG(CMPP_CONNECT)操作public int CMPPSendSingle()./发送短信,完成SP向ISMG提交短信(CMPP_SUBMIT)操作public int CMPPSendBatch()./群发短信public int CMPPQuery()./查询短信流量,完成SP向ISMG发起删除短信(CMPP_CANCEL)操作public int CMPPDeliver()./接受短信,完成ISMG向SP送交短信(CMPP_DELIVER)操作public int CMPPCancel(.)./取消短信,完成SP向ISMG发起删除短信(CMPP_CANCEL)操作public int CMPPActiveTest(.)/ 检查ISMG短信网关是否提供服务,链路检测(CMPP_ACTIVE_TEST)操作public int CMPPAnalyzeStatusReport(.)./分析状态报告内容