无线网络技术实验七 隐藏节点和暴露节点仿真实验

您所在的位置:网站首页 无线网络会暴露位置吗 无线网络技术实验七 隐藏节点和暴露节点仿真实验

无线网络技术实验七 隐藏节点和暴露节点仿真实验

2024-07-08 19:33| 来源: 网络整理| 查看: 265

1 实验要求和目的

●掌握无线网络中隐藏和暴露节点问题 ●利用 NS2 分析隐藏和暴露节点问题

2 实验原理和背景 2.1 隐藏节点问题

隐藏节点指处于接收节点的覆盖范围内而在发送节点的覆盖范围外的节点。由于监听不 到发送节点的数据传输,隐藏节点不受限制的发送分组到相同的接收节点,导致分组在接收 节点处冲突。隐藏节点可以分为隐发送节点和隐接收节点。

参见教材 3.8 节的内容,节点 A 和 C 同时想发送数据给中间节点 B,但 A 和 C 都不在 彼此传输范围内。所以当 A 发送数据给 B 时,C 并未检测到 A 正在传输,会认为目前网络 中无数据传输,会将数据传输给 B。即 A 和 C 同时将数据传输给 B,使得数据在 B 处产生 冲突,导致数据不可用。这种因传送距离而发生误判的问题称为隐藏节点问题。

为解决隐藏节点问题,可使用教材 3.8 节介绍的 RTS/CTS 控制信息来避免冲突。发送 方发出数据前,先送出一个 RTS 包,告知在传输范围内的所有节点不要有任何发送操作。 如果接收方目前空闲,则响应一个 CTS 包,告诉发送方可开始发送数据,此 CTS 包也会告 知所有在接收方信号传输范围内的其它节点不要进行任何传输操作。详细见教材 3.8 节。

2.2 暴露节点问题

暴露节点是指在发送节点覆盖范围内而在接收节点覆盖范围外的节点,暴露节点因监听 到发送节点的发送而可能延迟发送。但它其实是在接收节点的通信范围之外,它的发送不会 造成冲突,这种延迟发送并不必要。

暴露节点问题和隐藏节点问题不同,当一个节点要发送数据给另一节点时,因邻居节点 也正在发送数据,影响了原来节点的数据传送。参考教材 3.8 节,4 个节点 S1、S2、R1、 R2,其中 R1、R2 均不在对方传输范围内,而 S1、S2 均在彼此传送范围内。因此,当 S1 正发送数据给 R1 时,S2 却不能将数据发送给 R2,因为 S2 会检测到 S1 正发送数据,如果 其也发送数据的话,就会影响 S1 的数据发送。事实上,S2 可以将数据发给 R2 的,因为 R2 并不在 S1 的传送距离内。

为缓解暴露节点问题,同样可采用 RTS/CTS 机制。当某个节点侦听到邻节点发送的 RTS, 但未监听到对应 CTS 时,可判定它本身是一个暴露节点,所以允许传送数据到其它邻近节 点。当 S2 收到 S1 发出的 RTS,但未收到对应 CTS 时,S2 可推测自己是暴露节点,则可同 时发送数据。更多知识请参考教材 3.8 节。

3 实验环境和软件

本实验采用了实验一搭建的实验平台,即 NS2.35。官方 NS2 版本中未包含本实验所需 mUDP、mUdpSink 模块,读者执行本实验前需扩展安装这些模块。本手册的实验一已提供 了实验平台搭建模块和脚本,如果完成实验一,本实验可直接运行。

4 实验步骤与演示 4.1 隐藏节点问题仿真

代码文件(Hidden_Terminal.tcl)

Mac/802_11 set RTSThreshold_ 0 Antenna/OmniAntenna set X_ 0 Antenna/OmniAntenna set Y_ 0 Antenna/OmniAntenna set Z_ 1.5 Antenna/OmniAntenna set Gt_ 1.0 Antenna/OmniAntenna set Gr_ 1.0 Phy/WirelessPhy set CPThresh_ 10.0 Phy/WirelessPhy set CSThresh_ 8.91754e-10 Phy/WirelessPhy set RXThresh_ 2.81838e-9 Phy/WirelessPhy set bandwidth_ 2e6 Phy/WirelessPhy set Pt_ 0.281838 Phy/WirelessPhy set freq_ 9.14e+6 Phy/WirelessPhy set L_ 1.0 set val(chan) Channel/WirelessChannel set val(prop) Propagation/TwoRayGround set val(netif) Phy/WirelessPhy set val(mac) Mac/802_11 set val(ifq) Queue/DropTail/PriQueue set val(ll) LL set val(ant) Antenna/OmniAntenna set val(ifqlen) 100 set val(rp) DSDV set ns [new Simulator] set f [open Hidden_Terminal.tr w] $ns trace-all $f $ns eventtrace-all set nf [open Hidden_Terminal.nam w] $ns namtrace-all-wireless $nf 500 500 set topo [new Topography] $topo load_flatgrid 500 500 create-god 3 set chan [new $val(chan)] $ns node-config -adhocRouting $val(rp) \


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3