当前位置: 首页 >应用方案 >技术应用 >

无线通信中数据丢包重传是如何实现的

无线通信中丢包重传数据通信应用里面一项非常重要的功能是无线通信模块选型的一项主要参考指标。前文详细的介绍了什么是网络丢包、数据丢包是如何检测及系统层数据丢包重传机制、数据丢包有哪些解决办法等,本文接着介绍通信协议中数据通信丢包重传是如何实现的,具体实现丢包重传功能如下:

应用层的重传策略:

系统层的重传,无论是CSMA/CA,还是MAC重传,还是APS重传,都是机械呆板的策略。系统层的重传机制,特点就是重传2~3次,如果重传失败就通过“AF Data Confirm”向应用层报告发送失败。

但是应用层是无线传输中智能化程度最高的,也是可以进行重传策略设计的层级。应用层应该根据应用环境,消息的重要性设计丢包重传的策略。我们以zigbee的应用为例,来设计重传策略。

CSMA/CA失败的重传:

通常zigbee设备出现CSMA/CA失败,要么是环境干扰太强,要么是同时发送消息的zigbee设备数量太多超过了CSMA/CA的最大窗口。

如果是同时发送消息的设备数量太多,这个时候就要加入“手动避让”机制。比如很多节点同时向协调器上传消息,某个节点通过“AF Data Confirm”检测到载波冲突丢包。这时候可以把丢包的消息记下来,然后同样延时一段随机时间,错开发送高峰进行重传。当然这个随机时间范围就要比MAC层的CSMA/CA的随机时间大得多。应用层的重传可以随机1~4秒进行重传,以0.1秒为最小单位,如果再次发生载波冲突可以加倍随机时间范围。特别是zigbee网络应用中节点数量是一个动态可变的因素,在节点数量多的时候可以不用在乎数据的实时性,而是要保证每个节点的消息都能被收到,而且“设备越多耗时越多”这个逻辑也是科学合理的道理。

Zigbee系统提供的冲突检测机制,只能检测冲突,但是无法区分是传输冲突还是恶意的信号干扰。因此有可能会出现应用层一直在重传,“AF Data Confirm”一直在报告载波冲突。这个时候应用层就要做“聪明”一点,有可能是zigbee设备遇到了持续的干扰信号。对于持续的干扰信号只能通过暴力手段解决,可以通过无线电定位设备找到干扰源并摧毁它。

系统应答丢包的重传:

系统应答丢包,包括MAC-ACK丢包和APS-ACK丢包,可以采用以下策略。ZigBee的系统层具有Mesh路由设计,数据传输时会寻找一条最短的路由路径。在出现MAC-ACK丢包且MAC重传失败时,zigbee的路由算法会计算出一条新的路径。而APS-ACK是最终目标丢包,出现这种情况极大可能就是最终目标坏掉,或者这个最终目标根本就不存在。另外如果最终目标不需要进过路由,zigbee系统直接发送MAC帧,也就直接报告MAC-ACK丢包。

出现应答丢包且重传失败,因为系统层已经做了MAC重传和APS重传。因此可以不用立即重传,可以等待一段时间(10~1分钟)再继续重传。如果重传成功则说明目标设备是好的,只是刚才出了点意外;如果重传失败则可以怀疑目标设备出问题了,以后就不要再向出问题的目标设备发送任何消息。在zigbee网络中如果有故障设备,其它设备向他发送消息都会消耗网络资源对其进行路由寻址,不但会有很长的时延,而且还没有好的结果。因此一旦网络中有故障设备,应用层就应该避免向故障设备发送任何消息。

如何处理应用层的应答:

系统层重传的应答机制仅能表示发送的消息是否到达目标,应用层的应答除了表示消息到达目标外,还有表示对消息的执行结果的功能。系统层的应答的英文叫做acknowledge”简写“ACK”而应用层应答则叫做“response”简写“RSP”。ACK是目标设备收到消息后立即产生的,RSP则是目标设备处理完消息后再回复的,其等待时间要加上目标设备处理消息的时间,这个时间具有很高的不可预测性。因此通常在zigbee的控制应用中,发送短发送消息时只使能MAC-ACK而不使能APS-ACK,然后等待RSPRSP除了可以用来判断是否丢包,还可以判断一下次该发送什么消息,这样就可以形成一个闭环控制系统。

闭环控制系统
闭环负反馈系统,RSP应答可以作为负反馈通道

而接收端收到消息后向发送端发送RSP应答时,为了保证RSP能到达发送端,通常反而会开启APS-ACK。这样即使RSP应答丢包了,传输层的重传机制也会自动让RSP应答重传。另外在zigbee 3.0中规定zigbee设备可以用自己的任意状态值作为心跳包报告给另一个设备,心跳包什么时候发出去也是系统层控制不受应用层干预,应用层也不会去干涉心跳包是否丢包。因此心跳包在传送的时候通常也使能APS-ACK而不使能RSP

今天的分享就到这里啦,EBYTE人每一天都致力于更好的助力物联化、智能化、自动化的发展,提升资源利用率,更多产品更多资料,感兴趣的小伙伴可以登录我们的亿佰特官网进行了解,还有客服小姐姐在线答疑哦!

https://www.wjx.cn/jq/84863372.aspx