[發明專利]一種netfilter框架下連接跟蹤的優化方法有效
| 申請號: | 201310141745.5 | 申請日: | 2013-04-23 |
| 公開(公告)號: | CN103259880A | 公開(公告)日: | 2013-08-21 |
| 發明(設計)人: | 周明明 | 申請(專利權)人: | 深圳市共進電子股份有限公司 |
| 主分類號: | H04L29/12 | 分類號: | H04L29/12 |
| 代理公司: | 深圳市凱達知識產權事務所 44256 | 代理人: | 王琦 |
| 地址: | 518067 廣東省深圳市南山區南海*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 netfilter 框架 連接 跟蹤 優化 方法 | ||
技術領域
本發明涉及網絡通信技術領域,特別是涉及一種netfilter框架下連接跟蹤的優化方法。
背景技術
目前國內多數網絡CPE(用戶終端設備)的代碼架構都是基于Linux,而netfilter也是與其標配的網絡核心處理層。但是隨著當前用戶對網絡的速度與質量要求的提高,netfilter本身代碼開始顯現問題,針對連接跟蹤方面,主要表現為:
1)多用戶BT下載時,用戶無法正常上網;
2)多用戶BT下載時,用戶使用語音視頻等業務質量明顯下降或斷開;
3)多用戶BT下載時,用戶或局方無法正常通過網絡方式管理CPE;
4)網絡CPE開發用戶在netfilter架構下比較難處理大量發起新連接的異常問題。
連接跟蹤用來跟蹤和記錄連接狀態,是netfilter的一部分,也是通過在hook點(回調點)上注冊相應的結構來工作的。
無論是發送、接收還是轉發的數據包,都要經過兩個conntrack(連接跟蹤)點:
1)NF_IP_PRI_CONNTRACK(申請連接跟蹤)
NF_IP_PRI_CONNTRACK?conntrack點的優先級是最高的,所有數據包進入netfilter后都會首先被它處理,其作用是創建ip_conntrack結構;
2)NF_IP_PRI_CONNTRACK_CONFIRM(確認連接跟蹤)
NF_IP_PRI_CONNTRACK_CONFIRM?conntrack點的優先級最低,總是在數據包離開netfilter之前做最后的處理,它的作用之一是將該數據包的連接跟蹤結構添加到系統的連接跟蹤鏈表中。
具體地,當前連接跟蹤方式主要存在以下兩方面的問題:
(一)nf_conntrack_count(當前連接跟蹤數)的統計方式
nf_conntrack_count?在?alloc(申請)連接跟蹤時添加,這將會減少有效連接跟蹤的數量。如圖1所示,因為有些已經申請了連接跟蹤的數據包最后會被netfilter在處理流程中丟棄或遺忘,這將導致有效的連接跟蹤數要小于nf_conntrack_max(最大連接跟蹤數)限制,這也是為什么多數人反饋說“nf_conntrack_count的值不為0,但在/proc/net/nf_conntrack下看不到任何連接跟蹤”的原因。
(二)nf_conntrack_count超過nf_conntrack_max限制時的老化機制
nf_conntrack_count超過nf_conntrack_max限制時的老化機制采用內核標準的early_drop方式,即對非IPS_ASSURED_BIT狀態(即非確認狀態)下的連接跟蹤隨機選擇釋放,具體方法如圖2所示。這種隨機選擇釋放方式已經不適應當前BT下載越來越普遍的實際環境,尤其是多網合一的推進,主要表現為:①通過網絡管理網關的手段無法正常運行;②音頻視頻等實時流出現信號質量差、斷流的情況;③正常的上網無法回應,下載時速率好的資源沒有很好的保留。
發明內容
本發明的目的在于提供一種netfilter框架下連接跟蹤的優化方法,通過優化連接跟蹤數的統計方式,增大有效連接跟蹤的數量。
本發明的目的是通過以下技術方案實現的。
一種netfilter框架下連接跟蹤的優化方法,包括:
定義并初始化當前連接跟蹤數M、最大連接跟蹤數Mmax、當前已申請的連接跟蹤數N、最大申請的連接跟蹤數Nmax,Nmax>Mmax;
在新申請連接跟蹤時,將當前已申請的連接跟蹤數N的值加1,之后判斷是否M>Mmax,如果是,則從已確認的連接跟蹤中選擇連接跟蹤進行老化處理后為當前數據流創建新的連接跟蹤;如果否,則判斷是否N>Nmax,若是則不為當前數據流創建連接跟蹤并返回錯誤,若否則為當前數據流創建新的連接跟蹤并返回成功;
對于新申請的連接跟蹤,判斷其是否滿足確認條件,若滿足確認條件則將當前連接跟蹤數M的值加1,并將該確認的連接跟蹤加入已確認連接跟蹤鏈表,對已確認連接跟蹤鏈表中的連接跟蹤依次進行協議棧后繼處理。
上述方法中,在初始化階段還包括:預設需保留的連接跟蹤類型,并保留指定數量的空余連接跟蹤用以屬于需保留的連接跟蹤類型的連接跟蹤的創建;創建LRU鏈表,該LRU鏈表包含了滿足所述確認條件且不屬于需保留的連接跟蹤類型的連接跟蹤;
所述老化處理的步驟包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于深圳市共進電子股份有限公司,未經深圳市共進電子股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310141745.5/2.html,轉載請聲明來源鉆瓜專利網。





