999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種超長(zhǎng)短信拆分與合并方法

2014-04-24 02:29:30司雨濛謝海濤靳華中葉志偉張程暉

司雨濛,謝海濤,靳華中,葉志偉,張程暉

(1. 湖北工業(yè)大學(xué) 計(jì)算機(jī)學(xué)院, 湖北 武漢 430068;2. 上海交通大學(xué) 高性能計(jì)算中心, 上海 200240)

短信服務(wù)(SMS: Short Message Service)是通信從模擬轉(zhuǎn)向數(shù)字技術(shù)最成功的商業(yè)應(yīng)用之一,短信業(yè)務(wù)已在銀行證券、商貿(mào)物流、行政管理和公共服務(wù)等諸多行業(yè)得到廣泛應(yīng)用。SMS數(shù)據(jù)由服務(wù)提供商(SP:Service Provider)產(chǎn)生,通過互聯(lián)網(wǎng)連接到電信運(yùn)營(yíng)商的行業(yè)網(wǎng)關(guān)轉(zhuǎn)發(fā)到用戶手機(jī)終端。根據(jù)短信協(xié)議規(guī)定,短信長(zhǎng)度在140字節(jié)以內(nèi),即一條短信不能超過70個(gè)漢字。如果需要發(fā)送長(zhǎng)度超過140字節(jié)(70個(gè)漢字)的超長(zhǎng)短信,通常的處理方法是先將其按單條長(zhǎng)度140字節(jié)(70字)分拆成多條短信,然后逐條發(fā)送,因此手機(jī)終端收到的短信也是逐條顯示。顯然,上述處理方式存在若干弊端。例如:用戶需要查看多條短信才能獲取短信的全部?jī)?nèi)容,查看短信很不方便;長(zhǎng)短信拆分成多條后,分別通過多個(gè)短消息網(wǎng)關(guān)設(shè)備進(jìn)行存儲(chǔ)轉(zhuǎn)發(fā)可能導(dǎo)致部分短信的丟失或失序,容易導(dǎo)致用戶對(duì)短信內(nèi)容理解的偏差;按字符編碼拆分短信可能導(dǎo)致部分內(nèi)容出現(xiàn)亂碼,影響用戶使用短信時(shí)的體驗(yàn)。隨著網(wǎng)絡(luò)通信和智能終端的發(fā)展,人們對(duì)超長(zhǎng)短信的應(yīng)用需求日益增長(zhǎng),短信內(nèi)容長(zhǎng)度限制已經(jīng)嚴(yán)重影響短信業(yè)務(wù)的推廣,如何解決超長(zhǎng)短信問題的發(fā)送與接收已越來越受到廣大研究者的關(guān)注。1999年GSM03.40標(biāo)準(zhǔn)已經(jīng)開始支持長(zhǎng)短信協(xié)議[1],3GPP標(biāo)準(zhǔn)則進(jìn)一步對(duì)長(zhǎng)短信協(xié)議進(jìn)行規(guī)范[2]。本文研究超長(zhǎng)短信的發(fā)送和接收技術(shù),對(duì)短信增值業(yè)務(wù)的拓展和短信應(yīng)用系統(tǒng)的研究、開發(fā)和應(yīng)用具有重要意義。

1 超長(zhǎng)短信的實(shí)現(xiàn)原理

超長(zhǎng)短信(CSMS: Concatenated Short Messages)是指長(zhǎng)度超過140字節(jié)(或70漢字)的短信。手機(jī)終端發(fā)送短信時(shí),按照一條短信進(jìn)行編輯并發(fā)送,接收時(shí)也按一條短信整體顯示出來。實(shí)際上,在電信運(yùn)營(yíng)商網(wǎng)絡(luò)中短信是按多條分別傳輸,也按照多條短信進(jìn)行計(jì)費(fèi)。短信在發(fā)送時(shí)按照一定規(guī)范自動(dòng)拆分成多條,而接收時(shí)則合并成一條。實(shí)現(xiàn)超長(zhǎng)短信的基本原理如圖1所示。

(1)發(fā)送端。手機(jī)終端或SP需要發(fā)送超長(zhǎng)短信時(shí),自動(dòng)將該條長(zhǎng)短信拆分成多條長(zhǎng)度小于140字節(jié)(或70漢字)的短信,每條短信分別發(fā)送給運(yùn)營(yíng)商網(wǎng)絡(luò)。短信拆分時(shí),按照長(zhǎng)短信協(xié)議要求,每條短信均添加長(zhǎng)短信標(biāo)識(shí),并逐一編號(hào),在短信內(nèi)容部分封裝長(zhǎng)短信協(xié)議頭部。

(2)運(yùn)營(yíng)商網(wǎng)絡(luò)。對(duì)拆分的多條短信分別進(jìn)行獨(dú)立傳輸。由于采用存儲(chǔ)轉(zhuǎn)發(fā)方式分別對(duì)多條短信進(jìn)行傳輸,短信到達(dá)接收端時(shí)順序與原有的發(fā)送順序可能不一致。

(3)接收端。對(duì)接收到的多條短信分別進(jìn)行存儲(chǔ)。根據(jù)長(zhǎng)短信協(xié)議字段標(biāo)識(shí),判斷是否已經(jīng)接收到所有的分拆短信。若只接收部分短信,則將它們暫時(shí)存儲(chǔ),不顯示出來。當(dāng)所有的分拆短信全部接收完成后,再將它們按原有的編號(hào)順序合并成一條完整的長(zhǎng)短信并顯示給客戶。

為了支持超長(zhǎng)短信,GSM03.04定義TP_UDHI字段作為超長(zhǎng)短信的標(biāo)識(shí)[1],如果該字段為0,則表示普通短信;如果該字段為1,則該短信為長(zhǎng)短信中的一條子短信。同時(shí),每條子短信需要設(shè)置一個(gè)6字節(jié)長(zhǎng)的長(zhǎng)短信協(xié)議頭,位于短信內(nèi)容字段(TP_UD)的前6個(gè)字節(jié),協(xié)議頭部分設(shè)置了該子短信的序號(hào)等信息,用于接收端對(duì)這些子短信進(jìn)行設(shè)并重新合并成一條長(zhǎng)短信。6個(gè)字節(jié)長(zhǎng)短信協(xié)議頭格式如表1所示。

表1 6字節(jié)長(zhǎng)短信協(xié)議頭格式

在表1中,各個(gè)協(xié)議字段的具體含義分別表示如下:LH(Length of the Header):協(xié)議頭的總長(zhǎng)度,標(biāo)識(shí)當(dāng)前字節(jié)之后剩余長(zhǎng)協(xié)議頭的長(zhǎng)度,對(duì)6字節(jié)的協(xié)議頭而言,該字段為05;

IEI(Information Element Idientifier):信息單元標(biāo)識(shí)。GSM03.40規(guī)范中定義IEI=00表示隨后的這批長(zhǎng)短信的標(biāo)識(shí)位(即RN)長(zhǎng)度為1[1];

LSH(Length of the Sub-Header):信息單元頭長(zhǎng)度,表示長(zhǎng)短信協(xié)議頭部分剩下長(zhǎng)度,這里為03;

RN(Reference Number):長(zhǎng)短信編號(hào),是長(zhǎng)短信的唯一標(biāo)識(shí),取值范圍1~255;

MAP(Maximum Amount of Pieces):本超長(zhǎng)短信總條數(shù),標(biāo)識(shí)這批長(zhǎng)短信一共分成多少條子短信分片,每條分片最長(zhǎng)的短信長(zhǎng)度是134字節(jié)(67字)。

Sequence Number:短信序號(hào),當(dāng)前短信在這批長(zhǎng)短信中的位置,取值為1~MAP。

