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

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

内容简介:在用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简化了显示


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

查看所有标签

猜你喜欢:

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

编程语言

编程语言

图科 / 李德龙 / 清华大学 / 2008-1 / 68.00元

本书第1版自1999年出版以来,编程语言的研究已得到迅猛发展。为此,新版尽量贴近现今的发展趋势,以适应当前和未来编程语言设计过程中所伴随的新挑战。本书除了进一步提高了4种程序设计范型及其所用的语言的广度和深度外,还大大丰富了关于语言设计原理的内容,并新增了如Python、Perl这类编程语言的例子。本书主要结构第一部分:原理。第2、4、5、7、9章分别讲述了编程语言的5个核心原理(语法、名称、类型......一起来看看 《编程语言》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具