WiMinet 评说1.2:多跳无线网络的困境

简介: 在工业应用中,低速率,大规模和长距离的无线自组织网络一直没有得到广泛的部署,根本原因在于其稳定性,可靠性和实时性一直无法得到良好的保证。

1、前言

在工业应用中,低速率,大规模和长距离的无线自组织网络一直没有得到广泛的部署,根本原因在于其稳定性,可靠性和实时性一直无法得到良好的保证。在这种自组织网络中,节点之间的跳转关系大多是根据其相对位置和信号强度来决定的;由于安装位置,部署密度,启动时间等差异,其网络拓扑往往会有比较明显的不同,在网络的某些分支,其跳数可能会比较浅,比如1-2跳,而有些分支则比较深,比如6-8跳。在这些网络跳数比较浅的区域,其丢包率比较小,通讯延迟比较小,可靠性和实时性也比较好;而在那些网络跳数比较深的区域,其丢包率也比较高,通讯延迟比较大,可靠性和实时性自然也就比较差。

2、业内问题

作为一个上层的应用系统,用户在设定数据传输频率(是每秒给目标节点发出去多少个应用层的数据包,不是网络本身的无线通讯速率)的时候,往往是不太关心网络的拓扑结构的;实际上这个也没办法关心,因为它本身就不太固定,因此在设定重传的时间门限的时候,往往不能充分地考虑到不同的网络跳数所导致的通讯延迟和丢包率。一旦设置不合理,就会形成严重的应答超时和通讯失败;即便设置了正确的时间参数,由于开放的无线信道经常会受到外界的扰动,这个网络拓扑可能还会发生变动,更别说因为用户后期追加设备或者临时对某些设备二次上电所导致的拓扑结构发生改变了。

从自组织网络的基本工作原理,我们可以看出,网络跳数的深浅是由部署环境和一些其他因素综合决定的,存在较大的偶然性和不确定性。在网络的某些物理分支,其网络跳数必定比其他区域更深,这个区域的丢包率,通讯延迟也必然比其他的区域更大,带来的可靠性和实时性也自然更差。这一点我们可以通过数学上的概率论予以解释。

3、概率分析

在特定的电磁环境中,每种配置参数的无线通讯系统有一个大致确定的比特误码率 BERBit Error Rate) 和包误码率PERPacket Error Rate),二者之间有下述关系:

PER=1 - ( 1 – BER )n

      其中n 是这个数据包的长度,也就是总的比特数量。

考虑到无线自组网系统都是基于数据包作为基本的收发单元,因此本文选定 PER 作为分析的依据。为了叙述方便,我们假定丢包率PERp,那么通讯成功的概率P1,也就是不丢包概率为100% - p,也就是 1-p;对于一个两跳的无线网络,要想实现端到端的成功传输,那么这连续两跳都必须传输成功,依据概率论的知识,其成功的概率P2应该等于两跳成功概率的乘积,也就是

P2  = P1 * P1 = P12= ( 1 – p )2

同理,对于一个由n+1个节点组成 n 跳的多跳无线链路,最终的目标节点要想正确地接收到源节点发出来的数据,要求从2号节点到n+1号节点的每一个中间节点都必须正确地收到上一跳发过来的数据,只要有一个环节失败了,最终的目标节点就无法正确地收到源节点发出来的数据,因此其总的通讯成功率Pn,按照概率论的知识应该有下述关系:

Pn = ( P1 * P1 …. * P1 ) = P1n= ( 1 – p )n

为了更加直观的说明真实的通讯效果,我们以包误码率PER10%,也就是 p=0.1 的电磁环境为例,计算出不同网络跳数下的链路通讯成功率,具体如下表所示:

 

无线网络的跳数n

端到端通讯成功率Pn = ( 1 – p )n

1

90%

2

81%

3

73%

4

66%

5

59%

 

从上表我们看出,随着网络的跳数逐步增加,通讯成功率是明显逐步降低的,到了第五跳 n=5,也就是第六个链路节点的时候,其成功率已经低于人们的心理“及格线”60%了。很多人在这种情况已经判定链路不稳定了。事实上有不少的工程师朋友在现场调试ZigBee网络的时候,就发现了这个现象,但很少有人思考其背后的数学原理。

4、总结

通过上文的分析,我们可以看出,在室外长距离的无线自组织网络中,由于节点之间的链路损耗较大,其链路预算相对不足,因此其包误码率PER会相应升高,也就是丢包概率 p 会比较大;而在一个大规模网络中,某些分支节点的通讯链路又会比较深,也就是网络跳数n 比较大,在这种情况下其通讯成功率Pn自然也就显著下降了,人们的切身感受就是这个链路不太稳定。

说到这里,有的读者朋友心里可能会想,这还不简单,给我上 TCP 算法!加入端到端的数据重传机制,那问题还不是立马搞定?

效果果真如此么?请看后续文章分解!

相关文章
|
4天前
|
传感器 物联网 网络架构
WiMinet 评说1.1:多跳无线网络的现状
对于无线通讯而言,有多个因素会影响到系统的整体性能,其中通讯距离是非常关键的一项。
|
4天前
|
监控 安全 Linux
【专栏】Linux中六个常用的网络命令:ping、traceroute、netstat、nmap、ifconfig和ip
【4月更文挑战第28天】本文介绍了Linux中六个常用的网络命令:ping、traceroute、netstat、nmap、ifconfig和ip,以及它们在测试网络连通性、追踪路由、查看网络状态、安全扫描和接口配置等场景的应用。通过学习和运用这些命令,系统管理员和网络爱好者能更有效地诊断和管理网络问题,确保网络稳定运行。
|
2天前
|
运维 网络协议 Linux
Docker网络_docker 网络,来看看这份超全面的《Linux运维面试题及解析》
Docker网络_docker 网络,来看看这份超全面的《Linux运维面试题及解析》
|
4天前
|
网络协议 Linux 网络架构
|
4天前
|
域名解析 网络协议 Linux
linux网络配置详解
linux网络配置详解
24 0
|
4天前
|
网络协议 Java Linux
【探索Linux】P.29(网络编程套接字 —— 简单的TCP网络程序模拟实现)
【探索Linux】P.29(网络编程套接字 —— 简单的TCP网络程序模拟实现)
14 0
|
4天前
|
存储 网络协议 算法
【探索Linux】P.28(网络编程套接字 —— 简单的UDP网络程序模拟实现)
【探索Linux】P.28(网络编程套接字 —— 简单的UDP网络程序模拟实现)
16 0
|
4天前
|
网络协议 算法 Linux
【探索Linux】P.27(网络编程套接字 —— UDP协议介绍 | TCP协议介绍 | UDP 和 TCP 的异同)
【探索Linux】P.27(网络编程套接字 —— UDP协议介绍 | TCP协议介绍 | UDP 和 TCP 的异同)
16 0
|
4天前
|
存储 算法 网络协议
【探索Linux】P.26(网络编程套接字基本概念—— socket编程接口 | socket编程接口相关函数详细介绍 )
【探索Linux】P.26(网络编程套接字基本概念—— socket编程接口 | socket编程接口相关函数详细介绍 )
13 0
http://www.vxiaotou.com