6字節(jié)長(zhǎng)短信協(xié)議中用于標(biāo)識(shí)長(zhǎng)短信編號(hào)的RN字段只有1個(gè)字節(jié),取值范圍從1~255,當(dāng)需要大量發(fā)送超長(zhǎng)短信而不能保證接收端能完全接收到所有的子短信時(shí),有可能出現(xiàn)兩條具有相同編號(hào)的子短信拼接在一起而引起短信內(nèi)容的異常。3GPP協(xié)議定義了7字節(jié)的超長(zhǎng)短信協(xié)議頭,格式如表2所示。與6字節(jié)協(xié)議頭不同的是:RN從1個(gè)字節(jié)擴(kuò)充為2個(gè)字節(jié),一定程度上避免了出現(xiàn)錯(cuò)誤合并超長(zhǎng)短信的問題。

表2 7字節(jié)長(zhǎng)短信協(xié)議頭格式

2 超長(zhǎng)短信的發(fā)送和接收

根據(jù)GSM中對(duì)超長(zhǎng)短信的定義,本文設(shè)計(jì)了SP端針對(duì)長(zhǎng)短信的發(fā)送和接收系統(tǒng),該系統(tǒng)采用6位協(xié)議頭格式對(duì)超長(zhǎng)短信(短信內(nèi)容為漢字)進(jìn)行封包,下面分別對(duì)短信的發(fā)送(Mobile Terminate ,MT表示從SP端發(fā)送到手機(jī)終端)和接收(Mobile Originate, MO表示從手機(jī)終端發(fā)向SP端)過程進(jìn)行闡述。

2.1 超長(zhǎng)短信MT處理模塊

用戶將待發(fā)送的短信存儲(chǔ)在短信數(shù)據(jù)庫(kù)的待發(fā)送短信表中,由系統(tǒng)定時(shí)查詢數(shù)據(jù)庫(kù)中是否有需要發(fā)送的短信。如果有,則交由短信發(fā)送模塊進(jìn)行發(fā)送,將該記錄從待發(fā)送表中刪除,同時(shí)在發(fā)送歷史表中記錄該短信的相關(guān)信息(如發(fā)送時(shí)間、收信人手機(jī)號(hào)、發(fā)送ID和狀態(tài)等)。超長(zhǎng)短信發(fā)送處理模塊的處理流程如圖2所示。

圖2 MT長(zhǎng)短信發(fā)送流程圖

由圖2可知,對(duì)提取的待發(fā)送短信數(shù)據(jù),首先判斷短信內(nèi)容的長(zhǎng)度CSMS_Length,如果短信長(zhǎng)度小于70個(gè)字,則該短信為普通短信,將TP_UDHI字段置0,并將短信內(nèi)容直接封裝在短信數(shù)據(jù)包中。如果短信長(zhǎng)度大于70個(gè)字,則將該長(zhǎng)短信拆分為多條子短信分別處理:首先將每條分段短信的TP_UDHI字段設(shè)置為1,然后計(jì)算短信分片的數(shù)量Cnt,計(jì)算方法如下:

Cnt=「CSMS_Length/67?

(1)

執(zhí)行如下循環(huán)對(duì)超長(zhǎng)短信進(jìn)行拆分并封裝成多條子短信數(shù)據(jù)包:

