以下文字说明了这一点,我不能完全同意:
客户端 C 向服务器 S 发送请求 R。通信链路通过该链路传输 R 所花费的时间为 D。P 是 S 接收、处理和回复 R 所需的最长时间。如果假设遗漏失败;那么如果在 2(D+P) 内没有收到对 R 的回复,那么 C 将永远不会收到对 R 的回复。
为什么这里的时间是 2(D+P)。据我了解,它不应该是 2D+P 吗?
以下文字说明了这一点,我不能完全同意:
客户端 C 向服务器 S 发送请求 R。通信链路通过该链路传输 R 所花费的时间为 D。P 是 S 接收、处理和回复 R 所需的最长时间。如果假设遗漏失败;那么如果在 2(D+P) 内没有收到对 R 的回复,那么 C 将永远不会收到对 R 的回复。
为什么这里的时间是 2(D+P)。据我了解,它不应该是 2D+P 吗?
通过超时检测由于进程崩溃或由于通信链路故障而导致的遗漏故障。
但是在异步系统中,超时仅表明进程没有响应。由于繁重的处理负载,另一个进程可能已经崩溃或只是变慢了。
所以通常作为超时,我们选择一个最大时间段。所以这可能是 the2(D+P)
而不是你的 strict 2D+P
。最大时间允许考虑网络变得拥塞,因此响应返回速度变慢/过程中的处理速度变慢以及处理响应的时间R
客户端从传入缓冲区读取消息并进行处理需要将其传递到应用程序级别。
因此,我无法准确地告诉您书中的公式中的哪些帐户,但我可以告诉您,尽管在超时时我们并不像您期望的那样严格。