4.7不同场景仿真
通过setdest及cbrgen生成不同的场景,重复2-5步骤,对不同的场景进行反复测试,分析仿真结果,获取仿真结论。
5. 文件内容详解
5.1 olsr_xiangmu.tcl文件分析
NS中主要是使用OTCL脚本来描述模拟环境中网络的环境和参数设置。下面介绍OTCL脚本的部分核心程序。
上述代码主要是对无线节点参数的设置,设置物理信道类型为无线信道,
网络接口类型为无线物理层,MAC层协议为Tdma协议,接口队列类型是IFQ队列,逻辑链路层类型是LL层,天线模型是全向天线,网络接口队列的大小是100,无线节点的个数为16个(或24/32),无线路由协议是DSDV(或OLSR)协议,设定拓扑范围长度是1000m,宽度是1000m,设定模拟时间为100s,其仿真场景为scen_n16_r20文件所述场景,其数据流为“cbr_n16_m4_r2_s1”所述数据流。
上述代码是对Tdma协议的参数设置。时隙的数目等于节点的个数,即16
个,时隙的大小为2500bytes(见第3.1节),最大传输速率为2Mb/s。
22
上述代码建立一个拓扑图对象,记录节点的移动情况,创建God对象,存储网络状态以及节点间的连接信息。
上述代码从命令行获取代表路由协议的参数,并判断此参数为何种路由协议,输出当前仿真为何种协议的仿真,并开启相应的Trace跟踪文件和NAM显示文件。
23
上述代码主要是对无线节点的具体配置。先创建物理信道对象,然后配置
无线节点(包括使用何种路由协议,何种mac协议,无线信道的模型等)。
上述代码在OTCL脚本中利用source命令导入场景拓扑文件及数据流生成文件。
上述代码是定义一个结束过程,关闭Trace文件和NAM显示文件,模拟结
束时调用。
24
上述代码表示的是模拟结束时调用结束过程,最后执行模拟。
5.2 throughput.awk文件
下面主要对throughput.awk文件进行详细的介绍。
上述代码主要对Trace文件的分解和提取操作,其具有固定的格式,Trace
文件的具体格式见1.3.5节。
上述代码用于对程序所读取的记录进行的操作,该操作是计算目的节点为2,5,6,7的已接收的数据字节,以及接收到每个分组的时间。
上述代码用于计算网络的吞吐量,最后打印出吞吐量到文档中,之后用于
gnuplot中画图后直观的看出网络的吞吐量水平。 5.3 delay.awk及delay_ave.awk文件
下面主要对delay.awk及delay_ave.awk文件的核心代码进行详细的介绍。
25
上述代码是对程序所读取的记录进行的操作,该操作的功能是记录由节点1发送的数据分组的发送时间以及节点2接收的数据分组的接收时间,并获取跟踪文件所记录的分组的最高id。
上述代码将每个成功接收的分组的传输时间输出,即获取数据分组的端到
端时延。
上述代码为delay_ave.awk中的代码,作用是计算一次仿真过程中成功接收分组的平均端到端时延并输出。
26