【网络世界】网络层

目录

🌈前言🌈

📁 网络层

📁 IPV4

 📂 什么是IP地址

 📂 网段划分

 📂 特殊IP

 📂 内网和公网

 📂 IPV4的危机

📁 IP协议格式

📁 路由

📁 分段和组装

📁 NAT

 📂 概念

 📂 内网穿透

 📂 内网打洞

📁 代理服务器

 📂 正向代理服务器

 📂 反向代理服务器

📁 总结


🌈前言🌈

        欢迎说看本期【网络世界】,本期内容将讲解网络层的一些概念,例如IP地址是什么,IP协议格式,以及IP分段和组装,以及IPV4的危机,NAT技术等等。

        通过学习网络层两个最重要的协议:IP协议和ICMP协议,来理解为网络层的概念。

📁 网络层

        网络层是OSI(开放系统互连)参考模型中的第三层,也是TCP/IP协议族中的核心层之一,其主要功能是实现数据包的传输和路由选择。

📁 IPV4

 📂 什么是IP地址

        IP地址,即互联网协议地址(Internet Protocol Address),是为网络设备(如计算机、打印机、服务器、路由器等)在网络上进行通信而分配的一个唯一标识符。它用于在网络层标识和定位设备,使得数据包能够在互联网上正确地路由和传输到目的地。

        主流的ip地址为IPv4地址,但是随着互联网的发展万物互联,可以预见的是IPV6将成为主流。

        IPv4地址,采用32位二进制数,通常采用4个点分十进制数表示,每个数的范围是【0,255】(如192.168.1.1)。而IPv6则是一个128位的二进制数,通常由8个冒号分割的十六进制数。

 📂 网段划分

        网段划分是网络设计和管理的一项重要技术。有的时候我们想要限制不同主机之间的通信,就要进行网段划分。

        ip地址分为两个部分:网络号和主机号

        网络号: 保证相互连接的两个网段具有不同的标识。

        主机号: 同一网段内, 主机之间具有相同的网络号, 但是必须有不同的主机号。

        不同的子网就是将网络号相同的主机放在一起。如果子网中新增一台主机,那么这台主机的网络号和这个子网的网络号一致,但是主机号不能和子网内其他主机重复。

        通过设置合理的网络号和主机号,就可以报好着呢个相互连接的网络中,每台主机的IP地址都不相同。但是手动管理要求太大,相当麻烦。因此有一种技术叫做DHCP,能够自动给子网内主机分配IP地址,一般路由器带有DHCP功能,因此路由器也可以看成一台DHCP服务器。

  1. 提高网络性能:通过划分网段,可以减少网络中的广播流量。广播是网络设备向同一网段内的所有其他设备发送消息的过程,如果网络过大,广播流量会占据大量网络资源,导致网络性能下降。划分网段后,广播被限制在较小的范围内,从而提高了整体网络性能。

  2. 增强网络安全性:网段划分有助于隔离网络中的不同部分,使得攻击者更难在网络中横向移动。通过在网络边界上实施访问控制策略,可以限制不同网段之间的通信,从而增加网络的安全性。

  3. 优化网络管理:划分网段使得网络管理员能够更轻松地管理网络。每个网段可以独立配置和管理,这有助于简化网络故障排查、地址分配和策略实施等任务。

  4. 适应不同业务需求:不同的业务部门或应用可能需要不同的网络环境和资源。通过网段划分,可以为每个部门或应用提供定制的网络设置,以满足其特定的业务需求。

  5. 提高可扩展性:随着业务的增长,网络也需要不断扩展。网段划分使得网络扩展变得更加容易和灵活。通过添加新的网段和相应的网络设备,可以轻松地扩展网络规模,而不会对现有网络造成太大的影响。

        常见的网段划分有:静态划分(IP地址范围),CIDP(子网划分)等等。

静态划分

        过去曾经提出一种划分网络号和主机号的方案, 把所有 IP 地址分为五类, 如下图所示 (该图出 自[TCPIP])。

• A 类 0.0.0.0 到 127.255.255.255

