一種數據包過濾的方法及裝置制造方法
【專利摘要】本發明實施例公開了一種數據包過濾的方法及裝置,其中,所述方法包括:接收服務器發送的數據包;根據預置的過濾規則,檢測所述接收到的數據包的傳輸屬性,所述傳輸屬性包括所述數據包攜帶的端口號和/或所屬的網絡協議;如果檢測到的傳輸屬性中包括的端口號和/或所屬的網絡協議符合所述預置的過濾規則,則處理所述接收到的數據包。采用本發明,根據預置的過濾規則,檢測所述接收到的數據包的傳輸屬性,避免導致的丟包,浪費終端的軟硬件處理資源等問題,從而提高了如動態獲取IP地址等應用的速率和性能。
【專利說明】一種數據包過濾的方法及裝置
【技術領域】
[0001]本發明涉及通信【技術領域】,尤其涉及一種數據包過濾的方法及裝置。
【背景技術】
[0002]動態主機配置協議(DynamicHost Configuration Protocol, DHCP)是一個局域網的網絡協議,使用用戶數據報協議(User Datagram Protocol, UDP)工作,用于為內部網絡自動分配IP地址的工作流程為:客戶機以廣播方式發送DHCP discover發現信息;服務器接收到所述發現信息后向客戶機發送DHCP offer響應信息;客戶機只選擇響應第一個接收到的DHCP offer信息,并以廣播方式向所有的服務器發送DHCP request選擇信息;被選擇的服務器接收到DHCP request選擇信息時向客戶機發送包含IP地址和其他設置信息的DHCP ACK確認信息,然后客戶機將使用所述IP地址。
[0003]在上述客戶機動態獲取IP地址的過程中,客戶機與服務器通過動態主機配置協議進行廣播式的交互,客戶機創建的套接字會收到大量與之無關的數據包,當這些數據包量比較大時,會導致真正的DHCP數據包被丟棄。目前,網絡技術的發展也使接入網絡的終端收到大量無關數據包,導致丟包,浪費終端的軟硬件處理資源,從而降低如動態獲取IP地址等應用的速率和性能。
【發明內容】
[0004]本發明實施例所要解決的技術問題在于,提供一種數據包過濾的方法及裝置,可對接收到的數據包進行有選擇的控制處理,高效率的獲取所需數據包。
[0005]為了解決上述技術問題,本發明實施例提供了一種數據包過濾的方法,包括:
[0006]接收服務器發送的數據包;
[0007]根據預置的過濾規則,檢測所述接收到的數據包的傳輸屬性,所述傳輸屬性包括所述數據包攜帶的端口號和/或所屬的網絡協議;
[0008]如果檢測到的傳輸屬性中包括的端口號和/或所屬的網絡協議符合所述預置的過濾規則,則處理所述接收到的數據包。
[0009]所述接收服務器發送的數據包之前,還包括:
[0010]根據輸入的過濾參數執行過濾規則設置指令,得到作為執行結果的過濾數組;
[0011]根據得到的過濾數組對用于接收數據的套接字的從屬過濾選項進行設置,完成過濾規則的預置。
[0012]其中,所述根據得到的過濾數組對用于接收數據的套接字的從屬過濾選項進行設置,完成過濾規則的預置,包括:
[0013]將得到的過濾數組存儲在第一結構體數組中;
[0014]將所述第一結構體數組的起始地址和長度信息存儲在第二結構體變量中;
[0015]根據所述第一結構體數組和第二結構體變量生成套接口選項設置函數;
[0016]調用所述套接口選項設置函數對用于接收數據的套接字的從屬過濾選項進行設置,以完成過濾規則的預置。
[0017]其中,所述如果檢測到的傳輸屬性中包括的端口號和/或所屬的網絡協議符合所述預置的過濾規則,則處理所述數據包之前,還包括:
[0018]判斷檢測到的傳輸屬性是否符合所述預置的過濾規則,具體包括:判斷所述數據包的端口號是否為所述過濾規則中指定的端口號,和/或所述數據包所屬的網絡協議是否為所述過濾規則中指定的網絡協議。
[0019]所述如果檢測到的傳輸屬性中包括的端口號和/或所屬的網絡協議符合所述預置的過濾規則,則處理所述數據包,包括:
[0020]如果檢測到的傳輸屬性中包括的端口號和/或所屬的網絡協議符合所述預置的過濾規則,則提取符合所述預置的過濾規則的所述數據包。
[0021]其中,還包括若檢測到的傳輸屬性中包括的端口號和/或所屬的網絡協議不符合所述預置的過濾規則,則丟棄所述接收到的數據包。
[0022]相應地,本發明實施例還提供了一種數據包過濾的裝置,包括:
[0023]接收模塊,用于接收服務器發送的數據包;
[0024]檢測模塊,用于根據預置的過濾規則,檢測所述接收到的數據包的傳輸屬性,所述傳輸屬性包括所述接收到的數據包攜帶的端口號和/或所屬的網絡協議;
[0025]第一處理模塊,用于如果檢測到的傳輸屬性中包括的端口號和/或所屬的網絡協議符合所述預置的過濾規則,則處理所述接收到的數據包。
[0026]還包括:指令運行模塊,用于根據輸入的過濾參數執行過濾規則設置指令,得到作為執行結果的過濾數組;
[0027]預置模塊,用于根據指令運行模塊得到的過濾數組對用于接收數據的套接字的從屬過濾選項進行設置,完成過濾規則的預置。
[0028]其中,所述預置模塊,包括:
[0029]第一存儲單元,用于將得到的過濾數組存儲在第一結構體數組中;
[0030]第二存儲單元,用于將所述第一結構體數組的起始地址和長度信息存儲在第二結構體變量中;
[0031]生成單元,用于根據所述第一結構體數組和第二結構體變量生成套接口選項設置函數;
[0032]調用單元,用于調用所述設置套接口選項函數對用于接收數據的套接字的從屬過濾選項進行設置,以完成過濾規則的預置。
[0033]其中,還包括判斷模塊,用于判斷檢測到的傳輸屬性是否符合所述預置的過濾規貝U,具體為:判斷所述數據包的端口號是否為所述過濾規則中指定的端口號,和/或所述數據包所屬的網絡協議是否為所述過濾規則中指定的網絡協議。
[0034]其中,所述第一處理模塊,包括:
[0035]提取單元,用于如果檢測到的傳輸屬性中包括的端口號和/或所屬的網絡協議符合所述預置的過濾規則,則提取符合所述預置的過濾規則的所述數據包。
[0036]其中,還包括:
[0037]第二處理模塊,用于若檢測到的傳輸屬性中包括的端口號和/或所屬網絡協議不符合所述預置的過濾規則,則丟棄所述接收到的數據包。[0038]實施本發明實施例,具有如下有益效果:
[0039]本發明實施例通過實現數據包過濾的方法,根據終端預置的過濾規則,檢測接收到的數據包的傳輸屬性,根據檢測結果對數據包進行有選擇的控制處理,使得終端高效率,高性能的獲取所需數據包的相關信息。
【專利附圖】
【附圖說明】
[0040]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0041]圖1為本發明實施例的一種數據包過濾的方法的流程示意圖;
[0042]圖2為本發明實施例的另一種數據包過濾的方法的流程示意圖;
[0043]圖3為本發明實施例的一種數據包過濾的裝置的結構示意圖;
[0044]圖4為本發明實施例的另一種數據包過濾的裝置的結構示意圖;
[0045]圖5為圖4中預置模塊的一種具體結構示意圖。
【具體實施方式】
[0046]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0047]請參見圖1,是本發明實施例的一種數據包過濾的方法的流程示意圖,本發明實施例的所述方法可應用在手機、電腦、機頂盒和電視等各終端設備中,具體的,所述方法包括:
[0048]SlOl:接收服務器發送的數據包。
[0049]網絡在傳輸數據時,為了保證所有共享網絡資源的終端都能公平、迅速地使用網絡,通常把數據分割成若干小塊作為傳輸單位進行發送,這樣的傳輸單位通常稱之為“數據包”。所述數據包中主要包含目的IP地址和源IP地址,網絡協議、端口信息以及凈載數據等部分。
[0050]具體的,以客戶機動態獲取IP為例,由于客戶機還沒有IP地址,服務器和客戶機之間通過發送廣播包的方式進行交互,可能會接收到網絡側多個服務器發送的所有與本端MAC地址匹配的數據包,為此,需執行下述的S102至S103為客戶機的套接字設置過濾器以過濾這些數據包。
[0051]S102:根據預置的過濾規則,檢測所述接收到的數據包的傳輸屬性,所述傳輸屬性包括所述數據包攜帶的端口號和/或所屬的網絡協議。
[0052]S103:如果檢測到的傳輸屬性中包括的端口號和/或所屬的網絡協議符合所述預置的過濾規則,則處理所述接收到的數據包。
[0053]具體可選地,終端可根據系統所需的信息,設置接收數據包的過濾規則,使得符合過濾規則的數據包執行S103的處理。以客戶機獲取IP地址為例,具體為,由于DHCP使用的端口號是67和68,其中客戶機為68號端口,采用的傳輸協議為UDP協議,因此所述過濾規則為接收數據包中攜帶的端口號為68,采用的傳輸協議為UDP的數據包,檢測到符合所述過濾規則的數據包后,即可確定該數據包為DHCP服務器發送的用于進行IP配置的數據包,提取所述數據包;若檢測到不符合所述過濾規則的數據包時,將丟棄所接收到的數據包。
[0054]實施本發明實施例,通過對接收到的數據包設置過濾規則,即檢測所述接收到的數據包的傳輸屬性進行具體的處理,使得本端高效率的獲得所需數據包的相關信息。
[0055]請參見圖2,是本發明實施例的另一種數據包過濾的方法的流程示意圖,本發明實施例的所述方法可應用在手機、電腦、機頂盒和電視等各終端設備中,具體的,所述方法包括:
[0056]S201:接收服務器發送的數據包。
[0057]在服務器向客戶機發送數據包時,為了區別不同的應用程序進程和連接,操作系統為應用程序提供了稱為套接字(Socket)的接口。以客戶機動態獲取IP地址為例,套接字是DHCP協議進行雙向網絡通信的端點,是服務器與客戶機通信的一種約定,用套接字中的函數完成通信過程,因此為了提高客戶機動態獲取IP地址的效率,需要對套接字設置過濾規則,具體通過下述S202-S205。
[0058]S202:根據預置的過濾規則,檢測所述接收到的數據包的傳輸屬性,所述傳輸屬性包括所述數據包攜帶的端口號和/或所屬的網絡協議。
[0059]所述過濾規則可以是默認設置的也可以是用戶通過命令窗口進行設置,具體可選地,本發明實施例中,預置的過濾規則可以包括:根據輸入的過濾參數執行過濾規則設置指令,得到作為執行結果的過濾數組;根據得到的過濾數組對用于接收數據的套接字的從屬過濾選項進行設置,完成過濾規則的預置。其中,所述套接字是指為了區別不同的應用程序進程和連接,操作系統為應用程序與網絡協議的交互提供了稱為套接字的接口。
[0060]其中,所述根據得到的過濾數組對用于接收數據的套接字的從屬過濾選項進行設置,完成過濾規則的預置,可以包括:將得到的過濾數組存儲在第一結構體數組中;將所述第一結構體數組的起始地址和長度信息存儲在第二結構體變量中;根據所述第一結構體數組和第二結構體變量生成套接口選項設置函數;調用所述套接口選項設置函數對用于接收數據的套接字的從屬過濾選項進行設置,以完成過濾規則的預置。
[0061]以使客戶機動態獲取IP設置套接字過濾器為例,所述根據輸入的過濾參數執行過濾規則設置指令,得到作為執行結果的過濾數組具體為在操作系統中,利用網絡數據采集分析工具捕獲對輸入的過濾參數運行指令,如tcpdump - dd - sOudp port68,意思是用tcpdump捕獲68號端口號的UDP數據包,并以C代碼的形式輸出。
[0062]上述過濾規則的預置過程具體為:將得到的過濾數組存儲在第一結構體數組struct sock_f ilter asBPFCode []中,然后將所述第一結構體數組asBPFCode []的起始地址和長度信息存儲在第二結構體變量struct sock_fprog sFilter中,即sFilter.len=sizeof(asBPFCode)/sizeof(struct sock_filter), sFilter.f iIter=asBPFCode ;根據所述第一結構體數組asBPFCode □和第二結構體變量sFilter,調用所述套接口選項設置函數setsockopt O,對用于接收數據的套接字Socket的從屬過濾選項 S0_ATTACH_FILTER 進行設置,即 setsockopt(socket, S0L_S0CKET,S0_ATTACH_FILTER, &sFilter, sizeof (sFilter),其中,所述socket為相應進程已經創建的套接字符號,SOL_SOKET為被設置的選項的級別,即在所述套接字級別上設置選項SO_ATTACH_FILTER,使得所述套接字具有過濾功能。
[0063]S203:判斷檢測到的傳輸屬性中包括的端口號和/或所屬的網絡協議是否符合所述預置的過濾規則。
[0064]如上述客戶機動態獲取IP所述設置的過濾規則,即所述S202檢測所述接收到的數據包的端口號和傳輸層協議;所述S203判斷所述接收到的數據包的傳輸屬性是否為所述過濾規則指定的68號端口號和UDP的傳輸層協議。
[0065]S204:如果檢測到的傳輸屬性中包括的端口號和/或所屬的網絡協議符合所述預置的過濾規則,則處理所述接收到的數據包。
[0066]具體可選地,所述S204包括:如果檢測到的傳輸屬性中包括的端口號和/或所屬的網絡協議符合所述預置的過濾規則,則提取符合所述預置的過濾規則的所述數據包。
[0067]S205:若檢測到的傳輸屬性中包括的端口號和/或所屬的網絡協議不符合所述預置的過濾規則,則丟棄所述接收到的數據包。
[0068]從符合預置的過濾規則的數據包中提取應用所需的信息,即不同的應用對符合或不符合所述預置的過濾規則的數據包的處理也不同。以上述客戶機動態獲取IP為例,如果檢測到的傳輸屬性符合所述預置的過濾規則,則接收這些數據包;而對于不符合所述預置的過濾規則中設定的端口號和傳輸層協議的數據包,則丟棄。從而提高動態獲取IP的速率和性能。
[0069]實施本發明實施例,通過預置的過濾規則,檢測所述接收到的數據包的傳輸屬性執行相應的選擇控制,高效的獲得所需數據包的相關信息,提高諸如IP配置等應用的性能,避免丟棄真正的DHCP數據包,以及浪費系統處理資源。
[0070]請參見圖3,為本發明實施例的一種數據包過濾的裝置的結構示意圖,本發明實施例的所述裝置可應用在手機、電腦、機頂盒和電視等各終端設備中,具體的,所述裝置包括:
[0071]接收模塊1,用于接收服務器發送的數據包。
[0072]網絡在傳輸數據時,為了保證所有共享網絡資源的終端都能公平、迅速地使用網絡,通常把數據分割成若干小塊作為傳輸單位進行發送,這樣的傳輸單位通常稱之為“數據包”。所述數據包中主要包含目的IP地址和源IP地址,網絡協議、端口信息以及凈載數據等部分。
[0073]具體的,如客戶機動態獲取IP的過程中,由于客戶機還沒有IP地址,服務器和客戶機之間通過發送廣播包的方式進行交互,可能會接收到所有與之MAC地址匹配的數據包;為此,需執行下述的檢測模塊2和第一處理模塊3為客戶機的套接字設置過濾器以過濾這些數據包。
[0074]檢測模塊2,用于根據預置的過濾規則,檢測所述接收到的數據包的傳輸屬性,所述傳輸屬性包括所述接收到的數據包攜帶的端口號和/或所屬的網絡協議。
[0075]第一處理模塊3,用于如果檢測到的傳輸屬性中包括的端口號和/或所屬的網絡協議符合所述預置的過濾規則,則處理所述接收到的數據包。
[0076]具體可選地,終端可根據系統所需的信息,設置接收數據包的過濾規則,使得符合過濾規則的數據包執行第一處理模塊3的處理。以客戶機獲取IP地址為例,具體為,由于DHCP使用的端口號是67和68,其中客戶機為68號端口,采用的傳輸協議為UDP協議,因此所述過濾規則為接收數據包中攜帶的端口為68,傳輸協議為UDP的數據包,檢測到符合所述過濾規則的數據包后,提取符合所述預置的過濾規則的所述數據包,提交給DHCP進程。
[0077]實施本發明實施例,通過對接收到的數據包設置過濾規則,即檢測所述接收到的數據包的傳輸屬性進行有選擇的處理,使得本端高效率的獲得所需數據包的相關信息。
[0078]再請參見圖4,是本發明實施例的另一種數據包過濾的裝置的結構示意圖,本發明實施例的所述裝置包括上一實施例中的接收模塊1、檢測模塊2和第一處理模塊3,進一步的,在本發明實施例中,所述裝置還包括:
[0079]判斷模塊4,用于判斷檢測到的傳輸屬性是否符合所述預置的過濾規則,具體為:判斷所述數據包的端口號是否為所述過濾規則中指定的端口號,和/或所述數據包所屬的網絡協議是否為所述過濾規則中指定的網絡協議。
[0080]第二處理模塊5,用于若檢測到的傳輸屬性中包括的端口號和/或所屬的網絡協議不符合所述預置的過濾規則,則丟棄所述接收到的數據包。
[0081]進一步的,所述第一處理模塊3,包括:
[0082]提取單元,用于如果檢測到的傳輸屬性符合所述預置的過濾規則,提取符合所述預置的過濾規則的所述數據包。
[0083]進一步的,請參見圖4,本發明實施例所述裝置在接收數據包之前,還包括:
[0084]指令運行模塊6,用于根據輸入的過濾參數執行過濾規則設置指令,得到作為執行結果的過濾數組;
[0085]預置模塊7,用于根據指令運行模塊得到的過濾數組對用于接收數據的套接字的從屬過濾選項進行設置,完成過濾規則的預置。
[0086]其中,進一步的,請參見圖5,所述預置模塊7包括:
[0087]第一存儲單元71,用于將得到的過濾數組存儲在第一結構體數組中;
[0088]第二存儲單元72,用于將所述第一結構體數組的起始地址和長度信息存儲在第二結構體變量中;
[0089]生成單元73,用于根據所述第一結構體數組和第二結構體變量生成套接口選項設置函數;
[0090]調用單元74,用于調用所述設置套接口選項函數對用于接收數據的套接字的從屬過濾選項進行設置,以完成過濾規則的預置。
[0091]在服務器向客戶機發送數據包時,為了區別不同的應用程序進程和連接,操作系統為應用程序提供了稱為套接字(Socket)的接口。以客戶機動態獲取IP地址為例,套接字是DHCP協議進行雙向網絡通信的端點,是服務器與客戶機通信的一種約定,用套接字中的函數完成通信過程,因此為了提高客戶機動態獲取IP地址的效率,需要對套接字設置過濾規則。其中,所述過濾規則可以是默認設置的,或具體通過指令運行模塊6和預置模塊7執行。
[0092]所述指令運行模塊6具體為在操作系統中,利用網絡數據采集分析工具捕獲對輸入的過濾參數運行指令,如tcpdump - dd - sOudp port68,意思是用tcpdump捕獲68號端口號的UDP數據包,并以C代碼的形式輸出,tcpdump是Linux中強大的數據采集分析工具之一。[0093]具體可選地,上述預置模塊7具體為:所述第一存儲單元71將得到的過濾數組存儲在第一結構體數組struct sock_filter asBPFCode□中,然后所述第二存儲單元72將所述第一結構體數組aSBPFCode[]的起始地址和長度信息存儲在第二結構體變量 struct sock_fprog sFilter 中,即 sFilter.len=sizeof(asBPFCode)/sizeof (struct sock_f ilter), sFilter.f ilter=asBPFCode ;根據所述第一結構體數組asBPFCode[]和第二結構體變量sFilter,所述生成單元73和所述調用單元74生成并調用所述套接口選項設置函數setsockopt O ,對用于接收數據的套接字Socket的從屬過濾選項 SO_ATTACH_FILTER 進行設置,即 setsockopt (socket, S0L_S0CKET, S0_ATTACH_FILTER, &sFilter, sizeof (sFilter),其中,所述socket為相應進程已經創建的套接字符號,S0L_S0KET為被設置的選項的級別,即在所述套接字級別上設置選項S0_ATTACH_FILTER,使得所述套接字具有過濾功能。
[0094]其中,所述預置模塊7中的asBPFCode[]和sFilter可以更改為符合程序語言命名規則的其他的第一結構體數組名稱和第二結構體變量名稱。
[0095]如上述客戶機動態獲取IP所述設置的過濾規則,當所述接收模塊I接收到數據包后,所述檢測模塊2檢測所述接收到的數據包的端口號和傳輸層協議;所述判斷模塊4判斷所述接收到的數據包的傳輸屬性是否為所述過濾規則指定的68號端口號和UDP的傳輸層協議。
[0096]從符合預置的過濾規則的數據包中提取應用所需的信息,即不同的應用對符合或不符合所述預置的過濾規則的數據包的處理也不同。以上述客戶機動態獲取IP為例,如果所述檢測模塊2檢測到的傳輸屬性符合所述預置的過濾規則,則所述第一處理模塊3中的提取單元31提取符合所述預置的過濾規則的所述數據包,提交給DHCP進程;第二處理模塊5對于不符合所述預置的過濾規則中設定的端口號和傳輸層協議的數據包,則丟棄。從而,當數據包量比較大時,能夠迅速獲得真正的DHCP的數據包,提高動態獲取IP地址的速率和性能。
[0097]實施本發明實施例,通過預置的過濾規則,檢測所述接收到的數據包的傳輸屬性執行相應的選擇控制,高效的獲得所需數據包的相關信息,提高具體應用的性能。
[0098]本領域普通技術人員可以理解實現上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質中,該程序在執行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory, ROM)或隨機存儲記憶體(Random AccessMemory, RAM)等。
[0099]以上所揭露的僅為本發明較佳實施例而已,當然不能以此來限定本發明之權利范圍,因此依本發明權利要求所作的等同變化,仍屬本發明所涵蓋的范圍。
【權利要求】
1.一種數據包過濾的方法,其特征在于,包括: 接收服務器發送的數據包; 根據預置的過濾規則,檢測所述接收到的數據包的傳輸屬性,所述傳輸屬性包括所述數據包攜帶的端口號和/或所屬的網絡協議; 如果檢測到的傳輸屬性中包括的端口號和/或所屬的網絡協議符合所述預置的過濾規則,則處理所述接收到的數據包。
2.如權利要求1所述的方法,其特征在于,所述接收服務器發送的數據包之前,還包括: 根據輸入的過濾參數執行過濾規則設置指令,得到作為執行結果的過濾數組; 根據得到的過濾數組對用于接收數據的套接字的從屬過濾選項進行設置,完成過濾規則的預置。
3.如權利要求2所述的方法,其特征在于,所述根據得到的過濾數組對用于接收數據的套接字的從屬過濾選項進行設置,完成過濾規則的預置,包括: 將得到的過濾數組存儲在第一結構體數組中; 將所述第一結構體數組的起始地址和長度信息存儲在第二結構體變量中; 根據所述第一結構體數組和第二結構體變量生成套接口選項設置函數; 調用所述套接口選項設置函數對用于接收數據的套接字的從屬過濾選項進行設置,以完成過濾規則的預置。
4.如權利要求1所述的方法,其特征在于,所述如果檢測到的傳輸屬性中包括的端口號和/或所屬的網絡協議符合所述預置的過濾規則,則處理所述接收到的數據包之前,還包括: 判斷檢測到的傳輸屬性是否符合所述預置的過濾規則,具體包括:判斷所述數據包的端口號是否為所述過濾規則中指定的端口號,和/或所述數據包所屬的網絡協議是否為所述過濾規則中指定的網絡協議。
5.如權利要求1所述的方法,其特征在于,所述如果檢測到的傳輸屬性中包括的端口號和/或所屬的網絡協議符合所述預置的過濾規則,則處理所述接收到的數據包,包括: 如果檢測到的傳輸屬性中包括的端口號和/或所屬的網絡協議符合所述預置的過濾規則,則提取符合所述預置的過濾規則的所述數據包。
6.如權利要求1-5任一項所述的方法,其特征在于,還包括: 若檢測到的傳輸屬性中包括的端口號和/或所屬的網絡協議不符合所述預置的過濾規則,則丟棄所述接收到的數據包。
7.一種數據包過濾的裝置,其特征在于,包括: 接收模塊,用于接收服務器發送的數據包; 檢測模塊,用于根據 預置的過濾規則,檢測所述接收到的數據包的傳輸屬性,所述傳輸屬性包括所述接收到的數據包攜帶的端口號和/或所屬的網絡協議; 第一處理模塊,用于如果檢測到的傳輸屬性中包括的端口號和/或所屬的網絡協議符合所述預置的過濾規則,則處理所述接收到的數據包。
8.如權利要求7所述的裝置,其特征在于,還包括: 指令運行模塊,用于根據輸入的過濾參數執行過濾規則設置指令,得到作為執行結果的過濾數組; 預置模塊,用于根據指令運行模塊得到的過濾數組對用于接收數據的套接字的從屬過濾選項進行設置,完成過濾規則的預置。
9.如權利要求8所述的裝置,其特征在于,所述預置模塊,包括: 第一存儲單元,用于將得到的過濾數組存儲在第一結構體數組中; 第二存儲單元,用于將所述第一結構體數組的起始地址和長度信息存儲在第二結構體變量中; 生成單元,用于根據所述第一結構體數組和第二結構體變量生成套接口選項設置函數; 調用單元,用于調用所述設置套接口選項函數對用于接收數據的套接字的從屬過濾選項進行設置,以完成過濾規則的預置。
10.如權利要求7所述的裝置,其特征在于,還包括: 判斷模塊,用于判斷檢測到的傳輸屬性是否符合所述預置的過濾規則,具體為:判斷所述數據包的端口號是否為所述過濾規則中指定的端口號,和/或所述數據包所屬的網絡協議是否為所述過濾規則中指定的網絡協議。
11.如權利要求7所述的裝置,其特征在于,所述第一處理模塊,包括: 提取單元,用于如果檢測到的傳輸屬性中包括的端口號和/或所屬的網絡協議符合所述預置的過濾規則,則提取符合所述預置的過濾規則的所述數據包。
12.如權利要求7-11任一項所述的裝置,其特征在于,還包括: 第二處理模塊,用于若檢測到的傳輸屬性中包括的端口號和/或所屬的網絡協議不符合所述預置的過濾規則,則丟棄所述接收到的數據包。
【文檔編號】H04L12/26GK103560973SQ201310478699
【公開日】2014年2月5日 申請日期:2013年10月14日 優先權日:2013年10月14日
【發明者】丁鳳 申請人:深圳市同洲電子股份有限公司