【问题标题】:ns3 poisson traffic modelns3泊松流量模型
【发布时间】:2013-03-18 15:06:57
【问题描述】:

我正在尝试学习 ns3,并且正在尝试通过使用 onofApplication 来修改其中一个示例来生成 Vbr 而不是 Cbr,但是代码不起作用,我不知道为什么,您能帮忙请问我?

#include "ns3/core-module.h"
#include "ns3/network-module.h"
#include "ns3/csma-module.h"
#include "ns3/internet-module.h"
#include "ns3/point-to-point-module.h"
#include "ns3/applications-module.h"
#include "ns3/ipv4-global-routing-helper.h"
#include "ns3/random-variable.h"
#include "ns3/socket-factory.h"
#include "ns3/udp-socket-factory.h"
#include "ns3/on-off-helper.h"
#include "ns3/nstime.h"


using namespace ns3;

NS_LOG_COMPONENT_DEFINE ("SecondScriptExample");

int 
main (int argc, char *argv[])
{
  bool verbose = true;
  uint32_t nCsma = 3;

  CommandLine cmd;
  cmd.AddValue ("nCsma", "Number of \"extra\" CSMA nodes/devices", nCsma);
  cmd.AddValue ("verbose", "Tell echo applications to log if true", verbose);

  cmd.Parse (argc,argv);

  if (verbose)
    {
      LogComponentEnable ("UdpEchoClientApplication", LOG_LEVEL_INFO);
      LogComponentEnable ("UdpEchoServerApplication", LOG_LEVEL_INFO);
    }

  nCsma = nCsma == 0 ? 1 : nCsma;

  NodeContainer p2pNodes;
  p2pNodes.Create (2);

  NodeContainer csmaNodes;
  csmaNodes.Add (p2pNodes.Get (1));
  csmaNodes.Create (nCsma);

  PointToPointHelper pointToPoint;
  pointToPoint.SetDeviceAttribute ("DataRate", StringValue ("5Mbps"));
  pointToPoint.SetChannelAttribute ("Delay", StringValue ("2ms"));

  NetDeviceContainer p2pDevices;
  p2pDevices = pointToPoint.Install (p2pNodes);

  CsmaHelper csma;
  csma.SetChannelAttribute ("DataRate", StringValue ("100Mbps"));
  csma.SetChannelAttribute ("Delay", TimeValue (NanoSeconds (6560)));

  NetDeviceContainer csmaDevices;
  csmaDevices = csma.Install (csmaNodes);

  InternetStackHelper stack;
  stack.Install (p2pNodes.Get (0));
  stack.Install (csmaNodes);

  Ipv4AddressHelper address;
  address.SetBase ("10.1.1.0", "255.255.255.0");
  Ipv4InterfaceContainer p2pInterfaces;
  p2pInterfaces = address.Assign (p2pDevices);

  address.SetBase ("10.1.2.0", "255.255.255.0");
  Ipv4InterfaceContainer csmaInterfaces;
  csmaInterfaces = address.Assign (csmaDevices);

  UdpEchoServerHelper echoServer (9);

  ApplicationContainer serverApps = echoServer.Install (csmaNodes.Get (nCsma));
  serverApps.Start (Seconds (1.0));
  serverApps.Stop (Seconds (10.0));

    OnOffHelper onOffAP ("ns3::UdpSocketFactory", csmaInterfaces.GetAddress(nCsma));
    onOffAP.SetAttribute("PacketSize", UintegerValue(1024));
    onOffAP.SetAttribute("OffTime",RandomVariableValue(ExponentialVariable(0.01)));
    // the packet arrivalrate on AP side is 100 pkt/sec, so we set mean value as 1/100
    onOffAP.SetAttribute("OnTime",RandomVariableValue(ConstantVariable(0.0001583)));
    // the constanttime for sending one packet
    onOffAP.SetAttribute("DataRate", StringValue ("54Mbps"));

 // UdpEchoClientHelper echoClient (csmaInterfaces.GetAddress (nCsma), 9);
  //echoClient.SetAttribute ("MaxPackets", UintegerValue (1));
  //echoClient.SetAttribute ("Interval", TimeValue (Seconds (1.0)));
  //echoClient.SetAttribute ("PacketSize", UintegerValue (1024));

  ApplicationContainer clientApps = onOffAP.Install (p2pNodes.Get (0));
  clientApps.Start (Seconds (2.0));
  clientApps.Stop (Seconds (10.0));

  Ipv4GlobalRoutingHelper::PopulateRoutingTables ();

  pointToPoint.EnablePcapAll ("second");
  csma.EnablePcap ("second", csmaDevices.Get (1), true);

  Simulator::Run ();
  Simulator::Destroy ();
  return 0;
}

我收到了这个错误

msg="Invalid value for attribute set (OffTime) on ns3::OnOffApplication", file=../src/core/model/object-factory.cc, line=75
libc++abi.dylib: terminate called without an active exception

【问题讨论】:

  • 您使用的是哪个版本的 NS-3?
  • 我使用的是 NS3 3.16 版
  • 实际上,我尝试对 OffTime (NS3 3.13) 使用指数变量,这对我来说效果很好!

标签: c++ poisson ns-3


【解决方案1】:

onOffAP.SetAttribute("OnTime", StringValue("ns3::ConstantRandomVariable[Constant=4]")); onOffAP.SetAttribute("OffTime", StringValue("ns3::ConstantRandomVariable[Constant=0]"));

他们从 API 3.15 开始进行了一些更改。看看https://groups.google.com/group/ns-3-users/tree/browse_frm/month/2012-11/be3cd40a0dc9c3a1?rnum=461&start=250&_done=/group/ns-3-users/browse_frm/month/2012-11?start%3D250%26sa%3DN%26&pli=1

或者看看在http://code.nsnam.org/ns-3-dev/file/eb7335c2423c/examples/wireless/wifi-hidden-terminal.cc设置OffTime的示例代码

希望对你有所帮助.. :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-22
    • 2016-11-28
    • 2023-04-04
    相关资源
    最近更新 更多