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

网络协议从入门到底层原理学习(二)—— 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 含义如表所示。

类型代码含义
00回显应答(ping 应答)
30网络不可达
31主机不可达
32协议不可达
33端口不可达
34需要进行分片,但设置不分片位
35源站选路失败
36目的网络未知
37目的主机未知
39目的网络被强制禁止
310目的主机被强制禁止
311由于服务类型 TOS,网络不可达
312由于服务类型 TOS,主机不可达
313由于过滤,通信被强制禁止
314主机越权
315优先中止失效
40源端被关闭(基本流控制)
50对网络重定向
51对主机重定向
52对服务类型和网络重定向
53对服务类型和主机重定向
80回显请求(ping 请求)
90路由器通告
100路由器请求
110传输期间生存时间为 0
111在数据报组装期间生存时间为 0
120坏的 IP 首部
121缺少必需的选项
130时间戳请求
140时间戳应答
170地址掩码请求
180地址掩码应答

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 类地址的地址范围及含义如下:

  1. A类地址
  • 私有地址范围为 10.0.0.0~10.255.255.255。
  • 保留地址范围为 127.0.0.0~127.255.255.255。
  1. B类地址
  • 私有地址范围为 172.16.0.0~172.31.255.255。
  • 保留地址为 169.254.X.X。
  1. 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…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

SkyWalking 10.2.0 SWCK 配置过程

SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...

day52 ResNet18 CBAM

在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...

大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计

随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...

免费数学几何作图web平台

光锐软件免费数学工具,maths,数学制图,数学作图,几何作图,几何,AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...

Golang——6、指针和结构体

指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...

从面试角度回答Android中ContentProvider启动原理

Android中ContentProvider原理的面试角度解析,分为​​已启动​​和​​未启动​​两种场景: 一、ContentProvider已启动的情况 1. ​​核心流程​​ ​​触发条件​​:当其他组件(如Activity、Service)通过ContentR…...

【Linux】Linux安装并配置RabbitMQ

目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的,需要先安…...