亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

網(wǎng)絡(luò)數(shù)據(jù)包的過濾方法和裝置的制造方法

文檔序號:8301466閱讀:531來源:國知局
網(wǎng)絡(luò)數(shù)據(jù)包的過濾方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,具體而言,涉及一種網(wǎng)絡(luò)數(shù)據(jù)包的過濾方法和裝置。
【背景技術(shù)】
[0002]在Linux后臺用戶數(shù)據(jù)包協(xié)議(User Datagram Protocol,簡稱UDP)服務(wù)的開發(fā)、調(diào)試、維護(hù)過程中,常常需要采用抓包來定位問題。目前被廣泛使用的是tcpdump命令行工具,一句簡單的“tcpdump-XlnsO”就可以抓包,但是該方案在抓包時(shí)會(huì)抓獲網(wǎng)卡的全部數(shù)據(jù)包,這在大部分場合下不是所期望的。在大部分場合下,需要抓獲指定條件的數(shù)據(jù)包,即抓包過濾。如需要抓取UDP數(shù)據(jù)包中應(yīng)用層數(shù)據(jù)第I字節(jié)為Oxa的包,則可以使用“tcpdump-Xlns0udp[8:1] =Oxa”來完成,其中的“udp[8:1] =Oxa”就是柏克萊封包過濾器(Berkeley Packet Filter,簡稱BPF)過濾表達(dá)式,使用該表達(dá)式可以過濾掉不關(guān)注(不符合條件)的數(shù)據(jù)包,從而能夠快速定位問題。其中,采用“udp[X:y]”的語法來訪問數(shù)據(jù)包的內(nèi)容是從Μ)Ρ頭部開始,將第X字節(jié)作為起點(diǎn)、長度為I字節(jié)視為一個(gè)整數(shù)(即網(wǎng)絡(luò)序)并讀取它的值,其中I只能為1、2、4,分別對應(yīng)8位整數(shù)、16位整數(shù)、32位整數(shù)。
[0003]對于抓包而言,執(zhí)行抓包的大部分?jǐn)?shù)據(jù)包并非是定長結(jié)構(gòu)的,例如,對于微博平臺使用的CS協(xié)議,其格式如下:
[0004]定長部分A+變長部分B+定長部分C+變長部分D+定長部分E+包體。
[0005]定長部分A為28字節(jié)。
[0006]變長部分B最小長度為4字節(jié),其中的第3、4字節(jié)為整個(gè)變長部分B的長度,其中,第3、4字節(jié)為網(wǎng)絡(luò)序的16位無符號整數(shù)。
[0007]定長部分C為10字節(jié)。
[0008]變長部分D最小長度為2字節(jié),其中第1、2字節(jié)為整個(gè)變長部分D的長度減2,即為其后面的變長長度,該值可能為O。其中,第1、2字節(jié)為網(wǎng)絡(luò)序的16位無符號整數(shù)。
[0009]定長部分E為12字節(jié)。
[0010]對于響應(yīng)包,包體的第一個(gè)字節(jié)為返回碼,返回O表示響應(yīng)正常,返回非O表示響應(yīng)異常。
[0011]若要抓獲響應(yīng)異常的數(shù)據(jù)包則需要如下的BPF表達(dá)式:
[0012]udp[8+28+udp[8+28+2:2]+10+2+udp[8+28+udp[8+28+2:2]+10:2]+12:1]!=0
[0013]其中,“8+28”是計(jì)算UDP頭部和定長部分A的長度,緊跟的“udp [8+28+2:2] ”是計(jì)算變長部分B的長度,緊跟的“10”是定長部分C的長度,緊跟的“2+udp [8+28+udp [8+28+2:2] +10:2] ”是計(jì)算變長部分D的長度,再緊跟的“ 12”是定長部分E的長度,跳過前面全部,最后訪問包體的第I字節(jié)并判斷不為O。
[0014]由于BPF表達(dá)式是無狀態(tài)的表達(dá)式,因此對于變長部分D的計(jì)算需要依賴于變長部分B的長度和定長部分A、C的長度。從上述表達(dá)式可以看出變長部分D的計(jì)算式中包含了計(jì)算變長部分B的子計(jì)算式以及定長部分A、C的長度。對BPF表達(dá)式而言,若數(shù)據(jù)包中有η個(gè)變長部分。令A(yù)l?An分別表示每個(gè)變長部分間的定長值(可能小于等于0),如Α2表示第I個(gè)變長部分結(jié)束到第2個(gè)變長部分開始的長度。令BI?Bn分別表示每個(gè)變長部分中表不其長度的字段的字節(jié)數(shù)(一般為1,2,4),令Xl?Xn分別表不每個(gè)變長部分的長度,則有:
[0015]Xl= [Al: BI]
[0016]X2=[A1+X1+A2:B2]=[Al+[Al:BI]+A2:B2]
[0017]X3=[A1+A2+X1+X2+A3:B3] = [A1+A2+[Al:BI] + [Al+[Al:BI]+A2:B2]+A3:B3]
[0018]Xn=[A]^..+A(n_l) +Xl+…+X(n_l) +An: Bn]
[0019]若要跳過η個(gè)變長,則需要Α1+...+Αη+Χ1+…+Xn,其中X未展開。從中可以看出,后面的變長總是依賴于全部前面的變長計(jì)算式,這樣寫出的過濾多個(gè)變長部分?jǐn)?shù)據(jù)包的BPF表達(dá)式不僅晦澀難懂,并且容易出錯(cuò)。
[0020]針對現(xiàn)有技術(shù)過濾數(shù)據(jù)包時(shí)容易出錯(cuò)的問題,目前尚未提出有效的解決方案。

【發(fā)明內(nèi)容】

