当前位置:文档之家› 路由协议

路由协议

路由协议DSR_AODV_DSDV

[Dynamic Source Routing,动态源路由协议]

●当节点S需要向节点D发送数据的时候,而此时节点S并不知道通往节点D的路径,

此时,节点S便启动路由发现过程

——DSR协议为反应式(Reactive)路由协议

●源节点广播Route Request路由请求消息(RREQ消息)

●每个节点均在其向前发送的RREQ消息上附加自己唯一的标识符

[动态源路由协议的路由发现过程]

[X,Y]表示附加到RREQ消息上的标识符列表

●如图,节点H同时接收到来自两个相邻节点的RREQ消息:有潜在消息冲突的可能

●节点C收到来自G和H两个相邻节点发送来的RREQ消息,但C并不再向前发送该消息,

因为节点C已经向前发送过一次RREQ消息

●节点J与节点K均向节点D发送了RREQ消息

●由于J和K均不知道对方存在,彼此之间是隐藏的,因此这两个节点所发送的消息存

在冲突的可能

●节点D不再向前发送RREQ消息,因为节点D便是整个路由发现过程的终点目标

●当目的节点D接到第一个RREQ消息的时候,便往回发送一个Route Reply路由应答消

息(RREP消息)

●RREP消息经由反向路径回传,(反向路径就是和RREQ消息到达路径相反的路径)

●RREP消息当中包含了由S到D的路径,而这条路径就是源节点S所发送的RREQ消息所

确定的

[动态源路由协议的路由应答过程]

●当源节点S接收到RREP消息的时候,它便将RREP消息中所记录的路径缓存起来

●当源节点S发送数据到目的节点D时,数据分组的首部将包含整个路径的信息,这也是

该算法命名为“源路由”的缘由

●中间节点使用数据分组中首部包含的“源路由”信息了来决定抵达该节点的数据应该转

发的方向

[动态源路由协议的数据投递过程]

[动态源路由协议优化——路径缓存]

●每个节点将通过任何可能的方式所获得的新路径缓存起来

●当节点S发现一条可以通往节点D的路径[S,E,F,J,D]时,它同样知道有一条可以到达

节点F的路径[S,E,F]

●当节点K接收到路由请求消息Route Request RREQ[S,C,G]后,节点K则同样知道经过

路径[K,G,C,S]可以到达节点S

●当节点F向前传递路由应答消息Route Reply RREP[S,E,F,J,D]时,节点F则可以知道

经过路径[F,J,D]可以到达节点D

●当节点E经过路径Data [S,E,F,J,D]发送数据分组的时候,它则知道它自身可通过路

径[E,F,J,D]可以到达节点D

●一个节点无意中听到其他节点的通信消息的时候,它则将缓存其中它自己所不知道的路

●存在问题:一些陈旧的路由缓存对于系统的开销是一种负担

[动态源路由协议的优点]

●只维持需要通信节点之间的路径——可以减少路由保持对于系统的开销

●路由缓存机制可进一步减少路由发现过程的开销

●一次简单的路由发现过程可能产生许多通往同一节点的路径,由于中间很可能用以前的

缓存记录对路由发现消息进行应答

[动态源路由协议的缺点]

●由于采用源路由的方法,因此分组首部的大小将随着路径长度的增加而增大

●泛洪式发送路由请求消息将有可能遍及整个网络

●由相邻两个节点所发送的路由请求消息可能回引发潜在的冲突

——在向前发送RREQ消息之前先插入一个随即延时的数值

●由于中间节点将缓存起一些路径,当很多中间节点用他们自身的路径缓存对路由请求消

息进行应答的话将会产生更多的冲突——产生路由应答风暴问题

●陈旧的缓存将增加系统的开销,增加网络的负荷

[Destination Sequenced Distance Vector,目的节点序列距离矢量协议]

——协议简介

●DSDV是基于目标节点的协议

——每个节点只维持一跳到两跳内的相邻节点之间的区域信息

——不需要知道整个网络的全局拓扑结构

——有可能出现路由环路问题

●DSDV是先应式(Proactive)路由协议

——每个节点维护它所知道的所有目的节点的路由信息

——所有节点都定期更新路由信息,任何节点都不例外

——在网络拓扑没有变化的时候,仍然有网络开销存在

——可能维护一些没有使用过的路由

[距离矢量选路经典算法——Bellman-Ford算法]

●初始化,对于每个节点G,对所有直接相连的目的地N,路由表中的记录用三元组(N,

G,0)来表示,即从G到目的地N无需经过路由器转发;

●节点G定期发送它的路由表给相邻节点,更新信息中对应每一个目的地N,用一个三元

组来表示(N,V,D),即从G出发到目的节点N的路径上下一跳节点为V,G到N的跳距为D;

●节点G收到G’送来的路由信息,对于更新信息中的每个目的节点,在G的路由表中查

找对应的记录,设它为(N,V,D),而更新信息的三元组为(N’,V’,D’):

——如果找不到相应的记录,则在G的路由表中增加一项(N,G’,D’+ C);

——如果V = G’,则G的路由表对应的记录更新为(N,G’,D’+ C);

——否则,比较D’+ C和D:

如果D’+ C < D,则G的路由表中记录更新为(N,G’,D’+ C);

否则,G中的路由表保持原状,仍为(N,V,D)

[DSDV路径建立过程]

相关主题