您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 实验二无线局域网MAC协议仿真实验熊健羲2012011438
实验一组建无线网络仿真环境1实验要求与目的1.学会搭建NS2仿真环境2.熟悉NS2仿真过程2实验原理与背景知识2.1Cygwin简介Cygwin是一个在Windows平台上运行的Linux模拟环境。它由cygnussolutions公司开发,并可以免费使用的自由软件。它对于学习Unix/Linux操作环境,或从Linux到Windows的应用程序移植,或者进行某些特殊的开发工作,尤其使用gnu工具集在Windows上进行嵌入式系统开发等,非常有用。随着嵌入式系统开发日渐流行,越来越多的开发者对Cygwin产生了兴趣。cygnus当初首先把gcc,gdb,gas等开发工具进行了改进,使它们能够生成并解释win32的目标文件。然后,把这些工具移植到Windows平台上去。一种方案是基于win32api对这些工具的源代码进行大幅修改,这样需要大量工作。因此,采取了一种不同的方法——编写一个共享库(就是cygwin.dll),把win32api中没有的Unix风格的调用(如fork,spawn,signals,select,sockets等)封装在里面。也就是说,基于win32api编写一个Unix系统库的模拟层。这样只要把这些工具的源代码和这个共享库连接到一起,就可以使用Unix主机上的交叉编译器来生成可在Windows平台上运行的工具集。以这些移植到Windows平台上的开发工具为基础,cygnus又逐步把其他工具(几乎不需要对源代码进行修改,只需要修改配置脚本)软件移植到Windows上来。这样,在Windows平台上运行bash和开发工具、用户工具,感觉好像在Linux上工作。2.2NS2简介NS2是指NetworkSimulatorversion2,它是一种针对网络技术的源代码公开、免费的软件仿真平台,研究人员使用它很容易进行网络技术研发,而且发展到今天,它所包含的模块几乎涉及到网络技术的所有方面。NS2是目前广泛使用的一种网络仿真软件。此外,NS2也可作为一种辅助教学的工具,逐步广泛应用在网络技术教学领域。总之,目前在学术界和教育界,有许多人正在或试图使用NS2。NS2是一种面向对象的网络仿真器,本质上是一个离散事件模拟器。由UCBerkeley开发而成。它本身有一个虚拟时钟,所有仿真都由离散事件驱动。目前NS2可以用于仿真各种不同的IP网,已经实现的一些仿真有:网络传输协议,如TCP和UDP;业务源流量产生器,如FTP,Telnet,WebCBR和VBR;路由队列管理机制,如Droptail,RED和CBQ;路由算法,如Dijkstra等。NS2也为进行局域网仿真而实现了多播及一些MAC子层协议。3实验环境与模块简介WindowsXP系统或Linux系统,在WindowsXP系统中采用了Cygwin作为Linux的外壳,并在其上进行安装;在Linux中可直接安装NS2。4实验步骤与结果在centos6环境下安装:安装成功实验二3.5.1节隐藏节点仿真1实验要求和目的●掌握无线网络中隐藏节点问题的本质;●利用NS2仿真隐藏节点问题。2实验原理和背景知识隐藏节点指在接收节点的覆盖范围内而在发送节点的覆盖范围外的节点。由于听不到发送节点的发送,隐藏节点可能向相同的接收节点发送分组,导致分组在接收节点处冲突。隐藏节点可以分为隐发送节点和隐接收节点。如教材第80页的图3.17所示,节点A和C同时想发送数据给节点B,但A和C都不在对方的传送范围内。所以当A发送数据给B时,C并未检测到A也在发送数据,会认为目前网络中无数据传送,会将数据发送给B。这样,A和C同时将数据发送给B,使得数据在B处产生冲突,最终导致发送的数据不可用。这种因传送距离而发生误判的问题称为隐藏节点问题。为了解决隐藏节点问题,可以使用教材3.5.1节介绍的请求发送(RequesttoSend,RTS)和清除发送(CleartoSend,CTS)的控制信息来避免冲突。当发送方发出数据前,先送出一个RTS包,告知在传送范围内的所有节点不要有任何发送操作。如果接收方目前空闲,则响应一个CTS包,告诉发送方可开始发送数据,此CTS包也会告知所有在接收方信号传输范围内的其它节点不要进行任何传输操作。过程如教材第80页的图3.18所示。更多有关隐藏节点的知识详见教材第3.5.1节。3实验环境和模块简介隐藏节点的仿真分析采用的实验平台为Cygwin+ns-allinone-2.34,同时需要安装mUDP模块进行实验扩展。mUDP模块是UDP的延伸,除了具有UDP的功能外,还能记录所发送的包的信息。mUdpSink可以把接收到的包的信息记录到文件中。4实验步骤与仿真演示4.1模块安装仿真所需模块的安装过程如下:(1)获取mUDP,mUdpSink的模块文件,具体有下列几个文件,可以在电子资源中的实验源代码的3.5.1中获得,主要文件如下所示;mudp.ccmudp.hmudpsink.ccmudpsink.h(2)在/ns-allinone-2.34/ns-2.34/下新建measure文件夹,把这四个文件放入其中(3)修改/ns-allinone-2.34/ns-2.34/common/下的packet.h文件,将如下程序添加到structhdr_cmn{}中(4)修改/ns-allinone-2.34/ns-2.34/下的Makefile文件,将如下程序添加到OBJ_CC中如图2.2所示的位置;measure/mudp.omeasure/mudpsink.o\(5)修改/ns-allinone-2.34/ns-2.34/tcl/lib/下的ns-default.tcl,将如下程序添加到文件的最后一行;Agent/mUDPsetpacketSize_1000(6)在Cygwin中转到/ns-allinone-2.34/ns-2.34目录下执行makeclean;make命令,如图2.3所示,编译约十几分钟完成即可。4.2运行仿真与演示安装完成模块后,就可以开始仿真。仿真过程如下,拓扑见教材第80页。(1)在“home/用户名/”目录下新建一个目录用于放置运行的仿真脚本,并将不同类型脚本用子目录分开,紧接着将仿真脚本Hidden_Terminal.tcl复制到该目录下(tcl脚本的编写不再赘述,请参考相关文献)。(2)在Cygwin中利用cd命令切换到该新建的子目录(有关cd命令的使用请参考Linux相关书籍),如图2.4所示,紧接着输入:nsHidden_Terminal.tcl,回车即可运行,此时无动画显示(3)如果想看nam仿真动画,则需要启动XWin,然后按(2)中的过程在XWin窗口中进行仿真即可,XWin的启动方式为:在Cygwin中输入startxwin.bat,回车即可
本文标题:实验二无线局域网MAC协议仿真实验熊健羲2012011438
链接地址:https://www.777doc.com/doc-2458736 .html