因特网的路由选择协议
路由选择协议
- 理想路由算法
- 算法是正确的,完整的
- 在计算上简单
- 自适应性
- 稳定性
- 公平的
- 最佳的
- 分层次的路由选择协议
- 因特网采用自适应,分布式路由选择协议
- 两大类:内部网关协议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报文可以撤销通知过的路由,也可以增加新的路由;撤销可以多条,增加只能一条
- 能解决“坏消息传播得慢”
路由器的构成
路由器的结构
- 多个输入端口和多个输出端口的专用计算机
- 任务是转发分组
- 两部分结构:路由选择和分组转发
- 路由选择
- 核心构件是路由选择处理机
- 任务是根据所选定的路由选择协议构造路由表,定期和相邻路由器交换路由信息而不断更新和维护路由表
- 分组转发
- 由交换结构,输入端口和输出端口组成
- 交换结构:根据转发表对分组进行处理,将某个输入端口进入的分组从一个合适的输出端口转发出去
- 输入输出各有三个模块:物理层,数据链路层,网络层
- 网络层中有缓冲区