IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> RTS/CTS协议如何隐藏终端问题? -> 正文阅读

[网络协议]RTS/CTS协议如何隐藏终端问题?

定义

RTS/CTS协议,即请求发送、允许发送协议,相当于一种握手协议,主要用来解决“隐藏终端”问题。
协议精读
隐藏终端信号覆盖范围

提出

隐藏终端

STA 1和STA 2向基站AP发送信息,STA 1未检测到STA 2也向AP发送,所以STA 1和STA 2同时将信号发送到AP,引起信号冲突,最终导致STA 1和STA 2的信号都丢失了。 隐藏节点:由于距离太远而导致一个站点无法检测到介质竞争对手的存在。
"隐藏终端"多发生在大型单元中(一般在室外环境),这将带来效率损失,并且需要错误恢复机制。当需要传送大容量文件时,尤其需要杜绝"隐藏终端"现象的发生。
隐终端问题
从图中,我们可以得知,由于两个节点的发送范围无法互相覆盖,从而两者在发送数据时,是无法通过物理监听的方法,探测对方是否有发送数据。

如何解决隐藏终端问题呢?

IEEE802.11提供了如下解决方案。
在参数配置中,若使用RTS/CTS协议,同时设置传送上限字节数----一旦待传送的数据大于此上限值时,即启动RTS/CTS握手协议:
RTS:Request To Send,即请求发送。RTS帧是一个单播帧,没有加密,其duration字段中填充包含后续发送过程中总体所需要时间。
CTS:Clear To Send,即信道清除帧。节点在收到CTS后,确认信道是空闲的,可以发送。CTS也是一个单播帧,没有加密,其duration字段包含除去RTS以及一个SIFS后,发送过程总体所需要时间。

  • 首先,STA 2发送RTS数据帧给AP。
  • 若在AP没有冲突,即AP成功解调出STA 2的RTS,AP会在等待SIFS之后发送CTS给STA 2。由于无线信道是一个广播信道,要是帧没有加密的话,那么所有节点都是可以解析信息的,所以这里AP虽然是发送CTS给STA 2,不过STA 1也可以解析该CTS信息,这也是很多书上写,RTS/CTS都是一个广播过程的原因。
  • 当STA 1接收到CTS之后,该CTS不是STA 1请求所得。或者说CTS不对应,那么STA 1会将CTS数据帧的duration给提出,并设置在自己本地的NAV(Network Allocation Vector)上。若NAV没有倒数到0,那么其会主动悬挂其随机回退计数值,在NAV没有倒数到0之前,其随机回退计数值不再继续倒数。
  • 当STA 2接收到CTS后,其发现该其是之前发送RTS的反馈。故节点已知信道空闲,在等待SIFS后,STA 2发送数据。当数据传输完成之后,AP向STA 2反馈ACK,从而最终完成一次传输。

RTS/CTS握手过程
RTS/CTS工作机制对应的时序图如下:
RTS/CTS工作时序图
注意:NAV:虚拟载波监听。图上画错了,STA 1在重新backoff的时候,从3直接开始倒数而不是6。

实际应用

在实际的路由器中,RTS/CTS模式不是以开关的形式存在,而是以RTS_threshold的形式存在的。RTS/CTS另外一个思维就是通过短的控制包来预留出带宽,即 “采用小的数据包碰撞,来避免大的数据包碰撞” ,从而如果数据包太小,那么则不需要采用RTS/CTS机制。设置RTS_threshold的范围一般为2347,其单位是byte,即如果数据包大小如果大于2347 byte,那么才会采用RTS/CTS模式,在现实应用中,可以根据具体的情况,设置一个最适合的值。

总结

本文描述了RTS/CTS的定义,它是一种握手协议,用于解决“隐藏终端”问题。我们还介绍了什么是隐藏终端,RTS/CTS是如何解决隐藏终端问题的。隐藏终端问题是由于信号源之间无法互相通讯而发生碰撞引起的。RTS/CTS通过某一个基站向终端发送RTS,终端从而广播CTS清除信道内其他信号,让其他信号进行NAV等待,最后成功发送PACKAGE。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-03-11 22:34:38  更:2022-03-11 22:35:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:47:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码