
因特网的路由选择协议
路由选择协议
- 理想路由算法
- 算法是正确的,完整的
 - 在计算上简单
 - 自适应性
 - 稳定性
 - 公平的
 - 最佳的
 
 - 分层次的路由选择协议
- 因特网采用自适应,分布式路由选择协议
 - 两大类:内部网关协议IGP和外部网关协议EGP
 - IGP(Interior Gateway Protocol):包括RIP和OSPF等
 - EGP(External Gateway Protocol):目前使用BGP
 
 
内部网关协议RIP(Routing Information Protocal)
工作原理
- 路由信息协议,基于距离向量的路由选择协议,优点是简单
 - 从一路由器到直接连接的网络的距离定义为1,距离也称为跳数
 - 一条路径最多包含15个路由器,16代表不可达,因此用于小型互联网
 - 只选择最短路由,哪怕有一条高速但多路由器的路由
 - 分布式路由选择协议,不断地和其他路由器交换信息
 - 协议特点
- 仅和相邻路由器交换信息
 - 交换的信息是当前本路由知道的全部信息(路由表)
 - 按固定的时间间隔交换信息(30秒)
 
 
距离向量算法
对于每一个相邻路由器发过来的RIP报文,进行下列步骤:
- 对地址为X的路由器发来的RIP报文,先修改报文的所有项目:“下一跳”改为X,所有距离加一。每个项目有三个数据:到达目的网络N,距离d,下一跳路由器是X
 - 对修改后的每一个项目
 
- 如果原来的路由表没有目的网络N,加入路由表
 - 否则如果有目的网络,下一跳地址也是X,更新路由表
 - 否则如果有目的网络,下一跳不是X,查看距离,更新路由表
 
- RIP2是新版本,改进性能,支持CIDR和变长子网掩码,多播
 - 使用运输层的用户数据报UDP进行传送(UDP的端口520)
 - 报文由首部和路由组成
 - 首部4字节,包括命令,版本,和一个0保证四字节对齐
 - 路由部分由若干个路由信息组成,20字节。包含地址族标识符,路由标记,后面是网络地址,子网掩码,下一跳路由地址,距离。重复出现最多25个
 - 问题:网络出现故障时,需要较长时间才能传送到所有路由器(栗子很有趣)
 - 特点:好消息传的快,坏消息传得慢
 - 优点:实现简单,开销较小
 - 缺点:限制网络规模;随着规模扩大,开销增加
 - 规模小的网络适合
 
内部网关协议OSPF(Open Shortest Path First)
协议基本特点
- 开放最短路径优先
 - 使用分布式的链路状态协议
 - 与RIP的不同之处:
- 用洪泛法(flooding)向本自治系统中的所有路由器发送信息
 - 发送的信息是与本路由器相邻的所有路由器的链路状态。链路状态还包括“度量”(metric)
 - 只有当链路状态发生变化时,才使用洪泛法发送信息
 
 - 所有路由器都能建立链路状态数据库,也就是全网的拓扑结构图
 - 每一个路由器使用链路状态数据库中的数据构造自己的路由表(迪杰斯特拉算法)
 - OSPF会将一个自治系统划分为若干个更小的范围,叫做区域,每个区域有32位的标识符
 - 划分区域的好处是洪泛法交换信息的范围局限于一个区域,减少通信量
 - OSPF使用层次结构的划分
- 区域边界路由器
 - 主干路由器
 - 自治系统边界路由器
 
 - 使用IP数据报传送,很短
 - 特点
- 允许管理员给每条路由指定代价
 - 如果有多条代价相同的路径,可以将通信量分配给这几条路径。即负载均衡
 - 所有在OSPF路由器之间交换的分组都有鉴别的功能
 - 支持可变长的子网划分和CIDR
 - 每一个链路状态都有一个32位的序号,增长速率不超过5秒1次。
 - 只要一个路由器的链路状态发生变化,就用洪泛法向全网更新链路状态
 - 每30分钟刷新一次数据库的链路状态
 
 
五种分组类型
- 问候分组,发现和维持邻站的可达性
 - 数据库描述分组,给邻站自己的链路状态数据库中的链路状态项目
 - 链路状态请求分组,向对方请求链路状态项目
 - 链路状态更新分组,洪泛法,最复杂,最核心的部分
 - 链路状态确认分组
 
外部网关协议BGP
- 使用原因
- 因特网规模太大,使得AS之间路由选择太难
 - AS之间的路由选择必须考虑有关策略
 
 - 每一个自治系统的管理员要选择至少一个路由器作为“BGP发言人”。两个BGP发言人通过一个共享网络连接在一起,发言人一般是BGP边界路由器
 - 要交换路由信息,先建立TCP连接,在此连接上交换BGP报文以建立BGP会话
 - 使用TCP连接能提供可靠的服务,简化了路由选择协议
 - 使用TCP连接交换路由信息的两个BGP发言人,彼此成为对方的邻站或对等站
 - 每一个BGP发言人处理必须运行BGP协议外,还必须运行内部网关协议
 - 交换的信息是到达某个网络所要经过的一系列自治系统
 - BGP支持无分类域间路由选择CIDR,因此路由表包括网络前缀,下一跳路由器,以及到达该面对网络所要经过的自治系统序列
 - 四种报文
- OPEN报文:建立关系,通信初始化
 - UPDATE报文,报告路由信息,列出要撤销的路由
 - KEEPALIVE报文,周期性证实邻站连通性
 - NOTIFICATION报文,发送检测到的差错
 
 - 报文过程
- 先发送OPEN报文
 - 如果接受,用KEEPALIVE相应
 - 然后周期性地交换KEEPALIVE报文
 - UPDATE报文可以撤销通知过的路由,也可以增加新的路由;撤销可以多条,增加只能一条
 
 - 能解决“坏消息传播得慢”
 
路由器的构成
路由器的结构
- 多个输入端口和多个输出端口的专用计算机
 - 任务是转发分组
 - 两部分结构:路由选择和分组转发
 - 路由选择
- 核心构件是路由选择处理机
 - 任务是根据所选定的路由选择协议构造路由表,定期和相邻路由器交换路由信息而不断更新和维护路由表
 
 - 分组转发
- 由交换结构,输入端口和输出端口组成
 - 交换结构:根据转发表对分组进行处理,将某个输入端口进入的分组从一个合适的输出端口转发出去
 - 输入输出各有三个模块:物理层,数据链路层,网络层
 - 网络层中有缓冲区