当前位置: 首页 > news >正文

计算机网络之网络层

本文章目录结构出自于《王道计算机考研 计算机网络_哔哩哔哩_bilibili》

03 网络层

在网上看到其他人做了相关笔记,就不再多余写了,直接参考着学习吧。 

1

详解网络层-网络层概述和编址【王道计算机网络笔记】_wx63088f6683f8f的技术博客_51CTO博客

2

详解网络层-网络层协议【王道计算机网络笔记】_wx63088f6683f8f的技术博客_51CTO博客

3

静态路由:手动配置的路由信息;

动态路由:自动配置的路由信息。

网络层设备
路由器:一种具有多个输入端口和多个输出端口的专用计算机,任务是转发分组若收到RIP/OSPF分组等,把分组送往路由选择处理机;若收到数据分组,查找转发表并输出
输入端口:查找和转发功能在路由器的交换功能中最重要
输出端口:分组的速率赶不上分组进入队列的速率,会造成后进入队列的分组由于没有存储空间而丢弃,即路由器中输入或输出队列产生溢出是造成分组丢失的重要原因。

4
本小节后续内容可直接观看原视频,或者查看网友的这篇笔记:

【王道·计算机网络】第四章 网络层_王道计算机网络_啊有礼貌的博客-CSDN博客

最大传送单元MTU:数据链路层数据帧可封装数据的上限,以太网的MTU是1500字节(包含IP首部在内)。

网络层要按照链路层能传输的MTU来将数据进行分片,然后将分片下发给链路层,如果网络层下发链路层的数据过长,链路层就会拒绝发送。

网络中哪几层会拆分数据?

网络中会拆分数据的层主要有以下几层:

传输层

以TCP为例,它会将应用层的数据流分割成适当长度的报文段,以便在网络中独立传输。比如,当应用层有大量数据需要发送时,TCP会根据网络状况和自身的机制,将数据分段后交给网络层。

网络层

当数据包的大小超过了网络的最大传输单元(MTU)时,网络层会将数据包拆分成多个更小的数据包进行传输。例如在IP协议中,如果一个数据报的长度超过了所要通过的链路的MTU,就会在网络层对数据报进行分片。

数据链路层

虽然严格来说它不是对上层传下来的数据进行拆分,但它会将网络层交下来的IP数据报组装成帧,在帧中添加源MAC地址和目的MAC地址等信息,以便在局域网中进行传输。如果网络层的IP数据报太大,无法在一个数据帧中完整传输,就需要在网络层先进行分片,再由数据链路层分别封装成帧进行传输。

综上所述,网络中的网络层、传输层和数据链路层都可能会对数据进行拆分操作,以满足不同层次的传输需求和限制。

网络数据分片示例:

更多参看上方链接文章。

网络层只能确保数据到达某一个设备,网络层为主机间的通信提供服务,但是仅仅将数据传送到主机并没有通信结束,只有将数据送交到具体的进程或者进程中具体的线程才能实现通信的过程;因此网络层的通信并未完成,需要传输层实现进程与进程之间的逻辑通信。 

网络层提供最大努力交付,是不可靠传输;因此需要上一层传输层担起可靠传输的职责;传输层有UDP、TCP两大协议;其中UDP不可靠,TCP可靠,因此网络层不能可靠传输的话,传输层就可以通过使用TCP协议保证可靠传输;如果传输层使用的UDP协议,就需要再最上一层应用层实现可靠传输。 

每个路由器总是有两个或两个以上IP地址,路由器的每个接口都会有不同网络号的IP地址。 

IPV4

IP地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围是唯一的32位的标识符。无论哪类IP地址,都由网络号和主机号两部分组成。一般将IP地址分为A、B、C、D、E 五类地址:

每一类IP地址,可以通过第一个字节的大小来判断,如上图中各类ip后的数字范围。

除了前面的固定几位,剩下的全为0即是范围下限值,剩下的全为1即是范围上限值。

以C类IP为例,范围是11000000b~11011111b,也就是192~223.

特殊IP地址

环回地址就是自己给自己发,检测设备是否可以正确的接受发送数据、网络层是否能正常工作等。

私有ip地址

在现在的网络中,IP地址分为公网IP地址和私有IP地址。

公网IP是在Internet使用的IP地址,而私有IP地址则是在局域网中使用的IP地址。

私有IP地址是一段保留的IP地址。只使用在局域网中,无法在Internet上使用。

当私有网络内的主机要与位于公网上的主机进行通讯时必须经过地址转换,将其私有地址转换为合法公网地址才能对外访问。

NAT-Network Address Translation 网络地址转换

所谓的私有地址就是在互联网上不使用,而被用在局域网络中的地址

更多参考:

私有IP地址定义、私有IP地址范围(10.0.0.0/8、172.16.0.0/12、192.168.0.0/16)内网ip地址范围、局域网ip范围、外网ip、互联网ip-CSDN博客

网络地址转换NAT

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

子网划分与无分类编址

CIDR中已经废弃了IP地址的分类,无分类编址的命名也是由此得来的,所以目前基本已经不再采用所谓的A类、B类、C类的IP地址分类表示法,引入一个额外的子网掩码(subnet mask)来区分网络号和主机号;子网掩码也是一个32位的正整数. 通常用一串 “0” 来结尾;将IP地址和子网掩码进行 “按位与” 操作, 得到的结果就是网络号;但仍然是基于ABCD大类来进行子网划分。

IP地址计算---子网掩码确定和子网划分等详解 (附常见相关习题)_子网掩码计算例题和讲解-CSDN博客

几个特殊的IP地址

就像我们每个人都有一个身份证号码一样,网络里的每台电脑(更确切地说,是每一个设备的网络接口)都有一个IP地址用于标示自己。我们可能都知道这些地址由四个字节组成,用点分十进制表示以及它们的A,B,C分类等,然而,在总数大约为四十多亿个可用IP地址里,你知道下面一些常见的有特殊意义地址吗?

一、0.0.0.0

严格说来,0.0.0.0已经不是一个真正意义上的IP地址了。它表示的是这样一个集合:所有不清楚的主机和目的网络。这里的“不清楚”是指在本机的路由表里没有特定条目指明如何到达。对本机来说,它就是一个“收容所”,所有不认识的“三无”人员,一律送进去。

二、255.255.255.255

广播地址。对本机来说,这个地址指本网段内(同一广播域)的所有主机。如果翻译成人类的语言,应该是这样:“这个房间里的所有人都注意了!”这个地址不能被路由器转发。

三、127.0.0.1

本机地址,主要用于环回测试。用汉语表示,就是“我自己”。在Windows系统中,这个地址有一个别名“LocolHost”。寻址这样一个地址,是不能把它发到网络接口的。除非出错,否则在传输介质上永远不应该出现目的地址为“127.0.0.1”的数据包。

四、224.0.0.1

组播地址,注意它和广播的区别。从224.0.0.0到239.255.255.255都是这样的地址。224.0.0.1特指所有主机,224.0.0.2特指所有路由器。这样的地址多用于一些特定的程序以及多媒体程序。如果你的主机开启了IRDP(Internet路由发现协议,使用组播功能)功能,那么你的主机路由表中应该有这样一条路由。

五、169.254.X.X

如果你的主机使用了DHCP功能自动获得一个IP地址,那么当你的DHCP服务器发生故障,或响应时间太长而超出了一个系统规定的时间,Wingdows系统会为你分配这样一个地址。如果你发现你的主机IP地址是一个诸如此类的地址,很不幸,十有八九是你的网络不能正常运行了。

六、10.X.X.X、172.16.X.X~172.31.X.X、192.168.X.X

私有地址,这些地址被大量用于企业内部网络中。一些宽带路由器,也往往使用192.168.1.1作为缺省地址。私有网络由于不与外部互连,因而可能使用随意的IP地址。保留这样的地址供其使用是为了避免以后接入公网时引起地址混乱。使用私有地址的私有网络在接入Internet时,要使用地址翻译(NAT),将私有地址翻译成公用合法地址。在Internet上,这类地址是不能出现的。对一台网络上的主机来说,它可以正常接收的合法目的网络地址有三种:本机的IP地址、广播地址以及组播地址。

路由选择

计算机网络(23)——路由选择算法概述及层次路由_层次路由系统-CSDN博客

关于PING命令TTL值的理解 - PBDragon - 博客园 (cnblogs.com)

ICMP协议

进一步认识ICMP协议-CSDN博客

IP协议

参考:

IP协议详解:报头格式、主机定位、转发流程、网段划分与路由机制_子网中路由器也可以看作主机吗-CSDN博客

VPN

到底什么是VPN?

9.2、VPN虚拟专用网详述_虚拟专用网关键技术-CSDN博客

VPN(虚拟专用网络)连接是通过公共网络(如互联网)进行加密通信,允许分公司的网络安全地连接到总部的网络。VPN 通过加密数据流,使其在公共网络中传输时变得安全,可以通过互联网以较低的成本建立连接。

VPN简介_vprn-CSDN博客

防火墙 NAT 网关 路由器

路由器、交换机、集线器的区别_集线器交换机路由器三者区别-CSDN博客

【科普】为什么ip地址通常以192.168开头?-CSDN博客

什么是防火墙?它有什么作用?_出口安全防火墙的作用-CSDN博客

Nat和防火墙的概念和纠葛,谁先作用?_防火墙先匹配nat-CSDN博客

网络工程师必知:网关与防火墙有什么区别?_网关和防火墙-CSDN博客

原来路由器的主要功能是使用一系列算法决定网络间的最短路径。

两个网络的连接是通过网关。

只不过,现在的路由器都集成了网关,所以路由器也具有网关的功能。

详解网关和路由器的区别_设置网关和设置路由的区别-CSDN博客

1、对于家庭共享上网,只需要使用网关即可,所以在宽带路由器中选择“网关”选项。

2、对于大型企业网络内部,或大型企业网络连接Internet,由于网络中可能存在其他路由器,所以应当选择宽带路由器中的“路由器”选项,以决定网络间的最短路径。

PS:默认网关

有时在Windows中设置网络时,我们经常会看到“默认网关”的设置 

默认网关指计算机所在网络边界的网关或路由器,因为只有网关和路由器才知道如何到达其他网络。

对于网络内部的计算机来说,只有知道了默认网关的位置才能和网络外部通信。

所以默认网关是一个很重要的设置。但大多数情况下不需要我们手动设置,因为网络中的DHCP服务器可以自动提供默认网关的位置。

对于使用宽带路由器共享上网,默认网关是宽带路由器。

对于拨号上网,默认网关是是运营商处的路由器。

对于网络中有启用了ICS(Internet连接共享)的计算机并共享上网,默认网关就是这台计算机。

网络中判断源 IP 和目的 IP 是否处于同一网段主要在网络层,具体是在 IP 协议的路由选择过程中进行判断。以下是具体的判断步骤:

获取子网掩码:对于源主机和目标主机,分别获取其 IP 地址所对应的子网掩码。子网掩码用于确定 IP 地址中的网络部分和主机部分。例如,常见的子网掩码有 255.255.255.0、255.255.252.0 等。

进行与运算:将源 IP 地址和目的 IP 地址分别与各自的子网掩码进行按位与(AND)运算。

按位与运算的规则是:只有两个对应的二进制位都为 1 时,结果才为 1,否则为 0。例如,IP 地址 192.168.1.10 转换为二进制是 11000000.10101000.00000001.00001010,子网掩码 255.255.255.0 转换为二进制是 11111111.11111111.11111111.00000000,两者进行按位与运算后的结果为 11000000.10101000.00000001.00000000,即 192.168.1.0。

比较运算结果:将源 IP 地址与子网掩码按位与运算后的结果和目的 IP 地址与子网掩码按位与运算后的结果进行比较。

如果两者相同,则说明源 IP 和目的 IP 处于同一网段;如果不同,则说明它们不处于同一网段。

综上所述,通过上述步骤可以有效地判断源IP和目的IP是否处于同一网段,这一过程对于网络通信中的路由选择和数据转发具有重要意义。

各种异构网络,不管是4G、wifi或者以太网,只有物理层和链路层上有差别,在网络层及以上层都是一样的。 

路由器的每个端口都处于不同的网段吗? 

路由器的每个端口是否都处于不同的网段,需要分情况来看:

  • 广域网接口(WAN 口)与局域网接口(LAN 口):一般情况下,WAN 口和 LAN 口处于不同的网段。WAN 口用于连接外网,如宽带网络、光纤等接入互联网的设备或线路,其 IP 地址由上级网络服务提供商分配,通常是一个公网 IP 地址。而 LAN 口用于连接本地设备,构建局域网,其 IP 地址是私有 IP 地址,由路由器自行分配或手动设置,与 WAN 口所在的网段不同。例如,WAN 口可能被分配的 IP 地址是 203.0.113.100,子网掩码是 255.255.255.255;而 LAN 口的 IP 地址可能是 192.168.1.1,子网掩码是 255.255.255.0。

  • 多个 LAN 口之间:对于普通的家用或小型办公路由器,多个 LAN 口通常处于同一个网段。这是因为这些 LAN 口主要用于连接本地设备,如电脑、打印机等,这些设备在局域网内需要进行通信和资源共享,处于同一网段可以方便设备之间的互相访问和管理。比如,在一个家庭网络中,多台电脑通过不同的 LAN 口连接到路由器,它们的 IP 地址可能都是 192.168.1.x(x 为 2-254 之间的数字),子网掩码都是 255.255.255.0。

综上所述,路由器的不同端口所处的网段情况因端口类型和使用场景而异。

路由器的多个LAN口能否被当做交换机来使用?

路由器的多个LAN口可以被当作交换机来使用,但存在一些限制和注意事项。以下是具体介绍:

功能原理

路由器的LAN口本身具有交换功能,其本质上就是一个多端口的交换机。从数据交换的层面来看,它可以实现多个设备之间的数据转发,使连接在LAN口上的设备能够相互通信。

性能方面

与专用交换机对比:路由器的主要功能是实现不同网络之间的数据转发,其LAN口在设计上更侧重于连接本地设备以访问互联网。而专用交换机则专注于局域网内部的高效数据交换,通常具有更高的背板带宽、更低的延迟以及更多的功能特性,如VLAN划分、链路聚合等。因此,当大量设备通过路由器的LAN口进行高速数据传输时,可能会出现网络拥堵和性能下降的情况。

实际使用情况:如果只是连接少量的设备,如几台电脑、打印机等,并且对网络性能要求不高,路由器的LAN口作为交换机使用基本可以满足需求。但如果连接的设备数量较多,或者有对网络性能要求较高的设备,如服务器、游戏主机等,可能会影响到网络的稳定性和速度。

设置方面

关闭DHCP服务:默认情况下,路由器的LAN口会开启DHCP服务,自动为连接的设备分配IP地址。但当将路由器的LAN口作为交换机使用时,为了避免IP地址冲突,需要关闭该接口的DHCP服务,让主路由器或其他设备来负责IP地址的分配。

修改IP地址:为了防止与其他设备的IP地址冲突,通常需要将路由器的LAN口IP地址修改为与主网络不同的网段。例如,主路由器的LAN口IP地址为192.168.1.1,那么作为交换机使用的路由器的LAN口IP地址可以设置为192.168.2.1等。

安全和管理方面

安全防护:虽然路由器具有一定的安全防护功能,但将其LAN口作为交换机使用时,可能会暴露内部网络的安全漏洞。因为原本由路由器隔离的不同网络,现在通过LAN口连接在一起,增加了被攻击的风险。例如,如果其中一个设备受到感染或攻击,可能会威胁到整个网络的安全。

管理复杂性:在大型网络中,如果将多个路由器的LAN口当作交换机使用,可能会导致网络拓扑结构变得复杂,增加网络管理和故障排查的难度。不同路由器的配置和管理界面可能存在差异,也会给统一管理带来不便。

总的来说,路由器的多个LAN口能当作交换机使用,但在性能、设置以及安全和管理方面存在一定局限。若只是临时、小规模且对性能要求不高的场景下可应急使用,但对于大规模、高性能需求的网络环境,建议优先选择专用交换机以保障网络的稳定和高效运行。

相关文章:

计算机网络之网络层

本文章目录结构出自于《王道计算机考研 计算机网络_哔哩哔哩_bilibili》 03 网络层 在网上看到其他人做了相关笔记,就不再多余写了,直接参考着学习吧。 1 详解网络层-网络层概述和编址【王道计算机网络笔记】_wx63088f6683f8f的技术博客_51CTO博客 2 …...

WebAssembly视频检测在社区创作平台的落地与实践 | 得物技术

一、背景&现状 创作者服务平台作为得物为社区创作者提供的PC端视频发布入口,地位非常重要。且随着功能的升级迭代,用户群体也越来越多。但我们偶尔会收到如下反馈: 视频损坏,无法播放视频模糊曝光度问题黑屏,只有…...

服务器内部是如何运行的

服务器内部的运行可以从硬件和软件两个方面来解释。 一、硬件层面 服务器的硬件与普通计算机相似,但它通常具有更高的性能和更强的扩展性。服务器硬件包括: 1.中央处理单元(CPU):负责执行服务器上的计算任务。服务器一般配备多核心的高性能CPU,以支持多个请求并行处理…...

mapbox加载geojson,鼠标移入改变颜色,设置样式以及vue中的使用

全国地图json数据下载地址 目录 html加载全部代码 方式一:使用html方式加载geojson 1. 初始化地图 2. 加载geojson数据 设置geojson图层样式,设置type加载数据类型 设置线条 鼠标移入改变颜色,设置图层属性,此处是fill-extru…...

电子应用设计方案102:智能家庭AI鱼缸系统设计

智能家庭 AI 鱼缸系统设计 一、引言 智能家庭 AI 鱼缸系统旨在为鱼类提供一个健康、舒适的生活环境,同时为用户提供便捷的管理和观赏体验。 二、系统概述 1. 系统目标 - 自动维持水质稳定,包括水温、酸碱度、硬度和溶氧量等关键指标。 - 智能投食&…...

ESP8266 OTA固件启动日志里分区解析【2M flash】

ESP8266 启动日志中分区表的内容及其解释 分区表日志: I (136) boot: Partition Table: I (147) boot: ## Label Usage Type ST Offset Length I (170) boot: 0 nvs WiFi data 01 02 00009000 00004000 I (193) boot:…...

dl学习笔记:(7)完整神经网络流程

完整神经网络流程 反向传播链式求导 代码实现反向传播动量法Momentum开始迭代为什么选择小批量TensorDataset与DataLoader 反向传播 由于本节的公式比较多,所以如果哪里写错了漏写了,还请帮忙指出以便进行改正,谢谢。 在前面的章节已经介绍过…...

三分钟简单了解一些HTML的标签和语法_01

1.图片建议建立一个文件夹如下图所示 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"keywords"><title>魔神羽落</title><style>.testone{background-color: #ff53e…...

C# 中使用Hash用于密码加密

通过一定的哈希算法&#xff08;典型的有MD5&#xff0c;SHA-1等&#xff09;&#xff0c;将一段较长的数据映射为较短小的数据&#xff0c;这段小数据就是大数据的哈希值。他最大的特点就是唯一性&#xff0c;一旦大数据发生了变化&#xff0c;哪怕是一个微小的变化&#xff0…...

【C++高并发服务器WebServer】-2:exec函数簇、进程控制

本文目录 一、exec函数簇介绍二、exec函数簇 一、exec函数簇介绍 exec 函数族的作用是根据指定的文件名找到可执行文件&#xff0c;并用它来取代调用进程的内容&#xff0c;换句话说&#xff0c;就是在调用进程内部执行一个可执行文件。 exec函数族的函数执行成功后不会返回&…...

Linux将目录挂载到另一个目录,类似软硬链接,并通过fstab实现

格式 <源> <目> none bind 0 0例如 /data/var/lib/docker /var/lib/docker none bind 0 0参数使用制表符tab间隔 效果 rootDebian12:~# cat /etc/fstab | grep -v ^# /dev/mapper/Debian12--vg-root / ext4 erro…...

【C++模板】:如何判断自定义类型是否实现某个函数

一、引子 偶尔我们会面对这样的尴尬的场景&#xff0c;我们需要显示的去判断在某个自定义类型中&#xff0c;是否已经提供了我们期待的API接口&#xff0c;以避免产生“莫须有”的错误。阁下该如何破解此问题&#xff01; 这里&#xff0c;直接给出一种通用的方法&#xff0c;…...

关于CAN(FD)转以太网详细介绍

一、功能描述 CANFD 完全向下兼容 CAN &#xff0c;以下统称 CAN(FD) 。 SG-CAN(FD)NET-210 是一款用来把 CANFD 总线数据转为网口数据的设备。 网口支持 TCP Sever 、 TCP Client 、 UDP Sever 、 UDP Client 四种模式。 可以通过软件配置和 Web 网页配置。 两路…...

GPU算力平台|在GPU算力平台部署MedicalGPT医疗大模型的应用教程

文章目录 一、GPU算力服务平台云端GPU算力平台 二、平台账号注册流程MedicalGPT医疗大模型的部署MedicalGPT医疗大模型概述MedicalGPT部署步骤 一、GPU算力服务平台 云端GPU算力平台 云端GPU算力平台专为GPU加速计算设计&#xff0c;是一个高性能计算中心&#xff0c;广泛应用…...

【ChatGPT】意义空间与语义运动定律 —— AI 世界的神秘法则

作者介绍 斯蒂芬•沃尔弗拉姆&#xff08;Stephen Wolfram&#xff09; 计算机科学家、数学家和理论物理学家&#xff0c;当今科学和技术领域重要的革新者之一。他创造了在全世界备受推崇的软件系统——Mathematica、Wolfram|Alpha和Wolfram语言。 在 ChatGPT 内部&#xff0c;…...

Harbor 部署教程

Harbor 部署教程 一.背景二.遇到的问题及解决办法1.服务无法启动,相关的容器不断重启 三.操作步骤1. 创建工作目录并进入2. 配置 Docker 守护进程3. 重启 Docker 服务4. 下载 Harbor 离线安装包和 Docker Compose5. 安装 Docker Compose6. 解压 Harbor 安装包7. 配置 Harbor8. …...

hive 自动检测、自动重启、记录检测日志、自动清理日志

最终效果 定时检测hive运行状态&#xff0c;进程不存在或者进程存在但是不监听端口的hiveserver2&#xff0c;自动重新拉起每次检测脚本执行的日志都会保存在log目录下.check文件&#xff0c;每一个月一个文件每月15日&#xff0c;删除2月前的检测日志开启hive自带日志输出后&…...

C++类和对象下详细指南

C类和对象下详细指南 1. 初始化列表与构造函数 1.1 初始化列表概述 初始化列表在C中用于初始化对象的成员变量&#xff0c;特别是当你需要在对象构造时就明确成员变量的值时。通过初始化列表&#xff0c;成员变量的初始化可以在进入构造函数体之前完成。这不仅可以提升性能&…...

【算法C++】构造回文字符串问题

问题描述 小C手中有一个由小写字母组成的字符串 s。她希望构造另一个字符串 t&#xff0c;并且这个字符串需要满足以下几个条件&#xff1a; t 由小写字母组成&#xff0c;且长度与 s 相同。t 是回文字符串&#xff0c;即从左到右与从右到左读取相同。t 的字典序要小于 s&…...

基于java线程池和EasyExcel实现数据异步导入

基于java线程池和EasyExcel实现数据异步导入 2.代码实现 2.1 controller层 PostMapping("import")public void importExcel(MultipartFile file) throws IOException {importService.importExcelAsync(file);}2.2 service层 Resource private SalariesListener sa…...

使用Layout三行布局(SemiDesign)

tips&#xff1a;Semi Design网址 &#xff1a;Semi Design 1、安装Semi # 使用 npm npm i douyinfe/semi-ui# 使用 yarn yarn add douyinfe/semi-ui# 使用 pnpm pnpm add douyinfe/semi-ui 2、引入Layout布局 import { Layout } from douyinfe/semi-ui;3、开始实现三行布局…...

缓存之美:万文详解 Caffeine 实现原理(下)

上篇文章&#xff1a;缓存之美&#xff1a;万文详解 Caffeine 实现原理&#xff08;上&#xff09; getIfPresent 现在我们对 put 方法有了基本了解&#xff0c;现在我们继续深入 getIfPresent 方法&#xff1a; public class TestReadSourceCode {Testpublic void doRead() …...

PHP防伪溯源一体化管理系统小程序

&#x1f50d; 防伪溯源一体化管理系统&#xff0c;品质之光&#xff0c;根源之锁 &#x1f680; 引领防伪技术革命&#xff0c;重塑品牌信任基石 我们自豪地站在防伪技术的前沿&#xff0c;为您呈现基于ThinkPHP和Uniapp精心锻造的多平台&#xff08;微信小程序、H5网页&…...

STM32——LCD

一、引脚配置 查看引脚 将上述引脚都设置为GPIO_Output 二、导入驱动文件 将 LCD 驱动的 Inc 以及 Src 中的 fonts.h,lcd.h 和 lcd.c 导入到自己工程的驱动文件中。 当然&#xff0c;后面 lcd 的驱动学习可以和 IMX6U 一块学。 三、LCD函数 void LCD_Clear(u16 Color); 功能…...

洛谷刷题1-3

比较巧妙&#xff0c;求最小公倍数&#xff0c;看多少个数一次循环&#xff0c;直接求解就好了&#xff0c;N的数量级比较大&#xff0c;一层循环也会超时&#xff0c;也用了点双指针的想法&#xff08;归并排序&#xff09; 这里很大的问题&#xff0c;主要是cin输入的时候遇到…...

Facebook 元宇宙与全球文化交流的新趋势

随着科技的快速发展&#xff0c;虚拟现实与增强现实技术逐渐成为全球社交平台的重要组成部分。Facebook&#xff08;现改名为 Meta&#xff09;率先将目光投向了元宇宙这一新兴领域&#xff0c;致力于打造一个超越传统社交媒体的虚拟空间&#xff0c;成为全球文化交流的新平台。…...

结构化布线系统分为六个子系统

文章目录 前言系统介绍1. 工作区子系统 (Work Area Subsystem)2. 水平布线子系统 (Horizontal Cabling Subsystem)3. 管理子系统 (Administration Subsystem)4. 干线&#xff08;垂直&#xff09;子系统 (Backbone Cabling Subsystem)5. 设备间子系统 (Equipment Room Subsyste…...

亿坊软件前端命名规范

在前端开发中&#xff0c;文件命名的重要性不言而喻。由于历史原因和个人习惯&#xff0c;不同的开发者在命名DOM结构、图片和CSS文件时&#xff0c;可能会产生不一致的情况。这不仅会导致维护成本增加&#xff0c;还会降低团队协作效率。因此&#xff0c;制定一套统一的命名规…...

单片机-STM32 IIC通信(OLED屏幕)(十一)

一、屏幕的分类 1、LED屏幕&#xff1a; 由无数个发光的LED灯珠按照一定的顺序排列而成&#xff0c;当需要显示内容的时候&#xff0c;点亮相关的LED灯即可&#xff0c;市场占有率很高&#xff0c;主要是用于户外&#xff0c;广告屏幕&#xff0c;成本低。 LED屏是一种用发光…...

【Qt】: QPointer详解

考古&#xff1a; 《Qt智能指针之QScopedPointer》 QPointer是Qt框架中的一个智能指针类&#xff0c;用于安全地管理QObject派生对象的指针。它的主要功能是自动将指针置为nullptr&#xff0c;当它所指向的QObject对象被销毁时。这在Qt应用程序中非常有用&#xff0c;因为QObj…...

15_业务系统基类

创建脚本 SystemRoot.cs 因为 业务系统基类的子类 会涉及资源加载服务层ResSvc.cs 和 音乐播放服务层AudioSvc.cs 所以在业务系统基类 提取引用资源加载服务层ResSvc.cs 和 音乐播放服务层AudioSvc.cs 并调用单例初始化 using UnityEngine; // 功能 : 业务系统基类 public c…...

C++中explicit关键字的介绍和使用详解

某一天突然发现Qt自动生成的类文件的构造函数前边都有explicit关键字&#xff0c;但是explicit关键字什么意思呐&#xff1f; 在C中&#xff0c;explicit是一个关键字&#xff0c;主要用于修饰构造函数或转换运算符&#xff0c;其作用是防止隐式类型转换或隐式构造行为。 下面…...

动态内存管理

本章重点 1.为什么存在动态内存分配 2.动态内存函数的介绍 3.malloc free calloc realloc 4.常见的动态内存错误 一.为什么存在动态内存分配 二.动态内存函数的介绍 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include &…...

Java 中的各种锁详解

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…...

进制之间转换

「 一、十进制 二进制 」 1.十进制转二进制&#xff1a;一直除以2直到商为0&#xff0c;再反向取余数。 例&#xff1a;13&#xff08;十进制&#xff09;转1101&#xff08;二进制&#xff09; 2.二进制转十进制:最后一位数开始是2^0&#xff0c;然后一直按照指数递增的方式…...

微信小程序获取位置服务

wx.getLocation({type: gcj02,success(res) {wx.log(定位成功);},fail(err) {wx.log(定位失败, err);wx.showModal({content: 请打开手机和小程序中的定位服务,success: (modRes) > {if (modRes.confirm) {wx.openSetting({success(setRes) {if (setRes.authSetting[scope.u…...

数据结构——实验八·学生管理系统

嗨~~欢迎来到Tubishu的博客&#x1f338;如果你也是一名在校大学生&#xff0c;正在寻找各种编程资源&#xff0c;那么你就来对地方啦&#x1f31f; Tubishu是一名计算机本科生&#xff0c;会不定期整理和分享学习中的优质资源&#xff0c;希望能为你的编程之路添砖加瓦⭐&…...

Linux应用编程(五)USB应用开发-libusb库

一、基础知识 1. USB接口是什么&#xff1f; USB接口&#xff08;Universal Serial Bus&#xff09;是一种通用串行总线&#xff0c;广泛使用的接口标准&#xff0c;主要用于连接计算机与外围设备&#xff08;如键盘、鼠标、打印机、存储设备等&#xff09;之间的数据传输和电…...

Swift语言探索:Sequence与Collection的详细解读

在Swift编程语言中&#xff0c;Sequence和Collection是两个非常重要的协议&#xff0c;它们定义了遍历和访问元素集合的方式。理解这两个协议不仅有助于我们更好地掌握Swift的集合类型&#xff0c;还能让我们在编写代码时更加灵活和高效。本文将详细解读Sequence与Collection&a…...

解锁C# EF/EF Core:从入门到进阶的技术飞跃

一、EF/EF Core 初相识 在.NET 开发的广阔天地中&#xff0c;Entity Framework (EF) 及其轻量级、可扩展、跨平台的版本 Entity Framework Core (EF Core)&#xff0c;犹如两颗璀璨的明星&#xff0c;照亮了数据访问层开发的道路。它们是开源的对象关系映射器&#xff08;ORM&…...

大模型搜广推?对算法工作的影响

大模型与传统应用结合的性质 长期看是一种范式革新。算力和模型定义的边界发生变化&#xff0c;选择生成式AI或大模型发展方向时&#xff0c;会不断发现新的增长曲线&#xff0c;目前在不断被验证。 现阶段大模型确实带来了增量信息&#xff0c;但推荐过程仍在原有流程基础上…...

【教程】最好的pytorch教程

文章目录 Materials for the Learn PyTorch for Deep Learning: Zero to Mastery course from: https://github.com/mrdbourke/pytorch-deep-learning/blob/main/01_pytorch_workflow.ipynb...

基于java线程池和EasyExcel实现异步导出

基于java线程池和EasyExcel实现异步导出 1.controller层 GetMapping("export") public void exportExcel(HttpServletResponse response) throws IOException, InterruptedException {exportService.exportExcel(response); }2. service public void exportExcel(H…...

vue3组件传值具体使用

问&#xff1a; left.vue文件调用接口获取了后端返回的urlLink字段&#xff0c;我该怎么传递给总的父组件index.vue中&#xff0c;我需要点击父组件的一个按钮来触发跳转&#xff1f; 回答&#xff1a; 在 Vue 3 中使用 TypeScript 和 setup 语法糖时&#xff0c;可以通过 e…...

《CPython Internals》阅读笔记:p336-p352

《CPython Internals》学习第 17天&#xff0c;p336-p352 总结&#xff0c;总计 17 页。 一、技术总结 1.GDB GDB 是 GNU Dbugger 的缩写。 (1)安装 sudo apt install gdb(2)创建 .gdbinit 文件 touch ~/.gdbinitvim ~/.gdbinit(3)配置 .gdbinit 文件 add-auto-load-saf…...

WPF基础 | WPF 常用控件实战:Button、TextBox 等的基础应用

WPF基础 | WPF 常用控件实战&#xff1a;Button、TextBox 等的基础应用 一、前言二、Button 控件基础2.1 Button 的基本定义与显示2.2 按钮样式设置2.3 按钮大小与布局 三、Button 的交互功能3.1 点击事件处理3.2 鼠标悬停与离开效果3.3 按钮禁用与启用 四、TextBox 控件基础4.…...

Langchain+讯飞星火大模型Spark Max调用

1、安装langchain #安装langchain环境 pip install langchain0.3.3 openai -i https://mirrors.aliyun.com/pypi/simple #灵积模型服务 pip install dashscope -i https://mirrors.aliyun.com/pypi/simple #安装第三方集成,就是各种大语言模型 pip install langchain-comm…...

2025年华为云一键快速部署幻兽帕鲁联机服务器教程

华为云如何快速部署幻兽帕鲁联机服务器&#xff1f;为了方便新手玩家搭建专属游戏联机服务器&#xff0c;华为云推出了云游戏专场&#xff0c;无需专业技术&#xff0c;新手小白也能一键快速部署幻兽帕鲁联机服务器&#xff01; 华为云快速部署幻兽帕鲁联机服务器教程如下&…...

Langchain+文心一言调用

import osfrom langchain_community.llms import QianfanLLMEndpointos.environ["QIANFAN_AK"] "" os.environ["QIANFAN_SK"] ""llm_wenxin QianfanLLMEndpoint()res llm_wenxin.invoke("中国国庆日是哪一天?") print(…...

C++AVL树(一)详解

文章目录 AVL树概念AVL树的插入平衡因子的更新旋转的规则左单旋右单旋抽象的情况h0h1h 2h 3 AVL树 概念 AVL树是一棵平衡二叉查找树&#xff0c;AVL树是空树&#xff0c;保证左右子树都是AVL树&#xff0c;AVL树要求高度差的绝对值不超过1&#xff0c;因为最好情况是1&#…...