zoukankan      html  css  js  c++  java
  • 简记 OSPF 和 RIP

    RIP和OSPF最大的区别:

    RIP是通过和周围路由器交换路由表来确定到达其他网络的距离。权重值是跳数。

    导致RIP有明显的缺点:

      1.假如有两个路由器 B 和 C 给路由器 A 发送网络 x 在哪里,B说:通过我去x只用一跳,C说:通过我去x要两跳。

    于是 A 选择了 B,殊不知,如果 C 到 A 的带宽是1Gbit / s,而 B 到 A的带宽是1Mbit/s。那么这个选择明显不合理。但RIP协议就是这样,简单粗暴,用条数做度量。

      2. 假设有网络拓扑结构: A - B - C - x

      A , B , C 都是路由器,x是网络

      如果 C 到 x 不可达,那么 C 会把自己的路由表中到达x的记录抹去。

      (假设 C 是通过端口 c 和 x 连接的,那么对应的记录是 C - c - x)

      RIP协议规定路由器要周期性和周围路由器交换路由表,过了一段时间 B 把自己的路由表给了 C。

      在 C 到 x 可达前的稳定状态下(路由表接近稳定,没有因为增/减网络而改变),B 是有去往 x 的记录的,而且距离是 1。

    (C 和 x 直连,距离是 0 , B要经过C,加一条,所以 B 去 x 是1)

      C 接收到 B 给的路由表之后,会发现自己没有这条记录,于是接受,并且把距离加1(因为 C 认为要去 x 的话,要经过B,距离多1,所以 C 中新的记录是 C - c1 - 2,c1 是 C 连向 B 方向的接口)

      问题来了,过一段时间,C 又会把自己的路由表给 B , B发现距离是 2, 比自己的大,而且通往这个网络 x 的路由器都是 C。

    于是 B 认为,C 到这个网络 x 中间的网络拓扑情况变化了,导致去的距离增加。于是更新路由表。把距离改成 3。

      如此反复下去,B 和 C 之间都会有一条跳数超大的记录,几乎不可达,实际上确实不可达。

    解决方法:

      1.

      设置路由表不能 向某个端口发送 从这个端口学来的东西。

      就如上述的 B ,他从  B - C 端口(B 通往 C 方向的端口)学到了 x 的距离,而后又把路由表中 关于 x 的记录通过这个端口发送出去,让 C 错误接受了。

      2.

      设置最大条数,如果出现上述的循环往复增大的过程,到达最大条数的话,把记录视为无效。但这限制了网络的规模。一般定义最多16跳

    更优协议:

      OSPF相对于RIP使用的更多。

      OSPF:

    每个路由器维护一个数据库,这个数据库不是路由表,而是整个网络上的路由器的各个接口的参数。

    比如 :

        A - B - C

       /     

      D —— E —— F

    其中稳定时,A的数据库中有 D - A , D - E, E - F , F - C, B - C , B - A

    这些接口的参数,比如带宽是多少,以此可以判断通过这条路的优劣。

    把整个网络的拓扑结构比作一张无向图,每个 接口的综合参数(综合的好坏程度)看成是权值的话,路由器就可以根据这些信息

    使用迪杰斯特拉算法,求通往某一网络的最短距离。

  • 相关阅读:
    linux权限补充:rwt rwT rws rwS 特殊权限
    关于Linux操作系统下文件特殊权限的解释
    Java学习笔记——Java程序运行超时后退出或进行其他操作的实现
    Java实现 蓝桥杯 算法提高 判断名次
    Java实现 蓝桥杯 算法提高 判断名次
    Java实现 蓝桥杯 算法提高 日期计算
    Java实现 蓝桥杯 算法提高 日期计算
    Java实现 蓝桥杯 算法提高 概率计算
    Java实现 蓝桥杯 算法提高 概率计算
    Java实现 蓝桥杯 算法提高 复数四则运算
  • 原文地址:https://www.cnblogs.com/lqlqlq/p/13256212.html
Copyright © 2011-2022 走看看