- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个应用程序使用 libpcap
作为获取数据包的机制,我需要为应用程序的不同部分过滤掉不同的协议(protocol)。我需要考虑优化,因为流的流量很高 (100-400 Mbps)。
我真正希望能够做的是设置实时捕获(无过滤器),然后在捕获完成后有选择地过滤数据包。这似乎是不可能的(据我所知,bpf 内置于捕获机制中)。
如果这确实不可能,还有其他两种方法(我已经想到),我不确定哪种方法会被认为更有效或“更好”:
最佳答案
fifo 方法可能不是很有效,因为它涉及将大量内存从 A 复制到 B(例如 400mbps 缓冲 - 它们不能相互阻塞 - 到四个 fifo,每个都有不同的过滤器,决定抛出累积 1600mbps 的 99.99%)。另一方面,如果确实有事情要做,则多次捕获只会触发用户空间中的操作。过滤(通常)在内核中完成。
第三种方法是使用 libwireshark(Wireshark 的下部)进行过滤(并使用 wtap 进行捕获)。这涉及相当多的代码开销,因为 libwireshark 不完全适合第三方在 Wireshark 之外使用。
然而,这确实伴随着使用 Wireshark 的“显示过滤器”的能力,它被编译为字节码并且相当有效。许多过滤器可能编译一次,可能会一个接一个地看同一帧。您也许可以“堆叠”过滤器,例如“ip.tcp”表示“ip”。
如果您能够生成所有过滤器中最常见的元素并将其作为 BPF 过滤器放置在您的捕获设备上,这将变得非常有效。显示过滤器然后只查看可能至少其中之一感兴趣的数据。
关于linux - 执行多个 PCAP 过滤器的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18579216/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 5年前关闭。 Improve this qu
大家好,我如何收集 pcap 文件中每个数据包的数据包长度?非常感谢 最佳答案 我推荐一个很少有人知道的高科技方法:阅读文档。 man pcap 告诉我们实际上有两种不同的长度可用:
我在我的 linux 系统上安装了 pcap 库,但是当包含它时,我得到了错误 /usr/include/pcap/bpf.h:88:1: error: unknown type name ‘u_i
是否有任何简单的方法可以使用 tshark 为与特定日期时间范围相关的数据包创建 pcap 文件? , tcpdump或其他命令行工具? tshark -R与 frame.time看起来很有希望,但我
我有Tcpdump生成的“ .pcap”文件。我一直在寻找一种使用PHP读取文件中数据的方法。我尝试了几种可用的方法,但是我唯一能看到的是,有一些数据包带有针对每个数据包的时间戳记。我试图进一步阅读,
我有一个很大的 pcap 文件,我想生成一个仅包含前十分钟流量的新 pcap。我可以使用 tcpdump 执行此操作吗?我在网上看到过 editcap ,但如果可能的话我想使用 tcpdump 。 最
我有一个很大的 pcap 文件,我想生成一个仅包含前十分钟流量的新 pcap。我可以使用 tcpdump 执行此操作吗?我在网上看到过 editcap ,但如果可能的话我想使用 tcpdump 。 最
我从一个答案中阅读了文档: ntohs 函数采用 TCP/IP 网络字节顺序(AF_INET 或 AF_INET6 地址族)的 16 位数字,并以主机字节顺序返回一个 16 位数字。 请举例说明,什么
我有一堆通过 tcpdump 获得的 pcap 文件。我需要在所有文件中搜索特定关键字并记录哪些文件包含这些字符串。有没有办法使用 tcpdump 命令自动搜索这些关键字? 最佳答案 使用 tshar
我卡住了。 我使用 PCAP.NET 读取 .PCAP 文件并将数据包写入数据库。现在我可以查询数据库并取回与约束匹配的数据包。我需要一种方法将结果写入新的 .PCAP 文件。 问题是,据我所知,生成
我需要嗅探特定 Linux 用户 (UID) 的流量。我正在使用 iptables/NFLOG ( http://wiki.wireshark.org/CaptureSetup/NFLOG ) 来做这
作为我正在进行的实验室练习的一部分,有人问我; 使用 tcpdump 从 tcpdumpep1.pcap 读取数据包并过滤来自 IP 地址 184.107.41.72 和端口 80 的数据包。将这些数
有没有办法使用 Java 将 pcap-ng 文件转换为 pcap(不使用 editcap)? 我注意到一些 pcap 被读取为 .pcap 格式,但当我查看 Wireshark“摘要”时,它被识别为
已结束。此问题不符合 Stack Overflow guidelines .它目前不接受答案。 我们不允许提出有关书籍、工具、软件库等方面的建议的问题。您可以编辑问题,以便用事实和引用来回答它。 关闭
我正在用nodejs开发一个数据包捕获应用程序。 当我发出命令npm install pcap时,出现以下错误: 谁能帮我解决一下吗?谢谢 最佳答案 谢谢,这个( enter link descrip
我对JNetPcap很陌生,我仍在寻找它的方法,我正在尝试为我的项目构建一个数据包嗅探器,最近我正在尝试打印输出数据包信息通过附加我正在使用的 pcap.loop() 中的信息到 JTextArea
我有由 Tcpdump 生成的“.pcap”文件。我一直在寻找一种使用 PHP 读取文件中数据的方法。我已经尝试了几种可用的方法,但我唯一能看到的是有一定数量的数据包,每个数据包都有时间戳。我试图进一
如何确定通过 Makefile 编译/安装的 C 源代码中包含的 pcap.h 文件? 具体来说,它是一个通过以下方式安装的 Ruby 库 (pcaprub): ruby extconf.rb &&
运行“tcpdump -w 1.pcap”时需要限制文件大小。我尝试使用键“-C”来执行此操作,但是当我添加它时,我收到错误“权限被拒绝”。所以: > sudo tcpdump -w 1.pcap t
所以...我正在尝试使用RawCap捕获到本地主机的流量 当我运行rawcap时,它会在cmd提示符下报告数据包-但转储文件始终为空。 任何想法(我尝试使用admin privs运行) 最佳答案 您应
我是一名优秀的程序员,十分优秀!