如何判断一个数据包是否是TCP Keep-Alive ?



Wireshark和Network Monitor为此提供了过滤器,但我想知道如何通过查看报头或有效载荷来推断数据包是TCP Keep-Alive还是Keep-Alive Ack。

TCP保持连接报文是一个ACK,其序列号被设置为小于1当前连接序列号

以下是Wireshark对keep-alive ACK的解释:

当下列所有条件都为真时设置:

  • 段大小为零。
  • 窗口大小非零且没有改变。
  • 当前序列号与下一个期望序列号相同。-当前确认编号与上次确认编号相同。
  • 最近看到的反向数据包是keepalive。
  • 非SYN、FIN、RST报文。

最新更新