欢迎来到天天文库
浏览记录
ID:45755141
大小:80.91 KB
页数:23页
时间:2019-11-17
《CMPP20协议SP端的_NET开发》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、CMPP2.0协议SP端的•NET开发内容简介:本文介绍了CMPP2.0协议SP端.net实现需要注意的问题,并提供解决方案和参考意见,对CMPP协议做一个解读参考。关键字:CMPP2.0SMSTSMGSocket线程线程同步•Net事件模型一、CMPP协议简介中国移动通信互联网短信网关接口协议(ChinaMob订ePeertoPeerCMPP),是屮国移动梦网内部各SMS参与节点相互交换SMS的官方协议。作为梦网的参与方,移动梦网的增值服务商(ServiceProviderSP)要按照此协议规范实现SP的部分,才可以将自己的短信通过移动的GSM网络的数据通道传输到最终手机用户上。实
2、际上,协议规范了3个方面的内容:oSP与移动的互联网短信网关(InternetShortMessageGateway,1SMG)z间的接口协议oISMGZ间的接口协议(譬如移动各省、市Z间的短信息交换通过ISMG之间进行)oISMG与汇接网关(GatewayNameServerGNS,类似互联网上的DNS服务器)Z间的接口协议,譬如跨省Z类的短信需要GNS的帮助指出当前1SMG该如何传递短信。其屮,后二方面属于移动短信息系统内部实现,对于SP來讲大概可以“透明”来看待,只要实现了SP同ISMG的正确交互,就可以实现接入移动梦网短信系统。我们关心的只是SP端的开发细节。二、CMPP交互
3、模式从手机用户角度讲,按短信的发起/接收路径來讲,有两个叫法:MT(ShortMessageMobileTerminated,SMMT),短信接收,短信从SP发送到手机用户。MO(ShortMessageMobileOriginate,SMMO),短信发送,短信从手机用户端发送到目标SP。这两类短信交互,从SP端来看,都是属于Socket传输应用,CMPP的协议是以TCP/IP协议作为底层承载协议的,属于TCP/IP协议栈之上的应用。SP同ISMG的交互连接分长连接和短连接。所谓短连接,就是一次连接,传输一个消息,然后等待回复后拆除连接,显然,效率很低,所以,基本上不被考虑(实际应用
4、移动也不允许SP采用短连接,只是不明白移动为什么还要写入文档?ISMG间会需要?)所谓长连接,就是SP建立同ISMG连接,然后不断将数据包(一个个CMPP消息)发送到1SMG,此处发送不必等待某条消息的ISMGM应消息返回,就接着发送下一个消息。同时,等待TSMG返回信息或者等待TSMG发送给SP的消息。发送同接收消息不是一定耍同步的,实际采用异步(同时也时双工)模式。从效率上,显然,必须全双工的异步模式才能够满足实际应用需求。如下图(摘自CMPP2.0官方文档)所示,演示了长连接模式数据传输过程:三、SP端开发1.消息分类首先,图中的CMPP消息有很多种,SP同ISMG之间交流这些
5、消息。大体上这些消息发出后,对方往往需要回复一个应答(RESP)类消息。注意,这些消息大多具有方向性,也就是说只能够从一端到另一端,而不可反方向进行,有些(少数)则可两端都能够发出。以卜•信息主要来源于移动的文档,但针对大家易混淆或源文档解释不够详细做了明确和补充。具体见下表:消息名传递方向解释说明CMPPCONNECTSP---TISMGCMPPCONNECT操作的冃的是SP向ISMG注册作为一个合法SP身份,此消息需要向TSMG发出验证信息,验证方式釆用md5加密密码方式,若注册成功后即建立了应用层的连接(否则ISMG会立即断开Socket),此后SP可以通过此ISMG接收和发送
6、短信。ISMG以CMPP_CONNECT_RESP消息响应SP的请求。具体的算法实现参考CMPP2.0文档和本文附件代码。CMPPCONNECTRESPSp——ISMGISMG对CMPPCONNECT消息的回复(无论是否验证成功);如果未通过,会在消息中包含参考信息,但ISMG会立即断开连接。CMPP_ACTIVE_TESTSPOISMG这个消息通信双方都可以发出,目的是在没有其他消息发送时,保持双方的通信链路的连接,避免系统认为通信通道己经关闭。每一个收到此消息的实体应当返冋CMPP_ACTIVE_TEST_RESP消息,以“礼节性”表示自己的还在通信,维持数据连接有效性。不过,据
7、网友交流,有些厂家实现的TSMG,仅仅靠自己发出此消息等待SP回答CMPP_ACTIVE_TEST_RESP来确定数据链路的有效性,而忽略SP的CMPP_ACTIVE_TEST消息(有些霸道吧?)这个值得注意,不耍仅仅实现发送而不响应此消息,避免数据连接失效。CMPP_ACTIVE_TEST_RESPSPGTISMG对通佶的另一端的CMPP_ACTIVE_TEST消息的回复。作用参考CMPP_ACTIVE_TEST的解释。CMPPSUBMITSP-—TIS
此文档下载收益归作者所有