首页 > 其他分享 >WiMinet 评说1.2:多跳无线网络的困境

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

时间:2023-12-19 15:34:32浏览次数:30  
标签:通讯 1.2 跳数 网络 P1 WiMinet 链路 无线网络 节点

1、前言

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

 

2、业内问题

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

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

 

3、概率分析

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

PER=1 - ( 1 – BER )n

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

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

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

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

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

       为了更加直观的说明真实的通讯效果,我们以包误码率 PER为10%,也就是 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 算法!加入端到端的数据重传机制,那问题还不是立马搞定?效果果真如此么?请看后续文章分解!

翻译

搜索

复制

标签:通讯,1.2,跳数,网络,P1,WiMinet,链路,无线网络,节点
From: https://www.cnblogs.com/wiminet/p/17913842.html

相关文章

  • rancher harvester deploy demo 【部署 harvester v1.2.1】
    简介Harvester是一个现代的、开放的、可互操作的、基于Kubernetes的超融合基础设施(HCI)解决方案。它是一种开源替代方案,专为寻求云原生HCI解决方案的运营商而设计。Harvester运行在裸机服务器上,提供集成的虚拟化和分布式存储功能。除了传统的虚拟机(vm)之外,Harvester还通过与Ranc......
  • centos 7.9 二进制部署 kubernetes v1.27.7
    文章目录1.预备条件2.基础配置2.1配置root远程登录2.2配置主机名2.3安装ansible2.4配置互信2.5配置hosts文件2.6关闭防firewalld火墙2.7关闭selinux2.8关闭交换分区swap2.9修改内核参数2.10安装iptables2.11开启ipvs2.12配置limits参数2.13配置yum2.14配置时钟......
  • 11.27
    今日学习内容<%--CreatedbyIntelliJIDEA.User:qq316Date:2023/12/18Time:14:50TochangethistemplateuseFile|Settings|FileTemplates.--%><%@pagecontentType="text/html;charset=UTF-8"language="java"%><html&......
  • 11.29
    今日学习内容<%--CreatedbyIntelliJIDEA.User:qq316TochangethistemplateuseFile|Settings|FileTemplates.--%><%@pagecontentType="text/html;charset=UTF-8"language="java"%><html><head><title>......
  • 11.28
    <%@pageimport="java.sql.*"%><%@pageimport="java.sql.DriverManager"%><%@pageimport="java.lang.reflect.Parameter"%><%--CreatedbyIntelliJIDEA.User:qq316TochangethistemplateuseFile|S......
  • 11.29
    石家庄铁道大学选课管理系统1、项目需求:本项目所开发的学生选课系统完成学校对学生的选课信息的统计与管理,减少数据漏掉的情况,同时也节约人力、物力和财力。告别以往的人工统计。2.系统要求与功能设计2.1 页面要求(1)能够在Tomcat服务器中正确部署,并通过浏览器查看;(2)网站页面......
  • 11.28
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>员工页面</title><style>.form{width:600px;margin:0auto;/*border......
  • 11.2
    今天我们来实现上次期中考试的代码,本次实现的是后端 Pojo类1、Plan.java类packagecom.example.pojo;importlombok.AllArgsConstructor;importlombok.Data;importlombok.NoArgsConstructor;importjava.time.LocalDateTime;importjava.util.List;@Data@AllArg......
  • 11.2随笔
    SQL INSERTINTO 语句INSERTINTO语句用于向表中插入新记录。SQLINSERTINTO语句INSERTINTO语句用于向表中插入新记录。SQLINSERTINTO语法INSERTINTO语句可以有两种编写形式。第一种形式无需指定要插入数据的列名,只需提供被插入的值即可:INSERTINTOtable_na......
  • 11.29
    SELECT*fromAWHEREidin(SELECTidfromB)SELECT*fromAWHEREidEXISTS(SELECT1fromA.id=B.id)in是在内存中遍历比较exist需要查询数据库,所以当B的数据量比较大时,exists效率优于in.in()只执行一次,把B表中的所有id字段缓存起来,之后检查A表的id是否与......