毕业设计(论文)开题报告
题    目:Network Simulator(NS2)的扩展方法与编程技术
学    院:        计算机与通信学院         
专    业:                                 
学生姓名:                                 
学    号:                                 
指导教师:                                 
 
2013    石家庄张家豪
开题报告填写要求
1.开题报告(含“文献综述”)作为毕业设计(论文)答辩委员会对学生答辩资格审查的依据材料之一。此报告应在指导教师指导下,由学生在毕业设计(论文)工作前期内完成,经指导教师签署意见及所在专业审查后生效。
2.开题报告内容必须用黑墨水笔工整书写或按此电子文档标准格式(可从教务处网页上下载)打印,禁止打印在其它纸上后剪贴,完成后应及时交给指导教师签署意见。
3.“文献综述”应按论文的格式成文,并直接书写(或打印)在本开题报告第一栏目内,学生写文献综述的参考文献应不少于10篇(不包括辞典、手册),其中至少应包括1篇外文资料;对于重要的参考文献应附原件复印件,作为附件装订在开题报告的最后。
4.统一用A4纸,并装订单独成册,随《毕业设计(论文)说明书》等资料装入文件袋中。
毕 业 设 计(论 文)开 题 报 告
1.文献综述:结合毕业设计(论文)课题情况,根据所查阅的文献资料,每人撰写2500字以上的文献综述,文后应列出所查阅的文献资料。
文  献  综  述
Network Simulator(NS2)的扩展方法与编程技术
基本简介
NS2是指 Network Simulator version 2,NS(Network Simulator) 是一种针对网络技术源代码公开的、免费的今日全国生猪价格表软件模拟平台,研究人员使用它可以很容易的进行网络技术的开发,而且发展到今天,它所包含的模块几乎涉及到了网络技术的所有方面。所以,NS成了目前学术界广泛使用的一种网络模拟软件。此外,NS也可作为一种辅助教学的工具,已被广泛应用在了网络技术的教学方面。因此,目前在学术界和教育界,有大量的人正在使用或试图使用NS。
复杂性
然而,对初学者来说,NS是非常难于掌握的,一般人从学习NS到上手至少需要半年多时间。原因是多方面的:一方面,NS内容庞杂,随软件所提供的手册更新不够快,初学者阅读起来非常困难;另一方面,使用NS还要掌握其它很多必备的相关知识以及相关工具,这会使初学者感到无从入手;有的使用者可能还不了解网络模拟的过程或是对NS软件的机制缺乏理解,这也影响了对NS的掌握。另外,不论在国外还是国内,还没有一本书能集中回答和解决这些问题,这也是NS难于被掌握的一个重要原因。
本质
NS2(Network Simulator ,version 2)是一种面向对象的网络仿真器,本质上是一个离散事件模拟器。由UC Berkeley开发而成。它本身有一个虚拟时钟,所有的仿真都由离散事件驱动的。目前NS2可以用于仿真各种不同的IP网,已经实现的一些仿真有:网络传输协议,比如TCP和UDP;业务源流量产生器,比如FTPTelnetWeb CBR和VBR;路由队列管理机制,比如DroptailRED和CBQ路由算法,比如Dijkstra等。NS2也为进行局域网的仿真而实现了多播以及一些MAC 子层协议。
NS2主要内涵
NS2使用C++和Otcl作为开发语言。NS可以说是Otcl的脚本解释器,它包含仿真事件调度器、网络组件对象库以及网络构建模型库等。事件调度器计算仿真时间,并且激活事件队列中的当前事件,执行一些相关的事件,网络组件通过传递分组来相互通信,但这并不耗费仿真时间。所有需要花费仿真时间来处理分组的网络组件都必须要使用事件调度器。它先为这个分组发出一个事件,然后等待这个事件被调度回来之后,才能做下一步的处理工作。事件调度器的另一个用处就是计时。NS是用Otcl和C++编写的。由于效率的原因,NS将数据通道和控制通道的实现相分离。为了减少分组和事件的处理时间,事件调度器和数据通道上的基本网络组件对象都使用C++写出并编译的,这些对象通过映射对Otcl解释器可见。
当仿真完成以后,NS将会产生一个或多个基于文本跟踪文件。只要在Tcl脚本中加入一些简单的语句,这些文件中就会包含详细的跟踪信息。这些数据可以用于下一步的分析处理,也可以使用NAM将整个仿真过程展示出来。
屋顶防水材料
NS2使用方法
使用NS进行网络仿真的方法和一般过程。
进行网络仿真前,首先分析仿真涉及哪个层次,NS仿真分两个层次:一个是基于OTcl编程的层次。利用NS已有的网络元素实现仿真,无需修改NS本身,只需编写OTcl脚本。另一个是基于C++和OTcl编程的层次。如果NS中没有所需的网络元素,则需要对NS进行扩展,添加所需网络元素,即添加新的C++和OTcl类,编写新的OTcl脚本
假设用户已经完成了对NS的扩展,或者NS所包含的构件已经满足了要求,那么进行一次仿真的步骤大致如下:
1.开始编写OTcl脚本。首先配置模拟网络拓扑结构,此时可以确定链路的基本特性,如延迟、带宽和丢失策略等。
2.建立协议代理,包括端设备的协议绑定和通信业务量模型的建立。
3.配置业务量模型的参数,从而确定网络上的业务量分布。
4.设置Trace对象。NS通过Trace文件来保存整个模拟过程。仿真完后,用户可以对Trace文件进行分析研究。
5.编写其他的辅助过程,设定模拟结束时间,至此OTcl脚本编写完成。
6.用NS解释执行刚才编写的OTcl脚本。
7.对Trace文件进行分析,得出有用的数据。
8.调整配置拓扑结构和业务量模型,重新进行上述模拟过程。
NS2采用两级体系结构,为了提高代码的执行效率,NS2 将数据操作与控制部分的实现相分离,事件调度器和大部分基本的网络组件对象后台使用C++实现和编译,称为编译层,主要功能是实现对数据包的处理;NS2的前端是一个OTcl 解释器,称为解释层,主要功能是对模拟环境的配置、建立。从用户角度看,NS2 是一个具有仿真事件驱动、网络构件对象库和网络配置模块库的OTcl脚本解释器。NS2中编译类对象通过OTcl连接建立了与之对应的解释类对象,这样用户间能够方便地对C++对象的函数进行修改与配置,充分体现了仿真器的一致性和灵活性。
功能模块
NS2仿真器封装了许多功能模块,最基本的是节点、链路、代理、数据包格式等等,下面分别来介绍一下各个模块。
1.事件调度器:目前NS2提供了四种具有不同数据结构的调度器,分别是链表、堆、日历表和实时调度器。
2.节点(node):是由TclObject对象组成的复合组件,在NS2中可以表示端节点和路由器2万元创业项目。
3.链路(link):由多个组件复合而成,用来连接网络节点。所有的链路都是以队列的形式来管理分组的到达、离开和丢弃。
4.代理(agent):负责网络层分组的产生和接收,也可以用在各个层次的协议实现中。每个agent连接到一个网络节点上,由该节点给它分配一个端口号
5.包(packet):由头部和数据两部分组成。一般情况下,packet只有头部、没有数据部分。
参  考  文  献
1 于斌孙斌温暖王绘丽陈江锋.志愿精神 NS2与网络模拟[J ].人民邮电出版社.2007 年4月
2秦冀,姜雪松.移动IP技术与NS2模拟[J ].机械工业出版.2006年10月
3 刘俊, 徐昌彪, 隆克平. 基于N S 的网络仿真探讨[J ]. 计算机应用研究. 20029
4 王宇, 赵千川. 用网络仿真软件NS2 进行IP 网络的仿真[J ]. 计算机应用与软件。2003 2
5 李方敏, 李仁发, 叶澄清. 网络仿真软件ns 的结果输出和分析 [J ]. 计算机工程. 20002
6杨淑莹.VC++图像处理程序设计[M].清华大学出版社,北京交通大学出版社.20051
7朱志刚,石定机等译.()卡斯尔曼.数字图像处理[M]. 电子工业出版社雨爱.20022
8高守传,姚领田. Visual C++ 实践与提高——数字图像处理与工程应用篇.中国铁道出版社.20061
9 Keshav S. REAL: a netwo rk simulato r [R ]. Technical Report. University of California,Berkeley, 1988.
10 Liu Jun, Xu Chang biao, Long Ke-ping. Network simulation dis2cussion based on N S [ J ]. Applications Research Of Computer, 2002, 1
11 Wang Yu, Zhao Q ian2chuan. IP network simulation based on NS2 [J ]. Computer Applications and Software, 2003, 2
毕 业 设 计(论 文)开 题 报 告