为什么三手鲨的ack packed没有sequence number?
why ack packed don't have sequence number when three hand shark?
我用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
我知道:如果条件允许,ack包将包含在其他包中,其中包含一些payload.But为什么在第三步的第三步有效负载为空时,ack包没有序列号- 方式握手?
我的问题是:为什么在三次握手的第三步中ack包没有序列号?
成功的握手通信总是有一个序列号,但实际上,在这种情况下,tcpdump
默认不显示相同的。
您可以通过在命令中添加 -vv 或 -vvv 来启用相同功能,以便从可用选项中获得更详细的输出。以下是包含 tcpdump
手册中相关详细部分描述的屏幕截图:
序列号并没有丢失,只是默认情况下,tcpdump 不会在所有数据包中显示它。
如果您使用 tcpdump -S -vvv
或 hexdump 之类的东西,您将看到预期的序列号出现在所有段中。
我用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
我知道:如果条件允许,ack包将包含在其他包中,其中包含一些payload.But为什么在第三步的第三步有效负载为空时,ack包没有序列号- 方式握手?
我的问题是:为什么在三次握手的第三步中ack包没有序列号?
成功的握手通信总是有一个序列号,但实际上,在这种情况下,tcpdump
默认不显示相同的。
您可以通过在命令中添加 -vv 或 -vvv 来启用相同功能,以便从可用选项中获得更详细的输出。以下是包含 tcpdump
手册中相关详细部分描述的屏幕截图:
序列号并没有丢失,只是默认情况下,tcpdump 不会在所有数据包中显示它。
如果您使用 tcpdump -S -vvv
或 hexdump 之类的东西,您将看到预期的序列号出现在所有段中。