网络协议从入门到底层原理学习(二)—— Mac地址/IP地址
文章目录
- 网络协议从入门到底层原理学习(二)—— Mac地址/IP地址
- 1、MAC地址
- 2、MAC地址的表示格式
- 3、MAC地址表
- 4、MAC地址操作
- 5、MAC地址的获取
- 6、ARP
- 7、ICMP
- 8、IP地址
- 9、IP地址的分类和格式
- 10、不同分类的IP地址的范围
- 11、特殊 IP 地址
- 12、子网掩码
- 13、子网划分
- 14、超网
网络协议从入门到底层原理学习(二)—— Mac地址/IP地址
1、MAC地址
MAC地址(Media Access Control Address)也称为硬件地址或物理地址(Physical Address),它是一个用来确认网络设备位置的位址。在OSI模型中,第三层网络层负责IP地址,第二层数据链路层则负责MAC位址 。MAC地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的MAC地址。
MAC地址由网络设备制造商生产时烧录在网卡(Network lnterface Card)的EPROM(一种闪存芯片,通常可以通过程序擦写)。IP地址与MAC地址在计算机里都是以二进制表示的,IP地址是32位的,而MAC地址则是48位的。

组织唯一标识符(OUI)由IEEE(电气和电子工程师协会)分配给厂商,它包含24位。厂商再用剩下的24位(EUI,扩展唯一标识符)为其生产的每个网卡分配一个全球唯一的全局管理地址,一般来说大厂商都会购买多个OUI。
I/G(Individual/Group)位,如果I/G=0,则是某台设备的MAC地址,即单播地址;如果I/G=1,则是多播地址(组播+广播=多播)。
G/L(Global/Local,也称为U/L位,其中U表示Universal)位,如果G/L=0,则是全局管理地址,由IEEE分配;如果G/L=1,则是本地管理地址,是网络管理员为了加强自己对网络管理而指定的地址。
2、MAC地址的表示格式
-
Windows
- 40-55-82-0A-8C-6D
-
Linux、Android、Mac、iOS
- 40:55:82:0A:8C:6D
-
Packet Tracer
- 4055.820A.8C6D
-
当48位全为1时,代表广播地址
- FF-FF-FF-FF-FF-FF
MAC地址可以分为3种类型:
-
物理MAC地址:这种类型的MAC地址唯一的标识了以太网上的一个终端,该地址为全球唯一的硬件地址;
-
广播MAC地址:全1的MAC地址为广播地址(FF-FF-FF-FF-FF-FF),用来表示LAN上的所有终端设备;
-
组播MAC地址:除广播地址外,第8bit为1的MAC地址为组播MAC地址(例如01-00-00-00-00-00),用来代表LAN上的一组终端。
3、MAC地址表
MAC地址表记录了交换机学习到的其他设备的MAC地址与接口的对应关系,以及接口所属VLAN等信息。设备在转发报文时,根据报文的目的MAC地址查询MAC地址表,如果MAC地址表中包含与报文目的MAC地址对应的表项,则直接通过该表项中的出接口转发该报文;如果MAC地址表中没有包含报文目的MAC地址对应的表项时,设备将采取广播方式在所属VLAN内除接收接口外的所有接口转发该报文。
MAC地址表的分类
MAC地址表中的表项分为:动态表项、静态表项和黑洞表项。另外交换机的MAC地址表中还存在一种业务类型的MAC地址表项,譬如:安全MAC、MUX MAC、Authen MAC、Guest MAC等。该类MAC地址表项是由对应业务维护的,一般是通过动态表项转换来的。

MAC地址表的组成
MAC地址表是以MAC地址和VLAN ID或VSI为索引来唯一标识。当一台目的主机属于多个VLAN或VSI时,在MAC地址表中就会存在相同MAC地址拥有多个不同VLAN ID或VSI的情况。
MAC地址表的作用
MAC地址表用于指导报文进行单播转发。如图中,PC1发往PC3的报文,在到达交换机Switch时,根据报文中的目的MAC地址MAC3和VLAN10查询交换机的MAC地址表,获取出接口Port3,然后报文直接从接口Port3转发到PC3,完成数据的转发。

4、MAC地址操作
-
查询方法
在命令提示符下输入命令“ipconfig /all”回车之后就会显示当前计算机的一些网络信息,其中“Physical Address”(物理地址)字样的这一项就是当前计算机中网卡的 MAC地址。

- 修改 MAC 地址
更改适配器选项 —— 属性 —— 配置 —— 高级 —— 网络地址
- 填写的时候需要把减号(-)去掉

5、MAC地址的获取
当不知道对方主机的 MAC 地址时,可以通过发送 ARP 广播获取对方的 MAC 地址
-
获取成功后,会缓存IP地址、MAC地址的映射信息,俗称:ARP缓存
-
通过ARP广播获取的MAC地址,属于动态(dynamic)缓存
✓ 存储时间比较短(默认是2分钟),过期了就自动删除
相关命令
-
arp -a [主机地址]:查询ARP缓存
-
arp -d [主机地址]:删除ARP缓存
-
arp -s 主机地址 MAC地址:增加一条缓存信息(这是静态缓存,存储时间较久,不同系统的存储时间不同)
6、ARP
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。
在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。

RARP(Reverse Address Resolution Protocol),译为:逆地址解析协议
-
使用与ARP相同的报头结构
-
作用与ARP相反,用于将MAC地址转换为IP地址
-
后来被BOOTP、DHCP所取代
7、ICMP
ICMP(Internet Control Message Protocol),译为:互联网控制消息协议
-
IPv4中的ICMP被称作ICMPv4,IPv6中的ICMP则被称作ICMPv6
-
通常用于返回错误信息
- 比如 TTL 值过期、目的不可达
-
ICMP的错误消息总是包括了源数据并返回给发送者
ICMP 报文结构
ICMP 报文一般为 8 个字节,包括类型、代码、校验和扩展内容字段。ICMP 报文基本结构如图所示。

其中,类型表示 ICMP 的消息类型,代码表示对类型的进一步说明,校验和表示对整个报文的报文信息的校验。
在 ICMP 报文中,如果类型和代码不同,ICMP 数据包报告的消息含义也会不同。常见的类型和代码的 ICMP 含义如表所示。
| 类型 | 代码 | 含义 |
|---|---|---|
| 0 | 0 | 回显应答(ping 应答) |
| 3 | 0 | 网络不可达 |
| 3 | 1 | 主机不可达 |
| 3 | 2 | 协议不可达 |
| 3 | 3 | 端口不可达 |
| 3 | 4 | 需要进行分片,但设置不分片位 |
| 3 | 5 | 源站选路失败 |
| 3 | 6 | 目的网络未知 |
| 3 | 7 | 目的主机未知 |
| 3 | 9 | 目的网络被强制禁止 |
| 3 | 10 | 目的主机被强制禁止 |
| 3 | 11 | 由于服务类型 TOS,网络不可达 |
| 3 | 12 | 由于服务类型 TOS,主机不可达 |
| 3 | 13 | 由于过滤,通信被强制禁止 |
| 3 | 14 | 主机越权 |
| 3 | 15 | 优先中止失效 |
| 4 | 0 | 源端被关闭(基本流控制) |
| 5 | 0 | 对网络重定向 |
| 5 | 1 | 对主机重定向 |
| 5 | 2 | 对服务类型和网络重定向 |
| 5 | 3 | 对服务类型和主机重定向 |
| 8 | 0 | 回显请求(ping 请求) |
| 9 | 0 | 路由器通告 |
| 10 | 0 | 路由器请求 |
| 11 | 0 | 传输期间生存时间为 0 |
| 11 | 1 | 在数据报组装期间生存时间为 0 |
| 12 | 0 | 坏的 IP 首部 |
| 12 | 1 | 缺少必需的选项 |
| 13 | 0 | 时间戳请求 |
| 14 | 0 | 时间戳应答 |
| 17 | 0 | 地址掩码请求 |
| 18 | 0 | 地址掩码应答 |
8、IP地址
IP地址(Internet Protocol Address):互联网上的每一个主机都有一个IP地址
-
最初是IPv4版本,32bit(4字节),2019年11月25日,全球的IP地址已经用完
-
后面推出了IPv6版本,128bit(16字节)

