Clumsy网络模拟工具
筆者最近因為需要在局域網內模擬一個實際情況(即存在丟包、延遲等情況)。網上搜了很多工具,大多基于linux。后來好不容易在網上搜索到一款2014年出現的網絡模擬工具----Clumsy。
(參考了http://jagt.github.io/clumsy/)
Clumsy是基于C語言開發的一款開源網絡模擬工具。它能在Windows平臺下人工造成不穩定的網絡狀態,應用它可以方便調試應用程序在極端網絡狀態下的表現。
Clumsy?首先根據用戶選擇的filter來攔截指定的網絡數據。在?filter中可以設定你感興趣的協議(tcp/udp),端口號,是接收還是發出的端口。你也可以通過簡單的邏輯語句來進一步縮小范圍。當?Clumsy?被激活時,只有符合這些標準的網絡數據會被進行處理,而你不感興趣的數據仍然會由系統正常傳輸。當被?filter?的網絡數據包被攔截后,你可以選擇?Clumsy?提供的功能來有目的性的調整網絡情況,下面是Clumsy提供的功能介紹。
(1)延遲(Lag):把數據包緩存一段時間后再發出,這樣能夠模擬網絡延遲的狀況;
(2)丟包(Drop):隨機丟棄一些數據;
(3)截流(Throttle):把一小段時間內的數據攔截下來后再在之后的同一時間一同發出去;
(4)重發(Duplicate):隨機復制一些數據并與其本身一同發送;
(5)亂序(Out?of?order):打亂數據包發送的順序;
(6)篡改(Tamper):隨機修改小部分的包裹內容。
圖1是Clumsy界面(此時丟包率為50%)。
?
圖1:Clumsy?0.2?運行頁面
在局域網(正常情況下,零丟包)環境下,通過ping測試,不同丟包率下的實際丟包率。結果如下:
| Clumsy設置的丟包率 | 0% | 5% | 10% | 20% | 30% | 40% | 50% | 60% | 70% | 80% | 90% |
| ping實驗丟包率 | 0%(734次) | 6%(677次) | 11%(782次) | 19%(506次) | 31%(664次) | 38%(725次) | 51%(1120次) | 58%(823次) | 70%(544次) | 84%(604次) | 91%(455次) |
因此從一定程度上證明了該工具的效果很好,延遲也有測試,效果明顯。
筆者用該工具測試了UDP的傳輸、JGroups的組播通信。有興趣研究可靠性的讀者可以參考該工具,目前該工具更新到0.2版本。
如果有人在首次下載使用時,啟動失敗,應該是版本不對,Clumsy有32和64位2個版本(下載地址:http://jagt.github.io/clumsy/download.html),筆者在首次使用也遇到了該問題。
歡迎交流!
總結
以上是生活随笔為你收集整理的Clumsy网络模拟工具的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++设计模式-Bridge桥接模式
- 下一篇: 带弹性的导航栏