[tcp] tcpdump抓包第三次握手ack数值为1

栏目: 服务器 · 发布时间: 7年前

内容简介:在用tcpdump抓包时,发现前面两次握手的seq和ack能对应起来,但是第三次由客户端发起的确认ack值为1,抓了各种端口的tcp包发现都是这样,一开始还以为是tcp协议有变化,最终发现是应该是tcpdump的显示问题直接tcpdump命令即可,如果更详细点的信息,可加-v不过跟当前复现内容没有太多关系第一行100.116.251.137端口53686向10.0.0.15端口81发起了SYN主动连接的请求,seq为413886776

在用tcpdump抓包时,发现前面两次握手的seq和ack能对应起来,但是第三次由客户端发起的确认ack值为1,抓了各种端口的tcp包发现都是这样,一开始还以为是tcp协议有变化,最终发现是应该是tcpdump的显示问题

tcpdump抓包复现

直接tcpdump命令即可,如果更详细点的信息,可加-v不过跟当前复现内容没有太多关系

14:29:06.049398 IP 100.116.251.137.53686 > 10.0.0.15.81: Flags [S], seq 413886776, win 29130, options [mss 1942,sackOK,TS val 2047175890 ecr 0,nop,wscale 9], length 0
14:29:06.049406 IP 10.0.0.15.81 > 100.116.251.137.53686: Flags [S.], seq 1511062036, ack 413886777, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0
14:29:06.049711 IP 100.116.251.137.53686 > 10.0.0.15.81: Flags [.], ack 1, win 57, length 0
14:29:06.050075 IP 100.116.251.137.53686 > 10.0.0.15.81: Flags [P.], seq 1:20, ack 1, win 57, length 19
14:29:06.050087 IP 10.0.0.15.81 > 100.116.251.137.53686: Flags [.], ack 20, win 115, length 0
14:29:06.050107 IP 10.0.0.15.81 > 100.116.251.137.53686: Flags [P.], seq 1:184, ack 20, win 115, length 183
14:29:06.050118 IP 10.0.0.15.81 > 100.116.251.137.53686: Flags [F.], seq 184, ack 20, win 115, length 0

第一行100.116.251.137端口53686向10.0.0.15端口81发起了SYN主动连接的请求,seq为413886776

第二行10.0.0.15.81端口81向100.116.251.137端口53686发起了SYN请求,seq为1511062036,注意ack是413886776+1=413886777

那么以上两次都没什么问题,正常的握手

问题出在第三行,本来按照三次握手,最后确认,ack应该是第二次握手的seq+1,也就是1511062036+1=1511062037,这才是正确的ack,但tcpdump抓包的显示是1

利用wireshark分析

于是将tcp包抓到本地,利用wireshark来分析下看看能否找到答案

抓包命令

tcpdump -w test.cap

[tcp] tcpdump抓包第三次握手ack数值为1

上面这张图就是三次握手的包在wireshark,前三行封包就是三次握手,发现在wireshark里面seq从0开始,其实seq也不是0,可以看下面的具体值。不过第三次握手依然显示ack=1

通过wireshark逐行分析

第一行

[tcp] tcpdump抓包第三次握手ack数值为1

seq:82 dc ee f2

ack:0

第二行

seq

[tcp] tcpdump抓包第三次握手ack数值为1

ack

[tcp] tcpdump抓包第三次握手ack数值为1

seq:7c d5 55 21

ack:82 dc ee f3

ack的值刚好是第一行的seq+1

第三行

[tcp] tcpdump抓包第三次握手ack数值为1

ack:7c d5 55 22

结语

看到这里就明白了,第三次握手的ack虽然在tcpdump显示为1,但是值是第二行的seq+1

因此不是tcp三次握手协议变了,应该是tcpdump简化了显示


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Scrum敏捷软件开发

Scrum敏捷软件开发

Mike Cohn / 廖靖斌、吕梁岳、陈争云、阳陆育 / 清华大学出版社 / 2010-11 / 69.00元

《Scrum敏捷软件开发》是敏捷联盟及Scrum联盟创始人之一、敏捷估算及计划的鼻祖Mike Cohn三大经典著作中影响最为深厚的扛鼎之作,也是全球敏捷社区中获得广泛肯定的企业敏捷转型权威参考。作者花四年时间,把自己近十五年的敏捷实践经验,特别是近四年中针对各种敏捷转型企业的咨询和指导工作,并结合旁征博引的方式,从更高的思想层次对敏捷与Scrum多年来的经验和教训进行深入而前面的梳理和总结,最终集......一起来看看 《Scrum敏捷软件开发》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器