張藝耀
(棗莊科技職業學院 山東省滕州市 277599)
隨著網絡技術的飛速發展,網絡上的業務流量不斷增長,用戶對網絡服務質量(QoS,Quality of Service)的要求也越來越高。而傳統的計算機網絡是為進行非實時的數據傳輸而設計的,它提供的是一種“盡力而為”的服務,難以滿足現階段網絡傳輸業務對服務質量的新要求。流量控制技術的產生主要為了滿足網絡QoS 的需求, Linux 作為一個開源的、應用廣泛的操作系統,很早就提供了對QoS 的支持,經過多年的不斷發展與完善,已經相當的成熟。TC 是Linux 平臺下進行流量管理的一個開源工具,它包含大量的隊列管理算法,可以用來實現復雜的流量控制。
圖1 表示了在Linux 內核中進行流量控制的流程圖。數據流就像左面的箭頭所表示的那樣,經過網卡進入內核。首先經過的是入口隊列,根據隊列規則有部分數據包可能被過濾器丟棄,判斷一個數據包是否丟棄的方法叫做策略。在數據包被內核進行進一步的處理之前先經策略處理,丟掉無需內核處理的數據包,這樣可以有效的節省CPU 時間。當數據包順利地通過了策略,如果數據包地目的主機就是發本機,它就會先進入IP 協議棧進行相應的處理,然后提交給目的進程;如果該數據包地目的主機不是本機就需要進行進一步的轉發,直接把該數據包發往出口隊列。

圖1:Linux 內核中流量管理流程圖
流量控制系統主要是利用Linux 內核的網絡模塊,通過隊列規則來分類、引導、調整數據流的發送順序,優先發送優先級較高的網絡流量,延遲發送優先級較低的網絡流量,即使當網絡發生擁塞時也能夠保證用戶的最低帶寬,不會影響業務的正常通信;……