- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在创建一个软件交换机,作为一个学校项目。它是使用 lpcap 用 C 语言实现的,并且在我的 Ubuntu 机器上运行良好(尽管有一些错误)。不过我有一台 Mac,但它无法正常工作。
使用 pcap_next_ex() 捕获帧时,捕获的帧数会增加。由于某种原因,在最初几秒(5 到 30)内,它不会增加帧数,就像没有收到帧一样,但我可以在 Wireshark 中看到这些帧。这怎么可能?
如果有兴趣,这里是我的代码。 https://github.com/Horkyze/Software-switch
最佳答案
For some reason during first few seconds (5 to 30) it doesn't increment number of frames, like no frames were received,
或者更确切地说,就像没有帧从捕获机制传递到 libpcap 一样。
由于您没有设置超时,因此将使用默认超时。恰好是0;超时行为取决于平台且未定义,对于使用 BPF 的系统(例如 OS X(以及 *BSD 和 Solaris 11)),该行为是“不要将数据包从捕获机制传递到用户区,直到没有数据包”内核数据包缓冲区中下一个数据包的空间”,这意味着接收帧和将其传递到用户态之间的延迟可以是任意长的。
Apple 的 pcap_set_timeout()
手册页对此更加强调(我将更改标准 libpcap 手册页以表达相同的内容:
The behavior, if the timeout isn't specified, is undefined. We recom-
mend always setting the timeout to a non-zero value.
鉴于应用程序名称中的“开关”,您可能根本不希望任何超时,而是希望“立即模式”。在立即模式下,使用 pcap_set_immediate_mode()
而不是 pcap_set_timeout()
设置,数据包一到达就会传送到用户模式。
这也适用于 Ubuntu(包括立即模式,如果它是足够新的 Ubuntu 版本,并且具有具有立即模式的 libpcap 版本)。请注意,在内核版本足够新以实现 TPACKET_V3 且 libpcap 版本足够新以使用 TPACKET_V3 的 Linux 系统上,行为可能与内核或 libpcap 不执行的 Linux 版本有很大不同t 执行 TPACKET_V3,因此在任何操作系统上设置超时都是一个好主意。
关于c - pcap - 未接收流量 [OS X、El Capitan],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34011043/
关闭。这个问题不符合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运行) 最佳答案 您应
我是一名优秀的程序员,十分优秀!