一種基于ip保護的數(shù)據(jù)訪問方法
【技術領域】
[0001]本發(fā)明涉及服務器應對客戶端數(shù)據(jù)訪問的一種方式,具體說是適用于嵌入式應用的一種基于IP保護的數(shù)據(jù)訪問方法,屬于數(shù)據(jù)通信技術領域。
【背景技術】
[0002]當嵌入式設備提供服務器應用時,由于嵌入式設備的CPU負載能力有限,因此也限制了其可用于客戶端訪問的資源。隨著連接到嵌入式設備的客戶端越來越多,這種嵌入式設備的CPU的反應速度會出現(xiàn)明顯下降,響應客戶端的請求也越來越慢。如果更換新的CPU,就會增加硬件成本,并且對已經(jīng)投入生產(chǎn)使用的設備再更換CPU也是不現(xiàn)實的,因此這種嵌入式設備在應用過程中就常常會出現(xiàn)由于客戶端訪問連接過多,導致嵌入式設備的CPU反應過慢,客戶體驗不好的問題。同時,如果存在惡意的客戶端在不停地發(fā)送IP數(shù)據(jù)包來探測嵌入式設備的信息,那么由于嵌入式設備需要處理的數(shù)據(jù)包過多,也會大量的占用CPU運行時間,會導致其他的任務不能更新信息,設備告警、功率信息等得不到實時的更新,這樣也會導致客戶體驗不好。
【發(fā)明內(nèi)容】
[0003]針對現(xiàn)有的嵌入式設備在提供服務器應用時對所有的數(shù)據(jù)包都進行處理的弊端,本發(fā)明提供一種基于IP保護的數(shù)據(jù)訪問方法,包括:
[0004]步驟⑴:接收來自客戶端的IP數(shù)據(jù)包;
[0005]步驟(2):判斷該數(shù)據(jù)包對應的IP是否存在于查找表中,如果該數(shù)據(jù)包對應的IP不存在于查找表中則進入步驟(3),如果存在于查找表中則進一步判斷該數(shù)據(jù)包對應的IP的狀態(tài)是否處于鎖定狀態(tài),如果該數(shù)據(jù)包對應的IP處于鎖定狀態(tài),并且當前時間與該IP的被鎖定時間之間的差值小于冷卻時間,則丟棄該數(shù)據(jù)包并返回步驟(I),否則進入步驟
(3);
[0006]步驟(3):檢測該數(shù)據(jù)包指定字節(jié)集合的內(nèi)容;如果該內(nèi)容與預先指定的字節(jié)集合內(nèi)容相匹配,則將該數(shù)據(jù)包對應的IP更新到查找表中,并將該IP的狀態(tài)置為未鎖定狀態(tài)以及將不一致字段計數(shù)器清零;如果該內(nèi)容與預先指定的字節(jié)集合內(nèi)容不匹配,則丟棄該數(shù)據(jù)包,將該數(shù)據(jù)包對應的IP更新到查找表中,并將該IP的狀態(tài)置為待鎖定狀態(tài)以及將不一致字段計數(shù)器加一;
[0007]步驟(4):判斷該數(shù)據(jù)包對應的IP所對應的不一致字段計數(shù)器是否達到指定的閾值,如果達到指定的閾值則將查找表中該IP的狀態(tài)置為鎖定狀態(tài),并將該IP的被鎖定時間置為當前時間;
[0008]重復執(zhí)行上述步驟(I)至步驟(4)。
[0009]在上述技術方案中,所述步驟(2)中如果該數(shù)據(jù)包對應的IP被鎖定,則在丟棄該數(shù)據(jù)包之后作出指示。
[0010]在上述技術方案中,所述指示包括時間信息,所述時間信息指示剩余的冷卻時間,剩余的冷卻時間為冷卻時間減去當前時間與該IP的被鎖定時間之間的差值。
[0011]在上述技術方案中,所述步驟(3)將該數(shù)據(jù)包對應的IP更新到查找表中時,如果該數(shù)據(jù)包對應的IP不存在于查找表中,則在查找表中增加與該數(shù)據(jù)包對應的IP相對應的記錄,否則在查找表中更新與該數(shù)據(jù)包對應的IP相對應的記錄。
[0012]在上述技術方案中,所述與該數(shù)據(jù)包對應的IP相對應的記錄至少包括與該IP相關的地址信息字段、是否鎖定狀態(tài)信息字段、不一致字段計數(shù)器信息字段、被鎖定時間信息字段。
[0013]在上述技術方案中,所述與該數(shù)據(jù)包對應的IP相對應的記錄進一步包括與該IP相關的指定字節(jié)集合信息字段、預先指定的字節(jié)集合內(nèi)容信息字段、冷卻時間信息字段、不一致字段計數(shù)器閾值信息字段中的一項或多項。
[0014]本發(fā)明還提供一種基于IP保護的數(shù)據(jù)訪問方法,包括步驟:檢查收到的網(wǎng)絡數(shù)據(jù)包中指定字段內(nèi)容是否符合預期,累計該指定字段內(nèi)容不符合預期的次數(shù),當該次數(shù)超過預設閾值時,鎖定發(fā)送該網(wǎng)絡數(shù)據(jù)包的IP,并在一指定時間內(nèi)不再處理來自該IP的網(wǎng)絡數(shù)據(jù)包。
[0015]在上述技術方案中,進一步包括步驟:當該指定時間屆滿,并且該IP發(fā)送了指定字段內(nèi)容符合預期的網(wǎng)絡數(shù)據(jù)包,則解除對該IP的鎖定。
[0016]本發(fā)明取得了以下技術效果:
[0017]1、通過對指定字節(jié)判斷不一致到達閾值的IP進行鎖定,在大量數(shù)據(jù)包訪問設備的情況下,丟棄該IP的訪問請求,可以減輕設備數(shù)據(jù)訪問的壓力,除了限制該IP的訪問請求外,其他功能都能正常運行;
[0018]2、使用本方法,可以防止惡意的客戶端發(fā)送一些試探包來獲取服務器的相關信息,并且可以降低所承受的基于IP的攻擊速度;
[0019]3、本方法并不是一直阻止該IP的訪問,而是到達指定時間后,指定字節(jié)判斷為一致,則可以允許該IP的訪問。
【附圖說明】
[0020]圖1為本發(fā)明基本原理的流程圖;
[0021]圖2為本發(fā)明提供的基于IP保護的訪問方法的IP鎖定典型處理流程圖;
[0022]圖3為本發(fā)明提供的基于IP保護的訪問方法的IP解鎖典型處理流程圖。
【具體實施方式】
[0023]為了便于本領域普通技術人員理解和實施本發(fā)明,下面結合附圖及【具體實施方式】對本發(fā)明作進一步的詳細描述。
[0024]針對現(xiàn)有用作服務器端的嵌入式設備對所有的數(shù)據(jù)包都進行處理的弊端,本發(fā)明提供一種基于IP保護的數(shù)據(jù)訪問方法,該數(shù)據(jù)訪問方法的基本原理如圖1所示,首先,檢查從客戶端收到的網(wǎng)絡數(shù)據(jù)包中指定字段內(nèi)容不一致是否到達預設閾值,并得到一個判斷結果;然后,在判斷結果為超過預設閾值時,將發(fā)送該網(wǎng)絡數(shù)據(jù)包的IP鎖定。
[0025]這樣服務器端的嵌入式設備在對數(shù)據(jù)包處理之前,可以先判斷該數(shù)據(jù)包對應的客戶端IP是否被鎖定,如果鎖定,直接返回鎖定信息,而不進入下一步,從而有效減小CPU的開銷,同時也在一定程度上減慢了惡意的客戶端對嵌入式設備的攻擊;能夠充分利用CPU的資源,避免更換CPU所帶來的硬件成本增加的問題。
[0026]一種基于IP保護的訪問方法,其處理流程如圖2所示,包含以下幾個步驟:
[0027]第一步,收到客戶端的IP數(shù)據(jù)包;
[0028]第二步,由數(shù)據(jù)包IP管理模塊判斷該數(shù)據(jù)包對應的IP是否被鎖定;如果該數(shù)據(jù)包對應的IP被鎖定并且未到達鎖定時間,則提示客戶IP被鎖定,請在指定時間之后再訪問,同時丟棄數(shù)據(jù)包;如果該數(shù)據(jù)包對應的IP未被鎖定或者鎖定之后,達到鎖定時間,則進行下一步的判斷;
[0029]第三步,檢測該數(shù)據(jù)包指定的特殊字段的特定字節(jié),如果與程序中指定的字段的指定字節(jié)相一致,則將該IP保存,并且將該IP置為未鎖定狀態(tài),將不一致字段計數(shù)