TCP四种定时器
1) 重传定时器
作用:保证可靠性传输
解决:每发送一个报文段就会启动重传定时器,如果在定时器时间到后还没收到对该报文段的确认,就重传该报文段,并将重传定时器复位。如果在定时器时间内收到确认则撤销该报文段的重传定时器。
2) 坚持定时器
作用:主要用来解决零窗口大小通知可能导致的死锁问题。
死锁问题:如果接收端在向发送端发送了零窗口报文段后不久,接收端的接收缓存有了一定的存储空间,则向发送端发送一个非零窗口大小的报文段,然而这个报文段在传送过程中丢失了,发送端没有收到该报文段,就一直等待接收端发送非零窗口的报文通知,而接收端并不知道报文段丢失,而是一直等待发送端发送数据,这样就会发生死锁问题。
解决:TCP为每一个连接设置一个坚持定时器(持续计数器)只要TCP连接的一方收到对方的零窗口报文段,就启动坚持定时器。若坚持定时器设置的时间到期,就发送一个零窗口控测报文