王建國 劉艷艷 劉海燕



摘 要: 網絡風暴沖擊下的網絡結構存在較高的差異性,并且外部環境存在較高的波動性,使得傳統采用異構網絡協作的網絡流量調控方法存在控制效率低和失衡的問題。因此,設計基于 Linux 防火墻的嵌入式網絡流量控制系統,其是基于Linux內核Netfilter 框架的流量控制系統。系統將μClinux當成操作系統的嵌入式系統,其塑造在Netfilter 防火墻框架上,由內核功能模塊、虛擬部件以及用戶配置工具構成。內核功能模塊在Netfilter框架的鉤子掛載點處注冊處理函數,完成網絡數據包的控制,實現網絡流量的調控。虛擬部件實現內核空間同用戶空間配置數據的傳遞,確保用戶采用配置工具對流量調控系統的行為進行管理。用戶通過用戶配置工具將待控制的主機/子網信息反饋到流量調控系統中。實驗結果表明,所設計系統可實現網絡風暴沖擊下的網絡流量的平穩控制,并且具有較高的控制效率和魯棒性。
關鍵詞: 網絡風暴; 網絡流量; Netfilter; μClinux
中圖分類號: TN711?34; TP393 文獻標識碼: A 文章編號: 1004?373X(2017)06?0075?04
Abstract: Under the impact of network storm, the differences of network structure is higher, and the external environment has higher volatility, which make the traditional network traffic control method with heterogeneous network collaboration exist the problems of low control efficiency and imbalance. Therefore, an embedded network traffic control system based on Linux firewall was designed. It is based on the fluid flow control system with the Linux kernel Netfilter framework, takes μClinux as the embedded system of operating system, and is shaped on the firewall Netfilter framework, which is composed of kernel function module, virtual components and user configuration tool. The kernel function module registers handler function at the hook hardpoints of Netfilter framework to complete the control to the network packet and achieve network traffic control. The virtual components are used to realize the user space configuration data transmission in the kernel space to ensure that the user manages the behavior of the fluid flow control system and feeds the host/subnet information under control back to the fluid flow control system by his configuration tool. The experimental results indicate that the designed system can realize smooth control of network traffic flow under the impact of network storm, and has high control efficiency and robustness.
Keywords: network storm; network flow; Netfilter; μClinux
0 引 言
隨著無線通信技術的快速發展,移動數據流量的增長速度也不斷提升,使得移動蜂窩網絡存在流量過載的問題,網絡更容易受到網絡風暴的入侵干擾。網絡風暴沖擊下的網絡流量存在失衡問題,導致網絡數據通信質量大大降低,對人們的生產和生活造成了嚴重干擾。因此,尋求有效的方法對網絡風暴沖擊下的流量進行有效監測和分流調控,成為相關人員分析的熱點問題[1?3]。網絡風暴沖擊下的網絡結構存在較高的差異性,并且外部環境存在較高的波動性,使得傳統采用異構網絡協作的網絡流量調控方法,存在控制效率低和失衡的問題[4?6]。
文獻[7]采用OpenRadio無線網絡架構實現網絡流量的有效控制,其將無線節點軟件化,可控制總體網絡流量,但是不能對網絡中物理層和資源層流量進行局部調控,存在一定的局限性。文獻[8]通過D2D方法完成網絡流量控制,在D2D通信網絡中融入新的無線負載部件,通過該部件對網絡流量進行控制,該方法降低了關鍵網絡的數據流量負載,但是存在全局流量控制效率低的缺陷。針對上述分析問題,設計基于 Linux 防火墻的嵌入式網絡流量控制系統。
1 基于Linux防火墻的嵌入式網絡流量控制系統
設計的基于Linux防火墻的嵌入式網絡流量控制系統,即rlimit,是一個基于Linux內核Netfilter 框架的流量控制系統,其將總體流量控制系統嵌入到一個嵌入式硬件平臺,形成一個高度集成的流量控制平臺,用于抵御網絡風暴的強烈沖擊。流量調控系統是將μClinux當成操作系統的嵌入式系統,其塑造在Netfilter 防火墻框架上,在Netfilter的鉤子掛載點位置注冊鉤子函數,進而調控網絡數據包,完成網絡流量的控制。該控制系統塑造在Netfilter框架上,可直接作用于IP層,增強數據包的傳遞效率,并且同防火墻緊密聯系,增強了網絡的安全性,抑制網絡風暴沖擊的不利干擾。
1.1 系統總體設計
網絡風暴沖擊下的流量控制系統實現流量控制過程中,需要分析網絡風暴沖擊下進出系統所處主機的數據包流量。系統應采集網絡設備的數據包,并對數據包進行分析和處理。Netfilter是塑造在IP層的框架,能夠從IP層直接采集數據包,同時注冊鉤子函數處理數據包。用戶設計的鉤子函數能夠掛入IP層,進而實現數據包的高效采集和處理。系統的流量控制模塊使用擴展 Netfilter 的方法,能夠確保系統即可對數據包進行采集處理,還能夠提供安全保護,抵御網絡風暴的沖擊,系統的鉤子掛載點示意圖如圖1所示。
當數據包通過網絡接口設備輸入和輸出前,先被系統采集,再按照設置的速率進行流量控制。如果數據包的速率高于設置值,則系統會對其進行滯后處理,確保其速率滿足設置值,再命令Linux網絡子系統完成后續的處理。網絡流量控制的過程是控制流入主機和離開主機的數據包速率。Netfilter 框 架 內全部輸入和離開主機的網絡數據包,都要通過MU_IP_HEW_BUSEH和MU_IP_KIMC_BUSEH。因而,可在該兩個鉤子掛載點注冊處理函數,該過程如圖2所示。
明確鉤子函數掛載點后,應按照功能需求和接口標志設置鉤子函數。系統中設置了主機鏈表,對網關管理的主機速率進行管理,其中的主機主要是網關上的全部計算機。主機鏈表上的各節點可反映同主機IP、速率等相關信息的數據結構。向各主機設置發送隊列和接收隊列,分別管理主機的上行速率和下行速率。若源地址是主機IP的數據包,系統采集數據包后,分析數據包是否滿足發送速率規范,若滿足,則將數據包反饋給IP層的協議,再執行相關的處理;否則,將數據存放到發送隊列中,并設置定時器,設置數據包的發送時間。主機的接收隊列處理過程同發送隊列相同。用戶向系統輸入控制參數,系統需要向用戶提供工具,確保用戶輸入的控制信息可反饋給系統。因此,將總體劃分成內核空間和用戶空間命令行工具,分別用于實現關鍵功能和配置待調控的IP地址和速率等參數。系統設置虛擬部件,將用戶的配置信息反饋到內核空間,進而管理總體系統的行為。用戶能夠直接操作虛擬部件,將控制參數信息通過虛擬部件反饋到系統的用戶空間。系統內核空間代碼可讀取虛擬部件中的信息,進而對流量控制模塊的行為進行管理。最終使得虛擬部件在系統內核空間和用戶空間實現信息的共享,二者間的關系如圖3所示。
1.2 系統的編碼實現
網絡風暴沖擊下的流量調控平臺包括內核空間模塊、虛擬部件以及用戶空間程序。內核空間模塊完成流量調控系統的關鍵功能,虛擬部件實現用戶配置信息同內核空間模塊間信息的交流;用戶空間程序對系統信息配置,對虛擬部件的行為進行管理。將內核空間程序編寫成Linux內核能夠卸載的模塊,通過sonine命令能夠向Linux內核融入流量調控系統功能模塊。
1.2.1 內核模塊的實現
內核模塊可實現兩個鉤子函數,采用Netfilter框架中的MU_line_ing結構分別將其掛載在 MU_IP_HEW_
BUSEH以及 MU_IP_KIMC_BUSEH 掛載點處。若sonine 將內核可卸載模塊融入內核,則調用 init_kores 函數,并且在該函數內調用 MU_congeum_line 函數,確保在內核中融入MU_line_ing 結構,最終完成鉤子函數的掛載。系統用于注冊 MU_IP_HEW_BUSEH 處鉤子函數的MU_line_ing 結構變量為rx_line_ing,其代碼為:
prome MU_line_ing rx_line_ing={
line: rx_line,
Pf: PF_INET,
linenum: MU_IP_HEW_BUSEH,}
若網絡數據包通過網絡接口部件輸入系統,并且傳遞到MU_IP_HEW_BUSEH 鉤子時,調用rx_line 函數。該函數按照用戶設置的帶寬,調控數據包,如果數據包處于設置的帶寬約束內,則將數據包反饋給網絡協議棧,繼續進行操作;否則,將數據包存儲到接收隊列中進行等待,并設置接收隊列的定時器。當定時器到達設置的時間,則運行發送函數,從等待隊列中采集數據包,具體的實現過程圖如圖4所示。
1.2.2 虛擬部件的實現
用戶通過虛擬部件同流量調控系統內核模塊進行信息交流,進而控制流量調控系統的行為。系統中的虛擬部件主要是虛擬網絡部件。虛擬網絡設備可實現一些網絡接口,確保其采用相關的物理網絡設備,完成數據包的發送。Linux系統通過congeum_qlomu 函數,將net_modle結構變量注冊入內核,完成網絡部件的添加。net_modle結構中包含較多的成員變量,但是虛擬網絡部件,僅需要其中的設備名稱name,函數指針init和do_ioctl三個變量。其中,init和do_ioctl指向的函數,分別用于實現虛擬部件的初始化和設置。虛擬部件的 net_modle 結構變量定義為:
prome net_modle rlimit_dev={
Name: "rlimit",
init:rlimit_init_dev,}
流量調控系統通過虛擬部件確保內核模塊以及用戶空間進行程序交互,傳輸用戶配置信息,完成系統行為的控制,進而實現網絡流量的合理調控。對待交互的配置信息進行封裝處理,構成結構體rlimit_ctliMUo,能夠給增強用戶空間程序同內核模塊進行信息溝通的效率。rlimit_ctliMUo 結構類型的定義為:
prome rlimit_ctlinfo{
_s54ip; /*主機/子網*/
_s54 mask; /*子網掩碼*/
_s12 portmin; /*主機/子網的最小端口號*/
_s12 portmax; /*主機/子網的最大端口號*/
int bytes_per_second; /*約束的傳輸速率*/
Int timeout; /*隊列的最高延遲時間*/
}
1.2.3 用戶配置工具的實現
用戶空間配置工具對流量調控系統內核模塊進行配置,進而控制系統的行為。用戶空間配置工具是一種用戶空間程序,其調用ioctl函數處理虛擬部件,實現系統內核模塊的信息交流。如果采用用戶配置工具向系統融入被控主機,則用戶空間程序會將該主機信息塑造成 rlimit_ctliMUo 結構,并調用ioctl函數,通過do_ioctl指針指向的函數,將rlimit_ctliMUo結構中包含的信息反饋到內核空間,并按照該信息在do_ioctl函數內對系統內核模塊進行配置。
2 實驗分析
為了驗證本文方法的有效性,進行相關的實驗分析如下:
2.1 高速傳輸性能對比
實驗檢測在網絡風暴沖擊下限速值較高的情況下,本文方法和貪婪選擇方法對單個TCP流進行流量調控的穩定性,分別如圖5和圖6所示。
對比分析圖5、圖6可以看出,在網絡風暴沖擊下,本文方法對單個TCP流的調控效果優于貪婪選擇方法,調整后的網絡數據包傳輸速率曲線較為平滑。
2.2 速率調整平滑性測試
實驗檢測在網絡風暴沖擊下的限速過程中,網絡數據包傳輸速率上升和下降時,本文方法和貪婪選擇方法調整網絡數據包傳輸速率時的調控效果見圖7、圖8。
分析圖7、圖8能夠看出,相比貪婪選擇方法,本文方法能夠很好地完成網絡數據包傳輸速率的平滑調控,在網絡風暴沖擊的不利干擾下,能夠克服網絡數據包速率大幅波動,對網絡數據包傳輸速率進行平穩調控。
2.3 并發TCP流控制效果對比
實驗采用網絡性能檢測軟件IxChariot檢測本文方法和貪婪選擇方法,在網絡風暴沖擊下的多個并發流下的吞吐量以及響應時間,結果分別如圖9和圖10所示。
對比分析圖9和圖10能夠看出,在網絡風暴沖擊下,對網絡中多個并行TCP流進行調控過程中,本文方法的吞吐量和響應時間都優于貪婪選擇方法,控制效果較為平穩。
2.4 UDP流調控效果對比
實驗采用jHEWf 2.0軟件檢測本文方法和貪婪選擇方法,對網絡風暴沖擊下的UDP流進行控制的控制效果。jHEWf 2.0軟件可通過制定的速率發送UDP報文,同時測量網絡的吞吐量和抖動,設置UDP流的限速為1 500 Kb/s,實驗結果如表1所示。
分析表1可得,當UDP流的發送速率低于限速時,兩種方法對UDP流的速率進行調控控制過程中的傳輸總量、平均帶寬以及抖動較為接近;而當UDP流的發送速率高于限速時,本文方法在調控UDP流的發送速率過程中,傳輸總量和平均帶寬都高于貪婪選擇方法,并且本文方法的抖動低于貪婪選擇方法,說明本文方法的調控過程更為穩定。
3 結 論
本文基于 Linux 防火墻的嵌入式網絡流量控制系統,其是基于Linux內核Netfilter 框架的流量控制系統。實驗結果表明,所設計系統可實現網絡風暴沖擊下的網絡流量的平穩控制,并且具有較高的控制效率和魯棒性。
參考文獻
[1] 張雙雙,王延年.節點分布不均勻的無線傳感網絡低功耗算法[J].西安工程大學學報,2015,29(6):720?723.
[2] 周旭峰,楊貴,袁志彬,等.交換機流量限制技術及其在智能變電站的應用[J].電力系統自動化,2014,38(18):114?119.
[3] 鄧榮.基于包絡特征的網絡流量預測閾值調控算法[J].科技通報,2015,31(10):67?69.
[4] 劉曉婧,張進明,穆志君,等.中壓天然氣流量計實流標定的氣溫調控研究[J].科技資訊,2014,12(6):107?108.
[5] 王家琪,呂宏興,周美林,等.過流調控型渠道測流裝置試驗研究[J].灌溉排水學報,2015,34(9):24?27.
[6] 袁敏潔,徐梓曜,江恩慧,等.有效流量研究及應用現狀[J].人民黃河,2015,37(6):32?35.
[7] 米子軍.礦山排土場穩定性主動調控機制研究[J].金屬礦山,2014,32(9):1?6.
[8] 劉佳明,張艷軍,宋星原,等.江湖連通方案的最佳引水流量研究:以湖北磁湖為例[J].湖泊科學,2014,26(5):671?681.