2019.11.18 07:30

50年前,網際網路在3420室誕生

ADVERTISEMENT

現在我們已經把隨時隨地上網視為理所當然,運算和網路正日益變得像水和電一樣不可或缺。但是在50年前,運算和網路遠不像今天這樣便利,當時所有的電腦都在說不同的語言,並且彼此之間無法對話,但是大家都把這認為是理所當然,直到有個人受不了了。Mark Sullivanlong採訪了當年的親歷者,請他們講述了網際網路先驅誕生的故事。

最近,我去加州大學洛杉磯分校(UCLA)的Boelter Hall(ARPANET首個節點設置地)參觀。我爬樓梯上到三樓,去找3420室。從走廊上看,那是個相當不起眼的地方。

但是50年前的今天發生了一件大事。有個叫Charley Kline的研究生坐在ITT電傳打字機終端上,把數位化的資料傳給了當時正坐在加州另一頭史丹佛研究所(現在的SRI International)另一台電腦旁的Bill Duvall。並是有史以來的第一次,是ARPANET的開端,這個用來從事學術的電腦組建的小型網路,是Internet的先驅。

ADVERTISEMENT

當時,這次短暫的資料傳輸行為跟你在全世界任何一個地方聽到的敲擊聲都不一樣。甚至Kline和Duvall這兩個人都沒意識到自己所實現東西的全部意義。Kline 說:「我不記得那天晚上有什麼特別難忘的東西,我當然也沒有意識到當時所做的一切有什麼特別。」但是他們的通訊連接聯繫證明了概念的可行性,而那些概念最終將會使得全世界幾乎所有訊息都可以透過電腦分發給任何人。

如今,從智慧型手機到車庫開門器的一切都是節點,那天Kline和Duvall測試過的網路後代的節點。他們和其他人是如何在世界範圍內建立起字節交換的原始規則的呢?這是一個值得分享的故事,尤其是當事人自己講述時。

「別想再超過我們」

甚至早在1969年,很多人就為Kline和Duvall在10月29日晚上所取得的突破奠定了基礎,其中包括UCLA的教授Leonard Kleinrock。隨著網際網路誕生50週年紀念日的臨近,跟Kline和Duvall一樣,我也找他聊了一下。至今仍在UCLA的Kleinrock告訴我,從某種意義上來說,ARPANET是冷戰的產物。1957年10月,蘇聯的人造衛星Sputnik 1在美國上空閃爍時,美國的科學界和政治圈都感受到了它發出的衝擊波。

ADVERTISEMENT

當我在3420室(現更名為Kleinrock網際網路歷史中心)跟Kleinrock交談時,他說:Sputnik的發射「讓美國手足無措陷入窘境,艾森豪威爾說,『蘇聯別再想超過我們。』因此,1958年1月,他在國防部內部組建了高等研究計劃署(ARPA),用來支援美國大學和研究實驗室開展STEM(科學,技術,工程和數學)研究。」

到了1960年代中期,ARPA已經為美國的大學和智庫的研究人員使用大型電腦提供了資金支持。Bob Taylor是負責融資的ARPA官員,他是電腦歷史上的重要人物,後來又又負責運營過全錄的PARC實驗室。在ARPA,他痛苦地意識到所有這些電腦都在說不同的語言,並且彼此之間無法對話。

ADVERTISEMENT

Taylor很討厭這一點,也就是他得用不同的終端,以及各自的租賃線路,來連接各種不同的遠端研究電腦。他的辦公室裡面堆滿了各種電傳打字機。

1999年的時候,Taylor告訴《紐約時報》的John Markoff 說:「我說,嘿,伙計,該做什麼很明顯嘛。如果你有這三台終端,那那些應該合成一台可以去任何你想去的地方的就行。這個想法就是ARPANET的雛形。」

ADVERTISEMENT

Taylor對網路的渴望還有一個甚至更切合實際的理由。他經常會收到來自全國各地的研究人員的請求,對方想申請經費購買更大、更好的大型電腦。Kleinrock解釋說,但他知道政府資助的很多運算能力其實都被浪費掉了。比方說,當研究人員把加州SRI的系統資源用到盡時,MIT那邊的另一個大型電腦可能正閒得無聊,那也許是在東海岸的正常的工作時間之後。

又或者是某個地方的大型電腦裡面裝有一些對其他地方很有用的軟體,比方說由ARPA資助的猶他大學開發的圖形軟體先驅。Kleinrock說,因為沒有網路,「如果我在UCLA想做圖形的話,我就要去ARPA申請買那台機器來做圖形。每個人都想要擁有一切。」到了1966年,ARPA對這種要求已經感到厭倦。

問題是所有這些電腦都在講不同的語言。回到五角大樓後,Taylor的電腦科學家解釋說,所有這些研究電腦跑的都是不同的程式集。它們之間有沒有通用的網路語言或者協議,所以沒法讓天各一方的電腦互聯共享內容或資源。