[0021]本發(fā)明實(shí)施例的主要目的在于提供一種網(wǎng)絡(luò)數(shù)據(jù)包的過濾方法和裝置,以解決現(xiàn)有技術(shù)中過濾數(shù)據(jù)包時(shí)容易出錯(cuò)的問題。
[0022]為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種網(wǎng)絡(luò)數(shù)據(jù)包的過濾方法。該方法包括:獲取數(shù)據(jù)包,其中,數(shù)據(jù)包包括定長部分和變長部分;獲取預(yù)先設(shè)定的過濾語句;以及通過過濾語句對數(shù)據(jù)包執(zhí)行過濾計(jì)算,其中,過濾語句中存在可偏移讀點(diǎn),通過執(zhí)行可偏移讀點(diǎn)跳過數(shù)據(jù)包的定長部分和變長部分以對數(shù)據(jù)包執(zhí)行過濾計(jì)算。
[0023]為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明實(shí)施例的另一方面,提供了一種網(wǎng)絡(luò)數(shù)據(jù)包的過濾裝置。該裝置包括:獲取數(shù)據(jù)包,其中,數(shù)據(jù)包包括定長部分和變長部分;獲取預(yù)先設(shè)定的過濾語句;以及通過過濾語句對數(shù)據(jù)包執(zhí)行過濾計(jì)算,其中,過濾語句中存在可偏移讀點(diǎn),通過執(zhí)行可偏移讀點(diǎn)跳過數(shù)據(jù)包的定長部分和變長部分以對數(shù)據(jù)包執(zhí)行過濾計(jì)算。
[0024]通過本發(fā)明實(shí)施例,解決了現(xiàn)有技術(shù)中的過濾數(shù)據(jù)包時(shí)容易出錯(cuò)的問題,進(jìn)而達(dá)到了方便的對網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行過濾的效果。
【附圖說明】
[0025]構(gòu)成本申請的一部分的附圖用來提供對本發(fā)明的進(jìn)一步理解,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:
[0026]圖1是根據(jù)本發(fā)明第一實(shí)施例的網(wǎng)絡(luò)數(shù)據(jù)包的過濾方法的流程圖;
[0027]圖2是根據(jù)本發(fā)明第二實(shí)施例的網(wǎng)絡(luò)數(shù)據(jù)包的過濾方法的流程圖;
[0028]圖3是根據(jù)本發(fā)明第三實(shí)施例的網(wǎng)絡(luò)數(shù)據(jù)包的過濾方法的流程圖;
[0029]圖4是根據(jù)本發(fā)明第一實(shí)施例的網(wǎng)絡(luò)數(shù)據(jù)包的過濾裝置的示意圖;
[0030]圖5是根據(jù)本發(fā)明第二實(shí)施例的網(wǎng)絡(luò)數(shù)據(jù)包的過濾裝置的示意圖;以及
[0031]圖6是根據(jù)本發(fā)明第三實(shí)施例的網(wǎng)絡(luò)數(shù)據(jù)包的過濾裝置的示意圖。
【具體實(shí)施方式】
[0032]需要說明的是,在不沖突的情況下,本申請中的實(shí)施例及實(shí)施例中的特征可以相互組合。下面將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本發(fā)明。
[0033]為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
[0034]需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實(shí)施例例如能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
[0035]本發(fā)明實(shí)施例提供了一種網(wǎng)絡(luò)數(shù)據(jù)包的過濾方法。
[0036]圖1是根據(jù)本發(fā)明第一實(shí)施例的網(wǎng)絡(luò)數(shù)據(jù)包的過濾方法的流程圖。如圖所示,該網(wǎng)絡(luò)數(shù)據(jù)包的過濾方法包括如下步驟:
[0037]步驟SlOl,獲取數(shù)據(jù)包,其中,數(shù)據(jù)包包括定長部分和變長部分。在網(wǎng)絡(luò)通信中,通常利用數(shù)據(jù)包傳輸文件或者數(shù)據(jù)。數(shù)據(jù)包主要有目的IP地址、源IP地址、凈載數(shù)據(jù)等部分構(gòu)成,包括報(bào)頭和包體。報(bào)頭是固定長度,包體的長度不定,各個(gè)字段的長度固定。在通信的接收端和發(fā)送端中,請求數(shù)據(jù)包和應(yīng)答數(shù)據(jù)包的報(bào)頭的結(jié)構(gòu)是一致的,不同的是包體的定義,包體攜帶了需要通信的數(shù)據(jù)。由于發(fā)送端和接收端的發(fā)送數(shù)據(jù)和返回?cái)?shù)據(jù)的內(nèi)容是不同的,因此包體攜帶的數(shù)據(jù)也是不同的。
[0038]對于通用的協(xié)議,一般而言分為二進(jìn)制協(xié)議和文本協(xié)議,其中二進(jìn)制協(xié)議包括用戶數(shù)據(jù)包協(xié)議(User Datagram Protocol,簡稱UDP)下的二進(jìn)制協(xié)議,利用UDP 二進(jìn)制協(xié)議傳輸?shù)臄?shù)據(jù)包通常由定長部分和變長部分組成,例如動(dòng)態(tài)主機(jī)設(shè)置協(xié)議(Dynamic HostConfigurat1n Protocol,簡稱為 DHCP)。
[0039]UDP協(xié)議主要用來支持需要在計(jì)算機(jī)之間傳輸數(shù)據(jù)的網(wǎng)絡(luò)應(yīng)用,包括網(wǎng)絡(luò)視頻會(huì)議系統(tǒng)在內(nèi)的眾多的客戶/服務(wù)器模式的網(wǎng)絡(luò)應(yīng)用都需要使用UDP。與TCP協(xié)議一
當(dāng)前第1頁1 2 3 4 5 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1