bash – tcpdump返回数据包之前的一秒延迟

使用Ubuntu,我正在尝试将tcpdump嗅探与来自客户端设备的自识别“ping”同步.问题是,通过看起来像tcpdump中的内置延迟,获得精确的启动和停止变得困难.这是我脚本的关键线:
sudo timeout .5s tcpdump -i wlan0 -e

当我设置超时以停止tcpdump之后,比如半秒(如我的例子中所示),不返回任何数据包.实际上,低于1.1s的任何值都不能返回数据包(而1.1和更长的工作时间非常好).

我已经尝试添加-n参数来抑制DNS,但这没有任何区别.我还尝试了两个完全不同的wifi卡(英特尔迅驰和TP-Link N900),以确保它不仅仅是一个硬件“功能”.

我不是开发人员,但我在tcpdump源代码搜索“延迟”,“延迟”和“超时”,但似乎没有出现任何负责任的东西.

有任何想法吗?

gnu coreutils timeout.c对没有timer_settime()的系统有一个回退 – 它将恢复为单秒分辨率:
/* timer_settime() provides potentially nanosecond resolution.
setitimer() is more portable (to Darwin for example),but only provides microsecond resolution and thus is
a little more awkward to use with timespecs,as well as being
deprecated by POSIX.  Instead we fallback to single second
resolution provided by alarm().  */

也许这就是你的问题.我不运行ubuntu所以我不能直接检查,但例如我的openbsd机器只有setitimer(),所以它只会使用全秒超时

– 编辑:在第二次看它仍然应该等待至少1秒,除非它的四舍五入…或者某种程度上tcpdump正在获得早期的sigterm……也许在这段时间内没有包裹?

相关文章

普通模式 >G 增加当前行到文档末尾处的缩紧层级 $ 移动到本行的末尾 . 相当于一个...
原文连接: https://spacevim.org/cn/layers/lang/elixir/ 模块简介 功能特性 启用模块 快捷键 语言专属...
原文连接: https://spacevim.org/cn/layers/lang/dart/ 模块简介 功能特性 依赖安装及启用模块 启用模...
 =   赋值操作符,可以用于算术和字符串赋值 +        加法计算     -        减法运算...
1.根据包名来查看指定的APP指定数据 adb shell "top | grep com.xxx.xxx" 由于这样打印出来的数...
ctrl+F 向下翻页 ctrl+B 向下翻页 u 取消最近一次操作 U 取消当前行的操作 ZZ 保存当前内容并退出 gg 跳...