网络层协议【IP协议】

全文目录

  • 基本概念
  • IP协议
    • IPv4 协议头格式:
    • 分片
      • 发送方进行分片:
      • 识别IP分片:
      • 组装IP分片:
  • 网段划分
    • DHCP技术
    • IP分类
  • 私有IP和共有IP
      • 1. 私有IP地址(Private IP Address):
      • 2. 公网IP地址(Public IP Address):
      • 应用场景:
  • 路由
      • 1. **路由的定义**:
      • 2. **路由器(Router)**:
      • 3. **路由表**:
      • 4. **静态路由 vs 动态路由**:
      • 5. **路由协议**:
      • 6. **默认路由**:
      • 7. **分组转发**:

基本概念

在这里插入图片描述

  1. 主机 (Host)

主机通常指在网络上的任何计算设备,能够发送或接收数据。这包括了各种设备,如个人计算机、服务器、手机和其他连接到网络的智能设备。

特点:

  • 通常有一个或多个网络接口。
  • 有一个或多个IP地址。
  • 可以运行各种应用程序和服务。
  1. 路由器 (Router)

路由器是网络硬件设备,负责在不同网络之间转发数据包。它根据数据包的目的地(即IP地址)来决定如何将数据包转发到其最终目标。

特点:

  • 拥有路由表,该表决定如何将数据包从一个网络转发到另一个网络。
  • 可以连接多个网络,并在它们之间转发数据包。
  • 功能不仅仅是简单地连接网络,还包括其他高级功能,如网络地址转换(NAT)、防火墙和VPN支持。
  1. 节点 (Node)

节点是网络中的一个连接点,可以是任何设备,例如计算机、打印机或路由器,只要它可以发送、接收或转发信息。在许多情境下,术语"节点"是一个更通用的术语,可能指的是主机、交换机、路由器或其他网络设备。

特点:

  • 在物理网络中,每一个连接到网络的设备都可以视为一个节点。
  • 在数据链路层,例如Ethernet,每个节点都有一个唯一的物理地址,称为MAC地址。
  • 在网络层,每个节点(如果参与IP通信)都有一个或多个IP地址。

IP协议

在这里插入图片描述

IP协议头是IP包结构中的一个重要部分,用于包含与数据包传输相关的各种信息。以下是IPv4协议头的格式及各字段的详细说明:

IPv4 协议头格式:

  1. 版本 (Version, 4位)

    • 描述IP协议的版本。IPv4的版本字段的值为4。
  2. 头长度 (Header Length/IHL, 4位)

    • 表示头部有多少32位字长。通常的头部长度是5(即20字节),但如果使用了选项字段,这个值可能会增加。
  3. 服务类型 (Type of Service/TOS, 8位)

    • 描述数据包的优先级及请求的服务类型,如吞吐量、可靠性等。
  4. 总长度 (Total Length, 16位)

    • 表示整个数据包(包括头部和数据)的总字节数。
  5. 标识 (Identification, 16位)

    • 用于区分片段的不同数据包。
  6. 标志 (Flags, 3位)

    • 控制和标识片段。其中包括"不分片"和"更多片段"两个标志位。
  7. 片偏移 (Fragment Offset, 13位)

    • 指示当前片段相对于原始数据包开头的偏移。
  8. 生存时间 (Time to Live/TTL, 8位)

    • 设置数据包在网络中的存活时间。每经过一个路由器,该值减1,当值为0时,数据包被丢弃。
  9. 协议 (Protocol, 8位)

    • 定义在数据部分使用的协议,例如TCP、UDP等。
  10. 头检验和 (Header Checksum, 16位)

    • 用于错误检测。如果头部被篡改,数据包会被丢弃。
  11. 源IP地址 (Source IP Address, 32位)

    • 发送数据包的主机或网络的IP地址。
  12. 目的IP地址 (Destination IP Address, 32位)

    • 数据包的目标主机或网络的IP地址。
  13. 选项 (Options, 变长)

    • 这不是一个必须的字段,但在某些情况下,如记录路由、时间戳等,可以使用这个字段。
  14. 填充 (Padding)

    • 确保头部的长度为32位的整数倍。

上述字段为IPv4协议头的基本组成部分,提供了数据包传输所需的各种信息,包括源地址、目标地址、生存时间和其他重要参数。IPv6协议头有所不同,其中包含了一些新的字段和特性,但基本的思想与IPv4相似。

分片

IP分片的过程是一种在不同MTU(最大传输单元)的网络间传输大数据包时必须的机制。下面是发送方进行分片和接收方重新组装分片的详细过程:

发送方进行分片:

在这里插入图片描述

  1. 确定分片大小:发送方首先要知道数据链路的MTU。然后,基于这个MTU,它会确定每个片段的大小。每个分片都会有自己的IP头,所以实际的数据部分会比MTU小IP头的大小。

  2. 填写IP头:每个分片都有自己的IP头。大多数字段,如源地址、目标地址、总长度等,都会与原始数据包相同。但某些字段,如标志和片段偏移,会有所不同。

  3. 设置标志和偏移:在IP头中,有一个叫做“标志”的字段,其中一个位被称为“更多片段”(MF)位。除了最后一个片段,所有片段的MF位都被设置为1。每个片段都有一个“片段偏移”字段,该字段表示该片段在原始数据包中的字节偏移。

  4. 发送分片:一旦分片完成,发送方会像发送正常的IP数据包那样发送每个片段。

以下是如何识别和组装IP分片的详细步骤:

识别IP分片:

  1. 查看标识字段:在IP协议头中,有一个叫“标识”(Identification)的字段。此字段的值在同一个原始数据包的所有分片中都是相同的。当接收端收到分片时,它首先会查看该字段以确定哪些分片属于同一个原始数据包。

  2. 标志字段:IP协议头中的“标志”字段有一个特定的位叫做“更多片段”(MF, More Fragments)。如果MF位设置为1,这意味着还有更多的片段在途中。如果MF位是0,那么它是最后一个或唯一的片段。

  3. 片段偏移:每个IP分片都有一个“片段偏移”字段,表示该片段在原始数据包中的字节偏移。这允许接收端按正确的顺序组装片段。

总结:
当一个IP数据包经过分片时,它会被拆分为多个片段。每个片段都有自己的IP头,而IP头中的特定字段(如标志和片段偏移)将用于标识该片段的特性和位置。以下是根据不同情况列举的例子:

  1. 不是分片(未分片的完整数据包):

    • 标识字段(Identification Field): 唯一值。
    • 标志字段(Flags Field):
      • DF (Don’t Fragment): 可以是0或1,取决于是否希望该数据包被分片。
      • MF (More Fragments): 0,因为这是一个完整的数据包,没有其他片段。
    • 片段偏移字段(Fragment Offset Field): 0,因为这是一个完整的数据包。
  2. 分片开头(第一个片段):

    • 标识字段: 与原始数据包相同的唯一值。
    • 标志字段:
      • DF: 0,因为数据包已经被分片了。
      • MF: 1,表示后面还有其他片段。
    • 片段偏移字段: 0,因为这是第一个片段,它开始于原始数据包的起始位置。
  3. 分片中间部分:

    • 标识字段: 与原始数据包相同的唯一值。
    • 标志字段:
      • DF: 0。
      • MF: 1,表示后面还有其他片段。
    • 片段偏移字段: 不为0,表示这个片段在原始数据包中的起始位置。例如,如果这是第二个片段,并且每个片段包含100字节的数据,则片段偏移可能为12(因为每个片段的数据量为8字节块,所以100/8=12.5,取整数部分)。
  4. 分片结尾(最后一个片段):

    • 标识字段: 与原始数据包相同的唯一值。
    • 标志字段:
      • DF: 0。
      • MF: 0,表示这是最后一个片段。
    • 片段偏移字段: 表示这个片段在原始数据包中的起始位置,值大于之前的片段。

通过检查这些字段,接收端可以确定一个IP数据包的片段位置及其在原始数据包中的相对位置,从而正确地组装完整的数据包。

组装IP分片:

组装IP分片是一个重要的过程,以确保原始数据包在传输结束后可以完整无误地重建。以下是组装IP分片的详细步骤:

  1. 分片接收:

    • 当一个分片到达目的地时,接收端首先会检查其IP头部,特别是标识字段。这个字段对于同一个原始数据包的所有片段都是相同的。
    • 接收端使用这个标识字段来查找是否已经收到了来自同一个原始数据包的其他片段。如果是第一个到达的片段,接收端会为该原始数据包创建一个新的缓冲区或结构。
  2. 缓冲区和定时器:

    • 当新的缓冲区被创建时,接收端通常还会启动一个定时器。这个定时器用于等待所有的片段到达。如果在指定的时间内所有片段都没有到达,那么接收端可能会放弃组装,并删除已经接收的片段。
  3. 片段排序:

    • 当一个新的片段到达时,接收端会查看其片段偏移字段,这个字段表示片段在原始数据包中的位置。接收端使用这个字段来确定片段在缓冲区中的正确位置。
    • 例如,如果片段偏移为0,则这是第一个片段;如果片段偏移为10,则该片段应放在缓冲区的第10个块位置,以此类推。
  4. 检查是否所有片段都已接收:

    • 每当新的片段被加入缓冲区时,接收端都会检查是否所有的片段都已经到达。这通常通过检查缓冲区中的空白或缺失块来实现。
    • 如果标志字段MF(更多片段)标志为0,表示这是最后一个片段,那么接收端可以确定原始数据包的总长度。
  5. 数据包重组:

    • 一旦所有片段都已到达,接收端开始组装完整的数据包。这涉及到将缓冲区中的所有片段按照它们的片段偏移值的顺序拼接在一起。
    • 通常,只有一个IP头会被保留(通常是第一个片段的头),而其他片段的头会被丢弃。
  6. 完成组装和传递:

    • 一旦数据包被完全组装,它就会被传递给上层的协议,例如TCP或UDP,进行进一步处理。

总之,IP分片的组装是一个详细和精确的过程,确保数据的完整性和准确性在网络传输中得到保证。

网段划分

IP地址分为两个部分, 网络号和主机号

  • 网络号: 保证相互连接的两个网段具有不同的标识;
  • 主机号: 同一网段内, 主机之间具有相同的网络号, 但是必须有不同的主机号;

在这里插入图片描述

对于相同子网中的设备,网络号可以相同,但是主机号不能相同,DHCP技术就是实现这一问题的关键:

DHCP技术

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一种动态分配IP地址的技术。DHCP允许计算机在加入新网络时自动获取IP地址和其他网络配置,无需管理员手动配置。以下是DHCP的主要功能:

  1. 动态IP分配:当客户端加入网络时,DHCP服务器可以动态分配IP地址,这意味着客户端可以“租用”IP地址一段时间,租期结束后IP地址可能会被回收或重新分配。

  2. 静态IP分配:虽然DHCP的主要优势是动态分配地址,但它也支持基于客户端的MAC地址来静态分配特定的IP地址。

  3. IP地址重用:当DHCP客户端离开网络或IP地址的租期到期时,该地址可以被DHCP服务器回收并分配给其他客户端。

  4. 租期管理:每个DHCP分配的IP地址都有一个租期,客户端必须在租期到期之前与DHCP服务器续约,以继续使用当前的IP地址。

  5. 网络配置:除了IP地址外,DHCP还可以为客户端提供其他网络配置,如子网掩码、默认网关、DNS服务器地址、域名和其他许多选项。

  6. 集中管理:通过使用DHCP,网络管理员可以集中管理和分配IP地址和网络配置,从而减少了配置错误和地址冲突的可能性。

  7. 支持多个子网:一个DHCP服务器可以为多个子网或VLAN提供服务,这通过使用DHCP中继代理来实现。

  8. 自动配置:新的设备或客户端可以简单地连接到网络,而无需手动配置,因为DHCP服务器将自动提供所需的所有配置。

简而言之,DHCP提供了一种自动和集中的方式来管理和分配网络中的IP地址和其他相关的配置。

IP分类

IP地址基于其二进制表示和预定用途被分为五类:A、B、C、D和E。以下是这五类IP地址的概述:

在这里插入图片描述

  • A类:0.0.0.0 到 127.255.255.255,用于支持非常大的网络,只有一个字节用于网络地址,其余三个字节用于主机地址。特别注意的是,127.0.0.1 到 127.255.255.255 是为loopback地址预留的,主要用于本地测试。

  • B类:128.0.0.0 到 191.255.255.255,用于中等大小的网络。前两个字节用于网络地址,后两个字节用于主机地址。

  • C类:192.0.0.0 到 223.255.255.255,用于小型网络。前三个字节用于网络地址,最后一个字节用于主机地址。

  • D类:224.0.0.0 到 239.255.255.255,这不是用于常规的主机IP地址,而是用于多播地址。

  • E类:240.0.0.0 到 255.255.255.255,这是为将来使用或实验性目的而保留的。

但是随着Internet的飞速发展,这种划分方案的局限性很快显现出来,大多数组织都申请B类网络地址, 导致B类地址很快就分配完了, 而A类却浪费了大量地址,针对这种情况提出了新的划分方案, 称为CIDR(Classless Interdomain Routing):

  • 引入一个额外的子网掩码(subnet mask)来区分网络号和主机号;
  • 子网掩码也是一个32位的正整数. 通常用一串 “0” 来结尾;
  • 将IP地址和子网掩码进行 “按位与” 操作, 得到的结果就是网络号;
  • 网络号和主机号的划分与这个IP地址是A类、B类还是C类无关;
    在这里插入图片描述

私有IP和共有IP

私有IP地址和公网IP地址是互联网上常用的两种IP地址分类。它们的定义和用途如下:

1. 私有IP地址(Private IP Address):

私有IP地址是专为组织内部的网络设计的,不应该在公共互联网上路由。它们允许组织内的设备与内部网络中的其他设备通信,但这些地址不是全球唯一的。为了与互联网上的其他设备通信,使用私有IP地址的设备需要通过某种形式的地址转换(如NAT - 网络地址转换)。

私有IP地址范围是:

  • A类:10.0.0.0 到 10.255.255.255
  • B类:172.16.0.0 到 172.31.255.255
  • C类:192.168.0.0 到 192.168.255.255

2. 公网IP地址(Public IP Address):

公网IP地址是在整个互联网上是唯一的,可以被路由。这意味着每个公网IP地址都可以从互联网上的任何位置直接访问。通常,互联网服务提供商(ISP)会为客户分配这些地址。如果一个设备(例如,服务器)需要直接从互联网上的其他地方可访问,它通常会有一个公网IP地址。

公网IP地址的范围除了上述的私有IP地址范围外,还包括整个IPv4地址空间。

应用场景:

在许多家庭和企业网络中,内部设备(如电脑、手机和其他智能设备)通常被分配私有IP地址。这些设备通过路由器与互联网通信,路由器具有公网IP地址。路由器使用NAT来将内部设备的私有IP地址转换为它自己的公网IP地址,以便这些设备可以访问互联网。

这种设置不仅允许多个设备共享单个公网IP地址,还提供了一定程度的安全性,因为私有IP地址的设备不能直接从互联网上访问(除非设置了特定的端口转发规则)。

路由

在这里插入图片描述

路由是计算机网络中的一个核心概念,涉及决定数据包如何从源地址传输到目标地址。这里是关于路由的一些基本概念和细节:

1. 路由的定义:

路由是决定如何将数据包从源主机传输到目标主机的过程。这个决策基于路由表,这是一个数据库,指示如何到达特定的网络和主机。

2. 路由器(Router):

路由器是一个硬件设备,负责转发数据包。它检查数据包的目标IP地址,然后使用其路由表决定最佳路径以及下一个要发送到的设备或接口。

3. 路由表:

路由表是存储在路由器或某些主机中的信息集合,用于决定如何转发数据包。它包含IP地址、子网、下一个跳转点等信息。

  • 路由表可以使用route命令查看

  • 如果目的IP命中了路由表, 就直接转发即可;

  • 路由表中的最后一行,主要由下一跳地址和发送接口两部分组成,当目的地址与路由表中其它行都不匹配时,就按缺省路由条目规定的接口发送到下一跳地址。

路由表条目的含义:

在这里插入图片描述

  • 目的网络(Destination):要访问的远程网络的IP地址。
  • 网络掩码(Netmask):用于区分IP地址的网络部分和主机部分。
  • 网关(Gateway):路由器的IP地址,数据包会通过此地址路由到目的网络。
  • 接口(Interface):本地网络接口的IP地址,数据包会从此地址发送。
  • 度量值(Metric):度量值越小,路由的优先级越高。系统将选择度量值最小的路由。

4. 静态路由 vs 动态路由:

  • 静态路由: 这些路由是手动配置的,并不会根据网络更改而自动更新。
  • 动态路由: 动态路由使用路由协议(如RIP、OSPF、EIGRP、BGP等)自动学习和调整路由。它们可以根据网络拓扑的变化自动更新。

5. 路由协议:

路由协议定义了路由器如何与其他路由器通信,以及如何共享路由信息。常见的路由协议包括RIP(路由信息协议)、OSPF(开放最短路径优先)、EIGRP(增强内部网关路由协议)和BGP(边界网关协议)。

6. 默认路由:

默认路由是路由表中的一个特殊条目,当路由表中没有特定的路由匹配数据包的目标地址时,该条目会被使用。它通常指向一个“最后的机会”网关,这通常是一个连接到互联网的设备。

7. 分组转发:

当路由器接收到一个数据包时,它会查看目标IP地址,然后在路由表中查找最佳路径。一旦决定了正确的出口接口和下一个跳转点,数据包就会被转发。

路由确保了互联网的可靠和高效运作,允许数据从一个地方传输到另一个地方,即使这两个地方之间有数千公里的距离。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

408操作系统笔记

一操作系统概述 1.操作系统的概念 操作系统:是控制和管理整个计算机系统 的硬件和软件资源 ,合理地组织,调度计算机的工作和资源的分配,为用户和其他软件提供方便接口和环境的程序集合,是计算机系统中最基本的系统软…

UE5 日记(人物连招:蒙太奇动画通知(含视频链接))

教程https://www.youtube.com/watch?vsWpENaVGj2M&listPLiSlOaRBfgkcPAhYpGps16PT_9f28amXi&index10&ppiAQB 相关蓝图 连招逻辑 动画通知类 逻辑分析 1.用户输入 已搭载战斗系统模块,可以收到输入指令 2.连击 第一次攻击: 第一次攻击,…

windows使用FindWindow函数查找窗口句柄

理解什么是句柄? 对于“句柄”,之前一直停留在一知半解的认识层面,也说不清具体概念,只知道它是一个标识符,用来标记对象或者说某个东西的。只知其名不知其意。目前学习windows编程,对“句柄”做一个完整的…

2.Docker的安装

1.认识Docker的基本架构 下面这张图是docker官网上的,介绍了整个Docker的基础架构,我们根据这张图来学习一下docker的涉及到的一些相关概念。 1.1 Docker的架构组成 Docker架构是由Client(客户端)、Docker Host(服务端)、Registry(远程仓库)组成。 …

图扑 HT for Web 手机端运维管理系统

随着信息技术的快速发展,网络技术的应用涉及到人们生活的方方面面。其中,手机运维管理系统可提供数字化、智能化的方式,帮助企业和组织管理监控企业的 IT 环境,提高运维效率、降低维护成本、增强安全性、提升服务质量,…

我在Vscode学OpenCV 初步接触

OpenCV是一个开源的计算机视觉库,可以处理图像和视频数据。它包含了超过2500个优化过的算法,用于对图像和视频进行处理,包括目标识别、面部识别、运动跟踪、立体视觉等。OpenCV支持多种编程语言,包括C、Python、Java等&#xff0c…

利用两个栈s1,s2模拟一个队列时,如何用栈的运算来实现该队列的运算?写出模拟队列插入和删除的函数。一个栈s1用于插入元素,另一个栈s2用于删除元素

利用两个栈s1,s2模拟一个队列时,如何用栈的运算来实现该队列的运算?写出模拟队列插入和删除的函数。一个栈s1用于插入元素,另一个栈s2用于删除元素。 前置知识点(栈定义,及出栈入栈函数) #def…

【小白专用】Mysql的安装配置教程(详细)

首先简单概述分为几个步骤: 一、下载Mysql 二、安装Mysql 三、验证Mysql安装是否成功 四、 配置环境变量 五、验证配置环境变量是否成功 一、下载Mysql 要在Windows或Mac上安装MySQL,首先从MySQL官方网站下载最新的MySQL Community Server版本&…

降低毕业论文写作压力的终极指南

亲爱的同学们,时光荏苒,转眼间你们即将踏入毕业生的行列。毕业论文作为本科和研究生阶段的重要任务,不仅是对所学知识的综合运用,更是一次对自己学术能力和专业素养的全面考验。然而,论文写作常常伴随着压力和焦虑&…

如何确认目标期刊被SCI或EI收录?

原创内容,仅供参考,欢迎大家批评指正! 目录 通过Web of Science查询SCI期刊1. 登录Web of Science2. 查找目标期刊3. 查看期刊信息 通过Scopus查询EI期刊1. 登录Scopus2. 查找目标期刊3. 查看期刊信息 参考 通过Web of Science查询SCI期刊 1…

Django实战项目-学习任务系统-兑换物品管理

接着上期代码框架,开发第5个功能,兑换物品管理,再增加一个学习兑换物品表,主要用来维护兑换物品,所需积分,物品状态等信息,还有一个积分流水表,完成任务奖励积分,兑换物品…

golang的类型断言

前言:原因很简单,写的代码panic了。报错如下。为此专门看下golang的类型断言。 “[PANIC]interface conversion: interface {} is string, not float64”。 1、类型断言(assertion) 所谓“类型断言”即判断一个变量是不是某个类型的实例(简单来讲就是判…

【前端早早聊直播回顾】Harmony Next 与 Flutter 的不解之缘

Hello 大家好,我是 Flutter GDE 郭树煜,本次要分享的话题是关于鸿蒙与 Flutter 的故事,可能没接触过的会感觉有点懵,Harmony 和 Flutter 有啥关系,它们怎么会被放到一起讲了呢?接下来就让我们来聊聊这个问题…

世界电信日 | 人大金仓助力中国移动租赁核算系统升级上线

世界电信日 5月17日恰逢第五十四个世界电信日,运营商作为新型基础设施建设以及维护网信安全的主力军,掌握关键核心技术,实现科技自立自强刻不容缓。 作为数据库领域国家队,人大金仓坚持原始创新,低难度、低成本、低风…

第二证券:怎么判断股票浮筹多少?

股票的浮筹是指公司的股份中,揭露生意在市场上的股份,一般是指除了大股东和筹码安稳的组织等,其他组织和个人能够自在生意的股份。在出资股票时,了解公司的浮筹是非常重要的,由于它直接联络到股票的供需联络和股价动摇…

el-tabel表格加个多选框

<template><div><el-checkbox v-model"checked" :disabled"checkedDis" change"onAllSelectChange">多选框</el-checkbox>点击多选框&#xff0c;禁用列表复选框<el-table ref"multipleTable" :data"…

Nginx+keepalived实现七层的负载均衡

1.keepalived VRRP 介绍 keepalived是什么&#xff1f; keepalived是集群管理中保证集群高可用的一个服务软件&#xff0c;用来防止单点故障。 keepalived工作原理 keepalived是以VRRP协议为实现基础的&#xff0c;VRRP全称Virtual Router Redundancy Protocol&…

CMMI/ASPICE认证咨询及工具服务

服务概述 质量专家戴明博士的名言“如果你不能描述做事情的过程&#xff0c;那么你不知道你在做什么”。过程是连接有能力的工程师和先进技术的纽带&#xff0c;因此产品开发过程直接决定了产品的质量和研发的效率。 经纬恒润可结合多体系要求&#xff0c;如IATF16949\ISO26262…

解决VSCode使用SSH远程连接时无法指定用户名的问题

Windows 11自带OpenSSH客户端&#xff0c;和VSCode配合得很好&#xff0c;没有这个问题。 今天要说的是旧版本Windows 7/8/10系统遇到的问题。 PS: Windows 7可以运行的最后版本是VSCode 1.80.2 由于Windows 7/8/10没有自带的OpenSSH客户端&#xff0c;但可以调用MSYS环境下的…

PyQt界面开发的终极指南

文章目录 前言一、PyQt 简介二、PyQt 与 Qt 的蒙娜丽莎三、PyQt 布局管理器3.1、简介3.2、项目实战3.2.0、添加伸缩项 layout.addStretch&#xff1a;控制布局中组件之间的间距。3.2.1、垂直布局管理器 QVBoxLayout&#xff1a;控件按照从上到下的顺序排列3.2.2、水平布局管理器…