距离和数据包传播时间之间的关系

对于从A点到B点的数据包所需的时间,是否有理论上的估计? 比如每百公里100毫秒? 我想估计设备从不同位置向服务器发送请求所需的时间差异。

这几乎是不可能实现的,因为有许多事情会影响请求所花费的时间。

  1. 物理边界(又称介质):例如,理论上铜的速度电磁波传播本身与光速接近,但信号可能受到电磁波,电缆质量,距离,电阻等的干扰,这可能导致数据包必须重新发送
  2. 两者之间的节点数量:根据源和目的地之间存在多less个节点,时间会增加,因为每个节点必须处理数据包(例如路由它们,减lessttl等)
  3. 计算节点的时间:你不知道一个节点处理一个数据包的速度有多快,它也取决于当前的负载,它可以转发你的数据包有多快
  4. 您无法确定您的数据包将采用哪种路由:如果通过Internet发送2个数据包,则无法确定它们将采用相同的路由,因为只需将节点始终将数据包转发到路由上最快可用的其他节点。 如果两个节点之间的节点发生故障,您的数据包将重新路由到另一个节点。

但是,您可以使用traceroute或ping等工具来确定所需时间。 例如,您可以每2秒发送一次ping,并计算最近10次测量的平均值。

基本上每一次我知道的关键服务只使用ping(特别是video游戏等)。

延迟取决于:

  • 运输介质types(玻璃,铜,空气)
  • 您在path上拥有的设备的数量和types
  • networking饱和

您可以计算特定通信介质的一定距离的最小延迟时间,但难以预测饱和度或知道您无法访问的设备的延迟时间。

等待时间受到光速的限制。 通常数据包通过光纤传输,其速度约为光速的三分之二。