丢包是什么意思(丢包问题如何解决)

一、关于丢包的问题

无线通信最常见的问题就是丢包,无论是简单原始的433MHz通信,还是高精尖的5G信号,都会有丢包问题。解决丢包问题也是无线工程师的必要工作,丢包不可避免,但是遇到丢包了应该怎么办才是本文要谈的。

无线通信最重要的就是设计一套能够解决应用需求的通信协议,而通信协议包含这些要素:无线信号使用什么频段、什么调制方式不被干扰、无线信号发给谁、如何保证无线信号送达目标、多个相同的设备同时使用该怎么办、接收端如何判断收到的信号是否重复收或漏收……其实这些都是围绕解决一个问题——丢包。

丢包是什么意思(丢包问题如何解决)

所以任何一种普遍使用的无线通信协议,都要分成若干逻辑层,每一个逻辑层。例如常见的Wi-Fi、ZigBee、蓝牙,它们都具备两个共同的逻辑层——PHY物理层,MAC链路层。其中PHY层定义了频段、调制方式以及传输方式。MAC层则定义了谁来发信号,谁来收信号,什么时候发信号。

基本的PHY层和MAC层解决了常见的物理丢包问题,但是无线设备的应用场景十分复杂,因此各种通信协议之上还增加了诸如网络层这些逻辑层用于保证通信的稳定性,如Wi-Fi协议上 的TCP协议就是为了保证传输稳定而设计的。例如ZigBee的PHY层和MAC层就为了减少丢包做了一些处理机制。

二、减少丢包处理机制

①PHY层的减少丢包机制:

物理层的丢包,就是发送端发送了信号,但是接收端没有接收到信号。这也是最简单也是最常见的原因,通常就是发射端的功率低了,发射端距离接收端太远。

遇到这种情况,通常会想到的办法就是提高发射功率,信号能发射得更远。但是根据香农定律,在相同信道带宽下,信号携带的信息量越少,对信噪比的需求越低,对信噪比需求越低就意味着对功率的需求越低。

这时除了提高功率,还有一种方式就是扩频。比如典型的ZigBee上使用的DSSS扩频,原本ZigBee的信道带宽有2MHz,也就是能在1秒钟内输出2M个0或1的信号。通常我们使用8个0或1的信号表示一个字节,但是DSSS的作用下,需要64个0或1的信号来表示一个字节。这样使用无线信号传输一个字节需要64个0或1,即使信号在传输过程中发生了失真,接收端也能对信号进行纠错。这也就是为什么ZigBee的传输稳定性优于433MHz通信。正常情况下,ZigBee在20dBm发射功率的情况下,传输距离可达1公里。

丢包是什么意思(丢包问题如何解决)

还有一种情况,就是天线的问题。任何一种天线都有天线增益系数以及方向性。通常外置天线的增益就优于PCB天线,在设备空间充足的情况下尽量选择外置天线。而天线的方向性也是要考虑的因素,例如棒状天线的信号覆盖范围就是一个扁球体,平行天线的位置信号非常好,而天线轴线延长线位置信号差得多。

②MAC层减少丢包的机制:

以ZigBee的IEEE802.15.4系列协议为例,该协议的MAC层具有以下几个重要的功能。

载波侦听和CSMA机制:

IEEE802.15.4具备基于载波侦听的CSMA机制。设备在每次发射信号前,会侦听当前信道是否繁忙,并在信道空闲的时候发射信号。很多sub-G芯片也带有载波侦听功能的,但是缺少类似CSMA这样的协议机制。CSMA则规定了信道侦听的方法:发射前在一个随机时间内持续侦听信道,这样就能适当避免两个相同的设备同时发射信号;随机时间到达后尝试发送信号,如果发送失败就再侦听一次,并且下一次随机时间范围继续扩大(2倍),这样就能避免更多的设备同时发射信号;如果多次尝试都失败,而且达到了最大次数限制,那么这个信号就算丢包了。

自动应答机制:

IEEE802.15.4-MAC层有两种主要通信方式:广播和点播。点播到目标时,目标节点会返回ACK帧。发送端没有收到ACK帧,会尝试重传信号,如果多次重传都没收到ACK就算丢包。另外接收端回复MAC-ACK的时候是不受CSMA机制可以强行发送的,发送端在CSMA机制下成功将点播信号送出去后,只需要0.2~0.5毫秒就能收到ACK。

因此,导致MAC层丢包常见的现象就是CSMA失败丢包和MAC-ACK失败丢包,和物理层的丢包不同的是这两种丢包都可以被发送端自己检测到。通常遇到这种丢包,应用上的处理就是重传。但是重传也是要讲究科学性的,比如恶意信号干扰导致CSMA失败重传就没法解决;接收目标不存在导致的 MAC-ACK失败重传也是没法解决的。

