NS3 Tracing System


整个仿真的目的是为了进一步研究生成结果,其中NS3提供的Tracing系统就是为了这个目的而定制的。

(1)NS3 tracing系统的基本目标是:


1.对于基本的任务,tracing系统允许用户为常用的tracing发送端生产标准的tracing,并且可以定制哪些对象生成tracing。

2.中间的用户必须能够拓展tracing系统来修改生成的输出格式,或者在不修改仿真器核心的情况下,插入新的tracing发送端。

3.高级用户可以修改仿真器核心来增加新的tracing发送端和接收端。

NS3 tracing系统是建立在独立的tracing发送端和接收端概念上,并且有统一的机制来连接发送端和接收端。Trace发送端可以在仿真过程中产生信号事件,并且提供有关数据访问通道。例如,一个trace发送端可以提供一个数据包被一个网络设备接收的时间,并且根据接收端的要求提供此数据包的内容。


Trace发送端自身是没用的,必须和接收端提供的有用信息代码段“相连”。Trace接收端是trace发送端提供的事件和时间的使用者。例如,可以创建一个可以输出数据包有用信息的trace接收端(当连接到之前例子中的trace发送端)。


这种发送端和接收端明确分工的基本原理是允许用户将已有的发送端与新类型的接收端相连,而不需要编辑和重新编译仿真器的核心。因此,上面的例子中,用户可以在他的脚本中定义一个新的tracing接收端,并且可以将其与与仿真核心中第一的tracing接收端相连。


NS3提供两种tracing机制:ASCII码tracing和pcap级别的tracing。

(1.1)ASCII码Tracing


NS3提供了封装底层tracing系统的helper功能,用来提供配置简单数据包的更多细节。如果你使用了这个功能&

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ns-3提供了一个名为NetAnim的可视化工具,可以将ns-3模拟的网络拓扑和流量以动画的形式展现出来。在NetAnim中,可以将ns-3的仿真结果导出为.xml格式,然后使用NetAnim打开这个文件进行可视化。 在NS-3中,要启用tracing记录功能,需要使用“ns3::AsciiTraceHelper”类。将需要记录的对象传递给该类的“CreateFileStream”方法,可以将对象的跟踪信息记录到指定的AsciiTrace文件中。例如,以下代码将针对节点0和节点1记录其间的所有P2P通信: ``` AsciiTraceHelper ascii; Ptr<OutputStreamWrapper> stream = Create<OutputStreamWrapper> ("trace.pcap", std::ios::out); ascii.CreateFileStream ("trace.tr"); devices.Get (0)->GetObject<PointToPointNetDevice> ()->TraceConnectWithoutContext ("PhyTxEnd", MakeBoundCallback (&TraceP2p, stream)); devices.Get (1)->GetObject<PointToPointNetDevice> ()->TraceConnectWithoutContext ("PhyRxEnd", MakeBoundCallback (&TraceP2p, stream)); ``` 在上述代码中,TraceP2p是一个回调函数,用于将记录的跟踪信息写入AsciiTrace文件中。例如: ``` void TraceP2p (Ptr<OutputStreamWrapper> stream, Ptr<const Packet> packet, const WifiMacHeader &hdr) { *stream->GetStream () << Simulator::Now ().GetSeconds () << " "; *stream->GetStream () << hdr.GetAddr1 () << " "; *stream->GetStream () << hdr.GetAddr2 () << " "; *stream->GetStream () << packet->GetSize () << std::endl; } ``` 在模拟仿真结束后,可以使用NetAnim打开记录的AsciiTrace文件,并将其可视化。在NetAnim中,可以设置仿真时间、节点位置、节点属性等,并且可以以动画形式展示仿真结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值