- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课设 (三):基于NS2的网络仿真
一、课程设计目的
1、理解NS2的基本概念;
2、熟悉安装NS2的实验环境和基本操作;
3、仿真分析UDP通信协议;
4、学会生成NS2的Tcl脚本及仿真结果分析;
二、课程设计原理
1、UDP协议
(1)协议概述
UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是
OSI (Open System Interconnection,开放式系统互联) 参考模型中一种无连
接的传输层协议,它主要用于不要求分组顺序到达的传输中,分组传输顺序的检
查与排序由应用层完成 ,提供面向事务的简单不可靠信息传送服务。
(2)协议功能描述
UDP在IP数据报的头部仅仅加入了复用和数据校验 (字段),UDP首部字段
由4个部分组成,其中两个是可选的。各16位的源端口和目的端口用来标记发
送和接受的应用进程,因为UDP不需要应答,所以源端口是可选的,如果源端口
不用,那么置为零。在目的端口后面是长度固定的以字节为单位的长度字段,用
来指定UDP数据报包括数据部分的长度。
由于缺乏可靠性,UDP应用一般必须允许一定量的丢包、出错和复制。由于
UDP协议缺乏拥塞避免和控制机制,需要基于网络的机制来减小因失控和高速
UDP流量负荷而导致的拥塞崩溃效应。UDP协议只在IP 的数据报服务之上增加了
很少的功能,这就是端口的功能 (有了端口,运输层就能进行复用和分用)和差
错检测的功能。另外,UDP协议应用程序可以是客户机,也可以是服务器程序,
不必向TCP协议应用程序那样必须分别建立客户机程序和服务器程序。在远程控
制软件中,如果在局域网内部传输屏幕信息,则使用UDP协议比较容易实现。但
UDP协议不提供可靠性,它的可靠性是交给其他网络设备来解决。同时用UDP协
议来传输的数据一般较小,它需要IP协议来为它对数据进行分段。
2、NS2概述
NS2 (Network Simulator version 2,网络仿真软件第二版)是一种面向对
象的网络仿真器,本质上是一个离散事件模拟器。目前NS2 可用于仿真各种不
同的通信网络,已经实现的仿真模块有:网络传输协议,如TCP 和UDP;业务源
流量产生器,如FTP、Telnet、WebCBR 和VBR;路由队列管理机制,如Droptai、
RED和CBQ;路由算法,如Dijkstra,以及无线网络的WLAN,Ad hoc路由,移
动IP 和卫星通信网络等。NS2也为进行局域网的仿真而实现了多播以及一些MAC
子层协议。
NS2使用C++和OTcl作为开发语言。NS2可以说是OTcl的脚本解释器,它
包含仿真事件调度器、网络组件对象库以及网络构建模型库等。事件调度器用于
计算仿真时间,并且激活事件队列中的当前事件,执行一些相关的事件,网络组
件通过传递分组来相互通信,但这并不耗费仿真时间。所有需要花费仿真时间来
处理分组的网络组件都必须要使用事件调度器,它先为这个分组发出一个事件,
然后等待这个事件被调度回来之后,才能做下一步的处理工作。事件调度器的另
一个用处就是计时。由于效率的原因,NS2将数据通道和控制通道的实现相分离,
为了减少分组和事件的处理时间,事件调度器和数据通道上的基本网络组件对象
都使用C++写出并编译的,这些对象通过映射对OTcl解释器可见。
NS2 结构图
3、Tcl介绍
Tcl的全称是Tool Command Language,属于脚本语言的一种,它具有可以
依照原型进行快速开发、脚本编程、GUI编写和测试方面应用广泛的特点。在NS2
中为网络进行参数配置的脚本都是用Tcl编写而成的。Tcl主要由语言部分和解
释器部分两部分组成,相对其他脚本语言而言,Tcl不但编程能力强劲而且能够
方便地向应用程序中添加Tcl解释器,从而大幅提高编程效率。Tcl只支持 “字
符串”一种数据结构,一种分割符就是空格。
Tcl本身不提供面向对象的支持,但是语言本身很容易扩展到支持面向对
象。许多C语言扩展都提供面向对象能力,包括XOTcl,IncrTcl 等。另外SNIT
扩展本身就是用Tcl写的。使用最广泛的Tcl扩展是TK。TK提供了各种OS平台
下的图形用户界面GUI。另一个流行的扩展包是Expect,Expect提供了通过终
端自动执行命令的能力,例如(passwd,ftp,telnet等命令驱动的外壳)。OTcl
是面向对象的Tcl,它在Tcl中增加了对象的
文档评论(0)