网络仿真的意义
在网络规划和设计、网络设备研发、网络协议开发中,需要一种手段来反映和预测网络的性能 网络仿真可以提高网络规划设计的可靠性和准确性,明显降低网络投资风险,减少不必要的浪费
Ns-2 is a discrete event simulator
Scheduler
Advance of time depends on the timing of events
Object-oriented simulator
C++ : fast to run, slower to change – protocol implementation
Otcl : slower to run, fast to change – simulation configuration
Components
Ns – simulator itself
Nam – network animator Visualize ns (or other) output
Simulation procedure
Pre-processing
Traffic and topology model
Post-processing Trace analysis, often in awk, perl, or tcl
Platform
Unix (Linux)
Windows (cygwin)
Packages
Tcl/tk
Otcl
tclcl
Ns-2
Nam
Xgraph
C++ compiler
NS2安装
windows:虚拟机 cygwin Liunx 版本2.19或2.31 安装过程 (请百度)
Linux 下NS2使用
“cd 文件夹名” 与 “cd..” 命令进入编写好的tcl脚本所在的文件夹 “ns2 xxx.tcl” 测试:~/ns-allinone-x.x/ns-x.x/ns-tutorial/examples
Tcl与OTcl
Tcl:Tool Command Language,是一种脚本语言
OTcl:Object Tcl,是在Tcl的基础上进行了面向对象的封装 NS中主要使用Tcl/OTcl来模拟环境中网络的环境和参数设置
Tcl基本语法
Tcl只支持一种数据结构,即字符串
Tcl基本语法
Cmd arg1 arg2
Tcl中对代码进行注释用“#”
NS2基本组件
节点(node):网络设备
链路(link):网络物理连接
包(packet):数据包
代理(Agent):创建传输层的端到端连接
调度器( Scheduler):事件调度
用Tcl/Otcl进行网络仿真
以端到端测量实验为例开始网络仿真
网络中测量端节点的时延、丢包率等参数对于了解网络运行状态、优化网络结构、提高网络服务质量具有十分重要的作用 本项目实验的目的是通过构建网络环境,测量网络中的节点之间时延、丢包率等参数,分析参数与网络流量的变化关系
以端到端测量实验为例开始网络仿真
初始化
创建ns simulator
创建.tr文件(记录仿真结果)
创建.nam文件(记录仿真过程)
设置结束函数
设置仿真中所需的参数
创建仿真拓扑
创建节点
创建并设置链路
设置链路各链路在nam中的排列方式
创建流量
探测流量:向网络中添加的额外流量,通过对这些流量进行统计分析可以获得端到端性能参数,在ns2中可以通过设置CBR、UDP、TCP等形式的流量实现。
背景流量:用于模拟网络中已经存在的流量,可以有TCP、UDP、短时TCP等多种形式。(添加准则:尽量能够反映实际网络中流量的特性)
设置步骤
设置流量的产生、结束
结束仿真
实例说明
dest_node_num对应拓扑图的最下面,给每个节点编号
for循环创建节点,然后一条一条创建链路
队列设置小一点(几十),方便观察丢包
91——131行: 每条链路源点和目的节点的节点编号,放入到两个向量中ls和ld
设置背景流量,希望和真实流量行为一致
设置每条udp流的起始和结束时间
在链路的源节点创建一个agent,把agent链接到目的节点。
发送一个随机产生的udp流,发一段时间,挺一段时间,发送和停止的时间各占一半,创建了每条链路上的udp流,每一条链路上都添加了link_udp_num条UDP流
每一个包是一个CBR流 (修改为源到每个叶节点的所有探测包都在一个CBR流)
对发包过程进行简化,每条CBR流的起始和结束时间
实验目的:
熟悉Tcl/OTcl脚本语言的基本语法,熟悉NS2的基本组件和使用 掌握使用Tcl/OTcl脚本语言实现网络仿真环境,仿真结果分析方法
实验步骤:
使用NS2构建仿真网络拓扑,给出相应的拓扑结构图,不少于20个节点
利用NS2流量发生器模拟产生流量,使链路平均负载达到需要的比例,给出链路平均负载的计算过程和结果
利用CBR流量发生器在端节点之间发送数据包
通过对NS2仿真结果文件(*.tr文件)的分析,统计CBR流量数据包的传输情况,计算端到端平均排队时延和丢包率
验证链路平均负载对端到端时延和丢包率的影响,给出端到端时延和丢包率随链路平均负载的变化曲线图和结果分析,并对结果进行分析