本申請(qǐng)涉及測(cè)試,具體涉及一種數(shù)據(jù)處理方法、裝置、設(shè)備及介質(zhì)。
背景技術(shù):
1、在網(wǎng)絡(luò)通信中,網(wǎng)絡(luò)驅(qū)動(dòng)接收數(shù)據(jù)時(shí),都是通過buffer緩沖來處理。軟中斷函數(shù)在處理完一幀數(shù)據(jù)后,再接著處理下一幀數(shù)據(jù),依次循環(huán)重復(fù)。程序在處理buffer時(shí),會(huì)讀取buffer幀數(shù)據(jù)的狀態(tài)標(biāo)志。但是,由于外部的某些原因,有時(shí)候在處理一幀數(shù)據(jù)的標(biāo)志出錯(cuò)后,處理程序會(huì)一直卡住,不會(huì)處理后續(xù)的數(shù)據(jù),導(dǎo)致網(wǎng)絡(luò)數(shù)據(jù)中斷的現(xiàn)象出現(xiàn)。
技術(shù)實(shí)現(xiàn)思路
1、鑒于以上所述現(xiàn)有技術(shù)的缺點(diǎn),本申請(qǐng)?zhí)峁┮环N數(shù)據(jù)處理方法、裝置、設(shè)備及介質(zhì),用于解決現(xiàn)有技術(shù)中的至少一個(gè)缺陷。
2、為實(shí)現(xiàn)上述目的以及其他目的,本申請(qǐng)?zhí)峁┮环N數(shù)據(jù)處理方法,所述數(shù)據(jù)處理方法包括:
3、從環(huán)形緩沖區(qū)中讀取讀指針指向的當(dāng)前幀數(shù)據(jù)作為待處理數(shù)據(jù);
4、對(duì)所述待處理數(shù)據(jù)執(zhí)行數(shù)據(jù)處理過程;所述數(shù)據(jù)處理過程包括:在根據(jù)所述待處理數(shù)據(jù)的狀態(tài)標(biāo)志判斷所述待處理數(shù)據(jù)的狀態(tài)為錯(cuò)誤狀態(tài)時(shí),配置讀指針指向環(huán)形緩沖區(qū)中所述待處理數(shù)據(jù)的下一幀數(shù)據(jù)。
5、于本發(fā)明一實(shí)施例中,所述數(shù)據(jù)處理過程還包括:
6、在根據(jù)所述待處理數(shù)據(jù)的狀態(tài)標(biāo)志判斷所述待處理數(shù)據(jù)的狀態(tài)為正確狀態(tài)時(shí),轉(zhuǎn)發(fā)所述待處理數(shù)據(jù),配置讀指針指向環(huán)形緩沖區(qū)中所述待處理數(shù)據(jù)的下一幀數(shù)據(jù)。
7、于本發(fā)明一實(shí)施例中,所述根據(jù)所述待處理數(shù)據(jù)的狀態(tài)標(biāo)志判斷所述待處理數(shù)據(jù)的狀態(tài)的步驟包括:
8、解析所述待處理數(shù)據(jù),得到待處理數(shù)據(jù)的狀態(tài)標(biāo)志,并識(shí)別所述狀態(tài)標(biāo)志;
9、若所述狀態(tài)標(biāo)志為第一預(yù)設(shè)標(biāo)志,則所述待處理數(shù)據(jù)的狀態(tài)為正確狀態(tài);
10、若所述狀態(tài)標(biāo)志為第二預(yù)設(shè)標(biāo)志,則所述待處理數(shù)據(jù)的狀態(tài)為錯(cuò)誤狀態(tài)。
11、于本發(fā)明一實(shí)施例中,在所述狀態(tài)標(biāo)志為第二預(yù)設(shè)標(biāo)志時(shí),所述數(shù)據(jù)處理過程還包括:
12、對(duì)所述狀態(tài)標(biāo)志進(jìn)行至少兩次重復(fù)識(shí)別,若至少兩次的重復(fù)識(shí)別結(jié)果均為第二預(yù)設(shè)標(biāo)志,則確定所述待處理數(shù)據(jù)的狀態(tài)為錯(cuò)誤狀態(tài)。
13、于本發(fā)明一實(shí)施例中,所述方法還包括:
14、當(dāng)所述待處理數(shù)據(jù)的狀態(tài)為錯(cuò)誤狀態(tài)時(shí),將所述待處理數(shù)據(jù)從環(huán)形緩沖區(qū)中刪除,并重新置位buffer的狀態(tài)。
15、為實(shí)現(xiàn)上述目的以及其他目的,本申請(qǐng)還提供一種數(shù)據(jù)處理裝置,所述數(shù)據(jù)處理裝置包括:
16、數(shù)據(jù)讀取模塊,用于從環(huán)形緩沖區(qū)中讀取讀指針指向的當(dāng)前幀數(shù)據(jù)作為待處理數(shù)據(jù);
17、數(shù)據(jù)處理模塊,用于對(duì)所述待處理數(shù)據(jù)執(zhí)行數(shù)據(jù)處理過程;所述數(shù)據(jù)處理過程包括:在根據(jù)所述待處理數(shù)據(jù)的狀態(tài)標(biāo)志判斷所述待處理數(shù)據(jù)的狀態(tài)為錯(cuò)誤狀態(tài)時(shí),配置讀指針指向環(huán)形緩沖區(qū)中所述待處理數(shù)據(jù)的下一幀數(shù)據(jù)。
18、為實(shí)現(xiàn)上述目的以及其他目的,本申請(qǐng)?zhí)峁┮环N數(shù)據(jù)處理方法,所述數(shù)據(jù)處理方法包括:
19、利用網(wǎng)絡(luò)適配器接收待處理數(shù)據(jù),并將所述待處理數(shù)據(jù)寫入到環(huán)形緩沖區(qū)中;將所述待處理數(shù)據(jù)存儲(chǔ)至環(huán)形緩沖區(qū)后向中央處理器發(fā)起硬中斷;
20、通過中央處理器屏蔽所述硬中斷,并啟動(dòng)軟中斷;在中央處理器的內(nèi)核中的ksoftirqd進(jìn)程接收到所述軟中斷時(shí),調(diào)用軟中斷處理函數(shù)通過所述的數(shù)據(jù)處理方法處理所述待處理數(shù)據(jù)得到目標(biāo)數(shù)據(jù);其中,目標(biāo)數(shù)據(jù)被緩存到對(duì)應(yīng)的套接字socket上;
21、通過應(yīng)用程序調(diào)用read函數(shù)讀取套接字socket上的目標(biāo)數(shù)據(jù),并將目標(biāo)數(shù)據(jù)從內(nèi)核空間拷貝到用戶空間。
22、為實(shí)現(xiàn)上述目的以及其他目的,本申請(qǐng)?zhí)峁┮环N數(shù)據(jù)處理裝置,所述數(shù)據(jù)處理裝置包括:
23、網(wǎng)絡(luò)適配器,用于接收待處理數(shù)據(jù),將所述待處理數(shù)據(jù)寫入到環(huán)形緩沖區(qū)中;并在所述待處理數(shù)據(jù)存儲(chǔ)至環(huán)形緩沖區(qū)后向中央處理器發(fā)起硬中斷;
24、中央處理器,用于屏蔽所述硬中斷,啟動(dòng)軟中斷;并通過內(nèi)核中的ksoftirqd進(jìn)程接收所述軟中斷,以及在接收到所述軟中斷時(shí)調(diào)用軟中斷處理函數(shù)通過所述的數(shù)據(jù)處理方法處理所述待處理數(shù)據(jù)得到目標(biāo)數(shù)據(jù);其中,目標(biāo)數(shù)據(jù)被緩存到對(duì)應(yīng)的套接字socket上;
25、應(yīng)用程序,用于調(diào)用read函數(shù)讀取套接字socket上的目標(biāo)數(shù)據(jù),并將目標(biāo)數(shù)據(jù)從內(nèi)核空間拷貝到用戶空間。
26、為實(shí)現(xiàn)上述目的及其他相關(guān)目的,本申請(qǐng)?zhí)峁┮环N數(shù)據(jù)處理設(shè)備,包括:
27、一個(gè)或多個(gè)處理器;和
28、存儲(chǔ)器,用于存儲(chǔ)一個(gè)或多個(gè)程序,當(dāng)所述一個(gè)或多個(gè)程序被所述一個(gè)或多個(gè)處理器執(zhí)行時(shí),使得所述存儲(chǔ)器實(shí)現(xiàn)所述的方法。
29、為實(shí)現(xiàn)上述目的及其他相關(guān)目的,本申請(qǐng)?zhí)峁┮粋€(gè)或多個(gè)機(jī)器可讀介質(zhì),其上存儲(chǔ)有指令,當(dāng)由一個(gè)或多個(gè)處理器執(zhí)行時(shí),使得處理器執(zhí)行所述的方法。
30、本申請(qǐng)的有益效果:
31、本申請(qǐng)的一種數(shù)據(jù)處理方法,包括:從環(huán)形緩沖區(qū)中讀取讀指針指向的當(dāng)前幀數(shù)據(jù)作為待處理數(shù)據(jù);對(duì)所述待處理數(shù)據(jù)執(zhí)行數(shù)據(jù)處理過程;所述數(shù)據(jù)處理過程包括:在根據(jù)所述待處理數(shù)據(jù)的狀態(tài)標(biāo)志判斷所述待處理數(shù)據(jù)的狀態(tài)為錯(cuò)誤狀態(tài)時(shí),配置讀指針指向環(huán)形緩沖區(qū)中所述待處理數(shù)據(jù)的下一幀數(shù)據(jù);在本申請(qǐng)中,在讀取數(shù)據(jù)時(shí),若識(shí)別到當(dāng)前幀的數(shù)據(jù)為錯(cuò)誤數(shù)據(jù)時(shí)從環(huán)形緩沖區(qū)中讀取下一讀指針指向的數(shù)據(jù)作為待處理數(shù)據(jù),這樣就可以在外部原因造成的數(shù)據(jù)錯(cuò)誤時(shí),能正確地處理后續(xù)的數(shù)據(jù),也就是在遇到錯(cuò)誤數(shù)據(jù)時(shí)能恢復(fù)通信,改善系統(tǒng)的可維護(hù)性和可靠性。
32、應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本申請(qǐng)。
1.一種數(shù)據(jù)處理方法,其特征在于,所述數(shù)據(jù)處理方法包括:
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理方法,其特征在于,所述數(shù)據(jù)處理過程還包括:
3.根據(jù)權(quán)利要求2所述的數(shù)據(jù)處理方法,其特征在于,根據(jù)所述待處理數(shù)據(jù)的狀態(tài)標(biāo)志判斷所述待處理數(shù)據(jù)的狀態(tài)的步驟包括:
4.根據(jù)權(quán)利要求3所述的數(shù)據(jù)處理方法,其特征在于,在所述狀態(tài)標(biāo)志為第二預(yù)設(shè)標(biāo)志時(shí),所述數(shù)據(jù)處理過程還包括:
5.根據(jù)權(quán)利要求1、2或3所述的數(shù)據(jù)處理方法,其特征在于,所述方法還包括:
6.一種數(shù)據(jù)處理裝置,其特征在于,所述數(shù)據(jù)處理裝置包括:
7.一種數(shù)據(jù)處理方法,其特征在于,所述數(shù)據(jù)處理方法包括:
8.一種數(shù)據(jù)處理裝置,其特征在于,所述數(shù)據(jù)處理裝置包括:
9.一種數(shù)據(jù)處理設(shè)備,其特征在于,包括:
10.一種機(jī)器可讀介質(zhì),其特征在于,其上存儲(chǔ)有指令,當(dāng)由一個(gè)或多個(gè)處理器執(zhí)行時(shí),使得處理器執(zhí)行如權(quán)利要求1-5任意一項(xiàng)所述的方法。