1. 程式人生 > >計算機五層網路模型--回顧

計算機五層網路模型--回顧

今日 任務量不大 回顧一下計算機網路

  這世界上計算機 千千萬 計算機是通過何種方式才能精準的找到對方的呢 ?

  大家應該都聽過五層模型 但是可能都不是很清楚 下面一起回顧一下 網路通訊的五層模型。

  

  應用層 --》傳輸層 --》 網路層 --》資料鏈路層 --》物理層

  

  1.物理層 

  一個計算機要跟另外一個計算機進行通訊 第一件要做的事就是要把兩臺計算機連線起來 這樣我們才能傳資料過去 比如光纜 電纜什麼的 也就是說 物理層 通過0 1 這樣的電訊號通過物理層以高低電頻的方式傳輸資訊

  2,資料鏈路層

  物理層 只是傳遞了  了 0 1這樣的電訊號 可是這樣的電訊號 我隨便輸一個 010101010101010101100101010101010101011010  你看的懂嗎 機器也不一定看得懂 因此 我們需要一章規範 來規定怎麼傳資料 資料格式啥的

  1.乙太網協議

  乙太網協議規定 一組電訊號構成一個數據包  我們可以把這個資料包稱為幀 每一個幀由標頭和資料兩部分組成

  幀的大小一般為64 - 1518個位元組 較大的資料 需要分成多個楨

  幀一般分為 head 和  data

  表頭 至少應包含這個楨是由誰傳送 傳送給誰這些資訊 所以標統頭 主要是一些說明資料 例如傳送者 接受者等資訊 

  資料部分應該是這個楨裡  傳送者想給接受者的內容

  楨的長度不固定 那麼標頭的長度會是固定的嗎 想想 應該是的  假如不固定 計算機怎麼知道標頭是幾個位元組 資料是幾個位元組呢  所以標頭部分的位元組是固定的 並且固定為18個位元組

  把一臺計算機的資料通過物理層和資料鏈路層傳送給另外一臺計算機  究竟是誰發給誰的 計算機和計算機之間如何區分 ? 唯一地址 Mac地址出現了

  2.Mac地址

  進入網路的每一臺計算機 都會有網絡卡介面 每一個網絡卡都會有一個唯一的地址 這個地址就叫做Mac地址 計算機之間的資料傳送 就是通過Mac地址 來唯一尋找 傳送的 Mac地址由48個位元組所構成 在網口生產時就被唯一標識了

  3.廣播與ARP協議

  

 

   如圖 假如計算機A知道了計算機B的mac地址 然後計算機A想要給計算機B傳送資料 雖然計算機A知道了計算機B的MAC地址,可是他要怎麼給他傳送資料呢?計算機A

不僅連著計算機B 而且計算機A也連線著計算機C和計算機D 雖然計算機A知道計算機B的Mac地址 但是卻不知道 B是在哪條邊路上

   為了解決這個問題 廣播出現了

  在同一個子網中 計算機A要向計算機B傳送一個數據包 這個資料包會包含 接收者的mac地址 當傳送時 計算機A是通過廣播的方式傳送的 這時同一個子網的計算機CD也會收到

這個資料包的 收到這個資料的計算機 會把資料包的mac地址取出來 與自身的mac地址對比 如果兩者相同 則會接受這個資料包 否則就會丟棄這個資料包 。這種傳送方式稱之為廣播

就和你和朋友約在廣場 他找不到你 大喊一聲 聽到的人會自動匹配 是自己了就會理會 不是你的話 就當聽不見

  ARP協議

  計算機A如何知道計算機B的MAC地址呢 這時候就得ERP協議這個傢伙解決了 我們暫時擱置 看完ip後就

  3.網路層

  實際上我們所處的網路 是由無數個子網路構成的 廣播的時候 也只有同一個子網裡的計算機能夠收到 

  假如沒有子網這種東西 計算機A通過廣播的方式發一個數據包給計算機B 其他所有的計算機都能收到這個資料包 然後進行對比再捨棄 世界上那麼多計算機 每一臺計算機都能收到其他計算機

  因此產生了子網

  那麼問題來了 我們如區分 Mac地址是屬於同一個子網的呢 假如是同一個子網 我們就用廣播的形式把資料傳送給對方 如果不是同一個子網的 我們就會把資料發給閘道器 讓閘道器進行轉發

  為了解決這個問題 於是 就有了ip協議

  1。IP協議

  ip協議 他所定義的地址 我們稱之為ip地址 ip協議有兩種版本  一種是ipv4 一種是ipv6  目前用的最多的還是ipv4

  這個i地址由 32位的二進位制 陣列成 我們一般把它分成4段的十進位制表示 地址範圍為 0.0.0.0 ~ 255.255.255.255

  每一臺想要聯網的計算機都會有一個ip地址 這個ip地址分為兩部分 前面一部分代表網路部分 後面一部分代表主機部分 並且網路部分和主機部分所佔用的二級制位數是不固定的

  假如兩臺計算機 的網路部分 是一模一樣的 我們就說這兩臺計算機是屬於同一個子網中 。例如 192.168.43.1 和 192.168.43.2, 假如這兩個 IP 地址的網路部分為 24 位,主機部分為 8 位。那麼他們的網路部分都為 192.168.43,所以他們處於同一個子網中。

  可是問題來了 我們怎麼知道 網路部分佔幾位 主機部分又佔幾位呢 也就是說 單單從 兩臺計算機的ip地址 我們是無法判斷他們是否處在同一個子網中的

  這就引申出了另外一個關鍵詞 子網掩碼 子網掩碼和ip地址 一樣也是32位二進位制數 不過他的網路部分 規定全部為1 主機部分 規定全部為0 也就是說 假如上面那兩個ip地址 的網路部分為24位 主機部分 為8位的話 那他們的子網掩碼為

  11111111.11111111.11111111.00000000,即255.255.255.0。

  有了子網掩碼 如何來判斷ip地址是否處於同一個子網中呢 顯然 知道了子網掩碼 相當於我們知道了網路部分是幾位 主機部分是幾位 我們只需要把ip地址 與他的子網掩碼做與(and)運算 然後把各自的結果進行比較就可以了 如果比較的結果相同 則代表的是同一子網 否則不是同一子網

  2.ARP協議

  有了兩臺計算機的ip地址和子網掩碼 我們就可以判斷 他們是否處在同一子網當中了

  假設他們處在同一子網當中 計算機A要和計算機B傳送資料時 我們通過ARP協議來得到計算機的Mac地址

  ARP協議也是通過廣播的形式 給同一個子網 中的每個電腦傳送一個數據包(當然 這個資料包會包含接收方的ip地址)對方收到這個資料之後 會取出ip地址與自身的對比 如果相同 則會把自己的Mac地址回覆給對方 否則就丟棄這個資料包 這樣計算機A就知道計算機B的Mac地址了

  可能有人會問 知道了Mac地址後 傳送資料是通過廣播的形式傳送 詢問對方的mac地址也是通過廣播的形式來發送 那其他計算機怎麼知道你是要傳輸資料還是詢問Mac地址呢 其實在詢問Mac地址的資料包內 在對方的mAC地址這一欄 填的是一個特殊的mac地址 其他計算機看到這個特殊的mac地址後 就能知道廣播想幹嘛了‘

  假如兩臺計算機的ip不是處於 同一個子網之中 這個時候 我們就會把資料包傳送給閘道器 然後讓閘道器讓我們進行轉發傳送

  3.DNS伺服器

  輸入域名之後會被DNS伺服器解析 返回對應的ip給我們

  4.傳輸層’

  通過物理層 資料鏈路層以及網路層的互相幫助 我們已經成功把資料從計算機A傳到計算機B了 可是 計算機B裡面有各式各樣的應用程式 計算機是如何知道這個資料是發給那個應用程式的呢 這個時候 埠這個傢伙就上場了 當計算機A傳輸給計算機B的時候 還得指定一個埠 以供特定的應用程式來接受處理 也就是說 傳輸層的功能就是建立埠到埠的通訊 相比網路層的功能是建立主機到主機的通訊

  也就是說 有了ip和埠 我們才能準確通訊 我們輸入的ip並沒有指定埠 其實 有一些傳輸協議 已經設定了 一些預設埠了 例如http預設是80 這些埠資訊會包含在資料包裡面的

  傳輸層最常見了兩大協議是TCP協議和UDP協議 TCO提供可靠地傳輸 而UDP不可靠

  5.應用層

  應用層是最接觸使用者的一層了 我們雖然收到了傳輸層收到的資料 可是這些資料五花八門 因此我們需要指定這些資料的格式規則 收到後才能渲染解讀 例如我們最常見的Http資料包裡 就會指定資料包是什麼格式的檔案了