无线传感器网络:传输层

news2024/11/29 2:47:08

文章目录

  • Challenges for Transport Layer
    • End-to-End Measures
    • Application-Dependent Operation
    • Energy Consumption
    • Constrained Routing/Addressing
    • Biased Implementation
  • Reliable Multi-Segment Transport (RMST) Protocol
  • Pump Slowly, Fetch Quickly (PSFQ) Protocol
    • Pump Operation
    • Fetch Operation
    • Status Reporting
  • Congestion Detection and Avoidance (CODA) Protocol
  • Event-to-Sink Reliable Transport (ESRT) Protocol
  • References


WSN 的成功和效率直接取决于传感器节点和 sink 之间的可靠通信。WSNs 传输层协议的主要功能有:

  • Congestion control:网络拥塞会导致丢包,因此需要拥塞控制来提高网络的可靠性,并节省本就不富裕的传感器资源
  • Reliable transport:确保传感器节点发送的数据到达了 sink,或者 sink 的数据到达了节点
  • (De)multiplexing:通过使用适当的多路复用和解复用技术来桥接应用层和网络层,通过同一WSN 为多个应用服务

为传统的无线网络设计的传输层解决方案可能在 WSN 中并不适用,主要有以下三点原因:

  • 严格的端到端可靠性,基于确认和重传的机制,会在 WSN 中的部署中带来巨大的开销;
  • 相邻传感器节点之间的数据具有高度相关性,会使这些机制的能源效率大大降低;
  • 需要相当大的内存容量来缓冲传输的数据包,直到它们被接收器确认,但传感器节点的缓冲空间和处理能力有限。

Challenges for Transport Layer

在这里插入图片描述

End-to-End Measures

传统的传输层解决方案提供端到端和点到点的可靠性以及拥塞控制,数据包丢失和拥塞缓解是通过源和目的地之间的通信进行的,没有任何中间方的参与,且每个流量都被独立考虑,以提供一个点对点的通信解决方案。但在 WSN 中,来自一组传感器的整体信息比来自每个传感器节点的个别信息要重要得多,传统的这种点对点方案会造成大量传感器资源的浪费。

因此,在 WSN 中通常利用局部的可靠性和拥塞控制来提高传输层协议的能源效率,我们控制的是来自一组传感器的整体信息的可靠性,而不是来自单独传感器节点的信息的可靠性。

Application-Dependent Operation

WSN 通常部署在跟应用需求相关的环境中,没有哪一种通用的方案可以适用于所有场合。

因此,传输层协议的设计要立足于当前应用,并考虑到具体部署方案的设计要求和限制条件。

Energy Consumption

能源效率是 WSN 设计中最重要的关注点之一。 为传统网络设计的一些协议通常需要在多跳网络中消耗大量能源,并不适合 WSN。

传输层协议应该 energy aware,即必须以尽可能少的能源支出来实现差错和拥塞控制目标。且传输层协议的设计可以使我们通过局部的可靠性措施来换取能源消耗的减少。如果 sink 发现接收到的信息大多都是对的,比我们期望的可靠性要求还高,那就可以让发送方悠着点,节省点能量,或者干脆直接关闭电源。

Constrained Routing/Addressing

正如我们在《无线传感器网络:网络层》讨论的那样,WSN 中为每个节点赋一个全局唯一标识是不太现实的,因此,传输层的协议不能基于全局的寻址机制,而是要利用像 data centric 这样的路由机制。

Biased Implementation

WSN 由许多资源有限的传感器节点和资源较为丰富的 sink 组成,因此较为复杂的算法并不能在这些传感器节点上运行。且网络中的流量在不同方向上表现出不同的特征。从节点到 sink 的流量可能要求及时交付且有必要的容错机制,而从 sink 到节点的流量则要求高交付率。

因此,传输层协议的设计应使大部分功能集中在 sink,而对传感器节点的功能要求降到最低。此外,也要考虑到不同方向流量的要求特征。

