我通過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
,我的網絡服務器ACK'd從客戶端的字節,並設置FIN
標誌。我知道這是網絡服務器,因爲源端口是5000.在現實世界中,它甚至更容易,單獨的源IP地址就可以讓它消失。
在05:42:06.382504
客戶端發送一個ACK到服務器的FIN
。再次,我們知道,因爲源端口不是5000.
非常感謝。我沒有清楚地提出我的問題。困難的是我有很多連接,並且不可能手動處理每個連接。所以正確的標題應該是「如何從第二個使用tcpdump告訴第一個fin數據包,而不需要人工干預」 – kekaoyunfuwu 2012-01-10 03:55:05
當它們到達列表或數組時,記錄FIN數據包(每個會話)。如果該數組不爲零,則這是該會話的另一個FIN。 – 2012-01-10 06:28:41