Clumsy

差网络环境模拟工具
授权协议 MIT
开发语言 C/C++
所属分类 管理和监控、 DevOps/运维工具
软件类型 开源软件
地区 不详
投 递 者 郎鸿雪
操作系统 Windows
开源组织
适用人群 未知
 软件概览

clumsy 能在 Windows 平台下人工造成不稳定的网络状况,方便你调试应用程序在极端网络状况下的表现。

简介

利用封装 Winodws Filtering Platform 的WinDivert 库,clumsy 能实时的将系统接收和发出的网络数据包拦截下来,人工的造成延迟,掉包和篡改操作后再进行发送。无论你是要重现网络异常造成的程序错误,还是评估你的应用 程序在不良网络状况下的表现,clumsy 都能让你在不需要额外添加代码的情况下,在系统层次帮你达到想要的效果:

特色:        

  • 下载即用,不需要安装任何东西。

  • 不需要额外设置,不需要修改你的程序的代码。

  • 系统级别的网络控制,可以适用于命令行,图形界面等任何 Windows 应用程序。

  • 不仅仅只支持 HTTP,任何 TCP, UDP 的网络连接都可以被处理。

  • 支持本地调试(服务器和客户端都在 localhost)

  • "热插拔",你的程序可以一直运行,而 clumsy 可以随时开启和关闭。

  • 实时调节各种参数,详细控制网络情况。

实例

下面的动画展示了 clumsy 作用于一个本地的基于 netcat 的 UDP 服务器/客户端的情况。仔细观察你可以看到数据根据在 clumsy 的影响下产生了相应的变化。          

如果你基本知道了 clumsy 是干什么用的,不妨到下载页面选择适用于你系统的版本进行下载。

详细信息

clumsy 首先根据用户选择的 filter 来拦截指定的网络数据。在 filter 中可以设定你感兴趣的协议(tcp/udp),端口号,是接收还是发出的端口。你也可以通过简单的逻辑语句来进一步缩小范围。当 clumsy 被激活时,只有符合这些标准的网络数据会被进行处理,而你不感兴趣的数据仍然会由系统正常传输。

当被 filter 的网络数据包被拦截后,你可以选择 clumsy 提供的功能来有目的性的调整网络情况:

  1. 延迟(Lag),把数据包缓存一段时间后再发出,这样能够模拟网络延迟的状况。

  2. 掉包(Drop),随机丢弃一些数据。

  3. 节流(Throttle),把一小段时间内的数据拦截下来后再在之后的同一时间一同发出去。

  4. 重发(Duplicate),随机复制一些数据并与其本身一同发送。

  5. 乱序(Out of order),打乱数据包发送的顺序。

  6. 篡改(Tamper),随机修改小部分的包裹内容。

尽管当前宽带网络连接十分普及,但网络传输其本身在本质上总不是稳定的。如果你的应用程序中没有应对各种情况的处理,那么有可能一个丢失的 UDP 包裹都会让你的程序崩溃。正确的调试这类行为            显然需要再代码结构上进行仔细的设计和处理,还会很花功夫。而且在某些封装紧密的开发环境(Unity3D 自带的网络库可能是一个例子)下会更麻烦。clumsy 以尽可能减轻程序员负担为目标,希望提供一个简单方便(但并不完美)的解决方案。

  • las测试中,需要对带宽进行限制(control bandwidth throughput,产生bottleneck) 【带宽】clumsy 简介 带宽限制首先要计算带宽 需要在clumsy 中统计带宽加以限制。 clumsy 官方 带宽 由 skywind3000 大神首先加以实现: rate.c 官方仓库合并了这个改动: bandwidthModule // bandwidth cap mod

  • 参考 [clumsy工具介绍](https://www.cnblogs.com/shouke/p/10157873.html) 感谢作者。 简介 利用封装 Winodws Filtering Platform 的WinDivert 库, clumsy 能实时的将系统接收和发出的网络数据包拦截下来,人工的造成延迟,掉包和篡改操作后再进行发送。无论你是要重现网络异常造成的程序错误,还是评估你的应用程

  • clumsy 能在 Windows 平台下人工造成不稳定的网络状况,方便你调试应用程序在极端网络状况下的表现。 简介 利用封装 Winodws Filtering Platform 的WinDivert 库, clumsy 能实时的将系统接收和发出的网络数据包拦截下来,人工的造成延迟,掉包和篡改操作后再进行发送。无论你是要重现网络异常造成的程序错误,还是评估你的应用 程序在不良网络状况下的表现,c

  • 类似软件 以下是有类似功能的软件,如果 clumsy 不能满足你的需求你可以试试这些。 Network Emulator for Windows Toolkit (Windows) - 微软提供的网络模拟工具。 ipfw or pfctl (FreeBSD/OSX) - BSD 下的网络模拟工具。 wipfw (Windows) - ipfw Windows 移植,但功能只有 ipfw 的一个子集

  • 1.什么是弱网测试? 弱网测试主要就是对带宽、丢包、延时等进行模拟弱网环境。 衡量网络性能好坏的几个指标: 带宽(吞吐量):单位时间内传输的数据量,单位通常是:每秒比特数:bps。带宽反映了网络的传输能力,越大越好。 丢包:数据丢包个数=发送的数据包数-接收的数据包数。丢包反映了网络可靠性,越小越好。 时延:数据包从发送开始到接收到该数据,所耗费的时间,单位通常是ms。时延反映了网络的速度,越小越

 相关资料
  • Since 9.6 h5NetworkChange 网络环境发生变化时,会触发这个事件,如需详细网络环境信息,请使用getNetworkType来获取 使用方法 document.addEventListener('h5NetworkChange', function(e) { alert("网络环境发生变化,可调用getNetworkType接口获取详细信息"); }, false); 代

  • redis高可用环境不需要进行心跳线的配置,每个物理节点的网卡进行双网卡主备绑定生成bond0即可。

  • CORE https://github.com/coreemu/core IMUNES https://github.com/imunes/imunes Cloonix http://virtual-network-kvm.net/ Mininet http://mininet.org/ Mininet-WiFi http://www.ramonfontes.com/mininet-wifi/ V

  • 我正在使用bitnami Django堆栈。不使用虚拟环境时,WSGI工作正常 但是我使用在root中安装了虚拟环境,现在WSGI不适用于虚拟环境项目 我的apache配置文件是 我的wsgi文件是 apache日志是: mod_wsgi(pid=4070):处理wsgi脚本“/opt/bitnami/apps/run/live_cybrhome时发生异常。wsgi’。 回溯(最近一次呼叫最后一次

  • 让我们先思考一个问题:对神经网络模型添加新的层,充分训练后的模型是否只可能更有效地降低训练误差?理论上,原模型解的空间只是新模型解的空间的子空间。也就是说,如果我们能将新添加的层训练成恒等映射$f(x) = x$,新模型和原模型将同样有效。由于新模型可能得出更优的解来拟合训练数据集,因此添加层似乎更容易降低训练误差。然而在实践中,添加过多的层后训练误差往往不降反升。即使利用批量归一化带来的数值稳定

  • 本文向大家介绍Vmware+Centos7搭建Openstack环境(网络配置),包括了Vmware+Centos7搭建Openstack环境(网络配置)的使用技巧和注意事项,需要的朋友参考一下 Vmware12+Centos7搭建Openstack环境—网络配置 一、虚拟机配置 根据OpenStack官方的教程,节点的环境中比较重要的就是网络的配置,首先先在虚拟机中进行设置,选择编辑中的虚拟网络