概述
- 因特网采用一种
动态的
、分层的
路由选择协议- 按适应性划分:
(1)静态路由选择协议:
需要人工配置,适用于小型网络
(2)动态路由选择协议:
自适应, 适用于复杂网络- 按层次划分:
(1)内部网关协议IGP:
用于自治系统(AS)
内部的路由选择如RIP
、OSPF
(2)外部网关协议EGP:
用于自治系统(AS
)间的路由选择如BGP
RIP
RIP
是一种分布式的基于距离向量
的路由选择协议
距离向量:
RIP
要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离,因此为距离向量
距离(跳数):
路由器
和目的网络
之间的距离
(1)路由器到直连网络的距离:
1
(2)路由器到非直连网络的距离:
经过的路由器的个数
+1
RIP
选择一条具有最少路由器
的路由,不能在两个网络之间使用多条路由
- 特点:
- 仅和
相邻路由器
交换信息交换的信息
是当前路由器
所知道的所有路由信息
,即自己现在的路由表
- 按
固定的时间间隔
交换路由信息
- 距离向量算法:
路由表中的内容:
目的网络
+下一跳路由器
+最短距离
- 对于地址为 X X X的
相邻路由器
发送来的RIP
报文,将报文中的下一跳地址都改为 X X X,并将距离 d d d都 + 1 +1 +1- 若3分钟还没有收到
相邻路由器
的更新路由表,则把此相邻路由器记为不可达的路由器
,即把距离置为16(距离16表示不可达)
- RIP报文格式:
RIP协议
使用运输层用户数据报UDP
协议进行传送
- 优缺点:
- 优点:
- 实现简单、开销较小
- 缺点:
- 限制了网络的规模,能使用的最大距离为15,主要用于
小型网络
中- 路由器之间交换的
路由信息
是路由器中完整的路由表
,随着网络的扩大,开销增加- 好消息传递的快,坏消息传递的慢,使更新过程
收敛时间
过长
- 坏消息传的慢:
- 假定
路由器
R 1 R_1 R1到网1
之间的链路出现了故障
, R 1 R_1 R1无法到达网1,因而在 R 1 R_1 R1的路由表的相应项目变为“1,16,直接”- 但很可能要经过30秒后 R 1 R_1 R1才把更新的信息发送给 R 2 R_2 R2,然而 R 2 R_2 R2可能已已经先把自己的路由表发送给了 R 1 R_1 R1,其中有“1,2, R 1 R_1 R1”
- R 1 R_1 R1收到 R 2 R_2 R2的更新报文,误认为可经过 R 2 R_2 R2到达网1,将自身的路由表的相应的项更新为“1,3, R 2 R_2 R2”,并将它发给 R 2 R_2 R2
- 这样的更新一直继续下去,直到 R 1 R_1 R1和 R 2 R_2 R2到网1的距离都增大到16, R 1 R_1 R1和 R 2 R_2 R2才知道网1原来是不可达的
OSPF
OSPF(Open Shotest Path First):
开放最短路径优先协议OSPF
最主要的特征是使用分布式的链路状态
协议,而非RIP
那样使用距离向量
- OSPF和RIP的区别:
OSPF | RIP | |
---|---|---|
发送对象 | 向本自治系统中所有路由器 使用洪泛法 发送信息 | 仅向自己相邻的路由器 发送信息 |
信息内容 | 与本路由器相邻的所有路由器 的链路状态 | 到目的网络的距离 及下一跳路由器 |
发送时间 | 只有当链路状态 发生变化 时 | 定期发送 |
路由表信息 | 知道全网的拓扑结构 | 不知道全网的拓扑结构 |
坏消息传播的慢 | 不存在 | 存在 |
适用范围 | 大网络 | 小网络 |
洪泛法:
(1)路由器
通过所有输出端口
向所有相邻的路由器
发送信息
(2)每个相邻路由器又再将此信息发往其所有的相邻路由器
,但不再发送给刚刚发来信息的那个路由器
(3)最终整个区域中所有路由器都得到了这个信息的一个副本链路状态:
本路由器都和哪些路由器相邻,以及该链路的费用、时延及带宽等信息
- 由于各路由器频繁地交换
链路状态信息
,因此所有的路由器最终都能建立一个链路状态数据库
链路状态数据库的同步:
链路状态数据库
实际上就是全网的拓扑结构图
,该拓扑结构图在全网范围内是一致的
(1)同步:
不同路由器的链路状态数据路的内容是一致的
(2)两个同步的路由器称为完全邻接的路由器
区域:
OSPF
将一个自治系统
再划分为若干个更小的范围
称为区域
划分区域的好处:
减少整个网络上的通信量
(1)利用洪泛法
交换链路状态信息
的范围局限于每一个区域而不是整个的自治系统
(2)在一个区域内部的路由器
只知道本区域
的完整网络拓扑
,而不知道其他区域
的网络拓扑
OSPF
使用层次结构
的区域划分
:
(1)主干区域:
在上层的区域,标识符规定为0.0.0.0
,用于连通其他在下层的区域
区域边界路由器:
(1)从其他区域
来的信息都由区域边界路由器
进行概括
(2)每个区域至少应当有一个区域边界路由器
自治系统边界路由器:
在主干区域内,用于和本系统外的其他自治系统交换路由信息
- OSPF报文格式:
OSPF
不用UDP
,而是直接用IP数据报
传送
OSPF
允许管理员给每条路指派不同的代价,因此对于不同类型的业务可计算出不同的路由负载平衡:
如果同一个目的网络
有多条相同代价
的路径,那么可以将通信量分配给这几条路径,RIP
只能找到到某网络的一条路径
- OSPF的分组类型:
问候分组
:用来发现和维持邻站的可达性
数据库描述分组
:向邻站给出自己的链路状态数据库
中所有链路状态项目
的摘要信息
链路状态请求分组
:向对方请求发送某些链路状态项目的详细信息
链路状态更新分组
:使用洪泛法
对全网更新链路状态
,这是OSPF协议
的核心部分
链路状态确认分组
:对链路更新分组
的确认
- 每两个
相邻路由器
每隔10秒钟要交换一次问候分组
,以确定哪些邻站是可达的- 正常情况下,网络中传送的绝大多数
OSPF分组
都是问候分组
- 链路状态数据库的同步:
- 当一个路由器
刚开始工作
时,它只能通过问候分组
得知它有哪些相邻的路由器在工作,以及将数据发往相邻路由器所需的代价
OSPF
让每一个路由器用数据库描述分组
和相邻路由器
交换本数据库中已有的链路状态摘要信息
(1)摘要信息:
有哪些路由器的链路状态信息
(以及其序号)应写入数据库- 经过与相邻路由器交换
数据库描述分组
后,路由器就使用链路状态请求分组
,向对方请求发送自己所缺少的
某些链路状态项目
的详细信息
(1)通过一些列的链路状态请求分组
,在该路由器中就建立起来全网同步的链路数据库
- 在网络运行过程中,只要一个路由器的
链路状态
发生变化,该路由器就要使用链路状态更新分组
,用洪泛法
向全网更新链路状态
(1)OSPF
使用的是可靠的洪泛法:在收到更新分组
后要发送确认,收到重复的更新分组只需要发送一次确认
BGP
边界网关协议BGP
只能力求寻找一条能够到达目的网络
且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由BGP
采用了路径向量路由选择协议
- 在配置
BGP
时,要选择至少一个路由器作为该自治系统
的BGP发言人
- 一般来说,两个
BGP
发言人都是通过一个共享网络
连接在一起的,而BGP发言人
往往就是BGP边界路由器
- 每一个
BGP
发言人除了必须运行BGP协议
外,还必须运行该自治系统所使用的内部网关协议
- 一个
BGP发言人
与其他AS的BGP发言人
要交换路由信息,就要首先建立TCP连接- 然后在此连接上交换
BGP报文
以建立BGP会话
,利用BGP会话
交换路由信息- 使用
TCP连接
交换路由信息的两个BGP发言人
,彼此称为对方的邻站
或对等站
边界网关协议BGP
所交换的网络可达性的信息就是要达到某个网络,所要经过的一些列自治系统- 当
BGP
发言人相互交换了网络可达性的信息后,各BGP
发言人就根据所采用的策略
从收到的路由信息中找到到达各自治系统
的较好路由,即构造自治系统连通图
BGP协议
交换路由信息的结点数量级
是自治系统个数的量级,比这些自治系统
中网络数
少很多- 在
BGP
刚刚运行时,BGP
的邻站交换是交换整个的BGP路由表
,但以后只需要在发生变化时
更新变化的部分
- 报文格式:
- BGP的4种报文:
OPEN(打开)报文:
用来与相邻的另一个BGP发言人
建立关系,使通信初始化
UPDATE(更新)报文:
用来通告某一路由的信息,以及列出要撤销的多条路由KEEPALIVE(保活)报文:
用来周期性地证实邻站的连通性NOTIFICATION(通知)报文:
用来发送检测到的差错
- 交换过程:
BGP发言人邻站关系的建立:
(1)邻站关系的建立是一个商谈
的过程
(2)通过向邻站发送OPEN
报文开始商谈
(3)若邻站接收建立邻站关系
就发送KEEPALIVE
报文响应BGP发言人邻站关系的维持:
(1)两个BGP
发言人彼此要周期性地交换KEEPALIVE报文
UPDATE报文
是BGP协议
的核心内容
(1)可以用UPDATE报文
撤销它以前曾经通知过的路由,可以一次撤销许多条
(2)也可以用UPDATE报文
增加新的路由,每个更新报文只能增加一条
BGP协议
可以容易地解决坏消息传播得慢
这一问题
(1)当某个路由器或链路出故障时,由于BGP发言人
可以从不止一个邻站获得路由信息
,因此很容易选择出新的路由
路由器
路由器
是一种具有多输入端口
和多输出端口
的专用计算机路由器
的主要任务是转发分组
:
(1)从路由器某个输入端口
收到的分组,按照要去的目的网络
,把该分组从路由器的某个合适的输出端口
转发给下一跳路由器路由器的结构:
路由选择
和分组转发
- 路由选择:
- 路由选择部分的核心是
路由选择处理机
路由选择处理机的任务:
(1)构造路由表:
根据所选定的路由选择协议
构造出路由表
(2)维护和更新路由表:
经常或定期地和相邻路由器
交换路由信息
来不断地更新和维护路由表
- 分组转发:
- 构成:
交换结构
、一组输入端口
和一组输出端口
交换机构的作用:
根据转发表
对分组进行处理,将某个输入端口进入的分组从一个合适的输出端口转发出去转发
和路由选择
的区别:
(1)转发
仅仅涉及到一个路由器
(2)路由选择
则涉及到很多路由器,路由表
是许多路由器协同工作的结果
(3)路由表
一般仅包括从目的网路
到下一跳(用IP地址表示)
的映射,而转发表
是从路由表
得出的
(4)转发表
必须包含从要到达的目的网路
到输出端口
和某些MAC信息
(如下一跳的以太网地址)的映射
(3)路由表
总是由软件
实现的,但转发表
则可用特殊的硬件
来实现
- 输入端口:
- 输入端口的
查找
和转发功能
在路由器的交换功能
中时最重要的- 为了使交换功能
分散化
,往往把复制的转发表
(影子副本)放在每一个输入端口
中排队延时:
(1)当一个分组正在查找转发表时,后面又紧跟着从这个输入端口收到的另一个分组
(2)此时后到的分组就必须在队列中排队等待
,因此会产生一定的时延
- 输出端口:
作用:
从交换结构
接收分组,然后把它们发送到路由器
外面的线路上网络层的处理模块
中设有一个缓冲区
,当交换结构
传送过来的分组的速率超过输出链路的发送速率时,来不及发送的分组就暂时存放在这个队列中
- 丢弃分组:
- 分组在路由器的
输入端口
和输出端口
都可能会在队列中排队等候处理- 若分组
处理的速率
赶不上分组进入队列的速率
,则队列的存储空间
最终必定减少到零- 这就使后面在进入队列的分组由于没有存储空间而只能被丢弃
- 交换结构:
作用:
交换结构
把分组从一个输入端口
转移到某个合适的输出端口
实现方法:
(1)通过存储器
进行交换
(2)通过总线
进行交换
(3)通过互联网络
进行交换