這種情況很快就改變了。Taylor去找ARPA主任Charles Herzfeld,讓後者投入一百萬美元來研發新網路,用來連接MIT、UCLA、SRI以及許多其他地方的電腦。Herzfeld設法把彈道導彈研究計劃的部分資金轉移到了ARPA預算上。他為爭取這筆費用找到了一個說法, ARPA需要建設一個任何特定部分受破壞(比如遭遇核攻擊)也能「倖免遇難」的網路,美國國防部認可了。

然後ARPA引進了Kleinrock在MIT的好夥伴Larry Roberts來管理ARPANET專案。Roberts求助於英國電腦科學家Donald Davies以及美國人Paul Baran,去利用他們發明的資料傳輸技術。

很快,Roberts開始讓Kleinrock研究該項目的理論方面。從1962年還在MIT那時候開始,他就一直在思考資料網路的問題。

Kleinrock 說:「還在麻省理工學院讀研究所的時候,我就已經下定決心要解決這個問題:我周圍都是電腦,但是它們之間卻無法交流,我知道,遲早它們必須要通訊的。當時沒人注意這個問題。他們都在學習訊息論和編碼論。」

Kleinrock對ARPANET 的主要貢獻是所謂的排隊論。那時候,通訊鏈路還是類比訊號,得向AT&T租用。這種線路屬於電路交換,這意味著要透過中心交換機在發送者和接收者(不管是互相打電話的人還是終端連接遠端的大型電腦)之間建立起專用連接。而如果雙方不說話或者沒有資料在傳輸時,那些線路就會有大量的時間在閒置。

Kleinrock 認為,電腦之間按這種方式建立連接是非常低效的做法。而排隊論為來自不同通訊會話的資料封包動態共享連接提供了一種方法。當一個資料封包傳送流暫停的時候,不相關的另一條資料流也許可以使用同一條鏈路。包含有一個通訊會話(比方說,發送一封電子郵件)的資料封包可能會使用四條不同的路由到達接收者。如果某條路由被禁用了則網路可以通過另一條路由傳送資料封包。

我們在3420室交談的時候,Kleinrock向我展示了他有關這一切的論文,論文就放在一張桌子紅色活頁夾裡面。1964年,他用出書的形式發表了他的研究成果。

在這種新型的網路裡面,資料的傳輸並不是由中心交換機控制,而是由網路節點上的設備控制的。在1969年那時候,這些網路設備被稱為IMP(internet message processors),也就是「網路訊息處理器」。每台機器都是Honeywell DDP-516電腦的加固改良版,裡面包含有用來進行網路控制的專用硬體。

1969年勞動節那天,第一台IMP被交到了Kleinrock手上。今天,它就像一塊巨石一樣屹立在Boelter Hall 3420室的一角,已經被復原為50年前第一次處理網際網路傳輸時的樣子。

「一天15小時」

1969年秋天時, Charley Kline還是一位打算修完工程學學位的研究生。Kleinrock拿到政府資助,打算開發該網路後,他是轉入到ARPANET項目的其中一組研究生之一。8月,Kline和項目組的其他成員正在一起埋頭苦幹,準備UCLA的Sigma 7大型機上用來連接IMP的軟體。由於電腦和IMP之間沒有標準連接埠,Bob Metcalfe和David Boggs直到1973年才發明出乙太網路,所以專案組從頭開始做了一根15英尺長的連接電纜。現在,他們需要另一台用來進行通訊的電腦。

SRI是第二家拿到IMP的研究機構,時間是10月初。對於Bill Duvall來說,為了實現UCLA到SRI的SDS 940的第一次傳輸,他需要進行一段緊張的準備。他告訴我說,UCLA和SRI團隊已經承諾要在10月31日之前建立起第一次成功的傳輸。

他回憶說:「我基本上參與了軟體的設計和實現,當時的強度非常的高,每天要工作15個小時。」

隨著萬聖節的臨近,UCLA和SRI都加快了步伐。他們已經做好了在截止日期到來之前動手的準備。

Kleinrock說:「現在我們已經有了兩個節點,而且我們從AT&T租來的這條線路的速度簡直快如閃電,達到了50000bps。所以現在我們已經準備好,可以登入了。」

Duvall補充說:「 我們計劃在10月29日開始第一次測試。當時還是pre-alpha版。而且,我們當時還想,好吧,這樣我們就有三天的測試時間來把它弄好了。 」

29日那天晚上,Kline工作到很晚。SRI的Duvall也是這樣。兩人打算在晚上試著發送第一條ARPANET消息,這樣就算其中一台電腦崩潰,也不會有任何人的工作受到影響。在3420室,Kline獨自一人坐在他的終端前,那是一台跟那台電腦相連的ITT電傳打字機。

用Kline和Duvall自己的話來說,這就是當晚發生的事情——以及電腦歷史上最具歷史意義的崩潰之一:

Kline:我登入進Sigma 7作業系統,然後執行了自己編寫的程式,這讓我可以告訴該程式試著把資料封包發送到SRI。與此同時,SRI的Bill Duvall也執行了他的程式來接受呼入的連接。我們雙方還互相通過電話聯絡。

一開始我們遇到了一些問題。我在程式碼轉換方面遇到了一點問題,因為我們的系統用的是EBCDIC(擴展的二進制編碼的十進制交換碼),這是IBM的標準,也是Sigma 7使用的標準。但是SRI的電腦用的是ASCII(美國訊息交換標準碼),後來成為了ARPANET的標準,並且幾乎也是全世界的標準。

因此,在搞定了這其中的一些小問題之後,我們開始試著登入……就是通過輸入「login」來完成這一步。[SRI]那個系統已經進行了智慧化的程式編輯,所以它可以識別有效的命令。如果你進入進階模式的話,輸入「L」、「O」和「G」時,它就會意識到你想必是想敲「LOGIN」,然後就會為你補全「IN」 。所以我敲了個L。

我在電話裡(跟SRI的Duvall通話)說:「你收到L了嗎?」 他說,是的。我說我看到「L」返回並在我的終端上列印出來了。然後我又敲了個「O」,然後他說:「O收到。」接著我輸入了G,然後他說:「等一下,我的系統崩潰了。」

Duvall:幾個字母之後,就出現了緩衝區溢出問題。這個問題很容易檢測和修復,並且基本上馬上就能恢復正常工作。我之所以提這個的唯一原因是,我認為這整件事的重點不在這個,而在於這證明了ARPANET能行得通。

Kline:他那邊有一點小bug,大概花了20分鐘左右就弄好了,然後再次重試。他必須對某些軟體進行修改。而我必須仔細檢查部分軟體。他給我回了電話,我們再次嘗試。然後,我們重新開始,我輸入了L以及O和G,但是這次我收到了「IN」。

「不過是工程師的工作」

第一次連接在美東時間晚上10:30進行。然後,Kline就能夠用Duvall為他創建的SRI電腦帳戶登入,並且用距離U​​CLA 350英里之遙的電腦的系統資源來跑程序了。麻雀雖小,但可以說ARPANET的任務已經完成。

Kline告訴我:「搞到那時候已經很晚了,所以我就回家了。」

3420室的一塊牌匾解釋了在那裡發生的事情。

這支團隊知道項目已經成功了,但是並沒有仔細考慮過這一成就的重要程度,Kleinrock 說:「這不過是工程師的工作罷了。」Duvall則認為,10月29日的連接成功只是解決更大的電腦連網挑戰所邁出的一步。Kleinrock 的工作重點是如何對網路內的資料封包進行路由,而SRI的研究人員關心的是資料封包如何構建,以及內部的資料如何組織。

Duvall 說:「我們今天看到的承載文件連接之類東西的網際網路,其範式基本上就是那時候開發出來的。我們一直以來的設想是,我們會擁有一系列相互連接的工作站,以及相互連接在一起的人。當時我們稱之為知識中心,因為我們是以學術為導向的。」

在Kline和Duvall首次通訊成功之後的幾週內,ARPA網路就擴展到了UC聖塔芭芭拉分校和猶他大學的電腦。從那時候開始,到1970、80年代的大部分時間內,ARPANET都在一直擴張,連接了越來越多的政府和學術界的電腦。然後,ARPANET所形成的概念就應用到了我們今天所熟知的Internet身上。

1969年時,加州大學洛杉磯分校(UCLA)的一篇新聞稿曾這樣吹捧新的ARPANET。文章援引Kleinrock的話說:「目前為止,電腦網路還處於萌芽階段。但是,隨著它們的慢慢長大,並且變得越來越複雜,我們可能會看到『電腦基礎設施』的普及,就像現在的電力和電話設施一樣,它也將會服務於千家萬戶和大小企業。」

現在,資料網路的範圍已經遠遠超出了家庭和辦公,甚至覆蓋到最小的物聯網設備,所以這一概念聽起來已經有點古怪。但是, Kleinrock關於「電腦基礎設施」 的聲明顯然很有先見之明,尤其是考慮到現代的、商業化的網際網路直到幾十年後才出現。儘管運算資源正變得像電力一樣普及並且很容易就被視為理所當然,但這個想法在2019年的時候依然歷久彌新。

也許像這樣的周年紀念日就是一個很好的機會,這不僅可以讓我們記住人類是如何進入這個高度互聯的時代的,而且還可以讓我們像Kleinrock一樣,展望未來,思考網路下一步的發展方向。

ADVERTISEMENT