1. TCP_CA_Recovery状态到TCP_CA_Open状态
从TCP_CA_Recovery状态到TCP_CA_Open状态的条件:
当snd_una >= high_seq时 : 表示重传队列中的skb全部被重传并得到了ACK,可以开始正常数据传输了,且snd_cwnd值保持原值不变,按当前状态进行增长
注:
high_seq:snd_nxt at onset of congestion, 拥塞开始时, 准备发送的下一个数据的序列号值
snd_una: First byte we want an ack for, 对于发出的数据,都需要对方的ACK,这里标示当前需要被确认的第一个字节。因为接受到数据包,就知道本地要发送的数据包seq, 等于snd_nxt=acked_req, 当回复该数据包以后,就 snd_una=snd_nxt了
2. 调用流程
3. 其他状态跳转
点击如下:
TCP状态跳转