jquery+js网站模板免费下载/郑州新闻发布
目录
- 网卡
- IP
- 网络地址
- 主机地址
- 子网
- 子网掩码
- 网关
- 默认网关
- MAC
- ARP
- ARP抓包分析
- 路由器
- NAT
- NAPT
- 交换机
网卡
网卡(Network Interface Card,简称NIC),也称网络适配器。
OSI模型:
1、网卡工作在OSI模型的最后两层,物理层和数据链路层。物理层的芯片称之为PHY,数据链路层的芯片称之为MAC控制器。
2、物理层定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口。
3、数据链路层则提供寻址机构、数据帧的构建、数据差错检查、传送控制、向网络层提供标准的数据接口等功能。
网卡混杂模式:
混杂模式就是接收所有经过网卡的数据包,包括不是发给本机的包,即不验证MAC地址。普通模式下网卡只接收发给本机的包(包括广播包)传递给上层程序,其它的包一律丢弃。
连接方式:PCI总线接MAC总线,MAC通过MII接PHY,PHY通过变压装器接网线。
网卡接收数据流程:
网卡接收到一个数据包,根据目的MAC地址判断是不是发给自己的,如果不是则将丢弃该数据包。
IP
IP(Internet Protocol),位于OSI模型的网络层。IP只为主机提供一种无连接、不可靠的、尽力而为的数据包传输服务。
- 1、IP地址 = 网络地址 + 主机地址(又称:网络号和主机号)
- 2、我们把网络号相同的主机称之为本地网络中的主机,网络号不相同的主机称之为远程网络中的主机。
- 3、本地网络中的主机可以直接相互通信,远程网络中的主机要相互通信必须通过本地网关(Gateway)来传递转发数据。
IP地址主要有A、B、C、D、E五类地址:
-
A类:由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”(网络地址全为0的地址被保留使用)。地址范围是1.0.0.0 到 127.255.255.255,主要分配给大量主机而局域网网络数量较少的大型网络;
-
B类:由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高两位必须是“10”。地址范围是128.0.0.0 到191.255.255.255,一般用于国际性大公司和政府机构;
-
C类:由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是“110”。地址范围是192.0.0.0 到223.255.255.255,用于一般小公司校园网研究机构等;
-
D类:第一个字节由“1110”开始。全零(“0.0.0.0”)地址对应于当前主机。全“1”的IP地址(“255.255.255.255”)是当前子网的广播地址。地址范围是224.0.0.0 到 239.255.255.255,又称做广播地址,因此任何第一个字节大于223小于240的IP地址是多点播送地址。
-
E类:由“11110”开始,地址范围是240.0.0.0 到255.255.255.255,暂时保留。
网络地址
计算网络地址就是判断网络中的计算机在不在同一网络,在就能通,不在就不能通,需要借助本地网关的帮助。
将IP地址和子网掩码全部转换为二进制形式,然后二者逐位相与的结果就是网络地址。
IP十进制:192.168.1.1
IP二进制:11000000 10101000 00000001 00000001子网掩码十进制:255.255.255.0
子网掩码二进制:11111111 11111111 11111111 00000000网络地址 = IP & 子网掩码
网络地址二进制:11000000 10101000 00000001 00000000
网络地址十进制:192.168.1.0
主机地址
IP与子网掩码的非的结果相与就是主机地址。
IP十进制:192.168.1.1
IP二进制:11000000 10101000 00000001 00000001子网掩码十进制:255.255.255.0
子网掩码二进制:11111111 11111111 11111111 00000000主机地址 = IP & (~子网掩码)
主机地址二进制:00000000 00000000 00000000 00000001
主机地址十进制:0.0.0.1
子网
为了确定网络区域,分开主机和路由器的每个接口,从而产生了若干个分离的网络岛,这些独立的网络岛叫做子网(subnet)。
子网掩码
子网掩码的表示方法
(1)点分十进制表示法
二进制转换十进制,每8位用点号隔开。
例如:子网掩码二进制11111111.11111111.11111111.00000000,表示为255.255.255.0
(2)CIDR斜线记法
IP地址/n
-
例1:192.168.1.100/24,其子网掩码表示为255.255.255.0,二进制表示为11111111.11111111.11111111.00000000
-
例2:172.16.198.12/20,其子网掩码表示为255.255.240.0,二进制表示为11111111.11111111.11110000.00000000
不难发现,例1中共有24个1,例2中共有20个1,所以n是这么来的。运营商ISP常用这样的方法给客户分配IP地址。
注:n为1到32的数字,表示子网掩码中网络号的长度,通过n的个数确定子网的主机数=2(32-n)-2(-2的原因:主机位全为0时表示本网络的网络地址,主机位全为1时表示本网络的广播地址,这是两个特殊地址)。
为什么要使用子网掩码?
子网掩码可以分离出IP地址中的网络地址和主机地址。如果两台主机要通信,首先要判断是否处于同一网段,即网络地址是否相同。如果相同,那么可以把数据包直接发送到目标主机,否则就需要路由网关将数据包转发送到目的地。
可以这么简单的理解:A主机要与B主机通信,A和B各自的IP地址与A主机的子网掩码进行and运算,看得出的结果:
- 结果如果相同,则说明这两台主机是处于同一个网段,这样A可以通过ARP广播发现B的MAC地址,B也可以发现A的MAC地址来实现正常通信。
- 如果结果不同,ARP广播会在本地网关终结,这时候A会把发给B的数据包先发给本地网关,网关再根据B主机的IP地址来查询路由表,再将数据包继续传递转发,最终送达到目的地B。
子网掩码的分类
(1)缺省子网掩码
也叫默认子网掩码,即未划分子网,对应的网络号的位都置 1 ,主机号都置 0 。
未做子网划分的IP地址:网络号+主机号,则:
- A类网络缺省子网掩码: 255.0.0.0,用CIDR表示为/8
- B类网络缺省子网掩码: 255.255.0.0,用CIDR表示为/16
- C类网络缺省子网掩码: 255.255.255.0,用CIDR表示为/24
(2)自定义子网掩码
将一个网络划分子网后,把原本的主机号位置的一部分给了子网号,余下的才是给了子网的主机号。其形式如下:
做子网划分后的IP地址:网络号+子网号+子网主机号,举个例子:
- 192.168.1.100/25,其子网掩码表示:255.255.255.128,意思就是将192.168.1.0这个网段的主机位的最高1位划分为了子网。
网关
计算机的网关(Gateway)就是到其他网段的出口,也就是路由器接口IP地址。
- 路由器接口使用的IP地址可以是本网段中任何一个地址,不过通常使用该网段的第一个可用的地址或最后一个可用的地址,这是为了尽可能避免和本网段中的主机地址冲突。
在如下拓扑图示例中,A与B,C与D,都可以直接相互通信(都是属于各自同一网段,不用经过路由器),但是A与C,A与D,B与C,B与D它们之间不属于同一网段,所以它们通信是要经过本地网关,然后路由器根据对方IP地址,在路由表中查找恰好有匹配到对方IP地址的直连路由,于是从另一边网关接口转发出去实现互连。
默认网关
默认网关地址是主机位除了最后一位全置1后得到的。
假设现有一个ip地址为193.6.7.0/24,根据网络前缀24可知前24位为网络位,后8位为主机位,因此该网络的默认网关地址就是IP地址193.6.7.11111110(加粗的部分为网络位),换算成十进制数即193.6.7.254/24。
一台主机可以有多个网关。默认网关的意思是一台主机如果找不到可用的网关,就把数据包发给默认指定的网关,由这个网关来处理数据包。现在主机使用的网关,一般指的是默认网关。一台电脑的默认网关是不可以随随便便指定的,必须正确地指定,否则一台电脑就会将数据包发给不是网关的主机,从而无法与其他网络的主机通信。默认网关的设定有手动设置和自动设置两种方式。
(1)手动设置
手动设置适用于电脑数量比较少、TCP/IP 参数基本不变的情况,比如只有几台到十几台电脑。因为这种方法需要在联入网络的每台电脑上设置“默认网关”,非常费劲,一旦因为迁移等原因导致必须修改默认网关的 IP 地址,就会给网管带来很大的麻烦,所以不推荐使用。
需要特别注意的是:默认网关必须是电脑自己所在的网段中的 IP 地址,而不能填写其他网段中的 IP 地址。
(2)自动设置
自动设置就是利用 DHCP(Dynamic Host Configuration Protocol, 动态主机配置协议)服务器来自动给网络中的电脑分配 IP 地址、子网掩码和默认网关 。这样做的好处是一旦网络的默认网关发生了变化时,只要更改了 DHCP 服务器中默认网关的设置,那么网络中所有的电脑均获得了新的默认网关的 IP 地址。这种方法适用于网络规模较大、TCP/IP 参数有可能变动的网络。另外一种自动获得网关的办法是通过安装代理服务器软件(如MS Proxy)的客户端程序来自动获得,其原理和方法和 DHCP 有相似之处。
MAC
MAC地址(Media Access Control Address),网卡硬件地址,用于在网络中唯一标示一个网卡,长度6字节,由IEEE协会分配,网络设备制造商生产时写在硬件内部。
MAC地址由48位二进制数(6个字节)组成,通常表示为6位十六进制数,格式为XX-XX-XX-XX-XX-XX。如:00-16-EA-AE-3C-40就是一个MAC地址,其中前3个字节,16进制数00-16-EA代表网络硬件制造商的编号,它由IEEE(电气与电子工程师协会)分配,而后3个字节,16进制数AE-3C-40代表该制造商所制造的某个网络产品(如网卡)的系列号。
ARP
地址解析协议(Address Resolution Protocol,ARP),建立32位IPv4地址与以太网的48位MAC地址之间的映射,位于OSI模型的数据链路层。
ARP映射表记录了IP地址和MAC地址的映射关系。每一台主机和路由器都设有ARP映射表,在实际传输中,通常已知下一跳的目的IP地址,通过查询ARP映射表即可知道对应的MAC地址。
ARP协议结构,总长度28字节。
- 硬件类型(Hardware Type):表示网络类型,常见值为1,表示以太网,2字节。
- 协议类型(Protocol Type):表示所使用的协议类型,IPv4的值为0x0800,2字节。
- 硬件地址长度(Hardware Address Length):通常为6,表示MAC地址长度为6字节,1字节。
- 协议地址长度(Protocol Address Length):通常为4,表示IPv4地址长度为4字节,1字节。
- 操作码(Opcode):操作码为1表示ARP请求,操作码为2表示ARP应答,2字节。
- 发送方硬件地址(Sender Hardware Address):发送方的MAC地址,6字节。
- 发送方协议地址(Sender Protocol Address):发送方的IP地址,4字节。
- 目标硬件地址(Target Hardware Address):目标主机的MAC地址,在ARP请求时为空,6字节。
- 目标协议地址(Target Protocol Address):目标主机的IP地址,4字节。
ARP映射表建立:
1、初始映射表为空。
2、源主机已知下一跳目的IP地址,想知道下一跳的MAC地址。
3、源主机广播ARP请求,包含源IP、源MAC、目的IP,广播到本地网络所有主机(源主机和目的主机在同一网络)。
4、目的主机收到ARP请求后,检测目的IP地址是否和本机IP一致,不一致则丢弃。
5、如果一致,先把ARP请求中源IP源MAC保存在本机的ARP表;给源主机回复ARP响应,单播,告知源主机自己的MAC地址。
6、如果源主机和目的主机不在同一个网络,通过路由器查找路有表,把目的主机IP转换为下一跳IP,再通过ARP协议,将下一跳的IP转换为对应的MAC。
windows查询arp表
arp -a
linux查询arp表
arp -n
ARP抓包分析
使用Wireshark工具抓取ARP协议的数据包,输入arp过滤,下图截取两条arp包,第一个包是ARP请求包,第二个包是ARP响应包;请求和响应的协议结构一致,部分字段取值不同。
xiaodu设备发了ARP请求广播,询问192.168.3.135主机的MAC地址,135主机(也就是抓包的主机)回复ARP响应。
展开ARP请求包
看几个关键点:
- arp请求包以太头的目的MAC地址,Destination: Broadcast (ff:ff:ff:ff:ff:ff),在局域网广播。
- 以太头类型:ARP(0X0806)。
- Opcode操作码是1,代表ARP请求。
- Target MAC address,目的MAC为空,希望目标响应的MAC地址。
展开ARP响应包
关键点:
- 以太头的目的MAC是ARP请求端xiaodu设备的MAC,不再是广播。
- Opcode操作码是2,代表ARP响应。
- 源MAC地址,也就是ARP请求想要获取的MAC地址。
路由器
路由器(Router)是连接两个或多个网络的硬件设备,在网络间起网关的作用,路由器工作在网络层,根据目的IP进行数据转发。
具有相同网络地址的IP地址计算机之间可以直接通信,如果想要与其他网段的计算机进行通信,则必须经过路由器转发出去。
当IP数据包到达路由器时,路由器先查看目的IP地址,然后决定是直接发送目的主机还是转发给下一个路由器。
- WAN(Wide Area Network)接口,是路由器上用于连接到互联网或其他广域网的接口。
- LAN(Local Area Network)接口,是路由器上用于连接内部网络设备的接口。通过LAN接口连接多个网络设备,形成一个局域网,局域网内设备可以相互通信。
NAT
NAT(Network Address Translation,网络地址转换),是路由器的重要功能,是解决IP地址不够用的主要手段。
- 路由器LAN口连接主机,当对外网通信IP数据包到达路由器时,路由器把源IP替换成WAN口IP,如果有多级路由器则逐级替换,最终数据包中的源IP成为一个公网IP,这种技术称为NAT。
- NAT映射表,当局域网第一次访问外网时,局域网IP和外网IP记录到映射表;当路由器收到外网数据时,根据映射表把数据包目标IP修改为局域网IP并转发到主机。
- NAT缺点:NAT是一对一的IP转换,不能满足多个局域网IP同时使用一个公网IP访问外网的需求。
NAPT
NAPT(Network Address Port Translation),即网络地址端口转换,克服了NAT的缺点,NAPT也被称为“多对一”的NAT。
- NAPT与NAT的区别在于,NAPT不仅转换IP包中的IP地址,还对IP包中TCP和UDP的Port进行转换。这使得多台局域网主机利用1个NAT公共IP就可以同时和公共网进行通信。
- 当局域网主机访问外网的IP数据包到达路由器时,NAPT网关会把源IP替换为NAPT的公网IP,同时将源Port转换为NAT动态分配的1个Port,然后转发到公共网。
- 当公网响应的IP包到达NAPT网关时,NAPT会将IP包的目的IP转换成局域网主机的IP,同时将目的Port转换为局域网主机的Port,然后把IP包转发到局域网。
- 对于通信双方而言,这种转换是透明的,缺点在于其通信仅限于TCP或UDP。
在路由器将数据包转发到下一个网络时,它会更改源MAC地址为当前接口的MAC地址,并更新目标MAC地址为下一个接口的MAC地址,以确保数据包在不同网络之间正确地转发和传输。
也就是说,经过路由器的IP包,MAC、IP、PORT都有可能改变。
交换机
交换机工作与OSI第二层,数据链路层。
在交换机维护端口与MAC地址映射表,记录了端口下包含主机的MAC地址。端口地址表是交换机上电后自动建立的,保存在RAM中,并且自动维护。
交换机功能:
- 1、自学习,交换机通过广播等自动学习的方式获取每个端口对应的MAC地址,建立映射表。
- 2、转发和过滤,当一个数据帧的目的MAC地址在MAC地址表中有映射时,它被转发到连接目的节点的端口而不是所有端口(如该数据帧为广播/组播帧则转发至所有端口)。
- 3、消除回路,当交换机包括一个冗余回路时,以太网交换机通过生成树协议(STP)避免回路的产生,同时允许存在后备路径。
自学习流程
- 1、假设ABCD4个主机分别接入交换机1324端口上。
- 2、A向B发送数据帧,从端口1进入交换机,交换机查询映射表,没有查到从哪个端口转发该帧;交换机会把A的MAC地址和端口1写入映射表,并在其他所有端口广播数据帧。
- 3、C和D收到数据帧直接丢弃,因为目的MAC不匹配;B正确接收数据帧。
- 4、如果此时B向A发送数据帧,交换机查询映射表发现有A的MAC地址,于是把数据帧从端口1转发给A,不再广播;此时交换机也建立了B的MAC与端口3的映射。
设备通过交换机直连,彼此之间一定要在同一网段,否则必须要用路由器进行转发。因此不同的网段之间才需要路由器转发。
相关文章:

网络传输:网卡、IP、网关、子网掩码、MAC、ARP、路由器、NAT、交换机
目录 网卡IP网络地址主机地址子网子网掩码网关默认网关 MACARPARP抓包分析 路由器NATNAPT 交换机 网卡 网卡(Network Interface Card,简称NIC),也称网络适配器。 OSI模型: 1、网卡工作在OSI模型的最后两层,物理层和数据链路层。物…...

MySQL45讲 第二十四讲 MySQL是怎么保证主备一致的?——阅读总结
文章目录 MySQL45讲 第二十四讲 MySQL是怎么保证主备一致的?——阅读总结一、MySQL 主备基本原理(一)主备切换流程(二)主备数据同步流程 二、binlog 格式及相关问题(一)binlog 的三种格式&#…...

Visual Studio 圈复杂度评估
VisualStudio自带的有工具 之后就可以看到分析结果...

Springboot之登录模块探索(含Token,验证码,网络安全等知识)
简介 登录模块很简单,前端发送账号密码的表单,后端接收验证后即可~ 淦!可是我想多了,于是有了以下几个问题(里面还包含网络安全问题): 1.登录时的验证码 2.自动登录的实现 3.怎么维护前后端…...

golang调用模组程序实现交互输入自动化,获取imei及iccid
应用场景:在openwrt下调用移远的测试程序,并实现输入自动话,获取imei rootOpenWrt:~# ql-api-test Test groups:0: ql_dsi1: ql_nw2: ql_sim3: ql_dev4: ql_voice5: ql_sms6: ql_adc7: ql_i2c8: …...

ACE之单例
单例簇 使用双重锁检查优化 #mermaid-svg-RMOXQ0KMo0VnJe7V {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-RMOXQ0KMo0VnJe7V .error-icon{fill:#552222;}#mermaid-svg-RMOXQ0KMo0VnJe7V .error-text{fill:#552222…...

泷羽sec学习打卡-云技术基础1-docker
声明 学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负 关于云技术基础的那些事儿-Base1 一、云技术基础什么是云架构?什么是云服务?什么…...

7天掌握SQL - 第一天:数据库基础与SQL入门
目标 在本章节中,我们将学习数据库的基本概念和SQL语言的基础操作,为后续的深入学习打下坚实的基础。 一级目录 数据库基本概念SQL语言基础SQL操作实践推荐资源总结 1. 数据库基本概念 1.1 表(Table) 表是数据库中存储数据的…...

A037-基于Spring Boot的二手物品交易的设计与实现
🙊作者简介:在校研究生,拥有计算机专业的研究生开发团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹 赠送计算机毕业设计600…...

【异常记录】Junitmock之InvalidUseOfMatchersException异常
mock之InvalidUseOfMatchersException异常 新手小白对mock一知半解,就开始自测了,被这个InvalidUseOfMatchersException困扰了一晚上。排查了好久,大多数文章都把英文翻译了一遍,但自检无问题。最后发现是,注入的时候…...

Spring Boot3自定义starter
1、加入必要依赖 plugins {id javaid org.springframework.boot version 3.2.6id io.spring.dependency-management version 1.1.5 } group org.example.test.starter version 1.1.0jar{enabledtrue// resolveMainClassName }java {toolchain {languageVersion JavaLanguage…...

掌控 Solidity:事件日志、继承和接口的深度解析
Solidity 是以太坊智能合约的主要编程语言,它的强大之处在于能够帮助开发者构建安全、高效的去中心化应用。在我参与的多个项目中,事件日志、继承和接口这三个概念始终贯穿其中,成为构建复杂智能合约的关键技术。今天就来聊聊Solidity中的错误…...

新手教学系列——善用 VSCode 工作区,让开发更高效
引言 作为一名开发者,你是否曾经在项目中频繁地切换不同文件夹,打开无数个 VSCode 窗口?特别是当你同时参与多个项目或者处理多个模块时,这种情况更是家常便饭。很快,你的任务栏上挤满了 VSCode 的小图标,切换起来手忙脚乱,工作效率直线下降。这时候,你可能会问:“有…...

Vue3 虚拟列表组件库 virtual-list-vue3 的使用
Vue3 虚拟列表组件库 virtual-list-vue3 的基本使用 分享个人写的一个基于 Vue3 的虚拟列表组件库,欢迎各位来进行使用与给予一些更好的建议😊 概述:该组件组件库用于提供虚拟化列表能力的组件,用于解决展示大量数据渲染时首屏渲…...

WebRTC实现双端音视频聊天(Vue3 + SpringBoot)
目录 概述 相关概念 双端连接整体实现步骤概述 文章代码实现注意点 STUN和TURN服务器的搭建 开发过程描述 后端开发流程 前端开发流程 效果演示 Gitee源码地址 概述 文章描述使用WebRTC技术实现一对一音视频通话。 由于设备摄像头限制(一台电脑作测试无法…...

第6章详细设计-6.9 PCB审查
6.9 PCB审查 6.9.1 布局阶段注意事项1.结构设计要求在PCB布局之前弄清楚产品的结构2.布局要求 6.9.2 布线注意事项6.9.3 接地处理(1)射频链路接地。(2)腔壳接地孔。(3)螺钉放置(需要了解结构知识…...

docker与大模型(口语化原理和实操讲解)
文章目录 一、镜像images1)下载安装2)docker images相关命令(保存、删除、上传、别名、搜索镜像) 二、容器container1)展现所有在跑的容器服务ps2)start /restart / kill / stop /rm3)exec /cp4)run/create…...

Linux之vim模式下全选命令
在Linux系统中,使用Vim编辑器进行全选操作可以通过以下几种方式实现: 1.使用键盘快捷键 按下 ”ggVG”(先按下”g”,再按下”g”,再按下”V”,最后按下”G”)可以全选当前文件内容。其中 ”g…...

云原生周刊:Kubernetes v1.32 要来了
开源项目推荐 Woodpecker Woodpecker 是一款轻量级且功能强大的 CI/CD 引擎,以其高度可扩展性和易用性著称。它支持多种版本控制系统与编程语言,能够灵活适配不同开发流程,帮助团队实现高效的持续集成与交付。无论是个人项目还是大型团队&a…...

# JVM学习
JVM JVM是什么? Java虚拟机(JVM) 是一个抽象的计算机,它是一个运行时环境,用于执行Java字节码或编译后的Java程序。JVM屏蔽了底层操作系统的差异,使得Java程序可以在任何支持JVM的操作系统上运行。 JVM能…...

【代码随想录day33】【C++复健】62.不同路径;63. 不同路径 II;343. 整数拆分;96.不同的二叉搜索树
感觉dp的题真的很适合背,当然不是死记硬背,而是当做一种模板题,出来一道新的题就往模板题上面去靠,如果套对模板的话剩下的事情其实就简单了。所以只要看一遍解法知道大致思路其实就够了,毕竟大部分dp的代码也不算难写…...

《勇者斗恶龙3:HD-2D重制版》找幽灵船攻略分享
《勇者斗恶龙3:HD-2D重制版》中的幽灵船是游戏里非常独特的一个区域,而想要找到幽灵船的话还是比较麻烦的,首先是听到关于幽灵船在世界海域上航行的传闻,包括在海盗巢穴中,但幽灵船的出现有一些具体条件。 勇者斗恶龙3…...

基于 MATLAB 的模拟退火算法详解及实现
以下是一篇更详细的关于 模拟退火算法 (Simulated Annealing) 的 MATLAB 实现的教程和代码示例,涵盖基本概念、核心思想和代码实现。 一、模拟退火算法简介 模拟退火算法(Simulated Annealing,简称 SA)是一种随机优化算法&#x…...

MQTT 服务器常用的有哪些?
MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议,常用于物联网(IoT)设备之间的通信。以下是一些常用的 MQTT 服务器(也称为 MQTT Broker): 1.Eclipse Mosqui…...

【android USB 串口通信助手】stm32 源码demo 单片机与手机通信 Android studio 20241118
android 【OTG线】 接 下位机STM32【USB】 通过百度网盘分享的文件:USBToSerialPort.apk 链接:https://pan.baidu.com/s/122McdmBDUxEtYiEKFunFUg?pwd8888 提取码:8888 android 【OTG线】 接 【USB转TTL】 接 【串口(下位机 SMT32等)】 需…...

