admin管理员组

文章数量:1601520

计算机网络知识点汇总(考研用)——第四章:网络层

 本文参考于《2021年计算机网络考研复习指导》(王道考研),《计算机网络》

思维导图:

文章目录

  • 计算机网络知识点汇总(考研用)——第四章:网络层
    • 4.网络层
      • 4.1 网络层的功能
        •  4.1.1 异构网络互联
        •  4.1.2 路由与转发
        •  4.1.3 拥塞控制
      • 4.2 路由算法
        •  4.2.1 静态路由与动态路由
        •  4.2.2 距离-向量路由算法
        •  4.2.3 链路状态路由算法
        •  4.2.4 层次路由
      • 4.3 IPv4
        •  4.3.1 IPv4分组
          •   1.IPv4分组的格式
          •   2.IP数据报分片
          •   3.网络层转发分组的流程
        •  4.3.2 IPv4地址与NAT
          •   1.IPv4地址
          •   2.网络地址转换
        •  4.3.3 子网划分与子网掩码、CIDR
          •   1.子网划分
          •   2.子网掩码
          •   3.无分类域间路由选择CIDR
        •  4.3.4 ARP、DHCP与ICMP
          •   1.IP地址与硬件地址
          •   2.地址解析协议ARP
          •   3.动态主机配置协议DHCP
          •   4.网际控制报文协议ICMP
      • 4.4 IPv6
        •  4.4.1 IPv6的主要特点
        •  4.4.2 IPv6地址
      • 4.5 路由协议
        •  4.5.1 自治系统
        •  4.5.2 域内路由与域间路由
          •   1.内部网关协议(Interior Gateway Protocol,IGP)
          •   2.外部网关协议(External Gateway Protocol,EGP)
        •  4.5.3 路由信息协议(RIP)
          •   1.RIP规定
          •   2.RIP的特点
          •   3.距离向量算法
        •  4.5.4 开放最短路径优先(OSPF)协议
          •   1.OSPF协议的基本特点
          •   2.OSPF的基本工作原理
          •   3.OSPF的五种分组类型
        •  4.5.5 边界网关协议BGP
      • 4.6 IP组播
        •  4.6.1 组播的概念
        •  4.6.2 IP组播地址
        •  4.6.3 IGMP与组播路由算法
      • 4.7 移动IP
        •  4.7.1 移动IP的概念
        •  4.7.2 移动IP通信过程
      • 4.8 网络层设备
        •  4.8.1 路由器的组成和功能
        •  4.8.2 路由表与路由转发

4.网络层

