计算机网络常识
文章目录
- 1、HTTP
- 2、HTTP状态码
- 1xx(信息性状态码):
- 2xx(成功状态码):
- 3xx(重定向状态码):
- 4xx(客户端错误状态码):
- 5xx(服务器错误状态码):
- 3、DNS
- 组成部分:
- DNS的工作流程:
- 4、Session和Cookie
- 联系:
- 区别:
- 使用Cookie的情景:
- 使用Session的情景:
- 5、GET请求和POST请求
- 1. 参数传递位置:
- 2. 参数长度限制:
- 3. 安全性:
- 4. 数据类型:
- 5. 缓存:
- 6、PING命令
- PING命令的使用
- PING命令的功能
- 7、HTTP和HTTPS
- 1. 安全性:
- 2. 加密方式:
- 3. 端口号:
- 4. 证书:
- 5. 性能:
- 6、Http处理流程
- 7、Https处理流程
- 8、TCP(传输控制协议)和UDP(用户数据报协议)
- 9、IP(Internet Protocol,互联网协议)
- IPv4
- 10、TCP的可靠性
- 1. 序列号和确认机制:
- 2. 窗口机制:
- 3. 超时重传机制:
- 4. 拥塞控制机制:
- 11、ARQ(Automatic Repeat reQuest)
- 12、OSI模型,TCP/IP模型
- OSI模型
- TCP/IP模型
1、HTTP
- 是超文本传输协议(Hypertext Transfer
Protocol)的缩写,是一种用于传输超文本数据的协议。它是互联网上应用最为广泛的协议之一,用于浏览器和Web服务器之间的通信。 - HTTP使用客户端-服务器模型,客户端发送HTTP请求给服务器,服务器根据请求返回相应的HTTP响应。请求和响应都由HTTP协议规定了特定的格式。
- HTTP的基本功能包括传输、请求和响应。它可以传输各种类型的数据,如文本、图像、音频和视频等。
- HTTP请求方法有GET、POST、PUT、DELETE等,用于向服务器发送不同类型的请求。
- HTTP响应状态码表示服务器对请求的处理结果,如200表示请求成功,404表示请求的资源不存在等。
- 除了基本功能,HTTP还支持一些其他的特性,如缓存、认证、安全等。
- 通过HTTP头部字段,可以传递一些附加信息,如请求的内容类型、编码方式、Cookie等。
2、HTTP状态码
以下是常见状态码的功能:
1xx(信息性状态码):
100(继续):表示服务器已经收到了客户端的请求,客户端可以继续发送请求的剩余部分。
- 101(切换协议):表示服务器正在根据客户端的请求切换协议。
2xx(成功状态码):
200(成功):表示客户端的请求已成功被服务器接收、理解和处理。
- 201(已创建):表示服务器已成功处理客户端的请求,并创建了新的资源。
- 204(无内容):表示服务器已成功处理了请求,但没有返回任何内容。
3xx(重定向状态码):
301(永久重定向):表示请求的资源已永久移动到新的URL。
- 302(临时重定向):表示请求的资源临时移动到新的URL。
- 304(未修改):表示客户端缓存的资源是最新的,无需重新下载。
4xx(客户端错误状态码):
400(错误请求):表示服务器无法理解客户端的请求。
- 401(未授权):表示客户端未经授权,需要进行身份验证。
- 403(禁止访问):表示服务器拒绝客户端的请求。
- 404(未找到):表示服务器无法找到请求的资源。
5xx(服务器错误状态码):
500(内部服务器错误):表示服务器在处理请求时遇到了错误。
- 502(错误网关):表示服务器作为网关或代理,从上游服务器接收到无效的响应。
- 503(服务不可用):表示服务器暂时无法处理请求,通常是因为服务器过载或维护。
DNS(Domain Name System)是互联网中用于将域名解析为IP地址的系统。它充当了互联网的“电话簿”,将易于记忆的域名转换为计算机可理解的IP地址。
3、DNS
组成部分:
-
DNS服务器:DNS服务器存储着域名和对应的IP地址的映射关系。它们可以分为多个层次的服务器,包括根域名服务器、顶级域名服务器、权威域名服务器和本地域名服务器。
-
根域名服务器:根域名服务器是整个DNS层次结构的最顶层,它存储了顶级域名服务器的地址,负责返回顶级域名服务器的IP地址给请求者。
-
顶级域名服务器:顶级域名服务器是指管理特定顶级域名(如.com、.org、.net等)的服务器。每个顶级域名都有一个对应的顶级域名服务器,它负责返回下一级的权威域名服务器的IP地址。
-
权威域名服务器:权威域名服务器是存储着具体域名和对应IP地址映射关系的服务器。当收到查询请求时,它会返回所请求域名的IP地址。
-
本地域名服务器:本地域名服务器是用户计算机或网络中的DNS服务器。当用户发起域名查询时,本地域名服务器会先检查自己的缓存,如果找到了对应的IP地址,则直接返回给用户。如果没有找到,则向其他DNS服务器发送查询请求,获取并缓存相应的IP地址。
DNS的工作流程:
如下:
- 用户在浏览器中输入一个域名。
- 本地域名服务器检查缓存,如果有对应的IP地址,则直接返回给用户。
- 如果缓存中没有对应的IP地址,则本地域名服务器向根域名服务器发起查询请求。
- 根域名服务器返回顶级域名服务器的IP地址给本地域名服务器。
- 本地域名服务器再向顶级域名服务器发起查询请求。
- 顶级域名服务器返回权威域名服务器的IP地址给本地域名服务器。
- 本地域名服务器最终向权威域名服务器发起查询请求。
- 权威域名服务器返回域名对应的IP地址给本地域名服务器。
- 本地域名服务器将获取到的IP地址缓存,并返回给用户。
- 用户的浏览器使用获取到的IP地址与目标服务器建立连接。
4、Session和Cookie
都是用于在Web应用中跟踪用户状态和存储用户信息的机制,但它们有一些联系和区别。
联系:
- 存储用户信息:Session和Cookie都可以用于存储用户相关的信息,例如用户ID、用户名、购物车内容等。
- 跨页面保持状态:Session和Cookie都可以用于在不同页面之间保持用户的状态,以便用户在整个会话期间保持登录状态或进行个性化设置。
- 服务器端存储:Session和Cookie的数据都是存储在服务器端的,客户端只保存了对应的标识符。
区别:
- 存储位置:Cookie是将数据存储在客户端的浏览器中,而Session是将数据存储在服务器端的内存或数据库中。
- 安全性:由于Cookie是存储在客户端,所以容易受到跨站脚本攻击(XSS)和跨站请求伪造(CSRF)等安全攻击。而Session的数据存储在服务器端,相对来说更安全。
- 存储容量:Cookie的存储容量较小,一般不超过4KB。而Session的存储容量较大,可以存储更多的数据。
- 生命周期:Cookie可以设置过期时间,可以在浏览器关闭后仍然存在,而Session的生命周期通常与用户会话相关,当用户关闭浏览器后,Session会被销毁。
使用Cookie的情景:
- 假设有一个电子商务网站,用户在登录页面输入用户名和密码进行登录。
- 如果选择使用Cookie来保持用户的登录状态,服务器在验证通过后会生成一个包含用户信息的加密字符串,并将该字符串存储在一个名为"login"的Cookie中,然后将该Cookie发送给客户端浏览器。
- 客户端浏览器会保存该Cookie,并在每次请求该网站的时候将该Cookie发送给服务器。
- 服务器通过解析Cookie中的信息来识别用户,并保持用户的登录状态。
- 这样,用户在整个会话期间都可以保持登录状态,无需每次都重新输入用户名和密码。
使用Session的情景:
- 假设有一个博客网站,用户在登录页面输入用户名和密码进行登录。如果选择使用Session来保持用户的登录状态,服务器在验证通过后会为该用户在服务器端创建一个唯一的Session对象,并生成一个Session ID。
- 然后,服务器将该Session ID发送给客户端浏览器,并将该Session对象存储在服务器端的内存或数据库中。
- 客户端浏览器会保存该Session ID,并在每次请求该网站的时候将该Session ID发送给服务器。
- 服务器通过Session ID来识别用户,并从服务器端的存储中获取对应的Session对象,以获取用户的登录状态和其他相关信息。
综上所述,
- 对于需要在客户端保持状态的场景,例如记住登录状态、保持个性化设置等,可以选择使用Cookie。
- 而对于需要在服务器端保持状态的场景,例如存储用户信息、保持会话状态等,可以选择使用Session。
5、GET请求和POST请求
是HTTP协议中常用的两种请求方法,它们在发送请求和接收响应时有一些区别。
1. 参数传递位置:
在GET请求中,参数是通过URL的查询字符串(query string)传递的,即将参数附加在URL的末尾,以"?“符号开始,参数之间使用”&"符号分隔。而在POST请求中,参数是通过请求体(request body)传递的,即将参数放在请求的主体部分。
2. 参数长度限制:
由于GET请求将参数直接附加在URL中,URL的长度是有限制的。不同的浏览器和服务器对URL长度的限制可能不同,一般来说,GET请求的参数长度应该控制在2KB左右。而POST请求没有长度限制,可以传输大量的数据。
3. 安全性:
GET请求的参数会显示在URL中,可以被用户轻易看到,因此不适合传递敏感信息。而POST请求的参数在请求体中,不会显示在URL中,相对更安全。
4. 数据类型:
GET请求一般用于获取数据,不会对服务器产生副作用,也不会改变服务器的状态。而POST请求一般用于提交数据,可能会对服务器产生副作用,比如创建、更新或删除资源。
5. 缓存:
GET请求可以被浏览器缓存,下次再请求相同的URL时可以直接从缓存中获取数据。而POST请求一般不会被缓存,每次请求都会从服务器获取最新数据。
6、PING命令
是一个网络诊断工具,用于测试主机之间的连通性。它通过向目标主机发送ICMP(Internet Control Message Protocol)回显请求消息,然后等待目标主机返回回显回复消息,从而判断网络连接状况。
PING命令的使用
很简单,只需要在命令行窗口中输入"ping"加上目标主机的IP地址或域名,然后回车即可。
例如,"ping www.google.com"或"ping 192.168.0.1"。
PING命令的功能
主要包括以下几个方面:
- 测试网络连接:通过向目标主机发送ICMP请求,可以检测网络是否正常连接,以及网络延迟情况。
- 测试主机是否在线:如果目标主机能够回复PING请求,说明该主机正常在线工作。
- 测试网络质量:通过PING命令返回的延迟时间(ping延迟)可以判断网络的质量,延迟时间越小,网络质量越好;延迟时间越大,网络质量越差。
- 检测网络故障:如果PING命令返回的是超时或失败的消息,说明网络可能存在故障,可以通过这种方式进行初步排查。
- 获取目标主机的IP地址:如果在PING命令中使用域名而不是IP地址,它会将域名解析为IP地址,帮助我们了解目标主机的具体IP地址。
7、HTTP和HTTPS
是用于在客户端和服务器之间进行数据传输的协议,它们之间主要区别如下:
1. 安全性:
HTTP是明文传输协议,数据在传输过程中不经过任何加密处理,容易被窃听和篡改。而HTTPS通过使用SSL/TLS协议对数据进行加密,保证了数据传输的安全性,防止了数据被窃听和篡改。
2. 加密方式:
HTTP不进行数据加密,而HTTPS使用SSL/TLS协议对数据进行加密。SSL/TLS协议使用了公钥加密和对称加密两种方式,保证了数据的机密性和完整性。
3. 端口号:
HTTP默认使用80端口进行通信,而HTTPS默认使用443端口进行通信。这样的区分使得服务器能够根据端口号来区别处理HTTP和HTTPS的请求。
4. 证书:
HTTPS需要使用数字证书来验证服务器的身份。证书由权威的第三方机构颁发,用于证明服务器的合法性和可信度。客户端在建立HTTPS连接时会验证服务器的证书,确保通信的安全性。
5. 性能:
由于HTTPS需要进行加密和解密的操作,相比HTTP而言,会稍微增加一些计算和通信的开销,因此在性能上可能略有差异。
总结来说,HTTP是一种不安全的协议,适用于对数据安全性要求不高的场景,而HTTPS通过使用加密技术确保了数据传输的安全性,适用于对数据安全性要求较高的场景,如在线支付、网上购物等。在现代互联网中,随着对数据安全和隐私的要求不断提高,HTTPS的应用越来越广泛。
6、Http处理流程
HTTP(超文本传输协议)是一种用于在Web浏览器和Web服务器之间传输数据的协议。它使用明文传输数据,不提供数据的加密和安全性保护。HTTP的处理流程如下:
客户端发起HTTP请求:客户端(通常是Web浏览器)向服务器发送HTTP请求,其中包括请求的方法(GET、POST等)、请求的URL、请求头和请求体等信息。
服务器接收和处理请求:服务器接收到客户端的请求后,根据请求的URL和方法执行相应的操作,如获取资源、处理表单数据等。
服务器发送HTTP响应:服务器根据处理结果生成HTTP响应,包括响应的状态码、响应头和响应体等信息,然后将响应发送回客户端。
客户端接收和处理响应:客户端接收到服务器的响应后,根据响应的状态码和内容进行相应的处理,如显示网页内容、处理响应数据等。
7、Https处理流程
HTTPS(超文本传输安全协议)是在HTTP基础上加入了安全性保护的协议。它使用SSL/TLS协议对数据进行加密和身份验证,确保数据传输的安全性。HTTPS的处理流程如下:
客户端发起HTTPS请求:客户端向服务器发送HTTPS请求,其过程与HTTP相似。
服务器发送数字证书:服务器在响应中发送数字证书给客户端,证书中包含了服务器的公钥和其他信息。
客户端验证证书:客户端使用内置的证书颁发机构(CA)列表来验证服务器发送的证书的合法性和有效性。验证包括检查证书的签名、有效期和颁发机构等。
客户端生成随机密钥:客户端生成一个随机的对称密钥,用于后续的数据加密和解密。
客户端使用服务器的公钥加密密钥:客户端使用服务器的公钥对生成的随机密钥进行加密,然后将加密后的密钥发送给服务器。
服务器使用私钥解密密钥:服务器使用自己的私钥对收到的加密密钥进行解密,得到客户端生成的随机密钥。
客户端和服务器之间的加密通信:客户端和服务器使用客户端生成的随机密钥进行对称加密通信,保证数据的安全性。
值得注意的是,HTTPS还可以进行证书链验证和服务器身份验证等操作,以确保通信的安全性和可靠性。
8、TCP(传输控制协议)和UDP(用户数据报协议)
是两种常用的网络传输协议,用于在计算机网络中传输数据。它们在以下几个方面存在差异:
-
可靠性:TCP是一种可靠的协议,它通过使用确认和重传机制来确保数据的可靠传输。如果数据包丢失或损坏,TCP会自动重新发送丢失的数据包。而UDP是一种不可靠的协议,它不提供确认和重传机制,发送的数据包可能会丢失或者以无序的方式到达。
-
连接性:TCP是一种面向连接的协议,通信双方在传输数据之前需要建立一个连接。连接的建立需要进行三次握手,而断开连接需要进行四次挥手。UDP是一种无连接的协议,通信双方之间没有建立连接的过程。
-
速度:由于TCP提供了可靠性保证和连接管理,因此它的传输速度相对较慢。UDP则没有这些额外的开销,因此传输速度较快。
-
适用场景:由于TCP的可靠性和连接管理特性,它适用于需要确保数据完整性和顺序性的应用,如文件传输、电子邮件等。UDP则适用于对实时性要求较高的应用,如音视频传输、实时游戏等。
需要注意的是,TCP和UDP并不是对立的选择,而是根据应用场景的需求来选择合适的传输协议。在某些情况下,也可以将它们结合使用,例如在音视频传输中,可以使用UDP来传输实时数据,而使用TCP来传输控制信令和重要的控制信息。
9、IP(Internet Protocol,互联网协议)
是一种网络层协议,它负责在计算机网络中传输数据包。IP协议定义了数据包的格式和路由选择的机制,使得数据包能够在不同的网络之间传输。
IPv4
(Internet Protocol Version 4,互联网协议第四版)
- 是IP协议的一种具体实现,它是目前广泛使用的IP协议版本。
- IPv4使用32位地址表示网络上的主机或设备,这些地址由四个8位的数字组成,每个数字范围从0到255,以点分十进制的形式表示。
- 例如,192.168.0.1就是一个IPv4地址。
IPv4提供了一些基本功能,包括:
- 数据包分组和封装:IPv4将传输的数据分割成小的数据包,并封装成IP数据包进行传输。
- 地址寻址和路由:IPv4使用IP地址来唯一标识网络上的主机或设备,通过路由选择机制,将数据包从源地址发送到目标地址。
- 差错检测:IPv4使用校验和来检测数据包在传输过程中是否出现错误,以保证数据的完整性。
- 分片和重组:如果数据包的大小超过了网络的最大传输单元(MTU),IPv4会将数据包进行分片,并在目标地址处进行重组。
- TTL(Time to Live):TTL字段用于限制数据包在网络中的存活时间,以防止数据包在网络中无限制地传输。
尽管IPv4在全球范围内广泛使用,但是由于互联网的快速发展和IP地址的有限性,IPv4的地址空间已经逐渐枯竭。因此,为了满足更多的设备连接和互联网的需求,IPv6(Internet Protocol Version 6,互联网协议第六版)作为IPv4的升级版本被提出和使用。IPv6使用128位地址,具有更大的地址空间和更多的扩展功能,以逐步替代IPv4。
10、TCP的可靠性
是通过以下几种原理和机制来实现的:
1. 序列号和确认机制:
每个TCP报文段都有一个序列号,用于标识报文段在发送方和接收方之间的顺序。接收方通过确认序列号来告知发送方已收到的数据。如果发送方未收到确认,就会重新发送数据。
2. 窗口机制:
TCP使用滑动窗口机制来控制发送方和接收方之间的数据流量。发送方通过窗口大小来控制发送的数据量,接收方通过窗口大小来告知发送方可以接收的数据量。这样可以避免发送方发送过多的数据导致接收方无法及时处理。
3. 超时重传机制:
TCP使用超时重传机制来确保数据的可靠传输。发送方在发送数据后会启动一个定时器,如果在规定的时间内未收到确认,则认为数据丢失,会重新发送数据。
4. 拥塞控制机制:
TCP的拥塞控制机制用于避免网络拥塞。当网络出现拥塞时,TCP会减少发送速率以避免进一步加重网络负载。拥塞控制机制包括慢启动、拥塞避免和快速恢复等算法。
11、ARQ(Automatic Repeat reQuest)
是一种通过确认和重传机制实现可靠数据传输的协议。
ARQ协议主要用于在不可靠信道上进行数据传输,确保数据的完整性和正确性。
ARQ协议的基本原理是发送方发送数据后,接收方会对接收到的数据进行检验,并发送确认信息给发送方。
如果发送方未收到确认信息或者接收方检验出错,发送方会重新发送相应的数据。
ARQ协议主要包括以下几种类型:
停止等待ARQ:发送方每发送一个数据帧就会等待接收方的确认,只有收到确认后才能发送下一个数据帧。如果发送方未收到确认,会重新发送相同的数据。
连续ARQ:发送方可以连续发送多个数据帧,而不需要等待接收方的确认。接收方在收到数据帧后会发送累积确认,确认已经接收到的数据帧,未收到的数据帧会被发送方重新发送。
选择性重传ARQ:接收方在收到数据帧后会发送确认信息,确认已经接收到的数据帧。如果发送方未收到确认信息,会认为数据帧丢失,会选择性地重新发送丢失的数据帧,而不是重传所有的数据帧。
ARQ协议通过确认和重传机制,能够提高数据的可靠性和正确性。不过,ARQ协议会增加传输延迟和带宽占用,因为需要等待确认和重传数据。因此,在设计网络协议时需要根据具体的需求和网络条件选择合适的ARQ协议类型。
12、OSI模型,TCP/IP模型
都是用于描述计算机网络通信的参考模型。
OSI模型
是国际标准化组织(ISO)制定的一种通信协议体系结构,它将网络通信划分为七个不同的层级,每个层级都有特定的功能和协议。这些层级分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。每个层级之间通过接口进行通信,从物理层开始传输数据,逐层封装和解封装,最终到达应用层。
TCP/IP模型
是实际应用最广泛的网络通信模型,它由四个层级组成,分别是网络接口层、网络层、传输层和应用层。网络接口层负责处理物理连接和数据链路层的功能,网络层负责数据包的路由和寻址,传输层负责提供可靠的数据传输服务,应用层负责处理特定应用程序的通信需求。
总结来说,OSI模型是一个理论上的参考模型,用于描述网络通信的不同层级和协议。而TCP/IP模型是一个实际应用的网络通信模型,基于这个模型实现了互联网的通信协议,如TCP和IP。
相关文章:

计算机网络常识
文章目录 1、HTTP2、HTTP状态码1xx(信息性状态码):2xx(成功状态码):3xx(重定向状态码):4xx(客户端错误状态码):5xx(服务器…...

React之Jsx如何转换成真实DOM
一、是什么 react通过将组件编写的JSX映射到屏幕,以及组件中的状态发生了变化之后 React会将这些「变化」更新到屏幕上 在前面文章了解中,JSX通过babel最终转化成React.createElement这种形式,例如: <div>< img src&q…...

OpenCV学习(六)——图像算术运算(加法、融合与按位运算)
图像算术运算 6. 图像算术运算6.1 图像加法6.2 图像融合6.3 按位运算 6. 图像算术运算 6.1 图像加法 OpenCV加法是饱和运算Numpy加法是模运算 import cv2 import numpy as npx np.uint8([250]) y np.uint8([10])# OpenCV加法 print(cv2.add(x, y)) # 25010 260 > 255…...

如何做好一次代码审查,什么样是一次优秀的代码审查,静态代码分析工具有哪些
代码审查是确保代码质量、提升团队协作效率、分享知识和技能的重要过程。以下是进行优秀代码审查的一些指南: 如何做好代码审查: 理解代码的背景和目的: 在开始审查前,确保你了解这次提交的背景和目的,这有助于更准确…...

【Android】一个contentResolver引起的内存泄漏问题分析
长时间的压力测试后,系统发生了重启,报错log如下 JNI ERROR (app bug): global reference table overflow (max51200) global reference table overflow的log 08-08 04:11:53.052912 973 3243 F zygote64: indirect_reference_table.cc:256] JNI ER…...

