![](https://i-blog.csdnimg.cn/direct/607bee66a6884a73992cb1141874ded9.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
计算机网络
文章平均质量分 80
主要记录计算机网络相关知识
冯富江的技术博客
这个作者很懒,什么都没留下…
展开
-
为什么tcp连接要三次握手 ,断开要四次挥手?
双向确认:三次握手确保双方都能接收和发送数据。第一次握手让服务器知道客户端想建立连接,第二次握手让客户端知道服务器收到了它的请求并同意建立连接,第三次握手让服务器知道客户端收到了它的确认。(确认收发能力没有问题)防止旧连接请求干扰:通过三次握手,双方都可以确保对方是真正准备好通信的,而不是由于网络延迟导致的旧的SYN包干扰。原创 2024-07-18 11:05:09 · 201 阅读 · 0 评论 -
TCP中的2MSL详解
MSL是一个TCP段在网络中可以存活的最长时间,2MSL就是两倍的这个时间。让网络中的TCP报文段自然消失。防止"老"数据包在网络中滞留。原创 2024-07-10 09:34:20 · 291 阅读 · 0 评论 -
DNS缓存详解
1.浏览器查找顺序 浏览器缓存 > 操作系统缓存 > 本地Hosts文件 > DNS服务器查询2.cmd ping查找顺序(非浏览器) 本地Hosts文件 > 操作系统缓存 > DNS服务器查询原创 2024-07-09 12:04:56 · 876 阅读 · 0 评论 -
HTTP3(QUIC)详解
http2利用二进制分帧实现多路复用,解决的是HTTP层(http1.1)的队头线性阻塞HTTP/3是第三个主要版本的HTTP协议。与其前任HTTP/1.1和HTTP/2不同,在HTTP/3中,将弃用TCP协议,改为使用基于UDP协议的QUIC协议(快速的UDP网络连接)实现。此变化主要为了解决HTTP/2中存在的队头阻塞问题。由于HTTP/2在单个TCP连接上使用了多路复用,受到TCP拥塞控制的影响,少量的丢包就可能导致整个TCP连接上的所有流被阻塞。原创 2024-06-24 10:06:37 · 1742 阅读 · 0 评论 -
HTTP3 QUIC数据包重传机制
QUIC 中的数据传输基于流和帧,每个流都是独立的,包含多个帧。帧的类型包括数据帧、ACK 帧、握手帧等。丢包重传只涉及具体丢失的帧,而不会影响其他流中的帧。的,而不是像 TCP 那样基于字节的序列号。包编号的独立性使得 QUIC 能够快速检测到哪些数据包丢失,并决定需要重传哪些包。当发送方接收到 ACK 帧后,会根据确认的信息判断哪些数据包需要重传。在 QUIC 和 HTTP/3 中,数据传输的单位是“包”(packet)和“帧”(frame)来确认接收到的数据包,并提供详细的丢包信息。原创 2024-06-24 08:10:46 · 813 阅读 · 0 评论 -
TLS握手中的RTT
TLS 1.2 握手通常需要2 RTT 才能完成。TLS1.3 在 0-RTT 握手过程中,客户端可以`在握手开始时就发送应用数据`,从而实现 0 个 RTT 的数据传输延迟。原创 2024-06-24 07:06:20 · 967 阅读 · 0 评论 -
http发展史(http0.9、http1.0、http1.1、http/2、http/3)详解
主要内容:http1.0 http1.1 http2 http3 。在 HTTP/1.1 中,引入了持久连接和管道化(Pipelining),允许在一个连接中发送多个请求。然而,由于串行处理方式,如果一个请求处理变慢或被阻塞,后续所有的请求都会受到影响。如果数据包2在传输过程中丢失,接收方必须等待重新传输数据包2,然后才能处理数据包3,即使数据包3已经到达。在 TCP 连接中,数据包按顺序传输和接收。如果请求A处理得很慢或被阻塞,浏览器必须等待请求A完成后才能处理请求B和请求C,尽管请求B和C可以并行处理。原创 2024-06-22 08:01:36 · 896 阅读 · 0 评论 -
HTTP/2 的 ALPN(应用层协议协商)
ALPN(Application-Layer Protocol Negotiation)是 TLS 的一个扩展,它允许客户端和服务器在建立 TLS 连接的过程中协商使用的应用层协议,如 HTTP/1.1 或 HTTP/2。ALPN 通过在 TLS 握手过程中嵌入协议协商信息,使得客户端和服务器可以快速确定使用哪种协议进行通信,而无需额外的往返通信。原创 2024-06-22 07:45:33 · 683 阅读 · 0 评论 -
HTTP/2 头部压缩 Header Compress(HPACK)详解
在HTTP2.0中,我们使用了HPACK(HTTP2头部压缩算法)压缩格式对传输的header进行编码,减少了header的大小。并在两端维护了索引表,用于记录出现过的header,后面在传输过程中就可以传输已经记录过的header的键名,对端收到数据后就可以通过键名找到对应的值。原创 2024-06-22 07:35:09 · 586 阅读 · 0 评论 -
http/2 二进制分帧层 (Binary Framing Layer)讲解
在HTTP2.0中引入了新的编码机制,所有传输的数据都会被分割,并采用二进制格式编码HTTP/2 所有性能增强的核心是新的二进制分帧层,它规定了 HTTP 消息的封装方式,并在客户端和服务器之间传输。为了保证HTTP不受影响,那就需要在应用层(HTTP2.0)和传输层(TCP or UDP)之间增加一个二进制分帧层。在二进制分帧层上,HTTP2.0会将所有传输的信息分为更小的消息和帧,并采用二进制格式编码原创 2024-06-22 07:05:41 · 1099 阅读 · 0 评论 -
客户端如何验证服务器SSL证书的有效性?
客户端需要验证服务器证书中的域名与访问的服务器域名匹配。这可以通过检查证书的 Common Name (CN) 和 Subject Alternative Name (SAN) 字段来完成。证书链通常由服务器证书、中间证书和根证书组成。客户端需要验证从服务器证书到受信任的根证书之间的所有中间证书。每个证书都必须正确地链接到下一个证书,直到到达根证书。CRL 是由 CA 发布的包含所有已吊销证书的列表。OCSP 提供了一种实时检查证书吊销状态的方法。客户端向 OCSP 服务器发送请求,查询证书的吊销状态。原创 2024-06-22 02:11:39 · 835 阅读 · 0 评论 -
HTTP 状态码详解及使用场景
1xx 信息性状态码、2xx 成功状态码、3xx 重定向状态码、4xx 客户端错误状态码、5xx 服务器错误状态码原创 2024-06-21 21:05:31 · 729 阅读 · 0 评论 -
HTTP的持久连接(Persistent Connection)
HTTP 的持久连接(Persistent Connection),也称为长连接(Keep-Alive),是指在同一个 TCP 连接上可以发送和接收多个 HTTP 请求和响应,而不是每次请求都建立一个新的连接。持久连接旨在提高网络效率和性能,减少连接建立和拆除的开销。为了防止持久连接长期占用资源,通常会设置连接超时(timeout)。如果在一定时间内没有新的请求,服务器会关闭连接。超时的时间可以由服务器配置,也可以在。指定了在此连接上最多可以发送 100 个请求。指定了连接的空闲超时时间为 10 秒,原创 2024-06-20 05:31:07 · 662 阅读 · 0 评论 -
HTTP GET vs POST 方法
虽然 HTTP 协议本身没有规定 URL 的长度限制,但实际中浏览器和服务器对 URL 长度有具体的限制。对于需要传递大量数据的请求,建议使用 POST 方法,而不是 GET 方法,以避免 URL 长度超出限制。通过优化查询字符串和选择合适的请求方法,可以确保请求在不同环境中的兼容性和可靠性。原创 2024-06-20 04:51:07 · 1098 阅读 · 0 评论 -
客户端输入网址后发生的全过程解析(协议交互、缓存、渲染)
当用户在浏览器中输入URL并按下回车,浏览器首先查询DNS解析域名获取IP地址,然后通过TCP三次握手建立与服务器的连接,并发送HTTP请求。服务器处理请求并返回HTTP响应,浏览器接收响应后检查缓存,解析HTML构建DOM树、CSSOM树和渲染树,进行布局和绘制,同时解析和执行JavaScript脚本,加载并渲染其他外部资源。如果使用HTTPS,还包括TLS/SSL握手过程。整个过程中涉及协议协商、缓存控制和数据压缩,最终呈现给用户完整的网页。原创 2024-06-19 00:52:41 · 1778 阅读 · 0 评论