大家好,我是小麥,網絡協議是一塊比較讓人頭疼的東西,在我看來,協議這種東西,都是人指定的,里面會涉及到很多細節,也有很多設計哲學。
很久以前嘗試看 uIP 的源碼,當然還配合著《TCP/IP協議詳解》這本書一起看,沒過多久就放棄了,其實挺枯燥的。
uIP是專為8位和16位的嵌入式微控制器設計的微型TCP/IP協議棧,它提供了網絡通信所必須的協議, 本身代碼和占用的內存數都非常少;
uIP的源代碼只有幾KB, RAM占用僅幾百字節。
看輕量級的代碼的好處就是,代碼量少,容易理清楚其中的邏輯;
lwip 和 uIP 的作者是同一個人;lwip這個協議棧應用更加廣泛,而且功能也比較完善,不過代碼量也大的多,后來在SOC上簡單移植過這個協議棧,網上都有比較詳細的教程,以太網芯片用的是DM9000,對于網絡協議有了初步的認知,后來的后來就是漫漫的學習和積累的過程。
總所周知,在10 個程序員里面,肯定10 個都說自己學過網絡協議,9 個說自己懂網絡協議。
但真正面試的時候,能回答出相關問題的,可能只有兩三個。比如:
“TCP 協議跟 UDP 協議有什么區別?”
“HTTPS 協議的底層原理是什么?”
想想這些你都能答出來嗎?其實,參加過大廠面試的小伙伴應該都清楚,無論是國內的互聯網大廠還是硅谷的 IT 公司,面試多少會問網絡協議的知識。
這并不難理解,畢竟大廠更注重程序員的基本功,而且幾乎所有的程序運行都會涉及到網絡協議,一旦用錯就容易產生災難性的后果。
退一步講,就算你不去大廠,但你但凡想在技術之路上走遠一點,想成為技術大牛,做大系統,就必須搞定網絡協議。
舉個例子,很多人都被“技術變化太快,容易過時”所困擾過,從搜索引擎、大數據、云計算到人工智能、區塊鏈...等。實際上,很多技術看起來轟轟烈烈,扒下外衣,本質的東西其實就是“計算機組成原理、操作系統、網絡協議、數據結構與算法”這些基礎知識和核心概念。
不想被滾滾而來的新技術淘汰的辦法,就是掌握最核心本質的知識。它們不會像“X 天帶你搞定 MySQL”這樣的內容,更容易幫你找到工作,但正是這些知識,在你 40 歲之后依然很有價值。
網絡協議這個東西,并不難,很多人學不好,跟智商沒關系,純粹是因為——網絡協議太難背了。屬于典型的一看覺得懂,一問就打鼓,一用就糊涂的知識。
怎么更輕松地學習網絡協議呢?這個問題也一直困擾著我,直到我有幸遇到一位大神替我指點迷津,這個大神就是前網易云計算的首席架構師「劉超」。
超哥有 15 年的技術經驗,寫過 500 多頁的《Lucene 原理與代碼分析》,現在某個頂級大廠做技術(等級很高,我就不說了,得保密),他寫的《趣談網絡協議》,是我在極客時間為數不多的、全程跟完、從頭啃到尾的專欄,現在已經有 54000+ 的人訂閱了。
超哥用他最擅長的比喻的方式講概念,把路由協議、UDP 協議、TCP 協議、HTTP 協議、流媒體協議、P2P 協議還有 DNS 協議等,“通過故事講出來”,每天通勤路上聽兩篇,跟聽有聲小說一樣過癮。
我最大的收獲,就是幫我構建了我的知識體系。每學到新的內容,就知道什么放在哪里,思考問題時,也是根據體系和框架來判斷的。
專欄正在做限時優惠的活動,現在拼團 + 口令「liuchao06」到手只需要 ¥119 ,即將恢復原價至 ¥199。有需要的閉眼入。

專欄有幾個特色,當時我也是一眼被這幾個亮點吸引住了:
1、用小說般的語言趣談網絡協議
之前學習網絡協議,要看將近 10 本書,而且每本書之間都是獨立的,但超哥的專欄中,所有的內容都串起來,就像電視連續劇一樣,讓你能夠從點到線,再到面,系統理解網絡協議之間的關系,而不是死記硬背,就比如說