计算机网络知识点(网络层)

2023-11-03

文章目录

重要内容

虚拟互联网的概念。

IP地址与物理地址的关系。

传统的分类的IP地址(包括子网掩码)和无分类域间路由选择CIDR。

路由选择协议的工作原理。

4.1 网络层提供的两种服务

网络层提供的两种服务:

  • 面向连接:虚电路服务(打电话使用面向连接的通信方式)。
  • 无连接:数据报服务。

在这里插入图片描述
在互联网中,网络层向上只提供简单灵活的,无连接的,尽最大努力交付的数据报服务,即网络层不提供服务质量的承诺。

4.2 网际协议IP

网际协议IP是TCP/IP体系中两个最主要的协议之一,与IP协议配套使用的还有四个协议:

  • 地址解析协议ARP(Address Resolution Protocol)
  • 逆地址解析协议RARP(Reverse Address Resolution Protocol)
  • 网际控制报文协议ICMP(Internet Control Message Protocol)
  • 网际组管理协议IGMP(Internet Group Management Protocol)

ARP画在最下面,因为IP经常要使用这个协议,ICMP和IGMP画在这一层的上部,因为它们要使用IP协议。
在这里插入图片描述

4.2.1 虚拟互联网络

虚拟互联网络即逻辑互联网络,忽略物理层的客观异构性,在网络层看起来好像是一个统一的网络,即互联网可以有多种异构的网络组成。

网络互联的一些中间设备:

  • 物理层:集线器(转发器)
  • 数据链路层:网桥
  • 网络层:路由器
  • 网络层以上:网关

4.2.2 分类的IP地址

IP地址:用来唯一标识全球连接在互联网上的主机的接口的标识符。IP地址的划分方式历史:分类的IP地址,子网的划分,构成超网。
在这里插入图片描述
IP地址前几位为类位别,标明该IP地址属于哪类,IP地址采用点分十进制表示法,把IP地址的每八位用十进制表示,便于记忆书写。

A类地址中网络号全为0的IP地址表示本网络,A类地址中网络号为01111111的IP地址用作本地软件环回测试本主机的进程之间的通道。

实际IP地址是主机与网络链路之间的一条链路的标识(一个主机连接在两个不同的网络上时,该主机对应的就有两个IP地址)。一个网络是指具有相同网络号的主机的集合,因此用网桥或转发器连接起来的若干局域网属于同一个网络。

路由器仅根据目的主机IP地址中的网络号来转发分组,互联网上的网络号都是平等的,与其范围大小没有关系。

无名网络:两个路由器直接相连时并不分配IP地址,这两个路由器之间的网络称为无名网络,或无编号网络。

4.2.3 IP地址与硬件地址

硬件地址是物理层和数据链路层使用的地址,IP地址是IP数据报在网络层及以上各层使用的一种逻辑地址。MAC帧中的源地址和目的地址都是硬件地址,整个IP数据报在物理层被封装在数据部分,IP地址对数据链路层不可见。

数据报在路由器之间传送时,途径的路由器地址不出现在IP数据报中,当前路由器根据目的IP地址自主路由出下一路由器地址。分组每次经过路由器转发时都要将MAC的首部和尾部丢弃重新封装,即变换MAC帧中的目的地址和源地址。
在这里插入图片描述
在IP层抽象的互联网上只能看到IP数据报,图中的IP1->IP2表示从源地址IP1到目的地址IP2,两个路由器的IP地址并不出现在IP数据报的首部中。路由器仅根据目的主机IP地址中的网络号来转发分组,在具体的物理网络的链路层只能看见MAC帧而看不见IP数据报。IP层抽象的互联网屏蔽了下层很复杂的细节,在抽象的网络层上讨论问题,就能够使用统一的、抽象的IP地址研究主机和主机或主机和路由器之间的通信。

4.2.4 地址解析协议ARP

ARP协议:根据已知的IP地址解析出该主机的硬件地址。RARP协议:根据硬件地址解析出该主机对应的IP地址。

主机ARP高速缓存:用来存放从IP地址映射硬件地址的映射表,并且动态更新(方法:新增或超时删除)这个映射表。

新增的方法:通过向本局域网内所有的主机发送ARP请求分组,在得到响应分组后便将这个目的主机的硬件地址写入ARP高速缓存中。同时,ARP高速缓存中对每个硬件地址都设置了生存时间,超过生存时间的硬件地址便进行删除操作,便于进行动态更新,防止出现发送到错误(过时的)硬件地址处。

ARP工作流程:

  • 当A要向本局域网的B发送IP数据报,就现在其ARP高速缓存中查看有无B的IP地址。若有,则发到IP对于的硬件地址。

  • 若无,则A自动运行ARP,按以下步骤找到B的硬件地址:
    1、ARP进程在本局域网上广播一个ARP请求分组,内容是:我的IP是xx,硬件地址是xx,我想知道IP地址xx的主机的硬件地址是多少。

    2、本局域网所有主机运行的ARP进程收到此ARP请求分组。

    3、主机B的IP与请求分组里面的IP一致,收下并向A发送ARP响应分组(单播),其他主机则不理睬,并且B将A的IP地址到硬件地址的映射写入自己的ARP高速缓存。

    4、主机A收到B的ARP响应分组后,就在其ARP高速缓存写入B的IP到硬件地址的映射。

注意:

  • ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。如果所要找的主机和源主机不在同一个局域网上,那么就要通过ARP找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络,剩下的工作就由下一个网络来做。
  • 从IP地址到硬件地址的解析是自动进行的,主机的用户对这种地址解析过程是不知道的。只要主机或路由器要和本网络上的另一个已知IP地址的主机或路由器进行通信,ARP协议就会自动地将该IP地址解析为链路层所需要的硬件地址。

使用ARP的四种典型情况:

  • 发送方是主机,要把IP数据报发送到本网络上的另一个主机。这时用ARP找到目的主机的硬件地址。
  • 发送方是主机,要把IP数据报发送到另一个网络上的一个主机。这时用ARP找到本网络上的一个路由器的硬件地址,剩下的工作由这个路由器来完成。
  • 发送方是路由器,要把IP数据报转发到本网络上的一个主机。这时用ARP找到目的主机的硬件地址。
  • 发送方是路由器,要把IP数据报转发到另一个网络上的一个主机。这时用ARP找到本网络上的一个路由器的硬件地址,剩下的工作由这个路由器来完成。

从硬件地址到IP地址的解析每次转发分组时都要重复进行,但这种开销是不可避免的,是为了方便的在各种异构网络之间进行转发工作而屏蔽网络硬件之间的异构性,从而体现出虚拟网络的含义。

4.2.5 IP数据报的格式

IP数据报的格式:一个IP数据报由首部和数据两部分组成,首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。
在这里插入图片描述
各字段的意义:

  • 版本:占4位,指IP协议的版本,目前的IP协议版本号为4(即IPv4)。
  • 首部长度:占4位,可表示的最大数值是15个单位(一个单位为4字节),因此IP的首部长度的最大值是60字节。
  • 区分服务:占8位,用来获得更好的服务。在旧标准中叫做服务类型,但实际上一直未被使用过,1998年这个字段改名为区分服务,只有在使用区分服务(DiffServ)时,这个字段才起作用,在一般的情况下都不使用这个字段。
  • 总长度:占16位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为65535字节。总长度必须不超过最大传送单元MTU。
  • 标识:占16位,该标识不是序号,因为IP是无连接服务,数据报不存在按序接收的问题。当数据报超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报片的标识字段中,相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。
  • 标志:占3位,目前只有前两位有意义,标志字段的最低位是MF(More Fragment),MF=1表示后面还有分片,MF=0表示最后一个分片。标志字段中间的一位是DF(Don’t Fragment),只有当DF=0时才允许分片。
  • 片偏移:占12位,指出较长分组在分片后,某片在原分组中的相对位置。片偏移以8字节为偏移单位,每个分片的长度一定是8字节的整数倍。
  • 生存时间:占8位,现在的意义改为跳数限制,指明数据报在因特网中至多可经过多少个路由器。
  • 协议:占8位,字段指出此数据报携带的数据使用何种协议,以便目的主机的IP层将数据部分上交给哪个处理过程。
  • 首部检验和:占16位,字段只检验数据报的首部,不检验数据部分,这里不采用CRC检验码而采用简单的计算方法。
  • 源地址和目的地址都各占4字节。
  • IP数据报首部的可变部分就是一个选项字段,用来支持排错、测量以及安全等措施,内容很丰富。选项字段的长度可变,从1个字节到40个字节不等,取决于所选择的项目。增加首部的可变部分是为了增加IP数据报的功能,但这同时也使得IP数据报的首部长度成为可变的,这就增加了每一个路由器处理数据报的开销,实际上这些选项很少被使用。

4.2.6 IP层转发分组的流程

有4个A类网络通过3个路由器连接在一起,每一个网络上都可能有成千上万个主机。可以想像,若按目的主机号来制作路由表,则所得出的路由表就会过于庞大,但若按主机所在的网络地址来制作路由表,那么每一个路由器中的路由表就只包含4个项目,这样就可使路由表大大简化。
在这里插入图片描述
根据目的网络地址就能确定下一跳路由器,这样做的结果是:IP数据报最终一定可以找到目的主机所在目的网络上的路由器(可能要通过多次的间接交付),只有到达最后一个路由器时,才试图向目的主机进行直接交付。

注意:IP数据报的首部中没有地方可以用来指明下一跳路由器的IP地址。当路由器收到待转发的数据报,不是将下一跳路由器的IP地址填入IP数据报,而是送交下层的网络接口软件。网络接口软件使用ARP负责将下一跳路由器的IP地址转换成硬件地址,并将此硬件地址放在链路层的MAC帧的首部,然后根据这个硬件地址找到下一跳路由器。

路由器分组转发算法:

  • 从数据报的首部提取目的主机IP地址D,得出目的网络地址为N。
  • 若N就是与此路由器直接相连的某个网络地址,则进行直接交付(将D转换为硬件地址)。
  • 若路由表中有目的地址D的特定主机路由,则将数据报交给路由表中所指明的下一跳路由器。
  • 若路由表中有到达网络N的路由,则将其交给路由表指明的下一跳路由器。
  • 如有路由表中有默认路由,则将其交给默认路由。
  • 报告转发分组出错。

4.3 划分子网和构造超网

4.3.1 划分子网

分类地址存在的问题:IP地址空间的利用率有时很低(A类、B类)。给每一个物理网络分配一个网络号会使路由表变得太大,因为使网络性能变坏。两级IP地址不够灵活(需要新开网络,但是在申请到新的IP地址之前,是不可能连接到因特网)。

划分子网:

  • 一个拥有多个物理网络的单位,可将所属的物理网络划分为若干个子网,这个单位对外仍然表现为一个网络。
  • 划分子网的方法是从网络的主机号借用若干位作为子网号。IP地址::={<网络号>,<子网号>,<主机号>}。
  • 从其他网络发给本单位某个主机的IP数据报:根据IP数据报的目的网络号找到连接在本单位网络上的路由器,路由器按照目的网络号和子网号找到目的子网,把IP数据报交付目的主机。

注意:当没有划分子网时,IP地址是两级结构,划分子网后IP地址就变成了三级结构。划分子网只是把IP地址的主机号host-id这部分进行再划分,而不改变IP地址原来的网络号net-id。

子网掩码:从一个IP数据报的首部并无法判断源主机或目的主机所连接的网络是否进行了子网划分,需要使用子网掩码找出IP地址中的子网部分。
在这里插入图片描述
子网掩码是一个网络或一个子网的重要属性,路由器在和相邻路由器交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉相邻路由器。路由器的路由表中的每一个项目,除了要给出目的网络地址外,还必须同时给出该网络的子网掩码,若一个路由器连接在两个子网上就拥有两个网络地址和两个子网掩码。

4.3.2 使用子网时分组的转发

在不划分子网的两级IP地址下,从IP地址得出网络地址是个很简单的事,但在划分子网的情况下,从IP地址却不能唯一地得出网络地址来,这是因为网络地址取决于那个网络所采用的子网掩码,但数据报的首部并没有提供子网掩码的信息,因此分组转发的算法也必须做相应的改动。

在划分子网的情况下路由器转发分组的算法:

  • 从收到的数据报首部提取目的IP地址D。
  • 先判断是否直接交付。对路由器直接相连的网络逐个进行检查:用各网络的子网掩码和D逐位相与,看结果是否和相应的网络地址相同。若相同,则直接交付。
  • 路由表中有目的地址为D的特定主机路由。
  • 对路由表中的每一行(目的网络地址,子网掩码,下一跳地址),用其中的子网掩码和D相与,其结果为N,若N等于该行的目的网络地址,则把数据报传送给改行指明的下一跳路由器。
  • 默认路由。
  • 报告转发分组出错。

案例:已知互联网和路由器R1中的路由表,主机H1向H2发送分组。试讨论R1收到H1向H2发送的分组后查找路由表的过程。
在这里插入图片描述
H1首先检查主机128.30.33.138是否连接在本网络上,如果是,则直接交付,否则就送交路由器R1,并逐项查找路由表。

本子网的子网掩码255.255.255.128与要发送的分组的IP地址128.30.33.138逐比特相与,结果为128.30.33.128,不等于本子网的网络地址128.30.33.0,因此H1必须把分组传送到路由器R1,然后逐项查找路由表。

路由器R1收到分组后就用路由表中第1个项目的子网掩码255.255.255.128和要发送的分组的IP地址128.30.33.138逐比特相与,结果为128.30.33.128,不等于第1个项目的网络地址128.30.33.0。

路由器R1再用路由表中第2个项目的子网掩码255.255.255.128和要发送的分组的IP地址128.30.33.138逐比特相与,结果为128.30.33.128,等于第2个项目的网络地址128.30.33.128,这表明子网2就是收到的分组所要寻找的目的网络。

4.3.3 无分类编址CIDR(构成超网)

划分子网在一定程度上缓解了因特网在发展中遇到的困难,然而在1992年因特网仍然面临三个必须尽早解决的问题,这就是B类地址在1992年已分配了近一半,眼看就要在1994年3月全部分配完毕。因特网主干网上的路由表中的项目数急剧增长。整个IPv4的地址空间将全部耗尽。

无分类域间路由选择CIDR:

  • CIDR消除了传统的A类、B类和C类地址以及划分子网的概念,CIDR把32位的IP地址划分为两个部分,即IP地址::={<网络前缀>,<主机号>},网络前缀用来指明网络,后面的部分用来指明主机。IP地址从三级编址(使用子网掩码)又回到了两级编址。
  • CIDR还使用斜线记法,它又称为CIDR记法,即在IP地址面加上ー个斜线,然后写上网络前缀所占的位数(这个数值对应于三级编址中子网掩码中1的个数)。CIDR把网络前缀都相同的连续的IP地址组成CIDR地址块。

路由聚合:一个CIDR地址块可以表示很多地址,这种地址的聚合常称为路由聚合,它使得路由表中的个项目可以表示很多个原来传统分类地址的路由,路由聚合也称为构成超网。CIDR虽然不使用子网了,但仍然使用掩码这一名词(但不叫子网掩码)。对于/20地址块,它的掩码是20个连续的1,斜线记法中的数字就是掩码中1的个数。

CIDR地址块划分举例:
在这里插入图片描述
这个ISP共有64个C类网络,如果不采用CIDR技术,则在与该ISP的路由器交换路由信息的每一个路由器的路由表中,就需要有64个项目,但采用地址聚合后,只需用路由聚合后的1个项目206.0.64.0/18就能找到该ISP。

最长前缀匹配:使用CIDR时,路由表中的每个项目由网络前缀和下一跳地址组成,在查找路由表时可能会得到不止一个匹配结果,应当从匹配结果中选择具有最长网络前缀的路由。因为网络前缀越长,其地址块就越小,因而路由就越具体。

最长前缀匹配举例:

  • 收到的分组的目的地址D=206.0.71.128,路由表中的项目为:206.0.68.0/22(ISP)和206.0.71.128/25(四系)。
  • 查找路由表中的第1个项目206.0.68.0/22,用第1个项目的掩码(22个连续的1)和要发送的分组的IP地址206.0.71.128逐比特相与,结果为206.0.68.0,等于第1个项目的网络地址206.0.68.0。
  • 再查找路由表中的第2个项目206.0.71.128/25,用第2个项目的掩码(25个连续的1)和要发送的分组的IP地址206.0.71.128逐比特相与,结果为206.0.71.128,等于第2个项目的网络地址206.0.71.128。
  • 选择两个匹配的地址中更具体的一个,即选择最长前缀的地址。

使用二叉线索查找路由表:当路由表的项目数很大时,怎样设法减小路由表的查找时间就成为一个非常重要的问题。为了进行更加有效的查找,通常是将无分类编址的路由表存放在一种层次的数据结构中,然后自上而下地按层次进行查找,这里最常用的就是二叉线索。IP地址中从左到右的比特值决定了从根结点逐层向下层延伸的路径,而二叉线索中的各个路径就代表路由表中存放的各个地址。为了提高二叉线索的查找速度,广泛使用了各种压缩技术。
在这里插入图片描述

4.4 网际控制报文协议ICMP

为了提高IP数据报交付成功的机会,在网际层使用了网际控制报文协议ICMP,ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。

注意:ICMP不是高层协议,而是IP层的协议。ICMP报文作为IP层数据报的数据部分,加上数据报的首部,组成IP数据报发送出去。
在这里插入图片描述

4.4.1 ICMP报文的种类

ICMP报文的种类有两种:ICMP差错报告报文和ICMP询问报文。
在这里插入图片描述
改变路由(重定向):出于效率考虑,主机不和连接在网络上的路由器定期交换路由信息。主机刚开始都发到默认路由,若默认路由发往某个地址的最佳路径时经过另一个R,则用该报文通知主机,该主机在其路由表中增加一项:到某目的地址应经过路由器R(而不是默认路由)。

不应发送ICMP差错报告报文的几种情况:

  • 对ICMP差错报告报文不再发送ICMP差错报告报文。
  • 对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文。
  • 对具有多播地址的数据报都不发送ICMP差错报告报文。
  • 对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文。

4.4.2 ICMP的应用举例

ping:用来测试两个主机之间的连通性。ping使用了ICMP回送请求与回送回答报文,PING是应用层直接使用网络层ICMP的例子,它没有通过运输层的TCP或UDP。

traceroute:跟踪一个分组从源点到终点的路径。从源主机向目的主机发送一连串IP数据报,数据报中封装的是无法交付的UDP用户数据报。第一个数据报P1的生存时间TTL设置为1,到达R1时,R1丢弃P1,并向源主机发送一个ICMP时间超过报文。第二个数据报P2,TTL设置为2,P2先经过R1,再到R2,丢弃P2,并向源主机发送一个ICMP时间超过报文…最后一个数据报到达目的主机时,TTL=1,不转发,因此不减1,但是无法交付,使用了非法的端口号,因此目的主机向源主机发送ICMP终点不可达报文。

4.5 因特网的路由选择协议

4.5.1 有关路由选择协议的几个基本概念

理想的路由算法的特点:

  • 正确和完整的:正确的含义是指沿着路由表所指引的路由,分组一定能够最终到达目的网络、主机。
  • 计算简单。
  • 自适应性:能适应通信量和网络拓扑的变化
  • 稳定性:在通信量和网络拓扑相对稳定的情况下,路由算法应该收敛于一个可以接受的解
  • 公平的。
  • 最佳的:相对于某一种特定要求最佳。

分层次的路由选择协议:因特网的规模非常大。如果让所有的路由器知道所有的网络应怎样到达,则这种路由表将非常大,处理起来也太花时间,而所有这些路由器之间交换路由信息所需的带宽就会使因特网的通信链路饱和。许多单位不愿意外界了解自己单位网络的布局细节和本部门所采用的路由选择协议(这属于本部门内部的事情),但同时还希望连接到因特网上。因此互联网将互联网划分为许多较小的自治系统。

自治系统AS:在单一技术管理下的一组路由器(一个AS对其他AS表现出的是一个单一的和一致的路由选择策略)。

两种路由选择协议:

  • 内部网关协议IGP:在自治系统内部使用的路由选择协议,域间路由选择,有多种,如RIP、OSPF。
  • 外部网关协议EGP:在自治系统之间使用的路由选择协议,域内路由选择,目前使用的是BGP协议。

4.5.2 内部网关协议RIP

工作原理:RIP是一种分布式的基于距离向量的路由选择协议。

  • 分布式:每个路由器不断地和相邻路由器交换信息(所交换的式当前路由器知道的所有路由信息)。
  • 距离向量:从当前路由器每经过一个路由器则距离加一,记录到达每个路由器的距离,以找出最小距离。

三个要点:

  • 和哪些路由器交换信息:仅和相邻的路由器交换信息。
  • 交换什么信息:交换当前本路由器所知道的全部信息,即自己的路由表。
  • 在什么时候交换信息:按固定时间间隔交换路由信息(例如每隔30秒)。

路由表的建立:路由器在刚刚开始工作时,只知道到直接连接的网络的距离(此距离定义为1),以后,每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息,经过若干次更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址。

距离向量算法:

  • 对地址X的相邻路由器发来的RIP报文,先修改报文中的所有项目:下一跳改为X,距离加1(每个项目的三个关键数据:到目的网络N,距离d,下一跳路由器X)。
  • 对修改后RIP报文中的每一个项目,重复以下步骤:
    若原来路由表中无目的网络N,则添加。
    若有,且下一跳是X,则替换为新的。
    若有,且下一跳不是X,但是收到项目中的距离小于路由表中的距离,则更新,否则什么都不做。
  • 若3分钟还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可达路由器,即将距离置为16(距离为16表示不可达)。

RIP报文通过运输层的用户数据报UDP传送,使用UDP端口520,RIP协议的报文格式如下图:
在这里插入图片描述
RIP协议的优缺点:

  • RIP存在的一个问题是当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器。
  • RIP协议最大的优点就是实现简单,开销较小。
  • RIP限制了网络的规模,它能使用的最大距离为15(16表示不可达)。
  • 路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加。

4.5.3 内部网关协议OSPF

OSPF:开放最短路径优先(为克服RIP协议制定的协议),使用了Dijkstra的最短路径算法,并不表示其他的路由选择协议不是最短路径优先,实际上所有在自治系统内的路由选择协议都是要找一条最短路径。使用分布式的链路状态协议,链路状态是指说明本路由器都和哪些路由器相邻,以及该链路的度量(费用、距离、时延、带宽等)。

三个要点:

  • 和哪些路由器交换信息:向本自治系统的所有路由器发送信息。
  • 交换什么信息:发送的信息是与本路由器相邻的所有路由器的链路状态,即链路的度量(费用、距离、时延、带宽等)。
  • 在什么时候交换信息:当链路状态发生变化时。

由于各路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个链路状态数据库,这个数据库实际上就是全网的拓扑结构图,它在全网范围内是一致的(这称为链路状态数据库的同步)。OSPF的链路状态数据库能较快地进行更新,使各个路由器能及时更新其路由表。OSPF的更新过程收敛得快是其重要优点。

OSPF的区域:为了使OSPF能够用于规模很大的网络,OSPF将一个自治系统再划分为若干个更小的范围,叫作区域,每一个区域都有一个32位的区域标识符(用点分十进制表示)。区域也不能太大,在一个区域内的路由器最好不超过200个。
在这里插入图片描述
划分区域的好处就是将利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个的自治系统,这就减少了整个网络上的通信量。在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑的情况。OSPF使用层次结构的区域划分,在上层的区域叫作主干区域,主干区域的标识符规定为0.0.0.0,主干区域的作用是用来连通其他在下层的区域。

洪范法:路由器通过所有的端口向所有的相邻路由器发送信息,而所有的相邻路由器也是同样的做法(但发送的对象不包括之前向他发送信息的那个路由器),从而最终使得整个局域网都得到该信息的一个副本,而发送的信息就是与本路由器相邻的所有路由器的链路状态(链路状态是指相邻路由器及到达该路由器的代价),只有链路状态发生变化时,才使用洪范法发送信息(不是定期交换)。

OSPF的其他特点:

  • OSPF对不同的链路可根据IP分组的不同服务类型TOS而设置成不同的代价,因此,OSPF对于不同类型的业务可计算出不同的路由。
  • 如果到同一个目的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径,这叫作多路径间的负载平衡。
  • 所有在OSPF路由器之间交换的分组都具有鉴别的功能。
  • 支持可变长度的子网划分和无分类编址CIDR,每一个链路状态都带上一个32位的序号,序号越大状态就越新。
  • OSPF还规定每隔一段时间,如30分钟,要刷新一次数据库中的链路状态。
  • 由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系,因此当互联网规模很大时,OSPF协议要比距离向量协议RIP好得多。
  • OSPF没有坏消息传播得慢的问题,据统计,其响应网络变化的时间小于100ms。

OSPF直接用IP数据报传送,OSPF的五种分组类型:问候分组,数据库描述分组,链路状态请求分组,链路状态更新分组,链路状态确认分组。OSPF协议的报文格式如下图:
在这里插入图片描述

4.5.4 外部网关协议BGP

外部网关协议:因特网的规模太大,使得自治系统之间路由选择非常困难,对于自治系统之间的路由选择,要寻找最佳路由是很不现实的。当一条路径通过几个不同AS时,要想对这样的路径计算出有意义的代价是不太可能的,比较合理的做法是在AS之间交换可达性信息。自治系统之间的路由选择还必须考虑有关策略,因此,边界网关协议BGP只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。

BGP发言人:在BGP协议中,一个自治系统中用来与其他自治系统(通过TCP连接)交换路由信息的路由器。交换信息的两个BGP发言人彼此成为临站或对等站,所交换的信息是可达性信息。每个发言人除了要运行BGP协议外,还要运行本自治系统内部的协议。

BGP发言人交换路径向量:
在这里插入图片描述
自治系统AS2的BGP发言人通知主干网的BGP发言人:要到达网络N1,N2,N3和N4可经过AS2。主干网也可发出通知:要到达网络N5,N6和N7可沿路径(AS1,AS3)。

BGP协议的特点:

  • BGP协议交换路由信息的结点数量级是自治系统数的量级,这要比这些自治系统中的网络数少很多。
  • 每一个自治系统中BGP发言人(或边界路由器)的数目是很少的,这样就使得自治系统之间的路由选择不致过分复杂。
  • BGP支持CIDR,因此BGP的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。
  • 在BGP刚刚运行时,BGP的邻站是交换整个的BGP路由表,但以后只需要在发生变化时更新有变化的部分,这样做对节省网络带宽和减少路由器的处理开销方面都有好处。

BGP共使用四种报文:打开、更新、保活、通知。BGP协议的报文格式如下图:
在这里插入图片描述

4.5.5 路由器的构成

路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。也就是说,将路由器某个输入端口收到的分组,按照分组要去的目的地(即目的网络),把该分组从路由器的某个合适的输出端口转发给下一跳路由器。下一跳路由器也按照这种方法处理分组直到该分组到达终点为止。
在这里插入图片描述
转发和路由选择的区别:

  • 转发就是路由器根据转发表将用户的IP数据报从合适的端口转发出去。
  • 路由选择则是按照分布式算法,根据从各相邻路由器得到的关于网络拓扑的变化情况,动态地改变所选择的路由。
  • 路由表是根据路由选择算法得出的,而转发表是从路由表得出的。
  • 在讨论路由选择的原理时,往往不去区分转发表和路由表的区别。

数据链路层剥去帧首部和尾部后,将分组送到网络层的队列中排队等待处理,这会产生一定的时延。当交换结构传送过来的分组先进行缓存,数据链路层处理模块将分组加上链路层的首部和尾部,交给物理层后发送到外部线路。

若路由器处理分组的速率赶不上分组进入队列的速率,则队列的存储空间最终必定减少到零,这就使后面再进入队列的分组由于没有存储空间而只能被丢弃,路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因。

4.6 IP多播

4.6.1 IP多播的基本概念

IP多播:许多应用需要由一个源点发送到许多终点,即一对多通信。

IP多播的特点:

  • 多播使用组地址(IP使用D类地址支持多播)。多播地址只能用于目的地址,而不能用于源地址。
  • 永久组地址由因特网号码指派管理局IANA负责指派。
  • 动态的组成员。
  • 使用硬件进行多播。

4.6.2 在局域网上进行硬件多播

多播组的MAC地址:是由MAC地址和D类IP地址的后23位拼接起来的。

由于多播IP地址和以太网硬件地址的映射关系不唯一,因此收到多播数据报的主机还要在IP层利用软件进行过滤,把不是本主机要接收的数据报丢弃。

D类IP地址与以太网多播地址的映射关系:
在这里插入图片描述

4.6.3 网际组管理协议IGMP和多播路由选择协议

IP多播需要两种协议:

  • 为了使路由器知道多播组成员的信息,需要利用网际组管理协议IGMP。
  • 连接在局域网上的多播路由器还必须和因特网上的其他多播路由器协同工作,以便把多播数据报用最小代价传送给所有的组成员,这就需要使用多播路由选择协议。

IGMP并非在因特网范围内对所有多播组成员进行管理的协议。IGMP不知道IP多播组包含的成员数,也不知道这些成员都分布在哪些网络上,IGMP协议是让连接在本地局域网上的多播路由器知道本局域网上是否有主机(严格讲,是主机上的某个进程)参加或退出了某个多播组。

多播组协议的特点:

  • 多播转发必须动态地适应多播组成员的变化。
  • 多播路由器在转发多播数据报时,不能仅根据数据包中的目的地址来转发数据报,还要知道数据报的来源(多播组内的成员发送信息时,就不用再向该成员转发数据报)。
  • 多播成员或非多播成员均可发送多播数据报。

和ICMP相似,IGMP使用IP数据报传递其报文(即IGMP报文加上IP首部构成IP数据报),但它也向IP提供服务,因此,我们不把IGMP看成是一个单独的协议,而是属于整个网际协议IP的一个组成部分。

IGMP可分为两个阶段:

  • 第一阶段是当某个主机加入新的多播组时,该主机应向多播组的多播地址发送IGMP报文,声明自己要成为该组的成员。本地的多播路由器收到IGMP报文后,将组成员关系转发给因特网上的其他多播路由器。
  • 第二阶段因为组成员关系是动态的,因此本地多播路由器要周期性地探询本地局域网上的主机,以便知道这些主机是否还继续是组的成员。只要对某个组有一个主机响应,那么多播路由器就认为这个组是活跃的,但一个组在经过几次的探询后仍然没有一个主机响应,则不再将该组的成员关系转发给其他的多播路由器。

多播路由选择协议:

  • 一个多播组中的成员是动态变化的,随时会有主机加入或离开这个多播组。
  • 多播路由选择实际上就是要找出以源主机为根结点的多播转发树。
  • 在多播转发树上的路由器不会收到重复的多播数据报。
  • 对不同的多播组对应于不同的多播转发树,同一个多播组对不同的源点也会有不同的多播转发树。

转发多播数据报使用的方法:

洪泛与减除(适用于较小的多播组):

  • 洪泛:采用反向路径广播RPB策略(每一个路由器在收到一个多播数据报时,先检查数据报是否从源点经最短路径传送过来的。检查方法:只要检查从本路由器寻找到源点的最短路径的第一个路由器是否是刚才把多播数据报发送来的路由器即可,若是,继续转发,否则,丢弃)。
  • 减除:在多播转发树的某个路由器发现它的下游树枝已没有改多播组的成员,就应该把它和下游树枝一起剪除。

在这里插入图片描述
隧道技术(适用于多播组的位置在地理上很分散的情况):将多播数据报封装在单播数据报中。
在这里插入图片描述
基于核心的发现技术(适用于多播组的大小在较大范围内变化):对每一个多播组G指定一个核心路由器,给出它的IP单播地址,核心路由器创建对应于多播组G的转发树。

4.7 虚拟专用网VPN和网络地址转换NAT

4.7.1 虚拟专用网VPN

本地地址:仅在机构內部使用的IP地址,可以由本机构自行分配,而不需要向因特网的管理机构申请。全球地址:全球唯一的P地址,必须向因特网的管理机构申请。

10.0.0.0到10.255.255.255,172.16.0.0到172.31.255.255,192.168.0.0到192.168.255.255,这些地址只能用于ー个机构的內部通信,而不能用于和因特网上的主机通信。专用地址只能用作本地地址而不能用作全球地址,在因特网中的所有路由器对目的地址是专用地址的数据报一律不进行转发。

用隧道技术实现虚拟专用网:
在这里插入图片描述

4.7.2 网络地址转换NAT

专用网内部分配了专用地址的主机,想和因特网上的主机通信,怎么办:使用网络地址转换。这种方法需要专用网连接到因特网的路由器上安装NAT软件,至少有一个有效的外部全球IP地址,所有使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接。

网络地址转换的过程:

  • 内部主机X用本地地址IPx和因特网上主机Y通信所发送的数据报必须经过NAT路由器。
  • NAT路由器将数据报的源地址IPx转换成全球地址IPg,但目的地址IPy保持不变,然后发送到因特网。
  • NAT路由器收到主机Y发回的数据报时,知道数据报中的源地址是IPy,目的地址是IPg。
  • 根据NAT转换表,NAT路由器将目的地址IPg转换为IPx,转发给最终的内部主机X。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算机网络知识点(网络层) 的相关文章

  • Python3-面向对象

    Python之面向对象 面向对象 走进对象的世界 类的基本操作 定义 属性 方法 三性 封装 继承 多态 封装 继承 多态 单例 练习 面向对象 对象创建 属性 定义 封装 继承 多态 单例 走进对象的世界 类的基本操作 定义 面向对象 程
  • 未来的工作都被计算机代替,未来10年,50%的工作将被机器取代?而这些职业却无法被取代...

    声明 原创不易 禁止搬运 违者必究 50 的工作将被机器人取代 时代的车轮在前进 更新换代也越来越快了 总是有新兴行业的诞生 也总是有传统的行业退出 变化成为了时代发展的一个重要标志 创建阿里巴巴的马云 之所以能够如此的成功 不得不说他的前

随机推荐

  • Vue中BootStrap和分页组件 实现分页功能(页码过多时带省略号)

    更新 其实vue中的分页插件结合上 spring data jpa 使用的效果非常好 使用更加方便 vue组件中 div class box footer no border div
  • 微信小程序:云开发·初探四(数据库操作)

    The course of true love never did run smooth 真爱无坦途 新建集合 1 打开云开发控制台 数据库 2 添加集合users 添加代码 onAdd function const db wx cloud
  • DX90SDK SDK源码分析(二) 推模式的例子

    转载请标明是引用于 http blog csdn net chenyujing1234 例子代码 编译工具 VS2005 http www rayfile com zh cn files 46611607 78a2 11e1 ac18 00
  • Makefile的函数调用详解

    1 Makefile的函数调用语法 Makefile的函数调用格式
  • 高德地图的简单使用:点击标记获取经纬度和详细地址

    准备工作 1 先进入高德开发平台注册登录 2 进入地图 js Api 按照步骤申请key 3 使用npm安装依赖包 npm i amap amap jsapi loader save 4 高德api 都有说明 下面看下我实现的功能和代码 弹
  • hutool的HttpRequest.post的使用-包括上传文档等多个传参【总结版本】

    首先hutool已经为我们封装好了远程调用的接口 我们只要将对应的传参和方式对应填写即可 hutool官方文档 1实际应用 post 常见的使用json传参 contend type为application json RequestMapp
  • 计算机键盘运算符号输入,电脑上感叹号怎么打出来(电脑键盘符号大全)

    01 在使用键盘输入标点符号时 大部分都可以直接通过键盘按键或者按Ctrl 键盘按键直接输入 比如按下shift 1 就可以输入感叹号 中文状态下按反斜杠键就可以输入顿号 其实在键盘上的很多同一个按键 中文状态下和英文状态下是不一样的 如下
  • King 【POJ - 1364】【差分约束+SPFA+卡了判负环的进队次数】

    题目链接 题目大意 n个数的一个序列 m个条件 si ni oi ki 代表了序列中第si个数到第si ni个数的和大于或小于ki gt 大于 lt 小于 问是否存在相悖的约束 op为gt时 sum si ni sum si 1 gt ki
  • 宽带远端服务器无响应什么意思,宽带远程服务器无响应

    宽带远程服务器无响应 内容精选 换一换 已成功添加目标环境 如果目标环境处于在线状态 只允许修改目标环境名称 如果目标环境处于离线状态 可以输入登录远程服务器的用户名和密码重新部署分析辅助软件 如果目标环境处于在线状态 只允许修改目标环境名
  • 10.12技术沉淀

    cpp 编写程序实现ADT表的定义 及常用操作 1 判断表是否为空 2 获取第i个节点的内容 3 删除 4 插入 include
  • 全局变量/局部变量/静态变量

    1 全局变量 全局变量是在所有函数体的外部定义的 程序的所有部分 其他文件的代码 都可以使用 全局变量不受作用域的影响 全局变量的生命周期一直到程序的结束 全局变量是静态存储方式 如果在一个文件中使用extern关键字来声明另一个文件中存在
  • 论文-- 基于 证据理论 的 不确定信息 度量与融合应用

    摘要 1 工程应用 不确定信息 1 模糊集合 表示的 模糊信息 2 语义上不一致或非特异性 造成的 歧义信息 3 开放世界特性 导致的 非完备信息 1 不确定信息的处理 基于证据理论 2 不确定信息分类 封闭世界 空集的基本概率指派函数值为
  • ConvNeXt网络详解

    ConvNeXt 论文名称 A ConvNet for the 2020s 论文下载链接 https arxiv org abs 2201 03545 论文对应源码链接 https github com facebookresearch C
  • 【论文学习】YOLOv3:An Incremental Improvement

    论文 YOLOv3 源代码 pjreddie com yolo 视频 https youtu be MPU2HistivI 1 Abstract 作者对YOLO进行了进一步的更新 做了一些小设计更改让其表现更好 YOLOv3比YOLOv2相
  • 【OS】IO系统——设备管理

    操作系统的设备管理 IO系统 一 啥是IO系统 操作系统是一种特殊的管理系统 管理与计算机相关的各种资源 往大了说 包括硬件资源和软件资源 细化了说 包括计算资源 内存资源 文件资源 设备资源 本文主要讲解设备管理的相关内容 1 OS管理的
  • 一分钟总结Spring的IOC和DI

    IOC Inverse of control 控制反转 IoC 控制反转 就是将程序中原来 new 对象 交给spring创建 从spring工厂获取对象 使用spring来负责控制对象的生命周期和对象间的关系 Spring所倡导的开发方式
  • 数据库视图的基本概念及作用

    一 视图简介 视图是从一个或几个基本表 或视图 中导出的虚拟的表 在系统的数据字典中仅存放了视图的定义 不存放视图对应的数据 视图是原始数据库数据的一种变换 是查看表中数据的另外一种方式 可以将视图看成是一个移动的窗口 通过它可以看到感兴趣
  • vcruntime140.dll丢失的解决方法

    vcruntime140 dll是vc运行库中的链接库文件 一般它会出现的状况就是系统提示dll丢失 这样的情况一般出现在游戏应用或者软件程序中 且会导致程序无法正常运行 只要下载此补丁 根据下面的步骤进行操作即可解决问题若你的电脑不小心丢
  • 前端常用js加密方法

    这里罗列前端常用的js加密方法 base64加密
  • 计算机网络知识点(网络层)

    文章目录 重要内容 4 1 网络层提供的两种服务 4 2 网际协议IP 4 2 1 虚拟互联网络 4 2 2 分类的IP地址 4 2 3 IP地址与硬件地址 4 2 4 地址解析协议ARP 4 2 5 IP数据报的格式 4 2 6 IP层转