2023年正版win10/win11系统安装教学(纯净版)
第一步:准备一个8G容量以上的U盘。 注意,在制作系统盘时会格式化U盘,所以最好准备个空U盘,防止资料丢失。 第二步:制作系统盘。 安装win10 进入windows官网 官网win10下载地址:https://www.microsoft.c…...

系统架构设计师-第11章-未来信息综合技术-软考学习笔记
未来信息综合技术是指近年来新技术发展而提出的一些新概念、新知识、新产品 信息物理系统(CPS ) ,人工智能( A l) ,机器人、边缘计算、数字孪生、云计算和大数据等技术 信息物理系统技术概述 信息物理系统的概念 信息物理系统是控制系统、嵌入式系统…...

Python __new__()方法详解
__new__() 是一种负责创建类实例的静态方法,它无需使用 staticmethod 装饰器修饰,且该方法会优先 __init__() 初始化方法被调用。 一般情况下,覆写 __new__() 的实现将会使用合适的参数调用其超类的 super().__new__(),并在返回之…...

虹科 | 解决方案 | 汽车示波器 索赔管理方案
索赔管理 Pico汽车示波器应用于主机厂/供应商与服务店/4S店的协作,实现产品索赔工作的高效管理;同时收集的故障波形数据,便于日后的产品优化和改进 故障记录 在索赔申请过程中,Pico汽车示波器的数据记录功能可以用于捕捉故障时的…...

