一、ACK定义
TCP协议中,接收方成功接收到数据后,会回复一个ACK数据包,表示已经确认接收到ACK确认号前面的所有数据
ACK字段长度为32位,能表示0~2^32-1之间的值
二、ACK作用
发送方在一定时间内没有收到服务端的ACK确认包后,就会重新发送TCP数据包。发送方收到了ACK,表明接收方已经接收到数据,保证了数据的可靠达到
三、ACK机制
接收方在接收到数据后,不是立即会给发送方发送ACK的。因为:
1、收到数据包的序号前面还有需要接收的数据包。因为发送方发送数据时,并不是需要等上次发送数据被ACK就可以继续发送TCP包,而这些TCP数据包到达的顺序是不保证的,这样接收方可能先接收到后发送的TCP包(注意提交给应用层时是保证顺序的)
2、为了降低网络流量,ACK有延迟确认机制
3、ACK的值达到最大值后,又会从0开始