@[toc](目錄
我們所熟知的網絡資訊傳輸其實是一個很複雜的過程。為了能在網絡發生故障時,我們能迅速的确認故障在哪個環節出了問題,這就需要将網絡進行分層,将原來複雜的問題分成若幹相對簡單的問題逐一解決問題對應的那一層。每一層實作一定的功能,互相協作即可實作資料通信這個複雜任務。就像一個公司做項目分成好幾個部門,一旦項目出錯,我們能迅速的了解到是哪一個部門出現了問題。
這種思想有助于将問題簡單化、清晰化。
2.1 概念:國際标準化組織(International Standard Organization,ISO)與1984年頒布了開放系統互聯(Open System Interconnection,OSI)參考模型。
OSI參考模型是一個開放式體系結構,它規定将網絡分為七層,應、表、會、傳、網、數、物。
2.2每一層對應的含義
實體層:
實體層的主要功能就是完成相鄰節點之間比特流的傳輸。簡單的來說,實體層就是一個建立、維護和斷開實體傳輸的層面。
封包頭部和上層資料資訊都是由二進制數組成的,實體層将這些二進制數字組成的比特流轉換成電信号在網絡中傳輸。
資料鍊路層:
資料鍊路層是一個建立邏輯連接配接、進行硬體位址(實體位址)尋址、差錯校驗等功能為一體的層面。
這一層使用的是實體位址尋址,也就是大家常見的MAC位址,在這一層使用的交換機,因為在第二層,是以也叫二層交換機。
在這一層,傳輸内容是處在同一個網段進行資料通信,識别的是MAC位址,而不識别IP位址。
将上層資料加上源和目的方的實體(MAC)位址封裝成資料幀,MAC位址是用來辨別網卡的實體位址,建立資料鍊路;當發現資料錯誤時,可以重傳資料幀。
網絡層
網絡層是用路由器進行邏輯位址尋址,實作不同網絡之間的路徑選擇
将上層資料加上源和目的方的邏輯(IP)位址封裝成資料包,實作資料從源端到目的端的傳輸
傳輸層:
傳輸層是一個定義傳輸資料的協定端口号,以及進行流控和差錯校驗的層面。
将上層資料分片并加上端口号封裝成資料段,或通過對封包頭中的端口識别,實作網絡中不同主機上的使用者程序之間的資料通信
會話層:
會話層是建立、管理和終止不同機器上的使用者之間會話的層面。
管理是否允許不同機器上的使用者之間建立會話連接配接關系
表示層:
表示層的主要作用就是資料的表示、安全和壓縮。
将接收到的資料翻譯成電腦看懂的二進制數組成的計算機語言,并對資料進行壓縮和解壓、資料加密和解密等工作
應用層:
應用層是網絡服務與最終使用者的一個接口。
人機互動視窗,把人類的語言輸入到計算機當中。例如,在QQ對話視窗輸入字元。
網絡層、資料鍊路層、實體層為“點對點通信”
傳輸層為“端對端通信”
如圖所示,TCP/IP模型有四層模型和五層模型,将OSI上三層合并為“應用層”與OSI模型互相對應
TCP/IP的協定簇組成:
應用層:HTTP、FTP、TFTP、SMTP、SNMP、DNS
傳輸層:TCP(先建立連接配接,如微信視訊)、UDP(隻管發出資料,如QQ)
網絡層:ICMP、IGMP、IP、ARP、RARP
資料鍊路層和實體層:由底層網絡定義的協定
IEEE802.3 有線區域網路(以太網)标準
IEEE802.11 無線區域網路标準
相關協定介紹:
網絡層協定:
ICMP:網際控制封包協定。主要功能是用來網絡通信檢測和資訊回報。
IGMP:國際組管理協定,主要功能是多點傳播。
ARP:位址解析協定。主要用于傳輸資料時,已知目标IP,但是目标MAC未知的情況。
RARP:逆位址解析協定。主要用于傳輸資料時,已知目标MAC,但是目标IP未知的情況。
TCP:傳輸控制協定。TCP協定的傳輸安全和可靠性較高,但是相對時延較多。
UDP:使用者資料報協定。UDP協定的傳輸效率較高,相對的時延較少。
HTTP(超文本傳輸協定):用于浏覽器和Web伺服器之間的請求和響應的互動
FTP(檔案傳輸協定):用于控制連接配接FTP伺服器
DNS(域名系統):用于連接配接DNS伺服器
IP(網際協定)協定及其功能:
ARP(位址解析協定) : 用于在區域網路中根據IP位址擷取實體位址
RARP(逆位址解析協定) 用:于在區域網路中通過ARP表根據實體位址請求IP位址
ICMP(網際控制封包協定) :用于驗證網絡是否暢通
IGMP(網際組管理協定) : 用于主機與多點傳播路由器之間多點傳播通信
如圖:
在應用層,資料被翻譯為網絡世界使用的語言——二進制編碼資料。
上層資料進入傳輸層被分割成小的資料段,并為每個分段後的資料封裝TCP封包頭部,這層的資料成為資料段,TCP封包頭部包括源端口和目的端口,
進入網絡層,上層資料被封裝上新的封包頭部——IP頭部,這層資料被稱為資料包,IP封包頭部包括源IP位址和目标IP位址
進入資料鍊路層,上層資料被封裝一個MAC頭部,這層資料被稱為資料幀,MAC頭部包括源MAC位址和目标MAC位址,
最後上層資料進入實體層,轉化為比特流,在實體層,将這些二進制數字組成的比特流轉換為電信号在網絡中傳輸
解封裝就是封裝過程的逆過程
在實體層,先将電信号轉化為二進制資料,将資料送至資料鍊路層。
在資料鍊路層,将檢視目标MAC位址,如資料封包的目标MAC位址就是自己的MAC位址,資料的MAC位址将被拆掉,并将剩餘資料送往上一層;若目标MAC位址不是自己的MAC位址,終端裝置将會丢棄資料。
資料進入網絡層,目标IP位址将被核實是否與自己IP位址相同,相同則送往上一層。
到達傳輸層,要根據TCP頭部(端口号)判斷資料段送往哪個應用層協定或應用程式,然後将之前被分組的資料段重組,将TCP頭部脫掉,再送往應用層
在應用層,這些二進制資料将經曆複雜的解碼過程,以還原發送者所傳輸的最原始的資訊
5.1:關于PDU
對于OSI參考模型而言,每一層都是通過PDU(Protocol Data Unit,協定資料單元)來進行通信的;而對于TCP/IP五層結構,也可以沿用這個概念。
5.2:裝置與層的對應關系
5.3各層間完整通信
如下圖所示,資料在傳輸過程中不斷地進行着封裝和解封裝的過程,中間裝置屬于哪一層就在哪一層對資料進行相關的處理,以實作裝置的主要功能。也正因如此,我們稱 TCP/IP 五層模型為“參考”模型,參考這五層模型可以幫助我們很好地研究網絡中的裝置及裝置工作過程中遵守的協定。具體的封裝與解封裝參照上文,這裡就不在解說了。
我們對現實世界的認識往往隻是冰山一角,大部分的“真相”都掩藏在海平面以下,網絡世界更是如此,要想成為一名網絡技術人員,就必須要熟知網絡資訊的傳輸過程,這樣才能分析排查網絡的常見故障。