File tree Expand file tree Collapse file tree 1 file changed +11
-2
lines changed Expand file tree Collapse file tree 1 file changed +11
-2
lines changed Original file line number Diff line number Diff line change @@ -206,7 +206,7 @@ PS:一般定时器设定的时间都会大于一个 RTT 的平均时间。
206206
207207### 快速重传  
208208
209- 一旦接收端收到的报文出现失序的情况,接收端只会回复最后一个顺序正确的报文序号(没有 sack  的情况下)。如果收到三个重复的 ACK,无需等待定时器超时再重发而是启动快速重传。具体算法分为两种
209+ 快速重传一般和快恢复一起出现。 一旦接收端收到的报文出现失序的情况,接收端只会回复最后一个顺序正确的报文序号(没有 Sack  的情况下)。如果收到三个重复的 ACK,无需等待定时器超时再重发而是启动快速重传。具体算法分为两种: 
210210
211211** TCP Taho 实现如下** 
212212
@@ -218,4 +218,13 @@ PS:一般定时器设定的时间都会大于一个 RTT 的平均时间。
218218
219219-  拥塞窗口减半
220220-  将阈值设为当前拥塞窗口
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