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.

主站蜘蛛池模板: 午夜国产大片免费观看| 亚洲中文字幕在线精品一区| 国产成在线观看免费视频| 国产尤物在线播放| 日韩免费毛片| 在线色国产| 五月婷婷综合色| 亚洲网综合| 亚洲第一视频网| 国产xx在线观看| 久久综合丝袜长腿丝袜| 再看日本中文字幕在线观看| 18黑白丝水手服自慰喷水网站| 免费在线a视频| 婷婷久久综合九色综合88| 麻豆a级片| 免费人成在线观看成人片| 无码有码中文字幕| 免费在线a视频| yy6080理论大片一级久久| 亚洲无码高清免费视频亚洲| 久操中文在线| 在线观看国产一区二区三区99| 97久久超碰极品视觉盛宴| 91精品国产情侣高潮露脸| 亚洲精品自拍区在线观看| 午夜综合网| www.91在线播放| 天天躁日日躁狠狠躁中文字幕| 亚洲国产日韩欧美在线| 亚洲不卡影院| 三上悠亚一区二区| 夜色爽爽影院18禁妓女影院| 亚洲精品中文字幕无乱码| 欧美性精品| 国产一级做美女做受视频| 国产导航在线| 欧美视频二区| 国产呦视频免费视频在线观看| 日韩国产一区二区三区无码| 亚洲成人精品久久| 欧美精品v日韩精品v国产精品| 香蕉精品在线| 国产亚洲现在一区二区中文| 国产成年女人特黄特色大片免费| 亚洲a免费| 日本午夜精品一本在线观看| 国产69精品久久久久妇女| 国内精品一区二区在线观看 | 亚洲成人一区在线| 成人小视频网| www.99精品视频在线播放| 亚洲视屏在线观看| 成年人视频一区二区| 色婷婷丁香| 一本无码在线观看| 久久久久国产精品免费免费不卡| 色综合成人| 国产成人无码综合亚洲日韩不卡| 国产靠逼视频| 日韩成人在线网站| 国产精品成人AⅤ在线一二三四 | 1769国产精品免费视频| 日本免费福利视频| 91精品免费高清在线| 成人亚洲国产| 国产精品人人做人人爽人人添| 在线亚洲精品自拍| 亚洲Av激情网五月天| 欧美第二区| 在线免费a视频| 国产精品私拍在线爆乳| 国产丝袜第一页| 91精品在线视频观看| 亚洲精选高清无码| 狠狠色婷婷丁香综合久久韩国| 亚洲人在线| 精品国产www| 亚洲色婷婷一区二区| 欧美成人午夜在线全部免费| 欧美三級片黃色三級片黃色1| 欧美精品v日韩精品v国产精品|