图解TCP/IP-----路由协议

此系列博客,图片文字观点均是来自《图解 TCP/IP》,仅作为学习用途。

1、路由控制的定义

    1.1 IP地址与路由控制

        互联网是路由器连接的网络组合而成。为了让数据包正确达到目标主机,路由器必须正确的转发,这种向正确的方向转发数据所进行的处理叫做路由控制或路由。

         路由器根据路由控制表转发数据包,它根据所接收到数据包中目标主机的IP地址与路由控制表的比较得出下一个应该接收的路由器。因此这个过程中一定要准确,不然有可能数据包无法到达主机。

    1.2 静态路由与动态路由

        静态路由是指事先设置好路由器和主机中并将路由信息固定的一种方法。动态路由是指让路由协议在运行过程中自动的设置路由控制信息的一种方法。各有利弊。

        静态路由设置通常是手工操作,因此会给管理者带来很大的负担。一旦某一个发生故障,基本无法自动绕过发生故障的点,只有在手工设置后才能恢复正常。新增加网络要在所有路由器上设置。

        使用动态路由情况下,管理员必须设置好路由协议,设定过程复杂度与采用的具体路由协议有关。RIP(路由信息协议)情况下无需太多设置。OSPF(开放式最短路径优先)进行详细路由控制时,设置工作会非常繁琐。新增网络只需要在一个路由器上进行动态路由设置即可。

    1.3 动态路由基础

          图解TCP/IP-----路由协议_第1张图片

        如图所示,动态路由会给相邻的路由器发送自己已知的网络连接信息,这些信息会像接力一样依次传递给其他路由器。直到整个网络都了解,路由控制表也就完成了。就可以正确地转发数据包了。

2、路由控制范围

    随着IP网络的发展,想要对所有的网络统一管理是不可能的,因此人们根据路由控制的范围常使用IGP(内部网关协议)和EGP(外部网关协议)。

    2.1 接入互联网的各种组织机构

        互联网连接着世界各地的组织机构,尽管这些机构的语言不通、宗教信仰都不同,他们之间没有管理者和被管理者,是处于平等关系。

    2.2 自治系统与路由协议

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

    2.3 IGP与EGP

        EGP和IGP的关系与IP地址网络部分和主机部分有相似之处,像根据IP地址中的网络部份在网络部份进行路由选择、根据主机部分在链路内部进行主机识别一样,可以根据EGP在区域网络之间进行路由选择,也可根据IGP在区域网络内部进行主机识别。

3、路由算法

    路由控制算法具有代表性的两种:距离向量算法和链路状态算法。

    3.1 距离向量算法

        距离向量算法(DV)是指根据距离(代价)和方向决定目标网络或目标主机位置的一种方法。路由器之间可以互换目标网络方向以及距离相关信息,并以这些信息为基础制作路由控制表,由于只有距离和方向的信息,网络构造复杂时,在获得稳定的路由信息之前需要消耗一定的时间,也极易发生路由循环等问题。

    3.2 链路状态算法

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

        上面距离向量算法中每个路由器掌握的信息不同,通往每个网络的代价也就不同,他的缺点就是不太容易判断每个路由器上的信息是否正确。

        而链路状态算法中所有的路由器都持有相同的信息,对于任何同一台路由器网络拓扑都完全一样。因此只要一台路由器与其他路由器保持相同的路由控制信息,就意味该路由器上的信息是正确的。只要每个路由器尽快的与其他路由器同步路由信息就可以使路由信息达到一个稳定的状态,因此即使网络结构复杂,每个路由器也能保持正确的路由信息,进行稳定的路由选择,这是链路状态算法的优点之一。

    3.3 主要路由协议

        下图是常见的几种路由协议。由于EGP(指的一种协议不是外部网关协议)不支持CIDR(无类域间路由)现在已经不用作互联网对外连接协议。

        图解TCP/IP-----路由协议_第2张图片

