Clumsy 弱網絡環境模擬工具使用介紹
簡介
利用封裝 Winodws Filtering Platform 的WinDivert 庫, clumsy 能實時的將系統接收和發出的網絡數據包攔截下來,人工的造成延遲,掉包和篡改操作后再進行發送。無論你是要重現網絡異常造成的程序錯誤,還是評估你的應用程序在不良網絡狀況下的表現,clumsy都能讓你在不需要額外添加代碼的情況下,在系統層次幫你達到想要的效果
下載地址
http://jagt.github.io/clumsy/cn/download
界面簡介
如下圖,大致三部分,過濾器;預知過濾器;功能設置
過濾器語法介紹
outbound:是否為輸出數據包
inbound:是否為輸入數據包
ifldx:網絡設備index
subIfIdx:副網絡設備index
ip:是否為IPv4
ipv6:是否為Ipv6
icmp:是否為ICMP
tcp:是否為TCP
udp:是否為UDP
ip.*: IPv4的參數(見DIVERT_IPHDR
ipv6.*:IPv6的參數(見DIVERT_IPV6DHR
icmp.*:ICMP的參數(見DIVERT_ICMPHDR
icmpv6.*:ICMPV6的參數(見DIVERT_ICMPV6HDR
tcp.*:TCP的參數(見DIVERT_TCPHDR
tcp.PayloadLength:TCP數據長度
udp.*:UDP的參數(見DIVERT_UDPHDR
可以用“< ==”,“> ==”,“and”, “or”, “=”進行過濾器設置
預設過濾器
可以將常用個過濾器寫到clumsy.exe所在文件夾下的config.txt中。
功能設置
勾選左側的復選框后才可對右與左側復選框功能對應的參數進行設置。每個功能左邊都有一個小圓點圖標,其起作用時就會變綠。在數據包捕獲開啟的情況下,可以實時開啟/關閉任何功能,它們都會即時生效。
1)延遲(Lag),把數據包緩存一段時間后再發出,這樣可以模擬網絡延遲的狀況
2)掉包(Drop),隨機丟棄一些數據
3)節流(Throttle),把一小段時間內的數據攔截下來,並再在之后的統一時間一起發出去
4)亂序(Out of order),打亂數據包發送的順序
5)篡改(Tamper),隨機修改小部分的數據包內容
其中
Lag time設置延遲毫秒數,
Chance設置該功能發生的概率;
Inbound/Outboud 設置是否處理輸入/輸出數據包。這里是filter基礎上提供的一個選擇的機會,可實時生效。
使用方法
1.設置過濾器
2.功能設置(可選)
3.點擊Start
4.其它測試操作
5.點擊Stop