详解Jmeter中的BeanShell脚本
BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法,所以它和java是可以无缝衔接的,学了Java的一些基本语法后,就可以来在Jmeter中写写BeanShell脚本了 在利用jmeter进行接口测试或者性能测试的时候,…...

前端和后端 优化
1.前端资源优化 1.1 html结构优化 保证简洁、清晰的html结构,减少或避免多余的html标签 使用HTML5的web语义化标签,结构清晰且利于seo css文件在head中引入,js文件放在body底部引入,这样做可以防止阻塞。另外如果有需要提前加载的…...

C++编译与运行:其二、编译期和运行期的区别
C的编译分为四步,最终生成一个可执行文件。 C的运行,就是将可执行文件交给操作系统,按照机器码逐步执行,运行功能。 先看一个非常非常有趣的例子: class Father{ public:virtual void f(){cout<<"I am fat…...

汽车电子专有名词与相应技术
1.EEA (Electronic & Electrical Architecture 电子电气架构) EEA在宏观上概括为物理架构与逻辑架构的结合,微观上通过众多电子元器件的协同配合,或集成式或分布式的系统级电子电气架构,具体详见专栏 新能源汽车电…...

idea 没加载 provided的包
目录 前言解决方案 前言 我的版本是IntelliJ IDEA 2022.1.4 (Community Edition),本地调试不知道为什么不加载provided的包。后来找到这篇文章https://youtrack.jetbrains.com/issue/IDEA-107048才知道这是个bug。不知道其他版本会不会出现这种问题。 解决方案 我…...

Hover:借贷新势力崛起,在经验与创新中找寻平衡
复苏中的Cosmos 如果让我选择一个最我感到可惜的区块链项目,我会选择Cosmos。 Cosmos最早提出并推动万链互联的概念,希望打通不同链之间的孤岛,彼时和另一个天王项目Polkadot号称跨链双雄。其跨链技术允许不同的区块链网络互相通信…...

软件设计原则-依赖倒置原则讲解以及代码示例
依赖倒置原则 一,介绍 1.前言 依赖倒置原则(Dependency Inversion Principle,DIP)是面向对象设计中的一个重要原则,由Robert C. Martin提出。 依赖倒置原则的核心思想是:高层模块不应该依赖于低层模块&…...

Linux--进程替换
1.什么是进程替换 在fork函数之后,父子进程各自执行代码的一部分,但是如果子进程想要执行一份全新的程序呢? 通过进程替换来完成,进程替换就是父子进程代码发生写时拷贝,子进程执行自己的功能。 程序替换就是通过特定的…...

【计算机网络】TCP协议
文章目录 1. TCP报文的结构2. TCP的发送缓冲区和接收缓冲区3. 确保可靠性序列号和确认序列号确认应答超时重传连接管理1️⃣三次握手建立连接2️⃣四次挥手断开连接 4. 提高性能流量控制滑动窗口拥塞控制延迟应答捎带应答 5. 面向字节流6. TCP/UDP对比 概念:TCP&…...

机器学习数据集:Kaggle
什么是Kaggle? Kaggle成立于2010年,是一个进行数据发掘和预测竞赛的在线平台。从公司的角度来讲,可以提供一些数据,进而提出一个实际需要解决的问题;从参赛者的角度来讲,他们将组队参与项目,针…...

软考 系统架构设计师系列知识点之设计模式(4)
接前一篇文章:软考 系统架构设计师系列知识点之设计模式(3) 所属章节: 老版(第一版)教材 第7章. 设计模式 第2节. 设计模式实例 3. 行为型模式 行为型模式可以影响一个系统的状态和行为流。通过优化状态…...

PyCharm 安装 cx_Oracle 失败
我在PyCharm的终端用 pip安装cx_Oracle失败,报错情况如下: ERROR: Could not build wheels for cx_Oracle, which is required to install pyproject.toml-based projects 出错原因: python 的版本太高了,我的是3.11版本的&…...

解决Windows出现找不到mfcm90u.dll无法打开软件程序的方法
今天,我非常荣幸能够在这里与大家分享关于mfc90u.dll丢失的5种解决方法。在我们日常使用电脑的过程中,可能会遇到一些软件或系统错误,其中之一就是mfc90u.dll丢失。那么,mfc90u.dll究竟是什么文件呢?接下来,…...

如何设计线程安全的 HashMap?
如何设计线程安全的 HashMap? HashMap 线程不安全的体现: 多线程下扩容死循环:JDK1.7中的 HashMap 使用头插法插入元素,在多线程的环境下,扩容的时候有可能导致环形链表的出现,形成死循环。因此,JDK1.8使…...

rpc汇总
1、什么是rpc rpc的应用,有哪些 Google 开源了 gRPC, Facebook 开源了 Thrift, Twitter 开源了 Finagle, 百度开源了bRPC, 腾讯开源了 Tars, 阿里开源了 Dubbo 和 HSF, 新浪开源了 Motan 等 gr…...

OpenCV学习(五)——图像基本操作(访问图像像素值、图像属性、感兴趣区域ROI和图像边框)
图像基本操作 5. 图像基本操作5.1 访问像素值并修改5.2 访问图像属性5.2 图像感兴趣区域ROI5.3 拆分和合并图像通道5.4 为图像设置边框(填充) 5. 图像基本操作 访问像素值并修改访问图像属性设置感兴趣区域(ROI)分割和合并图像 …...

指针仪表读数YOLOV8NANO
指针仪表读数YOLOV8 NANO 采用YOLOV8 NANO训练,标记,然后判断角度,得出角度,可以通过角度,换算成数据...

10000字!图解机器学习特征工程
文章目录 引言特征工程1.特征类型1.1 结构化 vs 非结构化数据1.2 定量 vs 定性数据 2.数据清洗2.1 数据对齐2.2 缺失值处理 原文链接:https://www.showmeai.tech/article-detail/208 作者:showmeAI 引言 上图为大家熟悉的机器学习建模流程图,…...

Java 官方提供了哪几种线程池,分别有什么特点?
JDK 中提供了 5 中不同线程池的创建方式: newCachedThreadPool newCachedThreadPool, 是一种可以缓存的线程池,它可以用来处理大量短期的突发流量。 它的特点有三个,最大线程数是 Integer.MaxValue,线程存活时间是 60 …...

DTI-ALPS处理笔记
DTI-ALPS处理笔记 前言: 前段时间刚好学习了一下DTI-ALPS处理(diffusion tensor image analysis along the perivascular space ),记录一下,以便后续学习。ALPS是2017年发表在《Japanese Journal of Radiology》的一篇文章首次提出的 (文章地址),主要用于无创评估脑内淋…...

LVS集群-NAT模式
集群的概念: 集群:nginx四层和七层动静分离 集群标准意义上的概念:为解决特定问题将多个计算机组合起来形成一个单系统 集群的目的就是为了解决系统的性能瓶颈。 垂直扩展:向上扩展,增加单个机器的性能,…...