一.隐藏终端
1.定义:隐藏终端是指在接收接点的覆盖范围内而在发送节点的覆盖范围外的节点。隐藏终端由于听不到发送节点的发送而可能向相同的接收节点发送分组,导致分组在接收节点处冲突。冲突后发送节点要重传冲突的分组,这降低了信道的利用率。
例如:基站A向基站B发送信息,基站C未侦测到A也向B发送,故A和C同时将信号发送至B,引起信号冲突,最终导致发送至B的信号都丢失了。

2.隐藏终端又可以分为隐发送终端和隐接收终端两种,在单信道条件下,隐发送终端可以通过在发送数据报文前的控制报文握手来解决。但是隐接收终端问题在单信道条件下无法解决。
     
a.隐发送终端:

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

b.隐接收终端:

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

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

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

  • 当B向A发送数据时,C只听到RTS控制报文,知道自己是暴露终端,认为自己可以向D发送数据。
  • C向D发送RTS控制报文。如果是单信道,来自D的CTS会与B发送的数据报文冲突,C无法和D成功握手,它不能向D发送报文。
  • 在单信道下,如果D要向暴露终端C发送数据,来自D的RTS报文会与B发送的数据报文在C处冲突,C收不到来自D的RTS,D也就收不到C回应的CTS报文。
  • 因此,在单信道条件下,暴露终端问题根本无法得到解决。

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

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

五.隐藏终端和暴露终端问题的解决办法
1.隐藏终端的解决方法:

  • 解决隐藏终端问题的思路是使接收节点周围的邻居节点都能了解到它正在进行接收,目前实现的方法有两种:一种是接收节点在接收的同时发送忙音来通知邻居节点,即BTMA系列;另一种方法是发送节点在数据发送前与接收节点进行一次短控制消息握手交换,以短消息的方式通知邻居节点它即将进行接收,即RTS/CTS方式。这种方式是目前解决这个问题的主要趋势,如已经提出来的CSMA/CA、MACA、MACAW等。还有将两种方法结合起来使用的多址协议,如DBTMA
  • IEEE802.11提供了如下解决方案。在参数配置中,若使用RTS/CTS协议,同时设置传送上限字节数,一旦待传送的数据大于此上限值时,即启动RTS/CTS握手协议:当A要向B发送数据时,先发送一个控制报文RTS(Request to send,请求发送);B接收到RTS后,以CTS(Clear to send,清除发送)控制报文回应;A收到CTS后才向B发送报文,如果A没收到CTS,A认为发生了冲突,重发RTS,这样隐发终端C能听到B发送的CTS,知道A要向B发送报文,C延迟发送,解决了隐发送终端的问题。最后,B接收完数据后,即向所有基站广播ACK(Acknowledge Character,确认字符)即确认帧,这样,所有基站又可重新可以平等侦听、竞争信道了。
  • 在单信道条件下使用控制分组的方法只能解决隐发送终端,无法解决隐接收端和暴露终端问题。为此,必须采用双信道方法,即用数据新到收发数据,利用控制信道收发控制信号。

2.暴露终端的解决方法:

  • 当B向A发送数据时,C只听到RTS控制报文,知道自己是暴露终端,认为自己可以向D发送数据。C向D发送RTS控制报文。如果是单信道,来自D的RTS会与B发送的数据报文冲突,C和D无法成功握手,它不能向D发送报文。因此,在单信道条件下,暴露终端问题根本无法得到解决。

3.单信道与多信道问题

  • 对于单信道无线自组织网络,其MAC协议需要考虑的是如何充分利用信道,避免冲突。载波侦听多路访问/冲突检测(CSMA/CA)机制是目前应用非常广泛的协议,节点通过物理信道侦听(CCA)与虚拟网络侦听(NAV)结合的方式进行载波侦听,采用基于长帧间隙、中帧间隙和短帧间隙等不同时隙的退避机制和冲突避免策略,竞争信道进行发送。时分多址(TDMA)机制可以将信道按照时间片划分为多个时隙,节点按照静态或者动态分配方式占用其中的一个或者几个时隙。但是对于无线自组织网络来说,静态分配方式不能适应节点的移动和拓扑的变化;而在一个分布式多跳系统内,进行动态分配也还有很多问题需要解决,目前的研究多是针对基于某些假设或者某种应用背景的无线自组织网络,还没有普遍适用的方法提出。将CSMA/CA和TDMA结合,提高信道分配效率,减少冲突也是一种值得研究的内容。
  • 多信道无线自组织网络,则需要关注如何在节点间分配信道,以提高网络吞吐量,避免冲突,实现信道上的负载均衡。目前较多的做法是,将信道分为控制信道和数据信道,节点在控制信道中协商数据交换采用的数据信道,然后在相应的数据信道上进行数据通信。控制信道和数据信道的划分可能是时间上的,也可能是空间上的。比如,一个信道在某个时刻可能用作控制信道,协商好数据信道后,切换到相应的数据信道进行通信。也可能一个节点拥有几个接口,其中的一个接口固定工作在某个控制信道上,其他接口固定或者动态实用某个数据信道。不管是哪种方式,都需要占用一定的资源用于信道协商。这种占用是值得的,目前 在多信道的理论分析结果说明,在合理设计的多信道条件下,不仅可以提高整体网络容量,还可以提高每个信道的实际吞吐量。但是这些研究多是基于静态的。开发一种基于拓扑结构的算法,对信道资源进行动态分配,也是一个值得研究的问题。

