我目前正在調查網絡流量。在這裏,我想找出哪個客戶端與哪個服務器對話。顯然,我可以看看第一個數據包,看看:短暫的端口對話夥伴分辨率
PartyA:38531 ===request===> PartyB:80
PartyB:80 ===response==> PartyA:38531
PartyA:38531 ===request===> PartyB:80
PartyB:80 ===response==> PartyA:38531
PartyA:38531 ===request===> PartyB:80
PartyB:80 ===response==> PartyA:38531
因此,PartyA向Web服務器(PartyB)請求一些東西。 隨機選擇PartyA的港口(https://en.wikipedia.org/wiki/Ephemeral_port)。 但是如果數據包捕獲沒有捕獲到第一個數據包呢?所以第一個數據包是:
PartyB:80 ===response==> PartyA:38531
....
我怎麼能夠找出誰是服務器,誰是客戶端?是否有像例如「臨時端口必須高於靜態端口」或類似的東西?但是,那麼當一個高於61000的港口會發生什麼?
我想分析去往特定服務器和來自某個主機的流量。但是如果一個新的連接出現一個新的臨時端口會怎麼樣?有沒有辦法找出服務器是誰,客戶是誰?
希望我的問題是明確的:) 預先感謝
「_如果在客戶端和服務器之間只有一個會話,那麼誰是服務器和誰是客戶端就沒有關係......」的確如此。 TCP甚至沒有客戶端/服務器的概念。這是同行之間的聯繫。客戶機/服務器是一個應用層概念。 –
由於我有很大的流量文件,我發現,我也可以查找0x2 tcp標誌(SYN)並記錄建立連接時使用的所有端口。之後,我有一個「服務」端口列表。此外,http://stackoverflow.com/questions/37271660/big-graph-in-memory/37272260能夠生成最常見的端口列表,同時刪除臨時端口。 – mutilis