• 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

• E 类 240.0.0.0 到 247.255.255.255

        但是随着互联网的发展,这种划分方案局限性就暴露出来了,最大的问题就是不能满足个性化的需求,造成了大量IP地址浪费,因此这种方案很快就被丢弃了。

CIDR

        针对上述方案,又重新提出了CIDP方法。通过引入额外的子网掩码来区分网络号和主机号。

        子网掩码是一个32位的正整数(1代表网络号,0代表主机号),将 IP 地址和子网掩码进行 "按位与" 操作, 得到的结果就是网络号。

        网络号和主机号的划分与这个 IP 地址是 A 类、B 类还是 C 类无关。

        例如下图,ip地址:140.252.20.68    子网掩码:255.255.255.0,还有一种更简洁的表达方式就是140.252.20.68/24。

 📂 特殊IP

        主机位全0:表示广播号,不能分配给主机或设备使用;

        主机位全1:表示广播号,不能分配给主机或设备使用;

        127.*.*.* :表示本网主机,用于本地环回测试

 📂 内网和公网

  1. 内网(Intranet)
    • 指的是在特定组织或机构内部建立的私有网络。
    • 主要用于内部通信、资源共享和业务流程管理。
    • 通常不对外公开,只有授权用户才能访问。
  1. 公网(Internet)
    • 是指全球范围内广泛连接的公共网络。
    • 由众多不同的网络组成,通过标准的通信协议(如TCP/IP)实现互连互通。
    • 对所有人开放,用户可以随时随地访问公网上的资源。

        因此种种原因,国内不能随便进入公网,这里就不做讨论了。

        此外,还规定了一些私网IP地址,只能在内网中使用,不能出现在公网。

 📂 IPV4的危机

        上述,IPv4地址是一个32位二进制数组成的地址,即最多有42亿(2^32)多个地址可用,但随着互联网用户和设备数量(路由器)的快速增长,这些地址已经无法满足需求,导致地址池逐渐枯竭。

        为了解决危机,有多种解决方案。

释放闲置地址:如“240/4”地址段的释放提议,但这些地址的释放面临技术障碍和利益方的反对。

NAT技术:主要通过将私有IP地址转换为公有IP地址,从而缓解了IPv4地址枯竭的问题。

IPv6:推动IPv6的广泛应用是解决IPv4地址枯竭问题的根本之道。需要加快IPv6网络基础设施的建设、促进IPv6相关技术和产品的研发和应用、加强IPv6安全问题的研究和解决等。

📁 IP协议格式

(1)4位版本号:表示IP协议的版本,当前主要使用的是IPv4(值为4)和IPv6(IPv6的格式和参数与IPv4有较大不同,这里主要讨论IPv4)。

 (2)4位首部长度:表示IP协议包头的长度,以32位(4字节)为单位。最小值为5(表示20字节),最大值为15(表示60字节)。该字段允许IP头部包含可选字段。

如果4位首部长度是0101(5)那么IP数据包头为20B(5 * 4B),即没有选项。如果大于20B,减去20B,剩下的就表示选项。

(3)8位服务类型:也称为Type of Service(TOS),用于标识IP包的优先级和服务质量。其中,前3位为已弃用的优先权字段,有一位保留(必须置为0),后4位分别表示最小延时、最大吞吐量、最高可靠性和最小成本,同一时刻只能取其中一种

(4)16位总长度:IP数据包整体占多少个字节,包括头部和数据负载,以字节为单位。最大长度为65535字节,但实际中受物理网络限制,一般远小于此值。。

(5)16位标识:用于唯一标识主机发送的每一份数据报。在数据报被分片时,每个分片的标识字段值相同。

(6)3位标志

        第0位是保留为,必须置为0,目前没有实际功能或用途。

        第1位(DF,Don't Fragment),表示禁止分片,当被置为1时,如果IP数据报大小超过了某个网络的MTU(最大传输单元),那么数据报将被丢弃,并返回一个ICMP错误信息给对方。有助于避免网络因分片而产生而外的开销和可能的重组错误。

        第2位(MF,More Fragment),表示“更多分片”。当置为1时表示“后面还有分片”,指示接收方还有后续的分片需要接受和重组。置为0时,表示“这是最后一个分片”,指示接收方这是数据序列中最后一个分片了。

(7)13位偏移:表示分片在原数据报中的位置,以字节为单位,用于接收端的重组和分片。

(8)8位TTL:表示数据报在网络中的生存周期,每经过1个路由器,TTL-1,当TTL为0时,数据报被丢弃。

(9)8位协议:表示IP包中封装的上层协议类型,如TCP,UDP等,用来分用,即交给上层哪个协议处理。

(10)16位校验和:用于校验IP头部在传输过程中的完整性和正确性(本文不做详细介绍了)。

        源IP地址和目的IP地址如字面意思,表示发送端和接收端的IP地址。

        我们通过学习IP协议报头的各个参数的含义,来学IP协议,以及TCP/IP协议栈中的网络层。其中就16位标识,3位标志,13偏移量需要我们学习,其余的我们通过名词介绍即可了解。

📁 路由

        我们经常说,网络层负责路由选择,那究竟什么是路由呢?

        路由的过程, 就是这样一跳一跳(Hop by Hop) "问路" 的过程。所谓 "一跳" 就是数据链路层中的一个区间.,具体在以太网中指从源 MAC 地址到目的 MAC 地址之间的帧传输区间,这里就是数据链路层的概念了,在数据链层文章中详细介绍。

        它指的是数据包(或数据报文)从源地址(起点)到目的地(终点)的路径选择过程。在计算机网络中,路由功能通常由路由器(Router)来执行。

        我们知道,每个路由器连接着不同网络,可是我知道我要发送的报文连接着哪个路由器呢?

        举个例子,我们想要知道成华大道在哪?就问谭警官,他告诉我们要过二仙桥,一直往前走。这样我们就知道怎么走了,我们就记在心里,这样下次我们就可以直接走了。

        每个路由器都会根据路由表(Routing Table)中的信息来决定数据包应该被转发到哪个下一个节点。路由表包含了网络的拓扑信息,包括目的地址、下一跳地址、接口等信息。

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

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

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

        路由表的 Destination 是目的网络地址Genmask 是子网掩码,Gateway 是下一 跳地址,Iface 是发送接口Flags 中的 U 标志表示此条目有效(可以禁用某些条目),G 标志表示此条目的下一跳地址是某个路由器的地址,没有 G 标志的条目表示目的网络地址是与本机接口直接相连的网络,不必经路由器转发;

1. 路由器取出数据包中目的IP地址,与路由表中每一项进行比较;

2. 先和每一项的子网掩码(Genmask)按位与,判断网络号(Destination)是否一样。如果一样,判断是否是直连网络,如果是直接将数据包转发的目的主机;如果不是则转发到下一跳的路由器(Gateway)上。

3. 如果网络号不一致,就执行下一项,直到执行到default为止。如果执行到default都没找到一样的网络号,说明目的主机不在相连的网段中,将数据包发送给缺省路由器。

例1:如果要发送的数据包的目的地址是 192.168.56.3

• 跟第一行的子网掩码做与运算得到 192.168.56.0,与第一行的目的网络地址不符

• 再跟第二行的子网掩码做与运算得到 192.168.56.0,正是第二行的目的网络地址,因此从 eth1 接口发送出去;

• 由于 192.168.56.0/24 正 是与 eth1 接口直接相连的网络,因此可以直接发到目的主机,不需要经路由器转发;

例2:如果要发送的数据包的目的地址是 202.10.1.2

• 依次和路由表前几项进行对比, 发现都不匹配;

• 按缺省路由条目, 从 eth0 接口发出去, 发往 192.168.10.1 路由器;

• 由 192.168.10.1 路由器根据它的路由表决定下一跳地址;

        路由表可以由网络管理员手动维护(静态路由), 也可以通过一些算法自动生成(动态路由),如离向量算法, LS 算法, Dijkstra 算法等。

📁 分段和组装

        网络层对IP数据包进行分片和组装的主要原因在于适应不同物理网络的MTU(Maximum Transmission Unit,最大传输单元)差异,确保数据包能够顺利传输到目的地。这一过程对于传输层是透明的,简化了网络协议的设计和实现。

        至于什么是MTU,为什么要有MTU是数据链路层的知识了,这里我们就需要知道在局域网中规定了最大传输单元MTU,常用的以太网的MTU是1500B。

        网络层收到上层传下来的数据报,添加报头交付给下层时,下层说不行,你发的数据必须小于等于MTU,超了我不发。网络层这时就很为难,我又不能将数据还给上层,所以只能网络层来处理数据报文过长的问题。

        但是数据报文分段了,对端怎么知道顺序,怎么才能重新组装呢?因此需要IP协议中的16位标识,3位标志,13位偏移量。

        不同报文,16位标识不同,一个报文的不同分片,16位标识必须相同。

        每个分片的13位分片偏移,是分片相对于原始IP报文(有效载荷,不包含IP报头)开始处的偏移。

        但是我们只有13位,怎么能表示出16位的有效载荷呢?因此,我们需要在分片时,将有效载荷缩小。因此13位偏移量单位是8B,写入时右移>>3位(除8),读取时左移<<3位(乘8)。因此,真实的分片偏移必须是8的倍数,低3个比特位为0,这样可以确保没有数据丢失问题。

        为了确保数据能够正确的收到和组装分片,因此需要将每一个分片添加IP报头。

对端是如何知道是数据报分片了?

        如果拿到的是第一片,发现MF置为1,偏移量为0,知道这是第一片;拿到中间片,发现MF置为1,偏移量为>0,直到后面还有分片,按照偏移量组装;拿到最后一片,发现,MF置为0,偏移量>0,直到这是最后一片,组装完毕。

        将所有分片升序排序,分片偏移量 + DATA长度 = 下一个分片的偏移量。

对端是如何知道是数据报没分片呢?

        MF为0,并且偏移量也为0,接收端知道没有进行分片。

        IP层不负责重新传输,传输层才进行数据重传等机制。

📁 NAT

 📂 概念

        NAT(Network Address Translation,网络地址转换)是一种将私有IP地址转成公网IP地址的技术。通过路由器或防火墙重写源IP地址,实现私有网络内的设备通过一个或少数几个公网IP地址来访问互联网,同时隐藏内部网络结构,提高网络安全性。

        之前,我们说过,私有IP地址是不能出现在公网中,也就意味着不同网段可以有相同的私有IP地址。想要访问公网,通过NAT技术将私有IP地址转变成公网IP地址。

NAT有多种实现方式,不同方式有不同作用:

  1. 静态NAT:内部网络的私有IP地址与公网IP地址之间建立一对一的固定映射关系。这种方式适用于内部网络中的服务器需要对外提供服务的情况。
  2. 动态NAT:内部网络的私有IP地址在访问互联网时,动态地从地址池中分配一个公网IP地址进行转换。当内部设备不再访问互联网时,该公网IP地址会被回收并重新放回地址池中。
  3. 端口多路复用(PAT/NAPT):内部网络的所有主机通过改变外出数据包的源端口并进行端口转换,共享一个公网IP地址访问互联网。这种方式可以最大限度地节约公网IP资源。

       一般我们最长使用的就是NAPT方式,接下来我们讲解什么是NAPT。

        但当多个主机访问外网同一个服务时,路由器转换成同一个公网IP,返回数据时,怎么知道数据是谁的呢?返回来的数据包中目的IP地址是一样的,源IP地址也是一样的,NAT服务器是如何判断数据转发给局域网的哪个主机。

       当内部网络中的设备尝试访问外部网络(如互联网)时,NAPT路由器会检查数据包的源IP地址和源端口号,并将它们转换为一个公共IP地址和一个非冲突的目的端口号。这个转换过程会记录在一个转换表中,以便在响应数据包返回时能够正确地将其转发给内部网络中的相应设备。

        通过IP+Port的方法来建立关联关系,这个关系是由NAT服务器动态维护的。例如TCP情况下,建立连接时,就会生成表项,断开连接时,会删除这个表项。

        NAPT改变了数据包的端口号,通过不同端口号映射到同一个公共IP地址从而共享这个IP地址进行通信。

NAT缺陷

        1.通信限制,NAPT技术通常只允许从内部网络发起通信。意味着外部网络试图主动与内部网络某个设备建立连接时,NAPT会阻止这种请求,因为它不知道将请求转发到哪个内部设备上。

        2. 性能影响,处理所有进出的数据包时,都要进行ip地址和端口号之间的映射,在高流量的情况下,引入额外的延迟,影响性能。

        3. 端口号冲突和耗尽,如果内部网络中的设备数量过多,或者单个设备同时建立的连接数过多,可能会导致端口号冲突或耗尽。这可能会影响到内部设备与外部网络的正常通信。

        此外还有一系列问题,如安全问题,配置复杂等。

 📂 内网穿透

        NAPT技术不支持外部网络对内网的访问,因为NAT会屏蔽掉内部网络的真实IP地址,因此内网穿透技术应运而生。

        它利用一个具有公网IP地址的中转服务器(也称为“穿透服务器”)来辅助实现内部网络到外部网络的连接。内部网络的设备或服务首先向中转服务器注册自己的外网收发接口(如IP地址和端口号),然后中转服务器将这些信息告知给外部网络的用户。当外部网络用户想要访问内部网络的服务时,他们首先连接到中转服务器,然后中转服务器根据注册的信息将请求转发给内部网络的设备或服务。

        简单理解为,外网设备通过访问穿透服务器(也称为中转服务器或映射服务器),可以间接地访问到内网中的主机或服务。穿透服务器在这里起到了桥梁的作用,它允许外部网络的数据包经过处理后,能够转发到内部网络中的目标主机上,同时也能够将内部主机的响应数据转发回外部网络。

        内网穿透技术广泛应用于需要远程访问内部网络服务的场景,例如:远程办公,远程开发等。

  1. 使用内网穿透软件或服务

    • 花生壳:一款老牌的内网穿透软件,支持TCP和UDP协议,并提供了域名解析服务,方便用户进行远程访问。
    • FRP:一款开源的内网穿透工具,支持TCP、UDP、HTTP和HTTPS等协议,用户可以在内网机器上安装FRP客户端,并在公网机器上配置FRP服务端来实现内网穿透。
    • Ngrok:一个反向代理工具,通过在公共端点和本地Web服务器之间建立安全通道来实现内网穿透。用户只需要在本地启动Ngrok客户端并配置好映射端口,就可以获得一个临时的域名来访问内网应用。
  2. 使用SSH端口转发
    SSH(安全外壳协议)是一种安全的远程登录协议,它可以通过端口转发的方式实现内网穿透。用户可以在内网机器上启动SSH服务并进行相应配置,然后在公网机器上使用SSH客户端连接内网机器并进行端口转发。

  3. 使用VPN技术
    VPN(虚拟专用网络)技术也可以用于实现内网穿透。VPN通过建立一个加密的通道来连接内部网络和外部网络,使得外部网络的用户可以像访问本地网络一样访问内部网络的服务和设备。

 📂 内网打洞

        可以理解为外网设备通过一次与穿透服务器的交互,获取到内部主机的IP地址和端口信息,之后两台主机之间的通信就不再需要穿透服务器直接中转。

  1. P2P打洞技术
    • 中继(Relaying):这是最简单也是最不高效的方式,通过一个有公网IP的服务器作为中继,转发两个内网客户端之间的数据。这种方式在客户端数量较少且网络流量不大时可行,但随着客户端数量的增加,服务器的压力会急剧增大。
    • 逆向连接(Connection reversal):当一个内网客户端无法直接访问另一个内网客户端时,可以通过服务器建立逆向连接,即让原本应该是被动接收连接的客户端主动向服务器发送连接请求,从而绕过NAT的限制。
    • UDP/TCP打洞:利用UDP或TCP协议的特性,在客户端之间建立直接的通信链路。这种方式需要客户端和服务器之间的紧密配合,以及NAT的支持。
  2. 基于UDP的打洞技术
    • 依赖于防火墙和NAT的特性,通过发送特定的UDP数据包来“打洞”,使得两个内网客户端之间能够建立直接的通信链路。这种方式通常需要在服务器端进行一些特殊的配置和处理。
  3. 使用专门的内网穿透软件或服务
    • 如花生壳、FRP等,这些软件或服务提供了内网穿透的功能,用户只需要在内部网络中的设备上安装客户端软件,并在公网服务器上配置相应的服务,就可以实现内部网络到外部网络的穿透。

📁 代理服务器

 📂 正向代理服务器

        正向代理(Forward Proxy)是一种常见的网络代理方式,它位于客户端和服务器之间,代表客户端向服务器发送请求。正向代理服务器接受客户端的请求,然后将请求转发给目标服务器,最后将目标服务器的响应返回给客户端。

工作原理:

        1. 客户端将请求发送给正向代理服务器。

        2. 正向代理服务器接受请求,并根据配置进行处理,如缓存查找,内容过滤等。

        3. 正向代理服务器将处理后的请求转发给目标服务器。

        4. 目标服务器处理请求,并将响应返回给正向代理服务器。

        5. 正向代理服务器将响应返回给客户端。

        常见的应用场景有校园网,企业网管理,通过正向代理实现对学生员工对网络访问的管理和监控等。

 📂 反向代理服务器

        反向代理服务器是一种网络架构模式,其作为服务器的前置服务器,接收来自客户端的请求,并将这些请求转发给后端服务器,然后将后端服务器的响应返回给客户端。这种架构模式可以提升网络性能,安全性和可维护性等。

工作原理:

        反向代理服务器位于客户端和服务器之间,当客户端发起请求时,首先会到达反向代理服务器。反向代理服务器会根据配置的规则将请求转发给后端服务器,并将服务器的响应返回给客户端。这个过程中,客户端不知道和哪个具体服务器交互,只知道反向代理服务器进行通信。        

        可以看出,反向代理服务器最大应用场景就是实现负载均衡,安全保护等。

• 负载均衡:反向代理服务器可以根据配置的负载均衡策略,将客户端的请求分发 到多个后端服务器上,以实现负载均衡。这有助于提升网站的整体性能和响应速度, 特别是在高并发场景下。

• 安全保护:反向代理服务器可以隐藏后端 Web 服务器的真实 IP 地址,降低其被直接攻击的风险。同时,它还可以配置防火墙、访问控制列表(ACL)等安全策略, 对客户端的请求进行过滤和限制,以保护后端服务器的安全。

• 缓存加速:反向代理服务器可以缓存后端 Web 服务器的响应内容,对于重复的 请求,它可以直接从缓存中返回响应,而无需再次向后端服务器发起请求。这可以大 大减少后端服务器的负载,提升网站的响应速度。

• 内容过滤和重写:反向代理服务器可以根据配置的规则对客户端的请求进行过滤 和重写,例如添加或删除请求头、修改请求路径等。这有助于实现一些特定的业务需 求,如 URL 重写、用户认证等。

• 动静分离:在大型网站中,通常需要将静态资源和动态资源分开处理。通过将静 态资源部署在反向代理服务器上,可以直接从反向代理服务器返回静态资源的响应, 而无需再次向后端服务器发起请求。这可以大大提升静态资源的访问速度。

• CDN(Content Delivery Network,内容分发网络)就是采用了反向代理的原理。

📁 总结

        本期【网络世界】,主要讲解了网络层的一些常见概念,包含了IP地址,IP协议报头格式。学习了IP协议工作流程,即通过路由表进行路由选择过程。此外,学习了NAT中的NAPT技术来解决IPv4地址不足的问题。此外,拓展学习了代理服务器的概念。

        如果感觉本期内容对你有帮助,欢迎点赞,关注,收藏Thanks♪(・ω・)ノ

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

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

相关文章

极限的性质【上】《用Manim可视化》

通过前面的极限的定义&#xff0c;现在是计算极限的时候了。然而&#xff0c;在此之前&#xff0c;我们需要一些极限的性质&#xff0c;这将使我们的工作变得简单一些。我们先来看看这些。 极限的性质&#xff1a; 1.常数对极限的影响 1.首先&#xff0c;我们假设和存在&…

通过Origin提取图片数据

第一步&#xff1a; Tool --> Digitizer 第二步&#xff1a;点击文件&#xff0c;导入图片 第三步&#xff1a;设置坐标轴位置和数值&#xff08;Edit Aix&#xff09; 滑动鼠标放大图片&#xff0c;将X1移动到0&#xff0c;X2移动到80&#xff0c;Y1移动到97.0&#xff0c…

Kubernetes 上安装 Jenkins

安装 Helm curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash添加 Jenkins Helm 仓库 首先添加 Jenkins Helm 仓库 helm repo add jenkins https://charts.jenkins.io helm repo update安装 Jenkins 使用 Helm 安装 Jenkins 的最新版本&…

本地部署Xinference实现智能体推理工作流(二)

第二篇章 Dify接入 Xinference 部署的本地模型 1. 安装Dify 克隆 Dify 源代码至本地。 git clone https://github.com/langgenius/dify.git 2. 启动Dify 进入 Dify 源代码的 docker 目录&#xff0c;执行一键启动命令&#xff1a; cd dify/docker cp .env.example .env d…

【OWOD论文】开放世界中OD代码_2_模型部分

简介 本文记录OWOD代码中的模型代码部分。数据部分可看我上一个博客【【OWOD论文】开放世界中OD代码_1_数据部分-CSDN博客】 模型代码 1 起步 在代码中找到 detectron2\engine\defaults.py DefaultTrainer类 __init__方法 根据上述 build_model 回溯到 detectron2\modeling\…

无人机校企合作:组装、维修、研发全面提升学生技能方好就业

无人机校企合作在组装、维修、研发等方面全面提升学生技能&#xff0c;进而促进学生就业&#xff0c;是一个具有前瞻性和实践性的教育模式。以下是对该合作模式的详细分析&#xff1a; 一、合作背景与意义 随着无人机技术的快速发展和广泛应用&#xff0c;市场对无人机专业人…

叉车(工业车辆)安全管理系统,云端监管人车信息运营情况方案

近年来&#xff0c;国家和各地政府相继出台了多项政策法规&#xff0c;从政策层面推行叉车智慧监管&#xff0c;加大叉车安全监管力度。同时鼓励各地结合实际&#xff0c;积极探索智慧叉车建设&#xff0c;实现作业人员资格认证、车辆状态认证、安全操作提醒、行驶轨迹监控等&a…

react学习之useState和useEffect

useState useState 可以使函数组件像类组件一样拥有 state&#xff0c;函数组件通过 useState 可以让组件重新渲染&#xff0c;更新视图。 实际使用 setstate()中回调函数的返回值将会成为新的state值回调函数执行时&#xff0c; React会将最新的state值作为参数传递 const A…

【HarmonyOS 4.0】@BuilderParam 装饰器

1. BuilderParam 装饰器 BuilderParam 装饰器用于装饰自定义组件(struct)中的属性&#xff0c;其装饰的属性可作为一个UI结构的占位符&#xff0c;待创建该组件时&#xff0c;可通过参数为其传入具体的内容。参数必须满足俩个条件&#xff1a; 2.1 参数类型必须是个函数&#x…

windows安全软件之火绒杀毒的密码忘记后处理

一、问题描述 某次&#xff0c;想升级系统补丁&#xff0c;但多次尝试后都失败&#xff0c;排查杀毒软件影响过程中&#xff0c;发现火绒杀毒配置了密码保护&#xff0c;但因时间太久&#xff0c;密码已无从考证&#xff0c;那我们应该怎样处理这种情况呢&#xff1f; 二、处…

鸿蒙XComponent组件的认识

概述&#xff1a; XComponent组件作为一种渲染组件&#xff0c;通常用于满足开发者较为复杂的自定义渲染需求&#xff0c;例如相机预览流的显示、游戏画面的渲染、自定义视频播放器等等。其中Native API是其核心内容&#xff01; 其可通过指定其type字段来实现不同的功能&…

jenkins安装k8s插件发布服务

1、安装k8s插件 登录 Jenkins&#xff0c;系统管理→ 插件管理 → 搜索 kubernetes&#xff0c;选择第二个 Kubernetes&#xff0c;点击 安装&#xff0c;安装完成后重启 Jenkins 。 2、对接k8s集群、申请k8s凭据 因为 Jenkins 服务器在 kubernetes 集群之外&#xff0c;所以…

解决huggingface下载时Username/Password Authentication Failed.问题

项目场景&#xff1a; 使用huggingface 下载数据集。 问题描述 运行命令&#xff1a; wget https://huggingface.co/datasets/yangtaointernship/RealEstate10K-subset/resolve/main/google_scanned_objects.zip?downloadtrue 完整报错如下&#xff1a; --2024-08-30 15:…

Windows通过网线连接开发板共享网络

Windows端 打开更开适配器选项右键WLAN–属性–共享 右键以太网–属性–Internet协议版本4(TCP/IPv4) 记住IP地址 开发板端 查看网卡 ifconfig设置IP在同一网段 ifconfig eth0 192.168.137.2 netmask 255.255.255.0设置网关 route add default gw 192.168.137.1配置DNS su…

哪个牌子的电容笔好用又实惠?西圣、绿联、摩米士电容笔实测大比拼

​现在市面上的电容笔很多&#xff0c;在选择时会让人感到很纠结。那么多的选择&#xff0c;究竟哪个牌子的电容笔好用又实惠呢&#xff1f;一款优质的电容笔应考虑握持舒适度、笔尖材质、电池续航能力以及书写流畅度等因素。作为一位多年的数码爱好者&#xff0c;我今天将针对…

Android APK打包脚本

build.gradle版本 同目录创建config.gradle文件写入需要的信息入 config.gradle文件内容 ext { /*** 自定义APP运行环境* dev: 开发* test: 测试* pro: 生产*/ env "pro" /*** 动态参数配置&#xff0c;根据自己需要添加参数* APP_ID: 包名* VERSION_CODE: 版本号…

国产网卡品牌崛起,做好网络信息安全的“守门人”

在信息技术日新月异的时代背景下&#xff0c;信息安全不仅关乎个人隐私保护&#xff0c;更是国家安全与经济发展的基石。LR-LINK联瑞凭借其前瞻性的视野和深厚的研发实力&#xff0c;成功自主研发出全国产化的FPGA&#xff08;现场可编程门阵列&#xff09;网闸隔离卡方案&…

优质企业上网行为管理软件大盘点

员工在上班时间摸鱼&#xff0c;看似是一个小问题&#xff0c;但却会给企业带来诸多不良影响。首先&#xff0c;摸鱼会降低员工的工作效率&#xff0c;导致工作任务无法按时完成&#xff0c;影响项目进度。其次&#xff0c;摸鱼行为会破坏企业的工作氛围&#xff0c;影响其他员…

零基础学习Python(七)

1. 字符串常用方法 lower()、upper()&#xff1a;转换为小写字符串、大写字符串 split(str)&#xff1a;按照指定字符串str进行分割&#xff0c;结果为列表&#xff1a; email "123qq.com" print(email.split("")) [123, qq.com] count(str)&#xf…

Linux 安装Mysql保姆级教程

一、检查环境 我们登录服务器&#xff0c;查看之前是否安装过mysql rpm -qa | grep mysql 由于我之前安装过&#xff0c;所以这里是有数据的 如果需要删除重新下载&#xff0c;可以使用 rpm -e mysql57-community-release-el7-10.noarch.rpm 二、安装 1、下载 接下来下载安装…