計算機網路方面有哪些書籍值得推薦?

一步一步前進,深入淺出


如果想對網路有個清晰、全面的認識,可以閱讀三本書籍:

  • 第一本就是潘愛民翻譯的Andrew S.Tanenbaum的《計算機網路》,此書講明白了網路之道,即計算機網路通信的主要原理;

  • 第二本是W.Richard Stevens的《TCP/IP詳解卷一:協議》,此書講明白了網路之術,即TCP/IP協議簇的工作過程;

  • 第三本是Douglas E.Comer的《計算機網路與網際網路》,此書嘗試在更廣泛意義上解答「計算機網路和網際網路是如何工作的」這一基本問題,解釋了協議是如何使用硬體和應用是如何使用協議來滿足用戶的需求。

如果想自己設計一個網路系統,可以閱讀三本書籍:

  • 第一本就是Douglas E.Comer的《Network Systems Design Using NPs》,此書從包處理演算法開始,引導我們了解發生在包上的每一件事。本書的獨特之處是以一種「與應用無關」的方式描述各種系統結構和設計思路。再多一句,大多數國外大學教授網路系統設計與實現課程的參考藍本;

  • 第二本是George Varghese的《Network Algorithmics:An Interdisciplinary Approach to Designing Fast Networked Devices》,此書對網路系統實現模型進行分析,抽象出設計網路系統的一般規則,同時分析在真實網路系統實現中如何運用這些規則。

  • 第三本是「親自動手,從零開始構建一個網路系統」,選擇一款合適的硬體平台,Learn by doing。


基礎書籍:計算機網路第五版,謝希仁的,個人感覺是國內最好的初級書籍。進階:TCP/IP協議,慢慢啃。


兩本《計算機網路》對著看,加TCP/IP三卷套,就基本入門了吧。

附豆瓣鏈接:

1.《計算機網路》,http://book.douban.com/subject/10510747/

原作名: Computer Networks, 5th Edition

作者: Andrew S. Tanenbaum / David J. Wetherall

2.《計算機網路》,http://book.douban.com/subject/2970300/

作者: 謝希仁


計算機網路 自頂向下方法,然後看tcp/ip卷一卷二,一開始看tcp/ip是看不懂的。


一本入門經典

&<計算機網路 自頂向下方法&>


Computer Networks: A Systems Approach by Larry L. Peterson


好吧,作為IT培訓教育專業戶,CCIE專職講師和廣東工業大學客串老師一枚怒答!下面是我上次寫的240頁的計算機網路入門導論課程,是給廣工的師弟和師妹使用的講義,那出來分享給知乎上各位。原文發布在個人微信公眾平台【pinginglab】和51CTO技術博客上,需要詳細內容的話,自己去扒下來吧。內附初級到高階的所有書籍以及個人的一些教學視頻。(知乎的沒法批量上圖片!!!非常不方便!!!微信後台都能32張圖片批量上!!!吐槽完畢!!!200多頁圖片沒法一一上傳,大家需要可以點開下面鏈接自己看具體和詳細的內容)

微信鏈接:慎入!超強240頁PPT!史上最強大的計算機網路導論-by拼客科技CEO·陳鑫傑

51CTO博客:慎入!超詳細240頁PPT!史上最強大的計算機網路導論!

微博鏈接:Sina Visitor System

【最底部有資料下載鏈接!多圖,建議在WIFI下觀看!】

1、課前-一個緣由

離高校開學前還不到一星期的時候,王sir(廣東工業大學計算機網路的王教授)過來公司這邊溝通書籍編製的問題,中午吃飯的時候,他來了一句:「鑫傑,有件事拜託你,9月10號我女兒上武漢大學,一個女生自己去不放心,我到時9號要帶她過去,順便在那邊待一周,要不,你幫我帶一周課程吧。」給一兩百號人上課的場景我經歷的太多了,但是給自己學弟學妹上課,卻讓我突然有點猶豫。一方面,因為我對授課環節這塊太熟悉了,所有學生都有「學習慣性」,所以我怕我這個外來的「客串教授」的授課風格會影響到後續王sir原有的授課風格,就會出現「這個老師講的好,這個老師講的不好XXX」的情況,有時候這種思維和情緒甚至會貫穿學生的整個學習周期;另一方面,時間上不好安排,一周的課程加起來就幾個鍾,根本沒法講到技術的玩意,即便將這個課程整個學期給我講,也最多學個入門級別,另外,學校沒有環境來演示實驗。例如課程PPT裡面的無線破解和流量控制,如果有個環境來演示,那現場的效果肯定要好的多。(但是後面還有更讓我吃驚的,學校用的系統居然還是是windows xp,還有非常難用的鍵盤,這真還得跪了。)還有最重要的一點,因為這塊課程跟自己公司其中的IT培訓業務剛好是重疊的,所以有點忌諱!我不希望學生覺得好像為了做推廣而給他們上課,這是我最不希望看到的結果,所以為了避開這點,在課堂講義上面連自己的名字都挪開了。我可以有很多理由來推掉這個事情,例如最近官網在開發、公司要裝修、市場要推廣……但是因為「廣工」「網路」這兩個對我意義重大的詞,最終我還是接下了這個事情。回來之後,我給自己定了一些要求,例如,過去學校那邊就是發福利的,例如各種書籍啊各種工具啊各種入門視頻啊等等。例如,一定不能出現公司任何營銷和推廣的內容!所以,周三周五只有在課堂快結束進入問答階段的時候,學生提出要我的聯繫方式,我才將個人的基本信息放上去。即便是課下溝通,有學員跟我說有點想往網路安全這個方向走,我也回答這個自己要慎重考慮,方向實際上很多,再看看是否適合自己。好吧,按照這些基本的原則和要求,然後中秋節花了幾天時間,準備了大概240頁的PPT內容。當然,我的另外一個要求是盡量不要出現太密集的文字,最好是圖片然後結合自己的闡述來帶動大家,不然底下學生會直接暈倒。

2、課中-一些感慨

9月10號開始上課,周三和周五是在教學5號樓203給大三上計算機網路(A級),上3和4節的課,大概10點半左右。周末是在教五105給大四上計算機網路(B級),是5到8節的課。10號這天我早早過來這邊,雖然自己的公司離母校很近,但是因為各種雜事,並不經常過來。還是這個霸氣側漏的圖書館,以及監獄式設計的教學樓,儘管我大二休學之後便不再這裡,但這裡還是帶給我太多美好的回憶。有些感慨,有些事情我們永遠沒法預料到。例如,幾年前,我可以大概預想到通過自己的規劃和自身不斷的能力,在IT技能上能夠大概到什麼樣的Level,因為技能學習是線性可控的,只要按照一定的流程和方法來走,肯定是可以達到的;但是我萬萬沒法想到,幾年後我休學、工作、創業之後,我回到母校的時候,這個時候已經不再是坐在下面聽老師講課的「復讀生」,而是站到上面給學生講課的「客串教授」。回到正題,大概離上課還有10來分鐘的時候,我開始準備開投影,本來以為可以用自己的電腦,後面發現要自己帶投影線!這樣的話,我就悲劇的從win8年代回到windows xp年代,還好備了幾手,帶了U盤,將用office 2013版本做的課程講義轉成了office 2003和2007,甚至還有PDF和圖片版本!總有一個版本學校的老式電腦能打開的吧。可以預想的到,這個時候底下有點躁動,「真的是這個老師嗎?」「這麼年輕?!」「應該是研究生吧」「是不是走錯教室了?!」儘管我鬍鬚不刮,手帶腕錶,腳穿皮鞋,也遮擋不住我逆生長的樣貌。按照原有計劃,我就是王Sir偏偏樣貌還是讓自己穿幫了。所以做了簡單介紹,說明代課的情況,然後就進入正式進入課程。課程內容在後面會公布,這裡就不細講,比較讓我出乎意料的是,廣工的師弟師妹還是給足的面子。按照王Sir給我的場景描述,第一堂課因為學生還不認識你,課堂問問題不怎麼回答,課堂搞搞小動作也很正常。還好,這些都沒發生,而且課堂上還挺活躍。例如課堂上我問一些問題,學生能夠及時反饋;課堂上好的一些建議學生會做記錄,然後看到好的PPT,他們用手機和PAD拍下來(突然發現學校好多小土豪...),課間休息階段,有學生過來溝通更具體的知識點;整節課完了之後,有學生過來溝通專業選擇,技術問題等等。這些場景要是在企業培訓課堂裡面,這是平常的不能再平常的事情,但是在目前的本科高校裡面,我覺得已經算達到我預期的要求了。因為想起自己以前在學校,要麼逃課,要麼上課折騰自己的玩意,整個學期連老師是誰都不知道……

3、課後-一些思考

課後有很多師弟師妹主動加我QQ和微信,大部分跟我溝通的問題無非是:不知道自己要走什麼方向?讀了2 3年大學感覺很迷茫怎麼辦?往XXX方向覺得發展前景如何?所以我也在感慨,大學給我們提供了一個自由的平台,但卻沒有給每個人指明一條道路;大學給我們提供了這麼多的書本,但卻沒有讓大家真真正正掌握一門技能!這讓我重新思考了自己在公司的定位和價值。我今年總跟我身邊的同事和朋友講,自己想退出「相聲界」,老老實實做自己的項目,然後寫一本真正意義上的書籍(儘管現在跟王Sir和人民郵電出版社即將出版一本書籍)之後將公司的業務往線上那塊抓一抓,現在看來估計也得推遲一陣子了。例如,今晚還跟廣工網路中心的師弟(已經在工作了)在聊,他跟我說明,廣工網路中心每年招新接近100人左右,用來給校園網路打打雜,但是大部分學生實際上連網線都不會搞,設備都沒有接觸過,有問題還是要上報老師。又如,很多計算機相關的協會和技術興趣小組雖然設立了,但是每年基本除了聚餐就沒有太多實在的活動,沒法學到具體的東西。能否將公司基礎IT課程業務(例如網路、安全和Linux方向)放開,作為公益課走入高校,然後作為試點,再走到其他高校等等。我在想,好是好,但是,這意味著我自己又要拋頭露面了……好吧,最後給大家一些圖片,大家自己感受下,還有,不準笑……(最下面附帶授課PPT)

8號和9號我去上課之前,公司內部某女漢子的截圖:

13號我上完課之後,廣工某漂亮小師妹的截圖:

以下附上部分240頁的授課PPT(有兩堂課,每堂課大概120頁PPT內容)

點擊下面的「閱讀原文」可以通過百度網盤下載此課程導論所涉及的工具、書籍、視頻等內容。(總下載鏈接:百度雲 請輸入提取密碼 密碼:l6im)


一進問題就看到@陳書陽 的回答。非常不認同入門用謝希仁編著的《計算機網路》。不敢稱利益相關,某大學軟體工程大三學渣,這本是我們的教材,已看到第九章,基本上書都算看完了,你要給我說無線網路和互聯網未來兩章才是真正扭轉這本書的關鍵,我也只有呵呵一下。我只說我看過的部分。首先,枯燥,是的國內教材都極其枯燥,知識體系還算過得去吧,但是不造那些作者們究竟吃了什麼,反正每本書都不能讓我高潮。譚爺爺的吐槽我也就不說了。其次抽象,算是協議的邏輯實現,沒有任何具體的軟體實現。你就算給我們看看裝裝逼也是極好的啊。我現在腦袋裡還是那個五層協議模型簡直……交上膝蓋的節奏啊。最後,這是一本四百多頁的大!長!篇!累不累,累不累?

沒有對比就沒有差距,昨天我也進過這個問題,為什麼沒有寫回答,那是因為今天在圖書館看了一本外國的書,中文版。圖片已拍,電腦上再傳圖。


第一本計算機網路—自頂向下法

第二本計算機網路 Andrew的

第三本TCP/IP詳解卷一

這個不是我說的,但我認同。我只看過第二本,花了一些時間,覺得那本書很難,不適合入門。我呢,大一的暑假看的,最後沒堅持下去,直接掃視,我暈暈糊糊啊。那時只有C語言的基礎,第一章就覺得難,後面去第二章一個求傅里葉係數就讓我不解,大概是高數沒學好。翻譯也糟糕,不像是出到第五版的書籍應有的水平,果然還是機械工業好嗎。

重要的是,入門書不要選Andrew,要選那個自頂向下法!!!雖然我還未看自頂向下法。國內的書我不關心。

//截屏來自Quora


寫在前面,意思是要重視:看英文版,別看中文版。(看不下去的,啃夠了一個禮拜,你再來反駁我,也不遲!!!)

