如何通过DNS协议检测两台主机之间的网络延迟?

如何通过DNS协议检测两台主机之间的网络延迟?,dns,Dns,假设我在x点,有两个任意的主点,H1,H2。我可以通过ping获得H1和me之间的延迟,同样我也可以通过ping获得H2和me之间的延迟(因为有时间戳),问题是,如何使用DNS协议获得H1和H2之间的延迟 她的问题毫无意义 DNS用于将主机名(例如,google.com或sstatic.net)转换为IP地址(例如,64.233.169.104或69.59.196.213) 它与单个服务器的物理位置或网络连接无关 通常,无法远程确定两台任意服务器之间的链接速度。如果你可以连接到其中一台服务器并直

假设我在x点,有两个任意的主点,H1,H2。我可以通过ping获得H1和me之间的延迟,同样我也可以通过ping获得H2和me之间的延迟(因为有时间戳),问题是,如何使用DNS协议获得H1和H2之间的延迟

她的问题毫无意义

DNS用于将主机名(例如,
google.com
sstatic.net
)转换为IP地址(例如,
64.233.169.104
69.59.196.213

它与单个服务器的物理位置或网络连接无关


通常,无法远程确定两台任意服务器之间的链接速度。如果你可以连接到其中一台服务器并直接ping另一台服务器,你就可以通过这种方式获得它们的链接速度,但否则,这是不可能的。

她的问题毫无意义

DNS用于将主机名(例如,
google.com
sstatic.net
)转换为IP地址(例如,
64.233.169.104
69.59.196.213

它与单个服务器的物理位置或网络连接无关


通常,无法远程确定两台任意服务器之间的链接速度。如果您可以连接到其中一台服务器并使其直接ping另一台服务器,您可以通过这种方式获得它们的链接速度,但否则,这是不可能的。

首先,DNS绝对不能在此处提供任何线索。
编辑:[在格鲁德里格的评论之后]。。。除了与DNS消息的时间相关联的线索,以执行到这些服务器的往返。我所说的原始声明的意思是,DNS协议本身没有什么比HTTP、ICMP、FTP或任何可能导致服务器返回某些消息的协议更适合于此目的

第二,实现这一点的简单方法是直接在H1或H2上使用软件/访问,但我假设问题的实质是:

在不直接访问任何一台主机的情况下,我们如何估计H1和H2之间的延迟?

通过使用H1或H2和多个工作站(而不仅仅是一个工作站)之间的读数(计时和路线),可以进行估计。(以及在这些多个工作站之间建立路由)。

这个过程类似于在平面二维或三维欧几里德空间中寻找距离或位置的三角剖分,但当然要记住这一点

  • 网络路由是动态的(与几何图形中的线段不同)
  • 距离不是那么线性;-)
在特殊情况下,可以使用另一种估计此距离的可能技巧:
-如果H1或H2恰好是可以从第三个位置查询的服务器 和
-如果此服务器需要其他主机的服务来满足此请求

例如,如果H1是一个web服务器,它使用位于H2上的web服务生成特定的web页面。通过对H1的此类请求进行多次测量,并扣除H1和我们的工作站之间的距离/延迟,我们可能可以估计H1和H2之间的距离/延迟。我们需要小心避免

  • 为了平均许多因素,需要进行多次测量,包括该链的非网络部分(比如web服务器解析请求、处理一些数字所需的时间等等)
  • 考虑各种可能性,如可能的缓存等
  • 估计链的非网络相关部分

这种特殊情况的一种特殊情况是,如果碰巧H1[或H2]在第三点和H2[或H1]之间的路线上。在这种情况下,假设与traceroute关联的ICMP数据包在途中未被过滤/停止,那么简单的traceroute将回答这个问题。然而,这种情况相对不太可能…

首先,DNS绝对不能提供任何线索 编辑:[在格鲁德里格的评论之后]。。。除了与DNS消息的时间相关联的线索,以执行到这些服务器的往返。我所说的原始声明的意思是,DNS协议本身没有什么比HTTP、ICMP、FTP或任何可能导致服务器返回某些消息的协议更适合于此目的

第二,实现这一点的简单方法是直接在H1或H2上使用软件/访问,但我假设问题的实质是:

在不直接访问任何一台主机的情况下,我们如何估计H1和H2之间的延迟?

通过使用H1或H2和多个工作站(而不仅仅是一个工作站)之间的读数(计时和路线),可以进行估计。(以及在这些多个工作站之间建立路由)。

这个过程类似于在平面二维或三维欧几里德空间中寻找距离或位置的三角剖分,但当然要记住这一点

  • 网络路由是动态的(与几何图形中的线段不同)
  • 距离不是那么线性;-)
在特殊情况下,可以使用另一种估计此距离的可能技巧:
-如果H1或H2恰好是可以从第三个位置查询的服务器 和
-如果此服务器需要其他主机的服务来满足此请求

例如,如果H1是一个web服务器,它使用位于H2上的web服务生成特定的web页面。通过对H1的此类请求进行多次测量,并扣除H1和我们的工作站之间的距离/延迟,我们可能可以估计H1和H2之间的距离/延迟。我们需要小心
  H1------------------H2
   \                  /
    \                /
     \              /
      \            /
          x (me)