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