![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算机网络
文章平均质量分 55
SuNew_bee
这个作者很懒,什么都没留下…
展开
-
HTTP/1.1、HTTP/2、HTTP/3对HTTP的改进
HTTP/1.1的改进 HTTP/1.0的缺点 1、HTTP/1.0每一次请求都要建立一次连接,然后断开连接,系统开销大。 2、发送方每次都要等上次发出的请求得到响应了才能发送下一个请求,效率太低。 HTTP/1.1的改进 1、TCP连接使用长连接,减少频繁建立连接释放连接的系统开销。 2、支持管道进行网络传输,不用等上一个请求被响应就能发送下一个请求,提升效率。 HTTP/2的改进 HTTP/1.1的性能缺陷 1、请求/响应的头部过大,会增大延迟,要减小延迟只能压缩请求/响原创 2021-05-29 10:25:42 · 582 阅读 · 0 评论 -
HTTPS加密
HTTPS的加密方式 HTTPS的加密方式采用共享秘钥和公开秘钥混合的混合加密方式。 共享秘钥要求双方使用同一个秘钥,在网络上直接传输共享秘钥,如果被窃听到了,那么加密的内容就会被其他人解密。使用公开秘钥的方式虽然能实现安全传输,但是因为公开秘钥加密比较复杂,传输较慢。所以结合两种加密方式的优缺点,HTTPS使用公开秘钥对共享秘钥加密传输,双方约定好共享秘钥后再用共享秘钥加密通信内容。 公开密钥的安全性证书 公开秘钥在传输时,有被替换的风险,为了保证接收方收到的公开秘钥的真实性会由数字证书原创 2021-05-29 10:25:19 · 84 阅读 · 0 评论 -
TCP拥塞控制
为什么要拥塞控制 网络出现拥堵时可能会导致数据包延时、丢失,会触发重传机制,这时网络中的包更多了,网络负担更大了,会进入恶性循环。 拥塞窗口 拥塞窗口cwnd是发送方维护的一个随网络变化的动态变量,它可以约等于接收窗口rwnd,发送窗口swnd的值为min(拥塞窗口,接收窗口)。 变换规则:网络中没有拥塞,则窗口增大,否则减小。 怎么知道是否拥塞 出现超时重传就可以认为出现拥塞 拥塞控制算法 拥塞发生前 慢启动 当发送方没收到一个ACK,拥塞窗口大小就+1。 慢启动门限原创 2021-05-25 23:09:28 · 113 阅读 · 0 评论 -
流量控制
发送方发送数据需要考虑接收方的处理能力,如果一直发数据给对方,对方又处理不过来,就会触发很多次重传,导致流量浪费。另外,在通信时接收方如果数据处理不过来会将数据包暂存在缓冲区中,如果缓冲区满了发送方继续向接收方发送数据的话会导致数据包丢失,TCP提供流量控制机制使发送方根据接收方的接收能力控制发送的数据量。 滑动窗口 流量控制是基于滑动窗口的。滑动窗口能够告诉发送方接收方还能接收多少数据。 滑动窗口还有另一个重要的作用:TCP每发送一个数据都要进行一次确认应答,如果在收到应答后再发送下一个数据原创 2021-05-25 21:12:40 · 265 阅读 · 0 评论 -
TCP重传机制
超时重传 发送方在发送数据时,会设定一个计时器,在指定时间内没有收到接收方的应答就会重发该数据。 超时时间RTO的设置: 超时时间较大,重发偏慢,效率低,性能差 超时时间偏小,数据包没有丢失就重发,重发得频繁,给网络增加拥塞,导致更多超时,恶性循环。 所以超时时间的设置非常重要,超时时间应该略大于往返的时间RTT,由于网络是经常变化的,所以报文往返时间也是变化的,因此RTO是一个动态变化的值。 快速重传 快速重传不以时间为驱动,以数据为驱动。 图片来自公众号:小林coding 在数原创 2021-05-25 17:26:44 · 1070 阅读 · 0 评论 -
TCP四次挥手
四次挥手过程 图片来自公众号:小林coding 第一次挥手:客户端要关闭连接时,向服务端发送一个FIN报文,FIN位置为1,此时客户端没有数据要发送了,客户端进入FIN_WAIT_1状态。 第二次挥手:服务端收到报文后,向客户端发送ACK报文,服务端进入CLOSE_WAIT。 第三次挥手:服务端在断开连接前可能还有数据要处理,在处理完数据后向客户端发送FIN报文,服务端没有要处理的数据了,进入FIN_WAIT_2状态。 第四次挥手:客户端收到服务端的FIN后向客户端发送一个ACK报文,进入原创 2021-05-25 11:49:25 · 80 阅读 · 0 评论 -
TCP三次握手
TCP三次握手 开始握手前服务端和客户端都处于CLOSED状态。服务端先监听某个端口处于LISTEN状态。 第一次握手:客户端先生成随机的初始化序列号,把它放在TCP首部的序列号字段中,将SYN标志设为1,。把这个SYN报文发送给服务端,这是还未建立连接报文中没有应用层数据,客户端进入SYN-SENT状态。 第二次握手:服务端接收到客户端的SYN报文后,首先也随机初始化自己的序列号,将序列号放在序列号字段中,把SYN和ACK都置为1,确认应答号放入客户端的序列号+1,把该报文发送给客户端,同样不原创 2021-05-25 10:50:56 · 83 阅读 · 0 评论