計算機網路基礎
今天回顧了下計算機網路基礎知識,把自己的心得寫下來。
在上一篇寫到,計算機系統的組成包括硬體和軟體,硬體比如CPU,網卡,內存,硬碟等等,軟體包括操作系統和應用軟體,當我們給電腦裝好系統時,一台電腦就可以工作了,但是你不能自己一個人完,你得和其他人打交道,得從其他的網站獲取資源,這就涉及到了網路。
每台電腦都遵循著相同的標準(協議),電腦與電腦之間就可以互相理解。而這個標準就是TCP/IP協議棧。本文以五層協議來解析下網路各層的職責。
圖片來自百度
OSI五層協議由物理層、數據鏈路層、網路層、傳輸層、應用層組成。其中物理層傳輸的是比特流;數據鏈路層採用的是乙太網協議,規定每個電腦都至少需要一塊網卡,在網卡上有全球唯一的MAC地址,數據鏈路層將底層的0,1數據進行封裝成幀,幀由報頭和數據部分組成,報頭中有目的MAC地址欄位,源MAC地址,在數據鏈路層中是以廣播的形式在區域網中傳播,區域網並不能跨網路傳輸,若要跨網路傳輸,則需要在上一層網路層。網路層採用的協議為IP協議,IP協議可以找到另一端的主機,可以跨網路傳輸。IP地址+MAC地址能唯一定位到全世界唯一的一台機器,但是在某一機器上有許多的應用程序,所以在傳輸層加上一個埠號以及傳輸協議類型,就能夠標識唯一的應用程序。
做一個比較形象的比喻,你和你的小夥伴小明在一個教室1上課(教室1為一個區域網),此時你喊小明是SB,你在教室里發出的是廣播信號,區域網可以聽得到,此時小明得知,這句話是在說他,然後小明就收到了消息,並且也喊一嗓子:你說得對。其他人沒有做出回應是因為小明是SB這句話不是給他們的。在你隔壁教室有個老王正在上課,你又大喊一聲:老王,你放學別走。此時他聽不到,你的廣播只能在你的教室了聽得到,到不了他的那個教室。那這個時候為了讓老王聽到,在門口站了個同學A1,在過道上站了同學A2,隔壁教室門口也站了同學A3,你可以把這句話送給A1(相當於你這個區域網的網關),A1發給過道同學A2(路由器),A2再送給A3,A3此時大喊一聲:老王,你放學別走。此時老王就收到了消息。在我看來網關也是個路由器,路由器是識別網路地址的,路由器把消息傳送到你所在的區域網,你如果只有IP地址是沒有用的,因為路由器找不到你的網路地址,所以此時子網掩碼就體現了他的作用,子網掩碼和IP地址做與計算得到的就是計算機所在的網路地址。
如圖,電腦上設置的子網掩碼是有用的,也是必要的。因為通過子網掩碼和IP地址的與操作就可以知道電腦所在的網路地址。路由器此時將消息發送到到網關上,網關此時通過廣播的形式在區域網內發送消息,在消息中攜帶MAC地址,當你收到消息後發現是自己的MAC地址,信息是發給你的,所以你就收到了消息。
順便再解釋下上圖中的DHCP和DNS,在互聯網上,需要靠TCP/UDP,埠,IP地址來標識唯一的一個進程,當你打開電腦時,在某處有個DHCP服務在向你提供可用的IP地址,此時你就有了IP地址。實際上在互聯網中,是提供IP地址和對應的埠來進行通信的,但是假如你要訪問百度,記住百度的IP地址是很費力的,此時就可以通過域名來代替IP地址,域名簡單好記,但是在本質上還是通過IP地址來訪問的,只是這一步在DNS伺服器幫你做了(把域名轉換為IP地址)。如下圖所示:
為什麼DNS伺服器只能有13台?
因為DNS是基於UDP的,在Internet數據傳輸中,UDP數據長度控制在576位元組(Internet標準MTU值),而在許多UDP應用程序設計中數據包被限制成512位元組或更小。這樣可以防止數據包的丟失。UDP數據包512位元組限制了信息量,又因為要UDP報文中包含所有的根伺服器信息所以只能有13個。具體的自己百度去。
要想到了一個比喻,感覺挺形象的。
一台計算機要和其他的計算機進行通信就需要連接到網路(不管是區域網還是跨網段),計算機與計算機之間通信遵循TCP/IP協議就可以實現互聯。常用的協議模型為五層協議。從上到下為應用層、傳輸層、網路層數據鏈路層和物理層。計算機A和計算機B進行通信,首先要知道計算機B的地址。那麼在協議中規定,一個唯一標識的程序有下面的幾個元素:udp/tcp+port+IP。目的IP可以找到計算機B的網路地址,找到網路地址後通過B的MAC地址直接將A的信息發送給B。但是B上運行著好多程序,那麼那個程序才是要接受信息的程序。通過port可以找到運行在B機器的程序。可以將這個過程打一個比方。
比如公司現讓我巴鐵首都伊斯蘭堡的一家燒餅店考察燒餅賣的好不好,首先我的知道伊斯蘭堡在哪裡(對方的IP),之後我可能先走十五里山路到鄉里(路由),之後我問鄉長,去伊斯蘭堡怎麼走。鄉長一臉崇拜的說,小夥子,雖然我不知道伊斯蘭卡在哪裡,但是我建議你先到縣城裡去看看,問問縣長。之後我就做公交車去去縣城找縣長(鄉可以認為是MAC,縣可以認為是一個MAC地址)。縣長說他也不知道,你要去伊斯蘭卡,可以先到坐火車到北京,到北京之後再打聽打聽。之後我就做火車去北京。下了火車,我就問工作人員,我怎麼才可以到伊斯蘭卡。工作人員告訴我可以做飛機飛到伊斯蘭卡。然後我到了伊斯蘭卡。到了伊斯蘭卡後我就可以在伊斯蘭卡的飛機場的地圖上找到燒餅店的位置然後到燒餅店去考察下燒餅生意好不好做,我並沒有去燒餅店吃燒餅。
對上述的場景進行的分析。目的網路:伊斯蘭卡
目的IP:燒餅店目的埠:考察燒餅經營情況源IP:某某地方的某某公司源埠:燒餅經營
在這個信息傳送的過程,我一直都知道目的地,沒到一處地方,不管是做火車還是做飛機,其實是路由的方式不同而已,其本質上都是MAC信息的傳送。推薦閱讀:
※計算機網路教程之物理層
※IP Tools:到底該用哪一個?
※除夕練習:自動掛bilibili直播
※《絕地求生》下載需要什麼配置?
TAG:計算機網路 |