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

发布于 2022-09-02 16:15:29 字数 313 浏览 7 评论 0

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

追风人 2022-09-09 16:15:29

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

酒绊 2022-09-09 16:15:29

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文