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

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

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



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

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

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

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

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

再來看一個計算機發(fā)信的協(xié)議:


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

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

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

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

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


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

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

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

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

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

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

1989年,歐洲原子能研究中心的蒂姆·伯納斯·李提出了萬維網(World Wide Web)的概念, 并且基于TCP/IP發(fā)明了HTTP協(xié)議、 HTML頁面和Web服務器。
這三項技術迅速普及開來,構建了無比精彩的互聯(lián)網世界。
向這些互聯(lián)網的先驅們致敬!

如需轉載,請通過作者微信公眾號coderising獲取授權。























