[TOC]
1、TCP 历史及其设计哲学
1.1、TCP/IP 的前身 ARPA:NCP 协议
![image-20220819103419076](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819103419076.png)
1.2、TCP/IP 协议发展
![image-20220819103534060](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819103534060.png)
1.3、TCPv4 协议分层后的互联网世界
![image-20220819103643226](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819103643226.png)
1.4、TCP/IP 的七个设计理念
![image-20220819103731990](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819103731990.png)
2、TCP 解决了哪些问题?
2.1、TCP 的作用
![image-20220819103925515](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819103925515.png)
2.2、TCP协议的分层
![image-20220819104250668](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819104250668.png)
2.3、报文头部
![image-20220819104444880](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819104444880.png)
![image-20220819104539556](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819104539556.png)
2.4、TCP 协议特点
![image-20220819104557349](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819104557349.png)
3、TCP 报文格式
3.1、消息传输的核心要素
![image-20220819104907273](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819104907273.png)
3.2、IP头部
![image-20220819105028413](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819105028413.png)
![image-20220819105414479](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819105414479.png)
3.3、UDP 头部
![image-20220819105049681](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819105049681.png)
![image-20220819105434419](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819105434419.png)
3.4、TCP 协议的任务
![image-20220819105137234](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819105137234.png)
3.5、如何标识一个连接?
![image-20220819105206106](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819105206106.png)
3.6、TCP Segment 报文段
![image-20220819105254952](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819105254952.png)
![image-20220819105355131](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819105355131.png)
![image-20220819105532495](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819105532495.png)
4、三次握手建立连接
4.1、握手的目标
![image-20220819105816744](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819105816744.png)
4.2、三次握手
![image-20220819110855076](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819110855076.png)
4.3、报文格式
![image-20220819110950677](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819110950677.png)
![image-20220819111000165](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819111000165.png)
![image-20220819111006994](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819111006994.png)
5、三次握手状态变迁
5.1、三次握手流程
![image-20220819112615675](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819112615675.png)
5.3、netstat 命令查看TCP 状态
![image-20220819112843131](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819112843131.png)
5.2、两端同时发送SYN:双方使用固定源端口且同时建连接
![image-20220819112853238](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819112853238.png)
6、三次握手中的性能优化与安全问题
6.1、服务器三次握手流程示例
![image-20220819121223337](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819121223337.png)
6.2、超时时间与缓冲队列(调整SYN队列大小)
![image-20220819121317717](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819121317717.png)
6.3、Fast Open 降低时延
![image-20220819121417253](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819121417253.png)
![image-20220819121444425](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819121444425.png)
6.4、如何应对 SYN 攻击?
![image-20220819121503161](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819121503161.png)
![image-20220819121549058](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819121549058.png)
6.5、TCP_DEFER_ACCEPT
![image-20220819121648544](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819121648544.png)
7、数据传输与MSS 分段
7.1、TCP 应用层编程示例
![image-20220819121947777](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819121947777.png)
7.2、TCP 流的操作
![image-20220819122002481](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819122002481.png)
![image-20220819122008552](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819122008552.png)
7.3、MSS:Max Segment Size(不包含头部大小)
![image-20220819122137556](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819122137556.png)
7.4、TCP 握手常用选项
![image-20220819122235037](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819122235037.png)
8、重传与确认
8.1、报文有可能丢失
![image-20220819122533560](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819122533560.png)
8.2、解决方法
![image-20220819122540118](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819122540118.png)
![image-20220819122605119](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819122605119.png)
8.3、存在问题(针对每一个字节)
![image-20220819122719074](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819122719074.png)
![image-20220819122725584](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819122725584.png)
8.4、序列号复用
![image-20220819123023018](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819123023018.png)
![image-20220819123042085](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819123042085.png)
8.5、BDP 网络中的问题
![image-20220819123223221](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819123223221.png)
9、RTO 重传定时器的计算
9.1、如何测量 RTT?
![image-20220819135413904](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819135413904-16608884542752.png)
![image-20220819135432532](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819135432532.png)
9.2、TCB
Socket包含两部分,一个是IP地址,一个是端口号。同一个设备可以对应一个IP地址,但不同的管道用不同的端口号区分,于是同一个设备发送给其他不同设备的信息就不会产生混乱。在同一时刻,设备可能会产生多种数据需要分发给不同的设备,为了确保数据能够正确分发,TCP协议用一种叫做TCB(Transmission Control Block,传输控制块)的数据结构把发给不同设备的数据封装起来。
9.3、RTO( Retransmission TimeOut )应当设多大?
![image-20220819140107392](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819140107392.png)
9.4、RTO 应当更平滑
![image-20220819140155305](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819140155305.png)
9.5、追踪 RTT 方差(linux实际方案)
![image-20220819140302454](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819140302454.png)
10、滑动窗口:发送窗口与接收窗口
10.1、滑动窗口:发送窗口快照
![image-20220819140426261](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819140426261.png)
10.2、可用窗口
![image-20220819140538028](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819140538028.png)
![image-20220819140622055](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819140622055.png)
![image-20220819140633201](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819140633201.png)
10.3、发送窗口
![image-20220819140708300](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819140708300.png)
10.4、接受窗口
![image-20220819140804930](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819140804930.png)
11、窗口的滑动与流量控制
11.1、示例
![image-20220819141127964](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819141127964.png)
11.2、客户端消息的发送
![image-20220819142823430](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819142823430.png)
11.3、服务器消息的发送
![image-20220819142838668](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819142838668.png)
12、操作系统缓冲区与滑动窗口的关系
12.1、窗口与缓存
![image-20220819143103155](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819143103155.png)
12.2、收缩窗口导致的丢包
![image-20220819143813603](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819143813603.png)
12.3、合适的窗口大小
![image-20220819144026237](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819144026237.png)
12.4、Linux下调整接收窗口与应用缓存
![image-20220819144051325](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819144051325.png)
![image-20220819144058827](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819144058827.png)
13、如何减少小报文提高网络效率?
13.1、SWS(Silly Window syndrome)糊涂窗口综合症
![image-20220819144154909](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819144154909.png)
13.2、SWS 避免算法
![image-20220819144329292](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819144329292.png)
- nagle算法等待ACK时候累计小报文
- 如果报文超过MSS,则不论是否收到ACK,必须立即发送
13.3、TCP delayed acknowledgment 延迟确认
![image-20220819144456771](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819144456771.png)
13.4、Nagle VS delayed ACK
![image-20220819144632429](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819144632429.png)
14、拥塞控制(1):慢启动
14.1、全局思考:拥塞控制
![image-20220819145021860](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819145021860.png)
14.2、定义
![image-20220819145141426](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819145141426.png)
14.3、慢启动的初始窗口
![image-20220819145257235](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819145257235.png)
15、拥塞控制(2):拥塞避免
15.1、定义
![image-20220819145620822](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819145620822.png)
15.2、慢启动与拥塞控制
![image-20220819145739606](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819145739606.png)
16、拥塞控制(3):快速重传与快速恢复
16.1、为何会接收到一个失序数据段?
![image-20220819150016060](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819150016060.png)
16.2、快速重传(RFC2581)
![image-20220819150139111](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819150139111.png)
16.3、注意事项、
![image-20220819150425355](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819150425355.png)
![image-20220819150410274](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819150410274.png)
16.4、快速恢复(RFC2581)
![image-20220819150522131](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819150522131.png)
17、SACK 与选择性重传算法
17.1、仅重传丢失段
![image-20220819151255001](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819151255001.png)
17.2、重传所有段
![image-20220819151447238](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819151447238.png)
17.3、SACK:TCP Selective Acknowledgment
![image-20220819151508048](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819151508048.png)
![image-20220819151521134](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819151521134.png)
18、四次握手关闭连接
18.1、关闭连接
![image-20220819151812534](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819151812534.png)
18.2、两端同时关闭连接
![image-20220819152208472](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819152208472.png)
18.3、TCP 状态机
![image-20220819152233264](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819152233264.png)
19、优化关闭连接时的TIME-WAIT状态
19.1、TIME-WAIT状态过短或者不存在会怎么样?
![image-20220819152436497](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819152436497.png)
19.2、linux下TIME_WAIT优化:tcp_tw_reuse
![image-20220819152636177](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819152636177.png)
19.3、TIME_WAIT 优化
![image-20220819152700842](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819152700842.png)
19.4、RST 复位报文(直接关闭连接)
![image-20220819152744767](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819152744767.png)
20、keepalive 、校验和及带外数据
20.1、TCP 的 Keep-Alive 功能
![image-20220819152850211](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819152850211.png)
20.2、违反分层原则的校验和
![image-20220819152902603](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819152902603.png)
20.3、应用调整 TCP 发送数据的时机
![image-20220819152927259](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819152927259.png)
![image-20220819152935358](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819152935358.png)
21、面向字节流的TCP 连接如何多路复用?
21.1、Multiplexing 多路复用
![image-20220819153123437](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819153123437.png)
21.2、HTTP2:TCP 连接之上的多路复用
![image-20220819153227180](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819153227180.png)
21.3、非阻塞 socket:同时处理多个TCP连接
![image-20220819153239936](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819153239936.png)
21.4、epoll
![image-20220819153258192](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819153258192.png)
![image-20220819153350185](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819153350185.png)
![image-20220819153403993](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819153403993.png)
22、四层负载均衡可以做什么?
![image-20220819153549110](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819153549110.png)
![image-20220819153556558](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819153556558.png)
![image-20220819153605829](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819153605829.png)
![image-20220819153619358](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819153619358.png)
![image-20220819153626455](/mei_you_ni_dong/doc/raw/9005d11e995a1195b87cd750f4154b53fbef6b00/tcp/Web%20%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3%E4%B8%8E%E6%8A%93%E5%8C%85%E5%AE%9E%E6%88%98/assets/image-20220819153626455.png)