Wireshark和Network Monitor为此提供了过滤器,但我想知道如何通过查看报头或有效载荷来推断数据包是TCP Keep-Alive还是Keep-Alive Ack。
TCP保持连接报文是一个ACK,其序列号被设置为小于1当前连接序列号
以下是Wireshark对keep-alive ACK的解释:
当下列所有条件都为真时设置:
- 段大小为零。
- 窗口大小非零且没有改变。
- 当前序列号与下一个期望序列号相同。-当前确认编号与上次确认编号相同。
- 最近看到的反向数据包是keepalive。
- 非SYN、FIN、RST报文。