免费智能真题库 > 历年试卷 > 网络规划设计师 > 2019年下半年 网络规划设计师 上午试卷 综合知识
  第13题      
  知识点:   OSPF协议   RIP协议   存储交换   路由器   网络层   队列   封装   链路
  关键词:   OS   队列   封装   链路   路由器   数据传输   网络层   协议   传输   路由   数据   网络        章/节:   数据通信基础知识   Internet 协议       

 
在下图所示的采用“存储-转发”方式分组的交换网络中,所有链路的数据传输速度为100Mbps,传输的分组大小为1500字节,分组首部大小为20字节,路由器之间的链路代价为路由器接囗输出队列中排队的分组个数。主机H1向主机H2发送一个大小为296000字节的文件,在不考虑网络层以上层的封装链路封装,分组拆装时间和传播延迟的情况下,若路由器均运行RIP协议,从H1发送到H2接收完为止,需要的时间至少是(13)ms;若路由器均运行OSPF协议,需要的时间至少是(14)ms。


 
 
  A.  24
 
  B.  24.6
 
  C.  24.72
 
  D.  25.08
 
 
 

 
  第14题    2019年下半年  
   79%
在下图所示的采用“存储-转发”方式分组的交换网络中,所有链路的数据传输速度为100Mbps,传输的分组大小为1500字节,分组首部大..
  第67题    2019年下半年  
   72%
网络管理员进行检查时发现某台交换机CPU占用率超过90%,通过分析判断,该交换机是由某些操作业务导致CPU占用率高,造成该现象的可..
  第9题    2010年上半年  
   51%
存储转发方式是实现网络互联的方式之一,其主要问题是在每个节点上产生不确定的延迟时间。克服这一问题的最有效方法是(9)。
 
  第32题    2021年下半年  
   69%
在下图所示的网络拓扑中,假设自治系统AS3和AS2内部运行OSPF, AS1和AS4内部运行RIP。各自治系统间用BGP作为路由协议,并假设AS2和..
  第14题    2011年下半年  
   41%
一个稳定的RIP网络中的一个路由器需要通告20条路由,这些路由需要通过一个UDP报文来传送。如果这个UDP报文每30分钟丢失一次,那么..
  第32题    2017年下半年  
   45%
