'乾貨:10分鐘能看懂的網絡模型知識大全'

"

1.

網絡是我們做嵌入式 避無可避的知識點,但是網絡的層次很多,很多時候我們根本理解不了其中的層次和作用,今天跟我們公司的 X 總聊到這個,給我普及了一些知識,我覺得非常有用,分享給大家。

2.

網絡模型經典圖片

"

1.

網絡是我們做嵌入式 避無可避的知識點,但是網絡的層次很多,很多時候我們根本理解不了其中的層次和作用,今天跟我們公司的 X 總聊到這個,給我普及了一些知識,我覺得非常有用,分享給大家。

2.

網絡模型經典圖片

乾貨:10分鐘能看懂的網絡模型知識大全

好了,針對上面的模型,我們來舉個例子說明一下

"

1.

網絡是我們做嵌入式 避無可避的知識點,但是網絡的層次很多,很多時候我們根本理解不了其中的層次和作用,今天跟我們公司的 X 總聊到這個,給我普及了一些知識,我覺得非常有用,分享給大家。

2.

網絡模型經典圖片

乾貨:10分鐘能看懂的網絡模型知識大全

好了,針對上面的模型,我們來舉個例子說明一下

乾貨:10分鐘能看懂的網絡模型知識大全

下面這個圖片

"

1.

網絡是我們做嵌入式 避無可避的知識點,但是網絡的層次很多,很多時候我們根本理解不了其中的層次和作用,今天跟我們公司的 X 總聊到這個,給我普及了一些知識,我覺得非常有用,分享給大家。

2.

網絡模型經典圖片

乾貨:10分鐘能看懂的網絡模型知識大全

好了,針對上面的模型,我們來舉個例子說明一下

乾貨:10分鐘能看懂的網絡模型知識大全

下面這個圖片

乾貨:10分鐘能看懂的網絡模型知識大全

兩臺 pc 通過交換機連上一個雲服務器,我們假設都是通過網線來連接的。

1、物理層

物理層可以理解為硬件層,這個層的東西就是一個硬件的網口,phy 就是這個東西,這裡的網絡 pc 和交換機通過 phy連接,交換機也是通過 phy 和雲連接。網絡數據也是通過 phy 發送出去的。

我們所說的物理就是比較硬的東西,硬的東西那肯定是實際的硬件東西了,那物理層肯定就是硬件的鬼東西了。

2、數據鏈路層

這一層就涉及了一些軟件的東西了,加入了全球唯一的 MAC 地址,這一層確定了 每個網絡設備的 MAC 地址,正常我們 PC 發送數據的時候,可以通過 MAC 地址讓對方知道自己是哪個設備,告訴別人我是誰。

物理層完成了數據的傳輸,還需要對0和1的定義進行規定(類似低電平為0,高電平為1),同時在傳輸0,1之後還需要對01進行分組如8bit為一個字節多少字節為一個包之類。這就是鏈接層的功能。

Ethenet 和 Wifi 基本就是屬於這個層次。所以 wifi 協議其實就是解決的一個鏈路和物理層的問題,在更往上的網絡層和傳輸層一般就是 TCP/IP 協議。

3、網絡層

鏈路層說明把路打通了,可以在上面開車了,那不能隨便開車啊,開車沒有交通規則那就是要命的,所以就出現了網絡層,出現了一些規範性的東西來規範在這條路上的車神們。

這個層次就引入了 ip 這個鬼東西了,我們設備的 MAC 地址唯一的,但是 IP 地址並不保證需要唯一,一臺設備可能有幾個 IP 地址。這個東西都是在這個層次決定的。

3.1 IP協議

定義網址的協議,叫做IP協議。所定義的地址也稱為IP地址。

目前廣泛採用的是IPv4協議,這個協議規定,網址由32個bit組成

習慣上,我們用分成四段的十進制數表示IP地址,從0.0.0.0一直到255.255.255.255

互聯網上的每個設備,都會分配到一個IP地址。這個地址分成兩個部分,前一部分代表網絡,後一部分代表設備。比如,IP地址172.16.254.1,這是一個32位的地址,假定它的網絡部分是前24位(172.16.254),那麼主機部分就是後8位(最後的那個1)。處於同一個子網絡的電腦,它們IP地址的網絡部分必定是相同的,也就是說172.16.254.2應該與172.16.254.1處在同一個子網絡。

"

1.

