我有一台机器以恒定速率(每x毫秒发送一台)向另一台机器发送数据包。我需要测量每个数据包的单向延迟。 一个想法可能是让第一台机器记录它发送第一个数据包的时刻,一旦完成所有传输,让第二台机器知道它,这样它就可以计算从该值开始的每个数据包的延迟。
我在这里需要任何特定的同步吗?我不知道这是否会在我的测量中产生相当大的误差。
- 向目标发送 10k 个单向数据包。
- 向目标发送"已完成"消息
- 带有"全部收到"的目标回复
- 回复到达后,您知道花了多长时间
由于需要确认消息,测量中会出现微小的系统误差,但误差会很小。在现实世界的延迟下,它完全有效。计算出的延迟为:(a*10000+a+b)/(10000+1+1)
。对于a
~b
这个词就变成了a
。
或者,严格同步时钟(困难)和发送时间戳。