漫畫 | 為什么美國人發明了互聯網?
我們的故事得從第二次世界大戰以后開始。
二戰后, 美國和蘇聯兩個超級大國劃分了各自的勢力范圍,在政治、經濟、軍事等領域激烈較量,一道鐵幕在歐洲大陸落下, 冷戰開啟。
隨著蘇聯爆破成功原子彈和發射洲際導彈,美國本土立刻面臨遠程核導彈的打擊,美國人開始慌了。
作為應對,美國總統艾森豪威爾授權成立了一個新的研究機構:高級研究計劃署(DARPA)

DARPA有很多項目,包括彈道導彈防御、衛星導航、核試驗檢測等等,其中一項是建立一個可經受敵軍打擊的軍用通信系統。
1955年,蘭德公司的巴蘭被這個課題深深吸引。

經過研究,巴蘭提出了兩個重要思想,第一個是:網絡的控制權應該完全分散



分布式的思想讓每個節點在路由數據流時都具備同等地位,這成為未來的互聯網的最根本特征。
巴蘭的第二個思想是“分組交換”, 要向理解它,我們得先看看“電路交換”, 最典型的就是電話網絡

由于有專有的連接,預留的帶寬,那么發送方可以用固定的速率向接收方傳輸數據。
但是電路交換的缺點也很明顯,假設兩個人打電話,突然,其中一個人離開了,這個時候預覽的帶寬沒法被別的通信復用,白白浪費了。

巴蘭提出的分組交換,不會為兩個用戶建立物理的連接, 也不會預留帶寬,相反, 數據被劃分成一個個小的數據塊進行傳輸,稱為“分組”。
就像把一封長信分割為幾十張明信片一樣,每張明信片都有編號,目標地址也一樣。每張明信片可能會通過不同的路徑抵達終點,然后它們會被重新拼在一起。

可以說,巴蘭提出的思想,正好和DARPA要做的事情不謀而合,當時的項目主管是羅伯茨, 他已經做出了規劃,要建立一個叫做阿帕網的網絡。

但是,當時的每種計算機都有自己獨特的控制方式和文件組織方式,相當于每個人都在說自己的語言,根本無法交談,這怎么能夠實現聯網呢?
解決的辦法就是制定一套通用的協議。
協議聽起來很高大上,但實際上就是通信雙方的一種約定而已,例如兩個人見面了,可能會這么說:

再來看一個計算機發信的協議:


可以看出,和人類對話是很相似的, 但是有三個非常重要的要素:

阿帕網的通信協議叫1822, 這是因為那份報告的編號是1822, 可見當時工程師也不知道該起什么名稱。
在羅伯茨的規劃中,主機不應該處理數據路由的任務,這個任務應該有一個小型的廉價計算機來承擔, 羅伯茨把它稱為IMP 。

主機把數據包發給IMP,IMP查看目標地址,或者把它傳遞到本地連接的主機,或者傳遞給另外一個IMP。
為了防止數據包丟失,發送方IMP會暫存數據包,直到獲得接收方IMP的確認為止, 如果沒能收到確認,它就重新發送。(注意,這時候是中間的路由節點實現了失敗重傳)
1969年底, 阿帕網初步建成,將位于加州大學洛杉磯分校,加州大學圣巴巴拉分校,猶他大學,斯坦福研究院的4個計算機中心成功連接在一起,人類從此進入了網絡時代。

在阿帕網的激勵下,越來越多的網絡建立起來,夏威夷建立了無線電網絡,硅谷發明了以太網,太空的衛星也組建了衛星網絡。
它們雖然都是分組交換網,但是都不兼容,無法互聯。

1973年, 鮑伯·卡恩(Bob Kahn)決定解決這個問題,他拉來了溫頓·瑟夫(Vinton G.Cerf)當合作伙伴。


鮑伯·卡恩和溫頓·瑟夫做出的這個決定極其關鍵:可靠性的重擔從此由終端(發送和接收信息的主機)來負責,這樣網絡自身就可以極大簡化。

這樣就對網絡的要求就達到了最低:只需要接過這個數據包,盡力地傳遞它就好了。
在此思想的基礎上, 卡恩和瑟夫最后寫出了著名的TCP/IP協議草案。
但是TCP/IP到底怎么樣呢?1977年11月,卡恩和瑟夫做了一個有里程碑意義的實驗。
數據包從一輛載有無線傳輸器的箱式貨車發出,進入阿帕網,然后通過專用衛星鏈路到達倫敦,再通過衛星傳輸網絡,到達阿帕網, 最后傳回南加州大學信息科學研究所,行程 9.4 萬英里,沒有丟失一個比特的數據信息!

TCP/IP的發展也不是一帆風順的,它遇到了一個強勁的競爭對手:國際標準化組織(ISO)。
幾十年以來,ISO曾經為一系列產品制定了世界標準,這一次他們希望主導網絡領域, 于是一個叫做OSI的參考模型被制訂出來,并且大力推廣。

瑟夫努力勸說讓 IBM、DEC、HP 等大廠支持 TCP/IP, 但都遭拒絕,在他們看來TCP/IP只是一項研究試驗,甚至是學術玩具。

1988年,歐洲很多國家都加入了OSI的陣營,美國政府立即回應,將TCP/IP作為官方標準。 如果有更多的國家選擇OSI,互聯網的歷史將會徹底被改寫。
然而,多年前的一次無心之舉,讓TCP/IP取得了關鍵的競爭優勢。
1981年,DARPA資助BBN公司(阿帕網的承包商)和加州大學伯克利分校,把TCP/IP協議加入Unix操作系統。
當時還在上研究生的天才Bill Joy拒絕了BBN公司的代碼,理由是BBN寫的TCP/IP代碼實在是差勁,Bill Joy另起爐灶,很快就在BSD Unix當中實現了一個高性能的TCP/IP協議。

Unix的廣泛傳播極大助力了TCP/IP的發展,事實證明,從實踐中來的TCP/IP協議非常優秀,非常開放,很快,TCP/IP無處不在,輕松擊退了OSI的進攻,成為互聯網的標準。
OSI現在只能停留在教科書中,讓大家瞻仰了。

1989年,歐洲原子能研究中心的蒂姆·伯納斯·李提出了萬維網(World Wide Web)的概念, 并且基于TCP/IP發明了HTTP協議、 HTML頁面和Web服務器。
這三項技術迅速普及開來,構建了無比精彩的互聯網世界。
向這些互聯網的先驅們致敬!
如需轉載,請通過作者微信公眾號coderising獲取授權。