Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:计算RTT时的浮动精度_Python_Floating Point_Floating Accuracy - Fatal编程技术网

Python:计算RTT时的浮动精度

Python:计算RTT时的浮动精度,python,floating-point,floating-accuracy,Python,Floating Point,Floating Accuracy,使用tcpdump,我转储了大约2800个传出数据包的跟踪,以及与之对应的许多传入ICMP数据包。然后,我用一个简单的减法计算每个传出数据包的RTT 事实证明,即使在我的时间戳(传出、传入或甚至合并在一起!)中没有重复项,但在我的RTT中总是有几百个重复项。我觉得这很奇怪 它是否与浮点精度有关?我尝试了python内置的float和numpy,但得到了刚才描述的相同结果(我用python中的set检查了重复项) 编辑: 下面是一个RTT使用不同时间戳出现4次的示例 # a contains ti

使用
tcpdump
,我转储了大约2800个传出数据包的跟踪,以及与之对应的许多传入ICMP数据包。然后,我用一个简单的减法计算每个传出数据包的RTT

事实证明,即使在我的时间戳(传出、传入或甚至合并在一起!)中没有重复项,但在我的RTT中总是有几百个重复项。我觉得这很奇怪

它是否与浮点精度有关?我尝试了python内置的
float
numpy
,但得到了刚才描述的相同结果(我用python中的
set
检查了重复项)

编辑: 下面是一个RTT使用不同时间戳出现4次的示例

# a contains timestamps for outgoing packets
# b contains timestamps for incoming answers
# c contains corresponding RTTs (c[i]=b[i]-a[i])
OneRtt = 0.002665996551513672
>>> indices = [i for i, x in enumerate(c) if x == 0.002665996551513672]
>>> indices
[737, 1711, 2499, 2713]
>>> b[737]
1369237439.238884
>>> a[737]
1369237439.236218
>>> c[737]
0.002665996551513672
>>> b[1711]
1369237485.874826
>>> a[1711]
1369237485.87216
>>> c[1711]
0.002665996551513672
>>> b[2499]
1369237524.170485
>>> a[2499]
1369237524.167819
>>> c[2499]
0.002665996551513672
>>> b[2713]
1369237535.293074
>>> a[2713]
1369237535.290408
>>> c[2713]
0.002665996551513672

嗯,你确定你真的没有复制品吗?找出哪些差异是相同的。可能
a
b
c
d
都是唯一的值,但
d-c==b-a
。当然。我添加了一个RTT值在同一跟踪中出现4次的示例。我只是觉得很奇怪,在6位十进制数字的精度和重复…不超过几千(数据包,答案)对,我得到的RTT重复。不过,看起来正是这种情况。你们同意吗?是的,嗯。。。所有减法的结果为0.002666。以6位小数的精度来看,这种情况似乎经常发生。我怀疑您用于计时的时钟的精度仅为0.002666。