網路那些事兒

2021-10-01 22:22:41 字數 2457 閱讀 9671

今天來給大家聊一聊計算機網路。

說起計算機網路,那一幫程式設計師肯定要頭疼了,什麼這協議,那鏈路的,感覺這計算機網路就是一團亂麻。

非也,說計算機網路是一團亂麻其實是你沒腦子裡一團亂麻,也怪現在的教科書寫的都和工具書一樣,能把簡單的事情給你往複雜裡說,然後學的人就蒙了。

今天就來梳理梳理這計算機網路究竟是個啥?

先說網路吧,我們天天上,沒有網感覺日子都過不下去。去個地方先不找廁所,先找wifi。

聽上去不是很簡單嗎,不就發個資料,那為什麼寫了那麼厚本教材呢?

其實沒有那麼簡單。

先來說說簡單的連線,連線嘛,咱兩同桌,找跟線把咱兩的電腦連起來,然後咱兩就可以聊天了。哎嘿,完美。

其他同學不幹了,為啥就你兩聊,咱們建個群聊。於是全班的電腦都拿線接到同一臺機器上,然後大家就可以群聊鬥圖了,這個機器呢,就是交換機,而這個班呢,就是乙個區域網

這時候呢,另乙個班乙個你的哥們想給你發個訊息,怎麼辦呢?於是就給你們班乙個路由器,他們班乙個路由器,然後兩個路由器一連。這樣你和他也可以通訊了。這就組成了傳說中的」網路的網路「——大名鼎鼎的internet。

是不是有那麼一點點層次感了,你和你同桌連的那根線就是物理層的資料傳輸介質,全班連在一起鬥圖就是鏈路層的乙太網,不同班再連起來就是網路層的網際網路了。再上面還有個運輸層和應用層,都是資料放在網上運輸之前做的準備,就像你發快遞之前先得填位址一樣。

這些好像都不難啊,那那麼多協議都是幹啥的,又臭又長,簡直了。

其實那些協議就是給你網上怎麼聊天定個規矩,比如說你找誰,怎麼找,聊天不能說髒話等等等。

萬事都有規矩,就像盧梭說的」人生而自由,但無往不在枷鎖之中「,你上網也得守網上的規矩。

下面就來分別說說從上到下每一層聊聊。

1. 應用層

拿寄快遞來舉個栗子。應用呢就是寄快遞和收快遞的人,現在呢,你要給別人寄快遞了。這時候你得把快遞包起來,先寫上位址,對於不同的東西當然包法不太一樣,這就是應用層不同協議的區別。

2.運輸層

然後你拿著包裹到了小區的快遞點(這裡假設快遞不提供上門服務,只是配送到小區快遞點,而之後的得自己取)。

小區快遞點的人要求你寫上收件人姓名和**,這個呢就是埠號。收件人姓名和**在快遞的運輸過程中毫無存在感,快遞都是按位址送的,但卻在最後從小區快遞點到收件人手裡的過程中很重要。沒有這兩個,到了快遞點,就不知道給誰了。(所以運輸層的協議只存在於主機端系統中,跟中間的網路傳輸沒啥關係)

之後要選快遞公司了,這兒有兩家快遞公司,tcp快遞公司和udp快遞公司,名字挺像,不要搞混了。

tcp呢,絕對的五星級品牌企業,保證送到,而且無損壞,無延遲。而且tcp公司的全國運輸網路建的賊6,實時監控不擁堵。

udp呢,簡直就是乙個流氓企業,不保證送到,有可能半路給你扔海浬,還有可能物件損壞(訊息順序打亂,」孫行者「送過去成」行者孫「了)。

3.網路層

網路層就是快遞公司的運輸系統了,比如你的收件位址是」上海市閔行區莘莊鎮xx小區「,發件位址是」甘肅省**市**區yy小區「,這樣你的小區快遞點先把你的快遞送到甘肅蘭州分撥中心(蘭州分撥中心就是子網中的源路由器,每個鏈結都預設先發往自己子網的源伺服器)。

然後呢分撥中心會提取你的位址,首先是上海市,嗯,先**到上海市分撥中心,然後再提取」閔行區「,**到閔行區分撥中心,這樣一步一步提取,最後就到了xx小區快遞點。(全球的快遞運輸系統就構成了網路層每乙個分撥中心就是路由器,分撥中心根據位址**的過程就是路由選擇

4.鏈路層

鏈路層呢就是快遞運輸的方式,比如這一段用航空,這一段走火車,最後一段走貨車。(不同的運輸方式就是不同的鏈路層協議)。鏈路層主要強調一些資料的差錯檢測,和資料怎麼發的問題,這有就是鏈路層協議的不同點。

表現在有的分撥中心管理員人很nice,會在收貨的時候檢查一下收的全不全,另外會想一下接下來怎麼發,畢竟貨車就這麼幾輛,包裹又這麼多。有的呢就跟水滸傳裡的黑心酒家一樣,包裹丟了也不管。

5. 物理層

物理層呢就是真實的物理介質了,也就是快遞運輸的真正的飛機、火車、貨車了,不同的交通工具速度不一樣。在網路中呢,物理介質也就是我們熟悉的銅線、光纖等,不同的介質性質也不同。

最後再來說說無線網是怎麼肥事,無線網和有線網在網路層及以上完全是一樣的,只是鏈路層和物理層不同而已。這也好理解,有線網有線嘛,得鋪線,無線網就高階一點,不要線了,直接隔山打牛。從快遞角度來說,有線網的鏈路層要有交通工具來運輸,而無線網直接進化了,不要交通工具了,直接改為哆啦a夢的時空隧道了。

說了這麼多,大概就是我對網路這個現代最偉大的發明的粗淺理解,如果有什麼理解不當的地方,還請您指出。如果您有興趣深入了解計算機網路的知識,推薦這本書《計算機網路自頂向下方法》(第6版)

最後,祝所有點讚的朋友生活如意,考試滿績,女朋友帥氣,男朋友美麗!

鏈結那些事兒

鏈結,就是將不同部分的 和資料收集和組合成為乙個單一檔案的過程,這個檔案可被載入到儲存器中執行。鏈結可以執行於編譯時 compile time 也就是源 被翻譯成機器 時 eg.普通的鏈結器鏈結,以及靜態鏈結庫,由靜態鏈結器鏈結 也可以執行於載入時 例如動態鏈結庫的載入時鏈結 也可以執行於執行時 r...

指標那些事兒

1.野指標 也叫懸擺指標,迷失指標 野指標是導致bug的罪魁禍首之一。對指標呼叫delete後 釋放掉了它指向的記憶體,野指標還是指向原來的位址 如果沒有重新賦值就使用它,將導致難以預料的後果。因為此時操作野指標,它指向的記憶體位址可能已經分配給其他變數在使用了。所以指標在delete之後,如果不再...

遞迴那些事兒

include include include include 求階乘 int fac int n if n 1 求累加 int add int n 求字串長度 int my strlen const char dest int main 遞迴注意事項 遞迴雖然經典,但是也有他的缺點 第一 遞迴是反...