笔者最近因为需要在局域网内模拟一个实际情况(即存在丢包、延迟等情况)。网上搜了很多工具,大多基于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网络模拟工具相关推荐

  1. 差网络模拟工具---clumsy

    我们开发基于网络的应用时,经常需要考虑当网路较差时的异常处理,clumsy就是这个可以用来进行网络延迟的工具,可以实时的修改网络延迟.丢包.篡改等网络异常情况. clumsy 能在 Windows 平 ...

  2. 网络模拟工具Netem

    网络模拟工具Netem可以模拟时延,丢包,重复包,乱序等功能. Netem是用过命令行'tc'来设置规则的,tc命令是IProute2命令中的一部分! 1. 设置固定delay 100ms (所有经过 ...

  3. 网络模拟工具Clumsy

    Clumsy 是一款小巧而功能强大的开源弱网模拟工具,它能在windows平台下人工造成不稳定的网络状况,方便你调试应用程序在极端网络状况下的表现. 你可以选择 clumsy 提供的功能来有目的性的调 ...

  4. 交换机模拟配置软件_GNS3 for mac(网络模拟工具)

    GNS3是一个开源的多平台图形网络模拟实用程序,使用户无需购买路由器或其他专用设备即可创建复杂网络的模拟.GSN3还带有简化的用户界面,所有的按钮和功能都安排在一个按键,GNS3可以帮助你创建,定制和 ...

  5. 直播测试之Network Emulator 网络模拟工具使用

    在用户眼中,优秀的音视频产品应该具有清晰.低延时.流畅.秒开.抗丢包.高音效等特征.为了满足用户以上要求,通过哪些方法可以对安卓端的音视频进行优化?网易高级测试工程师郦洁萍将为您进行一一介绍. 1.网 ...

  6. 一个Linux下的网络模拟工具 Core

    软件名称:Common Open Research Emulator (CORE) 官方网站:http://www.nrl.navy.mil/itd/ncs/products/core 软件功能:Th ...

  7. Linux 网络模拟工具

    在Linux下, 通常使用netem或bridge来模拟网络不稳定情况. 在模拟过程中, 最好使用虚拟机. 如果是远程机器, 那么网络环境模拟需要两块网卡, 而桥模拟最好使用三块网卡. 就是需要附加一 ...

  8. 59.1 Facebook网络模拟测试工具ATC使用

    转载自:https://www.cnblogs.com/coderzh/p/AugmentedTrafficControl.html 实际步骤本人并没有操作过.因为考虑再过一段时间马上就需要用到了,所 ...

  9. Facebook网络模拟测试工具ATC使用

    转载自:https://www.cnblogs.com/coderzh/p/AugmentedTrafficControl.html 实际步骤本人并没有操作过.因为考虑再过一段时间马上就需要用到了,所 ...

最新文章

  1. iOS 系统分析(一) 阅读内核准备知识
  2. c++ 优先队列_std::priority_queue(优先队列)
  3. python安装modify setup选哪-python 之禅 import this
  4. 和ts一般怎么玩_KPL:一诺采访引热议,quot;裴擒虎是个野王都会quot;,暖阳怎么办?...
  5. window.print()方法,如何获取打印弹框显示状态
  6. gin-vue-blog自建博客
  7. 【Network】协议栈
  8. Nginx - 日志格式及输出
  9. 怎样推断两个日期在一周内
  10. 虚拟机中部署ISA Server 2006 防火墙 网络设置(上)
  11. python语言输入中文_selenium+python 语言编写问题,在执行时无法输入中文用户名...
  12. VB开发OCX控件的属性之自定义列表项
  13. pandas 二维表与一维记录的转换
  14. 前端,计算中四舍五入保留两位小数操作3中方法
  15. java 导出word文档
  16. python模拟登录URP教务系统评教
  17. IB学生喜欢申请哪些英国院校?
  18. 让大数据告诉你,网红“小龙虾”究竟有多火
  19. 六年级上册计算机知识点总结,六年级数学上册知识点的整理
  20. 2021年氯化工艺考试及氯化工艺考试内容

热门文章

  1. web前端警惕:意料之外的全局变量声明
  2. Adobe illustrator 设置字体和微调 - 连载 10
  3. 限时免费!Cell旗下 Heliyon 多学科特刊征稿
  4. DxO FilmPack 5教程:对照片进行艺术渲染,使其具有专业电影的色彩和颗粒感
  5. 如何初始化局部变量c语言_重要的事情说三遍:局部变量一定要初始化!你做到了吗?...
  6. 1.5 编程基础之循环控制 11 整数的个数(2022.01.09)--python
  7. 第十一届蓝桥杯省赛C++组试题 第3题 求阴影面积
  8. 百度自动提交链接的php应用seo功能实例
  9. java workthread_Java多线程基础(十)——Work Thread模式
  10. 水晶报表设置二维码_随时随地数据分析?老板喜欢的移动端报表,我用这七步做出来了...