计算机网络常见协议

目录

OSPF(Open Shortest Path First)

NAT(Network Address Translation)

ICMP (Internet Control Message Protocol)

HTTPS(SSL/TLS加密)

HTTPS协议

1. 对称加密

2. 非对称加密

3. 证书验证

4. 回顾https协议传输流程

HTTP TCP UDP

1. TCP:建立可靠的连接

 2.UDP:快速但不可靠的传输

3.HTTP:Web应用的通信语言

工作原理

QUIC(了解下 HTTP3 用的)

ARP

DNS(了解他的递归解析流程)

域名解析过程

RTP RTSP RTCP(这三个一般用流媒体了解就行)

RTP(Real-time Transport Protocol)

 RTSP(Real-Time Streaming Protocol)

.RTCP(Real-time Transport Control Protocol)

一个远程客户端通过域名向某个子网内的一台电脑里虚拟机请求http接口的全链路

1. 域名解析(DNS)

2. ARP(地址解析协议)

3. 建立TCP连接(TCP三次握手)

4. NAT(网络地址转换)

5. 路由(OSPF或其他路由协议)

6. ARP(子网内地址解析)

7. 虚拟机网络转发

8. HTTP请求处理

9. HTTPS加密(如果使用HTTPS)

10. 响应返回

11. 连接关闭(TCP四次挥手)

12. 流媒体相关(如果涉及RTP/RTSP/RTCP)

总结


OSPF(Open Shortest Path First)

OSPF(开放最短路径优先)协议是一种内部网关协议(IGP),用于在单个自治系统(AS)内部分发IP路由信息。它使用链路状态路由算法,确保每个路由器都有整个网络拓扑的完整视图。OSPF协议是基于IP协议的,使用协议号89。它支持无类别域间路由(CIDR)和变长子网掩码(VLSM),允许网络管理员更有效地使用IP地址空间。

OSPF通过发送Hello包来发现和维护邻居路由器关系,并使用链路状态通告(LSA)来交换链路状态信息。路由器根据这些信息构建链路状态数据库(LSDB),然后使用迪杰斯特拉(Dijkstra)算法计算到达网络中每个目的地的最短路径。

NAT(Network Address Translation)

NAT协议是将IP数据报头中的IP地址转换为另外一个IP地址的过程,主要用于实现私有网络访问公有网络的功能。这种通过使用少量的IP地址代表较多的私有IP地址的方式,将有助于减少IP地址空间的枯竭。

IPv4地址随着用户的增多压力不断增大,但是每一个路由器的IP地址下面都有很多的私有地址,外部消息只需要找到这个路由器,这个路由器把消息找到真正目的主机传递给它即可。

每一个路由器都可以分配很多私有地址,并且不同路由器的私有地址可以重复,通过这种地址转换,能够大大增加地址的容量。

私有地址有三种:

①10.0.0.0~10.255.255.255/8

②172.16.0.0~172.31.255.255/12

③192.168.0.0~192.168.255.255/16

这些地址可以在任何组织或企业内部使用,和其他Internet地址的区别就是,仅能在内部使用,不能作为全球路由地址

对于有Internet访问需求而内部又使用私有地址的网络,就要在组织的出口位置部署NAT网关,在报文离开私网进入Internet时,将源IP替换为公网地址,通常是出口设备的接口地址

一个对外的访问请求在到达目标以后,表现为由本组织出口设备发起,因此被请求的服务端可将响应由Internet发回出口网关

网关再将目的地址替换为私网的源主机地址,发回内部。这样一次由私网主机向公网服务端的请求和响应就在通信两端均无感知的情况下完成了。

依据这种模型,数量庞大的内网主机就不再需要公有IP地址了。NAT的转换示意图如下所示:

ICMP (Internet Control Message Protocol)

ICMP协议简介ICMP是“Internet Control Message Protocol”(Internet控制消息协议)的缩写。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

我们在网络中经常会使用到ICMP协议,只不过我们觉察不到而已。比如我们经常使用的用于检查网络通不通的Ping命令,这个“Ping”的过程实际上就是ICMP协议工作的过程。

HTTPS(SSL/TLS加密)

HTTP 之所以被 HTTPS 取代,最大的原因就是不安全,至于为什么不安全,看了下面这张图就一目了然了

HTTP 在传输数据的过程中,所有的数据都是明文传输,自然没有安全性可言,特别是一些敏感数据,比如用户密码和信用卡信息等,一旦被第三方获取,后果不堪设想。为了解决这问题,需要对数据进行加密。https就是在这种场景下产生的 

HTTPS协议

HTTPS 并非独立的通信协议,而是对 HTTP 的扩展,两者关系如下图。也就是说 HTTPS = HTTP + SSL / TLS

 HTTPS 的整个通信过程如下图,可以分为两大阶段:证书验证数据传输阶段,数据传输阶段又可以分为非对称加密对称加密两个阶段

针对HTTPS的传输过程,下面分别对对称加密,非对称,证书验证进行详细介绍

1. 对称加密

1.1 对称加密传输过程

对称加密,顾名思义就是加密和解密都是使用同一个密钥,常见的对称加密算法有 DES、3DES 和 AES 等。在https协议中,对称加密用于对真正的业务数据进行加密解密,对应图《HTTPS加密、解密、验证及数据传输过程》中步骤7,8。

1.2 对称加密优缺点

优点:算法公开、计算量小、加密速度快、加密效率高,适合加密比较大的数据。

缺点:

  • 交易双方需要使用相同的密钥,也就无法避免密钥的传输,而密钥在传输过程中无法保证不被截获,因此对称加密的安全性得不到保证。
  • 每对用户每次使用对称加密算法时,都需要使用其他人不知道的惟一密钥,这会使得发收信双方所拥有的钥匙数量急剧增长,密钥管理成为双方的负担。对称加密算法在分布式网络系统上使用较为困难,主要是因为密钥管理困难,使用成本较高。

 1.3 使用对称加密数据传输的问题

客户端和服务器端需要使用相同的密钥,也就无法避免密钥的传输,而密钥在传输过程中无法保证不被截获,因此对称加密的安全性得不到保证。当黑客获取到对称加密的密钥后,可以在网络传输中任意获取用户信息,且可以对用户信息进行篡改。

如上图所示,黑客在网络中获取用户发送的加密数据后,用密钥进行解密后,得到用户信息,并修改了用户的密码password=abcd123。在这种情况下,服务器对获取到的数据进行解密后,得到的用户密码为abcd123。可以想象,如果这个操作是用来配置银行卡密码的,该有多恐怖。 

2. 非对称加密

非对称加密,顾名思义,就是加密和解密需要使用两个不同的密钥:公钥(public key)和私钥(private key)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密;如果用私钥对数据进行加密,那么只有用对应的公钥才能解密。非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公钥对外公开;得到该公钥的乙方使用公钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的私钥对加密后的信息进行解密。如果对公钥和私钥不太理解,可以想象成一把钥匙和一个锁头,只是全世界只有你一个人有这把钥匙,你可以把锁头给别人,别人可以用这个锁把重要的东西锁起来,然后发给你,因为只有你一个人有这把钥匙,所以只有你才能看到被这把锁锁起来的东西。常用的非对称加密算法是 RSA 算法。
在HTTPS协议中,使用公钥进行加密,私钥进行解密。

2.1 非对称加密传输过程

在https协议中,客户端通过非对称加密把密钥 KEY 发送给服务器。客户端在拿到服务器的公钥后,会生成一个随机码 (用 KEY 表示,这个 KEY 就是后续双方用于对称加密的密钥),然后客户端使用公钥把 KEY 加密后再发送给服务器,服务器使用私钥将其解密,这样双方就有了同一个密钥 KEY,然后双方再使用 KEY 进行对称加密交互数据。在非对称加密传输 KEY 的过程中,即便第三方获取了公钥和加密后的 KEY,在没有私钥的情况下也无法破解 KEY (私钥存在服务器,泄露风险极小),也就保证了接下来对称加密的数据安全。而上面这个流程图正是 HTTPS 的雏形,HTTPS 正好综合了这两种加密算法的优点,不仅保证了通信安全,还保证了数据传输效率。

2.2 非对称加密优缺点:

优点:算法公开,加密和解密使用不同的钥匙,私钥不需要通过网络进行传输,安全性很高。
缺点:计算量比较大,加密和解密速度相比对称加密慢很多。

 2.3 非对称加密存在的问题

公开密钥加密方式还是存在一些问题的。那就是无法证明公开密钥本身就是货真价实的公开密钥。比如,正准备和某台服务器建立公开密钥加密方式下的通信时,如何证明收到的公开密钥就是原本预想的那台服务器发行的公开密钥。或许在公开密钥传输途中,真正的公开密钥已经被攻击者替换掉了。
为了解决上述问题,可以使用由数字证书认证机构(CA,CertificateAuthority)和其相关机关颁发的公开密钥证书。

3. 证书验证

数字证书认证机构处于客户端与服务器双方都可信赖的第三方机构的立场上。作为交互中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。CA中心为每个使用公开密钥的用户发放一个数字证书,数字证书的作用是证明证书中列出的用户合法拥有证书中列出的公开密钥。CA机构的数字签名使得攻击者不能伪造和篡改证书。它负责产生、分配并管理所有 参与网上交易的个体所需的数字证书,因此是安全电子交易的核心环节。

4. 回顾https协议传输流程

让我们再回顾一遍整个HTTPS数据传输流程:

1) 客户端请求 HTTPS 网址,然后连接到 server 的 443 端口 (HTTPS 默认端口,类似于 HTTP 的80端口)。

2)采用 HTTPS 协议的服务器必须要有一套数字 CA (Certification Authority)证书,证书是需要申请的,并由专门的数字证书认证机构(CA)通过非常严格的审核之后颁发的电子证书 (当然了是要钱的,安全级别越高价格越贵)。颁发证书的同时会产生一个私钥和公钥。私钥由服务端自己保存,不可泄漏。公钥则是附带在证书的信息中,可以公开的。证书本身也附带一个证书电子签名,这个签名用来验证证书的完整性和真实性,可以防止证书被篡改。

3)服务器响应客户端请求,将证书传递给客户端,证书包含公钥和大量其他信息,比如证书颁发机构信息,公司信息和证书有效期等。Chrome 浏览器点击地址栏的锁标志再点击证书就可以看到证书详细信息。

4)客户端解析证书并对其进行验证。如果证书不是可信机构颁布,或者证书中的域名与实际域名不一致,或者证书已经过期,就会向访问者显示一个警告,由其选择是否还要继续通信。就像下面这样:

如果证书没有问题,客户端就会从服务器证书中取出服务器的公钥A。然后客户端还会生成一个随机码 KEY,并使用公钥A将其加密。

5)客户端把加密后的随机码 KEY 发送给服务器,作为后面对称加密的密钥。

6)服务器在收到随机码 KEY 之后会使用私钥B将其解密。经过以上这些步骤,客户端和服务器终于建立了安全连接,完美解决了对称加密的密钥泄露问题,接下来就可以用对称加密愉快地进行通信了。

7)服务器使用密钥 (随机码 KEY)对数据进行对称加密并发送给客户端,客户端使用相同的密钥 (随机码 KEY)解密数据。

8)双方使用对称加密愉快地传输所有数据。

HTTP TCP UDP

TCP和UDP都是传输层协议,它们的主要区别在于TCP提供可靠的数据传输,而UDP提供快速但不可靠的传输。HTTP则是一个应用层协议,通常运行在TCP之上,用于Web浏览器和服务器之间的通信(也是前后端交互使用最多的通信)。

对比表格(面试从这几个方面说就行)

TCP、UDP和 HTTP 的详细介绍

1. TCP:建立可靠的连接

工作原理
TCP(传输控制协议)是一种面向连接、可靠的协议。它的工作过程可以比作打电话:首先,拨号(建立连接);然后,进行通话(数据传输);最后,挂断电话(断开连接)。

建立连接(三次握手):

客户端发送一个SYN(同步序列编号)包到服务器以开启一个连接。
服务器响应以SYN-ACK(同步确认)包确认收到。
客户端回送一个ACK(确认)包,完成连接建立。

简易速记版

真实版

第一次握手:客户端将请求报文标志位SYN置为1,请求报文的Sequence Number字段(简称seq)中填入一个随机值J,并将该数据包发送给服务器端,客户端进入SYN_SENT状态,等待服务器端确认。

第二次握手:服务器端收到数据包后由请求报文标志位SYN=1知道客户端请求建立连接,服务器端将应答报文标志位SYN和ACK都置为1,应答报文的Acknowledgment Number字段(简称ack)中填入ack=J+1,应答报文的seq中填入一个随机值K,并将该数据包发送给客户端以确认连接请求,服务器端进入SYN_RCVD状态。

第三次握手:客户端收到应答报文后,检查ack是否为J+1,ACK是否为1,如果正确则将第三个报文标志位ACK置为1,ack=K+1,并将该数据包发送给服务器端,服务器端检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,客户端和服务器端进入ESTABLISHED状态,完成三次握手,随后客户端与服务器端之间可以开始传输数据了。

数据传输:一旦连接建立,数据可以双向传输。TCP保证数据按序到达,没有丢失或错误。

断开连接(四次挥手):通信结束后,双方各自发送FIN(结束)包和ACK包来关闭连接。

 2.UDP:快速但不可靠的传输

工作原理
UDP(用户数据报协议)是一种无连接、不可靠的协议。它就像寄信,你把信件投入邮筒,但不保证信件能够到达目的地。

无连接:UDP不需要建立和断开连接,数据可以直接发送给接收者。
不可靠性:UDP不保证数据的顺序、完整性或安全性。如果数据在传输过程中丢失,UDP不会尝试重新发送。

3.HTTP:Web应用的通信语言

工作原理

HTTP(超文本传输协议)是一种无

状态的应用层协议,它基于TCP协议。每次HTTP请求都是独立的,服务器不会记住之前的请求。

  • 无状态:每个请求都包含了完成操作所需的全部信息。
  • 基于请求/响应:客户端发送一个请求到服务器,服务器返回一个响应。

QUIC(了解下 HTTP3 用的)

基于UDP的传输协议,用于HTTP/3。

  • 特点

    • 内置TLS加密,减少握手延迟。

    • 支持多路复用,避免队头阻塞。

    • 快速连接迁移(切换网络时无需重新握手)。

  • 适用场景:高延迟、不稳定网络环境。

ARP

ARP(地址解析协议,Address Resolution Protocol) 是一种网络层协议,用于将IP地址映射到MAC地址。ARP通常用于局域网(LAN)中,帮助设备找到通过IPv4网络通信时的硬件地址。

在局域网内,当一台设备(例如计算机)需要与另一台设备通信时,网络协议栈首先根据目标设备的IP地址来查找目标设备的MAC地址。ARP就是用来解决这个问题的协议,它允许一个设备通过广播的方式在局域网内查询某个IP地址对应的MAC地址。

DNS(了解他的递归解析流程)

DNS即域名系统(Domain Name System)是用来将域名与IP地址建议映射的协议。
DNS服务器是高可用、高并发和分布式的树桩层次结构

  • 根DNS服务器:返回顶级域DNS的服务器IP地址
  • 顶级域DNS服务器:返回权威DNS服务器IP地址
  • 权威DNS服务器:返回相应主机的IP地址
  • 本地域名服务器:如果设计通过DHCP配置,本地DNS由你的网络服务商(ISP),如电信移动等自动分配,它通常就在你的网络服务商的某个机房。

域名解析过程

域名的解析总体可以分为两大步骤。
1.本级向本地域名服务器(本地DNS)发送DNS请求报文,报文里携带需要查询的域名如www.163.com。
2.本地DNS收到来自客户端的请求。如果能找到www.163.com,它就直接返回IP地址。如果没有,本地DNS去问它的根域名服务器。
3.根域名服务器收到来自本地DNS的请求,发现后缀是.com,然后发送顶级域名服务器的地址
4.本地DNS向顶级DNS请求,顶级域名服务器返回www.163.com区域的权威DNS服务器的地址。
5.本地DNS转向问权威DNS服务器,权限DNS服务器查询后将对应IP地址告诉本地DNS。
6.本地DNS将IP地址返给客户端,客户端和目标建立连接。

RTP RTSP RTCP(这三个一般用流媒体了解就行)

  • RTP(Real-time Transport Protocol)

  • 作用:用于实时传输音视频数据。

  • 特点

    • 基于UDP,支持时间戳和序列号。

    • 通常与RTCP配合使用。

  • 适用场景:视频会议、流媒体。

 RTSP(Real-Time Streaming Protocol)

  • 作用:用于控制流媒体服务器(如播放、暂停)。

  • 特点

    • 类似HTTP的文本协议。

    • 通常与RTP配合使用。

  • 适用场景:视频点播、直播。

.RTCP(Real-time Transport Control Protocol)

  • 作用:监控RTP传输质量,提供反馈信息。

  • 特点

    • 发送接收报告、丢包率、延迟等统计信息。

    • 与RTP共用端口号。

  • 适用场景:实时音视频传输的质量控制。

一个远程客户端通过域名向某个子网内的一台电脑里虚拟机请求http接口的全链路
 

1. 域名解析(DNS)

  • 客户端行为

    1. 客户端输入目标域名(如 example.com)。

    2. 客户端检查本地DNS缓存,如果没有缓存,向本地DNS服务器发送DNS查询请求。

  • DNS解析过程

    1. 本地DNS服务器向根DNS服务器查询。

    2. 根DNS服务器返回顶级域(TLD)服务器地址。

    3. 本地DNS服务器向TLD服务器查询。

    4. TLD服务器返回权威DNS服务器地址。

    5. 本地DNS服务器向权威DNS服务器查询,获得目标域名的IP地址(如 203.0.113.1)。

  • 结果:客户端获得目标服务器的IP地址。


2. ARP(地址解析协议)

  • 客户端行为

    1. 客户端需要将数据包发送到网关(默认路由)。

    2. 客户端通过ARP协议获取网关的MAC地址。

  • ARP过程

    1. 客户端发送ARP请求广播,询问网关的MAC地址。

    2. 网关回复ARP响应,包含自己的MAC地址。

  • 结果:客户端知道网关的MAC地址,可以将数据包发送到网关。


3. 建立TCP连接(TCP三次握手)

  • 客户端行为

    1. 客户端向目标IP地址(203.0.113.1)和端口(HTTP默认80或HTTPS默认443)发起TCP连接请求。

    2. 发送SYN包,开始三次握手。

  • TCP三次握手

    1. 客户端发送SYN包到服务器。

    2. 服务器回复SYN-ACK包。

    3. 客户端发送ACK包,连接建立。

  • 结果:客户端和服务器之间建立了一条可靠的TCP连接。


4. NAT(网络地址转换)

  • 子网网关行为

    1. 客户端的数据包到达子网网关。

    2. 网关检查目标IP地址(203.0.113.1)。

    3. 如果目标IP是公网IP,网关将数据包的源IP地址(客户端的私有IP)转换为网关的公网IP,并记录NAT表项。

  • 结果:数据包被正确转发到目标服务器。


5. 路由(OSPF或其他路由协议)

  • 网络行为

    1. 数据包经过多个路由器,路由器根据OSPF等路由协议选择最优路径。

    2. 数据包最终到达目标子网的网关。

  • 结果:数据包被路由到目标子网。


6. ARP(子网内地址解析)

  • 目标子网网关行为

    1. 目标子网网关接收到数据包,检查目标IP地址(192.168.1.100,假设是虚拟机所在主机的IP)。

    2. 网关通过ARP协议获取目标主机的MAC地址。

  • ARP过程

    1. 网关发送ARP请求广播,询问目标主机的MAC地址。

    2. 目标主机回复ARP响应,包含自己的MAC地址。

  • 结果:网关知道目标主机的MAC地址,可以将数据包发送到目标主机。


7. 虚拟机网络转发

  • 主机行为

    1. 目标主机接收到数据包,检查目标端口。

    2. 如果虚拟机是通过端口映射或桥接网络配置的,主机会将数据包转发到虚拟机。

  • 虚拟机行为

    1. 虚拟机接收到数据包,检查目标端口和HTTP请求。

    2. 虚拟机内的Web服务器(如Nginx、Apache)处理请求。


8. HTTP请求处理

  • Web服务器行为

    1. Web服务器解析HTTP请求(如GET或POST)。

    2. 根据请求路径和参数,执行相应的业务逻辑。

    3. 生成HTTP响应(如返回JSON数据或HTML页面)。

  • 结果:Web服务器将响应数据发送回客户端。


9. HTTPS加密(如果使用HTTPS)

  • TLS/SSL握手

    1. 客户端发送ClientHello,支持加密套件列表。

    2. 服务器返回ServerHello,选择加密套件并发送证书。

    3. 客户端验证证书,生成预主密钥并用服务器公钥加密发送。

    4. 双方通过预主密钥生成会话密钥,用于对称加密通信。

  • 结果:HTTP数据通过TLS加密传输,确保安全性。


10. 响应返回

  • 虚拟机行为:虚拟机将HTTP响应数据封装成TCP数据包,发送回主机。

  • 主机行为:主机将数据包转发到子网网关。

  • 网关行为:网关根据NAT表项将数据包的目标IP地址转换为客户端的私有IP地址。

  • 客户端行为:客户端接收到HTTP响应,解析并显示结果(如渲染网页或处理数据)。


11. 连接关闭(TCP四次挥手)

  • TCP四次挥手

    1. 客户端发送FIN包,请求关闭连接。

    2. 服务器回复ACK包,确认关闭请求。

    3. 服务器发送FIN包,请求关闭连接。

    4. 客户端回复ACK包,确认关闭请求。

  • 结果:TCP连接关闭。


12. 流媒体相关(如果涉及RTP/RTSP/RTCP)

  • RTP:用于传输音视频数据。

  • RTSP:用于控制流媒体服务器(如播放、暂停)。

  • RTCP:用于监控RTP传输质量。

  • 适用场景:如果HTTP接口涉及流媒体传输,这些协议会被使用。


总结

在整个链路中,以下协议被使用:

  1. DNS:域名解析。

  2. ARP:获取MAC地址。

  3. TCP:建立可靠连接。

  4. NAT:地址转换。

  5. OSPF:路由选择。

  6. HTTP/HTTPS:应用层通信。

  7. TLS/SSL:加密通信(如果使用HTTPS)。

  8. RTP/RTSP/RTCP:流媒体传输(如果涉及)。

通过梳理这些协议的作用和交互过程,可以清晰地理解远程客户端访问子网内虚拟机HTTP接口的全链路。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/66393.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

静态综合路由实验

实验拓扑 实验要求 1.除R5的环回地址外,整个其他所有网段基于192.168.1.0/24进行合理的IP地址划分 2.R1-R4每个路由器存在两个环回接口,用于模拟pc网段;地址也在192.168.1.0/24这个网络范围内 3.R1-R4上不能直接编写到达5.5.5.0/24的静态路由…

左神算法基础提升--4

文章目录 树形dp问题Morris遍历 树形dp问题 求解这个问题需要用到我们在基础班上学到的从节点的左子树和右子树上拿信息的方法。 求最大距离主要分为两种情况:1.当前节点参与最大距离的求解;2.当前节点不参与最大距离的求解; 1.当前节点参与最…

[计算机网络]一. 计算机网络概论第一部分

作者申明&#xff1a;作者所有文章借助了各个渠道的图片视频以及资料&#xff0c;在此致谢。作者所有文章不用于盈利&#xff0c;只是用于个人学习。 1.0推荐动画 【网络】半小时看懂<计算机网络>_哔哩哔哩_bilibili 1.1计算机网络在信息时代的作用 在当今信息时代&…

【C++】如何从源代码编译红色警戒2地图编辑器

【C】如何从源代码编译红色警戒2地图编辑器 操作视频视频中的代码不需要下载三方库&#xff0c;已经包含三方库。 一、运行效果&#xff1a;二、源代码来源及编程语言&#xff1a;三、环境搭建&#xff1a;安装红警2安装VS2022下载代码&#xff0c;源代码其实不太多&#xff0c…

SSM课设-酒店管理系统功能设计

【课设者】SSM课设-酒店管理系统 分为用户端管理员端 技术栈: 后端: Spring Spring MVC MyBatis Mysql JSP 前端: HtmlCssJavaScriptAjax 功能: 用户端主要功能包括&#xff1a; 登录注册 客房预订 客房评论 首页 管理员端主要功能包括&#xff1a; 会员信息管理 客房信息…

游戏引擎学习第80天

Blackboard&#xff1a;增强碰撞循环&#xff0c;循环遍历两种类型的 t 值 计划对现有的碰撞检测循环进行修改&#xff0c;以便实现一些新的功能。具体来说&#xff0c;是希望处理在游戏中定义可行走区域和地面的一些实体。尽管这是一个2D游戏&#xff0c;目标是构建一些更丰富…

cuda从零开始手搓PB神经网络

cuda实现PB神经网络 基于上一篇的矩阵点乘&#xff0c;实现了矩阵的加减乘除、函数调用等。并且复用之前元编程里面写的梯度下降、Adam、NAdam优化方法。实现PB神经网络如下&#xff1a; #ifndef __BP_NETWORK_HPP__ #define __BP_NETWORK_HPP__ #include "matrix.hpp&quo…

我的世界-与门、或门、非门等基本门电路实现

一、红石比较器 (1) 红石比较器结构 红石比较器有前端单火把、后端双火把以及两个侧端 其中后端和侧端是输入信号,前端是输出信号 (2) 红石比较器的两种模式 比较模式 前端火把未点亮时处于比较模式 侧端>后端 → 0 当任一侧端强度大于后端强度时,输出…