4、RIP 

    RIP(路由信息协议)是距离向量型的一种路由协议,广泛用于LAN。

    4.1 广播路由信息

        RIP将路由控制信息定期(30s)向全网广播,如果没有收到路由信息,连接会被断开。不过这个未收到有可能是丢包产生的,因此,RIP规定等待5次,如果第六次(180s)还没有收到路由信息,才会真正关闭连接。

    4.2 根据距离向量确定路由

        RIP基于距离向量算法决定路径,距离的单位为跳数,跳数是指经过路由器的个数,RIP希望极可能少通过路由器将数据包转发到目标IP地址。

              图解TCP/IP-----路由协议_第3张图片

    4.3 使用子网掩码时的RIP处理

        RIP虽然不需要交换子网掩码信息,但可以用于使用子网掩码的网络环境。注意以下几点:

        *从接口的IP地址对应分类得到网络地址后,与根据路由控制信息流过此路由器的包中IP地址对应的分类得出的网络地址进行比较,如果两者网络地址相同,就以接口的网络地址为准。

        *如果两者网络地址不同,那么以IP地址分类所确定的网络地址长度为准。

        其实意思也就是,如果接口IP地址的网络地址和包中网络地址相同那么就以接口IP地址为准(包含掩码,掩码可能长),如果不相同,那么就以网络地址分类为准(掩码和网络分类的网络地址数相同)。比如接口IP地址为192.168.1.33/27,掩码为27为表示网络地址为27位,按照网络地址分类它的网络地址为192.168.1.33/24,掩码为24位。如果有一个IP地址它的网络地址和192.168.1.33/24相同,那么这些IP地址的网络地址长度都认为是27位,也就是以接口IP为准,如果IP地址的网络地址和192.168.1.33/24不同,那么这些IP地址的网络长度采用地址分类确定的网络地址。

    4.4 RIP中路由变更时的处理

         RIP的基本行为可以归纳如下:

         *将自己所知道的路由信息定期广播

         *一旦认为网络被断开,数据将无法流过此路由器,其他路由器也就可以得知网络已断开。

        虽然这样还是会有可能存在问题,比如,路由器A连接A网络,路由器A将消息发送给路由器B,网络A与路由器A之间发生故障,但是路由器A收到路由器A发给路由器B的加一跳的信息,这样会使路由器A以为自己和A网络之间可以通过路由器B到达网络A ,像这样收到自己发出去的消息,被称为无限计数,一般解决这个问题采用以下两种方法:

        *一是最长距离不超过16(这个信息只保留120s,一旦超过这个时间,信息会被删除,无法发送,这个时间由一个叫做垃圾收集计时器的工具进行管理。),由此即使发生无限计数的问题,也可以从时间上进行控制。

        *二是规定路由器不再把所收到的路由消息原路返还给发送端,也被称为水平分割。

       然而,这种方法对有些网络来说还是无法解决问题,在有环路的情况下,反向的回路会成为迂回的通道,路由信息会不断地被循环往复地转发,为了解决这个问题,人们提出了“毒性逆转”和“触发更新”两种方法。

        毒性逆转是指当网络中发生链路被断开的时候,不是不再发送这个消息,而是将这个无法通信的消息传播出去,也就是发送一个距离为16的消息。

        触发更新是指当路由信息发生变化时,不等待30秒而是立刻发送出去的一种方法。有这两种方法,在链路不通时,可以迅速传送消息使路由信息尽快收敛。即使有这么多方法,在一个众多环路复杂的网络环境中,路由信息想要达到一个稳定的状态是需要一定时间的。

    4.5 RIP2

        改良的RIP,工作机制和RIP一样,但是增加了几个新特点,

        *使用多播

        RIP中路由器之间交换信息时采用广播的形式,在RIP2中采用多播的形式,减少网络流量,缩小无关主机的影响。

        *支持子网掩码

        与OSPF类似,RIP2支持在交换路由信息中加入子网掩码的信息。

        *路由选择域

        与OSPF(开放式最短路径优先)区域类似,在同一个网络可以使用逻辑上独立的多个RIP。

       *外部路由标志

        通常用于把BGP(边界网关协议)等获得的路由控制信息通过RIP传给AS内。

        *身份验证密钥

        与OSPF一样,RIP包中携带密码,只有在自己能识别这个密码才接收数据,否则忽略这个RIP包。

5、OSPF(开放式最短路径优先)

        OSPF(Open Shortest Path First)是根据 OSI的IS-IS(中间系统到中间系统的路由选择协议)而提出的一种链路状态型路由协议。OSPF支持子网掩码,在RIP中无法实现的可变长度子网构造的网络路由控制成为现实。为了减少网络流量,OSPF还引入了区域的概念,区域是将一个自治网络划分为若干更小的范围。较少路由协议之间必要的转换。OSPF可以针对IP首部中的区分服务(TOS),生成多个路由控制表。

    5.1 OSPF是链路状态型路由协议

        OSPF是链路状态型路由器路由器之间交换链路状态生成网络陀婆信息,然后根据这个拓扑信息生成路由控制表。RIP的路由选择是要求所经过的路由器个数越少越好。OSPF是给每条链路赋予一个权重,并始终选择权中最小的路径作为最终路由。

    5.2 OSPF基础知识

        OSPF中,把连接到同一个链路的路由器称作相邻路由器,在一个相对简单的网络结构中,相邻路由器之间可以交换路由信息,但是在一个复杂的网络中,不需要在相邻的路由器之间都进行控制信息的交换。,而是确定一个指定路由器以他为中心交换路由信息。

        RIP中包类型只有一种,他利用路由控制信息,一边确认是否连接了网络,一百年传送网络信息,这种方式很明显有一个严重的缺点,当网络个数多的时候,路由控制信息越来越大,而且当网络比较稳定的时候,没什么变化时,还要定期交换路由控制信息,造成网络带宽浪费。

        OSPF中,包分为5中类型。

           图解TCP/IP-----路由协议_第4张图片

        通过发送问候(Hello)包确认是否连接。每个路由器为了同步路由控制信息,利用数据库描述(Database Description)包相互发送路由摘要信息和版本信息,如果版本比较老,则首先发出一个链路状态请求包请求路由控制信息,然后由链路状态更新包接受路由状态信息,最后再通过链路状态确认包通知大家本地已经接受到路由控制信息。这样不仅仅减少网络流量,还可以迅速达到更新路由信息。

    5.3 OSPF工作原理概述

        OSPF中进行连接确认的协议叫做HELLO协议。

        LAN中每十秒发送一个HELLO包,如果没有HELLO包到达则进行连接是否断开的判断。具体为,允许空等3次,知道第四次仍无任何反馈就认为连接已经断开,之后再进行连接断开或恢复连接操作时,由于链路状态发生了变化,路由器会发送一个链路状态更新包通知其他路由器网络状态变化。

        链路状态更新包所要传达的消息大致分为两类,一是网络LSA(网络链路状态通告)另一个是路由器LSA(路由器链路状态通告)。

         网络LSA时以网络为中心生成的信息,表示这个网络都与哪些路由器相连,路由器LSA是以路由器为中心生成的信息,表示这个路由器与那些网络连接。

                                        图解TCP/IP-----路由协议_第5张图片

        这两种信息都采用OSPF发送,每个路由器就可以生成一个表示网络结构的链路状态数据库, 可以根据数据库采用Dijkstra(迪杰斯特拉)(最短路径优先)算法生成路由控制表。

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

        链路状态型路由协议潜在问题在于,当网络规模越来越大,表示链路状态的拓扑数据库就变得越来越大,路由控制信息的计算也就越来越难,因此引入了区域的概念。区域是指连接在一起的网络和主机划分成小组,使一个自治系统内可以有多个区域,多个区域的自治系统必须有一个主干区域,并且所有其他区域都与这个主干区域连接,连接区域和主干区域的路由器称作边界路由器,区域内部路由器称为内部路由器,只与主干区域内连接的路由器叫做主干路由器,与外部相连接的路由器就是AS(自治系统)边界路由器。

       每个区域内路由器都持有本区域网络拓扑的数据库,关于区域外的路径信息只有从区域边界路由器那里获知它们的距离。区域边界路由器也不会讲区域内链路状态信息发给其他区域止回阀送自己到达这些路由器的距离信息。这样内部网络所持有的网络拓扑数据库就明显变小。

        如下图:

                 图解TCP/IP-----路由协议_第6张图片

    也就是说,内部路由器只需要了解区域内部的链路状态信息并在该信息的基础上计算出路由控制表。这样不仅有效的减少路由控制信息,还能减轻处理的负担。

6 、BGP

        BGP(边界网关协议)是连接各种不同组织机构的一种协议。属于EGP(外部网关协议),用于ISP(因特网服务提供者)之间相连接的部分。只有BGP、RIP、OSPF共同进行路由控制,才能进行整个互联网的路由控制。

        6.1 BGP与AS号

        在RIP和OSPF中利用IP的网络地址部分进行路由控制,而BGP是放眼整个互联网进行路由控制,BGP的最终路由控制表由网络地址和下一站的路由器组来表示。会根据索要经过的AS个数进行路由控制。

          图解TCP/IP-----路由协议_第7张图片

        ISP、区域网络等会将每一个网路域编配成一个个自治系统进行管理,他们为每个自治系统分配一个16比特的AS编号,BGP根据这个编号进行相应的路由控制。有AS编号的域相当于有了一个独立的国家,AS的代表可以决定AS内部的网络运营和相关决策。与其他AS域相连的时候可以签署一定的条约再连接。

    6.2 BGP是路径向量协议

        根据BGP交换路由控制信息的路由器叫做BGP扬声器,BGP扬声器是在AS之间交换BGP信息,必须与AS建立对等的BGP连接。

        BGP中数据包送达目标网络时,会生成一个中途经过所有AS的编号列表,这个表格也叫AS路径信息访问列表。如果针对同一个目标地址出现多条路径,BGP会从AS路径信息访问列表中选择一个较短的路由。

        在路由选择时,RIP表示路由器个数,OSPF代表每个子网的成本,BGP则用AS进行度量标准。RIP和OSPF本着提高转发效率为目的,考虑到网络的跳数和网络的带宽,而BGP则基于AS之间的合约进行数据包的转发,BGP一般选择AS数最少的路径。

        在AS路径信息访问列表中不仅包含转发方向和距离,还涵盖所有AS的编号,因此它不是一个距离向量型协议,也不属于链路状态型协议,像BGP这种根据索要经过的路径信息访问列表进行路由控制的协议属于路径向量型协议。

        路由控制是跨越整个互联网的分布式系统,分布式系统是指多个系统协同共同完成一个特定任务的系统。

7、MPLS(多协议标记交换技术)

        现如今,在转发IP数据包的过程中除了使用路由技术外,还在使用标记交换的技术。路由技术基于IP地址中最长匹配原则进行转发,而标记交换则对每个IP包都设定一个叫做标记的值,然后根据这个标记进行转发。标记交换技术中最具代表性的当属多协议标记交换技术。

    7.1 MPLS 的网络基本动作

        MPLS网络中实现MPLS功能的路由器叫做标记交换路由器(LSR),特别是与外部网络连接的那部分LSR叫做标记边缘路由器,MPLS正是在LER(标记边缘路由器)上对数据包进行追加标记和删除标记的操作。在一个数据包上附加标记是一个极其简单的动作,如果本来就有一个相当于标记的信息,那么可以直接进行映射,如果没有携带任何相当于标记的信息(以太网),那么需要追加一个全新的垫片头,这个垫片头就包含标记信息。

        如下图,数据从以太网的IP网开始经过MPLS网再发给其他IP网的整个转发过程,数据包进入MPLS时,在其IP首部的前面被追加了32比特的垫片头(包含20比特的标记值)。MPLS网络内,根据垫片头的标记进行进一步的转发。当数据离开MPLS时垫片头被去掉,在此,我们称附加标记转发的动作为Push,替换标记转发的动作为Swap,去掉标记转发的动作为Pop。

        图解TCP/IP-----路由协议_第8张图片

            

        MPLS中目标地址和数据包都要通过标记决定同一个路径,这个路径叫做标记交换路径(LSP)。LSP又可以划分为一对一连接的点对点LSP,和一对多的合并LSP两类。

    7.2 MPLS 的优点 

        MPLS的优势可以归纳为两点:一是转发速度快。一般路由器转发IP数据包时要对目标地址和路由控制表中可变长的网络地址进行比较,然后选出最长匹配的路径才能进行转发。MPLS则不是,它使用固定长度的标记信息,使处理更加简单,可以通过高速的硬件实现转发。相对于主干路由器需要保存大量的转发表而言,MPLS只需要设置必要的几处信息,所处理的数据量大幅减少,除了IPv4、IPv6针对其他协议,MPLS仍然可以实现高速转发。

    第二个优势,在于利用标记生成虚拟的路径,并在他的上面实现IP等数据包的通信。基于这些特点,被称为尽力而为的IP网也可以提供基于MPLS的通信质量控制,带宽保证和VPN功能。

        

 

你可能感兴趣的:(【图解TCP/IP】)