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

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

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


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

查看所有标签

猜你喜欢:

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

程序设计语言

程序设计语言

斯科特 / 裘宗燕 / 电子工业出版社 / 2005-1 / 88.00元

这是一本很有特色的教材,其核心是讨论程序设计语言的工作原理和技术。本书融合了传统的程序设计语言教科书和编译教科书的有关知识,并增加了一些有关汇编层体系结构的材料,以满足没学过计算机组织的学生们的需要。书中通过各种语言的例子,阐释了程序设计语言的重要基础概念,讨论了各种概念之间的关系,解释了语言中许多结构的形成和发展过程,以及它们演化为今天这种形式的根源。书中还详细讨论了编译器的工作方式和工作过程,......一起来看看 《程序设计语言》 这本书的介绍吧!

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

在线图片转Base64编码工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

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

HEX HSV 互换工具