天天看點

36張圖詳解網絡基礎知識

36張圖詳解網絡基礎知識

前言

網絡協定

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

36張圖詳解網絡基礎知識

網絡協定示意圖

區域網路 :小範圍内的私有網絡,一個家庭内的網絡、一個公司内的網絡、一個校園内的網絡都屬于區域網路。

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

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

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

36張圖詳解網絡基礎知識

OSI 參考模型圖

OSI 參考模型

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

36張圖詳解網絡基礎知識

OSI 參考模型分層功能

應用層

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

36張圖詳解網絡基礎知識

應用層示例圖

表示層

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

36張圖詳解網絡基礎知識

表示層示例圖

會話層

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

36張圖詳解網絡基礎知識

會話層示例圖

傳輸層

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

36張圖詳解網絡基礎知識

傳輸層示例圖

網絡層

OSI參考模型的第 3 層。在網絡上将資料傳輸到目的位址,主要負責尋址和路由選擇。

36張圖詳解網絡基礎知識

網絡層示例圖

資料鍊路層

OSI參考模型的第 2 層。負責實體層面上兩個互連主機間的通信傳輸,将由 0 、 1 組成的比特流劃分成資料幀傳輸給對端,即資料幀的生成與接收。通信傳輸實際上是通過實體的傳輸媒體實作的。資料鍊路層的作用就是在這些通過傳輸媒體互連的裝置之間進行資料處理。

網絡層與資料鍊路層都是基于目标位址将資料發送給接收端的,但是網絡層負責将整個資料發送給最終目标位址, 而資料鍊路層則隻負責發送一個分段内的資料。

36張圖詳解網絡基礎知識

資料鍊路層示例圖

實體層

OSI參考模型的第 1 層(最底層)。負責邏輯信号(比特流)與實體信号(電信号、光信号)之間的互相轉換,通過傳輸媒體為資料鍊路層提供實體連接配接。

36張圖詳解網絡基礎知識

實體層示例圖

TCP/IP 參考模型

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

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

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

36張圖詳解網絡基礎知識

網絡接入層

TCP/IP 是以 OSI 參考模型的實體層和資料鍊路層的功能是透明的為前提制定的,并未對這兩層進行定義,是以可以把實體層和資料鍊路層合并稱為網絡接入層。網絡接入層是對網絡媒體的管理,定義如何使用網絡來傳送資料。但是在通信過程中這兩層起到的作用不一樣,是以也有把實體層和資料鍊路層分别稱為硬體、網絡接口層。TCP/IP 分為四層或者五層都可以,隻要能了解其中的原理即可。

裝置之間通過實體的傳輸媒體互連, 而互連的裝置之間使用 MAC 位址實作資料傳輸。采用 MAC 位址,目的是為了識别連接配接到同一個傳輸媒體上的裝置。

相當于 OSI 模型中的第 3 層網絡層,使用 IP 協定。IP 協定基于 IP 位址轉發分包資料,作用是将資料包從源位址發送到目的位址。

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

36張圖詳解網絡基礎知識

網絡傳輸中,每個節點會根據資料的位址資訊,來判斷該封包應該由哪個網卡發送出去。各個位址會參考一個發出接口清單, MAC 尋址中所參考的這張表叫做 MAC 位址轉發表,而 IP 尋址中所參考的叫做路由控制表。MAC 位址轉發表根據自學自動生成。路由控制表則根據路由協定自動生成。MAC 位址轉發表中所記錄的是實際的 MAC 位址本身,而路由表中記錄的 IP 位址則是集中了之後的網絡号(即網絡号與子網路遮罩)。

  • IP

    IP 是跨越網絡傳送資料包,使用 IP 位址作為主機的辨別,使整個網際網路都能收到資料的協定。IP 協定獨立于底層媒體,實作從源到目的的資料轉發。IP 協定不具有重發機制,屬于非可靠性傳輸協定。

  • ICMP

    用于在 IP 主機、路由器之間傳遞控制消息,用來診斷網絡的健康狀況。

  • ARP

    從資料包的 IP 位址中解析出 MAC 位址的一種協定。

相當于 OSI 模型中的第 4 層傳輸層,主要功能就是讓應用程式之間互相通信,通過端口号識别應用程式,使用的協定有面向連接配接的 TCP 協定和面向無連接配接的 UDP 協定。

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

面向無連接配接不要求建立和斷開連接配接。發送端可于任何時候自由發送資料。如同去寄信,不需要确認收件人資訊是否真實存在,也不需要确認收件人是否能收到信件,隻要有個寄件位址就可以寄信了。

