contributed by <kaeteyaruyo
>
Computer Networking
從 1.1 到 1.6, 我們簡單的看過了一些在網際網路中會用到的電腦網路技術,這些東西足夠騙騙你的家人和朋友們了。但如果你真的想讓別人覺得你是一個大師,那你可能需要在聊天的內容中加入一些迷人的網際網路發展史才行 [Segaller 1998]。
電腦網路領域以及網際網路的起源可以追溯到 1960 年代早期,當時電話網路還是主宰全世界的通訊網路。我們在 1.3 節有提到,電話網路是使用電路交換 (Circuit switching) 的方式在收發信的雙方之間傳遞資訊的 —— 對於音訊這種可以用穩定的傳輸速率傳送的訊號,這是一個很合理的選擇。 1960 年代早期,隨著電腦的重要性逐漸提高,以及分時系統 (timeshared computers, 意即多人分不同時段共用同一個運算資源的系統) 的出現,人們自然而然地就有了「我們該把電腦串在一起」這樣的想法,如此一來這些電腦才能被一群地理位置上分散各處的使用者們共享。這些使用者產生出來的流量應該會是叢發性的 (bursty), 也就是事件會間斷性的發生,例如:使用者可能會傳送一個指令到遠端的電腦,接著在一段時間內什麼事都沒做,因為他正在等待回覆或是正在看著收到的回覆思考中。
世界上有三組不同的團隊開始發展封包交換的技術,希望可以發明出一個更有效率、且更可靠 (robust) 的傳輸方式來取代封包交換,他們彼此都不知道其他人也在做一樣的事。[Leiner 1998] 第一個有關封包交換技術的論文是由 Leonard Kleinrock [Kleinrock 1961; Kleinrock 1964] 提出的,這個人後來從麻省理工學院畢業。 Kleinrock 在他的作品中,應用了排隊理論巧妙地展示了封包交換技術能如何有效地傳輸叢發性的流量。1964 年,蘭德公司 (Rand Institute) 的 Paul Baran [Baran 1964] 開始研究封包交換可以如何應用在軍用網路中安全地傳輸聲音訊號;另一方面,英國國家物理實驗室 (National Physical Laboratory in England, NPL) 的 Donald Davies 和 Roger Scantlebury 也開始發展他們在封包交換技術上的構想。
在 MIT, Rand 和 NPL 發展出來的這些作品,為現今的網際網路奠定了基礎。但網際網路也是有很長一段時間,是在一個「喔我們來蓋個網路然後給別人看看ㄅ」這樣的精神下發展出來的,這段歷史同樣可以回溯到 1960 年代。J. C. R. Licklider [DEC 1990] 和 Lawrence Roberts,這兩個人都是 Kleinrock 在 MIT 的同事,他們後來跑去美國國防部的高等研究計劃署 (Advanced Research Projects Agency, ARPA) 負責主導電腦科學研究專案。Roberts 發表了 ARPAnet 的總計畫書 [Roberts 1967],ARPAnet 是世界上第一個封包交換網路,也是今天的網際網路的前身。在 1969 年的勞工節,世界上第一個封包交換機在 Kleinrock 的監督下被安裝了在 UCLA,不久後又有另外三台分別被安裝了在 Stanford Research Institute (SRI)、UC Santa Barbara,和 University of Utah (Figure 1.26)。這個網際網路最早最早的前身,直到 1969 年底時就只有四個節點大而已。Kleinrock 回憶當初他們使用這個網路交換的第一個封包,是一個嘗試從 UCLA 遠端登入 SRI 電腦的指令,一跑下去系統就崩潰了(XD)[Kleinrock 2004]。
Figure 1.26 早期的封包交換機。
到了 1972 年,ARPAnet 已經長到了 15 個節點大,並首次由 Robert Kahn 公開展示給大眾。當時,第一個 ARPAnet 終端系統用的點對點 (host-to-host) 網路協定「網絡控制協定 (network-control protocol, NCP)」已經完成了 [RFC 001]。有了點對點協定,我們就可以開發應用程式。第一個 email 應用程式,就是 Ray Tomlinson 在 1972 年寫出來的。
最早的 ARPAnet 是一個單一、封閉的網路。如果想要跟 ARPAnet 當中的某一台主機通訊,該使用者就必須要實際連接另一個 ARPAnet IMP 才行。在 1970 年代中期,數個有別於 ARPAnet 的獨立運作的封包交換網路相繼誕生了:
在這段期間,網路的數量逐漸增多。以後見之明來看,可以說當時正是一個發展將不同網路串接在一起的涵蓋性架構 (encompassing architecture) 的好時機。在美國國防高等研究計劃署 (Defense Advanced Research Projects Agency, DARPA) 的投資下,首先開始研究如何將網路串接起來(本質上就是創造一個網路的網路)的領頭羊,就是 Vinton Cerf 和 Robert Kahn [Cerf 1974]。 "Internetting" 一詞被創造出來,就是用來描述這個工作用的。
這個架構當中的原理原則被體現在 TCP 協定當中。不過,早期版本的 TCP 和現在的 TCP 有很大的不同。在早期版本的 TCP 當中,利用終端系統重送機制達成的可靠有序封包交換(現在的 TCP 當中也有的功能)和封包轉發功能(現在被移到 IP 當中)是被結合在一起的。一些早期的 TCP 的實驗,再加上人們發現了非可靠、無流量控制、端到端的傳輸服務對一些如封包化聲音訊號傳輸應用的重要性,導致了後來 IP 被從 TCP 當中分離出來,以及 UDP 協定的發明。現今網際網路中可以稱為御三家的三個網路協定:TCP、UDP 和 IP,就這樣在 1970 年代末期被發展完成了。
除了 DARPA 的這些跟網際網路有關的研究,也有其他跟網路有關的重要事件在這段期間發生。在夏威夷 Norman Abramson 正積極開發 ALOHAnet,這是一個基於封包交換的衛星網路,他讓夏威夷諸島上的多個終端可以跟彼此通訊。ALOHA 協定 [Abramson 1970] 是第一個允許多重存取的電腦網路協定,它允許地理位置上分散各處的使用者可以共享同一個廣播傳輸介質(也就是無線電頻率)。以 Abramson 的多重接取協定為基礎,Metcalfe 和 Boggs 為有線的共享廣播網路開發出了乙太網路協定 (Ethernet Protocol) [Metcalfe 1976]。有趣的是,Metcalfe 和 Boggs 的乙太網路協定是為了想要把一些個人電腦、印表機和共享硬碟連接起來才發明出來的 [Perkins 1994]。早在個人電腦革命和網際網路的爆發潮的 25 年前,Metcalfe 和 Boggs 就已經為今日的個人電腦區域網路奠定了基礎。
在 1970 年代末期,大約有 200 台主機被連上了 ARPAnet。但到了 1980 年代末期,被連接上公共網際網路(一個網路的聯盟,跟現今的網際網路很像)的主機數量,居然已經達到了數十萬台。1980 年代可以說是網際網路的急速成長期。
這樣的急速成長歸功於幾個不同團隊所開發的電腦網路,這些網路大多是為了要把不同大學的電腦串接在一起被開發出來的,例如:
在 ARPAnet 的社群當中,許多現今網際網路架構中的最後一塊拼圖都在當時就定位了。1983 年 1 月 1 號,TCP/IP 被正式佈署,取代了 NCP 協定成為 ARPAnet 中新的標準端對端通訊協定。從 NCP 轉換成 TCP/IP 的那天是個標竿性的事件 [RFC 801],從那一天起,所有的主機都必須要轉移到 TCP/IP 底下運作。1980 年代晚期,一個重要的擴充功能被加入到了 TCP 協議中,那就是以主機為單位的壅塞控制功能 [Jacobson 1988]。而 DNS 協定,用來 mapping 人類可讀的網域名稱(例如: imslab.org)和 32 位元 IP 位址的通訊協定,也是在當時被開發出來的 [RFC 1034]。
在 ARPAnet 蓬勃發展(大多是美國那邊的研究成果)的同時,1980 年代早期,法國也開啟了 Minitel 計劃,這個野心勃勃的計劃試圖將資料傳輸網路帶到每一個人的家裡。在法國政府的贊助下,Minitel 系統被開發了出來,由一個公共的封包交換網路(基於 X.25 協定套組運作)、一些 Minitel 主機,和一些價格不貴的、內建有低速數據機的終端機所組成。1984 年時,Minitel 獲得了大大的成功,因為法國政府給任何一個想要擁有 Minitel 終端機的法國家庭免費發佈了一台終端機。Minitel 上有免費服務的網站(像是電話簿查詢網站),也有私人運作的網站,而政府會以流量計價從使用者那邊收取費用。在其發展巔峰的 1990 年代中期,Minitel 上有超過兩萬多個服務,其服務內容之廣,從網路銀行到專門的研究資料庫應有盡有。早在美國人知道 Internet 這個字的十年前,Minitel 就已經進入了大多數的法國家庭當中。
1990 年代發生了幾個標誌性的事件,象徵著網際網路後來的持續發展以及即將迎來的商業化。ARPAnet,這個網際網路的祖先,在這個十年內停止了服務。在 1991 年,NSFNET 取消了其禁止商業使用的限制。而 NSFNET 本身,也在 1995 年的時候正式退役了,其後網際網路的骨幹網路流量,改為由商業化的網際網路服務供應商來傳輸。
1990 年代最主要的大事件,想必就是全球資訊網 (World Wide Web) 的誕生了,這個應用服務的出現把網際網路帶進了全世界上百萬人的家中還有工作環境中。全球資訊網作為一個平台,讓上百個我們現在視為理所當然的應用服務可以佈署在上面,包含搜尋引擎(例如:Google 和 Bing)、網路購物平台(例如:Amazon 和 eBay),還有社群網站(例如:Facebook)等等。
全球資訊網是在 1989 年到 1991 年間,於歐洲核子研究組織 (CERN) 中由 Tim Berners-Lee 發明出來的 [Berners-Lee 1989],其發明是受到早期在超文字 (hypertext) 上的研究所啟發的。超文字在 1940 年代由 Vannevar Bush 開始研究 [Bush 1945],到了 1960 年代由 Ted Nelson 持續發展 [Xanadu 2012]。Berners-Lee 和他的同事開發了早期版本的 HTML、HTTP、Web 伺服器,還有瀏覽器 —— 這四個全球資訊網的核心元件。大約在 1993 年年底的時候,約有兩百多個 Web 伺服器在全球資訊網上運作,這些伺服器正是往後的網際網路的開端。與此同時,有幾個研究者也正在開發帶有圖形化介面的網頁瀏覽器,包含 Marc Andreessen 和 Jim Clark,他們兩個組成了馬賽克通訊公司 (Mosaic Communications),後來發展成了網景通訊公司 (Netscape Communications Corporation) [Cusumano 1998; Quittner 1998]。到了 1995 年,大學學生們幾乎每天都會用網景的瀏覽器來上網。也差不多是這個時候,許多公司(無論大公司或小公司)也開始運作起他們自己的網站,並在網路上進行商業行為。1996 年時,微軟 (Mircosoft) 開始製作他們自己的瀏覽器,這引發了與微軟與網景之間的瀏覽器大戰。幾年之後,微軟贏了這場戰役 [Cusumano 1998]。
1990 年代的後半段,是網際網路急速成長與革新的一段時期,大企業與上千間的新創公司都在這段期間創造出了網際網路上的產品與服務。在千禧年的尾聲,網際網路上已經出現了上百個著名的應用服務,其中包含四個殺手級服務:
有趣的是,前兩個殺手級服務是由研究社群發明出來的,但後兩者卻是由幾個年輕有為的企業家所創造的。
在金融市場中,網際網路的商業價值在 1995 年到 2001 年這段期間可以說是像雲霄飛車一樣大起大落。有上百間的新創公司在真的開始有盈餘之前,就已經把自己公司的股票上市到股市當中了。許多公司的市值可能高達數十億,但卻不一定有任何主要的收入流。網際網路泡沫在 2000 年到 2001 年間破裂了,許多新創公司在那時候都倒光了。儘管如此,還是有幾間大公司存活了下來並成了大贏家,這些公司包含微軟、思科 (Cisco)、雅虎 (Yahoo)、e-Bay、谷歌 (Google) 還有亞馬遜 (Amazon)。
連網技術的革新在千禧年之後急速發展,在各方各面都有很大的進步,包含架設了高速的路由器,以及骨幹網路和接取網路的傳輸速度提升等。但以下幾個進展是最值得我們關注的: