TCP重传机制:
⚠️ 第一次发送的ACK不算冗余,后面再发的3个同样的ACK才是冗余ACK,接收端收到3个同样的ACK,发现是冗余ACK,触发快速重传。
发送方总共发送了4次确认ACK
异常情况的检测与采取措施。
可以连发多个报文段,进行累积确认。
当接收到数据,首先进行差错检测; 若数据正确,返回确认;错误则不进行响应确认.
若数据丢失,如何解决?
发送方每发送一个报文段,就启动一个重传定时器。
若报文段出错,发送方在超时重传时间RTO内未收到确认,定时器超时,重传报文段。
若确认丢失,如何解决?
若确认丢失,发送方定时器超时重传;接收方通过数据包的序号判断接收到重复数据包,丢弃该包,返回确认。
发送方:每次发送一个数据包,就会启动一个重传定时器,如果在规定的时间内,没有收到相应的确认信息,立即重传; 接收方:当收到一个正常包,返回确认;当收到错误包,不响应;当收到序号重复的包,丢弃,返回确认;
确认丢失的特殊情况
累积确认在超时前到来。
关键是在超时1以前收到,就无需重传了;如果在超时1之后收到确认,仍要重传,超时1超时2超时3不同 总结:tcp的差错控制:每传送一个报文段就启动一个重传定时器,若正常,确认一定会在超时之前到来,如果超时则重传,接收方对于重复的数据丢弃