[2013.05.22]站在小白的角度上想想數據通信

最近在學《Data communication》,IP協議棧,東西比較碎也比較多,感覺像是在被牽着鼻子走。出來一段話,看看,哦,是幹這的,再出來一段話,哦,是幹那的。看完後,想想剛纔看了什麼?——不知道。只感覺一直都在看,也都看懂了,卻不知看的都是些什麼。

這種情況在學習中很常見,解決起來也很簡單,一個字——聯想!感覺很雜的原因就是自己沒有頭緒,被動的在被灌輸着些什麼。但其實,自己站在新手的角度上想想,稍微推理一下,就肯定是書上講的東西了,或者書上比你想的更多,或是你想到的書上都沒有寫。爲什麼要聯想呢,我在第一篇日誌裏寫道過,就是因爲,人都是差不多聰明的。

那就來試試吧,我隨手打一下關於數據通信的我能想到的一些,純屬娛樂。

數據通信,又稱計算機網絡。講信息怎麼從一臺終端到另一臺終端的內容,主要是計算機。那就開始想唄。。首先想到的是一些單詞:目的地址,信息內容,發送方式,接受方式,干擾。。這麼一想,額,,好寬泛啊,沒法下手抓。再想想,就比如說QQ聊天,怎麼實現的呢?對用戶來說,就是一個對話框,我們在裏面輸入內容,一個回車就發出去了。但有時候網速慢,可能提示說發不出去,網速再慢點,直接掉線了。這是我們平時幾乎人人都能見到的3種情況,直覺就是發送信息和網速有關。現在來細想想吧。

用戶一個回車,信息就發過去了,這顯然在回車的背後肯定有一系列系統的操作,對用戶是透明的,是用戶不需要知道的。這其實是很好的用戶體驗,那學這門課的任務就是,瞭解這個黑箱是怎麼運行的。這時看一眼目錄,好多層,物理層-數據鏈路層(MAC)-網絡層-……單看看名字,就有個差不多的感覺了。

從小就在想,怎麼把世界上所有的人連在一起呢,小時候能想到的方法只有一個:用一根繩子把所有人都串起來。。其實吧,現在看看計算機網絡,不管你在天涯海角,其實還是用一個線連起來的。看看,現在的人們也不比我小時候更聰明些,因爲所採用的辦法,一個小孩兒都能想的到——巨大無比牛逼哄哄的一坨線,這應該就是物理層。

線是電線,裏面走的是電流,就想到了電信號,所以在物理層上面的數據鏈路層應該就是負責傳輸數據的。所以這一層擔負的任務可見一斑。那麼繼續想,傳輸數據需要什麼?傳的啥?往哪兒傳?怎麼傳?速度如何?能傳到嗎?會不會錯?錯了怎麼辦?帶着這些問題再看看書,這尼瑪什麼幀格式啊, 校驗啊,流量控制啊,退避算法啊,不都出來了嗎?看吧,我說的,定標準的人不比我們聰明多少,正常的思維都想得到。

然後,感覺其他幾層就很雞肋了。因爲我們有了傳輸的路:物理層,也有了傳送過程的種種控制:數據鏈路層。還要上面的網絡層啊,運輸層啊,應用層啊什麼的幹什麼?應用層還是比較好理解的,比如QQ界面,就算是應用層的東西吧。那剩下的,網絡層,或者IP層是幹嘛的?我有漏掉一些東西嗎?爲什麼會多出來了這兩個層?

然後看看書也許就明白了,是因爲我們剛纔把數據鏈路層想的太NB了,無所不能,啥活都讓他幹了。所以多個網絡層,主要是用來選擇傳輸線路的,從哪個路走最近,哪個路不堵?做這個工作。等於是在替數據鏈路在分擔。同樣,IP層,是在做虛擬地址與實際物理地址的映射工作,起到讓數據知道自己從哪兒來,到哪兒去的工作,也是在替數據鏈路分擔。

好了,說到這裏,明白點了嗎?反正我是明白多了。至於每層具體幹什麼,那就可以再往下細看了,畢竟大的框架已經搭好,功能已明瞭,那剩下的,就是補充啦。再說一句,指定標準的人是很牛逼,因爲人家想的很細,也很周到。

其實學習就應該是這樣,一切解答的根源都很簡單,就是一個很賤又很巧的想法,實現出來。只有自己多想想,才能和作者進行交流和對話,那纔算是學會了,書也就讀薄了。


然後,今天就到這裏啦。另外慶祝一下,板子貌似有希望了!

拜拜了您餒~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章