SMPP协议,CMPP协议是啥子?
CMPP和SMPP都是短信协议中的一种,但它们不是同一类型的协议。SMPP和ESME和SMC(短信中心)之间的协议,而CMPP是SP和中国移动ISMG之间的通讯协议。
SMPP协议,CMPP协议的区别
SMPP协议是点对点协议,又称之为端口对端口协议。一般用在国际短信上。
CMPP是SP(移动端:手机号)对ISMG(互联网短信中心管理)协议,是中国移动的协议。对应的协议有,联通的SGIP协议,中国电信的SMGP协议,网通的CNGP协议。
因为协议差异SMPP的请求数据会比CMPP的更加严谨,可以参考:
https://blog.csdn.net/tylz04/article/details/9045637
https://blog.csdn.net/daibei0402/article/details/4909115
它们的互联网短信王国逻辑网络结构如图1
这边重点讲哈CMPP协议。
CMPP功能概述
CMPP协议主要提供以下两类业务操作:
(1)短信发送(Short Message Mobile Originate,SM MO)
典型的业务操作举例如图2所示:
1)手机发出数据请求(可能是订阅信息或图片点播等),被归属ISMG接收;
2)归属ISMG对接收到的信息返回响应;
3)归属ISMG在本地查询不到要连接的SP,向GNS(汇接网关)发路由请求信息;
4)GNS将路由信息返回;
5)归属ISMG根据路由信息将请求前转给接入ISMG;
6)接入ISMG对接收到的信息返回响应;
7)接入ISMG将请求信息送SP;
8)SP返回响应;
在以上操作中,步骤3到步骤8均使用CMPP协议;
在随后的操作中,接入ISMG在接收到SP的响应后将产生MO状态报告发给归属ISMG。
(2)短信接收(Short Message Mobile Terminated,SM MT)
典型的业务操作举例如图3所示:
1)SP发出数据请求(可能是短信通知或手机铃声等),被接入ISMG接收;
2)接入ISMG对接收到的信息返回响应;
3)接入ISMG在本地数据库中找不到要目的手机号段所对应网关代码,向GNS(汇接网关)发路由请求信息;
4)汇接网关将路由信息返回;
5)接入ISMG根据路由信息将请求前转给归属ISMG;
6)归属ISMG对接收到的信息返回响应;
7)归属ISMG将请求信息发送至SMC;
8)SMC向归属ISMG返回响应;
在上述操作中,步骤1到步骤6均使用CMPP协议;
在随后的操作中,SMC将通过NO.7信令网向移动用户发送信息,移动用户收到后将返回状态报告(Delivery-Receipt)给短信中心,短信中心将按照MO操作的流程将状态报告返回给SP(如果SP要求返回状态报告)。
协议栈
CMPP的协议底层主要通过TCP/IP作为底层通信承载。
SP与ISMG之间、ISMG之间进行信息交互时,可以采用长连接方式,也可以采用短连接方式;现阶段建议均采用长连接的方式。所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发链路检测包以维持此连接。短连接是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接,即每次TCP连接只完成一对CMPP消息的发送。
长连接就好比MYSQL数据库那种,只要连接了就不会关闭,确保数据请求能随时响应。
协议涉及的端口号如图4:
接下来是SMS论坛网站(包括国内外的协议规范,模拟器,实施测试,国家号码段,国家码):https://smsforum.net/
下面放SMS源码感兴趣的大家可以参考,或者进群一起学习
https://gitee.com/hajj/SMSGate
来源:CSDN
作者:渔人与Yuki
链接:https://blog.csdn.net/qq_42984761/article/details/103619053