国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 網絡通信 > 正文

高速網絡環境下的網絡帶寬測試算法分析

2019-11-04 20:42:02
字體:
來源:轉載
供稿:網友

  1 引言
  作為網絡測試內容的一部分,精確的測量網絡的帶寬是非常有意義的。它不但可以幫助網絡治理人員了解整個網絡的狀態,及時發現網絡的瓶頸所在,更重要的是可以給網絡設計人員,非凡是網絡協議的開發人員提供指導,采用新的算法來控制路由的選擇,避免擁塞的發生,實現更好的擁塞控制策略。近年來國內外對于網絡帶寬的測試也做了大量的研究,得出了很多網絡帶寬測試的算法。這些算法中就測試的對象來講,有的是測試網絡的總容量(Capacity);有的是測試網絡的可用帶寬(Avaible Bandwidth);就測試的范圍來講有的是測試每一條鏈路(Hop by Hop);有的是測試端到端(End to End)[3][4][5]。總的來講,這些技術可以歸為兩類:單數據包(Single packet)技術和數據包對(Packet Pairs)技術。名字來源于在一次探測中所使用到的數據包的數量。隨著網絡速度的不斷提高,目前這些測試算法都面臨很多新的問題,非凡是系統的軟硬件資源對于測試所帶來的影響。
  
  2 基本算法
  2.1 單數據包技術
  
  單數據包技術通常也稱為可變大小數據包技術(Variable Packet Size),因為它向網絡發送大小變化的探測數據包并統計達到目的端的時延來測試網絡的帶寬。網絡的時延由傳播時延、發送時延、排隊時延三部分組成。這類算法典型的有pathchar、pchar、clink[3][5]等。其基本原理是基于低速的鏈路傳輸一個數據包所用的時間比高速的鏈路長。單數據包技術測試到的是網絡的容量。假如一個大小已知的數據包經過一條鏈路的時間已知,則該鏈路的帶寬就可以計算出來。計算必須考慮鏈路的傳播時延,對于一定的傳輸媒介,傳播時延是固定的。在不考慮網絡的排隊時延的情況下,傳輸時間(t)由數據包的大小(p),鏈路的帶寬(b )還有一個固定的傳播時延(l )決定。
  
 高速網絡環境下的網絡帶寬測試算法分析(圖一)

  測試時,發送多個不同大小的數據包,當這些數據包在該鏈路的傳輸時間被測到后,通過公式(1)我們可以得出鏈路的帶寬b,當然這些值都存在干擾,采用濾波的方法可以過濾出最接近于實際帶寬值的數據。
  
  2. 2 數據包對技術
  
  數據包對技術(Packet Pairs)利用數據包在傳輸過程中所形成的時間間隔(Dispersion Time)來測試帶寬[1]。數據包對技術衍生出了很多的算法和工具,如bPRobe、PBM算法、nettimer、 pathload[2][4]等。數據包對技術所測試的是鏈路的瓶頸帶寬或是可用帶寬,而不是單個數據包技術所測得的鏈路的容量。數據包對技術基本方法可以用圖一來說明。
  
 高速網絡環境下的網絡帶寬測試算法分析(圖二)

  圖中鏈路L1和L3的帶寬是L2的兩倍,L2是鏈路中的瓶頸。在沒有干擾的情況下,由于L3帶寬大于L2,因此兩個數據包在經過L2、L3之間的節點處會形成時間間隔t。這個間隔時間等于L2鏈路末端的節點在接收完第一個數據包之后,用在接收第二個數據包上的時間。這個值也實際上就等于第二個包的發送時延。發送時延 與數據包大小 成正比和鏈路的帶寬 成反比。
  
  注重等式1和2之間的差別。單數據包技術在計算的時候必須考慮鏈路的傳播時延,而數據包對技術并不需要考慮鏈路的傳播時延,因為在沒有干擾流量的情況下,對于所有的數據包而言,該值都是相等的。
  
  數據包對技術受干擾流量的影響非常嚴重。假如干擾流量使得第一個數據包出現延遲,那么將會導致兩個數據包之間的間隔時間被壓縮,那么這樣測試出來的鏈路帶寬就會偏高。這就是時間壓縮問題;假如干擾流量出現在第一個數據包和第二個數據包之間,那么將會出現排隊的情況,則兩個數據包之間的間隔將會被拉大,其結果使得測得的鏈路帶寬偏小,這就是時間擴展問題。要采用數據包對技術獲得精確的帶寬測量值就必須把時間壓縮和擴展過濾出來。
  
  2.3 傳輸時間的計算
  
  數據包傳輸時間的確定不僅需要兩端的測試主機具有精確的時鐘,同時還需要測試主機的時鐘必須同步,另外在每一端的測試主機上部署測試的軟件也是必須的。因此,為了簡化測試,通常多數算法是測試數據包在網絡鏈路上的往返時間RTT(Round Trip Time)[5]。這樣可以避免時鐘同步問題,同時也減少了測試軟件的部署。對于數據包的傳輸控制,兩類技術大都利用了IP數據包報頭中的生存時間域(TTL)[6]。該值在數據包每經過一個路由器節點的時候會被消耗,其值會減一。一旦TTL被減為0時,該數據包就會被丟棄并且該節點會發送一個ICMP的TTL失效錯誤信息給原數據發送端。假如把被測試的鏈路終點設置為數據包TTL失效,發送端就可以通過記錄數據包的發送時間加上ICMP錯誤信息的返回時間從而找到數據包到達鏈路終點并返回的時間RTT。
  
  如下圖所示:
  
 高速網絡環境下的網絡帶寬測試算法分析(圖三)

  測試數據包的TTL值被設置為2,在第一個節點TTL被減為1,第二個節點減為0。于是該主機就會發送一個ICMP錯誤信息返回給主機A。主機A即可獲得數據包到達第二個路由器節點的RTT時間。
  
  RTT的計算通用的方法都是測試主機在發送和接收到數據包時,通過申請系統中斷,給每個數據包分配一時間戳(timestamp),發送時間戳與接收時間戳之差即是數據包在網絡鏈路上的RTT傳輸時間。
  
  3 高速網絡環境下的帶寬測試
  從兩類基本網絡帶寬測試技術的基本原理的分析可知,不論是單數據包技術還是數據包對技術都沒有考慮到網絡中的軟硬件資源,非凡是測試的主機系統對于網絡帶寬測試所帶來的影響。這些影響非凡是在高速的網絡環境中,將會對測試的結果帶來巨大的偏差。
  
  目前的網絡帶寬測試算法的提出都是基于低速網絡的,它們中的大部分,例如數據包對技術,要求網絡的帶寬不能高于發送端主機的發送速率。舉例來講,假如發送端在1ms的時間中發送1000Byte的數據包,那么被測網絡的瓶頸帶寬就不能超過8Mb/s,否則數據包之間將不可能產生時間間隔。隨著網絡技術的不斷發展,目前的網絡已經達到千兆的帶寬,并向更高的傳輸速率發展。系統資源對于網絡帶寬測試的影響主要體現在1、網絡中的元素2、測試主機對于數據包的處理速度3、測試主機系統I/O的帶寬。
  
  3.1網絡中的元素
  
  多數的網絡帶寬測試算法都需要通過ICMP返回信息確定數據包在網絡中RTT時間。但是不同的路由設備具有不同的ICMP傳播時延,假如鏈路中存在二層的交換設備,問題就更加的嚴重,因為二層的存儲轉發設備本身并不具有對IP數據包的控制機制,它不能遞減TTL域的值,同時也不能產生ICMP的控制信息,因此使得在這樣的條件下測試出的網絡帶寬必將是不可靠的,甚至不能測試出網絡的帶寬。另外,不同的路由選擇有可能使得ICMP的返回路徑與數據包的傳輸路徑是非對稱的,因此也就不能得出正確的結論。
  
  3.2數據包的處理
  
  網絡中的數據包到達主機后,首先達到的是主機的網絡接口卡NIC(network interface card)。在這里NIC將向系統申請中斷,要求系統對達到的數據包進行I/O處理。系統I/O的中斷間隔時間對于高速的網絡接口卡性能有非常大的影響。目前的主機設備大都配備了千兆的以太網卡(GBIC)。假如有一數據包到達某一1Gb/s的網卡將產生一個I/O中斷的請求,以太網中最大數據傳輸單元MTU為1500Byte,那么系統最多12μs就要響應一次中斷請求。因為最大響應時間
  