隐藏终端和暴露终端浅析相关推荐

  1. 隐藏终端、暴露终端和RTS、CTS机制

    802.11的隐藏节点和RTS,CTS机制 隐藏终端和暴露终端浅析 无线网络传输问题:隐藏节点和暴露节点

  2. 802.11协议精读5:隐藏终端和暴露终端

    https://zhuanlan.zhihu.com/p/20780796 序言 在无线通信中,有两个典型的问题,即隐藏终端和暴露终端问题.在802.11中,这些问题也是存在,同时也衍生出了一些新类型 ...

  3. 无线网络传输问题:隐藏节点和暴露节点

    1.什么是隐藏节点和暴露节点问题 (1)隐藏节点(隐终端) 隐藏终端是指在接收接点的覆盖范围内而在发送节点的覆盖范围外的节点.隐藏终端由于听不到发送节点的发送而可能向相同的接收节点发送分组,导致分组在 ...

  4. 移动终端CPU、GPU浅析

    探梦方寸间--移动终端:ARM是谁?:CPU.GPU浅析:我们对传统PC市场的CPU如数家珍,英特尔.AM:指令是CPU能听懂的语言,正如人类的语言一样,词:CISC强大高效,RISC简洁容易,这本是 ...

  5. 隐终端效应和暴露终端效应

    用自己的话简述什么是隐终端效应?使用RTS/CTS预约信道机制如何解决的?(必要时可画图举例) 若只用CSMA,表面上侦听到信道"闲"可能结果不正确,是假象,由于 (a)隐蔽站问题 ...

  6. 实验七 隐藏节点和暴露节点仿真实验

    无线网络技术教程第四版实验七 隐藏节点和暴露节点仿真实验 目录 无线网络技术教程第四版实验七 隐藏节点和暴露节点仿真实验 1 实验目的和要求 2 实验原理和背景 2.1 隐藏节点问题 2.2 暴露节点 ...

  7. linux中terminal中编译源码,分享|Terminator:一款一个窗口包含多个终端的 Linux 终端仿真器...

    为了通过命令行和系统互动,每一款 Linux 发行版都有一款默认的终端仿真器.但是,默认的终端应用可能不适合你.为了大幅提升你工作的速度,有好多款终端应用提供了更多的功能,可以同时执行更多的任务.这些 ...

  8. Ubuntu16.04 开启多个终端,一个终端多个小窗口

    Ubuntu16.04 开启多个终端,一个终端多个小窗口 Ctrl+Shift + T,一个终端开启多个小终端 Ctrl+Alt + T 开启多个终端 posted on 2019-03-15 11: ...

  9. linux设置默认终端模拟器,ubuntu终端默认设置_在Ubuntu Linux上设置默认终端模拟器...

    ubuntu终端默认设置_在Ubuntu Linux上设置默认终端模拟器 ubuntu终端默认设置_在Ubuntu Linux上设置默认终端模拟器 ubuntu终端默认设置 Ubuntu has a ...

最新文章

  1. 如何用数学追到完美情人?
  2. webView用法小结
  3. Python快速学习10: 循环的对象及设计 (生活的规律)
  4. c++对象拷贝语意学
  5. centos mysql pid_centos7 mysql The server quit without updating PID file(错误解决)
  6. 口头禅可能让你丢掉工作,你所不知道的工作沟通禁忌
  7. Java框架搭建-Maven、Mybatis、Spring MVC整合搭建
  8. kubernetes视频教程笔记 (7)-安装Harbor私有仓库
  9. Java Spring 框架详解
  10. git 清除用户名密码
  11. 《遥远的救世主》遵守客观规律(三)——文化属性
  12. 让老板虎躯一震的前端技术,KPI杀手
  13. JavaScript个人学习心得
  14. 如何处理u盘一插进电脑就自动打开里面的所有文件夹
  15. luhn算法 java_java – 使用luhn算法验证信用卡号
  16. 前端下载文件(exe,zip,js等)的几种方式
  17. 将网站封装成APP安卓应用
  18. 2022年模式识别高峰论坛学习笔记
  19. 来自Naval Ravikant 的十句话
  20. python量化实战 顾比倒数线_外汇高手分享:顾比倒数线的画法与经典战法

热门文章

  1. shell教程(2):积木游戏之认识积木--重要的系统命令
  2. oracle几何体数据类型,4.2 SDO_GEOMETRY类型、属性和值
  3. 谷歌浏览器崩溃,提示 “STATUS_INVALID_IMAGE_HASH” 的解决办法
  4. CAD图纸中文字字体特别粗看不清楚怎么办?
  5. drcom linux最新版,Drcom-client.org 上线暨新版 PUM v1.0 发布
  6. Android自定义View——实现字母导航栏
  7. OpenAVNU 带宽预留协议SRP代码分析
  8. 解决Linux 负载过高问题过程记录
  9. 你有反馈,我们安排!Sketch 插件升级,新老对比一图看懂
  10. NoSQL和MemeryCache的出现意味着传统数据库使用方式的变革吗?(arvin-推荐--看评论)