计算机网络6——应用层5 DHCP/SNMP

news2024/11/16 9:55:12

文章目录

  • 一、动态主机配置协议 DHCP
  • 二、简单网络管理协议 SNMP
    • 1、网络管理的基本概念
    • 2、管理信息结构SMI
      • 1)被管对象的命名
      • 2)被管对象的数据类型
      • 3)编码方法
    • 3、管理信息库 MIB
    • 4、SNMP的协议数据单元和报文

一、动态主机配置协议 DHCP

为了把协议软件做成通用的和便于移植的,协议软件的编写者不会把所有的细节都固定在源代码中。相反,他们把协议软件参数化。这就使得在很多台计算机上有可能使用同一个经过编译的二进制代码。一台计算机和另一台计算机的许多区别,都可以通过一些不同的参数来体现。在协议软件运行之前,必须给每一个参数赋值。

在协议软件中给这些参数赋值的动作叫作协议配置。一个协议软件在使用之前必须是已正确配置的。具体的配置信息有哪些则取决于协议栈。例如,连接到互联网的计算机的协议软件需要配置的项目包括:

  • IP 地址;
  • 子网掩码:
  • 默认路由器的 IP 地址;
  • 域名服务器的 IP地址。

为了省去给计算机配置IP地址的麻烦,我们能否在计算机的生产过程中,事先给每一台计算机配置好一个唯一的I地址呢(如同每一个以太网适配器拥有一个唯一的MAC 地址)?这显然是不行的。这是因为I地址不仅包括了主机号,而且还包括了网络号。一个IP地址指出了一台计算机连接在哪一个网络上。当计算机还在生产时,无法知道它在出厂后将被连接到哪一个网络上。因此,需要连接到互联网的计算机,必须对IP地址等项目进行协议配置。

用人工进行协议配置很不方便,而且容易出错。因此,应当采用自动协议配置的方法。

互联网现在广泛使用的是动态主机配置协议DHCP(Dyamic Host ConfigurationProtocol),它提供了一种机制,称为即插即用连网(plug-and-play networking)。这种机制允许一台计算机加入新的网络和获取IP地址而不用手工参与。DHCP最新的 RFC 文档还是互联网草案标准IRFC 2131-21321。

DHCP对运行客户软件和服务器软件的计算机都适用。当运行客户软件的计算机移至个新的网络时,就可使用 DHCP获取其配置信息而不需要手工干预。DHCP给运行服务器软件而位置固定的计算机指派一个永久地址,而当这计算机重新启动时其地址不改变。

DHCP使用客户服务器方式。需要地址的主机在启动时就向DHCP服务器广播发送发现报文(DHCPDISCOVER)(将目的IP地址置为全1,即 255.255.255.255),这时该主机就成为DHCP客户。发送广播报文是因为现在还不知道DHCP服务器在什么地方,因此要发现(DISCOVER)DHCP服务器的IP地址。这台主机目前还没有自己的IP地址,因此它将IP数据报的源IP地址设为全0。这样,在本地网络上的所有主机都能够收到这个广播报文但只有DHCP服务器才对此广播报文进行回答。DHCP服务器先在其数据库中查找该计算机的配置信息。若找到,则返回找到的信息。若找不到,则从服务器的IP地址池(addresspool)中取一个地址分配给该计算机。DHCP服务器的回答报文叫作提供报文(DHCPOFFER)表示“提供”了卫地址等配置信息。

但是我们并不愿意在每一个网络上都设置一个DHCP服务器,因为这样会使DHCP服务器的数量太多。因此现在是使每一个网络至少有一个DHCP中继代理(relay agent)(通常是一台路由器,如下图所示),它配置了 DHCP 服务器的IP地址信息。当 DHCP 中继代理收到主机 A 以广播形式发送的发现报文后,就以单播方式向DHCP服务器转发此报文,并等待其回答。收到DHCP服务器回答的提供报文后,DHCP中继代理再把此提供报文发回给主机 A。需要注意的是,下图只是个示意图。实际上,DHCP报文只是 UDP用户数据报的数据,它还要加上 UDP首部、IP数据报首部,以及以太网的 MAC 帧的首部和尾部后,才能在链路上传送。
在这里插入图片描述
DHCP服务器分配给DHCP客户的IP地址是临时的,因此DHCP客户只能在一段有限的时间内使用这个分配到的IP地址。DHCP协议称这段时间为租用期(lease period),但并没有具体规定租用期应取为多长或至少为多长,这个数值应由DHCP服务器自己决定。例如一个校园网的DHCP服务器可将租用期设定为1小时。DHCP服务器在给DHCP发送的提供报文的选项中给出租用期的数值。按照RFC2132的规定,租用期用4字节的二进制数字表示,单位是秒。因此可供选择的租用期范围从1秒到136年。DHCP客户也可在自己发送的报文中(例如,发现报文)提出对租用期的要求。

DHCP的详细工作过程如下图所示。DHCP客户使用的UDP端口是68,而DHCP服务器使用的 UDP 端口是 67。这两个 UDP 端口都是熟知端口。
在这里插入图片描述
下面按照上图中的注释编号(1至9)进行简单的解释。

  1. DHCP服务器被动打开UDP端口67,等待客户端发来的报文
  2. DHCP客户从UDP端口68发送 DHCP 发现报文
  3. 凡收到 DHCP发现报文的DHCP服务器都发出DHCP提供报文,因此DHCP客户可能收到多个 DHCP 提供报文。
  4. DHCP客户从几个DHCP服务器中选择其中的一个,并向所选择的DHCP服务器发送 DHCP请求报文。
  5. 被选择的 DHCP服务器发送确认报文DHCPACK。从这时起,DHCP客户就可以使用这个IP地址了。这种状态叫作已绑定状态,因为在DHCP客户端的IP地址和MAC地址已经完成绑定,并且可以开始使用得到的临时IP地址了。
    DHCP客户现在要根据服务器提供的租用期T设置两个计时器T和T,它们的超时时间分别是0.5T和0.875T。当超时时间到了就要请求更新租用期。
  6. 租用期过了一半(T时间到),DHCP客户发送请求报文DHCPREQUEST要求更新租用期。
  7. DHCP 服务器若同意,则发回确认报文DHCPACK。DHCP客户得到了新的租用期,重新设置计时器。
  8. DHCP服务器若不同意,则发回否认报文DHCPNACK。这时DHCP客户必须立即停止使用原来的IP地址,而必须重新申请IP地址(回到步骤2)。
    若DHCP服务器不响应步骤6的请求报文 DHCPREOUEST,则在租用期过了87.5%时(T,时间到),DHCP客户必须重新发送请求报文DHCPREOUEST(重复步骤6),然后又继续后面的步骤。
  9. DHCP客户可以随时提前终止服务器所提供的租用期,这时只需向DHCP服务器发
    送释放报文 DHCPRELEASE 即可

DHCP很适合于经常移动位置的计算机。当计算机使用Windows操作系统时,点击“控制面板”的“网络”图标就可以找到某个连接中的“网络”下面的菜单,找到 TCP/IE协议后点击其“属性”按钮,若选择“自动获得IP 地址”和“自动获得 DNS 服务器地址”选项,就表示是使用DHCP协议。

二、简单网络管理协议 SNMP

1、网络管理的基本概念

虽然网络管理还没有精确定义,但它的内容可归纳为:

网络管理包括对硬件、软件和人力的使用、综合与协调,以便对网络资源进行监视、测试、配置、分析、评价和控制,这样就能以合理的价格满足网络的一些需求,如实时运行
性能、服务质量等。网络管理常简称为网管。

