「人文電腦」
近、現代西方的人文思想大都建立在一個基本命題之上:「所有人生來都是平等的」。
也許是巧合,也許是因為有的時候技術需要會和人文理想保持某種神秘的一致性。從最初的ARPANET到今天的互聯網,我們都可以看到一個同樣的命題:「所有電腦生來都是平等的」。
這一「平等思想」不僅和古希臘的精英政治理論大相逕庭,甚至也和最初的電腦網絡原理相去甚遠。
「智者」
古希臘哲學家柏拉圖寫過一本《理想國》。在他看來,人是按照不同的等級劃分的。因此,平等和民主都是不可能實現的空話。一個國家,應該由社會中最優秀的精英來統治;而「理想」國家的權杖,更應該交給最有智慧的「哲學王」。
就像草原上的羊群,要有帶頭羊;就像戰場上的軍隊,要有指揮將領。如果從使用者的角度,我們也很容易把所有網絡都看成是由中央控制,然後發散到四方的系統。這樣的網絡安全可靠,容易管理,並且「令行禁止」。最初的電腦網絡也確實是按照這種原理設計的。
如果我們追溯今天複雜的網絡系統的原理,甚至可以把目光投到1940年的9月10日-13日。那是一次在達特茅茨學院召開的美國數學協會的會議。貝爾實驗室的GeorgeStibitz打算在這裡演示他們的「複雜計算機」(Complex Calculator)。
然而,這台後來被稱為「貝爾實驗室模型1號」(Bell Labs MODEL 1)的機器,離會場實在太遠了。要想從紐約用卡車把這個龐然大物運過來,確實不是一件易事。最後想出來的「權益之計」就是在會場外的過道裡安放一個電傳(Teletype)終端,讓與會者通過這台電傳機來轉達自己的指令。就這樣,用一種間接的方式,可以使用遠在370公里以外的計算機(還不是電腦)。
儘管按照今天的標準,這遠遠不能算是電腦網絡。而且,這次實驗甚至比1946年美國賓西法尼亞州誕生第一台電子管電腦還早了6年。但是,不少探討電腦網絡歷史的書仍然要首先提到這台「模型1號」,因為這次實驗向人們提示了遠距離控制計算機的可能性。
10年以後,東西方正在醞釀一場冷戰。美國軍隊開始擔心俄國熊的飛機繞道北極前來空襲。為此,1951年,麻省理工學院成立了著名的林肯實驗室,專門研究防範蘇聯轟炸的措施。而他們的主要研究項目就是「遠距離預警」(DEW:Distant Early Warning)。
歷史的巧合有時候的確讓人忍俊不禁。這個最初的「遠距離預警」系統,正是那種由中央控制的網絡結構,而且它的名字也叫「智者」(SAGE)。當然,這個「智者」還遠不是真正的「哲學家」,而只是一個「半自動基礎環境」(Semi-Automatic GroundEnvironment)。
按照專家們的設計,這個「智者」必須完成三個任務:第一,採集從各個雷達站搜集來的信號;第二,通過計算判斷出是否有敵機來犯;第三,將防禦武器對準來犯的敵機。
毫無疑問,「智者」是第一個真正實時的人機交互作用的電腦網絡系統,它能接收網絡上各個節點傳送過來的數據,能夠按照鍵入的指令來處理這些數據。
由於在運行的過程中需要人的干預,所以被稱作是「半自動」的系統。1952年,「智者」系統投入使用,成為當時遠距離訪問的電腦網絡的一個典型。
從此,「智者」一類的網絡就不斷湧現。到了60年代,已經開始廣泛應用於軍隊、機場和銀行等系統中。這類網絡的共同特點就是在中心有一台大型電腦,用來存儲和處理數據,其它電腦作為終端通過一定的方式(比如,電纜或者電話線)
連通這個數據中心。每個網絡都是為某種特殊用途專門設計的,並且只允許系統授權的用戶進行訪問。
銀行系統就是這樣,每一個銀行的分行都有一台電腦和中心銀行相連,在中心銀行則有一台大型的電腦在那裡存儲和整理數據,並且不斷對各個分行提供信息和發出指令。如果不是銀行系統授權的人,就不可能使用銀行的電腦。直到現在,我們仍然能夠在機場、銀行和商場等地到處看到這種類型的電腦網絡為我們服務。
在電腦網絡理論中,通常把這種將數據從線路的一端直接傳送到另一端的方式稱為「線路交換」(Circuit Switching)。而這種由強大的網絡服務器管理的網絡則通常被稱為中央控制式網絡(Centralized Networks)。
我們平常理解的電子通信也都是這樣:在一個中央控制的系統之中,信號從出發點直接到達目的地。比如打電話,撥通了電話之後,信號從打電話的人那裡直接傳給接電話的人,並不需要中間有任何環節來接收和轉換這些信號,通話期間,整條線路也要被獨佔(線路交換)。發電報和傳真也同樣是這個道理。這種通信方式當然是最直接的,也是最容易管理的──只要在中央一級進行監控就行。
但是,這種方式也有一個致命的缺點,如果切斷了從出發點到目的地中的任何一處,都會使通信中斷。
本世紀60年代,當世界上已經有若干國家擁有原子彈和氫彈的時候,美國的中央控制式網絡已經達到相對發達的程度,美國軍隊的聯繫也開始依賴於電子通信。那些極為注重高新技術開發的國防高級研究計劃署的官員們,開始從另一個角度來考慮可能的核戰爭會給美國、尤其是給美國軍隊的通信帶來什麼樣的影響。
在他們當時考慮的諸多問題中,有一個問題顯得格外突出,這就是:「如何在受到核戰爭襲擊之後,保持軍隊中各個網絡之間的聯繫。」
時勢造英雄。為了解決這個對美國生死攸關的問題,人們期待著具有洞見的網絡專家和嶄新的網絡理論。
保羅·巴倫
保羅·巴倫(Paul Baran)1926年生於波蘭,兩歲的時候,全家移居到了美國的波士頓。父親到一家鞋廠做工。不久,他們又舉家遷往費城,開了一家小雜貨鋪維持生計。
一次,小巴倫問母親,家裡算不算是有錢人。母親微笑著回答說:「我們是窮人。」後來,他又用同樣的問題問父親,而父親卻說:「我們是有錢人。」這一回答是巴倫有生以來遇到的第一個難解之謎,同時也使他幼小的心靈開始懂得,同一個問題可能會有不同的答案。
也許,巴倫遇到第二個較大的難題是在Drexel技術學院。學校對計算的要求極為嚴格,不管你是否已經真正理解題意,只要在一次考試中出現兩次計算錯誤,就算不及格。許多很優秀的人在這個政策上栽了觔斗。然而學校卻堅持認為,準確而快速的計算是成為科學家的前提。幸好,巴倫靠他的實力過了關,於1949年獲得了這裡的電器工程學士學位。
當時的工作不那麼容易找。經過幾次波折,他後來結了婚,和妻子一起搬到了洛山磯。在那裡,他為一家飛機公司工作,同時參加了加州大學洛山磯分校的夜校。1959年,巴倫獲得了該校的工程碩士學位。
隨後,巴倫參加了蘭德公司的研究工作,同時繼續在加州大學洛山磯分校攻讀博士學位。他的導師也極力鼓勵他。可是仁慈的「上帝」卻對此有不同的安排。
一邊工作一邊讀書本來就是一個苦差事。而有的時候事情會比讀書本身更糟。
一次,巴倫照例開車趕到洛山磯分校上課,居然轉遍了所有地方還是找不到一個停車的地方。
「正是在那次偶然的事件,使我得出結論:一定是上帝的意願,不讓我繼續讀學位了。要不然,他怎麼會讓所有停車位都佔滿了車?」
這樣,巴倫一心一意地投入到蘭德公司的研究項目上去。
對於巴倫來說,也許最重要的就是對「指令」與「控制」理論的研究了。因為,這是軍隊指揮系統的生命線。用巴倫的定義,「指令」就是「讓他們按你的意願做某件事」;而「控制」則正相反,是「讓他們按你的意願不做某件事」。
但是,如果敵人的一顆原子彈把「指令與控制系統」的中心破壞了,全國的軍隊就會立即癱瘓。
早在60年代初,美國空軍就與軍方的思想庫「蘭德公司」(RAND)簽有協議,研究如何在戰爭中保護他們的通信系統。巴倫感興趣的也正是這一點。
(模擬化還是數字化)
1962年,就在美國國防高級研究計劃署成立「指令與控制研究室(CCR)」的同一年,保羅·巴倫為蘭德公司寫了11份報告,討論了我們今天稱為「包交換」(PacketSwitching)以及「存儲和轉發」(Store and Forward)的工作原理。在這11篇報告中,影響最大的是1964年3月發表的「論分佈式通信網絡」(「On DistributedCommunications Networks」,IEEE Trans.Comm.Systems,March 1964)。在這篇報告中,他概括了「亢余聯結」的原理,舉出了多種可能的網絡模型。
兩點之間不一定直線最短
與傳統的中央控制的網絡理論完全不同,巴倫的設想聽起來就有點異想天開。他提出,要在每一台電腦或者每一個網絡之間建立一種接口,使網絡之間可以相互連接。並且,這種連接完全不需要中央控制,只是通過各個網絡之間的接口直接相連。
因此,在這種方式下,網絡通信不像由中央控制那樣簡單地把數據直接傳送到目的地,而是在網絡的不同站點之間像接力賽一樣地傳送。每一個網站並沒有整個網絡的「地圖」,更不受中央的控制。網站收到數據之後,只是按當時最可能的路線把信轉走。這雖然不一定是最近的路線,但往往是最有效的。
用網絡理論專門一點的話來說,傳統的網絡是「中央控制式網絡」;而巴倫提出的網絡模型則是「分佈式的網絡」(Distributed Networks)。
比如,要在北京、上海、天津、重慶和廣州的網絡之間建立一種聯繫。一般的做法是在北京建立一個網絡的中心控制,由北京來控制整個網絡的運行。IBM公司1975年建立的SNA網絡就是這樣的系統。
就像我們平時打電話有時會聽到雜音,數據在網絡中傳送的時候也可能會遇到干擾。電話中即使有雜音,還仍然能大致聽明白對方的意思;而如果在網絡通信中遇到干擾,則會引起數據的丟失。在由中心控制的網絡裡,可以很好地控制這類差錯。
但是,按照巴倫的設想,在分佈式網絡中,每一個節點都可以相互連接。並不需要通過北京的控制。從表面上看,如果某一個節點出了差錯,不由中央的指令來控制修復,而是由各個節點自行修復的話,修復的時間也許會更長一些,並且不那麼及時。但是,無論如何,對於分佈式網絡來說,單個節點的重要性大大降低了。一條線不通,完全可以走另一條線。
況且,如果是中央控制的網絡,從廣州往重慶發一封信,仍然需要繞道北京來經過「批准」。而分佈式網絡倒反而更直接了當些。即使廣州通往重慶的線路出了毛病,也只需繞道上海,而不必到北京來。這樣,看起來效率最低的網絡,卻變成效率最高的網絡了。
還有,中央控制網絡中的線路如果正在使用,會像打電話那樣「占線」。而在分佈式網絡裡,根本不會有占線的問題。「條條大路通羅馬」,這裡則是條條線路都能夠送信到家。在整個通信的過程中,分佈式網絡只關心效果──最終把數據送到目的地,而不關心過程──從哪條路線把數據送到。
最為重要的是,中央控制式網絡並不適合打仗。如果發生戰爭,只要破壞了北京的中央控制,整個網絡就癱瘓了。分佈式網絡則把這幾個網站直接連接起來,不必經過北京。就像一個打不死的「變形金剛」,不管破壞了那裡,它都會自行修復。如果要從天津給廣州發一封信,這封信可能通過北京,也可能通過上海到達廣州。如果北京、上海都「占線」,或者已經被破壞,這封信也仍然可以通過重慶發往廣州。
因此,巴倫在他的報告中提出,要建立一種沒有明顯中央管理和控制的通信系統。在這種通信系統中,每一個點都可以和另一個點建立聯繫。這樣,破壞網絡中的任何一個點都不至於破壞整個網絡。
更加令人不可思議的是,在巴倫的分佈式網絡理論中,不僅通信的線路不是中央控制下的固定線路;而且每一次傳送的數據也被規定了一定的長度。超過這個長度的數據就被分開來再傳。因此,同一個數據有可能要被分成不同的部分才能傳送。這聽起來似乎比分佈式的線路更加不合常理。
在這樣的網絡裡,每個網站的工作就是接收和轉送。就像寄明信片。它規定了每一封信允許的長度,超過這個長度的信被分成不同的「塊」(block)。同一封信,從同一個節點發出,到達同一個目的地卻很可能要被拆散,並且也可能要走不同的路線。。
因此,每一個「塊」都不僅有「塊」的內容,而且還必須做上標記:來自哪裡、傳往哪裡。這些「塊」在網絡中一站一站地傳遞,每一站都有記錄,直至到達目的地。如果某個「塊」沒有送達,最初的電腦還會重新發出這個「塊」。送達目的地後,收到「數據塊」的電腦將收到的所有「塊」「合而為一」,確認無誤後再將收到信件的信息反饋回去,這樣,最初發出數據的電腦就不用再往外寄了巴倫的想法由於適合戰爭的需要,所以正對軍方的胃口,因而受到了重視。同時,這一思想也體現了數據共享網絡的基本特點,直到現在仍然是互聯網最核心的設計思想。
當然,巴倫之所以能夠提出這一革命性的理論,不僅和他本人的才智有關,而且,當時的網絡理論也到了突破的階段。在許多時候,天才是在時代的需要中產生的。因此,不是「英雄造時勢」,而是「時勢造英雄」。從當時不同的人在不同的條件下得出同樣的結論,也可以證明這一點。
英雄所見略同
儘管「分佈式網絡」的想法有悖於常識,也有悖於傳統的網絡理論,然而卻符合科學。因此在當時提出這一理論的不僅僅是巴倫一個人。
如果追蹤朔源的話,首先提出這一思想的應該是美國麻省理工學院的LeonardKleinrock。早在1961年7月,Kleinrock就發表了第一篇有關這方面理論的文章,題目是:「大型通信網絡中的信息流」(Information Flow in Large Communication Nets,RLEQuarterly Progress Report,July 1961)。這比巴倫的報告至少早了半年多。而第一本關於分佈式網絡理論的書也是由L.Kleinrock在1964年完成的,這本書的題目就是:《通信網絡:隨機的信息流動與延遲》(Communication Nets:Stochastic Message Flow andDelay,Mcgraw-Hill,New York,1964)。
更加引人注目的是,就在巴倫提出「分佈式網絡」理論之後不久,1965年的秋天,遠在大西洋另一端的英國,41歲的物理學家D.W.戴維斯(Donald Watts Davies,見右圖)也在考慮建立一個嶄新的網絡理論。
戴維斯出生於一個工人階級的家庭。父親是英國的威爾士一家煤礦的職工,在戴維斯很小的時候就去世了。母親帶著一家人搬到樸次茅斯,自己在郵局做收款員。戴維斯從小就對物理感興趣。據他自己回憶,在他還不到14歲的時候,母親把一位先生忘在郵局裡的書帶回了家。這是一本關於電話系統的結構和設計方法的技術書。他居然津津有味地讀了好幾個小時。
中學還沒有畢業,戴維斯就獲得了幾所大學的獎學金。為此,他所在的中學專門給全校放了半天假以資慶祝。經過幾年的努力,戴維斯在倫敦大學獲得了物理學和數學的學位。1947年,他加入了英國國家物理實驗室(National Physical Laboratory)。在那裡,他對建造當時英國速度最快的電腦做出了重要貢獻。
1954年,戴維斯獲得了去美國做一年研究的資助,其中,他在麻省理工學院還工作了一段時間。然後,又回到了英國國家物理實驗室。
如果不是因為戴維斯根本不認識巴倫,如果不是因為戴維斯事先完全不知道巴倫的工作的話,完全有理由認為他是在抄襲巴倫的思想。因為,他們提出的原理簡直如出一轍。不僅基本的理論框架完全一樣,甚至連數據被分成的每個「塊」的大小,以及數據傳送的速度也被設計得一模一樣。
也許,他們二人的理論的最大區別只在於名字。在巴倫那裡,數據被分成了「塊」。巴倫還給這種把數據拆開來傳送的方法,起了一個非常饒口的名字:
「分佈式可適應信件塊交換」(distributed adaptive message block switching)。而戴維斯起的名字卻真正是經過深思熟慮的。他可以從很多名字中選一個,比如,「塊」、「單元」、「部分」、「節」或者「框」(block,unit,section,segment,frame)等等。但是,最後他還是用了「包」(packet)這個詞。他甚至專門為此請教了兩個語言學家!後來,戴維斯回憶道:
「我當時認為,給分成小塊傳送的數據起一個新名字很重要。因為,這樣可以更加方便地進行討論。我最後選中了「包」,用這個詞來指小的數據包。」直到現在,大家一直沿用戴維斯起的名字,並且把這種數據傳送方式稱作「包交換」(packet switching,不少專業書都按意思譯為「分組交換」)。
也許在巴倫和戴維斯之間還有一個小小的不同。儘管兩人得出的結論是完全一樣的,但是兩人的出發點卻根本不同。巴倫的目的是要為美國的軍隊建立一個用來打仗的網,而戴維斯的目的則是要建立一個更加有效率的網絡,使更多的人能夠利用網絡來進行交流。
又經過半年多的思考,戴維斯確認自己的理論是正確的。於是,1966年春,他在倫敦的一次公開講座上描述了把數據拆成一個一個的小「包」(packet)傳送的可能性。
講座結束後,從聽眾中走出一個人,來到戴維斯的面前,告訴他,自己在英國國防部工作,他的美國同行正在做著與戴維斯一樣的工作,並且得出的結論也完全一樣。在美國主持這項工作的就是保羅·巴倫。
幾年以後,當戴維斯第一次見到巴倫的時候,風趣地對巴倫說:「噢,也許是你先得出結論。不過,是我給起的名字。」
這真是「無巧不成網」。三部分不同的人,在三個不同的地方,在互相完全不知底細的情況下竟然得出了完全相同的結論──遠距離網絡通信必須通過「包交換」來實現。而且,他們的工作幾乎是在同時進行的:Leonard Kleinrock領導的麻省理工學院的工作是在1961年至1967年;P.巴倫領導的蘭德公司的工作是在1962年至1965年;而D.W.戴維斯領導的英國國家物理實驗室的工作則是在1964年至1967年。
這可以說是偶然,也可以說是巧合。但是,更加根本的原因還是在於「包交換」理論的正確。否則的話,三部分人同時犯同樣的錯誤的可能性幾乎是不存在的。而這樣一個正確的理論當然需要在實踐中獲得驗證,同時也需要拿到實踐中去應用。
有了「包交換」的理論,下面的工作就是要按照這一理論,實際建造一個網。
|
|