IP地址的基本构成
为了便于寻址,了解目标主机的位置,每个 IP 地址包括两个标识码(ID),即网络 ID 和主机 ID。同一个物理网络上的所有主机都使用同一个网络 ID,网络上的一个主机(包括网络上的工作站、服务器和路由器等)有一个主机 ID 与其对应。
网络 ID 和主机 ID 含义如下:
- 网络 ID:用于识别主机所在的网络,网络 ID 的位数直接决定了可以分配的网络数量。
- 主机 ID:用于识别该网络中的主机,主机 ID 的位数则决定了网络中最大的主机数量。
通过子网掩码(subnet mask)可以得知网络ID 、主机ID
- 主机所在的网段 = 子网掩码 & IP地址
计算机和其他计算机通信前,会先判断目标主机和自己是否在同一网段
-
同一网段:不需要由路由器进行转发
-
不同网段:交由路由器进行转发
9、IP地址的分类和格式
大型网络包含大量的主机,而小型网络包含少量的主机。根据用户需求不同,一个网络包含的主机数量也会不同。为了满足不同场景的需要,网络必须使用一种方式来判断 IP 地址中哪一部分是网络 ID,哪一部分是主机 ID。
IP 地址为 32 位地址,被分为 4 个 8 位段。为了方便对 IP 地址的管理,将 IP 地址基本分为三大类,每类地址的分类与含义如下:
- A 类:前 8 位表示网络 ID,后 24 位表示主机 ID;该地址分配给政府机关单位使用。
- B 类:前 16 位表示网络 ID,后 16 位表示主机 ID;该地址分配给中等规模的企业使用。
- C 类:前 24 位表示网络 ID,后 8 位表示主机 ID;该地址分配给任何需要的人使用。
除了上述的 A、B、C 三类地址以外,还有两类隐藏地址,即 D 类地址和E类地址:
- D 类:不分网络 ID 和主机 ID;该地址用于多播。
- E 类:不分网络 ID 和主机 ID;该地址用于实验。

从上图中可以看出,每类 IP 地址都是以 32 位的二进制格式显示的,每类地址的区别如下:
- A类:网络 ID 的第一位以 0 开始的地址。
- B类:网络 ID 的第一位以 10 开始的地址。
- C类:网络ID的第一位以 110 开始的地址。
- D类:地址以 1110 开始的地址。
- E类:地址以 11110 开始的地址。
10、不同分类的IP地址的范围
由于每类地址的开头是固定的,因此每类地址都有自己的范围:
- A类:IP 地址范围为 0.0.0.0~127.255.255.255。

-
网络ID
-
0不能用,127作为保留网段。其中127.0.0.1是本地环回地址(Loopback),代表本机地址
-
可以分配给主机的
第1部分的取值范围是:1~126
主机ID
- 第2、3、4部分的取值范围是:0~255
- 每个A类网络能容纳的最大主机数是:256 * 256 * 256 – 2 = 2的24次方 – 2 = 16777214
-
-
B类:IP 地址范围为 128.0.0.0~191.255.255.255。

-
网络ID
-
可以分配给主机的
-
第1部分的取值范围是:128~191
-
第2部分的取值范围是:0~255
主机ID
-
第3、4部分的取值范围是:0~255
-
每个B类网络能容纳的最大主机数是:256 * 256 – 2 = 2的16次方 – 2 = 65534
-
-
C类:IP 地址范围为 192.0.0.0~223.255.255.255。

-
网络ID
-
可以分配给主机的
-
第1部分的取值范围是:192~223
-
第2、3部分的取值范围是:0~255
主机ID
-
第4部分的取值范围是:0~255
-
每个C类网络能容纳的最大主机数是:256 – 2 = 254
-
-
D类:IP 地址范围为 224.0.0.0~239.255.255.255。

-
没有子网掩码,用于多播(组播)地址
第1部分取值范围是:224~239
-
E类:IP 地址范围为 240.0.0.0~255.255.255.254。

-
保留为今后使用
第1部分取值范围是:240~255
11、特殊 IP 地址
在进行 IP 地址分配时,有一些 IP 地址具有特殊含义,不会分配给互联网的主机。例如,保留了一些 IP 地址范围,用于私有网络,这些地址被称为私有地址。再如,保留一部分地址用于测试,被称为保留地址。
A 类、B 类、C 类地址的地址范围及含义如下:
- A类地址
- 私有地址范围为 10.0.0.0~10.255.255.255。
- 保留地址范围为 127.0.0.0~127.255.255.255。
- B类地址
- 私有地址范围为 172.16.0.0~172.31.255.255。
- 保留地址为 169.254.X.X。
- C类地址
- 私有地址范围为 192.168.0.0~192.168.255.255。
12、子网掩码
CIDR 无类域间路由(Classless Inter-Domain Routing,CIDR)
子网掩码的CIDR表示方法
-
192.168.1.100/24,代表子网掩码有24个1,也就是255.255.255.0
-
123.210.100.200/16,代表子网掩码有16个1,也就是255.255.0.0
计算工具:https://www.sojson.com/convert/subnetmask.htm
为什么要进行子网划分?
如果需要让200台主机在同一个网段内,可以分配一个C类网段,比如192.168.1.0/24
-
共254个可用IP地址:192.168.1.1~192.168.1.254
-
多出54个空闲的IP地址,这种情况并不算浪费资源
如果需要让500台主机在同一个网段内,那就分配一个B类网段,比如191.100.0.0/16
-
共65534个可用IP地址:191.100.0.1~191.100.255.254
-
多出65034个空闲的IP地址,这种情况属于极大的浪费资源
如何尽量避免浪费IP地址资源?
- 合理进行子网划分
无类域间路由(Classless Inter-Domain Routing,CIDR)可以将路由集中起来,在路由表中更灵活地定义地址。它不区分 A 类、B 类、C 类地址,而是使用 CIDR 前缀的值指定地址中作为网络 ID 的位数。
这个前缀可以位于地址空间的任何位置,让管理者能够以更灵活的方式定义子网,以简便的形式指定地址中网络 ID 部分和主机 ID 部分。
CIDR 标记使用一个斜线/分隔符,后面跟一个十进制数值表示地址中网络部分所占的位数。例如,205.123.196.183/25 中的 25 表示地址中 25 位用于网络 ID,相应的掩码为 255.255.255.128。
13、子网划分
子网划分:借用主机位作子网位,划分出多个子网
可用分为
-
等长子网划分:将一个网段等分成多个子网,每个子网的可用IP地址数量是一样的
-
变长子网划分:每个子网的可用IP地址数量可以是不一样的
子网划分器:http://www.ab126.com/web/3552.html
子网划分的步骤
-
确定子网的子网掩码长度
-
确定子网中第1个、最后1个主机可用的IP地址
等长子网划分——等分成2个子网

A子网
-
子网掩码:255.255.255.128/25
-
主机可用IP地址:192.168.0.1~192.168.0.126
B子网
-
子网掩码:255.255.255.128/25
-
主机可用IP地址:192.168.0.129~192.168.0.254
等长子网划分——等分成4个子网

4个子网的子网掩码都是:255.255.255.192/26
A子网的主机可用IP地址
- 192.168.0.1~192.168.0.62
B子网的主机可用IP地址
- 192.168.0.65~192.168.0.126
C子网的主机可用IP地址
- 192.168.0.129~192.168.0.190
D子网的主机可用IP地址
- 192.168.0.193~192.168.0.254
等长子网划分——等分成4个子网的广播地址

等长子网划分——等分成8个子网

8个子网的子网掩码都是:255.255.255.224/27
A子网:192.168.0.1~192.168.0.30
B子网:192.168.0.33~192.168.0.62
C子网:192.168.0.65~192.168.0.94
D子网:192.168.0.97~192.168.0.126
E子网:192.168.0.129~192.168.0.158
F子网:192.168.0.161~192.168.0.190
G子网:192.168.0.193~192.168.0.222
H子网:192.168.0.225~192.168.0.254
等长子网划分——B类子网划分

等长子网划分——A类子网划分

变长子网划分
如果一个子网地址块的长度是原网段的(1/2)^n,那么
-
子网的子网掩码,就是在原网段的子网掩码基础上增加n个1
-
不等长的子网,它们的子网掩码也不同

假设上图是对192.168.0.0/24进行变长子网划分
-
C网段:子网掩码是255.255.255.128/25
-
B网段:子网掩码是255.255.255.192/26
-
A网段:子网掩码是255.255.255.224/27
-
D网段:子网掩码是255.255.255.252/30
-
E网段:子网掩码是255.255.255.252/30
思考题
这2台设备能正常通信么?

答:不可以, 计算机1可以发信息给计算机0, 计算机1不能发信息给计算机0,不算是可以通信
14、超网
超网:跟子网反过来,它是将多个连续的网段合并成一个更大的网段
需求:原本有200台计算机使用192.168.0.0/24网段,现在希望增加200台设备到同一个网段
-
200台在192.168.0.0/24网段,200台在192.168.1.0/24网段
-
合并192.168.0.0/24、192.168.1.0/24为一个网段:192.168.0.0/23(子网掩码往左移动1位)

思考
192.168.0.255/23这个IP地址,可以分配给计算机使用么?
答: 可以。主机位并不是全为1,并不是广播地址,所以可以分配给计算机使用
合并4个网段
子网掩码向左移动2位,可以合并4个网段

将192.168.0.0/24、192.168.1.0/24、192.168.2.0/24、192.168.3.0/24合并为192.168.0.0/22网段
思考
下面的2个网段,能通过子网掩码向左移动1位进行合并么?

合并网段的规律
假设n是2的k次幂(k≥1)
子网掩码左移k位能够将能够合并n个网段

假设n是2的k次幂(k≥1)
- 如果第一个网段的网络号能被n整除,那么由它开始连续的n个网段,能通过左移k位子网掩码进行合并
比如
-
第一个网段的网络号以二进制0结尾,那么由它开始连续的2个网段,能通过左移1位子网掩码进行合并
-
第一个网段的网络号以二进制00结尾,那么由它开始连续的4个网段,能通过左移2位子网掩码进行合并
-
第一个网段的网络号以二进制000结尾,那么由它开始连续的8个网段,能通过左移3位子网掩码进行合并
判断一个网段是子网还是超网
首先
-
看看该网段的类型,是A类网络、B类网络、C类网络?
-
默认情况下,A类子网掩码的位数是8,B类子网掩码的位数是16,C类子网掩码的位数是24
然后
-
如果该网段的子网掩码位数比默认子网掩码多,就是子网
-
如果该网段的子网掩码位数比默认子网掩码少,则是超网
比如
-
25.100.0.0/16是一个A类子网
-
200.100.0.0/16是一个C类超网
相关文章:
网络协议从入门到底层原理学习(二)—— Mac地址/IP地址
文章目录 网络协议从入门到底层原理学习(二)—— Mac地址/IP地址1、MAC地址2、MAC地址的表示格式3、MAC地址表4、MAC地址操作5、MAC地址的获取6、ARP7、ICMP8、IP地址9、IP地址的分类和格式10、不同分类的IP地址的范围11、特殊 IP 地址12、子网掩码13、子…...
2023开学礼中国海洋大学《乡村振兴战略下传统村落文化旅游设计》许少辉新海洋图书馆
2023开学礼中国海洋大学《乡村振兴战略下传统村落文化旅游设计》许少辉新海洋图书馆...
WebClient vs HttpClient:异同对比
在 Java 开发中,进行网络通信是常见的需求。WebClient 和 HttpClient 是两种常用的用于发送 HTTP 请求的工具。它们都具有相似的功能,但在实现细节和用法上存在一些差异。本文将详细介绍 WebClient 和 HttpClient 的异同,帮助您选择适合您项目…...
ES6中导入import导出export
ES6使用 export 和 import 来导出、导入模块 用法 /** 导出 export *///分别导出 export let name 孙悟空; export function sum(a, b) {return a b; } } //先定义再导出 let age 18 export {age}/** 默认导出 export default */const a 默认导出; export default a;/**…...
【MySQlL学习笔记】(九)内外连接
内外连接 内连接外连接左外连接右外连接 表的连接分为内连和外连 内连接 内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选,我们前面学习的查询都是内连接,也是在开发过程中使用的最多的连接查询。 语法: select 字段 from 表…...
敦煌https证书能做些什么
随着互联网技术的不断发展,人们的生活方式和社交方式也发生了巨大的变化。互联网已经成为人们生活中不可或缺的一部分,它不仅提供了方便快捷的信息获取方式,还为人们提供了一个全新的社交平台。 然而,随着互联网的不断发展&#x…...
React笔记(六)React路由
一、React路由简介 React 官方并没有提供对应的路由插件,因此,我们需要下载第三方的路由插件 —— React Router DOM。 React Router 在 2021 年 11 月份的时候更新 v6 的版本。本次课就主要讲解V6版本 二、路由配置 1、下载路由 在项目根目录中&am…...
【算法系列篇】分治-归并
文章目录 前言什么是归并算法1. 排序数组1.1 题目要求1.2 做题思路1.3 Java代码实现 2. 数组中逆序对2.1 题目要求2.2 做题思路2.3 Java代码实现 3. 计算右侧小于当前元素的个数3.1 题目要求3.2 做题思路3.3 Java代码实现 4. 翻转对4.1 题目要求4.2 做题思路4.3 Java代码实现 总…...
word导出为HTML格式教程,同时也导出图片
在写文档教程时,有时需要借鉴人家的专业文档内容,一般都是word格式文档。word直接复制里面的内容,帐帖到网站编辑器会有很多问题,需要二次清楚下格式才行,而且图片是没办法直接复制到编辑器内的。所以最方便的办法是将…...
事务的优化
例子: 举例:假设我们有一个文件上传的uploadFile方法,在这个方法中我们会先执行上传一个文件到分布式文件系统中的方法addMediaFilesToMinIO( ),上传成功后执行文件资源数据入库的addMediaFilesToDb( ),那么这个时候事务应该加在哪…...
VMware虚拟机安装_新虚拟机创建_CentOS镜像导入_linux指令基本操作
文章目录 1 VMware下载安装1.1 下载网址1.2 安装步骤 2 创建虚拟机与CentOS镜像导入2.1 创建新虚拟机2.2 导入CentOS镜像 3 获取ip与连接Xshell3.1 查看虚拟机ip地址3.2 Xshell使用 1 VMware下载安装 1.1 下载网址 https://www.vmware.com/cn/products/workstation-pro/works…...
Git常用命令用法
参考视频:真的是全能保姆 git、github 保姆级教程入门,工作和协作必备技术,github提交pr - pull request_哔哩哔哩_bilibili 1.Git初始化 首先设置名称和邮箱。然后初始化一下,然后就创建了一个空的Git仓库。 PS D:\golang\oth…...
电子元器件采购的数字化转型:智能采购工具的应用
电子元器件采购的数字化转型是采购领域的一项重要趋势,智能采购工具的应用在此过程中发挥了关键作用。以下是智能采购工具在电子元器件采购数字化转型中的应用方面的一些关键点: 供应链可见性: 智能采购工具可以提供对供应链的实时可见性。通…...
【RuoYi移动端】uni-app中通过vuex的store来实现全局变量的修改和读取
一、在store文件中新建csjVar.js文件 const csjVar {csjMess: [{aaa:"ok"},{bbb:"no"}] } export default csjVar 二、修改store文件中新建index.js文件 import Vue from vue import Vuex from vuex import user from /store/modules/user import gette…...
IPv6改造深化之路
01 IPv6改造问题及整体改造思路 随着“十四五”期间国家政策对IPv6深化改造及规模部署的推动,在IPv6改造过程中出现了越来越多的系统性问题,如图1所示。 图1 关于IPv6改造的各种疑问所有跨设备通信的IT软硬件系统均需要处理IP地址,各领域均需…...
atoi(),isdigit(),isspace(),round()源码
atoi()是一个C标准库函数,用于将字符串转换为对应的整数。 以下是atoi()函数的一种简化版本的示例实现: int atoi(const char* str) {int result 0;int sign 1;int i 0;// 处理空格while (isspace(str[i])) {i;}// 处理正负号if (str[i] - || str[…...
C# 播放音频文件(播放提示音)
使用SoundPlayer播放声音 System.Media名称空间下的类SoundPlayer 可以让我们很方便的播放wav波形声音文件。SoundPlayer类其实就是对winmm.dll文件中API函数的封装。 首先引入命名空间: using System.Media; SoundPlayer player new SoundPlayer(); player.Sou…...
一种编程语言,
前言:相信看到这篇文章的小伙伴都或多或少有一些编程基础,懂得一些linux的基本命令了吧,本篇文章将带领大家服务器如何部署一个使用django框架开发的一个网站进行云服务器端的部署。 文章使用到的的工具 Python:一种编程语言&…...
云原生Kubernetes:K8S常用服务端口
目录 一、理论 1.K8S常用服务端口号 一、理论 1.K8S常用服务端口号 (1)K8S集群 表1 K8S集群端口 协议端口号K8S集群TCP22使用主机驱动通过SSH进行节点配置TCP53集群DNS服务UDP53集群DNS服务TCP2376主机驱动与Docker守护进程通信的TLS端口TCP2379et…...
clickhouse调优配置
一、官方文档地址 clickhouse的配置项主要在 config.xml 或 users.xml 中, 基本上都在 users.xml 里 config.xml https://clickhouse.tech/docs/en/operations/server-configuration-parameters/settings/ users.xml https://clickhouse.tech/docs/en/operatio…...
嵌入式系统内存泄漏防护与实战解决方案
1. 内存泄漏的危害与现状分析在嵌入式系统开发中,内存泄漏堪称"隐形杀手"。我经历过一个真实案例:某通信设备在现网运行三个月后频繁重启,最终定位是某个看似无害的日志处理函数每次调用泄漏512字节内存。这个案例让我深刻认识到&a…...
OpenClaw+GLM-4.7-Flash:个人研究助手实战
OpenClawGLM-4.7-Flash:个人研究助手实战 1. 为什么需要AI研究助手? 作为一名经常需要查阅文献的研究者,我发现自己每天要花费大量时间在重复性劳动上:打开十几个浏览器标签页查找资料、手动整理参考文献格式、从零开始撰写综述…...
[具身智能-170]:在具身智能的技术路径中,其中大小脑联合架构是务实的架构成为行业当下的共识,如果要学习大脑,需要学习哪些技术?已经学习的路径建议。
在具身智能的“大小脑”联合架构中,“大脑”主要负责高层级的语义理解、任务规划和决策,相当于机器人的“认知与思考中心”。要深入学习这一领域,你需要掌握一系列前沿的AI技术,并遵循一个循序渐进的学习路径。🧠 具身…...
3大核心优势!Steamless开源工具链实现高效游戏文件DRM移除
3大核心优势!Steamless开源工具链实现高效游戏文件DRM移除 【免费下载链接】Steamless Steamless is a DRM remover of the SteamStub variants. The goal of Steamless is to make a single solution for unpacking all Steam DRM-packed files. Steamless aims to…...
SillyTavern终极指南:如何构建沉浸式AI角色聊天体验
SillyTavern终极指南:如何构建沉浸式AI角色聊天体验 【免费下载链接】SillyTavern LLM Frontend for Power Users. 项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern 想要创建栩栩如生的AI角色对话体验吗?SillyTavern作为专为高级用…...
深度解析ThreeFingerDragOnWindows:Windows触控板三指拖动技术实现
深度解析ThreeFingerDragOnWindows:Windows触控板三指拖动技术实现 【免费下载链接】ThreeFingersDragOnWindows Enables macOS-style three-finger dragging functionality on Windows Precision touchpads. 项目地址: https://gitcode.com/gh_mirrors/th/ThreeF…...
Chord视频分析工具完整指南:支持MOV/AVI/MP4,宽屏界面适配大屏分析
Chord视频分析工具完整指南:支持MOV/AVI/MP4,宽屏界面适配大屏分析 1. 工具概览:本地智能视频分析新选择 Chord视频时空理解工具是一款基于先进多模态架构的本地化智能视频分析解决方案。这个工具最大的特点是完全在本地运行,不…...
图像处理中的频域魔法:用傅里叶变换消除噪点与增强细节的3种技巧
图像处理中的频域魔法:用傅里叶变换消除噪点与增强细节的3种技巧 当你在处理一张模糊的医学影像或卫星图片时,是否想过那些隐藏在像素背后的频率秘密?傅里叶变换就像一台精密的频谱分析仪,能将图像从空间域转换到频域,…...
WaveTools鸣潮工具箱:深度技术解析与高级配置指南
WaveTools鸣潮工具箱:深度技术解析与高级配置指南 【免费下载链接】WaveTools 🧰鸣潮工具箱 项目地址: https://gitcode.com/gh_mirrors/wa/WaveTools 对于追求极致游戏体验的《鸣潮》玩家而言,WaveTools不仅仅是一个简单的辅助工具&a…...
Reset Windows Update Tool终极指南:3步快速修复Windows更新所有问题
Reset Windows Update Tool终极指南:3步快速修复Windows更新所有问题 【免费下载链接】Reset-Windows-Update-Tool Troubleshooting Tool with Windows Updates (Developed in Dev-C). 项目地址: https://gitcode.com/gh_mirrors/re/Reset-Windows-Update-Tool …...
