WIFI基本大数据的传输机制理解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
802.11基本数据传输机制理解
1. 80
2.11网络基本概念
1.1 80
2.11网络元素
Station (STA):
具有802.11无线网卡的设备,包括手机、笔记本电脑等。
Access Point (AP):
实现无线网络与固定网络连接功能的设备,通常也称作“热点”,它主要完成STA与STA之间数据的转发、STA与骨干网之间数据的转发以及必要的管理工作。
本文中将AP和STA通称为Node(节点)。
Wireless Medium (WM):
STA之间以及STA与AP之间传递数据的通道,即无线链路。
无线链路一词相对直观和容易理解,本文中的用无线链路只带WM。
Distribution System (DS):
8023.11中的一个逻辑概念,通常包括两部分:骨干网以及AP的帧分发机制。这里的骨干网指的是连接各AP的固网,通常可以理解为以太网;AP的帧分发机制则完成骨干网与STA、以及STA与STA之间的数据帧转发工作。
1.2 80
2.11组网方式
Independent Basic Service Set (IBSS)
—IBSS中只有STA和WM,没有AP和DS
—IBSS内的通信只能发生在STA直接通信距离内
—IBSS内STA间的通信都是点到点直接通信,没有转发
图1 IBSS网络结构
Infrastructure Basic Service Set (BSS)
—BSS内有STA、AP和WM,但没有DS
—BSS的范围由AP的覆盖范围决定
—BSS内的各STA的通信均由AP中转,不能直接通信
—BSS内STA在通信前必须先与AP进行关联(associate),建立STA-AP的对应绑定关系—STA总是关联的发起方,AP是响应方并决定是否允许STA的加入
—一个STA同一时刻最多只能与一个AP进行关联
—AP的存在使得各STA可以以省电(power-saving: PS) 模式工作
图2 BSS网络结构
Extended Service Set (ESS)
—多个BSS串在一起组成一个ESS,同一ESS内的所有AP使用同一个SSID (Service Set Identifier)
—一个ESS内的各BSS由DS连接起来
图3 ESS网络结构
2. 802.11数据传输的基本问题及解决方案
2.1 数据传输的可靠性
将数据准确无误地送达目的地是任何通信技术的基本要求。802.11中引入多种机制来保证数据传输的可靠性。
2.1.1 ACK机制
接收方成功接收到一个帧后,向发送方回复一个Ack帧进行确认。这里的成功接收意味着MAC帧已经收到且FCS校验结果正确。
图4 引入ACK后的帧交互机制
一般情况下有两种帧要求Ack帧的确认:
⏹单播帧:单播帧的接收者必须向发送者回复Ack进行确认
⏹ToDS域为1的多播/广播帧:ToDS为1意味着这个报文需要由AP转发到DS里去,
AP向发送方确认报文已收到并会被转到DS里去。此时其他STA不回复。
多播/广播帧不要求、也不能要求收到该帧的每个节点都ACK回复,因为这样既无必要,AP也无法处理。
发送方收不到Ack帧的可能情况有:
⏹接收方未接收到帧,所以没有回复Ack
⏹接收方收帧过程出错,或是对帧的FCS校验失败,没有回复Ack
⏹接收方成功收到帧,但发送方没有成功收到Ack帧
不管是那种情况,发送方都会认为发送失败并启动重传。
2.1.2 重传机制
802.11中提供一个门限值RTSThreshold,长于或等于该门限值的帧被认为是长帧,而短于该门限值的帧被认为是短帧。
系统为每一个即将传输的帧(impending frame)都相应地配备有一个重发计数器(Retry Counter),长帧则为LRC(Long RC),短帧则为SRC(Short RC)。每重传一次,相应的RC 就加1。系统中对帧的重传次数是有限制的。如果重传次数达到上限但传输依然没有成功,该帧将被丢弃。
此外系统对每一帧的有效时间也是有限制的,也就是说每一帧都应该在一定时间内被成功发出,否则该帧就失效了,系统会将其丢弃。
综上所述,帧的重传不会无限制的重复下去,当发生下述情况之一时,重传终止:
⏹得到了接收方的Ack,发送成功;
⏹重传次数达到上限但仍未收到接收方的Ack,发送失败,弃帧;
⏹当前帧已经过了有效时期但仍未收到接收方的Ack,发送失败,弃帧。
重传意味着对帧的缓冲,意味着对系统内存及其他资源的占用。而帧越长,对系统内存的占用就越多。因此按帧的的长短进行分类,降低长帧的重传上限,有利于提高系统资源的
利用效率。
鉴于发送方没收到Ack的可能原因,重传有可能导致接收方收到重复帧,因此接收方需要相应的重复帧过滤机制。
2.1.3 重复帧过滤机制
802.11网络中的每一个节点,包括STA和AP,都会根据所收到的帧来缓存并更新<对端地址,帧序号,分片序号>组合,对于每一个对端地址,只需要保存最近收到的帧的<地址,帧序号,分片序号>组合。
收帧过程中,如果接收端发现当前帧是一个重传帧(帧中的RetryBit为1),则根据当前帧的发送者地址找到缓存中对应的<对段地址,帧序号,分片序号>。如果当前帧的帧序号小于或等于组合中的帧序号,或者帧序号相同但是分片序号小于或等于组合中的帧序号,接收方会将该帧认为是重复帧而将其丢弃。
如果当前帧中的RetryBit为0,接收端将不会启动重复帧过滤机制。
对重复帧,接收方依然回复ACK帧,以免发送方不断重传。
2.1.4 分片机制
根据帧格式的定义,802.11帧中负载的最大长度为23424字节。对于更长的数据,则需要将其分片成多个帧组成分片序列来完成传输。
802.11的分片序列中,除了最后一片,所有分片大小都应一样,且应该是偶数个字节。整个分片序列共享一个帧序号,帧序号表示各分片在整个序列中的位置。除了最后一片外,所有分片中的MoreFrag域都应设为0以告知接收者还有后续分片。根据帧格式的定义,分片号由4比特的二进制序列表示,说明一帧数据最多只能有16个分片。
接收方先将所收到的分片缓存,收齐所有分片后按照分片号的先后顺序重新组装。如果未能收齐所有分片或者重组失败,接收方将直接丢弃整个分片序列。
在正常情况下,接收者应对每一个收到的分片立即回复ACK,收到ACK后发送方继续发送下一个分片。如果某个分片没有被ACK,发送方将对该分片启动重传机制。显然,任何一个分片的发送失败都会导致整个序列的发送失败。
对大的数据包进行分片处理,可以提高传输的可靠性。
2.2 隐藏节点(hidden node)问题
考虑下图所示的情况:node1和node3都在node2的收发区域内,但node1不在node3的收发区域,因此对于node3相对于node1而言是一个“隐藏节点”。同样,node3也是node1的“隐藏节点”。如果不加任何约束的话,node1和node3很有可能同时向node2发送数据,而node2无法区分并成功接收,因而发生冲突。