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