我们可以看到,网络管理并不是指对网络进行行政上的管理。网络是一个非常复杂的分布式系统。这是因为网络上有很多不同厂家生产的、运行着多种协议的节点(主要是路由器),而这些节点还在相互通信和交换信息。网络的状态总是不断地变化着。可见,我们必须使用一种机制来读取这些节点上的状态信息,有时还要把一些新的状态信息写入到这些节点上。

下面简单介绍网络管理模型中的主要构件

管理站又称为管理器,是整个网络管理系统的核心,它通常是个有着良好图形界面的高性能的工作站,并由网络管理员直接操作和控制。所有向被管设备发送的命令都是从管理站发出的。管理站的所在部门也常称为网络运行中心NOC(NetworkOperations Center)。

管理站中的关键构件是管理程序(如下图中有字母M的椭圆形图标所示)。管理程序在运行时就成为管理进程。管理站(硬件)或管理程序(软件)都可称为管理者(manager)或管理器,所以这里的 manager 不是指人而是指机器或软件。网络管理员(administrator)才是指人大型网络往往实行多级管理,因而有多个管理者,而一个管理者一般只管理本地网络的设备。
在这里插入图片描述
在被管网络中有很多的被管设备(包括设备中的软件)。被管设备可以是主机、路由器打印机、集线器、网桥或调制解调器等。在每一个被管设备中可能有许多被管对象(Managed Obiect)。被管对象可以是被管设备中的某个硬件(例如,一块网络接口卡),也可以是某些硬件或软件(例如,路由选择协议)的配置参数的集合。被管设备有时可称为网络元素或简称为网元。在被管设备中也会有一些不能被管的对象(在下面的6.7.2节将会讲到对象命名树,所谓不能被管的对象就是不在对象命名树上的对象)。

在每一个被管设备中都要运行一个程序以便和管理站中的管理程序进行通信。这些运行着的程序叫作网络管理代理程序,或简称为代理(agent)(如上图中有字母A的几个圆形图标示)。代理程序在管理程序的命令和控制下,在被管设备上采取本地的行动。

在上图中还有一个重要构件就是网络管理协议,简称为网管协议。后面还要讨论它的作用。
简单网络管理协议 SNMP(Simple Network Management Protocol)中的管理程序和代理程序按客户服务器方式工作。

管理程序运行SNMP客户程序,而代理程序运行SNMP服务器程序。在被管对象上运行的SNMP服务器程序不停地监听来自管理站的SNMP客户程序的请求(或命令)。一旦发现了,就立即返回管理站所需的信息,或执行某个动作(例如,把某个参数的设置进行更新)。在网管系统中往往是一个(或少数几个)客户程序与很多的服务器程序进行交互。

关于网络管理有一个基本原理,这就是:

若要管理某个对象,就必然会给该对象添加一些软件或硬件,但这种“添加”对原有对象的影响必须尽量小些。

SNMP正是按照这样的基本原理来设计的。

SNMP发布于1988年。OSI虽然在这之前就已制定出许多的网络管理标准,但当时(到现在也很少)却没有符合OSL网管标准的产品。SNMP最重要的指导思想就是要尽可能简单。SNMP的基本功能包括监视网络性能、检测分析网络差错和配置网络设备等。在网络正常工作时,SNMP可实现统计、配置和测试等功能。当网络出故障时,可实现各种差错检测和恢复功能。经过近二十年的使用,SNMP不断修订完善,较新的版本是SNMP3,而前两个版本分别是SNMPV2和SNMPV1。但一般可简称为SNMP。SNMPv3 最大的改进就是安全特性。也就是说,只有被授权的人员才有资格执行网络管理的功能(如关闭某一条链路)和读取有关网络管理的信息(如读取一个配置文件的内容)。然而SNMP协议已相当庞大,一点也不“简单”,整个标准共有八个 RFC 文档[RFC 3411-3418,STD62]。因此这里只能给出一些最基本的概念。

