`
yesjavame
  • 浏览: 695022 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

CMPP和SMPP协议比较[转-理解短信中心协议原理]

阅读更多

CMPPSMPP协议比较

并非同类型协议

CMPPSMPP都是短信协议中的一种,但它们不是同一类型的协议。SMPPESMESMC(短信中心)之间的协议,而CMPPSP和中国移动ISMG之间的通讯协议。

以下是CMPP 3.0文档中的图示。

<shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></path><lock v:ext="edit" aspectratio="t"></lock></shapetype><shape id="_x0000_i1026" style="WIDTH: 358.5pt; HEIGHT: 256.5pt" type="#_x0000_t75"><imagedata src="file:///C:%5CDOCUME~1%5C%E6%B8%A9%E5%B0%91%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image001.png" o:title=""></imagedata></shape><!--[if !vml]-->cmpp_001.JPG
<!--[endif]-->

CMPP对应的协议有,联通的SGIP协议,中国电信的SMGP协议,网通的CNGP协议。

作为SP,只需要了解CMPP,不需要了解SMPP

最新版本和兼容

SMPP协议是一个国际标准,有SMS论坛制定,官方网址为smsforum.net,截至<chsdate isrocdate="False" islunardate="False" day="2" month="7" year="2006" w:st="on"><span lang="EN-US">2006</span><span style="FONT-FAMILY: 宋体">年</span><span lang="EN-US">7</span><span style="FONT-FAMILY: 宋体">月</span><span lang="EN-US">2</span><span style="FONT-FAMILY: 宋体">日</span></chsdate>,最新版本是5.0。曾经流行的版本是3.33.4SMPP协议向后兼容的。

CMPP最新版本似乎是3.0。现在(20067月),大多数还是使用CMPP 2.0CMPP协议没有做到向后兼容,3.0的文档本身也没有讲到兼容的问题,甚至认为,协议制定者压根没想过要兼容。CMPP 3.0没做到向后兼容导致了一个问题,就是SP无法平滑升级。

PDU格式

PDU是协议数据单元的缩写,SMPPCMPP都使用最先一个4位的长度标志整个PDU的长度。

<group id="_x0000_s1026" style="WIDTH: 315.8pt; HEIGHT: 195.8pt; mso-position-horizontal-relative: char; mso-position-vertical-relative: line" coordsize="6316,3916" editas="canvas" coordorigin="3232,4214"><lock v:ext="edit" aspectratio="t"></lock><shape id="_x0000_s1027" style="LEFT: 3232px; WIDTH: 6316px; POSITION: absolute; TOP: 4214px; HEIGHT: 3916px" o:preferrelative="f" type="#_x0000_t75"><fill o:detectmouseclick="t"></fill><path o:extrusionok="t" o:connecttype="none"></path><lock v:ext="edit" text="t"></lock></shape><group id="_x0000_s1028" style="LEFT: 3240px; WIDTH: 2340px; POSITION: absolute; TOP: 4222px; HEIGHT: 3900px" coordsize="2340,3900" coordorigin="4500,4066"><rect id="_x0000_s1029" style="LEFT: 4500px; WIDTH: 2340px; POSITION: absolute; TOP: 4066px; HEIGHT: 3900px"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td> <div> <p class="MsoNormal"><span lang="EN-US">SMPP Packet</span></p> <p class="MsoNormal"><span lang="EN-US"><p></p></span></p> </div> </td> </tr></tbody></table></textbox></rect><group id="_x0000_s1030" style="LEFT: 4680px; WIDTH: 1980px; POSITION: absolute; TOP: 4534px; HEIGHT: 3276px" coordsize="1980,3276" coordorigin="2700,4534"><rect id="_x0000_s1031" style="LEFT: 2700px; WIDTH: 1980px; POSITION: absolute; TOP: 4534px; HEIGHT: 780px"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td> <div> <p class="MsoNormal"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">消息头</span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1032" style="LEFT: 2700px; WIDTH: 1980px; POSITION: absolute; TOP: 5314px; HEIGHT: 1248px"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td> <div> <p class="MsoNormal"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">必填参数</span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1033" style="LEFT: 2700px; WIDTH: 1980px; POSITION: absolute; TOP: 6562px; HEIGHT: 1248px"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td> <div> <p class="MsoNormal"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">可选参数</span></p> </div> </td> </tr></tbody></table></textbox></rect></group></group><group id="_x0000_s1034" style="LEFT: 7200px; WIDTH: 2340px; POSITION: absolute; TOP: 4222px; HEIGHT: 3900px" coordsize="2340,3900" coordorigin="7200,4066"><rect id="_x0000_s1035" style="LEFT: 7200px; WIDTH: 2340px; POSITION: absolute; TOP: 4066px; HEIGHT: 3900px"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td> <div> <p class="MsoNormal"><span lang="EN-US">CMPP Packet</span></p> <p class="MsoNormal"><span lang="EN-US"><p></p></span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1036" style="LEFT: 7380px; WIDTH: 1980px; POSITION: absolute; TOP: 4534px; HEIGHT: 780px"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td> <div> <p class="MsoNormal"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">消息头</span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1037" style="LEFT: 7380px; WIDTH: 1980px; POSITION: absolute; TOP: 5314px; HEIGHT: 2496px"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td> <div> <p class="MsoNormal"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">消息体</span></p> </div> </td> </tr></tbody></table></textbox></rect></group><wrap type="none"></wrap><anchorlock></anchorlock></group><!--[if !vml]-->cmpp_002.JPG
<!--[endif]-->

SMPP是一个国际标准,不同的SMC的是实现可能要增加特定参数,为了具备更好的扩展性,SMPP 3.4以上版本,增加了可选参数,在5.0中,可选参数叫做TLVTable

CMPP是中国移动定义的其内部ISMG之间、ISMGSP之间的通讯标准,涉及一些具体的计费信息,但没有可选参数。

SMPP中,消息头包括4部分:PDU长度、Command_IdCommand_StatusSequence_Id。其中Command_Status字段,只在回应消息中使用,存在冗余。

CMPP中,消息头部包括3部分:PDU长度、Command_IdSequence_Id。个人认为,CMPP中的消息头,不包括Command_Status,似乎更好一些。

消息传输模式

SMPPCMPP都支持异步传输,CMPP中,建议异步传输的窗口大小为16

CMPP使用一个连接发送短信息和接收短信息。

SMPP支持多种的连接,其中TX类型的连接,只能发送短信息,RX类型的连接只能接收短信息,TRX类型的连接支持接收和发送短信息。

SMPP 3.4中,消息传输模式分三中:Store And ForwardDatagramForward。分别用在大吞吐量、可靠性保证等不同的应用场合。

CMPP没有规定其消息传输的模式,根据实际使用的情况看来,华为的网关的消息传输模式类似SMPP协议中规定的Datagram模式。

posted on 2006-07-02 18:14 温少 阅读(5556) 评论(2) 编辑 收藏 所属分类: 推荐阅读

分享到:
评论

相关推荐

    短信发送协议(CMPP,SMPP,SGIP,SMGP).zip

    SMPP_v3_4_Issue1_2.pdf文档很可能是关于SMPP协议的第三版第四次修订版的详细说明。SMPP提供了连接管理、消息传输、状态报告等功能,广泛应用在跨运营商的短信服务中。 3. SGIP(Short Message Gateway Internet ...

    短信协议(包括CMPP,SGIP,SMGP,SMPP)

    以下是对四种主要短信协议——CMPP、SGIP、SMGP和SMPP的详细说明: 1. CMPP (China Mobile Short Message Peer-to-Peer):由中国移动设计并推广,是一种基于TCP/IP的点对点短消息传输协议。CMPP支持多种业务模式,...

    短信CMPP、彩信MM7协议、SMPP

    在中国移动的通信网络中,短信...通过阅读《中国移动MMS规范.doc》、《cmpp30.doc》、《CMPP2.0协议.doc》以及《SMPP协议.pdf》等文档,开发者可以深入了解这些协议的具体细节,以便于实现高效稳定的短信和彩信服务。

    移动联通短信协议

    标题中的“移动联通短信协议”指的是中国移动和中国联通之间用于短信传递的一种通信协议,这些协议使得两家运营商能够相互交换短信服务,确保用户无论使用哪家运营商的网络都能顺利收发短信。在描述中提到的“移动...

    smpp,cmpp,网关手机协议.rar

    总之,SMPP和CMPP是短信服务的关键协议,理解并掌握它们的工作原理和错误处理对于在移动通信领域进行开发和运维至关重要。通过深入学习和实践,我们可以构建高效、可靠的短信系统,满足各种业务需求。

    CMPP3.0 短信发送

    总的来说,CMPP3.0协议是短信服务提供商与运营商之间的重要通信桥梁,理解和掌握其工作原理对于开发高效、可靠的短信应用至关重要。通过Java实现的CMPP3.0客户端库,开发者可以方便地集成到自己的系统中,实现短信的...

    cmpp客户端.7z.zip

    本文将深入探讨这些协议以及相关的"cmpp客户端.7z.zip"测试工具,帮助读者理解其工作原理和实际应用。 CMPP是中国移动设计的专有协议,它提供了一种高效、可靠的方式,用于第三方应用与移动网关之间的短消息交互。...

    SMPP_v3_4_Issue1_2.pdf

    CMPP是中国移动为了解决国内短信业务的需求而制定的一种协议,它在很大程度上借鉴了SMPP协议的技术框架和原理。然而,CMPP具有更强的中国本土化特征,例如支持汉字编码、特定的命令集等,以适应中国市场的特殊需求。...

    移动联通电信短信协议

    如SGIP1.2.doc、SMGP1.3.doc、smpp.doc、CMPP30.doc、CMPP20.doc和cmpp21.doc,详细介绍了各协议的结构、命令定义、操作流程、错误处理等内容,对于开发与运营商对接的应用或者理解短信服务的底层工作原理非常有帮助...

    CMPP3短信网关程序反编译

    例如,`smppdemo`可能包含SMPP协议的演示代码,而`cngpdemo`和`sgipdemo`可能是针对中国移动GPRS网关和SGIP协议的示例。`com`则通常代表Java的包名,内部可能包含具体的类文件。 在这些反编译后的代码中,我们可以...

    华为短信网关超完整版

    华为短信网关是一款高效、稳定且功能强大的通信系统,它主要负责处理和管理短信服务,为企业和运营商提供可靠的短信...通过深入学习和实践,你可以更好地理解短信网关的工作原理,并能有效地处理各种通信场景下的挑战。

    中国移动CMPP项目

    - `SMPP描述手册.pdf`:此手册会深入解释SMPP协议的工作原理,对理解CMPP的基础非常有帮助。 - `附:《中国移动cmpp3.0网关》项目解析.pdf`:这可能是一份项目解析报告,详细分析了CMPP3.0网关的实现细节和技术...

    移动短信开发(华为软件包)

    CMPP2.0是该协议的一个版本,增加了对上行和下行短信的支持,以及更丰富的消息类型和错误处理机制。 在实际开发中,为了测试和调试,开发者可能需要使用CMPP2.0模拟网关。这个模拟网关可以模拟真实的短信中心,允许...

    (CMPP20_SMProxy).rar_CMPP SMProxy_CMPP2.0_smproxy

    SMProxy作为CMPP2.0协议的代理,它起到了连接SP与移动运营商短信中心(SMSC)的桥梁作用,处理SP的短信提交、接收、查询等操作。 在描述中提到的“开发接口函数说明”通常包括了CMPP2.0协议中定义的各种命令和响应...

    smproxy(20040730)_cmpp_

    这意味着我们可以深入研究和理解SMPP协议的工作原理,以及如何在Java环境中构建相关的应用程序。这个开发包可能包含用于连接、发送、接收短消息的类库,同时也可能包括了错误处理、连接管理等相关功能。 **标签:...

    短信网关连接测试demo

    SMPP协议基于TCP/IP,提供连接、断开、提交、接收短信等功能,并支持长消息分段和编码多样性。 2. **CMPP(China Mobile Peer to Peer)**:中国移动制定的专有协议,用于其网络内的短信服务。CMPP有多个版本,如...

    短信网关源代码(SP).rar

    这个"短信网关源代码(SP).rar"压缩包显然包含了实现短信网关功能的源代码,非常适合那些想要深入理解短信服务工作原理或者进行相关开发的IT专业人士。下面将详细介绍短信网关的相关知识点,并根据文件名"SpGateWay...

    计算机网络的一些协议.doc

    总结来说,本文档详细介绍了SMPP协议及其与CMPP和SGIP的差异,同时概述了TCP/IP协议组的基本构成和工作原理,这些都是计算机网络中不可或缺的部分,对于理解和实现跨设备通信至关重要。了解这些协议对于从事网络开发...

    smproxy jar huawei源码

    【标题】"smproxy华为源码包"是一个专注于短信服务的开源项目,它包含了处理不同协议的组件,如CMPP、CNGP、SGIP和SMPP。这些协议在电信行业中广泛用于移动通信网络中的短消息传递。源码的提供意味着开发者可以深入...

Global site tag (gtag.js) - Google Analytics