有沒有覺得前兩天的網慢了?“512k”事件惹的禍
北京時間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開頭的,現在正把多餘的地址拿出來回饋社會,但人並不都這麼好心啊。
2012年4月一次IPv4地址普查顯示的使用情況,黑色代表沒有資料,其他顏色代表使用率。由於調查方法問題,實際佔用率肯定會比圖中看起來更高。圖片來源:Internet Census 2012
所以那幫技術人員實在太目光短淺了?這還真不是,IPv4協議誕生於1981年,早在80年代末他們就預料到了這個不夠用的問題,可是新一代協議IPv6——可以提供3.4×10^38個地址——直到1998年才出臺。
技術人員終於克服了拖延症,接下來?當然是剩下所有人開始犯拖延症。IPv6到現在整整十六年過去了,網際網路上使用IPv6的人數嘛——大概4%吧。(該數值基於訪問google的人統計,考慮到中國這個神奇國度的存在,真實數字絕對更低。)
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)
當然,早晚有一天IPv6也會用光,那時候嘛……
本文寫作過程中得到了Philip_Tzou的大力幫助,特此致謝。
相關文章
- 都是髒資料惹的禍
- 都是標量子查詢惹的禍
- 都是weblogic和ejb惹的禍Web
- 有沒有一兩萬的創業專案創業
- 有沒有一段程式碼,讓你覺得人類的智慧也可以璀璨無比?
- 天惹!還真的有淨營收為0的上市公司耶營收
- 城市擁堵加劇,都是網際網路快車惹的禍?
- 匯款兩天了,沒有寄帳號密碼???!!!密碼
- Javascript之其實我覺得原型鏈沒有難的那麼誇張!JavaScript原型
- UML已死?其實是敏捷惹的禍?敏捷
- 都是指標資料成員“惹的禍”指標
- 6S被曝"複製貼上"有問題 3D Touch惹禍?3D
- 《仁王2》沒有簡單模式,但會讓玩家覺得更公平模式
- 我們並沒有覺得MapReduce速度慢,直到Spark出現Spark
- XP系統故障 都是“防火牆”惹的禍(轉)防火牆
- 都是crosscheck惹的禍,備份歸檔失敗ROS
- 蘋果沒有賈伯斯的兩年–資訊圖蘋果
- 有沒有通過網頁線上使用的CRM?網頁
- Go的併發沒有它,就像iphone沒有網路一樣GoiPhone
- Oracle RAC啟動失敗-軟連結惹的禍Oracle
- 如果你的網站沒有JavaScript網站JavaScript
- 資訊圖:沒有網際網路的世界
- git 當前分支 master 沒有對應的上游分支。GitAST
- 你有沒有感覺網頁越來越臃腫了?網頁
- 有沒有關於物聯網創新的點子
- 有沒有什麼網路請求攔截的庫?
- 使用Datomic實現沒有麻煩的事件溯源事件
- 有沒有通用的SSL證書
- golang有沒有好的AI框架?GolangAI框架
- 有沒有改進版本的XPetstore?
- Windows 的這款工具,有時讓我覺得 Mac 不是很香WindowsMac
- 網上 *賭**資金安全可靠的平臺有沒有/
- ubuntu沒有有線網路的一種解決辦法Ubuntu
- 美國大選在即,希拉蕊“郵件門”惹禍
- 如何實現報表視覺化,有沒有工具推薦視覺化
- DataBinding點選事件沒有反應事件
- 今天還是沒有具體分配任務,不過估計就這兩天的事兒
- 摩托羅拉前CEO:Nexus6沒有指紋識別 得怪蘋果蘋果