若网络元素使用的不是SNMP协议而是另一种网络管理协议,那么SNMP协议就无法控制该网络元素。这时可使用委托代理(proxyagent)。委托代理能提供如协议转换和过滤操作等功能对被管对象进行管理。

SNMP 的网络管理由三个部分组成,即SNMP本身、管理信息结构SMI(StructureofManagement Information)和管理信息库MB(Management Information Base)。下面简述这三部分的作用。

SNMP定义了管理站和代理之间所交换的分组格式。所交换的分组包含各代理中的对象
(变量)名及其状态(值)。SNMP负责读取和改变这些数值。

SMI定义了命名对象和定义对象类型(包括范围和长度)的通用规则,以及把对象和对象的值进行编码的规则。这样做是为了确保网络管理数据的语法和语义无二义性。但从SMI的名称并不能看出它的功能。请注意,SMI并不定义一个实体应管理的对象数目,也不定义被管对象名以及对象名及其值之间的关联。

MIB在被管理的实体中创建了命名对象,并规定了其类型。

为了更好地理解上述的几个组成部分,可以把它们和程序设计进行一下对比。

我们在编程时要使用某种语言,而这种语言就是用来定义编程的规则。例如,一个变量名必须从字母开始而后面接着是字母数字。在网络管理中,这些规则由SMI来定义。

在程序设计中必须对变量进行说明。例如,intcounter,表示变量counter是整数类型。
MIB 在网络管理中就做这样的事情。MIB给每个对象命名,并定义对象的类型。

在编程中的说明语句之后,程序需要写出一些语句用来存储变量的值,并在需要时改变这些变量的值。协议SNMP在网络管理中完成这件任务。SNMP按照SMI定义的规则,存储、改变和解释这些已由 MIB 说明的对象的值。

总之,SMI建立规则,MIB对变量进行说明,而SNMP完成网管的动作。

下面就一一介绍上述的三个构件。

2、管理信息结构SMI

管理信息结构SMI是SNMP的重要组成部分。根据6.7.1节所讲,SMI的功能应当有三个,即规定:

  • 被管对象应怎样命名:
  • 用来存储被管对象的数据类型有哪些
  • 在网络上传送的管理数据应如何编码

1)被管对象的命名

SMI规定,所有的被管对象都必须处在对象命名树(object naming tree)上。下图给出了对象命名树的一部分。对象命名树的根没有名字,它的下面有三个顶级对象,都是世界上著名的标准制定单位,即ITU-T(过去叫作CCITT)和ISO,以及这两个组织的联合体,它们的标号分别是0到2。图中的对象名习惯上用英文小写表示。在ISO的下面的一个标号为3的节点是ISO认同的组织成员org。在其下面有一个美国国防部 dod(Department ofDefense)的子树(标号为6),再下面就是intermet(标号为1)。在只讨论 intermet 中的对象时,可只画出 internet 以下的子树,并在 intermet 节点旁边写上对象标识符 1.3.6.1 即可。
在这里插入图片描述
在 intermet 节点下面的标号为2的节点是 mgmt(管理)。再下面只有一个节点,即管理信息库 mib-2,其对象标识符为1.3.6.1.2.1。在mib-2下面包含了所有被 SNMP 管理的对象(见下面6.7.3节的讨论)。

2)被管对象的数据类型

SMI使用基本的抽象语法记法1(即ISO 制定的 ASN.1)来定义数据类型,但又增加了一些新的定义。因此 SMI既是 ASN,1的子集,又是ASN.1的超集。ASN1的记法很严格它使得数据的含义不存在任何可能的二义性。例如,使用ASN.1 时不能简单地说“一个具有整数值的变量”,而必须说明该变量的准确格式和整数取值的范围。当网络中的计算机对数据项并不都使用相同的表示时,采用这种精确的记法就尤其重要。

我们知道,任何数据都具有两种重要的属性,即值(value)与类型(type)。这里“值”是某个值集合中的一个元素,而“类型”则是值集合的名字。如果给定一种类型,则这种类型的一个值就是该类型的一个具体实例。

SMI把数据类型分为两大类:简单类型和结构化类型。简单类型是最基本的、直接使用ASN.1定义的类型。下表给出了最主要的几种简单类型。
在这里插入图片描述

3)编码方法

SMI使用 ASN.1制定的基本编码规则 BER(Basic Encoding Rule)进行数据的编码。BER指明了每种数据的类型和值。在发送端用BER编码,可把用ASN.1所表述的报文转换成唯-的比特序列。在接收端用BER进行解码,就可得到该比特序列所表示的ASN.1报文。

初看起来,或许用两个字段就能表示类型和值。但由于表示值可能需要多个字节,因此还需要一个指出“要用多少字节表示值”的长度字段。因此 ASN.1把所有的数据元素都表示为TL-V 三个字段组成的序列(见下图)。T 字段(Tag)定义数据的类型,L 字段(Length)定义 V字段的长度,而 V字段(Value)定义数据的值。
在这里插入图片描述

  1. T字段又叫作标记字段,占1字节。T字段比较复杂,因为它要定义的数据类型较多。T字段又再分为以下三个子字段:
  • 类别(2位)共四种:通用类(00),即ASN.1定义的类型:应用类(01),即SMI定义的类型;上下文类(10),即上下文所定义的类型;专用类(11),保为特定厂商定义的类型。
  • 格式(1位)共两种,指出数据类型的种类:简单数据类型(0),结构化数据类型(1)。
  • 编号(5位)用来标志不同的数据类型。编号的范围一般为0~30。当编号大于30时,T字段就要扩展为多个字节(这种情况很少用到,可参考ITU-TX.209,这里从略)。

在这里插入图片描述

  • L字段又叫作长度字段(单字节或多字节)。当L字段为单字节时,其最高位为0,后面的7位定义V字段的长度。当L字段为多个字节时,其最高位为1,而后面的7位定义后续字节的字节数(用二进制整数表示)。这时,所有的后续字节并置起来的二进制整数定义V字段的长度。下图给出了L字段的格式举例。
    在这里插入图片描述
  • V字段又叫作值字段,用于定义数据元素的值。

根据以上所述,我们给出两个用十六进制表示的编码例子。例如,INTEGER15,根据表6-5,其T字段是02,再根据表6-4,INTEGER 类型要用4字节编码。最后得出 TLV 编码为02 04000000 0F。又如 IPAddress 192.1.2.3,IPAddress的T字段是 40,V 字段需要 4字节表示,因此IPAddress 192.1.2.3 的 TLV 编码是 40 04 C0 01 02 03。

TLV方法中的V字段还可嵌套其他数据元素的TLV字段,并可多重嵌套。

3、管理信息库 MIB

所谓“管理信息”就是指在互联网的网管框架中被管对象的集合。被管对象必须维持可供管理程序读写的若干控制和状态信息。

这些被管对象构成了一个虚拟的信息存储器,所以才称为管理信息库 MIB。管理程序就使用MIB中这些信息的值对网络进行管理(如读取或重新设置这些值)。只有在MIB中的对象才是SNMP所能够管理的。

例如,路由器应当维持各网络接口的状态、入分组和出分组的流量、丢弃的分组和有差错的报文的统计信息,而调制解调器则应当维持发送和接收的字符数、码元传输速率和接受的呼叫等统计信息。因此在 MIB中就必须有上面这样一些信息。

