你声明你需要:
您可以通过筛选来识别特定的TCP或UDP会话 连接的5元组:
正如Shane所说,这与协议有关,例如ICMP没有这个概念 像TCP和UDP这样的端口。
像下面这样的libpcap过滤器适用于TCP和UDP:
tcp and host 1.1.1.1 and port 53523 and dst ip 1.1.1.2 and port 80
用tcpdump应用它:
$ tcpdump -nnr myfile.pcap 'tcp and host 1.1.1.1 and port 53523 and dst ip 1.1.1.2 and port 80'
要识别第一个已完成的连接,您必须遵循时间戳。
使用像Bro这样的工具来读取PCAP会产生答案,因为它会列出每个连接 尝试看到(完整或不完整):
$ bro -r myfile.pcap $ bro-cut -d < conn.log | head -1 2014-03-14T10:00:09-0500 CPnl844qkZabYchIL7 1.1.1.1 57596 1.1.1.2 80 tcp http 0.271392 248 7775 SF F ShADadfF 14 1240 20 16606 (empty) US US
使用TCP的标志数据来判断是否有成功的握手和拆除。 对于其他协议,您可以根据发送和接收的字节数进行判断。
识别第一个完成的通信是高度协议特定的。您使用过滤器走在正确的轨道上。如果您的协议是常用协议,则有一些称为协议分析器和过滤器的插件可以从pcap数据流中找到“对话”。如果您知道大致的开始时间和结束时间,那么也会缩小范围。