PHY层和MAC层的一系列处理机制都是为了减少丢包而设计的,但是无法保证绝对没有丢包,因此无线应用设计中,最关键地就是遇到丢包了该怎么办。

三、无线应用中丢包解决方法

以ZigBee传输为例,PHY层、MAC层、NWK层做了很多处理机制,丢包率几乎达到0.1%~0.01%。但是如果应用设计没考虑到仅剩的0.1%~0.01%丢包问题,对应用自身的影响就是致命的。在应用中常见的对丢包的容错,有如下解决办法。

丢包是什么意思(丢包问题如何解决)

①合理重传:

重传是大家都能想到的方法,ZigBee就提供了CSMA失败检测和ACK失败检测。通常遇到以上两种情况大家的常见做法就是数据重传。但是重传也要讲究合理性,例如CSMA失败,这个时候有可能是很多个节点同时在发射信号;例如设备上电的时候会把上电时的信息上报给网关,多个设备一起上电肯定会有很大的冲突率,CSMA失败是很常见的事。因此,这时候遇到CSMA失败不要立即重传,可以随机延时100毫秒~1秒再重传,如果再次失败说明同时传输的设备确实太多,再随机延时2~4秒,失败再随机延时4~8秒……。如果是ACK失败则可以根据该次发射数据的实时性,延迟一个固定时间再重传,一般在1秒以上5秒以下,因为有可能上次传输失败是目标节点“不在状态”,下次传输可能就自动好了。

②设计时序规则:

应用数据传输时需要考虑出现丢包时该如何处理,例如OTA升级,文件传输。每一帧数据都是必不可少的,而且顺序还要正确。所以这类无线传输应用中,应该对每一帧数据包都标注上序号。发送端一旦检测到丢包,可能会重传数据帧。而接收端有可能是因为ACK没有发送到发送端导致发送端误判。如果接收端收到多一帧或少一帧数据,都可以从每一帧的序号判断出来。

③该放弃时要放弃:

类似接收端不存在,或者信道遇到干扰的问题,通过MAC层都可以侦测到。例如出现连续长时间的ACK失败,可能就是接收端不存在;连续长时间的CSMA失败,可能就是遇到了干扰。接收端不存在的情况下完全可以放弃对这个接收端发送消息。信道被干扰的情况下可以做整体信道切换,也可以暂停全网络的运行,保存当前状态,等待干扰消失后再恢复全部的传输。

四、不算丢包的“丢包”

无线通信上除了无线信号导致的丢包,还有软件逻辑上的丢包。典型的就是通信的数据量超过了发送端或接收端的处理能力。比如ZigBee的传输速率只有250kbps,加上CSMA延迟,路由转发,实际数据传输速率能够达到5kbps~10kbps就很不错了。发射端的应用程序如果向发射端写入数据的速度超过了发射端的传输速度,也会导致软件丢包。

通常各家芯片厂商的IEEE802.15.4的协议栈都会提供一个Send Confirm的回调接口,应用程序向传输接口写入需要传输的消息后,约在几毫秒到几十毫秒内收到Send Confirm回调触发。同时一般射频芯片SoC也会提供缓存来存储写入的数据帧,有可能应用程序一次向射频芯片写入多个数据帧都被芯片SOC缓存起来,再慢慢的一帧一帧发射出去,然后Send Confirm回调被陆陆续续地触发。如果应用程序在发送消息的时候,每次向射频SoC写入传输消息,待Send Confirm触发后再写入下一条消息,就可以很好地规避软件丢包的问题。

对于接收端也是如此,多个发送端向同一个接收端发送消息,CSMA很好地规避了冲突,发送端收到了各自的ACK,但是发送端发送的消息在接收端没有得到正确的响应。那么就有可能是接收端的处理能力有限,各个发送端累计发送的消息全部堆在接收端正在处理,这种情况就要考虑系统设计问题,减少接收端的处理压力。

总结

对于丢包的容错处理是无线通信设计的关键,现有成熟的通信协议虽然做了很多措施来降低丢包率,如果丢包一旦发生一定要有容错机制来应对,否则就算是千分之一或万分之一的丢包,都会为整个无线系统带来灾难性的后果。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年1月16日 下午3:03
下一篇 2023年1月16日 下午3:07

