
我正在閱讀距離向量協議 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 時,這似乎就足夠了。
進一步閱讀有關二進制系統如何運作的內容: