1:重传计时器
在计时器到期前收到ack确认就取消该计时器,否则就重传该数据报
计时器时间应该大于数据在客户端和服务器一个来回的时间
2:坚持计时器
主要是因为tcp不会对收到的ack发出收到确认,即对ack的ack,这样就会有问题
client:滑动窗口为0,server请停止发送
server:收到,停止发送,等待client发送新的可用窗口
client:处理完一些数据,向server发送新的可用窗口,等待sever发送新的数据(server不会对此发出收到确认,如果此消 息丢失就会陷入死锁)
因此就需要坚持计时器,收到0窗口通知就不断发送试探数据报看是否有新的可用窗口 避免死锁出现
3:保活计时器
用一个计时器(两个小时),处理掉一些长时间没有通信的tcp连接保持活力,一旦有数据的收发就重置该计时器
4:坚持计时器
断开tcp连接时
A:向B发送FIN断开本次连接
B:收到FIN,向A发送ACK确认收到,为了防止此ACK丢失因此需要一个等待时间,用来重发可能丢失的ACK报文