基于NS2的UDP仿真报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于NS2的UDP协议仿真
1. UDP协议的特点
UDP 是OSI 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。UDP 协议基本上是IP协议与上层协议的接口。UDP协议适用端口分别运行在同一台设备上的多个应用程序。UDP协议并不提供数据传送的保证机制。如果在从发送方到接收方的传递过程中出现数据报的丢失,协议本身并不能做出任何检测或提示。UDP协议称为不可靠的传输协议。
UDP报头由4个域组成,其中每个域各占用2个字节,具体如表1所示:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1819 20 21 22 23 24 25 26 27 28 29 30 31
表1 UDP报头结构
UDP协议使用端口号为不同的应用保留其各自的数据传输通道。数据发送一方(可以是客户端或服务器端)将UDP数据报通过源端口发送出去,而数据接收一方则通过目标端口接收数据。UDP协议使用报头中的校验值来保证数据的安全。校验值首先在数据发送方通过特殊的算法计算得出,在传递到接收方之后,还需要再重新计算。如果某个数据报在传输过程中被第三方篡改或者由于线路噪音等原因受到损坏,发送和接收方的校验计算值将不会相符,由此UDP协议可以检测是否出错。
2. NS2软件的安装与配置
2.1 ubuntu实验环境
Ubuntu是Linux的一个版本,是一款免费的操作系统,Ubuntu 项目完全遵从开源软件开发的原则;用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。NS2在linux环境下运行比在windows下更稳定,出现更少的错误,还可以更改linux内核,使得仿真效果更好。
2.2 软件安装
NS2可以再Linux平台下运行,因此一般需要安装Linux操作系统。也可以采用Windows+虚拟机(VMware,Virtual PC)+NS组合的方式。
若要在Ubuntu上运行NS2,下面的软件是在安装和使用NS2中需要用到的,必须先行安装。
(1)编译器gcc、make:sudo apt_get install build-essential.
(2) tk、tcl的库文件:sudo apt-get install tcl8.4.
(3)与nam相关的库文件:sudo apt-get install libxmu-dev.
NS2安装步骤:
(1)下载NS2安装压缩包ns2-allione-2.34.tar.gz,并放在安装路径的目录文件夹下。
(2)进入该目录并解压ns2-allione-2.34.tar.gz包到当前目录:
tar-vxzf ns2-allione-2.34.tar.gz.
(3) 进入解压后的文件夹,然后开始安装NS:./install
(4) 配置环境变量.
(5)测试:在终端输入ns.如果输出%,表明安装成功。
如图2.1:
图2.1 安装成功
2.2 相关配置
安装成功后,还要设置环境变量:修改用户目录(包括个人用户和root用户,个人用户目录一般在/home 下面,root用户目录就是/root)下的.bashrc(该文件是隐藏文件),必须在该文件末尾追加以代码:
验证时,可以运行软件自带的例子,或者如图2.2所示:
图2.2 验证代码
2.3 NS 的仿真过程
2.3.1 NS2模拟基本流程
图2.3 NS2进行网络模拟的基本流程
是
否 否 否 是 是 问题定义 修改源码? 修改源码 编写Tcl 脚本 执行模拟 分析结果 结果满意?
分析问题
重新编译NS 编译通过? 调试 结束 开始
2.3.2 NS2 仿真的步骤
1. 配置网络拓扑结构,确定链路的基本特性,如延时、带宽和选择策略等。
2. 建立协议代理,包括端设备的协议绑定和通信业务量模型的建立。
3. 配置业务量模型参数,确定网络上的业务量分布。
4. 设置Trace对象,把仿真中发生的特定类型事件记录在Trace文件中,通过Trace 文件保存整个仿真过程。仿真完成后,用户对Trace文件进行分析研究。
3. 实验设计及实现
该实验首先在场景1中无线网络中UDP的传输吞吐量、丢包率和端到端时延的分析。关键代码的实现
Trace文件
运行第二章中的隐藏节点的tcl脚本代码后,自动生成跟踪文件即.tr文件无线网络的整个模拟过程有Trace文件记录。无线Trace支持使用cmu-trace对象,有3种类型:CMUTrace/Drop、CMUTrace/Recv、CMUTrace/Send。模拟无线网络时,该三类对象用以记录由代理、路由层、MAC层或接口队列所产生的丢失、接收和发送分组的事件信息。
NS2的发展对于无线Trace文件的格式做了一定的修改,但主要的信息没有变化,具体的格式图3.1:下图3.1的代码是trace文件建立,用于记录吞吐量、丢包率和网络延迟,后面用xgraph来输出图像:
图3.1 建立trace的代码
以下图3.2代码用于创建代理,特别是接收端设置LossMonitor来记录丢失分组等数据,用于后面对吞吐量,丢包率,延时的计算:
图3.2 创建代理的代码
4. 程序运行
首先打开终端,输入sudo -i,回车,输入密码,进入管理员权限如下图4.1:
图4.1 进入管理员权限
然后输入cd /home/administrator/桌面/ZGN,回车,进入程序所在文件夹,如下图4.2:
图4.2 进入程序所在文件夹
最后输入ns ZGN.tcl,运行程序,如下图4.3: