TCP/IP 體系結構的一些乾貨

想必很多人都聽過一些經典的問題:

TCP三次握手 四次揮手是啥,TCP和UDP什麼區別?HTTP又是啥?

我想從更科普的角度講一下我看完計算機網絡之後的一些體會:

想象一下,我們通信手段一直在變,從烽火狼煙,飛鴿傳書,走鏢,郵寄,到電話,視頻,互聯網,甚至量子通信,但不變的一直都是 數據傳輸的可靠性,準時性等,因此互聯網在實踐中被不斷的完善。

要想實現可靠性和準時性等(等是因爲我總覺得漏了個什麼)參照歷史中的通信手段,我們首先要給需要通信的雙方取個唯一的名字,這樣才能保證確實是這兩個物理機要通信,這就不得不提到在網卡中固化好的唯一的MAC地址,MAC地址就好像一臺物理機的名字一樣,它一直都不會改變因爲它寫在硬件裏面,但你知道一個人的名字是不足以找到她到底在哪裏的,畢竟筆記本之類的設備是很經常移動的。

這時候就來到iP協議層咯,它來負責兩臺已知ip地址的物理機到底是如何找到彼此的,就好像兩臺物理機通過網線連在一起那麼神奇。這裏面的細節非常有意思,比如說ip地址到MAC地址是如何映射的,ARP協議,物理機A到底是通過什麼路徑(路由)到達主機B的,ICMP協議,這些路徑是如何被規劃出來的等。

上面提到這些都是在爲準時性和可靠性在做努力,那麼誰來保證呢?

TCP面向連接的協議就確保咯數據的可靠性,丟包等都會有相應的處理。而UDP不保證數據的可靠性。看書的時候有個疑問,TCP\UDP 協議都是建立在不保證數據傳輸的可靠性的ip協議上的,那麼TCP又怎麼能確保數據是可靠的呢?現在看來就沒什麼疑問咯,因爲TCP協議有一整套的應對方法來做保證。

至於應用層HTTP 等協議我回頭來填坑,但我覺得看到TCP/UDP基本上就可以說基本掌握互聯網 網絡通信到底是怎麼回事了。

最後:socket編程也在後面填一下坑。因爲 基本原理懂了後真的會覺得這些代碼就是完成了上面的基本功能一樣,但是語法總是要記憶,項目總是有複雜多變的業務邏輯在裏面。

 

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