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

网络层 VIII(网络层设备——路由器)【★★★★★★】

一、冲突域与广播域

这里的“域”表示冲突或广播在其中发生并传播的区域。

1. 冲突域

冲突域是指连接到同一物理介质上的所有结点的集合,这些结点之间存在介质争用的现象(能产生冲突的所有设备的集合)。也就是说,若这些设备同时发送数据,则会发生信号干扰和冲突。冲突域的大小取决于网络拓扑和设备类型。

在 OSI 参考模型中,冲突域被视为第 1 层的概念,像集线器、中继器等简单无脑复制转发信号的第 1 层设备所连接的结点都属于同一个冲突域,也就是说它们不能划分冲突域。而第 2 层(网桥、交换机)、第 3 层(路由器)设备都可以划分冲突域。

2. 广播域

广播域是指接收同样广播消息的结点集合。也就是说,在该集合中的任何一个结点发送一个广播帧,其他能收到这个帧的结点都被认为是该广播域的一部分。

在 OSI 参考模型中,广播域被视为第 2 层的概念,像第 1 层(集线器等)、第 2 层(交换机等)设备所连接的结点都属于同一个广播域。而路由器,作为第 3 层设备,则可以划分广播域,即可以连接不同的广播域。

通常所说的局域网(LAN)特指使用路由器分割的网络,也就是广播域。

路由器通过以下方式隔绝广播域:
I、网络层分隔:路由器工作在网络层(第三层),它能够识别和处理 IP 地址。每个广播域通常对应一个子网,路由器不转发广播包,因此不同子网之间的广播不会相互影响。
II、广播包的处理:当设备发送广播包时,路由器会接收到这个包,但不会将其转发到其他接口。这样,广播包只会在同一子网内传播,而不会跨越到其他子网。
III、子网划分:通过将网络划分为多个子网(使用子网掩码),路由器可以有效地管理和隔离不同的广播域。每个子网内的设备可以进行广播,但这些广播不会影响到其他子网。
IV、VLAN(虚拟局域网):在交换机中配置 VLAN 可以进一步隔绝广播域。路由器可以连接到多个 VLAN ,并且只会转发特定 VLAN 内的广播流量。
通过这些机制,路由器能够有效地隔绝不同广播域之间的通信,减少网络拥塞,提高网络性能。

二、路由器的组成和功能

1. 路由器的结构(重要)

路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是连接不同的网络(连接异构网络)并完成分组转发。在多个逻辑网络(即多个广播域)互连时必须使用路由器。

当源主机向目标主机发送数据报时,路由器先检查源主机与目标主机是否连接在同一个网络上。若源主机和目标主机在同一个网络上,则直接交付而无须通过路由器。若源主机和目标主机不在同一个网络上,则路由器按照转发表(由路由表得出)指出的路由将分组转发给下一个路由器,这称为间接交付。路由器的转发分组正是网络层的主要工作。

可见,在同一个网络中传递数据无须路由器的参与,而跨网络通信必须通过路由器进行转发。例如,路由器可以连接不同的 LAN ,连接不同的 VLAN ,连接不同的 WAN ,或者把 LAN 和 WAN 互连起来。路由器隔离了广播域。

从结构上看,路由器由路由选择和分组转发两部分构成,如下图所示(一种典型的路由器的构成框图)。而从模型的角度看路由器是网络层设备,它实现了网络模型的下三层,即物理层、数据链路层和网络层。

路由器实现了物理层、数据链路层、网络层,这句话的含义是什么?
第 1 章中提到了网络中的两个通信结点利用协议栈进行通信的过程。发送方一层一层地把数据“包装”,接收方一层一层地把“包装”拆开,最后上交给用户。
路由器实现了物理层,数据链路层和网络层的含义是指路由器有能力对这三层协议的控制信息进行识别、分析以及转换,直观的理解是路由器有能力对数据“包装”这三层协议或者“拆开“这三层协议。自然,路由器就有能力互连这三层协议不同的两个网络。