for(int i=1;i<=Cnt;i++){

(1)生成本段長(zhǎng)短信分片的編號(hào):RNi=Rand(i)

(2)填充本段長(zhǎng)短信分片的協(xié)議頭:05,00,03,RNi,Cnt,i

(3)填充本段長(zhǎng)短信分片的內(nèi)容:if(i==Cnt)CSMS(67i,CSMS_Length)else CSMS(67i,67i+67}

當(dāng)組成本長(zhǎng)短信的各條分片分別組裝成短信數(shù)據(jù)包后,再由號(hào)碼判斷模塊根據(jù)接收手機(jī)號(hào)碼判斷由哪個(gè)運(yùn)營(yíng)商的通信協(xié)議去處理。電信SMGP[3]、聯(lián)通SGIP[4]和移動(dòng)CMPP[5]分別為三家運(yùn)營(yíng)商的短消息協(xié)議處理模塊,對(duì)各自手機(jī)的短信進(jìn)行協(xié)議處理,交由各行業(yè)網(wǎng)關(guān)發(fā)至用戶手機(jī)終端,同時(shí)返回該短信的發(fā)送狀態(tài)報(bào)告(成功或失敗原因),短消息協(xié)議處理模塊將收到的狀態(tài)信息記錄到短信發(fā)送記錄表中作為計(jì)費(fèi)依據(jù),也可根據(jù)狀態(tài)報(bào)告進(jìn)行錯(cuò)誤重傳。各條分片短信到達(dá)手機(jī)終端后根據(jù)長(zhǎng)短信協(xié)議頭部分信息自動(dòng)合并為一條超長(zhǎng)短信。

2.2 超長(zhǎng)短信MO處理模塊

用戶主動(dòng)發(fā)起對(duì)MO短信或MT短信的回復(fù),通過運(yùn)營(yíng)商網(wǎng)絡(luò)由行業(yè)網(wǎng)關(guān)傳遞到短消息協(xié)議處理模塊,分別由電信SMGP、聯(lián)通SGIP和移動(dòng)CMPP進(jìn)行接收,解析出MO短信數(shù)據(jù)包的短信內(nèi)容和TP_UDHI字段后,根據(jù)這些信息檢測(cè)和合并MO超長(zhǎng)短信內(nèi)容,超長(zhǎng)短信接收處理模塊的處理流程如圖3所示。由圖3可知,超長(zhǎng)短信MO處理模塊首先判斷TP_UDHI字段的值,若為0,則該MO短信為普通短信,直接將該短信存儲(chǔ)在接收短信數(shù)據(jù)庫(kù)中。若TP_UDHI字段為1,說明該短信為長(zhǎng)短信中的某個(gè)分片,需要對(duì)該長(zhǎng)短信的所有分片信息處理后才能合并成回復(fù)該長(zhǎng)短信的內(nèi)容。具體處理過程如下:

(1)從短信內(nèi)容字段中取出長(zhǎng)協(xié)議頭部分,判斷第一個(gè)字節(jié)的值。若為05,則取出前6個(gè)字節(jié)作為長(zhǎng)短信協(xié)議頭。若為06,則取出前7個(gè)字節(jié)。

圖3 MO長(zhǎng)短信發(fā)送流程圖

(2)對(duì)長(zhǎng)短信協(xié)議頭部分進(jìn)行解析,將收到相同RN字段的長(zhǎng)短信分片內(nèi)容(剔除長(zhǎng)短信協(xié)議頭部分)緩存,同時(shí)設(shè)置該長(zhǎng)短信接收超時(shí)時(shí)限。

(3)根據(jù)Cnt字段和Seq字段內(nèi)容,判斷該長(zhǎng)短信的所有分片是否已接收。若全部分片接收完畢,則根據(jù)Seq字段將緩存的長(zhǎng)短信分片按照序號(hào)重新排列后合并成一條長(zhǎng)短信。同時(shí),記錄該長(zhǎng)短信接收信息。若沒有收到所有短信分片,則繼續(xù)接收。

(4)超過超時(shí)時(shí)限仍未收到所有長(zhǎng)短信分片,則放棄對(duì)該長(zhǎng)短信的合并處理,并記錄出錯(cuò)信息,同時(shí)刪除緩存的長(zhǎng)短信分片。

3 結(jié)論

實(shí)現(xiàn)超長(zhǎng)短信處理是影響短信系統(tǒng)性能的關(guān)鍵。本文對(duì)超長(zhǎng)短信的原理進(jìn)行分析,設(shè)計(jì)SP端的超長(zhǎng)短信功能,實(shí)現(xiàn)了超長(zhǎng)短信發(fā)送時(shí)進(jìn)行自動(dòng)拆分和接收時(shí)自動(dòng)合并。通過短信的自動(dòng)拆分和合并,使得超長(zhǎng)短信在SP端和手機(jī)終端之間變得透明,以提升短信的可讀性和可用性。

[參 考 文 獻(xiàn)]

[1] GSM 03.40 V7.3.0[S].ETSI TC-SMG.

[2] 3GPP TS 23.040 V9.2.0 [EB/OL].(2010-03-10).[2014-04-02].http://www.3gpp.org.

[3] 中國(guó)-03移動(dòng)通信互聯(lián)網(wǎng)短信網(wǎng)關(guān)接口協(xié)議(V2.0)[S].中國(guó)移動(dòng)通信,2003.

[4] 中國(guó)聯(lián)合通信公司短消息網(wǎng)關(guān)系統(tǒng)接口協(xié)議(SGIP) [S].2版. 中國(guó)聯(lián)合通信公司,2001.

[5] 中國(guó)電信短信網(wǎng)關(guān)接口協(xié)議SMGP(V3.0)[S].中國(guó)電信,2008.

主站蜘蛛池模板: 91精品国产一区自在线拍| 啪啪免费视频一区二区| 91福利免费视频| 婷婷色在线视频| 亚洲婷婷丁香| 日韩欧美综合在线制服| 午夜日本永久乱码免费播放片| 亚洲综合网在线观看| 久久国产精品夜色| 亚洲欧美成aⅴ人在线观看| 久久精品人人做人人综合试看| 视频一区亚洲| 谁有在线观看日韩亚洲最新视频 | 天天干伊人| 福利在线一区| 狠狠色噜噜狠狠狠狠奇米777| 久久6免费视频| 亚洲一区二区精品无码久久久| 亚洲第一区精品日韩在线播放| 亚洲第一页在线观看| 久久鸭综合久久国产| 激情六月丁香婷婷四房播| 无码内射在线| 日韩高清在线观看不卡一区二区| 99视频在线免费| 高清色本在线www| 色AV色 综合网站| 成人福利在线观看| 欧美色图久久| 91精品国产一区自在线拍| v天堂中文在线| 992tv国产人成在线观看| 免费看a级毛片| 视频二区中文无码| 亚洲一欧洲中文字幕在线| 久久综合国产乱子免费| 国产精品女在线观看| 国产亚卅精品无码| 精品人妻系列无码专区久久| 國產尤物AV尤物在線觀看| 国产午夜在线观看视频| 中文字幕啪啪| 亚洲精品国产成人7777| 美女国产在线| 成人av手机在线观看| 在线观看欧美国产| 1024国产在线| 有专无码视频| 国产精品毛片一区视频播| а∨天堂一区中文字幕| 一级爱做片免费观看久久| 四虎成人免费毛片| 久久77777| 夜夜操国产| 67194成是人免费无码| 欧美高清三区| 国产99在线观看| 亚洲精品无码AV电影在线播放| 免费人成黄页在线观看国产| 国产尤物在线播放| 日韩福利在线观看| 亚洲福利视频网址| 成人伊人色一区二区三区| 免费一级毛片| 欧美午夜理伦三级在线观看| 国产无码精品在线播放| 亚洲色图狠狠干| 欧美成人免费一区在线播放| 国产欧美日韩综合在线第一| 国产特级毛片| 91国内在线观看| 五月婷婷伊人网| 无码久看视频| 国产自在自线午夜精品视频| 精品国产自| 亚洲综合极品香蕉久久网| 久久综合一个色综合网| 中文精品久久久久国产网址 | 中日韩欧亚无码视频| 欧美区一区二区三| 国产一级毛片yw| 欧美成人午夜影院|