計算機網絡到底講了些什麼

小智:大鵬哥,我最近看了下計算機網絡,把書上的內容都過了一遍,但是感受仍是串不起來,不知道計算機網絡到底講了些什麼內容,也不知道重點在哪裏,你能不能給我梳理梳理呀!git

計算機爲何要聯網

大鵬:行,那我們就從「計算機網絡」這五個字提及,計算機網絡,顧名思義,就是由計算機組成的網絡,那計算機組成網絡要幹什麼呢?咱們知道,不聯網的計算機只能單兵做戰,只能玩單機遊戲,只能簡單的處理文檔,而經過聯網,計算機能夠玩網遊,能夠看電影,能夠聊QQ,總之,計算機聯網以後功能大大擴展。那回到剛剛計算機要組成網絡的問題,很顯然,計算機組網是爲了計算機能相互通訊,是爲了不信息孤島,可以將網絡中的信息傳播到各個地方。 計算機間的通訊跟人與人之間溝通對話很相似,人與人溝通對話使用語言,語言有不少種,可是每種語言都有本身的語義語法,就是語言得講究必定規則,這樣掌握同種語言的人對話,你們才能理解彼此話語的含義,那麼在計算機通訊中,咱們把這種通訊的規則叫作網絡協議,像人類語言有不少種同樣,網絡協議也有不少種,用來適應不一樣場景的通訊。程序員

網絡分層的好處

小智:嗯,這個我知道,我在書裏面是看到了各類各樣的網絡協議,書裏面還提到了網絡分層的事情呢,像什麼ISO七層模型,還有個什麼五層模型,不一樣層裏面還有不一樣協議,可我就是沒弄明白,網絡爲何要分層呢?github

大鵬:你這個問題問得很好,其實說到網絡分層,我我的的理解,分層設計的好處是每一個層次只負責本身的那部分事情,一層套一層,本身那層的任務完成了就交給下一層處理,各司其職,每層都遵照本身的規則,配合起來完成網絡通訊的工做,不至於你們都攪在一塊兒,職責不明,看起來混亂。網絡通訊的這種分層模型從設計之初到如今,歷經幾十年也未曾變化,就和咱們前面談到馮諾依曼的計算機模型同樣,可見其偉大高明之處。瀏覽器

網絡層次劃分

小智:嗯嗯,你這麼說我就大概明白爲何要分這麼多層了,但是書上爲何又是說七層模型又是說五層模型呢,搞得我有點暈呢。服務器

大鵬:網絡分層,ISO標準組織分層是分爲七層,而實際咱們都是按五層模型來講的,我工做這麼多年,也沒人跟我談七層模型了,也就是標準是標準,咱們理解仍是按五層來理解,由於按五層來劃分其實更合理,咱們也不用去糾結這個,咱們只要知道五層模型分別是物理層、數據鏈路層、網絡層、傳輸層和應用層。層次之間的關係看看下面這個圖。網絡

 

小智:那我如今就很想知道每一個分層裏面包含哪些內容?每一層到底都要幹些什麼,你再給我講講唄。tcp

大鵬:每一層裏面包含的內容主要有不一樣的網絡協議以及計算機的標識,計算機的標識就相似於人跟人對話,咱們得知道是誰跟誰對話,好比張三跟李四對話,那張三李四就是這個標識。性能

物理層

咱們先來看物理層,物理層其實咱們關注得很少,物理層主要是要解決通訊鏈路的問題,能夠這麼理解,咱們人說話也是要藉助媒介的,高中課程裏面咱們就知道,說話聲音是經過空氣傳播的,那計算機網絡協議也得承載在一個物理媒介中傳播,好比咱們能看到的網線、光纖以及計算機的網卡等等,物理媒介主要是決定了網絡通訊的速率,對於物理傳輸,工程實踐中關注得比較多,咱們只作瞭解便可。學習

數據鏈路層

物理層之上是數據鏈路層,計算機在數據鏈路層的標識咱們叫它mac地址,這個mac地址在咱們的電腦,網絡和共享中心上就能夠查看到,看看這個圖:職業規劃

 

mac地址實際上是配在咱們電腦的網卡上的,每塊網卡都有一個mac地址,是網卡出廠時就配置好的。在數據鏈路層,跟mac地址相關的協議就是以太網協議,以太網協議簡單來講就是記錄兩臺計算機通訊的源mac地址和目的mac地址。

