亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

網絡參考模型及協議族介紹

1. 前言

對于現代人來說,大家對計算機網絡、Internet、因特網這些術語都很熟悉。計算機網絡就是由能夠相互通信的終端和其他通信子網中的通信設備連接在一起,而組成的計算機系統。通常把網絡中的設備叫做節點,包括:PC、打印機、手機,路由器、交換機、網關等。在網絡發展的早期,計算機網絡僅僅是由科研院所、大學等研究機構的計算機組成。今天看來,組成計算機網絡的終端系統不僅僅是計算機了,還包括手機、汽車、家用電器、攝像頭等很多類型的終端。Internet 是指世界范圍內的計算機網絡互連在一起形成的系統,中文叫做互聯網。

隨著技術的發展,計算機網絡的信號傳輸方式也在不斷的變化,從同軸電纜到光纖,從有線到無線。通常來講,計算機網絡是通過有線連接或者無線連接進行信號傳輸的。在短距離傳輸信號通常是通過有線或者無線傳輸,比如通過雙絞線線或者 WIFI 傳輸。在長距離傳輸信號是通過光纖傳輸。

計算機網絡各節點之間的通信就是進行數據包的傳輸,然而計算機不像人可以獨立思考,需要程序員為它們設計一組通信協議,它們彼此才能正常收發數據包。所以學習計算機網絡,一定是離不開學習各種通信協議的。那么什么是協議呢?

2. 什么是協議

我們知道人類是通過語言進行溝通的。比如,帥哥 A 說:“慕課網的課程都很棒!”。而美女 B 是 imooc 迷,隨聲附和道:“嗯,確實!”。然而美女 C 完全不了解 imooc, 她可能默不作聲,或者反問:“慕課網是什么?”。這意味著,人們的溝通是基于一定的前提假設的,是基于一些大家都能理解的、約定俗成的規定的。我們把這些約定或者規則叫做協議(Protocol)

兩臺計算機之間的通信也是模擬人類交流的,通信之前也需要有一些約定,也就是說要提前設計好協議。

計算機網絡協議的規模非常龐大,數據包的收發過程也非常復雜。為了使計算機網絡容易理解、傳播和實現,科學家們對網絡進行了分層設計,并對其進行了標準化,最終形成了經典的 ISO/OSI 參考模型TCP/IP 參考模型

3. ISO/OSI 七層模型和 TCP/IP 四層模型

網絡分層的主要是采取分治策略,使得復雜問題簡單化,網絡模塊組件化。每一層都有自己的職責,每一層對上一層提供服務,這樣實現了職責單一,進而提高了組件的復用性。。在網絡標準化過程中,國際標準化組織(ISO)把計算機網絡分為 7 層,叫做開放系統互聯模型(OSI)。同時,TCP/IP 四層模型正處于開發階段。最終,OSI 模型和 TCP/IP 模型有一些差異,對比圖如下:

圖片描述

從圖中可以看出,ISO/OSI 七層模型和 TCP/IP 四層模型之間存在兩個差異:

  • TCP/IP 參四層模型沒有表示層會話層。那么,TCP/IP 參考模型不需要表示層會話層嗎?答案是:“如果需要這兩層,就由應用程序員來實現”。經過這么多年發展來看,需要表示層和會話層的場景并不多。
  • TCP/IP 模型好像沒有鏈路層,其實在網絡協議實現過程中,鏈路層包含了網卡驅動部分和物理介質部分,所以通常把二者統一叫做鏈路層

各層具體功能解釋如下:

  • 應用層(Application Layer) 是由應用程序自定義的協議格式。不同的領域,對網絡應用程序的需求是不同的,必須給用戶自定義協議格式的權利。最廣泛的應用層協議應該是 HTTP 了吧,幾乎每個人都在用。

  • 表示層(Presentation)主要是定義數據格式。比如,加密和解密、壓縮和解壓縮。在 TCP/IP 模型中,表示層協議包含在應用層里。比如 SSL/TLS 協議。

  • 會話層(Session Layer)用于在兩個通信實體之間建立會話、維護會話、終止會話。設置檢查點,當系統出現崩潰拉起后,通過尋找檢查點恢復運行。在 TCP/IP 模型中,會話層協議包含在應用層里。比如 NetBIOS 協議。

  • 傳輸層(Transport Layer) 是在兩個通信主機之間進行報文傳送。在 TCP/IP 模型中最重要的兩個傳輸協議就是 TCP 和 UDP,前者是可靠的、面向字節流的傳輸;后者是不可靠的、面向數據報(Datagram)的傳輸。

提示:
通常把 TCP 傳輸的報文稱作報文段(Segment)。
通常把 UDP 傳輸的報文稱作消息(Message)或者是數據報(Datagram)。

  • 網絡層(Network Layer)是將 IP 分組從源端路由到目的端。網絡層是為傳輸層服務的,在發送端的網絡層收到傳輸層的數據后,必要時會對數據切片以后再封包發送。實現網絡層協議是路由器的主要職責,是構建通信子網的基礎。比如, RIP、OSPF 就是最基礎的路由協議。路由器是通過 IP 分組的目的 IP 地址查找本地路由表,尋找轉發的目標端。所以路由器的主要工作就是路由選擇轉發,IP 分組是逐跳(hop)轉發的。

提示:
通常把網絡層傳輸的報文叫做 IP 分組(Packet)。

  • 鏈路層(Data Link Layer)是為網絡層服務的。發送的時候將網絡層的數據分片,封裝成幀(Frame),然后順序發送。與網絡層實現端到端的路由不同,鏈路層是實現節點之間的數據傳送。常用的鏈路層協議就是以太網(Ethernet)協議。

提示:
通常把鏈路層傳輸的報文叫做幀(Frame)。

  • 物理層(Physical Layer)是描述如何在物理介質中傳輸 bit 位。比如,用多少伏電壓表示“1”,用多少伏電壓表示“0”等。

我們把分層的網絡參考模型叫做協議棧(Protocol Stack)。目前所有網絡協議棧的實現都采用了 TCP/IP 參考模型。協議棧的實現是包含在操作系統內核中的,比如 Windows 和 Unix-like 系統。

4. TCP/IP 協議族

TCP/IP 協議族包含了很多協議,一些比較重要的、常用的協議展現如下:

圖片描述

依據 TCP/IP 參考模型,我們把協議棧從上到下分為 4 層,每一層都有相應的協議。

  1. 應用層
  • HTTP(Hypertext Transfer Protocol)超文本傳輸協議,只要你瀏覽頁面就會用到此協議。

  • SMTP(Simple Mail Transfer Protocol)簡單郵件傳輸協議,用于電子郵件傳輸。

  • FTP(File Transfer Protocol)文件傳輸協議,用于文件的上傳和下載。現在 FTP 貌似用的不多了,早期主要是在公司內部、大學等研究機構用的比較多。

  • RTMP(Real-Time Messaging Protocol)實時消息協議,用于實時流媒體傳輸,主要用在音視頻直播領域,屬于 Adobe 公司出品。不過,從 2020 年開始,Adobe 就不再支持 RTMP 協議了。

  • SNMP(Simple Network Management Protocol)簡單網絡管理協議,用于電信網絡設備的管理。比如,監控設備告警,對設備進行業務配置等。主要是在思科、華為等電信網絡設備上用的比較多。
    其實,應用層除了以上諸多知名協議外,也可以是用戶自定義協議。

  1. 傳輸層
  • TCP(Transmission Control Protocol)傳輸控制協議,是面向連接的、可靠的、面向字節流的傳輸協議。TCP 應用非常廣泛,是端到端傳輸的基石。

  • UDP(User Datagram Protocol)用戶數據報協議,是無連接的、不可靠的、面向消息的傳輸協議。UDP 實時性好,效率高,在音視頻傳輸中有著廣泛的應用。

  1. 網絡層
  • IPv4 (Internet Protocol version 4)此協議主要是用于 IP 分組的路由轉發,是路由器主要實現的協議。我們經常說的 IP 地址是指 IPv4 地址,用 32 bit 來表示。

  • IPv6 (Internet Protocol version 6)此協議工作原理類似 IPv4。之所以設計 IPv6 的目的是因為上世紀 90 年代中期,因特網爆炸式的增長,32 位 IPv4 地址不夠用了,為此才設計了 128 位的 IPv6 地址。

  • ICMP(Internet Control Message Protocol)因特網控制消息協議,主要是用于顯示網絡錯誤。比如,我們用 ping 的時候,有時會顯示“網絡不可達”的錯誤。

  • ICMPv6 (Internet Control Message Protocol Version 6)整合了 ICMP 協議,針對 IPv6 開發的協議。

  • IGMP(Internet Group Management Protocol)因特網組管理協議,主要是用于 IP Multicast 的場景,比如觀看 IP 電視節目。

  1. 鏈路層
  • ARP(Address Resolution Protocol)地址解析協議,主要是用于生成 IP 地址和物理地址(比如以太網 MAC 地址)的映射表,用于數據包的快速轉發。

  • RARP(Reverse Address Resolution Protocol)反向地址解析協議,主要是用于生成物理地址和 IP 地址的映射。

以上這些協議屬于計算機網絡的基礎協議,需要很好的掌握其工作原理。

5. 小結

本文開篇簡單介紹了網絡的基本概念,重點介紹了 ISO/OSI 參考模型TCP/IP 參考模型的結構,各層的基本功能,以及二者的對比。其實,ISO/OSI 參考模型只是一個用于教學的理想模型,并沒有產品實現。而目前的網絡協議棧都是采用 TCP/IP 參考模型。

關于 TCP/IP 參考模型中的協議有很多,我們重點介紹了常用的幾個協議,這些協議是日常工作中必不可少的,需要重點掌握。尤其是以太網數據幀節點轉發原理,IP 分組的存儲轉發原理,可靠性 TCP 的工作原理和不可靠性 UDP 的工作原理,建議重點學習。