超时重传概念
超时重传:发送方每发送一个数据包,就会为这个数据包设置一个超时时间,如果在时间内没收到应答这个数据包的ACK包,需要重新发送这个数据包;每次重传后,RTO会成倍增加,且重传次数有上限
超时重传时间
RTT:数据发送时刻到接收到确认的时刻的差;也就是包往返时间
RTO:超时重传时间
1.RTO较大:重传发生的慢,丢了很久才重发,效率低,性能差
2.RTO较小:可能导致数据包还没丢就重发,会增加网络拥塞,导致更多的超时,更多的超时会导致更多的重发
所以,RTO应该略大于RTT
快重传
快重传:发送方提前确认数据包的丢失,立刻重传该数据;
触发原则:当发送方收到3个冗余的ACK后,立刻重传该数据包
什么是SACK方法
SACK选择性确认
这种方式需要在TCP头部【选择】字段里添加SACK方法,他可以将已收到的数据的信息发送给发送方,这样发送方就可以知道哪些数据收到了,哪些没收到,这样就可以只重传丢失的数据;
什么是Duplicate SACK
Duplicate Sack又称D-SACK,其主要是使用SACK来告诉发送方有哪些数据被重复接收了