我想以低时间分辨率(以毫秒为单位)而不是默认的微秒获得 tcpdump。
在 tcpdump 手册中,我得到了-j精度可接受的参数为“ host_lowprec ”和“ host_hiprec ”
tcpdump -i any -n -j host_lowprec "tcp"
Run Code Online (Sandbox Code Playgroud)
我有两个问题:
host_lowprec = ? 精度和 host_hiprec = ? 精确
我可以将精度设置为毫秒或纳秒吗?如果是,如何?
小智 5
回答你的第一个问题:
tcpdump 手册页说明了该-j选项:
-jtstamp_type
--time-stamp-type=tstamp_type
将捕获的时间戳类型设置为tstamp_type。用于时间戳类型的名称在pcap-tstamp(7) 中给出;并非所有列出的类型都对任何给定的接口都有效。
pcap-tstamp(7) 手册页说:
... 这里列出了时间戳类型;第一个值是
#define要在代码中使用的,第二个值是由 返回pcap_tstamp_type_val_to_name()和接受的值pcap_tstamp_type_name_to_val()。
PCAP_TSTAMP_HOST-host
进行捕获的主机提供的时间戳。此时间戳的精度未指定;它可能会或可能不会与主机操作系统的时钟同步。
PCAP_TSTAMP_HOST_LOWPREC-host_lowprec
进行捕获的主机提供的时间戳。这是一个低精度时间戳,与主机操作系统的时钟同步。
PCAP_TSTAMP_HOST_HIPREC-host_hiprec
进行捕获的主机提供的时间戳。这是一个高精度的时间戳;它可能会或可能不会与主机操作系统的时钟同步。获取可能比PCAP_TSTAMP_HOST_LOWPREC.
PCAP_TSTAMP_ADAPTER-adapter
正在执行捕获的网络适配器提供的时间戳。这是一个高精度时间戳,与主机操作系统的时钟同步。
PCAP_TSTAMP_ADAPTER_UNSYNCED-adapter_unsynced
正在执行捕获的网络适配器提供的时间戳。这是一个高精度的时间戳;它与主机操作系统的时钟不同步。
既不指定host_lowprec也不host_hiprec指定精确的精度。精密镶有-j确实不影响时间戳存储在捕捉文件的方式; 它们将存储为秒和微秒,除非您有支持该--time-stamp-precision选项的更新版本的 tcpdump并且操作系统可以提供纳秒时间戳,在这种情况下,它们将存储为秒和纳秒,并且文件将具有不同的“魔法” number”,以便 tcpdump/Wireshark/etc. 可以正确读取时间戳。
所有-j选项控制微秒(或纳秒)值的重要程度。
回答你的第二个问题:
没有将 pcap 文件中的时间存储为秒和毫秒的机制,也没有明确的选项要求微秒(或纳秒)值只有 3 个有效数字。
存在是一个选项,以请求该时间标记被存储为秒和纳秒。如果您正在进行实时捕获,则只有在操作系统支持在捕获时提供秒和纳秒时间戳时,这才有效;这目前仅适用于较新版本的 Linux。
你想在这里完成什么?
| 归档时间: |
|
| 查看次数: |
7155 次 |
| 最近记录: |