我们再看一下下图,可以找到节点mib-2下面的部分是MIB子树。表6-6给出了节点 mib-2所包含的前八个信息类别代表的意思(在后面还有好几个类别)。
在这里插入图片描述
上面所说的 MIB 对象命名树的大小并没有限制。下面给出若干MIB 变量的例子(见表6-7),以便更好地理解 MIB的意义。这里的“变量”是指特定对象的一个实例。
在这里插入图片描述
在这里插入图片描述
上面列举的大多数项目的值可用一个整数来表示。但 MIB 也定义了更复杂的结构。例如,MIB 变量 ipRoutingTable 则定义一个完整的路由表。还有其他一些 MIB 变量定义了路由表项目的内容,并允许网络管理协议访问路由器中的单个项目,包括前缀、地址掩码以及下一跳地址等。当然,MIB 变量只给出了每个数据项的逻辑定义,而一个路由器使用的内部数据结构可能与 MIB的定义不同。当一个查询到达路由器时,路由器上的代理软件负责MIB变量和路由器用于存储信息的数据结构之间的映射。

4、SNMP的协议数据单元和报文

实际上,SNMP的操作只有两种基本的管理功能,即

  • (1)“读”操作,用 Get 报文来检测各被管对象的状况
  • (2)“写”操作,用 Set 报文来改变各被管对象的状况。

SNMP的这些功能通过探询操作来实现,即SNMP管理进程定时向被管理设备周期性地发送探询信息。上述时间间隔可通过SNMP的管理信息库MIB来建立。探询的好处是第一,可使系统相对简单:第二,能限制通过网络所产生的管理信息的通信量。但探询管理协议不够灵活,而且所能管理的设备数目不能太多。探询系统的开销也较大。如探询频繁而并未得到有用的报告,则通信线路和计算机的CPU周期就被浪费了。

但SNMP不是完全的探询协议,它允许不经过询问就能发送某些信息。这种信息称为
陷阱(trap),表示它能够捕捉“事件”。但这种陷阱信息的参数是受限制的。

当被管对象的代理检测到有事件发生时,就检查其门限值。代理只向管理进程报告达到某些门限值的事件(这就叫作过滤)。这种方法的好处是:第一,仅在严重事件发生时才发送陷阱;第二,陷阱信息很简单且所需字节数很少。

总之,使用探询(至少是周期性地)以维持对网络资源的实时监视,同时也采用陷阱机制报告特殊事件,使得SNMP成为一种有效的网络管理协议。

SNMP使用无连接的 UDP,因此在网络上传送SNMP 报文的开销较小。但UDP是不保证可靠交付的。这里还要指出,SNMP使用UDP的方法有些特殊。在运行代理程序的服务器端用熟知端口 161来接收 Get 或 Set 报文和发送响应报文(与熟知端口通信的客户端使用临时端口),但运行管理程序的客户端则使用熟知端口 162 来接收来自各代理的 trap 报文。

SNMP 现在共定义了如表6-8所示的8种类型的协议数据单元IRFC3416,STD62],其中PDU编号为4的已经废弃了。在PDU编号后面是对应的T字段值(十六进制形式表示)。
在这里插入图片描述
在这里插入图片描述
和大多数 TCP/IP 协议不一样,SNMP 报文没有固定的字段。相反,它们使用标准ASN.1编码。因此,SNMP 报文用人工进行编码和理解时都比较困难。为此,在下图中给出了SNMPv1的报文格式。可以看出,一个SNMP 报文共由四个部分组成,即版本、首部、安全参数和SNMP报文的数据部分。目前最新版本是版本3。首部包括报文标识(message identifcation)、最大报文长度、报文标志(message fag)。报文标志占1字节,其中的每一位定义安全类型或其他信息。安全参数用来产生报文摘要(见下一章的 7.3.1节)。