基于这几个挑战,我们介绍几个传输层协议。

在这里插入图片描述

Reliable Multi-Segment Transport (RMST) Protocol

我们在开篇提到过 WSN 中传输层协议的 3 个主要功能,RMST 实现了其中的两个:

  • Reliable transport:
    • 提供机制来处理整个网络中的错误
    • 利用网络缓存,保证数据包能够顺利交付
  • Multiplexing/demultiplexing:
    • 在传感器节点复用,在 sink 处解复用

RMST 是建立在定向扩展(directed diffusion) 路由协议基础之上的,并且使用了它的部分功能。RMST 有两种运行模式:

  1. Non caching mode:与传统的传输层协议类似;只有源和目的地在提供可靠性方面起作用而不涉及到中间节点。在 sink 检测到数据包丢失,并通过 NACK 包以端到端方式向源节点提出重传请求。
  2. Caching mode:强化路径上的中间节点对传输的数据包进行缓存,以减少端到端重传的开销。

RMST 具体是如何提供可靠性的呢?

每个数据包都会被一个唯一的序列数字标识(例如 0,1,2…),如果当前收到的包的数字标识与之前收到的包的标识没有连续上,就说明出错了。这时 sink 沿着相同但方向相反的路径(定向扩展的 gradients)回传一个 NACK 来要求节点重传。下面我们看看这个流程在两种不同运行模式下具体是怎么实现的。

在 Non caching 模式下,NACK 会一直传回到源节点,然后源节点再进行重传:

在这里插入图片描述

而在 Caching 模式下,某些节点会被设置为缓冲节点来缓存传输的数据包。数据包的丢失检测会也会在缓冲节点进行。下图中,在最后一个缓冲节点检测到丢包后,它直接回传 NACK,而上一个缓冲节点正好缓存有丢失的数据包,该数据包接下来就会再逐步传到 sink。当然,如果缓冲节点都没有丢失的数据包,那么 NACK 会一直回传到源节点。

在这里插入图片描述



Pump Slowly, Fetch Quickly (PSFQ) Protocol

与许多专注于传感器节点到 sink 路径的传输层方法相反,PSFQ 协议被用来解决从 sink 到传感器节点的路径问题。这是因为,反向路径通常用于网络管理任务,因此可靠性也十分重要。传感器节点到 sink 的路径可能可以容忍一定的信息损失,因为传感器产生的数据高度相关,但反向路径需要一对一的通信支持,以可靠地传播由 sink 发送给每个传感器节点的控制信息。

PFSQ 协议主要提供了 3 个功能:

  • Pump operation:PSFQ 采用一个叫作 slow pump 的机制,将数据包缓慢地注入网络。在这种情况下,通往目的地的路线上的每个节点在转发信息之前都要等待一定的时间
  • Fetch operation:在发生数据包错误的情况下,每个节点执行积极的逐跳恢复,期望尽快从邻居节点获取丢失的数据包
  • Status reporting:PSFQ 还提供了一个报告功能,在传感器和 sink 之间建立了闭环通信。通过这个功能,sink 可以收集与网络运行有关的信息

我们逐一的来看一下这三个功能的实现。

Pump Operation

在这里插入图片描述
我们有两个计时器 T m i n T_{min} Tmin T m a x T_{max} Tmax,一个传感器节点每过 T m i n T_{min} Tmin 就会向它的邻居节点广播数据包。邻居节点等待随机时间后,会转发该数据包,等待时间的范围为 [ T m i n T_{min} Tmin, T m a x T_{max} Tmax]。转发时的随即等待在一定程度上减少了同一数据包的广播次数,如果数据包已经被某一个邻居节点所转发,那么其它邻居节点就不再进行转发了。

Fetch Operation

在这里插入图片描述

当某个节点检测到丢包后,它会立即向它的邻居节点广播 NACK,如果节点在 T r T_r Tr T r < T m a x T_r<T_{max} Tr<Tmax)时间内没有收到回应,那么它继续广播 NACK

如果某个收到 NACK 的邻居节点缓存有该数据包,那么它就会在 [ 0.25 T r 0.25T_r 0.25Tr, 0.5 T r 0.5T_r 0.5Tr] 时间段内发送该数据包。(fast fetch!)

Status Reporting

报告操作是由 sink 通过设置数据包头中的报告位(report bit)发起的。这个数据包通过网络被发送到预定的各个节点上。在收到报告请求后,传感器节点立即通过发送一个报告信息做出响应,沿着通往 sink 的路径的每个节点通过捎带( piggybacking)将其状态信息添加到该报告中。如果上游路径上的节点没有在 T r e p o r t T_{report} Treport 时间内收到报告响应,它就会直接创建自己的报告包并将其沿路径传回 sink。


Congestion Detection and Avoidance (CODA) Protocol

从名字不难看出,CODA 主要是为了检测并避免拥塞。它考虑了三种拥塞情况:

  1. 在 WSNs 应用中,源节点经常产生流量,导致源节点附近出现拥塞
  2. 在为多个流量提供服务的 hot spot 暂时出现的临时拥塞
  3. hot spot 的长期拥塞

我们下面看看 CODA 的工作方式:

某个节点想要通过网络的拥塞区域往 sink 发送数据包,当拥塞区域中的某个节点检测到拥塞时,它会沿原路径将一个抑制(suppression)消息广播回源节点,用来给上游的节点通知,我这儿堵车了。在收到抑制消息后,上游节点就放缓它们发送数据包的速率来减轻拥塞程度。

抑制消息会被不断广播,直到节点不再检测到拥塞,或者一条新的不经过拥塞节点的路由路径被找到。

在这里插入图片描述


Event-to-Sink Reliable Transport (ESRT) Protocol

ESRT 旨在同时解决 WSN 的可靠性和拥塞问题,它提供可靠的事件检测,且没有任何中间的缓存要求。

我们知道,WSN 中信息传递的主要特点是以数据为中心,来自多个传感器的关于一个事件的整体信息比来自每个节点的单独信息要重要得多。因此我们不再使用所谓的端到端的流量这一说法,而是使用 event-to-sink 流量,这是对一组传感器节点流量的整合。

ESRT 的算法主要在 sink 上运行,在资源有限的传感器节点上只需要最少的功能。由于各个传感器读数在空间和时间上的相关性,由传感器节点产生的流向 sink 的数据是相关的。可靠性是以与某一事件相关的所有传感器节点的数据包的数量来衡量的。因此,我们定义以下几个量:

  • Decision interval τ \tau τ:ESRT 依靠 sink 来检测 WSN 的可靠性,每 τ \tau τ 时间检测一次
  • Observed event reliability r i r_i ri:sink 在 τ \tau τ 时间范围内收到的数据包数量
  • Desired event reliability R R R:可靠的事件检测所需的数据包数量,这取决于不同应用

ESRT 的拥塞控制是结合可靠性控制一起实现的,通过 5 个 operating region,如下表所示:

在这里插入图片描述

这里的 f f f 可以理解为源节点发送数据包的速率,其它具体细节可以翻阅参考文献中提到的书籍。


其他两种协议,GARUDA 和 ( R T ) 2 ({\rm RT})^2 (RT)2 (Real Time and Reliable Transport),我们也不再进行过多的介绍。


References

Chapter 8, Wireless Sensor Networks by Ian F Akyildiz and Mehmet C Vuran.

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

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

相关文章

超详细的PHP入门知识点讲解

目录 一、简介 二、php基本语法 二、变量和作用域 三、常量 四、数据类型 五、运算符 六、流程控制 七、超全局变量 一、简介 基础知识&#xff1a; 需要一定的html和css的语法知识 基本概念&#xff1a; PHP&#xff08;超文本预处理器&#xff09;是一种通用开源脚本…

汽车销量数据库(分车型、分品牌月度销量数据 2005-2021)

1、数据来源&#xff1a;汽车工业协会 2、时间跨度&#xff1a;2005年1月-2021年5月 3、区域范围&#xff1a;全国 4、指标说明&#xff1a; 该份数据包含全国各种汽车销量数十个相关指标&#xff01; 该份数据包含如下指标&#xff1a; 轿车&#xff1a;一汽大众、上海大…

TMS Sphinx Alexandria Full Source

TMS Sphinx Alexandria Full Source 用于身份访问管理的TMS Sphinx Delphi框架&#xff0c;包括授权和身份验证。 TMS Sphinx允许您为多个应用程序实现单点登录(SSO)&#xff1a;web、本机、移动或机器到机器API通信。它可用于通过登录表单、类似的用户界面和基于服务的身份验证…

「低代码」跑通现代BI“最后一公里”的背后

文|智能相对论 作者|沈浪 “未来不懂低代码就和二十年前不会用word一样。未来80%的应用会由业务人员通过低代码开发。”在2022云栖大会上&#xff0c;阿里云智能总裁张建锋对低代码的发展前景依旧保持着非常积极的态度。 无独有偶&#xff0c;微软中国CTO韦青在他的专栏《万…

100天精通Python(数据分析篇)——第66天:Pandas透视表基础+实战案例(pivot_table函数)

文章目录每篇前言一、透视表基础参数说明实战案例0. 导入Excel数据1. data2. index3. values4. columns5. aggfunc6. fill_value7. dropna8. margins9. margins_name10. observed11. sort每篇前言 &#x1f3c6;&#x1f3c6;作者介绍&#xff1a;Python领域优质创作者、华为云…

linux dolphin为tags协议服务的进程意外退出,kioslave5已经意外关闭

刚开始用archlinux的使用的是dolphin感觉还是挺好用的。不过最近不知道为什么dolphin每次打开都会弹出个错误&#xff0c;很影响效率和心情。我简单的搜索报错代码&#xff0c;也没有成功解决报错。于是打算重新安装一个文件管理器做替换。 现象 运行dolphin或者运行浏览器中…

在PyCharm快速加载第三方模块的设置方法

在《小白学Python》慕课中说明了多种加载第三方模块的方法&#xff0c;这里补充一个在PyCharm中更为方便设置国内镜像源加载的方法。 因为默认情况下&#xff0c;PyCharm是加载国外网站的模块资源&#xff0c;因此常常会因为网络不稳定导致加载失败。因此&#xff0c;可以设置…

基于JAVA的学校图书管理系统(Swing+GUI)

目 录 第1章 绪论 1 1.1系统开发背景和意义 1 1.2系统可行性研究 1 1.3系统开发目标 2 1.4开发平台、运行环境 2 第2章 相关技术概述 3 2.1Java语言简介 3 2.2 Sqllite技术简介 4 2.3 Swing技术简介 5 第3章 需求分析 6 3.1 设计目标 6 3.2 功能分析 6 3.2.1 用户管理 6 3.2.2 …

深度学习day01

Marchine leariing 机器学习就是自动找函式 告诉机器要找的函式用 Supervised Learning 函式的Loss ——评价函式的好坏 Reinforcement就是让机器自己下象棋&#xff0c;输赢自己尝试&#xff0c;没像监督学习那样有人为规定 给函式寻找范围&#xff1a; 函式寻找方法——…

基于STM32实现USB组合设备CDC+MSC正确打开方式

摘要&#xff1a; 前一段时间对无刷电机的驱动有了兴趣&#xff0c;移植了odrive和simpleFOC代码&#xff0c;里面有关于stm32实现USB复合的实例&#xff0c;最近也有打算在electronbot里实现U盘通讯来实现bootloader和语音文件的拷贝和管理。看了网上也有相关实现文章&#x…

【mysql是怎样运行的】-客户端与服务器连接

文章目录1. 几种连接方式1.1 TCP/IP1.2 命名管道和共享内存1.3 UNIX 域套接字2. 服务器处理客户端请求2.1 连接管理2.2 解析与优化2.3 存储引擎1. 几种连接方式 1.1 TCP/IP 数据库服务器进程和客户端进程可能运行在不同的主机中&#xff0c;它们之间必须通过网络进行通信。My…

韩国研究人员开发交通信号控制新算法

由Keemin Sohn教授领导的韩国中央大学的研究小组提出了一种用于交通信号控制的元RL模型。具体来说&#xff0c;该团队开发了一个扩展的深度Q网络&#xff08;EDQN&#xff09;结合的基于上下文的元RL模型&#xff0c;用于交通信号控制。传统的交通信号控制器通常无法处理交通拥…

Echarts画散点图

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 Echarts画散点图前言一、散点图悬浮框鼠标移入可滚动操作二、散点图偏下方的点悬浮数据显示不全三、数据量大、数据类别多、数据重复点多造成散点图散点展示不全或展示散点出…

操作系统基础教程——第六章课后答案

1.思考题 &#xff08;6&#xff09;什么是临界区&#xff1f;什么是临界资源?什么是竞争条件? 临界区&#xff1a;访问临界资源的程序段&#xff08;代码&#xff09;。 临界资源&#xff1a;并发进程中共享变量所代表的资源&#xff1b;一次只能供一个进程使用的资源。 …

【机器学习知识点】【1】二维与三维空间梯度下降微分求解及可视化展示

【机器学习知识点】系列文章主要介绍机器学习的相关技巧及知识点&#xff0c;欢迎点赞&#xff0c;关注共同学习交流。 本文主要介绍了机器学习中梯度下降的数学微分求解方法及其可视化。 目录1. 二维空间的梯度下降求解及可视化1.1 二维空间梯度求解1.2二维空间梯度可视化2. 三…

灰色关联度分析-详细代码和说明

1、数据来源&#xff1a;自主计算 2、时间跨度&#xff1a;无 3、区域范围&#xff1a;无 4、指标说明&#xff1a; 因素分析的基本方法过去采用的主要是统计的方法&#xff0c;如回归分析&#xff0c;回归分析虽然是一种较通用的方法&#xff0c;但大都只用于少因素的、线…

SpringBoot SpringBoot 原理篇 3 核心原理 3.2 启动流程【1】

SpringBoot 【黑马程序员SpringBoot2全套视频教程&#xff0c;springboot零基础到项目实战&#xff08;spring boot2完整版&#xff09;】 SpringBoot 原理篇 文章目录SpringBootSpringBoot 原理篇3 核心原理3.2 启动流程【1】3.2.1 环境准备3.2.2 启动流程3 核心原理 3.2 启…

基本的图像处理操作

Python中的图像处理基础图像处理是一种对图像执行操作以从中提取信息或增强图像的方法。图像处理是当今计算机视觉中最热门的话题之一&#xff0c;因为它被认为是计算机视觉、OCR 和其他相机相关领域的基础。让我们开始实际处理图像。提示&#xff1a;只是在这里向你展示一个代…

MySQL数据库的事务

文章目录一、事务是什么&#xff1f;二、事务的四大特征原子性一致性持久性隔离性MySQL的四个隔离级别一、事务是什么&#xff1f; 数据库的事务是一种机制&#xff0c;一个操作序列&#xff0c;里面包含了一组数组库操作命令 事务把所有的命令作为一个整体一起向系统提交或撤…

世界杯直播背后的服务器(云计算体系)

世界杯直播背后的服务器 世界杯直播过程中&#xff0c;各大网络平台流媒体app上最大的变化毫无疑问就是零延迟。以前球迷看球是都会发现&#xff0c;网络直播的球赛会比电视播出的球赛延迟40s左右。如果群里有个看电视的兄弟兄弟每个进球他都能提前40秒预告给你&#xff0c;那么…