本發(fā)明涉及數(shù)據(jù)處理技術領域,更具體地說,涉及一種協(xié)議截獲系統(tǒng)、協(xié)議截獲方法以及協(xié)議截獲裝置。
背景技術:
隨著科技的不斷發(fā)展,網(wǎng)絡應用的種類也越來越多,在各種網(wǎng)絡應用投入使用的前期或者使用過程中,均需要對其進行協(xié)議截獲并測試,以保證網(wǎng)絡應用的順暢通信以及其安全性。
目前,對網(wǎng)絡應用的協(xié)議截獲是通過hook技術,具體為:將裝載有第三方工具的第三方設備,與裝載有網(wǎng)絡應用的用戶設備建立通信連接;將用戶設備與應用服務器之間交互的通信協(xié)議先備份到第三方設備上,然后協(xié)議測試人員在第三方設備上對上述通信協(xié)議進行處理。
但發(fā)明人發(fā)現(xiàn),上述協(xié)議測試方式需要第三方設備獲取用戶設備的授權權限,如,假設用戶設備為一款手機,第三方設備為電腦,那么,電腦需要在獲取了手機root權限后,才能對手機上與應用服務器交互的通信協(xié)議以及數(shù)據(jù)進行備份,進一步才能對通信協(xié)議進行處理。除此,該方式還要求協(xié)議測試人員逆向分析用戶設備,并且要求用戶設備上的應用程序為未加殼的程序;可見,現(xiàn)有的協(xié)議截獲方式較為復雜。
因此如何降低截獲通信協(xié)議的復雜程度,成為了本領域技術人員需要解決的問題。
技術實現(xiàn)要素:
有鑒于此,本發(fā)明實施例提供了一種協(xié)議截獲系統(tǒng)、協(xié)議截獲方法以及協(xié)議截獲裝置,通過截獲應用服務器內(nèi)的協(xié)議,無需對用戶設備的權限進行限定,降低了截獲通信協(xié)議的復雜程度。
為實現(xiàn)上述目的,本發(fā)明實施例提供如下技術方案:
一種協(xié)議截獲系統(tǒng),包括用戶設備、應用服務器以及協(xié)議截獲裝置,
所述協(xié)議截獲裝置用于,建立與應用服務器的接入層端口以及邏輯層端口的連接通道;
通過所述連接通道,獲取用戶設備與所述應用服務器交互的數(shù)據(jù)包。
一種協(xié)議截獲方法,應用于協(xié)議截獲裝置,
建立與應用服務器的接入層端口以及邏輯層端口的連接通道;
通過所述連接通道,獲取用戶設備與所述應用服務器交互的數(shù)據(jù)包。
一種協(xié)議截獲裝置,包括:
搭建模塊,用于建立與應用服務器的接入層端口以及邏輯層端口的連接通道;
獲取模塊,用于通過所述連接通道,獲取用戶設備與所述應用服務器交互的數(shù)據(jù)包。
基于上述技術方案,本發(fā)明實施例提供了一種協(xié)議截獲系統(tǒng),包括用戶設備、應用服務器以及協(xié)議截獲裝置,其中,預先建立協(xié)議截獲裝置與應用服務器的接入層端口以及邏輯層端口的連接通道,再通過該連接通道,獲取用戶設備與所述應用服務器交互的數(shù)據(jù)包,將所述數(shù)據(jù)包發(fā)送往所述數(shù)據(jù)處理裝置以及將所述數(shù)據(jù)處理裝置預處理產(chǎn)生的目標數(shù)據(jù)包發(fā)送往所述用戶設備或應用服務器??梢?,本方案是對應用服務器端的數(shù)據(jù)包進行獲取攔截,不要求預先獲得用戶設備的權限,也不限定數(shù)據(jù)包的是否加殼,降低了截獲通信協(xié)議的復雜程度。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的協(xié)議截獲系統(tǒng)的結構框圖;
圖2為本發(fā)明實施例提供的協(xié)議截獲系統(tǒng)的信令流程圖;
圖3為本發(fā)明實施例提供的又一種協(xié)議截獲系統(tǒng)的信令交互示意圖;
圖4為本發(fā)明實施例提供的一種協(xié)議截獲系統(tǒng)的工具界面示意圖;
圖5為本發(fā)明實施例提供的再一種協(xié)議截獲系統(tǒng)的信令交互示意圖;
圖6為本發(fā)明實施例提供的再一種協(xié)議截獲系統(tǒng)的信令交互示意圖;
圖7為本發(fā)明實施例提供的再一種協(xié)議截獲系統(tǒng)的信令交互示意圖;
圖8為本發(fā)明實施例提供的再一種協(xié)議截獲系統(tǒng)的信令交互示意圖;
圖9為本發(fā)明實施例提供的一種協(xié)議截獲裝置的結構示意圖;
圖10為本發(fā)明實施例提供的又一種協(xié)議截獲裝置的結構示意圖;
圖11為本發(fā)明實施例提供的再一種協(xié)議截獲裝置的結構示意圖;
圖12為本發(fā)明實施例提供的再一種協(xié)議截獲裝置的結構示意圖;
圖13為本發(fā)明實施例提供的再一種協(xié)議截獲裝置的結構示意圖;
圖14為本發(fā)明實施例提供的再一種協(xié)議截獲裝置的結構示意圖;
圖15為本發(fā)明實施例提供的一種終端硬件結構示意圖。
具體實施方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都對應本發(fā)明保護的范圍。
本申請實施例提供了一種協(xié)議截獲系統(tǒng),包括用戶設備、應用服務器以及協(xié)議截獲裝置,其中,預先建立協(xié)議截獲裝置與應用服務器的接入層端口以及邏輯層端口的連接通道,再通過該連接通道,獲取用戶設備與所述應用服務器交互的數(shù)據(jù)包??梢?,本方案是對應用服務器端的數(shù)據(jù)包進行獲取攔截,不要求預先獲得用戶設備的權限,也不限定數(shù)據(jù)包的是否加殼,降低了截獲通信協(xié)議的復雜程度。
請參閱圖1,圖1為本發(fā)明實施例提供的協(xié)議截獲系統(tǒng)的結構框圖,本發(fā)明實施例提供的協(xié)議截獲方法可基于圖1所示系統(tǒng)實現(xiàn),參照圖1,本發(fā)明實施例提供的協(xié)議截獲系統(tǒng)可以包括:應用服務器11,至少一個用戶設備10以及協(xié)議截獲裝置22。
需要說明的是,應用服務器11可以為網(wǎng)絡側設置的用于與用戶設備10進行數(shù)據(jù)交互的設備,應用服務器11可以為單臺服務器,也可以為由多臺服務器組成的服務器群組或者是一個云計算服務中心。
至少一個用戶設備10為用戶側的用于發(fā)送業(yè)務請求的設備,如手機、平板電腦、筆記本電腦等。
協(xié)議截獲裝置22與應用服務器11的接入層端口以及邏輯層端口的連接,用于截獲應用服務器11與用戶設備10之間通信家交互的通信協(xié)議的數(shù)據(jù)包。
基于圖1所示系統(tǒng),圖2示出了本發(fā)明實施例提供的一種協(xié)議截獲系統(tǒng)的信令流程圖,該協(xié)議截獲系統(tǒng)包括:包括用戶設備、應用服務器以及協(xié)議截獲裝置,結合圖1和圖2所示,該信令交互過程可以包括:
步驟S100、建立與應用服務器的接入層端口以及邏輯層端口的連接通道。
步驟S101、通過所述連接通道,獲取用戶設備與所述應用服務器交互的數(shù)據(jù)包。
結合背景技術可知,用戶設備和應用服務器之間存在通信協(xié)議的交互,通常協(xié)議測試人員通過對獲取的協(xié)議進行檢測或者修改,以檢查通信協(xié)議是否存在bug,或者驗證通信協(xié)議是否存在異常。
需要說明的是,用戶設備與應用服務器之間的通信協(xié)議即通過數(shù)據(jù)包的形式體現(xiàn),即可以理解成一條通信協(xié)議為一個數(shù)據(jù)包。除此,協(xié)議截獲裝置可以為獨立的第三方服務器,也可以為集成在應用服務器的一部分,當然,本實施例中,優(yōu)選協(xié)議截獲裝置為與應用服務器獨立的服務器,且與該協(xié)議截獲裝置還可以連接有數(shù)據(jù)處理裝置,組成基于CS架構的協(xié)議測試系統(tǒng),詳見下文實施例。
本方案不通過hook用戶設備的方式攔截數(shù)據(jù)包,而是在應用服務器的接入層和邏輯層之間插入?yún)f(xié)議截獲裝置,然后通過協(xié)議截獲裝置獲取數(shù)據(jù)包。由于本方案是從應用服務器端截獲數(shù)據(jù)包,因此可以不要求預先獲得用戶設備的root權限,也不用限定用戶設備端發(fā)送的通信協(xié)議的加殼狀態(tài)。
可見,本方案降低了截獲通信協(xié)議的復雜程度。
在本申請的另一個實施例中,在上述協(xié)議截獲系統(tǒng)中,還增加了數(shù)據(jù)處理裝置,使得協(xié)議截獲裝置和數(shù)據(jù)處理裝置組成基于CS架構的協(xié)議測試系統(tǒng)。參照圖3,圖3為本申請示例的又一種協(xié)議截獲系統(tǒng)的信令交互示意圖,該信令交互過程包括:
步驟S200、協(xié)議截獲裝置將所述數(shù)據(jù)包發(fā)送往數(shù)據(jù)處理裝置。
此處,數(shù)據(jù)處理裝置為協(xié)議測試人員進行協(xié)議測試所依賴的一測試工具的平臺??梢酝ㄋ椎睦斫獬桑瑓f(xié)議截獲裝置為截取數(shù)據(jù)包的一服務器,該服務器在截獲了數(shù)據(jù)包后,將數(shù)據(jù)包發(fā)送給數(shù)據(jù)處理裝置,該數(shù)據(jù)處理裝置可以為計算機等。
優(yōu)選的,數(shù)據(jù)處理裝置可以具有顯示界面,可以將攔截的數(shù)據(jù)包按照協(xié)議測試人員設定的顯示方式進行顯示,如設定數(shù)據(jù)處理裝置的顯示界面為兩部分,界面的左側顯示截獲的數(shù)據(jù)包的數(shù)據(jù)列表,右側顯示截獲的數(shù)據(jù)包的協(xié)議樹視圖,如圖4所示,以滿足協(xié)議測試人員的常規(guī)UI要求。
具體的,在數(shù)據(jù)列表中,還可以以直觀的方式顯示數(shù)據(jù)包的結構和內(nèi)容,如按照預先設定的字段對數(shù)據(jù)包進行拆解分析,當然,本實施例提供的數(shù)據(jù)處理裝置的顯示界面也不局限于此,可以根據(jù)實際的測試需求而自行設定。
步驟S201、數(shù)據(jù)處理裝置對所述數(shù)據(jù)包進行預處理,并將預處理后生成的目標數(shù)據(jù)包發(fā)送往所述協(xié)議截獲裝置。
此處與數(shù)據(jù)包進行預處理的過程,可以為數(shù)據(jù)處理裝置根據(jù)預先的設定,對數(shù)據(jù)包進行bug掃描,也可以是按照固定的模式對接收到的數(shù)據(jù)包進行修改重發(fā),亂序等操作,來驗證程序的安全性,魯棒性和健壯性。還可以是測試人員通過手動選擇需要處理的數(shù)據(jù)包,等。
步驟S202、協(xié)議截獲裝置將所述數(shù)據(jù)處理裝置預處理產(chǎn)生的目標數(shù)據(jù)包發(fā)送往所述用戶設備或應用服務器。
需要說明的是,用戶設備和應用服務器之間的通信協(xié)議是交互的,按照通信協(xié)議的數(shù)據(jù)傳輸方向不同,可以定義成上行數(shù)據(jù)包和下行數(shù)據(jù)包,在本實施例中,定義用戶設備發(fā)送至應用服務器的接入層的數(shù)據(jù)包為上行數(shù)據(jù)包。在協(xié)議截獲裝置獲取上行數(shù)據(jù)包后,將上行數(shù)據(jù)包發(fā)送往數(shù)據(jù)處理裝置,經(jīng)數(shù)據(jù)處理裝置處理后,將生成的目標數(shù)據(jù)包發(fā)送往協(xié)議截獲裝置,再由協(xié)議截獲裝置將該目標數(shù)據(jù)包發(fā)送給應用服務器的邏輯層。
同理,定義應用服務器的邏輯層發(fā)送往用戶設備的數(shù)據(jù)包為下行數(shù)據(jù)包。在協(xié)議截獲裝置獲取下行數(shù)據(jù)包后,將下行數(shù)據(jù)包發(fā)送往數(shù)據(jù)處理裝置,經(jīng)數(shù)據(jù)處理裝置處理后,將生成的目標數(shù)據(jù)包發(fā)送往協(xié)議截獲裝置,再由協(xié)議截獲裝置將該目標數(shù)據(jù)包發(fā)送給用戶設備。
在本申請的另一個實施例中,對協(xié)議截獲裝置如何建立與應用服務器的接入層端口以及邏輯層端口的連接通道的過程進行介紹。參照圖5,圖5為本申請示例的又一種協(xié)議截獲的信令交互示意圖,該信令交互過程包括:
步驟S300、獲取所述應用服務器的接入層端口的第一通信地址以及邏輯層端口的第二通信地址。
步驟S301、將所述第一通信地址以及所述第二通信地址均替換為所述協(xié)議截獲裝置的第三通信地址。
首先,在未接入本協(xié)議截獲裝置之前,用戶設備與應用服務器有通信協(xié)議的交互,具體的,應用服務器的接入層接收用戶設備發(fā)送的數(shù)據(jù)包,再將該數(shù)據(jù)包發(fā)送到應用服務器的邏輯層,或者,應用服務器的邏輯層發(fā)送數(shù)據(jù)包到應用服務器的接入層,然后應用服務器的接入層再把數(shù)據(jù)包發(fā)送給用戶設備。而數(shù)據(jù)包發(fā)送的過程是需要依據(jù)數(shù)據(jù)包發(fā)送對端的地址,即接入層向邏輯層發(fā)數(shù)據(jù)包時,需要獲取邏輯層的地址信息,然后根據(jù)該地址信息將數(shù)據(jù)包發(fā)送到相應地址。
本實施例是在應用服務器的接入層和邏輯層之間插入了協(xié)議截獲裝置,可以通過將協(xié)議截獲裝置的地址設定成接入層發(fā)送對端的地址以及邏輯層發(fā)送對端的地址,即接入層發(fā)送數(shù)據(jù)包的目標地址設成協(xié)議截獲裝置的地址,同樣,將邏輯層發(fā)送數(shù)據(jù)包的目標地址也設置成協(xié)議截獲裝置的地址,以實現(xiàn)協(xié)議截獲裝置獲取接入層或邏輯層發(fā)送的數(shù)據(jù)包。形成應用服務器接入層-協(xié)議截獲裝置-應用服務器邏輯層,或,應用服務器邏輯層-協(xié)議截獲裝置-應用服務器接入層的數(shù)據(jù)通道。
需要說明的是,如圖6所示,本發(fā)明的各個實施例可以為遞進的關系,如上述實施例具體介紹了連接通道建立之后,還可以包括步驟:
步驟S101、通過所述連接通道,獲取用戶設備與所述應用服務器交互的數(shù)據(jù)包。
步驟S200、協(xié)議截獲裝置將所述數(shù)據(jù)包發(fā)送往數(shù)據(jù)處理裝置。
此處,數(shù)據(jù)處理裝置為協(xié)議測試人員進行協(xié)議測試所依賴的一測試工具的平臺??梢酝ㄋ椎睦斫獬桑瑓f(xié)議截獲裝置為截取數(shù)據(jù)包的一服務器,該服務器在截獲了數(shù)據(jù)包后,將數(shù)據(jù)包發(fā)送給數(shù)據(jù)處理裝置,該數(shù)據(jù)處理裝置可以為計算機等。
優(yōu)選的,數(shù)據(jù)處理裝置可以具有顯示界面,可以將攔截的數(shù)據(jù)包按照協(xié)議測試人員設定的顯示方式進行顯示,如設定數(shù)據(jù)處理裝置的顯示界面為兩部分,界面的左側顯示截獲的數(shù)據(jù)包的數(shù)據(jù)列表,右側顯示截獲的數(shù)據(jù)包的協(xié)議樹視圖,以滿足協(xié)議測試人員的常規(guī)UI要求。
具體的,在數(shù)據(jù)列表中,還可以以直觀的方式顯示數(shù)據(jù)包的結構和內(nèi)容,如按照預先設定的字段對數(shù)據(jù)包進行拆解分析,當然,本實施例提供的數(shù)據(jù)處理裝置的顯示界面也不局限于此,可以根據(jù)實際的測試需求而自行設定。
步驟S201、數(shù)據(jù)處理裝置對所述數(shù)據(jù)包進行預處理,并將預處理后生成的目標數(shù)據(jù)包發(fā)送往所述協(xié)議截獲裝置。
此處與數(shù)據(jù)包進行預處理的過程,可以為數(shù)據(jù)處理裝置根據(jù)預先的設定,對數(shù)據(jù)包進行bug掃描,也可以是按照固定的模式對接收到的數(shù)據(jù)包進行修改重發(fā),亂序等操作,來驗證程序的安全性,魯棒性和健壯性。還可以是測試人員通過手動選擇需要處理的數(shù)據(jù)包,等。
步驟S202、協(xié)議截獲裝置將所述數(shù)據(jù)處理裝置預處理產(chǎn)生的目標數(shù)據(jù)包發(fā)送往所述用戶設備或應用服務器。
需要說明的是,用戶設備和應用服務器之間的通信協(xié)議是交互的,按照通信協(xié)議的數(shù)據(jù)傳輸方向不同,可以定義成上行數(shù)據(jù)包和下行數(shù)據(jù)包,在本實施例中,定義用戶設備發(fā)送至應用服務器的接入層的數(shù)據(jù)包為上行數(shù)據(jù)包。在協(xié)議截獲裝置獲取上行數(shù)據(jù)包后,將上行數(shù)據(jù)包發(fā)送往數(shù)據(jù)處理裝置,經(jīng)數(shù)據(jù)處理裝置處理后,將生成的目標數(shù)據(jù)包發(fā)送往協(xié)議截獲裝置,再由協(xié)議截獲裝置將該目標數(shù)據(jù)包發(fā)送給應用服務器的邏輯層。
同理,定義應用服務器的邏輯層發(fā)送往用戶設備的數(shù)據(jù)包為下行數(shù)據(jù)包。在協(xié)議截獲裝置獲取下行數(shù)據(jù)包后,將下行數(shù)據(jù)包發(fā)送往數(shù)據(jù)處理裝置,經(jīng)數(shù)據(jù)處理裝置處理后,將生成的目標數(shù)據(jù)包發(fā)送往協(xié)議截獲裝置,再由協(xié)議截獲裝置將該目標數(shù)據(jù)包發(fā)送給用戶設備。
可見,不同實施例中相同步驟的解釋說明均相同,其作用也相同。因此,在下文的實施例中,不重復說明相同的步驟的工作原理及效果。
在本申請的另一個實施例中,對協(xié)議截獲裝置在將所述數(shù)據(jù)包發(fā)送往數(shù)據(jù)處理裝置的過程進行介紹。參照圖7,圖7為本申請示例的又一種協(xié)議截獲系統(tǒng)的信令交互示意圖,該信令交互過程包括:
S400:判斷接收到的所述數(shù)據(jù)包是否為第一類數(shù)據(jù)包,如果是,則將所述數(shù)據(jù)包發(fā)送往所述應用服務器或所述用戶設備;如果否,則將所述數(shù)據(jù)包發(fā)送往所述數(shù)據(jù)處理裝置;所述第一類數(shù)據(jù)包至少包括透明傳輸?shù)臄?shù)據(jù)包。
通常在協(xié)議測試時,有些數(shù)據(jù)包是要求透明傳輸?shù)模簿褪钦f這類的數(shù)據(jù)包是不用進行獲取并測試的,當檢測到協(xié)議截獲裝置獲取的數(shù)據(jù)包為透明傳輸?shù)臄?shù)據(jù)包時,直接對該數(shù)據(jù)包“放行”,按照其原有的路徑進行傳送。
具體的,假設協(xié)議截獲裝置獲取了兩個數(shù)據(jù)包,分別為由應用服務器的接入層發(fā)送往邏輯層的數(shù)據(jù)包a和由邏輯層發(fā)送往接入層的數(shù)據(jù)包b,其中,數(shù)據(jù)包a為透明傳輸?shù)臄?shù)據(jù)包,數(shù)據(jù)包b為非透傳的數(shù)據(jù)包,則協(xié)議截獲裝置會將數(shù)據(jù)包a按照原傳輸路徑,將數(shù)據(jù)包a傳輸給接入層,將數(shù)據(jù)包b發(fā)送給數(shù)據(jù)處理裝置,以備數(shù)據(jù)處理裝置對數(shù)據(jù)包b進行處理。
在本申請的另一個實施例中,對協(xié)議截獲裝置在獲取用戶設備與所述應用服務器交互的數(shù)據(jù)包的過程進行介紹。參照圖8,圖8為本申請示例的又一種協(xié)議截獲系統(tǒng)的信令交互示意圖,該信令交互過程包括:
步驟S500、在預設時間間隔,通過文件系統(tǒng)接口接收所述數(shù)據(jù)包;
步驟S501、判斷所述文件系統(tǒng)接口是否處于空閑狀態(tài),如果是,則對所述文件系統(tǒng)接口進行計數(shù),當計數(shù)達到預設數(shù)值時,調(diào)用延遲掛起接口。
除此,還可以包括步驟S502、在接收到第一控制指令時,停止對所述文件系統(tǒng)接口進行計數(shù),并調(diào)用停止接口。
上述步驟主要是因為考慮到用戶設備與應用服務器之間不是每時每刻都有通信協(xié)議交互,因此可以在預設時間間隔內(nèi),對數(shù)據(jù)包進行獲取,當判斷出某一文件系統(tǒng)接口一定程度上處于空閑時,則可控制該接口暫時休眠,以節(jié)約協(xié)議截獲裝置的資源。同樣,在接收到測試設置發(fā)送的某些控制指令時,協(xié)議截獲裝置執(zhí)行相應的動作,如接收到停止獲取數(shù)據(jù)包的指令后,停止獲取數(shù)據(jù)包。
具體的,結合上述實施例,列舉一具體實例來輔助說明上述實施例的工作過程。如:需要對多款手機游戲進行協(xié)議測試,此時,用戶設備對應手機游戲,應用服務器對應游戲服務器。
本發(fā)明實施例提供的協(xié)議截獲系統(tǒng)包括協(xié)議截獲裝置和數(shù)據(jù)處理裝置兩部分,其中,協(xié)議截獲裝置設置在游戲服務器的接入層和邏輯層之間,用于截獲接入層和邏輯層發(fā)送的數(shù)據(jù)包,然后判斷該數(shù)據(jù)包是否為透傳的數(shù)據(jù)包,如果是,則將該數(shù)據(jù)包直接發(fā)送到對端,如果不是,則將該數(shù)據(jù)包發(fā)送到數(shù)據(jù)處理裝置,通過預設的顯示方式對上述數(shù)據(jù)包進行顯示,此時,協(xié)議測試人員可以通過數(shù)據(jù)處理裝置對數(shù)據(jù)包進行修改或檢查,然后將處理的數(shù)據(jù)包發(fā)送給協(xié)議截獲裝置,再由協(xié)議截獲裝置將處理后的數(shù)據(jù)包發(fā)送至接入層或邏輯層,測試人員根據(jù)游戲服務器能對修改后的數(shù)據(jù)包的識別結果來判定通信協(xié)議是否故障。
可以看出,本方案是對應用服務器端的數(shù)據(jù)包進行獲取攔截,不要求預先獲得用戶設備的權限,也不限定數(shù)據(jù)包的是否加殼,降低了截獲通信協(xié)議的復雜程度。
本申請實施例以協(xié)議截獲裝置的角度對協(xié)議截獲方法進行了介紹,其中,方法實施例中未披露的細節(jié)請參照本申請系統(tǒng)實施例,該方法包括:
建立與應用服務器的接入層端口以及邏輯層端口的連接通道。
通過所述連接通道,獲取用戶設備與所述應用服務器交互的數(shù)據(jù)包。
優(yōu)選的,還包括
將所述數(shù)據(jù)包發(fā)送往數(shù)據(jù)處理裝置,以使所述數(shù)據(jù)處理裝置對所述數(shù)據(jù)包進行預處理,并將預處理后生成的目標數(shù)據(jù)包發(fā)送往所述協(xié)議截獲裝置,所述協(xié)議截獲裝置將所述目標數(shù)據(jù)包發(fā)送往所述用戶設備或應用服務器。
優(yōu)選的,所述建立與應用服務器的接入層端口以及邏輯層端口的連接通道包括:
獲取所述應用服務器的接入層端口的第一通信地址以及邏輯層端口的第二通信地址;
將所述第一通信地址以及所述第二通信地址均替換為所述協(xié)議截獲裝置的第三通信地址。
優(yōu)選的,在所述將所述數(shù)據(jù)包發(fā)送往數(shù)據(jù)處理裝置包括:
判斷接收到的所述數(shù)據(jù)包是否為第一類數(shù)據(jù)包,如果是,則將所述數(shù)據(jù)包發(fā)送往所述應用服務器或所述用戶設備;如果否,則將所述數(shù)據(jù)包發(fā)送往所述數(shù)據(jù)處理裝置;所述第一類數(shù)據(jù)包至少包括透明傳輸?shù)臄?shù)據(jù)包。
優(yōu)選的,所述協(xié)議截獲裝置將所述目標數(shù)據(jù)包發(fā)送往所述用戶設備或應用服務器包括:
當接收到所述數(shù)據(jù)處理裝置發(fā)送的第一指令時,將所述目標數(shù)據(jù)包發(fā)送往所述用戶設備;
當接收到所述數(shù)據(jù)處理裝置發(fā)送的第二指令時,將所述目標數(shù)據(jù)包發(fā)送往所述應用服務器。
優(yōu)選的,所述獲取用戶設備與所述應用服務器交互的數(shù)據(jù)包包括:
在預設時間間隔,通過文件系統(tǒng)接口接收所述數(shù)據(jù)包;
判斷所述文件系統(tǒng)接口是否處于空閑狀態(tài),如果是,則對所述文件系統(tǒng)接口進行計數(shù),當計數(shù)達到預設數(shù)值時,調(diào)用延遲掛起接口。
優(yōu)選的,還包括:
在接收到第一控制指令時,停止對所述文件系統(tǒng)接口進行計數(shù),并調(diào)用停止接口。
下面對本申請實施例提供的協(xié)議截獲裝置進行描述,下文描述的協(xié)議截獲裝置與上文描述的協(xié)議截獲系統(tǒng)相互對應參照。
請參閱圖9,圖9為本發(fā)明實施例提供的一種協(xié)議截獲裝置的結構示意圖,包括:
搭建模塊100,用于建立與應用服務器的接入層端口以及邏輯層端口的連接通道;
獲取模塊200,用于通過所述連接通道,獲取用戶設備與所述應用服務器交互的數(shù)據(jù)包。
除此,還包括:
發(fā)送模塊300,用于將所述數(shù)據(jù)包發(fā)送往數(shù)據(jù)處理裝置,以使所述數(shù)據(jù)處理裝置對所述數(shù)據(jù)包進行預處理,并將預處理后生成的目標數(shù)據(jù)包發(fā)送往所述協(xié)議截獲裝置,所述協(xié)議截獲裝置將所述目標數(shù)據(jù)包發(fā)送往所述用戶設備或應用服務器。
優(yōu)選的,所述搭建模塊100包括:
第一獲取單元101,用于獲取所述應用服務器的接入層端口的第一通信地址以及邏輯層端口的第二通信地址;
替換單元102,用于將所述第一通信地址以及所述第二通信地址均替換為所述協(xié)議截獲裝置的第三通信地址。
優(yōu)選的,所述發(fā)送模塊300包括:
判斷單元301,用于判斷接收到的所述數(shù)據(jù)包是否為第一類數(shù)據(jù)包;
發(fā)送單元302,用于當所述數(shù)據(jù)包為第一類數(shù)據(jù)包時,將所述數(shù)據(jù)包發(fā)送往所述應用服務器或所述用戶設備;當所述數(shù)據(jù)包為非第一類數(shù)據(jù)包時,將所述數(shù)據(jù)包發(fā)送往所述數(shù)據(jù)處理裝置。
優(yōu)選的,所述獲取模塊200包括:
接收單元201,用于在預設時間間隔,通過文件系統(tǒng)接口接收所述數(shù)據(jù)包;
判斷單元202,用于判斷所述文件系統(tǒng)接口是否處于空閑狀態(tài),如果是,則對所述文件系統(tǒng)接口進行計數(shù),當計數(shù)達到預設數(shù)值時,調(diào)用延遲掛起接口。
優(yōu)選的所述獲取模塊200還包括:
控制單元203,用于在接收到第一控制指令時,停止對所述文件系統(tǒng)接口進行計數(shù),并調(diào)用停止接口。
本發(fā)明實施例提供的服務器的硬件結構可如圖15所示,包括:處理器1,通信接口2,存儲器3和通信總線4;
其中處理器1、通信接口2、存儲器3通過通信總線4完成相互間的通信;
可選的,通信接口2可以為通信模塊的接口,如GSM模塊的接口;
處理器1,用于執(zhí)行程序;
存儲器3,用于存放程序;
程序可以包括程序代碼,所述程序代碼包括計算機操作指令。
處理器1可能是一個中央處理器CPU,或者是特定集成電路ASIC(Application Specific Integrated Circuit),或者是被配置成實施本發(fā)明實施例的一個或多個集成電路。
存儲器3可能包含高速RAM存儲器,也可能還包括非易失性存儲器(non-volatile memory),例如至少一個磁盤存儲器。
其中,程序可具體用于:
建立與應用服務器的接入層端口以及邏輯層端口的連接通道;
通過所述連接通道,獲取用戶設備與所述應用服務器交互的數(shù)據(jù)包。
綜上所述,本發(fā)明實施例提供了一種協(xié)議截獲系統(tǒng),包括用戶設備、應用服務器以及協(xié)議截獲裝置,其中,預先建立協(xié)議截獲裝置與應用服務器的接入層端口以及邏輯層端口的連接通道,再通過該連接通道,獲取用戶設備與所述應用服務器交互的數(shù)據(jù)包,將所述數(shù)據(jù)包發(fā)送往所述數(shù)據(jù)處理裝置以及將所述數(shù)據(jù)處理裝置預處理產(chǎn)生的目標數(shù)據(jù)包發(fā)送往所述用戶設備或應用服務器??梢?,本方案是對應用服務器端的數(shù)據(jù)包進行獲取攔截,不要求預先獲得用戶設備的權限,也不限定數(shù)據(jù)包的是否加殼,降低了截獲通信協(xié)議的復雜程度。
本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。
專業(yè)人員還可以進一步意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術方案的特定應用和設計約束條件。專業(yè)技術人員可以對每個特定的應用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應認為超出本發(fā)明的范圍。
結合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結合來實施。軟件模塊可以置于隨機存儲器(RAM)、內(nèi)存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術領域內(nèi)所公知的任意其它形式的存儲介質(zhì)中。
對所公開的實施例的上述說明,使本領域?qū)I(yè)技術人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領域的專業(yè)技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。