計算機網路的一切技術細節,也就是那些枯燥的部分,都是歷史遺留問題。可以說,如果將現有一切推倒重來,重新考慮“多臺計算機之間如何互相通訊”這個計算機網路所解決的根本問題,再發明出來的網際網路將會是完全另一番樣子,而且肯定會簡單很多——一個原因是技術進步了,另一個原因是人們從歷史中吸取了教訓。所以,當你面對枯燥的技術細節的時候,可以試著考慮這樣一個問題:如此設計的理性因素何在?它有什麼改進的餘地?比如,TCP 建立會話為什麼要三次握手?為什麼 OSI 要有七層?進而思考一下,這樣的設計合理嗎?不合理的設計會被取代嗎?比如,OSI 為什麼沒能成功?以及,為什麼人們會擁抱 REST,嫌鄙 SOAP?
再就是,計算機網路這門課,與現實世界結合得相當緊密。編譯原理本質上是語言學和數理邏輯學,一切都發生在完美世界裡,語法樹想多長就多長,不用考慮澆水施肥的問題。但是計算機網路不一樣,物理層就是赤裸裸的銅線光纖紅外線,要考慮到現實世界可能發生的各種問題,要有容錯能力。這些其實都是工科的東西,更接近機電,而非數學。所以你要培養自己對現實世界的熱愛,接受現實世界的不完美,不能痴迷於符號邏輯和二次元軟妹子裡。
總結來說,計算機網路教授的是知識,也是經驗和文化,不能為了學而學它……
計算機網路的一切技術細節,也就是那些枯燥的部分,都是歷史遺留問題。可以說,如果將現有一切推倒重來,重新考慮“多臺計算機之間如何互相通訊”這個計算機網路所解決的根本問題,再發明出來的網際網路將會是完全另一番樣子,而且肯定會簡單很多——一個原因是技術進步了,另一個原因是人們從歷史中吸取了教訓。所以,當你面對枯燥的技術細節的時候,可以試著考慮這樣一個問題:如此設計的理性因素何在?它有什麼改進的餘地?比如,TCP 建立會話為什麼要三次握手?為什麼 OSI 要有七層?進而思考一下,這樣的設計合理嗎?不合理的設計會被取代嗎?比如,OSI 為什麼沒能成功?以及,為什麼人們會擁抱 REST,嫌鄙 SOAP?
再就是,計算機網路這門課,與現實世界結合得相當緊密。編譯原理本質上是語言學和數理邏輯學,一切都發生在完美世界裡,語法樹想多長就多長,不用考慮澆水施肥的問題。但是計算機網路不一樣,物理層就是赤裸裸的銅線光纖紅外線,要考慮到現實世界可能發生的各種問題,要有容錯能力。這些其實都是工科的東西,更接近機電,而非數學。所以你要培養自己對現實世界的熱愛,接受現實世界的不完美,不能痴迷於符號邏輯和二次元軟妹子裡。
總結來說,計算機網路教授的是知識,也是經驗和文化,不能為了學而學它……