❶ Network-Emulator-Toolkit網路模擬器使用筆記
app研發不同於實驗室里做研究,哪裡有「理想環境」。
理想里,用戶用著性能卓越的手機,連著暢通無阻的wifi網路。
現實是,他們可能正用著你聞所未聞的機型,穿梭於地鐵、公交、火車、鄉間、大山….. 信號「若隱若現,撲朔迷離」…
弱網路引發的crash,anr,丟包等各種問題,除了親身到各個網路崩潰的地方測試,祈求問題重現外,還有弱網路模擬測試工具可以助一臂之力!
1、fiddler:模擬網路延遲;
2、network emulation for windows toolkit:模擬網路丟包場景;(網路、丟包、延時)
3、ATC;
4、iOS平台,通過自帶的開發者選項 》Network Link Conditioner;
5、charles;
6、360wifi、獵豹wifi;
下面將講解Network-Emulator-Toolkit網路模擬使用:
安裝方式:默認安裝
應用平台:Windows操作系統
軟體版本:x86/x64
如上圖,一個ADSL用戶通過modem連接到網路,通過網路應用如IE,MSN,同某個伺服器通信。如下,我們把上圖簡化為如下端到端的連接和訪問操作。
如上,模擬客戶端和模擬伺服器通過乙太網連接,並將NEWT安裝在伺服器上。客戶端和伺服器之間的通信都途經NEWT,這里NEWT充當圖1中的ADSL。
NEWT通過虛擬鏈路(virtual link)封裝了端到端的網路連接行為,並且通過操縱流經虛擬鏈路的數據包交換模擬真實網路行為。
有時候,我們期望僅通過模擬操作影響來自某個客戶端與伺服器的數據交互,但是不影響伺服器同其它客戶端的交互。這個可通過包過濾器(packet filter)和虛擬鏈路來實現。
NEWT可以安裝在客戶端,也可以安裝在服務端,只要客戶端和伺服器通過物理鏈路連接,且途徑NEWT實例即可。
具體實現如下:
進來的數據包被第一個信道(channel)處理。如果數據包符合第一個過濾器列表(Filter)中過濾器設置的過濾條件,則數據包流經給第一個信道的虛擬鏈路(Link),否則流經下一個信道,依此類推。如果到最後,都沒有匹配的,則傳遞給上層應用。同理,如果信道沒有設置任何過濾器,則所有包都會流經該信道。
註:這里的 「incoming packet」 是從NEWT驅動的角度來看的。所有接收到的和發送的包,通過同樣的處理流經NEWT驅動都被視為流入包。
操縱包
1. 使用步驟
a.新建Channel[可選]
打開後,默認就新建了一個名為「VirtualChannel 1」的channel。如果有必要,可以新建多個Channel。
入口:菜單欄 Configuration -> New Filter 或工具欄的快捷按鈕
b.新建Filter
入口:菜單欄 Configuration -> New Filter 或工具欄的快捷按鈕
說明:
如上,可選擇所有網路(ALL NetWork),也可以選擇IPV4、IPV6(本地IP(Local IP),或者遠程IP(Remote IP)及子網掩碼(IP Mask)),
選擇IPV4、IPV6的情況下,還可以選擇協議(Protocol),針對TCP\UDP協議,還可以指定本地埠(Local Port)或遠程埠(Remote Port)大小范圍
可以選擇網卡適配器(Adapaters, 這里為mac地址)
選好過濾條件後,點擊添加(ADD)按鈕,添加過濾條件;選中已添加的記錄,點擊刪除(Delete)按鈕,可刪除記錄;選中已添加的記錄,重新修改過濾條件,點擊修改按鈕(Modify),可修改記錄。
c.新建連接
入口:菜單欄 Configuration -> New Link 或工具欄的快捷按鈕
注:未配置的情況下,左右兩條線都是灰色的
詳細說明(上行為例)
Loss
說明:
No Loss:默認,不模擬丟包。
Periodic loss: 模擬周期性的丟包。按填寫數量(設為x個),每x個包,就丟一個包(one packet is dropped per given number of packets)。
Random loss: 模擬隨機丟包,按給定丟包的概率,隨機丟包。
Burst loss: 模擬根據給定的可能性進行丟包。當發生一個丟包事件時,接著連續丟幾個包(丟包數量控制在最大(max)最小值(min)之間)。
G-E loss: 模擬發生數據包丟失遵循Gilbert-Elliot模型,由兩個狀態組成:好的狀態和壞的狀態。可分別為這2個狀態指定數據包丟失率,同時可設置網路傳輸在這兩種狀態的概率
(And the network transit between the two states is at given transition probabilities)
Error
說明:
真實世界中,當數據包經過網路傳輸時,包中的一到多個位元組(bit)數據可能發生錯誤。
No Error:不模擬傳輸錯誤。
Random error:根據給定的比例,模擬隨機發生傳輸錯誤。
G-E error:發生傳輸錯誤遵循Gilbert-Elliot Model, 模型,由兩個狀態組成:好的狀態和壞的狀態。可分別為這2個狀態指定數據包丟失率,同時可設置網路傳輸在這兩種狀態的概率(the network transit between the two states according to giventransition probabilities)
錯誤概率單元(Error Rate Unit):
Bit error: 設置出錯概率為每個位元組出錯的概率。
Packet error: 設置出錯概率為每個包出錯的概率。
出錯和丟包的關系
大多數情況下,包出錯導致包丟失,特殊情況下,包中的數據被編碼,協議棧可恢復被損壞的包,經過修正後,包為可接受的包,即包不丟失。此外,除了包出錯會導致包丟失,其它因素也會影響包丟失,如連接失敗(Link failure),緩沖區溢出(buffer overflow),隊列管理和傳輸超時(transmission timeout)等。
Latency
說明:
延遲來自某應用發送的數據包被另一個應用程序接收到的時間。
Fixed delay: 按給定值,延遲固定時間(單位:毫秒)packets are delayed fora fixed amount of time.
Uniform delay: 按統一分布,延遲一定量的時間(時間控制在最大最小值之間)
Normal delay: 按正態分布.延遲一定量的時間(average:平均值,Devation:偏差)
Linear delay: 延遲一定量的時間(在給定時間周期(Period)內,延遲的時間大小從最小值線性增加到最大值,當達到最大值時,又從最小值開始。
Burst delay: 根據給定概率(Probability),延遲一定量的時間(Latency), 丟包數控制最大值和最小值之間
BW&Queue
如果不指定帶寬(bandwith),則不修改傳輸速率。
如果不設置隊列,則不對接到的包做任何隊列操作
Queue
Normal queue:所有接收到的包都被放入一個指定隊列大小的先進先出(First In, First Out)隊列。
Randomly Early Detection (RED) queue:所有接收到的包都被放入一個RED隊列。如果隊列大小小於給定的最低閾值(Minimum Threshold),隊列被評估為不擁擠的,什麼都不做;如果隊列大小大於給定最大閾值(Maximum
Threshold),則隊列被評估為擁擠的,根據丟包規則,丟棄一些包。
丟包規則:
Drop front: 必要時,丟棄位於隊列頭部的包。.
Drop tail: 必要時,丟棄位於隊列尾部的包。
Drop random:必要時,根據統一分布,隨機丟個包。
Queue Mode:設置隊列大小的單位,以包(Packet Mode)為單位或者以位元組為單位Byte Mode
BgTraffic
一些網路數據包交換和模擬的兩端沒有任何關系,被指為背景流(background traffic)。這些背景流會帶來延時效果。
Constant-bit rate (CBR) traffic: 根據給定的固定比例生成背景流(每XX kbps、mbps數據包,xx位元組背景流)
Exponential traffic:根據指數On/Off時間分布生成背景流。個人理解,Burst則為生成背景流時間,Idle則不生成背景流時間(時間單位:秒
Pareto traffic: 同上,不過是排列圖分布(Pareto)
Recorder
模擬收到的包不是按發送順序排序的。
No Recoder:不模擬
其它:具體待定
Disconnection
模擬周期性斷開連接的行為。
Connection time: 一段時間周期內,link保持連接狀態的持續時間。
Disconnection time: 一段時間周期那日,link保持斷開狀態的持續時間
Disconnection rates: link發生斷開連接的比率
例子:設置connection time為10秒,disconnection為5秒,那麼周期為15秒,如果設置rate為0.4,那麼平均每10秒內,有4秒是link處於連接斷開的時間(if connection time is 10 seconds, time is 5 seconds, the period will be 15 seconds. If rate is 0.4, then on average in 4 out of 10 periods disconnection occurs. )。
點擊觸發跟蹤按鈕[可選]
點擊「黃色小腳丫」按鈕,確保按鈕為「點選」狀態
註:RT Traffic Monitor,RT Packet Monitor,Connection Analyzer,Information Watch
開啟控制
點擊開始按鈕
停止控制
點擊停止按鈕
保存文件[可選]
保存配置文件為xml,方便後續導入,重用
連接方式:
Dialup56k:通過傳輸速率為56kbps的modem進行連接
ADSL(128/512): 通過上行128kbps,下行512kbps的ADSL連接。
GPRS:它是GSM行動電話用戶可用的一種移動數據業務,理論傳輸速率115kbit/s,實際可達53.6Kbps。
CDMA2000:3G移動通訊標准。
WCDMA:寬頻碼分多址(英語:Wideband Code Division Multiple Access,常簡寫為W-CDMA),是一種3G蜂窩網路,使用的部分協議與2G GSM標准一致。
IEEE802.11b:通過無線區域網,帶寬最高可達11Mbps,實際的工作速度在5Mb/s左右,室外為300米;在辦公環境中最長為100米
案例:
❷ PDA用什麼軟體測試丟包
很多。
可以去網上進行下載,有很多測試丟包的軟體,盡量選擇有品牌靠譜的,當然如果官方有可以用官方軟體。
PDA,就是個人數字助理(j)的意思。相對於傳統電腦,個人數碼助理的優點是輕便、小巧、可移動性強,同時又不失功能的強大,缺點是屏幕過小,且電池續航能力有限。個人數碼助理通常採用觸控筆作為輸入設備,而存儲卡作為外部存儲介質。在無線傳輸方面,大多數個人數碼助理具有紅外和藍牙介面,以保證無線傳輸的便利性。許多個人數碼助理還能夠具備Wi-Fi連接以及全球定位系統。
❸ Android手機如何測試ping值以及網路丟包率
1.撥號鍵上按:*#*#4636#*#* 出來的界面中有「進行ping測試」。
2.下載一個叫超級終端的軟體,可以直接ping。
❹ 免費的 IP網路損傷模擬軟體 Holowan 怎樣安裝需要什麼硬體
Holowan 目前已經沒有免費版下載了,最近MinSMB出來一款類似的網路損傷儀 工控免費版,可以安裝在普通intel PC機或者軟路由D525或intel i5,i7處理器上.網路損傷儀 工控免費版已經發布了,可以去csdn上下載.
❺ 如何在Windows環境下模擬丟包
做法有兩步:
1. 本地Fiddler開啟,手機連代理到本機Fiddler;
2. 本地運行clumsy.exe,設置Presets為「all sending packets」,勾選「Drop」並將「Chance」設置為90,這就意味著丟包率為90%,非常糟糕的網路。然後點擊「Start」就可以開始模擬丟包了。