4.1 网络层的功能

 4.1.1 异构网络互联

  所谓网络互联,是指将两个以上的计算机网络,通过一定的方法,用一种或多种通信处理设备(即中间设备)相互连接起来,以构成更大的网络系统。中间设备又称中间系统或中继系统。根据所在的层次,中继系统分为以下4种:
  (1)物理层中继系统:中继器、集线器Hub
  (2)数据链路层中继系统:网桥或交换机
  (3)网络层中继系统:路由器
  (4)网络层以上的中继系统:网关(原定义,现在对网关的定义已改变)

  使用物理层或数据链路层的中继系统时,只是把一个网络扩大了,而从网络层的角度看,它仍然是同一个网络,一般并不称之为网络互联。因此网络互联通常是指用路由器进行网络互联和路由选择。 路由器是一台专用计算机,用于在互联网中进行路由选择

  TCP/IP体系在网络互联上采用的做法是在网络层(即IP层)采用标准化协议,但相互连接的网络可以是异构的。

  上图显示了许多计算机网络通过一些路由器进行的互联。由于参加互联的计算机网络都使用相同的网际协议(Internet Protocol,IP),因此可以把互联后的计算机网络视为上右图所示的一个虚拟IP网络。
  虚拟互联网络也就是逻辑互联网络,即互联起来的各种物理网络的异构性本来是客观存在的,但是通过使用IP就可以使这些性能各异的网络在网络层上看起来好像是一个统一的网络。这种使用IP的虚拟互联网络可简称为IP网络。
  使用虚拟互联网络的好处是:当互联网上的主机进行通信时,就好像在一个网络上通信一样,而看不见互联的具体的网络异构细节(如具体的编址方案、路由选择协议等)

 4.1.2 路由与转发

  路由器主要完成两个功能:一是路由选择(确定哪一条路径),二是分组转发(当一个分组到达时所采取的动作)。 前者是根据特定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表。后者处理通过路由器的数据流,关键操作是转发表查询、转发及相关的队列管理和任务调度等。
  (1)路由选择
  指按照复杂的分布式算法,根据从各相邻路由器所得到的关于整个网络拓扑的变化情况,动态地改变所选择的路由
  (2)分组转发
  指路由器根据转发表将用户的IP数据报从合适的端口转发出去

  路由表是根据路由选择算法得出的,而转发表是从路由表得出的。 转发表的结构应当使查找过程最优化,路由表则需要对网络拓扑变化的计算最优化。 在讨论路由选择的原理时,往往不去区分转发表和路由表,而是笼统地使用路由表一词

 4.1.3 拥塞控制

  在通信子网中,因出现过量的分组而引起网络性能下降的现象称为拥塞。例如,某个路由器所在链路的带宽为R B/s,如果IP分组只从它的某个端口进入,那么其速率为rin B/s。当分组到达路由器的速率接近R时,平均时延急剧增加,并且会有大量的分组被丢弃(路由器端口的缓冲区是有限的),整个网络的吞吐量会骤降,源与目的地之间的平均时延也会变得近乎无穷大。

  判断网络是否进入拥塞状态的方法是,观察网络的吞吐量与网络负载的关系:如果随着网络负载的增加,网络的吞吐量明显小于正常的吞吐量,那么网络就可能已进入轻度拥塞状态;如果网络的吞吐量随着网络负载增加而下降,那么网络就可能已进入拥塞状态;如果网络的负载继续增大,而网络的吞吐量下降到0,那么网络就可能已进入死锁状态。
  拥塞控制的作用是确保子网能够承载所达到的流量,这是一个全局性的过程,涉及各方面的行为:主机、路由器及路由器内部的转发处理过程等。单一地增加资源并不能解决拥塞。
  流量控制和拥塞控制的区别:流量控制往往是指在发送端和接收端之间的点对点通信量的控制。流量控制所要做的是抑制发送端发送数据的速率,以便使接收端来得及接收。而拥塞控制必须确保通信子网能够传送待传送的数据,是一个全局性的问题,涉及网络中所有的主机、路由器及导致网络传输能力下降的所有因素
  拥塞控制的方法有两种:
  (1)开环控制
  在设计网络时事先将有关发生拥塞的因素考虑周到,力求网络在工作时不产生拥塞。这是一种静态的预防方法。一旦整个系统启动并运行,中途就不再需要修改。开环控制手段包括确定何时可接收新流量、何时可丢弃分组及丢弃哪些分组,确定何种调度决策等。所有这些手段的共性是,在做决定时不考虑当前网络的状态。
  (2)闭环控制
  事先不考虑有关发生拥塞的各种因素,采用监测网络系统去监视,及时检测哪里发生了拥塞,然后将拥塞信息传到合适的地方,以便调整网络系统的运行,并解决出现的问题。闭环控制是基于反馈环路的概念,是一种动态的方法


  例题:路由器连接的异构网络是指()
  A.网络的拓扑结构不同
  B.网络中计算机的OS不同
  C.数据链路层和物理层均不同
  D.数据链路层协议相同,物理层协议不同

  答案:C;

  例题:在路由器互联的多个局域网的结构中,要求每个局域网()
  A.物理层协议可以不同,而数据链路层及其以上的高层协议必须相同
  B.物理层、数据链路层协议可以不同,而数据链路层以上的高层协议必须相同
  C.物理层、数据链路层、网络层协议可以不同,而网络层以上的高层协议必须相同
  D.物理层、数据链路层、网络层及高层协议都可以不同

  答案:C;路由器是第三层设备,向传输层及以上层次隐藏下层的具体实现,所以物理层、数据链路层、网络层协议可以不同。而网络层之上的协议数据是路由器所不能处理的,因此网络层以上的高层协议必须相同。使用特定的路由器连接IPv4与IPv6网络,就是典型的网络层协议不同而实现互联的例子。


4.2 路由算法

 4.2.1 静态路由与动态路由

  从能否随网络的通信量或拓扑自适应地进行调整变化来划分,路由算法可分为如下两大类:
  静态路由算法 (又称非自适应路由算法):
  指由网络管理员手工配置的路由信息。 当网络的拓扑结构或链路的状态发生变化时,网络管理员需要手工去修改路由表中相关的静态路由信息。大型和复杂的网络环境通常不宜采用静态路由。
  动态路由算法 (又称自适应路由算法):
  指路由器上的路由表项是通过相互连接的路由器之间彼此交换信息,然后按照一定的算法优化出来的,而这些路由信息会在一定时间间隙里不断更新,以适应不断变化的网络,随时获得最优的寻路效果。
  静态路由算法的优点是简便、可靠,在负荷稳定、拓扑变化不大的网络中运行效果很好,因此仍广泛用于高度安全的军事系统和较小的商业网络。动态路由算法能改善网络的性能并有助于流量控制;但算法复杂,会增加网络的负担,有时因对动态变化的反应太快而引起振荡,或反应太慢而影响网络路由的一致性。 常用的动态路由算法可分为两类:距离-向量路由算法和链路状态路由算法

 4.2.2 距离-向量路由算法

  在距离-向量路由算法中,所有结点都定期地将它们的整个路由选择表传送给所有与之直接相邻的结点。 这种路由选择表包含:(1)每条路径的目的地(另一结点)(2)路径的代价(也称距离)


  这里的距离是一个抽象的概念,如RIP就将距离定义为跳数。跳数指从源端口到达目的端口所经过的路由个数,每经过一个路由器,跳数加1。


  在这种算法中,所有结点都必须参与距离向量交换,以保证路由的有效性和一致性,也就是说,所有的结点都监听从其他结点传来的路由选择更新信息,并在下列情况下更新它们的路由选择表:
  (1)被通告一条新的路由,该路由在本结点的路由表中不存在,此时本地系统加入这条新的路由
  (2)发来的路由信息中有一条到达某个目的地的路由,该路由与当前使用的路由相比,有较短的距离(较小的代价)。此种情况下,就用经过发送路由信息的结点的新路由替换路由表中到达那个目的地的现有路由。

  距离-向量路由算法的实质是,迭代计算一条路由中的站段数或延迟时间,从而得到到达一个目标的最短(最小代价)通路。 它要求每个结点在每次更新时都将它的全部路由表发送给所有相邻的结点。 显然,更新报文的大小与通信子网的结点个数成正比,大的通信子网将导致很大的更新报文。 由于更新报文发给直接邻接的结点,所以所有结点都将参加路由选择信息交换。基于这些原因,在通信子网上传送的路由选择信息的数量很容易变得非常大。
  最常见的距离-向量路由算法是RIP算法,它采用跳数作为距离的度量。

 4.2.3 链路状态路由算法

  链路状态路由算法要求每个参与该算法的结点都具有完全的网络拓扑信息,它们执行下述两项任务。第一,主动测试所有邻接结点的状态。 两个共享一条链接的结点是相邻结点,它们连接到同一条链路,或者连接到同一广播型物理网络。第二,定期地将链路状态传播给所有其他结点(或称路由结点)。 典型的链路状态算法是OSPF算法
  在一个链路状态路由选择中,一个结点检查所有直接链路的状态,并将所得的状态信息发送给网上的所有其他结点,而不是仅送给那些直接相连的结点。每个结点都用这种方式从网上所有其他的结点接收包含直接链路状态的路由选择信息。
  每当链路状态报文到达时,路由结点便使用这些状态信息去更新自己的网络拓扑和状态“视野图”,一旦链路状态发生变化,结点就对更新的网络图用Dijsktra最短路径算法重新计算路由,从单一的源出发计算到达所有目的结点的最短路径。
  链路状态路由算法主要有三个特征:
  (1)向本自治系统中所有路由器发送信息,这里使用的方法是泛洪法,即路由器通过所有端口向所有相邻的路由器发送信息。而每个相邻路由器又将此信息发往其所有相邻路由器(但不再发送给刚刚发来信息的那个路由器)
  (2)发送的信息是与路由器相邻的所有路由器的链路状态, 但这只是路由器所知道的部分信息。所谓“链路状态”,是指说明本路由器与哪些路由器相邻及该链路的“度量”。 对于OSPF算法,链路状态的“度量”主要用来表示费用、距离、时延、带宽等。
  (3)只有当链路状态发生变化时,路由器才向所有路由器发送此消息。

  由于一个路由器的链路状态只涉及相邻路由器的连通状态,而与整个互联网的规模并无直接关系,因此链路状态路由算法可以用于大型的或路由信息变化聚敛的互联网环境。

  链路状态路由算法的主要优点是,每个路由结点都使用同样的原始状态数据独立地计算路径,而不依赖中间结点的计算;链路状态报文不加改变地传播,因此采用该算法易于查找故障。当一个结点从所有其他结点接收到报文时,它可以在本地立即计算正确的通路,保证一步汇聚。最后,由于链路状态报文仅运载来自单个结点关于直接链路的信息,其大小与网络中的路由结点数目无关,因此链路状态算法比距离-向量算法有更好的规模可伸展性。
  距离-向量路由算法与链路状态路由算法的比较:在距离-向量路由算法中,每个结点仅与它的直接邻居交谈,它为它的邻居提供从自己到网络中所有其他结点的最低费用估计。在链路状态路由算法中,每个结点通过广播的方式与所有其他结点交谈,但它仅告诉它们与它直接相连的链路的费用。 相较之下,距离-向量路由算法有可能遇到路由环路等问题。

 4.2.4 层次路由

  当网络规模扩大时,路由器的路由表成比例地增大。这不仅会消耗越来越多的路由器缓冲区空间,而且需要用更多CPU时间来扫描路由表,用更多的带宽来交换路由状态信息。因此路由选择必须按照层次的方式进行。
  因特网将整个互联网划分为许多较小的自治系统(注意一个自治系统中包含很多局域网),每个自治系统有权自主地决定本系统内应采用何种路由选择协议。 如果两个自治系统需要通信,那么就需要一种在两个自治系统之间的协议来屏蔽这些差异。据此,因特网把路由选择协议划分为两大类:
  (1)一个自治系统内部所使用的路由选择协议称为内部网关协议IGP,也称域内路由选择,具体的协议有RIP和OSPF等。
  (2)自治系统之间所使用的路由选择协议称为外部网关协议EGP,也称域间路由选择,用在不同自治系统的路由器之间交换路由信息,并负责为分组在不同自治系统之间选择最优的路径。具体的协议有BGP

  使用层次路由时,OSPF将一个自治系统再划分为若干区域(Area),每个路由器都知道在本区域内如何把分组路由到目的地的细节,但不用知道其他区域的内部结构。

  采用分层次划分区域的方法会使交换信息的种类增多,使OSPF协议更加复杂。但这样做能使每个区域内部交换路由信息的通信量大大减小,因而使OSPF协议能够用于规模很大的自治系统中。


  例题:
  答案:B;R3将到该网络的距离设为16(16表示不可达)。当R2从R3收到路由信息时,记录R1可达(RIP的特点是坏消息传得慢,R1并未收到R3发来的路由信息),从路由器到直连网络的距离定义为1,因此R2更新后的距离为3

  例题:下列关于路由器直接交付的说法中,错误的是()
  1.路由选择分直接交付和间接交付
  2.直接交付时,两台机器可不在同一物理网段内
  3.间接交付时,不涉及直接交付
  4.直接交付时,不涉及路由器

  答案:2,3

  例题:下列关于分层路由的描述中,()是错误的
  A.采用分层路由后,路由器被划分成区域
  B.每个路由器不仅知道如何将分组路由到自己区域的目标地址,而且知道如何路由到其他区域
  C.采用分层路由后,可将不同的网络连接起来
  D.对于大型网络,可能需要多级的分层路由来管理

  答案:B;


