先梳理兩個概念:
什麼是高時延頻寬乘積的網路環境(頻寬(byte/s)*時延》64k位元組):
1)衛星傳輸(時延550ms),頻寬1mbps以上。(1024*1024)/8 *0.6=72090位元組。
2)跨國internet訪問或國際電路(時延200ms),頻寬超過2.6mbps以上。
3)千兆網路已經很流行了,時延》=1ms,都算。更不要說萬兆網路
tcp滑動視窗如何進行流量控制及64k概念。
tcp是一種可靠的面向連線的協議,tcp滑動視窗兩作用:提供可靠性,流量控制。這裡我們關心的是流量控制。tcp滑動視窗控制在收到確認包前能夠最大傳送多少位元組的tcp資料報,如果收到了將再傳送下一組資料。在tcp包頭裡描述tcp滑動視窗佔了16位,剛好是65535也就是64k。預設最大允許傳送64k位元組的資料報就必須有回應包,否則就等。
在高時延頻寬的網路環境下,會有什麼問題,如何解決?
tcp這樣的特點就導致,雖然頻寬富裕,但是單個tcp執行緒不能把頻寬佔滿。
解決辦法:tcp包頭裡最後一部分是選項字段,當kind=3時,用來給出tcp視窗擴大因子。當新建立tcp連線時,會查詢這個選項引數,如果設定了tcp視窗因子(取值範圍0~14),就可以突破預設tcp視窗限制,使其支援更大的視窗.相當於2的(16+擴充套件值)次方,最大2的30次方。
這樣在高頻寬時延的網路環境下,單tcp會話對頻寬利用率將明顯改善。
測試環境a端103.38.x.x 主機
b端103.16.x.x主機
兩主機之間的頻寬大於100m,時延200ms左右
udp 100m測試:達到預期結果
服務端iperf-u -s
客戶端iperf -c 103.16.x.x -b 100m -i 5 -t 60
tcp單執行緒測試:預設64k視窗,只能達到 2.5mbps
服務端iperf-s
客戶端iperf -c 103.16.x.x -i 5 -t 60
tcp單執行緒測試:預設2m視窗,可達到 70mbps
服務端iperf-s -w 2m
客戶端iperf -c 103.16.x.x -w 2m -i 5 -t 60
利用tcp擴大因子,不光系統要支援,應用軟體也要給力。
linux 2.6.9以上核心, windows vista/2008以上預設支援,只需要關心應用軟體即可。
早期版本系統優化:
linux
echo 'net.ipv4.tcp_window_scaling = 1'>>/etc/sysctl.conf
sysctl -p
windows xp/2003優化
開啟登錄檔,進入如下位置
新增鍵值
頻寬測試通常採用udp模式,因為能測出極限頻寬、時延抖動、丟包率。在進行測試時,首先以鏈路理論頻寬作為資料傳送速率進行測試,例如,從客戶端到伺服器之間的鏈路的理論頻寬為100mbps,先用-b 100m
進行測試,然後根據測試結果(包括實際頻寬,時延抖動和丟包率),再以實際頻寬作為資料傳送速率進行測試,會發現時延抖動和丟包率比第一次好很多,重複測試幾次,就能得出穩定的實際頻寬。
udp模式
伺服器端:
iperf -u -s
客戶端:
iperf -u -c 192.168.1.1 -b 100m -t 60
在udp模式下,以100mbps為資料傳送速率,客戶端到伺服器192.168.1.1上傳頻寬測試,測試時間為60秒。
iperf -u -c 192.168.1.1 -b 5m -p 30 -t 60
客戶端同時向伺服器端發起30個連線線程,以5mbps為資料傳送速率。
iperf -u -c 192.168.1.1 -b 100m -d -t 60
以100m為資料傳送速率,進行上下行頻寬測試。
tcp模式
伺服器端:
iperf -s
客戶端:
iperf -c 192.168.1.1 -t 60
在tcp模式下,客戶端到伺服器192.168.1.1上傳頻寬測試,測試時間為60秒。
iperf -c 192.168.1.1 -p 30 -t 60
客戶端同時向伺服器端發起30個連線線程。
iperf -c 192.168.1.1 -d -t 60
進行上下行頻寬測試。 頻寬時延乘積的含義
頻寬時延乘積指的是鏈路的頻寬 單位位元每秒 與來回通訊延遲 rtt,單位秒 的乘積。結果為位元的資料量,表示在特定時間該網路上的最大資料量 已傳送但尚未確認的資料。頻寬時延乘積對網路效能的影響 舉乙個好理解的例子,開了100mb的電信寬頻,但由於中間一些路由器以及鏈路的瓶頸,導致ping對端主機的r...
頻寬時延乘積的含義
頻寬時延乘積指的是鏈路的頻寬 單位位元每秒 與來回通訊延遲 rtt,單位秒 的乘積。結果為位元的資料量,表示在特定時間該網路上的最大資料量 已傳送但尚未確認的資料。頻寬時延乘積對網路效能的影響 舉乙個好理解的例子,開了100mb的電信寬頻,但由於中間一些路由器以及鏈路的瓶頸,導致ping對端主機的r...
網路時延的幾個概念
時延是指乙個報文或分組從網路的一端傳送到另一端所耗費的時間,時延由節點處理時延 排隊時延 傳送時延 傳播時延組成。下面為大家一一介紹一下 節點處理時延 主機或路由器在收到分組後要花費一定的時間進行處理,比如分析首部,提取資料,差錯檢驗,路由選擇等。一般高速路由器的處理時延通常是微秒或更低的數量級。排...