项目开发实践——基于SpringBoot+Vue3实现的在线考试系统(七)

文章目录 一、题库管理模块实现1、新增题目功能实现1.1 页面设计1.2 前端功能实现1.3 后端功能实现1.4 效果展示2、题目列表功能实现2.1 页面设计2.2 前端功能实现2.3 后端功能实现2.3.1 后端查询题目列表接口实现2.3.2 后端编辑试题接口实现2.4 效果展示二、代码下载一、题库管…

打破编程“鄙视链”:探索行业发展新路径

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 打破…

【统计的思想】假设检验(一)

假设检验是统计学里的重要方法&#xff0c;同时也是一种“在理想与现实之间观察求索”的测试活动。假设检验从概率的角度去考察理想与现实之间的关系&#xff0c;籍此来缓解测试可信性问题。 我们先来看一个例子。民航旅客服务系统&#xff0c;简称PSS系统&#xff0c;有一种业…

SpringBoot2 + Flowable(UI)

文章目录 引言I 技术栈软件架构基于 Vue.js 和 Element UI 的后台管理系统工程结构II 依赖rest,logic,conf 的依赖工作流flowable jar包flowable-ui所需jar包III 配置jdbc 配置 nullCatalogMeansCurrent = true引言 I 技术栈 软件架构 前端基于vue 、element-ui框架分模块设…

Linux探秘坊-------3.开发工具详解(1)

1 初识vim编辑器 创建第一个vim编辑的代码 1.新建文件 2.使用vim打开 3.打开默认是命令模式&#xff0c;写代码需要在屏幕上输出“i”字符 1.写完代码后要按Esc键退出到指令模式2.再按shift:wq即可保存并退出vim &#xff08;因为不支持鼠标&#xff0c;通常 使用键盘上的箭…

基于海思soc的智能产品开发(高、中、低soc、以及和fpga的搭配)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 市场上关于图像、音频的soc其实非常多&#xff0c;这里面有高、中、低档&#xff0c;开发方式也不相同。之所以会这样&#xff0c;有价格的因素&am…

51单片机——DS18B20温度传感器

由于DS18B20数字温度传感器是单总线接口&#xff0c;所以需要使用51单片机的一个IO口模拟单总线时序与DS18B20通信&#xff0c;将检测的环境温度读取出来 1、DS18B20模块电路 传感器接口的单总线管脚接至单片机P3.7IO口上 2、DS18B20介绍 2.1 DS18B20外观实物图 管脚1为GN…

STL容器-- list的模拟实现(附源码)

STL容器-- list的模拟实现&#xff08;附源码&#xff09; List的实现主要时考察我们对list这一容器的理解&#xff0c;和代码的编写能力&#xff0c;通过上节对list容器的使用&#xff0c;我们对list容器已经有了一些基本的了解&#xff0c;接下来就让我们来实现一些list容器常…

Lynx TiDB 慢日志收集工具

作者&#xff1a; 小龙虾爱大龙虾 原文来源&#xff1a; https://tidb.net/blog/7247e68f 简介 lynx 工具可以定时将 TiDB 集群的慢查询收集并持久化到后端数据库中&#xff0c;然后通过 grafana 查询展示出来&#xff0c;这可以帮助我们更好的分析慢查询日志。 背景 尽管…

Gin 源码概览 - 路由

本文基于gin 1.1 源码解读 https://github.com/gin-gonic/gin/archive/refs/tags/v1.1.zip 1. 注册路由 我们先来看一段gin代码&#xff0c;来看看最终得到的一颗路由树长啥样 func TestGinDocExp(t *testing.T) {engine : gin.Default()engine.GET("/api/user", f…

【逆境中绽放:万字回顾2024我在挑战中突破自我】

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” 文章目录 一、引言二、个人成长与盘点情感与心理成长学习与技能提升其它荣誉 三、年度创作历程回顾创作内容概…

【Linux 重装】Ubuntu 启动盘 U盘无法被识别,如何处理?

背景 U盘烧录了 Ubuntu 系统作为启动盘&#xff0c;再次插入电脑后无法被识别 解决方案&#xff08;Mac 适用&#xff09; &#xff08;1&#xff09;查找 USB&#xff0c;&#xff08;2&#xff09;格式化&#xff08;1&#xff09;在 terminal 中通过 diskutil list 查看是…