亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

短消息網關通信模塊的設計與實現

2019-11-18 19:41:15
字體:
來源:轉載
供稿:網友

  摘 要:在闡述短消息網關結構的基礎上,提出了短消息網關通信模塊的設計思想,并給出了該通信模塊的具體實現。

  關鍵詞:短消息; 短消息網關; 通信

  1 前言

  隨著通信技術的發展,無線互聯網短消息業務正在為用戶提供越來越多的服務。人們不僅可以通過手機點播定制新聞、股票信息、天氣預報,還可以下載鈴聲、圖片等。無論需要什么樣的信息,我們都可以隨時隨地地通過手機接入互聯網絡,享受各種服務。電信運營商要實現這些增值業務,就必須支持網間的互聯互通。

  目前實現網間互聯互通的方式有四種,包括:通過移動關口局互聯互通;通過信令轉接點互聯互通;通過短消息網關互聯互通;通過第三方運營商系統互聯互通。前兩種方式不易設置計費點和引出計費話單,因此不利于網間結算;最后一種方式,雖然能夠保證計費點和結算點的統一,但是易受到地域條件的限制。而通過短消息網關實現互聯互通,無須對現網運行的設備進行大面積的數據改動和升級改造,能夠合理的設置計費點,保證計費的準確性,實現業務鑒權和業務過濾的功能,保證網絡的安全,也能夠通過對業務流量的監視和控制,防止網絡風暴的發生,這種互聯方式具有其他三種方式不可比擬的優點。目前,大部分短消息業務的互聯互通都是使用短消息網關來實現。

  2 短消息網關結構

  短消息網關(ISMG)是處于短消息中心(SMSC)和業務提供商(SP)之間的設備,它為這兩個實體的數據交換提供安全、快捷的通道。網關與短消息中心之間使用SMPP協議(Short Message Peer to Peer,短消息點對點協議), 與SP之間使用CMPP協議(China Mobile Peer to Peer,中國移動點對點協議),因此短消息網關需要完成協議的轉換、計費、路由、安全和網絡管理等功能。其結構圖如圖1所示。

  具體說來,圖1中SMPP通信代理系統主要實現網關和GSM網中短消息中心(SMSC)的連接,確保準確接收和發送數據,實現高效、可靠的數據傳輸。為了達到規范要求的不超過0.001%的數據丟包率,SMPP通信代理需要支持流量控制。CMPP通信代理系統主要是實現和SP服務提供商的連接,與SMPP通信代理系統不同的是,由于協議的影響,CMPP通信代理是服務器端,需等待SP的連接,而SMPP通信代理是客戶端,需要主動連接SMSC。短消息網關處理系統是網關中最復雜的處理進程,它完成的任務包括:向GNS(匯接網關) 查詢路由,維護路由表,進行協議轉換和數據分發。防火墻系統主要為網關系統提供安全保障,它包括ip包過濾和身份驗證。短信網關計費系統主要形成各種計費話單,為計費提供依據。業務管理系統主要完成對業務進行統計報告,生成報表,為運營者對用戶數據的添加、修改、刪除以及對網關系統的監控、查詢、操作和維護提供接口和界面。

  3 短消息網關通信模塊的設計與實現

  短消息網關通信模塊是整個短消息網關的基礎。無論是計費、統計,還是超時重傳,高質量的通信構架是必不可少的保障。這個通信構架不僅要完成基本的收發消息的功能,而且還要有好的結構以支撐各種業務需求,保證良好的擴展性。

  3.1. 短消息網關通信模塊的設計

  在設計短消息網關通信模塊時,我們考慮了以下幾點:

  第一,由于短消息網關功能繁多,如果把通信和具體業務合在一起開發,容易顧此失彼??赡軙驗殚_始的考慮不周全,造成在增加某項新業務時不得不修改通信底層和原來的業務代碼,導致重復開發。所以我們采用通信代理的方式把通信和具體業務分開,在增加新業務時,就只需少量修改通信代理的設置,而且不必再改動原來的業務代碼了。

  第二,通信代理需要同時偵聽多個端口,我們選用多路復用I/O這種方式。雖然多線程能夠通過并行計算和共享內存提高代碼效率和資源利用率,但在短消息網關中,處理的數據量大,多線程方式的并行處理會造成一些消息的邏輯混亂,資源共享也會增加代碼的復雜度。而多路復用使用簡單,邏輯清晰明了,不易發生錯誤,也不會出現因資源共享帶來同步和互斥問題。因此使用多路復用I/O是比較合理的。

  第三,業務處理模塊與通信代理之間可以使用隊列進行通信,對隊列的管理和參數的設置(例如對同一隊列操作的互斥,以及隊列個數的設置等)都使用專門的隊列內核程序統一調度并封裝成函數接口,以方便業務處理模塊對隊列的使用。另外,通過隊列通信,也可以為今后增加的業務提供良好的擴展性。

  第四,為了達到99.999%的不丟包率,通信代理需要使用流量控制機制以保證網關內部不丟包。這是因為無論隊列設置有多大,如果出現消息只發不收的情況,都會造成隊列溢出而丟包。因此,為每個隊列中緩存的消息做記錄,當某個時刻隊列消息的數量達到規定限度,隊列就不再收包,以保證到達網關的消息不會丟失。

  3.2. 短消息網關通信模塊的實現

  基于以上設計思路,我們實現的短消息通信模塊包括四個父進程:CMPP通信代理(cmpp_server)、SMPP通信代理(smpp_server)、消息分發處理server(package_server)和前轉消息處理server(route_server)。它們之間通過6個消息隊列相互通信。具體的軟件結構如圖2所示。

  Cmpp_server主要為SP和網關之間建立一條高質量的傳輸通道。它同時偵聽與它相連的多個socket,通過隊列接口函數mqm_send( )把接收到的CMPP格式的消息送入隊列2中。同時,它也要通過函數mqm_recv( )不停的從隊列1中獲得消息,并把它轉發到相應的目的SP。cmpp_server不需判斷收到的消息類型,只負責通信,因此稱通信代理。

  Smpp_server與cmpp_server基本一致,唯一不同的只有一點:SMPP協議規定smpp_server是客戶端,需要主動發起建立連接的請求;而CMPP協議規定cmpp_server是服務器端,需等待對方連接。

  Package_server是短消息網關的核心,所有的消息都要經過它,包括協議轉換,超時重傳,計費,路由,都需要在package_server中完成。package_server同時監聽2、4、6三個隊列,根據不同的消息頭來判斷這個消息的下一個目的地。路由表也需要在package_server中維護,以便package_server能得到路由信息,轉發消息。如果路由表中找不到相關的信息,package_server就要把該消息轉發給route_server,由route_server從匯接網關處獲得路由信息后發送該消息。

  Route_server主要處理需要轉發到其他網關的消息。當package_server發現消息的目的地不是本地網關所連的SP或SMSC,那么它就會把消息轉發給route_server處理。Route_server接到消息后與匯接網關通信,請求目的地的網關地址,然后與目的網關建立socket連接,交付該消息并記錄前轉話單。

  在整個通信模塊中,所有的server都使用隊列接口函數mqm_init( )初始化消息隊列并復接在隊列上。收發數據使用mqm_send( )和mqm_recv( )函數完成。存儲消息采用固定的數據結構,其結構如下:

struct mqm_connection {
unsigned int package_server_seqnum; //由網關自行產生。若消息從隊列4中來,該元素將是轉化后的//CMPP協議格式的消息序列號;若消息從隊列2中來,該元素將是轉化后的SMPP協議格式的消息序列號。
short mqm_sockfd; //接收該消息的socket;
short mqm_seqnum; //收到的消息序列號;
time_t mqm_timeout; //收到該消息的時間;
int total_length; //該消息的長度;
char mqm_buf[MAX_PACKET_SIZE]; //該消息的內容;
char converted_buf[MAX_PACKET_SIZE]; //轉換協議后的消息內容;
};

  現以MO請求業務為例,描述通信模塊的工作流程。

  當SMSC以SMPP格式的DELIVER_SM消息發出訂閱某個SP的言語傳情短消息,經由smpp_server收到,從隊列4中轉發給package_server。Package_server收到MO請求后回送給SP一個SMPP格式的DELIVER_SM_REP應答消息,并用mqm_connection結構體存儲這條MO消息的各個信息。 之后,package_server就把該消息轉換成CMPP協議的CMPP_Deliver消息,并通過隊列1送到cmpp_server中,轉發給目的SP。SP在接收到這個消息后,會產生一個CMPP格式的CMPP_Deliver_Rep的應答消息返回給網關。當package_server收到了應答信號,也需要用mqm_connection結構體存儲。這時,一條MO短消息轉發成功,package_server記錄SMO話單。

  下面給出在linux7.2版本的操作系統下,用C語言實現的package_server的主要代碼:

main()
{
mqm_init( ); //初始化隊列;
……
pipe( ); //建立管道;
if (( child_pid = fork( ) ) ==0)
{
//通過管道通知2隊列有數;
while(1){
get_result_msg_info(REQUEST_2,pipfd2[1]);
}
}
……
//建立監聽描述符集;
FD_ZERO ( &monit);
FD_SET ( )_;
……
//處理隊列中來的數據
while(1)
{
select ( ); //監聽2,4,6隊列;
if ( FD_ISSET(queue2,&read_monit )) //如果2隊列有數;
{
handle_queue2_in( );//處理2隊列來的數據;
}
……
}//end while;
} //end main;
 

  4 結束語

  短消息網關是無線互聯網短消息業務中最為關鍵的一個設備,它為手機用戶和互聯網的信息資源架起了一座橋梁。本文中短消息網關的通信模塊設計周全,結構合理,為計費、路由、超時重傳等模塊提供了良好的擴展性。經實驗室測試,在奔2處理器,64兆內存的機器上,收發包速率為每秒5000條,不丟包率達到100%,是一個穩定的系統。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品一区二区三区在线播放| 欧美激情视频给我| 欧美一级成年大片在线观看| 国产97在线视频| 这里只有精品丝袜| 国产aⅴ夜夜欢一区二区三区| 91免费视频国产| 亚洲图片欧洲图片av| 6080yy精品一区二区三区| 久久激情五月丁香伊人| 免费91麻豆精品国产自产在线观看| 久久男人av资源网站| 国产精品美女久久久免费| 国产999在线| 久久久国产精彩视频美女艺术照福利| 91精品综合久久久久久五月天| 国产亚洲人成a一在线v站| 亚洲国产成人久久综合一区| 免费97视频在线精品国自产拍| 亚洲精品欧美一区二区三区| 海角国产乱辈乱精品视频| 青青草99啪国产免费| 亚洲天堂av高清| 亚洲高清免费观看高清完整版| 亚洲男人av电影| 欧美日韩国产丝袜另类| 中文字幕亚洲欧美在线| 久久久免费高清电视剧观看| 亚洲黄色www网站| 亚洲区中文字幕| 正在播放亚洲1区| 久久精品国产免费观看| 欧洲日本亚洲国产区| 日韩人体视频一二区| 亚洲国产欧美一区| 97色在线观看免费视频| 亚洲free性xxxx护士白浆| 麻豆一区二区在线观看| 亚洲精品永久免费精品| 日本国产一区二区三区| 亚洲国产美女久久久久| 在线视频欧美日韩| 日韩av一区在线| 中文字幕在线精品| 亚洲国产精品系列| 亚洲精品视频免费| 91精品久久久久久久久| 精品日韩美女的视频高清| 欧美激情精品久久久久久久变态| 亚洲精品456在线播放狼人| 欧美精品福利在线| 亚洲人成电影在线观看天堂色| 国产香蕉97碰碰久久人人| 欧美极品在线播放| 国产精品成人免费视频| 日韩美女主播视频| 亚洲免费视频在线观看| 国产精品久久久久免费a∨大胸| 在线播放国产一区二区三区| 亚洲国产精品va在线看黑人动漫| 国语自产精品视频在线看一大j8| 欧美一级高清免费| 亚洲欧美日韩一区在线| 欧美一级视频一区二区| 中文字幕视频在线免费欧美日韩综合在线看| 欧美日韩国产页| 欧美大全免费观看电视剧大泉洋| 日韩av在线网址| 日韩在线视频观看正片免费网站| 欧美激情一区二区三区在线视频观看| 欧美在线性视频| 好吊成人免视频| 成人综合国产精品| 日韩小视频在线观看| 国产91精品最新在线播放| 日本国产精品视频| 欧美日韩不卡合集视频| 欧美激情精品久久久| 欧美夫妻性生活xx| 欧美日韩福利电影| 国产欧美日韩精品在线观看| 亚洲一区二区少妇| 欧美大片免费观看在线观看网站推荐| 国产精品日日摸夜夜添夜夜av| 国产不卡av在线| 欧美www视频在线观看| 成人国产在线激情| 欧美成年人视频网站欧美| 日本久久中文字幕| 国产精品视频免费在线| 久久国内精品一国内精品| 国产精品视频中文字幕91| 成人福利免费观看| 欧美精品亚州精品| www.99久久热国产日韩欧美.com| 狠狠躁天天躁日日躁欧美| 国产亚洲欧洲在线| 中文字幕欧美日韩精品| 亚洲美女精品成人在线视频| 97人人做人人爱| 国产精品扒开腿爽爽爽视频| 亚洲精品电影在线| 欧美极度另类性三渗透| 久久久精品美女| 国产精品永久免费在线| 中日韩美女免费视频网站在线观看| 欧美国产中文字幕| 欧美午夜美女看片| 欧美成人亚洲成人日韩成人| 国产日韩欧美夫妻视频在线观看| 欧美中文字幕在线播放| 欧美大成色www永久网站婷| 欧美性猛交99久久久久99按摩| 久久影院中文字幕| 欧美激情视频网址| 亚洲国产精品久久久久秋霞蜜臀| 国产啪精品视频| 91av在线国产| 亚洲jizzjizz日本少妇| 欧美成人在线影院| 亚洲三级免费看| 久久99精品久久久久久噜噜| 日本欧美一级片| 久久五月情影视| 精品久久久国产| 6080yy精品一区二区三区| 国产拍精品一二三| 亚洲成人激情在线| 亚洲乱码av中文一区二区| 久久免费精品视频| 91亚洲精品一区二区| 九九综合九九综合| 91av在线影院| 日本午夜精品理论片a级appf发布| 疯狂做受xxxx高潮欧美日本| 日韩视频精品在线| 欧美二区在线播放| 久久久精品电影| 亚洲精品国产精品乱码不99按摩| 韩国日本不卡在线| 色av中文字幕一区| 国产激情综合五月久久| 日韩69视频在线观看| 最新国产精品拍自在线播放| 亚洲国产精品成人精品| 亚洲一区免费网站| 日本a级片电影一区二区| 国产一区视频在线| 国产精品狼人色视频一区| 日韩黄在线观看| 亚洲高清久久网| 精品国产乱码久久久久久虫虫漫画| 中文精品99久久国产香蕉| 国内久久久精品| 日韩亚洲欧美中文高清在线| 狠狠躁夜夜躁人人爽天天天天97| 国产精品亚发布| 国产精品久久久av| 亚洲美腿欧美激情另类| 深夜成人在线观看| 欧美精品做受xxx性少妇| 欧美性受xxxx黑人猛交| 国产精品成人v| 久久久久久一区二区三区|