
為什麼互聯網工程任務組(IETF)選擇192.168/16
成為私人 IP 位址類別而不是其他?
為什麼特別是192.168/16
和10/8
和172.16/12
而不是145.243/16
例如?
與所有其他可能性相比,選擇這些 IP 位址作為私人 IP 位址的標準是否有原因?
答案1
我知道是誰選擇了這些地址範圍。不幸的是,他已經死了,所以我不能確切地問他為什麼他選擇了它們,但我可以做出一些明智的猜測。
在 20 世紀 90 年代中期互聯網真正開始起飛之前,網上約會並不多。網路的歷史主要存在於RFC它定義了它,它可以追溯到1969年,在阿帕網的開頭。透過它們,您可以看到互聯網的發展歷程,從由當時一些最傑出的人才設計的一些原始大型機組成的新興網絡,發展到我們今天幾乎無法想像沒有它的網絡。
這個答案幾乎完全來自那些 RFC,一小部分來自我在這個時代上網時的個人經驗。
首先,IETF 沒有選擇這些 IP 位址範圍或任何其他位址範圍。特殊用途位址的分配目前和一直以來的工作網路號碼分配機構。
IANA 一直是角色,而不是一個特定的組織,而且這個角色只易手一次。目前它由 ICANN 持有,但是從1972年開始直到他於 1998 年去世當組織成立以取代他時,IANA 本質上是一個人,喬恩‧波斯特爾。當然,他首先調用了這個角色套接字號沙皇, A他自己承擔了必要的任務因為它需要完成。他最終成為了幾乎所有可以分配的數字的沙皇:地址、協議號、端口,凡是你能想到的,很大程度上是因為他願意這樣做,到了互聯網出現的時候向公共商業開放他已經這樣做了20多年。他分配了號碼,網路註冊處(然後是 SRI-NIC,這是擴大到一個分散式註冊表集合全球範圍內)出版了它們。
SRI 的最後一個 RFC 顯示了互聯網位址分配列表RFC 1166從 1990 年開始。與它的前身相比RFC 1117顯示了互聯網在向公眾開放之前幾年的擴張速度。
所以,現在我們可以了解地址範圍了RFC 1918好一點。這其實是RFC的第二次修訂;第一個是RFC 1597,大約兩年前於 1994 年 3 月發表。RFC 1627,列出了當代反對私有位址空間的論點。 RFC 1627 也恰好提到了誰分配了這三個位址空間。
它們是由 IANA(即 Jon Postel)應 RFC 1597 作者的請求分配的,如果 RFC 1627 中的投訴可信的話,他是透過秘密管道而不是通常的公開流程進行分配的。您可以看到 RFC 1597 本身直接進入 RFC 狀態,無需通常前網路草案,所以它也透過後台管道獲得了批准,同樣是由 Postel 批准的,當時也是 RFC 編輯。因此,這個問題可能永遠無法得出結論性的答案。
現在至於他為什麼選擇這三個位址範圍,請讓我將您的注意力帶回 SRI 的 RFC 1166 和 1117,其中包含當時的 IP 位址範圍分配。在這兩個中,您會注意到網路 10 仍然分配給不復存在的阿帕網,其中有1990年關閉。作為 IANA 的 Postel 會知道該範圍不再使用並且可以重新分配。我認為 Postel 選擇了網路 10,因為他知道網路可用但未被使用。
同樣,我預計 Postel 選擇 192.168,因為當他做出選擇時,這是從前 C 類空間分配的下一個可用或幾乎下一個可用網路。這可能無法以某種方式得到證明,但 RFC 中顯示的地址分配速度強烈表明,在進行分配時,它們在 1993 年至 1994 年左右就處於這個大致附近。 (192.159 中的位址正在分配1992年。 192.160-192.167 期間沒有可用的分配日期,因為這些分配在某個時候被重新分配給 RIPE。
回答 172.16-172.31 的這個問題比較困難。我找不到任何證據表明為什麼選擇這個範圍。據我所知,前 B 級空間的作業還沒有達到那麼高。我只能推測 IANA 向飛鏢靶投擲飛鏢、擲骰子或以其他方式從他的下體區域中取出數字。
最後,關於喬恩·波斯特爾的註釋。儘管該RFC 的形成顯然是在沒有社區(初始)投入的情況下完成的,但我的意思並不是暗示(也不應被解釋為Jon Postel 以某種方式糟糕或不公平地履行了IANA 職責)。他是對早期互聯網影響最大的人之一,直到今天,每當你一睹互聯網的幕後機制時,你仍然會感受到這種影響,但他始終關心正確地完成工作。引用自一次回憶:
做管理和營運並沒有什麼榮耀。恰恰相反。人們會注意到做得不好的事情,但很少在做得好的時候給予讚揚。擔任行政職務的人常常成為小官僚。由於這份工作的回報很少,他們人為地把它當作權力的基礎。因此,一些聽到喬恩稱網路號碼為「沙皇」的人感到困惑。他們沒有意識到,社區授予喬恩這個頭銜是出於對喬恩為基本基礎設施服務帶來秩序的喜愛和深深的讚賞。特別是,社區在充分了解喬恩將他的職位視為一種信任,而不是作為個人權力的機會的情況下使用了該術語。我們一直知道他的觀點來自合法的信仰,我們從來不必擔心他在某種程度上考慮政治或個人利益。我們可能不同意他的觀點,但我們始終知道,首先是出於對做正確的事情的擔憂。
答案2
因為在當時有意義嗎? :-D
請記住,當分配專用 IP 位址範圍時,網路工程師必須解決幾個問題:當時一些功能最強大的路由器的 CPU 處理能力和 RAM 儲存量與當今的袖珍圖形計算器差不多,還有一些今天的路由器仍然圍繞著過去的路由器運行(我記得當時CPU 速度以千赫茲為單位測量,RAM 儲存以千位元組為單位測量,而不是像今天那樣以千兆* 為單位!)。網路發展迅速,IPv4地址空間是有限的,看起來到 2000 年左右就會用完,等等。因此,許多 IP 位址範圍已經分配,他們不想要求公司歸還 IP 位址範圍,以便他們可以將它們重新分配到私人範圍。他們還想讓公司盡可能輕鬆地與私有範圍合作——如果他們必須投入大量資金來使他們的網路能夠處理一到兩打範圍/IP,那麼很少有公司會合作。
誠然,這部分是我的猜測,但主要基於設置網絡的邏輯和經驗。二進位高位元為0xxxxxxx 的網路號碼為A 類別)、16 個B 類別(網路號碼為10xxxxxx 二進位)和256 個C 類別(網路號碼為110xxxx 二進位)位址。 B類和C類位址都應該是連續的,還有。 (16 和 256 的選擇可能部分是任意的——在做了一段時間之後,你傾向於開始思考 2 的冪——部分原因可能是因為它是可以找到的可用的以便預訂。
由此,他們可能從這些可用位址中選擇了最終範圍,這將允許路由器製造商對位址進行簡單的按位測試,以確定是否路由/轉送/丟棄封包。我還發現位元模式的一些屬性也有助於建立緊湊的 NAT 表。 10.xyz 位址是顯而易見的,因為它只需匹配一個網路號碼。 172.16.yz 到 172.32.yz 的模式是,如果您建立一個低四位交叉引用高四位的表,則整個範圍將填充表的一行,而不會分成兩行--也就是說,第二個八位元組始終是0001xxxx(二進位)。在192.168.yz中,168的二進位為10101000-即低三位始終為0,高5位交替為1和0。
雖然這些可能看起來是任意的,但如果您曾經做過任何機器語言編程或微代碼解碼,這些模式允許您僅測試幾個位元來做出私有/公共確定,而無需首先解碼整個 IP 位址。這將使路由器能夠快速處理此類位址,而無需在記憶體中維護大量的查找表。因此,路由器可以將專用網路封包推回到專用網絡,而無需先對其進行完全解碼,從而節省了路由器和網路速度的寶貴時脈週期。
如果您好奇,請研究一下串列資料傳輸(例如串口)處理資料的每個位元組:它一次只能以控制時鐘的速度發送/接收一位,並且通常以附加位(例如奇偶校驗位和“同步”位)來構建資料。嘗試一次計算整個位元組的奇偶校驗之類的東西會太耗時,因此,它在每個時脈週期維護一個特殊位元。此位元被移入/移出發送/接收暫存器的下一位修改。一旦整個位元組被發送/接收,奇偶校驗位中留下的值就已經是正確的,無需重新計算。這個概念或多或少是“在做其他事情的同時做工作”,對於串行晶片來說,它在發送/接收的同時計算奇偶校驗。對於路由器/交換機,如果它已經在位址的每一位從線路傳入時解碼了IP 位址,並且可能在封包完成從網路讀入之前就已經知道下一步將封包傳送到哪裡,那麼您可以獲得更高的性能電纜!
另外,這只是我基於 25 年從事此類工作的邏輯/猜測。我不知道我們是否會知道最終選擇數字背後的確切原因,因為我不記得任何論文/RFC/等。曾經給出完整的理由。我見過的最接近的只是一些評論,建議所選的範圍應該使公司能夠以最少的努力/投資/重新設計相對容易和高效地使用它們。
答案3
答案4
因為192在二進位中以11xxxxxx開頭,表示C級網路。它是以兩個連續 1 開頭的最小數字。 A 類的最高位元為 0,B 類的最高位元為 10。
RFC 1918它定義了私有 IP 範圍,並沒有澄清這一點,因此對於為什麼他們選擇 0.168 作為 16 位元區塊沒有明確的答案,但我認為這是因為 RFC 直到 1996 年才發布,經過已經進行了大量的登記。因為 192 是 C 類別分配中的第一個 8 位元區塊,所以很可能許多位址已經被佔用。 168可能是第一個可用的。
另請記住,其中一些選擇是任意的。請注意,rfc1918 B 類範圍是 172.16 - 172.31?我想不出 172 的原因,但我很確定他們選擇使用 16 個 B 類,因此他們有一個包含 100 萬個連續位址的區塊 (1048576)。
有時協議就是這樣。有人必須做出選擇,他們也做出了選擇。有一段時間,Linux 核心被限制為每個系統最多 1024 個 CPU,最終在一些超級電腦出現問題後,他們不得不發布補丁。無論是誰決定使用 1024,除了他需要一個值之外,可能沒有什麼充分的理由這樣做,而 1024 又好又圓。