NS3笔记--OnOffApplication

关于ns-3 OnOffApplication的使用,主要通过以下几个语句的设置:

//设置目的IP地址,及端口号

OnOffHelper onoffA1 (“ns3::UdpSocketFactory”,
Address (InetSocketAddress (Ipv4Address (“10.1.1.2”), 1)));

//设置发送速率
onoffA1.SetConstantRate (DataRate (“1Mb/s”));

//onOffApplication是“open”“close”的模式交替工作的,这里设置“open”的时间,和“close”的时间。

onoffA1.SetAttribute (“OnTime”, StringValue (“ns3::ConstantRandomVariable[Constant=1]”));
onoffA1.SetAttribute (“OffTime”, StringValue (“ns3::ConstantRandomVariable[Constant=0]”));

//将此APP安装到节点上

ApplicationContainer appA1 = onoffA1.Install (terminals.Get (2));

//设置APP的开始时间和结束时间

appA1.Start (Seconds (0.0));
appA1.Stop (Seconds (2.0));

这里需要注意的是:需要先设置发送速率,再设置"OnTime""OffTime"时间。原因:

void
OnOffHelper::SetConstantRate (DataRate dataRate, uint32_t packetSize)
{
m_factory.Set (“OnTime”, StringValue (“ns3::ConstantRandomVariable[Constant=1000]”));
m_factory.Set (“OffTime”, StringValue (“ns3::ConstantRandomVariable[Constant=0]”));
m_factory.Set (“DataRate”, DataRateValue (dataRate));
m_factory.Set (“PacketSize”, UintegerValue (packetSize));
}

这是ns-3的SetConstantRate()函数的实现,如果先设置"OnTime"“OffTime"时间,再设置发送速率,则在SetConstantRate()函数内部会修改之前设置的"OnTime”"OffTime"时间,导致前面的设置不能生效。

以上参考的“沙_shine”的博客,源地址添加链接描述
但是针对“如果先设置"OnTime"“OffTime"时间,再设置发送速率,则在SetConstantRate()函数内部会修改之前设置的"OnTime”"OffTime"时间,导致前面的设置不能生效。”的说法,本人试了一下先设置时间再设置发送速率和先设置发送速率再设置时间两种情况下,网络的吞吐量、丢包和时延都是一样的,求大神解释

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值