《计算机网络网络层:连接虚拟世界的关键桥梁》
一、网络层概述
网络层在计算机网络中占据着至关重要的地位,它作为连接不同网络的关键层次,起着承上启下的作用。网络层的主要任务是实现网络互连,将数据设法从源端经过若干个中间节点传送到目的端,为分组交换网上的不同主机提供通信服务。
在不同的网络之间进行通信可以通过多种方式实现。例如,网络互联可以将多个网络通过互联网连接起来,实现网络之间的数据传输和通信。常见的网络互联方式包括虚拟专用网络(VPN)、广域网(WAN)和局域网(LAN)之间的互联,以及互联网服务提供商(ISP)之间的互联。
网络协议也是实现不同网络通信的重要手段。通过定义网络通信的规则和标准,如互联网协议(IP)、传输控制协议(TCP)、用户数据报协议(UDP)、网际控制报文协议(ICMP)等,实现在不同网络之间进行数据传输和通信。
此外,网络设备如路由器、交换机、防火墙等,通过转发数据包、管理网络流量、提供安全保护等功能,实现网络之间的通信。网络地址转换(NAT)技术可以将一个网络的私有 IP 地址转换为公网 IP 地址,使得私有网络中的设备能够与其他公网网络进行通信。虚拟专用网络(VPN)通过在公共网络上建立加密隧道,实现远程网络之间的安全通信。
网络层的重要性还体现在它为上层的传输层提供服务,同时也依赖于下层的数据链路层和物理层。它负责数据包的路由选择和转发,确保数据能够准确地从源主机传输到目标主机。网络层的 IP 协议是整个计算机网络通信的核心,它定义了数据包的格式、寻址方案和路由选择机制。
总之,网络层是计算机网络中不可或缺的重要层次,它连接了不同的网络,为不同主机之间的通信提供了可靠的保障。
二、网络层的服务与技术
(一)两种服务模式
- 面向连接的虚电路服务:这种服务模式就像是在两个地点之间建立了一条专属的铁路轨道。在通信开始前,网络层会先建立一条虚拟的电路,确保双方通信所需的一切网络资源都已准备就绪。在这条虚拟电路上,分组可以无差错、按序地到达目的地。就如同火车在专属轨道上行驶,不会出现混乱和错误。例如,在一些对数据传输准确性要求极高的金融交易系统中,这种服务模式就非常适用,可以确保每一笔交易数据都能准确无误地传输。
- 无连接的数据报服务:与之相反,这种服务模式更像是快递投递。每个分组就像一个独立的包裹,可以选择不同的路径进行传输。这就可能导致分组在传输过程中出现误码、丢失、重复和乱序等情况。但是,这种服务模式的灵活性很高,适合那些对实时性要求较高,而对数据准确性要求相对较低的应用场景,比如视频直播等。
(二)数据交换技术
- 电路交换:在早期的电话交换网中,电路交换是主要的交换方式。它就像两个人之间建立了一条专属的电话线,在通信过程中,这条线路被双方独占。电路交换包括线路建立、数据传输、线路释放三个阶段。在建立阶段,需要花费一定的时间来建立连接;在数据传输阶段,数据可以一次性传输完毕;在释放阶段,线路被释放,以供其他用户使用。这种交换方式的优点是通信质量高,数据传输稳定;缺点是线路利用率低,不适合突发数据的传输。
- 报文交换:报文交换具有存储转发的特点,它以原始数据段为传输单位。当一个报文到达中间节点时,节点会先将报文存储起来,然后根据路由信息选择合适的路径转发出去。这种方式适合小容量数据的转发,因为对于大容量的数据,存储和转发的时间会比较长。例如,在一些电子邮件系统中,报文交换被广泛应用。
- 分组交换:分组交换是现代计算机网络中最常用的交换方式。它将大报文进行拆分,规定了传输单位的长度。分组交换有采用路由技术和虚电路服务两大派系。采用路由技术的分组交换,每个分组独立选择路径,灵活性高;而采用虚电路服务的分组交换,在通信开始前建立虚拟电路,类似于电路交换,但又具有分组交换的灵活性。
(三)IP 相关技术
- IP 地址:IP 地址是给连接到互联网上的主机或路由器分配的唯一 32 位标识符。它有分类编址、子网划分和构成超网三种编码方法。分类编址将 IP 地址划分为不同的类别,每一类地址都有固定的网络号和主机号长度。子网划分则是从主机号中借位充当子网号,实现单位内部网络的进一步划分。引入子网掩码可以让路由器区分子网,提高网络的管理效率。构成超网则是将多个连续的 IP 地址组成一个更大的地址块,减少路由表的条目数量。
- 子网划分:子网划分是为了更好地管理和利用 IP 地址资源。通过从主机号中借位,我们可以将一个大的网络划分为多个小的子网。每个子网都有自己的网络地址和子网掩码。子网划分可以提高网络的安全性和可管理性,同时也可以减少广播风暴的影响。例如,在一个企业网络中,我们可以根据不同的部门划分不同的子网,每个子网可以有自己的安全策略和访问控制。
- 无分类编制 CIDR:CIDR(无分类域间路由选择)消除了 A、B、C 类地址的概念,用网络前缀来区分网络。CIDR 可以进行子网划分和路由汇聚。子网划分可以根据实际需求将一个大的网络划分为多个小的子网;路由汇聚则可以将多个连续的网络地址合并为一个更大的网络地址,减少路由表的条目数量。例如,一个 ISP 可以使用 CIDR 来分配 IP 地址,提高地址的利用率。
(四)地址解析协议 ARP
地址解析协议(ARP)在网络通信中起着至关重要的作用。它解决了网络层使用 IP 地址,但实际链路层需要 MAC 地址的问题。在主机的 ARP 高速缓存中,存放着 IP 地址和 MAC 地址的映射表。当主机需要发送数据时,首先会在 ARP 高速缓存中查找目标 IP 地址对应的 MAC 地址。如果找到了,就可以直接将数据发送到目标主机;如果没有找到,主机就会发送一个 ARP 请求广播,询问目标 IP 地址对应的 MAC 地址。当目标主机收到这个请求后,会回复一个 ARP 响应,告诉请求主机自己的 MAC 地址。请求主机收到响应后,就会将目标 IP 地址和 MAC 地址的映射关系存入自己的 ARP 高速缓存中,以便下次使用。
(五)网际控制报文协议 ICMP
网际控制报文协议(ICMP)用于在 IP 网络中发送错误消息和控制消息。ICMP 报文包含在 IP 数据包中,有差错报文和查询报文两种类型。差错报文用于报告在 IP 数据包传输过程中出现的错误,如目标不可达、超时等;查询报文用于获取网络信息,如 ping 命令和 traceroute 应用。ping 命令通过发送 ICMP Echo 请求报文,测试两台主机之间的连通性;traceroute 应用则通过发送一系列的 IP 数据包,跟踪一个分组从源点到终点经历的路由器。
(六)IPv6 技术
- IPv6 的基本首部:IPv6 的基本首部相比 IPv4 地址长度更长,从 32 位增加到了 128 位,这极大地解决了网络地址资源不足的问题。IPv6 的首部结构也更加简洁,取消了一些在 IPv4 中存在的字段,如头部校验和等,提高了数据包的处理效率。
- IPv6 的地址格式和特点:IPv6 的地址格式采用冒号分割的十六进制表示法,分为首选格式、压缩格式和内嵌 IPv4 地址的格式等。IPv6 的地址特点包括地址空间巨大、层次化分配、即插即用、简化的报文头部等。例如,IPv6 的地址可以分为网络前缀和接口标识两部分,网络前缀用于标识网络,接口标识用于标识主机或路由器的接口。
- IPv4 向 IPv6 过渡的方法:IPv4 向 IPv6 过渡的方法主要有双栈技术、隧道技术和转换技术等。双栈技术是在一台设备上同时启用 IPv4 协议栈和 IPv6 协议栈,使得设备可以同时与 IPv4 和 IPv6 网络进行通信;隧道技术是将 IPv6 数据包封装在 IPv4 数据包中,通过 IPv4 网络进行传输;转换技术是将 IPv4 地址和 IPv6 地址进行转换,使得 IPv4 和 IPv6 网络可以互相访问。
三、网络层设备与协议
(一)路由器的作用与结构
路由器作为一种专用计算机,在网络中发挥着关键作用。它具有多个输入端口和输出端口,其主要任务是转发分组。
输入端口:输入端口负责从物理接口接收信号,还原数据链路层帧,提取 IP 数据报。然后,根据 IP 数据报的目的 IP 地址检索路由表,决策需要将该 IP 数据报交换到哪个输出端口。在这个过程中,输入端口还需要执行一些操作,如通过最长前缀匹配规则在转发表中查找连接出口,进行物理层和链路层处理,检查分组的版本号、检验和、寿命字段并重写后两个字段,以及更新用于网络管理的计数器。
交换结构:交换结构位于路由器的核心部位,负责分组的转发工作。它的性能在很大程度上决定了路由器的性能。交换结构有基于内存交换、基于总线交换和基于网络交换三种方式。其中,基于网络交换的性能最好,基于总线交换次之,基于内存交换相对较差。
输出端口:输出端口首先提供一个缓存排队功能,排队交换到该端口的待发送分组,并从队列中不断取出分组进行数据链路层数据帧的封装,通过物理线路端接发送出去。
路由处理器:路由处理器就是路由器的 CPU,负责执行路由器的各种指令,包括路由协议的运行,路由计算以及路由表的更新维护等。
(二)网络拥塞控制
- 流量控制与拥塞控制的区别:流量控制主要考虑接收端的数据接收与处理能力,目的是使发送端的发送速率不超过接收端的接收能力,就像为了适应 B 地停车场的停车能力,来调整或约束 A 地车辆的放行速率。而拥塞控制主要考虑端系统之间的网络环境,目的是使网络负载不超过网络的传送能力,如同为了避免 A 地到 B 地经过的路网不出现塞车,或者为了消除已发生的塞车现象,而约束 A 地放行车辆的速率。拥塞控制可以通过增加网络资源或减少网络负载来解决拥塞问题。例如,可以在网络出现拥塞前为网络中的各个节点分配更多可用的资源,降低拥塞出现的可能性,这是拥塞预防;也可以在网络中已经出现负载大于资源的情况下,通过减小当前网络的负载来实现对拥塞的消除,这是拥塞消除。
- 流量感知路由:流量感知路由根据网络负载动态调整,将网络流量引导到不同的链路上,均衡网络负载,从而缓解或避免拥塞发生。然而,这种方法可能会使整个网络出现振荡。为了解决振荡现象,可以采用多路径路由,即将两个区域间流量的传输分散到两条不同的链路上,从而使得其中任一链路上的负载都不会太大;也可以将负载过大的链路上的流量,缓慢地转移至另一条链路上,而不是一次性将全部流量从一条链路转移到另一条链路上。
- 准入控制:准入控制是一种广泛应用于虚电路网络的拥塞预防技术。其基本思想是对新建虚电路进行审核,如果新建立的虚电路会导致网络变得拥塞,那么网络拒绝建立该新虚电路。
(三)网络协议体系
计算机网络的协议体系通常采用七层模型,包括应用层、表示层、会话层、传输层、网络层、数据链路层和物理层。
应用层:应用层是最高层,提供了面向用户的服务和应用程序。它负责处理用户请求,提供各种服务,如电子邮件、文件传输和远程登录等。常用的协议有超文本传输协议(HTTP)、文件传输协议(FTP)和简单邮件传输协议(SMTP)。
表示层:表示层主要负责数据格式的转换、加密和压缩。它将应用层提供的数据转换为网络传输所需的格式,以确保不同系统之间的兼容性。常用的协议有压缩方式协议(JPEG)和多媒体体系结构协议(MMA)。
会话层:会话层主要负责建立、管理和终止数据传输的会话。它提供了在不同系统之间建立会话的功能,并在会话期间管理连接状态。常用的协议有网络文件系统协议(NFS)和远程过程调用协议(RPC)。
传输层:传输层主要负责控制两个进程之间的端到端数据传输。其功能包括分段、连接建立及断开、流量控制和差错恢复。最常见的协议是传输控制协议(TCP)和用户数据报协议(UDP)。
网络层:网络层主要负责数据包在网络中的路由和转发。它定义了数据包的封装和解封装格式,以及通过路由算法决定最佳路径传输数据。常用的协议有互联网协议(IP)和互联网控制报文协议(ICMP)。
数据链路层:数据链路层在物理层之上,负责提供可靠的数据传输。主要功能是将原始的比特流划分为帧,并提供错误检测和纠正。常用的协议有以太网协议(Ethernet)和无线局域网协议(WiFi)。
物理层:物理层是网络通信的最底层,主要负责发送和接收原始的比特流。其功能包括传输比特、控制传输速率和物理连接的拓扑结构。物理层没有专门的协议,主要通过硬件实现,如网线、光纤等。
四、网络层的重要性与发展
(一)网络层的关键作用
网络层作为计算机网络体系结构中的核心层次之一,在实现全球网络互联中发挥着至关重要的作用。它就如同交通网络中的枢纽,连接着各个不同的网络区域,确保数据能够在不同的网络之间高效、准确地传输。
网络层通过 IP 地址对数据包进行路由和转发,使得不同网络中的设备能够相互通信。无论是企业内部的局域网,还是跨越全球的广域网,网络层都能确保数据准确无误地到达目的地。例如,当我们在网上购物时,订单信息需要从我们的设备发送到电商服务器,这个过程中网络层负责将数据包从我们所在的网络转发到电商服务器所在的网络,确保交易的顺利进行。
此外,网络层还承担着异构网络互连的重要任务。在当今数字化时代,各种不同类型的网络设备和技术层出不穷,网络层能够协调这些不同的网络,使其能够协同工作。例如,智能手机可以通过移动网络连接到互联网,同时也可以通过 Wi-Fi 连接到家庭网络,网络层能够确保这些不同类型的网络之间的数据传输顺畅无阻。
(二)面临的挑战
尽管网络层在网络通信中起着关键作用,但它也面临着诸多挑战。
首先,物联网和大数据的快速发展给网络层带来了巨大的压力。随着物联网设备的数量不断增加,网络层需要处理的数据包数量呈爆炸式增长。据统计,到 2024 年,中国物联网市场规模可达 4.31 万亿元,如此庞大的市场规模意味着大量的物联网设备需要连接到网络,这对网络层的路由和转发能力提出了更高的要求。同时,大数据的产生也使得网络层需要处理更大规模的数据流量,传统的网络架构可能无法满足这种需求。
其次,安全与隐私问题也是网络层面临的重要挑战。在网络通信中,数据的安全性和用户的隐私保护至关重要。恶意攻击、数据泄露、身份欺诈等问题给网络层的安全机制带来了严峻考验。例如,网络层需要加强数据加密、身份认证、访问控制等安全措施,以保障通信数据的机密性和完整性,保护用户的隐私权。
最后,IPv4 地址枯竭和 IPv6 的推广也是网络层面临的难题。随着互联网用户数量的不断增加,IPv4 地址资源面临枯竭的问题已经成为网络层发展的瓶颈。虽然 IPv6 具有更加庞大的地址空间和更好的安全性,但在推广和应用方面仍然面临挑战。例如,一些老旧的设备可能不支持 IPv6,这就需要进行设备升级和改造,增加了推广的难度。
(三)发展趋势
尽管网络层面临着诸多挑战,但随着技术的不断发展,它也呈现出一些积极的发展趋势。
首先,可编程网络与 SDN 技术的发展为网络层带来了新的机遇。可编程网络将网络设备中的控制平面和数据平面进行分离,通过集中的控制器对网络进行统一的管理和控制,使得网络变得更加灵活和可编程。例如,在 SDN 架构下,网络管理员可以通过软件编程的方式对网络进行配置和管理,实现网络的自动化部署和优化。
其次,未来网络层将更加注重安全性和隐私保护。随着网络攻击的日益频繁和复杂,网络层需要不断加强安全机制,提供更强大的加密和身份验证功能,保障通信数据的安全和用户的隐私。例如,采用量子加密技术可以为网络通信提供更高的安全性,防止数据被窃取和篡改。
最后,IPv6 的普及和推广将是网络层未来发展的重要方向。随着 IPv4 地址资源的逐渐枯竭,IPv6 作为 IPv4 的长期替代方案,具有更加庞大的地址空间和更好的安全性,将逐渐成为网络通信的主流。政府和企业需要加大对 IPv6 的推广力度,加快 IPv6 的部署和应用,以满足未来互联网发展的需求。
总之,网络层在实现全球网络互联中具有不可替代的关键作用。虽然它面临着诸多挑战,但随着技术的不断发展,网络层也在不断演进和完善。未来,网络层将更加注重安全性、灵活性和可编程性,为全球网络通信提供更加高效、可靠的服务。
相关文章:

《计算机网络网络层:连接虚拟世界的关键桥梁》
一、网络层概述 网络层在计算机网络中占据着至关重要的地位,它作为连接不同网络的关键层次,起着承上启下的作用。网络层的主要任务是实现网络互连,将数据设法从源端经过若干个中间节点传送到目的端,为分组交换网上的不同主机提供通…...

【AIGC】2024-arXiv-CtrLoRA:一种可扩展且高效的可控图像生成框架
2024-arXiv-CtrLoRA: An Extensible and Efficient Framework for Controllable Image Generation CtrLoRA:一种可扩展且高效的可控图像生成框架摘要1. 引言相关工作3. 方法3.1 准备工作3.3 有效适应新条件3.4 条件嵌入网络的设计 4. 实验4.1 实验设置4.2 与现有方法…...

立仪光谱共焦在玻璃上奥秘与应用
在现代工业和科学研究中,玻璃因其透明、坚硬和易加工的特性被广泛应用于各个领域。然而,玻璃的厚度测量一直是困扰业界的一大难题。传统的千分尺或电容式传感器虽然在一定程度上能满足生产需求,但在精度、效率以及适用范围上存在明显的局限。…...

【天气识别系统】Python+卷积神经网络算法+人工智能+深度学习+TensorFlow+算法模型训练+Django网页界面
一、介绍 天气识别系统,以Python作为主要编程语言,通过收集了4种常见的天气图像数据集(多云、雨天、晴天、日出),然后基于TensorFlow搭建卷积神经网络算法模型,通过多轮迭代训练,最后得到一个识…...

MiniCTX:面向大语言模型定理证明的上下文相关基准测试系统
卡内基梅隆大学的研究人员推出MiniCTX,这是一个强大的基准测试系统,旨在通过整合前所未有的多重上下文元素(包括前提、先前证明、注释、符号以及导入和声明等结构组件)来彻底改变大型语言模型中定理证明能力的评估方式,…...

树莓派开发相关知识三PWM控制转速
基于树莓派PWM控制 控制L298N马达驱动转速 马达驱动转速 1、L298N电路图: 2、需要留意的有几点 INA~IND四个引脚分别控制OUTA-OUTD,即,INA高电平则OUTA有电。 ENA,ENB分别使能控制OUTA~OUTB以及OUTC~OUTD。 OUT口有VCC电压驱动…...

SpringBoot最常用的注解
1、RestController 作用:与Controller类似,但是RestController会自动将返回值转换为JSON格式。 2、RequestMapping 作用:用于映射请求URL和处理方法。 RequestMapping是Spring MVC框架中的一个核心注解,它用于映射HTTP请求和控…...

js 获取当前时间与前一个月时间
// 获取当前时间的毫秒数 var currentTimeMillis new Date().getTime();// 获取前一个月的Date对象 var dateLastMonth new Date(); dateLastMonth.setMonth(dateLastMonth.getMonth() - 1);// 获取前一个月的毫秒数 var timeMillisLastMonth dateLastMonth.getTime();conso…...

