有沒有覺得前兩天的網慢了?“512k”事件惹的禍

jopen 11年前發布 | 5K 次閱讀 網絡

        北京時間 2014 年 8 月 12 日下午 4 點鐘開始,全世界的網絡突然都變慢了一點點。

        不幸的是,接下來還可能又會慢下去。并且,這一回錯的真的不是你,是世界。

        錯在哪呢?路由規則太多,溢出了。

        不夠用的地址

        你很可能見過譬如 192.168.1.1 這樣的數字串,這樣的數字就是所謂的“IP 地址”。這是你平常訪問的那些網站的“真實地址”,當你輸入 www.guokr.com(這叫“域名”)的時候,網絡會把它轉換成真正的地址 111.13.57.142,然后才能找到這個網站在哪里。如果這個轉換系統(也就是所謂的“DNS”)出了問題,那網絡就要出問題——不過不是這次這種 問題,打住。

        常見的 IP 地址里的數字是有規定的:四個數字,每個可以從 0 到 255,這被稱為“IPv4”(互聯網協議第四版)。那么一共就會有2^32 次方個不同的地址,也就是將近 43 億。

        ……好像不是很多的樣子。都不夠一人分一個呢。

        而且這 43 億地址還有不少是保留的,比如所有以 9 開頭的原則上都是 IBM 的,12 開頭的都是 AT&T的,17 開頭的則是蘋果的,18 開頭的歸麻省理工……沒辦法,誰叫人家搶得早。有些厚道的組織,比如斯坦福,本來占據了所有 36 開頭的,現在正把多余的地址拿出來回饋社會,但人并不都這么好心啊。

有沒有覺得前兩天的網慢了?“512k”事件惹的禍
2012 年 4 月一次 IPv4 地址普查顯示的使用情況,黑色代表沒有數據,其他顏色代表使用率。由于調查方法問題,實際占用率肯定會比圖中看起來更高。圖片來源:Internet Census 2012 

        所以那幫技術人員實在太目光短淺了?這還真不是,IPv4 協議誕生于 1981 年,早在 80 年代末他們就預料到了這個不夠用的問題,可是新一代協議 IPv6——可以提供 3.4×10^38 個地址——直到 1998 年才出臺。

        技術人員終于克服了拖延癥,接下來?當然是剩下所有人開始犯拖延癥。IPv6 到現在整整十六年過去了,互聯網上使用 IPv6 的人數嘛——大概4% 吧。(該數值基于訪問 google 的人統計,考慮到中國這個神奇國度的存在,真實數字絕對更低。)

有沒有覺得前兩天的網慢了?“512k”事件惹的禍
The ISP Column 發布的 IPv6 使用用戶占各國用戶的比例圖(2013 年 6 月)。別被顏色騙了,像法國那么綠,其實不過 5.46%。好玩的是,用戶比例最高的竟然是羅馬尼亞,10.84%。

        耍花招的后果

        為了推遲 IPv4 擠爆的同時又不去辛辛苦苦換新協議,我們在抓緊時間利用每一點殘存的 IP 空間碎片。以前大手大腳一整塊幾萬地址分給一個組織的好日子一去不復返了,就連一小撮 256 個地址都要寸土必爭。

        但是這對路由器來說就辛苦了。路由器依靠一個名為“路由表”的東西來快速找到方向,每一個機構拿到一段 IP 之后都會希望在路由表里加一句規則來加快自己的訪問速度。但是每一條規則都要占據同樣大小的空間,所以網上的地址越碎,需要的路由表就越大。

        路由表是個很重要的東西,所以路由器會專門留出一塊高速存儲器來存它。譬如某款路由器足夠存一百萬個條目,想來應該是足夠了吧!而且眼看 IPv6 必將征服市場,我留一半(512k)給 v4,另一半給 v6,怎么說都沒問題吧!事實上大部分路由器生產商都想當然認為 512k 足夠用了,都給 v4 留了這么多,算是行業標準。

        不幸的是,對于互聯網碎片化的程度,他們顯然(又)低估了。

        多年的增長已經讓路由表突破了 50 萬大關,而在 8 月 12 日,美國通信公司 Verizon 又一口氣往 v4 路由表里加了 15000 個條目,使總數抵達了約 515000 個,超過了上限(相比之下,v6 還只有可憐的 2 萬個條目)。這些多出來的信息必須存在更慢的普通存儲器里,導致了速度變慢甚至局部網絡不穩定。Verizon 很快發現了這個問題并把多出來的條目削了回去,但是余波至少持續了數小時。這個事件就是所謂的“512k”事件,也許就是你那天覺得網絡慢了的元兇。

        但這不是問題的結束,只是開始。怎么說路由表都是肯定要自然增長的,沒有這些公司亂搞也早晚會自己超過這個數字。而這些問題都出在路由器這個實打實的東西上,換路由器可是要花錢的。

        誠然,我們可以繼續拆東墻補西墻,來一次廣泛的固件升級,把更多的快速存儲器留給 v4;而代價可想而知,就是進一步削減了留給 v6 的空間。要是早用 v6 取代 v4,IP 地址夠用的話,現在就不會出現地址碎片化、路由表過大的問題了嘛!不過考慮到 ie6 頑強生存了 13 年到現在沒有消失,連百利無一害的純軟件更新都做不到,好像也不應該對人類抱太大希望才對。

        事實上,想想之前人們還以為內存 640k 就足夠,兩位數字存儲年份就足夠,32 位儲存秒數就足夠,現在又一個想當然的上限被突破帶來了麻煩,簡直就是理所應當的事情嘛。(編輯:Ent)

有沒有覺得前兩天的網慢了?“512k”事件惹的禍
當然,早晚有一天 IPv6 也會用光,那時候嘛……

        本文寫作過程中得到了 Philip_Tzou 的大力幫助,特此致謝。

來自: 果殼網
                    <span id="shareA4" class="fl">                            
                        </span> 

</div>

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!