分組交換:保羅·巴蘭、唐納德·戴維斯和倫納德·克蘭羅克

通過網絡傳輸數據的方法有很多種。其中最簡單的叫電路交換,是電話系統傳輸數據的方式:一組交換機建立起一個專用電路,讓信號在通話期間來回傳輸,即使通話停頓很長時間,連接依然保持通暢。另一種方式是報文交換,也就是報務員所說的存儲轉發交換。在這一系統下,整條報文會獲得一個地址標頭,報文被發送到網絡上,然後從一個節點傳到另一個節點,直到抵達終點為止。

還有一種是效率更高的分組交換方式,這是一種特殊的存儲轉發交換。在這種交換中,信息會被分割為大小完全相同的小單元,這些單元被稱為「包」,有相應的地址標頭,描述它們應該發往什麼地方。隨後,這些「包」會通過網絡被發送到終點,在發送過程中,它們從一個節點傳到另一個節點,使用當時可用的任意連接。如果某些連接因數據過多而發生堵塞,一些「包」就會路由至其他路徑。當所有「包」都到達最終節點時,它們會根據標頭的指令重新組合到一起。互聯網先驅之一文特·瑟夫(Vint Cerf)解釋說:「這就像把一封長信分割為幾十張明信片一樣,每張明信片都有編號,地址也一樣。每張明信片可能會通過不同的路徑抵達終點,然後它們會被重新拼在一起。」54

如斯坎特伯裡在加特林堡所述,最先提出分組交換網絡概念完整構想的是一位名叫保羅·巴蘭的工程師。巴蘭兩歲時,他家從波蘭移民到美國,在費城落腳,他父親在那裡開了一家小雜貨店。巴蘭1949年從德雷塞爾大學畢業後加入了普雷斯伯·埃克特和約翰·莫奇利新創辦的電腦公司,他在這家公司負責測試通用自動計算機的零部件。後來他來到洛杉磯,在加州大學洛杉磯分校讀夜校,最終在蘭德公司找到了一份工作。

1955年,蘇聯人的氫彈試驗讓巴蘭找到了自己的畢生使命:為防範核屠殺貢獻一己之力。有一天,他在蘭德翻看美國空軍發送的每週研究課題列表時,被一個有關建立可經受敵軍打擊的軍用通信系統的課題所吸引。他知道,這種系統有助於防範核戰爭,因為如果有一方害怕自己的通信系統受到攻擊,就會傾向於在局勢緊張時發起先發制人的一擊。一旦有了穩固的通信系統,國家就會覺得沒有必要擺出蓄勢待發的姿態了。

唐納德·戴維斯(1924——2000)

保羅·巴蘭(1926——2011)

倫納德·克蘭羅克(1934——)

文特·瑟夫(1943——)和鮑勃·卡恩(1938——)

巴蘭提出了兩大重要思想,他從1960年開始發表文章,介紹這些思想。他的第一大思想是,網絡不應該建成集中式,不應該有控制所有交換和路由的主要樞紐。網絡更不應該像AT&T(美國電話電報公司)的電話系統或主要航空公司的航線圖一樣建成簡單的分佈式,把控制權交給許多區域樞紐。如果敵軍佔領了這些樞紐中的一部分,整個系統就有可能癱瘓。控制權應該實現完全的分散。換句話說,每一個節點在交換和路由數據流時應該擁有同等地位。這將成為互聯網的最根本特徵,這種堅不可摧的特質會讓互聯網賦予個人力量,並使網絡成為反抗中央控制的工具。

巴蘭繪製了一個看起來像漁網一樣的網絡。在這個網絡中,所有節點都有權路由流量,而且每個節點都與其他幾個節點相連接。如果其中哪個節點被破壞,流量只要通過其他路徑路由即可。巴蘭解釋說:「沒有中央控制,每個節點都執行簡單的本地路由策略。」他發現,哪怕每個節點只有三到四個連接,系統也會擁有幾乎無限的恢復能力和生存能力。他說:「只需要三到四個富餘連接,就能讓網絡的穩固性接近理論極值。」55

巴蘭說:「在確定增強網絡穩固性的方法之後,接下來我要解決的問題是如何讓信號通過這種漁網式的網絡。」56 他的第二個思想由此形成,即把數據分割為標準尺寸的小模塊。可將一條信息分拆為許多個這類模塊,每個模塊都通過網絡節點,經由不同的路徑傳輸,等它們到達終點時再被重新組合起來。他寫道:「一個通用標準化信息塊的大小也許是1 024比特。多數信息塊可傳輸任何種類的數據,其餘的信息塊將包含輔助信息,比如錯誤檢測和路由數據。」

後來巴蘭遭遇了一種創新常常面臨的嚴酷現實,這就是抗拒改變的頑固官僚制度。蘭德把自己的分組交換網絡思想推薦給美國空軍,美國空軍在經過全面考量後決定建一個這樣的網絡。但之後國防部卻認為這類項目應由國防部通信署來做,這樣國防部的所有分支機構都可以使用該網絡。巴蘭意識到,國防部通信署既沒有意願也沒有能力來完成這項任務。

於是巴蘭試圖說服AT&T再建一個分組交換數據網絡,作為電路交換語音網絡的補充。他回憶說:「他們強烈反對這一主張,想方設法阻撓這個方案的實施。」AT&T甚至禁止蘭德使用他們的電路交換圖,於是巴蘭只好使用一份洩漏出來的圖。他到AT&T曼哈頓下城的總部去過好幾次。有一次,巴蘭見到該公司一名高管,這名高管是個老派模擬工程師,當巴蘭向他解釋,自己的系統意味著數據無須全天開放的專用電路就能傳輸時,這位高管看上去目瞪口呆。巴蘭說:「他看了看會議室裡的同事,翻了個白眼,釋放出他根本不相信的信號。」這名高管頓了頓說:「小伙子,電話的工作原理是這樣的。」然後他以居高臨下的姿態做了一番粗淺的解釋。

之後巴蘭仍在繼續推介他看似荒謬的思想,即信息可以分割為小塊,以小包形式通過網絡傳遞。於是AT&T邀請他和其他圈外人士參加了一系列研討會,向他們解釋公司的系統如何運作。巴蘭感歎說:「他們找了94個人來解釋整個系統。」研討會結束後,AT&T的高管問巴蘭:「現在你知道分組交換為什麼行不通了吧?」讓他們備感失望的是,巴蘭只說了句:「不。」AT&T又一次為「創新者困境」所阻礙。這家公司不願考慮一種全新的數據網絡,因為他們為傳統電路投入得太多。57

巴蘭的研究最終結集為11卷詳細的工程分析報告《論分佈式通信系統》(On Distributed Communications ),這部著作於1964年完成。他堅持不把該書列為機密文獻,因為他意識到,如果蘇聯人也建一個這樣的系統,就會讓該系統發揮最理想的效果。鮑勃·泰勒讀了這本書的部分章節,但ARPA的其他人都沒有讀過,所以巴蘭的思想一直沒能產生什麼影響,直到1967年,它才在加特林堡會議上引起拉裡·羅伯茨的注意。回到華盛頓後,羅伯茨把巴蘭的報告翻出來,撣掉上面的灰塵,開始閱讀。

羅伯茨還拿到了唐納德·戴維斯英國研究小組撰寫的論文,也就是斯坎特伯裡在加特林堡簡要介紹過的論文。戴維斯生於1924年,他父親是威爾士一個煤礦職員,在戴維斯出生幾個月後就去世了。小戴維斯是由母親在樸茨茅斯撫養大的,他母親在英國郵政總局(該機構負責運營英國電話系統)工作。戴維斯小時候經常玩電話裡的電路,長大後,他在倫敦帝國學院獲得數學和物理學學位。「二戰」期間,他在伯明翰大學工作,作為克勞斯·富赫斯(後來被發現是蘇聯間諜)的助手參與研製核武器合金管。後來他又在英國國家物理實驗室與艾倫·圖靈合作建造自動計算引擎,也就是一台存儲程序式電子計算機。

戴維斯在研究生涯中形成了兩大興趣:一是計算機分時,這是他1965年訪問麻省理工學院時瞭解到的概念,另一個是用電話線進行數據通信。在頭腦中將這些思想結合起來之後,他確立了一個目標,即尋找一種類似分時的方法,最大限度地發揮通信線路的作用。這就讓他形成了高效小段信息單元的思想,這些思想與巴蘭建立的概念相同。他還為它們找到了一個貼切的英語舊名詞:「包」。試圖說服英國郵政總局採用該系統的戴維斯也像巴蘭一樣吃了閉門羹。但他們都在華盛頓找到了知音。拉裡·羅伯茨不僅採納了他們的思想,而且採用了「包」這個名詞。58

第三位,同時也是更具爭議性的貢獻者是倫納德·克蘭羅克(Leonard Kleinrock),他是一位快樂、友善,偶爾會自我推銷一番的網絡數據流專家,在麻省理工學院讀博士時,他和拉裡·羅伯茨在同一間辦公室工作,兩人結下了深厚的友情。克蘭羅克成長在紐約一個貧窮的移民家庭。6歲時,他在一本《超人》漫畫中讀到不用電池製作礦石收音機的指南,觸發了他對電子的興趣。他收集了一個衛生紙筒、他父親的剃鬚刀片、一些線,還有一支鉛筆上的石墨,然後說服母親帶他乘坐地鐵到曼哈頓下城的一家電子商店買了個可變電容器。結果他成功地組裝出一台礦石收音機,他對電子的畢生熱情也從此生根發芽。他回憶起這個收音機時說:「到現在我還對它充滿敬畏,它還是那麼神奇。」後來他開始從二手軍用品店弄無線電真空管說明書,並從垃圾箱裡翻找別人扔掉的收音機,像禿鷲一樣從裡面拆出零部件,製作自己的無線電。59

克蘭羅克念不起大學,甚至連免學費的紐約市立學院也念不起,於是他白天在一家電子公司工作,晚上在大學讀晚間課程。晚上授課的教師比白天授課的教師更講求實用,克蘭羅克記得,老師不是教他有關晶體管的理論,而是告訴他晶體管對熱有多敏感和設計電路時如何調整理想的溫度。他回憶說:「在日校你根本學不到這種實用的東西。那些老師根本不懂。」60

畢業後,他拿到了獎學金,赴麻省理工學院攻讀博士。他在麻省理工學院研究排隊論(queuing theory),該理論關注的問題包括如何根據各種因素來決定平均排隊時間。他在自己的博士論文中推導出一些可分析信息如何流動以及交換數據網絡如何出現瓶頸等問題的數學公式。克蘭羅克曾與羅伯茨共用一間辦公室,還是伊萬·薩瑟蘭的同班同學,此外,他還聽過克勞德·香農和諾伯特·威納的講座。他這樣回憶當年的麻省理工學院:「這裡確實是培養知識精英的沃土。」61

有一天,克蘭羅克在麻省理工學院的計算機實驗室裡待到很晚,疲憊的他在操作一台名為TX–2的大型實驗計算機時聽到陌生的「撲嘶」聲。他回憶說:「聽到這種聲音我感到非常擔心。我旁邊有一個空位,原來放在那裡的一個計算機部件被搬出去修理了,我抬起頭來看那個位置,發現有兩隻眼睛在看我!」原來那是拉裡·羅伯茨在跟他搞惡作劇。62

活躍的克蘭羅克和矜持的羅伯茨雖然性格不同,但卻是好朋友(兩人成為好友也許正是因為性格不同)。他們喜歡一起去拉斯韋加斯的賭場,設法憑智慧戰勝莊家。羅伯茨琢磨出一套通過追蹤高低牌來猜牌的二十一點算牌術,他把算牌術教給克蘭羅克。羅伯茨回憶說:「有一次我和妻子在希爾頓玩牌時被趕了出去,當時賭場經理通過天花板監視我們,結果對我們產生了懷疑,因為我為一手牌買了保險,而一般人是不會買保險的,除非知道高牌已經不剩多少了。」他們還搗鼓過一個把戲。兩人曾試圖用晶體管和示波器製作的計數器來計算輪盤上球的運動軌跡。這個計數器可以測量球的速度,預測球最終滾向輪盤的哪一側,這樣就能提高下注的勝算概率。為了收集必要的數據,羅伯茨把一隻手裹在紗布裡,在裡面藏了一個記錄儀。發現情況有些不對勁的賭台管理員盯著他們問:「你想不想讓我打斷你另一隻手?」於是他和克蘭羅克知趣地離開了。63

克蘭羅克在1961年撰寫的麻省理工學院博士論文開題報告中提出要探索預測網狀網絡中流量阻塞的數學基礎。在這篇論文以及相關論文中,他描述了一種存儲轉發網絡(每個節點都能存儲信息的通信網),而不是純粹的分組交換網絡(即信息可以分拆為大小完全相同的微小單元)。他討論了「信息在網絡中傳遞時發生的平均延遲」問題,還分析了如何通過建立一個可分割信息的優先結構來解決問題。但他沒有使用「包」這個名詞,也沒有介紹與之接近的概念。64

克蘭羅克外向合群,樂於與人合作,但他從來都不像利克萊德那樣淡泊名利。後來,他在博士論文和一篇介紹論文寫作計劃的文章中(兩篇文章都是在巴蘭開始在蘭德建立分組交換理論之後寫的)稱自己「建立了分組交換的基本原理和分組網絡的數學理論,也就是互聯網的基礎技術」,此舉令他疏遠了許多互聯網的其他開發者。65 他從20世紀90年代中期開始為「現代數據網絡之父」的名頭而積極活動。66 1996年,他在接受採訪時稱:「我的博士論文闡述了分組交換的基本原理。」67

他的舉動引發了許多其他互聯網先驅者的抗議,他們公開攻擊克蘭羅克,說他只是簡單提到把信息分解為較小的單元,遠沒有達到提出分組交換的層次。鮑勃·泰勒說:「克蘭羅克滿嘴謊言。他把自己和分組交換這項發明扯上關係,這是典型的、無可救藥的自我標榜,從第一天開始就是這樣。」68 而克蘭羅克反駁說:「泰勒心懷不滿是因為他從來沒有得到他所期望的認可。」69

發明「包」這個術語的英國學者唐納德·戴維斯是個溫和、含蓄的人,他從不炫耀自己的成就,有人甚至說他過於謙虛。但他卻在臨終前寫了一篇論文(這篇文章在他去世後發表),出人意料地以激烈的語氣攻擊克蘭羅克。戴維斯在經過詳盡分析後寫道:「從克蘭羅克1964年之前直至1964年所做的研究來看,他根本沒有資格說自己首創了分組交換理論。他書中有一段談到分時排隊原理,如果能繼續推導,直至得出結論的話,也許會把他引向分組交換,但事實卻並非如此……我沒有發現任何顯示他理解分組交換原理的證據。」70 管理BBN公司網絡控制中心的工程師亞歷克斯·麥肯齊(Alex McKenzie)後來說得更加直接:「克蘭羅克自稱分組概念是他提出的,這完全就是胡說八道。1964年的那本書中,整本書沒有任何一處提出、分析或間接提及分組交換思想。」他稱克蘭羅克的說法「荒唐可笑」。71

對克蘭羅克的反擊異常猛烈,於是凱蒂·哈夫納(Katie Hafner)2001年以此為主題在《紐約時報》上發表了一篇報道。在這篇報道中,哈夫納描述了克蘭羅克對發明優先權的主張是如何撼動互聯網先驅群體中常有的那種平等態度的。名副其實的分組交換之父保羅·巴蘭站出來說:「互聯網其實是上千人共同努力的成果。」他有意指出,多數參與互聯網開發的人都沒有去邀功,他還補充道:「只有這個小案例似乎是例外。」在這裡他以輕蔑的態度暗指克蘭羅克。72

有意思的是,20世紀90年代中期之前,克蘭羅克一直都把創立分組交換思想的功勞歸於他人。在1978年11月發表的一篇論文中,他把巴蘭和戴維斯稱作分組交換思想的先驅,他寫道:「20世紀60年代初,保羅·巴蘭在蘭德公司撰寫的一系列論文中闡述了數字網絡的部分屬性……1968年,英國國家物理實驗室的唐納德·戴維斯開始撰寫有關分組交換網絡的論文。」73 在1979年一篇描述分佈式網絡發展的論文中,克蘭羅克也是既沒有提及也沒有援引他本人從20世紀60年代早期開始的研究。直到1990年,他仍然宣稱巴蘭是創立分組交換思想的第一人:「我可以說他(巴蘭)最早提出了分組交換思想。」74 然而,當克蘭羅克1979年的論文於2002年重印時,他卻寫了一個新的引言稱:「我建立了分組交換的基本原理,1961年,我發表了第一篇相關論文。」75

公平地說,不管克蘭羅克有沒有自稱在20世紀60年代初的研究中建立分組交換理論,他都應該作為互聯網先驅而獲得充分尊重。他是網絡數據流領域一位重要的早期理論家,也是阿帕網建立過程中一位重要的領導者,這些都是毋庸置疑的事實。他是最早計算出對節點間傳遞的信息進行分割會產生何種效應的學者之一。此外,羅伯茨還發現他的理論研究很有價值,並把他招募到阿帕網項目實施團隊中。推動創新的是這樣一些人,他們既掌握著出色的理論,又有機會加入能夠實施理論的團隊。

克蘭羅克引發的爭議很有意思,因為它顯示出(這裡我們用一個互聯網領域本身的隱喻),互聯網的多數創建者都更青睞一種完全分佈式的榮譽系統。他們會本能地隔離和繞開任何要凌駕於其他節點之上的節點。互聯網是在創造性協作和分佈式決策思潮中誕生的,其創始人希望能保護這種遺產。這種精神深深植根在他們的個性——以及互聯網本身的基因之中。

《創新者:一群技術狂人和鬼才程序員如何改變世界》