在这里插入图片描述
从上图可看出,在SNMPPDU前面还有两个有关加密信息的字段。这是当数据部分需要加密时才使用的两个字段。与网络管理直接相关的是后面的SNMPPDU部分。对于表6-8 给出的前四种 PDU 的格式都是相同的,即由PDU 类型、请求ID、差错状态、差错索引以及变量绑定这几个字段组成。PDU的各种类型以及类型的编号和T字段的编码已在表6-8中给出。下面简单介绍一下其他字段的作用。

  • 请求ID(request ID) :由管理进程设置的4字节整数值。代理进程在发送响应报文时也要返回此请求ID。由于管理进程可同时向许多代理发出请求读取变量值的报文,因此设置了请求ID可使管理进程能够识别返回的响应是对应于哪一个请求报文。
  • 差错状态(error status):在请求报文中,这个字段是零。当代理进程响应时,就填入 0~18 中的一个数字。例如0表示 noError(一切正常),1 表示 tooBig(代理无法把回答装入到一个 SNMP 报文之中),2表示 noSuchName(操作指明了一个不存在的变量),3 表示badValue(无效值或无效语法),等等[RFC 3416]。
  • 差错索引(error index):在请求报文中,这个字段是零。当代理进程响应时,若出现 noSuchName,badValue或readOnly 的差错,代理进程就设置一个整数,指明有差错的变量在变量列表中的偏移。
  • 变量绑定:指明一个或多个变量的名和对应的值。在请求报文中,变量的值应忽略(类型是 NULL)。
  • 为了大致了解 ASN.1给出的定义的形为了大致了解 ASN.1给出的定义的形式,下面举出定义GetRequest-PDU 的例子。两个连字符“–”后面的是注解。
    在这里插入图片描述

但变量 VarBindList 是什么类型呢?还需要继续定义(这里从略)。上面ASN.1 定义中的第二行中的IMPLICIT 叫作隐式标记,是为了在进行编码时可省去对IMPLICIT 后面的类型(SEQUENCE)的编码,使最后得出的编码更加简洁。

下面我们假定管理者发送 GetRequest-PDU,为的是从某路由器的代理进程获得“收到UDP 数据报的数目”的信息。从图6-21可以查出,mib-2下面第7个节点是udp,而 udp节点下面的第一个节点就是 udpInDatagrams。由于这个节点已经是叶节点(即没有连接在它下面的子节点了),读取这个节点的数值时应在节点标识符后面加上 0,即 1.3.1.1.2.1.7.1.0。这样,可得出 GetRequest-PDU的 ASN.1编码,如图6-25 所示。

在这里插入图片描述
可以把图中各字段的十六进制编码表示如下。
在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

产品经理-交互说明撰写(八)

