zoukankan      html  css  js  c++  java
  • 距离向量算法(RIP协议)

    距离向量路由算法要求,每个结点都参与定期交换整个路由表,即把路由表传递给自己与之相连的结点。
    首先,当前路由表的组成如下,<目的网络 N,跳数,下一跳地址>

    RIP算法执行步骤

    1. 从相邻的X路由器接收发送过来的RIP报文。
    2. 讲该RIP报文的下一条地址改为X,且跳数(距离)加1。
    3. 对每个项目执行如下步骤:
      a.若原路由表没有 RIP 中的目的网络 N,直接添加到原路由表中
      b.若原路由表中有 RIP 中的目的网络 N,但下一跳地址不是 X ,选择跳数少的替换。如果两者跳数一样,则保留原路由表的项。
      c.若原路由表中有 RIP 中的目的网络 N,且下一跳地址是 X,使用收到的项替换
    4. 若超过 180s (RIP 默认 180s)还没有收到相邻路由器的更新路由表,则相邻路由器置为不可达,跳数为 16

    实例1

    如下,有 B,C 两个路由器的路由表。B,C 为相邻路由器,现在 C 向 B 发送 RIP 报文,求 B 更新后的路由表

    B的路由表

    目的网络 距离 下一条
    N1 7 A
    N2 2 C
    N6 8 F
    N8 4 E
    N9 4 D

    C 的 RIP 报文中的路由表

    目的网络 距离
    N2 15
    N3 2
    N4 8
    N8 2
    N7 4

    解:

    1.将RIP报文的下一跳地址改为C且跳数增加1

    目的网络 距离 下一跳
    N2 16 C
    N3 3 C
    N4 9 C
    N8 3 C
    N7 5 C

    2.与原路由表(B 的路由表)比较并更新
    a. 因为 C 路由表中并无关于 N1,N6 和 N9 的信息,所以原路由表保存不变
    b.对于 N2,目的网络一样,下一跳地址一样(同为 C),所以更新跳数为 16
    c.对于 N3,因为原路由表中无该项,所以直接添加。N4 和 N7 同理添加
    d.对于 N8,目的网络一样,但下一跳不一样,选择距离短(跳数少的添加),所以更新为 C 路由表的信息。

    更新后的B路由表

    目的网络 距离 下一跳
    N1 7 A
    N2 16 C
    N3 3 C
    N4 9 C
    N6 8 F
    N7 5 C
    N8 3 C
    N9 4 D
  • 相关阅读:
    PAT 甲级 1072 Gas Station (30 分)(dijstra)
    python flask框架学习(二)——第一个flask程序
    python flask框架学习(一)——准备工作和环境配置与安装
    【Beats】Filebeat工作原理(十七)
    【Beats】Filebeat介绍及使用(十六)
    Dapper简介
    Sequelize ORM
    StackExchange / Dapper
    TypeORM 简介
    Egg.js 是什么?
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13308084.html
Copyright © 2011-2022 走看看