《图解TCP/IP》读书笔记(四)

2021-01-29  本文已影响0人  peareaden

本文内容为《图解TCP/IP》一书学习笔记。本文主要概述第七章内容。

第七章 路由协议

互联网网络结构复杂,需要通过合理的路由将数据发送到目标主机。而决定这个路由的,正是路由控制模块。

7.1.2 静态路由与动态路由

静态路由:事先设置好路由器和主机中并将路由信息固定的一种方法。但每增加一个新的网络,就需要将这个新追加的网络信息设置在所有的路由器上,管理负担很大。此外,一旦某个路由器发生故障,基本上无法自动绕过发生故障的节点,必须手工设置后才能恢复。
动态路由:让路由协议在运行过程中自动地设置路由控制信息的一种方法。如果有一个新的网络追加到原有网络中,只要在新增加网络的路由器上进行一个动态路由的设置即可。此外,网络上一旦发生故障,只要有一个可绕的其他路径,数据包就会自动选择这个路径,路由器的设置也会自动重置。但路由器会定期与相邻的路由器交换路由控制信息,会给网络带来一定程度的负荷。


7.1.3 动态路由的基础

路由器给相邻路由器发送自己已知的网络连接信息,这些信息又像接力一样依次传递给其他路由器,直至整个网络都了解了,路由表制作完成,此时可以正确转发IP数据包。

7.2 路由控制范围

制定自己的路由策略,并以此为准在一个或多个网络群体中采用的小型单位叫做自治系统(AS:Autonomous System)或路由选择域(Routing Domain)。
自治系统(路由选择域)内部动态路由采用的协议是域内路由协议(内部网关协议),即IGP(Interior Gateway Protocol)。自治系统之间的路由控制采用的是域间路由协议(外部网关协议),即EGP(Exterior Gateway Protocol)。

7.3 路由算法

最具代表性的路由算法是:距离向量(Distance-Vector)算法和链路状态(Link-State)算法。

7.3.1 距离向量

根据距离(代价)和方向决定目标网络或者目标主机位置的一种方法。



由于只有距离和方向的信息,当网络构造分外复杂时,在获得稳定的路由信息之前需要消耗一定时间,也易发生路由循环。
距离向量算法中每个路由器掌握的信息都不相同,通往每个网络所耗的距离(代价)也根据路由器的不同而不同。该算法的一个缺点就是不太容易判断每个路由器上的信息是否正确。

7.3.2 链路状态

在了解网络整体连接状态的基础上生成路由控制表的一种方法,该方法中,每个路由器必须保持同样的信息才能进行正确的路由选择。



链路状态算法中每个路由器掌握的信息都相同。只要每个路由器都尽快地与其他路由器同步路由信息,就可以使路由信息达到一个稳定的状态。因此即使网络结构变得复杂,每个路由器也能够保持正确的路由信息,进行正确的路由选择,这是该算法的一个优点。
但这个优点的代价就是如何从网络代理获取路由信息表。

7.4 RIP

RIP(Routing Information Protocol)是距离向量型的一种路由协议,广泛应用于LAN。

7.4.1 广播路由控制信息

广播路由:RIP将路由控制信息定期(30秒)向全网广播。


7.4.2 广播路由控制信息

确定路由:RIP基于距离向量算法决定路由,距离的单位被称为“跳数”(经过的路由器的个数),RIP希望经过尽可能少的路由器将数据包发送到目标IP地址。



如果距离相等,通常是随机选择一个或是轮换使用。

7.4.4 RIP中路由变更时的处理

RIP中的基本行为可归纳为如下两点:

7.5 OSPF

OSPF是一种链路状态型路由协议,即使网络中有环路,也能够进行稳定的路由控制。
为了减少网络流量,OSPF引入了"区域"这一概念。区域将一个自治网络划分为若干个更小的范围,由此减少路由协议之间不必要的交换。
OSPF为链路状态型路由器,路由器之间交换链路状态生成网络拓扑信息,然后再根据这个拓扑信息生成路由控制表。



OSPF给每个链路赋予一个权重(代价),并始终选择一个权重最小的路径作为最终路由。而RIP是选择路由器个数最少的路径。


7.5.2 OSPF基础知识

相邻路由器:在OSPF中连接到同一个链路的路由器。
指定路由器:不在所有相邻路由器之间进行控制消息的交换,而是以指定路由器为中心交换。
RIP中包只有一种,利用路由控制信息,一边确认是否连接了网络,一边传送网络信息。但这样做的话,网络的个数越多,每次交换的路由控制信息越大。且在网络稳定的情况下还要定期交换相同的路由控制信息,浪费网络带宽。
OSPF中包的类型有以下5种:



通过发送问候包确认是否连接。路由器同步路由控制信息时,利用数据库描述包互相发送路由摘要信息和版本信息。如果版本信息比较老的时候利用链路状态请求包请求路由控制信息。然后由链路状态更新包接收路由状态信息,最后通过链路状态确认包通知大家本地已经接收到路由控制信息。

7.5.3 OSPF工作原理概述

根据链路状态信息生成路由控制表

LAN中每10秒发送一个HELLO包,没有HELLO包到达时会进行连接是否断开的判断(允许空等3次,直到第4次(40秒后)仍无任何反馈就认为连接已断开)。之后再进行连接断开或恢复连接操作时,由于链路状态发生了变化,路由器会发送一个链路状态更新包(Link State Update Packet)通知其他路由器网络状态的变化。
链路状态更新包所要传达的消息分为两类:

7.5.4 将区域分层化进行细分管理

链路状态型路由协议存在问题:网络规模越大,表示链路状态的拓扑数据库越大,路由控制信息计算越困难。OSPF为了减少计算负荷,引入了区域的概念。
区域:将连接在一起的网络和主机划分成小组,使一个自治系统(AS)内可以拥有多个区域。不过拥有多个区域的自治系统必须要有一个主干区域(Backbone Area),并且所有其他区域都必须与这个主干区域相连。


区域路由器种类

7.6 BGP

BGP(Border Gateway Protocol),边界网关协议是连接不同自治系统的一种协议,主要用于ISP之间相连接的部分。



在RIP和OSPF中利用网络地址部分进行路由控制,然而BGP需要放眼整个互联网进行路由控制。BGP的最终路由控制表由网络地址和下一站的路由器组来表示,不过它会根据所要经过的AS个数进行路由控制。
AS的代表可以决定AS内部的网络运营和相关策略。举例,AS1与AS3之间通信需要AS2或AS4与AS5组合起来的两者中的一者进行数据中转才能实现。而这两者是否中转则由AS2或AS4与AS5决定(中转意味着网络负荷的加重以及成本的提升,中转合约一般涉及中转费用)。如果两者都不愿意,只能在AS1与AS3之间建立专线连接来通信。
下面7.6.2节的基础是假定这两者都允许中转。

7.6.2 BGP是路由向量协议


根据BGP交换路由控制信息的路由器叫做BGP扬声器。BGP扬声器为了在AS间交换BGP信息,必须与所有AS建立对等的BGP连接。此外,上图中的自治系统AS2、AS4、AS5,在同一个AS内部有多个BGP扬声器,为了使AS内部也可以交换BGP信息,需要建立BGP连接。
BGP中数据包送达目标网络时,会生成一个中途经过所有AS的编号列表。这个表格也叫做AS路径信息访问列表(AS Path List)。如果针对同一个目标地址出现多条路径时,BGP会从AS路径信息访问列表中选择一个最短的路由。
在AS路径信息访问列表中不仅包含转发方向和距离,还涵盖了途径所有AS的编号。因此它不是距离向量型协议。像BGP这种根据所要经过的路径信息访问列表进行路由控制的协议属于路径向量(Path Vector)协议。
BGP与RIP和OSPF的比较:

上一篇 下一篇

猜你喜欢

热点阅读