首页 文章

如何用tcpdump从第二个tcp连接告诉第一个fin包?

提问于
浏览
3

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

我在我的http服务器上关闭了保持活动功能,所以正常情况是我的服务器发送第一个FIN数据包而客户端发送第二个数据包,这意味着我的服务器正常关闭连接 . 如果它们的顺序相反,则表示关闭异常,我关心 .

这是一个问题,如何通过tcpdump告诉第二个FIN数据包?由于它们都设置在FIN和ACK标志位中 .

在此先感谢新年快乐!

1 回答

  • 2

    我正在通过 ssh 将连接隧道连接到我的网络服务器,该网络服务器正在侦听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 ,我的网络服务器从客户端确认字节并设置 FIN 标志 . 我知道它是网络服务器,因为源端口是5000.在现实世界中,它更容易,你的源IP地址就让它消失了 .

    05:42:06.382504 ,客户端向服务器的 FIN 发送了ACK . 我们再次知道,因为源端口不是5000 .

相关问题