汽车资讯新探索:Spring Boot技术引领
摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了汽车资讯网站的开发全过程。通过分析汽车资讯网站管理的不足,创建了一个计算机管理汽车资讯网站的方案。文章介绍了汽车资讯网站的系统分析部分&…...

简单的MCU与FPGA通过APB总线实现通讯(fpga mcu APB):乘法器为例
测试平台: GW1N4器件内置 M1内核;并且可以设置 APB总线与fpga 逻辑进行交互; 框图: +---------------------+ | | | M1 Microprocessor | <-----------------+ | | | | +-----------------…...

css uniapp背景图宽度固定高度自适应可以重复
page {height: 100%;background-image: url(https://onlinekc.a.hlidc.cn/uploads/20241115/350f94aaf493d05625a7ddbc86c7804e.png);background-repeat: repeat;background-size: contain;} 如果不要重复 把background-repeat: repeat;替换background-repeat: no-repeat;...

深度学习--优化器
笔记内容侵权联系删 优化器 在梯度下降算法中,有各种不同的改进版本。在面向对象的语言实现中,往往把不同的梯度下降算法封装成一个对象,称为优化器。 算法改进的目的,包括但不限于: 加快算法收敛速度; 尽量避过或冲过局部极值; …...

【嵌入式】关于push老仓库到新仓库的方法
1. 背景 公司项目经常会有需要从开源项目中镜像代码过来的活,所以常常会在自己的服务器上创建一个对应的仓库,然后使用命令将期push过去。为方便日后抄命令,这里记录一下使用的命令。 2. 操作步骤 2.1. 已下载的代码push 特别提醒: 使用此脚本前请确保你修改的代码已保存…...