1 、縮略語解釋


? ISMG????????????????????????? Internet Short Message Gateway????
互聯(lián)網(wǎng)短信網(wǎng)關(guān)

?SMPP?????????????????????????? ?Short Message Peer to Peer???????????
短消息點(diǎn)對點(diǎn)協(xié)議

?CMPP?????????????????????????? China Mobile Peer to Peer?????????????
中國移動(dòng)點(diǎn)對點(diǎn)協(xié)議

?SMC???????????????????????????? Short Message Center????????????????????
短消息中心

?GNS???????????????????????????? Gateway Name Server????????????????????
網(wǎng)關(guān)名稱服務(wù)器(匯接網(wǎng)關(guān))

?SP??????????????????????????????? ?Service Provider?????????????????????????????
業(yè)務(wù)提供者,即信息資源站實(shí)體

SMC???????????????????????????? Short Message Control??? SP
為收取包月業(yè)務(wù)費(fèi)用而向網(wǎng)關(guān)發(fā)送的消
????????????????????????????????????????????????????????????????????????????
息,網(wǎng)關(guān)收到后不送給用戶僅產(chǎn)生相應(yīng)的話單;

ISMG_Id??????????????????????
網(wǎng)關(guān)代碼: ???????????????? 0XYZ01~0XYZ99 ,其中 XYZ 為省會(huì)區(qū)號(hào),
??????????????????????????????????????????????????????????????????????????
位數(shù)不足時(shí)左補(bǔ)

SP_Id??????????????????????????? SP
的企業(yè)代碼: ??????? 網(wǎng)絡(luò)中 SP 地址和身份的標(biāo)識(shí)、地址翻譯、計(jì)費(fèi)、結(jié)算等
??????????????????????????????????????????????????????????????????????????
均以企業(yè)代碼為依據(jù)。企業(yè)代碼以數(shù)字表示, 6 位,
??????????????????????????????????????????????????????????????????????????
“ 9XY000 ” “ 9XY999 ” 其中 “ XY ”
?????????????????????????????????????????????????????????????????????????
各移動(dòng)公司代碼。

SP_Code????????????????????? SP
的服務(wù)代碼: ??????? 服務(wù)代碼是在使用短信方式的點(diǎn)播類業(yè)務(wù)中, 提供給
?????????????????????????????????????????????????????????????????????????
用戶點(diǎn)播的內(nèi)容 / 應(yīng)用服務(wù)提供商代碼。服務(wù)代碼以數(shù)
???????????????????????????????????????????????????????????????????????????
字表示,全國業(yè)務(wù)服務(wù)代碼長度統(tǒng)一為 4 位,
???????????????????????????????????????????????????????????????????????? “ 1000 ”
9999 ” 本地業(yè)務(wù)服務(wù)代碼長度統(tǒng)
?????????????????????????????????????????????????????????????????????????
一為 5 位, 01000” 09999”

Service_Id????????????????????SP
的業(yè)務(wù)類型 ?????????? 數(shù)字、字母和符號(hào)的組合, SP 自定, 如圖片傳情
????????????????????????????????????????????????????????????????????????
可定為 TPCQ ,股票查詢可定義為 11
2 CMPP 功能概述


CMPP 協(xié)議主要提供以下兩類業(yè)務(wù)操作:
1 短信發(fā)送( Short Message Mobile Originate ,移動(dòng)臺(tái)始發(fā) SM MO


?未命名1.bmp
1
)手機(jī)發(fā)出數(shù)據(jù)請求(可能是訂閱信息或圖片點(diǎn)播等),被歸屬 ISMG 接收;
2)
歸屬 ISMG 對接收到的信息返回響應(yīng);
3)
歸屬 ISMG 在本地查詢不到要連接的 SP ,向 GNS( 匯接網(wǎng)關(guān) ) 發(fā)路由請求信息;
4) GNS
將路由信息返回;
5)
歸屬 ISMG 根據(jù)路由信息將請求前轉(zhuǎn)給接入 ISMG
6)
接入 ISMG 對接收到的信息返回響應(yīng);
7)
接入 ISMG 將請求信息送 SP
8) SP
返回響應(yīng);
2 短信接收( Short Message Mobile Terminated ,移動(dòng)臺(tái)終止 SM MT ?

δ2.bmp?
1)SP
發(fā)出數(shù)據(jù)請求(可能是短信通知或手機(jī)鈴聲等),被接入ISMG 接收;
2)
接入ISMG 對接收到的信息返回響應(yīng);
3)
接入ISMG 在本地?cái)?shù)據(jù)庫中找不到要目的手機(jī)號(hào)段所對應(yīng)網(wǎng)關(guān)代碼,向GNS(匯接網(wǎng)
關(guān))發(fā)路由請求信息;
4)
匯接網(wǎng)關(guān)將路由信息返回;
5)
接入ISMG 根據(jù)路由信息將請求前轉(zhuǎn)給歸屬ISMG
6)
歸屬ISMG 對接收到的信息返回響應(yīng);
7)
歸屬ISMG 將請求信息發(fā)送至SMC
8) SMC
向歸屬ISMG 返回響應(yīng);
在上述操作中,步驟1 到步驟6 均使用CMPP 協(xié)議;
在隨后的操作中,SMC 將通過NO.7 信令網(wǎng)向移動(dòng)用戶發(fā)送信息,移動(dòng)用戶收到后將返回
狀態(tài)報(bào)告(Delivery-Receipt)給短信中心,短信中心將按照MO 操作的流程將狀態(tài)報(bào)告返回
SP(如果SP 要求返回狀態(tài)報(bào)告)。

3、協(xié)議棧

CMPP
協(xié)議以TCP/IP 作為底層通信承載,具體結(jié)構(gòu)由圖所示:


未命名8.bmp?

4 、通信方式

SP ISMG 之間、 ISMG 之間進(jìn)行信息交互時(shí),可以采用長連接方式,也可以采用短連接

方式;現(xiàn)階段建議均采用長連接的方式。所謂長連接,指在一個(gè) TCP 連接上可以連續(xù)發(fā)送

多個(gè)數(shù)據(jù)包,在 TCP 連接保持期間,如果沒有數(shù)據(jù)包發(fā)送,需要雙方發(fā)鏈路檢測包以維持

此連接。短連接是指通信雙方有數(shù)據(jù)交互時(shí),就建立一個(gè) TCP 連接,數(shù)據(jù)發(fā)送完成后,則

斷開此 TCP 連接,即每次 TCP 連接只完成一對 CMPP 消息的發(fā)送。

?

1 長連接

通信雙方以客戶 - 服務(wù)器方式建立 TCP 連接,用于雙方信息的相互提交。當(dāng)信道上沒有數(shù)據(jù)

傳輸時(shí),通信雙方應(yīng)每隔時(shí)間 C 發(fā)送鏈路檢測包以維持此連接,當(dāng)鏈路檢測包發(fā)出超過時(shí)

T 后未收到響應(yīng),應(yīng)立即再發(fā)送鏈路檢測包,再連續(xù)發(fā)送 N-1 次后仍未得到響應(yīng)則斷開

此連接。

參數(shù) C T N 原則上應(yīng)可配置,現(xiàn)階段建議取值為: C=3 分鐘, T=60 秒, N=3

網(wǎng)關(guān)與 SP 之間、網(wǎng)關(guān)之間的消息發(fā)送后等待 T 秒后未收到響應(yīng),應(yīng)立即重發(fā),再連續(xù)

發(fā)送 N-1 次后仍未得到響應(yīng)則停發(fā)。現(xiàn)階段建議取值為: T=60 秒, N=3

消息采用并發(fā)方式發(fā)送,加以滑動(dòng)窗口流量控制,窗口大小參數(shù) W 可配置,現(xiàn)階段建

議為 16 ,即接收方在應(yīng)答前一次收到的消息最多不超過 16 條。

長連接的操作流程舉例如圖所示:


?未命名4.bmp
2
)短鏈接

通信雙方以客戶 - 服務(wù)器方式建立 TCP 連接,應(yīng)答與請求在同一個(gè)連接中完成。系統(tǒng)采用客

/ 服務(wù)器模式,操作以客戶端驅(qū)動(dòng)方式發(fā)起連接請求,完成一次操作后關(guān)閉此連接。

網(wǎng)關(guān)與 SP 之間、網(wǎng)關(guān)之間的消息發(fā)送后等待 T 秒后未收到響應(yīng),應(yīng)立即重發(fā),再連續(xù)

發(fā)送 N-1 次后仍未得到響應(yīng)則停發(fā)。現(xiàn)階段建議取值為: T=60 秒, N=3

短連接的操作流程舉例如圖 6 所示:

未命名5.bmp

3 )涉及到的端口號(hào)

端口號(hào)

應(yīng)用

7890

長連接( SP 與網(wǎng)關(guān)間)

7900

短連接( SP 與網(wǎng)關(guān)間或網(wǎng)關(guān)之間)

7930

長連接(網(wǎng)關(guān)之間)

9168

短連接(短信網(wǎng)關(guān)與匯接網(wǎng)關(guān)之間)

4 、消息定義

1 )基本數(shù)據(jù)類型

Unsigned Integer

無符號(hào)整數(shù)

Integer

整數(shù),可為正整數(shù)、負(fù)整數(shù)或零

Octet String

定長字符串,位數(shù)不足時(shí),如果左補(bǔ) 0 則補(bǔ) ASCII 表示的零以填充,如果右補(bǔ) 0 則補(bǔ)二進(jìn)制的零以表示字符串的結(jié)束符

?

2 )消息結(jié)構(gòu)

和一般的消息一樣,CMPP消息也包括消息頭(所有消息公共包頭

)和消息體。

?

3 )消息頭格式( Message Header

字段名

字節(jié)數(shù)

類型

描述

?

Total_Length

4

Unsigned Integer

消息總長度 ( 含消息頭及消息體 )

Command_Id

4

Unsigned Integer

命令或響應(yīng)類型

Sequence_Id

4

Unsigned Integer

消息流水號(hào) , 順序累加 , 步長為 1, 循環(huán)使用(一對請求和應(yīng)答消息的流水號(hào)必須相同)

?

4 MO 流程中的消息流程


未命名6.bmp?

? ?

4 MT 流程中的消息流程

未命名7.bmp?

??

說明:

上面消息流程中有幾條消息由于我偷懶沒有畫出來,比如CMPP_TERMINATECMPP_TERMINATE_RESP等,希望大家注意

?

?

?