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

计算机网络知识整理笔记

目录

1.对网络协议的分层?

2.TCP/IP和UDP之间的区别?

3.建立TCP连接的三次握手?

4.断开TCP连接的四次挥手?

5.TCP协议如何保证可靠性传输?

6.什么是TCP的拥塞控制?

7.什么是HTTP协议?

8.HTTP常用的状态码及其含义?

9.HTTP常用的请求方式用途?

10.HTTP和HTTPS的区别?

11.HTTPS工作原理?

12.HTTPS的传输过程?

13.浏览器输入url到显示主页过程?

14.HTTP版本差异对比?

15.HTTP请求转发和重定向的区别?

16.Cookie和Session区别?

17.什么是Token,Token和Session的区别是什么?


1.对网络协议的分层?

网络协议分层有三种方式,分别是:七层协议、五层协议、TCP/IP四层协议

  • ISO七层模型是国际标准化组织制定的一个用于计算机或通信系统间互联的标准体系:
    • 应用层:网络服务与最终用户的一个接口,常见的协议有:HTTP FTP  SMTP SNMP DNS.
    • 表示层:数据的表示、安全、压缩。,确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。
    • 会话层:建立、管理、终止会话,对应主机进程,指本地主机与远程主机正在进行的会话.
    • 传输层:定义传输数据的协议端口号,以及流控和差错校验,协议有TCP UDP.
    • 网络层:进行逻辑地址寻址,实现不同网络之间的路径选择,协议有ICMP IGMP IP等.
    • 数据链路层:在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路。
    • 物理层:建立、维护、断开物理连接。五层协议体系结构各层与ISO七层一致,参考七层。
  • TCP/IP四层协议结构
    • 应用层:对应于OSI参考模型的(应用层、表示层、会话层)。
    • 传输层: 对应OSI的传输层,为应用层实体提供端到端的通信功能,保证了数据包的顺序传送及数据的完整性。
    • 网际层:对应于OSI参考模型的网络层,主要解决主机到主机的通信问题。
    • 网络接口层:与OSI参考模型的数据链路层、物理层对应。

Ps:五层协议各层作用可参考ISO七层模型,不做赘述

2.TCP/IP和UDP之间的区别?

TCP/IP协议:即传输控制协议,是面向连接的协议,发送数据前需要先建立连接,是可靠的数据传输协议。也就是说,通过TCP协议进行的数据传输没有数据丢失、不会乱序、不会重复。

UDP协议:是TCP/IP协议簇中的一种,是无连接的协议,发送数据前无需建立连接,是非可靠的传输协议。

两者之间的区别:

  • UDP无连接协议,是不可靠传输协议;TCP面向连接,是可靠的数据传输协议
  • UDP传输的运输协议数据单元是UDP报文或者用户数据报文;TCP传送的运输协议数据单元是TCP报文
  • UDP支持单播、多播、广播;TCP协议只支持点对点传输数据
  • UDP简单,适用很多应用,如多媒体服务;TCP复杂,用于很多应用,如万维网、电子邮件、文件传输等
  • UDP传输数据无序;TCP传输数据有序
  • UDP传输耗时短;TCP传输耗时更长一点。

3.建立TCP连接的三次握手?

TCP协议是可靠数据传输协议,传输数据前建立连接的过程称之为三次握手。过程:客户端向服务器发送SYN -> 服务端接收到后向客户端发送SYN和ACK -> 客户端受到后回执服务端ACK。

  1. 第一次握手:主机A的TCP向主机B发出连接请求报文段,其首部中的同步位SYN = 1,并选择序号seq = x;
  2. 第二次握手:主机B的TCP 收到连接请求报文段后,如同意则发回确认。主机B在确认报文段中应使SYN = 1,使ACK = 1,其确认号 ack = x + 1,自己选择的序号 seq = y。
  3. 第三次握手:主机A 收到此报文段后向主机B给出确认,其ACK = 1,确认号ack = y + 1。主机A 的TCP通知上层应用进程,连接已经建立。主机B的TCP收到主机A的确认后,也通知其上层应用进程:TCP 连接已经建立。

Ps:为什么不能两次握手呢?是因为三次握手主要是为了防止已失效的连接请求报文段又传输到服务端,数据就会有问题。

比如场景:客户端A发起连接请求,但因为网络堵塞等原因没有收到B的确认消息,那么A就会重新发起第二次连接请求,连接成功并且数据传输完成后已经断开连接后,第一个连接请求到达B,此时B会误以为A又重新发起一次连接,假设没有第三次握手的情况下,此时B发送确认消息则连接就建立成功了。

4.断开TCP连接的四次挥手?

数据传输完成后需要断开TCP连接,此时断开过程需要进行四次挥手,过程:客户端主动发起关闭向服务端发送消息 -> 服务端接收断开消息后的确认消息发回客户端 -> 服务器端发起断开连接消息 -> 客户端接收到服务端消息后进行确认关闭并发回服务端

  1. 第一次挥手:主机A的应用进程先向其TCP发出连接释放报文段,并停止再发送数据,主动关闭TCP连接。主机A把连接释放报文段首部的FIN = 1,其序号seq = u,等待 B 的确认(FIN_WAIT_1状态)。
  2. 第二次挥手:主机B发出确认,发送一个ACK=1,确认 ack= u+1,而这个报文段自己的序号seq = v。TCP 服务器进程通知高层应用进程。从主机A到主机B这个方向的连接就释放了,TCP连接处于CLOSE_WAIT状态。此时主机B若发送数据,主机A仍要接收。
  3. 第三次挥手:主机B确认已经没有要向主机A发送的数据,将FIN置1,其应用进程就通知TCP释放连接。
  4. 第四次挥手:主机A收到连接释放报文段后,进入TIME_WAIT状态,必须发出确认。在确认报文段中ACK = 1,确认号ack = w + 1,自己的序号seq = u + 1。主机B收到后,确认ack后,变为CLOSED状态,不再向客户端发送数据。客户端A等待2*MSL(报文段最长寿命)时间后,也进入CLOSED状态。完成四次挥手。

Ps:一些常见的其他明知故问~

  • 为什么不能三次挥手呢(lose_wait状态的意义是什么)?
  • 答:假设三次挥手,那么服务器在接收到客户端断开连接请求发送确认消息的时候就要一并开始发起断开连接,此时有可能服务端还有数据传输未完成,此时断开会导致数据丢失。
  • 如果二次挥手的服务端消息没有成功发送到客户端会怎样?
  • 答:客户端会间隔时间重复发送断开连接请求
  • 客户端处于time wait代表什么?
  • 答:客户端time wait表示收到了服务端的断开连接请求但还没回复服务端,用来重发可能丢失大的ACK报文,如果超过2*MSL服务端会重新发送断开连接请求消息,不断重试。可能问题是:主机A发送的ACK没有成功被B接收,或者发送的报文段已过期。
  • 四次挥手中最后为什么客户端要等2*MSL才close?
  • 答:其一为了保证A发送的最后一个ACK能到达B,假设ACK丢失的话在这个时间内B会重新发起断开连接请求。其二:为了防止已失效的连接请求报文出现在本次连接中,等2*MSL可以确保本次连接的报文全部消失,避免印象下一次网络连接。

5.TCP协议如何保证可靠性传输?

停止等待:每发完一个分组就停止发送,等待对方确认,在收到确认后再发下一个分组。

超时重传:当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段;

流量控制:TCP连接的每一方都有固定大小的缓冲空间。TCP的接收端只允许另一端发送接收端缓冲区所能接纳的数据,这可以防止较快主机致使较慢主机的缓冲区溢出,这就是流量控制。TCP使用的流量控制协议是可变大小的滑动窗口协议。

拥塞控制: 当网络拥塞时,可能会造成网络的拥堵,甚至网络瘫痪,TCP会减少数据的发送。

数据包校验:TCP 将保持它首部和数据的检验和,这是一个端到端的检验和。目的是检测数据在传输过程中的任何变化,若校验出包有错,则丢弃报文段并且不给出响应,这时TCP发送数据端超时后会重发数据;

对失序数据包重排序:既然TCP报文段作为IP数据报来传输,而IP数据报的到达可能会失序,因此TCP报文段的到达也可能会失序。TCP给发送的每一个包进行编号,接收方对数据包进行排序,把有序数据传送给应用层。

应答机制:当TCP收到发自TCP连接另一端的数据,它将发送一个确认。这个确认不是立即发送,通常将推迟几分之一秒;

丢弃重复数据:TCP 的接收端会丢弃重复的数据。

6.什么是TCP的拥塞控制?

TCP的拥塞控制是为了防止过多数据注入网络,使网络中的路由器或者链路过载。流量控制是点对点的通信量控制,拥塞控制是全局的网络流量控制,发送双方都有一个拥塞窗口(cwnd):

  • 慢开始:最开始发送方的拥塞窗口为1,每次发送为前一次的2倍增长。当拥塞窗口超过慢开始流量限制,则开始使用拥塞算法;
  • 拥塞避免(算法):当拥塞窗口超过慢开始门限,每隔一个往返时间cwnd+1,在慢开始和拥塞避免中一旦发现网络堵塞则把慢开始门限置为当前的一半,cwnd重新置为1,再次慢开始重新启动。
  • 快重传:接收方每收到一个失序的报文段就立即发送重复确认,当发送端收到3个重复确认后立即重传
  • 快恢复:当发送方连续收到三个重复确认,就将慢开始门限减半。将当前窗口中设置为慢开始门限,并采用拥塞避免算法。采用快恢复时,慢开始只在建立连接和网络超时时使用。

7.什么是HTTP协议?

http协议是基于TCP/IP协议的一种传输协议,HTTP协议工作于客户端-服务端架构之上,是应用层协议,也叫超文本传输协议。

特点:①简单快速:客户端向服务器发送请求时,只需传送请求方法和路径即可。

           ②灵活:HTTP允许传输任意类型的数据对象。

           ③无连接:限制每次连接只处理一个请求。服务器处理完客户请求,并收到客户应答后,即断开连接。

           ④无状态:协议对于事务处理没有记忆能力。

           ⑤支持B/S及C/S模式。

8.HTTP常用的状态码及其含义?

按类别状态码总结:

日常开发中常见的状态码:

9.HTTP常用的请求方式用途?

10.HTTP和HTTPS的区别?

  • 端口不同:HTTP端口是80,HTTPS端口是443
  • 安全性:HTTP是超文本传输协议,信息是明文传输,HTTPS是经过SSL加密数据后传输,更安全
  • 是否付费:HTTPS需要拿到CA证书,需付费
  • 连接方式:HTTP连接简单,无状态;HTTPS通过SSL加密+HTTP协议构建的可加密传输、身份认证的网络协议,更加安全。
  • 传输耗时:HTTPS增加了一层SSL加密,所以延时会增加

11.HTTPS工作原理?

  1. 首先HTTP请求服务端生成证书,客户端对证书的有效性、合法性、域名是否一致、证书公钥(RSA)进行验证
  2. 客户端校验证书通过后,根据证书的有效生成随机数,随机数使用RSA加密算法进行加密
  3. 消息体产生就就对它的摘要进行MD5(或SHA1)算法加密,生成RSA签名
  4. 发送给服务端,此时只有服务端RSA密钥可以进行解密
  5. 解密得到随机数在使用AES加密,作为密钥(此时只有客户端和服务端知道)

Ps:一丢丢扩展内容~

加密算法有三类:

  • 对称加密(AES加密)基本原理:将明文分成 N 个组,然后使用密钥对各个组进行加密,形成各自的密文,最后把所有的分组密文进行合并,形成最终的密文。 优点:算法公开、计算量小、加密速度快、加密效率高。缺点:双方都使用同样密钥,安全性得不到保证。
  • 非对称加密(RSA加密) 基本原理:同时生成两把密钥:私钥和公钥,私钥隐秘保存,公钥可以下发给信任客户端。私钥加密,持有私钥或公钥才可以解密; 公钥加密,持有私钥才可解密。 优点:安全,难以破解 。缺点:算法比较耗时。
  • 不可逆加密(如 MD5,SHA)基本原理:加密过程中不需要使用密钥,输入明文后由系统直接经过加密算法处理成密文,这种加密后的数据是无法被解密的,无法根据密文推算出明文。

12.HTTPS的传输过程?

  1. 建立TCP连接(HTTP) :将HTTP请求转换为HTTPS请求,转到HTTPS网站
  2. 建立新的TCP连接(HTTPS) :因为HTTP与HTTPS的端口不同。HTTP使用80端口,HTTPS使用443端口
  3. 完成一系列的协商工作 :完成加密套件的协商和证书的身份确认,这次交互客户端和服务端会协商出相同的密钥交换算法、对称加密算法、内容一致性校验算法、证书签名算法等等。浏览器获取到证书之后,也要验证证书的有效性,是否过期是否撤销
  4. 浏览器获取CA域名 :如果没有CA域名的缓存,还需要进行DNS解析
  5. 再次建立新的TCP连接(CA域名)
  6. 发送OCSP请求 :OCSP全称是Online Certificate Status Protocol,在线证书状态协议,顾名思义用来获取证书状态的请求,这里的状态包括有效、过期、未知。并且可以宽限一段客户端访问证书的时间
  7. 进行密钥协商

13.浏览器输入url到显示主页过程?

  1. URL解析:当用户在浏览器的地址栏中输入URL时,浏览器会首先对该URL进行解析。解析URL包括识别协议(例如HTTP、HTTPS)、主机名(例如www.example.com)、路径(例如/index.html)等。
  2. DNS解析:浏览器将解析出的主机名发送到DNS(域名系统)服务器,以获取该主机名对应的IP地址。如果该主机名已经被缓存,则直接从缓存中获取IP地址;否则,将向DNS服务器发送DNS查询请求。
  3. 建立TCP连接:浏览器使用HTTP或HTTPS协议与获取的IP地址上的服务器建立TCP连接。对于HTTPS协议,还会进行SSL握手过程,确保通信安全性。
  4. 发送HTTP请求:一旦TCP连接建立,浏览器会向服务器发送HTTP请求,请求页面或资源。请求头部可能包括信息如请求的方法(GET、POST等)、所需的页面或资源、浏览器的相关信息等。
  5. 服务器处理请求:服务器接收到浏览器发送的HTTP请求后,会根据请求的内容和服务器的配置进行相应的处理。处理过程可能包括读取文件、执行脚本、访问数据库等操作。
  6. 服务器返回响应:服务器处理完请求后,会生成相应的HTTP响应,包括响应头和响应主体。响应头包括状态码(如200表示成功,404表示未找到页面等)、服务器信息、内容类型等。响应主体则包含请求的页面内容或资源的数据。
  7. 浏览器接收响应:浏览器接收到服务器返回的HTTP响应后,开始解析响应内容。如果是HTML页面,浏览器会解析HTML文档,并同时获取并解析页面中引用的外部资源,如CSS样式表、JavaScript脚本、图像等。
  8. 渲染页面:浏览器根据HTML文档和相关资源,将页面内容呈现在用户界面上。页面的呈现包括解析HTML结构、应用CSS样式、执行JavaScript代码等步骤。
  9. 显示页面:最终,浏览器将渲染好的页面显示给用户。用户可以与页面进行交互,如点击链接、填写表单等。

扩展解释:

URL解析过程:

  • 地址解析:浏览器会根据你的输入来判断该输入是一条合法的URL,还是需要被搜索的关键词。并且根据你输入的内容进行自动完成、字符编码等操作。
  • 其他操作:目前大部分浏览器都会强制客户端使用HTTPS协议以保证信息传输的安全性。同时还会进行一些额外的操作,比如安全检查、访问限制等。
  • 缓存检查:浏览器会先检测是否缓存了目标URL的页面,如果有且缓存未过期,则直接展示缓存页面,无需再向服务器进行请求

DNS解析:是寻找所需要的资源的IP地址的过程。因为互联网中每一台连网的机器都有唯一IP作为标识,但是它是一串数字,记忆太过困难。所以就需要将网址和IP地址进行转换,也就是DNS解析。

  • 查询缓存 :我们的浏览器、操作系统、路由器都会缓存一些URL对应的IP地址,统称为DNS高速缓存。这是为了加快DNS解析速度,使得不必每次都到根域名服务器中去查询。
  • 递归解析 :输入www.baidu.com网址后,首先在高速缓存中查找,没找到去根域名服务器查找,没有再去com顶级域名服务器查找,依次类推,直到找到IP地址,然后把它记录在本地告诉缓存中,供下次使用。 大致过程就是.-> .com ->baidu.com. -> www.baidu.com. 其中.代表根域名服务器。
  • DNS负载均衡 :访问baidu.com的时候,每次响应的可能并非是同一个服务器(IP地址不同),一般大公司都有成百上千台服务器来支撑访问,DNS可以返回一个合适的机器的IP给用户,例如可以根据每台机器的负载量,该机器离用户地理位置的距离等等,这种过程就是DNS负载均衡。

14.HTTP版本差异对比?

HTTP1.0HTTP1.1HTTP2.0
  • HTTP1.0仅提供了最基本的认证,用户名和密码都未加密(明文)
  • HTTP1.0仅支持短连接,每次发送数据都会经过TCP三次握手和四次挥手,效率低
  • HTTP1.0只使用了header的if=modified-Since和Expires作为缓存失效的标准
  • HTTP1.0不支持端点续传,每次发送数据都会发送全部数据
  • HTTP1.0认为每台计算机都只能绑定一个IP地址,不支持虚拟网络
  • HTTP1.1使用了摘要算法进行身份验证
  • HTTP1.1默认使用长连接:只需要建立一次连接,可以传输多次数据,传输完成之后,只需要一次切断即可。通过请求头的 Connection: keep-alive设置
  • HTTP1.1支持端点续传:通过请求头的Range实现
  • HTTP1.1使用了虚拟网络:在一台物理服务器上可以存在多个虚拟主机,共享一个IP地址
  • HTTP2.0支持头部压缩:利用HPACK算法进行压缩,由于HTTP1.1头部经常出现Cookie、Accept、Sever、Range等字段可能会占用几百到几千字节,而body有时只有几十字节(“头重身轻”)
  • HTTP2.0使用二进制格式:HTTP2.0选择了更靠近TCP/IP的二进制格式,抛弃了ASCII码,提高了解析效率
  • HTTP2.0强化安全:HTTP2.0一般都跑在HTTPS上
  • HTTP2.0多路复用:一个连接上可以有多个请求

15.HTTP请求转发和重定向的区别?

请求转发:

  • 浏览器只发出一次请求,收到一次响应
  • 请求的数据可以直接被被盗到转发请求中
  • 浏览器URL地址就是用户提交时的地址保持不变
  • 只能跳转到当前应用的资源中

请求重定向:

  • 浏览器发出两次请求,两次响应
  • 重定向的资源不能直接携带用户请求携带的数据
  • 浏览器URL地址显示的是重定向后的新URL,并非客户提交的URL。因此重定向的一个作用是防止表单重复提交(恶意刷新页面,刷新一次提交一次)
  • 重定向可以跳转到当前应用中资源,也可以跳转到其他应用的资源去

16.Cookie和Session区别?

HTTP协议本身是无法判断用户身份,所以需要Cookie或者Session:

Cookie:是由Web服务器保存在用户浏览器上的文件(key-value格式),可以包含用户相关的信息。客户端向服务器发起请求时,会携带服务器端之前创建的Cookie,服务器端通过Cookie中携带的数据区分不同的用户。

Session:是浏览器和服务器会话过程中,服务器会分配的一块储存空间给Session。服务器默认会为客户浏览器的Cookie中设置SessionId,这个SessionId就和Cookie对应,浏览器在向服务器请求过程中传输的Cookie包含SessionId ,服务器根据传输Cookie中的SessionId获取出会话中存储的信息,然后确定会话的身份信息。

两者区别:

  • 安全性:Cookie数据存放在客户端上,安全性较差,Session数据放在服务器上,安全性相对更高
  • 大小限制:Cookie有大小限制,单个Cookie保存的数据不能超过4K,Session无此限制,理论上只与服务器的内存大小有关
  • 服务器资源消耗:Session是保存在服务器端上会存在一段时间才会消失,当访问增多,对服务器性能有影响
  • 实现机制:Session的实现常常依赖于Cookie机制,通过Cookie机制回传SessionId

17.什么是Token,Token和Session的区别是什么?

Token是服务端生成的一串字符,以作为客户端请求的令牌。服务端生成Token给客户端后,客户端每次请求只需要携带这个Token,无需每次请求都带上用户名和密码,让服务器一遍一遍对比用户名和密码。

和Session对比:

  • Session机制存在服务器压力增大、CSRF跨站伪造请求攻击、扩展性不强等问题
  • Session存储于服务器,Token存储于客户端
  • Token提供认证和授权功能,作为身份认证,Token比Session安全性好
  • Session这种会话存储方式只适用于客户端和服务端运行在同一台服务器上,Token适用于前后端分离

相关文章:

计算机网络知识整理笔记

目录 1.对网络协议的分层? 2.TCP/IP和UDP之间的区别? 3.建立TCP连接的三次握手? 4.断开TCP连接的四次挥手? 5.TCP协议如何保证可靠性传输? 6.什么是TCP的拥塞控制? 7.什么是HTTP协议? 8…...

练习 String翻转 注册处理 字符串统计

