本公開涉及電子信息技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)跟蹤方法和裝置。
背景技術(shù):
在電子信息技術(shù)發(fā)展的過程中,隨著網(wǎng)絡(luò)帶寬不斷提高、設(shè)備功能越加豐富,相應(yīng)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)也變得非常復(fù)雜。在這種流量大、結(jié)構(gòu)復(fù)雜的網(wǎng)絡(luò)環(huán)境中,數(shù)據(jù)安全一直是技術(shù)發(fā)展中的重點(diǎn)和難點(diǎn),當(dāng)傳輸?shù)臄?shù)據(jù)出現(xiàn)異常時,需要進(jìn)行跟蹤定位?,F(xiàn)有技術(shù)中,對異常數(shù)據(jù)跟蹤需要啟動gdb(GNU debugger)設(shè)置斷點(diǎn)進(jìn)行調(diào)試,會中斷當(dāng)前進(jìn)程,影響數(shù)據(jù)轉(zhuǎn)發(fā)性能,而且經(jīng)過編譯后的程序并不是順序執(zhí)行,因此跟蹤異常數(shù)據(jù)實(shí)現(xiàn)困難且準(zhǔn)確度低。
技術(shù)實(shí)現(xiàn)要素:
本公開提供一種數(shù)據(jù)跟蹤方法和裝置,用以解決傳統(tǒng)跟蹤方法需中斷當(dāng)前進(jìn)程導(dǎo)致的影響轉(zhuǎn)發(fā)性能以及程序亂序?qū)е碌漠惓?shù)據(jù)難以跟蹤且準(zhǔn)確度低的問題。
為了實(shí)現(xiàn)上述目的,根據(jù)本公開實(shí)施例的第一方面,提供一種數(shù)據(jù)跟蹤方法,應(yīng)用于網(wǎng)關(guān),所述方法包括:
解析當(dāng)前接收到的第一數(shù)據(jù),得到所述第一數(shù)據(jù)的傳輸參數(shù)組,所述傳輸參數(shù)組包括:能夠用于確定所述第一數(shù)據(jù)的來源和目的地的一個或者多個參數(shù);
當(dāng)所述傳輸參數(shù)組與預(yù)先配置的過濾條件所指示的傳輸參數(shù)組一致時,獲取所述第一數(shù)據(jù)的預(yù)設(shè)參數(shù)組,所述預(yù)設(shè)參數(shù)組包括所述第一數(shù)據(jù)當(dāng)前所在的數(shù)據(jù)傳輸通路的位置信息。
可選的,所述解析當(dāng)前接收到的第一數(shù)據(jù),獲取所述第一數(shù)據(jù)的傳輸參數(shù)組包括:
通過所述網(wǎng)關(guān)的功能模塊調(diào)用預(yù)設(shè)宏定義,所述功能模塊為所述網(wǎng)關(guān)中的任一功能模塊;
將所述第一數(shù)據(jù)的數(shù)據(jù)包結(jié)構(gòu)作為參數(shù)傳遞給所述預(yù)設(shè)宏定義;
通過所述預(yù)設(shè)宏定義根據(jù)所述第一數(shù)據(jù)的數(shù)據(jù)包結(jié)構(gòu)確定所述第一數(shù)據(jù)的傳輸協(xié)議類型,并根據(jù)所述傳輸協(xié)議類型對所述第一數(shù)據(jù)進(jìn)行解析,得到所述第一數(shù)據(jù)的傳輸參數(shù)組;
所述傳輸參數(shù)組包括:所述第一數(shù)據(jù)的五元組信息。
可選的,所述過濾條件所指示的傳輸參數(shù)組以全局變量的形式存儲在共享內(nèi)存中。
可選的,所述預(yù)設(shè)參數(shù)組包括所述第一數(shù)據(jù)所在數(shù)據(jù)通路函數(shù)的函數(shù)名稱和所述數(shù)據(jù)通路函數(shù)對應(yīng)的源代碼的行號。
可選的,所述當(dāng)所述傳輸參數(shù)組與預(yù)先配置的過濾條件所指示的傳輸參數(shù)組一致時,獲取所述第一數(shù)據(jù)的預(yù)設(shè)參數(shù)組的步驟,包括:
當(dāng)所述傳輸參數(shù)組與預(yù)先配置的過濾條件所指示的傳輸參數(shù)組一致時,獲取所述第一數(shù)據(jù)當(dāng)前經(jīng)過的功能模塊的鉤子點(diǎn)所指示的所述第一數(shù)據(jù)當(dāng)前所在的數(shù)據(jù)通路函數(shù)的函數(shù)名稱和所述數(shù)據(jù)通路函數(shù)對應(yīng)的源代碼的行號,所述功能模塊為所述網(wǎng)關(guān)中的任一功能模塊,所述鉤子點(diǎn)是預(yù)先為所述功能模塊設(shè)置的。
可選的,在所述解析當(dāng)前接收到的第一數(shù)據(jù)的步驟之前,還包括:
判斷是否開啟了跟蹤功能,當(dāng)所述跟蹤功能開啟時,在預(yù)設(shè)文件路徑下創(chuàng)建跟蹤結(jié)果文件,所述跟蹤結(jié)果文件用于存儲所述預(yù)設(shè)參數(shù)組。
根據(jù)本公開實(shí)施例的第二方面,提供一種數(shù)據(jù)跟蹤裝置,應(yīng)用于網(wǎng)關(guān),所述裝置包括:解析模塊和獲取模塊;
所述解析模塊,用于解析當(dāng)前接收到的第一數(shù)據(jù),得到所述第一數(shù)據(jù)的傳輸參數(shù)組,所述傳輸參數(shù)組包括:能夠用于確定所述第一數(shù)據(jù)的來源和目的地的一個或者多個參數(shù);
所述獲取模塊,用于當(dāng)所述傳輸參數(shù)組與預(yù)先配置的過濾條件所指示的傳輸參數(shù)組一致時,獲取所述第一數(shù)據(jù)的預(yù)設(shè)參數(shù)組,所述預(yù)設(shè)參數(shù)組包括所述第一數(shù)據(jù)當(dāng)前所在的數(shù)據(jù)傳輸通路的位置信息。
可選的,所述解析模塊包括:調(diào)用模塊、傳遞模塊和參數(shù)解析模塊;
所述調(diào)用模塊,用于通過所述網(wǎng)關(guān)的功能模塊調(diào)用預(yù)設(shè)宏定義,所述功能模塊為所述網(wǎng)關(guān)中的任一功能模塊;
所述傳遞模塊,用于將所述第一數(shù)據(jù)的數(shù)據(jù)包結(jié)構(gòu)作為參數(shù)傳遞給所述預(yù)設(shè)宏定義;
所述參數(shù)解析模塊,用于通過所述預(yù)設(shè)宏定義根據(jù)所述第一數(shù)據(jù)的數(shù)據(jù)包結(jié)構(gòu)確定所述第一數(shù)據(jù)的傳輸協(xié)議類型,并根據(jù)所述傳輸協(xié)議類型對所述第一數(shù)據(jù)進(jìn)行解析,得到所述第一數(shù)據(jù)的傳輸參數(shù)組;
所述傳輸參數(shù)組包括:所述第一數(shù)據(jù)的五元組信息。
可選的,所述過濾條件所指示的傳輸參數(shù)組以全局變量的形式存儲在共享內(nèi)存中。
可選的,所述預(yù)設(shè)參數(shù)組包括所述第一數(shù)據(jù)所在數(shù)據(jù)通路函數(shù)的函數(shù)名稱和所述數(shù)據(jù)通路函數(shù)對應(yīng)的源代碼的行號。
可選的,所述獲取模塊,用于當(dāng)所述傳輸參數(shù)組與預(yù)先配置的過濾條件所指示的傳輸參數(shù)組一致時,獲取所述第一數(shù)據(jù)當(dāng)前經(jīng)過的功能模塊的鉤子點(diǎn)所指示的所述第一數(shù)據(jù)當(dāng)前所在的數(shù)據(jù)通路函數(shù)的函數(shù)名稱和所述數(shù)據(jù)通路函數(shù)對應(yīng)的源代碼的行號,所述功能模塊為所述網(wǎng)關(guān)中的任一功能模塊,所述鉤子點(diǎn)是預(yù)先為所述功能模塊設(shè)置的。
可選的,所述裝置還包括:判斷模塊;
所述判斷模塊,用于判斷是否開啟了跟蹤功能,當(dāng)所述跟蹤功能開啟時,在預(yù)設(shè)文件路徑下創(chuàng)建跟蹤結(jié)果文件,所述跟蹤結(jié)果文件用于存儲所述預(yù)設(shè)參數(shù)組。
通過上述技術(shù)方案,本公開利用網(wǎng)關(guān)對數(shù)據(jù)進(jìn)行解析,并利用預(yù)先配置的過濾條件識別異常數(shù)據(jù),并在識別出異常數(shù)據(jù)時獲取異常數(shù)據(jù)所在的數(shù)據(jù)傳輸通路的位置信息,能夠解決傳統(tǒng)跟蹤方法需中斷當(dāng)前進(jìn)程導(dǎo)致的影響轉(zhuǎn)發(fā)性能以及程序亂序?qū)е碌漠惓?shù)據(jù)難以跟蹤且準(zhǔn)確度低的問題,具有在不影響數(shù)據(jù)轉(zhuǎn)發(fā)性能前提下,易于實(shí)現(xiàn)對異常數(shù)據(jù)進(jìn)行準(zhǔn)確跟蹤的效果。
應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本公開。
附圖說明
附圖是用來提供對本公開的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與下面的具體實(shí)施方式一起用于解釋本公開,但并不構(gòu)成對本公開的限制。在附圖中:
圖1是根據(jù)一示例性實(shí)施例示出的一種數(shù)據(jù)跟蹤方法的流程圖;
圖2是根據(jù)一示例性實(shí)施例示出的另一種數(shù)據(jù)跟蹤方法的流程圖;
圖3是根據(jù)一示例性實(shí)施例示出的又一種數(shù)據(jù)跟蹤方法的流程圖;
圖4是根據(jù)一示例性實(shí)施例示出的一種數(shù)據(jù)跟蹤裝置的框圖;
圖5是根據(jù)一示例性實(shí)施例示出的另一種數(shù)據(jù)跟蹤裝置的框圖;
圖6是根據(jù)一示例性實(shí)施例示出的又一種數(shù)據(jù)跟蹤裝置的框圖。
具體實(shí)施方式
這里將詳細(xì)地對示例性實(shí)施例進(jìn)行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實(shí)施例中所描述的實(shí)施方式并不代表與本公開相一致的所有實(shí)施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本公開的一些方面相一致的裝置和方法的例子。
在介紹本公開提供的數(shù)據(jù)跟蹤方法和裝置之前,首先對本公開各個實(shí)施例所涉及的應(yīng)用場景進(jìn)行介紹,當(dāng)數(shù)據(jù)傳輸?shù)耐ㄐ胚^程中出現(xiàn)了異常的數(shù)據(jù),需要對異常的數(shù)據(jù)進(jìn)行跟蹤,才能準(zhǔn)確定位問題和解決問題。因此本公開各個實(shí)施例所涉及的應(yīng)用場景為:一種設(shè)置有網(wǎng)關(guān)的數(shù)據(jù)傳輸通路,該數(shù)據(jù)傳輸通路可以是各種數(shù)字通信網(wǎng)絡(luò),例如計(jì)算機(jī)網(wǎng)絡(luò)、移動通信網(wǎng)絡(luò)、衛(wèi)星通信網(wǎng)絡(luò)、數(shù)字電視網(wǎng)絡(luò)等,該網(wǎng)關(guān)可以是各種實(shí)現(xiàn)網(wǎng)絡(luò)互聯(lián)的設(shè)備,也可以是虛擬網(wǎng)關(guān),例如可以是防火墻。其中,本公開以設(shè)置有防火墻的計(jì)算機(jī)網(wǎng)絡(luò)為例,對各個示例性實(shí)施例進(jìn)行說明。
圖1是根據(jù)一示例性實(shí)施例示出的一種數(shù)據(jù)跟蹤方法的流程圖,如圖1所示,該方法應(yīng)用于網(wǎng)關(guān),包括:
步驟101,解析當(dāng)前接收到的第一數(shù)據(jù),得到第一數(shù)據(jù)的傳輸參數(shù)組,傳輸參數(shù)組包括:能夠用于確定第一數(shù)據(jù)的來源和目的地的一個或者多個參數(shù)。
以網(wǎng)關(guān)是防火墻為例,當(dāng)前接收到的第一數(shù)據(jù)通過防火墻時,防火墻對第一數(shù)據(jù)進(jìn)行解析。其中,解析當(dāng)前接收到的第一數(shù)據(jù)的步驟可以包括:由防火墻中的該第一數(shù)據(jù)當(dāng)前所經(jīng)過的功能模塊調(diào)用預(yù)設(shè)宏定義,通過該預(yù)設(shè)宏定義對第一數(shù)據(jù)進(jìn)行解析,得到第一數(shù)據(jù)的傳輸參數(shù)組可以是該第一數(shù)據(jù)的五元組,即第一數(shù)據(jù)的源地址、目的地址、源端口、目的端口和傳輸協(xié)議。
其中,上述的功能模塊可以是防火墻中的任意一個功能模塊,每個功能模塊可以由一個或多個進(jìn)程組成,如果防火墻新增了功能模塊,可以通過在新增的功能模塊中增加預(yù)設(shè)宏定義的調(diào)用就可以使新的功能模塊能夠跟蹤數(shù)據(jù),便于擴(kuò)展。
步驟102,當(dāng)傳輸參數(shù)組與預(yù)先配置的過濾條件所指示的傳輸參數(shù)組一致時,獲取第一數(shù)據(jù)的預(yù)設(shè)參數(shù)組,預(yù)設(shè)參數(shù)組包括第一數(shù)據(jù)當(dāng)前所在的數(shù)據(jù)傳輸通路的位置信息。
當(dāng)計(jì)算機(jī)網(wǎng)絡(luò)中出現(xiàn)了異常數(shù)據(jù),需要對該異常數(shù)據(jù)進(jìn)行跟蹤,因此為了確定接收到的數(shù)據(jù)中哪些數(shù)據(jù)是異常數(shù)據(jù),需要預(yù)先配置用于篩選異常數(shù)據(jù)的過濾條件,該過濾條件也采用傳輸參數(shù)組的形式,以五元組為例,可以將該異常數(shù)據(jù)的五元組作為過濾條件,從而凡是能夠與該過濾條件所指示的傳輸參數(shù)組匹配的數(shù)據(jù),均可以認(rèn)為是異常數(shù)據(jù),并通過在防火墻的各個功能模塊上設(shè)置的鉤子(Hook)點(diǎn)來獲取該異常數(shù)據(jù)的預(yù)設(shè)參數(shù)組,該預(yù)設(shè)參數(shù)組可以包括該數(shù)據(jù)當(dāng)前所在的數(shù)據(jù)傳輸通路的位置信息。與該過濾條件所指示的傳輸參數(shù)組不匹配的數(shù)據(jù),則說明該數(shù)據(jù)不是需要跟蹤的數(shù)據(jù),可以對該傳輸過程不做任何處理。
以第一數(shù)據(jù)的預(yù)設(shè)參數(shù)組為第一數(shù)據(jù)的五元組為例,可以將第一數(shù)據(jù)的五元組與步驟102中預(yù)先配置的過濾條件作對比,在進(jìn)行對比時可以按照過濾條件所配置的五元組的順序進(jìn)行依次對比,或者也可以按照其他可能約定的形式進(jìn)行對比。
圖2是根據(jù)一示例性實(shí)施例示出的另一種數(shù)據(jù)跟蹤方法的流程圖,如圖2所示,在圖1所示的實(shí)施例的基礎(chǔ)上,步驟101所述的解析當(dāng)前接收到的第一數(shù)據(jù),得到第一數(shù)據(jù)的傳輸參數(shù)組包括:
步驟1011,通過網(wǎng)關(guān)的功能模塊調(diào)用預(yù)設(shè)宏定義,該功能模塊為網(wǎng)關(guān)中的任一功能模塊。
宏定義的使用避免了傳統(tǒng)函數(shù)的出棧、入棧的操作,能夠提高運(yùn)行效率,同時,并且由于宏定義是由預(yù)處理器完成處理的,因此實(shí)現(xiàn)簡單,易于編譯。
步驟1012,將第一數(shù)據(jù)的數(shù)據(jù)包結(jié)構(gòu)作為參數(shù)傳遞給預(yù)設(shè)宏定義。
步驟1013,通過預(yù)設(shè)宏定義根據(jù)第一數(shù)據(jù)的數(shù)據(jù)包結(jié)構(gòu)確定第一數(shù)據(jù)的傳輸協(xié)議類型,并根據(jù)傳輸協(xié)議類型對第一數(shù)據(jù)進(jìn)行解析,得到第一數(shù)據(jù)的傳輸參數(shù)組。
示例的,預(yù)設(shè)宏定義的傳入?yún)?shù)為第一數(shù)據(jù)的數(shù)據(jù)包結(jié)構(gòu),不同傳輸協(xié)議的數(shù)據(jù)有著不同的數(shù)據(jù)結(jié)構(gòu),以傳輸協(xié)議類型為TCP/IP協(xié)議(Transmission Control Protocol/Internet Protocol傳輸控制協(xié)議/網(wǎng)際協(xié)議)為例,預(yù)設(shè)宏定義根據(jù)第一數(shù)據(jù)的數(shù)據(jù)包結(jié)構(gòu)確定出該第一數(shù)據(jù)的傳輸協(xié)議為TCP協(xié)議,再按照TCP協(xié)議約定的數(shù)據(jù)結(jié)構(gòu)對該第一數(shù)據(jù)進(jìn)行解析,就可以解析出第一數(shù)據(jù)的傳輸參數(shù)組,其中傳輸參數(shù)組可以是第一數(shù)據(jù)的五元組信息,也可以是由計(jì)算機(jī)網(wǎng)絡(luò)中的終端約定好的包含在數(shù)據(jù)包中的一個標(biāo)簽,本公開的各個實(shí)施例以五元組為例進(jìn)行說明。
可選的,步驟102中所述的過濾條件所指示的傳輸參數(shù)組可以以全局變量的形式存儲在共享內(nèi)存中。其中,全局變量可以是大小固定的數(shù)組,也可以是字符串變量,其中五元組可以順序存儲或以約定的順序、結(jié)構(gòu)進(jìn)行存儲。關(guān)于共享內(nèi)存,可以首先用唯一的名稱申請注冊一段共享內(nèi)存,然后可以將全局變量的值拷貝到該段共享內(nèi)存中,由于共享內(nèi)存具有可以由多個進(jìn)程訪問的特性,因此防火墻中的任意一個需要跟蹤該異常數(shù)據(jù)的功能模塊都可以調(diào)用共享內(nèi)存中的這個全局變量,同時,由于共享內(nèi)存的使用是依據(jù)申請注冊時唯一的名稱,因此,即使出現(xiàn)進(jìn)程崩潰的情景,通過這個唯一的名稱,也可以找回原來配置的過濾條件,避免了進(jìn)程崩潰后配置丟失,異常數(shù)據(jù)無法跟蹤的問題。
另外,步驟102所述的當(dāng)該傳輸參數(shù)組與預(yù)先配置的過濾條件所指示的傳輸參數(shù)組一致時,獲取該第一數(shù)據(jù)的預(yù)設(shè)參數(shù)組的步驟可以包括:
當(dāng)?shù)谝粩?shù)據(jù)的傳輸參數(shù)組與預(yù)先配置的過濾條件所指示的傳輸參數(shù)組一致時,獲取該第一數(shù)據(jù)當(dāng)前經(jīng)過的功能模塊的鉤子點(diǎn)所指示的第一數(shù)據(jù)當(dāng)前所在的數(shù)據(jù)通路函數(shù)的函數(shù)名稱和該數(shù)據(jù)通路函數(shù)對應(yīng)的源代碼的行號,其中該功能模塊可以為上述網(wǎng)關(guān)中的任一功能模塊。鉤子點(diǎn),即Hook點(diǎn),是預(yù)先為該功能模塊設(shè)置的,網(wǎng)關(guān)中的每一個功能模塊都可以預(yù)先設(shè)置Hook點(diǎn)。
其中,根據(jù)第一數(shù)據(jù)所在數(shù)據(jù)通路函數(shù)的函數(shù)名稱和數(shù)據(jù)通路函數(shù)對應(yīng)的源代碼的行號,可以簡便、準(zhǔn)確地跟蹤異常數(shù)據(jù)的數(shù)據(jù)通路。其中預(yù)設(shè)參數(shù)組還可以根據(jù)具體需求包含更多的信息,例如:數(shù)據(jù)的數(shù)據(jù)長度、協(xié)議版本號、校驗(yàn)碼等,可以按照需要具體設(shè)定。
以網(wǎng)關(guān)為防火墻,傳輸參數(shù)組為五元組為例,可以預(yù)先在防火墻的每一個功能模塊上都設(shè)置Hook點(diǎn),當(dāng)獲取的第一數(shù)據(jù)經(jīng)過該防火墻的某一功能模塊時,該功能模塊將解析出的第一數(shù)據(jù)的五元組與過濾條件所指示的五元組進(jìn)行對比,當(dāng)?shù)谝粩?shù)據(jù)的五元組與過濾條件所指示的五元組一致時,獲取第一數(shù)據(jù)當(dāng)前經(jīng)過的功能模塊的Hook點(diǎn)指示該第一數(shù)據(jù)當(dāng)前所在的數(shù)據(jù)通路函數(shù)的函數(shù)名稱和數(shù)據(jù)通路函數(shù)對應(yīng)的源代碼的行號,并且可以將獲取到的函數(shù)名稱和數(shù)據(jù)通路函數(shù)對應(yīng)的源代碼的行號與該第一數(shù)據(jù)的五元組一起存儲在寫緩存區(qū)域中。
圖3是根據(jù)一示例性實(shí)施例示出的又一種數(shù)據(jù)跟蹤方法的流程圖,如圖3所示,該方法在步驟101之前還包括:
步驟103,判斷是否開啟了跟蹤功能,當(dāng)所述跟蹤功能開啟時,在預(yù)設(shè)文件路徑下創(chuàng)建跟蹤結(jié)果文件,所述跟蹤結(jié)果文件用于存儲所述預(yù)設(shè)參數(shù)組。
舉例說明,異常數(shù)據(jù)在傳輸通路中的出現(xiàn)時間可能不同,例如可以是一直出現(xiàn)、在固定時間段內(nèi)出現(xiàn)或隨機(jī)出現(xiàn),如果是在固定時間段內(nèi)出現(xiàn),對所有時間段通過網(wǎng)關(guān)的數(shù)據(jù)都進(jìn)行過濾,效率低,因此在進(jìn)行數(shù)據(jù)跟蹤前,先判斷是否開啟跟蹤功能。將異常數(shù)據(jù)的五元組以全局變量的形式存儲在共享內(nèi)存中,過濾條件配置完成后,判斷是否開啟跟蹤功能,開啟時再執(zhí)行步驟101至步驟102所述的方法。該跟蹤功能是否開啟可以由一個可配置的字段來表示,該字段可以采用二進(jìn)制的代碼表示,例如代碼為1時,表示跟蹤功能開啟,代碼為0時,表示跟蹤功能關(guān)閉。當(dāng)跟蹤功能開啟時,可以在預(yù)設(shè)文件路徑下,創(chuàng)建結(jié)果文件,對通過防火墻的數(shù)據(jù)進(jìn)行解析,如果有滿足過濾條件的數(shù)據(jù)通過防火墻,將獲取的該數(shù)據(jù)的預(yù)設(shè)參數(shù)組存放在創(chuàng)建的結(jié)果文件中,其中,結(jié)果文件可以是指定路徑下的指定輸出文件,也可以是網(wǎng)關(guān)默認(rèn)的輸出路徑下的輸出文件。當(dāng)跟蹤功能關(guān)閉時,數(shù)據(jù)正常通過網(wǎng)關(guān),不會影響到轉(zhuǎn)發(fā)性能,并且為了避免寫緩存區(qū)域中還有剩余數(shù)據(jù)沒有寫入文件,可以清空寫緩存區(qū)域,清空的方式可以是將剩余數(shù)據(jù)寫入指定文件中,也可以直接將剩余數(shù)據(jù)刪除。
綜上所述,本公開利用網(wǎng)關(guān)對數(shù)據(jù)進(jìn)行解析,并利用預(yù)先配置的過濾條件識別異常數(shù)據(jù),并在識別出異常數(shù)據(jù)時獲取異常數(shù)據(jù)所在的數(shù)據(jù)傳輸通路的位置信息,能夠解決傳統(tǒng)跟蹤方法需中斷當(dāng)前進(jìn)程導(dǎo)致的影響轉(zhuǎn)發(fā)性能以及程序亂序?qū)е碌漠惓?shù)據(jù)難以跟蹤且準(zhǔn)確度低的問題,具有在不影響數(shù)據(jù)轉(zhuǎn)發(fā)性能前提下,易于實(shí)現(xiàn)對異常數(shù)據(jù)進(jìn)行準(zhǔn)確跟蹤的效果。
圖4是根據(jù)一示例性實(shí)施例示出的一種數(shù)據(jù)跟蹤裝置的框圖,如圖4所示,該裝置400應(yīng)用于網(wǎng)關(guān),包括解析模塊401和獲取模塊402;
解析模塊401,用于解析當(dāng)前接收到的第一數(shù)據(jù),得到第一數(shù)據(jù)的傳輸參數(shù)組,傳輸參數(shù)組包括:能夠用于確定第一數(shù)據(jù)的來源和目的地的一個或者多個參數(shù);
獲取模塊402,用于當(dāng)傳輸參數(shù)組與預(yù)先配置的過濾條件所指示的傳輸參數(shù)組一致時,獲取第一數(shù)據(jù)的預(yù)設(shè)參數(shù)組,預(yù)設(shè)參數(shù)組包括第一數(shù)據(jù)當(dāng)前所在的數(shù)據(jù)傳輸通路的位置信息。
圖5是根據(jù)一示例性實(shí)施例示出的另一種數(shù)據(jù)跟蹤裝置的框圖,如圖5所示,在圖4所示的實(shí)施例的基礎(chǔ)上,解析模塊401包括:調(diào)用模塊4011、傳遞模塊4012和參數(shù)解析模塊4013。
調(diào)用模塊4011,用于通過網(wǎng)關(guān)的功能模塊調(diào)用預(yù)設(shè)宏定義,功能模塊為網(wǎng)關(guān)中的任一功能模塊。
傳遞模塊4012,用于將第一數(shù)據(jù)的數(shù)據(jù)包結(jié)構(gòu)作為參數(shù)傳遞給預(yù)設(shè)宏定義。
參數(shù)解析模塊4013,用于通過預(yù)設(shè)宏定義根據(jù)第一數(shù)據(jù)的數(shù)據(jù)包結(jié)構(gòu)確定第一數(shù)據(jù)的傳輸協(xié)議類型,并根據(jù)傳輸協(xié)議類型對第一數(shù)據(jù)進(jìn)行解析,得到第一數(shù)據(jù)的傳輸參數(shù)組。
其中,傳輸參數(shù)組包括:第一數(shù)據(jù)的五元組信息。
可選的,過濾條件所指示的傳輸參數(shù)組以全局變量的形式存儲在共享內(nèi)存中。
可選的,預(yù)設(shè)參數(shù)組包括第一數(shù)據(jù)所在數(shù)據(jù)通路函數(shù)的函數(shù)名稱和數(shù)據(jù)通路函數(shù)對應(yīng)的源代碼的行號。
可選的,獲取模塊402,用于當(dāng)傳輸參數(shù)組與預(yù)先配置的過濾條件所指示的傳輸參數(shù)組一致時,獲取第一數(shù)據(jù)當(dāng)前經(jīng)過的功能模塊的鉤子點(diǎn)所指示的第一數(shù)據(jù)當(dāng)前所在的數(shù)據(jù)通路函數(shù)的函數(shù)名稱和數(shù)據(jù)通路函數(shù)對應(yīng)的源代碼的行號,功能模塊為網(wǎng)關(guān)中的任一功能模塊,鉤子點(diǎn)是預(yù)先為功能模塊設(shè)置的。
圖6是根據(jù)一示例性實(shí)施例示出的又一種數(shù)據(jù)跟蹤裝置的框圖,如圖6所示,該裝置還包括:判斷模塊403;
判斷模塊403,用于判斷是否開啟了跟蹤功能,當(dāng)跟蹤功能開啟時,在預(yù)設(shè)文件路徑下創(chuàng)建跟蹤結(jié)果文件,跟蹤結(jié)果文件用于存儲預(yù)設(shè)參數(shù)組。
其中,上述各個模塊所實(shí)現(xiàn)功能的具體說明已經(jīng)在上述方法實(shí)施例中進(jìn)行了詳細(xì)描述,此處不再贅述。
綜上所述,本公開利用網(wǎng)關(guān)對數(shù)據(jù)進(jìn)行解析,并利用預(yù)先配置的過濾條件識別異常數(shù)據(jù),并在識別出異常數(shù)據(jù)時獲取異常數(shù)據(jù)所在的數(shù)據(jù)傳輸通路的位置信息,能夠解決傳統(tǒng)跟蹤方法需中斷當(dāng)前進(jìn)程導(dǎo)致的影響轉(zhuǎn)發(fā)性能以及程序亂序?qū)е碌漠惓?shù)據(jù)難以跟蹤且準(zhǔn)確度低的問題,具有在不影響數(shù)據(jù)轉(zhuǎn)發(fā)性能前提下,易于實(shí)現(xiàn)對異常數(shù)據(jù)進(jìn)行準(zhǔn)確跟蹤的效果。
以上結(jié)合附圖詳細(xì)描述了本公開的優(yōu)選實(shí)施方式,但是,本公開并不限于上述實(shí)施方式中的具體細(xì)節(jié),在本公開的技術(shù)構(gòu)思范圍內(nèi),本領(lǐng)域技術(shù)人員在考慮說明書及實(shí)踐本公開后,容易想到本公開的其它實(shí)施方案,均屬于本公開的保護(hù)范圍。
另外需要說明的是,在上述具體實(shí)施方式中所描述的各個具體技術(shù)特征,在不矛盾的情況下,可以通過任何合適的方式進(jìn)行組合。同時本公開的各種不同的實(shí)施方式之間也可以進(jìn)行任意組合,只要其不違背本公開的思想,其同樣應(yīng)當(dāng)視為本公開所公開的內(nèi)容。本公開并不局限于上面已經(jīng)描述出的精確結(jié)構(gòu),本公開的范圍僅由所附的權(quán)利要求來限制。