并非同类型协议

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

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

<!–[if !vml]–>
<!–[endif]–>

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

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

最新版本和兼容

SMPP协议是一个国际标准,有SMS论坛制定,官方网址为smsforum.net,截至200672,最新版本是5.0。曾经流行的版本是3.33.4SMPP协议向后兼容的。

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

PDU格式

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

SMPP Packet

 

消息头

必填参数

可选参数

CMPP Packet

 

消息头

消息体

<!–[if !vml]–>
<!–[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模式。

Advertisements