c# - 如何确定网络应用程序的上行/下行延迟

标签 c# asp.net javascript web-applications

我正在尝试弄清楚如何计算通过网络应用程序(Javascript)到.net网络服务的请求的延迟。

目前,我基本上尝试同步客户端和服务器时间,当访问网络服务时,我可以查看偏移量(这将准确显示“向上”延迟。

问题是 - 当您同步时间时,您还必须考虑延迟。因此,目前我正在对同步请求(往返)进行计时并除以 2,试图获得“向上”延迟……然后相应地修改同步。

这是基于延迟对称的假设,但事实并非如此。有谁知道一个程序能够专门确定 JS http 请求到 .net 服务的上/下延迟?如果需要多次握手也没关系,只要尽可能准确即可。

谢谢!!

最佳答案

老实说,我认为这是一项艰难的任务,或者说是不可能的。

您可能可以做很多事情来或多或少地接近您想要的。我可以看到两种方法来解决这个问题:

  1. 使用 NTP 之类的工具来同步时钟并使用绝对时间戳。这将相当容易,但当然只有当您同时控制服务器和客户端时才有可能(您可能不这样做)。
  2. 尝试做出有根据的猜测:)这将与您现在正在做的事情类似。也许 ping 可以提供一些帮助?

以下文章可能会提供一些额外的想法:A Stream-based Time Synchronization Technique For Networked Computer Games .
主要是建议进行多次测量并丢弃“异常值”。但如果我理解正确的话,最终它与您当前的实现并没有那么远。

否则,有一些学术 Material 可用于更具理论性的方法(我的意思是,首先阅读一些内容)。这些是我发现的一些东西:Time Synchronization in Ad Hoc NetworksA clock-sampling mutual network time-synchronization algorithm for wireless ad hoc networks 。或者您可以查看 NTP 协议(protocol)。

不过我还没有读过这些:)

关于c# - 如何确定网络应用程序的上行/下行延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2871230/

相关文章:

javascript - Facebook同一窗口身份验证

javascript - Appscript 中的授权请求 header

c# - snk 与代码签名证书

java - 通过删除 PRIME ASCII 字符来打印字符串

c# - Pex - 测试 'Type' 参数

ASP.NET CORE 2.1 FromRoute 和 FromBody 模型绑定(bind)

c# - 在 ASP.NET (C#) 中创建动态 RSS 提要页面 - 我需要做任何额外的事情吗?

c# - 使用 TD.NET 运行 NBehave 纯文本场景

c# - AutoMapper 无法使用 ASP.NET Core 将 List<Model>(1 项)转换为 List<DTO>(0 项)

javascript - 无法从正文中删除填充 (ios) - Cordova