计算机网络之网络层知识总结

网络层功能概述

主要任务

主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。网络层传输单位是数据报

分组和数据报的关系:把数据报进行切割之后,就是分组。

主要功能:

路由选择与分组转发

路由器主要完成两个功能:是路由选择 (确定哪一 条路径),二是分组转发 (当一个分组 到达时所采取的动作)。

  • 1)路由选择。指按照复杂的分布式算法,根据从各相邻路由器所得到的关于整个网络拓扑的变化情况,动态地改变所选择的路由。
  • 2)分组转发。指路由器根据转发表将用户的IP数据报从合适的端口转发出去。

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

异构网络互联

所谓异构网络互联,是指将两个以上的不同的计算机网络,通过一定的方法, 用一种或多种通信处理设备(即中间设备)相互连接起来,以构成更大的网络系统。中间设备又称中间系统中继系统
根据所在的层次,中继系统分为以下4种:

  • 1)物理层中继系统:中继器,集线器(Hub)。
  • 2)数据链路层中继系统:网桥或交换机。
  • 3)网络层中继系统:路由器。
  • 4)网络层以上的中继系统:网关。

网络互联通常是指用路由器进行网络互联和路由选择。
路由器是一一台专用计算机,用于在互联网中进行路由选择

拥塞控制

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

数据交换方式 

电路交换

  • 优缺点

报文交换

  • 数据交换的单位是报文,报文携带有源地址,目标地址,数据等信息。
  • 报文交换的主要特点是:存储接受到的报文,判断其目标地址以选择路由,最后,在下一跳路由空闲时,将数据转发给下一跳路由。 中文名报文交换,外文名Message switching。
  • 报文交换技术的优点如下:
  1. 无须建立连接。报文交换不需要为通信双方预先建立一条专用的通信线路,不存在建立连接时延,用户可以随时发送报文。
  2. 动态分配线路。当发送方把报文交给交换设备时,交换设备先存储整个报文,然后选择一条合适的空闲线路,将报文发送出去。
  3. 提高线路可靠性。如果某条传输路径发生故障,那么可重新选择另一条路径传输数据,因此提高了传输的可靠性。
  4. 提高线路利用率。通信双方不是固定占有一条通信线路,而是在不同的时间一段一段地部分占有这条物理通道,因而大大提高了通信线路的利用率。
  5. 提供多目标服务。一个报文可以同时发送给多个目的地址,这在电路交换中是很难实现的。
  • 报文交换技术的缺点如下:
  1. 由于数据进入交换结点后要经历存储、转发这一过程,因此会引起转发时延(包括接收报文、检验正确性、排队、发送时间等)。
  2. 报文交换对报文的大小没有限制,这就要求网络结点需要有较大的缓存空间

注意:报文交换主要使用在早期的电报通信网中,现在较少使用,通常被较先进的分组交换
方式所取代。

分组交换

  • 同报文交换一样,分组交换也采用存储转发方式,但解决了报文交换中大报文传输的问题。分组交换限制了每次传送的数据块大小的上限,把大的数据块划分为合理的小数据块,再加上一些必要的控制信息(如源地址、目的地址和编号信息等),构成分组(Packet)。 网络结点根据控制信息把分组送到下一结点,下一结点接收到分组后,暂时保存并排队等待传输,然后根据分组控制信息选择它的下一个结点,直到到达目的结点。到达目地之后的数据分组再重新组合起来,形成一条完整的数据。
  • 分组交换的优点如下:
  1. 无建立时延。不需要为通信双方预先建立一条专用的通信线路,不存在连接建立时延,用户可随时发送分组。
  2. 线路利用率高。通信双方不是固定占有- -条通信线路,而是在不同的时间一-段一段地部分占有这条物理通路,因而大大提高了通信线路的利用率。
  3. 简化了存储管理(相对于报文交换)。因为分组的长度固定,相应的缓冲区的大小也固定,在交换结点中存储器的管理通常被简化为对缓冲区的管理,相对比较容易。
  4. 加速传输。分组是逐个传输的,可以使后-一个分组的存储操作与前一一个分组的转发操作并行,这种流水线方式减少了报文的传输时间。此外,传输一个分组所 需的缓冲区比传输一次报文所需的缓冲区小得多,这样因缓冲区不足而等待发送的概率及时间也必然少得多。
  5. 减少了出错概率和重发数据量。因为分组较短,其出错概率必然减小,所以每次重发的数据量也就大大减少,这样不仅提高了可靠性,也减少了传输时延。

分组交换的缺点如下:

  1. 存在传输时延。尽管分组交换比报文交换的传输时延少,但相对于电路交换仍存在存储转发时延,而且其结点交换机必须具有更强的处理能力。
  2. 需要传输额外的信息量。每个小数据块都要加上源地址、目的地址和分组编号等信息,从而构成分组,因此使得传送的信息量增大了5%~10%,一定程度上降低了通信效率,增加了处理的时间,使控制复杂,时延增加。
  3. 当分组交换采用数据报服务时,可能会出现失序、丢失或重复分组,分组到达目的结点时,要对分组按编号进行排序等工作,因此很麻烦。若采用虚电路服务,虽无失序问题,但有呼叫建立、数据传输和虚电路释放三个过程。

分组交换根据其通信子网向端点系统提供的服务,还可进一步分为面向连接的虚电路方式
无连接的数据报方式。这两种服务方式都由网络层提供。要注意数据报方式和虚电路方式是分组 交换的两种方式。

(1)数据报

作为通信子网用户的端系统发送一个报文时,在端系统中实现的高层协议先把报文拆成若干
有序号的数据单元,并在网络层加上地址等控制信息后形成数据报分组(即网络层PDU)。中 间结点存储分组很短一段时间,找到最佳的路由后,尽快转发每个分组。不同的分组可以走不同
的路径,也可以按不同的顺序到达目的结点。

(2)虚电路

  • 在虚电路方式中,端系统每次建立虚电路时,选择一个未用过的虚电路号分配给该虛电路,以区别于本系统中的其他虚电路。在传送数据时,每个数据分组不仅要有分组号、校验和等控制信息,还要有它要通过的虚电路号,以区别于其他虚电路上的分组。在虚电路网络中的每个结点上都维持–张虚电路表,表中的每项记录了一个打开的虚电路的信息,包括在接收链路和发送链路上的虚电路号、前一结点和下一结点的标识。数据的传输是双向进行的,上述信息是在虚电路的建立过程中确定的。
  • 虚电路之所以是“虚”的,是因为这条电路不是专用的,每个结点到其他结点之间的链路可能同时有若干虚电路通过,也可能同时与多个结点之间建立虚电路。每条虚电路支持特定的两个端系统之间的数据传输,两个端系统之间也可以有多条虚电路为不同的进程服务,这些虚电路的实际路由可能相同也可能不同

(3)数据报服务和虛电路服务的比较

IPV4

TCP/IP协议栈

首先我们了解一下IP在TCP/IP中的位置

IPv4分组

  • 网络层将传输层的数据打包后,如果数据很小,可以称为IP数据报,如果数据过大则进行分片,每一片称为IPv4分组。一般数据都比较多,大部分情况都是分组。

(1)IPv4分组格式

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

IP首部的部分重要字段含义如下:

  1. 版本。占4位。指IP的版本,目前广泛使用的版本号为4。
  2. 首部长度。占4位。以4B为单位,最大值为60B (15*4B)。最常用的首部长度是20B,此时不使用任何选项(即可选字段)。
  3. 总长度。占16位。指首部和数据之和的长度,单位为B,因此数据报的最大长度为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,即每个分片的长度一定是8B (64 位)的整数倍。
  7. 首部校验和。占16位。IP数据报的首部校验和只校验分组的首部,而不校验数据部分。
  8. 生存时间(TTL)。占8位。数据报在网络中可通过的路由器数的最大值,标识分组在网络中的寿命,以确保分组不会永远在网络中循环。路由器在转发分组前,先把TTL减1。若TTL被减为0,则该分组必须丢弃。
  9. 协议。占8位。指出此分组携带的数据使用何种协议,即分组的数据部分应交给哪个传输层协议,如TCP、UDP等。其中值为6表示TCP,值为17表示UDP。
  10. 源地址字段。占4B,标识发送方的IP地址。
  11. 目的地址字段。占4B,标识接收方的IP地址。

(2)IP数据报分片

一个链路层数据报能承载的最大数据量称为最大传送单元(MTU)。因为IP数据报被封装在链路层数据报中,因此链路层的MTU严格地限制着IP数据报的长度,而且在IP数据报的源与目的地路径上的各段链路可能使用不同的链路层协议,有不同的MTU。例如,以太网的MTU为1500B,而许多广域网的MTU不超过576B。当IP数据报的总长度大于链路MTU时,就需要将IP数据报中的数据分装在两个或多个较小的IP数据报中,这些较小的数据报称为片。

  • 中间三个的含义

  • 下面通过一个例题来加深理解。

主要看偏移量。

数据部分的第一个字节位置为0。所以数据报片1的偏移量为0。 数据报片2起始地址为1400B。 偏移量单位为8B,所以偏移量为1400/8=175。 数据报片3同理。

(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帧中的源地址和目的地址要发生变化,但是网桥在转发帧时,不改变帧的源地址,请注意区分。

IPv4与NAT

(1)IPv4地址
① 组成与分类
  • 连接到因特网上的每台主机(或路由器)都分配一个32比特的全球唯一标识符,即IP地址。传统的IP地址是分类的地址,分为A、B、C、D、E五类。

  • 无论哪类IP地址,都由网络号主机号两部分组成。即IP地址::= {<网络号>, <主机号>}。
  • 其中网络号标志主机(或路由器)所连接到的网络。一个网络号在整个因特网范围内必须是唯一的。
  • 主机号标志该主机(或路由器)。一台主机号在它前面的网络号所指明的网络范围内必须是唯一的。
  • 由此可见,一个IP地址在整个因特网范围内是唯–的。

IP地址的分类

② 特殊地址
  • 在各类IP地址中,有些IP地址具有特殊用途,不用做主机的IP地址:

③ 常用IP地址ABC使用范围

常用的三种类别IP地址的使用范围见表

  • A类地址可用的网络数为2的7次方-2,减2的原因是:第一,网络号字段全为0的IP地址是保留地址,意思是“本网络”;第二,网络号为127的IP地址是环回测试地址
  • B类地址的可用网络数为2的14次方-1,减1的原因是128.0这个网络号是不可指派的。
  • C类地址的可用网络数为2的21次方-1,减1的原因是网络号为192.0.0 的网络是不可指派的。
④ IP地址的重要特点

IP地址有以下重要特点:

  • 每个IP地址都由网络号和主机号两部分组成,因此IP地址是–种分等级的地址结构。分等级的好处是:①IP地址管理机构在分配IP地址时只分配网络号(第一级), 而主机号(第二级)则由得到该网络的单位自行分配,方便了IP 地址的管理;②路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目标主机号),从而减小了路由表所占的存储空间。
  • IP 地址是标志一台主机(或路由器)和一条链路的接口。当一台主机同时连接到两个网络时,该主机就必须同时具有两个相应的IP地址,每个IP地址的网络号必须与所在网络的网络号相同,且这两个IP地址的网络号是不同的。因此IP网络上的一一个路由器必然至少应具有两个IP地址(路由器每个端口必须至少分配一个IP地址)。
  • 用转发器或桥接器(网桥等)连接的若干LAN仍然是同一个网络(同一个广播域),因此该LAN中所有主机的IP地址的网络号必须相同,但主机号必须不同。
  • 在IP地址中,所有分配到网络号的网络(无论是LAN还是WAN)都是平等的。
  • 在同一个局域网上的主机或路由器的IP地址中的网络号必须是一样的。路由器总是具有两个或两个以上的IP地址,路由器的每个端口都有一个不同网络号的IP地址。
(2)网络地址转换—NAT
① NAT简介
  • 网络地址转换(NAT)是指通过将专用网络地址(如Intranet)转换为公用地址(如Internet),从而对外隐藏内部管理的IP地址。它使得整个专用网只需要一个全球IP地址就可以与因特网连通,由于专用网本地IP地址是可重用的,所以NAT大大节省了IP地址的消耗。同时,它隐藏了内部网络结构,从而降低了内部网络受到攻击的风险。
② 私有IP地址
  • 此外,为了网络安全,划出了部分IP地址为私有IP地址。私有IP地址只用于LAN,不用于WAN连接(因此私有IP地址不能直接用于Internet,必须通过网关利用NAT把私有IP地址转换为Internet中合法的全球IP地址后才能用于Internet), 并且允许私有IP地址被LAN重复使用。这有效地解决了IP地址不足的问题。私有IP地址网段如下:
③ 专用互联网/本地互联网
  • 在因特网中的所有路由器,对目的地址是私有地址的数据报一律不进行转发。这种采用私有IP地址的互联网络称为专用互联网本地互联网私有IP地址也称可重用地址
④ 如何实现私有IP地址上网

网络地址转换NAT(Network Address Translation) : 在专用网连接到因特网的路由器上安装NAT软件,安装了NAT软件的路由器叫NAT路由器,它至少有一个有效的外部全球IP地址。

实现原理

  • 使用本地地址的主机和外界通信时,·NAT路由器使用NAT转换表将本地地址转换成全球地址,或将全球地址转换成本地地址
  • NAT转换表中存放着{本地IP地址:端口}到{全球IP地址:端口}的映射。
  • 通过{ip地址:端口}这样的映射方式,
  • 可让多个私有IP地址映射到同一一个全球IP地址。

子网划分与子网掩码、CIDR

(1)子网划分

两级IP地址的缺点:IP地址空间的利用率有时很低;给每个物理网络分配一个网络号会使路由表变得太大而使网络性能变坏;两级的IP地址不够灵活。

  • 从1985年起,在IP地址中又增加了一个子网号字段,使两级IP地址变成了三级IP地址。这种做法称为子网划分。子网划分已成为因特网的正式标准协议
子网划分的基本思路

●子网划分纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络
从主机号借用若干比特作为子网号,当然主机号也就相应减少了相同的比特。三级IP地址的结构如下: IP地址={<网络号>,<子网号>, <主机号>}
●凡是从其他网络发送给本单位某台主机的IP数据报,仍然是根据IP数据报的目的网络号,先找到连接到本单位网络上的路由器。然后该路由器在收到IP数据报后,按目的网络号.和子网号找到目的子网。最后把IP数据报直接交付给目的主机。

(2)子网掩码

子网掩码与IP地址逐位相与,就得到子网网络地址。

与运算:

  1. 1 AND 1 = 1
  2. 1 AND 0 = 0
  3. 0 AND 1 = 0
  4. 0 AND 0 = 0

这些规则与逻辑与运算的规则是一致的,因为二进制系统中的0和1可以看作是逻辑假和逻辑真的表示。在二进制与运算中,只有当两个比较的位都是1时,结果位才是1;否则,结果位是0。

使用子网时的分组转发
  • 由于子网掩码是一个网络或一个子网的重要属性,所以路由器在相互之间交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉对方。路由表中的每个条目,除要给出目的网络地址和下一跳地址外,还要同时给出该目的网络的子网掩码

在使用子网掩码的情况下:

  • 1)一台主机在设置IP地址信息的同时,必须设置子网掩码
  • 2)同属于一个子网的所有主机及路由器的相应端口,必须设置相同子网掩码
  • 3)路由器的路由表中,所包含信息的主要内容必须有目的网络地址、子网掩码、下一 跳地址

使用子网掩码时路由器的分组转发算法如下:

  • 1)从收到的分组的首部提取目的IP地址,记为D。
  • 2)先判断是否为直接交付。对路由器直接相连的网络逐个进行检查:用各网络的子网掩码和D逐位相“与”,看结果是否和相应的网络地址匹配。若匹配,则将分组直接交付,否则间接交付,执行步骤3)。
  • 3)若路由表中有目的地址为D的特定主机路由,则将分组传送给路由表中所指明的下一跳路由器;否则,执行4)。
  • 4)对路由表中的每一行(目的网络地址、子网掩码、下一跳地址)中的子网掩码和D逐位相“与”,其结果为N。若N与该行的目的网络地址匹配,则将分组传送给该行指明的下一跳路由器;否则,执行步骤5)。
  • 5)若路由表中有一个默认路由,则将分组传送给路由表中所指明的默认路由器;否则,执行步骤6)。
  • 6)报告转发分组出错。

(3)无分类域间路由选择CIDR

为什么要发明CIDR?

  • 在域名系统出现之后的第一个十年里,基于分类网络进行地址分配和路由IP数据包的设计就已明显显得可扩充性不足 。为了解决这个问题,互联网工程工作小组在1993年发布了一新系列的标准,以定义新的分配IP地址块和路由IPv4数据包的方法。
  • 一个IP地址包含两部分:标识网络的前缀和紧接着的在这个网络内的主机地址。在之前的分类网络中,IP地址的分配把IP地址的32位按每8位为一段分开。这使得前缀必须为8,16或者24位。因此,可分配的最小的地址块有256(24位前缀,8位主机地址,2^8^=256)个地址,而这对大多数企业来说太少了。大一点的地址块包含65536(16位前缀,16位主机,2^16^=65536)个地址,而这对大公司来说都太多了。这导致不能充分使用IP地址和在路由上的不便,因为大量的需要单独路由的小型网络(C类网络)因在地域上分得很开而很难进行聚合路由,于是给路由设备增加了很多负担。

构成超网

路由器根据路由表转发的CIDR原则:

例题:

前24位为网络前缀,后8位又进行了子网划分。通过子网掩码来确定子网的位数。248转换为二进制为 11111000。 子网位数为5,最大子网个数为 2^5 =32, 分配地址个数 为 2^3 -2=6。 (减2 是因为不能全为0或全为1)。

地址解析协议—ARP协议

首先我们得了解一下IP地址与硬件地址的概念

  • IP地址是网络层使用的地址,它是分层次等级的。
  • 硬件地址是数据链路层使用的地址(如MAC地址),它是平面式的。
  • 在网络层及网络层之上使用IP地址,IP地址放在IP数据报的首部,
  • 而MAC地址放在MAC帧的首部。
  • 通过数据封装,把IP数据报分组封装为MAC帧后,数据链路层看不见数据报分组中的IP地址。

由于在实际网络的链路上传送数据帧时,最终必须使用MAC地址,如图所示。因此我们需要一种协议来获取MAC地址。

ARP协议 : 完成主机或路由器IP地址到MAC地址的映射

ARP协议使用过程:
检查ARP高速缓存,有对应表项则写入MAC帧,没有则用目的MAC地址为FF-FF-FF-FF-FF-FF的帧封装并广播ARP请求分组,同一局域网中所有主机都能收到该请求。目的主机收到请求后就会向源主机单播一个ARP响应分组,源主机收到后将此映射写入ARP缓存(10-20min更新一次)。

  • ARP协议4种典型情况:
  1. 主机A发给本网络上的主机B:用ARP找到主机B的硬件地址;
  2. 主机A发给另一网络上的主机B:用ARP找到本网络上一个路由器(网关)的硬件地址;
  3. 路由器发给本网络的主机A:用ARP找到主机A的硬件地址;
  4. 路由器发给另一网络的主机B:用ARP找到本网络上的一个路由器的硬件地址。
  • 具体过程如图所示

例题:

动态主机配置协议—DHCP协议

主机可以静态和动态地获取IP地址。静态是管理员事先分配好主机的IP地址,子网掩码,默认网关等。动态则是依靠DHCP协议来完成的。接下来介绍一下DHCP协议。

动态主机配置协议(DHCP)是应用层协议,使用客户/服务器方式,客户端和服务端通过广播方式进行交互,基于UDP。DHCP提供即插即用联网的机制,主机可以从服务器动态获取IP地址、子网掩码、默认网关、DNS服务器名称与IP地址,允许地址重用,支持移动用户加入网络,支持在用地址续租。

使用过程

网际控制报文协议— ICMP

为了提高IP数据报交付成功的机会,在网络层使用了网际控制报文协议(Internet Control Message Protocol, ICMP)来让主机或路由器报告差错和异常情况

ICMP 报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去。ICMP是IP层协议。

  • 从图中可以看出ICMP报文分为差错报文询问报文
(1)ICMP差错报告报文

差错报文构成

不发送ICMP报文的情况

  1. 对ICMP差错报告报文不再发送ICMP差错报告报文。
  2. 对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文。
  3. 对具有组播地址的数据报都不发送ICMP差错报告报文。
  4. 对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文
(2)ICMP询问报文

ICMP的应用

IPv6

思维导图

  • IPv6从根本上解决了IPv4地址不够用的问题。

数据报格式

  • 详细的数据报格式

IPv4和IPv6的区别

  • IPv6将地址从32位(4B)扩大到128位(16B),更大的地址空间。
  • IPv6将IPv4的校验和字段彻底移除,以减少每跳的处理时间。
  • lPv6将IPv4的可选字段移出首部,变成了扩展首部,成为灵活的首部格式,路由器通常不对扩展首部进行检查,大大提高了路由器的处理效率。
  • IPv6支持即插即用(即自动配置),不需要DHCP协议。
  • IPv6首部长度必须是8B的整数倍,IPv4首部是4B的整数倍。
  • IPv6只能在主机处分片,IPv4可以在路由器和主机处分片。
  • ICMPv6:附加报文类型“分组过大”。
  • IPv6支持资源的预分配,支持实时视像等要求,保证一定的带宽和时延的应用。
  • IPv6取消了协议字段,改成下一个首部字段。
  • IPv6取消了总长度字段,改用有效载荷长度字段。
  • IPv6取消了服务类型字段。

IPv6的表示形式

IPV6基本地址类型

IPv6数据报的目的地址可以是以下三种基本类型地址之一:

  • 1)单播。单播就是传统的点对点通信。
  • 2)多播。多播是一点对多点的通信,分组被交付到一-组计算机的每台计算机。
  • 3)任播。这是IPv6增加的一-种类型。任播的目的站是-组计算机,但数据报在交付时只交付其中的一台计算机,通常是距离最近的一台计算机。

IPV6向IPV4过滤的策略

双栈协议

双协议栈技术就是指在一台设备上同时启用lPv4协议栈和IPv6协议栈。这样的话,这台设备既能和IPv4网络通信,又能和IPv6网络通信。如果这台设备是一个路由器,那么这台路由器的不同接口上,分别配置了IPv4地址和IPv6地址,并很可能分别连接了IPv4网络和IPv6网络。如果这台设备是一个计算机,那么它将同时拥有IPv4地址和IPv6地址,并具备同时处理这两个协议地址的功能。

隧道技术

通过使用互联网络的基础设施在网络之间传递数据的方式。使用隧道传递的数据(或负载)可以是不同协议的数据帧或包。隧道协议将其它协议的数据帧或包重新封装然后通过隧道发送。意思就是将IPv6作为IPv4的数据部分,继续传输。到时候解封装。

路由协议

概述

路由选择协议的引入

为了解决自治系统内部和外部之间的通信问题而创建的协议

作用

  • 每一个路由里边都有一张路由表。表的结构如下图所示。由路由算法来填写表中内容,找出最佳路径。

分类

分层次的路由选择协议

出现原因

(1)因特网规模很大
(2)许多单位不想让外界知道自己的路由选择协议,但还想连入因特网

解决办法

自治系统AS:在单一的技术管理下的一组路由器,而这些路由器使用一种AS内部的路由选择协议和共同的度量以确定分组在该AS内的路由,同时还使用一种AS之间的路由协议以确定在AS之间的路由。

一个AS内的所有网络都属于一个行政单位来管辖,一个自治系统的所有路由器在本自治系统内都必须连通。

路由信息协议—RIP协议

概述

RIP是一种分布式的基于距离向量的路由选择协议,是因特网的协议标准,最大优点是简单

RIP协议要求网络中每一个路由器都维护从它自己到其他每一个目的网络的唯一最佳距离记录(即一组距离)。距离:通常为“跳数”,即从源端口到目的端口所经过的路由器个数,经过一个路由器跳数+1。特别的,从一路由器到直接连接的网络距离为1。RIP允许一条路由最多只能包含15个路由器,因此距离为16表示网络不可达

RIP的特点:当网络出现故障时,要经过比较长的时间(例如数分钟)才能将此信息传送到所有的路由器,好消息传得快,坏消息传得慢,“慢收敛”。

RIP协议和谁交换?交换什么?多久交换一次?

距离向量算法

  • RIP协议的路由表更新是基于距离向量算法实现的
  • 它的具体过程:

例题:

RIP协议的报文格式

开放最短路径优先协议—OSPF协议

OSPF协议概述及其特点

开放最短路径优先OSPF协议 :“开放”标明OSPF协议不是受某一家厂商控制,而是公开发表的 ; “最短路径优先”是因为使用了Dijkstra提出的最短路径算法SPF

OSPF最主要的特征就是使用分布式的链路状态协议

链路状态路由算法

  1. 每个路由器发现它的邻居结点【HELLO问候分组】,并了解邻居节点的网络地址。
  2. 设置到它的每个邻居的成本度量metric。
  3. 构造【DD数据库描述分组】,向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息。
  4. 如果DD分组中的摘要自己都有,则邻站不做处理;如果有没有的或者是更新的,则发送【LSR链路状态请求分组】请求自己没有的和比自己更新的信息。
  5. 收到邻站的LSR分组后,发送【LSu链路状态更新分组】进行更新。
  6. 更新完毕后,邻站返回一个【LSAck链路状态确认分组】进行确认。

只要一个路由器的链路状态发生变化:

  1. 泛洪发送【LSu链路状态更新分组】进行更新。
  2. 更新完毕后,其他站返回一个【LSAck链路状态确认分组】进行确认。
  3. 使用Dijkstra根据自己的链路状态数据库构造到其他节点间的最短路径。

其他特点

  • OSPF直接用IP数据报传送
  • 每隔30min,要刷新一次数据库中的链路状态。
  • 由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系。因此当互联网规模很大时,OSPF协议要比距离向量协议RIP好得多
  • OSPF不存在坏消息传的慢的问题,它的收敛速度很快。

边界网关协议—BGP协议

自治系统之间的使用的协议就是BGP协议。

交换对象

交换信息的过程

BGP所交换的网络可达性的信息就是要到达某个网络所要经过的一系列AS。当BGP发言人互相交换了网络可达性的信息后,各BGP发言人就根据所采用的策略从收到的路由信息中找出到达各AS的较好路由。如图所示。

特点

  • BGP支持CIDR,因此BGP的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。
  • 在 BGP刚刚运行时,BGP的邻站是交换整个的 BGP路由表。但以后只需要在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销都有好处。

BGP协议报文格式

BGP-4的四种报文

RIP、OSPF、BGP协议比较

  • RIP是一种分布式的基于距离向量的内部网关路由选择协议,通过广播UDP报文来交换路由信息。
  • OSPF是一个内部网关协议,要交换的信息量较大,应使报文的长度尽量短,所以不使用传输层协议(如UDP或TCP),而是直接采用IP
  • BGP是一个外部网关协议,在不同的自治系统之间交换路由信息,由于网络环境复杂,需要保证可靠传输所以采用TCP

IP组播

IP数据报的三种传输方式

  • 单播: 一对一
  • 广播: 一对多(多指的所有)
  • 组播: 一对多(多指的特定主机)

  • 以用户看视频为例,进一步了解单播、广播和多播三种传输方式
  • 为了能够支持像视频点播和视频会议这样的多媒体应用,网络必须实施某种有效的组播机制。
  • 使用多个单播传送来仿真组播总是可能的,但这会引起主机上大量的处理开销和网络上太多的交通量。
  • 人们所需要的组播机制是让源计算机一次发送的单个分组可以抵达用一个组地址标识的若干目标主机,并被它们正确接收。

IGMP协议和组播路由选择协议

IGMP协议让路由器知道本局域网上是否有主机(的进程)参加或退出了某个组播组

IGMP工作阶段

组播路由选择协议

组播路由选择选择协议常用的三种路由算法

移动IP

移动IP的相关术语


移动IP技术是移动结点(计算机/服务器等)以固定的网络IP地址,实现跨越不同网段的漫游功能,并保证了基于网络IP的网络权限在漫游过程中不发生任何改变。

  • 移动结点 具有永久IP地址的移动设备。
  • 归属代理(本地代理) 一个移动结点拥有的就“居所”称为归属网络,在归属网络中代表移动节点执行移动管理功能的实体叫做归属代理。
  • 外部代理(外地代理)在外部网络中帮助移动节点完成移动管理功能的实体称为外部代理。
  • 永久地址(归属地址/主地址)移动站点在归属网络中的原始地址。
  • 转交地址(辅地址)移动站点在外部网络使用的临时地址。

2.通信过程
A进入外部网络


A进入下一个外部网络或者回到了归属网络

网络层设备

网络层设备主要是路由器。

路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组

三个设备之间的区别

路由表与路由转发

路由表根据路由选择算法得出的,主要用途是路由选择,总用软件来实现。结构如下图所示。

转发表由路由表得来,可以用软件实现,也可以用特殊的硬件来实现。转发表必须包含完成转发功能所必需的信息,在转发表的每一行必须包含从要到达的目的网络到输出端口和某些MAC地址信息的映射

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/704803.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

openh264 编码器源码分析:WelsCodeOneSlice 函数

介绍 功能&#xff1a;openh264 编码每个 slice 的核心函数原型&#xff1a; int32_t WelsCodeOneSlice (sWelsEncCtx* pEncCtx, SSlice* pCurSlice, const int32_t kiNalType)参数&#xff1a; pEncCtx&#xff1a;指向编码上下文结构体sWelsEncCtx的指针&#xff0c;包含编…

gpt、llama大模型模型结构细节探索

参考&#xff1a; https://github.com/naklecha/llama3-from-scratch&#xff08;一定要看看&#xff09; https://github.com/karpathy/build-nanogpt/blob/master/play.ipynb 视频&#xff1a; https://www.youtube.com/watch?vl8pRSuU81PU https://tiktokenizer.vercel…

Vitis HLS 学习笔记--移除内存分配malloc

目录 1. 简介 2. 示例解析 2.1 源码解释 2.2 malloc 分析 2.3 替代方案分析 3. 总结 1. 简介 Vitis HLS 也不支持动态创建或删除 C/C 对象&#xff08;用于综合&#xff09;。 本文探究如何在C/C代码中避免使用显式的malloc函数来分配内存。在硬件设计和FPGA开发中&…

b站视频下载到电脑本地mp4格式,b站视频下载到手机相册

有时候我们想把网站上的视频下载到电脑或手机&#xff0c;其实有多种方法可供选择。本文将详细介绍几种常见的下载方式&#xff0c;并探讨它们的优缺点&#xff0c;帮助读者根据自己的需求选择最适合的下载方法。 方法一&#xff1a; 1、使用 "小白兔视频格式在线转换网站…

LogicFlow 学习笔记——3. LogicFlow 基础 节点 Node

节点 Node LogicFlow 内置了一些基础节点&#xff0c;开发者在实际应用场景中&#xff0c;可以基于这些基础节点&#xff0c;定义符合自己业务逻辑的节点。 认识基础节点 LogicFlow是基于svg做的流程图编辑框架&#xff0c;所以我们的节点和连线都是svg基本形状&#xff0c;…

中电联系列四:rocket手把手教你理解中电联协议!

分享《慧哥的充电桩开源SAAS系统&#xff0c;支持汽车充电桩、二轮自行车充电桩。》 电动汽车充换电服务信息交换 第4部分&#xff1a;数据传输与安全 Interactive of charging and battery swap service information for electric vehicle Part 4:Data transmission and secu…

nosql数据库的特点

NoSQL简介 NoSQL是一种不同于关系数据库的数据库管理系统设计方式,是对非关系型数据库的统称,它所采用的数据模型并非传统关系数据库的关系模型,而是类似键/值、列族、文档等非关系模型。NoSQL数据库没有固定的表结构,通常也不存在连接操作,也没有严格遵守ACID约束。因此…

Redis高性能原理:Redis为什么这么快?

目录 前言&#xff1a; 一、Redis知识系统观 二、Redis为什么这么快&#xff1f; 三、Redis 唯快不破的原理总结 四、Redis6.x的多线程 前言&#xff1a; Redis 为了高性能&#xff0c;从各方各面都进行了优化。学习一门技术&#xff0c;通常只接触了零散的技术点&#xff…

用ChatGPT 4o画漂亮的燃尽图代码

把代码给ChatGPT&#xff0c;然后他就会帮我生成出来了。 而且图是动态的&#xff0c;可以调整颜色文字之类的内容 # Given data for Sprint 5 Progress data_sprint_5 {User Story: [BEAN-40, BEAN-42, BEAN-41, BEAN-22, BEAN-33, BEAN-44, BEAN-10, BEAN-26, BEAN-37, BEA…

【学术小白成长之路】03三方演化博弈(基于复制动态方程)均衡点与稳定性分析

从本专栏开始&#xff0c;笔者正式研究演化博弈分析&#xff0c;其中涉及到双方演化博弈分析&#xff0c;三方演化博弈分析&#xff0c;复杂网络博弈分析等等。 先阅读了大量相关的博弈分析的文献&#xff0c;总结了现有的研究常用的研究流程&#xff0c;针对每个流程进行拆解。…

Sqlite3入门和c/c++下使用

1. SQLite3基本介绍 1.1 数据库的数据类型 1.2 基本语法 1. 创建数据表格 create table 表名(字段名 数据类型&#xff0c; 字段名 数据类型)&#xff1b; create table student(id int, name varchar(256), address text, QQ char(32)); 2. 插入数据 insert into 表名 valu…

手机流畅运行470亿参数大模型,上交大发布PowerInfer-2推理框架,性能提升29倍

苹果一出手&#xff0c;在手机等移动设备上部署大模型迅速成为行业焦点。 目前&#xff0c;移动设备上运行的模型相对较小&#xff08;苹果的是3B&#xff0c;谷歌的是2B&#xff09;&#xff0c;并且消耗大量内存&#xff0c;这在很大程度上限制了其应用场景。 即使是苹果&…

运营商二要素核验-手机号机主姓名核验接口-运营商二要素核验接口

通过电信运营商验证手机号码与姓名是否一致。广泛用于实名注册、风控审核等场景&#xff0c;如电商、游戏、直播、金融等需要用户实名认证的场景。支持携号转网核验。 更新周期&#xff1a;联通T1 电信T3 移动T3~5 均为工作日 接口地址&#xff1a; https://www.wapi.cn/api_de…

RabbitMQ系列-rabbitmq无法重新加入集群,启动失败的问题

当前存在3个节点&#xff1a;rabbitmq5672、rabbitmq5673、rabbitmq5674 当rabbitmq5673节点掉线之后&#xff0c;重启失败 重启的时候5672节点报错如下&#xff1a; 解决方案 在集群中取消失败节点 rabbitmqctl forget_cluster_node rabbitrabbitmq5673删除失败节点5673的…

木头姐预测:2029年特斯拉股价将达2600美元,市值8.2万亿美元

ARK预计特斯拉将在未来两年内推出robotaxi服务&#xff0c;并估计到2029年特斯拉近90%的市值和盈利将归功于robotaxi业务。此外研究表明&#xff0c;FSD模式下的特斯拉比人类驾驶的特斯拉安全约5倍&#xff0c;比道路上的普通汽车安全约16倍。 北京时间12日晚&#xff0c;木头姐…

【课程总结】Day9(上):深度学习基本流程

前言 在上一篇课程《【课程总结】Day7&#xff1a;深度学习概述》中&#xff0c;我们了解到&#xff1a; 模型训练过程→本质上是固定w和b参数的过程&#xff1b;让模型更好→本质上就是让模型的损失值loss变小&#xff1b;让loss变小→本质上就是求loss函数的最小值&#xf…

Java中ArrayList(顺序表)的自我实现(如果想知道Java中怎么自我实现ArrayList,那么只看这一篇就足够了!)

前言&#xff1a;在 Java 编程中&#xff0c;ArrayList 是一种非常常用的数据结构&#xff0c;它提供了动态数组的实现方式&#xff0c;可以方便地存储和操作数据。相比于传统的数组&#xff0c;ArrayList 具有更多的灵活性和便利性&#xff0c;可以根据需要动态地调整大小&…

构建 deno/fresh 的 docker 镜像

众所周知, 最近 docker 镜像的使用又出现了新的困难. 但是不怕, 窝们可以使用曲线救国的方法: 自己制作容器镜像 ! 下面以 deno/fresh 举栗, 部署一个简单的应用. 目录 1 创建 deno/fresh 项目2 构建 docker 镜像3 部署和测试4 总结与展望 1 创建 deno/fresh 项目 执行命令…

嵌套查询(一)-谓词IN、量词ANY、量词ALL

一、在多个表之间进行数据查询&#xff0c;除了可以使用连接查询之外&#xff0c;也可以使用嵌套查询&#xff0c;那么什么是嵌套查询呢&#xff1f;如何使用嵌套查询呢&#xff1f; 1、将一个SELECT-FROM查询&#xff0c;嵌套在另一个SELECT查询语句中&#xff0c;那么这个SE…

响应式企业网站建站系统源码 模版丰富+一站式建站 全开源可二次开发 带源码包+搭建部署教程

系统概述 在数字化转型的浪潮中&#xff0c;企业官网作为品牌展示、产品推广及客户服务的重要窗口&#xff0c;其建设质量直接影响着企业的线上形象与市场竞争力。响应式企业网站建站系统源码的出现&#xff0c;为企业提供了一种高效、灵活且成本可控的建站解决方案。 代码示…