網絡是我們做嵌入式 避無可避的知識點,但是網絡的層次很多,很多時候我們根本理解不了其中的層次和作用,今天跟我們公司的 X 總聊到這個,給我普及了一些知識,我覺得非常有用,分享給大家。

2.

網絡模型經典圖片

乾貨:10分鐘能看懂的網絡模型知識大全

好了,針對上面的模型,我們來舉個例子說明一下

乾貨:10分鐘能看懂的網絡模型知識大全

下面這個圖片

乾貨:10分鐘能看懂的網絡模型知識大全

兩臺 pc 通過交換機連上一個雲服務器,我們假設都是通過網線來連接的。

1、物理層

物理層可以理解為硬件層,這個層的東西就是一個硬件的網口,phy 就是這個東西,這裡的網絡 pc 和交換機通過 phy連接,交換機也是通過 phy 和雲連接。網絡數據也是通過 phy 發送出去的。

我們所說的物理就是比較硬的東西,硬的東西那肯定是實際的硬件東西了,那物理層肯定就是硬件的鬼東西了。

2、數據鏈路層

這一層就涉及了一些軟件的東西了,加入了全球唯一的 MAC 地址,這一層確定了 每個網絡設備的 MAC 地址,正常我們 PC 發送數據的時候,可以通過 MAC 地址讓對方知道自己是哪個設備,告訴別人我是誰。

物理層完成了數據的傳輸,還需要對0和1的定義進行規定(類似低電平為0,高電平為1),同時在傳輸0,1之後還需要對01進行分組如8bit為一個字節多少字節為一個包之類。這就是鏈接層的功能。

Ethenet 和 Wifi 基本就是屬於這個層次。所以 wifi 協議其實就是解決的一個鏈路和物理層的問題,在更往上的網絡層和傳輸層一般就是 TCP/IP 協議。

3、網絡層

鏈路層說明把路打通了,可以在上面開車了,那不能隨便開車啊,開車沒有交通規則那就是要命的,所以就出現了網絡層,出現了一些規範性的東西來規範在這條路上的車神們。

這個層次就引入了 ip 這個鬼東西了,我們設備的 MAC 地址唯一的,但是 IP 地址並不保證需要唯一,一臺設備可能有幾個 IP 地址。這個東西都是在這個層次決定的。

3.1 IP協議

定義網址的協議,叫做IP協議。所定義的地址也稱為IP地址。

目前廣泛採用的是IPv4協議,這個協議規定,網址由32個bit組成

習慣上,我們用分成四段的十進制數表示IP地址,從0.0.0.0一直到255.255.255.255

互聯網上的每個設備,都會分配到一個IP地址。這個地址分成兩個部分,前一部分代表網絡,後一部分代表設備。比如,IP地址172.16.254.1,這是一個32位的地址,假定它的網絡部分是前24位(172.16.254),那麼主機部分就是後8位(最後的那個1)。處於同一個子網絡的電腦,它們IP地址的網絡部分必定是相同的,也就是說172.16.254.2應該與172.16.254.1處在同一個子網絡。

乾貨:10分鐘能看懂的網絡模型知識大全

但是,問題在於單單從IP地址,我們無法判斷網絡部分。還是以172.16.254.1為例,它的網絡部分,到底是前24位,還是前16位,甚至前28位,從IP地址上是看不出來的。

那麼,怎樣才能從IP地址,判斷兩臺計算機是否屬於同一個子網絡呢?

這就要用到另一個參數"子網掩碼"(subnet mask)

"子網掩碼",就是表示子網絡特徵的一個參數。它在形式上類似IP地址,也是一個32位二進制數字,它的網絡部分全部為1,主機部分全部為0。比如,IP地址172.16.254.1,如果已知網絡部分是前24位,主機部分是後8位,那麼子網絡掩碼就是11111111.11111111.11111111.00000000,寫成十進制就是255.255.255.0。

有了"子網掩碼"這個東西,我們就能判斷,任意兩個IP地址是否處在同一個子網絡。方法是將兩個IP地址與子網掩碼分別進行 AND 運算(兩個數位都為1,運算結果為1,否則為0),然後比較結果是否相同,如果是的話,就表明它們在同一個子網絡中,否則就不是。

比如,已知IP地址192.168.1.1和192.168.1.5的子網掩碼都是255.255.255.0,請問它們是否在同一個子網絡?兩者與子網掩碼分別進行AND運算,結果都是192.168.1.0,因此它們在同一個子網絡。

現在總結一下,IP協議的作用主要有兩個,一個是為每一臺計算機分配IP地址,另一個是確定哪些地址在同一個子網絡。

4、傳輸層

我們用網絡的東西 ,都會記得有一個 socket ,這個層次就完成了,socket 的東西。到這個層次,就可以通過 socket 來發送數據了。還包裝了一些簡單的協議,比如 TCP,UDP。

socket 就相當於發動機,有了發動機,就可以創造出不同的車子,汽車,卡車,電動車,當然還會有瑪莎拉蒂和布拉迪威龍。

有了MAC地址和IP地址,我們已經可以在互聯網上任意兩個設備上建立通信了。接下來的問題是,如果一個設備有多個任務需要進行網絡通信的時候,我們如何分配這些數據,讓多個任務能夠只使用自己對應的數據呢?

傳輸層的作用就是建立一條規範,使得兩臺設備上多個任務之間的相互通信能夠正常進行,而不需要區分數據到底是來自於哪個程序而能直接接收。這個實現方式就是,我們添加了一個參數,這個參數被稱為“端口”(port)。每個任務擁有自己 port,只接受對應 port 的數據,以此來區分數據。

4.1 UDP協議

包含端口號最簡單的實現就是UDP協議,他的格式幾乎就只是在數據前加上發送端口和接收端口而已。

4.2 TCP協議

UDP協議的優點是比較簡單,容易實現,但是缺點是可靠性較差,一旦數據包發出,無法知道對方是否收到。

為了解決這個問題,提高網絡可靠性,TCP協議就誕生了。這個協議非常複雜,但可以近似認為,它就是有確認機制的UDP協議,每發出一個數據包都要求確認。如果有一個數據包遺失,就收不到確認,發出方就知道有必要重發這個數據包了。

因此,TCP協議能夠確保數據不會遺失。它的缺點是過程複雜、實現困難、消耗較多的資源。

TCP數據包和UDP數據包一樣,都是內嵌在IP數據包的"數據"部分。TCP數據包沒有長度限制,理論上可以無限長,但是為了保證網絡的效率,通常TCP數據包的長度不會超過IP數據包的長度,以確保單個TCP數據包不必再分割。

5、應用層

有了汽車,就出現了各種運輸公司,什麼中通,順豐就應運而生了。所以這就是應用層了。

應用層的東西就是根據之前的層次來封裝一些場景應用,比如我們正常的網址,就是 http協議。

"

1.

網絡是我們做嵌入式 避無可避的知識點,但是網絡的層次很多,很多時候我們根本理解不了其中的層次和作用,今天跟我們公司的 X 總聊到這個,給我普及了一些知識,我覺得非常有用,分享給大家。

2.

網絡模型經典圖片

乾貨:10分鐘能看懂的網絡模型知識大全

好了,針對上面的模型,我們來舉個例子說明一下

乾貨:10分鐘能看懂的網絡模型知識大全

下面這個圖片

乾貨:10分鐘能看懂的網絡模型知識大全

兩臺 pc 通過交換機連上一個雲服務器,我們假設都是通過網線來連接的。

1、物理層

物理層可以理解為硬件層,這個層的東西就是一個硬件的網口,phy 就是這個東西,這裡的網絡 pc 和交換機通過 phy連接,交換機也是通過 phy 和雲連接。網絡數據也是通過 phy 發送出去的。

我們所說的物理就是比較硬的東西,硬的東西那肯定是實際的硬件東西了,那物理層肯定就是硬件的鬼東西了。

2、數據鏈路層

這一層就涉及了一些軟件的東西了,加入了全球唯一的 MAC 地址,這一層確定了 每個網絡設備的 MAC 地址,正常我們 PC 發送數據的時候,可以通過 MAC 地址讓對方知道自己是哪個設備,告訴別人我是誰。

物理層完成了數據的傳輸,還需要對0和1的定義進行規定(類似低電平為0,高電平為1),同時在傳輸0,1之後還需要對01進行分組如8bit為一個字節多少字節為一個包之類。這就是鏈接層的功能。

Ethenet 和 Wifi 基本就是屬於這個層次。所以 wifi 協議其實就是解決的一個鏈路和物理層的問題,在更往上的網絡層和傳輸層一般就是 TCP/IP 協議。

3、網絡層

鏈路層說明把路打通了,可以在上面開車了,那不能隨便開車啊,開車沒有交通規則那就是要命的,所以就出現了網絡層,出現了一些規範性的東西來規範在這條路上的車神們。

