2010-05-26 102 views

回答

9

这真的很简单。只需从pcap获得的以太网帧,并从它们中提取IP数据包,重新组装所有碎片。然后,根据序列号从IP数据包重新排列TCP段,注意丢弃任何重复的数据。然后,将该流处理为HTTP流。当然,HTTP不会进入数据包;它是一个应用层协议,但是我相信,一旦你完成了所有这些其他工作,这将是显而易见的。在你做所有这些事情时,请注意IP头和TCP段的校验和,以确保你的数据是正确的。另外,如果pcap发生错过任何数据包,请确保您正确处理此问题。

为了帮助你前进的Linux TCP stack,因为它在内核中出现应提供简明参考这一进程。

+1

谢谢!我明白了:) – Ishi 2010-05-27 12:27:53

5

而不是重新组装流youself,您可以使用tcptrace重新组装PCAP文件。我相信-e会做到这一点。

一旦你有一体的应用层数据,可以应用简单的HTTP报头解析.... Perhps从文库例如http://github.com/ry/http-parser

+0

谢谢乔......如果我自己做不到,我会尝试这些工具。再次感谢 ! – Ishi 2010-05-27 12:29:37

2

从pcap文件重新构建http内容的最佳工具是justniffer。它使用Linux内核的prtion进行IP分片和TCP分组重新处理。