簡體   English   中英

如何用tcpdump從第二個tcp連接告訴第一個fin包?

[英]How to tell the first fin packet of tcp connection from the second with tcpdump?

我正在開發一個http服務器。 現在我想做一些統計,具體來說,我想知道客戶端關閉了多少個tcp連接,以及我的服務器關閉了多少個。

我在我的http服務器上關閉了保持活動功能,所以正常情況是我的服務器發送第一個FIN數據包而客戶端發送第二個數據包,這意味着我的服務器正常關閉連接。 如果它們的順序相反,則表示關閉異常,我關心。

這是一個問題,如何通過tcpdump告訴第二個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 ,我的網絡服務器從客戶端確認了字節並設置了FIN標志。 我知道它是網絡服務器,因為源端口是5000.在現實世界中,它更容易,你的源IP地址就讓它消失了。

05:42:06.382504 ,客戶端向服務器的FIN發送了ACK。 我們再次知道,因為源端口不是5000。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM