在全球資訊網誕生前,網路世界充滿如BBS般的資訊孤島,並一度陷入歐洲OSI與美國TCP/IP標準互不相容的「通訊協定之戰」。CERN實驗室最終克服歐洲國家的政治考量,果斷擁抱TCP/IP協定。在此背景下,提姆・伯納斯-李對早期階層式檔案傳輸(FTP)的局限感到不滿,開始在喝咖啡的空檔構思一種路徑獨立的全新資訊架構,最終成為改變世界的偉大發明。
孕育全球資訊網:CERN 實驗室的劃時代構想
個人電腦革命讓全球的一般人也能擁有電腦。1982 年,賈伯斯首次登上《時代》(Time)雜誌封面。那時的個人電腦功能極其有限,完全無法與今日相比,螢幕通常只有單色,而且沒有硬碟,必須插入軟碟才能跑基本的程式。即使能連線,也只能透過慢吞吞的數據機連上BBS 電子布告欄,還會占用家裡電話線好幾個小時。
BBS 社群是由一群志趣相投的使用者組成,管理員通常稱為站長或「系統操作員」(SysOps)。在1980 年,連上BBS前必須先啟動終端軟體,輸入撥號指令,撥打特定號碼,並耐心等候數據機傳來刺耳、嘶鳴的聲音,一旦聽到這個訊號,就代表連線成功。一進入BBS,你會看到文字版的歡迎畫面,接著可以用鍵盤操作選單,瀏覽討論區,下載檔案,玩一些完全以文字為介面的遊戲,或是跟其他使用者聊天。
BBS 是最早的公開線上社群,很有趣,深受使用者喜愛,但因為站與站之間無法互通,每個站其實都是一個資訊孤島。像CERN 這樣的地方,連線情況稍微好一些。我們有區域網路( Local Area Network, LAN),而且是全天候開啟,可以與整個園區內的其他電腦連線。我們也有內部訊息系統,檔案與技術資料的傳輸速度也比較快。每一個人在各台主機上都有專屬的使用者名稱、密碼和帳號。我的使用者名稱是「timbl 」,從那時起,我在任何地方幾乎都使用這個代號。到了1980 年代中期,網路領域最大的問題是:如何讓一個區域網路對話,例如用CERN 的LAN 連接史丹佛大學的LAN。數據傳輸起初靠電話線,在1988 年第一條橫跨大西洋的光纖海底電纜架設完成後,傳輸就更加便利。一旦這些系統互相串連,就不再只是「區域網路」,在網網相連之下,它們交織成一個規模龐大的網中之網,也就是今天所說的「網際網路」( Internet )。
但問題來了:如果想讓這些原本不相連的系統彼此溝通,應該使用哪一種語言,或者說「通訊協定」(protocol )?儘管早在1970 年代之交,美國五角大廈的電腦工程師就已經奠定網際網路的基礎,打造出最早的硬體設備,並完成最初的跨網路連接機制,但是到了1980 年代,全球網路對於應該使用哪一種「共同語言」,各方的意見仍然分歧。在我看來,設計最好的通訊協定是結合傳輸控制協定(Transmission Control Protocol)與網際網路協定(Internet Protocol )的TCP/IP。這套協定的開發者是美國網路工程師文特・瑟夫(Vint Cerf )和羅伯特・卡恩(Robert Kahn),我後來還有幸親眼見到這兩位「網際網路之父」。他們的協定是利用「封包」(packets ),在通訊的一端將資訊拆解成小區塊,傳送之後在另一端重新組合成可解讀的資料。這種做法很巧妙,因為封包到達的先後順序無關緊要,哪怕某個封包因故延遲也沒問題。這種「封包交換」涉及排隊理論,正如同小時候父親領著我們排隊輪流踢球時要傳達的道理。事實證明,這的確是一種優雅而且穩定的資訊傳輸方式。
美國國防部在1981 年採用IP 位址,是這個系統最早的大用戶。因此,很多歐洲人把TCP/IP 系統跟五角大廈聯想在一起,但五角大廈在當時的歐洲風評不佳,以致於CERN 內部最初對它有所疑慮。在CERN,不少人主張採用另一套名為「開放系統互連模型」(Open Systems Interconnection, OSI)的網路通訊協定。這套協定的開發單位是總部設於日內瓦、曾制定全球貨櫃尺寸等標準的國際標準組織(International Standards Organization, ISO)。當時歐洲各國在強烈的政治動機下,積極推動ISO 體系,然而此舉有一個嚴重的弊病:它與TCP/IP 互不相容,兩者完全無法以相同的原生語言溝通。
在網際網路發展的歷程中,這個痛苦的時期被稱為「通訊協定之戰」(protocol war)。幸好,在CERN 內部,有人大力推動TCP/IP 協定。班・西格爾(Ben Segal )是CERN 的網路布道者,他在組織內部苦心推廣多年,極力主張放棄國際標準,改用美國的新興標準。西格爾凡事認真,致力於建立一個統一的網路系統,不希望出現美國版和歐洲版互不相容的局面,畢竟語言問題已經足夠複雜。他甚至請網際網路之父瑟夫過來演講,介紹IP 系統的優勢。最終,西格爾終於說服眾人。
到了1988 年,CERN 裡的每一個人都有一個能連上網際網路的電子郵件地址。(OSI 協定逐漸被冷落,最後慘遭淘汰。)電子郵件是網際網路的第一個「殺手級應用程式」(killer app ),CERN 的每一個人都在使用。另一個大受歡迎的應用程式是新聞群組(newsgroups),功能有點類似今天的網路論壇平台Reddit,但採用分散式架構,沒有中央伺服器。另一個應用程式是Telnet,提供遠端登入功能,讓使用者可以透過網路來存取和控制其他電腦。FTP( File Transfer Protocol,檔案傳輸協定)是另一個應用,讓你能透過專用的FTP「客戶端」程式連接FTP「伺服器」,遠端傳送和接收檔案。之所以用「客戶端」這個詞,是因為就像律師的客戶使用律師提供的服務,FTP 的客戶端也使用FTP 伺服器提供的服務。
無論是Telnet、電子郵件、新聞群組,或是FTP,這些應用都必須透過各自獨立的專用應用程式才能執行,但這些程式都不太好用,而且FTP 伺服器採用自上而下的階層式資訊組織架構,與網際網路提倡的路徑獨立原則背道而馳。我白天忙著為CERN 的各種設備撰寫程式,在暫時放下工作喝杯咖啡的休憩時間,我開始緩慢構思一種截然不同的方式。我從來沒有什麼石破天驚的「靈光乍現」,只是讓一個想法在歲月中逐漸沉澱、悄然成型。這個想法支撐我堅持下去,最終開花結果,成為改變世界的發明。