资 源 简 介
实验目的●掌握隐藏节点问题的本质●利用NS2仿真隐藏节点问题2.实验背景隐藏节点指在接收节点的覆盖范围内而在发送节点的覆盖范围外的节点。由于听不到发送节点的发送,隐藏节点可能向相同的接收节点发送分组,导致分组在接收节点处冲突。隐藏节点可以分为隐发送节点和隐接收节点。如教材第80页的图3.17所示,节点A和C同时想发送数据给节点B,但A和C都不在对方的传送范围内。所以当A发送数据给B时,C并未检测到A也在发送数据,会认为目前网络中无数据传送,会将数据发送给B。这样,A和C同时将数据发送给B,使得数据在B处产生冲突,最终导致发送的数据不可用。这种因传送距离而发生误判的问题称为隐藏节点问题。为了解决隐藏节点问题,可以使用教材3.5.1节介绍的请求发送(Request to Send,RTS)和清除发送(Clear to Send,CTS)的控制信息来避免冲突。当发送方发出数据前,先送出一个RTS包,告知在传送范围内的所有节点不要有任何发送操作。如果接收方目前空闲,则响应一个CTS包,告诉发送方可开始发送数据,此CTS包也会告知所有在接收方信号传输范围内的其它节点不要进行任何传输操作。过程如教材第80页的图3.18所示。更多有关隐藏节点的知识详见教材第3.5.1节。3.实验环境Cygwin,ns-allinone-2.344.实验步骤隐藏节点仿真进行前需要安装特定的模块。4.1 模块安装仿真需要安装的模块为mUDP,它是UDP的延伸,除了具有UDP的功能外,还能记录所发送的包的信息。mUdpSink可以把接收到的包的信息记录到文件中。仿真所需模块的安装过程如下。⑴获取mUDP, mUdpSink的模块文件,具体有下列几个文件,可以在电子资源——实验9Jin & Jiang,《无线网络技术教程:原理、应用与仿真实验》实验手册,清华大学出版社源代码的3.5.1中获得;mudp.cc mudp.h mudpsink.cc mudpsink.h⑵在/ns-allinone-2.34/ns-2.34/下新建measure文件夹,把这四个文件放入其中;<