tcpdump时间戳中的时间单位

时间:2012-08-08 20:07:59

标签: python timestamp tcpdump scapy

在Scapy(使用tcpdump捕获数据包)中,我从我发送的数据包和从中获取的ICMP回复中提取时间戳。

>>> icmpPacket.time
1344448836.482289
>>> dataPacket.time
1344448832.707281
>>> RTT = icmpPacket.time - dataPacket.time
>>> RTT
3.775007963180542

这里的时间单位是多少?我怎么能在几秒钟内完成它?

1 个答案:

答案 0 :(得分:2)

时间单位为seconds since the UNIX epoch(1970年1月1日00:00:00 UTC)。根据您的需要,使用timedatetime模块来解释这些模块。后者是一个更高级别的模块。

示例:

>>> import datetime
>>> icmpstamp = datetime.datetime.fromtimestamp(1344448836.482289)
>>> icmpstamp
datetime.datetime(2012, 8, 8, 20, 0, 36, 482289)
>>> print icmpstamp
2012-08-08 20:00:36.482289
>>> datastamp = datetime.datetime.fromtimestamp(1344448832.707281)
>>> datastamp
datetime.datetime(2012, 8, 8, 20, 0, 32, 707281)
>>> print datastamp
2012-08-08 20:00:32.707281
>>> difference = icmpstamp - datastamp
>>> difference
datetime.timedelta(0, 3, 775008)
>>> print difference
0:00:03.775008

因此,您的RTT值已经是两个时间戳之间的差异,以秒为单位。