首页 > TCP协议 ACK Flag 仅仅存在于三次握手中吗?

TCP协议 ACK Flag 仅仅存在于三次握手中吗?

应该是我个人的错误观点:ACK flag仅用于三次握手之中。
但是这个一定是错误的,否则不可能出现wireshark抓包过程中出现的下面情况。

请教下,在建立了连接之后的ACK标志到底是干什么的。如果仅是为了确认的话,ACK number不是可以代替么,又或者如果是为了确认的话,为什么有些又没有出现ACK flag呢。


我们常说TCP连接是可靠的,其可靠性的表现就是即使在传输过程中丢包,TCP协议也能自动重传丢失的包,并保证所有数据包的顺序。重传其实就依赖于ACK。其实在每次发送数据包后,发送端会监听等待接收端发送一个ACK来表示其已经收到了数据,如果发送端在等待某个特定时间后(也就是重传超时)仍然没有收到接收端的消息,则发送端就开始重新传送那个数据包。所以,ACK并不单纯存在于握手中,还存在于整个数据传输中。


got it!是被wireshark骗了。其实每个tcp请求除了首次建立连接,都是有的,不过wireshark有些没有显示ACK标志而已。filter输入tcp.flags.ack==1,会发现所有的序号都是连续的。。

【热门文章】
【热门文章】