36 張圖詳解網絡基礎知識

前言

網絡協議

我們用手機連接上網的時候,會用到許多網絡協議。從手機連接 WiFi 開始,使用的是 802.11 (即 WLAN )協議,通過 WLAN 接入網絡;手機自動獲取網絡配置,使用的是 DHCP 協議,獲取配置後手機才能正常通信。這時手機已經連入局域網,可以訪問局域網內的設備和資源,但還不能使用互聯網應用,例如:微信、抖音等。想要訪問互聯網,還需要在手機的上聯網絡設備上實現相關協議,即在無線路由器上配置 NATPPPOE 等功能,再通過運營商提供的互聯網線路把局域網接入到互聯網中,手機就可以上網玩微信、刷抖音了。

網絡協議示意圖

局域網 :小範圍內的私有網絡,一個家庭內的網絡、一個公司內的網絡、一個校園內的網絡都屬於局域網。

廣域網:把不同地域的局域網互相連接起來的網絡。運營商搭建廣域網實現跨區域的網絡互連。

互聯網:互聯全世界的網絡。互聯網是一個開放、互聯的網絡,不屬於任何個人和任何機構,接入互聯網後可以和互聯網的任何一臺主機進行通信。

簡單來說,就是手機、無線路由器等設備通過多種網絡協議實現通信。網絡協議就是爲了通信各方能夠互相交流而定義的標準或規則,設備只要遵循相同的網絡協議就能夠實現通信。那網絡協議又是誰規定的呢?ISO 制定了一個國際標準 OSI , 其中的 OSI 參考模型常被用於網絡協議的制定。

OSI 參考模型圖

OSI 參考模型

OSI 參考模型將網絡協議提供的服務分成 7 層,並定義每一層的服務內容,實現每一層服務的是協議,協議的具體內容是規則。上下層之間通過接口進行交互,同一層之間通過協議進行交互。OSI 參考模型只對各層的服務做了粗略的界定,並沒有對協議進行詳細的定義,但是許多協議都對應了 7 個分層的某一層。所以要了解網絡,首先要了解 OSI 參考模型。

OSI 參考模型分層功能

應用層

OSI 參考模型的第 7 層(最高層)。應用程序和網絡之間的接口,直接向用戶提供服務。應用層協議有電子郵件、遠程登錄等協議。

應用層示例圖

表示層

OSI 參考模型的第 6 層。負責數據格式的互相轉換,如編碼、數據格式轉換和加密解密等。保證一個系統應用層發出的信息可被另一系統的應用層讀出。

表示層示例圖

會話層

OSI 參考模型的第 5 層。主要是管理和協調不同主機上各種進程之間的通信(對話),即負責建立、管理和終止應用程序之間的會話。

會話層示例圖

傳輸層

OSI 參考模型的第 4 層。爲上層協議提供通信主機間的可靠和透明的數據傳輸服務,包括處理差錯控制和流量控制等問題。只在通信主機上處理,不需要在路由器上處理。

傳輸層示例圖

網絡層

OSI 參考模型的第 3 層。在網絡上將數據傳輸到目的地址,主要負責尋址和路由選擇。

網絡層示例圖

數據鏈路層

OSI 參考模型的第 2 層。負責物理層面上兩個互連主機間的通信傳輸,將由 0 、 1 組成的比特流劃分成數據幀傳輸給對端,即數據幀的生成與接收。通信傳輸實際上是通過物理的傳輸介質實現的。數據鏈路層的作用就是在這些通過傳輸介質互連的設備之間進行數據處理。

網絡層與數據鏈路層都是基於目標地址將數據發送給接收端的,但是網絡層負責將整個數據發送給最終目標地址, 而數據鏈路層則只負責發送一個分段內的數據。

數據鏈路層示例圖

物理層

OSI 參考模型的第 1 層(最底層)。負責邏輯信號(比特流)與物理信號(電信號、光信號)之間的互相轉換,通過傳輸介質爲數據鏈路層提供物理連接。

物理層示例圖

TCP/IP 參考模型

由於 OSI 參考模型把服務劃得過於瑣碎,先定義參考模型再定義協議,有點理想化。TCP/IP 模型則正好相反,通過已有的協議歸納總結出來的模型,成爲業界的實際網絡協議標準。

TCP/IP 是有由 IETF 建議、推進其標準化的一種協議,是 IP 、 TCP 、 HTTP 等協議的集合。TCP/IP 是爲使用互聯網而開發制定的協議族,所以互聯網的協議就是 TCP/IP 。

先介紹下 TCP/IP 與 OSI 分層之間的對應關係,以及 TCP/IP 每層的主要協議。

網絡接入層

TCP/IP 是以 OSI 參考模型的物理層和數據鏈路層的功能是透明的爲前提製定的,並未對這兩層進行定義,所以可以把物理層和數據鏈路層合併稱爲網絡接入層。網絡接入層是對網絡介質的管理,定義如何使用網絡來傳送數據。但是在通信過程中這兩層起到的作用不一樣,所以也有把物理層和數據鏈路層分別稱爲硬件網絡接口層。TCP/IP 分爲四層或者五層都可以,只要能理解其中的原理即可。

設備之間通過物理的傳輸介質互連, 而互連的設備之間使用 MAC 地址實現數據傳輸。採用 MAC 地址,目的是爲了識別連接到同一個傳輸介質上的設備。

網絡層

相當於 OSI 模型中的第 3 層網絡層,使用 IP 協議。IP 協議基於 IP 地址轉發分包數據,作用是將數據包從源地址發送到目的地址。

TCP/IP 分層中的網絡層與傳輸層的功能通常由操作系統提供。 路由器就是通過網絡層實現轉發數據包的功能。

網絡層

網絡傳輸中,每個節點會根據數據的地址信息,來判斷該報文應該由哪個網卡發送出去。各個地址會參考一個發出接口列表, MAC 尋址中所參考的這張表叫做 MAC 地址轉發表,而 IP 尋址中所參考的叫做路由控制表。MAC 地址轉發表根據自學自動生成。路由控制表則根據路由協議自動生成。MAC 地址轉發表中所記錄的是實際的 MAC 地址本身,而路由表中記錄的 IP 地址則是集中了之後的網絡號(即網絡號與子網掩碼)。

傳輸層

相當於 OSI 模型中的第 4 層傳輸層,主要功能就是讓應用程序之間互相通信,通過端口號識別應用程序,使用的協議有面向連接的 TCP 協議和麪向無連接的 UDP 協議。

面向連接是在發送數據之前, 在收發主機之間連接一條邏輯通信鏈路。好比平常打電話,輸入完對方電話號碼撥出之後,只有對方接通電話才能真正通話,通話結束後將電話機扣上就如同切斷電源。

面向無連接不要求建立和斷開連接。發送端可於任何時候自由發送數據。如同去寄信,不需要確認收件人信息是否真實存在,也不需要確認收件人是否能收到信件,只要有個寄件地址就可以寄信了。

傳輸層

應用層

相當於 OSI 模型中的第 5 - 7 層的集合,不僅要實現 OSI 模型應用層的功能,還要實現會話層和表示層的功能。HTTP 、 POP3 、 TELNET 、 SSH 、 FTP 、 SNMP 都是應用層協議。

TCP/IP 應用的架構絕大多數屬於客戶端 / 服務端模型。提供服務的程序叫服務端, 接受服務的程序叫客戶端。客戶端可以隨時發送請求給服務端。

應用層

封裝與解封裝

通常,爲協議提供的信息爲包頭部,所要發送的內容爲數據。每個分層中,都會對所發送的數據附加一個頭部,在這個頭部中包含了該層必要的信息, 如發送的目標地址以及協議相關信息。在下一層的角度看,從上一分層收到的包全部都被認爲是本層的數據。

數據發送前,按照參考模型從上到下,在數據經過每一層時,添加協議報文頭部信息,這個過程叫封裝

封裝

數據接收後,按照參考模型從下到上,在數據經過每一層時,去掉協議頭部信息,這個過程叫解封裝

解封裝

經過傳輸層協議封裝後的數據稱爲,經過網絡層協議封裝後的數據稱爲,經過數據鏈路層協議封裝後的數據稱爲,物理層傳輸的數據爲比特

TCP/IP 通信中使用 MAC 地址、 IP 地址、端口號等信息作爲地址標識。甚至在應用層中,可以將電子郵件地址作爲網絡通信的地址。

實際數據傳輸舉例

實際生活中,互聯網是使用的 TCP/IP 協議進行網絡連接的。我們以訪問網站爲例,看看網絡是如何進行通信的。

數據傳輸舉例

發送數據包

訪問 HTTP 網站頁面時,打開瀏覽器,輸入網址,敲下回車鍵就開始進行 TCP/IP 通信了。

應用程序處理

應用層

首先,應用程序中會進行 HTML 格式編碼處理,相當於 OSI 的表示層功能。編碼轉化後,不一定會馬上發送出去,相當於會話層的功能。在請求發送的那一刻,建立 TCP 連接,然後在 TCP 連接上發送數據。接下來就是將數據發送給下一層的 TCP 進行處理。

TCP 模塊處理

傳輸層

TCP 會將應用層發來的數據順利的發送至目的地。實現可靠傳輸的功能,需要給數據封裝 TCP 頭部信息。TCP 頭部信息包括源端口號和目的端口號(識別主機上應用)、序號(確認哪部分是數據)以及校驗和(判斷數據是否被損壞)。隨後封裝了 TCP 頭部信息的段再發送給 IP 。

IP  模塊處理

網絡層

IP 將 TCP 傳過來的數據段當做自己的數據,並封裝 IP 頭部信息。IP 頭部信息中包含目的 IP 地址和源 IP 地址,以及上層協議類型信息。

IP 包生成後,根據主機路由表進行數據發送。

網絡接口處理

物理層

網絡接口對傳過來的 IP 包封裝上以太網頭部信息並進行發送處理。以太網頭部信息包含目的 MAC 地址、源 MAC 地址,以及上層協議類型信息。然後將以太網數據通過物理層傳輸給接收端。發送處理中的 FCS 由硬件計算, 添加到包的最後。設置 FCS 的目的是爲了判斷數據包是否由於噪聲而被破壞。

接收數據包

包的接收流程是發送流程的反向過程。

網絡接口處理

收到以太網包後,首先查看頭部信息的目的 MAC 地址是否是發給自己的包。如果不是發送給自己的包就丟棄。如果是發送給自己的包,查看上層協議類型是 IP 包,以太網幀解封裝成 IP 包,傳給 IP 模塊進行處理。如果是無法識別的協議類型,則丟棄數據。

網口處理流程

IP  模塊處理

收到 IP 包後,進行類似處理。根據頭部信息的目的 IP 地址判斷是否是發送給自己包,如果是發送給自己的包,則查看上一層的協議類型。上一層協議是 TCP ,就把 IP 包解封裝發送給 TCP 協議處理。

IP 模塊處理流程

假如有路由器,且接收端不是自己的地址,那麼根據路由控制錶轉發數據。

路由器處理流程

TCP 模塊處理

收到 TCP 段後,首先查看校驗和,判斷數據是否被破壞。然後檢查是否按照序號接收數據。最後檢查端口號,確定具體的應用程序。

TCP 模塊處理流程

數據接收完畢後,發送一個 “ 確認回執 ” 給發送端。如果這個回執信息未能達到發送端,那麼發送端會認爲接收端沒有接收到數據而一直反覆發送。

數據被完整接收後,會把 TCP 段解封裝發送給由端口號識別的應用程序。

應用程序處理

應用程序收到數據後,通過解析數據內容獲知發送端請求的網頁內容,然後按照 HTTP 協議進行後續數據交互。

網絡構成

網絡構成要素

搭建一套網絡涉及各種線纜和網絡設備。下面介紹一些常見的硬件設備。硬件設備所說的層數是參照的 OSI 參考模型,而不是 TCP/IP 模型。

主要設備及作用表

通信介質與數據鏈路

設備之間通過線纜進行連接。有線線纜有雙絞線、光纖、串口線等。根據數據鏈路不同選擇對應的線纜。傳輸介質還可以被分爲電波、微波等不同類型的電磁波。

傳輸速率:單位爲 bps ,是指單位時間內傳輸的數據量有多少。又稱作帶寬,帶寬越大網絡傳輸能力就越強。

吞吐量:單位爲 bps ,主機之間實際的傳輸速率。吞吐量這個詞不僅衡量帶寬, 同時也衡量主機的 CPU 處理能力、 網絡的擁堵程度、 報文中數據字段的佔有份額等信息。

網卡

任一主機連接網絡時,必須要使用網卡。可以是有線網卡,用來連接有線網絡,也可以是無線網卡連接 WiFi 網絡。每塊網卡都有一個唯一的 MAC 地址,也叫做硬件地址或物理地址。

網卡

二層交換機

二層交換機

二層交換機位於 OSI 模型的第 2 層(數據鏈路層)。它能夠識別數據鏈路層中的數據幀,並將幀轉發給相連的另一個數據鏈路。

數據幀中有一個數據位叫做 FCS ,用以校驗數據是否正確送達目的地。二層交換機通過檢查這個值,將損壞的數據丟棄。

二層交換機根據 MAC 地址自學機制判斷是否需要轉發數據幀。

路由器 / 三層交換機

路由器

路由器是在 OSI 模型的第 3 層(網絡層)上連接兩個網絡、並對報文進行轉發的設備。二層交換機是根據 MAC 地址進行處理,而路由器 / 三層交換機則是根據 IP 地址進行處理的。因此 TCP/IP 中網絡層的地址就成爲了 IP 地址。

路由器可以連接不同的數據鏈路。比如連接兩個以太網,或者連接一個以太網與一個無線網。家庭裏面常見的無線路由器也是路由器的一種。

四至七層交換機

負載均衡設備

四至七層交換機負責處理 OSI 模型中從傳輸層至應用層的數據。以 TCP 等協議的傳輸層及其上面的應用層爲基礎,分析收發數據,並對其進行特定的處理。例如,視頻網站的一臺服務器不能滿足訪問需求,通過負載均衡設備將訪問分發到後臺多個服務器上,就是四至七層交換機的一種。還有帶寬控制、廣域網加速器、防火牆等應用場景。

總結

總結

應用層設備有電腦、手機、服務器等。應用層設備不轉發數據,它們是數據的源或目的,擁有應用層以下的各層功能。發送數據時,從上而下的順序,逐層對數據進行封裝,再通過以太網將數據發送出去。接收數據時,從下而上的順序,逐層對數據進行解封裝,最終恢復成原始數據。

應用層處理流程

數據鏈路層設備有二層交換機、網橋等。二層網絡設備只轉發數據,通過識別數據的 MAC 地址進行轉發。二層交換機接收數據後,對數據最外層封裝的以太網頭部信息進行查看,看到數據的目的 MAC 地址後,把數據幀從對應端口發送出去。交換機並不會對數據幀進行解封裝,只要知道 MAC 地址信息就可以正確地將數據轉發出去。

數據鏈路層處理流程

網絡層設備有路由器、三層交換機等。三層網絡設備只轉發數據,通過識別數據的 IP 地址進行轉發。路由器接收數據後,首先查看最外層封裝的以太網頭部信息,當目的 MAC 地址是自己時,就會將以太網頭部解封裝,查看數據的 IP 地址。根據 IP 路由表做出轉發決定時,路由器會把下一跳設備的 MAC 地址作爲以太網頭部的目的 MAC 地址,重新封裝以太網頭部並將數據轉發出去。

網絡層處理流程

轉發數據的網絡設備和應用層的數據,就像快遞員包裹一樣。快遞員根據目的地址運送包裹,不必瞭解包裹裏的具體內容。

通過分層功能來區分網絡設備已經不再適用,交換機集成三層路由功能就是三層交換機,無線 AP 集成路由器功能就是無線路由器。但是爲了方便說明,通常是介紹單個設備的功能和原理。

無線路由器


參考資料:

圖解 TCP/IP - 竹下隆史

網絡基礎 - 田果

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/ZxkaKO8h0AAB6zwvW8SmnQ