4.3 IPv4

 4.3.1 IPv4分组

  IP定义数据传送的基本单元——IP分组及其确切的数据格式。IP也包括一套规则,指明分组如何处理、错误怎样控制。IP还包含非可靠投递的思想,以及与此关联的分组路由选择的思想。

  1.IPv4分组的格式

  一个IP分组由首部和数据两部分组成。首部前一部分的长度固定,共20B, 是所有IP分组必须具有的。在首部固定部分的后面是一些可选字段,其长度可变,用来提供错误检测及安全等机制。

  (1)版本
  指IP的版本,如版本号为4
  (2)首部长度
  占4位。以32位(4B)为单位,最大值为60B(15x4B)。 最常用的首部长度是20B,此时不使用任何选项(即可选字段)
  (3)总长度
  占16位。指首部和数据之和的长度,单位为字节,因此数据报的最大长度为2^16-1=65535B。 以太网帧的最大传送单元MTU为1500B,因此当一个IP数据报封装成帧时,数据报的总长度(首部加数据)一定不能超过下面数据链路层的MTU值。
  (4)标识
  占16位。它是一个计数器,每产生一个数据报就加1,并赋值给标识字段。但它并不是“序号”(因为IP是无连接服务)。当一个数据报的长度超过网络的MTU时,必须分片,此时每个数据报片都复制一次标识号,以便能正确重装成原来的数据报
  (5)标志
  占3位,标志字段的最低位为MF,MF=1表示后面还有分片,MF=0表示最后一个分片。标志字段中间的一位是DF,只有当DF=0时才允许分片。
  (6)片偏移
  占13位,它指出较长的分组在分片后,某片在原分组中的相对位置。片偏移以8个字节为偏移单位,即每个分片的长度一定是8B(64位)的整数倍。
  (7)首部校验和
  占16位。IP数据报的首部校验和只校验分组的首部,而不校验数据部分。
  (8)生存时间
  占8位。数据报在网络中可通过的路由器数的最大值,标识分组在网络中的寿命,以确保分组不会永远在网络中循环。路由器在转发分组前,先把TTL减1。若TTL被减为0,则该分组必须丢弃。
  (9)协议
  占8位。指出此分组携带的数据使用何种协议,即分组的数据部分应交给哪个传输层协议,如TCP、UDP等。其中值为6表示TCP,值为17表示UDP。
  (10)源地址字段
  占4B, 标识发送方的IP地址
  (11)目的地址字段
  占4B, 标识接收方的IP地址


  注意在IP数据报首部中三个关于长度的标记,一个是首部长度,一个是总长度,一个是片偏移,基本单位分别为4B、1B、8B。


  2.IP数据报分片

  一个链路层数据报能承载的最大数据量称为最大传送单元MTU。 因为IP数据报被封装在链路层数据报中,因此链路层的MTU严格地限制着IP数据报的长度,而且在IP数据报的源与目的地路径上的各段链路可能使用不同的链路层协议,有不同的MTU。 例如,以太网的MTU为1500B, 而许多广域网的MTU不超过576B。当IP数据报的总长度大于链路MTU时,就需要将IP数据报中的数据分装在两个或多个较小的IP数据报中,这些较小的数据报称为片。
  片在目的地的网络层被重新组装。 目的主机使用IP首部中的标识、标志和片偏移字段来完成对片的重组。 创建一个IP数据报时,源主机为该数据报加上一个标识号。当一个路由器需要将一个数据报分片时,形成的每个数据报(即片)都具有原始数据报的标识号。 当目的主机收到来自同一发送主机的一批数据报时,它可以通过检查数据报的标识号来确定哪些数据报属于同一个原始数据报的片。 IP首部中的标志位有3比特,但只有后2比特有意义,最低位是MF位(More Fragment),次低位是DF位(Don’t Fragment)。只有当DF=0时,该IP数据报才可以被分片。 MF则用来告知目的主机该IP数据报是否为原始数据报的最后一个片。当MF=1时,表示相应的原始数据报还有后续的片;当MF=0时,表示该数据报是相应原始数据报的最后一个片。 目的主机在对片进行重组时,使用片偏移字段来确定片应放在原始IP数据报的哪个位置。

  例如,一个长4000B的IP数据报(首部20B,数据部分3980B)到达一个路由器,需要转发到一条MTU为1500B的链路上。这意味着原始数据报中的3980B数据必须被分配到3个独立的片中(每片也是一个IP数据报)。假定原始数据报的标识号为777,那么分成的3片如图:

  由于偏移值的单位是8B,所以除最后一个片外,其他所有片中的有效数据载荷都是8的倍数


  IP有分片的功能,但广域网中的分组则不必分片。为什么?
  IP数据报可能要经过许多个网络,而源节点事先并不知道数据报后面要经过的这些网络所能通过的分组的最大长度是多少。等到IP数据报转发到某个网络时,中间结点可能才发现数据报太长了,因此在这时就必须分片
  但广域网能够通过的分组的最大长度是该广域网中所有结点都事先知道的,源结点不可能发送网络不支持的过长分组。因此广域网没有必要将已经发送出的分组再进行分片。


  3.网络层转发分组的流程

  网络层的路由器执行的分组转发算法如下:
  (1)从数据报的首部提取目的主机的IP地址D,得出目的网络地址N
  (2)若网络N与此路由器直接相连,则把数据报直接交付给目的主机D,这称为路由器的直接交付;否则是间接交付, 执行步骤3
  (3)若路由表中有目的地址为D的特定主机路由(对特定的目的主机指明一个特定的路由,通常是为了控制或测试网络,或出于安全考虑才采用的), 则把数据报传送给路由表中所指明的下一跳路由器;否则,执行步骤4
  (4)若路由表中有到达网络N的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行步骤5
  (5)若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行步骤6
  (6)报告转发分组出错


  得到下一跳路由器的IP地址后并不是直接将该地址填入待发送的数据报,而是将该IP地址转换成MAC地址(通过ARP),将其放到MAC帧首部中,然后根据这个MAC地址找到下一跳路由器。在不同网络中传送时,MAC帧中的源地址和目的地址要发生变化,但是网桥在转发帧时,不改变帧的源地址。


 4.3.2 IPv4地址与NAT
  1.IPv4地址

  连接到因特网上的每台主机(或路由器)都分配一个32比特的全球唯一标识符,即IP地址。 传统的IP地址是分类的地址,分为A、B、C、D、E五类
  无论哪类IP地址,都由网络号和主机号两部分组成。IP地址::={<网络号 >,<主机号 >}。 其中网络号标志主机(或路由器)所连接到的网络。一个网络号在整个因特网范围内必须是唯一的。主机号标志该主机(或路由器)。 一台主机号在它前面的网络号所指明的网络范围内必须是唯一的。 由此可见,一个IP地址在整个因特网范围内是唯一的。
  分类的IP地址如图:

  在各类IP地址中,有些IP地址具有特殊用途,不用做主机的IP地址:
  主机号为0表示本网络本身, 如202.98.174.0
  主机号全为1表示本网络的广播地址

本文标签: 第四章知识点计算机网络网络