Session 如何使用tcpdump区分tcp连接的第一个fin数据包和第二个fin数据包?

Session 如何使用tcpdump区分tcp连接的第一个fin数据包和第二个fin数据包?,session,networking,tcp,tcpdump,Session,Networking,Tcp,Tcpdump,我正在开发一个http服务器。现在我想做一些统计,具体来说,我想知道客户端关闭了多少tcp连接,服务器关闭了多少tcp连接 我在http服务器上关闭了Keep-alive功能,因此正常情况下,服务器发送第一个FIN数据包,客户端发送第二个FIN数据包,这意味着服务器正常关闭连接。如果它们的顺序相反,则表示异常关闭,我关心这一点 问题是,如何使用tcpdump区分第一个FIN数据包和第二个FIN数据包?因为它们都设置在FIN和ACK标志位中 提前感谢,新年快乐 我正在通过ssh隧道连接到我的Web

我正在开发一个http服务器。现在我想做一些统计,具体来说,我想知道客户端关闭了多少tcp连接,服务器关闭了多少tcp连接

我在http服务器上关闭了Keep-alive功能,因此正常情况下,服务器发送第一个FIN数据包,客户端发送第二个FIN数据包,这意味着服务器正常关闭连接。如果它们的顺序相反,则表示异常关闭,我关心这一点

问题是,如何使用tcpdump区分第一个FIN数据包和第二个FIN数据包?因为它们都设置在FIN和ACK标志位中


提前感谢,新年快乐

我正在通过
ssh
隧道连接到我的Web服务器,它正在5000/tcp上侦听。我运行了会话的
tcpdump
,即使忽略时间戳,仍然很清楚谁从TCP源端口号发送了什么

05:42:06.344592 IP localhost.5000 > localhost.37924: Flags [F.], seq 243, 
    ack 419, win 529, options [nop,nop,TS val 120830308 ecr 120830308], length 0
05:42:06.381872 IP localhost.37924 > localhost.5000: Flags [.], ack 244, 
    win 513, options [nop,nop,TS val 120830318 ecr 120830308], length 0
05:42:06.382504 IP localhost.37924 > localhost.5000: Flags [F.], seq 419, 
    ack 244, win 513, options [nop,nop,TS val 120830318 ecr 120830308], length 0
05:42:06.382535 IP localhost.5000 > localhost.37924: Flags [.], ack 420, 
    win 529, options [nop,nop,TS val 120830318 ecr 120830318], length 0
05:42:06.344592
,我的Web服务器从客户端确认字节,并设置
FIN
标志。我知道是Web服务器,因为源端口是5000。在现实世界中,更简单的是,你的源IP地址就泄露了它


05:42:06.382504
时,客户端向服务器的
FIN
发送了一个ACK。同样,我们知道,因为源端口不是5000。

非常感谢。我没有清楚地提出我的问题。困难的是我有很多连接,不可能手动处理每个连接。因此,正确的标题应该是“如何使用tcpdump区分第一个fin数据包和第二个fin数据包,而无需人工干预”,在fin数据包到达列表或数组时记录它们(每个会话)。如果阵列为非零,则这是该会话的另一个FIN。