電腦五層網路模型--回顧
- 2019 年 11 月 6 日
- 筆記
今日 任務量不大 回顧一下電腦網路
這世界上電腦 千千萬 電腦是通過何種方式才能精準的找到對方的呢 ?
大家應該都聽過五層模型 但是可能都不是很清楚 下面一起回顧一下 網路通訊的五層模型。
應用層 --》傳輸層 --》 網路層 --》數據鏈路層 --》物理層
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數據包里 就會指定數據包是什麼格式的文件了