網絡層

數據鏈路層往上就是網絡層了,網絡層協議固然就要數大名鼎鼎的IP協議了,IP協議對應的計算機標識是IP地址,若是把mac地址和ip地址作一個對比的話,咱們能夠這麼簡單理解,有了mac地址,就至關於我們有了身份證,能夠在國內處處耍了,可是要出國耍,那我們還得再搞個IP地址,就至關於咱們出國得辦護照。讓咱們來看下咱們電腦的ip地址:

 

傳輸層

網絡層之上是傳輸層,前面講到數據鏈路層有mac地址,網絡層有IP地址,其實有了這兩種地址,網絡中的兩臺計算機已經能找到對方了,那咱們還要傳輸層作什麼呢?

實際上是這樣的,打開咱們的電腦,咱們能夠看到電腦系統上安裝有各類各樣的軟件,好比QQ、王者榮耀、騰訊視頻等等這些,兩臺電腦通訊,最終仍是兩臺電腦上的軟件通訊,要詳細的區分兩臺電腦究竟是哪些軟件相互通訊,就要用到傳輸層了,傳輸層有一個重要的概念叫作端口,簡單理解,端口其實就是用來區分各個軟件的,另外,傳輸層涉及到的兩個大名鼎鼎的協議就是tcp協議和udp協議,這兩個協議各有所長,可是都有端口的概念包含在其中。

應用層

最上一層就是應用層了,應用層面向的是最終的用戶了,離咱們最近,也最好理解,那麼應用層要解決什麼問題呢?

應用層要解決的其實就是咱們在使用各類軟件時須要遵照的規則,好比咱們打開瀏覽器瀏覽新聞,好比咱們發送郵件,好比咱們傳輸文件,好比咱們遠程登陸一臺服務器,這些都與應用層協議有關,因爲咱們使用電腦的功能場景很是多,因此應用層協議的種類很是多,變化也很是快,有你們公知耳熟能詳的http、ftp等等協議,也有大廠家好比鵝廠的QICQ等協議,這也再次印證了計算機網絡分層的好處,像網絡層傳輸層這些底層層次保持長久不變,而應用層隨着網絡應用的豐富,能夠支持擴展,知足實際應用場景的需求。

關於兩臺電腦在五層通訊的模型,咱們看看下面這張圖:

學習計算機網絡的重點

小智: 大鵬哥,你這樣一講,我思路就清晰了不少,那你再跟我說說,我學計算機網絡,到底該重點學些啥?

大鵬: 這個問題從我大學畢業到如今參加工做十年,其實我也一直在思考回想,一本計算機網絡教材那麼多內容,都是我要掌握的嗎? 爲何教材要整那麼多內容,還寫的晦澀難懂呢? 其實過了這麼久,我也終於想明白了,計算機網絡做爲一個計算機學科分支,從寫教材的人來講,實際上是站在一個學術角度,須要完整展示計算機網絡知識體系的角度去寫的,那麼對於咱們讀者受衆來講,哪些纔是咱們須要重點掌握的呢?

這個問題其實仍是要看咱們之後的職業規劃,若是咱們是奔着作計算機學術研究的,那咱們的知識層面必須全面一些,對於物理層包括信息編碼、傳輸介質這些知識也都必須得掌握;

若是咱們是有志從事網絡工程工做的,好比作網絡設備,路由器交換機防火牆這些,那咱們的網絡知識就得全面一些,各個網絡層次的協議也都得知道;

若是咱們只是一個互聯網IT行業的碼農,其實咱們重點要掌握的是ip/TCP協議,咱們得知道如何寫代碼經過tcp或者udp協議與對端通訊,知道如何作通訊的性能調優等等。

小智:嗯嗯,明白了,我以爲我想作第二種人,因此我要好好學習各個層次的網絡協議了。

大鵬:興趣是最好的老師,只要你感興趣,什麼都好說。今天呢,其實也只是跟你一塊兒理清了一下思路,後面咱們要學習的內容還有不少不少,關於今天所講的內容,我用下面這張腦圖梳理一下,看這個腦圖會清晰不少,下次咱們再講講網絡各個層次之間是如何配合工做的。

 

獲取更多電子書資料電子書學習資料彙總,請關注個人公衆號:【程序員小智和大鵬】,回覆「電子書」獲取。

相關文章
相關標籤/搜索