這個層次就引入了 ip 這個鬼東西了,我們設備的 MAC 地址唯一的,但是 IP 地址並不保證需要唯一,一臺設備可能有幾個 IP 地址。這個東西都是在這個層次決定的。

3.1 IP協議

定義網址的協議,叫做IP協議。所定義的地址也稱為IP地址。

目前廣泛採用的是IPv4協議,這個協議規定,網址由32個bit組成

習慣上,我們用分成四段的十進制數表示IP地址,從0.0.0.0一直到255.255.255.255

互聯網上的每個設備,都會分配到一個IP地址。這個地址分成兩個部分,前一部分代表網絡,後一部分代表設備。比如,IP地址172.16.254.1,這是一個32位的地址,假定它的網絡部分是前24位(172.16.254),那麼主機部分就是後8位(最後的那個1)。處於同一個子網絡的電腦,它們IP地址的網絡部分必定是相同的,也就是說172.16.254.2應該與172.16.254.1處在同一個子網絡。

乾貨:10分鐘能看懂的網絡模型知識大全

但是,問題在於單單從IP地址,我們無法判斷網絡部分。還是以172.16.254.1為例,它的網絡部分,到底是前24位,還是前16位,甚至前28位,從IP地址上是看不出來的。

那麼,怎樣才能從IP地址,判斷兩臺計算機是否屬於同一個子網絡呢?

這就要用到另一個參數"子網掩碼"(subnet mask)

"子網掩碼",就是表示子網絡特徵的一個參數。它在形式上類似IP地址,也是一個32位二進制數字,它的網絡部分全部為1,主機部分全部為0。比如,IP地址172.16.254.1,如果已知網絡部分是前24位,主機部分是後8位,那麼子網絡掩碼就是11111111.11111111.11111111.00000000,寫成十進制就是255.255.255.0。

有了"子網掩碼"這個東西,我們就能判斷,任意兩個IP地址是否處在同一個子網絡。方法是將兩個IP地址與子網掩碼分別進行 AND 運算(兩個數位都為1,運算結果為1,否則為0),然後比較結果是否相同,如果是的話,就表明它們在同一個子網絡中,否則就不是。

比如,已知IP地址192.168.1.1和192.168.1.5的子網掩碼都是255.255.255.0,請問它們是否在同一個子網絡?兩者與子網掩碼分別進行AND運算,結果都是192.168.1.0,因此它們在同一個子網絡。

現在總結一下,IP協議的作用主要有兩個,一個是為每一臺計算機分配IP地址,另一個是確定哪些地址在同一個子網絡。

4、傳輸層

我們用網絡的東西 ,都會記得有一個 socket ,這個層次就完成了,socket 的東西。到這個層次,就可以通過 socket 來發送數據了。還包裝了一些簡單的協議,比如 TCP,UDP。

socket 就相當於發動機,有了發動機,就可以創造出不同的車子,汽車,卡車,電動車,當然還會有瑪莎拉蒂和布拉迪威龍。

有了MAC地址和IP地址,我們已經可以在互聯網上任意兩個設備上建立通信了。接下來的問題是,如果一個設備有多個任務需要進行網絡通信的時候,我們如何分配這些數據,讓多個任務能夠只使用自己對應的數據呢?

傳輸層的作用就是建立一條規範,使得兩臺設備上多個任務之間的相互通信能夠正常進行,而不需要區分數據到底是來自於哪個程序而能直接接收。這個實現方式就是,我們添加了一個參數,這個參數被稱為“端口”(port)。每個任務擁有自己 port,只接受對應 port 的數據,以此來區分數據。

4.1 UDP協議

包含端口號最簡單的實現就是UDP協議,他的格式幾乎就只是在數據前加上發送端口和接收端口而已。

4.2 TCP協議

UDP協議的優點是比較簡單,容易實現,但是缺點是可靠性較差,一旦數據包發出,無法知道對方是否收到。

為了解決這個問題,提高網絡可靠性,TCP協議就誕生了。這個協議非常複雜,但可以近似認為,它就是有確認機制的UDP協議,每發出一個數據包都要求確認。如果有一個數據包遺失,就收不到確認,發出方就知道有必要重發這個數據包了。

因此,TCP協議能夠確保數據不會遺失。它的缺點是過程複雜、實現困難、消耗較多的資源。

TCP數據包和UDP數據包一樣,都是內嵌在IP數據包的"數據"部分。TCP數據包沒有長度限制,理論上可以無限長,但是為了保證網絡的效率,通常TCP數據包的長度不會超過IP數據包的長度,以確保單個TCP數據包不必再分割。

5、應用層

有了汽車,就出現了各種運輸公司,什麼中通,順豐就應運而生了。所以這就是應用層了。

應用層的東西就是根據之前的層次來封裝一些場景應用,比如我們正常的網址,就是 http協議。

乾貨:10分鐘能看懂的網絡模型知識大全

其他還有 ftp 等等之類的,具體還是看上面那個圖,看起來還是非常不錯的。

舉例來說,TCP 協議可以為各種各樣的程序傳遞數據,比如 Email、WWW、FTP等等。那麼,必須有不同協議規定電子郵件、網頁、FTP數據的格式,這些應用程序協議就構成了"應用層"。

為什麼說一個WIFI要說以上這麼多。好吧,其實大部分沒什麼用,最重要的要理解一點,WIFI其實只是把賦予設備MAC地址,連接上網絡,並分配好IP,或者是作為AP給別的設備分配IP等等,而要真正的傳輸數據,使用的仍然是TCP 或者 UDP協議。

3.

經過上面的層次封裝之後,如果我們要發送數據就變成了這樣。

"

1.

網絡是我們做嵌入式 避無可避的知識點,但是網絡的層次很多,很多時候我們根本理解不了其中的層次和作用,今天跟我們公司的 X 總聊到這個,給我普及了一些知識,我覺得非常有用,分享給大家。

2.

網絡模型經典圖片

乾貨:10分鐘能看懂的網絡模型知識大全

好了,針對上面的模型,我們來舉個例子說明一下

乾貨:10分鐘能看懂的網絡模型知識大全

下面這個圖片

乾貨:10分鐘能看懂的網絡模型知識大全

兩臺 pc 通過交換機連上一個雲服務器,我們假設都是通過網線來連接的。

1、物理層

物理層可以理解為硬件層,這個層的東西就是一個硬件的網口,phy 就是這個東西,這裡的網絡 pc 和交換機通過 phy連接,交換機也是通過 phy 和雲連接。網絡數據也是通過 phy 發送出去的。

我們所說的物理就是比較硬的東西,硬的東西那肯定是實際的硬件東西了,那物理層肯定就是硬件的鬼東西了。

2、數據鏈路層

這一層就涉及了一些軟件的東西了,加入了全球唯一的 MAC 地址,這一層確定了 每個網絡設備的 MAC 地址,正常我們 PC 發送數據的時候,可以通過 MAC 地址讓對方知道自己是哪個設備,告訴別人我是誰。

物理層完成了數據的傳輸,還需要對0和1的定義進行規定(類似低電平為0,高電平為1),同時在傳輸0,1之後還需要對01進行分組如8bit為一個字節多少字節為一個包之類。這就是鏈接層的功能。

Ethenet 和 Wifi 基本就是屬於這個層次。所以 wifi 協議其實就是解決的一個鏈路和物理層的問題,在更往上的網絡層和傳輸層一般就是 TCP/IP 協議。

3、網絡層

鏈路層說明把路打通了,可以在上面開車了,那不能隨便開車啊,開車沒有交通規則那就是要命的,所以就出現了網絡層,出現了一些規範性的東西來規範在這條路上的車神們。

這個層次就引入了 ip 這個鬼東西了,我們設備的 MAC 地址唯一的,但是 IP 地址並不保證需要唯一,一臺設備可能有幾個 IP 地址。這個東西都是在這個層次決定的。

3.1 IP協議

定義網址的協議,叫做IP協議。所定義的地址也稱為IP地址。

目前廣泛採用的是IPv4協議,這個協議規定,網址由32個bit組成

習慣上,我們用分成四段的十進制數表示IP地址,從0.0.0.0一直到255.255.255.255

互聯網上的每個設備,都會分配到一個IP地址。這個地址分成兩個部分,前一部分代表網絡,後一部分代表設備。比如,IP地址172.16.254.1,這是一個32位的地址,假定它的網絡部分是前24位(172.16.254),那麼主機部分就是後8位(最後的那個1)。處於同一個子網絡的電腦,它們IP地址的網絡部分必定是相同的,也就是說172.16.254.2應該與172.16.254.1處在同一個子網絡。

乾貨:10分鐘能看懂的網絡模型知識大全

