假设在节点 A 可以 PING 通节点 B 且节点 B 可以 PING 通节点 A 的情况下,从节点 A 看 PING 节点 B 的延迟和从节点 B 看 PING 节点 A 的延迟一定是一样的吗?
1
asyqm 2021-07-05 10:58:14 +08:00
感觉不一定一样吧。网络双向速度不一定是对称的。如果同样规模的网络拥堵+非对称速度,那延迟就不一样了。
|
2
745839 2021-07-05 11:02:39 +08:00
不一定。虽然互通,但是,A 去 B 的路由,和 B 去 A 的不一定一样,延时也会根据链路开销有关系。
|
3
myd 2021-07-05 11:11:47 +08:00
楼上说的有道理。
网络是动态的: 1. A -> B 的路由会变,B -> A 的路由也会变。 2. 网络拥挤程度也是动态的。 如果来回链路一样,没有网络拥挤,延迟应该是一样的。 |
4
HB9527 2021-07-05 11:13:46 +08:00
不一定一样啊,来回的路由(线路)可能不同。
|
5
aitaii 2021-07-05 11:26:37 +08:00
得看 A 到 B 的路由,B 到 A 的路由,可以用 tracert 看一下
|
6
40EaE5uJO3Xt1VVa 2021-07-05 11:31:11 +08:00
不一样,来回线路不同,ping 结果也不会一样。BGP 动态路由 /负载均衡了解一下
|
7
xJogger 2021-07-05 11:32:28 +08:00 via Android
国庆的前几天的时候,一般是进景点堵,出景点不堵。
网络上也有类似的现象。 另外就是 ping 走的协议和开网页走的协议不一样,所以 ping 的速度和开网页的速度也可能不一样。 个人粗浅理解,欢迎指正。 |
8
CRVV 2021-07-05 11:40:29 +08:00
ping 测的是来回的时间不是单程的时间,和来回链路一不一样没关系。
另外测量单程时间需要两边先对表,ping 根本没有这种高端功能。 > 从节点 A 看 PING 节点 B 的延迟和从节点 B 看 PING 节点 A 的延迟一定是一样的吗 跑一次 ping,基本上每个包的延迟都不一样,所以你要怎么定义 “一定一样” ? 只能说两个方向上用 ping 的测出来的时间是数据包经过了相同的路径花的时间。 但中间的路由器也许会做一些操作让这两种情况的数据包通过的路径不一样。 所以说这些都是没谱的事情,答案当然是不一定一样 |
9
raaaaaar 2021-07-05 11:57:05 +08:00 via Android
了解下分组交换,互联网不是像电线网那样是电路交换,线路不建立连接,所以每次走的路由都可能不一样
|
10
no1xsyzy 2021-07-05 12:25:38 +08:00
你就是同样 A > ping B 都会不一样。
还有路由协议启动较慢的问题,第一次 ping 可能延迟比之后高得多。 除此以外,还可能遇到软件造成的不同延迟。比如 A 在硬件层面**响应** ICMP,B 在软件层面**响应** ICMP,那就会造成差异。A ping B 会往 B 的 CPU 走一圈。 @CRVV 因为相对论的关系,光速造成延迟还少的对表是科学上没有实证意义的行为,工程上是如何宽松限制的? |
11
zhoudaiyu OP @asyqm #1
@745839 #2 @myd #3 @hungrybirder #4 @aitaii #5 @yanzhiling2001 #6 @xJogger #7 @CRVV #8 @raaaaaar #9 @no1xsyzy #10 学到了很多,谢谢大家!如果假定 A 到 B 和 B 到 A 的路由是一样的,A 和 B 硬件和软件性能是相同的,且整个链路只有 A 和 B 两台节点,那是不是 A->B 和 B->A 的延迟近乎就是相同的了? |
12
no1xsyzy 2021-07-05 13:08:50 +08:00
@zhoudaiyu 要科学上准确地描述的话,应当是叫「简并」
你做的是测量而不是计算,测量是有误差和不确定度的。除此以外的话,你确实可以说 『 A ping B 和 B ping A 测量的是两个简并的实量』 包括在同一个交换机下接 N 个设备,这 N 个设备间互 ping 也是简并的。 |
13
aqqwiyth 2021-07-05 13:09:00 +08:00
没有其他干扰的话, 理论上讲是一致的
|
14
jorneyr 2021-07-05 13:29:39 +08:00
网络有上下行之别
|
15
nicetoomeetyou 2021-07-05 13:44:22 +08:00
@zhoudaiyu 网络会有波动, 不可能相同。
|
16
120qwer 2021-07-05 14:32:18 +08:00
这是结果,不太清楚是不是想要的:
<a href="https://imgtu.com/i/R4P7Cj"><img src="https://z3.ax1x.com/2021/07/05/R4P7Cj.md.png" alt="R4P7Cj.png" border="0" /></a> |
17
twllz 2021-07-05 14:57:31 +08:00
> 如果假定 A 到 B 和 B 到 A 的路由是一样的,A 和 B 硬件和软件性能是相同的,且整个链路只有 A 和 B 两台节点,那是不是 A->B 和 B->A 的延迟近乎就是相同的了?
大致相同,但还是会有差别。即使路由完全对称,路由器前往不同方向的 buffer 里面,排队长度(拥塞程度)也会不一样,从而排队延迟也会有区别。这个差别是可大可小的。 |
18
manfred4527 2021-07-05 15:13:21 +08:00
不考虑太大的网络环境和负载均摊的话,理论上是一样的
|
19
CRVV 2021-07-05 15:20:05 +08:00
@no1xsyzy
这个和狭义相对论没关系。 狭义相对论是说在两个存在相对运动的参照系上分别测量一段时间,得到的结果不一样。 比如坐一个速度为 0.99c 的飞船,从地球飞到火星,在地球上放一个表,在火星上放一个表,在飞船上也放一个表,得到三个结果。 地球上的表测出来的结果和火星上的表相同,它俩和飞船上的表的结果不同。 地球和火星相对运动速度不接近光速,可以忽略相对论的效应,所以这两边可以分别测量飞船用的时间得到相同的结果。 和广义相对论就更没关系了吧。 |
20
CRVV 2021-07-05 15:24:27 +08:00
@zhoudaiyu
> 如果假定 A 到 B 和 B 到 A 的路由是一样的,A 和 B 硬件和软件性能是相同的,且整个链路只有 A 和 B 两台节点,那是不是 A->B 和 B->A 的延迟近乎就是相同的了? 如果整个链路只有两个节点,这个网络里就没有路由的事情了,两台机器直连。 这个问题本身其实没什么意义,从北京开车去上海的时间和从上海开车去北京的时间是不是一样? 如果是问 ping 的时间,从北京去上海再开回北京,从上海开车去北京再开回上海,这两个的时间是不是一样? |
21
cubecube 2021-07-05 22:33:23 +08:00
短时期来看,其实应该基本一样,可以开两个虚机对 ping 来看。
|
22
dreamage 2021-07-05 22:46:58 +08:00
要看 A B 是 192.168.0.1&2 还是一个在 CN 另一个在 US……
|
23
no1xsyzy 2021-07-06 00:33:46 +08:00
@CRVV https://zh.wikipedia.org/wiki/相对同时
同时性之相对性:发生在空间中不同位置的两个事件,它们的同时性并不具有绝对的意义,我们没办法肯定地说它们是否为同时发生。若在某一参考系中此两事件是同时的,则在另一相对于原参考系匀速运动的新参考系中,此两事件将不再同时(唯一的例外为新参考系的移动方向恰好垂直于两事件空间位置的连线方向)。 这是狭义相对论的推论之一。 |
24
AllenHua 2021-07-06 00:47:23 +08:00 via iPhone
得看两个 network 的差别多大,如果之间路由跳数很少,那么很可能一样。但如果 a 主机在大陆,b 主机在加拿大,那么两个延迟几乎一定不一样,因为网络路由不一样。几乎一定不一样(而不是你说的一定一样)
|
25
flynaj 2021-08-05 01:32:03 +08:00 via Android
局域网就是一样的了,互联网上大多数时候不一样,一个是去来路径不一样,另外一个带宽不对称也不一样,典型的宽带上下行不对等。
|