TCP协议 ACK Flag 仅仅存在于三次握手中吗?
应该是我个人的错误观点:ACK flag仅用于三次握手之中。
但是这个一定是错误的,否则不可能出现wireshark抓包过程中出现的下面情况。
请教下,在建立了连接之后的ACK标志到底是干什么的。如果仅是为了确认的话,ACK number不是可以代替么,又或者如果是为了确认的话,为什么有些又没有出现ACK flag呢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我们常说TCP连接是可靠的,其可靠性的表现就是即使在传输过程中丢包,TCP协议也能自动重传丢失的包,并保证所有数据包的顺序。重传其实就依赖于ACK。其实在每次发送数据包后,发送端会监听等待接收端发送一个ACK来表示其已经收到了数据,如果发送端在等待某个特定时间后(也就是重传超时)仍然没有收到接收端的消息,则发送端就开始重新传送那个数据包。所以,ACK并不单纯存在于握手中,还存在于整个数据传输中。
got it!是被wireshark骗了。其实每个tcp请求除了首次建立连接,都是有的,不过wireshark有些没有显示ACK标志而已。filter输入tcp.flags.ack==1,会发现所有的序号都是连续的。。