但是,問題在於單單從IP地址,我們無法判斷網絡部分。還是以172.16.254.1為例,它的網絡部分,到底是前24位,還是前16位,甚至前28位,從IP地址上是看不出來的。

那麼,怎樣才能從IP地址,判斷兩臺計算機是否屬於同一個子網絡呢?

這就要用到另一個參數"子網掩碼"(subnet mask)

"子網掩碼",就是表示子網絡特徵的一個參數。它在形式上類似IP地址,也是一個32位二進制數字,它的網絡部分全部為1,主機部分全部為0。比如,IP地址172.16.254.1,如果已知網絡部分是前24位,主機部分是後8位,那麼子網絡掩碼就是11111111.11111111.11111111.00000000,寫成十進制就是255.255.255.0。

有了"子網掩碼"這個東西,我們就能判斷,任意兩個IP地址是否處在同一個子網絡。方法是將兩個IP地址與子網掩碼分別進行 AND 運算(兩個數位都為1,運算結果為1,否則為0),然後比較結果是否相同,如果是的話,就表明它們在同一個子網絡中,否則就不是。

比如,已知IP地址192.168.1.1和192.168.1.5的子網掩碼都是255.255.255.0,請問它們是否在同一個子網絡?兩者與子網掩碼分別進行AND運算,結果都是192.168.1.0,因此它們在同一個子網絡。

現在總結一下,IP協議的作用主要有兩個,一個是為每一臺計算機分配IP地址,另一個是確定哪些地址在同一個子網絡。

4、傳輸層

我們用網絡的東西 ,都會記得有一個 socket ,這個層次就完成了,socket 的東西。到這個層次,就可以通過 socket 來發送數據了。還包裝了一些簡單的協議,比如 TCP,UDP。

socket 就相當於發動機,有了發動機,就可以創造出不同的車子,汽車,卡車,電動車,當然還會有瑪莎拉蒂和布拉迪威龍。

有了MAC地址和IP地址,我們已經可以在互聯網上任意兩個設備上建立通信了。接下來的問題是,如果一個設備有多個任務需要進行網絡通信的時候,我們如何分配這些數據,讓多個任務能夠只使用自己對應的數據呢?

傳輸層的作用就是建立一條規範,使得兩臺設備上多個任務之間的相互通信能夠正常進行,而不需要區分數據到底是來自於哪個程序而能直接接收。這個實現方式就是,我們添加了一個參數,這個參數被稱為“端口”(port)。每個任務擁有自己 port,只接受對應 port 的數據,以此來區分數據。

4.1 UDP協議

包含端口號最簡單的實現就是UDP協議,他的格式幾乎就只是在數據前加上發送端口和接收端口而已。

4.2 TCP協議

UDP協議的優點是比較簡單,容易實現,但是缺點是可靠性較差,一旦數據包發出,無法知道對方是否收到。

為了解決這個問題,提高網絡可靠性,TCP協議就誕生了。這個協議非常複雜,但可以近似認為,它就是有確認機制的UDP協議,每發出一個數據包都要求確認。如果有一個數據包遺失,就收不到確認,發出方就知道有必要重發這個數據包了。

因此,TCP協議能夠確保數據不會遺失。它的缺點是過程複雜、實現困難、消耗較多的資源。

TCP數據包和UDP數據包一樣,都是內嵌在IP數據包的"數據"部分。TCP數據包沒有長度限制,理論上可以無限長,但是為了保證網絡的效率,通常TCP數據包的長度不會超過IP數據包的長度,以確保單個TCP數據包不必再分割。

5、應用層

有了汽車,就出現了各種運輸公司,什麼中通,順豐就應運而生了。所以這就是應用層了。

應用層的東西就是根據之前的層次來封裝一些場景應用,比如我們正常的網址,就是 http協議。

乾貨:10分鐘能看懂的網絡模型知識大全

其他還有 ftp 等等之類的,具體還是看上面那個圖,看起來還是非常不錯的。

舉例來說,TCP 協議可以為各種各樣的程序傳遞數據,比如 Email、WWW、FTP等等。那麼,必須有不同協議規定電子郵件、網頁、FTP數據的格式,這些應用程序協議就構成了"應用層"。

為什麼說一個WIFI要說以上這麼多。好吧,其實大部分沒什麼用,最重要的要理解一點,WIFI其實只是把賦予設備MAC地址,連接上網絡,並分配好IP,或者是作為AP給別的設備分配IP等等,而要真正的傳輸數據,使用的仍然是TCP 或者 UDP協議。

3.

經過上面的層次封裝之後,如果我們要發送數據就變成了這樣。

乾貨:10分鐘能看懂的網絡模型知識大全

然後接收端和發送端的對應解析大概是這樣的,發送的時候每一層就封裝上自己的東西,接收的時候,每一層就剝離掉其他層次,拿到自己那一層的數據。

"

1.

網絡是我們做嵌入式 避無可避的知識點,但是網絡的層次很多,很多時候我們根本理解不了其中的層次和作用,今天跟我們公司的 X 總聊到這個,給我普及了一些知識,我覺得非常有用,分享給大家。

2.

網絡模型經典圖片

乾貨:10分鐘能看懂的網絡模型知識大全

好了,針對上面的模型,我們來舉個例子說明一下

乾貨:10分鐘能看懂的網絡模型知識大全

下面這個圖片

乾貨:10分鐘能看懂的網絡模型知識大全

兩臺 pc 通過交換機連上一個雲服務器,我們假設都是通過網線來連接的。

1、物理層

物理層可以理解為硬件層,這個層的東西就是一個硬件的網口,phy 就是這個東西,這裡的網絡 pc 和交換機通過 phy連接,交換機也是通過 phy 和雲連接。網絡數據也是通過 phy 發送出去的。

我們所說的物理就是比較硬的東西,硬的東西那肯定是實際的硬件東西了,那物理層肯定就是硬件的鬼東西了。

2、數據鏈路層

這一層就涉及了一些軟件的東西了,加入了全球唯一的 MAC 地址,這一層確定了 每個網絡設備的 MAC 地址,正常我們 PC 發送數據的時候,可以通過 MAC 地址讓對方知道自己是哪個設備,告訴別人我是誰。

物理層完成了數據的傳輸,還需要對0和1的定義進行規定(類似低電平為0,高電平為1),同時在傳輸0,1之後還需要對01進行分組如8bit為一個字節多少字節為一個包之類。這就是鏈接層的功能。

Ethenet 和 Wifi 基本就是屬於這個層次。所以 wifi 協議其實就是解決的一個鏈路和物理層的問題,在更往上的網絡層和傳輸層一般就是 TCP/IP 協議。

3、網絡層

鏈路層說明把路打通了,可以在上面開車了,那不能隨便開車啊,開車沒有交通規則那就是要命的,所以就出現了網絡層,出現了一些規範性的東西來規範在這條路上的車神們。

這個層次就引入了 ip 這個鬼東西了,我們設備的 MAC 地址唯一的,但是 IP 地址並不保證需要唯一,一臺設備可能有幾個 IP 地址。這個東西都是在這個層次決定的。

3.1 IP協議

定義網址的協議,叫做IP協議。所定義的地址也稱為IP地址。

目前廣泛採用的是IPv4協議,這個協議規定,網址由32個bit組成

習慣上,我們用分成四段的十進制數表示IP地址,從0.0.0.0一直到255.255.255.255

互聯網上的每個設備,都會分配到一個IP地址。這個地址分成兩個部分,前一部分代表網絡,後一部分代表設備。比如,IP地址172.16.254.1,這是一個32位的地址,假定它的網絡部分是前24位(172.16.254),那麼主機部分就是後8位(最後的那個1)。處於同一個子網絡的電腦,它們IP地址的網絡部分必定是相同的,也就是說172.16.254.2應該與172.16.254.1處在同一個子網絡。

乾貨:10分鐘能看懂的網絡模型知識大全

但是,問題在於單單從IP地址,我們無法判斷網絡部分。還是以172.16.254.1為例,它的網絡部分,到底是前24位,還是前16位,甚至前28位,從IP地址上是看不出來的。

那麼,怎樣才能從IP地址,判斷兩臺計算機是否屬於同一個子網絡呢?

這就要用到另一個參數"子網掩碼"(subnet mask)

"子網掩碼",就是表示子網絡特徵的一個參數。它在形式上類似IP地址,也是一個32位二進制數字,它的網絡部分全部為1,主機部分全部為0。比如,IP地址172.16.254.1,如果已知網絡部分是前24位,主機部分是後8位,那麼子網絡掩碼就是11111111.11111111.11111111.00000000,寫成十進制就是255.255.255.0。

有了"子網掩碼"這個東西,我們就能判斷,任意兩個IP地址是否處在同一個子網絡。方法是將兩個IP地址與子網掩碼分別進行 AND 運算(兩個數位都為1,運算結果為1,否則為0),然後比較結果是否相同,如果是的話,就表明它們在同一個子網絡中,否則就不是。

比如,已知IP地址192.168.1.1和192.168.1.5的子網掩碼都是255.255.255.0,請問它們是否在同一個子網絡?兩者與子網掩碼分別進行AND運算,結果都是192.168.1.0,因此它們在同一個子網絡。

現在總結一下,IP協議的作用主要有兩個,一個是為每一臺計算機分配IP地址,另一個是確定哪些地址在同一個子網絡。

4、傳輸層

我們用網絡的東西 ,都會記得有一個 socket ,這個層次就完成了,socket 的東西。到這個層次,就可以通過 socket 來發送數據了。還包裝了一些簡單的協議,比如 TCP,UDP。

socket 就相當於發動機,有了發動機,就可以創造出不同的車子,汽車,卡車,電動車,當然還會有瑪莎拉蒂和布拉迪威龍。

有了MAC地址和IP地址,我們已經可以在互聯網上任意兩個設備上建立通信了。接下來的問題是,如果一個設備有多個任務需要進行網絡通信的時候,我們如何分配這些數據,讓多個任務能夠只使用自己對應的數據呢?

傳輸層的作用就是建立一條規範,使得兩臺設備上多個任務之間的相互通信能夠正常進行,而不需要區分數據到底是來自於哪個程序而能直接接收。這個實現方式就是,我們添加了一個參數,這個參數被稱為“端口”(port)。每個任務擁有自己 port,只接受對應 port 的數據,以此來區分數據。

4.1 UDP協議

包含端口號最簡單的實現就是UDP協議,他的格式幾乎就只是在數據前加上發送端口和接收端口而已。

4.2 TCP協議

UDP協議的優點是比較簡單,容易實現,但是缺點是可靠性較差,一旦數據包發出,無法知道對方是否收到。

為了解決這個問題,提高網絡可靠性,TCP協議就誕生了。這個協議非常複雜,但可以近似認為,它就是有確認機制的UDP協議,每發出一個數據包都要求確認。如果有一個數據包遺失,就收不到確認,發出方就知道有必要重發這個數據包了。

因此,TCP協議能夠確保數據不會遺失。它的缺點是過程複雜、實現困難、消耗較多的資源。

TCP數據包和UDP數據包一樣,都是內嵌在IP數據包的"數據"部分。TCP數據包沒有長度限制,理論上可以無限長,但是為了保證網絡的效率,通常TCP數據包的長度不會超過IP數據包的長度,以確保單個TCP數據包不必再分割。

5、應用層

有了汽車,就出現了各種運輸公司,什麼中通,順豐就應運而生了。所以這就是應用層了。

應用層的東西就是根據之前的層次來封裝一些場景應用,比如我們正常的網址,就是 http協議。

乾貨:10分鐘能看懂的網絡模型知識大全

其他還有 ftp 等等之類的,具體還是看上面那個圖,看起來還是非常不錯的。

舉例來說,TCP 協議可以為各種各樣的程序傳遞數據,比如 Email、WWW、FTP等等。那麼,必須有不同協議規定電子郵件、網頁、FTP數據的格式,這些應用程序協議就構成了"應用層"。

為什麼說一個WIFI要說以上這麼多。好吧,其實大部分沒什麼用,最重要的要理解一點,WIFI其實只是把賦予設備MAC地址,連接上網絡,並分配好IP,或者是作為AP給別的設備分配IP等等,而要真正的傳輸數據,使用的仍然是TCP 或者 UDP協議。

3.

經過上面的層次封裝之後,如果我們要發送數據就變成了這樣。

乾貨:10分鐘能看懂的網絡模型知識大全

然後接收端和發送端的對應解析大概是這樣的,發送的時候每一層就封裝上自己的東西,接收的時候,每一層就剝離掉其他層次,拿到自己那一層的數據。

乾貨:10分鐘能看懂的網絡模型知識大全

AP :類似 wifi 也就是無線接入點,是一個無線網絡的創建者,是網絡的中心節點。一般家庭或辦公室使用的無線路由器就是一個 AP。

STA:類似手機 每一個連接到無線網絡中的終端(如筆記本電腦、PDA及其它可以聯網的用戶設備)都可稱為一個站點。


關注微信公眾號:安徽思恆信息科技有限公司,瞭解更多技術內容……

"

相關推薦

推薦中...