Python 如何测量ARP请求的往返时间

Python 如何测量ARP请求的往返时间,python,time,arp,Python,Time,Arp,我编写了python脚本,将ARP请求从主机1发送到另一台主机(主机2、3、…、主机64),然后收到回复并通过Wireshrk捕获流量 from scapy.all import * eth = Ether(src='00:00:00:00:00:01', dst='ff:ff:ff:ff:ff:ff') arp = ARP(op=1, psrc="192.168.1.254", hwsrc="00:00:00:00:00:01",hwdst="ff:ff:ff:ff:ff:ff", pd

我编写了python脚本,将ARP请求从主机1发送到另一台主机(主机2、3、…、主机64),然后收到回复并通过Wireshrk捕获流量

 from scapy.all import *
 eth = Ether(src='00:00:00:00:00:01', dst='ff:ff:ff:ff:ff:ff')
 arp = ARP(op=1, psrc="192.168.1.254", hwsrc="00:00:00:00:00:01",hwdst="ff:ff:ff:ff:ff:ff", pdst="192.168.1.192/26")
 flood = eth / arp
 sendp(flood)
我知道RTT是发送ARP请求和接收ARP回复的时间,但我的误解是,当我发送64 ARP请求时,如何测量RTT

让我们设想一些情况:

1-发送1个ARP请求,信息如下表所示,这里我认为RTT是1秒,因为发送和接收ARP的时间是1秒

时间------发送方--接收方------协议--类型
0.000s---A----广播---ARP--请求
1.000s----B----A----ARP----回复

2-发送2个ARP请求,信息如下表所示,我不知道如何测量RTT

时间----发送方----接收方----协议----类型
0.000s---A----广播----ARP----请求
1.000s---B----A----ARP--回复
1.500s---A----广播----ARP----请求
2.500s---C---A---ARP----回复

3-我也不知道如何测量RTT,当我从主机1向主机2、3、4发送64个ARP请求时,以此类推


谢谢。

请提交您的代码以获得帮助。记录您发送ARP请求的时间,记录您收到ARP响应的时间。减去2个时间戳以找出差异,这将是您的RTT。现在-如果你有一个特定的问题,请清楚地说明问题是什么,并张贴你需要帮助或有问题的代码。谢谢@nos,我的问题是当我发送2个arp请求或3个arp请求时如何测量RTT?当我发送1个arp时,我减去2个时间戳来找出差异,但是当我发送2个、3个或4个arp时,我必须做什么?如果你发送了几个看起来100%完全相同的arp请求,那么你无法匹配请求和响应,你会遇到问题-不要这样做。在发送ARP请求之间至少需要一个合理的超时时间。但是,如果您针对不同的IP地址发送多个ARP请求,请将时间戳存储在例如由ARP请求中的“目标IP地址”索引的映射中-当收到ARP回复时,提取“发送方IP地址”在你的地图上查一下,我添加了代码