File tree 1 file changed +11
-2
lines changed
1 file changed +11
-2
lines changed Original file line number Diff line number Diff line change @@ -206,7 +206,7 @@ PS:一般定时器设定的时间都会大于一个 RTT 的平均时间。
206
206
207
207
### 快速重传
208
208
209
- 一旦接收端收到的报文出现失序的情况,接收端只会回复最后一个顺序正确的报文序号(没有 sack 的情况下)。如果收到三个重复的 ACK,无需等待定时器超时再重发而是启动快速重传。具体算法分为两种
209
+ 快速重传一般和快恢复一起出现。 一旦接收端收到的报文出现失序的情况,接收端只会回复最后一个顺序正确的报文序号(没有 Sack 的情况下)。如果收到三个重复的 ACK,无需等待定时器超时再重发而是启动快速重传。具体算法分为两种:
210
210
211
211
** TCP Taho 实现如下**
212
212
@@ -218,4 +218,13 @@ PS:一般定时器设定的时间都会大于一个 RTT 的平均时间。
218
218
219
219
- 拥塞窗口减半
220
220
- 将阈值设为当前拥塞窗口
221
- - 进入快速恢复阶段
221
+ - 进入快恢复阶段(重发对端需要的包,一旦收到一个新的 ACK 答复就退出该阶段)
222
+ - 使用拥塞避免算法
223
+
224
+ ### TCP New Ren 改进后的快恢复
225
+
226
+ ** TCP New Reno** 算法改进了之前 ** TCP Reno** 算法的缺陷。在之前,快恢复中只要收到一个新的 ACK 包,就会退出快恢复。
227
+
228
+ 在 ** TCP New Reno** 中,TCP 发送方先记下三个重复 ACK 的分段的最大序号。
229
+
230
+ 假如我有一个分段数据是 1 ~ 10 这十个序号的报文,其中丢失了序号为 3 和 7 的报文,那么该分段的最大序号就是 10。发送端只会收到 ACK 序号为 3 的应答。这时候重发序号为 3 的报文,接收方顺利接收个会发送 ACK 序号为 7 的应答。这时候 TCP 知道对端是有多个包未收到,会继续发送序号为 7 的报文,接收方顺利接收并会发送 ACK 序号为 11 的应答,这时发送端认为这个分段接收端已经顺利接收,接下来会退出快恢复阶段。
You can’t perform that action at this time.
0 commit comments