2014.5.17---網絡流量整形與帶寬控制技術

1.流量整形:緩衝區和令牌桶。當報文的發送速度過快時,首先在緩衝區進行緩存,在令牌桶的控制下再均勻地發送這些被緩衝的報文。

2.帶寬控制是一種限制流量輸出速率的措施,帶寬控制的作用是控制某個數據源(主機或某類應用)的發送速率,當這類報文的發送速率超過預定指標時,將其丟棄。

3.流量整形與帶寬控制的主要區別在於,流量整形對流量監管中需要丟棄的報文進行緩存,通常是將他們放入緩衝區或隊列內。當令牌桶有足夠的令牌時,再均勻地向外發送這些被緩存的報文。流量整形與帶寬控制的另以區別是,整形可能會怎加延遲,而帶寬控制幾乎不引入額外的延遲,但會增加額外的丟包率。

4.就現有Internet體系結構而言,擁塞的發生是其固有的屬性。因爲在事先沒有任何商量和請求許可機制的資源共享網絡中,幾個IP分組同時到達路由器,並期望經過同一個輸出端口轉發的可能性是存在的,顯然,不是所有的分組都可以接受處理,必須有一個服務順序,中間節點上的緩存爲等候服務的分組提供了一定的保護,然而,如果次狀況具有一定的持續性,當緩存空間被耗盡時,路由器只有丟棄分組。表面上增大緩存空間可以防止由於擁塞引起的分組丟棄,但隨着緩存的增加,端到端的時延也相應增大,這是因爲分組的持續時間有限,超時分組同樣需要重傳,因此,過大的緩存空間有可能妨礙擁塞的恢復,有效分組白白浪費了網絡的可利用帶寬。

5.擁塞導致的直接結果是分組丟失率提高,端到端的時延加大,甚至有可能使整個系統發生崩潰。負載與吞吐量之間的關係:一般有三個階段,分別是擁塞避免,擁塞恢復,擁塞崩潰。擁塞避免結束時的負載稱爲膝點,擁塞恢復結束時的負載稱爲崖點。崖點之前負載和吞吐量都是線性的關係,之後就不是了,而是更加陡峭的曲線。

6.如何解決擁塞問題:1增加網絡資源2降低用戶需求:降低用戶需求主要有三種方式,拒絕服務,降低服務質量和調度。

7.常見的擁塞控制機制:鏈路容量規劃和網絡設計、連接接納控制、基於負載的動態路由、內容動態壓縮,端-端反饋、鏈路-鏈路反饋、緩存

8.當前廣泛部署的網絡流量控制系統主要由四個部分:流量分類,隊列管理,分組調度,流量整形。

   流量分類:按照不同的優先級或控制策略,將數據包注入到不同隊列。當前的流量分類技術主要分爲基於端口、會話、內容的識別方式。其經典算法包括Lakshman等提出的BV(BitVector)算法,Baboescu等提出的ABV(Aggregated Bit Vector)算法,以及Li Ji等提出的改進型ABV算法,AFBV算法。

   隊列管理通過控制隊列的平均深度來避免擁塞發生。對於主動隊列管理,常用的算法有:RED(Random Early Detection),WRED和ECN(Explicit Congestion Notification)算法。RED算法便於實現,被大多數路由器採用。

   分組調度控制不同類型的分組對鏈路帶寬的利用,使不同的數據流得到不同等級的服務。相關算法有基於靜態優先級的PQ(Priority Queuing)算法,FQ(Fair Queuing)算法、WFQ(Weight Fair Queuing)算法、針對輪詢的WRR(Weighted Roud  Robin)算法以及DWRR(Deficit Weighted Round Robin)算法等。

   流量整形使經過網絡瓶頸的數據包平緩的注入主幹網,減少數據包在邊緣網關排隊等待的時間,從而減少邊緣網關緩存的大小和數據包丟失率。流量整形主要採用兩種基本方法:漏桶算法和令牌桶算法,另外,Amit Aggarwal等提出的TCP Pacing、Karandikar等提出的TCR算法,以及Wei Huanyuan等提出的改進型TCR算法PostACK,都能實現網絡流量的整形。