深度了解flink rpc机制(四) 组件启动流程源码分析
前言 目前已发布了3篇关于Flink RPC相关的文章,分别从底层通信系统akka/Pekko,RPC实现方式动态代理以及Flink RPC相关的组件做了介绍 深度了解flink rpc机制(一)-Akka/Pekko_flink pekko akka-CSDN博客 深度了解flink rpc机制&…...

C++基于opencv的视频质量检测--遮挡检测
文章目录 0.引言1. 原始代码分析1.1 存在的问题 2. 优化方案3. 优化后的代码4. 代码详细解读4.1. 输入检查4.2. 图像预处理4.3. 高斯模糊4.4. 梯度计算4.5. 计算梯度幅值和方向4.6. 边缘检测4.7. 计算边缘密度4.8. 估计遮挡程度4.9. 限定结果范围4.10. 返回结果 0.引言 视频质…...

手机玩潜水员戴夫?GameViewer远程如何随时随地玩潜水员戴夫教程
如果你是潜水员戴夫的忠实玩家,你知道如何在手机上玩潜水员戴夫吗?潜水员戴夫是一个以神秘蓝洞为背景的海洋冒险游戏。在这个游戏里你白天可以在美丽的大海里打鱼,晚上可以经营寿司店。现在这个游戏也能实现用手机随时随地畅玩了!…...

UE5 喷射背包
首选创建一个输入操作 然后在输入映射中添加,shift是向上飞,ctrl是向下飞 进入人物蓝图中编写逻辑,变量HaveJatpack默认true,Thrust为0 最后...

【Vue3】第三篇
Vue3学习第三篇 01. 组件组成02. 组件嵌套关系03. 组件注册方式04. 组件传递数据Props05. 组件传递多种数据类型06. 组件传递Props校验07. 组件事件08. 组件事件配合v-model使用09. 组件数据传递10. 透传Attributes 01. 组件组成 在vue当中,组件是最重要的知识&…...

c++二级指针
如果要通过函数改变一个指针的值,要往函数中传入指针的指针 如果要通过函数改变一个变量的值,那就要往函数中传入这个变量的地址 改变a的值和b的值 #include <iostream>using namespace std;void swap(int* a, int* b) {int temp *a;*a *b;*b …...

客户端存储 — IndexedDB 实现分页查询
前言 相信 IndexedDB 大家都有过了解,但是不一定每个人都有过实践,并且其中涉及到事务、游标等概念,会导致在初次使用时会有些不适应,那么本文会通过 IndexedDB 实现分页查询的形式进行实践,在开始之前,可…...

logback 如何将日志输出到文件
如何作 将日志输出到文件需要使用 RollingFileAppender,该 Appender 必须定义 rollingPolicy ,另外 rollingPollicy 下必须定义 fileNamePattern 和 encoder <appender name"fileAppender" class"ch.qos.logback.core.rolling.Rollin…...

Files.newBufferedReader和Files.readAllLines
在Java中,Files.newBufferedReader 和 Files.readAllLines 都是用于从文件中读取数据的工具方法,但它们的使用场景和功能有所不同。下面我将详细解释这两个方法的含义、用途、区别、优缺点以及各自的使用场景。 1. Files.newBufferedReader 含义和用途…...

MySQL 数据库备份与恢复全攻略
MySQL 数据库备份与恢复全攻略 引言 在现代应用中,数据库是核心组件之一。无论是个人项目还是企业级应用,数据的安全性和完整性都至关重要。为了防止数据丢失、损坏或意外删除,定期备份数据库是必不可少的。本文将详细介绍 MySQL 数据库的备…...

Appium中的api(一)
目录 1.基础python代码准备 1--参数的一些说明 2--python内所要编写的代码 解释 2.如何获取包名和界面名 1-api 2-完整代码 代码解释 3.如何关闭驱动连接 4.安装卸载app 1--卸载 2--安装 5.判断app是否安装 6.将应用放到后台在切换为前台的时间 7.UIAutomatorViewer的使用 1--找…...

【AI辅助设计】没错!训练FLUX LoRA就这么简单!
前言 得益于开源社区的力量,在各位大佬的努力下,现在16G VRAM的家用电脑也可以训练FLUX的LoRA了 👏。 今天我使用fluxgym这个方法,训练LoRA,并记录过程。 篇幅有限,这里就不一一展示了,有需要的…...

Mac 下安装FastDFS
首先我们需要下载相对应的安装包: libfastcommonFastDFS 下载完成后我们先将其解压到桌面。 1.安装libfastcommon 我们进入到libfastcommon-master目录中执行./make.sh和sudo ./make.sh install,具体代码如下: 2.安装FastDFS 同安装libfa…...

人工智能的未来:重塑生活与工作的变革者
随着人工智能(AI)技术的快速发展,我们正处于一个前所未有的变革时代。AI不仅在医疗、企业运营和日常生活中发挥着重要作用,而且正在重新定义我们的生活和工作方式。本文将探讨人工智能技术的应用前景以及它如何改变我们的生活和工…...

【微服务】Java 对接飞书多维表格使用详解
目录 一、前言 二、前置操作 2.1 开通企业飞书账户 2.2 确保账户具备多维表操作权限 2.3 创建一张测试用的多维表 2.4 获取飞书开放平台文档 2.5 获取Java SDK 三、应用App相关操作 3.1 创建应用过程 3.2 应用发布过程 3.3 应用添加操作权限 四、多维表应用授权操作…...

学习threejs,使用粒子实现下雪特效
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.Points简介1.11 ☘️…...

unity3d——Time
在Unity3D中,Time类是一个非常重要的工具类,它提供了一系列与时间相关的属性和方法,帮助开发者在游戏中实现各种时间相关的操作。以下是一些Time类常用的方法及其示例: 一、常用属性 Time.time 含义:表示从游戏开始到…...

天地图实现海量聚合marker--uniapp后端详细实现
本文章详细的讲解了前后端代码来 实现uniapp天地图功能的实现 以及 后端海量数据的聚合查询 和网格算法实现思路。 并对当数据量增加和用户频繁请求接口时可能导致服务器负载过高做了前后端优化。 前端uniapp: 实现了天地图的行政区划边界/地图切换/比例尺/海量数…...

Bug | 项目中数据库查询问题
问题描述 理论上,点击查询后,表头应当显示中文。而不是上面的在数据库中的表头【如上图示】 正常点击查询后,如果没有输入值,应当是查询所有的信息。 原因分析: 这里是直接使用SELECT * 导致的。例如: S…...

C++入门基础知识129—【关于C 库函数 - time()】
成长路上不孤单😊😊😊😊😊😊 【14后😊///C爱好者😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于C 库函数 - time()的相关内容࿰…...

大文件秒传,分片上传,断点续传
大文件分片上传 一 功能描述 1.文件通过web端分片多线程上传到服务端,然后web端发起分片合并,完成大文件分片上传功能 2.上传过的大文件,实现秒传 3.上传过程中,服务异常退出,实现断点续传 二 流程图 三 代码运行…...

多生境扩增子探秘:深度溯源与多样性解析
分析微生物组数据的组成结构的一个主要挑战是确定其潜在来源。在微生物来源分析中,随机森林、SourceTracker和FEAST都有较广泛应用。今天,小编就带大家看一篇发表在《iMeta》的文章,使用溯源技术追踪微生物的来源与去向,揭示生物在…...