專(zhuān)利名稱(chēng):一種arp流量控制方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)包控制技術(shù)領(lǐng)域,尤其涉及一種ARP流量控制方法和系統(tǒng)。
技術(shù)背景
近年來(lái),隨著計(jì)算機(jī)網(wǎng)絡(luò)的迅速發(fā)展,由網(wǎng)絡(luò)協(xié)議漏洞引發(fā)的網(wǎng)絡(luò)安全事件日漸頻繁,ARP欺騙攻擊便是其中比較嚴(yán)重的一種,它利用ARP協(xié)議的漏洞進(jìn)行網(wǎng)絡(luò)欺騙和攻擊。ARP(address resolution Protocol)是地址解析協(xié)議的簡(jiǎn)稱(chēng),其主要作用在于實(shí)現(xiàn)地址解析,即通過(guò)廣播方式獲取某個(gè)目的IP地址對(duì)應(yīng)的目的MAC地址,以便利用獲得的MAC 地址進(jìn)行數(shù)據(jù)傳輸。但是,在廣播ARP請(qǐng)求過(guò)程中,源主機(jī)所在網(wǎng)絡(luò)內(nèi)的所有主機(jī)均將收到該廣播請(qǐng)求,黑客或者感染了 ARP病毒的主機(jī)通過(guò)該機(jī)會(huì)將偽造的地址返回給源主機(jī),源主機(jī)獲得該地址后向該地址的目的主機(jī)發(fā)送數(shù)據(jù)。然而,由于源主機(jī)獲得的地址是偽造的, 發(fā)送的數(shù)據(jù)將無(wú)法真正到達(dá)目的主機(jī),一方面可能引起數(shù)據(jù)多次重傳,另一方面黑客會(huì)不斷地返回偽造的地址信息,致使短時(shí)間內(nèi)網(wǎng)絡(luò)數(shù)據(jù)包流量大增,而網(wǎng)絡(luò)帶寬通常恒定不變, ARP數(shù)據(jù)包過(guò)多輕則導(dǎo)致網(wǎng)速減慢、上網(wǎng)延長(zhǎng),重則導(dǎo)致此起彼伏的瞬間掉線或大面積的斷網(wǎng)。發(fā)明內(nèi)容
有鑒于現(xiàn)有技術(shù)存在的不足,本發(fā)明的目的在于提供一種ARP流量控制方法和系統(tǒng),該方法和系統(tǒng)根據(jù)預(yù)設(shè)流量控制速率對(duì)數(shù)據(jù)包進(jìn)行流量比較,超過(guò)速率時(shí)丟棄相應(yīng)數(shù)據(jù)包,以解決ARP數(shù)據(jù)包流量過(guò)多、引起網(wǎng)速和掉線的問(wèn)題。
為實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例提供的ARP流量控制方法包括
在設(shè)備器枚舉完成后創(chuàng)建與設(shè)備器對(duì)應(yīng)的限速規(guī)則,所述限速規(guī)則包含預(yù)設(shè)流量控制速率;
查詢(xún)與設(shè)備器對(duì)應(yīng)的限速鏈表的空閑節(jié)點(diǎn),將所述限速規(guī)則包含的流量控制速率寫(xiě)入該空閑節(jié)點(diǎn),所述限速鏈表包含有多個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)用于記錄流量控制速率;
獲取處理ARP數(shù)據(jù)包的處理時(shí)間間隔,用該處理時(shí)間間隔除以ARP數(shù)據(jù)包長(zhǎng)度得到數(shù)據(jù)處理間隔次數(shù)M ;
從當(dāng)前節(jié)點(diǎn)開(kāi)始順序查找N個(gè)非空閑節(jié)點(diǎn),所述N與M的數(shù)值相等;
將N個(gè)非空閑節(jié)點(diǎn)對(duì)應(yīng)的流量控制速率進(jìn)行求和運(yùn)算,將求和運(yùn)算的結(jié)果與預(yù)設(shè)最大流量控制速率進(jìn)行比較,如果大于預(yù)設(shè)最大流量控制速率,則丟棄當(dāng)前ARP數(shù)據(jù)包。
優(yōu)選地,所述空閑節(jié)點(diǎn)為未寫(xiě)入預(yù)設(shè)流量控制速率的節(jié)點(diǎn),所述非空閑節(jié)點(diǎn)為已寫(xiě)入預(yù)設(shè)流量控制速率的節(jié)點(diǎn)。
優(yōu)選地,所述限速鏈表包含的節(jié)點(diǎn)數(shù)范圍為60至90個(gè)。
優(yōu)選地,所述方法包括進(jìn)行設(shè)備器枚舉之前,通過(guò)目標(biāo)字符串協(xié)商機(jī)制確定 ARPNDIS協(xié)議驅(qū)動(dòng)。
優(yōu)選地,所述方法包括在進(jìn)行查詢(xún)限速鏈表之前,初始化限速鏈表,具體包括創(chuàng)建一個(gè)多節(jié)點(diǎn)鏈表,將鏈表節(jié)點(diǎn)的流量控制速率值置零。
本發(fā)明還提供了一種ARP流量控制系統(tǒng)。該系統(tǒng)包括規(guī)則創(chuàng)建單元、速率寫(xiě)入單元、間隔次數(shù)獲取單元、節(jié)點(diǎn)查找單元、求和單元和比較單元,其中
所述規(guī)則創(chuàng)建單元,用于在設(shè)備器枚舉完成后創(chuàng)建與設(shè)備器對(duì)應(yīng)的限速規(guī)則,所述限速規(guī)則包含預(yù)設(shè)流量控制速率;
所述速率寫(xiě)入單元,用于在從與設(shè)備器對(duì)應(yīng)的限速鏈表中查詢(xún)到空閑節(jié)點(diǎn)后,將所述限速規(guī)則包含的流量控制速率寫(xiě)入該空閑節(jié)點(diǎn),所述限速鏈表包含有多個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)用于記錄流量控制速率;
所述間隔次數(shù)獲取單元,用于獲取處理ARP數(shù)據(jù)包的處理時(shí)間間隔,用該處理時(shí)間間隔除以ARP數(shù)據(jù)包長(zhǎng)度得到數(shù)據(jù)處理間隔次數(shù)M ;
所述節(jié)點(diǎn)查找單元,用于從當(dāng)前節(jié)點(diǎn)開(kāi)始順序查找N個(gè)非空閑節(jié)點(diǎn),所述N與M的數(shù)值相等;
所述求和單元,用于將查找到的N個(gè)非空閑節(jié)點(diǎn)對(duì)應(yīng)的流量控制速率進(jìn)行求和運(yùn)算;
所述比較單元,用于將求和運(yùn)算的結(jié)果與預(yù)設(shè)最大流量控制速率進(jìn)行比較,如果大于預(yù)設(shè)最大流量控制速率,則丟棄當(dāng)前ARP數(shù)據(jù)包。
優(yōu)選地,所述空閑節(jié)點(diǎn)為未寫(xiě)入預(yù)設(shè)流量控制速率的節(jié)點(diǎn),所述非空閑節(jié)點(diǎn)為已寫(xiě)入預(yù)設(shè)流量控制速率的節(jié)點(diǎn)。
優(yōu)選地,所述限速鏈表包含的節(jié)點(diǎn)數(shù)范圍為60至90個(gè)。
優(yōu)選地,所述系統(tǒng)包括驅(qū)動(dòng)確定單元,用于通過(guò)目標(biāo)字符串協(xié)商機(jī)制確定ARPNDIS 協(xié)議驅(qū)動(dòng)。
優(yōu)選地,所述系統(tǒng)包括初始化單元,用于在進(jìn)行查詢(xún)限速鏈表之前,初始化限速鏈表,具體包括創(chuàng)建多節(jié)點(diǎn)鏈表,將鏈表節(jié)點(diǎn)的流量控制速率值置零。
本發(fā)明實(shí)施例提供的技術(shù)方案在設(shè)備器完成枚舉之后為設(shè)備器創(chuàng)建限速規(guī)則,將限速規(guī)則中的預(yù)設(shè)流量控制速率寫(xiě)入到限速鏈表的空閑節(jié)點(diǎn)內(nèi),然后獲取當(dāng)前數(shù)據(jù)處理的時(shí)間間隔,用該時(shí)間間隔除以ARP數(shù)據(jù)包長(zhǎng)度得到數(shù)據(jù)處理間隔次數(shù)M,再自當(dāng)前節(jié)點(diǎn)開(kāi)始從限速鏈表中查找N個(gè)非空閑節(jié)點(diǎn),將非空閑節(jié)點(diǎn)的流量控制速率值進(jìn)行求和,用求和的結(jié)果與預(yù)設(shè)的最大流量控制速率進(jìn)行比較,如果大于該最大預(yù)設(shè)值,則過(guò)濾掉當(dāng)前的ARP 數(shù)據(jù)包。與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例為每個(gè)設(shè)備器創(chuàng)建對(duì)應(yīng)的限速鏈表,通過(guò)將限度鏈表節(jié)點(diǎn)對(duì)應(yīng)的速率求和值與預(yù)設(shè)最大流量速率值進(jìn)行比較,實(shí)現(xiàn)了 ARP流量的過(guò)濾,從而減少了 ARP攻擊包,避免了網(wǎng)速減慢或掉線問(wèn)題。而且,本發(fā)明實(shí)施例利用數(shù)據(jù)包處理時(shí)間間隔作為判斷速率快慢的基準(zhǔn),處理時(shí)間間隔短,ARP數(shù)據(jù)包必然多,反之則少,該方式能夠?qū)崟r(shí)地判斷出ARP數(shù)據(jù)包的數(shù)量變化,由此能夠及時(shí)地實(shí)現(xiàn)ARP流量控制。此外,本發(fā)明實(shí)施例通過(guò)將預(yù)設(shè)的流量控制速率寫(xiě)入到限速鏈表中實(shí)現(xiàn)流量控制,由此可根據(jù)網(wǎng)絡(luò)當(dāng)前數(shù)據(jù)傳輸?shù)膶?shí)際情況有目的地和定量性進(jìn)行限速,提高了 ARP流量控制的靈活性。
圖1為本發(fā)明的一個(gè)方法實(shí)施例的流程圖2為本發(fā)明的一個(gè)系統(tǒng)實(shí)施例的結(jié)構(gòu)圖。
具體實(shí)施方式
本發(fā)明的主要思想是在設(shè)備器完成枚舉之后為設(shè)備器創(chuàng)建限速規(guī)則,將限速規(guī)則中的預(yù)設(shè)流量控制速率寫(xiě)入到限速鏈表的空閑節(jié)點(diǎn)內(nèi),然后獲取當(dāng)前ARP數(shù)據(jù)包處理的時(shí)間間隔,用該時(shí)間間隔除以ARP數(shù)據(jù)包長(zhǎng)度得到數(shù)據(jù)處理間隔次數(shù)M,再自當(dāng)前節(jié)點(diǎn)開(kāi)始從限速鏈表中查找N個(gè)非空閑節(jié)點(diǎn),將非空閑節(jié)點(diǎn)的流量控制速率值進(jìn)行求和,用求和的結(jié)果與預(yù)設(shè)的最大流量控制速率進(jìn)行比較,如果大于該最大預(yù)設(shè)值,則過(guò)濾掉當(dāng)前的ARP數(shù)據(jù)包,從而實(shí)現(xiàn)了 ARP攻擊數(shù)據(jù)包的流量控制。
為了使本領(lǐng)域技術(shù)人員能進(jìn)一步了解本發(fā)明的特征及技術(shù)內(nèi)容,下面先對(duì)本發(fā)明中的ARP原理以及ARP攻擊進(jìn)行簡(jiǎn)要介紹,然后結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)描述。
為簡(jiǎn)便起見(jiàn),介紹ARP原理時(shí)以主機(jī)A (192. 168. 1. 5)向主機(jī)B (192. 168. 1. 1)發(fā)送數(shù)據(jù)為例。當(dāng)發(fā)送數(shù)據(jù)時(shí),主機(jī)A會(huì)在自己的ARP緩存表中尋找是否有目標(biāo)IP地址。如果找到,也就知道了目標(biāo)的MAC地址,直接把目標(biāo)的MAC地址寫(xiě)入幀里面即可發(fā)送;如果在ARP緩存表里面沒(méi)有目標(biāo)的IP地址,主機(jī)A便在網(wǎng)絡(luò)上發(fā)送一個(gè)廣播,目標(biāo)MAC地址是 “ff-ff-ff-ff-ff-ff”,這表示向同一網(wǎng)段的所有主機(jī)發(fā)出這樣的詢(xún)問(wèn)“192. 168. 1. 1的 MAC地址是什么呀? ”,網(wǎng)絡(luò)上其他主機(jī)并不回應(yīng)這一詢(xún)問(wèn),只有主機(jī)B接受到這個(gè)幀時(shí)才向 A做出回應(yīng)"192. 168. 1. 1的MAC地址是00-aa-0-62-c6_09”。由此,主機(jī)A便獲知主機(jī)B 的MAC地址,即可向主機(jī)B發(fā)送信息。同時(shí),它還更新自己的ARP緩存表,下次再向B發(fā)送數(shù)據(jù)時(shí),直接在ARP緩存中進(jìn)行查找。ARP緩存表采用老化的機(jī)制,在一段時(shí)間里表中的某一行沒(méi)有使用,就會(huì)被刪除,這樣可以大大減少ARP緩存表的長(zhǎng)度,加快查詢(xún)的速度。
ARP欺騙是黑客常用的攻擊手段之一,ARP欺騙分為二種,一種是對(duì)路由器ARP表的欺騙;另一種是對(duì)內(nèi)網(wǎng)PC的網(wǎng)關(guān)欺騙。第一種ARP欺騙的原理是截獲網(wǎng)關(guān)數(shù)據(jù)。它通知路由器一系列錯(cuò)誤的內(nèi)網(wǎng)MAC地址,并按照一定的頻率不斷進(jìn)行,使真實(shí)的地址信息無(wú)法通過(guò)更新保存在路由器中,結(jié)果路由器的所有數(shù)據(jù)只能發(fā)送給錯(cuò)誤的MAC地址,造成正常 PC無(wú)法收到信息。第二種ARP欺騙的原理是偽造網(wǎng)關(guān)。它的原理是建立假網(wǎng)關(guān),讓被它欺騙的PC向假網(wǎng)關(guān)發(fā)數(shù)據(jù),而不是通過(guò)正常的路由器途徑上網(wǎng)。一般來(lái)說(shuō),ARP欺騙攻擊的后果非常嚴(yán)重,大多數(shù)情況下會(huì)造成大面積掉線。
為了解決ARP攻擊帶來(lái)的問(wèn)題,本發(fā)明實(shí)施例提供了一種ARP流量控制方法。參見(jiàn)附圖1,該實(shí)施例包括
步驟SlOl 在設(shè)備器枚舉完成后創(chuàng)建與設(shè)備器對(duì)應(yīng)的限速規(guī)則,所述限速規(guī)則包含預(yù)設(shè)流量控制速率;
這里的設(shè)備器是指安裝在終端上的諸如網(wǎng)卡等具有數(shù)據(jù)存儲(chǔ)轉(zhuǎn)發(fā)功能的設(shè)備,還可以是具有類(lèi)似功能的網(wǎng)絡(luò)虛擬設(shè)備。在一個(gè)終端上可能存在一個(gè)設(shè)備器,也可能存在多個(gè)設(shè)備器,當(dāng)存在多個(gè)設(shè)備器時(shí)均需要進(jìn)行枚舉操作,枚舉過(guò)程可以檢測(cè)到設(shè)備器是否存在,設(shè)備器調(diào)用的相關(guān)協(xié)議。完成設(shè)備器枚舉后,終端為每個(gè)設(shè)備器創(chuàng)建一個(gè)限速規(guī)則,這些限速規(guī)則內(nèi)包含預(yù)設(shè)的流量控制速率,每個(gè)設(shè)備器對(duì)應(yīng)的限速規(guī)則可以相同,也可以不同,流量控制速率在考慮實(shí)際網(wǎng)絡(luò)流量、設(shè)備器的網(wǎng)絡(luò)處理能力等因素后進(jìn)行設(shè)置。
步驟S102 查詢(xún)與設(shè)備器對(duì)應(yīng)的限速鏈表的空閑節(jié)點(diǎn),將所述限速規(guī)則包含的流6量控制速率寫(xiě)入該空閑節(jié)點(diǎn),所述限速鏈表包含有多個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)用于記錄流量控制速率;
在完成限速規(guī)則創(chuàng)建后,需要將限速規(guī)則插入到限速鏈表中,限速鏈表中包含多個(gè)節(jié)點(diǎn),這些節(jié)點(diǎn)用于記錄流量控制速率,在進(jìn)行查詢(xún)限速鏈表之前,限速鏈表需要進(jìn)行初始化,初始化過(guò)程包括創(chuàng)建一個(gè)多節(jié)點(diǎn)鏈表,將鏈表節(jié)點(diǎn)的流量控制速率值置零,也就是說(shuō),在啟動(dòng)限速之前,限速鏈表內(nèi)沒(méi)有流量控制速率值,即實(shí)際上沒(méi)有進(jìn)行限速。這里初始化時(shí)創(chuàng)建的節(jié)點(diǎn)數(shù)據(jù)可根據(jù)實(shí)際情況或經(jīng)驗(yàn)估計(jì)進(jìn)行設(shè)置,通常設(shè)置為60至90個(gè)。當(dāng)首次將限速規(guī)則插入到限速鏈表中時(shí),每個(gè)節(jié)點(diǎn)均是空閑節(jié)點(diǎn),所謂空閑節(jié)點(diǎn)即指未寫(xiě)入預(yù)設(shè)流量控制速率的節(jié)點(diǎn),從這些節(jié)點(diǎn)中任意選擇一個(gè)節(jié)點(diǎn),將限速規(guī)則中的預(yù)設(shè)流量控制速率的值寫(xiě)入到該節(jié)點(diǎn)內(nèi)。這里可以任意選擇空閑節(jié)點(diǎn),但在實(shí)際應(yīng)用場(chǎng)合,考慮到內(nèi)存資源的有限性,通常依次進(jìn)行選擇,即自鏈表頭開(kāi)始填充流量控制速率值,從而避免來(lái)回跳動(dòng)指針對(duì)內(nèi)存資源的消耗。
步驟S103 獲取處理數(shù)據(jù)包的處理時(shí)間間隔,用該處理時(shí)間間隔除以ARP數(shù)據(jù)包長(zhǎng)度得到數(shù)據(jù)處理間隔次數(shù)M ;
由于設(shè)備器主要用于接收轉(zhuǎn)發(fā)數(shù)據(jù)包,當(dāng)ARP攻擊存在時(shí),網(wǎng)絡(luò)中的數(shù)據(jù)包數(shù)量較多,數(shù)據(jù)包的處理間隔將變短,因此,通過(guò)獲取處理數(shù)據(jù)包的處理時(shí)間間隔即可獲知ARP 數(shù)據(jù)包的數(shù)量情況。這里的數(shù)據(jù)包的處理時(shí)間指數(shù)據(jù)包的接收轉(zhuǎn)發(fā)時(shí)間,時(shí)間間隔指相鄰兩個(gè)數(shù)據(jù)包的接收轉(zhuǎn)發(fā)處理的時(shí)間差。獲得該時(shí)間差后用該時(shí)間差除以ARP數(shù)據(jù)包的長(zhǎng)度,得到數(shù)據(jù)處理間隔次數(shù)M。這里需要注意的是所謂ARP數(shù)據(jù)包應(yīng)當(dāng)作廣泛的理解,即由ARP攻擊導(dǎo)致的數(shù)據(jù)包均包括在內(nèi),比如反復(fù)重傳的數(shù)據(jù)包、黑客發(fā)起周期性ARP攻擊產(chǎn)生的數(shù)據(jù)包等等。
步驟S104 從當(dāng)前節(jié)點(diǎn)開(kāi)始順序查找N個(gè)非空閑節(jié)點(diǎn),所述N與M的數(shù)值相等;
自向限速鏈表中添加預(yù)設(shè)的流量控制速率值后,鏈表指針即指向剛添加速率值的節(jié)點(diǎn),該節(jié)點(diǎn)即是當(dāng)前節(jié)點(diǎn)。從當(dāng)前節(jié)點(diǎn)開(kāi)始查找非空閑節(jié)點(diǎn),查找的非空閑節(jié)點(diǎn)的數(shù)量 N與前述的數(shù)據(jù)處理間隔次數(shù)M相同,這里的非空閑節(jié)點(diǎn)指已寫(xiě)入預(yù)設(shè)流量控制速率的節(jié)點(diǎn)。這里的由當(dāng)前節(jié)點(diǎn)順序查找的目的也在于節(jié)約內(nèi)存資源,通常非空閑節(jié)點(diǎn)是緊鄰存儲(chǔ)的,因此按照順序查找極為方便。
步驟S105 將N個(gè)非空閑節(jié)點(diǎn)對(duì)應(yīng)的流量控制速率進(jìn)行求和運(yùn)算,將求和運(yùn)算的結(jié)果與預(yù)設(shè)最大流量控制速率進(jìn)行比較,如果大于預(yù)設(shè)最大流量控制速率,則丟棄當(dāng)前ARP 數(shù)據(jù)包。
查找到N個(gè)非空閑節(jié)點(diǎn)后,將非空閑節(jié)點(diǎn)內(nèi)的流量控制速率值進(jìn)行相加,得到一個(gè)總的流量控制速率,將該總的流量控制速率與預(yù)設(shè)的最大流量控制速率進(jìn)行比較,如果大于該預(yù)設(shè)最大速率,說(shuō)明網(wǎng)絡(luò)出現(xiàn)超速,網(wǎng)絡(luò)中的ARP數(shù)量較多,這時(shí)將當(dāng)前ARP數(shù)據(jù)包進(jìn)行丟棄處理。
本實(shí)施例提供的技術(shù)方案在設(shè)備器完成枚舉之后為設(shè)備器創(chuàng)建限速規(guī)則,將限速規(guī)則中的預(yù)設(shè)流量控制速率寫(xiě)入到限速鏈表的空閑節(jié)點(diǎn)內(nèi),然后獲取當(dāng)前數(shù)據(jù)處理的時(shí)間間隔,用該時(shí)間間隔除以ARP數(shù)據(jù)包長(zhǎng)度得到數(shù)據(jù)處理間隔次數(shù)M,再自當(dāng)前節(jié)點(diǎn)開(kāi)始從限速鏈表中查找N個(gè)非空閑節(jié)點(diǎn),將非空閑節(jié)點(diǎn)的流量控制速率值進(jìn)行求和,用求和的結(jié)果與預(yù)設(shè)的最大流量控制速率進(jìn)行比較,如果大于該最大預(yù)設(shè)值,則過(guò)濾掉當(dāng)前的ARP數(shù)據(jù)包。與現(xiàn)有技術(shù)相比,本實(shí)施例至少取得如下方面的技術(shù)效果
(1)本實(shí)施例為每個(gè)設(shè)備器創(chuàng)建對(duì)應(yīng)的限速鏈表,通過(guò)將限度鏈表節(jié)點(diǎn)對(duì)應(yīng)的速率求和值與預(yù)設(shè)最大流量速率值進(jìn)行比較,實(shí)現(xiàn)了 ARP流量的過(guò)濾,從而減少了 ARP攻擊包,避免了網(wǎng)速減慢或掉線問(wèn)題。
(2)本實(shí)施例利用數(shù)據(jù)包處理時(shí)間間隔作為判斷速率快慢的基準(zhǔn),處理時(shí)間間隔短,ARP數(shù)據(jù)包必然多,反之則少,該方式能夠?qū)崟r(shí)地判斷出ARP數(shù)據(jù)包的數(shù)量變化,由此能夠及時(shí)地實(shí)現(xiàn)ARP流量控制。
(3)本實(shí)施例通過(guò)將預(yù)設(shè)的流量控制速率寫(xiě)入到限速鏈表中實(shí)現(xiàn)流量控制,由此可根據(jù)網(wǎng)絡(luò)當(dāng)前數(shù)據(jù)傳輸?shù)膶?shí)際情況有目的地和定量性進(jìn)行限速,提高了 ARP流量控制的靈活性。
上述實(shí)施例中在進(jìn)行設(shè)備器枚舉之前,本實(shí)施例包括協(xié)議驅(qū)動(dòng)的步驟,在步驟的目的在于選擇與設(shè)備器相適合的協(xié)議驅(qū)動(dòng),尤其在不同的網(wǎng)卡生產(chǎn)商提供的網(wǎng)卡沒(méi)有統(tǒng)一規(guī)范的情況,需要相應(yīng)地選擇協(xié)議驅(qū)動(dòng)才能實(shí)現(xiàn)網(wǎng)卡正常功能。本實(shí)施例優(yōu)選通過(guò)目標(biāo)字符串協(xié)商機(jī)制確定ARP NDIS協(xié)議驅(qū)動(dòng)。這里的NDIS是Network Driver Interface Specification,即網(wǎng)絡(luò)驅(qū)動(dòng)接口規(guī)范。NDIS的主要目的就是為NIC(網(wǎng)絡(luò)接口卡,Netwok Interface Cards)制定出標(biāo)準(zhǔn)的 API 接口。MAC(介質(zhì)訪問(wèn)控制,MediaAccess Controller) 設(shè)備驅(qū)動(dòng)封裝了所有的NIC硬件實(shí)現(xiàn),這樣一來(lái)所有的使用相同介質(zhì)的NIC就可以通過(guò)通用的編程接口被訪問(wèn)。NDIS同時(shí)也提供一個(gè)函數(shù)庫(kù)(又時(shí)也稱(chēng)作wrapper),這個(gè)庫(kù)中的函數(shù)可以被MAC驅(qū)動(dòng)調(diào)用,也可以被高層的協(xié)議(例如TCP/IP)驅(qū)動(dòng)調(diào)用。這些wrapper函數(shù)使得MAC驅(qū)動(dòng)和協(xié)議驅(qū)動(dòng)的開(kāi)發(fā)變得更加容易。不同運(yùn)營(yíng)商提供的ARP NDIS協(xié)議驅(qū)動(dòng)不同,該協(xié)議驅(qū)動(dòng)與終端的其他系統(tǒng)具有聯(lián)系,因此,在進(jìn)行相應(yīng)數(shù)據(jù)過(guò)濾操作前必須進(jìn)行 ARPNDIS協(xié)議驅(qū)動(dòng)的正確選擇,選擇的方式即是通過(guò)目標(biāo)字符串協(xié)商機(jī)制進(jìn)行,目標(biāo)字符串是運(yùn)營(yíng)商開(kāi)發(fā)ARP NDIS協(xié)議驅(qū)動(dòng)時(shí)預(yù)設(shè)的一個(gè)識(shí)別碼,終端通過(guò)該目標(biāo)字符串即可進(jìn)行 ARPNDIS協(xié)議驅(qū)動(dòng)的相應(yīng)選擇。
上述描述了本發(fā)明的方法實(shí)施例,相應(yīng)地,本發(fā)明的還提供了一種ARP流量控制系統(tǒng)的實(shí)施例200。參見(jiàn)圖2,該系統(tǒng)實(shí)施例200包括
規(guī)則創(chuàng)建單元201、速率寫(xiě)入單元202、間隔次數(shù)獲取單元203、節(jié)點(diǎn)查找單元204、 求和單元205和比較單元206,其中
所述規(guī)則創(chuàng)建單元201,用于在設(shè)備器枚舉完成后創(chuàng)建與設(shè)備器對(duì)應(yīng)的限速規(guī)則, 所述限速規(guī)則包含預(yù)設(shè)流量控制速率;
所述速率寫(xiě)入單元202,用于在從與設(shè)備器對(duì)應(yīng)的限速鏈表中查詢(xún)到空閑節(jié)點(diǎn)后, 將所述限速規(guī)則包含的流量控制速率寫(xiě)入該空閑節(jié)點(diǎn),所述限速鏈表包含有多個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)用于記錄流量控制速率;
所述間隔次數(shù)獲取單元203,用于獲取處理數(shù)據(jù)包的處理時(shí)間間隔,用該處理時(shí)間間隔除以ARP數(shù)據(jù)包長(zhǎng)度得到數(shù)據(jù)處理間隔次數(shù)M ;
所述節(jié)點(diǎn)查找單元204,用于從當(dāng)前節(jié)點(diǎn)開(kāi)始順序查找N個(gè)非空閑節(jié)點(diǎn),所述N與 M的數(shù)值相等;
所述求和單元205,用于將查找到的N個(gè)非空閑節(jié)點(diǎn)對(duì)應(yīng)的流量控制速率進(jìn)行求和運(yùn)算;
所述比較單元206,用于將求和運(yùn)算的結(jié)果與預(yù)設(shè)最大流量控制速率進(jìn)行比較,如果大于預(yù)設(shè)最大流量控制速率,則丟棄當(dāng)前ARP數(shù)據(jù)包。
本系統(tǒng)實(shí)施例的工作過(guò)程是規(guī)則創(chuàng)建單元201在設(shè)備器枚舉完成后創(chuàng)建與設(shè)備器對(duì)應(yīng)的包含預(yù)設(shè)流量控制速率限速規(guī)則;接下來(lái),速率寫(xiě)入單元202在從與設(shè)備器對(duì)應(yīng)的限速鏈表中查詢(xún)到空閑節(jié)點(diǎn)后,將所述限速規(guī)則包含的流量控制速率寫(xiě)入該空閑節(jié)點(diǎn); 然后由間隔次數(shù)獲取單元203獲取處理數(shù)據(jù)包的處理時(shí)間間隔,用該處理時(shí)間間隔除以 ARP數(shù)據(jù)包長(zhǎng)度得到數(shù)據(jù)處理間隔次數(shù)M ;節(jié)點(diǎn)查找單元204從當(dāng)前節(jié)點(diǎn)開(kāi)始順序查找N個(gè)非空閑節(jié)點(diǎn),所述N與M的數(shù)值相等;由求和單元205將查找到的N個(gè)非空閑節(jié)點(diǎn)對(duì)應(yīng)的流量控制速率進(jìn)行求和運(yùn)算;然后,比較單元206將求和運(yùn)算的結(jié)果與預(yù)設(shè)最大流量控制速率進(jìn)行比較,如果大于預(yù)設(shè)最大流量控制速率,則丟棄當(dāng)前ARP數(shù)據(jù)包。
本實(shí)施例提供的技術(shù)方案在設(shè)備器完成枚舉之后為設(shè)備器創(chuàng)建限速規(guī)則,將限速規(guī)則中的預(yù)設(shè)流量控制速率寫(xiě)入到限速鏈表的空閑節(jié)點(diǎn)內(nèi),然后獲取當(dāng)前數(shù)據(jù)處理的時(shí)間間隔,用該時(shí)間間隔除以ARP數(shù)據(jù)包長(zhǎng)度得到數(shù)據(jù)處理間隔次數(shù)M,再自當(dāng)前節(jié)點(diǎn)開(kāi)始從限速鏈表中查找N個(gè)非空閑節(jié)點(diǎn),將非空閑節(jié)點(diǎn)的流量控制速率值進(jìn)行求和,用求和的結(jié)果與預(yù)設(shè)的最大流量控制速率進(jìn)行比較,如果大于該最大預(yù)設(shè)值,則過(guò)濾掉當(dāng)前的ARP數(shù)據(jù)包。與現(xiàn)有技術(shù)相比,本實(shí)施例為每個(gè)設(shè)備器創(chuàng)建對(duì)應(yīng)的限速鏈表,通過(guò)將限度鏈表節(jié)點(diǎn)對(duì)應(yīng)的速率求和值與預(yù)設(shè)最大流量速率值進(jìn)行比較,實(shí)現(xiàn)了 ARP流量的過(guò)濾,從而減少了 ARP 攻擊包,避免了網(wǎng)速減慢或掉線問(wèn)題。而且,本發(fā)明實(shí)施例利用數(shù)據(jù)包處理時(shí)間間隔作為判斷速率快慢的基準(zhǔn),處理時(shí)間間隔短,ARP數(shù)據(jù)包必然多,反之則少,該方式能夠?qū)崟r(shí)地判斷出ARP數(shù)據(jù)包的數(shù)量變化,由此能夠及時(shí)地實(shí)現(xiàn)ARP流量控制。此外,本發(fā)明實(shí)施例通過(guò)將預(yù)設(shè)的流量控制速率寫(xiě)入到限速鏈表中實(shí)現(xiàn)流量控制,由此可根據(jù)網(wǎng)絡(luò)當(dāng)前數(shù)據(jù)傳輸?shù)膶?shí)際情況有目的地和定量性進(jìn)行限速,提高了 ARP流量控制的靈活性。
上述系統(tǒng)實(shí)施例所述空閑節(jié)點(diǎn)為未寫(xiě)入預(yù)設(shè)流量控制速率的節(jié)點(diǎn),所述非空閑節(jié)點(diǎn)為已寫(xiě)入預(yù)設(shè)流量控制速率的節(jié)點(diǎn)。所述限速鏈表包含的節(jié)點(diǎn)數(shù)可根據(jù)實(shí)際情況或經(jīng)驗(yàn)進(jìn)行設(shè)置,但通常范圍為60至90個(gè)。
上述實(shí)施例的系統(tǒng)包括驅(qū)動(dòng)確定單元,用于通過(guò)目標(biāo)字符串協(xié)商機(jī)制確定ARP NDIS協(xié)議驅(qū)動(dòng)。通過(guò)該驅(qū)動(dòng)確定單元能夠選擇與設(shè)備器相適應(yīng)的驅(qū)動(dòng)程序,從而有利于網(wǎng)卡設(shè)備的正常工作。
上述實(shí)施例的系統(tǒng)包括初始化單元,用于在進(jìn)行查詢(xún)限速鏈表之前,初始化限速鏈表,具體包括創(chuàng)建一個(gè)多節(jié)點(diǎn)鏈表,將鏈表節(jié)點(diǎn)的流量控制速率值置零。
以上所述的本發(fā)明實(shí)施方式,并不構(gòu)成對(duì)本發(fā)明保護(hù)范圍的限定。任何在本發(fā)明的精神和原則之內(nèi)所作的修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的權(quán)利要求保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種ARP流量控制方法,其特征在于,該方法包括在設(shè)備器枚舉完成后創(chuàng)建與設(shè)備器對(duì)應(yīng)的限速規(guī)則,所述限速規(guī)則包含預(yù)設(shè)流量控制速率;查詢(xún)與設(shè)備器對(duì)應(yīng)的限速鏈表的空閑節(jié)點(diǎn),將所述限速規(guī)則包含的流量控制速率寫(xiě)入該空閑節(jié)點(diǎn),所述限速鏈表包含有多個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)用于記錄流量控制速率;獲取處理ARP數(shù)據(jù)包的處理時(shí)間間隔,用該處理時(shí)間間隔除以ARP數(shù)據(jù)包長(zhǎng)度得到數(shù)據(jù)處理間隔次數(shù)M ;從當(dāng)前節(jié)點(diǎn)開(kāi)始順序查找N個(gè)非空閑節(jié)點(diǎn),所述N與M的數(shù)值相等; 將N個(gè)非空閑節(jié)點(diǎn)對(duì)應(yīng)的流量控制速率進(jìn)行求和運(yùn)算,將求和運(yùn)算的結(jié)果與預(yù)設(shè)最大流量控制速率進(jìn)行比較,如果大于預(yù)設(shè)最大流量控制速率,則丟棄當(dāng)前ARP數(shù)據(jù)包。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述空閑節(jié)點(diǎn)為未寫(xiě)入預(yù)設(shè)流量控制速率的節(jié)點(diǎn),所述非空閑節(jié)點(diǎn)為已寫(xiě)入預(yù)設(shè)流量控制速率的節(jié)點(diǎn)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述限速鏈表包含的節(jié)點(diǎn)數(shù)范圍為60至 90個(gè)。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法包括在進(jìn)行設(shè)備器枚舉之前, 通過(guò)目標(biāo)字符串協(xié)商機(jī)制確定ARP NDIS協(xié)議驅(qū)動(dòng)。
5.根據(jù)權(quán)利要求1至4中任何一項(xiàng)所述的方法,其特征在于,所述方法包括在進(jìn)行查詢(xún)限速鏈表之前,初始化限速鏈表,具體包括創(chuàng)建多節(jié)點(diǎn)鏈表,將鏈表節(jié)點(diǎn)的流量控制速率值置零。
6.一種ARP流量控制系統(tǒng),其特征在于,該系統(tǒng)包括規(guī)則創(chuàng)建單元、速率寫(xiě)入單元、間隔次數(shù)獲取單元、節(jié)點(diǎn)查找單元、求和單元和比較單元,其中所述規(guī)則創(chuàng)建單元,用于在設(shè)備器枚舉完成后創(chuàng)建與設(shè)備器對(duì)應(yīng)的限速規(guī)則,所述限速規(guī)則包含預(yù)設(shè)流量控制速率;所述速率寫(xiě)入單元,用于在從與設(shè)備器對(duì)應(yīng)的限速鏈表中查詢(xún)到空閑節(jié)點(diǎn)后,將所述限速規(guī)則包含的流量控制速率寫(xiě)入該空閑節(jié)點(diǎn),所述限速鏈表包含有多個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)用于記錄流量控制速率;所述間隔次數(shù)獲取單元,用于獲取處理ARP數(shù)據(jù)包的處理時(shí)間間隔,用該處理時(shí)間間隔除以ARP數(shù)據(jù)包長(zhǎng)度得到數(shù)據(jù)處理間隔次數(shù)M ;所述節(jié)點(diǎn)查找單元,用于從當(dāng)前節(jié)點(diǎn)開(kāi)始順序查找N個(gè)非空閑節(jié)點(diǎn),所述N與M的數(shù)值相等;所述求和單元,用于將查找到的N個(gè)非空閑節(jié)點(diǎn)對(duì)應(yīng)的流量控制速率進(jìn)行求和運(yùn)算; 所述比較單元,用于將求和運(yùn)算的結(jié)果與預(yù)設(shè)最大流量控制速率進(jìn)行比較,如果大于預(yù)設(shè)最大流量控制速率,則丟棄當(dāng)前ARP數(shù)據(jù)包。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述空閑節(jié)點(diǎn)為未寫(xiě)入預(yù)設(shè)流量控制速率的節(jié)點(diǎn),所述非空閑節(jié)點(diǎn)為已寫(xiě)入預(yù)設(shè)流量控制速率的節(jié)點(diǎn)。
8.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述限速鏈表包含的節(jié)點(diǎn)數(shù)范圍為60至 90個(gè)。
9.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述系統(tǒng)包括驅(qū)動(dòng)確定單元,用于通過(guò)目標(biāo)字符串協(xié)商機(jī)制確定ARP NDIS協(xié)議驅(qū)動(dòng)。
10.根據(jù)權(quán)利要求6至9中任何一項(xiàng)所述的系統(tǒng),其特征在于,所述系統(tǒng)包括初始化單元,用于在進(jìn)行查詢(xún)限速鏈表之前,初始化限速鏈表,具體包括創(chuàng)建多節(jié)點(diǎn)鏈表,將鏈表節(jié)點(diǎn)的流量控制速率值置零。
全文摘要
本發(fā)明實(shí)施例提供了一種ARP流量控制方法。該方法包括在設(shè)備器枚舉完成后創(chuàng)建與設(shè)備器對(duì)應(yīng)的包含預(yù)設(shè)流量控制速率限速規(guī)則;查詢(xún)限速鏈表的空閑節(jié)點(diǎn),將所述限速規(guī)則包含的流量控制速率寫(xiě)入該空閑節(jié)點(diǎn);獲取處理數(shù)據(jù)包的處理時(shí)間間隔后用其除以ARP數(shù)據(jù)包長(zhǎng)度得到數(shù)據(jù)處理間隔次數(shù)M;從當(dāng)前節(jié)點(diǎn)開(kāi)始順序查找與M相等的N個(gè)非空閑節(jié)點(diǎn);將N個(gè)非空閑節(jié)點(diǎn)對(duì)應(yīng)的流量控制速率進(jìn)行求和,將求和結(jié)果與預(yù)設(shè)最大流量控制速率進(jìn)行比較,如果大于預(yù)設(shè)最大流量控制速率,則丟棄當(dāng)前ARP數(shù)據(jù)包。本發(fā)明實(shí)施例還提供了一種ARP流量控制系統(tǒng)。本發(fā)明實(shí)施例技術(shù)方案實(shí)現(xiàn)了對(duì)ARP流量的有效控制。
文檔編號(hào)H04L29/06GK102523224SQ20111043321
公開(kāi)日2012年6月27日 申請(qǐng)日期2011年12月21日 優(yōu)先權(quán)日2011年12月21日
發(fā)明者葉技, 朱振洪, 潘勁松, 陳伯軍, 陳國(guó)軍, 黃永欽 申請(qǐng)人:余姚市供電局