说说 TCP 的重传机制?

重传包括四种:超时重传、快速重传、带选择确认的重传(SACK)和重复SACK(D-SACK)。

超时重传

超时重传是TCP协议保证数据可靠性的机制之一。发送方在发送数据后启动一个计时器,在一定时间内如果没有收到数据报的ACK确认,就会重新发送数据,直到发送成功为止。超时时间一般设置为稍微大于往返时间(RTT)的时间。

快速重传

快速重传是TCP的一种机制,它是基于接收端的反馈信息来引发重传的。当接收方收到连续的重复ACK时,表明有某个报文段可能丢失,发送方就会快速重传该报文段,而不必等待超时重传。

带选择确认的重传(SACK)

带选择确认的重传(SACK)是TCP的一种机制,它在快速重传的基础上引入了选择确认的概念。当接收方发现有多个连续的数据包丢失时,可以返回一个最近收到的报文段的序列号范围,发送方根据这个范围来确定哪些数据包需要进行重传。

重复SACK(D-SACK)

重复SACK(D-SACK)是在SACK机制的基础上进行扩展,用于告知发送方某些数据包的重复接收情况。D-SACK的目的是帮助发送方判断是否发生了包失序、ACK丢失、包重复或伪重传,以便TCP可以更好地进行流量控制。

总结:超时重传是基于时间驱动的重传机制,快速重传是基于数据驱动的重传机制,SACK和D-SACK是在快速重传基础上引入的选择确认和重复确认机制,用于更准确地指示发送方需要重传的数据包。

标签: java, Java面试题, Java问题合集, Java编程, Java问题精选, Java常见问题, 计算机网络, 计算机网络面试题