![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
TCP
文章平均质量分 85
CoderAndClimber
一个小码农,个人微信公众号:清远的梦呓,欢迎关注
展开
-
尽管HTTP/3已经来了,HTTP/2也得了解啊
目录源起协议格式分帧层帧类型首部压缩交互流程Curl 查看HTTP/2浏览器查看HTTP/2其他优化HTTP/2使用率参考资料因为HTTP/1.1性能以及速度方面的问题,人们想了一系列的优化措施。当优化措施依然不能满足要求时,就需要对协议进行升级。于是,有了HTTP/2。源起HTTP/2基于SPDY。SPDY 音同SPEEDY,也就是快,如果你看过手把手带你体验 HTTP/3或者【技术】QUIC的那些事 | QUIC为什么那么快,...原创 2020-05-17 16:32:29 · 771 阅读 · 2 评论 -
手把手带你体验 HTTP/3
HTTP/3 是在 QUIC 基础上发展出来的,并于 2019 年发布。QUIC 存在两个版本,早期 Google 打头阵的 QUIC 称之为 gQUIC,IETF 标准化后称之为 IQUIC。gQUIC 使用 UDP 进行数据传输,但上层仍然使用HTTP/2, HTTP/2 与 UDP 之前存在一个 QUIC 层,TLS 加密过程在此层处理;而 IQUIC,直接将 TLS 集成到 QUIC 内部。之前我写了QUIC相关文章,具体见如下链接:【技术】QUIC的那些事 | QUIC为什么那么.原创 2020-05-14 23:11:46 · 3868 阅读 · 0 评论 -
IPsec介绍
目录1. IPsec概述2. 安全体系2.1 Authentication Header(AH)2.2 Encapsulating Security Payload(ESP)2.3 Security association(SA)3. 运行模式3.1 传输模式3.2 隧道模式4 Security Association(SA)4.1 SA概述4.2 SA...原创 2019-01-21 22:25:37 · 2245 阅读 · 0 评论 -
TCP 的那些事 | TCP Fast Open
目录 TCP Fast Open定义起源详解流程CookieTFO与Wireshark开启TFO示例代码TFO性能页面加载时间Server CPU安全性结论参考资料TCP Fast Open定义TCP Fast Open(TFO)是用来加速连续TCP连接的数据交互的TCP协议扩展,原理如下:在TCP三次握手的过程中,当用户首次访问...原创 2019-01-06 14:53:50 · 7082 阅读 · 1 评论 -
TCP 的那些事 | 快速恢复
在《慢启动》、《拥塞避免》文章讲述了慢启动以及拥塞避免阶段的相应机制,当进入拥塞阶段后,TCP需要采取一定的策略避免网络的拥塞,其中有一种方式就是快速恢复算法。快速恢复算法是在TCP Reno算法中引入。TCP Reno 算法快速恢复和快速重传一起使用,使用规则如下:1. 启动快速重传2. 设置SSThresh = CWS/2 以及 CWS = SSThresh + 3 *...原创 2019-01-01 19:49:48 · 747 阅读 · 1 评论 -
TCP 的那些事 | 拥塞避免
在文章《【技术】TCP 的那些事 | 慢启动 》中 讲到,慢启动算法的拥塞窗口大小CWS(Congestion Window Size )有个上限值SSThresh(Slow Start Threshold),当CWS >= SSThresh时,就会进入“拥塞避免”阶段。一般来说SSThresh的值是65535字节,当CWS达到这个值时后,CWS的更新算法如下:1. 收到一个ACK时,...原创 2018-12-28 21:21:27 · 605 阅读 · 0 评论 -
TCP 的那些事 | 在途字节数
由于网络存在延迟丢包、接收端处理数据与发送端发送数据的速度有差别以及接收端可能采取收到多个包以后才统一回复Ack的策略,那么发送端就需要保存“已发送但未收到Ack”的数据列表,当触发重传时,直接在该链表中找到相应需要重传的数据,重传给接收端。在文章《【技术】TCP 的那些事 | 滑动窗口 》中讲述了滑动窗口的基本原理,其中“从发送端看发送数据的状态”中的Category2:已发送但未收到Ack...原创 2018-12-27 19:04:48 · 1752 阅读 · 0 评论 -
TCP 的那些事 | 滑动窗口
Advertised Window Size在文章《TCP 的那些事 | TCP报文格式解析》中讲述了TCP的报文格式,其中Window字段表示接收端告诉发送端自己还有多少缓冲区可以接收数据。于是发送端就可以根据这个接收端的处理能力来发送数据,而不会导致接收端处理不过来。该字段和Options字段中的Kind为3的可选项(Window Scale)结合,可以确定窗口大小,该Window字段也称...原创 2018-12-16 21:51:36 · 2073 阅读 · 0 评论 -
TCP 的那些事 | D-SACK
在《【技术】TCP 的那些事 | SACK 》讲解了SACK,在SACK中描述的数据段是接收端收到的数据,发送端根据接收端返回的SACK信息就可以知道哪些数据丢了,进而进行重传。RFC2883对SACK进行了扩展,称为D-SACK:使得扩展后的SACK具有通知发送端哪些数据被重复接收了。引入D-SACK的目的是使TCP进行更好的流控,具体来说有以下几个好处:1. 让发送方知道,是发送的包丢...原创 2018-12-16 21:40:38 · 4355 阅读 · 0 评论 -
TCP 的那些事 | SACK
在文章《TCP 的那些事 | 快速重传》中介绍了基本的重传知识及快速重传,本文讲解相比快速重传更有效的另一种重传方式:SACK(Selective Acknowledgment)。SACK需要在TCP头里加一个SACK的东西,ACK还是快速重传(Fast Retransmit)的ACK,SACK则是汇报收到的数据碎版。SACK信息在《TCP 的那些事 | TCP报文格式解析》中的图1中的Opt...原创 2018-12-16 21:35:59 · 4842 阅读 · 0 评论 -
TCP 的那些事 | 快速重传
TCP是面向连接的、可靠的、基于字节流的传输层通信协议,其要保证传输的数据可靠:网络通信的双方发送给对方的数据要确保可以抵达对方,否则要进行重传。假设通信的双方是A和B,A连续给B发送了1,2,3,4,5这5份数据,但是呢,在A发送这5份数据的途中,B先收到了1,2号数据,于是发送Ack给A,表示已经收到了1,2号数据。随后又收到了4号及5号数据,这个时候还没有收到3号数据,那么B能不能直接回...原创 2018-12-16 21:31:09 · 886 阅读 · 0 评论 -
TCP 的那些事 | TCP报文格式解析
TCP(Transmission Control Protocol 传输控制协议)提供一种面向连接的、可靠的字节流服务。面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接。TCP在网络ISO的七层模型中的第四层---Transport层,在TCP/IP协议中的第三层---传输层。TCP通过下列方式来提供可靠性:1. 应用数据被分...原创 2018-12-16 21:29:05 · 1355 阅读 · 0 评论 -
TCP 的那些事 | MSS
MSS 的全称是 Maximum Segment Size(最大报文长度),是 TCP 层上的概念。MSS 指的是 TCP 报文段中数据部分的最大长度,并不是整个TCP 报文段长度,整个 TCP 报文段长度 = TCP 首部长度 + TCP 数据部分长度。网络交互的双方进行 TCP 通信时,会在三次握手时告知对方各自的 MSS,MSS 值只会出现在 SYN 报文中。如下抓包所示,其中IP地...原创 2018-12-16 21:25:00 · 1022 阅读 · 0 评论 -
TCP 的那些事 | MTU
网络通信中,经常会遇到一个概念MTU,全称是Maximum Transmission Unit(最大传输单元)。那么什么是MTU,MTU的作用是什么,本文从最基本的概念出发,一步步讲起。MTU是最大传输单元,针对的对象是以太网帧中的数据。MTU的确切意思就是以太网帧中数据的最大长度,注意,是以太帧中有效载荷的最大长度,不包括以太帧帧首尾部的长度。以太网帧数据格式如下:以太网帧数据格式...原创 2018-12-16 21:23:16 · 2621 阅读 · 0 评论 -
TCP 的那些事 | 四次挥手
TCP在断开连接时,会进行四次挥手(一方主动断开,对端被动断开),如图1所示:图1 四次挥手第一次挥手:客户端发送一个FIN,用来关闭客户端到服务端的数据传送,客户端进入FIN_WAIT_1状态。第二次挥手:服务端收到FIN后,发送一个ACK给客户端,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),服务端进入CLOSE_WAIT状态。第三次挥手:服务端发送一个FI...原创 2018-12-16 21:17:38 · 143 阅读 · 0 评论 -
TCP 的那些事 | 三次握手
TCP在建立连接时,会进行三次握手,流程如图1所示:图1 TCP 三次握手流程图3次握手的主要目的是初始化Sequence Number 的初始值及协商一些通信双方的通信参数。通信的双方要互相通知对方自己的初始化的Sequence Number(缩写为ISN:Inital Sequence Number)。SYN,全称Synchronize Sequence Numbers。也就上图中...原创 2018-12-16 21:12:07 · 440 阅读 · 0 评论