在实验一的基础上,进行了一次window和ubuntu的文件传输实验,将ubuntu一个文件夹的内容传给windows,windows下使用SSH Secure File Transfer Client,然后在传输前启动这三个软件,结果如下
不能确定实际发包数,因为Libpcap会有很大的丢包率,但是它自己却不能显示出来丢了多少包,时下我又没有流量分析仪器,只能用软件模拟实验,有空把那个发包程序该成多线程的,在windows下发包,产生大流量。然后对比一下抓包数和发包数,就能知道libpcap的效率了,前面我翻译的一个文章关于提高被动数据包捕获的文章,采用的是PF_RING,有数据证明了libpcap的丢包的问题,还有一种类似的做法叫作内核零拷贝技术能提高捕获率。但是那实验是外国人做的,我们需要自己做一遍才能感到有依据。
图一snort的捕获结果
图二 tcpdump结果
图三不进行数据包处理的snort
softerware | received | dropped | analyzed |
snort | 106878 | 78495 | 28382 |
tcpdump | 106877 | 77224 | 29653 |
mysnort | 106877 | 581 | 0 |
表一
Mysnort只进行抓包,无任何分析,采用的是libpcap
说明在捕获上tcpdump和snort性能差不多,至于实验一可能是因为代码具有攻击性,tcpdump受到攻击所致,具体原因暂不清楚。
数据包的分析导致了丢包率的严重性,snort的丢包率达73.4%。至于网卡到内核段的丢包率就不达清楚了,有待进一步论证。
经过多次实验发现ftp文件传输snort和tcpdump丢包率都很高。性能差不多。
现在测试的目的主机都是192.168.0.1的,现在测试一下源主机是192.168.0.1的,就是来源于windows的包。
丢包率还是很高,这两个程序严重需要改进,丢包率那么高严重影响程序分析数据的准确性。