CMPP

简介: CMPP协议是中国移动针对短信服务提供商接入专门制定了一套协议。本文从以下几个方面对CMPP进行介绍:短信服务的发展如何通信CMPP连接方式

一、短信服务的发展

  1. 第一阶段,以短信中心为主要的业务提供及信息提供时期。1992年英国工程师Neil Papworth向手机发送了第一条短信,此时手机还不具备回复短信的能力;到2012年,我国的短信业务到达顶峰,全年累计发送量9000亿;之后手智能手机和互联网即时通讯(微信等)工具的影响,我国手机用户发送的短信数量逐年下降。
  2. 第二阶段,由短信服务提供商SP(提供各种票务服务、快递通知、电商营销、打车服务等)与短信中心SMSC沟通,将互联网上的巨大信息量根据用户的要求通过手机短信传递给用户。随着业务的发展,这种直连的方式带来了一定的问题,短信中心SMSC的负荷越来越大,而且,如果用户使用了点播服务,而服务提供商又没有在用户归属的短信中心SMSC注册,那么这条点播消息将无法送达至服务提供商SP。
  3. 第二阶段后期,引入互联网短信网关ISMG,在计算机领域有这么一句话“遇到的问题都可以通过增加一个中间层来解决”。ISMG由SMPP代理系统(与SMSC连接)、通信代理系统(与SP连接)、防火墙、短消息网关处理(查询、缓存路由)、计费统计部分成,保证了接入的一致性及安全性,实现服务提供商SP和短信中心SMSC之间的交互。



二、如何通信

协议内容

当SP与运营商达成合作之后,SP要按照协议规定才能将短信通过数据通道传递给最终用户,CMPP(China Mobile Peer to Peer,中国移动点对点协议)就是联想亚信公司为中国移动量身定做的协议。

  • 中国移动:CMPP(China Mobile Peer to Peer)
  • 中国电信:SMGP(Short Message Gateway Protocol)
  • 中国联通:SGIP(Short Message Gateway Interface Protocol)


CMPP对数据包字段的语法、语义进行了规范,定义了中国移动短信业务中各网元之间的相关消息的类型和定义,包含以下三方面的内容:

  • 信息资源站实体/业务提供商SP与互联网短信网关ISMG之间的接口协议
  • 互联网短信网关ISMG之间的接口协议
  • 互联网短信网关ISMG与汇接网关GNS之间的接口协议


ISMG架构图

互联网短信网关由以下几部分组成:

  • 服务提供商(SP,Service Provider):短信服务的提供者
  • 短信中心(SMSC,Short Message Service Center):利用信令网将短消息发给手机用户
  • 短信网关(ISMG,Internet Short Message Gateway):采用CMPP协议连接SP和SMSC
  • 汇接网关(GNS,Gateway Name Server):提供路由查询


业务流程

短信发送:用户归属地的SMSC将短信转发给归属的ISMG,ISMG在本地缓存中查询是否维护了SP的连接信息,如果是,则该ISMG直接转发给SP;否则,ISMG向GNS发出路由请求查询该SP对应的ISMG,然后将短信转发给目的ISMG进行短信发送。

短信接收:SP发出业务请求到ISMG,ISMG根据手机号码判断归属SMSC,如果归属SMSC由当前ISMG连接,则直接将数据发送到SMSC;否则向GNS发出路由请求查询路由,然后将业务数据转发给目的ISMG发给归属地SMSC,再发送给用户。

短信发送MO(上行)

短信发送是指从用户发送短信到SP的过程,其中③到⑧使用了CMPP协议

①手机发出数据请求(订阅或者点播等),被归属ISMG接收

②归属ISMG对接收到的消息返回响应

③归属ISMG在本地查询不到要连接的SP,向GNS发路由请求信息。CMPP_MO_ROUTE

④GNS将路由信息返回。CMPP_MO_ROUTE_RESP

⑤归属ISMG根据路由信息将请求转给接入ISMG。CMPP_FWD

⑥接入ISMG响应。CMPP_FWD_RESP

⑦接入ISMG将请求信息送给SP。CMPP_DELIVER

⑧SP响应。CMPP_DELIVER_RESP

短信接收MT(下行)  

短信接收是指用户从SP接收下发的消息的过程,其中①到⑥使用了CMPP协议

①SP发出数据请求(短信通知等),被接入ISMG接收。CMPP_SUBMIT

②接入ISMG对接收到的消息返回响应。CMPP_SUBMIT_RESP

③接入ISMG在本地查询不到目的手机号段所对应的网关代码,向GNS发路由请求信息。CMPP_MT_ROUTE

④GNS将路由信息返回。CMPP_MT_ROUTE_RESP

⑤接入ISMG根据路由信息将请求转给归属ISMG。CMPP_FWD

⑥归属ISMG响应。CMPP_FWD_RESP

⑦归属ISMG将请求信息发送至SMC

⑧SMC向归属ISMG返回响应。


路由

在短信发送和接收中存在两次路由过程:

  • 短信发送过程中,用户归属SMSC到SP的路由
  • 短信接收过程中,SP到用户归属SMSC的路由

其中路由信息由省内ISMGGNS进行维护。

GNS

查询前转网关的地址,包括:

  1. SP企业代码、服务代码、连接SP的ISMG的IP地址路由表(由CMPP协议自动生成)
  2. 全国用户手机号段、用户归属省的ISMG的IP地址路由表(人工配置)

省内ISMG

查询SP和SMSC的地址

  1. 直连的SP:业务代码、服务代码、SP企业代码、SP的IP地址的路由表(人工配置)
  2. 本省手机用户:本省手机号段,归属地SMSC的IP地址的路由表(人工配置)



三、CMPP连接方式

长连接

在TCP连接保持期间,可以连续发送多个数据包,如果没有数据包发送,需要双方发链路检测包,以维持此连接。

当信道上没有数据传输时,通信双方应每隔时间C发送链路检测包以维持此连接,当链路检测包发出超过时间T后未收到响应,应立即再发送链路检测包,再连续发送N-1次后仍未得到响应则断开此连接。(建议取值:C=3分钟,T=60秒,N=3)

消息采用并发方式发送,加以滑动窗口流量控制,即接收方在应答前一次收到的消息多于窗口大小条W将予以拒绝。

长连接多用于操作频繁,点对点的通讯,且连接数不能过多。

短连接

通信双方有数据交互时,建立一个TCP连接,数据发送完后,断开此TCP连接,即每次TCP连接只完成一对CMPP消息的发送。应答与请求在同一个连接中完成,完成一次操作后关闭此连接。

网关与SP之间,网关之间的消息发送后等待T秒后未收到响应,应立即重发,再发送N-1次后仍未得到响应则应停发。(建议取值:T=60秒,N=3)

短连接多用于并发量大,用户无需频繁操作的场景。

端口号

端口号

连接方式

7890

长连接(SP与ISMG之间)

7900

短连接(SP与ISMG之间)

7930

长连接(ISMG之间)

9168

短连接(ISMG与GNS之间)


相关文章
|
监控 网络协议 数据安全/隐私保护
云MAS中CMPP3.0协议封装与移动短信状态报告状态码说明
云MAS中CMPP3.0协议封装与移动短信状态报告状态码说明
1371 1
|
2月前
|
JSON 运维 网络协议
做短信接口时,http接口和cmpp接口怎么选?
本文介绍了短信接口中HTTP与CMPP协议的区别及适用场景,帮助开发者根据业务需求选择合适的接口类型。
275 1
|
存储 编解码 监控
VOS3000作用与功能
VOS3000是一套VoIP 运营支撑系统,系统拥有强大的功能集合及可靠的安全保障,可支撑 5000 路并发,适用于话务转发,企业终端,APP 业务,大型呼叫中心调度等多种业务形态,满足了大部分高并发大容量 VoIP 业务的需求。
2661 0
|
Go
VSCode资源管理器文件树缩进配置
VSCode文件树缩进太小,看上去一点都不清晰
1626 0
VSCode资源管理器文件树缩进配置
|
安全 NoSQL Java
10万条记录生成兑换码的实战方案
【5月更文挑战第27天】项目实战,介绍一次生成10万条记录兑换码的功能,由于公司需要生成大批量的兑换码,单次生成的兑换码超过10条记录。本文用于介绍相关设计方案:
737 2
|
消息中间件 Java Kafka
springboot整合kafka消费者最佳实践
springboot整合kafka消费者最佳实践
1434 1
最新版 MyBatisPlus 分页插件(直接拿来就可以用)
最新版 MyBatisPlus 分页插件(直接拿来就可以用)
719 0
|
消息中间件 存储 监控
消息队列原理和选型:Kafka、RocketMQ 、RabbitMQ 和 ActiveMQ
常用的消息队列主要这 4 种,分别为 Kafka、RabbitMQ、RocketMQ 和 ActiveMQ,主要介绍前三,不BB,上思维导图!
2932 0
消息队列原理和选型:Kafka、RocketMQ 、RabbitMQ 和 ActiveMQ
|
机器人 5G UED
一文详解运营商发布的“5G消息白皮书”
2020年4月8日中国移动、中国电信、中国联通携手华为、小米、vivo、OPPO、中兴等11家终端厂商联合发布了《5G消息白皮书》,用来`推动传统短消息服务升级`。 三大运营商联合发布的《5G消息白皮书》创造了一种怎样的商业模式,我们该如何理解《5G消息白皮书》?
1476 1
|
iOS开发
IOS - iPhoneX 怎么进入 DFU 模式(刷机必备)?
IOS - iPhoneX 怎么进入 DFU 模式(刷机必备)?
1678 0