本書涵蓋了計算機網絡知識的各個方面,全面翔實地講解網絡底層細節(jié)、網絡技術、網絡互聯協議和應用軟件等,并增加了UDP、IP電話及NAT的最新內容。本書包括詳細的概念描述、豐富的實例、圖表以及習題,巨細靡遺,清晰透徹,刪繁就簡,簡明易學。隨書光盤包含了200多張網絡設備的圖片、相關代碼以及實例,方便讀者實踐練習。本書可以作為高等院校計算機、通信、電子等專業(yè)高年級本科生或研究生的教材,對于從事互聯網方面工作的科技人員也是一本不可多得的參考書。本書前言本書的前一個版本已經產生了很好的效果。除了有幾百所美國學校使用它作為網絡課程的教科書外,專業(yè)人士也紛紛撰文贊許它在業(yè)界的使用價值,而且也收到了很多對它的國外譯本的熱烈評價。能夠在當前網絡書籍供過于求的市場中獲得如此成功,真是一件令人欣慰并且感到滿足的事情。本書的杰出所在,在于內容涵蓋廣泛,組織結構邏輯性強,概念解釋清晰透徹,重點講述因特網,以及給學生和教師提供了隨書光盤和網站,其中包含了豐富的輔助資料:http://www.netbook.cs.purdue.edu新版本已經做了徹底的修訂和更新,增加了新的三章(24,26,33)和附加的詞匯條目。對光盤和網站也做了充實。新章節(jié)都是應教師和讀者的請求增加的。第24章增加了UDP,第26章解釋了網絡地址轉換,第33章涵蓋了IP電話的內容。第33章特別引人注目,一般學生都喜歡使用IP電話。本書在最廣泛的意義上回答了“計算機網絡和互聯網是如何工作的?”這個基本的問題。通過闡述底層細節(jié)(如數據傳輸和布線)、網絡技術(如局域網和廣域網)、網絡互聯協議和應用軟件等全面的聯網知識,給讀者提供了綜合的、自含的指導。闡明了協議如何利用底層硬件以及應用程序如何使用協議棧為用戶提供各種服務功能。關于應該如何學習聯網知識,目前已有大量的論述。其中存在兩種觀點:嚴格的“自下而上”的方法,或者嚴格的“自上而下”的方法。在自下而上方法中,讀者先學習最低層的細節(jié),然后學習相鄰的較高層如何利用較低層提供擴展的功能。而在自上而下方法中,讀者先開始學習高層應用,并學習足夠的較低層知識以理解應用如何才能工作。每種方法都有各自的優(yōu)點。傳統的自下而上方法是以邏輯的方式來介紹內容,以使讀者理解較高層如何構建在較低層之上。自上而下方法則是從熟悉的應用(如電子郵件)開始闡述,較少提供對于主題內容的介紹。我們推薦一種新的、綜合的方法,這種方法綜合了前述兩個方法最好的方面。這種綜合方法提前暴露出使用和構建網絡應用方面的問題,同時以邏輯順序陳述有關材料。為了實現這種綜合方法,本書提供了大量的實例和習題,并且鼓勵讀者實際運行和修改這些實例,結合習題驗證如何使概念和原理應用于真實的網絡。本書的讀者對象是高年級本科生或低年級研究生,他們幾乎或沒有聯網方面的背景知識。本書既沒有使用復雜的數學公式,也不假設要具備操作系統方面的知識,而只在于清晰地闡述概念,采用實例并提供大量技術原理的示意圖,說明并分析結果但不提供數學證明。本書分為幾大部分,第一部分介紹使用和構建網絡應用(第1章~第3章),第二部分(第4章~第6章)簡要闡述底層硬件如何工作,其中包括載波信號的概念,載波調制以及如何在載波上傳輸調制解調器編碼數據。這部分也討論面向字符的異步數據傳輸,定義一些在后續(xù)內容中要出現的術語,例如帶寬和波特等。第三部分(第7章~第16章)重點講述分組交換技術。這部分先介紹采用分組傳輸數據的動機和起因,然后描述基本的網絡拓撲、組網方案以及用于網絡歸類的表征方法,例如局域網、廣域網、本地環(huán)路、公共或專用網絡以及面向連結型或無連結型網絡等。這部分也介紹了下一跳路由的概念、交換、協議分層及其有關的術語。最后,這部分還使用了幾個常用的網絡技術作為例子,包括以太網、ATM和DSL。第四部分(第17章~第27章)重點討論網絡協議。在討論了網絡互聯的起因和動機之后,這部分描述互聯網結構、路由器、互聯網編址、地址綁定和TCP/IP協議。對其中的一些協議(如IP、TCP、UDP和ICMP)做了更詳細的講解,使學生更深入地理解這些概念是如何聯系實際的。涉及TCP的第25章包括了關于傳輸協議中重要的可靠性方面的深入課題。第五部分(第28章~第41章)介紹網絡應用方面的問題。與本書的其他部分一樣,這部分的內容也涵蓋非常廣泛—包括對一般原理和特定應用的討論。從描述網絡應用用于通信的客戶/服務器模式開始,然后描述套接字API,分析了利用套接字進行通信的客戶和服務器的源碼例子。這部分還闡述了利用域名系統的名字解析以及應用方面的問題,諸如電子郵件、文件傳送、IP電話和Web(包括對動態(tài)和活動文檔的解釋,并舉出使用CGI、Java和JavaScript的例子)。對上述每個方面的內容,書中都描述了軟件的結構并解釋客戶與服務器如何通過交互來提供服務。第38章討論中間件,包括面向過程和面向對象的中間件技術。這部分的后面幾章討論網絡安全問題,解釋如何利用應用軟件來管理網絡。最后,第41章介紹初始化的相關問題。這章說明了應用層軟件如何能完成那些看起來似乎不可能的事情—用協議軟件去獲得初始化正在使用的協議軟件所需要的信息。本書很適合作為在高層次上掌握聯網知識的一學期導引課程。本書按綜合性課程來設計,涵蓋了從布線到應用的全部課題。例如在美國普度大學的本科課程中,學生每周都有覆蓋廣泛課題的實踐作業(yè):網絡測量、分組分析以及網絡編程等。等到他們完成了我們的課程之后,我們期望每個學生能夠達到以下程度:知道IP路由器如何利用路由表轉發(fā)IP數據報;能描述數據報如何通過因特網傳輸;能解釋以太網集線器與以太網交換機的區(qū)別;知道TCP如何標識連結以及為什么Web服務器能在80號端口處理多個連結;能描述橋接器和IP路由器的概念差別;能計算在100BaseT網絡上傳輸的單個碼位的長度;能解釋為什么TCP被歸類為端到端協議;能區(qū)分以太網上使用的CSMA/CD介質接入機制和令牌傳遞介質接入機制;知道DSL為何在導線上發(fā)送數據的同時也能用于模擬電話通信。單科課程的主要目標是廣度而不是深度—要涵蓋所有主題,不能只集中在幾種技術或幾個概念上。因此,一個成功課程的關鍵就在于能維持快速的學習步伐。為了能使學生在一個學期內學到基本的主題內容,可以把第二部分的較低層次內容壓縮在一周內學完;把有關網絡和網間互聯的部分分別安排在五周內學完;剩余的幾周留給應用部分(如網絡管理與安全)。教師應該給學生強調概念和原理的重要性:有些技術可能在幾年后就會過時,但原理卻是永恒的。另外,教師也應該激發(fā)學生投身到聯網技術中的熱情。雖然本書沒有哪個主題是具有挑戰(zhàn)性的,但學生們仍可發(fā)現本書所含資料的數量還是有點讓人望而生畏的。特別是學生們面對著過量的新術語、網絡縮寫字和行話也特別容易混淆,學生必須花費大量時間養(yǎng)成使用正確術語的習慣。為了幫助學生掌握術語,附錄1提供了術語和縮寫詞匯表。特別說明,在詞匯表中的定義都是單獨編寫的,并不是直接從書本中照搬過來的。因為程序設計和實驗是幫助學生掌握網絡知識的重要環(huán)節(jié),所以實踐環(huán)節(jié)是任何網絡課程的重要組成部分。我們普度大學的課程比較強調分組分析和套接字編程。在學期的開始,我們先讓學生構建客戶軟件去訪問Web并提取數據(例如編寫一個程序打印出當前的溫度)。第3章解釋了提供給學生的簡單API例子;利用它,學生能夠在懂得協議、地址和套接字概念之前就能編寫可執(zhí)行的代碼。當然,到了學期的后期,學生就學會了使用套接字API。最后,他們還要編寫一個并發(fā)Web服務器程序(支持服務器端腳本部分可選)。除了應用編程外,學生還可以利用實驗室設施從正在運行的網絡上捕獲數據分組,并編寫程序對分組(例如以太網幀、IP數據報、TCP段)的頭部進行解碼,并且觀察TCP連結的情況。讓學生去接觸真實網絡能夠激發(fā)對實踐的熱情和勇氣—我們的經驗證明:凡是接觸過網絡現場的學生都能更好地理解學習主題,有更強的辨別能力。所以,如果沒有專門的分組分析器,可以在一臺標準PC上安裝合適的共享軟件來構建一個分析器。