AnimationInterface生成xml文件的逻辑
NetAnim入口.xml文件是通过ns3::AnimationInterface类生成的。
在模拟开始之前,AnimationInterface将自己注册为tx和rx事件的跟踪挂钩。
当安排好数据包的发送或接收时,将调用AnimationInterface中的相应tx和rx跟踪挂钩。
调用rx挂钩时,AnimationInterface将知道数据包在两个端点之间流动,并将此信息以XML格式以及相应的tx和rx时间戳添加到跟踪文件中。
AnimationInterface将了解数据包在两个端点之间流动,并将此信息以XML格式以及相应的tx和rx时间戳添加到跟踪文件中。
AnimationInterface仅在调用rx跟踪挂钩时才记录数据包。 每个tx事件必须与一个rx事件匹配。
xml文件内容
1.xml文件主要有以下三部分组成:
- 网络拓扑(节点、链路)
- 在有线链路上传输的包
- 在无线链路上传输的包
2.元素
-
<anim>:root element
-
<topology> :包含node和link element,用于设置画布坐标轴,如:
<topology minX = "-6.42025" minY = "-6.48444" maxX = "186.187" maxY = "188.049">
minX minY maxX maxY分别为画布最大最小坐标轴属性 -
<node> :描述节点id和坐标轴,如:
<node id = "8" locX = "107.599" locY = "96.9366" />
-
<link>:描述两个节点间的有线链路,包含fromId、toId属性,如:
-
<p>:描述在有线链路上从一个节点到另一个节点的过程,包含:
fId = 发端节点id
fbTx = 包的第1bit发送时间
lbTx = 包的最后1bit发送时间
toId = 接收端节点id
fbRx = 包的第1bit接收时间
lbRx = 包的最后1bit接收时间
如:<p fId="1" fbTx="1" lbTx="1.000067199" tId="0" fbRx="1.002" lbRx="1.002067199"/>
-
<wp>:描述在无线链路上从一个节点到另一个节点的过程,如:
<wp fId = "20" fbTx = "0.003" lbTx = "0.003254" range = "59.68176982" tId="32" fbRx="0.003000198" lbRx="0.003254198"/>
以first.xml文件为例分析
//与NetAnim仿真工具版本相对应
<anim ver="netanim-3.108" filetype="animation" >
//设置节点id与位置
<node id="0" sysId="0" locX="99" locY="40" />
<node id="1" sysId="0" locX="87" locY="8" />
//设置节点颜色(RGB模式)
<nu p="c" t="0" id="0" r="255" g="0" b="0" />
<nu p="c" t="0" id="1" r="255" g="0" b="0" />
//设置P2P链路
//fromId:源节点Id
//toId:目的节点Id
//fd:FromNode Description(for IP Address) 源节点IP
//td:ToNode Description(for IP Address) 目的节点IP
//ld:Link Description(for Bandwidth,delay,etc)信道特征
<link fromId="0" toId="1" fd="10.1.1.1~00:00:00:00:00:01" td="10.1.1.2~00:00:00:00:00:02" ld="" />