首先,如果真的想在這一方面好好發展的話,首先把專業的單詞過一遍,然後可以開始看:

1,ccna學習指南,640-802英文第七版,屌絲可以去下載CCNA自學指南第7版英文完美列印版word格式(精校版本)_51CTO下載中心_IT技術資料免費下載,然後去淘寶列印店列印成書,便宜而且實惠。

---------看完這本書後,可以結合著模擬器去做一些實驗了-------------

2,我覺得要想更深層次的研究,務必要看這本書:《TCP/IP 協議詳解 卷一 協議》,此書中的報文結構,一定要熟記,保管你面試的時候,心不慌,胸有成竹。

----------一定要積極主動的把報文結構給弄懂了--------------

3,搞網路的,一定要熟記兩個協議:ospf和bgp,所以這個的配置手冊,還有各種變化的拓撲,一定要掌握。

-------------這個是重點,一定要看好,記熟了---------------------

4,只推薦一個網站:http://www.cisco.com,去查詢每一個單詞的意思,並且,下載各種設備的data sheet,相信你會學有所成的!!!


為什麼沒人說《圖解http》《圖解tcp/ip》人民郵電出版社,很適合入門自學的說。


實際上我認為TCP/IP卷一都不適合初學者.

比較基礎的話首推 《計算機網路第五版》謝希仁的,

其次是 《TCP/IP 協議詳解 卷一 協議》

然後就是操作系統下的網路編程了

閱讀順序不能錯,否則你會看的有點受罪.要知道謝希仁也是翻譯第二本書的譯者之一。


因為我就是網路專業的,我覺得《計算機網路》 謝希仁編著。計算機的專業課本。很基礎和思科的CCNA路由交換結合著看;我覺得《計算機網路》太理論,結合思科的CCNA實驗會更好些;如果在深入的話就是CCNP了,另外還有windows server系統伺服器搭建維護,還有linux的,這些事運維方向的;如果想往網路編程方向的話主流的語言都可以,關鍵是你喜歡哪一個了,挑一種語言就夠了,不要貪多,要吃得深些;如果是動態網站開發的話現在PHP。JSP挺多的。還有就是前面說的《TCP/IP》了


必讀:計算機網路(謝希仁)、計算機網路(自頂向下)、tcp/ip卷一

選讀:ccna學習指南、Wireshark網路分析就這麼簡單、Wireshark網路分析的藝術


《TCP/IP 詳解 卷一 》可以對網路中常用的協議有透徹地了解,其他兩卷更適合程序員看。另外工大出的思科NA教材也不錯,編寫的邏輯比較清楚。這兩本書看透了,基礎應該沒問題了



國內的一般首推謝希仁的 其次是國防科技大學的 國外的經典著作 計算機網路 自頂向下方法


之前看過《TCP/IP 協議詳解》《top-down approach》《systems approach》,覺得它們是打基礎必背的。可基礎畢竟是基礎,網路發展一日千里,SDN提出來之後各大企業爭相應用,原有技術的variations層出不窮。我個人經驗是,掌握前沿的有利於鞏固基礎,而不是看著《TCP/IP 協議詳解》裡面各個協議的協議域發獃。對新技術的介紹方面我覺得《Software Defined Networks: A Comprehensive Approach》就挺不錯。

另外網路編程方面,值得一說的是,之前看過《UNIX network programming》之後覺得自己會了,寫過CMU 15-641的幾個作業之後更是覺得自己懂了網路編程,可是之後看過 The Secret to 10 Million Concurrent Connections -The Kernel is the Problem, Not the Solution - High Scalability - 又發現其實自己對網路編程完全不會,之後再在網上逛逛,看看微信怎麼用協程做非同步化,看看怎麼跳過內核網路棧提升性能,更是覺得自己對網路編程一竅不通。可惜我在這方面還沒找到好的書。


不是為了打廣告,而是這幾本書在自學時可以相互補充


top-down


推薦閱讀:

計算機科學領域的高大上名詞(中英文)有哪些?
演算法在前端開發的中實際應用有哪些?
編程術語 REPL 正式翻譯成什麼?
如何對指定文件夾進行簡單加密?
內存和固態盤原理?

TAG:書籍推薦 | 計算機技術 | 計算機網路 | 計算機科學 |