我需要测量通过局域网进行通信并将结果报告给数据收集服务器的两个应用程序之间的单向延迟测量。
客户端应用程序使用多播发送数据,然后通过两个服务器,最后一个服务器是此测试的终点,如下所示:Agent -> multicast cloud -> server 1 -> server 2
我曾考虑过使用NTP(或LAN的PTP)来同步“代理”和“服务器2”,但是我想知道什么是实现此目标的正确算法,以及它的精度是多少。
如何执行此测量(使用C#)?它的精度是多少?
更新:请注意,数据正在代理程序和服务器2之间进行处理,因此该度量并非纯粹基于网络。
最佳答案
潜在的问题是在两台或更多台计算机之间同步时钟。
Synchronization (of clocks) between two remote computers
一旦有了它,您就可以在创建/发送数据包时简单地在数据包本身上添加“构造时间”。从开始到结束的单向延迟是“到达时间”减去“构建时间”
如果您不能信任中间节点,则必须在服务器上注册代理,以使其期望在特定时间发送数据包。那么从开始到结束的单向等待时间是“到达时间”减去“预期到达时间”
关于c# - 如何使用C#实现单向延迟测量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15177697/