1 / 11
文档名称:

ns-3网络仿真.pdf

格式:pdf   大小:609KB   页数:11页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

ns-3网络仿真.pdf

上传人:aishangni990 2022/4/24 文件大小:609 KB

下载得到文件列表

ns-3网络仿真.pdf

相关文档

文档介绍

文档介绍:: .
Helper packetSinkHelper ("ns3::TcpSocketFactory", InetSocketAddress
(Ipv4Address::GetAny (), sinkPort));
ApplicationContainer sinkApps = ( (1));
(Seconds (0.));
(Seconds (10.));
(1)节点上,端口设置为8080;程序起始时间为
0s,终止时间为10s;
Ptr<MyApp> app = CreateObject<MyApp> ();
app->Setup (ns3TcpSocket, sinkAddress, 1040, 1000, DataRate ("1Mbps"));
(0)->AddApplication (app);
app->SetStartTime (Seconds (1.));
app->SetStopTime (Seconds (10.));
(0);发送起始时间为1s;结束时间为10s;
这样网络拓扑和节点之间应用程序的设定已完成,接下来就是应用统计模块,输出节点
之间具体通信性能的参数,及时延,吞吐量,抖动率,丢包率;
NS-3中,有一个回调机制,方便我们来输出具体某个条件发生改变时就自动执行某个函
数,回调的实现是TraceConnectWithoutContext 函数,举个例子,在我的时延仿真中,输
出时延的代码我是这样写的:
static void
CalculateDelay (Ptr<const Packet>p,const Address &address)
随意编辑精品文档
{
static float k = 0;
k++;
static float m = -1;
static float n = 0;
n += (p->GetUid() - m)/2-1;
(p);
Time t = ();
std::cout << Simulator::Now ().GetSeconds () << "\t" << ()
<< std::endl;
m = p->GetUid();
}
首先定义一个时延的计算函数,是全局变量函数;
其次在 main 函数中使用回调机制:
(0)->TraceConnectWithoutContext("Rx",
MakeCallback(&CalculateDelay));
含义就是当接受端节点每收到一个TCP 包,就会执行一次 CalculateDelay 函数,计算这
个数据包在网络中传输的时延,并输出;
这样就完成了程序的编写;接下来就是输出具体数据:
在终端打开,到指定的文件夹中,输入
./waf --run scratch/delay > 2>&1
文件之后,再在终端用 GNUPLOT 文件中的图形即可:
随意编辑精品文档
下面用同样的拓扑,应用程序以及同样的错误模型仿真输出