日韩成人黄色,透逼一级毛片,狠狠躁天天躁中文字幕,久久久久久亚洲精品不卡,在线看国产美女毛片2019,黄片www.www,一级黄色毛a视频直播

一種處理報文的方法

文檔序號:9399340閱讀:413來源:國知局
一種處理報文的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)領(lǐng)域,尤其涉及一種基于長連接用于處理報文的方法。
【背景技術(shù)】
[0002]傳統(tǒng)的TR-069 (CPE廣域網(wǎng)管理協(xié)議)客戶端普遍是基于會話機(jī)制與服務(wù)器短連接,為了解決服務(wù)器控制內(nèi)網(wǎng)TR-069客戶端的問題,需要將原本在開始會話時建立連接在結(jié)束會話時斷開連接的短連接改為客戶端啟動后主動連接服務(wù)器且連接建立后連接一直保持不斷的長連接。雖然長連接的引入解決服務(wù)器控制內(nèi)網(wǎng)TR-069客戶端的問題,但卻引入了另一個問題:原本的會話機(jī)制無法正確工作,并且要求服務(wù)器和客戶端必須按照順序交互報文,只能等一個交互會話結(jié)束后才能開始另一個會話,如圖1所示:服務(wù)器(Server)向客戶端(Client)發(fā)送一空報文以通知客戶端開始會話(sess1n),客戶端通知(Inform)服務(wù)器準(zhǔn)備就緒,服務(wù)器通過遠(yuǎn)程過程調(diào)用協(xié)議(Remote Procedure Call Protocol,RPC)向客戶端發(fā)送處理報文,客戶端將處理報文進(jìn)行處理并通過RPC協(xié)議向服務(wù)器回復(fù)處理結(jié)果,服務(wù)器向客戶端發(fā)送通知響應(yīng)(Inform Response),結(jié)束會話。一旦會話亂序就會導(dǎo)致客戶端處理異常。但由于長連接一直處于連接狀態(tài)的特點,致使只要上層有需要就會通過服務(wù)器向客戶端發(fā)送報文,因此會發(fā)生如圖2所示的會話錯誤(sess1n error)。

【發(fā)明內(nèi)容】

[0003]針對現(xiàn)有的基于會話機(jī)制的長連接存在的上述問題,現(xiàn)提供一種旨在實現(xiàn)基于長連接可避免報文交互過程中出錯情形的處理報文的方法。
[0004]具體技術(shù)方案如下:
[0005]一種處理報文的方法,用于基于CPE廣域網(wǎng)管理協(xié)議的客戶端,包括下述步驟:
[0006]S1.所述客戶端與一服務(wù)器建立長連接;
[0007]S2.所述客戶端監(jiān)聽所述長連接是否有數(shù)據(jù)包傳送,若是,執(zhí)行步驟S3 ;若否,執(zhí)行步驟S4 ;
[0008]S3.所述客戶端對所述數(shù)據(jù)包進(jìn)行解析,根據(jù)解析結(jié)果創(chuàng)建對應(yīng)的任務(wù),并將所述任務(wù)添加至一預(yù)設(shè)的隊列中,返回執(zhí)行所述步驟S2 ;
[0009]S4.所述客戶端根據(jù)預(yù)設(shè)的所述隊列的順序逐條處理所述隊列中的所述任務(wù),并將所述任務(wù)的處理結(jié)果發(fā)送至所述服務(wù)器,返回執(zhí)行所述步驟S2。
[0010]優(yōu)選的,在執(zhí)行所述S3之前,還包括:
[0011]所述客戶端提供一緩沖區(qū)用以存儲接收到的所述數(shù)據(jù)包,并從所述緩存區(qū)中讀取所述數(shù)據(jù)包。
[0012]優(yōu)選的,每一所述數(shù)據(jù)包中包括復(fù)數(shù)條報文,每一條所述報文對應(yīng)一條所述任務(wù)。
[0013]優(yōu)選的,所述步驟S3包括:
[0014]S31.所述客戶端對所述數(shù)據(jù)包進(jìn)行解析,獲取所述數(shù)據(jù)包中的復(fù)數(shù)條所述報文;
[0015]S32.所述客戶端根據(jù)獲取的所述報文創(chuàng)建與所述報文對應(yīng)的所述任務(wù);
[0016]S33.所述客戶端根據(jù)所述數(shù)據(jù)包的包頭指示的順序,將所述報文對應(yīng)的所述任務(wù)添加于所述隊列中。
[0017]優(yōu)選的,在執(zhí)行所述步驟S4之前還包括:
[0018]判斷所述隊列中是否存在未執(zhí)行的所述任務(wù),若是,執(zhí)行所述步驟S4 ;若否,返回執(zhí)行所述步驟S2。
[0019]優(yōu)選的,在所述步驟S4中,每處理一條所述任務(wù),將所述任務(wù)的處理結(jié)果發(fā)送至所述服務(wù)器。
[0020]優(yōu)選的,在所述步驟S4中,根據(jù)所述隊列的順序逐條將所述隊列中的所有所述任務(wù)處理完成后,根據(jù)所述隊列的順序逐一將每條所述任務(wù)的處理結(jié)果發(fā)送至所述服務(wù)器。
[0021]優(yōu)選的,所述步驟S4中,還包括:
[0022]提供一預(yù)定周期;
[0023]所述步驟S4中,于所述預(yù)定周期內(nèi),根據(jù)所述隊列的順序,逐條執(zhí)行所述隊列中的所述任務(wù),并將每條所述任務(wù)的處理結(jié)果發(fā)送至所述服務(wù)器。
[0024]上述技術(shù)方案的有益效果:
[0025]本技術(shù)方案中,處理報文的方法用于監(jiān)聽長連接是否有數(shù)據(jù)包傳輸,當(dāng)有數(shù)據(jù)包傳輸時,對數(shù)據(jù)包進(jìn)行解析,根據(jù)解析結(jié)果創(chuàng)建任務(wù),并將任務(wù)添加于預(yù)設(shè)的隊列中;當(dāng)沒有數(shù)據(jù)包傳輸時,集中處理隊列中的所有任務(wù),并將處理結(jié)果發(fā)送至服務(wù)器,避免了報文交互過程中容易出錯的情形,提高了通道利用率。
【附圖說明】
[0026]圖1為現(xiàn)有的會話機(jī)制的交互圖;
[0027]圖2為現(xiàn)有的會話機(jī)制層出錯場景交互圖;
[0028]圖3為本發(fā)明的任務(wù)隊列機(jī)制的交互圖;
[0029]圖4為本發(fā)明所述的處理報文的方法的第一種實施例的方法流程圖;
[0030]圖5為本發(fā)明所述的處理報文的方法的第二種實施例的方法流程圖;
[0031]圖6為本發(fā)明所述的處理報文的方法的第三種實施例的方法流程圖;
[0032]圖7為本發(fā)明所述的處理報文的方法的第四種實施例的方法流程圖。
【具體實施方式】
[0033]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
[0034]需要說明的是,在不沖突的情況下,本發(fā)明中的實施例及實施例中的特征可以相互組合。
[0035]下面結(jié)合附圖和具體實施例對本發(fā)明作進(jìn)一步說明,但不作為本發(fā)明的限定。
[0036]本發(fā)明基于如下發(fā)現(xiàn):
[0037]現(xiàn)有的長連接主要基于原始TR-069客戶端的會話機(jī)制,原始的會話機(jī)制主要是為了保證報文順序不亂序,如圖1所示。但是基于長連接的客戶端如果要處理服務(wù)器下發(fā)的并發(fā)無序報文,會發(fā)生如圖2所示的會話錯誤。因此需要改進(jìn)長連接的處理機(jī)制??赏ㄟ^如下三種方法進(jìn)行改進(jìn):
[0038]第一種方法:用多進(jìn)程的方法,通過子進(jìn)程處理會話,這樣多個會話可以并發(fā);
[0039]第二種方法:使用多線程,每個線程處理一個會話;
[0040]第三種方法:使用單進(jìn)程并采用任務(wù)隊列方式。
[0041]上述第一種方法和第二種方法對硬件要求較高,適合在多核,大內(nèi)存的處理平臺上使用。目前很多大型服務(wù)器是使用多進(jìn)程,多線程方法來處理十萬級,百萬級的并發(fā)訪問。而對于家庭網(wǎng)關(guān)這種網(wǎng)絡(luò)終端設(shè)備,處理能力有限,并且并發(fā)數(shù)不會太多,多進(jìn)程或多線程的處理方法會額外開銷系統(tǒng)資源。所以本發(fā)明采取第三種方法,即采用任務(wù)隊列的方式,以避免多條報文交互過程中出錯的情形。
[0042]如圖3-4所示,一種處理報文的方法,用于基于CPE廣域網(wǎng)管理協(xié)議的客戶端,包括下述步驟:
[0043]S1.客戶端與一服務(wù)器建立長連接;
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1