高速網絡環境下的網絡帶寬測試算法分析(圖四)

  對于大多數的主機系統來講,中斷是達不到這么高的速率的。目前大多數主機系統采用了延時中斷技術(delayed interrupt)來降低CPU的中斷請求、提高系統數據吞吐量,即捆綁多個數據包以后申請一次中斷。該技術是NIC在接到第一個數據包后并不立即向CPU提起中斷請求,要求CPU處理數據,同時釋放緩沖預備接收下面的數據,而是設置一個延時中斷時間,希望在該時間內有更多數據包到達,然后申請一次中斷處理,這樣做能夠提高CPU的利用率,但卻給網絡帶寬的測試帶來了嚴重的影響。這種情況下,多數的系統根本沒有辦法為每一個到達NIC的數據包精確的分配時間戳, 大部分的數據包只能在到達NIC一段時間后才能獲得時間戳,而且兩個數據包可能具有相同的時間戳。因此沒有辦法知道每一個數據包到達主機的精確時間,數據包之間的時間間隔也就被掩蓋了。
  
  另一方面,申請中斷后,對于NIC內的數據包的處理,系統需執行兩次系統調用,一是為數據包獲得時間戳,二是為數據包執行I/O操作。系統調用所花費的時間對于流出NIC的數據包的時間間隔和進入NIC的數據包的時間戳的獲得都具有很大的影響。大多數x86的CPU系統在執行一次系統調用需要6個時鐘周期,所花費的時間大約在2μs左右,而對于100M的以太網來講,傳輸最小(28byte)到最大(1500byte)IP數據包所需的時間大約在3-120μs,對于1000M或更高速的網絡來講,時間只有0.3-12μm。可見高速網絡環境下,系統調用所耗費的時間所占數據包傳輸的總時間的比例是非常巨大的。在數據包對技術中,兩個數據包達到主機后總共會執行四次系統調用,對于每一個數據包都要執行一次系統調用獲取達到時間,另一次系統調用執行I/O操作,讀取數據包。因此,兩個數據包在網絡瓶頸帶寬處形成的時間間隔必須至少要大于這四次主機系統執行系統調用的時間,否則將不可能計算出正確的結果。高速網絡中兩個數據包在網絡瓶頸帶寬處形成的時間間隔是非常小的,由此可見,由于系統調用時間的存在,使得網絡帶寬的測試在高速的網絡環境下將產生巨大的偏差,甚至得出完全錯誤的結論。
  
  3.3 I/O帶寬。
  
  I/O帶寬對于測試數據包的影響是明顯的,非凡是進入主機的數據,假如主機的I/O帶寬小于網絡中的數據到達速度,則將會出項排隊溢出現象,導致數據包的丟失。目前的一些主要帶寬測試技術


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 如皋市| 大城县| 博野县| 宁强县| 安乡县| 平武县| 康定县| 鄂州市| 安图县| 蚌埠市| 阿城市| 巧家县| 江门市| 泰和县| 教育| 锦屏县| 桂平市| 丹东市| 化州市| 云梦县| 保山市| 西城区| 商丘市| 广南县| 赫章县| 正宁县| 西吉县| 汉中市| 勐海县| 北碚区| 平湖市| 旌德县| 汤原县| 教育| 绥棱县| 资兴市| 新晃| 顺平县| 延安市| 阳西县| 沅陵县|