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 算法!加入端到端的数据重传机制,那问题还不是立马搞定?

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

相关文章
|
3月前
|
传感器 物联网 网络架构
WiMinet 评说1.1:多跳无线网络的现状
对于无线通讯而言,有多个因素会影响到系统的整体性能,其中通讯距离是非常关键的一项。
|
21天前
|
安全 Linux 虚拟化
网络名称空间在Linux虚拟化技术中的位置
网络名称空间(Network Namespaces)是Linux内核特性之一,提供了隔离网络环境的能力,使得每个网络名称空间都拥有独立的网络设备、IP地址、路由表、端口号范围以及iptables规则等。这一特性在Linux虚拟化技术中占据了核心位置🌟,它不仅为构建轻量级虚拟化解决方案(如容器📦)提供了基础支持,也在传统的虚拟机技术中发挥作用,实现资源隔离和网络虚拟化。
网络名称空间在Linux虚拟化技术中的位置
|
21天前
|
安全 Linux 网络虚拟化
Linux网络名称空间和Veth虚拟设备的关系
在讨论Linux网络名称空间和veth(虚拟以太网对)之间的关系时,我们必须从Linux网络虚拟化的核心概念开始。Linux网络名称空间和veth是Linux网络虚拟化和容器化技术的重要组成部分,它们之间的关系密不可分,对于构建隔离、高效的网络环境至关重要。😊
|
21天前
|
网络协议 安全 Linux
Linux网络名称空间之独立网络资源管理
Linux网络名称空间是一种强大的虚拟化技术🛠️,它允许用户创建隔离的网络环境🌐,每个环境拥有独立的网络资源和配置。这项技术对于云计算☁️、容器化应用📦和网络安全🔒等领域至关重要。本文将详细介绍在Linux网络名称空间中可以拥有的独立网络资源,并指出应用开发人员在使用时应注意的重点。
|
19天前
|
存储 算法 Linux
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
43 6
|
19天前
|
网络协议 Linux Python
Python网络编程基础(Socket编程)epoll在Linux下的使用
【4月更文挑战第12天】在上一节中,我们介绍了使用`select`模块来实现非阻塞IO的方法。然而,`select`模块在处理大量并发连接时可能会存在性能问题。在Linux系统中,`epoll`机制提供了更高效的IO多路复用方式,能够更好地处理大量并发连接。
|
10天前
|
机器学习/深度学习 缓存 监控
linux查看CPU、内存、网络、磁盘IO命令
`Linux`系统中,使用`top`命令查看CPU状态,要查看CPU详细信息,可利用`cat /proc/cpuinfo`相关命令。`free`命令用于查看内存使用情况。网络相关命令包括`ifconfig`(查看网卡状态)、`ifdown/ifup`(禁用/启用网卡)、`netstat`(列出网络连接,如`-tuln`组合)以及`nslookup`、`ping`、`telnet`、`traceroute`等。磁盘IO方面,`iostat`(如`-k -p ALL`)显示磁盘IO统计,`iotop`(如`-o -d 1`)则用于查看磁盘IO瓶颈。
|
4天前
|
网络协议 算法 Linux
【Linux】深入探索:Linux网络调试、追踪与优化
【Linux】深入探索:Linux网络调试、追踪与优化
|
23小时前
|
JSON 网络协议 Linux
Linux ip命令:网络的瑞士军刀
【4月更文挑战第25天】
7 1
|
2天前
|
网络协议 JavaScript Linux
Linux常用网络指令(下)
Linux常用网络指令(下)
10 0