gpt4 book ai didi

ns-3 - 使用 NS3 实现简单的 TCP

转载 作者:行者123 更新时间:2023-12-02 00:08:15 24 4
gpt4 key购买 nike

你好,
我是 NS3 的新手,我正在尝试修改 first.cc 以执行 TCP 而不是 UDP。
我没有收到任何错误,但也没有发生数据交换。
有人可以帮我吗?~
非常感谢~~
这是代码:主要是:

    NS_LOG_INFO ("Creating Topology");
Config::SetDefault ("ns3::OnOffApplication::PacketSize", UintegerValue (137));

Config::SetDefault ("ns3::OnOffApplication::DataRate", StringValue ("14kb/s"));
NodeContainer nodes;
nodes.Create (2);
//
PointToPointHelper pointToPoint;
pointToPoint.SetDeviceAttribute ("DataRate", StringValue ("100Mbps"));
pointToPoint.SetChannelAttribute ("Delay", StringValue ("20ms"));
//
NetDeviceContainer devices;
devices = pointToPoint.Install (nodes);
InternetStackHelper stack;
stack.Install (nodes);
Ipv4AddressHelper address;
address.SetBase ("109.11.12.0", "255.255.255.0");//address setting

Ipv4InterfaceContainer interfaces = address.Assign (devices);

OnOffHelper onOffHelper ("ns3::TcpSocketFactory", Address
(InetSocketAddress (Ipv4Address ("255.255.255.0"), 10)));
onOffHelper.SetAttribute ("OnTime", StringValue ("ns3::ConstantRandomVariable[Constant=1]"));
onOffHelper.SetAttribute ("OffTime", StringValue ("ns3::ConstantRandomVariable[Constant=0]"));

onOffHelper.SetAttribute ("DataRate",StringValue ("2Mbps"));
onOffHelper.SetAttribute ("PacketSize",UintegerValue(2000));
ApplicationContainer app = onOffHelper.Install (nodes.Get (0));

// Start the application
app.Start (Seconds (10.0));
app.Stop (Seconds (100.0));

// Create an optional packet sink to receive packets

PacketSinkHelper sink ("ns3::TcpSocketFactory",Address
(InetSocketAddress (Ipv4Address::GetAny (), 10)));
app = sink.Install (nodes.Get(1));
app.Start (Seconds (1.0));
app.Stop (Seconds (100.0));

pointToPoint.EnablePcapAll ("testtcp");

最佳答案

好的,我想现在已经解决了,首先,onoff helper的IP错误,它们应该与Ipv4AddressHelper相同。
那么app启动时间错误,不需要config onoff应用代码。
这是现在的代码:它可能不是很正确,但至少我现在可以从中读取结果。

NodeContainer nodes;
nodes.Create (2); //creat 2 nodes they are p2p

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

NetDeviceContainer devices;// put nodes in ndc
devices = pointToPoint.Install (nodes);
////give them an address
InternetStackHelper stack;
stack.Install (nodes);
Ipv4AddressHelper address;
address.SetBase ("109.11.12.0", "255.255.255.0");//address setting

Ipv4InterfaceContainer interfaces = address.Assign (devices);

//sink for reciever????
PacketSinkHelper sink ("ns3::TcpSocketFactory",Address
(InetSocketAddress (Ipv4Address::GetAny (), 10)));
//set a node as reciever
ApplicationContainer app = sink.Install (nodes.Get(0));

app.Start (Seconds (1.0));
app.Stop (Seconds (10.0));

OnOffHelper onOffHelper ("ns3::TcpSocketFactory", Address
(InetSocketAddress (Ipv4Address ("109.11.12.1"), 10)));
onOffHelper.SetAttribute ("OnTime", StringValue ("ns3::ConstantRandomVariable[Constant=1]"));
onOffHelper.SetAttribute ("OffTime", StringValue ("ns3::ConstantRandomVariable[Constant=0]"));

onOffHelper.SetAttribute ("DataRate",StringValue ("2Mbps"));
onOffHelper.SetAttribute ("PacketSize",UintegerValue(1280));
// ApplicationContainer
app = onOffHelper.Install (nodes.Get (1));
// Start the application
app.Start (Seconds (1.0));
app.Stop (Seconds (10.0));




pointToPoint.EnablePcapAll ("testtcp");
Simulator::Run ();

关于ns-3 - 使用 NS3 实现简单的 TCP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17013171/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com