内部网关协议RIP和OSPF之思考

虽然今天要写的内容很久之前看过但是老是忘记,在饭桌上腾讯的本科同学什么ospf 什么最小生成树 头头是道,而我这个菜鸡真是看过就忘。后来我反思这个道理,当我们一开始接触某种新的知识,总是容易陷入细枝末节中,从而忘记在宏观上把控,从而只见树木不见森林。其实我们最好能二者同时进行,将知识理解的到位。
下面我来说一说内部网关协议,为什么是内部,内部代表什么,内部其实就是一个自治系统,那么什么是自治系统呢:可以通过网络管理员来决定整个系统内的路由协议使用rip(路由信息协议)或者ospf(开放最短路径优先),比如一个企业、一个大学等等。

这里只是介绍内部网关协议rip和ospf。对于互联网,简单来说就是一条条路由,路由器是节点,链路是边。那么如何数据包如何传送到目的网络是个问题。对于rip来说,路由器并不需要同所有的路由器交换信息,它只和相邻的路由器交换信息,可以想象这样一个现实的问题,如果我们很多人多通过相邻的人交换自己知道的信息,那么最后的结果就是最后每个人都可以知道整个的信息。

rip也是同样的道理,我们通过相邻路由器的交换信息:
假设X路由器接收到Y路由器的路由表信息。
第一步:x将接受到的路由表的信息条目的下一跳地址改为y,同时距离+1;
第二步:若接收到的条目目的网络N在x的路由表中不存在,那么 直接加入x路由表,代表x可以通过y到达目的网络
若存在,则看下一跳地址,若为y 则更新,若不为y则挑距离最小的更新。

rip 实现起来相比ospf简单,缺点是:坏消息传播得慢。最重要的原因是路由器更新信息是每隔固定时间发送路由信息,由于信息差的存在导致。具体解释可见计算机网络第7版158页。

ospf说起来比较简单,就是当链路状态有变化的时候才会将路由表信息泛洪。然后使得每个路由器都对网络有其拓扑结构。然后利用dijkstra 算法寻求最短路径。

关于单源最短路径 有 dijkstra 和bellma-ford 两种经典算法。dijkstra是适合正数权值,bellman-ford是正负均可以。图的表示方法可以是 邻接矩阵 或者邻接表 迪杰特斯拉算法本质上是贪心算法,每次从顶点集合中选出目前距离源点最近的点,同时修改 选出的最近的点的邻接顶点的最短路径值(d[v] = d[u]+w(u,v) 松弛操作),直到所有顶点均被处理。 时间复杂度为(数据结构 优先队列) v(lgv + e logV)
bellman-ford 思想是v个顶点 做v - 1 次所有边的松弛操作 就可以得到所有节点的相距源点的距离 时间复杂度是 ve(v顶点数 e边数)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值