相关推荐

  • 闰年和平年的计算方法(2023年为什么有384天)

    现在是2023年了,但根据农历年来算,现在还算虎年,真正的兔年要从大年初一开始,这样一来兔年共有384天,那2023年为什么有384天?黑兔年百年一遇?兔年共有384天具体是怎么计算的? 一、2023年为什么有384天? 2023年之所以有384天跟“闰二月”有关,所谓“闰二月”是指农历一年中出现两个二月,其中第二个二月为闰二月,之所以出现这种情况,跟二十四…

    2023年1月28日
    250
  • 龙虎猴的成语大全及解释(有动物名称的成语的寓意)

    带有动物名称的成语的寓意: 【飞禽(虫)】 附凤攀龙 —— 喻攀附权贵 凤毛麟角 —— 喻时间少有 鹰鼻鹞眼 —— 喻外貌凶狠 鹏程万里 —— 喻前程远大 鸿鹄之志 —— 喻志向远大 一箭双雕 —— 喻一举两得 鹤立鸡群 —— 喻比人突出 风声鹤唳 —— 喻人心惶惶 沉鱼落雁 —— 喻美貌非常 鸦雀无声 —— 喻非常寂静 鸦雀无声 —— 喻非常寂静 鹦鹉学舌…

    2023年4月2日
    70
  • 四川43.9℃高温再次刷新纪录(四川好久开始降温)

    高温天气会给人体健康、交通、用水、用电等方面带来严重影响,据悉四川43.9℃高温再次刷新纪录,详细温度情况是怎么样的呢?四川要等到什么时候才开始降温?和帝一玩小编一起来详细了解一下吧。

    2022年8月25日
    560
  • 元宵节的传统食材及养生秘诀

    正月十五日是一年中第一个月圆盛典,故名『元(月)宵(夜)』。道士以正月十五日为上元节。早就在汉朝已经有祝贺元宵节之俗,至唐经营规模更加盛大游戏。以下是小编为大家整理的元宵节的传统食材及养生秘诀,我希望

    2022年10月10日
    530
  • 深圳好玩的地方推荐(深圳最值得去的五个地方)

    深圳,简称“深”,别称鹏城。是中国改革开放的窗口和新兴移民城市,创造了举世瞩目的深圳速度,被誉为中国的硅谷。也是全球十大热门旅游目的地。 深圳值得去的地方有很多,深圳八景诠释了深圳的美。 下面,从八景中挑选出深圳最值得去的五个地方如下:一、大鹏所城 位列深圳八景第一位,是深圳鹏城别名的源头。是明代为了抗击倭寇而设立的大鹏守御千户所城。 是我国南中国海防军事要…

    2024年7月30日
    10
  • 贵州新增本土17+80,贵州新增本土17(80病例)

    摘要:9月13日0时至24时,经复核确诊,贵阳市新增71例阳性病例,1例诊断为新冠肺炎确诊病例,70例诊断为新冠肺炎无症状感染者。全市现有确诊病例17例,无症状感染者535例,解除隔离医学观察10例。

    2022年10月2日
    410
  • 笔记本电脑不能u盘启动重装系统(笔记本电脑重装系统u盘启动不了怎么办)

    (笔记本电脑无法启动u盘重新安装系统)有网友反映自己做系统的时候,进入优盘启动pe,键盘鼠标失灵,完全不能用,这是怎么回事,下面小编就告诉你怎么回事。鼠标和键盘是标和键盘usb但总会有问题。首先,考虑硬件问题1.试着重新

    2022年9月13日
    660
  • 信纸印刷大概多少钱(淮北信封定制一般多少钱)

    信封在现在比较少见了,通常用于存储一些比较私密的文件。那么对于商家来说,很多时候都需要定制一些信封来存储一些商业信息或者给员工发放工资。那么定制这样的信封要多少钱呢?成本高不高?今天小易就带大家来了解一下,淮北信封印刷价格,淮北信封定制一般多少钱? 淮北信封印刷一般要多少钱? 首先,关于信封的价格要分为两个部分:信封设计和信封印刷。 设计费用: 信封的设计费…

    2023年1月19日
    130
  • 安倍母亲为什么住养老院,安倍晋三名下财产及住宅归谁?

    安倍晋三遇刺当天,安倍母亲正在养老院居住,是在电视上看到自己儿子中枪的消息,当即放声大哭。令人好奇的是,安倍母亲为什么住养老院?此外,如今安倍身亡了,那么他名下财产及住宅归谁?下面

    2022年9月8日
    960
  • 红白绿三色旗是哪个国家

    国旗是国家的一种标志性旗帜,是国家的象征,通过一定的样式、色彩和图案反映一个国家政治特色和历史文化传统。那么红白绿三色旗是哪个国家呢?意大利1、红白绿三色旗是意大利。2、意大利共和国国旗绿色代表葱郁的

    2022年9月30日
    6190

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信