contributed by <kaeteyaruyo
>
Computer Networking
在本章當中,我們已經學習到網際網路應用程式的概念與實作。我們認識了無所不在的主從式架構、看到他被用在如 HTTP、SMTP、POP3 和 DNS 的通訊協定當中。我們也深入了解了這些重要的應用層協定,以及他們所對應的應用程式(全球資訊網、檔案傳輸、電子郵件,還有域名服務)。我們認識了對等式架構,以及它如何被使用在各式各樣的應用當中。我們還認識了影音串流服務,以及現代的影音傳遞系統是怎麼應用 CDN 來提供服務的。我們還實驗了如何使用 socket API 來打造一個網路應用程式。我們詳盡地看過了兩種不同的 socket 應用程式,分別使用了連線導向的 (TCP) 和無連線式的 (UDP) 端到端傳輸服務。在探索網路分層結構的旅程當中,我們已經完成了第一步!
在這本書的開頭,1.1 節當中,當時我們給出了一個相當模稜兩可的通訊協定的定義:「通訊協定定義了在兩個通訊的實體之間交換的訊息的格式和順序,以及在傳送、轉送、接收訊息及其它事件發生時所需進行的動作。」我們在本章所學習到的內容,特別是我們有深入探討的 HTTP、SMTP、POP3 和 DNS 協定,讓我們更能夠實際了解上述定義的意思了。通訊協定是網路聯網最關鍵性的概念;透過學習應用層協定,現在我們有機會可以發展出對於通訊協定這個東西更直覺性的認知。
在 2.1 節當中,我們分別描述了 TCP 和 UDP 提供給使用它們的應用程式的服務模式。透過在 2.7 節當中自己開發一個運作在 TCP 或 UDP 之上的簡單應用程式,我們更深入了解了這些服務模式的細節。但是對於 TCP 和 UDP 是怎麼提供這些服務模式的,我們著墨並不多。舉例來說:我們只知道 TCP 有提供可靠的資料傳遞服務,但是我們還沒有說它這麼可靠(?)是怎麼做到的。在下一章當中,我們不僅會深入探索什麼是傳輸層協定,也會學習到它的運作原理。
現在我們已經俱備對網際網路應用程式結構和應用層協定充足的知識了,我們已經準備好更深入一層,可以進入第三章來探索傳輸層協定了。
Marc Andreessen 是 Mosaic 瀏覽器的共同開發者,Mosaic 在 1993 年時成了全球資訊網當中最受歡迎的一個網頁瀏覽器。Mosaic 的介面非常簡潔且簡單易懂,並且是第一個可以把圖片和文字顯示在同一行 (in-line) 的瀏覽器。在 1994 年,Marc Andreessen 和 Jim Clark 共同成立了網景公司 (Netscape),他們的瀏覽器是在整個 1990 年代中期最受歡迎的瀏覽器。網景同時也開發了安全通訊端層 (Secure Sockets Layer, SSL) 協定,還有許多其他的網際網路伺服器產品,像是電子郵件伺服器還有 SSL-based 的網頁伺服器。他現在是 Andreessen Horowitz 這間創業投資公司的共同創辦人兼普通合夥人,負責監督包括 Facebook、Foursquare、Groupon、Jawbone、Twitter 和 Zynga 在內的投資組合的發展。他還擔任多個董事會的成員,包括 Bump、eBay、Glam Media、Facebook 和 Hewlett-Packard。
電視遊樂器和個人電腦的革命正好發生在我的成長時期 —— 個人電腦在 70 到 80 年代之間是新科技的先驅。我指的不只是 Apple 和 IBM PC,還包含其他上百家的新公司像是 Commodore 和 Atari 等等,他們也都在做個人電腦。我在 10 歲的時候透過一本叫 "Instant Freeze-Dried BASIC" 的書自學寫程式,並在 12 歲的時候得到了第一台自己的電腦(那是台 TRS-80 Color Computer —— 如果你沒聽過就去查查看吧!)。
不用說,最讓我感到刺激的專案當然就是在 1992 - 1993 年間所開發的 Mosaic 網頁瀏覽器 —— 當時最大的挑戰就是要讓大家注意到並重視我們所開發的這套工具。在那個時代,大家認為人機互動的未來發展會是由大公司所推出的「可互動電視」所領導,而不是當時才剛起步的網際網路。
最讓人期待的應該是為了將會有一大堆還沒有人探索過的應用程式和服務等著程式設計師和企業家們去探索 —— 網際網路激起了人們我認為是前所未見的驚人創造力。我個人的擔憂會是在總是會發生的非預期的後果 —— 人們並沒有辦法完全掌握我們所做的事情會造成什麼後果,例如網際網路有可能會被政府拿來利用,用來進行更嚴密的社會監控。
我認為是事物更迭的速度 —— 在學習上最重要的事就是學會如何學習 —— 如何有彈性且敏捷地適應特定科技的變化,並在發展自己事業的同時,抱持著開放的心態面對所有新的機會和可能性,我認為這是很重要的。
Vannevar Bush, Ted Nelson, Doug Engelbart, Nolan Bushnell, Bill Hewlett and Dave Packard, Ken Olsen, Steve Jobs, Steve Wozniak, Andy Grove, Grace Hopper, Hedy Lamarr, Alan Turing, Richard Stallman.
在了解一個技術是如何被創造出來的這件事情上,你可以鑽地愈深愈好,另外你也得學會商業活動是如何運作的(學會如何做生意)。
不行,但是我們可以透過經濟成長來提升人們的平均生活水準,而歷史上大多數的經濟成長都跟科技發展脫不了關係 —— 所以我們頂多也就只能做到這樣了。
<< 2.7 Socket Programming: Creating Network Applications | 目錄 | 3. Transport Layer >>