使用抓包软件捕获的数据包能否在解析数据包后修抓包可以篡改数据包吗再被重新封装

好吧这个问题我自己来回答啦。

在linux系统上使用tcpdump抓包结束之后会提示:

简单来说, captured是tcpdump处理过之后得到的数据包数量,亦即最终获得的pcap文件中数据包数量; received是经过过滤器处理的所有数据包; dropped则是未经处理的数据包数量
received by filter的结果这取决于运行tcpdump的操作系统及其配置。如果指定一个过滤器,包无论是否被筛选器表达式匹配即使他们被筛选器表达式匹配,无论tcpdump是否读取和处理他们都会进行计算,即收到一个包received by filter会加1。如果sock的接收buffer被填满时则紦这个数据包丢弃,将dropped by kernel加1所以

解决办法也有一些,比如:
1、-n 参数禁止反向域名解析()
2、-s 参数,控制抓取数据包的长度
(采用更大的捕捉范围既增加了处理报文的时间,又相应的减少了报文的缓冲数量,可能导致报文的丢失尝试把snaplen设的尽量小,只要能够容纳需要的协议信息僦可以。)
3、将数据包输出到cap文件

方法1我试过了效果不理想。
方法2也试过了效果不错。但我本来就是要测抓包性能的肯定得把包抓铨啊,想想之后放弃了这个方案
方法3这个.....我本来就是输出到文件里的,但还是有丢包的问题所以好像并没有什么卵用。
方法4感觉有点複杂不过前面解释里也提到是因为缓冲区不够才导致的丢包,遂觉得这方法有门不过就是麻烦了一点。然后灵机一动我查到了tcpdump里有個-B参数可以修改缓冲区大小,哈哈!!

所以最后的解决办法就是:我使用-B参数修改了tcpdump的缓冲区大小!!!
这里要注意的是如果未指定 -B 选项那么缓冲区大小缺省为32768,既然这样我就乘二试了试-B 65535。
嘻嘻一下子什么丢包都飞走了~~

我要回帖

更多关于 抓包可以篡改数据包吗 的文章

 

随机推荐