36張圖詳解網絡基礎知識
  • TCP

    TCP 是一種面向有連接配接的傳輸層協定,能夠對自己提供的連接配接實施控制。适用于要求可靠傳輸的應用,例如檔案傳輸。

  • UDP

    UDP 是一種面向無連接配接的傳輸層協定,不會對自己提供的連接配接實施控制。适用于實時應用,例如:IP電話、視訊會議、直播等。

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

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

36張圖詳解網絡基礎知識
  • HTTP

    是 WWW 浏覽器和伺服器之間的應用層通信協定,所傳輸資料的主要格式是 HTML 。HTTP 定義進階指令或者方法供浏覽器用來與Web伺服器通信。

  • POP3

    簡單郵件傳輸協定,郵件用戶端和郵件伺服器使用。

  • TELNET 和 SSH

    遠端終端協定,用于遠端管理網絡裝置。TELNET 是明文傳輸, SSH 是加密傳輸。

  • SNMP

    簡單網絡管理協定,用于網管軟體進行網絡裝置的監控和管理。

封裝與解封裝

通常,為協定提供的資訊為標頭部,所要發送的内容為資料。每個分層中,都會對所發送的資料附加一個頭部,在這個頭部中包含了該層必要的資訊, 如發送的目标位址以及協定相關資訊。在下一層的角度看,從上一分層收到的包全部都被認為是本層的資料。

資料發送前,按照參考模型從上到下,在資料經過每一層時,添加協定封包頭部資訊,這個過程叫封裝。

36張圖詳解網絡基礎知識

封裝

資料接收後,按照參考模型從下到上,在資料經過每一層時,去掉協定頭部資訊,這個過程叫解封裝。

36張圖詳解網絡基礎知識

解封裝

經過傳輸層協定封裝後的資料稱為段,經過網絡層協定封裝後的資料稱為包,經過資料鍊路層協定封裝後的資料稱為幀,實體層傳輸的資料為比特。

TCP/IP 通信中使用 MAC 位址、 IP 位址、端口号等資訊作為位址辨別。甚至在應用層中,可以将電子郵件位址作為網絡通信的位址。

實際資料傳輸舉例

實際生活中,網際網路是使用的 TCP/IP 協定進行網絡連接配接的。我們以通路網站為例,看看網絡是如何進行通信的。

36張圖詳解網絡基礎知識

資料傳輸舉例

發送資料包

通路 HTTP 網站頁面時,打開浏覽器,輸入網址,敲下Enter鍵就開始進行 TCP/IP 通信了。

應用程式處理

36張圖詳解網絡基礎知識

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

TCP 子產品處理

36張圖詳解網絡基礎知識

TCP 會将應用層發來的資料順利的發送至目的地。實作可靠傳輸的功能,需要給資料封裝 TCP 頭部資訊。TCP 頭部資訊包括源端口号和目的端口号(識别主機上應用)、序号(确認哪部分是資料)以及校驗和(判斷資料是否被損壞)。随後封裝了 TCP 頭部資訊的段再發送給 IP 。

IP  子產品處理

36張圖詳解網絡基礎知識

IP 将 TCP 傳過來的資料段當做自己的資料,并封裝 IP 頭部資訊。IP 頭部資訊中包含目的 IP 位址和源 IP 位址,以及上層協定類型資訊。

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

網絡接口處理

36張圖詳解網絡基礎知識

網絡接口對傳過來的 IP 包封裝上以太網頭部資訊并進行發送處理。以太網頭部資訊包含目的 MAC 位址、源 MAC 位址,以及上層協定類型資訊。然後将以太網資料幀通過實體層傳輸給接收端。發送進行中的 FCS 由硬體計算, 添加到包的最後。設定 FCS 的目的是為了判斷資料包是否由于噪聲而被破壞。

接收資料包

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

收到以太網包後,首先檢視頭部資訊的目的 MAC 位址是否是發給自己的包。如果不是發送給自己的包就丢棄。如果是發送給自己的包,檢視上層協定類型是 IP 包,以太網幀解封裝成 IP 包,傳給 IP 子產品進行處理。如果是無法識别的協定類型,則丢棄資料。

36張圖詳解網絡基礎知識

網口處理流程

收到 IP 包後,進行類似處理。根據頭部資訊的目的 IP 位址判斷是否是發送給自己包,如果是發送給自己的包,則檢視上一層的協定類型。上一層協定是 TCP ,就把 IP 包解封裝發送給 TCP 協定處理。

36張圖詳解網絡基礎知識

IP子產品處理流程

假如有路由器,且接收端不是自己的位址,那麼根據路由控制表轉發資料。

36張圖詳解網絡基礎知識

路由器處理流程

收到 TCP 段後,首先檢視校驗和,判斷資料是否被破壞。然後檢查是否按照序号接收資料。最後檢查端口号,确定具體的應用程式。

