一、路由原理
1、网络层功能
1)数据平面
转发:将分组从路由器的一个输入端口移到合适的输出端口
2)控制平面
路由:确定分组从源到目标的路径
2、路由算法
- 路径长度
- 可靠性
- 延迟
- 带宽
- 负载
- 通信代价
3、路由的原则
1)正确性
算法必须是正确的和完整的,使分组一站一站接力,正确发向目标站
完整:目标所有的站地址,在路由表中都能找到相应的表项,没有处理不了的目标站地址
2)简单性
算法在计算机上应简单:最优但复杂的算法,时间上延迟很大,不实用,不应为了获取路由信息增加很多的通信量
3)健壮性
算法应能适应通信量和网络拓扑的变化:通信量变化,网络拓扑的变化算法能很快适应;不向很拥挤的链路发数据,不向断了的链路发送数据
4)稳定性
产生的路由不应该摇摆
5)公平性
对每一个站点都公平
6)最优性
某一个指标的接近最优,时间上,费用上,等指标,或综合指标
4、路由协议
- 直连路由:路由器直接交付
- 静态路由:设置固定路由表,除非网络管理员干预,否则静态路由不发生变化
- 动态路由:路由器之间相互通信,传递路由信息,利用收到的路由信息,更新自己路由表的过程,能实时使用网络结构的变化
5、自治系统AS
自治系统AS(Autonomous System)的定义:在单一的技术管理下的一组路由器,而这些路由器使用一种AS内部的路由选择协议和共同的度量以确定分组在该AS内的路由,同时还使用一种AS之间的路由选择协议用以确定分组在AS之间的路由
现在对自治系统AS的定义是强调下面的事实:尽管一个AS使用了多种内部路由选择协议和度量,但重要的是一个AS对其他AS表现出的是一个单一的和一致的路由选择策略
二、AS的路由选择
1、RIP距离向量算法
1)RIP概述
在 1982年发布的BSD-UNIX 中实现
采用 Distance vector 算法
2)RIP通告
在邻居之间每30秒交换通告报文
定期且在改变路由的时候发送通告报文,在对方的请求下可以发送通告报文
要点
- 仅和相邻路由器交换信息
- 交换的信息是当前路由器所知道的全部信息,即自己的路由表
- 按固定的时间间隔交换路由信息
3)RIP链路失效和恢复
如果180秒没有收到通告信息 => 邻居或者链路失效
- 发现经过这个邻居的路由已失效
- 新的通告报文会传递给邻居
- 邻居因此发出新的通告 (如果路由变化的话)
- 链路失效快速(?)地在整网中传输
- 使用毒性逆转阻止ping-pong回路(不可达的距离:跳数无限 = 16 段)
4)RIP进程处理
RIP 以应用进程的方式实现,通告报文通过UDP报文传送,周期性重复
网络层的协议使用了传输层的服务,以应用层实体的方式实现
5)RIP协议优缺点
- RIP存在一个问题就是当网络出现故障时,要经过比较长的时间才能将此信息传达到所有的路由器
- RIP协议最大的优点就是实现简单,开销较小
- RIP限制了网络的规模,并能使用的最大距离为15(16表示不可达)
- 路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增大
2、OSPF内部网关协议
1)OSPF协议的基本特点
最短路径优先 是因为使用了Dijkstra提出的最短路径算法SPF
OSPF只是一个协议的名字,它并不表示其他的路由选择协议不是最短路径优先
OSPF是分布式的链路状态协议
2)OSPF三个要点
- 向本自治系统中所有的路由器发送消息,这里使用的方法是洪泛法
- 发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息 => 链路状态就是说明本路由器都和哪些路由器相邻,以及该链路的度量
- 只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息
3)层次化的OSPF
为了使OSPF能够用于规模很大的网络,OSPF将一个自治系统再划分为若干个更小的范围,叫做区域(area)
2个级别的层次性:本地, 骨干
- 链路状态通告仅仅在本地区域Area范围内进行
- 每一个节点拥有本地区域的拓扑信息
- 关于其他区域,知道去它的方向,通过区域边界路由器
区域边界路由器: 汇总(聚集)到自己区域内网络的距离,向其它区域边界路由器通告
骨干路由器: 在骨干区域内运行OSPF路由
边界路由器: 连接其它的AS的边界路由
4)OSPF的特点
1.OSPF对不同的链路可根据IP分组的不同服务类型TOS而设置成不同的代价,因此,OSPF对于不同类型的业务可计算出不同的路由
2.如果到同一个目的网络有多条相同的路径,那么可以将通信量分配给这几条路径,这叫作多路径间的负载平衡
3.所有在OSPF路由器之间交换的分组都具有鉴别的功能
4.支持可变长度的子网划分和无分类编址CIDR
5.每一个链路状态都带上一个32位符号,序号越大,状态就越新
6.OSPF还规定了每隔一段时间,要刷新一次数据库中的链路状态
7.由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而整个互联网的规模并无直接关系,因此当互联网规模很大时,OSPF协议要距离向量协议RIP好得多
8.OSPF没有坏消息传得慢的问题,据统计,其相应网络变化的时间小于100ms
三、ISP的路由选择
1、BGP
1)BGP概述
- BGP是不同自治系统的路由器之间交换路由信息的协议
- BGP较新的版本是2006年1月发表的BGP-4,即RFC 4271~4278
- BGP-4 简写为 BGP
2)BGP发言人
- 每一个自治系统至少有一个路由器作为该自治系统的 BGP发言人
- 两个BGP发言人都是通过一个共享网络连接在一起的,而BGP发言人往往是BGP边界路由器,但也可以不是BGP边界路由器
3)BGP交换路由信息
1.一个BGP发言人与其他自治系统中的BGP发言人要交换路由信息,就要先建立TCP连接,然后在此连接上交换BGP报文建立BGP会话,利用BGP会话交换路由信息
2.使用TCP连接可以提供可靠服务,也简化了路由选择协议
3.使用TCP连接交换路由信息的两个BGP发言人,彼此成为了对方的邻站或对等站
4)BGP协议的特点
- BGP协议交换路由信息的节点数量级是自治系统数的量级,这要比这些自治系统中的网络数少很多
- 每一个自治系统中BGP发言人(或边界路由器)的数目是很少的,这样就使得自治系统之间的路由选择不敢过分复杂
- BGP支持CIDR,因此BGP的路由表就应当包括目的网络前缀,下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列
- 在BGP刚刚运行时,BGP的邻站是交换整个的BGP路由表,但以为只需要在发生变化时更新有变化的部分,这样做对节省网络宽带和减少路由器的处理开销方面都有好处
四、AS和ISP路由方式不同的原因
1、策略方面
Inter-AS:管理员需要控制通信路径,谁在使用它的网络进行数据传输
Intra-AS:一个管理者,所以无需策略。AS内部的各子网的主机尽可能地利用资源进行快速路由
2、规模方面
AS间路由必须考虑规模问题,以便支持全网的数据转发
AS内部路由规模不是一个大的问题
- 如果AS太大,可将此AS分成小的AS => 规模可控
- AS之间只不过多了一个点而已
- AS内部路由支持层次性,层次性路由节约了表空间,降低了更新的数据流量
3、性能方面
Intra-AS:关注性能
Inter-AS:策略可能比性能更重要