日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

/ 引言 /

本系列即將結束,最后一章將仔細討論網絡系統,這是面試中經常被問及的一個知識點,也是工作中常遇到的一個系統知識點。那么為什么我們需要網絡系統呢?我們之前提到過,進程間通信有許多方法,其中一種是通過套接字(socket)進行跨網絡通信。這意味著我們不再僅限于內部系統調用,而是需要與其他人進行溝通,這也是互聯網的本質。然而,如果我們不能使用共同的語言進行溝通,比如你說中文,對方說鳥語,那么你們將無法有效地交流。因此,我們需要一個統一的語言,也就是網絡系統,它通過一系列協議確保雙方能夠正常有效地進行溝通。這種約定好的格式就是網絡協議?.NETworking Protocol)。接下來,我們將詳細討論網絡系統的相關內容。

/ 網絡為什么要分層? /

首先,我將簡單地解釋一下,然后再進行詳細說明。為什么要分層?其實,這與你在編寫 JAVA 代碼時為什么要使用責任鏈設計模式是一樣的。每一層只負責自己的任務,如果符合我們所需的邏輯,就繼續往下一層推進,直到問題得到解決。難道不分層也可以嗎?實際上不行,因為我們的設計模式只存在于代碼層面,并不能僅憑一些混亂的代碼和一堆 if-else 語句就解決問題,畢竟我們還需要硬件的支持。

接下來,讓我們構建一個相對簡單的場景,并在后面的內容中基于這個場景進行講解。

假設我們有三臺機器,分別是 linux 服務器 A、Linux 服務器 B,它們位于不同的網段,并通過中間的 Linux 服務器作為路由器進行轉發。

說到網絡協議,我們還需要簡要介紹一下兩種網絡協議模型。一種是 OSI 的標準七層模型,它包括物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層和應用層。另一種是業界標準的 TCP/IP 模型,它包括網絡接口層、網絡層、傳輸層和應用層。這兩種模型的對應關系如下圖所示:

為什么網絡要分層呢?這是因為網絡環境過于復雜,不是一個能夠集中控制的體系。全球范圍內有數以億計的服務器和設備,它們各自擁有自己的體系結構和功能。然而,通過將網絡劃分為多個層次和組合,使用統一的網絡協議棧,可以滿足不同服務器和設備之間的通信需求。

我們這里簡單介紹一下網絡協議的幾個層次。讓我們從第三層開始,也就是網絡層,因為這一層包含了我們熟悉的 IP 地址。因此,這一層也被稱為 IP 層。

我們通常看到的 IP 地址的格式是這樣的:192.168.1.100/24。斜杠前面是 IP 地址,這個地址被點分隔為四個部分,每個部分由 8 位二進制數字組成,總共是 32 位。斜線后面的 24 表示,在這 32 位中,前 24 位是網絡號,后 8 位是主機號。

為什么要這樣劃分呢?我們可以想象一下,雖然全世界都組成了一個大的互聯網,你可以訪問美國的網站,但這個網絡并不是一個整體。你所在的小區有一個網絡,你所在的公司也有一個網絡,聯通、移動、電信等運營商也都有各自的網絡。因此,整個大網絡被劃分為許多小的網絡。

那么如何區分這些網絡呢?這就是網絡號的概念。一個網絡中會有多個設備,這些設備的網絡號相同,但主機號不同。你可以觀察一下你家里的手機、電視和電腦,它們的主機號是不同的,但前面幾位的網絡號是相同的,而且它們都連接到同一個網關。

連接到網絡上的每個設備都至少有一個 IP 地址,用于定位該設備。無論是旁邊同學的電腦還是遙遠的電商網站,都可以通過 IP 地址進行定位。因此,IP 地址類似于互聯網上的郵寄地址,具有全局定位功能。但要記住,你的 IP 地址并不是永恒不變的。即使你使用手機流量,當你換一個地方時,基站也會改變,因此你的 IP 地址也會改變。所以現在你明白為什么可以定位到你的設備了吧。

即使你要訪問美國的某個地址,也可以從你身邊的網絡出發,通過打聽和詢問的過程,經過多個網絡,最終發現中國的網絡防火墻阻止了訪問。開個玩笑,實際上只要是國內的地址,最終也可以到達目標地址,就像快遞員送包裹一樣。打聽和詢問的協議也在第三層,稱為路由協議(Routing protocol),它負責將網絡包從一個網絡轉發給另一個網絡的設備,這些設備被稱為路由器。

總而言之,第三層的主要功能是將網絡包從一個起始 IP 地址,沿著路由協議指定的路徑,通過多個網絡,經過多個路由器的轉發,到達目標 IP 地址。

從第三層開始往下看,第二層是數據鏈路層,也稱 mac 層。MAC 是每個網卡都有的唯一硬件地址(不絕對唯一,相對大概率唯一即可),雖然這個地址沒有全局定位功能。

可以將 MAC 地址類比為外賣小哥送外賣時的手機尾號。盡管手機尾號無法準確找到你家的位置,但它在本地具有定位功能,主要通過“吼”的方式實現。當外賣小哥到達你所在樓層時,會大聲喊出:“尾號 xxxx 的,你的外賣到了!”MAC 地址的定位功能僅限于同一網絡內的 IP 地址之間,可以通過 MAC 地址定位和通信。要通過 IP 地址獲取 MAC 地址,需要使用 ARP 協議,在本地發送廣播包,也就是“吼”,以獲取 MAC 地址。實際上,ARP 協議有緩存功能,你可以使用 arp -a 命令查看你的 windows 機器的緩存地址。

由于同一網絡內的機器數量有限,通過 MAC 地址的好處在于簡單。只要匹配到 MAC 地址,就接收該數據包;無法匹配到 MAC 地址,就不接收。沒有像路由協議那樣復雜的協議。當然,MAC 地址的作用范圍僅限于本地網絡,因此一旦跨網絡通信,盡管 IP 地址保持不變,但是 MAC 地址在經過每個路由器時都會更換一次。

讓我們再看一下前面的圖。服務器 A 向服務器 B 發送網絡數據包,源 IP 地址始終是 192.168.1.100,目標 IP 地址始終是 192.168.2.100。但在網絡 1 中,源 MAC 地址是 MAC1,目標 MAC 地址是路由器的 MAC2。路由器轉發后,源 MAC 地址變為路由器的 MAC3,目標 MAC 地址變為 MAC4。

所以在網絡的第二層,主要負責處理本地網絡中服務器之間的定位和通信機制,也就是數據包在本地網絡內的傳輸和交換。需要注意的是,這個機制僅限于本地網絡內部的通信。

我們再往下看,網絡的第一層是物理層,這一層主要涉及物理設備。例如,與電腦連接的網線以及我們能夠連接上的 wifi 都屬于物理層的設備。物理層負責將數據轉換為電信號或者無線信號,在網絡中進行傳輸。

讓我們進一步深入了解網絡分層的細節。從第三層開始,第四層就是傳輸層,其中包括兩個著名的協議,即 TCP 和 UDP。尤其是 TCP,在 IP 層的代碼邏輯中,僅負責將數據從一個 IP 地址發送到另一個 IP 地址,而不關心丟包、亂序、重傳、擁塞等問題。這些問題的處理邏輯被寫在傳輸層的 TCP 協議中。

我們經常說的 TCP 三次握手、四次揮手等,正是因為底層的幾個協議都不負責傳輸的可靠性。網絡包可能會丟失,但是 TCP 層通過各種編號和重傳機制,使本來不可靠的網絡看起來變得可靠。因此,哪有什么應用層歲月靜好,只不過 TCP 層幫你負重前行。

傳輸層再往上一層是應用層,這一層包括我們常見的 HTTP、FTP 和 Java Servlet 等。二層到四層的處理都在 Linux 內核中進行,而應用層如瀏覽器、Nginx 和 Tomcat 則運行在用戶態。內核對網絡包的處理并不區分應用。

從第四層傳輸層往上,我們需要引入端口的概念。因為每個應用程序都需要占用一個端口來區分哪些網絡包是發給它的。不同的程序需要監聽不同的端口,例如 Nginx 可以監聽 80 和 443 端口,Tomcat 監聽 8080 端口,Nacos 監聽 8848 端口等。

應用層和傳輸層之間的通信機制實際上是通過內核中的系統調用來完成的,即 socket。因此,有人會問 Socket 屬于哪一層,實際上它不屬于任何一層,它只是一個由操作系統提供的系統調用接口。它屬于操作系統的概念,而不是網絡協議分層的概念。只是操作系統選擇以一種模式實現網絡協議處理,即將二到四層的處理代碼放在內核中,而七層的處理代碼由應用自己完成。這兩者之間需要跨越內核態和用戶態之間的通信,所以需要一個系統調用來完成這個銜接,這就是 Socket。

/ 總結 /

網絡系統是面試和工作中常被問及的一個知識點。網絡分層的核心思想是將網絡劃分為多個層次和組合,使用統一的網絡協議棧,滿足不同設備之間的通信需求。網絡的第三層是網絡層,負責將網絡包從一個起始 IP 地址通過多個網絡、經過多個路由器的轉發,到達目標 IP 地址。第二層是數據鏈路層,負責本地網絡內服務器之間的定位和通信機制。第一層是物理層,負責將數據轉換為電信號或無線信號,在網絡中進行傳輸。從第三層開始往上,第四層是傳輸層,包括 TCP 和 UDP 協議,處理網絡傳輸的可靠性。第五層是應用層,包括 HTTP、FTP 和 Java Servlet 等。應用層和傳輸層之間的通信通過系統調用接口 Socket 完成。

分享到:
標簽:分層 網絡
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定