導航雲台書屋>>百科書籍>>郭良>>網絡創世紀

雲台書屋

第四章 電腦間的談判


  人類的不同集團為了自身的利益要進行各種談判。談判之前,唇槍舌劍;

  談判之中,劍拔弩張;談判之後,握手言和。因為大家總要共同生存下去,所以最終的結果往往是各退一步,然後達成「協議」。

  電腦之間也要談判。比如,美國陸軍要實現電腦化管理,進行了招標,結果DEC公司中了標,陸軍就買了大量DEC生產的電腦;隨後,空軍招標,結果IBM公司中標,空軍使用的就是IBM電腦;海軍當然也要招標,這次是Honewell中了標,海軍就得用Honewell電腦。在60-70年代,還沒有我們現在的PC(個人電腦)概念,大家用的都是大型機、中型機或者小型機等等。誰也不能說這些電腦有問題,他們在各自的系統裡都運行得很好。可是有一天,國防部要想查看他們的系統,這才發現幾個軍種的電腦之間卻不能很好地連接起來。

  儘管「所有電腦生來都是平等的」,但是這些電腦卻不是生來就能相連的。

  究其原因,如果不是最初的設計者疏忽的話,更可能的還是生產者被各自狹隘的商業利益給束縛住了。

  在ARPANET產生之初,大部分電腦互相之間是不兼容的。在一台電腦上完成的工作,別想拿到另一台電腦上去用。要是想讓硬件和軟件都不一樣的電腦聯網,就更不可能。

  為了讓這些「生來平等」的電腦之間能夠分享成果,分享資源,就得在這些系統的標準之上,建立一種共同的大家都必須遵守的標準。這樣才能讓不同的電腦按照一定的規則進行談判,並且在談判之後能夠「握手」言和。

  在確定今天互聯網各個電腦之間的「談判規則」的人當中,最重要的就是瑟夫。正是因為他的努力,才使我們今天各種不同的電腦之間能夠互聯。瑟夫本人也因此獲得了「互聯網之父」的稱號。

  文滕·瑟夫和鮑伯·卡恩

  文滕·瑟夫(Vinton G.Cerf)小時候是個堅強而熱情的孩子,高中加入了後備軍官訓練隊。和許許多多愛出風頭的小孩一樣,瑟夫從小就喜歡標新立異,引起別人注意。在學校的時候,作為後備軍官訓練隊的隊員,他卻經常不穿制服,而是穿著夾克,系一條領帶,還提著一個不小的手提箱。這種裝束雖然有時會受到某些人的白眼,但只要能換來女孩子們注意還是值得的。

  同時,瑟夫也是個極愛讀書的人。在化學課上,他盡顯自己的才華。然而對他來說,真正情有獨衷的還是數學。

  那時,瑟夫的同學和朋友中有一個叫Steve Crocker的。當瑟夫還是中學生的時候,就被允許使用加州大學洛山磯分校的電腦。他和Steve經常在週末到那裡去玩電腦。有一個星期天,他們照例來到電腦室,卻發現門被上了鎖。正當Steve打算回家的時候,瑟夫卻讓他蹲下,踩著他的肩膀從窗子爬了進去。從此,他們就再也不愁電腦室的門被鎖上的問題了。

  瑟夫有一個好父親。高中畢業後,父親的公司給了他4年的獎學金到斯坦福大學去讀書。既然最喜歡數學,他就選擇了數學作為自己的專業。

  然而沒過多久他就發現,最有魅力的還是電腦。

  「為電腦編程序是個非常激動人心的事。你建立一個自己的宇宙,而這個宇宙是由你來管理的。只要把程序編好,就可以讓電腦做任何事情。這簡直就像小孩堆沙子玩的沙箱,裡面的每一粒沙子都在你的控制之下。」(《留住魔跡的地方》第139頁)

  想當領袖的慾望可以在編寫程序的過程中虛擬地實現,這絕對不止是瑟夫一個人愛上電腦的原因。

  1965年,瑟夫從斯坦福大學畢業,到洛山磯的一家IBM公司做系統工程師。而他的那位朋友Steve正在加州大學洛山磯分校讀電腦專業的博士學位。當時,全美國沒有幾所大學有電腦方面的博士課程,最早提出「包交換」理論的Paul Baran就曾經在這裡和Steve的論文導師Jerry Estrin一起工作過。

  由於天生聽力不佳,瑟夫對人們通過聽覺進行的交流有著獨到的見解。他1966年結婚,而新娘的聽力問題竟然比他更嚴重。據新娘介紹,在他們第一次午餐的時候,瑟夫談起電腦就手舞足蹈,這種興奮與後來一起看畫展時找不到感覺恰好形成鮮明的對比。

  在洛山磯工作沒多久,瑟夫就覺得自己的知識不夠用,於是也到加州大學洛山磯分校攻讀博士。當時,Estrin有一個DARPA的電腦研究課題,而這個課題同時也就成了瑟夫博士論文的題目。

  1968年秋天,DARPA在洛山磯分校成立了網絡評測中心,原來Estrin的課題被轉到了由Kleinrock領導的評測中心。這個中心每年的經費達20萬美元,有40多個學生為中心工作。在這些學生中,理所當然地就有瑟夫。

  那時候,洛山磯分校的電腦系有一台Sigma 7電腦。儘管學校還有另外3台IBM 7094大型機,這些大型機比Sigma 7的功能強得多,但是指定研究生們用的就是Sigma 7。也許正因為此,有人把這台Sigma 7稱作「小狗」。然而,這個速度慢,性能不那麼可靠的「小狗」畢竟是給學生用的。正如後來瑟夫所說的那樣,「無論如何,這是我們的小狗。」

  的確,後來(1969年秋),ARPANET的第一台電腦就是這條「小狗」。而大家的工作,就是在這台「小狗」和BBN公司提供的「接口信號處理機」之間,建立一種聯繫。

  瑟夫曾寫過一篇著名的文章:「互聯網是如何形成的」(http://www.u-aizu.ac.jp/~s102106/history/node2.html),對當時的情況作了非常生動的描寫。

  在當時,學校裡有一批年輕人對「網絡評測計劃感興趣。除了瑟夫之外,還有兩位年輕人也非常出色。一位是Michael Wingfield,是他在Sigma 7電腦上建立了第一個與IMP的接口。而David Crocker則是最早為ARPANET和互聯網建立電子郵件標準的人。當然,也少不了在學校電腦中心工作的人參加,他的名字是:Robert Braden。

  此後不久,BBN公司的Bob Kahn(見右圖)也來到加州大學洛杉機分校。是Kahn主持了後來對ARPANET的總體結構設計,為ARPANET的建成做出了巨大貢獻。在那段難忘的時間裡,通常是Kahn提出需要什麼樣的軟件,而Vinton Cerf則通宵達旦地把那個軟件給編出來。然後,他們又在一起測試這些軟件,直到能夠正常運行。

  這個Bob Kahn絕對是天才。他認準的事幾乎沒有不靈驗的。比如,有的時候,大家認為某一種情況絕對不可能發生,而Bob Kahn偏認為一定會發生。結果還就是按Bob Kahn所說的那樣發生了。時間一長,大家也就都信他的了。

  而Roberts則和Howard Frank一起在網絡分析公司(Network AnalysisCorporation)設計和調試網絡的拓撲結構和效率。

  就這樣,由Kahn設計ARPANET的總體結構,由Roberts設計網絡佈局,由Kleinrock準備網絡評測系統,ARPANET可以說是「萬事具備,只欠東風」了。

  RFC:「徵求意見稿」

  然而,事實上,開始的時候ARPANET的計劃並不是一帆風順的。有許多部門(比如AT&T)就認為這事根本就行不通。在搞電腦的這圈人中,也並不都接受這種計劃。即使是提供資金的國防部高級研究計劃處對此也沒有成算。因此,他們一方面讓實驗公開進行而不予保密,另一方面還請了一批和這個計劃沒有任何功利關係的電腦方面權威來評估研究工作的進展。

  的確,參加研究的大多數都是一些還在讀書的研究生,也許他們做夢也沒有想到,正是他們的興趣和愛好使他們加入了創造歷史的行列。同時,由於他們都年輕,沒有經驗,也沒有地位。因此,需要把自己的工作告訴別人,也需要聽取別人的意見和建議。於是,他們發明了一種方式,把自己的想法和遇到的問題公開發表出來,引起大家討論。1969年4月,當時還是研究生的Steve Crocker刊印出第一份著名的「徵求意見稿」(RFC:Request ForComments),題目是「主機軟件」。

  這份「徵求意見稿」的意義極為重大,開了「互聯網式的討論」的先河。本來,互聯網(尤其是開始的ARPANET)是軍隊的資金和學校的智慧相結合的產物。

  可是這種討論既不是軍隊式的,也不是學院式的。美國大學的學術傳統比較開放,通過刊印「徵求意見稿」的方式把這種開放的傳統帶到了比較封閉的軍隊中來。

  所有人都可以看到「徵求意見稿」,也都可以參加到討論中去。而另一方面,美國大學的研究比較正統。有一套清規戒律。可是,由於這種刊印的方式不那麼正式,內容也不那麼正規,只是在「徵求」,因此,也不完全像是學院式的討論。

  而這種不那麼正規的討論也更加增添了開放的色彩。

  並且,這種方式還非常適合對問題的深入研究。每一份「徵求意見稿」都會收到一些反饋回來的信息,如果反饋的意見足夠多的話,又有可能產生新的「徵求意見稿」。後來的許多與互聯網有關的工作都繼承了這樣的方式。雖然第一份「徵求意見稿」是印刷出來發給大家的,但是當ARPANET真正投入運行,人們可以方便地從網絡上傳輸文件以後,這種方式更加受到大家的歡迎,也流傳得更加廣泛了。通過網絡來傳輸「徵求意見稿」,使得這種開放的討論方式得到了更好的發揮。並且,由於這種開放性,也使互聯網的影響更加擴大。

  這個刊印「徵求意見稿」的傳統一直堅持到現在,至今已發表了數千篇。幾乎討論過互聯網中的所有問題和解決方案。我們通過這些文章就可以瞭解互聯網技術的整個發展進程。而這些文章都可以從互聯網上找到。我們甚至不必從互聯網上把所有這些文章都取回來研究,哪怕是取回這些文章的目錄,對方的服務器都會提出警告:取這個目錄要花很長的時間,因為即使是目錄也太長了!或許,我們不必做其它的研究,只要真正坐下來,好好讀一讀這些「徵求意見稿」,就可以瞭解到美國人幾十年來對互聯網投入了多大的精力,做了多少工作。而且,要知道,其中的絕大多數文章都是在不計功利、不計報酬的情況下完成的。

  NCP:網絡傳輸協議

  早在1965年,Larry Roberts和Thomas Merrill第一次將兩種不同的電腦連接在一起之後,Merrill就把這時傳送文件的方式稱作「協議」(Protocol)。一個同事問他,為什麼用「協議」這個詞。他說,「我覺得這像是在搞外交。」

  正是在ARPANET的試運行過程中,才發現各個IMP連接的時候,需要考慮用各種電腦都認可的信號來打開通信管道,數據通過後還要關閉通道。否則這些IMP不會知道什麼時候應該接收信號,什麼時候結束。這也就是我們現在說的通信「協議」的概念。1970年12月,針對這一問題,由S.Crocker領導的網絡工作小組(NWG)著手制定最初的主機對主機的通信協議。

  這個協議被稱作「網絡控制協議(NCP)。

  由於有了網絡控制協議,ARPANET的運行就有了標準,網絡的用戶也就可以根據各自的需要,開發自己的應用軟件了。

  從那時起,對互聯網的研究一直遵循著理論與實踐相結合的方式。既研究網絡的基礎原理,同時也開發對網絡的應用。這個至關重要的傳統一直保持到現在。

  也正因為這兩方面的互相促進,使互聯網既沒有僅僅成為科學家實驗室中的理論模型而不得推廣,同時又使互聯網的應用始終能夠得到正確的理論指導。

  既然ARPANET工作良好,聯入ARPANET的電腦也就日益多起來。也就是在這個時候,怎樣讓不同類型的電腦聯結起來的問題就顯得突出起來。換句話說,如何讓這幾十台結構不同的電腦按照共同的方式、共同的標準來聯接,成了ARPANET的關鍵問題。實際上,這也是後來的互聯網的關鍵問題。沒有一個共同的標準,怎樣才能「互聯」?如果不能互聯,哪來的互聯網?

  可是,要建立這樣一種共同的標準有多麼不容易!要知道,這些電腦本來就被設計成不一樣。我們甚至不必去理解各種大型機、小型機的運算原理,也不必去理解一個大型的網絡是如何連接,只要看一看今天蘋果電腦和IBM電腦之間的不兼容,看看不同軟件之間的不兼容,看看甚至微軟公司自己生產的同一種軟件的各個版本之間的不兼容,就可以想像要把各種不同類型、不同型號的電腦和網絡連在一起有多麼困難。

  自從1972年10月份的國際電腦通信大會結束後,大家都在為如何設立這個「共同的標準」而開動腦筋。「信包交換」的理論為網絡之間的聯結方式提供了理論的基礎,可是怎樣讓那些不同型號、甚至不同操作系統的電腦和網絡按照同一個標準、同一種方式聯結起來,讓每一個電腦用戶可以與網絡上的任何電腦通信,並且還不必知道對方的電腦和操作系統是什麼,更不用知道背後的技術原理,就不是一件容易的事。

  如前所述,1970年12月,S.Crocker在加州大學洛杉機分校領導的網絡工作小組(NWG)曾經制定出「網絡控制協議」(NCP)。他也正是一年多前寫出第一個具有歷史意義的「徵求意見與建議(RFC)的人。開始,這個協議還是作為信包交換程序的一部分來設計的,可是他們很快就意識到關係重大,不如把這個協議獨立出來為好。還給起了一個名字,叫做「網絡之間」(Internetting)的程序。

  那個時候,天才的Kahn也為臨時需要而開發過局部使用的「網絡控制協議」。

  既然是局部使用,就不必考慮不同電腦、不同操作系統之間的兼容問題,因此也就簡單的多。

  無論如何,「網絡控制協議」不過是一台主機直接對另一台主機的通信協議,實質上是一個設備驅動程序。要想真正做到將許多不同的電腦、不同的操作系統連接起來,還有許多事情要做。首先得給每一台電腦分配一個唯一的名字,這樣別的電腦才能把這台電腦給「認」出來。用專業一點的話說,就是要給網絡上的每一台電腦定義一個「地址」。

  而且,Crocker和Kahn搞出來的「網絡控制協議」也都沒有糾錯功能。要是在傳輸中出現了錯誤,他們的協議就規定網絡停止傳輸數據。這次傳輸也就失敗了。

  一開始的時候,那些「接口信號處理機」被用在同樣的網絡條件下,相互之間的連接也就相對穩定,因此沒有必要涉及控制傳輸錯誤的問題,也很難想到這個問題。

  可是,隨著聯入ARPANET的電腦數量的增加,就需要有一種新的協議來管理網絡之間的連接。「網絡控制協議」(NCP)作為一個設備驅動程序來驅動「接口信件處理器」還可以;可是要想真正能夠管理網絡通信,還需要更加完善的協議。

  Kahn首先為設計這種新的網絡通信協議,確定了四項基本原則(http://www.isoc.org/internet-history/):

  *「每一個獨立的網絡必須按自己的標準建立起來,當這個網絡和互聯網連接的時候,不需要在其內部做任何改動。

  *應該在最佳的狀態下完成通信。如果一個信包沒有到達目的地,最初發出信包的節點將很快再次發出該信包。

  *在網絡之間進行互相連接的時候,將使用「黑匣子」。這裡所謂的「黑匣子」後來被稱為「網關」和「路由器」。將不保留通過網關的每一個信包的任何信息。

  由此,使網關變得簡單,即使出現各種失誤也避免在網關進行複雜的改編和恢復工作。

  *整個互聯網不需要在操作的層面上有任何總體控制。」

  Kahn以前在BBN公司工作的時候就一直研究具有通信功能的操作系統原理,現在,這些研究正好用得上。BBN公司在1972年就把他的這些想法刊登在BBN公司的內部讀物上,題目是:「操作系統的通信原理」(R.Kahn「Communications Principles for OperatingSystems」.InternalBBN memorandum,Jan.1972)。這些思想顯然對最初互聯網的總體設計和建設起了決定性的作用。

  但是,理論上認識到建立一種共同的協議的重要性是一回事,要真正建立具體的這樣一個協議又是另一回事。首先,Kahn在自己研究的基礎上,認識到只有深入理解各種操作系統的細節,才可能將建立起一個對各種操作系統普遍適用協議。這已經不是他一個人所能完成的了。從1973年的春天開始,Kahn請Vinton Cerf和他一起考慮這個協議的各個細節。

  TCP/IP:傳輸控制協議和互聯網協議

  Vinton Cerf不僅參與過「網絡通信協議」(NCP)的設計,而且對現有的各種操作系統的接口也非常瞭解。所以,Kahn把自己關於建立開放性網絡的指導思想和Vint Cerf在NCP方面的經驗結合起來,一起為ARPANET開發新的協議。

  而他們這次合作的結果,就是我們現在還一直在使用的「傳輸控制協議」(TCP)和「互聯網協議」(IP)。

  從1972年11月開始,Vinton Cerf也獲得了斯坦福大學電腦科學與電子工程的助教職位。這無疑是一個很好的機會。Vinton Cerf在那裡組織了一系列的專題討論。大家通過討論,對建立一種新協議有了更加深刻的認識。當時參加這些專題討論的學生後來有不少都成了專家。其中,Richard Karp寫出了第一份TCP原代碼;Jim Mathis也研究互聯網的協議,後來為蘋果電腦寫出了專為蘋果電腦用的傳輸控制協議:MacTCP;Derryl Rubin後來成了微軟公司的副總裁;Ron Crane當時為Vinton Cerf管理斯坦福實驗室的硬件,後來也到蘋果電腦公司擔任了一個重要職位。

  就這樣,Vinton Cerf在斯坦福大學的實驗室裡完成了對TCP協議的初始設計工作。

  1973年9月,Vinton Cerf以主席的身份,在Sussex大學組織召開了「國際網絡工作小組」(INWG)特別會議。在這次會議上,Vinton Cerf與Kahn提交了第一份關於TCP協議的草稿。這篇草稿以論文的形式於1974年5月在電氣、電子工程研究院(IEEE)刊印出來,題目是:「分組網絡互聯的一個協議」(V.G.Cerf and R.E.Kahn,「A protocol forpacket network interconnection」IEEE Trans.Comm.Tech.,vol.COM-22,V 5,第627-641頁,1974年5月)。同年12月,Vinton Cerf和Kahn關於第一份TCP協議的詳細說明作為「互聯網實驗報告」正式發表。

  這時,ARPANET上已經連接了40個節點(NODES),一共45個網站。兩年以前的1972年,在ARPANET上每天的數據流通量大約是1百萬個信包,而這時已經達到每天二百九十萬個信包。並且,還有一個節點通過衛星電路從加利弗尼亞州連到了夏威夷。挪威和英國也通過低速電纜連到了ARPANET上。

  在Winton Cerf和Kahn當時提交的報告中,還沒有將「傳輸控制協議」(TCP)

  和「互聯網協議」(IP)區分開來。所以他討論的只是一個「傳輸控制協議」(TCP),而不是TCP/IP協議。該協議負責在互聯網上傳輸和轉發信包。Kahn開始的時候認為可以通過「傳輸控制協議」直接在ARPANET上傳送信包。然而,這實際上只是一個「虛擬線路」模式(virtual circuit),而不是真正的「包交換」模式。這種模式在通常的遠距離聯入和傳輸文件的時候沒有什麼問題,但是在後來一些特殊的實驗中證明,使用這種協議有時丟失信包的情況沒有得到糾正。

  因此,他們認識到,應該建立兩個不同的協議。一個是「傳輸控制協議」(TCP),另一個則是「互聯網協議」(IP)。這也就是現在通常所說的:「TCP/IP協議」。

  實際上,這兩個協議的任務是不同的。

  就像電影院散場的時候擁擠,而平常的時候則人少,網絡中的通信量也會時大時小。通信量過大的時候,就會造成「溢出」,信號就無法傳到目的地了。因此,在數據傳輸的過程中需要有一種共同的標準來檢測網絡傳輸中的差錯。如果發現問題,就發出信號,要求重新傳輸,直到所有數據能夠安全傳輸到目的地。

  這個協議就叫「傳輸控制協議」(TCP)。

  同時,就像寄信要有地址,打電話要有電話號碼一樣,網絡中的每一台電腦也必須有自己的網絡地址,否則別的電腦就找不到它。雖然在互聯網之前,已經有各種網絡出現,我們現在各個單位的內部也有不同標準、不同方式的局域網。

  要使所有電腦都能相連,就得有建立在各種局域網的地址標準之上的各個網絡之間的聯絡標準。這就是所謂的互聯網協議(IP)。

  互聯網協議的任務是給互聯網中的每一台電腦規定一個地址,這樣,才可能在網絡的眾多電腦中對「這一個」電腦定位,其它電腦才可能對它進行訪問。我們通常把由互聯網協議規定的網絡地址稱為「IP地址」。

  如果說在互聯網中多少還有一點管理,多少還有一點權威的話,也許這種管理就僅僅體現在對IP地址的管理上了。電腦不能像人那樣,想起什麼名字就起什麼名字。在社會生活中,同名同姓至多引起一些笑話。而在網絡中,如果不同的兩台電腦有相同的地址,就無法給他們送信了。所以總要有一個機構給網絡中的電腦起名──規定一個IP地址。

  當時的ARPANET還是一個相對來說比較小的美國國內的網絡。本來只要用比較小的數字就可以定義了。值得慶幸的是,定義IP地址的人不僅「胸懷美國」,而且「放眼世界」,從一開始就把IP地址設計成32位的。前8位用來定義所在的網絡,後24位則用來定義該主機在當地網絡中的地址。

  當時,美國國防部一共簽了三個合同來完成TCP/IP協議。一個合同給了斯坦福大學由Vinton Cerf領導的小組;另一個給了BBN公司由Ray Tomlinson領導的小組;還有一個則給了加州大學洛杉機分校PeterKirstein的小組。Vinton Cerf的小組捷足先登,首先制定出了經過詳細定義的TCP/IP協議。經過不到一年的時間,這三個小組都獨立地完成了對各自的TCP/IP協議的設計。

  1974年5月,ARPANET由美國國防高級研究計劃處轉交給國防通信處(DCA:DefenceCommunication Agency),也就是現在的國防信息系統處(DISA:Defence InformationSystem Agency),正式運行起來。

  DARPA從一開始就沒有把ARPANET當作是唯一的目的,實際上,ARPANET只是長期計劃中的一個部分。這個計劃的開始是要建立三種不同的網絡:一個是ARPANET,另一個是無線電信包網(Packet Radio),還有一個則是衛星信包網(Packet Satellite)。最後的任務是將這三個網絡連接起來。

  當三個網絡都已經相對成熟的時候,就可以進行網絡之間的互聯實驗了。到1977年的7月,ARPANET上已經有了111台電腦,DARPA組織了第一次三個網絡之間的互聯。雖然這次實驗已經超出了ARPANET,但仍然是由美國國防部提供資金。信包首先通過點對點的衛星網絡跨越了大西洋到達挪威,又從挪威經過陸地電纜到達倫敦;然後再通過大西洋信包衛星網絡(SATNET),經過SCPC系統,分別由Etam、西弗吉尼亞、Goonhilly DownsEngland、Tanum和瑞士的地面站傳送再回到美國。全部路程要經過9萬4千英里,比單純在ARPANET上的800英里要長得多。

  令人不可思議的是,經過了9萬4千英里的傳輸,竟然沒有丟失一個數據位!

  要知道,在電腦上,每一個英文字母佔一個字節(byte),而每一個字節通常是由7個數據位(bit,也就是「比特」)加上一個校驗位構成的。這麼遠的距離能夠如此可靠地傳輸數據,由此也證明了TCP/IP協議的成功。

  從1978年到1979年,軍隊系統對互聯網技術表現出極大的興趣。通過無線電信包系統和衛星信包系統完成的TCP/IP協議也日趨成熟。這需要進一步加強管理。

  於是,Vinton Cerf為國防高級研究計劃處組建了「互聯網設置管理處」(ICCB),幫助他們規劃和執行TCP/IP協議的最新進展。這個機構由麻省理工學院的David Clark擔任主席,其中有許多頂尖的研究專家,為TCP/IP的發展做出了貢獻。

  後來,Barry Leiner又把這個機構改為互聯網活動處(IAB),這也就是現在互聯網協會的互聯網計劃處的前身。

  那時還不像現在。開始的時候,所謂電腦都是一些巨大的功能極強的計算機器。而設計TCP/IP協議的本來目的也是為比較大型的分時系統使用的。可是,在電腦網絡發生一場革命的同時,電腦本身的革命也悄悄開始了。自從喬布斯在父親的舊車庫裡製作出第一台電腦個人電腦以後,人們對「電腦」的理解在不斷發生變化。隨著「個人電腦」概念的深入人心,各種功能的電腦走進了辦公室和家庭之中。這真是「舊時王謝堂前燕,飛入尋常百姓家。」

  因此,需要設計一種更加小型的、不那麼複雜的「傳輸控制協議」來為個人電腦服務。麻省理工學院的David Clark帶領他的研究小組首先論證了建立一種相對簡單的「傳輸控制協議」的可能性。他們先為當時的一種個人工作站設計了「傳輸控制協議」,隨後又為IBM的個人電腦設計「傳輸控制協議」。「麻雀雖小,五臟俱全」。經過時間的證明,這些協議雖然簡單,但仍然能夠很好地工作,並且能夠與其它大型的「傳輸控制協議」很好地配合。

  「傳輸控制協議」不僅可以用於大型電腦和網絡系統,而且也完全適用於個人電腦。這對廣大的個人電腦用戶來說,無疑是一個喜訊。因為,從此以後,個人工作站、個人電腦不再受到歧視,也可以像大型電腦一樣加入到互聯網中。這是我們大家現在從家裡就可以通過電話線聯入互聯網的理論基礎。

  隨著80年代個人電腦開始大量進入家庭,互聯網的用戶迅速增長起來,TCP/IP協議也開始面臨一系列新的問題。一個是如何使一般用戶使用互聯網地址(IP)

  的問題;一個是應用軟件,尤其是主機軟件的問題;還有一個就是如何從開始的「網絡控制協議」(NCP)轉換到「傳輸控制協議」和「互聯網協議」(TCP/IP)

  的問題。

  首先是定義地址的方式問題。正如前面談到過的,各種電腦是通過TCP/IP協議聯入互聯網的。「互聯網協議」的標準格式由4個部分組成,每個部分至多有3個數字。因此,每部分的總數不可能超過256個。比如,中國郵電部的CHINANET在北京撥號入網服務器的IP地址就是:202.96.0.133。這種地址分成不同的等級。

  B級地址由IP地址的前兩個部分組成,規定了當前使用網絡的管理機構,用B級地址一共可以定義64萬個地址。而C級地址則由IP地址的後兩個部分組成,是當前所使用的電腦在這個網絡中的地址。其中,IP地址的第三部分規定了當前使用的網絡的地址,而最後一部分則規定了當前使用的電腦的地址。

  域名當專家們津津樂道這些IP地址的時候,普通人卻對此很難有什麼感覺。大家記電話號碼已經很不容易,要想記住許多這種數字式的IP地址幾乎是不可能的事。

  即使對於專家來說,用數字來定義IP地址也不是一個應用上的好主意。

  我們日常使用的是語言,而語言是由具有含義的單字組成的。因此,除了機器能懂的數字以外,我們還需要有另一種定義地址的方式。這種方式不應該是數字式的,而應該由具有含義、容易記憶的字母組成。並且,這種字母的方式應該和數字的方式完全等值,並且可以互換。每一個數字式的IP地址都有一個相應的字母式的地址;反過來,通過一個字母式的地址也可以查到相應的數字式的IP地址。也許對與專家來說,互聯網上每台電腦的名字是一串數字,但是,對於一般人來說,則應該是相對容易記憶的字符。

  我們應該感謝USC/ISI的Paul Mockapetris,是他發明了這樣的一種轉換系統,使我們可以在不知不覺中使用自己熟悉的語言,讓電腦自己把這種語言轉換成電腦能懂的數字式的IP地址。這個系統被稱作是「域名系統」(DNS:Domin Name System)。

  域名系統一般也是由不同的部分組成,而且不一定只是四個部分。每部分同樣由「."(讀做「dot」)隔開。比如,Chinanet的域名地址就是:ns.bta.net.cn,這是和202.96.0.133完全等值的。「牛津大學中國問題研究中心」的域名地址則是:cmcs.ox.ac.uk。這個地址也可以寫成:centre-mordern-chinese-studies.oxford.ac.uk。

  由此可以很容易地看出,這些字母是有含義的。最後一位通常表示這個地址所歸屬的國家或機構。

  表示各種機構的地址名稱通常有:

  org................組織

  mil................軍隊

  com............商業機構

  gov............政府部門

  edu............教育部門

  表示國家或地區的地址名稱就很多了,比如:

  cn.................中國

  uk.................英國

  hk.................香港

  長痛不如短痛

  正是由於TCP/IP協議的出色表現,1980年,軍隊決定將TCP/IP協議作為軍隊推薦的協議來使用。不過,「上有政策,下有對策」,有人「推薦」是一回事,用不用則是另一回事。讓人們改變過去的習慣去適應一種新的技術往往是困難的,仍然有一些單位繼續使用NCP協議。

  幸好,國防部的官員也懂得「長痛不如短痛」的道理,既然TCP/IP協議與NCP協議相比有著明顯的優越性,就應該果斷地用TCP/IP來替換NCP,拖的時間越長,問題也就越多。軍隊就應該有雷厲風行的作風。為此,在1982年的時候,軍隊終於做出決定:整個ARPANET上使用的系統都必須從網絡控制協議(NCP)轉換到TCP/IP協議上來。這個決定同時也是向人們表示將ARPANET的協議從NCP轉換到TCP/IP的選擇已經成為定局。

  即使作出了這樣的決定,要讓大家同時都使用TCP/IP,仍然不是一件容易的事。這需要小心、謹慎、仔細地完成轉變工作。經過精心的策劃,選擇了雙管齊下的方針。他們開了兩組通道:一組通道繼續使用NCP協議,另一組通道則使用TCP/IP協議。這樣就有可能讓ARPANET暫時關閉某一個通道而只允許使用另一個通道。既起到了警告的作用,又不至於突然強行中斷而影響工作。年中的時候,ARPANET將所有NCP協議的通道關閉了一整天。使用TCP/IP協議的單位當然沒有問題,而繼續使用NCP的單位則遭了殃,一下子收到了大量用戶埋怨的信件。

  對於那些頑固不化的機構,暫停NCP被證明是一個好方法。當年秋天,ARPANET的NCP通道又被停了兩天。這樣,再有頑固的人,也很難堅持下去了。誰能受得了這種用用停停的局面呢?誰知道什麼時候該連續停三天了呢?那些頑固堅持NCP的人,終於讓自己的習慣服從了科學的選擇。

  1983年的1月1日,被稱為是互聯網發展過程的一個「記念日」(flag-day)。

  因為,從這一天起,ARPANET永久性地停止使用「網絡控制協議」,從此以後,在互聯網上的所有主機之間有著共同的協議,這些主機的連接必須遵守同樣的規則,這個協議或者說規則就是TCP/IP。

  我們在前面說過,互聯網的理想,就是實現對所有電腦、對所有操作系統的「開放性」,使所有電腦都可以在互聯網上共享資源。而這種理想的實現,在很大程度上應該歸功於TCP/IP協議。正是由於有了這兩個協議,才使互聯網得到了如此巨大的發展,也正是這兩個協議,使互聯網上的通信得到了保證。

  1997年,美國授予當時發明和定義TCP/IP協議的Vinton G.Cerf和Robert E.Kahn「國家技術金獎」(http://www.sciam.com/0697issue/0697medal.html),無疑是對互聯網的發展和作為互聯網基礎的TCP/IP協議的最佳褒獎。

  有了可靠的通信手段,當然是為了使用。然而,出乎美國國防高級研究計劃處意料之外、同樣也出乎設計互聯網的那些電腦專家意料之外的是:在ARPANET上使用最為普遍,也最為有效的竟然是可以給私人之間通信的「E-mail」。
上一頁 b111.net 下一頁
雲台書屋