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网络模拟工具相关推荐
- 差网络模拟工具---clumsy
我们开发基于网络的应用时,经常需要考虑当网路较差时的异常处理,clumsy就是这个可以用来进行网络延迟的工具,可以实时的修改网络延迟.丢包.篡改等网络异常情况. clumsy 能在 Windows 平 ...
- 网络模拟工具Netem
网络模拟工具Netem可以模拟时延,丢包,重复包,乱序等功能. Netem是用过命令行'tc'来设置规则的,tc命令是IProute2命令中的一部分! 1. 设置固定delay 100ms (所有经过 ...
- 网络模拟工具Clumsy
Clumsy 是一款小巧而功能强大的开源弱网模拟工具,它能在windows平台下人工造成不稳定的网络状况,方便你调试应用程序在极端网络状况下的表现. 你可以选择 clumsy 提供的功能来有目的性的调 ...
- 交换机模拟配置软件_GNS3 for mac(网络模拟工具)
GNS3是一个开源的多平台图形网络模拟实用程序,使用户无需购买路由器或其他专用设备即可创建复杂网络的模拟.GSN3还带有简化的用户界面,所有的按钮和功能都安排在一个按键,GNS3可以帮助你创建,定制和 ...
- 直播测试之Network Emulator 网络模拟工具使用
在用户眼中,优秀的音视频产品应该具有清晰.低延时.流畅.秒开.抗丢包.高音效等特征.为了满足用户以上要求,通过哪些方法可以对安卓端的音视频进行优化?网易高级测试工程师郦洁萍将为您进行一一介绍. 1.网 ...
- 一个Linux下的网络模拟工具 Core
软件名称:Common Open Research Emulator (CORE) 官方网站:http://www.nrl.navy.mil/itd/ncs/products/core 软件功能:Th ...
- Linux 网络模拟工具
在Linux下, 通常使用netem或bridge来模拟网络不稳定情况. 在模拟过程中, 最好使用虚拟机. 如果是远程机器, 那么网络环境模拟需要两块网卡, 而桥模拟最好使用三块网卡. 就是需要附加一 ...
- 59.1 Facebook网络模拟测试工具ATC使用
转载自:https://www.cnblogs.com/coderzh/p/AugmentedTrafficControl.html 实际步骤本人并没有操作过.因为考虑再过一段时间马上就需要用到了,所 ...
- Facebook网络模拟测试工具ATC使用
转载自:https://www.cnblogs.com/coderzh/p/AugmentedTrafficControl.html 实际步骤本人并没有操作过.因为考虑再过一段时间马上就需要用到了,所 ...
最新文章
- iOS 系统分析(一) 阅读内核准备知识
- c++ 优先队列_std::priority_queue(优先队列)
- python安装modify setup选哪-python 之禅 import this
- 和ts一般怎么玩_KPL:一诺采访引热议,quot;裴擒虎是个野王都会quot;,暖阳怎么办?...
- window.print()方法,如何获取打印弹框显示状态
- gin-vue-blog自建博客
- 【Network】协议栈
- Nginx - 日志格式及输出
- 怎样推断两个日期在一周内
- 虚拟机中部署ISA Server 2006 防火墙 网络设置(上)
- python语言输入中文_selenium+python 语言编写问题,在执行时无法输入中文用户名...
- VB开发OCX控件的属性之自定义列表项
- pandas 二维表与一维记录的转换
- 前端,计算中四舍五入保留两位小数操作3中方法
- java 导出word文档
- python模拟登录URP教务系统评教
- IB学生喜欢申请哪些英国院校?
- 让大数据告诉你,网红“小龙虾”究竟有多火
- 六年级上册计算机知识点总结,六年级数学上册知识点的整理
- 2021年氯化工艺考试及氯化工艺考试内容
热门文章
- web前端警惕:意料之外的全局变量声明
- Adobe illustrator 设置字体和微调 - 连载 10
- 限时免费!Cell旗下 Heliyon 多学科特刊征稿
- DxO FilmPack 5教程:对照片进行艺术渲染,使其具有专业电影的色彩和颗粒感
- 如何初始化局部变量c语言_重要的事情说三遍:局部变量一定要初始化!你做到了吗?...
- 1.5 编程基础之循环控制 11 整数的个数(2022.01.09)--python
- 第十一届蓝桥杯省赛C++组试题 第3题 求阴影面积
- 百度自动提交链接的php应用seo功能实例
- java workthread_Java多线程基础(十)——Work Thread模式
- 水晶报表设置二维码_随时随地数据分析?老板喜欢的移动端报表,我用这七步做出来了...