隐藏节点和暴露节点(2)

2020-04-21 06:44

计算机学院网络工程实习报告

条件下无法解决。

当A要向B发送数据时,先发送一个控制报文RTS;B接收到RTS后,以CTS控制报文回应;A收到CTS后才开始向B发送报文,如果A没有收到 CTS,A认为发生了冲突,重发RTS,这样隐发送终端C能够听到B发送的CTS,知道A要向B发送报文,C延迟发送,解决了隐发送终端问题。

对于隐接收终端,当C听到B发送的CTS控制报文而延迟发送时,若D向C发送RTS控制报文请求发送数据,因C不能发送任何信息,所以D无法判断时RTS 控制报文发生冲突,还是C没有开机,还是C时隐终端,D只能认为RTS报文冲突,就重新向C发送RTS。因此,当系统只有一个信道时,因C不能发送任何信息,隐接收终端问题在单信道条件下无法解决。 1.1.2 暴露节点

暴露节点(如图1.2)是指在发送接点的覆盖范围内而在接收节点的覆盖范围外的节点。暴露终端因听到发送节点的发送而可能延迟发送。但是,它其实是在接收节点的通信范围之外,它的发送不会造成冲突。这就引入了不必要的时延。

图1.2 暴露节点图示

3

计算机学院网络工程实习报告

暴露终端又可以分为暴露发送终端和暴露接收终端两种。在单信道条件下,暴露接收终端问题是不能解决的,因为所有发送给暴露接收终端的报文都会产生冲突;暴露发送终端问题也无法解决,因为暴露发送终端无法与目的节点成功握手。 1.1.3 暴露节点和隐藏节点产生的原因及影响

由于ad hoc网络具有动态变化的网络拓扑结构,且工作在无线环境中,采用异步通信技术,各个移动节点共享同一个通信信道,存在信道分配和竞争问题;为了提高信道 利用率,移动节点电台的频率和发射功率都比较低;并且信号受无线信道中的噪声、信道衰落和障碍物的影响,因此移动节点的通信距离受到限制,一个节点发出的信号,网络中的其它节点不一定都能收到,从而会出现“隐藏终端”和“暴露终端”问题。

隐藏终端和暴露终端问题对ad hoc网络的影响:

“隐藏终端”和“暴露终端”的存在,会造成Ad Hoc网络时隙资源的无序争用和浪费,增加数据碰撞的概率,严重影响网络的吞吐量、容量和数据传输时延。在ad hoc网络中,当终端在某一时隙内传送信息时,若其隐藏终端在此时隙发生的同时传送信息,就会产生时隙争用冲突。受隐藏终端的影响,接收端将因为数据碰撞 而不能正确接收信息,造成发送端的有效信息的丢失和大量时间的浪费(数据帧较长时尤为严重),从而降低了系统的吞吐量和量。当某个终端成为暴露终端后,由于它侦听到另外的终端对某一时隙的占用信息,而放弃了预约该时隙进行信息传送。其实,因为源终端节点和目的终端节点都不一样,暴露终端是可以占用这个时隙来传送信息的。这样,就造成了时隙资源的浪费。 1.1.4 解决办法

解决隐藏终端问题的思路是使接收节点周围的邻居节点都能了解到它正在进行接收,目前实现的方法有两种:一种是接收节点在接收的同时发送忙音来通知邻居节 点,即BTMA系列;另一种方法是发送节点在数据发送前与接收节点进行一次短控制消息握手交换,以短消息的方式通知邻居节点它即将进行接收,即 RTS/CTS方式。这种方式是目前解决这个问题的主要趋势,如已经提出来的CSMA/CA、MACA、MACAW等。还有将两种方法结合起来使用的多址协议,如DBTMA。对于隐藏发送终端问题,可以使用控制分组进行握手的方法加以解决。一个终端

4

计算机学院网络工程实习报告

发送数据之前,首先要发送请求发送分组,只有听到对应该请求分组的应答信号后才能发送数据,而是收到此应答信号的其他终端必须延迟发送。

对于图1.1中所示的隐藏节点问题。当A要向B发送数据时,先发送一个控制报文RTS;B接收到RTS后,以CTS控制报文回应;A收到CTS后才开始向B发送报文,如果A没有收到 CTS,A认为发生了冲突,重发RTS,这样隐发送终端C能够听到B发送的CTS,知道A要向B发送报文,C延迟发送,解决了隐发送终端问题。

对于图1.2所示的暴露节点的延时问题,当B向A发送数据时,C只听到RTS控制报文,知道自己是暴露终端,认为自己可以向D发送数据。C向D发送RTS控制报文。如果是单信道,来自D的CTS 会与B发送的数据报文冲突,C无法和D成功握手,它不能向D发送报文。

1.2 RTS/CTS握手机制

1.2.1 浅析RTS/CTS

RTS(Request to Send)即请求发送,CTS(Clear to Send)即清除发送。 RTS/CTS协议(Request To Send/Clear To Send)即请求发送/清除发送协议是被802.11无线网络协议采用的一种用来减少由隐藏节点问题所造成的冲突的机制。相当于一种握手协议,主要用来解决“隐藏终端”问题。“隐藏终端”(Hidden Stations)是指,基站A向基站B发送信息,基站C未侦测到A也向B发送,故A和C同时将信号发送至B,引起信号冲突,最终导致发送至B的信号都丢失了。“隐藏终端”多发生在大型单元中(一般在室外环境),这将带来效率损失,并且需要错误恢复机制。

1.2.2 RTS/CTS如何降低冲突

对于RTS/CTS握手机制,IEEE802.11提供了如下解决方案。在参数配置中,若使用RTS/CTS协议,同时设置传送上限字节数----一旦待传送的数据大于此上限值时,即启动RTS/CTS握手协议。如图1.3所示:

5

计算机学院网络工程实习报告

图1.3 RTS/CTS

具体做法是:当发送节点有分组要传时,检测信道是否空闲,如果空闲,则发送RTS帧,接收节点收到RTS后,发CTS帧应答,发送节点收到CTS后,开始发送数 据,接收节点在接收完数据帧后,发ACK确认,一次传输成功完成。如下图所示。如果发出RTS后,在一定的时限内没有收到CTS应答,发送节点执行退避算 法重发RTS。RTS/CTS交互完成后,发送和接收节点的邻居收到RTS/CTS后,在以后的一段时间内抑制自己的传输。延时时间取决于将要进行传输的 数据帧的长度,所以由隐藏终端造成的碰撞就大大减少了。采用链路级的应答(ACK)机制就可以在发生其它碰撞或干扰的时候,提供快速和可靠的恢复。

即使有冲突发生,也只是在发送 RTS时,这种情况下,由于收不到接收站点的CTS消息,大家再回头用DCF提供的竞争机制,分配一个随机退守定时值,等待下一次介质空闲DIFS后竞争 发送RTS,直到成功为止。 1.2.3 RTS/CTS的退避算法

在CSMA系列的接入技术中,当报文产生冲突时,发送者要执行退避算法,延

迟一段随机时间后再次尝试发送。实行退避的目的是为了减小重发时在此发生冲突的 可能性。在ADHOC网络中,为了解决隐藏终端和暴露终端问题,引入了RTS-CTS握手机制。RTS和CTS控制报文之间可能会发生冲突。发生冲突时,发送者超时,等不到CTS,要执行退避算法,延迟一段随机时间后重发RTS。

? 二进制指数退避算法(BEB,Binary Exponential Backoff)BEB算法的Finc 和

Fdec函数如下: 其中,COUNTER是退避计数器的值, MAX 和MIN分别指退避计

6

计算机学院网络工程实习报告

数器的最大和最小取值,每次发生冲突时,退避计数器的值加倍;每次交互成功时,退避计数器降至最小值MIN。

? 倍数增线性减算法(MILD)。在MILD 中,退避计数器的值是线性递减的,一次交

互成功后,计数器的值减小β,如果β取值合理,COUNTER并不会像BEB 算法一样急剧减小,在后续的竞争信道中,所有节点获胜的机会几乎均等,实现了公平接入。发生冲突时,退避计数器增加α 倍, 如果α取值合理, COUNTER 也不会急剧增加。

1.3 NS2中相关问题分析

1.3.1 NS2模拟的基本过程

利用NS进行网络模拟是有一定的步骤的,进行一次仿真的步骤大致如下:

? 编写Tcl脚本。Tcl脚本应该包含的内容有:配置模拟网络拓扑结构,确定

链路的基本特性,如延迟、带宽和丢失策略;建立协议代理,包括端设备的协议绑定和通信业务量模型的建立;配置业务量模型的参数,从而确定网络上的业务量的分布;设置Trace对象,Trace对象能够把模拟过程中发生的特定类型的事件记录在Trace文件中。NS通过Trace文件来保存整个模拟过程中每个步骤的数据,待仿真完成后对所得到的数据进行分析研究。 ? 编写其他的辅助过程,设定模拟结束时间,至此脚本编写完成。 ? 用NS解释执行完成编写后的Tcl脚本。 ? 对Trace文件进行分析,得出有用的数据。 ? 对分析过的数据进行绘图处理,得出网络的性能。

? 调整配置网络的拓扑结构和业务量模型,重新进行上述模拟过程。 基本的过程如图1.4

7


隐藏节点和暴露节点(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:关于中学生逆反心理的问卷调查

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: