網際網路是怎麼連起來的?一文讀懂網路5層結構模型

youbingke發表於2021-08-17

我們每天都在使用網際網路聊天、逛論壇、看電影,但你可曾想過,這看似自然而然的事情,到底是怎樣實現的呢?

比如,我想透過瀏覽器去訪問百度,搜尋自己想要的資訊,瀏覽器是如何知道我要做這些,又是如何實現的呢?想要弄清這個問題,必須瞭解網路構成的五層模型和相互之間的一系列協議。

網際網路是怎麼連起來的?一文讀懂網路5層結構模型

概述

人們通常情況下,會將網際網路分為五層結構,由下而上分別為: 實體層、鏈路層、網路層、傳輸層和應用層。

每一層之間都有不同的形態和構成機制,比如最底層的實體層是光纜、雙絞線這些硬體,最上層的應用層卻是瀏覽器、郵箱等各種軟體,所以如果想實現不同層之間的聯絡,必須遵守不同層之間的規則。這些規則統稱為“網際網路協議”,它們是網際網路的核心。

網際網路是怎麼連起來的?一文讀懂網路5層結構模型

實體層

一臺計算機要想訪問其他計算機,首先要做是把這臺計算機和其他計算機連起來,這樣我們才能收發資料。因此,我們需要透過光纜、雙絞線、無線電波等方式實現計算機之間的相互連線,這些硬體就構成了網路的實體層。 它規定了網路的電氣特性,負責0和1電訊號的傳送。

網際網路是怎麼連起來的?一文讀懂網路5層結構模型

鏈路層

實體層傳輸的是0和1電訊號,計算機解讀不了,我們必須為其制定一套規則來進行傳輸,於是就有了乙太網協議。

1.乙太網協議

乙太網協議規定,一組電訊號構成一個資料包,我們稱之為幀,每個幀由標頭(Head)和資料(Data)兩部分構成。標頭包含了傳送者、接收者和資料型別等說明項,相當於信封上的資訊;"資料"則是資料包的具體內容,相當於信中具體內容。

網際網路是怎麼連起來的?一文讀懂網路5層結構模型

2.MAC地址

計算機之間如何區分將資料傳送給誰呢?這時候我們就要用到MAC地址。乙太網規定,連入網路的所有裝置,都必須具有"網路卡"介面。資料包必須是從一塊網路卡傳送到另一塊網路卡。網路卡的地址,就是資料包的傳送地址和接收地址,稱為MAC地址。

每塊網路卡出廠的時候,都有一個全世界獨一無二的MAC地址,長度是48個二進位制位,通常用12個十六進位制數表示。有了MAC地址,就可以定位網路卡和資料包的路徑。

網路層

從理論上講,只要我們獲取MAC地址,就可以對任何一臺計算機進行資訊的傳送,但是實際操作起來卻有很大的困難,還需要透過其他方式進行下一步的資訊傳遞。

1.廣播

乙太網採用了一種很"原始"的方式,它不是把資料包準確送到接收方,而是向本網路內所有計算機傳送,讓每臺計算機自己判斷是否為接收方。

網際網路是怎麼連起來的?一文讀懂網路5層結構模型

上圖中,1號計算機向2號計算機傳送一個資料包,同一個子網路的3號、4號、5號計算機都會收到這個包。它們讀取這個包的"標頭",找到接收方的MAC地址,然後與自身的MAC地址相比較,如果兩者相同,就接收這個包,做進一步處理,否則就丟棄這個包。這種傳送方式就叫做"廣播"(broadcasting)。

這種方式效率比較低,而且 僅限傳送者所在的子網路中。所以,我們除了知道對方的MAC地址外,還要知道它屬於哪個子網路,才能進行資訊的傳送。

2.IP協議

實現這個目的的就是IP協議。IP協議所定義的地址,我們稱之為IP地址。這個 IP 地址由 32 位的二進位制陣列成,我們一般把它分成4段的十進位制表示,地址範圍為0.0.0.0~255.255.255.255。IP地址被分為兩部分,前面一部分代表網路部分,後面一部分代表主機部分。

網際網路是怎麼連起來的?一文讀懂網路5層結構模型

假如兩臺計算機的網路部分是一樣的,那它們就處於同一個子網中。例如,存在192.168.43.1 和 192.168.43.2兩個IP地址, 假如它們的網路部分都為 192.168.43,那它們便處於同一個子網中。乙太網資料包只包含了MAC地址,根據IP協議,我們再對其新增IP地址,於是乙太網資料包形式就變成了下面這樣:

網際網路是怎麼連起來的?一文讀懂網路5層結構模型
藍色Head為乙太網標頭,紅色Head為IP標頭

但很多情況下我們知道對方的IP地址,卻不知道對方的MAC地址,這就需要用到ARP協議。ARP協議也是透過廣播的形式給同一個子網中的每臺電腦傳送一個資料包(當然,這個資料包會包含接收方的IP地址)。對方收到這個資料包之後,會取出IP地址與自身進行對比,如果相同,則把自己的MAC地址回覆給對方,否則就丟棄這個資料包。這樣,計算機A就能知道計算機B的MAC地址。

網際網路是怎麼連起來的?一文讀懂網路5層結構模型

有了IP地址和MAC地址,我們就能快速準確地把資訊傳送到任意一臺計算機上。

傳輸層

接下來的問題是,每臺計算機上會同時執行很多程式,如瀏覽器、微信、遊戲等等,對方如何知道你從哪個程式上發來的資訊呢?

此時,需要用到“埠(Port)”這個引數了,不同的埠表示不同的程式資料。也就是說 傳輸層建立的是埠到埠之間的通訊,相比之下網路層建立的是主機到主機之間的通訊。主機+埠,叫做套接字(socket),有了它就能進行網路程式間的通訊。需要注意的是,在傳輸層我們還要在IP資料包的基礎上加上埠資訊,這時就需要用到新的協議,這種協議通常分為UDP和TCP兩種。UDP協議新增了發出埠和接收埠的資訊,TCP協議比較複雜,近似可以認為在UDP協議基礎上加上了確認機制。將UDP或TCP協議標頭新增到IP資料包中,就變成了下面這樣:

網際網路是怎麼連起來的?一文讀懂網路5層結構模型

應用層

網路結構的最上面一層是應用層,應用層直接面向使用者,比如瀏覽器、郵件、影音等等,這些程式傳送過來的資料也是各種各樣的,所以必須實現規定好的格式才能進行解讀。應用層的作用,就是規定應用程式的資料格式。如,全球資訊網瀏覽:http協議;郵件收發:smtp/POP3協議;檔案傳輸:ftp協議;域名服務:DNS協議等。應用層協議規定了程式在通訊時所遵守的規則。

網際網路是怎麼連起來的?一文讀懂網路5層結構模型

網路的層級劃分保證了資料傳輸的過程解耦,提升網路系統的穩定性,而各層級的服務及協議的穩定性,仍需分別在各層級中部署相應的裝置或系統。應用層是網際網路實現其功能性的最終層級,也是面臨網路攻擊最頻繁的網際網路層。

中科三方的產品便主要面向此層級,對各種協議的安全及傳輸效率進行防護與最佳化:SSL證照可以解決http協議的傳輸加密,域名及解析產品則負責DNS協議全過程的防護與提速,郵箱產品則主要針對郵件收發過程中涉及的SMTP/POP3協議。透過對客戶網路系統的應用層實現全方位的保駕護航,以確保其網路體系應用價值的實現。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69996004/viewspace-2787393/,如需轉載,請註明出處,否則將追究法律責任。

相關文章