本申請(qǐng)涉及計(jì)算機(jī),具體而言,涉及一種數(shù)據(jù)獲取方法、裝置、電子設(shè)備以及計(jì)算機(jī)程序產(chǎn)品。
背景技術(shù):
1、在運(yùn)維工作中,經(jīng)常出現(xiàn)各種網(wǎng)絡(luò)故障,比如,數(shù)據(jù)包丟包以及網(wǎng)絡(luò)抖動(dòng)等故障。在出現(xiàn)上述故障之后,需要先反饋至一線運(yùn)維人員進(jìn)行故障排查,如果故障較為復(fù)雜,就會(huì)逐步升級(jí),由更專業(yè)的技術(shù)支持團(tuán)隊(duì)進(jìn)一步分析和處理。
2、為了提高故障處理效率,相關(guān)技術(shù)中出現(xiàn)了一些網(wǎng)絡(luò)故障診斷方法,比如,使用基礎(chǔ)的抓包工具進(jìn)行數(shù)據(jù)包的捕獲和分析,從而定位故障的問(wèn)題點(diǎn),由于基礎(chǔ)的抓包工具是在固定的抓包點(diǎn)進(jìn)行數(shù)據(jù)包的捕獲,因此無(wú)法全面觀察數(shù)據(jù)包在操作系統(tǒng)內(nèi)核中的處理過(guò)程,難以確定操作系統(tǒng)內(nèi)核是否為網(wǎng)絡(luò)故障的根源。再比如,使用更高級(jí)的工具進(jìn)行數(shù)據(jù)包捕獲和分析,以觀察數(shù)據(jù)包在操作系統(tǒng)內(nèi)核中的處理過(guò)程,但這要求運(yùn)維人員具備深厚的內(nèi)核知識(shí),熟悉各類內(nèi)核函數(shù),門檻較高,增加了故障排查的難度。
3、針對(duì)上述的問(wèn)題,目前尚未提出有效的解決方案。
技術(shù)實(shí)現(xiàn)思路
1、本申請(qǐng)實(shí)施例提供了一種數(shù)據(jù)獲取方法、裝置、電子設(shè)備以及計(jì)算機(jī)程序產(chǎn)品,以至少解決相關(guān)技術(shù)中使用抓包工具抓取的數(shù)據(jù)來(lái)定界內(nèi)核級(jí)別的網(wǎng)絡(luò)故障較為困難的技術(shù)問(wèn)題。
2、根據(jù)本申請(qǐng)實(shí)施例的一個(gè)方面,提供了一種數(shù)據(jù)獲取方法,數(shù)據(jù)獲取方法應(yīng)用在應(yīng)用程序通過(guò)操作系統(tǒng)接收網(wǎng)絡(luò)設(shè)備傳輸?shù)臄?shù)據(jù)包的過(guò)程中,包括:接收操作系統(tǒng)的第一層內(nèi)核網(wǎng)絡(luò)棧設(shè)置的鉤子函數(shù)獲取的目標(biāo)數(shù)據(jù)包;接收操作系統(tǒng)的內(nèi)核網(wǎng)絡(luò)棧設(shè)置的鉤子函數(shù)獲取的目標(biāo)內(nèi)核信息,其中,目標(biāo)內(nèi)核信息包括不同的目標(biāo)子內(nèi)核信息,一個(gè)目標(biāo)子內(nèi)核信息包括一個(gè)內(nèi)核網(wǎng)絡(luò)棧解析目標(biāo)數(shù)據(jù)包時(shí)的時(shí)間戳;將目標(biāo)數(shù)據(jù)包和目標(biāo)內(nèi)核信息進(jìn)行組裝,得到目標(biāo)數(shù)據(jù)包的組裝結(jié)果。
3、根據(jù)本申請(qǐng)實(shí)施例的一個(gè)方面,提供了另一種數(shù)據(jù)獲取方法,數(shù)據(jù)獲取方法應(yīng)用在應(yīng)用程序通過(guò)操作系統(tǒng)向網(wǎng)絡(luò)設(shè)備發(fā)送數(shù)據(jù)包的過(guò)程中,包括:接收操作系統(tǒng)的內(nèi)核的第一層內(nèi)核網(wǎng)絡(luò)棧傳輸?shù)哪繕?biāo)數(shù)據(jù)包的組裝結(jié)果,其中,組裝結(jié)果中包含目標(biāo)數(shù)據(jù)包和目標(biāo)內(nèi)核信息,目標(biāo)內(nèi)核信息由操作系統(tǒng)的內(nèi)核網(wǎng)絡(luò)棧設(shè)置的鉤子函數(shù)獲取,目標(biāo)內(nèi)核信息包括不同的目標(biāo)子內(nèi)核信息,一個(gè)目標(biāo)子內(nèi)核信息包括一個(gè)內(nèi)核網(wǎng)絡(luò)棧封裝目標(biāo)數(shù)據(jù)包時(shí)的時(shí)間戳。
4、根據(jù)本申請(qǐng)實(shí)施例的另一方面,還提供了一種數(shù)據(jù)獲取方法,數(shù)據(jù)獲取方法應(yīng)用在應(yīng)用程序通過(guò)操作系統(tǒng)接收網(wǎng)絡(luò)設(shè)備傳輸?shù)臄?shù)據(jù)包的過(guò)程中,包括:接收目標(biāo)數(shù)據(jù)包;通過(guò)操作系統(tǒng)的第一層內(nèi)核網(wǎng)絡(luò)棧設(shè)置的鉤子函數(shù)復(fù)制目標(biāo)數(shù)據(jù)包,并將復(fù)制后的目標(biāo)數(shù)據(jù)包發(fā)送至應(yīng)用程序;通過(guò)操作系統(tǒng)的內(nèi)核網(wǎng)絡(luò)棧逐層對(duì)目標(biāo)數(shù)據(jù)包進(jìn)行解析,通過(guò)內(nèi)核網(wǎng)絡(luò)棧設(shè)置的鉤子函數(shù)獲取解析目標(biāo)數(shù)據(jù)包得到的目標(biāo)內(nèi)核信息,并將目標(biāo)內(nèi)核信息發(fā)送至應(yīng)用程序,其中,目標(biāo)內(nèi)核信息包括不同的目標(biāo)子內(nèi)核信息,一個(gè)目標(biāo)子內(nèi)核信息包括一個(gè)內(nèi)核網(wǎng)絡(luò)棧解析目標(biāo)數(shù)據(jù)包時(shí)的時(shí)間戳,應(yīng)用程序?qū)⒛繕?biāo)數(shù)據(jù)包和目標(biāo)內(nèi)核信息進(jìn)行組裝,得到目標(biāo)數(shù)據(jù)包的組裝結(jié)果。
5、根據(jù)本申請(qǐng)實(shí)施例的另一方面,還提供了另一種數(shù)據(jù)獲取方法,數(shù)據(jù)獲取方法應(yīng)用在應(yīng)用程序通過(guò)操作系統(tǒng)向網(wǎng)絡(luò)設(shè)備發(fā)送數(shù)據(jù)包的過(guò)程中,包括:接收目標(biāo)數(shù)據(jù)包;通過(guò)操作系統(tǒng)的內(nèi)核網(wǎng)絡(luò)棧逐層對(duì)目標(biāo)數(shù)據(jù)包進(jìn)行封裝,通過(guò)內(nèi)核網(wǎng)絡(luò)棧設(shè)置的鉤子函數(shù)獲取封裝目標(biāo)數(shù)據(jù)包得到的目標(biāo)內(nèi)核信息,并將目標(biāo)內(nèi)核信息發(fā)送至應(yīng)用程序,其中,目標(biāo)內(nèi)核信息包括不同的目標(biāo)子內(nèi)核信息,一個(gè)目標(biāo)子內(nèi)核信息包括一個(gè)內(nèi)核網(wǎng)絡(luò)棧封裝目標(biāo)數(shù)據(jù)包時(shí)的時(shí)間戳,應(yīng)用程序?qū)⒎庋b后的目標(biāo)數(shù)據(jù)包和目標(biāo)內(nèi)核信息進(jìn)行組裝,得到目標(biāo)數(shù)據(jù)包的組裝結(jié)果。
6、根據(jù)本申請(qǐng)實(shí)施例的另一方面,還提供了一種電子設(shè)備,包括:存儲(chǔ)器,存儲(chǔ)有可執(zhí)行程序;處理器,用于運(yùn)行程序,其中,程序運(yùn)行時(shí)執(zhí)行本申請(qǐng)各個(gè)實(shí)施例中的數(shù)據(jù)獲取方法。
7、根據(jù)本申請(qǐng)實(shí)施例的另一方面,還提供了一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,計(jì)算機(jī)程序在被處理器執(zhí)行時(shí)實(shí)現(xiàn)本申請(qǐng)各個(gè)實(shí)施例中的數(shù)據(jù)獲取方法。
8、根據(jù)本申請(qǐng)實(shí)施例的另一方面,還提供了一種計(jì)算機(jī)存儲(chǔ)介質(zhì),計(jì)算機(jī)存儲(chǔ)介質(zhì)用于存儲(chǔ)程序,其中,程序運(yùn)行時(shí)控制計(jì)算機(jī)存儲(chǔ)介質(zhì)所在的設(shè)備執(zhí)行各個(gè)實(shí)施例中的數(shù)據(jù)獲取方法。
9、在本申請(qǐng)實(shí)施例中,在各個(gè)內(nèi)核網(wǎng)絡(luò)棧設(shè)置鉤子函數(shù),從而在數(shù)據(jù)包通過(guò)操作系統(tǒng)在應(yīng)用程序和網(wǎng)絡(luò)設(shè)備之間傳輸?shù)倪^(guò)程中,可以獲取到不同內(nèi)核網(wǎng)絡(luò)棧中設(shè)置的鉤子函數(shù)獲取到的目標(biāo)內(nèi)核信息,并將目標(biāo)數(shù)據(jù)包和目標(biāo)內(nèi)核信息進(jìn)行組裝存儲(chǔ),從而可以根據(jù)目標(biāo)數(shù)據(jù)包對(duì)應(yīng)的目標(biāo)內(nèi)核信息確定目標(biāo)數(shù)據(jù)包在傳輸?shù)倪^(guò)程中是否發(fā)生異常,達(dá)到了在目標(biāo)數(shù)據(jù)包的傳輸過(guò)程中發(fā)生異常的情況下,可以根據(jù)目標(biāo)數(shù)據(jù)包對(duì)應(yīng)的目標(biāo)內(nèi)核信息確定異常位置和異常原因,從而提高了確定定界內(nèi)核級(jí)別的網(wǎng)絡(luò)故障的準(zhǔn)確率和效率,進(jìn)而解決了相關(guān)技術(shù)中使用抓包工具抓取的數(shù)據(jù)來(lái)定界內(nèi)核級(jí)別的網(wǎng)絡(luò)故障較為困難的技術(shù)問(wèn)題。
10、容易注意到的是,上面的通用描述和后面的詳細(xì)描述僅僅是為了對(duì)本申請(qǐng)進(jìn)行舉例和解釋,并不構(gòu)成對(duì)本申請(qǐng)的限定。
1.一種數(shù)據(jù)獲取方法,其特征在于,所述數(shù)據(jù)獲取方法應(yīng)用在應(yīng)用程序通過(guò)操作系統(tǒng)接收網(wǎng)絡(luò)設(shè)備傳輸?shù)臄?shù)據(jù)包的過(guò)程中,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,接收所述操作系統(tǒng)的內(nèi)核網(wǎng)絡(luò)棧設(shè)置的鉤子函數(shù)獲取的目標(biāo)內(nèi)核信息包括:
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,接收所述操作系統(tǒng)的內(nèi)核網(wǎng)絡(luò)棧設(shè)置的鉤子函數(shù)獲取的目標(biāo)內(nèi)核信息包括:
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,在接收所述操作系統(tǒng)的第一層內(nèi)核網(wǎng)絡(luò)棧設(shè)置的鉤子函數(shù)獲取的目標(biāo)數(shù)據(jù)包之前,所述方法還包括:接收用戶發(fā)送的第一指令信息,其中,所述第一指令信息指示所述第一層內(nèi)核網(wǎng)絡(luò)棧設(shè)置的鉤子函數(shù)獲取所述目標(biāo)數(shù)據(jù)包的包頭和包體;接收所述操作系統(tǒng)的第一層內(nèi)核網(wǎng)絡(luò)棧設(shè)置的鉤子函數(shù)獲取的目標(biāo)數(shù)據(jù)包包括:接收所述第一層內(nèi)核網(wǎng)絡(luò)棧設(shè)置的鉤子函數(shù)獲取的所述目標(biāo)數(shù)據(jù)包的包頭和包體;或者
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,在接收所述操作系統(tǒng)的第一層內(nèi)核網(wǎng)絡(luò)棧設(shè)置的鉤子函數(shù)獲取的目標(biāo)數(shù)據(jù)包之前,所述方法還包括:
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,在將所述目標(biāo)數(shù)據(jù)包和所述目標(biāo)內(nèi)核信息進(jìn)行組裝,得到所述目標(biāo)數(shù)據(jù)包的組裝結(jié)果之后,所述方法還包括:
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,在將所述目標(biāo)數(shù)據(jù)包和所述目標(biāo)內(nèi)核信息進(jìn)行組裝,得到所述目標(biāo)數(shù)據(jù)包的組裝結(jié)果之后,所述方法還包括:
8.一種數(shù)據(jù)獲取方法,其特征在于,所述數(shù)據(jù)獲取方法應(yīng)用在應(yīng)用程序通過(guò)操作系統(tǒng)向網(wǎng)絡(luò)設(shè)備發(fā)送數(shù)據(jù)包的過(guò)程中,包括:
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,不同的目標(biāo)子內(nèi)核信息均攜帶有數(shù)據(jù)包標(biāo)識(shí),不同內(nèi)核網(wǎng)絡(luò)棧設(shè)置的鉤子函數(shù)依次將獲取的目標(biāo)子內(nèi)核信息緩存至內(nèi)核的第二緩存區(qū),并在所述第一層內(nèi)核網(wǎng)絡(luò)棧對(duì)所述目標(biāo)數(shù)據(jù)包以及關(guān)聯(lián)有所述目標(biāo)數(shù)據(jù)包的數(shù)據(jù)包標(biāo)識(shí)的目標(biāo)子內(nèi)核信息進(jìn)行組裝。
10.一種數(shù)據(jù)獲取方法,其特征在于,所述數(shù)據(jù)獲取方法應(yīng)用在應(yīng)用程序通過(guò)操作系統(tǒng)接收網(wǎng)絡(luò)設(shè)備傳輸?shù)臄?shù)據(jù)包的過(guò)程中,包括:
11.一種數(shù)據(jù)獲取方法,其特征在于,所述數(shù)據(jù)獲取方法應(yīng)用在應(yīng)用程序通過(guò)操作系統(tǒng)向網(wǎng)絡(luò)設(shè)備發(fā)送數(shù)據(jù)包的過(guò)程中,包括:
12.一種電子設(shè)備,其特征在于,包括:
13.一種計(jì)算機(jī)程序產(chǎn)品,其特征在于,包括計(jì)算機(jī)程序,所述計(jì)算機(jī)程序在被處理器執(zhí)行時(shí)實(shí)現(xiàn)根據(jù)權(quán)利要求1至11中任意一項(xiàng)所述的方法。
14.一種計(jì)算機(jī)存儲(chǔ)介質(zhì),其特征在于,所述計(jì)算機(jī)存儲(chǔ)介質(zhì)用于存儲(chǔ)程序,其中,所述程序運(yùn)行時(shí)控制所述計(jì)算機(jī)存儲(chǔ)介質(zhì)所在的設(shè)備執(zhí)行權(quán)利要求1至11中任意一項(xiàng)所述的方法。