概述
因特网路由选择协议特点
1)自适应:动态路由选择,能适应网络状态的变化
2)分布式:路由器之间交换路由信息
3)分层次:将整个因特网划分为许多较小的自治系统 AS
协议分类
内部网关协议:用于自治系统 AS 内不使用,如 RIP、OSPF
外部网关协议:用于自治系统之间通信,如 BGP

路由信息协议RIP
工作原理
1)要求每一个路由器都维护从自身到 AS 中其他网络的距离
2)路由器到直连网络的距离为1,后面每隔一个路由器距离+1,当距离超过16认为不可达
3)RIP 协议优先选择距离短的路由,对于距离相同的路由选择等价均衡负载
4)RIP 仅和相邻路由器周期性交换自己的路由表信息(包含距离信息)
更新规则
发现新网络:添加
已知网络,相同下一跳(最新消息):更新
已知网络,不同下一跳,新路由短:更新
已知网络,不同下一跳,新路由相等:等价均衡负载
已知网络,不同下一跳,新路由长:忽略

RIP 路由环路问题
当网络故障,相邻路由器将距离修改为 16 ,但此时被其他路由器更新,会形成更新回路,最终距离递增为 16 停止。导致故障消息产生慢

开放最短路径优先OSPF
采用 Dijkstra 最短路算法,解决路由环路问题,适合更加复杂的网络
概念
链路状态:本路由器与哪些路由器相邻,以及链路的代价(费用、距离、时延等)
链路状态通告(LSA):包含直连网络与相邻路由器的链路信息
链路状态更新分组(LSU):封装 LSA ,采用洪泛发送
链路状态数据库(LSDB):每个路由器都有,存储 LSA
通过各路由器发送封装有自己 LSA 的 LSU 分组,最终各路由器的 LSDB 达到一致,并计算出各自的路由表
建立路由
OSPF 分组类型
1)问候分组:发现和维护邻居路由器的可达性
2)数据库描述分组:向邻居路由器给出自己 LSDB 中的所有链路状态的摘要信息
3)链路状态请求分组:向邻居路由器请求某些链路状态项目的详细信息
4)链路状态更新分组:将自己的链路状态进行洪泛发送,即用洪泛法对全网更新链路状态
5)链路状态确认分组:对链路状态更新分组的确认分组
过程

1)新网络:对于新网络路由器之间使用问候分组建立邻居关系
2)同步数据库:首先发送数据库描述分组,接着是链路状态的请求、更新、确认
3)超时或链路变化:发送更新分组,接收方发送确认分组
多点网络中建立关系
在多点网络中,所有路由器彼此都是邻居,为了避免冗余通信需要选取指定路由器作为信息交换的中心
1)选举“指定路由器 DR”和“备用指定路由器 BDR”,当DR出现问题,以BDR作为中心
2)所有其他路由器只与当前 DR 建立邻居关系,且只通过当前 DR 交换信息

区域
区域:为了用于大规模网络,对 AS 进一步细分,划分出很多“区域”
1)区域之间或 AS 之间只通过枢纽传递信息
2)一个区域内的路由器不会向其他区域传递信息

边界网关协议BGP
原理
1)BGP 只寻找到达目标网络无回路的路由,而不是最佳路由
2)每个 AS 中至少选择一个路由器作为 BGP 发言人,与其他 AS 中的 BGP 发言人交换“网络可达性”的信息
3)各 BGP 发言人根据信息得出到达各 AS 的较好的路由
BGP-4 报文类型
1)OPEN(打开)报文:与相邻 BGP 发言人建立关系,使通信初始化
2)UPDATE(更新)报文:通告某一路由的信息
3)KEEPALIVE(保活)报文:周期性证实邻站的连通性
4)NOTIFICATION(通知)报文:用来发送检测到的差错
