本書介紹計算機網絡技術的基本概念和應用,內容詳實,論述嚴謹。本書采用"系統(tǒng)方法"來分析計算機網絡,把網絡看作一個由相互關聯(lián)的構造模塊組成的系統(tǒng)(反對嚴格地分層),介紹了很多網絡中的新技術,包括對等網絡、IPv6、覆蓋網、內容分發(fā)網絡、MPLS與交換、無線與移動技術等,涉及大量的實際應用。本書引入了豐富的因特網實例,說明實際網絡的設計,更便于讀者理解。每章后的習題有助于讀者掌握和復習知識要點。本書適合作為高等院校計算機及相關專業(yè)的本科生和研究生的教材,也適合網絡專業(yè)人員參考。 "第三版更新幅度很大,但是依然保持了作者的宏大目標:不僅教授讀者知其然,更要闡述其所以然……本書還為理解明天的新技術做好了準備。":David Clark, 因特網先驅,MIT教授本書是計算機網絡方面的經典暢銷教科書,凝聚了兩位頂尖網絡專家?guī)资甑睦碚撗芯俊嵺`經驗和大量第一手資料,自出版以來已經成為網絡課程主流教材,被哈佛大學、斯坦福大學、卡內基-梅隆大學、康奈爾大學、普林斯頓大學、威斯康星大學、普度大學、德克薩斯大學、芝加哥大學等眾多名校采用。本書與傳統(tǒng)網絡教材最大的不同在于,書中不是簡單按照OSI層次機械地進行介紹,而是采用"系統(tǒng)方法",將網絡看成是一個由許多相互關聯(lián)的構件組合而成的系統(tǒng),強調了貫穿網絡的系統(tǒng)概念和實際網絡采用現(xiàn)有工作方式的原因,從而為學生和專業(yè)人員理解目前的網絡技術以及未來的新技術奠定了良好的理論基礎。在新版中,作者結合教師與讀者的反饋信息進行了全面更新,增加了MPLS和交換、無線與移動技術、對等網絡、IPv6、覆蓋網與內容分布網絡、VPN、IP電話、網絡安全以及多媒體通信(SIP,SDP)等大量新材料。同時,本書保持了前版為人稱道的特點,所有敘述都嚴謹?shù)貒@問題展開,并輔以具體的協(xié)議參考資料、C語言代碼示例以及具有啟發(fā)性的章后習題。本書特點:大量的應用舉例,使讀者更容易理解網絡各種協(xié)議。每章從一個現(xiàn)實網絡中的問題開始,生動引出概念和敘述,并包含開放問題、補充讀物、相關主題涉及的高級課題、Web網絡資源,非常適合教學使用。譯者序 自20世紀90年代以來, 計算機網絡技術與應用在我國迅猛發(fā)展, 網絡技術已成為廣大計算機用戶應用的主流. 網絡從業(yè)人員越來越多, 計算機網絡方面的專業(yè)技術人員和在校學生, 迫切需要一本面向用戶. 面向應用和理論聯(lián)系實際的, 介紹新技術. 新成果和新趨勢的, 以及難易程度適當?shù)木W絡書籍. 為了使廣大從事網絡應用系統(tǒng)開發(fā)和應用的人員盡快和全面地掌握網絡的基本理論, 熟悉網絡環(huán)境以及各種網絡實用技術, 我們將Larry L. Peterson 和 Bruce S. Davie 改進后的暢銷經典教科書《計算機網絡:系統(tǒng)方法》第3版推薦給廣大讀者. 這一版對第2版做了重大的提升和改進. 修訂后的《計算機網絡:系統(tǒng)方法》第3版增加了MPLS與交換. 無線與移動技術. 對等網絡. IPv6. 覆蓋網. 內容分發(fā)網絡. VPN. IP電話. 網絡安全以及多媒體通信(SIP, SDP)方面的最新材料, 調整和增加了一些章的習題, 并給出部分習題解答. 本書作者強調網絡現(xiàn)有工作方式的成因. 他們采用的"系統(tǒng)方法"把網絡看作一個由相互關聯(lián)的構造模塊組成的系統(tǒng)(反對嚴格地分層). 并引入了豐富的因特網實例, 說明實際網絡的設計. 書中給出的程序代碼不再基于某個特定的操作系統(tǒng), 而是重新改編為適用于通用的環(huán)境, 說明網絡軟件是如何實現(xiàn)的, 借此讓讀者了解所有建造網絡的基礎構件是如何結合在一起的. 本書是確保成功的課堂教學和高效網絡運行的重要資源. 與通常的網絡教材不同的是, 本書用系統(tǒng)化的觀點探討計算機網絡. 它通過給出構建網絡的基礎構件, 講述這些基礎構件如何架構一個完整的網絡, 以及網絡為什么這樣設計. 它是一本最新版本的計算機網絡的優(yōu)秀教材, 為學生和專業(yè)人士理解現(xiàn)行的網絡技術以及即將出現(xiàn)的新技術奠定良好的理論基礎. 本書由內蒙古大學葉新銘教授主持翻譯. 參加本書翻譯的有賈波(第7. 8章. 術語. 索引). 吳承勇(第9章). 石立新(第3章). 李華(第2章. 選題解答). 周建濤(第4章). 李軍(第5章). 張(第6章)和張洪吉吉(第1章. 前言). 全書由葉新銘教授審校, 參加全書審閱工作的還有賈波. 吳承勇和張. 由于譯者水平有限, 書中可能有錯誤或不甚完善之處, 歡迎讀者批評指正. 讀者對翻譯的意見, 可以通過E-mail與譯者聯(lián)系, 地址為:jiabo@imu.edu.cn. 2004年6月19日 Larry L.Peterson是普林斯頓大學計算機科學系主任和教授, ACM會士:他于1985年在普度大學獲得博士學位. 研究主要集中在計算機網絡的端到端問題. 他曾擔任ACM Transactionson Computer Systems的主編, 以及IEEE ACM Transactions on Networking和IEEE Journal on Select Areas in Communication的編委, 曾擔任SOSP和HotNets等會議的程序主席. Bruce S.Davie博士畢業(yè)于英國愛丁堡大學, 現(xiàn)任職于Cisco IOS技術部門, 1998年被授予Cisco會士稱號. IEEE高級會員他主持設計了MPLS協(xié)議, 并開發(fā)了其他重要的因特網技術在加入Cisc之前, Davie博士曾擔任貝爾通信研究公司的首席科學家. 當本書第1版在1996年出版時, 在因特網上購物還是很新奇的事情, 那時如果一個公司用它的域名做廣告就被認為是很超前的. 而當今社會, 因特網商務已進入日常生活中, ".com" 股票已經歷了一個完整的興衰循環(huán). 從光交換機到無線網絡, 一大批新興技術正在成為主流. 似乎關于因特網唯一可以預見的東西就是它會不斷地變化. 盡管有這么大的變化, 我們在第1版中提出的問題對于今天來說仍然是有效的:使因特網得以運行的基本概念和技術是什么?回答是TCP/IP體系結構的大部分功能對于今天仍然適用, 這一點正像30年前它的創(chuàng)立者預見的那樣. 這并不是說因特網的體系結構沒什么新鮮的, 而是正好相反. 一個體系結構30年來不僅幸存下來, 而且促進因特網這樣快速地增長和變化, 了解其中的設計原理正是我們的出發(fā)點. 正像前兩版一樣, 第3版把因特網的體系結構"何以如此"作為它的基礎. 讀者對象 我們的目的是把這本書做為廣泛的網絡課程的教材, 供研究生或高年級本科生使用. 我們也相信, 這本書的核心概念不但對正在進行再培訓以便完成網絡相關任務的專業(yè)人員有吸引力, 而且也可以幫助網絡從業(yè)人員理解每天都要接觸的網絡協(xié)議背后的"為什么", 并且明了網絡的整體概念. 根據(jù)我們的經驗, 第一次學習網絡的學生和專業(yè)人員通常會把網絡協(xié)議理解成一種從高層傳到低層的命令, 而他們只要盡量多學一些術語縮寫詞就可以了. 事實上協(xié)議是從工程設計原理的應用中開發(fā)出來的復雜系統(tǒng)的構件. 不僅如此, 協(xié)議總是根據(jù)現(xiàn)實世界的經驗不斷地被精練. 擴展和替換. 因此, 這本書的目標并不單純介紹當今使用的協(xié)議, 更側重于解釋合理的網絡設計的基本原理. 我們認為把握這些基本原理是應對當今網絡領域中的瞬息萬變的最好辦法. 第3版中的變化 盡管我們關注的是聯(lián)網的基本原則, 但我們使用當今正在運行的因特網中的例子來展示這些原則. 因此, 我們補充了相當多的新材料, 跟蹤近期內聯(lián)網技術的重要進展. 我們同時對原有材料做了刪除. 重新組織和改變側重點, 以反映過去7年發(fā)生的變化. 也許自編寫第1版以來我們所察覺到的最重要的變化就是現(xiàn)在幾乎每一位讀者都對諸如萬維網和電子郵件這樣的網絡化應用有一定的了解. 因此, 我們從第1章開始就加大了對應用的側重. 我們把應用當作學習聯(lián)網的動機, 并得出一組需求, 有用的網絡只有滿足這些需求才能在全球范圍內支持當前的和未來的各種應用. 然而, 我們保留了前兩版解決問題的方法, 即從主機的互連問題開始, 逐層向上討論, 最后對應用層的問題進行詳細的考察. 我們認為從各種應用及其需求起步對于在本書所覆蓋的各主題間建立聯(lián)系是很重要的. 同時, 我們感到對于諸如應用層協(xié)議和傳輸層協(xié)議這樣的高層協(xié)議的問題, 只有在講明白主機連接和分組交換這樣的基本問題之后才能很好地理解. 這一版的習題也有重要的改動. 我們增加了習題的數(shù)量并提高了質量, 力求確定那些特別困難或需要較高數(shù)學知識水平的習題(這些習題用★標記), 在每一章里還補充了一些在書中可以找到現(xiàn)成答案的習題. 就像我們在第2版中所做的一樣, 我們附加或增大了對重要的新主題的覆蓋面并使其他主題緊跟潮流. 這一版中主要的新主題或有實質性改動的主題包括: * 新增關于多協(xié)議標記交換(MPLS)的一節(jié), 包括通信量工程和虛擬專用網的內容. * 新增一個關于覆蓋網的一節(jié), 包括對等網和內容分發(fā)網. * 增加大量多媒體應用相關協(xié)議的內容, 比如會話啟動協(xié)議(SIP)和會話描述協(xié)議(SDP). * 更新了關于擁塞控制機制的部分, 包括TCP的選擇應答, 基于等式的擁塞控制, 以及顯式擁塞通知. * 更新了關于安全的內容, 包括分布式拒絕服務(DDoS)攻擊. * 更新了有關無線技術的材料, 包括擴展頻譜技術和正在興起的802.11標準. 最后, 本書補充了一套全面的實驗習題, 目的是通過仿真實驗來展示關鍵概念. 討論材料由實驗習題所覆蓋的各節(jié)在頁邊用圖標標明. 下文會講述本書這一新特點的細節(jié). 系統(tǒng)方法 對于像計算機網絡這樣動態(tài)的和不斷變化的領域來說, 一本教材能提供的最重要的東西是洞察能力, 以便能夠區(qū)別什么是重要的, 什么是不重要的, 什么是長久的, 什么是表面上的. 根據(jù)我們致力于網絡新技術研究的20年經驗, 和對本科生和研究生講授網絡最新趨勢的課堂反饋, 以及把先進的網絡產品投放市場的經驗, 我們提煉出了自己的觀點, 稱之為系統(tǒng)化方法, 它是本書的精髓. 這種系統(tǒng)方法有以下含義: * 與其接受現(xiàn)成的網絡產品作為準則, 不如從最基本的原理開始, 讓你了解當今網絡技術的發(fā)展過程. 這就能讓我們解釋網絡為什么像現(xiàn)在這樣設計. 根據(jù)我們的經驗, 一旦理解了基本概念, 對于遇到的任何新協(xié)議, 消化和吸收起來都將變得相對容易. * 雖然材料是圍繞傳統(tǒng)的網絡層次被松散地組織起來, 從底層開始沿協(xié)議棧向上展開的, 但是我們并不采用嚴格的分層方法. 許多主題涉及多層, 例如擁塞控制和安全性就是這樣, 所以我們在傳統(tǒng)的分層模型之外討論它們. 簡言之, 我們相信可以很好的使用分層, 但是不必受它的限制. 采用端到端的觀點常常是更有用的. * 與其抽象地解釋協(xié)議如何工作, 不如使用當今最重要的協(xié)議具體地說明網絡是如何工作的, 許多協(xié)議都是源自TCP/IP因特網的. 這就允許我們在討論中借鑒實際經驗. * 雖然在最底層可以用從計算機銷售商購買的硬件建立網絡, 并且通信服務可從電話公司租用, 但是只有軟件才可以使網絡提供新的服務, 并且迅速地適應新的需求. 這就是我們?yōu)槭裁磸娬{網絡軟件是如何實現(xiàn)的理由, 而不是只停留在描述所涉及到的抽象算法上. 我們還從運行的協(xié)議棧中得到展示如何實現(xiàn)某些協(xié)議和算法的代碼段. * 網絡是由許多組件構成的, 而在解決一個具體問題時, 基本的方法是忽略一些不重要的因素, 而理解所有的組件如何組織在一起, 構成一個具有特定功能的網絡. 所以我們花大量的時間解釋網絡總體的端到端行為, 而不只是個別的組成部分, 以便能夠理解一個完整的網絡是如何運行的, 包括從應用到硬件的所有方面. * 這種系統(tǒng)化方法包含要進行實驗性的性能研究, 然后使用從定量分析各種設計選擇和指導優(yōu)化實現(xiàn)這兩個方面收集的數(shù)據(jù). 這種強調經驗分析的方法貫穿全書. * 網絡很像其他計算機系統(tǒng), 例如操作系統(tǒng). 處理器體系結構. 分布式和并行系統(tǒng)等等. 它們都很大并很復雜. 為了處理這種復雜性, 系統(tǒng)設計者常常提出一組設計原則. 我們重點介紹這些貫穿全書的設計原則, 并用計算機網絡中的例子加以說明. 教學法和特點 第3版我們保留了幾個有利于教學的特點: * 問題. 在每一章的開頭, 我們描述在網絡設計中必須解決的一組問題, 由它引出本章探討的一些主題. * 相關主題. 本書中, 相關主題詳細說明要探討的題目或介紹相關的高級主題. 在許多情況下, 這些主題與實際中的聯(lián)網有關. * 突出的段落. 這些段落歸納了在討論中得出的重要結論, 例如廣泛使用的系統(tǒng)設計原則. 突出的段落前面帶有箭頭圖標. * 實際的協(xié)議. 雖然本書著重核心概念而不是現(xiàn)成的協(xié)議說明, 但實際的協(xié)議常用來說明大部分重要的思想. 因此本書可以用作許多協(xié)議的參考源. 為了幫助你找到這些協(xié)議的描述, 每節(jié)標題中用括號括起來的是協(xié)議名稱, 指明在那一節(jié)定義的協(xié)議. 例如, 5.2節(jié)描述可靠的端到端協(xié)議的原則, 它提供對TCP的詳細描述, TCP是這個協(xié)議的典型例子. * 開放問題. 每章的敘述以一個開放討論的問題結尾, 這個問題是研究領域. 業(yè)界或整個社會正在探討的課題. 我們發(fā)現(xiàn)這些討論能使讀者更關心所討論的網絡課題并對其產生濃厚的興趣. * 補充讀物. 在每一章結尾列有精選的參考書目. 這些書目一般包含剛討論的有關題目的創(chuàng)新性論文. 我們竭力推薦高級讀者(如研究生)學習這個書目中的文章, 以便補充各章所講的材料. 本書結構和課程使用 本書按以下方式組織: * 第1章介紹全書使用的核心概念. 涉及各種應用, 討論了網絡體系結構, 并定義通常驅動網絡設計的定量性能標準. * 第2章綜述廣泛的低層網絡技術, 從以太網到令牌環(huán)再到無線網絡. 也描述所有鏈路協(xié)議必須解決的許多問題, 包括編碼, 組幀和錯誤檢測. * 第3章講述交換網(數(shù)據(jù)報網與虛電路網)的基本模型, 并詳細地介紹一種流行的交換技術(ATM). 同時也討論基于硬件的交換機設計問題. * 第4章講述網絡互連, 并且描述網際協(xié)議(IP)的基本原理. 這一章討論的一個中心問題是像因特網這樣規(guī)模的網絡如何對分組進行路由選擇. * 第5章講述傳輸層, 詳細地描述因特網的傳輸控制協(xié)議(TCP)和遠程過程調用(RPC), 它們用于建立客戶/服務器的應用. * 第6章討論擁塞控制和資源分配. 這一章的問題貫穿網絡層(第3, 4章)和傳輸層(第5章). 特別注意, 這一章描述擁塞控制如何在TCP上工作, 并且介紹因特網和ATM為提供服務質量所使用的機制. * 第7章考慮通過網絡發(fā)送的數(shù)據(jù). 這涉及表示格式和數(shù)據(jù)壓縮兩方面的問題. 壓縮的討論包括解釋MPEG視頻壓縮和MP3音頻壓縮是如何工作的. * 第8章討論網絡安全, 范圍包括加密協(xié)議(DES. RSA. MD5), 安全服務的協(xié)議(鑒別. 數(shù)字簽名. 消息的完整性)以及完全的安全系統(tǒng)(增強型加密郵件. IPSEC)的討論. 這一章也討論像防火墻這樣的實用問題. * 第9章描述網絡應用的典型實例和它們使用的協(xié)議, 包括像電子郵件和萬維網這樣的傳統(tǒng)應用, 和像IP電話和視頻流這樣的多媒體應用, 以及像對等文件共享和內容分發(fā)網絡這樣的覆蓋網絡. 對本科生的課程, 可能需要追加課時幫助學生理解第1章的導論材料, 而放棄第6~8章的高級主題. 然后在第9章轉到網絡應用的通常主題上. 相反, 研究生的指導教師可用一兩次課講完第1章的內容, 讓學生自己更仔細地研究材料, 以騰出更多的時間深入講授最后四章的內容. 研究生和本科生都要完成中間四章(第2~5章)的核心材料. 但本科生可有選擇地跳過那些更深入的章節(jié)(如2.2, 2.9, 3.4和4.4節(jié)). 對于自學本書的讀者, 我們相信所選的主題涵蓋了計算機網絡的核心內容, 因此建議從前到后順序閱讀. 另外我們提供了詳細的參考文獻目錄, 幫助讀者進一步確定感興趣領域的補充材料. 我們還提供了選題解答. 本書采取獨特的方法來討論擁塞控制, 即把有關擁塞控制和資源分配的所有專題集中到第6章. 這樣做是因為擁塞控制問題不能在任何一層單獨解決, 同時我們希望讀者同時能夠考慮各種設計選擇(這和我們的觀點是一致的, 即嚴格的層次性常常模糊了重要的設計概念). 然而, 對擁塞控制的更傳統(tǒng)的處理方式是可能的, 即在學習第3章時參考6.2節(jié)的內容, 以及在學習第5章參考6.3節(jié)的內容. 習題 在第2版和第3版中都對習題做了重大修改. 在第2版我們增添了許多習題, 并以課堂測驗為基礎, 大大提高了習題的質量. 在這一版我們又增加了少量習題, 但做出另外兩個重要改動: * 對那些我們認為很有挑戰(zhàn)性或需要本書以外知識(例如概率專門知識)的習題, 我們加上★標記以表明它們具有更高層次的難度. * 在每一章我們都附加了一些范例習題并在書后"選題解答"中給出答案. 這些習題用√標記, 目的是為解決書中的其他習題提供一些幫助. 現(xiàn)有的習題分為如下幾類: * 分析性的習題, 要求學生做簡單的代數(shù)計算, 展示他們對基本關系的理解. * 設計問題, 要求學生提出和評價各種情況下的協(xié)議. * 動手的習題, 要求學生寫少量代碼行去測試一個想法或使用現(xiàn)成的網絡工具進行實驗. * 文獻研究問題, 能夠讓學生更深入了解某個特別的問題. 補充材料和在線資源 其他輔助材料, 可以在Morgan Kaufmann 出版公司的網http://www.mkp.com上找到(搜索(Computer Networks). 致謝 如果沒有許多朋友的幫助本書是不可能問世的. 我們非常感謝所有為改進本書做出貢獻的人. 然而, 在致謝之前要提到的是, 我們已經盡力改正審閱人指出的錯誤以及盡量準確地描述同事們給我們解釋的協(xié)議和機制. 如果還有什么錯誤, 那就是我們的責任. 如果你發(fā)現(xiàn)任何錯誤, 請發(fā)電子郵件給我們的出版商Morgan Kaufmann, 地址是netbugs@mkp.com, 我們將在本書再次印刷時改正它們. 首先, 我們衷心感謝審閱過全部或部分手稿的人. 除了那些審閱過前兩版的人, 我們要感謝Carl Emberger, Isaac Ghansah和Bobby Bhattacharjee對全書的審閱. 還要感謝Peter Druschel, Limin Wang, Aki Nakao, Dave Oran, George Swallow, Peter Lei和Michael Ramalho 對一些章節(jié)的審閱. 我們也要感謝所有提供反饋意見和信息來幫助我們決定如何寫第3版的人, 他們是Chedley Aouriri, Peter Steenkiste, Esther A. Hughes, Ping-Tsai Chung, Doug Szajda, Mark Andersland, Leo Tam, C.P. Watkins, Brian L. Mark, Miguel A. Labrador, Gene Chase, Harry W.Tyrer, Robert Siegfried, Harlan B. Russell, John R. Black, Robert Y. Ling, Julia Johnson, Karen Collins, Clark Verbrugge, Monjy Rabemanantsoa, Kerry D. LaViolette, William Honig, Kevin Mills, Murat Demirer, J Rufinus, Manton Matthews, Errin W. Fulp, Wayne Daniel, Luiz DaSilva, Don Yates, Raouf Boules, Nick McKeown, Neil T. Spring, Kris Verma, Szuecs Laszlo, Ted Herman, Mark Sternhagen, Zongming Fei, Dulal C. Kar, Mingyan Liu, Ken Surendran, Rakesh Arya, Mario J. Gonzalez, Annie Stanton, Tim Batten和 Paul Francis. 其次, 在普林斯頓大學的網絡系統(tǒng)組的幾位成員對本書提供了意見. 例子. 校訂. 數(shù)據(jù)和代碼段. 我們要特別感謝Andy Bavier, Tammo Spalink, Mike Wawrzoniak, Zuki Gottlieb, George Tzanetakis和Chad Mynhier. 正如以前一樣, 我們感謝國防部高級研究計劃署. 國家科學基金. Intel公司和思科系統(tǒng)公司在過去幾年對我們網絡研究課題的支持. 再次, 我們衷心的感謝我們的叢書編輯David Clark 以及Morgan Kaufmann出版公司中在本書編寫期間幫助過我們的所有人. 還要特別感謝我們原來的責任編輯Jennifer Mann, 第3版的編輯Rick Adams, 我們的制作編輯Karyn Johnson和我們的生產經理Simon Crump. 與MKP出版公司全體人員合作的過程很令人愉快.序第3版序言 本書第3版代表這部經典網絡著作的又一次重大升級. 這一領域仍在飛快地變化著, 新的概念以驚人的速度出現(xiàn). 這個版本擴展了對很多新的重要主題的討論, 包括對等網絡. IPv6. 覆蓋與內容分布網絡. MPLS與交換. 無線與移動技術等等. 第3版更早和更強地聚焦于各種應用, 這反映出學生和專業(yè)人員對廣泛的網絡應用的日益熟悉. 本書保持為讀者提供理解當今世界所需的事實這一傳統(tǒng). 但是第3版并沒有丟掉更大的目標, 即不僅提供事實, 還提供事實背后的原因. 本書的創(chuàng)作理念保持不變:適應時代而不囿于時代. 在當前網絡化的世界中, 本書傳授的知識為你提供了必要的見識, 使你能夠在未來的環(huán)境中工作. 這是很重要的, 因為我們沒有理由認為網絡的發(fā)展會在近期內減慢. 很難回想僅在十年前的世界是什么樣子. 那時因特網在商用方面還沒有成為現(xiàn)實. 每秒10兆比特就已經很快了. 我們不必為垃圾郵件和病毒攻擊擔憂-我們的計算機沒有保護措施卻很少需要擔心. 那時候比較簡單, 但今天也許更令人興奮. 而且你應相信明天的網絡會不同于今天:至少同樣令人興奮, 幸運的話, 不比今天的可靠性差, 而且一定會更大, 更快并充滿了創(chuàng)新. 所以我希望Larry和Bruce在開始下一次修訂之前能休息一下. 在這期間, 人們可以用這本書來了解今天并為明天做好準備. 愿讀者從本書獲得樂趣. David Clark 麻省理工學院 第1版序言 "長龍式編碼"(spaghetti code)一詞普遍被認為是一種輕蔑的稱謂. 所有優(yōu)秀的計算機科學家都推崇模塊化, 這是因為它能帶來許多好處, 其中包括在解決問題的同時不必去了解所有問題的細節(jié). 因此, 在一本書中以及在編寫代碼中, 模塊化扮演著重要的角色. 如果一本書的材料以模塊化的方式有效地組織起來, 那么讀者就會很樂意從頭讀到尾. 在網絡協(xié)議領域, 采用國際標準的形式, 即ISO的7層網絡協(xié)議參考模型, 給出"真正的"模塊化, 這或許是獨一無二的. 這種模型反映模塊化的一種層次方法, 無論設計是符合還是偏離這種模型, 這種模型都被廣泛地用作協(xié)議組織討論的起點. 看起來似乎圍繞這種分層的模型來組織一本網絡書藉是顯而易見的. 但事實上這樣做是有風險的, 因為在組織網絡的核心概念時, SIO的模型其實是不成功的. 一些基本的需求, 如可靠性. 流量控制或安全性問題并不能完全納入SIO的分層中. 因此導致對理解參考模型的巨大混亂, 有時甚至產生懷疑. 實際上, 如果一本書被嚴格地按照層次模型來組織, 那么它就具有某些長龍式編碼的屬性. 本書作者遵循傳統(tǒng)的分層模型, 但并沒有拘泥于完全利用這種模型去幫助我們理解網絡中的重大問題. 相反, 作者采用獨立于層次模型的方法來組織基本概念的討論. 因此, 在閱讀本書后, 讀者將會理解流量控制. 擁塞控制. 可靠性增強. 數(shù)據(jù)的表示以及同步等問題. 同時, 讀者將會分別了解這些問題是如何牽涉?zhèn)鹘y(tǒng)分層模型的這一層或那一層的. 這是一本適時的書. 本書考察使用當今的主要協(xié)議, 尤其是有關因特網的協(xié)議. 本書作者有豐富的從事因特網工作的經驗, 不僅從理論上而且從實踐上揭示協(xié)議設計的問題. 本書介紹許多最新的協(xié)議, 因此讀者可以從中獲得最新的觀點. 更重要的是, 基本問題的討論是基于問題的本質屬性, 不受分層參考模型或當前的協(xié)議細節(jié)的限制. 在這一點上, 我們可以說本書既體現(xiàn)了適時性又不受時間的限制.本書的獨特之處在于它將有關的實際問題. 現(xiàn)實的事例和基本概念的解釋有機地結合在一起. David Clark 麻省理工學院 第1章基礎1 問題:建造一個網絡1 1.1應用1 1.2需求3 1.2.1連通性4 1.2.2成本-效益合算的資源共享6 1.2.3支持公共服務8 1.3網絡體系結構11 1.3.1分層和協(xié)議11 1.3.2OSI體系結構15 1.3.3因特網體系結構16 1.4實現(xiàn)網絡軟件17 1.4.1應用編程接口(套接字)18 1.4.2應用實例19 1.4.3協(xié)議實現(xiàn)的問題21 1.5性能23 1.5.1帶寬與時延24 1.5.2延遲和帶寬的乘積26 1.5.3高速網絡27 1.5.4應用的性能需求28 1.6小結30 開放問題:普遍存在的連網30 補充讀物31 習題32 第2章直接連接的網絡37 問題:物理上相連的主機37 2.1網絡構件37 2.1.1節(jié)點38 2.1.2鏈路38 2.2編碼(NRZ. NRZI. Manchester. 4B/5B)43 2.3組幀45 2.3.1面向字節(jié)的協(xié)議(BISYNC. PPP. DDCMP)46 2.3.2面向比特的協(xié)議(HDLC)48 2.3.3基于時鐘的組幀(SONET)48 2.4差錯檢測50 2.4.1二維奇偶校驗51 2.4.2因特網校驗和算法51 2.4.3循環(huán)冗余校驗52 2.5可靠傳輸56 2.5.1停止和等待56 2.5.2滑動窗口57 2.5.3并發(fā)邏輯信道63 2.6以太網(802.3)64 2.6.1物理特性64 2.6.2訪問協(xié)議66 2.6.3以太網的經驗69 2.7令牌環(huán)(802.5. FDDI)69 2.7.1物理特性70 2.7.2令牌環(huán)介質訪問控制70 2.7.3令牌環(huán)維護72 2.7.4幀格式73 2.7.5FDDI73 2.8無線網絡(802.11)76 2.8.1物理特性76 2.8.2避免沖突77 2.8.3分布式系統(tǒng)78 2.8.4幀格式79 2.9網絡適配器80 2.9.1構件80 2.9.2主機的觀點81 2.9.3內存瓶頸84 2.10小結85 開放問題:它應歸入硬件嗎?85 補充讀物86 習題87 第3章分組交換95 問題:并非所有網絡都是直接連接的95 3.1交換和轉發(fā)95 3.1.1數(shù)據(jù)報97 3.1.2虛電路交換98 3.1.3源路由選擇102 3.2網橋和局域網交換機105 3.2.1學習型網橋105 3.2.2生成樹算法107 3.2.3廣播和多點播送110 3.2.4網橋的局限性110 3.3信元交換(ATM)111 3.3.1信元112 3.3.2分段和重組115 3.3.3虛路徑118 3.3.4ATM的物理層119 3.3.5局域網中的ATM120 3.4實現(xiàn)和性能123 3.4.1端口125 3.4.2網狀結構126 3.5小結128 開放問題:ATM的未來129 補充讀物129 習題130 第4章網絡互連137 問題:不只存在一種網絡137 4.1簡單的網絡互連(IP)137 4.1.1什么是互連網138 4.1.2服務模型139 4.1.3全局地址146 4.1.4IP中的數(shù)據(jù)報轉發(fā)148 4.1.5地址轉換(ARP)152 4.1.6主機配置(DHCP)154 4.1.7差錯報告(ICMP)156 4.1.8虛擬網絡和隧道156 4.2路由選擇159 4.2.1用圖表示的網絡160 4.2.2距離向量(RIP)160 4.2.3鏈路狀態(tài)(OSPF)165 4.2.4度量標準171 4.2.5移動主機的路由選擇173 4.3全球因特網176 4.3.1劃分子網177 4.3.2無類路由選擇(CIDR)180 4.3.3域間路由選擇(BGP)181 4.3.4路由選擇區(qū)186 4.3.5IP版本6(IPv6)187 4.4多點播送195 4.4.1鏈路狀態(tài)多點播送195 4.4.2距離向量多點播送196 4.4.3協(xié)議無關多點播送(PIM)198 4.5多協(xié)議標記交換(MPLS)201 4.5.1基于目標的轉發(fā)201 4.5.2顯式路由205 4.5.3虛擬專用網和隧道206 4.6小結209 開放問題:部署IPv6209 補充讀物210 習題211 第5章端到端協(xié)議221 問題:進程間的通信221 5.1簡單解多路復用協(xié)議(UDP)222 5.2可靠的字節(jié)流(TCP)223 5.2.1端到端的問題224 5.2.2數(shù)據(jù)段格式225 5.2.3連接的建立與終止227 5.2.4滑動窗口再討論230 5.2.5觸發(fā)傳輸233 5.2.6適應性重傳235 5.2.7記錄邊界237 5.2.8TCP擴展238 5.2.9其他設計選擇238 5.3遠程過程調用240 5.3.1大塊傳輸(BLAST)241 5.3.2請求/應答(CHAN)244 5.3.3分發(fā)程序(SELECT)250 5.3.4把它們放在一起(SunRPC和DCE)251 5.4性能255 5.5小結257 開放問題:面向應用的協(xié)議257 補充讀物258 習題258 第6章?lián)砣刂坪唾Y源分配265 問題:分配資源265 6.1資源分配中的問題265 6.1.1網絡模型266 6.1.2分類法268 6.1.3評價標準269 6.2排隊規(guī)則271 6.2.1FIFO272 6.2.2公平排隊273 6.3TCP擁塞控制275 6.3.1累次增加/成倍減少276 6.3.2慢啟動277 6.3.3快速重傳和快速恢復280 6.4擁塞避免機制281 6.4.1DECbit281 6.4.2隨機及早檢測(RED)282 6.4.3基于源的擁塞避免285 6.5服務質量289 6.5.1應用需求289 6.5.2綜合服務(RSVP)293 6.5.3區(qū)分服務(EF和AF)299 6.5.4ATM服務質量302 6.5.5基于等式的擁塞控制304 6.6小結305 開放問題:網絡內外305 補充讀物306 習題307 第7章端到端的數(shù)據(jù)315 問題:我們用數(shù)據(jù)做什么?315 7.1表示格式化316 7.1.1分類方法317 7.1.2例子(XDR. ASN.1. NDR)319 7.1.3標記語言(XML)322 7.2數(shù)據(jù)壓縮323 7.2.1無損壓縮算法325 7.2.2圖像壓縮(JPEG)326 7.2.3視頻壓縮(MPEG)329 7.2.4在網上傳輸MPEG332 7.2.5音頻壓縮(MP3)334 7.3小結335 開放問題:計算機網絡滿足消費者電子設備的需求336 補充讀物336 習題337 第8章網絡安全341 問題:保證數(shù)據(jù)安全341 8.1加密算法341 8.1.1需求343 8.1.2秘密密鑰加密(DES)344 8.1.3公開密鑰加密(RSA)346 8.1.4報文摘要方案5(MD5)348 8.1.5實現(xiàn)與性能350 8.2安全機制350 8.2.1鑒別協(xié)議350 8.2.2消息完整性協(xié)議353 8.2.3公開密鑰分發(fā)(X.509)354 8.3系統(tǒng)實例356 8.3.1極好的保密性(PGP)356 8.3.2安全外殼程序(SSH)358 8.3.3傳輸層安全(TLS. SSL. HTTPS)360 8.3.4IP安全(IPSEC)362 8.4防火墻364 8.4.1基于過濾器的防火墻365 8.4.2基于代理的防火墻365 8.4.3局限性367 8.5小結367 開放問題:拒絕服務攻擊367 補充讀物368 習題368 第9章應用373 問題:應用需要它們自己的協(xié)議373 9.1域名服務(DNS)373 9.1.1域名的層次結構374 9.1.2名字服務器375 9.1.3名字解析377 9.2傳統(tǒng)的應用379 9.2.1電子郵件(SMTP. MIME. IMAP)380 9.2.2萬維網(HTTP)385 9.2.3網絡管理(SNMP)388 9.3多媒體應用390 9.3.1實時傳輸協(xié)議(RTP)390 9.3.2會話控制和呼叫控制(SDP. SIP. H.323)397 9.4覆蓋網絡402 9.4.1路由選擇覆蓋403 9.4.2對等網408 9.4.3內容分發(fā)網絡413 9.5小結416 開放問題:新的網絡體系結構417 補充讀物417 習題418 術語423 參考書目439 選題解答457 索引467