auto commit

This commit is contained in:
CyC2018
2019-11-02 12:07:41 +08:00
parent 182e1440a4
commit bb6e0df82d
784 changed files with 7545 additions and 2827 deletions

View File

@ -31,19 +31,19 @@
<div align="center"> <img src="pics/55dc4e84-573d-4c13-a765-52ed1dd251f9.png" width="700"/> </div><br>
- **序号** 用于对字节流进行编号例如序号为 301表示第一个字节的编号为 301如果携带的数据长度为 100 字节那么下一个报文段的序号应为 401
- **序号** 用于对字节流进行编号例如序号为 301表示第一个字节的编号为 301如果携带的数据长度为 100 字节那么下一个报文段的序号应为 401
- **确认号** 期望收到的下一个报文段的序号例如 B 正确收到 A 发送来的一个报文段序号为 501携带的数据长度为 200 字节因此 B 期望下一个报文段的序号为 701B 发送给 A 的确认报文段中确认号就为 701
- **确认号** 期望收到的下一个报文段的序号例如 B 正确收到 A 发送来的一个报文段序号为 501携带的数据长度为 200 字节因此 B 期望下一个报文段的序号为 701B 发送给 A 的确认报文段中确认号就为 701
- **数据偏移** 指的是数据部分距离报文段起始处的偏移量实际上指的是首部的长度
- **数据偏移** 指的是数据部分距离报文段起始处的偏移量实际上指的是首部的长度
- **确认 ACK** ACK=1 时确认号字段有效否则无效TCP 规定在连接建立后所有传送的报文段都必须把 ACK 1
- **确认 ACK** ACK=1 时确认号字段有效否则无效TCP 规定在连接建立后所有传送的报文段都必须把 ACK 1
- **同步 SYN** 在连接建立时用来同步序号 SYN=1ACK=0 时表示这是一个连接请求报文段若对方同意建立连接则响应报文中 SYN=1ACK=1
- **同步 SYN** 在连接建立时用来同步序号 SYN=1ACK=0 时表示这是一个连接请求报文段若对方同意建立连接则响应报文中 SYN=1ACK=1
- **终止 FIN** 用来释放一个连接 FIN=1 表示此报文段的发送方的数据已发送完毕并要求释放连接
- **终止 FIN** 用来释放一个连接 FIN=1 表示此报文段的发送方的数据已发送完毕并要求释放连接
- **窗口** 窗口值作为接收方让发送方设置其发送窗口的依据之所以要有这个限制是因为接收方的数据缓存空间是有限的
- **窗口** 窗口值作为接收方让发送方设置其发送窗口的依据之所以要有这个限制是因为接收方的数据缓存空间是有限的
# TCP 的三次握手
@ -61,7 +61,7 @@
- B 收到 A 的确认后连接建立
**三次握手的原因**
**三次握手的原因**
第三次握手是为了防止失效的连接请求到达服务器让服务器错误打开连接
@ -83,11 +83,11 @@
- B 收到 A 的确认后释放连接
**四次挥手的原因**
**四次挥手的原因**
客户端发送了 FIN 连接释放报文之后服务器收到了这个报文就进入了 CLOSE-WAIT 状态这个状态是为了让服务器端发送还未传送完毕的数据传送完毕之后服务器会发送 FIN 连接释放报文
**TIME_WAIT**
**TIME_WAIT**
客户端接收到服务器端的 FIN 报文后进入此状态此时并不是直接进入 CLOSED 状态还需要等待一个时间计时器设置的时间 2MSL这么做有两个理由
@ -102,13 +102,11 @@ TCP 使用超时重传来实现可靠传输:如果一个已经发送的报文
一个报文段从发送再到接收到确认所经过的时间称为往返时间 RTT加权平均往返时间 RTTs 计算如下
<div align="center"><img src="https://latex.codecogs.com/gif.latex?RTTs=(1-a)*(RTTs)+a*RTT" class="mathjax-pic"/></div> <br>
其中0 ≤ a 1RTTs 随着 a 的增加更容易受到 RTT 的影响。
超时时间 RTO 应该略大于 RTTsTCP 使用的超时时间计算如下:
<div align="center"><img src="https://latex.codecogs.com/gif.latex?RTO=RTTs+4*RTT_d" class="mathjax-pic"/></div> <br>
其中 RTT<sub>d</sub> 为偏差的加权平均值
# TCP 滑动窗口