計算機網路之我見-通俗理解計算機網路(一)
寫在前面:計算機網路和“XX語言程式設計師”這個職業也許並不強相關,例如大部分java程式設計師只要懂得如何使用servlet規範API,採用某些MVC框架寫好程式打包部署到tomcat等容器中就能寫出功能強大的“XX管理系統”,然而如果需要編寫那些自己制定協議的基於tcp/udp的網路服務程式,理解計算機網路的基本工作原理還是很有必要的。本人才疏學淺,相當長一段時間內都沒能對計算機網路知識有一個感性的認識,然而看了一些文件,也有了一定的感悟,寫本系列部落格的目的主要對零散的網路知識總結歸納成通俗容易理解的話語,以期達到融會貫通和防止遺忘。(本文只是自己的理解,有失水準,歡迎指正錯誤)
1 何為計算機網路,計算機網路的基本組成是什麼?
計算機網路就像電網一樣,用電線互相連線在一起,電從發電廠通過電線能把電能傳遞到你家、我家、千千萬萬家,因為你家我家和電廠之間都有直接或者間接的電線相通,所以可以互相傳遞電能。這裡我們總結出一個點:要想互相傳遞資訊,必須有直接或者間接的通路聯通。然而計算機網路除了互通外還必須解決一個問題,那就是能夠進行精確的一個點到另一個點的訊息傳遞,不能無腦瞎傳,做這些工作的就是計算機網路中的各種裝置節點了,計算機網路中的節點裝置主要有交換機、路由器和主機,它們之間相互協調來進行資料的準確傳遞。
2 網路一般的結構是啥樣的,交換機、路由器和電腦主機一般是怎麼連線的?
首先明確一點,無論怎麼連,只要這些裝置接入到網子上,就能通訊! 然而不同的連線法有不同的特點:
有一根直線上接好多臺電腦主機的網路結構;
有一個交換機接好多臺電腦主機的放射型的、樹形的網路結構;
還有一臺主機有多個網口,多臺主機之間互相連線的網狀網路結構;
對於一根線上接好多臺電腦的這種型別的網,有個缺點就是所有的電腦間互相通訊的時候都必須佔用那根線,如果其中一對通訊的電腦佔據了這根線,其他的電腦想通訊的時候必須等著線路不用了再去佔(專業術語叫共享式網路,電腦網絡卡採用“載波監聽衝突檢測”演算法來檢測線路是否被佔用),這樣網速必然會很慢,但是怎麼說都是可以通訊的。
對於多臺主機間互相用網線兩兩連線的這種網狀網,由於每個主機相互之間都有線連線,互相通訊不干擾,通訊效率應該最高,但是得費多少網線,接多少網絡卡,所以這種網太浪費了,一般都是國家的多個核心地區的核心路由器之間採用不完全的網狀結構網(省點網線,不是兩兩都有線相通),這種網應該對資料傳輸可靠性很有保證,因為一條線斷了還可以通過其他的線轉發過去。
又省線省網絡卡,又不需要多個主機共享一根線通訊的連發有木有,有,那就是現在常用的用交換機、路由器連線多臺主機的連法了,叫樹形結構,這種結構現在是最普遍了,特點是多臺電腦之間沒有直接的網線相連,而是都連線到交換機 或路由器上、互相通訊的時候把訊息資料發到交換機,由交換機在進行資料轉發,主機對之間互相通訊不衝突、只是需要交換機統一換髮資料,資料包需要排隊了,姑且叫做轉發式網路吧,交換機一般都是硬體轉發,排隊也不是事,這比一根線多臺主機的共享式網路效率高多了去了,現在的區域網基本都是採用這種結構。
所以根據我的推斷,我得出結論:我國的網際網路結構應該是幾個地區的核心路由器之間採用網狀結構互聯,然後每個核心路由器下面的區域網路基本都是樹形結構的網。
本來想多寫點,但是有點累,下次再寫吧。這篇先講網路結構,下次講講交換機、路由器、主機之間鏈路層如何通訊,再講講IP地址的概念,IP分類、路由器和主機之間的IP層通訊方式、、、、、以後再講IP層如何根據路由表路由、路由表如何生成的、ARP協議、ICMP協議、TCP、UDP等等
2018年7月29日晚7點50 悶 -- 孔令寬