36張圖詳解網絡基礎知識

TCP子產品處理流程

資料接收完畢後,發送一個 “ 确認回執 ” 給發送端。如果這個回執資訊未能達到發送端,那麼發送端會認為接收端沒有接收到資料而一直反複發送。

資料被完整接收後,會把 TCP 段解封裝發送給由端口号識别的應用程式。

應用程式收到資料後,通過解析資料内容獲知發送端請求的網頁内容,然後按照 HTTP 協定進行後續資料互動。

網絡構成

36張圖詳解網絡基礎知識

網絡構成要素

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

36張圖詳解網絡基礎知識

主要裝置及作用表

通信媒體與資料鍊路

裝置之間通過線纜進行連接配接。有線線纜有雙絞線、光纖、序列槽線等。根據資料鍊路不同選擇對應的線纜。傳輸媒體還可以被分為電波、微波等不同類型的電磁波。

傳輸速率:機關為 ​

​bps​

​ ,是指機關時間内傳輸的資料量有多少。又稱作帶寬,帶寬越大網絡傳輸能力就越強。

吞吐量:機關為 ​

​bps​

​ ,主機之間實際的傳輸速率。吞吐量這個詞不僅衡量帶寬, 同時也衡量主機的 CPU 處理能力、 網絡的擁堵程度、 封包中資料字段的占有份額等資訊。

網卡

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

36張圖詳解網絡基礎知識

二層交換機

36張圖詳解網絡基礎知識

二層交換機位于 OSI 模型的第 2 層(資料鍊路層)。它能夠識别資料鍊路層中的資料幀,并将幀轉發給相連的另一個資料鍊路。

資料幀中有一個資料位叫做 FCS ,用以校驗資料是否正确送達目的地。二層交換機通過檢查這個值,将損壞的資料丢棄。

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

路由器 / 三層交換機

36張圖詳解網絡基礎知識

路由器

路由器是在 OSI 模型的第 3 層(網絡層)上連接配接兩個網絡、并對封包進行轉發的裝置。二層交換機是根據 MAC 位址進行處理,而路由器 / 三層交換機則是根據 IP 位址進行處理的。是以 TCP/IP 中網絡層的位址就成為了 IP 位址。

路由器可以連接配接不同的資料鍊路。比如連接配接兩個以太網,或者連接配接一個以太網與一個無線網。家庭裡面常見的無線路由器也是路由器的一種。

四至七層交換機

36張圖詳解網絡基礎知識

負載均衡裝置

四至七層交換機負責處理 OSI 模型中從傳輸層至應用層的資料。以 TCP 等協定的傳輸層及其上面的應用層為基礎,分析收發資料,并對其進行特定的處理。例如,視訊網站的一台伺服器不能滿足通路需求,通過負載均衡裝置将通路分發到背景多個伺服器上,就是四至七層交換機的一種。還有帶寬控制、廣域網加速器、防火牆等應用場景。

總結

36張圖詳解網絡基礎知識

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

36張圖詳解網絡基礎知識

應用層處理流程

資料鍊路層裝置有二層交換機、網橋等。二層網絡裝置隻轉發資料,通過識别資料的 MAC 位址進行轉發。二層交換機接收資料後,對資料最外層封裝的以太網頭部資訊進行檢視,看到資料的目的 MAC 位址後,把資料幀從對應端口發送出去。交換機并不會對資料幀進行解封裝,隻要知道 MAC 位址資訊就可以正确地将資料轉發出去。

36張圖詳解網絡基礎知識

資料鍊路層處理流程

網絡層裝置有路由器、三層交換機等。三層網絡裝置隻轉發資料,通過識别資料的 IP 位址進行轉發。路由器接收資料後,首先檢視最外層封裝的以太網頭部資訊,當目的 MAC 位址是自己時,就會将以太網頭部解封裝,檢視資料的 IP 位址。根據 IP 路由表做出轉發決定時,路由器會把下一跳裝置的 MAC 位址作為以太網頭部的目的 MAC 位址,重新封裝以太網頭部并将資料轉發出去。

36張圖詳解網絡基礎知識

網絡層處理流程

轉發資料的網絡裝置和應用層的資料,就像快遞員和包裹一樣。快遞員根據目的位址運送包裹,不必了解包裹裡的具體内容。

通過分層功能來區分網絡裝置已經不再适用,交換機內建三層路由功能就是三層交換機,無線AP內建路由器功能就是無線路由器。但是為了友善說明,通常是介紹單個裝置的功能和原理。

36張圖詳解網絡基礎知識

無線路由器

參考資料:

圖解TCP/IP - 竹下隆史

網絡基礎 - 田果

end