网络层—距离矢量算法
2015-12-28 15:35
591 查看
本文主要介绍距离矢量路由(distance vector routing)算法,也可以叫做Bellman-Ford路由算法(这是根据设计者的名字来命名的),该算法应用于很多网络协议中,例如著名的RIP。
距离矢量算法(我们简称它为DV,而链路路由算法我们简称为LS)是一种迭代的、异步的、分布式的算法。首先,说它是迭代的,是因为这个过程一直要持续到邻居之间没有更多信息需要交换为止。其次,说它是异步的,是因为不需要所有路由器同步一致地进行操作。最后,说它是分布式的,是因为每个结点都要从它的邻居接受信息,同时也要发送信息给它的邻居。并且每个结点需要知道的只是它的邻居的信息,而不需要了解整个网络的拓扑等信息。在真正学习DV算法之前,我们需要了解一个很著名的方程,因为DV算法就是利用这个方程在不断更新每个路由表的信息的。这个方程叫做Bellman-Ford方程:
dx(y)= minv { c(x,v)+ dv(y)}
dx(y)表示结点x到结点y的最低费用路径所需要花费的费用,v是x的邻居结点,c(x,v)表示x到v的直接费用,dv(y)表示结点v到结点y的最低费用路径所需要花费的费用。
下面正式介绍距离矢量算法:
Initialization for all destinations y in N D x(y) = c(x,y) /* if y is not a neighbor then c(x,y) = max */ for each neighbor w send distance vector Dx = [Dx(y) : y in N] to w Loop wait (until I see a link cost change to some neighbor w or until I receive a distance vector from some neighbor w) for each y in N Dx(y) = min v{c(x,v) + Dv(y)} if Dx(y) changed for any destination y send distance vector Dx = [Dx(y) : y in N] to all neighbors forever
DV算法对与好消息是收敛(指找出最短路径的这个动作)是很迅速的,但是对与坏消息的收敛是很慢的,而且还容易造成一种叫做无穷计数的问题。
相关文章推荐
- AFNetwork 3.0 源码解读(二)网络情况监听
- Android 一个改善的okHttp封装库
- wireshark怎么抓包、wireshark抓包详细图文教程
- HTTP之Content-Length
- HTTP 的重定向301,302,303,307(转)
- 网络安全
- Java 使用 URLConnection 模拟 Http Get和Post 提交
- 智能家居网络系统设计(四)
- Python网络爬虫小试刀——抓取ZOL桌面壁纸图片1
- LTE-物理信道及映射关系 http://gxw0099.blog.163.com/blog/static/59710262201401511204125/
- Linux抓包工具tcpdump详解
- HTTP的报文格式解析
- HTTP与socket编程
- TCP,UDP
- HttpModule在IIS7集成模式下静态资源请求可能带来的问题
- HTTP常见错误代码
- 智能家居网络系统设计(三)
- 智能家居网络系统设计(二)
- 为什么需要使用zeromq
- TCP网络协议以及其思想的应用