致采集服務(wù)器無法與ITMS 管理系統(tǒng)同時(shí)對用戶設(shè)備進(jìn)行通信。因此在這種特殊的情況下,本發(fā)明實(shí)施例一提出一種 能夠?qū)崿F(xiàn)ITMS與采集服務(wù)器同時(shí)與CPE進(jìn)行通信的代理服務(wù)器。圖1示出了本發(fā)明實(shí)施 例一提供的代理服務(wù)器的結(jié)構(gòu)示意圖。
[0058] 所述代理服務(wù)器用于在用戶終端設(shè)備CPE側(cè)和管理服務(wù)器ACS側(cè)之間進(jìn)行數(shù)據(jù)轉(zhuǎn) 發(fā),所述ACS包括ITMS服務(wù)器和采集服務(wù)器;
[0059] 所述代理服務(wù)器包括:第一接口、第二接口、第三接口和處理器;
[0060] 所述第一接口為CPE與所述代理服務(wù)器進(jìn)行通信所使用的接口;
[0061] 所述第二接口為ITMS服務(wù)器與所述代理服務(wù)器進(jìn)行通信所使用的接口;
[0062] 所述第三接口為采集服務(wù)器與所述代理服務(wù)器進(jìn)行通信所使用的接口;
[0063] 所述處理器用于根據(jù)所述第一接口、第二接口或第三接口接收到的數(shù)據(jù)包的傳輸 方向以及數(shù)據(jù)包的狀態(tài)類型對數(shù)據(jù)包進(jìn)行修改后轉(zhuǎn)發(fā)給ITMS服務(wù)器、采集服務(wù)器或CPE。
[0064] 本發(fā)明實(shí)施例一所述的代理服務(wù)器,通過第一接口、第二接口、第三接口和處理 器,將負(fù)責(zé)ITMS系統(tǒng)的配置管理功能的ITMS服務(wù)器和負(fù)責(zé)故障診斷監(jiān)控的采集服務(wù)器進(jìn) 行分離。其中,所述代理服務(wù)器在ITMS服務(wù)器和采集服務(wù)器一側(cè)相當(dāng)于一個(gè)路由器,只負(fù) 責(zé)轉(zhuǎn)發(fā)數(shù)據(jù)包,所述代理服務(wù)器在CPE -側(cè)相當(dāng)于管理服務(wù)器ACS,CPE統(tǒng)一向代理服務(wù)器 的第一接口地址上報(bào)數(shù)據(jù)。本發(fā)明實(shí)施例一的代理服務(wù)器將ITMS系統(tǒng)的配置管理功能與 數(shù)據(jù)采集功能進(jìn)行分離,提高了工作效率,減小了設(shè)備監(jiān)控風(fēng)險(xiǎn)。
[0065] 下面以本發(fā)明實(shí)施例二為例來詳細(xì)介紹本發(fā)明的技術(shù)方案。
[0066] 本發(fā)明實(shí)施例二所述代理服務(wù)器包括:第一接口、第二接口、第三接口和處理器;
[0067] 所述第一接口為CPE與所述代理服務(wù)器進(jìn)行通信所使用的接口;
[0068] 所述第二接口為ITMS服務(wù)器與所述代理服務(wù)器進(jìn)行通信所使用的接口;
[0069] 所述第三接口為采集服務(wù)器與所述代理服務(wù)器進(jìn)行通信所使用的接口;
[0070] 所述處理器用于根據(jù)所述第一接口、第二接口或第三接口接收到的數(shù)據(jù)包的傳輸 方向以及數(shù)據(jù)包的狀態(tài)類型對數(shù)據(jù)包進(jìn)行修改后轉(zhuǎn)發(fā)給ITMS服務(wù)器、采集服務(wù)器或CPE。
[0071] 其中,CPE中初始配置的上報(bào)IP地址由原來的ITMS上報(bào)地址修改為代理服務(wù)器 的第一接口地址,在CPE被激活后或周期性上報(bào)時(shí)都向該新地址發(fā)起TCP連接。代理服務(wù) 器收到該TCP連接請求后會根據(jù)轉(zhuǎn)發(fā)規(guī)則對該TCP連接的所有數(shù)據(jù)包進(jìn)行修改,并轉(zhuǎn)發(fā)給 ITMS服務(wù)器或采集服務(wù)器。從而同時(shí)維持CPE與ITMS服務(wù)器和采集服務(wù)器之間的TCP連 接,實(shí)現(xiàn)對CPE進(jìn)行管理和監(jiān)控同時(shí)進(jìn)行。
[0072] 加入代理服務(wù)器后,部署方式如圖3所示,圖中M為用戶終端設(shè)備與代理服務(wù)器之 間的接口,即第一接口。代理服務(wù)器提供一個(gè)統(tǒng)一的上報(bào)IP地址(第一接口地址)給用戶 終端設(shè)備,用戶終端設(shè)備通過該上報(bào)地址向代理服務(wù)器上報(bào)數(shù)據(jù)。
[0073] 圖中N為代理服務(wù)器與ITMS服務(wù)器之間的接口,即第二接口,用來轉(zhuǎn)發(fā)用戶終端 設(shè)備周期性上報(bào)數(shù)據(jù)和ITMS利用主動激活方式采集設(shè)備數(shù)據(jù)時(shí)設(shè)備所上報(bào)的數(shù)據(jù)。
[0074] 圖中P為代理服務(wù)器與采集服務(wù)器之間的接口,即第三接口,用來傳遞采集服務(wù) 器主動采集設(shè)備數(shù)據(jù)時(shí)設(shè)備上報(bào)的數(shù)據(jù)。
[0075] 為達(dá)到將業(yè)務(wù)功能不同的數(shù)據(jù)進(jìn)行正確分流的功能,代理服務(wù)器設(shè)計(jì)的主要難點(diǎn) 在于:
[0076] (1)用戶終端設(shè)備只能設(shè)置一個(gè)上報(bào)地址(IP地址和端口號),代理服務(wù)器需要對 來自不同設(shè)備的數(shù)據(jù)進(jìn)行邏輯判斷,并對數(shù)據(jù)包進(jìn)行修改轉(zhuǎn)發(fā)。
[0077] (2) CPE與ACS之間采用HTTP協(xié)議進(jìn)行通信,代理服務(wù)器必須保證面向連接的TCP 協(xié)議的透傳,同時(shí)還要支持UDP數(shù)據(jù)報(bào)文。
[0078] (3)對設(shè)備進(jìn)行主動激活采集數(shù)據(jù)時(shí),ACS與CPE之間需要建立兩次TCP連接,并 且兩次TCP連接的發(fā)起者不同。這導(dǎo)致ITMS系統(tǒng)和采集系統(tǒng)如果同時(shí)對一個(gè)用戶設(shè)備進(jìn) 行激活時(shí),用戶設(shè)備端發(fā)起的下一個(gè)TCP連接容易引起混淆。
[0079] 在采集服務(wù)器對用戶終端設(shè)備成功激活的瞬間,若恰好遇到設(shè)備周期性上報(bào)請求 的發(fā)起,則有可能將該請求誤認(rèn)為是設(shè)備對本次主動激活的應(yīng)答,從而導(dǎo)致TCP連接混淆。
[0080] 在本實(shí)施例代理服務(wù)器的設(shè)計(jì)當(dāng)中,考慮到服務(wù)器數(shù)據(jù)處理性能的問題,將代理 服務(wù)器設(shè)計(jì)為工作在網(wǎng)絡(luò)層(IP層)、傳輸層(TCP層)以及數(shù)據(jù)鏈路層(DATA LINK層) 上。主要利用數(shù)據(jù)包的IP地址、端口、MAC地址以及一些標(biāo)志位作為邏輯判斷條件,在接受 到來自用戶設(shè)備的上報(bào)請求時(shí),對數(shù)據(jù)包做出正確的轉(zhuǎn)發(fā)操作。
[0081] CPE上報(bào)數(shù)據(jù)時(shí)采用的是建立在HTTP應(yīng)用層協(xié)議上的TR069協(xié)議,對于代理服務(wù) 器來說,不需要關(guān)心TR069協(xié)議內(nèi)容,也不需要關(guān)心HTTP請求和應(yīng)答,只需要關(guān)心TCP連接 的建立、維護(hù)及斷開。
[0082] 代理服務(wù)器數(shù)據(jù)包轉(zhuǎn)發(fā)處理流程如圖4所示。
[0083] 代理服務(wù)器需要對每個(gè)經(jīng)過的數(shù)據(jù)包進(jìn)行識別和分類,通過多個(gè)不同結(jié)構(gòu)的HASH 表對每個(gè)數(shù)據(jù)包中不同標(biāo)志位進(jìn)行登記,從而獲知ITMS服務(wù)器和采集服務(wù)器的業(yè)務(wù)行為, 并根據(jù)該行為做出轉(zhuǎn)發(fā)判斷。
[0084] 代理服務(wù)器中用于登記數(shù)據(jù)包信息的HASH表包括:
[0085] 第一 HASH表用于存儲來自采集服務(wù)器的激活數(shù)據(jù)包;
[0086] 第二HASH表用于存儲已成功激活CPE的采集服務(wù)器的信息;
[0087] 第三HASH表用于存儲CPE向采集服務(wù)器上報(bào)數(shù)據(jù)的數(shù)據(jù)包信息;
[0088] 以上三個(gè)HASH表并非獨(dú)立存在,它們之間存在一定的邏輯關(guān)系。當(dāng)?shù)谝?HASH表 中記錄的激活TCP連接信息完成一次成功的設(shè)備激活操作后,激活設(shè)備的采集服務(wù)器和被 激活設(shè)備的相關(guān)IP地址、端口等信息會被登記到第二HASH表中,表明采集服務(wù)器已對目標(biāo) 設(shè)備進(jìn)行了一次成功的激活。當(dāng)被激活設(shè)備響應(yīng)該次激活時(shí),會向上報(bào)地址發(fā)起一次新的 TCP連接,代理服務(wù)器收到該連接請求后會對第二HASH表進(jìn)行查詢,若第二HASH表中存在 該次激活的相關(guān)信息,則接受此次上報(bào)請求,并將上報(bào)TCP連接信息登記到第三HASH中,通 過第三HASH維持該TCP連接,直到上報(bào)操作完成。
[0089] 通過以上幾個(gè)HASH表的應(yīng)用,代理服務(wù)器可以通過對數(shù)據(jù)包IP頭部、TCP頭部中 的IP地址、端口、若干標(biāo)志位將數(shù)據(jù)包進(jìn)行分類,而且可以從中獲取服務(wù)器業(yè)務(wù)操作信息。
[0090] HASH表中時(shí)刻保持著當(dāng)前TCP連接以及終端設(shè)備主動激活的相關(guān)業(yè)務(wù)信息,若出 現(xiàn)網(wǎng)絡(luò)中斷或由于故障終端設(shè)備未對激活進(jìn)行響應(yīng)等情況,就會導(dǎo)致HASH表中所存儲信 息準(zhǔn)確性下降。所以,為了實(shí)現(xiàn)HASH表準(zhǔn)確的維持TCP連接以及正確的記錄激活信息,最 好能定對HASH表中的記錄進(jìn)行定期清理,清理周期需根據(jù)數(shù)據(jù)采集頻率和TCP超時(shí)時(shí)間來 確定。
[0091] 代理服務(wù)器根據(jù)IP數(shù)據(jù)包的傳輸方向和狀態(tài)類型進(jìn)行轉(zhuǎn)發(fā)處理:
[0092] 數(shù)據(jù)包的傳輸方向包括:CPE - ACS方向,ACS - CPE方向。
[0093] 數(shù)據(jù)包狀態(tài)類型包括:SYN類型、ACK類型、FIN類型,分別代表發(fā)起請求、交互中、 斷開請求。
[0094] (假設(shè)原始ITMS系統(tǒng)提供的上報(bào)端口為8080,CPE上提供的激活端口為58000。)
[0095] ACS_>CPE方向?qū)?shù)據(jù)包按數(shù)據(jù)包狀態(tài)類型分別做以下不同操作:
[0096] SYN :當(dāng)接收到來自采集服務(wù)器的SYN包時(shí),說明采集服務(wù)器此時(shí)開始對目標(biāo)CPE 進(jìn)行激活。在接收到SYN包的時(shí)候,我們需要在第一 HASH表中保存目的CPE的IP地址以 及該數(shù)據(jù)報(bào)文中的源Port號,以及當(dāng)前時(shí)間戳。(注:在激活操作時(shí),采集服務(wù)器作為客戶 端,CPE作為服務(wù)器??蛻舳怂褂玫亩丝谔枮殡S機(jī)分配的端口號,不會是上報(bào)端口 8080。 該端口號在一定時(shí)間內(nèi)(主動激活的時(shí)間間隔一般精確在數(shù)分鐘)可以配合目的IP地址 作為該次TCP連接的唯一性標(biāo)識)
[0097] ACK :當(dāng)接收到來自采集服務(wù)器的ACK包時(shí),檢查源端口號是否為808