微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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……也许在这段时间内没有包裹?

原文地址:https://www.jb51.cc/bash/385520.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