1. 交互说明 交互说明可以看做是交互设计师或者产品经理输出的最核心的”产品“交互说明面向的”用户“是下游的同事 ⇒ UI设计师、开发工程师、测试工程师 2. 基本交互形式 2.1 页面交互 2.2 元素控件交互 3. 交互说明主要包括以下3个维度 3.1 页面流程(页面之…

unity制作app(10)--统一字体

1.载入字体,微软雅黑,需要3分钟左右 加载进来3个 2.font文件夹下创建一个txt,内部的内容如下: 啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏…

linux系统更改SSH端口号配置

1.编写sshd.config cd /etc/ssh sudo cp sshd_config sshd_config.bak vim sshd_config2.重启服务 systemctl restart sshd 结束!!

第22讲:RBD块存储COW克隆解除父子镜像的依赖关系

RBD块存储COW克隆解除父子镜像的依赖关系 1.COW镜像克隆存在的依赖关系 在前面使用copy-on-write机制基于快照做出来的链接克隆,与快照依赖性很强,如果快照损坏或者丢失,那么克隆的镜像将无法使用,使用这个镜像创建的虚拟机也会…

【详细介绍WebKit的结构】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

记住这三个神仙代码,时刻为你的电脑保驾护航

在这个数字化飞速发展的时代,我们的电脑不仅存储着重要的个人信息,还承载着繁重的工作任务。如何确保电脑的安全与稳定运行,成为了一个至关重要的问题。今天小编给大家分享这三个神仙代码,记好了这三个代码,时刻为你的…

如何修改 Miyoo Mini + 中的键位 Onion OS

如何修改 Miyoo Mini 中的键位 Onion OS MiyooMini 键位跟 XBox 键位不同 MiyooMini 买来之后就发现键位跟 XBox 手柄的键位不同。 玩 FC 游戏的时候也非常别扭,跟我以前玩 FC 游戏时的键位非常不同,正好AB XY 调换过来了。 实物如下: …

阿里云产品DTU评测报告(二)

阿里云产品DTU评测报告(二) 问题回顾问题处理继续执行 问题回顾 基于上一次DTU评测,在评测过程中遇到了windows系统情况下执行amp命令失败的情况,失败情况如图 导致后续命令无法执行,一时之间不知如何处理&#xff0…

人力资源管理信息化系统如何支持企业开展管理诊断?

华恒智信人力资源顾问有限公司致力于帮助企业开展人力资源管理方面的各项提升改进工作,在长期的咨询工作中,最常听到企业提到的问题莫过于管理诊断方面的问题,事实上,很多企业在日常工作中,都意识到企业内部存在管理方…

AC/DC电源模块:提供高质量的电力转换解决方案

BOSHIDA AC/DC电源模块:提供高质量的电力转换解决方案 AC/DC电源模块是一种电力转换器件,可以将交流电转换为直流电。它通常用于各种电子设备和系统中,提供高质量的电力转换解决方案。 AC/DC电源模块具有许多优点。首先,它能够提…

5.4 Go 匿名函数与闭包

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

2024/5/27 英语每日一段

Rejecting diet culture became something of a feminist cause. “A growing number of women are joining in an anti-diet movement,” The New York Times reported in 1992. “They are forming support groups and ceasing to diet with a resolve similar to that of se…

一篇文章带你快速搞定Kafka术语no.2

在Kafka的世界中有很多概念和术语是需要你提前理解并熟练掌握的,这对于后面你深入学习Kafka各种功能和特性将大有裨益。下面我来盘点一下Kafka的各种术语。 在专栏的第一期我说过Kafka属于分布式的消息引擎系统,它的主要功能是提供一套完备的消息发布与…

Spring Boot 系统学习第三天:Spring依赖注入原理分析

1.概述 Spring中关于依赖注入的代码实现非常丰富,涉及大量类和组件之间的协作与交互。从原理上讲,任何一个框架都存在一条核心执行流程,只要抓住这条主流程,就能把握框架的整体代码结构,Spring也不例外。无论采用何种依…

利用阅读APP3.0目录展示要查看的内容01

喜欢读电子书的小伙伴往往会遇到一个问题,就是想要看书中某些内容,但是不知道具体章节,所以就用查找功能来查,但是呢查找功能查出来展示的结果并不直观。 比如想要阅读:青竹蜂云剑,大衍决,南宫婉&#xff0…

【Unity之FGUI】Fairy GUI面板的创建相关

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:就业…

【Linux安全】Firewalld防火墙基础

目录 一、Firewalld概述 二、Firewalld和iptables的关系 三、Firewalld网络区域 1、firewalld防火墙预定义了9个区域: 2、firewalld 数据包处理原则 3、firewalld数据处理流程 4、firewalld检查数据包的源地址的规则 四、Firewalld防火墙的配置方法 1、firewalld 命令…

安全存储网关怎么实现多个存储统一管理和访问?

安全存储网关是一种网络安全产品,用于保护存储系统和数据。它的主要功能包括数据加密、访问控制、数据审计和监控等。安全存储网关可以用于防止未经授权的访问、数据泄露和数据篡改等安全威胁。它们通常与存储设备集成,提供对数据的端到端保护&#xff0…

【QT环境配置】节约msvc2017灰色不可用问题

1. 问题 msvc2017不可用,2019、2022都同理解决。 2. 解决 打开控制面板->程序->程序和功能->找到自己安装的vs程序->鼠标右键后出现卸载更改->点击更改 找到下面组件即可。(msvc2019就找msvcv142)