我希望获得低时间分辨率(毫秒)的tcpdump,而不是默认的微秒。
在tcpdump手册中,我以可接受的精度获得了'host_lowprec‘和host_hiprec的-j
参数。
tcpdump -i any -n -j host_lowprec "tcp"
我有两个问题:
发布于 2014-09-03 20:06:44
在回答你的第一个问题时:
tcpdump手册页在谈到-j
选项时说:
-j
tstamp_type--time-stamp-type=
tstamp_type 将捕获的时间戳类型设置为tstamp_type。用于时间戳类型的名称是在pcap-tstamp(7)中给出的;并不是所有列出的类型对于任何给定的接口都是有效的。
而(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,并且操作系统可以传递纳秒时间戳,在这种情况下,它们将被存储为秒和纳秒,文件将具有不同的“魔术号”,以便tcpdump/Wireshark/等能够正确读取时间戳。
所有-j
选项控制的是多少微秒(或纳秒)值是重要的。
在回答你的第二个问题时:
在pcap中没有将时间存储为秒和毫秒的机制,也没有明确的选项要求微秒(或纳秒)值只有3个重要数字。
有一个选项可以请求将时间戳存储为秒和纳秒。如果您正在进行实时捕获,这将只有在操作系统支持在捕获时提供秒和纳秒时间戳的情况下才能工作;这目前只适用于较新版本的Linux。
你想在这里完成什么?
https://stackoverflow.com/questions/25619631
复制相似问题