我用tcpdump看三人握手。客户端端口为51484,服务器端口为9501。
//connect to server
//three-way handshake
51484 > 9501 : Flags [S], seq 2969626801
9501 > 51484: Flags [S.], seq 587835665, ack 2969626802,
51484 > 9501 : Flags [.], ack 587835666 // <- why the ack don't
// have sequence number ?
//close the connect
51484 > 9501 : Flags [F.], seq 2969626802, ack 587835666
9501 > 51484: Flags [F.], seq 587835666, ack 2969626803
51484 > 9501 : Flags [.], ack 587835667我知道:如果条件允许的话,在别人的包中会包含一些payload.But为什么在三方握手的第三步,当有效载荷为空时,ack数据包没有序列号?
我的问题是:,为什么在三次握手的第三步中,ack数据包没有序列号?
发布于 2017-05-29 14:45:11
在成功的握手通信中总是有序列号,但实际上,在这种情况下,默认情况下tcpdump并不显示相同的序列号。
您可以通过在命令中添加-vv或-vvv来启用相同的功能,以便从可用选项获得更详细的输出。下面是包含tcpdump手册相关详细部分描述的屏幕截图:

发布于 2021-11-17 08:24:45
序列号没有丢失,只是默认情况下,tcpdump不会在所有数据包中显示它。
如果您使用类似于tcpdump -S -vvv或十六进制的内容,您将看到所有片段中都存在预期的序列号。
https://stackoverflow.com/questions/44243481
复制相似问题