CMPP和SMPP協(xié)議比較
并非同類型協(xié)議
CMPP和SMPP都是短信協(xié)議中的一種,但它們不是同一類型的協(xié)議。SMPP和ESME和SMC(短信中心)之間的協(xié)議,而CMPP是SP和中國移動ISMG之間的通訊協(xié)議。
以下是CMPP 3.0文檔中的圖示。
<!--[endif]-->
與CMPP對應(yīng)的協(xié)議有,聯(lián)通的SGIP協(xié)議,中國電信的SMGP協(xié)議,網(wǎng)通的CNGP協(xié)議。
作為SP,只需要了解CMPP,不需要了解SMPP。
最新版本和兼容
SMPP協(xié)議是一個國際標(biāo)準(zhǔn),有SMS論壇制定,官方網(wǎng)址為smsforum.net,截至
CMPP最新版本似乎是3.0?,F(xiàn)在(2006年7月),大多數(shù)還是使用CMPP 2.0。CMPP協(xié)議沒有做到向后兼容,3.0的文檔本身也沒有講到兼容的問題,甚至認(rèn)為,協(xié)議制定者壓根沒想過要兼容。CMPP 3.0沒做到向后兼容導(dǎo)致了一個問題,就是SP無法平滑升級。
PDU格式
PDU是協(xié)議數(shù)據(jù)單元的縮寫,SMPP和CMPP都使用最先一個4位的長度標(biāo)志整個PDU的長度。
SMPP Packet 消息頭 必填參數(shù) 可選參數(shù) CMPP Packet 消息頭 消息體
<!--[endif]-->
SMPP是一個國際標(biāo)準(zhǔn),不同的SMC的是實現(xiàn)可能要增加特定參數(shù),為了具備更好的擴展性,SMPP 3.4以上版本,增加了可選參數(shù),在5.0中,可選參數(shù)叫做TLVTable。
CMPP是中國移動定義的其內(nèi)部ISMG之間、ISMG與SP之間的通訊標(biāo)準(zhǔn),涉及一些具體的計費信息,但沒有可選參數(shù)。
在SMPP中,消息頭包括4部分:PDU長度、Command_Id、Command_Status、Sequence_Id。其中Command_Status字段,只在回應(yīng)消息中使用,存在冗余。
CMPP中,消息頭部包括3部分:PDU長度、Command_Id、Sequence_Id。個人認(rèn)為,CMPP中的消息頭,不包括Command_Status,似乎更好一些。
消息傳輸模式
SMPP和CMPP都支持異步傳輸,CMPP中,建議異步傳輸?shù)拇翱诖笮?/span>16。
CMPP使用一個連接發(fā)送短信息和接收短信息。
SMPP支持多種的連接,其中TX類型的連接,只能發(fā)送短信息,RX類型的連接只能接收短信息,TRX類型的連接支持接收和發(fā)送短信息。
SMPP 3.4中,消息傳輸模式分三中:Store And Forward、Datagram、Forward。分別用在大吞吐量、可靠性保證等不同的應(yīng)用場合。
CMPP沒有規(guī)定其消息傳輸?shù)哪J?,根?jù)實際使用的情況看來,華為的網(wǎng)關(guān)的消息傳輸模式類似SMPP協(xié)議中規(guī)定的Datagram模式。
小白