一種網(wǎng)絡數(shù)據(jù)包處理動態(tài)負載均衡方法
【技術領域】
[0001] 本發(fā)明涉及一種數(shù)據(jù)包處理的負載均衡的方法,屬于網(wǎng)絡安全領域。
【背景技術】
[0002] 隨著網(wǎng)絡應用的發(fā)展,網(wǎng)絡安全受到人們越來越多的重視,網(wǎng)絡安全系統(tǒng)需要處 理的數(shù)據(jù)流量也越來越大,這樣就需要更多的服務器做并行的處理。負載均衡器匯總需要 處理的流量,并將這些流量均衡的分配到進行數(shù)據(jù)處理的服務器上。
[0003] 傳統(tǒng)的方式是采用hash映射的方式,利用一條鏈接或者一個流的特征,將這條鏈 接或者這個流映射到后端的數(shù)據(jù)處理服務器。這樣在大流量下就會造成后端服務器上處理 的流量不均衡,浪費整體的處理資源。而服務器對不同類型數(shù)據(jù)的處理消耗的計算資源是 不一樣的,即使分配到了相同的數(shù)據(jù)流量,也不能保證服務器上的CPU和內存消耗是相同 的。
[0004] 在實際的網(wǎng)絡內容分析中,內容分析也是各種各樣的,它們對CPU和內存的依賴 程度也不盡相同。因此需要一種有效的負載均衡策略保證對后端服務器資源的充分利用。
【發(fā)明內容】
[0005] 針對現(xiàn)有技術中存在的無法有效解決數(shù)據(jù)包分配不均的問題,本發(fā)明提出了一 種數(shù)據(jù)包處理動態(tài)負載均衡方法,該方法考慮了服務器之間通信成本,將每個服務器視作 一個合作者,將數(shù)據(jù)包作為負載單位,通過找到優(yōu)化的合作方式,獲得更好的數(shù)據(jù)包分配效 果,實現(xiàn)后端服務器資源的充分利用。
[0006] 本發(fā)明的技術方案為:
[0007] -種網(wǎng)絡數(shù)據(jù)包處理動態(tài)負載均衡方法,其步驟為:
[0008] 1)將網(wǎng)絡中的數(shù)據(jù)處理節(jié)點分為若干分區(qū),每個分區(qū)設置一分區(qū)均衡控制器;
[0009] 2)所述分區(qū)均衡控制器定期采集并更新所在分區(qū)中數(shù)據(jù)處理節(jié)點的狀態(tài),維護一 所在分區(qū)內所有數(shù)據(jù)處理節(jié)點的狀態(tài)信息表;
[0010] 3)主控制器向每個所述分區(qū)均衡控制器查詢當前分區(qū)的狀態(tài),更新分區(qū)狀態(tài)表, 并根據(jù)每個分區(qū)的狀態(tài)將數(shù)據(jù)包發(fā)送給狀態(tài)為空閑或者正常的分區(qū)進行處理;其中,當數(shù) 據(jù)包到達狀態(tài)為正常的分區(qū)時,根據(jù)公另
【主權項】
1. 一種網(wǎng)絡數(shù)據(jù)包處理動態(tài)負載均衡方法,其步驟為: 1) 將網(wǎng)絡中的數(shù)據(jù)處理節(jié)點分為若干分區(qū),每個分區(qū)設置一分區(qū)均衡控制器; 2) 所述分區(qū)均衡控制器定期采集并更新所在分區(qū)中數(shù)據(jù)處理節(jié)點的狀態(tài),維護一所在 分區(qū)內所有數(shù)據(jù)處理節(jié)點的狀態(tài)信息表; 3) 主控制器向每個所述分區(qū)均衡控制器查詢當前分區(qū)的狀態(tài),更新分區(qū)狀態(tài)表,并根 據(jù)每個分區(qū)的狀態(tài)將數(shù)據(jù)包發(fā)送給狀態(tài)為空閑或者正常的分區(qū)進行處理;其中,當數(shù)據(jù)包 到達狀態(tài)為正常的分區(qū)時,根據(jù)公式
確定該分區(qū)中每個數(shù)據(jù)處理 節(jié)點可分配的數(shù)據(jù)包;其中,n為該分區(qū)中的數(shù)據(jù)處理節(jié)點總數(shù),0i為分配給數(shù)據(jù)處理節(jié) 點i的數(shù)據(jù)包數(shù)量,A為該網(wǎng)絡中所有節(jié)點之間傳輸?shù)娜繑?shù)據(jù)包數(shù)量,DjPi)為節(jié)點 i處理@滿時間,GU)為該網(wǎng)絡中所有節(jié)點之間傳輸全部數(shù)據(jù)包數(shù)量的通信時間;X= [3 3n,入]T。
2. 如權利要求1所述的方法,其特征在于,根據(jù)公式
確定該分 區(qū)中每個數(shù)據(jù)處理節(jié)點可分配的數(shù)據(jù)包的方法為: 21) 初始化迭代初始值:0i= i;ieN;i= 1,…,n; 22) 對處理時間進行排序,求得
,如 果滿足Dk(cK)+G(〇) >Dn((K),則返回當前I,否則進行步驟23); 23) 使用二分查找法查找a,初始化a =Di( $D,b=Dn( (K); 24) 賦值
并計算S(a),Xs(a),Rd(a),Ra(a),XK(a); 25) 判斷是否滿足|Xs(a)-XK(a) | <e,如果是,則進入步驟27);否則進入步驟 26) ;e為一設定閾值; 26) 判斷是否滿足入s(a) >入R(a),如果是,則b-a;否則a-a,然后返回到步 驟 24); 27) 計算分配給各個節(jié)點的數(shù)據(jù)包數(shù)量: 1= 0,對于所有ieRd(a) ^ = 9V+G(2)),對于所有iGRa(a) 爲=對于所有iGS(a) 1=小i,對于所有ieN(a) 其中,函數(shù)ZV1%)表示處理數(shù)據(jù)包時間的逆:
,Ui為數(shù)據(jù)處理節(jié)點i單位時間內能夠處理的數(shù)據(jù)包數(shù)量,小 單位時間內到達數(shù)據(jù)處理節(jié)點i數(shù)據(jù)包數(shù)量,G(A)為該網(wǎng)絡中所有節(jié)點之間傳輸全部數(shù) 據(jù)包數(shù)量的通信時間;該分區(qū)包括: S類型節(jié)點:接受從其他節(jié)點傳來的數(shù)據(jù)包,但是從不向外發(fā)送數(shù)據(jù)包;S類型節(jié)點集 合為s(a);進入S類型節(jié)點的數(shù)據(jù)包的數(shù)量為As(d); Rd類型節(jié)點:不接受其他節(jié)點的數(shù)據(jù)包,同時將自己的數(shù)據(jù)包全部發(fā)送給其他節(jié)點,Rd 類型節(jié)點集合為RdU); 艮類型節(jié)點:不接受其他節(jié)點的數(shù)據(jù)包,處理一部分自己的數(shù)據(jù)包,將剩下的數(shù)據(jù)包發(fā) 送至其他節(jié)點,Ra類型節(jié)點集合為Ra (a),從Rd類型節(jié)點和Ra類型節(jié)點發(fā)出的數(shù)據(jù)包的數(shù) 量為入R; N類型節(jié)點:不發(fā)送自己的數(shù)據(jù)包也不接受其他節(jié)點發(fā)來的數(shù)據(jù)包,N類型節(jié)點集合為N(a) ;a為拉格朗日算子。
3. 如權利要求2所述的方法,其特征在于,所述步驟27)計算分配給各個節(jié)點的數(shù) 據(jù)包數(shù)量時,滿足屯(6 )彡a+G〇),Pi= 〇(iGRd),DJP) =a+G〇 ),〇 <h < 小i(iGRa),a+G(入)彡Di( ^ 彡a,運i=小 土(iGN)為(3 ) =a,運p小i(iGS),
識為單位時間內到達該網(wǎng)絡的數(shù)據(jù)包總數(shù)。
4. 如權利要求1或2或3所述的方法,其特征在于,當數(shù)據(jù)包到達狀態(tài)為空閑的分區(qū) 時,首先根據(jù)根分區(qū)各個數(shù)據(jù)處理節(jié)點的負載度,從低到高建立一個循環(huán)隊列;然后從低到 高遍歷該循環(huán)隊列,將該數(shù)據(jù)包分配給負載度最低的數(shù)據(jù)處理節(jié)點。
5. 如權利要求1或2或3所述的方法,其特征在于,當一個數(shù)據(jù)包到達數(shù)據(jù)處理節(jié)點 i時,該數(shù)據(jù)包要么在節(jié)點i被處理,要么通過該網(wǎng)絡發(fā)送到數(shù)據(jù)處理節(jié)點j處理,且節(jié)點j 不能再次轉發(fā)該數(shù)據(jù)包。
6. 如權利要求1所述的方法,其特征在于,所述分區(qū)狀態(tài)包括空閑、正常和過載。
7. 如權利要求1所述的方法,其特征在于,所述分區(qū)均衡控制器檢測到某數(shù)據(jù)處理節(jié) 點處于宕機或者出現(xiàn)故障時,將不再為其發(fā)送數(shù)據(jù)包。
【專利摘要】本發(fā)明公開了一種網(wǎng)絡數(shù)據(jù)包處理動態(tài)負載均衡方法。本方法為:1)將網(wǎng)絡中的數(shù)據(jù)處理節(jié)點分為若干分區(qū),每個分區(qū)設置一分區(qū)均衡控制器;2)所述分區(qū)均衡控制器定期采集并更新所在分區(qū)中數(shù)據(jù)處理節(jié)點的狀態(tài),維護一所在分區(qū)內所有數(shù)據(jù)處理節(jié)點的狀態(tài)信息表;3)主控制器向每個所述分區(qū)均衡控制器查詢當前分區(qū)的狀態(tài),更新分區(qū)狀態(tài)表,并根據(jù)每個分區(qū)的狀態(tài)將數(shù)據(jù)包發(fā)送給狀態(tài)為空閑或者正常的分區(qū)進行處理;其中,當數(shù)據(jù)包到達狀態(tài)為正常的分區(qū)時,根據(jù)公式確定該分區(qū)中每個數(shù)據(jù)處理節(jié)點可分配的數(shù)據(jù)包;本發(fā)明可以在大量數(shù)據(jù)包未被處理時就對其做出整體的分配,無需等到數(shù)據(jù)包處理過程中觀察系統(tǒng)狀態(tài)再做出調整。
【IPC分類】H04L12-803, H04L29-08
【公開號】CN104580001
【申請?zhí)枴緾N201410849362
【發(fā)明人】張鵬, 丁嘉寧, 劉慶云, 楊嶸, 鄭超, 孫永
【申請人】中國科學院信息工程研究所
【公開日】2015年4月29日
【申請日】2014年12月29日