p493 将字符串中指定部分进行翻转 package chapter;public class reverse {public static void main(String[] args) {String str "abcdef";str reverseMethod(str,0,3);System.out.println(str);}public static String reverseMethod(String str, int start, in…...

linux的常用系统维护命令

1.ps显示某个时间点的程序运行情况 -a :显示所有用户的进程 -u :显示用户名和启动时间 -x :显示 没有控制终端的进程 -e :显示所有进程,包括没有控制终端的进程 -l :长格式显示 -w :宽…...

java:aocache 0.4.0 缓存控制机制

aoocache发布第一个版本0.1.0时,没有考虑到使用aocache的项目对方法缓存的控制需求。 场景 给同事做培训时,同事提到这个需求,他希望能够有方法主动去清理指定方法的缓存: 他的数据是由其他服务启动时提供的,他的方法…...

试析C#编程语言的特点及功能

行步骤,而不必创建新方法。其声明方法是在实例化委托基础上,加一对花括号以代表执行范围,再加一个分号终止语句。 2.3.3 工作原理 C#编译器在“匿名”委托时会自动把执行代码转换成惟一命名类里的惟一命名函数。再对存储代码块的委托进行设…...

Textual Learning2 -- 使用时的小问题

1、出现的问题: 在vscode里面直接运行函数会显示报错: 我尝试在vscode中含textual库的环境下运行,但仍然报错 2、解决方案: 在命令行中运行: 首先按winR,输入cmd打开命令行 或在已经安装的conda环境&a…...

CST--如何在PCB三维模型中自由创建离散端口

在使用CST电磁仿真软件进行PCB的三维建模时,经常会遇到不能自动创建离散端口的问题,原因有很多,比如:缺少元器件封装、开路端口、多端子模型等等,这个时候,很多人会选择手动进行端口创建,但是&a…...

C++中的虚函数表结构框架

一.虚函数表介绍 Virtual Table虚函数表是实现多态的 每个有虚函数的类的实现,都有个指向虚函数的指针表(不管是父类还是子类) 指向虚表的指针是作为数据成员存在实例对象中 当调用虚函数时,就去查找对象的虚表中指向整顿派生类函…...

【ES】--Elasticsearch的高亮模式

目录 一、高亮策略1、Fast Vector Highlighter(快速向量高亮器)2、Posting Highlighter(帖子高亮器)3、Unified Highlighter(统一高亮器)4、Plain Highlighter(普通高亮器)5、总结二、高亮参数三、高亮案例解析1、words_one配置解析2、words_two配置解析3、words_three…...

使用matlab开发stm32总结,stm32-matlab常见的问题处理以及报错合集

1,问题:本来是好的,突然编译运行报错,说是确少包, 解决方案:重启以后好了 2,有完美的马鞍波,为什么不能够转动呢? 原因是我这里模型的问题,我计算出来的是占…...

落石滑坡监测报警系统:创新保障高速公路安全

​ ​​在现代交通建设中,高速公路的安全性和稳定性至关重要。特别是易发生落石区域,如何有效预防和应对落石滑坡带来的事故成为了一项关键性挑战。为此,落石滑坡监测报警系统应运而生,它通过先进的技术手段,为高速…...

Linux开发讲课20--- QSPI

SPI 是英语 Serial Peripheral interface 的缩写,顾名思义就是串行外围设备接口,一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,为 PCB 的布局上节省空间…...

VMware ESXi 8.0U3 macOS Unlocker OEM BIOS 集成驱动版,新增 12 款 I219 网卡驱动

VMware ESXi 8.0U3 macOS Unlocker & OEM BIOS 集成驱动版,新增 12 款 I219 网卡驱动 VMware ESXi 8.0U3 macOS Unlocker & OEM BIOS 集成网卡驱动和 NVMe 驱动 (集成驱动版) 发布 ESXi 8.0U3 集成驱动版,在个人电脑上运行企业级工作负载 请访…...

vuepress使用简介及个人博客搭建

目录 一、介绍二、环境准备三、安装运行vuepress四、目录结构五、配置文件六、导航栏配置七、导航栏logo八、浏览器图标九、侧边栏配置十、添加 Git 仓库和编辑链接十一、部署到GitHub十二、搭建成功 一、介绍 VuePress 是 Vuejs 官方提供的一个是Vue驱动的静态网站生成器&…...

c#文件读写

1.1读取文件 方法说明​File.ReadAllText(FilePath);​读取指定路径的文件​File.ReadAllText(FilePath, Encoding);​通过指定编码格式来读取指定文件​File.ReadAllBytes();​读取二进制文件,并把内容读取到一个字节数组​File.ReadAllLines();​以行的形式读取文…...

WIFI 企业级认证手段 EAP-TLS介绍

EAP-TLS(EAP-Transport Layer Security)被认为是WLAN网络里最安全的认证方法,因此被企业广泛采用。本文会针对EAP-TLS的基本原理进行介绍。 在介绍原理之前,先介绍下WLAN网络里认证加密手段涉及到的一些基本概念。 1 802.1x IEE…...

【网络架构】keepalive

目录 一、keepalive基础 1.1 作用 1.2 原理 1.3 功能 二、keepalive安装 2.1 yum安装 2.2 编译安装 三、配置文件 3.1 keepalived相关文件 3.2 主配置的组成 3.2.1 全局配置 3.2.2 配置虚拟路由器 四、实际操作 4.1 lvskeepalived高可用群集 4.2 keepalivedngi…...

【Dison夏令营 Day 03】使用 Python 创建我们自己的 21 点游戏

21 点(英文:Blackjack)是一种在赌场玩的纸牌游戏。这种游戏的参与者不是互相竞争,而是与赌场指定的庄家竞争。在本文中,我们将从头开始创建可在终端上玩的玩家与庄家之间的二十一点游戏。 二十一点规则 我们将为从未玩过二十一点的读者提供…...

Workbench密码登录登录失败

Workbench密码登录登录失败操作系统禁用了密码登录方式,会导致使用了正确的用户名和密码仍无法登录 sudo vim /etc/ssh/sshd_config 输入O进入编辑 改完后重启 systemctl restart sshd.service 登录报错 有试了几遍登上了 可能是改完还要等一会儿...

哈尔滨高校大学智能制造实验室数字孪生可视化系统平台项目的验收

哈尔滨高校大学智能制造实验室数字孪生可视化系统平台项目的验收,标志着这一技术在教育领域的应用取得了新的突破。项目旨在开发一个数字孪生可视化系统平台,用于哈尔滨高校大学智能制造实验室的设备模拟、监测与数据分析。项目的主要目标包括&#xff1…...

009、MongoDB的分片策略

目录 MongoDB的分片策略:范围分片vs哈希分片 1. 范围分片(Range Sharding) 1.1 工作原理 1.2 优点 1.3 缺点 1.4 研究支持 2. 哈希分片(Hash Sharding) 2.1 工作原理 2.2 优点 2.3 缺点 2.4 研究支持 3. 选择合适的分片策略 4. 实践案例 4.1 电子商务平台 4.2 社…...

go~缓存设计配合singleFlight

一个缓存设计,配合go的singleFlight 最开始的设计如下 添加分布式缓存 上线后分布式缓存上涨的流量并不等于下游下降的流量,而是下游下降的流量 * 2~3 究其原因,就是采用了go的singleFlight,假定请求缓存时长10ms&a…...

多线程引发的安全问题

前言👀~ 上一章我们介绍了线程的一些基础知识点,例如创建线程、查看线程、中断线程、等待线程等知识点,今天我们讲解多线程下引发的安全问题 线程安全(最复杂也最重要) 产生线程安全问题的原因 锁(重要…...

在晋升受阻或遭受不公待遇申诉时,这样写是不是好一些?

在晋升受阻或遭受不公待遇申诉时,这样写是不是好一些? 在职场中,晋升受阻或遭受不公待遇是员工可能面临的问题之一。面对这样的情况,如何撰写一份有效的申诉材料,以维护自己的合法权益,就显得尤为重要。#李…...

LeetCode 2710.移除字符串中的尾随零:模拟

【LetMeFly】2710.移除字符串中的尾随零:模拟 力扣题目链接:https://leetcode.cn/problems/remove-trailing-zeros-from-a-string/ 给你一个用字符串表示的正整数 num ,请你以字符串形式返回不含尾随零的整数 num 。 示例 1: 输…...

代码随想录训练营第二十三天 39组合总和 40组合总和II 131分割回文串

第一题: 原题链接:39. 组合总和 - 力扣(LeetCode) 思路: 终止条件: 用一个sum值来记录当前组合中元素的总和。当sum的值大于target的时候证明该组合不合适,直接return。当sum的值等于target的…...

【C++】数组、字符串

六、数组、字符串 讨论数组离不开指针,指针基本上就是数组的一切的基础,数组和指针的相关内容参考我的C系列博文:【C语言学习笔记】四、指针_通过变量名访问内存单元中的数据缺点-CSDN博客【C语言学习笔记】三、数组-CSDN博客 1、数组就是&…...

MySQL InnoDB支持几种行格式

数据库表的行格式决定了一行数据是如何进行物理存储的,进而影响查询和DML操作的性能。 在InnoDB中,常见的行格式有4种: 1、COMPACT:是MySQL 5.0之前的默认格式,除了保存字段值外,还会利用空值列表保存null…...

Day6: 344.反转字符串 541. 反转字符串II 卡码网:54.替换数字

题目344. 反转字符串 - 力扣&#xff08;LeetCode&#xff09; void reverseString(vector<char>& s) {int len s.size();int left 0;int right len - 1;while (left < right){swap(s[left], s[right--]);}return;} 题目541. 反转字符串 II - 力扣&#xff0…...

kubekey 离线安装高可用 kubernetes 集群

1. 准备环境 版本&#xff1a; kubernetes: v1.29.2 kubesphere: v3.4.1 kubekey: v3.1.1 说明&#xff1a; kubekey 只用于安装 kubernetes&#xff0c;因为 kubesphere 的配置在安装时经常需要变动&#xff0c;用 ks-installer 的 yaml 文件更好管理&#xff1b;ks-installe…...

大数据面试题之Hive(2)

目录 Hive的join操作原理&#xff0c;leftjoin、right join、inner join、outer join的异同? Hive如何优化join操作 Hive的mapjoin Hive语句的运行机制&#xff0c;例如包含where、having、group by、orderby&#xff0c;整个的执行过程? Hive使用的时候会将数据同步到HD…...

求推荐几款http可视化调试工具?

Postman 非常流行的API调试工具&#xff0c;适用于构建、测试和文档化APIs。它支持各种HTTP方法&#xff0c;有强大的集合和环境管理功能&#xff0c;以及代码生成能力。 BB-API 是一款旨在提升开发效率的工具&#xff0c;它专注于提供简约、完全免费且功能强大的HTTP模拟请…...

Python逻辑控制语句 之 判断语句--if else结构

1.if else 的介绍 if else &#xff1a;如果 ... 否则 .... 2.if else 的语法 if 判断条件: 判断条件成立&#xff0c;执行的代码 else: 判断条件不成立&#xff0c;执行的代码 &#xff08;1&#xff09;else 是关键字, 后⾯需要 冒号 &#xff08;2&#xff09;存在冒号…...

word2016中新建页面显示出来的页面没有页眉页脚,只显示正文部分。解决办法

问题描述&#xff1a;word2016中新建页面显示出来的页面没有页眉页脚&#xff0c;只显示正文部分。设置了页边距也不管用。 如图1 图1 解决&#xff1a; 点击“视图”——“多页”——“单页”&#xff0c;即可。如图2操作 图2 结果展示&#xff1a;如图3 图3...

8.javaSE基础进阶_泛型generics(无解通配符?+上下界统配符superextends)

文章目录 泛型generics一.泛型简介二.泛型类1.泛型方法 三.泛型接口四.泛型进阶1.*<?>无解通配符*2.上界通配符 < ? extends E>3.下界通配符 < ? super E>4.泛型擦除 泛型generics 一.泛型简介 JDK5引入,一种安全机制,编译时检测不匹配类型 特点: 将数…...

酒店客房管理系统(Java+MySQL)

技术栈 Java: 作为主要编程语言。Swing GUI: 用于开发图形用户界面。MySQL: 作为数据库管理系统。JDBC: 用于连接和操作MySQL数据库。 功能要点 管理登录认证 系统提供管理员登录认证功能。通过用户名和密码验证身份&#xff0c;确保只有授权的用户可以访问和管理酒店客房信…...

S32K3 --- Wdg(内狗) Mcal配置

前言 看门狗的作用是用来检测程序是否跑飞,进入死循环。我们需要不停地喂狗,来确保程序是正常运行的,一旦停止喂狗,意味着程序跑飞,超时后就会reset复位程序。 一、Wdg 1.1 WdgGeneral Wdg Disable Allowed : 启用此参数后,允许在运行的时候禁用看门狗 Wdg Enable User…...

LeetCode 算法:二叉树的层序遍历 c++

原题链接&#x1f517;&#xff1a;二叉树的层序遍历 难度&#xff1a;中等⭐️⭐️ 题目 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 示例 1&#xff1a; 输入&#xff1a;roo…...

博途TIA Portal「集成自动化软件」下载安装,TIA Portal 灵活多变的编程环境

在编程领域&#xff0c;博途TIA Portal以其卓越的编程工具和灵活多变的编程环境&#xff0c;为众多用户提供了前所未有的便利。这款软件不仅支持多种编程语言&#xff0c;如梯形图&#xff08;Ladder Diagram&#xff09;、功能块图&#xff08;Function Block Diagram&#xf…...

火了10年的电脑监控软件有哪些?盘点8款热门的电脑监控软件

电脑监控软件领域经历了多年的发展&#xff0c;一些软件因为其稳定的功能、良好的用户体验和不断更新的技术支持&#xff0c;得以在市场上保持长期的热度和用户基础。以下是几款在过去十年里广受好评且持续流行的内网监控软件&#xff1a; 1.安企神&#xff1a;由河北安企神网络…...

入门Java爬虫:认识其基本概念和应用方法

Java爬虫初探&#xff1a;了解它的基本概念与用途&#xff0c;需要具体代码示例 随着互联网的快速发展&#xff0c;获取并处理大量的数据成为企业和个人不可或缺的一项任务。而爬虫&#xff08;Web Scraping&#xff09;作为一种自动化的数据获取方法&#xff0c;不仅能够快速…...

Flask新手入门(一)

前言 Flask是一个用Python编写的轻量级Web应用框架。它最初由Armin Ronacher作为Werkzeug的一个子项目在2010年开发出来。Werkzeug是一个综合工具包&#xff0c;提供了各种用于Web应用开发的工具和函数。自发布以来&#xff0c;Flask因其简洁和灵活性而迅速受到开发者的欢迎。…...

Grafana-11.0.0 在线部署教程

Grafana-11.0.0 在线部署教程 环境&#xff1a; 操作系统&#xff1a; ubuntugrafana版本&#xff1a; 11.0.0 &#xff08;建议不要按照最新版&#xff09;grafana要求的系统配置不高&#xff0c;建议直接部署在监控服务器上&#xff0c;比如zabbix服务器、prometheus服务器…...

pytorch-01

加载mnist数据集 one-hot编码实现 import numpy as np import torch x_train np.load("../dataset/mnist/x_train.npy") # 从网站提前下载数据集&#xff0c;并解压缩 y_train_label np.load("../dataset/mnist/y_train_label.npy") x torch.tensor(y…...

梦想CAD二次开发

1.mxdraw简介 mxdraw是一个HTML5 Canvas JavaScript框架&#xff0c;它在THREE.js的基础上扩展开发&#xff0c;为用户提供了一套在前端绘图更为方便&#xff0c;快捷&#xff0c;高效率的解决方案&#xff0c;mxdraw的实质为一个前端二维绘图平台。你可以使用mxdraw在画布上绘…...

Eureka的介绍与使用

Eureka 是 Netflix 开源的一款服务注册与发现组件&#xff0c;在微服务架构中扮演着重要的角色。 一、Eureka 的介绍 工作原理 服务注册&#xff1a;各个微服务在启动时&#xff0c;会向 Eureka Server 发送注册请求&#xff0c;将自身的服务名、实例名、IP 地址、端口等信息注…...

ChatGPT之母:AI自动化将取代人类,创意性工作或将消失

目录 01 AI取代创意性工作的担忧 1.1 CTO说了啥 02 AI已开始大范围取代人类 01 AI取代创意性工作的担忧 几天前的采访中&#xff0c;OpenAI的CTO直言&#xff0c;AI可能会扼杀一些本来不应该存在的创意性工作。 近来一篇报道更是印证了这一观点。国外科技媒体的老板Miller用…...

【深度学习驱动流体力学】湍流仿真到深度学习湍流预测

目录 一、湍流项目结构二、三个OpenFOAM湍流算例1. motorBike背景和目的文件结构和关键文件使用和应用湍流仿真深度学习湍流预测深度学习湍流预测的挑战和应用结合湍流仿真与深度学习2. pitzDaily背景和目的文件结构和关键文件使用和应用3. pitzDailyMapped背景和目的文件结构和…...

如何从0构建一款类似pytest的工具

Pytest主要模块 Pytest 是一个强大且灵活的测试框架&#xff0c;它通过一系列步骤来发现和运行测试。其核心工作原理包括以下几个方面&#xff1a;测试发现&#xff1a;Pytest 会遍历指定目录下的所有文件&#xff0c;找到以 test_ 开头或 _test.py 结尾的文件&#xff0c;并且…...

6.27-6.29 旧c语言

#include<stdio.h> struct stu {int num;float score;struct stu *next; }; void main() {struct stu a,b,c,*head;//静态链表a.num 1;a.score 10;b.num 2;b.score 20;c.num 3;c.score 30;head &a;a.next &b;b.next &c;do{printf("%d,%5.1f\n&…...

QAM CMA

QAM-16的盲均衡算法&#xff0c;采用CMA算法。 CMA算法只是盲均衡算法的初级版本&#xff0c;一般采用CMADD LMS的组合方式。步进&#xff0c;滤波器长度等需要根据实际情况进行调节。 N 5e5; % 仿真符号数 M 16; % QAM16msg rand…...

imx6ull/linux应用编程学习(8)PWM应用编程(基于正点)

1.应用层如何操控PWM&#xff1a; 与 LED 设备一样&#xff0c; PWM 同样也是通过 sysfs 方式进行操控&#xff0c;进入到/sys/class/pwm 目录下 这里列举出了 8 个以 pwmchipX&#xff08;X 表示数字 0~7&#xff09;命名的文件夹&#xff0c;这八个文件夹其实就对应了…...

【C++】多态(详解)

前言&#xff1a;今天学习的内容可能是近段时间最难的一个部分的内容了&#xff0c;C的多态&#xff0c;这部分内容博主认为难度比较大&#xff0c;各位一起慢慢啃下来。 &#x1f496; 博主CSDN主页:卫卫卫的个人主页 &#x1f49e; &#x1f449; 专栏分类:高质量&#xff23…...

order by优化案例与原理剖析

一、引言 在数据库查询中&#xff0c;ORDER BY 语句用于对结果集进行排序&#xff0c;是日常开发中不可或缺的一部分。然而&#xff0c;随着数据量的增长&#xff0c;ORDER BY 的性能问题逐渐凸显。本文将结合一个实际案例&#xff0c;分析如何优化 ORDER BY 的性能&#xff0…...

GPIO和PIN

文章目录 1 GPIO和Pin1.1 GPIO和Pin基础概念1.2 GPIO输入模式1.3 GPIO输出模式1.4 GPIO的HAL库1.4.1 一些HAL库表示1.4.2 HAL库常用GPIO函数1.4.3 GPIO点亮led灯程序例子 1 GPIO和Pin 1.1 GPIO和Pin基础概念 ​ 单片机有很多的引脚&#xff0c;为了操控每一个引脚&#xff0c…...

iWork与iCloud的无缝协作:释放你的创造力

iWork与iCloud的无缝协作&#xff1a;释放你的创造力 在数字创意工作日益普及的今天&#xff0c;iWork套件与iCloud的集成为用户带来了无缝的工作流程和无限的创作自由。iWork&#xff0c;包括Pages、Numbers和Keynote&#xff0c;是Apple提供的三款强大的生产力应用&#xff…...

福特蒙迪欧升级STARFORGED锻造轮毂和博德避震

福特蒙迪欧升级STAR FORGED锻造轮毂和博德避震技术及摄影支持:車站station这台车的车主对避震想要舒适性的驾驶体验,所以选择了这款台湾border博德s1街道型绞牙避震。应车主需求,工作人员为其配置街道舒适型筒芯。另外车主喜欢高颜值的轮毂,选择了定制款的STAR FORGED,轻量…...

【Linux】TCP协议【中】{确认应答机制/超时重传机制/连接管理机制}

文章目录 1.确认应答机制2.超时重传机制&#xff1a;超时不一定是真超时了3.连接管理机制 1.确认应答机制 TCP协议中的确认应答机制是确保数据可靠传输的关键部分。以下是该机制的主要步骤和特点的详细解释&#xff1a; 数据分段与发送&#xff1a; 发送方将要发送的数据分成一…...

2024Spring> HNU-计算机系统-实验4-Buflab-导引+验收

前言 称不上导引了&#xff0c;因为验收已经结束了。主要是最近比较忙&#xff0c;在准备期末考试。周五晚上才开始看实验&#xff0c;自己跟着做了一遍实验&#xff0c;感觉难度还是比bomblab要低的&#xff0c;但是如果用心做的话对于栈帧的理解确实能上几个档次。 实验参考…...

java面试中高频问题----1

一、乐观锁和悲观锁定义、场景怎么判断用什么&#xff1f; 1.乐观锁&#xff1a; 定义&#xff1a;乐观锁假设大多数情况下&#xff0c;资源不会发生冲突。因此&#xff0c;允许多个线程同时访问资源。 场景&#xff1a;读操作多&#xff0c;写操作少&#xff0c;数据冲突概率…...

电脑录屏怎么录?7个电脑录屏软件免费版强势来袭,赶快收藏!

电脑录屏怎么录&#xff1f;相信很多小伙伴们都不知道怎么在Windows电脑上录屏吧&#xff1f;在当今社会&#xff0c;随着互联网的快速发展&#xff0c;越来越多的小伙伴们开始通过制作视频内容来分享知识、展示技能或者记录生活。电脑录屏成为了一种简单高效的方式&#xff0c…...

爬虫案例-亚马逊反爬分析-验证码突破(x-amz-captcha)

总体概览&#xff1a;核心主要是需要突破该网站的验证码&#xff0c;成功后会返回我们需要的参数后再去请求一个中间页&#xff08;类似在后台注册一个session&#xff09;&#xff0c;最后需要注意一下 IP 是不能随意切换的 主要难点&#xff1a; 1、梳理整体反爬流程 2、验证…...