您的位置:首页 > 理论基础 > 计算机网络

网络环境仿真控制软件

2007-10-30 10:49 295 查看
好些日子没有更新了……

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

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

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

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

原文摘抄如下:

“是要故意产生丢包吗?
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的源码下载。
http://snad.ncsl.nist.gov/nistnet/
http://sourceforge.net/projects/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’则表示路由没有成功启动

更多细节参见http://snad.ncsl.nist.gov/nistnet/

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

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

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



图6. 名为"statnist"的可执行文件的示例脚本

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

NISTnet的界面命令行是:
xnistnet

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

图7所示为NISTnet的GUI界面。



图7. NISTnet的GUI界面

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



图8. 模拟器打开后的NISTnet的GUI界面

嗯~大家一起学习下吧!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: