NS-3中的OnOffApplicaion作为协议仿真的CBR源
来源:互联网 发布:台湾留学生在大陆知乎 编辑:程序博客网 时间:2024/05/21 05:06
参考:http://blog.sina.com.cn/s/articlelist_2126687030_1_1.html
作为抽象类Application的属性:
- StartTime(0ns) - StopTime(0ns);
NS-3中的应用层协议,常用Application的子类有:
1、UdpEcho
2、OnOffApplication
3、PacketSink
在示例代码first.cc中,点对点通信,应用层协议使用了UdpEcho来发送应用层Udp包。2个节点分别为UdpEchoClient和UdpEchoServer,
UdpEchoClient的属性:
- MaxPackets(初值=100):应用层发送包的最大个数
- interval(1s):包与包之间的间隔时间
- RemotePort(0):包的目的端口
- PacketSize(100):包的大小
UdpEchoServer的属性:
Port(9):侦听包的端口
echoClient.SetAttribute ("MaxPackets", UintegerValue (1)); //指定最大的发包数、发包间隔、大小
echoClient.SetAttribute ("Interval", TimeValue (Seconds (1.0)));
echoClient.SetAttribute ("PacketSize", UintegerValue (1024));
最后用ApplicationContainer
来分别定义StartTime和StopTime;
ApplicationContainer serverApps = echoServer.Install (nodes.Get (1)); //使用Install方法将Application安装在#1的Node上 serverApps.Start (Seconds (1.0)); serverApps.Stop (Seconds (10.0)); //Application在第1秒开始运行,在第10秒停止 ApplicationContainer clientApps = echoClient.Install (nodes.Get (0)); //使用Install方法在节点0创建echoClient clientApps.Start (Seconds (2.0)); //第2秒开始,第10秒结束 clientApps.Stop (Seconds (10.0));
接着分析,常用OnOffApplication:
简单说就是,按照OnOff模式,向一个节点发送流量;详细的解释,在脚本中调用Application::StartApplication
之后,“On”和“Off”各自定义的随机值,交替切换。也即是,在“Off”模式时。没有流量产生,在“On”状态下,产生cbr流量(恒定比特率 Constants Bit Rate)即固定码率
这就是仿真使用的cbr流量源,cbr流量源被“data rate”和“packet size”定义,定义节点以data rate的恒定速率发送大小为packet size的IP包。
网络协议仿真中,研究MAC协议性能,应用层的时间要不要考虑?还是只考虑包从队列发出,到接收 这段时间的延迟情况,我个人认为是后者。
当应用程序开始运行后,第一个包将会在一个delay=packet/size之后发送;(这一段时间,我没搞懂,也认为对仿真MAC协议不重要,故省去,详细看官网API)
OnOffApplication属性:
- DataRate(500000bps):在On状态的data rate;
- PacketSize(512):在On状态的发包大小;
- Remote:目的地址
- OnTime(Constant=1.0):在On状态的随机值
- OffTime(Constant=1.0):在Off状态的随机值;
- MaxBytes(0):总共要发送的字节总数目,一旦这些字节被发送完,即使 在On状态,也不会有包被发送,初值为0意味着没有限制;
- Protocol(ns3::UdpSocketFactory):使用的协议
- 通过OnOffHelper来设置属性值
原本以为PacketSink也是很重要的应用,仔细看了API才知道,该应用,接收且开始产生流量到一个固定的IP地址和端口。属性值有Local(绑定rx socket的地址)以及Protocol(用于rx socket使用的协议,UDP),MAC协议仿真中主要使用OnOffApplication发产生CBR源,这是最重要的发现。
此外,负载的概念就是应用层的datarate,通过实验,观察,在负载>2Mbps时候,,物理层速率为11Mbps,接收到的包有丢失,所以2Mbps负载,可以当做是指标点了。
- NS-3中的OnOffApplicaion作为协议仿真的CBR源
- NS 发送一个 cbr 数据包的过程
- MFlood 路由协议(NS -2仿真)
- 开始参与ns-3仿真
- ns-3仿真可视化工具
- NDN-ns-3-仿真第一步:创建自己的模块
- NS仿真
- NS 网络模拟和协议仿真黄化吉教材的修正——break用例P24
- NS 网络模拟和协议仿真黄化吉教材的修正——continue用例P24
- NS-3上下行链路丢包仿真
- NS-2中的定向扩散协议分析
- linux系统下NS 2(网络仿真开源软件)的安装
- ns-2与TCP拥塞模拟 之四 ns-2仿真脚本中的元素
- NS-仿真实验--FTP
- HSTCP/ns仿真网站
- NS-仿真实验--FTP
- 关于NS-2仿真中移动节点的设置
- NS-2仿真中移动节点的设置
- linux学习
- NS-3中计算packet延迟(每一个包的延迟)
- springboot整合jedisCluster
- rsyslog及logrotate小结
- 在MyEclipse上安装windowBuilder插件
- NS-3中的OnOffApplicaion作为协议仿真的CBR源
- ns3-3
- 正则表达式
- ns3-4
- hdu A+B
- BZOJ1633: [Usaco2007 Feb]The Cow Lexicon 牛的词典 DP
- 计数排序—《算法导论》学习笔记之五
- ns3-5
- NYoj 024素数距离问题