9.

  • 典型流量整形與帶寬控制方法:TCP流量管理:1)TCP滑窗機制2)TCP窗口管理3)TCP重傳機制4)TCP自同步機制
  • 隊列管理技術:排隊論,把分組流經網絡傳輸節點的過程用顧客-服務器模型來描述。這裏的隊列管理指對網絡傳輸節點中隊列緩衝資源的管理和分配,即緩衝管理。
  • 分組調度技術是實現網絡流量控制的核心機制之一,使網絡資源管理的重要的內容,通過控制不同類型的分組對鏈路帶寬的利用,使不同的數據流得到不同等級的服務,分組調度的基本過程是根據一定的系統信息作出判斷,控制各個隊列佔用來南路帶寬的頻率,進而影響貸款分配、時延和時延抖動等。分類器根據分組的上下文和粒度確認它所在的隊列,分組進入相應隊列排隊等候,直至調度器將其選擇發送。  1)帶寬分配  2)時延控制 3)相對優先級控制 。三種常用的分組調度算法:1)基於靜態優先級的算法2)基於輪詢的算法3)基於鏈路共享算法
  • 流量整形技術:流量整形主要採用兩種基本算法:漏桶和令牌桶算法

10.linux網絡過濾技術與連接分析

linux分爲三層:最下面是硬件層(包括CPU 、內存、磁盤、鍵盤、顯示器、網卡),中間是內核層(是有層次的)

linux內核模塊

最上面是用戶層,用戶層包括函數庫和用戶程序。

11.Netfilter是linux內核中的一個包過濾框架,默認情況下,這個框架實現了包過濾、狀態監測、網絡地址轉換和包標記等多種功能。本書講的很詳細。

12.linux連接跟蹤式就是跟蹤並且記錄網絡流的連接狀態。linux系統爲每一個經過內核網絡協議棧的數據包生成一個新的連接記錄項(connection entry)。此後,所有屬於此連接的數據包都被唯一的分配給這個連接,並標識連接的狀態。連接跟蹤是防火牆模塊的狀態監測的基礎,同時也是地址轉換中實現SNAT和DNAT的前提。大部分的流量控制技術和方法,大多是基於linux流量跟蹤的。

    狀態檢測技術是近幾年才應用的新技術。傳統的包過濾防火牆只是通過監測IP包頭的相關信息來決定數據流通過還是拒絕;而狀態監測技術採用的是一種基於連接的狀態監測機制。將所有屬於同一連接的包當作整體來的數據流來看待,構成連接狀態表,通過規則表和狀態表的配合,對錶中的各個連接狀態因素加以識別。動態鏈接狀態表內的信息可以很靈活,可以是以前的通信信息,也可以是相關應用程序的信息。具有很強的靈活性和安全性。

   狀態監測和應用代理是防火牆市場內普遍採用的主流技術,兩種技術趨於融合。

13.無分類隊列規定有先進先出(First In  FIRST Out,FIFO)、隨機早起檢測(Random Early Detect,RED)、隨機公平隊列(Stochastic Fairness Queueing,SFQ)、令牌桶過濾器(Token Bucker Filter,TBF)。目前基於分類的隊列規定有基於分類的隊列(Class-Bassed Queuing,CBQ),分層令牌桶隊列(Hierarchical Token Bucket,HTB),基於優先級的隊列規定(PRIO)。

14.目前Internet上應用廣泛的內部網關協議總是選擇鏈路權值總和最小的路徑,但也因此導致網絡上的流量分佈不均衡,浪費了網絡資源。而在自治系統(Autonomy System,AS)區域邊緣的負載不平衡,邊緣網絡與主幹網絡連接時流量負載的不平衡性,也成爲了網絡擁塞的瓶頸。因此,多鏈路環境下的流量負載平衡和流量控制具有重要的現實意義。

15.流量工程的主要目的是怎就愛運行網絡的效率,提高其可靠性,同時優化網絡資源的使用和流量性能。目前,IETF的因特網流量工程工作組(TEWG)負責流量工程領域的標準化工作。隨着互聯網服務提供商(Internet Service Provider,ISP)網絡規模的日益擴大和流量的激增,以及ISP之間的網絡服務方面的激烈競爭,流量工程的優化設計變得越來越重要。此外,多鏈路網絡流量調度也是實現網絡結構可擴展性、可靠性的重要問題。

    如何在多個節點的多鏈路之間合理地調配流量是目前流量負載平衡研究的熱點問題。

    widjaja等首次提出了流量工程的概念,但只是簡單地從避免擁塞的角度出發,從高擁塞的節點搬移到流量到無擁塞的節點。仿真表明,在整個網絡負荷很小的時候能夠很好的工作,隨着網絡符合的增加,收斂性變得很差[1]。[2][3]給出了MPLS網絡的動態區分模型和分析結果,但是對Internet的流量特徵過於理想化和模型化,其數學結果很難應用與實際,仿真的假設條件也過於簡單。

考慮參考MPLS標籤協議加快在現有網絡中轉發速率的設計,將其應用的color中。使得域間的流量能夠自適應的Load-Balancing。

    三個文獻:[1]Elwalid A,Jin C,Low S,et al. A Framework for Internet Traffic Engineering. http://www.itef.org/proceedings/51/I-D/draft-ietf-tewg-framework=05.txt

                  [2]Dinan E,awduche D,Jabbari B. Analytical framework for dynamic traffic partitioning in MPLS network. IEEE INternation Conference on Conmmunications,New Orieans,2000

                  [3]Dinan E,awduche D,Jabbari B. Optimal traffic partitioning in MPLS. Networking 2000,Paris,2000

    優化流量分配的核心就是任務調度,將多個任務請求比較均衡地分佈到控制節點進行調度,有控制節點決定路由路徑,可使各個控制節點有效利用,從而提高系統的吞吐能力,保證整個系統的實時高效。優化問題本質上是在每個控制節點上從多個選擇域中得到漸進次優解,理論上沒有最優解的算法[4]。

                 [4]Gerasoulis A,Yang T. On the granularity and clustering of directed acyclic task graphs. IEEE Transcation on Parallel and Distributed System,1990,4(6):686-701

16.目前Internet上最廣泛的內部網關協議是OSPF,採用最短路徑優先算法(SPF)選路,因此產生網絡流量分佈不平衡,使得網絡上有些鏈路因爲過負荷產生擁塞現象,而另外一些鏈路則處於閒置狀態。網絡流量優化體系的主要目的是優化網絡資源利用率,提高網絡行性能,能夠提供有保證的網絡負載質量,路由優化算法是實現流量工程目標的重要策略之一。

17.恰當調整網絡中鏈路的權值可以對網絡路由進行控制,達到流量工程目標。這種方式保持了IP網絡的無連接特性,以及由此帶來的簡單性和良好的可擴展性,Cisco公司建議將鏈路權值設置成C的i次方分之一(C的i次方爲鏈路容量),這種方式沒有利用網絡內的流量分佈信息,因此不能有效地利用網絡資源。Khanna等早起研究者提出將鏈路權值與當前鏈路上的負載狀態對應起來以避免擁塞,這種方法會帶來頻繁的路由改變,導致網絡不穩定。Fortz建立了以平衡網絡流量分配爲目標的鏈路權值全局優化模型,並提出一種啓發式算法求解改NP完全問題(關於NP完全問題見算法導論第5頁)的優化問題,Wang等研究發現,求解路由優化問題的對偶問題,可以得到一組鏈路權值,給出了建立符合負載均衡原則的啓發式方法,使得通過SPF算法得到的路由與求解線性規劃問題的最優路由一致,Lee對多約束條件下的負載均衡問題I進行了數學描述和分析。很多算法的基本你思路都是先對原數學模型中的流限制條件進行鬆弛、求解,在此基礎上再依據實際的流限制條件,進行路由調整。但是,要在等價最短路徑中任意分配流量,這在實際網絡中是難以實現的。

18.國內之前的相關研究思想,薛希俊等基於路徑的量度提出帶寬和跳數的流量工程動態路由選擇。未涉及自治系統邊界鏈路的負載問題[1]。向建軍等採用董濤任務分配表爲核心的多任務負載分配方式,此方法獨特,並可以較精確地求解負載均衡問題,但尚未在重載條件下進行工程驗證,在上述的研究工作中,知識注重了網絡負載均衡,忽略了對路徑傳輸時延的控制[2]。郭國強等將IP流量規劃與區分服務相結合,在分析區分服務對流量需求的基礎上,設計了區分服務與流量規劃相結合的功能框架,提出了適合流量規劃要求的隊列調度方法以及流量分割和映射的原理和方法。但迴避了實際流量工程中的大規模流量和IP包重組問題[3]。【可以考慮在Color中也引入同樣的體系,即將服務標識SID與流量規劃相結合】

               [1]薛希俊,孫雨耕,劉振肖. 基於帶寬和跳數的流量工程動態路由選擇算法研究.電子學報,2002,30(2):274-278

               [2]向建軍,白欣,左繼章. 一種用於實時集羣的多任務負載均衡算法. 計算機工程,2003,29(12):36-38

               [3]郭國強,張堯學,王曉春. 一種區分服務域內的IP流量規劃方法. 軟件學報,2002,13(3):365-371

19.提供了兩種模型:多邏輯鏈路間共享令牌調度流量負載模型(通過在多鏈路間動態調度令牌,此模型使鏈路的流量趨於穩定分佈,到達流量負載均衡的目的。算法僞代碼需要結合數學模型同時使用)和多鏈路時延反饋共享令牌流量擁塞控制算法(前者的改進,有效減少數據鏈路訪問時延,而且鏈路流量的平滑性,帶寬利用率等都比其他傳統調度算法要好,適合高性能貸款介入鏈路流量控制的應用)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章