网络环境仿真控制软件

好些日子没有更新了……

最近在做一些研究,需要实际改变网络状态,比如拥塞、丢包等,以监测产品在此情景下的表现。

网上居然没找着……大概是我的关键字用的不对了……搜索“+网络 +控制”,未果……

于是群发邮件列表寻找大牛帮助。

这里真是要感叹所里人才云集啊!不出二十分钟,再收邮件时就已有了回复! 

原文摘抄如下:

“是要故意产生丢包吗?
windows下wipfw可以做到,具体方法
参考http://wipfw.sourceforge.net/doc.html
prob match_probability的说明。
linux下可以用NISTnet

嗯,windows下的就看那个连接吧,搜了搜linux下的NISTnet。

转一个也是CSDN上某兄弟的文章:

NistNet是一款基于 Linux系统能够动态实时仿真IP网络环境的开源工具,它可实现端到端网络中那些关键性能,例如延迟、抖动、丢包等多种复杂的网络环境的模拟,为那些对于网络环境较为敏感的应用提供了便利的测试方法。
 
NistNet是做为 Linux内核的一个可动态加载的模块来实现的。它用图形用户接口和命令行接口两种使用形势。
 
下面介绍如何配置、编译、安装、使用 NistNet。
 
1) 下载 NistNet源文件。
Sourforge和 Nist的项目主页都提供NistNet的源码下载。
下载nistnet.2.0.12b.tar.gz压缩包
并在一台运行Linux的主机上解压缩此文件。
2) 配置
运行解压缩目录下的 configure命令。
3) 编译
Configure如果无误,即可运行 make命令进行编译。
4) 安装
编译后,运行 Make install进行安装。
5) 使用
./Load.Nistnet 此命令可以加载NistNet到内核
    然后可以通过
    cnistnet 或者xnistnet启动NistNet工具。
例:为源 IP为192.168.1.203:5060目的IP为192.168.100.156:5060的UDP流量增加10%丢包率,并且增加1s的延时。
执行下序命令:
./Load.NistNet
cnistnet -u
cnistnet –a 192.168.1.203:5060 192.168.100.156:5060 --drop 10 --delay 1000
 
 
注:使用此功能之前要使能Linux系统的路由功能,以便能够跨网段转发
使能Linux路由功能的命令是
echo 1 > /proc/sys/net/ipv4/ip_forward
查看路由功能是否启动的命令是
cat  /proc/sys/net/ipv4/ip_forward
如果终端显示‘1’则表明路由功能启动成功,如果显示‘0’则表示路由没有成功启动

还有一个讲某产品使用的,不过里面涉及的NISTnet说明还是不错的:

使用NISTnet:
运行NISTnet之前,在计算机启动时执行以下命令:
modprobe nistnet

这条命令可以是登录脚本的一部分,或者用户可以自行创建一个可执行文件。 图6所示为一个名为" statnist"的可执行文件的示例脚本。

Figure 6. Sample script for an executable file named
图6. 名为"statnist"的可执行文件的示例脚本

如果用户创建了一个名为"statnist"的可执行文件,NISTnet的GUI命令行就变为:
startnist

NISTnet的界面命令行是:
xnistnet

NISTnet的非界面命令行变是:
cnistnet

图7所示为NISTnet的GUI界面。

Figure 7. The GUI screen image of NISTnet.
图7. NISTnet的GUI界面

在GUI界面用户可以输入源地址、目的地址和网络损耗,例如以ms为单位的平均延时和延时差值、丢包率以及包重复率。输入值后,用户就可以更新内容。更新完毕后,点击"Emulator is Off"按钮使其变为"Emulator is On",此时打开了模拟器。 图8所示为打开模拟器后的GUI图。

Figure 8. The GUI screen image of NISTnet after the emulator is turned on.
图8. 模拟器打开后的NISTnet的GUI界面
嗯~大家一起学习下吧!
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
网络环境仿真,顾名思义,通信网络模拟,就是用计算机程序对通信网络进行模型化,通过程序的运行模仿通信网络的运行过程。那么为什么要进行通信网络的模拟呢? 在网络迅速膨胀的今天,网络研究人员一方面要不断思考新的网络协议和算法,为网络发展做前瞻性的基础研究;另一方面也要研究如何利用和整合现有的网络资源,使网络达到最高效能。无论是哪一方面都需要对新的网络方案进行验证和分析。进行网络技术的研究大概有以下3种手段: (1)分析方法,就是对所研究的对象和所依存的网络系统进行初步分析,根据一定的限定条件和合理假设,对研究对象和系统进行描述,抽象出研究对象的数学分析模型,利用数学分析模型对问题进行求解。 (2)实验方法,就是设计出研究所需要的合理硬件和软件配置环境,建立测试床和实验室,在现实的网络上实现对网络协议、网络行为和网络性能的研究。 (3)模拟方法,应用网络模拟软件(自己开发或选用一个通用的网络模拟软件),建立所研究的网络系统的模拟模型,在计算机上运行这个模型,并分析运行的输出结果。 然而,前两种方法都存在很大的局限性。分析方法的有效性和精确性受假设限制很大。当一个系统很复杂时,就无法用一些限制性假设来对系统进行详细描述。实验方法的局限在于成本很高,重新配置或共享资源很难,运用起来不灵活,实验床的规模很难做到很大,不能实现网络中的多种通信流量和拓扑的融合。而模拟方法在很大程度上可以弥补前两种方法的不足。模拟方法可以根据需要设计所需的网络模型,用相对很少的时间和费用了解网终在不同条件下的各种特性,获取网络研究的丰富有效的数据。网络模拟无疑提供了一个方便、高效的验证和分析方法,因此网络模拟技术在现代通信网络设计和研究中的作用正变得越来越大。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值