【注意】:若一个存储转发设备实现了某个层次的功能,则它可以互连两个在该层次上使用不同协议的网段(网络)。若网桥实现了物理层和数据链路层,则网桥可以互连两个物理层和数据链路层不同的网段;但中继器实现了物理层后,却不能互连两个物理层不同的网段,这是因为中继器不是存储转发设备,它属于直通式设备。

  • 路由选择部分也叫做控制部分,其核心构件是路由选择处理机。路由选择处理机的任务是根据所选定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表。

  • 分组转发部分由三部分组成:交换结构、一组输入端口和一组输出端口(请注意:这里的端口就是硬件接口)。下面分别讨论每一部分的组成。
    ① 交换结构(switching fabric)又称为交换组织,它的作用就是根据转发表(forwarding table)对分组进行处理,将某个输入端口进入的分组从一个合适的输出端口转发出去。交换结构本身就是一种网络,但这种网络完全包含在路由器之中,因此交换结构可看成是“在路由器中的网络”。
    ② 在上图中,路由器的输入和输出端口里面都各有三个方框,用方框中的 1, 2 和 3 分别代表物理层、数据链路层和网络层的处理模块。物理层进行比特的接收;数据链路层则按照链路层协议接收传送分组的帧,在把帧的首部和尾部剥去后,分组就被送入网络层的处理模块。

需要注意以下三点:

  • 端口在网络层的处理模块中都设有一个缓冲队列,用来暂存等待处理或已处理完毕待发送的分组,还可用来进行必要的差错检测。若分组处理的速率赶不上分组进入队列的速率,就会使后面进入队列的分组因缓冲区满而只能被丢弃。

  • 若接收到的分组是路由器之间交换路由信息的分组(如 RIP 或 OSPF 分组等),则把这种分组送交路由器的路由选择部分中的路由选择处理机。若接收到的是数据分组,则按照分组首部中的目的地址查找转发表,根据得出的结果,分组就经过交换结构到达合适的输出端口。一个路由器的输入端口和输出端口就做在路由器的线路接口卡上。

  • 输入端口中的查找和转发功能在路由器的交换功能中是最重要的。为了使交换功能分散化,往往把复制的转发表放在每一个输入端口中(如上图中的虚线箭头所示)。路由选择处理机负责对各转发表的副本进行更新。这些副本常称为“影子副本”(shadow copy)。分散化交换可以避免在路由器中的某一点上出现瓶颈。

【拓展】:

当一个分组正在查找转发表时,后面又紧跟着从这个输入端口收到另一个分组。这个后到的分组就必须在队列中排队等待,因而产生了一定的时延。下图给出了在输入端口的队列中排队的分组的示意图。

我们再来观察在输出端口上的情况(如下图所示) 。输出端口从交换结构接收分组,然后把它们发送到路由器外面的线路上。在网络层的处理模块中设有一个缓冲区,实际上它就是一个队列。当交换结构传送过来的分组的速率超过输出链路的发送速率时,来不及发送的分组就必须暂时存放在这个队列中。数据链路层处理模块把分组加上链路层的首部和尾部,交给物理层后发送到外部线路。

从以上的讨论可以看出,分组在路由器的输入端口和输出端口都可能会在队列中排队等候处理。若分组处理的速率赶不上分组进入队列的速率,则队列的存储空间最终必定减少到零,这就使后面再进入队列的分组由于没有存储空间而只能被丢弃。以前我们提到过的分组丢失就是发生在路由器中的输入或输出队列产生溢出的时候。当然,设备或线路出故障也可能使分组丢失。

因为路由器是网络层设备,在路由器上实现了物理层、数据链路层和网络层的功能,所以路由器的传输延迟时间最长。
【分析】:路由器具有较大的传输时延,因为它需要根据所接收的每个分组报头中的 IP 地址决定是否转发分组。这种处理分组报头的任务一般由软件完成,将带来较长的处理时间,也会增加每个分组的传输时延。因为局域网交换机和网桥通常都由硬件进行帧的转发,而且不关心数据链路层以上的数据,所以都具有比路由器要小得多的传输时延。从数量级上看,若局域网交换机的传输时延为几十微秒,则网桥的传输时延为几百微秒,而路由器的传输时延为几千微秒。集线器的每个接口都具有收发功能,当某个接口收到信号时,立即向所有其他接口转发,因此其传输时延最小。

2. 交换结构【拓展】

交换结构是路由器的关键构件。正是这个交换结构把分组从一个输入端口转移到某个合适的输出端口。

实现这样的交换有多种方法,下图给出了三种常用的交换方法。这三种方法都是将输入端口 I1 收到的分组转发到输出端口 O2 。下面简单介绍它们的特点。

最早使用的路由器就是利用普通的计算机,用计算机的 CPU 作为路由器的路由选择处理机。路由器的输入和输出端口的功能和传统的操作系统中的 I/O 设备一样。当路由器的某个输入端口收到一个分组时,就用中断方式通知路由选择处理机。然后分组就从输入端口复制到存储器中。路由器处理机从分组首部提取目的地址,查找路由表,再将分组复制到合适的输出端口的缓存中。若存储器的带宽(读或写)为每秒 M 个分组,那么路由器的交换速率(即分组从输入端口传送到输出端口的速率)一定小于 M/2 。这是因为存储器对分组的读和写需要花费的时间是同一个数量级。

许多现代的路由器也通过存储器进行交换,上图(a)的示意图表示分组通过存储器进行交换。与早期的路由器的区别就是,目的地址的查找和分组在存储器中的缓存都是在输入端口中进行的。

上图(b)是通过总线进行交换的示意图。采用这种方式时,数据报从输入端口通过共享的总线直接传送到合适的输出端口,而不需要路由选择处理机的干预。但是,由于总线是共享的,因此在同一时间只能有一个分组在总线上传送。当分组到达输入端口时若发现总线忙(因为总线正在传送另一个分组),则被阻塞而不能通过交换结构,并在输入端口排队等待。因为每一个要转发的分组都要通过这一条总线,因此路由器的转发带宽就受总线速率的限制。现代的技术已经可以将总线的带宽提高到每秒吉比特的速率,因此许多的路由器产品都采用这种通过总线的交换方式。

上图(c)画的是通过纵横交换结构(crossbar switch fabric)进行交换。这种交换机构常称为互连网络(interconnection network),它有 2N 条总线,可以使 N 个输入端口和 N 个输出端口相连接,这取决于相应的交叉结点是使水平总线和垂直总线接通还是断开。当输入端口收到一个分组时,就将它发送到与该输入端口相连的水平总线上。若通向所要转发的输出端口的垂直总线是空闲的,则在这个结点将垂直总线与水平总线接通,然后将该分组转发到这个输出端口。但若该垂直总线已被占用(有另一个分组正在转发到同一个输出端口),则后到达的分组就被阻塞,必须在输入端口排队。

三、路由表与分组转发

路由表是根据路由选择算法得出的,主要用途是路由选择。标准的路由表有 4 个项目:目的网络 IP 地址、子网掩码、下一跳 IP 地址、接口。在下图所示的网络拓扑中,R1 的路由表见下表,该路由表包含到互联网的默认路由。

转发表是从路由表得出的,其表项和路由表项有直接的对应关系。但转发表的格式和路由表的格式不同,其结构应使查找过程最优化(而路由表则需对网络拓扑变化的计算最优化)。转发表中含有一个分组将要发往的目的地址,以及分组的下一跳(即下一步接收者的目的地址,实际为 MAC 地址)。为了减少转发表的重复项目,可以使用一个默认路由代替所有具有相同“下一跳”的项目,并将默认路由设置得比其他项目的优先级低,如下图所示。路由表总是用软件来实现的;转发表可以用软件来实现,甚至也可以用特殊的硬件来实现。

【注意】:

“转发”和“路由选择”是有区别的。在互联网中,“转发”就是路由器根据转发表把收到的 IP 数据报从路由器合适的端口转发出去,“转发”仅仅涉及到一个路由器。但“路由选择”则涉及到很多路由器,路由表则是许多路由器协同工作的结果。这些路由器按照复杂的路由算法,得出整个网络的拓扑变化情况,因而能够动态地改变所选择的路由,并由此构造出整个的路由表。

路由表一般仅包含从目的网络到下一跳(用 IP 地址表示)的映射,而转发表是从路由表得出的。转发表必须包含完成转发功能所必需的信息。这就是说,在转发表的每一行必须包含从要到达的目的网络到输出端口和某些 MAC 地址信息(如下一跳的以太网地址)的映射。将转发表和路由表用不同的数据结构实现会带来一些好处,这是因为在转发分组时,转发表的结构应当使查找过程最优化,但路由表则需要对网络拓扑变化的计算最优化。路由表总是用软件实现的,但转发表则甚至可用特殊的硬件来实现。

路由表不等于转发表,分组的实际转发是靠直接查找转发表,而不是查找路由表。在讨论路由选择的原理时,往往不去区分转发表和路由表的区别,而可以笼统地都使用路由表这一名词。

四、例题

① 下列关于冲突域的叙述中,正确的是( C )。
A. 能接收到同一广播帧的所有设备的集合
B. 能发送同一广播帧的所有设备的集合
C. 能产生冲突的所有设备的集合
D. 能隔离冲突的所有设备的集合

② 关于路由器的下列说法中,正确的是( C )。
A. 路由器处理的信息量比交换机少,因而转发速度比交换机快
B. 对于同一目标,路由器只提供延迟最小的最佳路由
C. 通常的路由器可以支持多种网络层协议,并提供不同协议之间的分组转发
D. 路由器不但能够根据IP地址进行转发,而且可以根据物理地址进行转发

I、路由器是第三层设备,要处理的内容比第二层设备交换机更多,因而转发速度比交换机慢。
II、虽然一些路由协议也将延迟等作为参数进行路由选择,但路由协议使用得最多的参数是传输距离,此外还有一些其他参数。
III、路由器只能根据 IP 地址进行转发。

③ 下列关于路由器交付的说法中,错误的是( B )。
I. 路由选择分直接交付和间接交付
II. 直接交付时,两台机器可以不在同一个物理网段内
III. 间接交付时,不涉及直接交付
IV. 直接交付时,不涉及路由器
A. I 和 II
B. II 和 III
C. III 和 IV
D. I 和 IV

④ (未使用 CIDR )当一个 IP 分组进行直接交付时,要求发送方和目的站具有相同的( D )。
A. IP 地址
B. 主机号
C. 端口号
D. 子网地址
【将该分组的源 IP 地址和目的 IP 地址分别与子网掩码进行 “与” 操作,若得到的子网地址相同,则该分组就采用直接交付方式,否则采用间接交付方式。】

⑤ 一个路由器的路由表通常包含( C )。
A. 需要包含到达所有主机的完整路径信息
B. 需要包含所有到达目的网络的完整路径信息
C. 需要包含到达目的网络的下一跳路径信息
D. 需要包含到达所有主机的下一跳路径信息
【路由表中包含到目的网络的下一跳路径信息。路由表也不可能包含到达所有主机的下一跳信息,否则路由转发将是不可想象的。】

⑥ 决定路由器转发表中的值的算法是( C )。
A. 指数回退算法
B. 分组调度算法
C. 路由算法
D. 拥塞控制算法

⑦ 路由器中计算路由信息的是( D )。
A. 输入队列
B. 输出队列
C. 交换结构
D. 路由选择处理机
【路由选择处理机的任务是根据所选定的路由选择协议构造路由表,同时经常或定期地与相邻路由器交换路由信息而不断地更新和维护路由表。】

⑧ 路由表的分组转发部分由( D )组成。
A. 交换结构
B. 输入端口
C. 输出端口
D. 以上都是

分组转发部分包括 3 部分:
①交换结构:根据转发表对分组进行处理,将某个输入端口进入的分组从一个合适的输出端口转发出去。
②输入端口:包括物理层、数据链路层和网络层的处理模块。
③输出端口:负责从交换结构接收分组,再将其发送到路由器外面的线路上。

⑨ 路由器的路由选择部分包括( D )。
A. 路由选择处理机
C. 路由表
B. 路由选择协议
D. 以上都是

⑩ 在路由表中设置一条默认路由,则其目的地址和子网掩码应分别置为( C )。
A. 192.168.1.1、255.255.255.0
B. 127.0.0.0、255.0.0.0
C. 0.0.0.0、0.0.0.0
D. 0.0.0.0、255.255.255.255
【路由表中默认路由的目的地址和子网掩码都是 0.0.0.0 。】

(11) 路由器转发分组(在路由表中已找到匹配的条目)时,会根据路由表中的( D )字段来确定输出端口。
A. 目的网络地址
B. 下一跳地址
C. 距离度量值
D. 接口标识符
【输出端口就是路由器的接口,每个接口都有一个标识符。路由表中的每个条目都会指定一个接口标识符,路由器转发分组时,根据路由表中的接口标识符来确定输出端口。】

(12) 【2010统考真题】下列网络设备中,能够抑制广播风暴的是( D )。
I. 中继器 II. 集线器 III. 网桥 IV. 路由器
A. 仅 I 和 II
B. 仅 I
C. 仅 II 和 IV
D. 仅 IV

(13) 【2012统考真题】下列关于 IP 路由器功能的描述中,正确的是( C )。
I. 运行路由协议,设置路由表
II. 监测到拥塞时,合理丢弃 IP 分组
III. 对收到的 IP 分组头进行差错检验,确保传输的 IP 分组不丢失
IV. 根据收到的 IP 分组的目的 IP 地址,将其转发到合适的输出线路上
A. 仅 III、IV
B. 仅 I、II、III
C. 仅 I、II、IV
D. I、II、III、IV
【I 和 IV 显然是路由器的功能。对于 II ,当路由器监测到拥塞时,可合理丢弃 IP 分组,并向发出该 IP 分组的源主机发送一个源点抑制的 ICMP 报文;对于 III ,路由器对收到的 IP 分组首部进行差错检验,丢弃有差错首部的报文,但不保证 IP 分组不丢失。】

(14) 【2020统考真题】下图所示的网络中,冲突域和广播域的个数分别是( C )。


A. 2, 2
B. 2, 4
C. 4, 2
D. 4, 4

相关文章:

网络层 VIII(网络层设备——路由器)【★★★★★★】

一、冲突域与广播域 这里的“域”表示冲突或广播在其中发生并传播的区域。 1. 冲突域 冲突域是指连接到同一物理介质上的所有结点的集合,这些结点之间存在介质争用的现象(能产生冲突的所有设备的集合)。也就是说,若这些设备同时发…...

302.AI学术论文搜索工具的智能体验

Hey朋友们, 你是否曾在学术的海洋里迷失方向,为了找到一篇论文而苦苦挣扎? 就像在茫茫大海中寻找灯塔,我们渴望一盏明灯,指引我们前行。 别担心,今天我来给你介绍一个超级给力的工具——302.AI学术论文…...

arm平台常用工具和动态库编译

目录 perf 交叉编译交叉编译zlib交叉编译 elfutils交叉编译 perfperf 使用 libconfig 交叉编译openssl 交叉编译libpcap 交叉编译统信、龙芯等平台编译QT交叉编译编译QT源码编译QtCreator 编译ssl编译libsrtp(2.3.0版本)编译libyuvlibopus编译libopenh264编译libusrsctp编译lib…...

代码随想录训练营day45|115.不同的子序列,583. 两个字符串的删除操作,72. 编辑距离

115.不同的子序列 题目 dp[i][j]表示的是在以是s[j]为结尾的字符串中最多可以找到几种组成以t[i]为结尾的字符串的方式。 如果s[i]t[j], 1.利用第i个和第j个匹配,在j-1中寻找i-1. 2.不适用这两个进行匹配,在j-1中寻找i 如果s[i]!…...

椋鸟C++笔记#7:标准模板库STL初识

文章目录 标准模板库(Standard Template Library)STL的版本P.J.版RW版SGI版 STL的组成部分 萌新的学习笔记,写错了恳请斧正。 标准模板库(Standard Template Library) 标准模板库STL,是C标准库的一个非常重…...

滴滴嘀嗒,出行行业响起Robotaxi“倒计时”

文:互联网江湖 作者:刘致呈 前几天,各大出行平台的半年报陆续披露完毕,有的还在亏损,但也有人开始盈利。 如祺出行上市后的首份半年报营收10.37亿,同比增长13.6%。上半年运营亏损为2.56亿元,同…...

【MATLAB源码-第264期】基于matlab的跳频通信系统仿真,采用MSK调制方式,差分解调;输出误码率曲线和各节点波形图。

操作环境: MATLAB 2022a 1、算法描述 跳频通信系统是一种能够提高通信抗干扰能力的技术,它通过在传输过程中不断地改变载波频率来避开干扰或者窃听。在这套跳频通信系统中,我们采用了最小频移键控(MSK)作为调制方式…...

如何在多台电脑上同步 VSCode配置和插件

上一篇文章最新前端开发VSCode高效实用插件推荐清单总结了前端开发实用的插件,换电脑的时候怎么同步这些配置与插件呢,难道又要重新安装一遍吗😱 现在就来聊聊要在多台电脑上同步 VSCode配置和插件的几种方法: 方法一&#xff1…...

深度优先算法,广度优先算法,hill climbing,贪心搜索,A*算法,启发式搜索算法是什么,比起一般搜索法算法有什么区别

深度优先算法(Depth-First Search, DFS) 深度优先搜索是一种用于遍历或搜索树或图的算法。它沿着树的深度遍历树的节点,尽可能深地搜索树的分支。当节点v的所在边都已被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程…...

《python语言程序设计》2018版第8章第14题金融:信用卡号合法性 利用6.29题

一、之前6.29题我做的代码 这是用数字来进行分辨的 is_txt 4383576018402626 #合法def split_the_data_even(vis_n):current_a1 vis_n // 10000a_t1 vis_n % 10000# print("1th", a_t1)a_t2 current_a1 % 10000# print("2th", a_t2)current_a3 curre…...

QT 基础学习

1> 使用绘制事件完成钟表的绘制 头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QPainter> #include <QDebug> #include <QTime> #include <QTimer> #include <QDateTime> //#include <string> #includ…...

【Gephi】可视化教程

此教程专供欣欣向荣及其舍友使用 文章目录 导入数据上色改变布局设置节点大小统计拓扑结构输出图形保存文件 导入数据 点击【文件】-【导入电子表格】 先选择csv格式的network 直接下一步 点击完成 【图的类型】改为“有向的” 点击确认 会弹出报错&#xff0c;直接clos…...

演化式原型开发-系统架构师(六十五)

1快速迭代式的原型开发能够有效控制成本&#xff0c;&#xff08;&#xff09;是指开发过程中逐步改进和细化原型直到产生目标系统。 A可视化原型开发 B抛弃式原型开发 C演化式原型开发 D增量式原型开发 解析&#xff1a; 原型开发分为两大类:快速原型开发&#xff08;抛弃…...

初识爬虫4

1.理解代理ip&#xff0c;正向代理和反向代理 2.代理ip分类&#xff0c;根据匿名度分类&#xff1a;透明&#xff0c;匿名&#xff0c;高匿 3.防止频繁向同一个域名发送请求被封ip,需使用代理ip # -*- coding: utf-8 -*- import requestsurl https://www.baidu.comproxies {…...

Golang | Leetcode Golang题解之第387题字符串中的第一个唯一字符

题目&#xff1a; 题解&#xff1a; type pair struct {ch bytepos int }func firstUniqChar(s string) int {n : len(s)pos : [26]int{}for i : range pos[:] {pos[i] n}q : []pair{}for i : range s {ch : s[i] - aif pos[ch] n {pos[ch] iq append(q, pair{ch, i})} e…...

【CanMV K230 AI视觉】 人体检测

【CanMV K230 AI视觉】 人体检测 人体检测 动态测试效果可以去下面网站自己看。 B站视频链接&#xff1a;已做成合集 抖音链接&#xff1a;已做成合集 人体检测 人体检测是判断摄像头画面中有无出现人体&#xff0c;常用于人体数量检测&#xff0c;人流量监控以及安防监控等。…...

解决浏览器自动将http网址转https

删除浏览器自动使用https的方式 在浏览器地址栏输入&#xff1a;chrome://net-internals/#hsts PS:如果是edge浏览器可输入&#xff1a;edge://net-internals/#hsts 在Delete domain security policies搜索框下&#xff0c;输入要删除的域名,然后点击delete 解决方法&#…...

linux邮件配置

1. 非加密邮件配置 cat <<EOF > smtp.sh #!/bin/bash providerqq account3282941991 passwordzqdtygmmndsgb22i3ee echo "Waiting For A Moment..." rpm -qa sendmail &> /dev/null|| yum install sendmail -y >/dev/null echo " set from$…...

基于springboot+vue乒乓球预约管理系统

基于springbootvuemysql实现的乒乓球预约管理系统&#xff08;源码数据库部署视频&#xff09; ### 主要技术 SpringBoot、LayUI、Vue、MySQL ### 系统角色 用户、管理员 ### 系统功能 前台&#xff1a; 首页、乒乓球场、公告信息、留言反馈、个人中心 后台&#xff1a; …...

Linux 基础命令-文件权限与所有权

1. 文件权限概述 在Linux中&#xff0c;每个文件和目录都有与之关联的权限和所有权&#xff0c;来控制谁可以访问、修改或执行文件。文件权限与所有权可以防止未经授权的用户对文件进行访问或修改。 1.1 文件权限的组成 每个文件在Linux系统中都有三种类型的权限&#xff1a…...

气压测试实验(用IIC)

I2C: 如果没有I2c这类总线&#xff0c;连接方法可能会如下图&#xff1a; 单片机所有的通讯协议&#xff0c;无非是建立在引脚&#xff08;高低电平的变换高低电平持续的时间&#xff09;这二者的组合上&#xff0c;i2c 多了一个clock线&#xff0c;负责为数据传输打节拍。 (i2…...

C++ lambda闭包消除类成员变量

原文链接&#xff1a;https://blog.csdn.net/qq_51470638/article/details/142151502 一、背景 在面向对象编程时&#xff0c;常常要添加类成员变量。 然而类成员一旦多了之后&#xff0c;也会带来干扰。 拿到一个类&#xff0c;一看成员变量好几十个&#xff0c;就问你怕不…...

等待唤醒机制和阻塞队列

1. 等待唤醒机制 由于线程的随机调度&#xff0c;可能会出现“线程饿死”的问题&#xff1a;也就是一个线程加锁执行&#xff0c;然后解锁&#xff0c;其他线程抢不到&#xff0c;一直是这个线程在重复操作 void wait() 当前线程等待&#xff0c;直到被其他线程唤醒 void no…...

IO多路复用是如何处理多个客户端同时访问一个数据的

1. 原理概述 IO多路复用通过单个线程或进程监听多个文件描述符的状态变化&#xff0c;当某个文件描述符就绪&#xff08;例如&#xff0c;有数据可读、可写或发生异常&#xff09;时&#xff0c;线程或进程会收到通知&#xff0c;并对该文件描述符执行相应的IO操作。这种方式显…...

QT中使用UTF-8编码

在Qt中&#xff0c;确保应用程序使用UTF-8编码是非常重要的&#xff0c;尤其是在处理国际化和多语言文本时。以下是一些确保在Qt应用程序中使用UTF-8编码的方法&#xff1a; ### 1. 设置全局默认编码 在应用程序启动时&#xff0c;可以设置全局默认编码为UTF-8。这可以通过调…...

我对 monorepo 的一些思考

我对 monorepo 的一些思考 我对 monorepo 的一些思考 前言它的由来技术选型 管理工具语言与打包调试工具测试框架代码规范与质量控制本地引用与发包替换发包流程Github 相关配置部署 使用手册 功能特性总结如何使用&#xff1f;清除默认的包(可选)模板包介绍 packagesapps 更新…...

Java学习Day41:骑龙救!(springMVC)

springMVC与sevlet都是对应表现层web的&#xff0c;但是越复杂的项目使用SpringMVC越方便 基于Java实现MVC模型的轻量级web框架 目标&#xff1a; 小案例&#xff1a; 1.导入依赖 spring-context: 提供 Spring 框架的核心功能&#xff0c;如依赖注入、事件发布和其他应用上…...

Redis 常用命令总结

文章目录 目录 文章目录 1 . 前置内容 1.1 基本全局命令 KEYS EXISTS ​编辑 DEL EXPIRE TTL TYPE 1.2 数据结构和内部编码 2. String类型 SET GET MGET MSET SETNX INCR INCRBY DECR DECYBY INCRBYFLOAT 命令小结 内部编码 3 . Hash 哈希类型 HSET …...

Mysql SqlServer 分页

一、MySQL分页 SELECT column1, column2 FROM table ORDER BY column1 LIMIT Offset, Fetch; SELECT column1, column2 FROM table WHERE id BETWEEN StartId AND EndId ORDER BY column1; 二、Sql Server 分页 SELECT column1, column2 FROM table ORDER BY column1 OFFSE…...

电子支付原理

电子支付原理 1.电子支付概述2.线下支付概念和一般流程线下支付技术分类 3.线上支付概念和一般流程 参考自&#xff1a;https://www.topsec.com.cn/uploads/2023-10-08/49dab9d0-004b-4955-808a-d1c83998b8191696745486491.pdf 1.电子支付概述 电子支付通用支付流程一般涉及四…...