一种有效的水下无线传感器网络路由协议(Matlab代码实现)

news2024/10/6 18:31:34

  目录

💥1 概述

📚2 运行结果

🎉3 参考文献

👨‍💻4 Matlab代码

💥1 概述

与陆地多跳传感器网络类似,水下网络的路由协议可以分为:①主动路由,②按需路由。

①主动路由(又被称为表驱动(table-driven)):在该路由协议中,网络中每个节点都要建立并维护一个路由表,用于记录该节点到网络中其他所有节点的路由信息,并根据网络当前状态进行更新。

主动路由的缺点:

①路由第一次建立、节点移动或节点失效导致路由重新建立连接会造成较大的网络开销。

②路由表的建立和维护会造成巨大的网络开销,节点频繁移动,网络拓扑的动态变化更是会加剧这种状况。

主动路由的路由信息主要是从基站周期性广播的控制包中获得的,主要包含DSDV(destination sequenced distance vector),WRP(wireless routing protocol)和OLSR(optimized link state routing)等。

② 按需路由(被动式(反应)路由):网络节点无需建立并维护去往其它节点的路由信息,而是根据通信需要临时建立路由。只有当源节点要向目的节点发送消息时,源节点才进行路由的查找和建立。路由建立后,将由一个专门的路由维护程序进行维护,直到该路由失去作用。 主要包含DSR,AODV和TORA。

按需路由协议的路由表根据通信需要而临时建立,基站不需要周期性广播路由信息。建立好的路由会保存在缓存中供后续通信使用,而无需节点维护,这降低了网络开销,减小网络资源的浪费,更适用于拓扑动态变化的网络。​

📚2 运行结果

主函数部分代码:

% close and clear everything running in the command window
clc;
clear all;
close all;
% Initialize transmission range
transRange = 250;
% Initialize number of nodes
numNodes = 100;
% Initialize minimum range of x,y,z co-ordinates of the network plot00000
min.x = 0;
min.y = 0;
min.z = 0;
% Initialize maximum range of x,y,z co-ordinates of the network plot
max.x = 1000;
max.y = 1000;
max.z = -1000;
% Initialize x,y,z co-ordinates for six sinks including two embedded sinks
% embedded sink 1
sink(1,1)=250;
sink(1,2)=250;
sink(1,3)=0;
% embedded sink 2
sink(2,1)=250;
sink(2,2)=0;
sink(2,3)=250;
% sink 3
sink(3,1)=100;
sink(3,2)=1000;
sink(3,3)=100;
% sink 4
sink(4,1)=250;
sink(4,2)=1000;
sink(4,3)=250;
% sink 5
sink(5,1)=750;
sink(5,2)=100;
sink(5,3)=500;
% sink 6
sink(6,1)=500;
sink(6,2)=500;
sink(6,3)=500;
% Plot nodes randomly using createNodes function
nodePositions = createNodes(min, max, numNodes);
plot3(nodePositions(:, 1), nodePositions(:, 2),nodePositions(:, 3), '+');
hold on
% Plot sink nodes
plot3(sink(1, 1), sink(1, 2), sink(1, 3), 'S', 'MarkerFaceColor', 'y');
plot3(sink(2, 1), sink(2, 2), sink(2, 3), 'S', 'MarkerFaceColor', 'y');
plot3(sink(3, 1), sink(3, 2), sink(3, 3), 'S', 'MarkerFaceColor', 'r');
plot3(sink(4, 1), sink(4, 2), sink(4, 3), 'S', 'MarkerFaceColor', 'r');
plot3(sink(5, 1), sink(5, 2), sink(5, 3), 'S', 'MarkerFaceColor', 'r');
plot3(sink(6, 1), sink(6, 2), sink(6, 3), 'S', 'MarkerFaceColor', 'r');
% Initialize lost packets and average time taken for one packet delivery as zero
lostPackets = 0;
avgTime = 0;
% Initialize t1 to current starting time
t1 = clock;
% loop for transmitting one packet from each node to a sink node
% for i = 1 to numNodes
for i=1:numNodes
% Initialize an empty list for visited nodes
visitedNodes = [];
% Initialize source as ith node and forwarder node as the source
source = i;
forwarder = source;
fprintf('Node %d \n', i);
% find the route of the packet from the ith node to any of the sink node using the function
% find_route function returns neighbours of the given node, delivery status (success/failure) and nearest node of the neighbors, this function takes forwarder node, sink nodes, transmission range, number of nodes, nodes positions and visited nodes list as parameters
[neighbours, success, nearestNode] = find_route (forwarder, sink, transRange, numNodes, nodePositions, visitedNodes);
% Add source to visited nodes list
visitedNodes(end+1) = source;
% if the ith node could not find a sink node in its transmission range
% while packet status is undelivered or neighbors list is empty
while (success == 0 || isempty(neighbours) == 0)
% change forwarder to the nearest node obtained previously
forwarder = nearestNode;
% if forwarder is unreachable, packet is said to be lost and break the loop
if (forwarder == Inf)
success = 0;
disp('Packet Lost')
lostPackets = lostPackets + 1;
break;
end
% Add forwarder node to visited nodes list
visitedNodes(end+1) = forwarder;
% Find the route for the ith packet from the new forwarder to any of the sinks
[neighbours, success, nearestNode] = find_route (forwarder, sink, transRange, numNodes, nodePositions, visitedNodes);
end

🎉3 参考文献

[1]张剑,黄本雄,张帆,涂来.一种适合水下无线传感器网络的能量有效路由协议[J].计算机科学,2008(01):38-41+195.

部分理论引用网络文献,若有侵权联系博主删除。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/516774.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

中创 | 云服务市场竞争加剧,全国增值电信业务经营许可企业达14万家

中国互联网行业的竞争愈加激烈,都试图在市场中获取优势,寻求新的发展蓝海。其中,在数字经济中扮演重要角色的云服务产业,如今也处于一个前所未有的大变局。 但想要进入云服务产业,“证件”和“技术”一样都不能少&…

基于FPGA的VGG16卷积神经网络加速器

文章搬运自本人知乎 VGG16网络结构介绍 VGG在2014年由牛津大学Visual GeometryGroup提出,获得该年lmageNet竞赛中Localization Task(定位任务)第一名和 Classification Task (分类任务)第二名。与AlexNet相比,VGG使用了3个3x3卷积核来代替7x7卷积核&…

全景丨0基础学习VR全景制作,平台篇第22章:热点功能-导航

大家好,欢迎观看蛙色VR官方——后台使用系列课程! 功能说明 应用场景 热点,指在全景作品中添加各种类型图标的按钮,引导用户通过按钮产生更多的交互,增加用户的多元化体验。 导航热点,标注具体位置&…

远程访问ERP - 在外远程登录公司局域网金蝶云ERP管理系统

文章目录 前言1.金蝶安装简介2. 安装cpolar内网穿透3. 创建安全隧道映射4. 在外远程访问金蝶云星空管理中心5. 固定访问地址6. 配置固定公网访问地址7.创建数据中心简介8.远程访问数据中心9. 固定远程访问数据中心地址10. 配置固定公网访问地址 前言 金蝶云星空聚焦多组织&…

反病毒技术介绍与发展

1.1 计算机病毒概念 计算机病毒(Computer Virus)是指编制者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机使用并且能够自我复制的一组计算机指令或者程序代码。这是目前对于计算机病毒最通用的定义。计算病毒、蠕虫以及木马是…

Hortic Res | 中国计量大学徐沛组开发了用于促进难转化豆类蔬菜功能基因组学研究的分子工具包

以下文章来源于园艺研究 ,作者吴昕扬 园艺研究. 《园艺研究》(Horticulture Research)是南京农业大学主办的英文学术期刊,采用开放获取形式,专注刊载和园艺作物有关,能引起广泛的国际和学科兴趣的基础和理…

2023 年第八届数维杯大学生数学建模挑战赛 B 题详细思路 节能列车运行控制优化策略

一种可能的建模方法是基于列车的动力学方程和阻力方程,将列车视为单质点,忽略车厢间的车钩力和速度差。根据给定的参数,可以建立如下的方程: $$m(p1)\frac{dv}{dt}F-f(v)-g(i)$$ $$f(v)2.08950.0098v0.006v^2$$ $$g(i)mgi$$ 其…

NAT是如何工作的?

广域网是由很多的局域网组成的,比如公司网络、家庭网络、校园网络等。我们到微观层面,看看局域网是如何工作的。IPv4 的地址不够,因此需要设计子网。当一个公司申请得到一个公网 IP 后,会在自己的公司内部设计一个局域网。这个局域…

8自由度串联四足机器人实现前进功能

1. 功能说明 本文示例将实现R253样机8自由度串联四足机器人前进的功能,该机构是由4个 2自由度串联仿生腿 组成。 2. 串联关节型机器人运动算法 8自由度串联四足机器人的前进步态是将机器人四足分成两组腿(身体一侧的前足与另一侧的后足)分别进…

集群时间同步

集群时间同步 时间同步的方式:找一个机器,作为时间服务器,所有的机器与这台集群时间进行定时的同步,比如,每隔十分钟,同步一次时间。 1.配置时间同步具体实操: 1.1)时间服务器配…

中国20强(上市)游戏公司2022年财报分析:营收结构优化,市场竞争进入白热化

易观:受全球经济增速下行的消极影响,2022年国内外游戏市场规模普遍下滑。但中国游戏公司凭借处于全球领先水平的研发、发行和运营的能力与经验,继续加大海外市场布局,推动高质量发展迈上新台阶。 风险提示:本文内容仅代…

lvm分区扩容

1.前言 此试验对root目录扩容20GB,使用lvm模式扩容,需要先声明,搭建centos主机的时候要把分区模式改成lvm模式,这样后期扩容的时候就比较好处理,如果使用了默认的part模式的话,扩容分区需要将数据先迁移备…

k8s架构了解

Kubernetes(k8s)是用于自动部署、扩展和管理“容器化应用程序”的开源系统 k8s由control plane以及cluster nodes构成 control plane control plane是维护所有k8s对象记录的系统,持续管理着对象状态,并且对集群的变化做出响应,并使状态匹…

2022年美国大学生数学建模竞赛B题水和水力发电分配解题全过程文档及程序

2022年美国大学生数学建模竞赛 B题 水和水力发电分配 原题再现: 背景:   几个世纪以来,人们在河流和溪流.上修建水坝来蓄水建造水库,以此作为管理供水的方式。这些水库储存各种用途的水(如农业、工业、住宅),提供休闲和娱乐场…

git可视化管理工具SourceTree安装教程

一、背景 本文主要写给,不熟悉git命令或者不喜欢使用git命令的开发者使用,SourceTree可视化见面可以清晰操作git,管理项目方便,可追溯代码编写者及日期。轻松完成项目的dev、sit、线上环境代码管理与合并。无需使用git命令,彻底释…

北京筑龙参编的《国有企业采购操作规范(2023版)》发布

近日,中国物流与采购联合会发布《国有企业采购操作规范(2023版)》团体标准,北京筑龙作为起草单位之一参与编写。新版团体标准为国有企业编制采购管理制度、规范采购行为提供了参照和依据,有助于进一步提高国企采购的规…

【腾讯云 Finops Crane 集训营】深入了解 Crane 开源项目,集训营实验操作指南,体验过程总结

前言 最近有幸参与了腾讯云举办的Finops Crane的集训营。在这个过程中,老师认真指导,让我受益非浅,也让我真正理解了这一产品所带来的意义。 在听了老师们的介绍和讲解后,我马不停蹄地开始了自己摸索。首先是跟着视频和官方教程…

7.100ASK_V853-PRO开发板支持人形检测和人脸识别

1.前言 ​ V853 芯片内置一颗 NPU核,其处理性能为最大 1 TOPS 并有 128KB 内部高速缓存用于高速数据交换,支持 OpenCL、OpenVX、android NN 与 ONNX 的 API 调用,同时也支持导入大量常用的深度学习模型。本章提供一个例程,展示如…

银医一站式服务终端

01 发卡/充值/挂号业务 ●发卡就诊 ●预约挂号 ●当日挂号 ●自助充值 ●医保关联 ●预约取号 ●现金充值 ●核酸预约 02 打印业务 ●打印检验报告 ●打印检查报告 ●打印费用清单 ●打印病历报告 ●打印住院病历 ●打印检验条码 03 缴费结算业务 ●支付宝支付…

AttributeError: module ‘lib‘ has no attribute ‘X509_V_FLAG_CB_ISSUER_CHECK‘

terminal运行报错AttributeError: module lib has no attribute X509_V_FLAG_CB_ISSUER_CHECK 解决: pip install pyOpenSSL --upgrade