一、路由选择协议分类
路由选择协议分类 :
① 内部网管协议 IGP : 在 自治系统 ( Autonomous System ) 内部 使用的协议 ;
- RIP 协议 : 使用 距离向量 算法 ; 用于 小型网络 ;
- OSPF 协议 : 使用 链路状态 算法 ; 用于 大型网络 ;
② 外部网关协议 EGP : 在 自治系统 ( Autonomous System ) 之间 使用的协议 ;
下图中 自治系统
A
A
A 内部使用 RIP 协议 , 自治系统
B
B
B 内部使用 OSPF 协议 , 两个自治系统
A
,
B
A,B
A,B 之间使用 BGP 协议 ;
二、RIP 协议
RIP 协议 :
① 概念 : RIP 协议 是 分布式的 , 基于 距离向量 的 , 路由选择协议 ; 该协议是因特网协议标准 ;
② 特点 : 简单 ;
③ RIP 协议内容 : 要求网络中 , 每个路由器 都维护一个路由表 , 路由表内容是 从 路由器本身 到 目的网络 的 唯一最佳距离记录 ;
④ 距离 : 路由器 跳数 , 每经过一个路由器 , 跳数加一 ;
⑤ 直接连接距离 : 路由器 到 直接连接的网络 , 距离是 1 1 1 ;
⑥ 最大距离 : RIP 协议中要求 , 一条路由只能包含 15 15 15 个路由器 ( 包含其本身 ) , 距离 最大是 15 15 15 , 如果距离为 16 16 16 , 该目标主机就会被判定为 网络不可达 ;
路由表 形成 需要进行信息 交换 , 需要与 指定的路由器 , 在指定的时机 , 交换指定信息 ;
三、RIP 协议 信息交换
RIP 协议 信息交换 :
① 交换对象 : 本路由器 只 与 相邻路由器 进行信息交换 ;
② 交换信息 : 交换的信息是路由器的 本身的路由表 ; 将本路由器的路由表所有信息, 封装在 RIP 报文中 , 发送给相邻路由器 ;
③ 交换周期 : 每隔 30 30 30 秒 , 交换一次路由信息 , 根据新的信息更新路由表 , 如果超过 180 180 180 秒没有收到 邻居路由器的 交换信息 , 则判定旁边的 邻居路由器没了 , 更新自身的路由表 ;
交换过程 : 刚开始时 , 每个路由器 只知道 直连的网络的距离 1 1 1 , 之后每个路由器想换交换信息 , 并更新路由信息 , 若干次交换后 , 所有的路由器都知道 本 自治系统 ( Autonomous System ) 中从任何路由器 到达 任何网络的最短距离 , 和 下一跳路由地址 ;
路由表内容 : 网络地址 , 跳数 , 下一跳地址 ;
RIP 协议是 应用层协议 , 使用 UDP 协议传输数据 ;
单个 RIP 报文中 , 最多存储 25 25 25 个路由信息 , 如果路由表很大 , 那么发送多个 RIP 报文 ;
RIP 协议特点 : 好消息更新快 , 坏消息更新慢 ; 网络出现故障后 , 要经过几分钟 , 才能将该信息送达所有的路由 , 收敛慢 ;
四、距离向量算法
距离向量算法 :
① 修改 RIP 报文 : 修改 相邻 路由器 发送的 RIP 报文 中的 所有表项 ;
相邻路由器 地址为 X X X , 发送来 RIP 报文 , ① 将 下一跳 地址改为 X X X 相邻路由器地址 , ② 将距离 加一 ;
② 更新 本路由器 路由表 :
路由表内容 : 网络地址 , 跳数 , 下一跳地址 ;
针对修改后的 RIP 报文 , 执行下面的操作 :
- 没有的表项 : 没有报文中路由表表项的 网络地址 , 直接插入即可 ;
- 已有的表项 : 存在报文中路由表表项的 网络地址 , 查看下一跳路由器地址 ,
- 下一跳就是 X X X 相邻路由器 : 使用该新的路由表项替换原来的路由表项 ; 这种情况下 , 不管距离变大还是变小 , 只要下一跳路由器一样 , 就更新 , 这说明了网络拓扑发生了改变 ; 始终以新的数据为标准 ;
- 下一跳不是 X X X 相邻路由器 : 比较距离 , 如果 本次的距离 比 原来的距离 近 , 就更新路由表项 , 如果远 , 不做处理 ; ( 更新原则是 , 同一个目的地址 , 始终保持跳数较少的路由路径 )
③ 删除路由 : 如果 180 180 180 秒 , 还没有收到相邻路由器 X X X 的 RIP 报文数据 , 那么将 路由器 X X X 记为不可达路由器 , 将距离设置为 16 16 16 ;
④ 返回 ;
五、距离向量算法 计算示例
距离向量算法 计算示例 :
R 6 R6 R6 本身路由表 :
- 表项 1 1 1 : 目的网络 Net 2 2 2 , 距离 3 3 3 , 下一跳路由 R 4 R4 R4 ;
- 表项 2 2 2 : 目的网络 Net 3 3 3 , 距离 4 4 4 , 下一跳路由 R 5 R5 R5 ;
收到 R 4 R4 R4 发来的 RIP 报文 ( 路由更新信息 ) :
- 表项 1 1 1 : 目的网络 Net 1 1 1 , 距离 3 3 3 , 下一跳路由 R 1 R1 R1 ;
- 表项 2 2 2 : 目的网络 Net 2 2 2 , 距离 4 4 4 , 下一跳路由 R 2 R2 R2 ;
- 表项 3 3 3 : 目的网络 Net 3 3 3 , 距离 1 1 1 , 下一跳路由 直接交付 ;
计算更新后的 R 6 R6 R6 路由器路由表 ?
计算过程 :
① 修改 RIP 报文 :
- ① 将 下一跳 地址改为 X X X 相邻路由器地址
- ② 将距离 加一 ;
按照上述 两个步骤 修改 收到 R 4 R4 R4 发来的 RIP 报文 ( 路由更新信息 ) :
- 表项 1 1 1 : 目的网络 Net 1 1 1 , 距离 4 4 4 , 下一跳路由 R 4 R4 R4 ;
- 表项 2 2 2 : 目的网络 Net 2 2 2 , 距离 5 5 5 , 下一跳路由 R 4 R4 R4 ;
- 表项 3 3 3 : 目的网络 Net 3 3 3 , 距离 2 2 2 , 下一跳路由 R 4 R4 R4 ;
② 更新 路由表 :
针对 "表项 1 1 1 : 目的网络 Net 1 1 1 , 距离 4 4 4 , 下一跳路由 R 4 R4 R4 " , 原来 R 6 R6 R6 路由表中没有 目的网络 Net 1 1 1 , 直接将该路由表表项插入到 R 6 R6 R6 路由表zh9ong ;
针对 "表项
2
2
2 : 目的网络 Net
2
2
2 , 距离
5
5
5 , 下一跳路由
R
4
R4
R4" , 原来
R
6
R6
R6 路由表中 有 目的网络 Net
2
2
2 , 对比下一跳地址 , 原来的路由表项中下一跳地址是
R
4
R4
R4 , 不管距离是否远近 , 这说明网络的拓扑结构发生变化 , 直接使用新的路由表项 , 替换原来的 ;
( 本步骤与距离远近无关 , 是网络拓扑发生的变化 )
针对 "表项 3 3 3 : 目的网络 Net 3 3 3 , 距离 2 2 2 , 下一跳路由 R 4 R4 R4" , 原来 R 6 R6 R6 路由表中 有 目的网络 Net 3 3 3 , 对比下一跳地址 , 下一跳地址不同 , 那么开始对比距离远近 , 原来的距离是 4 4 4 , 新的距离是 2 2 2 , 这里选择距离较近的 , 即将 RIP 报文中的路由表表项更新到 R 6 R6 R6 路由器中 ;
更新后的 R 6 R6 R6 路由器表项 : ( 全都更改了一遍 )
- 表项 1 1 1 : 目的网络 Net 1 1 1 , 距离 4 4 4 , 下一跳路由 R 4 R4 R4 ;
- 表项 2 2 2 : 目的网络 Net 2 2 2 , 距离 5 5 5 , 下一跳路由 R 4 R4 R4 ;
- 表项 3 3 3 : 目的网络 Net 3 3 3 , 距离 2 2 2 , 下一跳路由 R 4 R4 R4 ;
六、距离向量算法 计算示例 2
某子网 有 A , B , C , D , E , F A, B, C,D,E,F A,B,C,D,E,F 六个路由器 , 使用 距离-向量 算法 , 下面的向量 , 达到路由器 C C C :
- 来自 B B B 的向量为 ( 5 , 0 , 8 , 12 , 6 , 2 ) ( 5, 0, 8 , 12 , 6, 2 ) (5,0,8,12,6,2)
- 来自 D D D 的向量为 ( 16 , 12 , 6 , 0 , 9 , 10 ) ( 16, 12, 6 , 0 , 9, 10 ) (16,12,6,0,9,10)
- 来自 E E E 的向量为 ( 7 , 6 , 3 , 9 , 0 , 4 ) ( 7, 6, 3 , 9 , 0 , 4 ) (7,6,3,9,0,4)
C C C 到 B , D , E B, D, E B,D,E 的延迟分别是 6 , 3 , 5 6,3,5 6,3,5 , 求 C C C 到达所有节点的最短路径 ;
计算过程 :
B
B
B 的向量为
(
5
,
0
,
8
,
12
,
6
,
2
)
( 5, 0, 8 , 12 , 6, 2 )
(5,0,8,12,6,2) , 即
B
B
B 到
A
,
B
,
C
,
D
,
E
,
F
A, B, C,D,E,F
A,B,C,D,E,F 六个路由器的跳数 ;
D
D
D 的向量为
(
16
,
12
,
6
,
0
,
9
,
10
)
( 16, 12, 6 , 0 , 9, 10 )
(16,12,6,0,9,10) , 即
D
D
D 到
A
,
B
,
C
,
D
,
E
,
F
A, B, C,D,E,F
A,B,C,D,E,F 六个路由器的跳数 ;
E
E
E 的向量为
(
7
,
6
,
3
,
9
,
0
,
4
)
( 7, 6, 3 , 9 , 0 , 4 )
(7,6,3,9,0,4) , 即
E
E
E 到
A
,
B
,
C
,
D
,
E
,
F
A, B, C,D,E,F
A,B,C,D,E,F 六个路由器的跳数 ;
C
C
C 到
B
B
B 再到 其它路由器跳数为
(
11
,
6
,
14
,
18
,
12
,
8
)
( 11, 6, 14 , 18 , 12, 8 )
(11,6,14,18,12,8)
C
C
C 到
D
D
D 再到 其它路由器跳数为
(
19
,
15
,
9
,
3
,
12
,
13
)
( 19, 15, 9 , 3 , 12, 13 )
(19,15,9,3,12,13)
C
C
C 到
E
E
E 再到 其它路由器跳数为
(
12
,
11
,
8
,
14
,
5
,
9
)
( 12, 11, 8 , 14 , 5, 9 )
(12,11,8,14,5,9)
C
C
C 到
A
A
A 最短 跳数 是
11
,
19
,
12
11 , 19, 12
11,19,12 中最小值
11
11
11 ;
C
C
C 到
B
B
B 最短 跳数 是
6
,
15
,
11
6 , 15, 11
6,15,11 中最小值
6
6
6 ;
C
C
C 到
C
C
C 最短 跳数 是
0
0
0 ;
C
C
C 到
D
D
D 最短 跳数 是
8
,
3
,
14
8 , 3, 14
8,3,14 中最小值
3
3
3 ;
C
C
C 到
E
E
E 最短 跳数 是
12
,
12
,
5
12 , 12, 5
12,12,5 中最小值
5
5
5 ;
C
C
C 到
F
F
F 最短 跳数 是
8
,
13
,
9
8 , 13, 9
8,13,9 中最小值
8
8
8 ;
C C C 达到所有节点的路径是 ( 11 , 6 , 0 , 3 , 5 , 8 ) ( 11, 6, 0 , 3, 5, 8 ) (11,6,0,3,5,8)