![为什么 RIP(路由信息协议)使用 15 跳的跳数?](https://linux22.com/image/1328612/%E4%B8%BA%E4%BB%80%E4%B9%88%20RIP%EF%BC%88%E8%B7%AF%E7%94%B1%E4%BF%A1%E6%81%AF%E5%8D%8F%E8%AE%AE%EF%BC%89%E4%BD%BF%E7%94%A8%2015%20%E8%B7%B3%E7%9A%84%E8%B7%B3%E6%95%B0%EF%BC%9F.png)
我正在阅读距离矢量协议 RIP 之一,并且知道它使用的最大跳数是 15 跳,但我的疑问是为什么使用 15 作为最大跳数,为什么不是其他数字 10、12 或者可能是 8?
答案1
这是创建 RIP 时的一个设计决策: https://www.rfc-editor.org/rfc/rfc1058:
选择一个特定的度量值来表示无法到达的
目的地;该度量值大于
我们期望看到的最大有效度量。在现有的 RIP 实现中,使用的是 16。这个值通常被称为“无穷大”,因为
它大于最大有效度量
以及为什么是16:
现在您应该明白为什么选择“无穷大”尽可能小
。如果网络完全无法访问,我们希望
尽快停止计数到无穷大。无穷大
必须足够大,以至于没有真正的路由那么大。但它
不应该比要求的更大。因此,无穷大的选择
是在网络大小和计数到无穷大时收敛速度之间的权衡。RIP 的设计者认为,对于直径 大于 15 的
网络,该协议不太可能实用。
最大值 15 与保存度量的字段大小无关 - 实际上是 4 个字节(最大值:2^32-1):https://www.rfc-editor.org/rfc/rfc1723
总结:人们曾经认为 16 足够大,可以表示无穷大,这使得 15 成为最大的可能网络直径(跳数)。
答案2
因为在计算中,二进制形式用于存储数字。在这种情况下,四位二进制数的最大值为 15(1111)。所以他们保留了四位数字来计算跳数。在他们开发 RIP 时,这似乎足够了。
进一步了解二进制系统的工作原理: