Ad hoc网络路由协议概述4——按需路由协议(2)AODV协议 (Ad-hoc on-demand distance vector algorithm protocol)

article/2025/10/7 2:14:30

目录

1 一点前言

2 路由发现

2.1 相关概念

2.2 AODV的路由发现过程

2.3 与DSDV协议的对比

3 路由表管理及维护

3.1 更新路由表的策略

4 AODV协议的特点

4.1 优点

4.2 缺点


1 一点前言

在之前提过的DSR协议中,采用了源节点路由方式,每个数据报文头部都携带路由信息,增长了报文长度,降低了传输效率,尤其是在数据报文本身很短的情况下,其耗费尤为明显。在AODV协议中,路由中的每个节点都维护路由表,因而数据报文头部不再需要携带完整的路由信息,从而提高了协议的效率,其具体实现过程见下文: D

2 路由发现

2.1 相关概念

AODV协议采用与DSR协议类似的广播式路由发现机制。与DSR协议相比,AODV的路由依赖于中间节点建立和维护的动态路由表。AODV的路由发现过程由反向路由的建立和前向路由的建立这两部分组成。

反向路由是指从目的节点到源节点的路由,用于将路由响应报文回送至源节点。反向路由是源节点在广播路由请求报文的过程中建立起来的,具体过程见后面介绍。如图1(a)所示,反向路由可能会有多条。

前向路由是指从源节点到目的节点方向的路由,用于以后数据报文的传送。前向路由是在节点回送路由响应报文的过程中建立起来的,如图1(b)所示。

(a)反向路由的建立                                          (b)前向路由的建立

 图1 AODV的路由建立过程

2.2 AODV的路由发现过程

(1)源节点首先发起路由请求过程,在发起的路由请求报文中携带以下信息字段:

        <源地址,源序列号,广播ID,目的地址,目的序列号,跳数计数器>

        其中,序列对<源地址,广播ID>惟一标识一个路由请求。

(2)中间节点在收到路由请求报文时,比较本节点和目的节点的地址,

       ①如果自己是目的节点,则回复路由响应报文。否则转步骤②;

       ②根据<源地址,广播ID>判断是否收到过该请求消息,如果收到过则丢弃该请求消息,否则转向步骤③;

       ③记录相应的消息,以形成反向路由。记录的消息包括:上游节点地址(即向本节点发送路由请求消息的节点)、目的地址、源地址、广播ID、反向路由超时时长和源序列号等。同时跳数计数器加1,向邻节点转发该路由请求报文。

2.3 与DSDV协议的对比

与DSDV协议相似,在AODV协议中也引入了序列号,包括源序列号和目的序列号。不同的是在AODV中,这些序列号都是单调递增的,它们主要用于避免过时的缓冲路由对系统带来负面的影响。其中源序列号用在路由请求广播中保证反向路由的有效性,而目的序列号则用来维护前向路由的有效性。

3 路由表管理及维护

AODV路由协议中的路由表主要包括目的节点、下一跳节点、距离目的节点的跳数、目的节点序列号、本路由的活跃邻节点和本路由的超期时长等信息。

同时,在AODV协议中,节点还存储一些与路由表相关的信息。以下几点是其中比较重要的。

(1)路由请求超时定时器:和反向路由相关的定时器,当定时器超期后,节点仍未收到路由协议报文时,节点则认为该反向路由无效,删除该反向路由。

(2)活跃超时时长:和前向路由相关的时长。当超过活跃时长时间后,节点仍无数据利用该路由发送时,删除该路由(即使该路由可能有效)。

3.1 更新路由表的策略

当节点使用路由表中的某项路由发送数据时,该路由的超期时长更新为当前时间+活跃超时时长。当节点收到一条新的路由时,选择新路由和本节点存储路由中目的节点序列号大的路由为有效路由。当序列号一样时,则选择跳数小的路由。

节点的移动可能会造成现有路由的失效,根据节点的不同,AODV路由协议的处理方法不同:

(1)当由于源节点移动而造成路由失效时,此时只能由源节点再次发起路由请求过程。

(2)当由于中间节点或目的节点的移动而造成路由失效时,检测到路由断连的节点主动向其上游节点发送路由响应报文,该报文中将至目的节点的跳数设置为∞,同时将目的节点的序列号加1,。这样,上游节点在收到该路由响应报文时,会即使更新本地相关路由。

4 AODV协议的特点

4.1 优点

从前面介绍的DSDV协议和DSR协议来看,AODV协议综合了两者的特点。

(1)与基于表驱动方式的DSDV协议相比,AODV协议采用了按需路由的方式,即网络中的节点不需要实时维护整个网络的拓扑信息,而只是在发送报文且没有达到目的节点的路由时,才发起路由请求过程。

(2)与DSR协议相比,在AODV协议中,由于通往目的节点路径中的节点建立和维护路由表,数据报文头部不再需要携带完整路径,减少了数据报文头部路由信息对信道的占用,提高了系统效率。因此,协议的带宽利用率高,能够及时对网络拓扑结构变化作出响应,同时也避免了路由环路现象的发生。

4.2 缺点

但是在AODV协议中也存在一些问题。

(1)AODV协议仅适用于双向传输信道的网络环境。由于在路由请求消息的广播过程中建立了反向路由,供路由响应报文寻路,因此网络要满足双向传输信道的要求;

(2)路由表中仅维护一条到指定目的节点的路由,而在DSR协议中,源节点可以维护多条到目的节点的路由。如果节点间存在多条路由,当某条路由失效时,源节点可以选择其他的路由而不需要重新发起路由发现过程,这在网络拓扑结构变化频繁的环境中尤其重要。

(3)由于AODV协议采用了超时删除路由的机制,因此及时路由未失效,在超过时限后也将被删除。


http://chatgpt.dhexx.cn/article/L60fKpWV.shtml

相关文章

计算机网络实验四:配置网络路由

1、相关知识点 1.1 路由器的一般知识&#xff1a; 路由器是局域网与广域网之间进行互联的关键设备。通过它不仅可以互联不同协议、不 同物理接口的网络&#xff0c;还能选择数据传送的路经&#xff0c;并能阻隔非法访问。它在异构网互联能力、 拥塞控制能力和网段的隔离能力等方…

linux 默认路由 主机路由 网络路由

route命令 oute 命令的输出项说明 输出项 说明 Destination目标网段或者主机Gateway网关地址&#xff0c;”*” 表示目标是本主机所属的网络&#xff0c;不需要路由Genmask网络掩码Flags标记。一些可能的标记如下&#xff1a; U — 路由是活动的 H — 目标是一个主机 G — 路…

计算机网络路由转发题

1&#xff09;、目的地址和142.150.64.0/24明显不匹配&#xff0c;所以只有B、C、D&#xff0c;把相应的网络地址算出来 B-网络地址&#xff1a;142.150.71.128 C-网络地址&#xff1a;142.150.71.128 D-网络地址&#xff1a;142.150.0.0&#xff0c;把目的地址逐条的和子网…

各种路由的概念-直连路由、网关路由、主机路由、网络路由等

各种路由的概念 路由的分类 直连路由在添加的时候使用的是出接口&#xff08;dev&#xff09; 网关路由在添加的时候使用的是下一跳&#xff08;gw&#xff09; 主机路由的目的地址是一个完整的主机地址&#xff08;host&#xff09; 网络路由的目的地址是一个网络地址&#…

片上网络路由算法综述

一、 片上网络概述 在半个多世纪以来&#xff0c;半导体工业一直遵循着“摩尔定律”发展&#xff0c;即集成电路上可容纳的晶体管数目&#xff0c;约每隔两年便会增加一倍。截至目前&#xff0c;处理器中的晶体管数量最多已达到了上百亿。晶体管数量的增加一方面极大提升了单核…

网络——路由

路由 路由是路由器控制层面的工作&#xff08;路由器另一工作是数据层面上的转发&#xff09;&#xff0c;所以路由的学习需要从路由器入手。 借鉴学习&#xff1a;路由器工作原理 设备-路由器 路由器含义结构功能工作原理工作在OSI模型的网络层上的具有多个输入端口和多个输…

网络基础之路由详解

目录 IP路由基础 路由协议的分类 路由选路规则 静态路由 缺省路由 OSPF开放式最短路径优先协议 IP路由基础 路由器 特点 路由器的一个接口就是一个网段&#xff0c;一个网段就是一个广播域 路由器的一个接口用于一个MAC地址 路由器可以隔离广播域 广播报文无法穿越…

计算机网络:路由的概念及其分类

面对“路由”二字&#xff0c;很多人的第一个反应就是路由器。而路由器只是实现“路由”这一功能的工具罢了。路由器可以说是一台简化的电脑&#xff0c;它具有操作系统&#xff0c;接口&#xff0c;输入输出&#xff0c;存储器等等。正因为如此&#xff0c;现代路由器和电脑一…

网络路由相关的知识

配置静态路由 手工配置的路由信息&#xff0c;包括网络地址 子网掩码和下一跳地址。在没有配置静态路由的情况下&#xff0c;这两个子网中的计算机a、b之间是不能通信的。从计算机a发往计算机b的ip包&#xff0c;在到达router后&#xff0c;router不知道如何到达计算机b所在的…

网络路由知识大全

一、 如果ping域名的时候出现ping:unknown host xxx.xxx 但是ping IP地址的时候可以通的话 可知是dns服务器没有配置好&#xff0c;查看一下配置文件/etc/resolv.conf&#xff0c;里面是否有nameserver xxx.xxx.xxx.xxx&#xff0c;比如使用dns服务器 nameserver 8.8.8.8&am…

java解析rtc_RTC Java API 学习笔记

1 使用RTC Java API进行登录&#xff1a; Login的步骤分为以下&#xff1a; 1 初始化启动RTC的平台TeamPlatform&#xff1a;TeamPlatform.startup(); 2 获取RTC repository的连接 ITeamRepository teamRepository TeamPlatform.getTeamRepositoryService().getTeamRepository…

JS控制元素的显示和隐藏

开发工具与关键技术&#xff1a; DW、前端 作者&#xff1a;梁锦豪 撰写时间&#xff1a;2019/1/16当我们想要通过事件来控制元素时&#xff0c;我们可以用JavaScript来实现 下面是通过鼠标移入&#xff0c;移出事件来控制元素的显示与隐藏的例子&#xff1a; 首先&#xff0c;…

如何通过JS判断一个元素是否显示、隐藏

如何通过JS判断一个元素是否显示、隐藏 文章目录 如何通过JS判断一个元素是否显示、隐藏通过display是否等于none来判断通过jquery的:hidden/:visible 伪类来判断说明 通过display是否等于none来判断 通过判断当前元素的display的值来判断当前元素是否是可见状态。只能用displa…

js显示隐藏

其实这边我是新学的一点知识虽然不多但是新手还是比较容易上手的 <div id"panel"><button class"head">什么是jQuery?</button><div class"content">jQuery是继Prototype之后又一个优秀的JavaScript库&#xff0c;它是…

CSS隐藏元素的方法

隐藏元素之后&#xff0c;它在页面的行为如何&#xff1f; HTML文件如下 很简单&#xff0c;就一个div <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content&…

javascript隐藏和显示元素

使页面元素隐藏和显示可以有两种方式&#xff1a; 方式一&#xff1a;设置元素style属性中的display var t document.getElementById(test);//选取id为test的元素 t.style.display none; // 隐藏选择的元素 t.style.display block; // 以块级样式显示方式二&#xff1a;设…

JavaScript控制元素(标签)的显示与隐藏

使用JavaScript有多种方式来隐藏元素&#xff1a; 方式一、使用HTML 的hidden 属性&#xff0c;隐藏后不占用原来的位置 hidden 属性是一个 Boolean 类型的值&#xff0c;如果想要隐藏元素&#xff0c;就将值设置为 true&#xff0c;否则就将值设置为false 【HTML hidden 属性…

faceswap-GAN

一&#xff0c;https://github.com/shaoanlu/faceswap-GAN 二&#xff0c;GAN网络架构 auto encoder网络结构 辨别网络结构 三&#xff0c;训练与推断 1.训练阶段&#xff0c;从人的图片上获取人脸并对齐作业&#xff0c;为了提升模型能力&#xff0c;并对人脸进行warp操作&a…

faceswap尝试

主要参考&#xff1a;https://github.com/deepfakes/faceswap 安装cuda9.0cudnn7.3.1python各种库 训练样本用的川普和凯奇。 显卡&#xff1a;1050ti 主要显卡太low了&#xff0c;慢的无语。。。。。