RIPv2对RIPv1协议的改进之一是采用水平分割法。以下关于水平分割法的说法中错误的是( )。
   知识点讲解    
   · OSPF协议    · RIP协议    · 存储交换    · 路由器    · 网络层    · 队列    · 封装    · 链路
 
       OSPF协议
        为了响应不断增长的建立越来越大的基于IP的网络需要,IETF成立了一个工作组专门开发一种开放的、基于大型复杂IP网络的链路状态路由选择协议。由于它依据一些厂商专用的最短路径优先(SPF)路由选择协议开发而成,而且是开放性的,因此称为开放式最短路径优先(Open Shortest Path First,OSPF)协议,和其他SPF一样,它采用的也是Dijkstra算法。OSPF协议现在已成为最重要的路由选择协议之一,主要用于同一个自治系统。
        OSPF协议采用了“区域”的设计,提高了网络可扩展性,并且加快了网络会聚时间。也就是将网络划分成为许多较小的区域,每个区域定义一个独立的区域号并将此信息配置给网络中的每个路由器。从理论上说,通常不应该采用实际地域来划分区域,而是应该本着使不同区域间的通信量最小的原则进行合理分配。
        OSPF是一种典型的链路状态路由协议。采用OSPF的路由器彼此交换并保存整个网络的链路信息,从而掌握全网的拓扑结构,独立计算路由。因为RIP路由协议不能服务于大型网络,所以IETF的IGP工作组特别开发链路状态协议——OSPF。目前广为使用的是OSPF第二版,最新标准为RFC2328。
               OSPF路由协议概述
               OSPF作为一种内部网关协议,用于在同一个自治域(AS)中的路由器之间发布路由信息。区别于距离矢量协议(RIP),OSPF具有支持大型网络、路由收敛快、占用网络资源少等优点,在目前应用的路由协议中占有相当重要的地位。
                      基本概念和术语
                      下面介绍OSPF的基本概念和术语:
                      (1)链路状态。
                      OSPF路由器收集其所在网络区域上各路由器的连接状态信息,即链路状态信息(Link-State),生成链路状态数据库(Link-State Database)。路由器掌握了该区域上所有路由器的链路状态信息,也就等于了解了整个网络的拓扑状况。OSPF路由器利用“最短路径优先算法(Shortest Path First,SPF)”,独立地计算出到达任意目的地的路由。
                      (2)区域。
                      OSPF协议引入“分层路由”的概念,将网络分割成一个“主干”连接的一组相互独立的部分,这些相互独立的部分被称为“区域”(Area),“主干”的部分称为“主干区域”。每个区域就如同一个独立的网络,该区域的OSPF路由器只保存该区域的链路状态。每个路由器的链路状态数据库都可以保持合理的大小,路由计算的时间、报文数量都不会过大。
                      (3)OSPF网络类型。
                      根据路由器所连接的物理网络不同,OSPF将网络划分为4种类型:广播多路访问型(Broadcast MultiAccess)、非广播多路访问型(None Broadcast MultiAccess,NBMA)、点到点型(Point-to-Point)、点到多点型(Point-to-MultiPoint)。
                      广播多路访问型网络,如Ethernet、Token Ring、FDDI。NBMA型网络,如Frame Relay、X.25、SMDS。Point-to-Point型网络,如PPP、HDLC。
                      (4)指派路由器(DR)和备份指派路由器(BDR)。
                      在多路访问网络上可能存在多个路由器,为了避免路由器之间建立完全相邻关系而引起的大量开销,OSPF要求在区域中选举一个DR。每个路由器都与之建立完全相邻关系。DR负责收集所有的链路状态信息,并发布给其他路由器。选举DR的同时也选举一个BDR,在DR失效时,BDR担负起DR的职责。
                      当路由器开启一个端口的OSPF路由时,将会从这个端口发出一个Hello报文,以后它也将以一定的间隔周期性地发送Hello报文。OSPF路由器用Hello报文来初始化新的相邻关系以及确认相邻的路由器邻居之间的通信状态。
                      对广播型网络和非广播型多路访问网络,路由器使用Hello协议选举出一个DR。在广播型网络里,Hello报文使用多播地址224.0.0.5周期性广播,并通过这个过程自动发现路由器邻居。在NBMA网络中,DR负责向其他路由器逐一发送Hello报文。
                      操作
                      OSPF协议操作总共经历了建立邻接关系、选举DR/BDR、发现路由器等步骤。
                      (1)建立路由器的邻接关系。
                      所谓“邻接关系”(Adjacency)是指OSPF路由器以交换路由信息为目的,在所选择的相邻路由器之间建立的一种关系。路由器首先发送拥有自身ID信息(Loopback端口或最大的IP地址)的Hello报文。与之相邻的路由器如果收到这个Hello报文,就将这个报文内的ID信息加入到自己的Hello报文内。
                      如果路由器的某端口收到从其他路由器发送的含有自身ID信息的Hello报文,则它根据该端口所在网络类型确定是否可以建立邻接关系。
                      在点对点网络中,路由器将直接和对端路由器建立邻接关系,并且该路由器将直接进入到步骤(3)操作:发现其他路由器。若为MultiAccess网络,该路由器将进入选举步骤。
                      (2)选举DR/BDR。
                      不同类型的网络选举DR和BDR的方式不同。
                      MultiAccess网络支持多个路由器,在这种状况下,OSPF需要建立起作为链路状态和LSA更新的中心节点。选举利用Hello报文内的ID和优先权(Priority)字段值来确定。优先权字段值大小为0~255,优先权值最高的路由器成为DR。如果优先权值大小一样,则ID值最高的路由器选举为DR,优先权值次高的路由器选举为BDR。优先权值和ID值都可以直接设置。
                      (3)发现路由器。
                      在这个步骤中,路由器与路由器之间首先利用Hello报文的ID信息确认主从关系,然后主从路由器相互交换部分链路状态信息。每个路由器对信息进行分析比较,如果收到的信息有新的内容,路由器将要求对方发送完整的链路状态信息。这个状态完成后,路由器之间建立完全相邻(Full Adjacency)关系,同时邻接路由器拥有自己独立的、完整的链路状态数据库。
                      在MultiAccess网络内,DR与BDR互换信息,并同时与本子网内其他路由器交换链路状态信息。
                      在Point-to-Point或Point-to-MultiPoint网络中,相邻路由器之间互换链路状态信息。
                      (4)选择适当的路由器。
                      当一个路由器拥有完整独立的链路状态数据库后,它将采用SPF算法计算并创建路由表。OSPF路由器依据链路状态数据库的内容,独立地用SPF算法计算到每一个目的网络的路径,并将路径存入路由表中。
                      OSPF利用量度(Cost)计算目的路径,Cost最小者即为最短路径。在配置OSPF路由器时可根据实际情况,如链路带宽、时延或经济上的费用设置链路Cost大小。Cost越小,则该链路被选为路由的可能性越大。
                      (5)维护路由信息。
                      当链路状态发生变化时,OSPF通过Flooding过程通告网络上其他路由器。OSPF路由器接收到包含新信息的链路状态更新报文,将更新自己的链路状态数据库,然后用SPF算法重新计算路由表。在重新计算过程中,路由器继续使用旧路由表,直到SPF完成新的路由表计算。新的链路状态信息将发送给其他路由器。值得注意的是,即使链路状态没有发生改变,OSPF路由信息也会自动更新,默认时间为30分钟。
               OSPF路由协议的基本特征
               前文已经说明OSPF路由协议是一种链路状态的路由协议,为了更好地说明OSPF路由协议的基本特征,将OSPF路由协议与距离矢量路由协议之一的RIP比较如下:
               RIP中用于表示目的网络远近的唯一参数为跳(Hop),即到达目的网络所要经过的路由器个数。在RIP路由协议中,该参数被限制最大为15,即RIP路由信息最多能传递至第16个路由器;对于OSPF路由协议,路由表中表示目的网络的参数为Cost,该参数为一虚拟值,与网络中链路的带宽等相关,即OSPF路由信息不受物理跳数的限制,因此OSPF比较适合于大型网络中。
               RIPv1路由协议不支持变长子网屏蔽码(VLSM),被认为是RIP路由协议不适用于大型网络的又一个重要原因。采用变长子网屏蔽码可以在最大限度上节约IP地址。OSPF路由协议对VLSM有良好的支持性。
               RIP路由协议路由收敛较慢。RIP路由协议周期性地将整个路由表作为路由信息广播至网络中,该广播周期为30s。在一个较为大型的网络中,RIP会产生很大的广播信息,占用较多的网络带宽资源。由于R1P协议30s的广播周期,影响了RIP路由协议的收敛,甚至出现不收敛的现象。OSPF是一种链路状态的路由协议,当网络比较稳定时,网络中的路由信息是比较少的,并且其广播也不是周期性的,因此OSPF路由协议即使是在大型网络中也能够较快地收敛。
               在RIP中,网络是一个平面的概念,并无区域及边界等的定义。随着无级路由CIDR概念的出现,RIP协议就明显落伍了。在OSPF路由协议中,一个网络,或者说是一个路由域可以划分为很多个区域,每一个区域通过OSPF边界路由器相连,区域间可以通过路由汇聚来减少路由信息,减小路由表,提高路由器的运算速度。
               OSPF路由协议支持路由验证,只有互相通过路由验证的路由器之间才能交换路由信息。而且OSPF可以对不同的区域定义不同的验证方式,提高网络的安全性。
               建立OSPF邻接关系过程
               OSPF路由协议通过建立交互关系来交换路由信息,但并不是所有相邻的路由器都会建立OSPF交互关系。下面简要介绍OSPF建立adjacency的过程。
               OSPF协议是通过Hello协议数据包来建立及维护相邻关系的,同时也用其来保证相邻路由器之间的双向通信。OSPF路由器会周期性地发送Hello数据包,当这个路由器看到自身被列于其他路由器的Hello数据包里时,这两个路由器之间会建立起双向通信。在多接入的环境中,Hello数据包还用于发现指定路由器(DR),通过DR来控制与哪些路由器建立交互关系。
               两个OSPF路由器建立双向通信之后的第二个步骤是进行数据库的同步,数据库同步是所有链路状态路由协议的最大的共性。在OSPF路由协议中,数据库同步关系仅仅在建立交互关系的路由器之间保持。
               OSPF的数据库同步是通过OSPF数据库描述数据包(Database Description Packets)来进行的。OSPF路由器周期性地产生数据库描述数据包,该数据包是有序的,即附带有序列号,并将这些数据包对相邻路由器广播。相邻路由器可以根据数据库描述数据包的序列号与自身数据库的数据作比较,若发现接收到的数据比数据库内的数据序列号大,则相邻路由器会针对序列号较大的数据发出请求,并用请求得到的数据来更新其链路状态数据库。
               将OSPF相邻路由器从发送Hello数据包,建立数据库同步至建立完全的OSPF交互关系的过程分成几个不同的状态,如下所述。
               (1)Down:这是OSPF建立交互关系的初始化状态,表示在一定时间之内没有接收到从某一相邻路由器发送来的信息。在非广播性的网络环境内,OSPF路由器还可能对处于Down状态的路由器发送Hello数据包。
               (2)Attempt:该状态仅在NBMA环境,如帧中继、X.25或ATM环境中有效,表示在一定时间内没有接收到某一相邻路由器的信息,但是OSPF路由器仍必须通过以一个较低的频率向该相邻路由器发送Hello数据包来保持联系。
               (3)Init:在该状态时,OSPF路由器已经接收到相邻路由器发送来的Hello数据包,但自身的IP地址并没有出现在该Hello数据包内,也就是说,双方的双向通信还没有建立起来。
               (4)2-Way:这个状态可以说是建立交互方式真正的开始步骤。在这个状态,路由器看到自身已经处于相邻路由器的Hello数据包内,双向通信已经建立。指定路由器及备份指定路由器的选择正是在这个状态完成的。在这个状态,OSPF路由器还可以根据其中的一个路由器是否指定路由器或根据链路是否点对点或虚拟链路来决定是否建立交互关系。
               (5)Exstart:这个状态是建立交互状态的第一个步骤。在这个状态,路由器要决定用于数据交换的初始的数据库描述数据包的序列号,以保证路由器得到的永远是最新的链路状态信息。同时,在这个状态路由器还必须决定路由器之间的主备关系,处于主控地位的路由器会向处于备份地位的路由器请求链路状态信息。
               (6)Exchange:在这个状态,路由器向相邻的OSPF路由器发送数据库描述数据包来交换链路状态信息,每一个数据包都有一个数据包序列号。在这个状态,路由器还有可能向相邻路由器发送链路状态请求数据包来请求其相应数据。从这个状态开始,可以说OSPF处于Flood状态。
               (7)Loading:在Loading状态,OSPF路由器会就其发现的相邻路由器的新的链路状态数据及自身的已经过期的数据向相邻路由器提出请求,并等待相邻路由器的回答。
               (8)Full:这是两个OSPF路由器建立交互关系的最后一个状态,这时建立起交互关系的路由器之间已经完成了数据库同步的工作,它们的链路状态数据库已经一致。
               OSPF的DR及BDR
               在DR和BDR出现之前,每一台路由器和他的所有邻居成为完全网状的OSPF邻接关系,这样5台路由器之间将需要形成10个邻接关系,同时将产生25条LSA。而且在多址网络中,还存在自己发出的LSA从邻居的邻居发回来,导致网络上产生很多LSA的拷贝。所以基于这种考虑,产生了DR和BDR。
                      完成的工作内容
                      DR将完成如下工作:
                      (1)描述这个多址网络和该网络上剩下的其他相关路由器。
                      (2)管理这个多址网络上的flooding过程。
                      (3)同时为了冗余性,还会选取一个BDR,作为双备份之用。
                      选取规则
                      DR BDR选取规则:DR BDR选取是以接口状态机的方式触发的。
                      (1)路由器的每个多路访问(Multi-access)接口都有个路由器优先级(Router Priority),8位长的一个整数,范围是0~255,Cisco路由器默认的优先级是1,优先级为0的话将不能选举为DR/BDR。优先级可以通过命令ip ospf priority进行修改。
                      (2)Hello包里包含了优先级的字段,还包括了可能成为DR/BDR的相关接口的IP地址。
                      (3)当接口在多路访问网络上初次启动的时候,它把DR/BDR地址设置为0.0.0.0,同时设置等待计时器(Wait Timer)的值等于路由器无效间隔(Router Dead Interval)。
                      选取过程
                      DR BDR选取过程:
                      (1)路由器X在和邻居建立双向(2-Way)通信之后,检查邻居的Hello包中Priority,DR和BDR字段,列出所有可以参与DR/BDR选举的邻居。
                      (2)如果有一台或多台这样的路由器宣告自己为BDR(也就是说,在其Hello包中将自己列为BDR,而不是DR),选择其中拥有最高路由器优先级的成为BDR;如果相同,选择拥有最大路由器标识的。如果没有路由器宣告自己为BDR,选择列表中路由器拥有最高优先级的成为BDR(同样排除宣告自己为DR的路由器),如果相同,再根据路由器标识。
                      (3)按如下计算网络上的DR。如果有一台或多台路由器宣告自己为DR(也就是说,在其Hello包中将自己列为DR),选择其中拥有最高路由器优先级的成为DR;如果相同,选择拥有最大路由器标识的。如果没有路由器宣告自己为DR,将新选举出的BDR设定为DR。
                      (4)如果路由器X新近成为DR或BDR,或者不再成为DR或BDR,重复步骤(2)和(3),然后结束选举。这样做是为了确保路由器不会同时宣告自己为DR和BDR。
                      (5)要注意的是,当网络中已经选举了DR/BDR后,又出现了1台新的优先级更高的路由器,DR/BDR是不会重新选举的。
                      (6)DR/BDR选举完成后,DRother只和DR/BDR形成邻接关系。所有的路由器将组播Hello包到AllSPFRouters地址224.0.0.5以便它们能跟踪其他邻居的信息,即DR将泛洪update packet到224.0.0.5;DRother只组播update packet到AllDRouter地址224.0.0.6,只有DR/BDR监听这个地址。
                      筛选过程
                      简单地说,DR的筛选过程如下:
                      (1)优先级为0的不参与选举。
                      (2)优先级高的路由器为DR。
                      (3)优先级相同时,以router ID大为DR;router ID以回环接口中最大IP为准;若无回环接口,以真实接口最大IP为准。
                      (4)默认条件下,优先级为1。
               OSPF路由器类型
               OSPF路由器类型如下图所示。
               
               OSPF路由器类型
                      区域内路由器(Internal Routers)。
                      该类路由器的所有接口都属于同一个OSPF区域。
                      区域边界路由器ABR(Area Border Routers)。
                      该类路由器可以同时属于两个以上的区域,但其中一个必须是骨干区域。ABR用来连接骨干区域和非骨干区域,它与骨干区域之间既可以是物理连接,也可以是逻辑上的连接。
                      骨干路由器(Backbone Routers)。
                      该类路由器至少有一个接口属于骨干区域。因此,所有的ABR和位于Area0的内部路由器都是骨干路由器。
                      自治系统边界路由器(AS Boundary Routers,ASBR)。
                      与其他AS交换路由信息的路由器称为ASBR。ASBR并不一定位于AS的边界,它可能是区域内路由器,也可能是ABR。只要一台OSPF路由器引入了外部路由的信息,它就成为ASBR。
               OSPF LSA类型
               随着OSPF路由器种类概念的引入,OSPF路由协议又对其链路状态广播数据包(LSA)做出了分类。OSPF将链路状态广播数据包主要分成以下6类,如下表所示。
               
               LSA类型
               (1)1类LSA(路由器LSA):每台路由器都通告1类LSA,描述了与路由器直连的所有链路(接口)状态,只能在本区域内扩散。
               (2)2类LSA(网络LSA):只有DR才有资格产生,只能在本区域内扩散,描述了多路访问网络的所有路由器(Router ID)和链路的子网掩码。
               (3)3类LSA(汇总LSA):只有ABR可以产生,能在整个OSPF自治系统扩散,描述了目的网路的路由(还可能包含汇总路由)。
               (4)4类LSA(汇总LSA):仅当区域中有ASBR时,ABR才会产生,该LSA标识了ASBR,提供一条前往该ASBR的路由。
               (5)5类LSA(外部LSA):只能由ASBR产生,描述了前往OSPF自治系统外的网络的路由,被扩散到整个AS(除各种末节区域外)。
               (6)7类LSA(用于NSSA的LSA):只能由NSSA ASBR产生,只能出现在NSSA,而NSSA ABR将其转换为5类LSA并扩散到整个OSPF自治系统。
               OSPF区域类型
               根据区域所接收的LSA类型不同,可将区域划分为以下几种类型:
               (1)标准区域:默认的区域类型,它接收链路更新、汇总路由和外部路由,如下图所示。
               
               标准区域示例
               (2)骨干区域:骨干区域为Area 0,其他区域都与之相连以交换路由信息,该区域具有标准区域的所有特征。
               (3)末节区域:不接收4类汇总LSA和5类外部LSA,但接收3类汇总LSA,使用默认路由到AS外部网络(自动生成),该区域不包含ASBR(除非ABR也是ASBR)。
               (4)绝对末节区域:这个是Cisco专用。它不接收3类、4类汇总LSA和5类外部LSA,使用默认路由到AS外部网络(自动生成),该区域不包含ASBR(除非ABR也是ASBR)。
               (5)NSSA:不接收4类汇总LSA和5类外部LSA,但接收3类汇总LSA且可以有ASBR,使用默认路由前往外部网络,默认路由是由与之相连的ABR生成的,但默认情况下不会生成,要让ABR生成默认路由,可使用命令area area-id nssa default-information-originate。
               (6)绝对末节NSSA:这个是Cisco公司专用。它不接收3类、4类汇总LSA和5类外部LSA且可以有ASBR,使用默认路由到AS外部网络,默认路由是自动生成的。
               每一种区域中允许泛洪的LSA总结如下表所示。
               
               区域允许LSA总结
               注:*为ABR路由器使用一个类型3的LSA通告默认路由。
               虚链路
               在OSPF路由协议中存在一个骨干区域(Backbone),该区域包括属于这个区域的网络及相应的路由器,骨干区域必须是连续的,同时也要求其余区域必须与骨干区域直接相连。骨干区域一般为区域0,其主要工作是在其余区域间传递路由信息。所有的区域,包括骨干区域之间的网络结构情况是互不可见的,当一个区域的路由信息对外广播时,其路由信息是先传递至区域0(骨干区域),再由区域0将该路由信息向其余区域作广播。
               
               骨干区域不连续虚链路
               在实际网络中,可能会存在骨干区域不连续或某一个区域与骨干区域物理不相连的情况,在这两种情况下,系统管理员可以通过设置虚拟链路的方法来解决,如上图和下图所示。
               
               与骨干区域物理不相连虚链路
               虚拟链路设置在两个路由器之间,这两个路由器都有一个端口与同一个非骨干区域相连。虚拟链路被认为是属于骨干区域的,在OSPF路由协议看来,虚拟链路两端的两个路由器被一个点对点的链路连在一起。在OSPF路由协议中,通过虚拟链路的路由信息是作为域内路由来看待的。
               OSPF配置命令汇总
               OSPF常用配置命令如下表所示。
               
               OSPF配置命令汇总
               OSPF配置实例
               下面,以如下图所示的一个网络为例说明OSPF路由选择协议的配置方法,该网络中有0和1两个区域,其中R1的S1端口、R2的S0端口属于区域0;而R3、R1的S0端口、R2的S1端口则属于区域1。
               
               OSPF配置拓扑图
               下面列出三个路由器配置OSPF的指令:
               
               从上面的配置实例中可以知道,在配置OSPF时可以将子网进行合并,以减少条目,提高效率。例如,R3的邻接子网有192.168.1.0、192.168.2.0、192.168.3.0三个,因此可以合并为192.0.0.0/255.0.0.0;当然合并为192.168.0.0/255.255.0.0也是可行的。
 
       RIP协议
        路由信息协议(Routing information Protocol,RIP)采用距离矢量算法(常归于Bellman-Ford或Ford-Fulkerson算法)计算路由,是最早的路由选择协议之一。RIPv2还支持无类型域间选路(Classless Inter-Domain Routing,CIDR)和可变长子网掩码(Variable Length Subnet Mask,VLSM),只适用于小型的同构网络,是以跳数表示距离(每经过一个路由器则跳数加1),允许的最大跳数为15,因此任何超过15个中间站点的目的地均被表示为不可达。RIP是定期更新路由表的,每隔30s广播一次路由信息。下表给出了RIP路由器配置常用命令。
        
        RIP路由配置常用命令
        
               RIP配置实例
               下图给出了一个网络的实例,4个位于不同地理位置的子网通过远程电缆连接在一起,现在要求使用RIP协议完成整个路由选择的配置。
               
               RIP配置拓扑图
               
               其他三个路由器的配置与此类似,只是根据其邻接网络的不同,修改相应的network子句即可。例如,路由器R2邻接的网络则是192.168.2.0、192.168.10.0、192.168.13.0。
               RIP协议路由信息
               当完成了RIP路由选择协议的配置之后,可以使用show ip route命令来查看路由表的信息。根据前面的配置,当查看R1的路由表时,将看到以下信息:
               
               最前面的C或R代表路由项的类别,C是直连、R代表是RIP协议生成。第二部分则是目的网段,第三部分([120/1])表示RIP协议的管理距离为120,1则是路由的度量值,即跳数。可以看到路由器R1到192.168.4.0需要经过→R2→R4或→R3→R4两站,因此其度量值为2,即两跳。第四部分表示下一跳点的IP地址,第五部分(xx:xx:xx)说明了路由产生的时间,第六部分表示该条路由所使用的接口。
               管理距离是用来表示路由协议的优先级的,RIP的值为120,OSPF为110、IGRP为100、EIGRP为90、静态设置为1、直接连接为0;因此可以看出在路由项中,EIGRP是首选的,然后才是IGRP、OSPF、RIP。
               RIP路由更新的会聚问题
               RIP的一大缺点就是当网络发生变化或出现故障而引起拓扑结构的变化时,其会聚完成是需要一定时间的。下图给出的就是一个这样的例子。
               
               RIP路由更新的会聚问题示意图
               当一切正常时,各个路由器的路由表如下表所示。
               
               正常时的路由表信息
               如果这时路由器R3和网络192.168.40.0的连接发生了故障,路由更新就会影响各个路由表,但由于RIP是定时更新(每30s更新一次)。因此,随着时间的不同,会有不同的结果。
               下表中列出了在断开后的30s后及500s后的,R2路由表的信息。
               
               断开后的30s后及500s后的,R2路由表的信息
               在30s后,R2收到了来自R3的路由更新信息——即R3已无法连接到192.168.40.0网段,但这时R1的路由表还没有更新,因此R2则认为其可以访问该网段,因此复制该路由表项,并将跳数加1。随着不可达信息的漫延,最终在500s后,会使得跳数增长到16,这时才真正完成了会聚。
 
       存储交换
        在数据交换中,对一些实时性要求不高的信息,如图书管理系统中备份数据库信息,允许信息等待一些时间再转发出去,在等待的时间里能进行一些必要的数据处理工作,此时,采用存储转发式的存储交换方式比较合适。存储交换原理是输入信息在交换装置控制下先存入缓冲存储器暂存,并对存储的数据进行一些必要的处理,等待输出线路空闲时,再将数据转发输出。转换交换装置起到了交换开关的作用,可控制输入信息存入缓冲区等待输出口的空闲,接通输出并传送信息。存储交换分为报文交换和报文分组交换两种。
               报文交换
               目前数字数据通信广泛使用报文交换。在报文交换网中,网络节点通常为一台专用计算机,配备足够的外存,以便在报文进入时,进行缓冲存储。节点接收一个报文之后,报文暂存放在节点的存储设备之中,等输出线路空闲时,再根据报文中所附的目的地址转发到下一个合适的节点,如此往复,直到报文到达目标数据终端。所以报文交换也称为存储转发(Store and Forward)。
               在报文交换中,每一个报文由传输的数据和报头组成,报头中有源地址和目标地址。节点根据报头中的目标地址为报文进行路径选择,并且对收发的报文进行相应的处理,如差错检查和纠错、调节输入输出速度进行数据速率转换、进行流量控制,甚至可以进行编码方式的转换等,所以报文交换是在两个节点间的一段链路上逐段传输,不需要在两个主机间建立多个节点组成的电路通道。
               与电路交换相比,报文交换方式不要求交换网为通信双方预先建立一条专用的数据通路,因此就不存在建立电路和拆除电路的过程。报文交换中每个节点都对报文进行“存储转发”,报文数据在交换网中是按接力方式发送的。通信双方事先并不知道报文所要经过的传输路径,并且各个节点不被特定报文所独占。
               报文交换具有下列特征:
               (1)在通信时不需要建立一条专用的通路,不会像电路占用专有线路而造成线路浪费,线路利用率高,同时也就没有建立和拆除线路所需要的等待和时延。
               (2)每一个节点在存储转发中都有校验、纠错功能,数据传输的可靠性高。
               报文交换的主要缺点是,由于采用了对完整报文的存储/转发,要求各站点和网中节点有较大的存储空间,以备存整个报文,发送只有当链路空闲时才能进行,故时延较大,不适用于交互式通信(如电话通信);由于每个节点都要把报文完整地接收、存储、检错、纠错、转发,产生了节点延迟,并且报文交换对报文长度没有限制,报文可以很长,这样就有可能使报文长时间占用某两节点之间的链路,不利于实时交互通信。分组交换即所谓的包交换正是针对报文交换的缺点而提出的一种改进方式。
               报文分组交换
               该方式是把长的报文分成若干较短的、标准的“报文分组”(Packet),以报文分组为单位进行发送、暂存和转发。每个报文分组,除要传送的数据地址信息外,还有数据分组编号。报文在发送端被分组后,各组报文可按不同的传输路径进行传输,经过节点时,同样要存储、转发,最后在接收端将各报文分组按编号顺序再重新组成报文。
               与报文交换方式相比,报文分组交换的优点有以下几点:
               (1)报文分组较短,在各节点之间的传送比较灵活。
               (2)各分组路径自行选择,每个节点在收到一个报文后,即可向下一个节点转发,不必等其他分组到齐,因此大大减少了对各节点存储容量的要求,同时也缩短了网路延时。
               (3)报文分组传输中由于报文短,故传输中差错较少且一旦出错容易纠正。
               当然报文分组也带来一定的复杂性,即发送端要求能将报文分组,而接受端则要求能将报文分组组合成报文,这增加了报文加工处理的时间。
               报文分组的主要特点如下:
               (1)报文分组除数据信息外,还必须包括目的地址、分组编号、校验码等控制信息,并按规定的格式排列。每个分组大小限制在1 000位。
               (2)报文分组采用存储交换方式,一般由存储交换机进行高速传输、分组容量小,通过交换时间短,因此可传输实时性信息。
               (3)每个报文分组不要求都走相同的路线,各分组可自行选择最佳路径,自己进行差错校验。报文分组到达目的节点时,先去掉附加的冗余控制信号,再按编号组装成原来的报文,传送给目的用户。上述功能在节点机和通信软件配合下完成。
               存储转发方式实际上是报文在各节点可以暂存于缓冲区内,缓冲区大,暂存的信息就多,当节点输入线传来的报文量超过输出线传输容量时,报文就要在缓冲器中暂存、等待,一旦输出线空时,暂存的报文就再传送。可见,报文通过节点时会产生延时,报文在一个节点的延迟时间为接受一个报文分组的时间与排队等待发送到下一个节点时间之和。采用限定报文长度的方法可以控制报文通过节点的延时,但网络上被访问节点的总延时必须考虑。
               应用排队理论分析,一般认为网络中被访问节点上总延时等于报文分组平均长度与线路速度之比。因此采用可变长度的报文,即使有个别的长报文也会严重的影响平均延时。因为报文是顺序处理,一个长报文产生额外的延时势必会影响其后各报文的处理,所以,必须规定报文分组的最大长度。超过规定最大长度的报文需拆成报文组后再发送。
               报文分组交换虽然可以控制延时,但由于报文分组各自选择,相应的也存在一些缺点:
               (1)增加了信息传输量。报文分组方式要在每个分组内增加传输的目的地址和附加传输控制信息,因此总的信息量增加约5%~10%。
               (2)由于报文分组交换允许各报文分组自己选择传输路径,使报文分组到达目的点时的顺序没有规则,可能出现丢失、重复报文分组的情况。因此目的端需要将报文分组编号进行排序等工作。这需要通过端对端协议解决,因此数据报文分组交换方式适用于传输距离短、结点不多、报文分组较少的情况。
               数据报
               对于短报文来说,一个报文分组就足够容纳所传送的数据信息。一般单个报文分组称数据报(Datagram)。数据报的服务以传送单个报文分组为主要目标。原CCITT研究组把数据报定义为,能包含在单个报文分组数据域中的报文,且传送它到目标地址与其他已发送或将要发送的报文分组无关,这样报文分组号可以省略。也就是说,每个分组的传送是被单独处理的,它本身携带有足够的信息。
               数据报的一般格式如下表所示:
               
               数据报格式
               发送数据报与发送信件和邮包一样。在数据报服务控制下,网络接受来自源的单一报文分组,并独立地传到目的点。数据报服务是无连接的服务。
               虚电路
               为了弥补报文分组交换方式的不足,减轻目的节点对报文分组进行重组的负担,引进虚电路(Virtual Circuit)服务。为了进行数据传输,在发送者和接收者之间首先要建立一条逻辑电路,以后的数据就按照相同的路径进行传送,直到通信完毕后该通路被拆除。在一条物理通路上可以建立多条逻辑通路,一对用户之间通信,占用其中一条逻辑通路。虚电路可以包括各段不相同的实际电路,经过若干中间节点的交换机或通信处理机制连接起来的逻辑通路构成。它是一条物理链路,在逻辑上复用为多条逻辑信道。虚电路一经建立就要赋予虚电路号,反映信息的传输通道。这样报文分组中就不必再注明全部地址,相应的缩短了信息量,每个报文分组的虚电路可以各不相同。有两种建立虚电路的方法:
               (1)交换虚电路。交换虚电路的建立像打电话一样,按主叫用户的要求临时在两个(主、被叫)客户之间建立虚电路。使用这种方式通信的客户,一次完整的通信过程分为3个阶段:呼叫建立、数据传送和拆线阶段。它适用于数据传送量小、随机性强的场合。
               (2)永久虚电路。这种方式如同租用专线一样,在两个客户之间建立固定的通路。它的建立由网络管理中心预先根据客户需求而设定,因此在客户使用中,只有数据传送阶段,而无呼叫建立和拆线阶段。
               下表列出了虚电路和数据报之间的不同。
               
               虚电路和数据报服务比较
 
       路由器
        路由器是计算机网络中重要的一个环节,分为模块化和非模块化两种类型。模块化结构的路由器的扩展性好,支持多种端口类型(如以太网接口、快速以太网接口、高速串行口等),并且各种端口的数量一般是可选的,但价格通常比较昂贵。固定配置的路由器扩展性差,只能用于固定类型和数量的端口,但价格低廉。
        在选择路由器产品时,应多从技术角度来考虑,如可延展性、路由协议互操作性、广域数据服务支持、内部ATM支持、SAN集成能力等。另外,选择路由器还应遵循标准化原则、技术简单性原则、环境适应性原则、可管理性原则和容错冗余性原则等。特别是对于高端路由器,还应该更多地考虑是否和如何适应骨干网对网络高可靠性、接口高扩展性以及路由查找和数据转发的高性能要求。高可靠性、高扩展性和高性能的“三高”特性是高端路由器区别于中、低端路由器的关键所在。从技术性能上考察路由器产品,一般要考察路由器的容量、每秒钟能处理多少数据包、能否被集群等性能问题,还要注意路由器是否能够提供增值服务和其他各种服务。另外,在安装、调试、检修、维护或扩展网络的过程中,免不了要给网络中增减设备,也就是说可能会要插拔网络部件。那么路由器能否支持带电插拔,也是路由器产品应该考察的一个重要性能指标。
        总的来说,路由器的主要性能指标有设备吞吐量、端口吞吐量、全双工线速转发能力、背靠背帧数、路由表能力、背板能力、丢包率、时延、时延抖动、虚拟专用网支持能力、内部时钟精度、队列管理机制、端口硬件队列数、分类业务带宽保证、资源预留、区分服务、CIR、冗余、热插拔组件、路由器冗余协议、基于Web的管理、网管类型、带外网管支持、网管粒度、计费能力、分组语音支持方式、协议支持、语音压缩能力、端口密度、信令支持等。
 
       网络层
        网络层将数据分成一定长度的分组,负责路由(通信子网到目标路径)的选择。以数据链路层提供的无差错传输为基础,为实现源和目标设备之间的通信而建立、维持和终止网络连接,并通过网络连接交换网络服务数据单元。它主要解决数据传输单元分组在通信子网中的路由选择、拥塞控制以及多个网络互联的问题,通常提供数据报服务和虚电路服务。网络层建立网络连接为传输层提供服务。在具有开放特性的网络中,数据终端设备都要配置网络层的功能,主要有网关和路由器。
 
       队列
               队列的定义
               队列(queue)是一种只允许在一端进行插入,而在另一端进行删除的线性表,是一种操作受限的线性表。在表中只允许进行插入的一端称为队尾(rear),只允许进行删除的一端称为队头(front)。队列的插入操作通常称为入队列或进队列,而队列的删除操作则称为出队列或退队列。当队列中无数据元素时,称为空队列。
               由队列的定义可知,队头元素总是最先进队列的,也总是最先出队列;队尾元素总是最后进队列,因而也是最后出队列。这种表是按照先进先出(First In First Out, FIFO)的原则组织数据的,因此,队列也被称为"先进先出"表。
               下图是一个队列的进出示意图,通常用指针front指示队头的位置,用指针rear指向队尾的位置。
               
               队列的进出示意图
               队列的基本操作
               队列的基本操作主要有以下6种。
               .InitQueue(&Q):初始化操作,构造一个队列Q。
               .QueueEmpty(Q):若栈Q为空队列,返回1,否则返回0。
               .EQueue(&Q, e):插入元素e到队列Q的尾部。
               .OQueue(&Q,&e):删除Q的队首元素,并用e返回其值。
               .GetQhead(Q,&e):用e返回Q的队首元素。
               .ClearQueue(&Q):将Q清空为空队。
               队列的顺序存储结构
               顺序存储结构采用一维数组(向量)实现,设队列头指针front和队列尾指针rear,并且假设front指向队头元素的前一位置,rear指向队尾元素。若不考虑队满,则入队操作语句为Q[rear++]=x;若不考虑队空,则出队操作语句为x=Q[++front]。当然,出队时,并不一定需要队头元素(与退栈类似)。
               按上述的做法,有可能出现假溢出,即队尾已到达一维数组的高端,不能再入队,但因为连续出队,队列中元素个数并未达到最大值。解决这种问题,可用循环队列。在循环队列中,需要区分队空和队满:仍用front=rear表示队列空,在牺牲一个单元的前提下,用front==(rear+1)% MAX表示队列满。在这种约定下,入队操作的语句为:rear=(rear+1)%MAX, MAX, Q[rear]=x;出队操作语句为:front=(front+1)% MAX。
               顺序队列的类型定义如下:
               
               顺序队列定义为一个结构类型,该类型变量有3个数据域:data、front、rear。其中data为存储队中元素的一维数组。队头指针front和队尾指针rear定义为整型变量,取值范围是0~QueueSize-1。约定队尾指针指示队尾元素在一维数组中的当前位置,队头指针指示队头元素在一维数组中的当前位置的前一个位置,这种顺序队列说明如下。
               .初始化时,设置SQ.front=SQ.rear=0。
               .队头指针的引用为SQ.front,队尾指针的引用为SQ.rear。
               .队空的条件为SQ.front==SQ.rear;队满的条件为SQ.front=(SQ.rear+1)% QueueSize。
               .入队操作:在队列未满时,队尾指针先加1(要取模),再送值到队尾指针指向的空闲元素。出队操作:在队列非空时,队头指针先加1(要取模),再从队头指针指向的队头元素处取值。
               .队列长度为(SQ.rear+QueueSize-SQ.front)% QueueSize。
               特别应注意的是:在循环队列的操作中队头指针、队尾指针加1时,都要取模,以保持其值不出界。
               在循环队列上队列的实现基本操作的函数如下。
               1)初始化initqueue(SQueue *SQ)
               
               2)判空QueueEmpty(SQueue SQ)
               
               3)入队EQueue(SQueue *SQ, ElemType e)
               
               4)出队OQueue(SQueue *SQ, ElemType *e)
               
               5)取队首元素GetQhead(SQueue *SQ, ElemType *e)
               
               6)清队列ClearQueue(SQueue *SQ)
               
               队列的链式存储结构
               队列的链接实现称为链队,链队实际上是一个同时带有头指针和尾指针的单链表。头指针指向队头节点,尾指针指向队尾节点即单链表的最后一个节点。为了简便,链队设计成一个带头节点的单链表。
               链队的类型定义如下:
               
               链队列的说明如下。
               .队列以链表形式出现,链首节点为队头,链尾节点为队尾。
               .队头指针为LQ→front,队尾指针为LQ→rear,队头元素的引用为Q→front→data,队尾元素的引用为LQ→rear→data。
               .初始化时,设置LQ→front=LQ→rear=NULL。
               .进队操作与链表中链尾插入操作一样;出队操作与链表中链首删除操作一样。
               .队空的条件为LQ→front==NULL。理论上,只要系统内存足够大,链队是不会满的。
               在链队上实现队列基本操作的函数如下。
               1)队列初始化InitQueue(LQueue *LQ)
               
               2)入队EQueue(LQueue *LQ, ElemType e)
               
               3)出队OQueue(LQueue *LQ, ElemType *e)
               
               4)判空QueueEmpty(LQueue *LQ)
               
               5)取队首元素GetQhead(LQueue *LQ, ElemType *e)
               
               6)清队列ClearQueue(LQueue *LQ)
               
               循环队列中的边界条件判别准则
               判别循环队列的"空"或"满"不能以头尾指针是否相等来确定,一般是通过以下几种方法:一是另设一个布尔变量来区别队列的空和满;二是少用一个元素的空间,每次入队前测试入队后头尾指针是否会重合,如果会重合就认为队列已满;三是设置一个计数器记录队列中元素总数,不仅可判别空或满,还可以得到队列中元素的个数。
               双端队列的作用
               双端队列是限定插入和删除操作在线性表的两端进行,可将其看成是栈底连在一起的两个栈,但其与两个栈共享存储空间是不同的。共享存储空间中的两个栈的栈顶指针是向两端扩展的,因而每个栈只需一个指针;而双端队列允许两端进行插入和删除元素,因而每个端点必须设立两个指针,如下图所示。
               
               双端队列的示意图
               在实际应用中,可对双端队列的输出进行限制(即一个端点允许插入和删除,另一个端点只允许插入),也可对双端队列的输入进行限制(即一个端点允许插入和删除,另一个端点只允许删除)。可见,采用双端队列可增加应用中的灵活性。
 
       封装
        面向对象系统中的封装单位是对象,对象之间只能通过接口进行信息交流,外部不能对对象中的数据随意地进行访问,这就造成了对象内部数据结构的不可访问性,也使得数据被隐藏在对象中。封装的优点体现在以下三个方面。
        (1)好的封装能减少耦合。
        (2)类内部的实现可以自由改变。
        (3)一个类有更清楚的接口。
 
       链路
        链路(link)指的是从发信点到收信点(即从信源到信宿)的一串结点和线路。链路通信是指端到端的通信。
        计算机网络从逻辑结构上可以分成两部分:负责数据处理、向网络用户提供各种网络资源及网络服务的外层用户资源子网和负责数据转发的内层通信子网。通信子网由分组交换结点(简记为R)及连接这些结点的链路组成,负责在主机(Host,H)间传输分组。资源子网由连在网上的主机构成,为网上用户提供共享资源,入网途径和方法。局域网中的每台主机都通过网卡连接到传输介质上,网卡负责在各个主机间传递数据,显然,网卡和传输介质构成了局域网的通信子网,而主机集合则构成了资源子网。用户子网指的是由主计算机、终端、通信控制设备、连网外设、各种软件资源等组成。通信子网分为点对点通信子网和广播式通信子网。它主要有三种组织形式:结合型、专用型和公用型,如下图所示。
        
        网络的组织形式
        计算机网络也可以看作是在物理上分布的相互协作的计算机系统。其硬件部分除了单体计算机、光纤、同轴电缆以及双绞线等传输媒体之外,还包括插入计算机中用于收发数据分组的各种通信网卡(在操作系统中,这些网卡不当成一种外部设备),把多台计算机连接到一起的集线器(hub,该设备近年正逐步被相应的交换机取代),扩展带宽和连接多台计算机用的交换机(switch)以及负责路径管理、控制网络交通情况的路由器或ATM交换机等。其中路由器或ATM交换机是构成广域网络的主要设备,而交换机和集线则是构成局域网络的主要设备。这些设备都可看作一种专用的计算机。
        综上所述,计算机网络是一个由不同传输媒体构成的通信子网,与这个通信子网连接的多台地理上分散的具有唯一地址的计算机,将数据划分为不同长度分组进行传输和处理的协议软件以及应用系统所组成的传输和共享信息的系统。
   题号导航      2019年下半年 网络规划设计师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第13题    在手机中做本题