今天偶然發現了計算機網路如何自學的問題,於是決定怒答一波
。
關於計算機網路如何學習,我就拿自己親身實踐的來舉例吧,因為我也自學學起的。
我覺得最重要的就是看書(部落格) + 實踐。
首先是看書。
書籍推薦
書也分為不同的層次,最基礎的入門書籍有
網路是怎樣連線的
這是我推薦給你的第一本書。
這本書是日本人寫的,它和《程式是怎樣執行的》、《計算機是怎樣跑起來的》統稱為圖解入門
系列,最大的特點就是風趣幽默,簡單易懂。這本書通過多圖來解釋瀏覽器中從輸入網址開始,一路追蹤了到顯示出網頁內容為止的整個過程,以圖配文,講解了網路的全貌,並重點介紹了實際的網路裝置和軟體是如何工作的。
本書圖文並茂,通俗易懂,非常適合計算機、網路愛好者及相關從業人員閱讀。
所以如果大家是新手的話,強烈推薦一下這本書。
日本人就愛圖解,同樣圖解系列的入門書籍還有《圖解 HTTP》、《圖解 TCP/IP》。
圖解 HTTP
這是我推薦給你的第二本書。
《圖解 HTTP》是 HTTP 協議的入門書籍,當然 HTTP 也是屬於計算機網路的範疇,這本書適合於想要對 HTTP 有基本認知的程式設計師,同樣也適合查漏補缺。
這類書看起來就毫無難度了,不得不說圖解系列是給小白的聖經,它能增強你的自信,讓你覺得計算機其實沒那麼難
,這是非常重要的。初學者,最怕的就是勸退了。
圖解 TCP/IP
這是我推薦給你的第三本書
上面的圖解 HTTP 是針對 HTTP 協議的,那麼《圖解 TCP/IP》就是針對 TCP/IP 協議簇中的協議了,這本書我已經看了 80% 了,還是比較系統的一本書,基本上涵蓋了 TCP/IP 協議簇中的所有協議知識了,這本書看完了完全就可以直接深入理解 TCP/IP 協議簇了。
對於新手來說,最重要的一點就是幫助你理解,怎麼簡單怎麼來,這樣才能快速入門,對於快餐式的社會來說,快速理解當然是當仁不讓的首選了。
如果上面這幾本書你都搞定了的話,那你就可以讀一下 《計算機網路:自頂向下方法》這本書了,這本書可以作為基礎書籍也可以作為進階書籍,這裡我歸為了進階書籍,因為裡面有一些章節不是那麼好理解,比如介紹網路層的時候,會分為資料平面和控制平面,介紹 TCP 和 UDP 的時候,也會聊到一些原理性問題。
計算機網路:自頂向下方法
這是我推薦給你的第四本書
這本書是一本計算機網路的聖經
書籍,聖經就在於人人都應該讀一下這本書,原著非常經典,翻譯也很不錯,我自己也馬上就看完了,這本書會從頂層也就是網路層逐步下探到物理層,一層一層的帶你入門,解釋各層之間的協議,主要特徵是什麼,一個資料包的傳送歷程。這本書並不侷限於某個具體的協議,而是從巨集觀的角度來看待計算機網路到底是什麼,裡面有一些專業名詞,理解並掌握後會對深入學習計算機網路非常有用。
計算機網路:謝希仁版
這是我推薦給你的第五本書籍
這本書是很多大學的教材,也是一本非常好的進階
書籍,這本書相對於自頂向下方法更多是對於通訊網路的闡述。
這本書的特點是突出基本原理和基本概念的闡述,同時力圖反映計算機網路的一些最新發展。本書可供電氣資訊類和計算機類專業的大學本科生和研究生使用,對從事計算機網路工作的工程技術人員也有參考價值
現在我們接著聊,如果上面這兩本書隨便一本看完了,那麼恭喜你已經是一個老手
了,你的網路基礎能打敗 90% 以上的人了,如果你還不滿足的話,那你就需要繼續深入,繼續深入也是我推薦給你的提高書籍。
HTTP 權威指南
這是我推薦給你的第六本書
HTTP 權威指南是深入 HTTP 非常值得一看的書,這本書寫的非常全了。
此書第一部分是 HTTP 的概述,如果你沒有時間,通讀第一部分就能讓你應付普通的日常開發工作。
第二部分主要講現實世界中 HTTP 的架構,也可以看作 HTTP 的全景圖,包括 Web Server/Cache/Proxy/Gateway,是全書中精華的部分。
第三部分主要是 HTTP 安全,其中 Basic 和 Digest 概略看下即可,現實世界中用的應該不多。看 HTTPS 最好有一些電腦保安基礎,這樣會順暢很多。
第四部分主要是關於 HTTP Message Body 的部分,包括 Content Negotiation,MIME Type,chunked encoding等,概略看下即可。
第五部分的內容,Web Hosting 可以認真看下,瞭解下 Virtual Host(話說我上學的時候一直搞不懂 Virtual Host,一個 IP 怎麼能同時 Host 兩個不同域名的 Web 頁面呢)。
剩下三章已經過時,基本可以忽略。 最後的附錄,可以用作邊用邊學的字典,如果你自己來寫 Web Server,那麼這一部分是極有價值的參考。
總而言之,無論你是前端還是後端,只要是 Web 相關的,那麼此書就是必讀的。
TCP/IP 詳解
這是我推薦給你的第七本書
這是一本被翻譯耽誤的經典書,兩個硬核作者 Kevin R. Fall 和 W. Richard Stevens 被南開大學的某計算機系的譯者給毀了。我第一開始讀這本書以為是自己智商不夠,原來是翻譯瞎TM翻
啊。語句不通且不說,您好歹走點心,改點措辭也行啊,純碎是生搬硬套谷歌翻譯啊,哎。
來看看豆瓣讀者們對這本書的評價吧,比我有力量多了。
這個回答給我看樂了,嗯,把這本書當作一本 Google 詞典確實是一種不錯的選擇。
不過這本書確實是一本非常好的書,這本書的關注點在於 TCP/IP 協議棧上,可以說把 TCP/IP 講透講細了,比如講 TCP 就會分別從連線管理、TCP 超時重傳、TCP 擁塞控制、TCP 保活機制來講起,不管你是從事哪個技術棧的研究,不管你是程式設計師還是網路工程師,這本書都是你值得一讀的一本,不過要讀最好還是讀英文版。
TCP/IP 詳解有三本,第二本是
這本黑皮書主要是介紹如何實現 TCP/IP 協議的,這本書很難入門。書中給出了約 500 個圖例,15000 行實際操作的 C 程式碼,採用舉例教學的方法幫助你掌握 TCP/IP 實現。
本書不僅說明了插口 API 和協議族的關係以及主機實現與路由器實現的差別。還介紹了 4.4BSD-Lite 版的新的特點。本書適用於希望理解 TCP/IP 協議如何實現的人,包括編寫網路應用程式的程式設計師以及利用 TCP/IP 維護計算機網路的系統管理員。
第三卷是 tcp 事務協議、http、nntp 和 unix 域協議
這本書看的人就更少了。
第 3 卷詳細介紹了當今 TCP/IP 程式設計師和網路管理員必須非常熟悉的四個基本主題: TCP 的擴充套件、Hyper 文字傳輸協議、網路新聞傳輸協議和 UNIX 域協議。與前兩卷一樣,本書介紹了 4.4BSD-Lite 網路程式碼中的示例和實現細節。
嗯。。。有一些沉重了,其實這些深入協議底層的書籍我們 99% 的人都接觸不到,但是為了回答的完整性,我就都列出來了,這樣的好處是讓你能系統瞭解。
上面都是一些理論書籍,下面是稍微偏實戰一些的書籍了。
計算機網路實戰最有效的當然就屬於抓包了,有很多抓包工具比如 wireshark、sniffer、httpwatch、iptool、fiddle 等,但是我用的和使用頻率最高的應該就是 wireshark
了,關於 wireshark 還有幾本實戰方面的書你需要知道
wireshark 資料包分析實戰
這是我推薦給你的第八本書
初學者必備,介紹了 wireshark 安裝,嗅探網路流量,wireshark 的基本使用,用 wireshark 分析了一圈常用的TCP,UDP 協議,也簡要分析了 HTTP 等應用層協議,概要介紹了一些 TCP 重傳的機制,最後是無線分析。
整個書定位應該是入門級別的,基本上每章都是簡要介紹,並沒有特別深入大張闊斧地進行描述。文章行文思路清晰,譯者的翻譯水平也不錯。總的來說,是初步認識和了解 wireshark 的好書。
wireshark 網路分析就是這麼簡單
這是我推薦給你的第九本書
讀的時候你會忍不住笑的,區別於《Wireshark資料包分析實戰》,本書就像一本偵探小說集,以幽默風趣的語言風格,藉助wireshark以理性的思考來不斷探險,根據蛛絲馬跡來偵破案情
。總結,讀完資料包分析實戰來讀這本。
Wireshark網路分析實戰
這是我推薦給你的第十本書
其內容涵蓋了 Wireshark 的基礎知識,抓包過濾器的用法,顯示過濾器的用法,基本/高階資訊統計工具的用法,Expert Info 工具的用法,Wiresahrk 在 Ethernet、LAN 及無線 LAN 中的用法,ARP 和 IP 故障分析,TCP/UDP故障分析,HTTP 和 DNS 故障分析,企業網應用程式行為分析,SIP 多媒體和 IP電話,排除由低頻寬或高延遲所引發的故障,認識網路安全等知識。
書籍推薦大概就是上面那些,除了書之外,還有一些視訊、部落格、官網網站可以學習
視訊推薦
很煩微信公眾平臺怎麼不支援外鏈呢,這個體驗就很差啊。
今天在 b 站看視訊的時候,看到了一句話眾所周知,b 站是用來搞學習的,對於我們學習程式設計的童鞋來說,b 站有著非常多的學習資源,但是有一些質量並不是很好,看了之後不容易理解,這也是寫這一篇文章的原因,為大家分
享一些質量超高的計算機基礎
的學習視訊,往下看就完了。
**1. **計算機網路微課堂(有字幕無背景音樂版)(陸續更新中......)_嗶哩嗶哩 (゜-゜)つロ 乾杯~-bilibili
學習計算機網路,我首先推薦的 UP 主湖科大教書匠
,他講的計算機網路十分通俗易懂,重點的地方講的十分細緻,並且還有一些實驗,更好的是有考研 408 的難題的講解,也是非常適合考研黨,除了課程內容外還有很多習題講解視訊,特別讚的一點是每天動態裡都會更新一道考研題,播放量也非常的多。
2. 2019 王道考研 計算機網路_嗶哩嗶哩 (゜-゜)つロ 乾杯~-bilibili
既然說到了考研,那我就不得不提一下王道考研
了,恭喜你發現了寶藏。王道考研的計算機網路視訊,播放量非常多,而且老師是一位小姐姐,聲音十分動聽,聲音這麼好聽的老師給你講課,媽媽再也不用擔心我的學習了呢,總之,這個視訊的質量也非常高,彈幕全是對小姐姐的高度評價。(王道考研其他的視訊也不錯哦,暗示一下:作業系統,資料結構等等)
3. 韓立剛計算機網路 謝希仁 第7版 2020年12月_嗶哩嗶哩 (゜-゜)つロ 乾杯~-bilibili
韓立剛老師
所講的計算機網路視訊,內容比較多,但是講解的通俗易懂,並且老師講課的經驗也十分的豐富。配套的教材是謝希仁老師的計算機網路教材,韓老師的最近的一個視訊視訊比較新,播放量還比較少,但是他講的是真的不錯,相比於王道考研所講的計算機網路,韓老師更加細緻一些。
4. 計算機網路(謝希仁第七版)-方老師_嗶哩嗶哩 (゜-゜)つロ 乾杯~-bilibili
在計算機網路方面,我還想推薦的一位老師就是方老師
,也是一位小姐姐老師。她的視訊配套的教材也是謝老師的網路教材,線上看的小夥伴也超多,彈幕都是對方老師的評價。
部落格推薦
推薦幾個不錯的學習部落格。
網際網路協議入門-阮一峰:http://www.ruanyifeng.com/blog/2012/05/internet_protocol_suite_part_i....
網路協議-蘭亭風雨:http://blog.csdn.net/ns_code/article/category/1805481
HTTP協議:http://www.cnblogs.com/TankXiao/category/415412.html
Unix 網路程式設計:http://blog.csdn.net/chenhanzhun/article/category/2767131/2
TCP/IP詳解:http://blog.csdn.net/chenhanzhun/article/category/2734921/1
計算機網路面試題:http://blog.csdn.net/shadowkiss/article/details/6552144
國外優秀計算機網路站點:http://www.tcpipguide.com/free/t_TCPSlidingWindowAcknowledgmentSystemForDataTranspo-6.htm
當然最硬核的就是 RFC 文件了 RFC Index
學習 HTTP ,必須要看一下 MDN 官網 HTTP | MDN
學習計算機網路,Cloudflare 你必須要去看 https://www.cloudflare.com/zh-cn/learning/
GeeksforGeeks 學習計算機網路也非常不錯 Basics of Computer Networking - GeeksforGeeks
Tutorialspoint 系統學習計算機,不僅僅侷限於計算機網路 Computer - Networking
國外優秀的學習網站不能少了 javapoint Types of Computer Network - javatpoint
以上這些網站都是我精心彙總的一些內容。
我自己也輸出了一些關於計算機網路非常硬核的連載教程
作為配套,我寫了一些關於計算機網路的文章,你也可以作為參考
計算機網路第一篇,聊一聊網路基礎 :計算機網路基礎知識總結
計算機網路第二篇,聊一聊 TCP/IP 基礎:TCP/IP 基礎知識總結
計算機網路第三篇,這些應用層協議你也應該知道:拿下計網協議後,我就是公園裡最靚的仔
計算機網路第四篇,這篇文章寫的時間很長了,圖文精美,非常值得花時間閱讀:40 張圖帶你搞懂 TCP 和 UDP
計算機網路第五篇,網路層之路由器的基本概念:路由器你竟然是這樣的...
計算機網路第六篇,瞭解一下 IP 基礎知識的概念:IP 基礎知識總結
計算機網路第七篇,全方位瞭解一下網路層的知識:我畫了 40 張圖就是為了讓你搞懂計算機網路層
計算機網路第八篇,瞭解一下 ARP 協議是什麼:ARP,這個隱匿在計網背後的男人
計算機網路第九篇,DNS 協議是面試經常會考到的點,這篇帶你深入瞭解一下 DNS 協議:萬字長文爆肝 DNS 協議!
關於 HTTP 協議的相關硬核內容 ,可以作為參考,希望能幫到你
看完這篇 Session、Cookie、Token,和麵試官扯皮就沒問題了
這些文章也是在連載中,希望小夥伴能夠喜歡,如果有任何關於網路方面的知識,歡迎與我一起探討,你可以在
這個github 上聯絡到我,我的這個 github 也有一些不錯的文章,希望能夠對你有所幫助。
實驗
借鑑一些大佬的回答,給你推薦一個史丹佛課程的實驗
推薦 Stanford 課程 cs144,配合《計算機網路:自頂向下方法》(Computer Networking: A Top-Down Approach)。具體來說就是跟著 cs144 的課程安排走一遍,**完成課程的 lab **啦。
另外,新增我的微信 becomecxuan,加入每日一題群,每天一道面試題分享,更多內容請參見我的 Github,成為最好的 bestJavaer,已經收錄此篇文章,詳情見原文連結。
我自己肝了六本 PDF,微信搜尋「程式設計師cxuan」關注公眾號後,在後臺回覆 cxuan ,領取全部 PDF,這些 PDF 如下