【網安干貨】--計算機網絡知識梳理總結(二)

這是計算機網絡知識梳理的第二篇,真正去梳理才發現內容好多好多好多好多好多啊…怕是預計要寫四篇

在這里插入圖片描述
注意:如果看不清可以右鍵復制圖片鏈接到瀏覽器訪問或另存為照片并放大查看

計算機網絡

  • 2 計算機網絡協議
    • 2.1 網絡協議的定義與核心要素
      • 2.1.1 協議的定義
      • 2.1.2 協議的三要素(語義、語法、時序)
      • 2.1.3 協議的現實類比
    • 2.2 網絡體系結構(協議的分層模型)
      • 2.2.1 三種體系結構的對比
      • 2.2.2 分層設計的核心優勢
      • 2.2.3 各層核心功能
        • 2.2.3.1 物理層(最底層,負責物理信號傳輸)
        • 2.2.3.2 數據鏈路層(物理層之上,負責數據幀傳輸)
        • 2.2.3.3 網絡層(數據鏈路層之上,負責跨網絡數據傳輸)
        • 2.2.3.4 傳輸層(網絡層之上,負責端到端可靠傳輸)
        • 2.2.3.5 應用層(最頂層,直接面向用戶應用)
    • 2.3 數據傳輸的封裝與解封裝過程
      • 2.3.1 發送方封裝過程(自上而下)
      • 2.3.2 接收方解封裝過程(自下而上)
      • 2.3.3 關鍵特點
    • 2.4 TCP與UDP協議深度對比(傳輸層核心協議)
      • 2.4.1 TCP協議核心機制(保障可靠性的關鍵)
      • 2.4.2 UDP協議核心特點(適配實時性的關鍵)
      • 2.4.3 典型應用場景對比
    • 2.5 高層協議(會話層、表示層、應用層)
      • 2.5.1 會話層(Session Layer)
      • 2.5.2 表示層(Presentation Layer)
      • 2.5.3 應用層(Application Layer)
    • 2.6 網絡協議的協作邏輯(以網頁瀏覽為例)
      • 2.6.1 步驟1:應用層(HTTP協議)與DNS協議協作——獲取目標IP地址
      • 2.6.2 步驟2:傳輸層(TCP協議)——建立端到端可靠連接
      • 2.6.3 步驟3:網絡層(IP協議)——實現跨網絡路由轉發
      • 2.6.4 步驟4:數據鏈路層(以太網協議)與物理層——實現相鄰節點數據傳輸
      • 2.6.5 步驟5:百度服務器端解封裝與響應——從物理層到應用層
      • 2.6.6 步驟6:客戶端接收響應與頁面渲染
      • 2.6.7 核心結論

2 計算機網絡協議

2.1 網絡協議的定義與核心要素

網絡協議是計算機網絡的“通信規則”,是實現不同設備、不同廠商系統之間互聯互通的基礎,其定義和核心要素可從“功能本質”“三要素構成”“現實類比”三個維度理解:

2.1.1 協議的定義

網絡協議是為計算機網絡中“數據交換”而建立的規則、標準或約定的集合。當多臺計算機連接到同一網絡并進行通信時,必須遵守統一的協議——如同道路上行駛的汽車需遵守交通規則(靠右行駛、紅燈停綠燈行),否則會導致交通混亂;網絡中若設備不遵守協議,數據將無法正確傳輸(如A設備按TCP協議封裝數據,B設備按UDP協議解析,會導致數據無法識別)。

協議的核心作用是“統一數據傳輸的格式、速率、步驟”:

  • 傳輸格式:規定數據的封裝結構(如TCP報文包含源端口、目標端口、序列號等字段),確保接收方可正確解析數據。
  • 傳輸速率:約定數據發送的速率上限(如避免某一設備占用全部帶寬導致其他設備斷連),通過流量控制機制(如TCP的滑動窗口)調節速率。
  • 傳輸步驟:定義通信的流程(如TCP通過三次握手建立連接、四次揮手終止連接),確保通信雙方同步狀態(如發送方確認接收方準備就緒后再發送數據)。

2.1.2 協議的三要素(語義、語法、時序)

協議的三要素是構成協議的“基本單元”,三者缺一不可,共同確保協議的可執行性和有效性:

  1. 語義(Semantics):“要做什么”——定義協議中各字段、指令的含義和作用,即數據傳輸過程中“需要完成的操作”。
    • 示例:TCP協議中,SYN(同步)字段表示“請求建立連接”,ACK(確認)字段表示“確認收到數據”,FIN(終止)字段表示“請求釋放連接”;接收方看到SYN=1的報文,就知道發送方需要建立連接,需回復確認報文。
    • 核心作用:明確“操作意圖”,避免接收方誤解發送方的指令(如SYN字段若無明確語義,接收方無法判斷是建立連接還是釋放連接)。
  2. 語法(Syntax):“要怎么做”——定義數據的結構格式和編碼規則,即“數據如何封裝和傳輸”。
    • 示例:TCP報文的語法規定“首部前20字節為固定字段(包含源端口、目標端口、序列號等),后續為可選字段和數據字段”,且每個字段的長度固定(如源端口和目標端口各占16位);發送方需按此格式封裝數據,接收方按相同格式解析,才能提取有效信息。
    • 核心作用:統一“數據形態”,確保不同設備(如Windows電腦和Linux服務器)對數據的封裝和解析方式一致。
  3. 時序(Timing):“做的順序”——定義數據傳輸的先后順序和時間間隔,即“何時發送數據、何時接收確認”。
    • 示例:TCP三次握手中,時序規定“客戶端先發送SYN報文,服務器收到后回復SYN+ACK報文,客戶端收到后再發送ACK報文”,且每一步需在規定時間內完成(如服務器若10秒內未收到客戶端的ACK,會重新發送SYN+ACK報文);若時序混亂(如服務器先發送SYN報文),連接將無法建立。
    • 核心作用:協調“通信節奏”,避免數據發送與接收不同步(如發送方連續發送數據,接收方未準備好導致數據丟失)。

2.1.3 協議的現實類比

為更直觀理解協議,可將其類比為“人類對話的語言規則”:

  • 語義:對應“語言的含義”,如中文中“你好”表示問候,“再見”表示告別,雙方需理解詞語的含義才能正常交流。
  • 語法:對應“語言的語法規則”,如中文需遵循“主語+謂語+賓語”的語序(如“我吃飯”而非“飯吃我”),雙方需按相同語法組織句子,否則無法理解。
  • 時序:對應“對話的順序”,如通常是一方先問候(“你好”),另一方再回應(“你好,有什么事?”),而非雙方同時開口或無順序交流,確保對話有序進行。
  • 結論:如同人類需使用統一語言規則才能交流,計算機需使用統一網絡協議才能通信,協議的三要素分別對應“語言含義”“語法規則”“對話順序”,共同保障通信的有效性。

2.2 網絡體系結構(協議的分層模型)

由于網絡協議的功能復雜(需處理物理信號、數據封裝、路由選擇、應用交互等),直接設計單一協議難以實現和維護,因此采用“分層設計”思路,將協議按功能劃分為不同層次,形成網絡體系結構。常見的體系結構包括OSI七層模型、TCP/IP五層模型、TCP/IP四層模型,其中TCP/IP模型是互聯網的事實標準。

2.2.1 三種體系結構的對比

三種模型的核心區別在于“分層粒度”不同,OSI模型分層最細(七層),TCP/IP四層模型分層最粗(四層),TCP/IP五層模型是二者的折中,具體對應關系如下表:

OSI七層模型TCP/IP五層模型TCP/IP四層模型核心功能概述
應用層(Application)應用層應用層為應用程序提供網絡服務(如HTTP用于網頁瀏覽、SMTP用于電子郵件)
表示層(Presentation)應用層應用層處理數據格式轉換、加密/解密(如將JPG圖片格式轉換為二進制數據、SSL/TLS加密)
會話層(Session)應用層應用層建立、管理和維護應用程序間的會話(如驗證用戶登錄、斷開無效會話)
傳輸層(Transport)傳輸層傳輸層提供端到端的可靠或不可靠傳輸(如TCP保障可靠傳輸、UDP提供不可靠傳輸)
網絡層(Network)網絡層網絡層實現IP地址封裝、路由選擇(如路由器根據IP地址轉發數據包)
數據鏈路層(Data Link)數據鏈路層網絡接口層處理MAC地址封裝、數據幀傳輸(如交換機根據MAC地址轉發數據幀)
物理層(Physical)物理層網絡接口層傳輸物理信號(如將二進制數據轉換為電信號/光信號,通過線纜傳輸)

在這里插入圖片描述

  • 補充:OSI模型是國際標準化組織(ISO)制定的理論模型,旨在實現“全球網絡完全互連”,但因分層過細、實現復雜,未被廣泛應用;TCP/IP模型是美國國防部為ARPANET設計的實用模型,因簡潔、高效,逐步成為互聯網的事實標準,目前互聯網中的協議(如TCP、IP、HTTP)均基于TCP/IP模型設計。
  • 每層運行常見物理設備
    在這里插入圖片描述

2.2.2 分層設計的核心優勢

分層設計是網絡體系結構的“靈魂”,其核心優勢在于“模塊化、可復用、易維護”,具體體現在以下三點:

  1. 模塊化設計,降低復雜度:將協議功能按層次拆分,每層只需關注自身功能(如物理層僅處理物理信號,無需關注應用層的網頁數據),無需考慮其他層次的實現細節,降低了單個協議的設計和實現難度。例如,開發HTTP協議(應用層)時,只需關注如何與傳輸層(TCP)交互,無需關心數據如何通過物理層(光纖)傳輸。
  2. 層間獨立,便于更新:各層之間通過“接口”交互(如傳輸層通過端口號與應用層交互,網絡層通過IP地址與傳輸層交互),若某一層的技術更新(如物理層從雙絞線升級為光纖),只需修改該層的實現,其他層次無需變動。例如,將局域網的傳輸介質從雙絞線(物理層)改為光纖,應用層的HTTP協議、傳輸層的TCP協議無需任何修改,仍可正常工作。
  3. 標準化接口,促進兼容:分層模型定義了層間的標準接口(如數據鏈路層向網絡層提供“幀傳輸”接口),不同廠商的設備只需遵循接口標準,即可實現互聯互通。例如,華為的交換機(數據鏈路層)和思科的路由器(網絡層),因均遵循TCP/IP模型的接口標準,可正常連接并轉發數據,無需擔心廠商差異。

2.2.3 各層核心功能

結合TCP/IP五層模型(兼顧理論完整性與實際應用),從底層到頂層依次闡述各層的核心功能、典型協議及代表設備,明確層間數據傳輸的協作邏輯:

2.2.3.1 物理層(最底層,負責物理信號傳輸)
  • 核心功能:定義物理介質(如雙絞線、光纖)的電氣特性、機械特性、功能特性和過程特性,實現“二進制數據”與“物理信號”的轉換(如將0/1二進制數據轉換為電信號、光信號或電磁波),并通過物理介質傳輸信號。
    • 電氣特性:規定信號的電壓范圍(如雙絞線傳輸的以太網信號,高電平表示1,低電平表示0,電壓范圍±5V)、傳輸速率(如100Mbps以太網的信號傳輸速率為100兆比特/秒)。
    • 機械特性:規定物理接口的形狀、引腳數量和排列(如RJ-45接口有8個引腳,雙絞線的線序需按T568A/T568B標準連接)。
    • 功能特性:規定每個引腳的功能(如RJ-45接口的1、2引腳用于發送信號,3、6引腳用于接收信號)。
    • 過程特性:規定信號傳輸的流程(如發送方先檢測線路是否空閑,再發送信號,接收方收到信號后反饋確認)。
  • 典型規范/協議:EIA/TIA RS-232(早期串口通信標準)、EIA/TIA RS-449(高速串口通信標準)、V.35(廣域網專線接口標準)、RJ-45(以太網雙絞線接口標準)。
  • 代表設備:中繼器(放大衰減的物理信號,延長傳輸距離,如將雙絞線的100米傳輸距離延長到200米)、集線器(將多個節點連接到同一物理總線,僅簡單轉發物理信號,無數據過濾功能)。
  • 數據單位:比特(Bit,0或1),是網絡中最小的數據單位。
  • 補充:物理層不處理數據的邏輯意義(如數據是文字還是圖片),僅負責“信號的發送與接收”,是網絡通信的“物理基礎”,若物理層故障(如網線斷裂、接口松動),整個網絡通信將中斷。
2.2.3.2 數據鏈路層(物理層之上,負責數據幀傳輸)
  • 核心功能:將物理層傳輸的“比特流”封裝為“數據幀”(添加幀頭和幀尾,包含源MAC地址、目標MAC地址、幀校驗字段),實現“相鄰節點”(如同一局域網內的兩臺電腦)之間的可靠數據傳輸,同時處理幀的差錯檢測、重傳和流量控制。
    • MAC地址封裝:為數據幀添加源MAC地址(發送節點的網卡物理地址,如00-0C-29-5A-14-92)和目標MAC地址(接收節點的網卡物理地址),確保數據幀能準確送達相鄰節點。
    • 差錯檢測:通過幀尾的CRC(循環冗余校驗)字段,檢測數據幀在傳輸過程中是否因干擾導致錯誤,若檢測到錯誤則丟棄幀并請求重傳。
    • 流量控制:避免發送方發送速率過快導致接收方無法及時處理,通過“滑動窗口”等機制調節發送速率(如接收方告知發送方“當前可接收10個幀”,發送方僅發送10個幀后等待確認)。
  • 典型協議:PPP(點對點協議,用于撥號上網或專線連接,如ADSL寬帶的用戶端與運營商端通信)、以太網協議(IEEE 802.3,局域網主流協議,如家庭和企業局域網的數據傳輸)。
  • 代表設備:網卡(內置MAC地址,實現數據幀的封裝與解封裝,是主機接入數據鏈路層的接口)、網橋(連接兩個相同類型的局域網,根據MAC地址轉發數據幀,隔離不同局域網的廣播風暴)、二層交換機(多端口網橋,根據MAC地址表轉發數據幀,實現同一局域網內多節點的高速通信)。
  • 數據單位:幀(Frame),由幀頭(MAC地址、幀類型)、數據(來自網絡層的IP數據報)、幀尾(CRC校驗)組成。
  • 補充:數據鏈路層的“相鄰節點”指直接通過物理鏈路連接的節點(如同一交換機下的兩臺電腦),若需與非相鄰節點通信(如不同局域網的電腦),需依賴網絡層的路由功能。
2.2.3.3 網絡層(數據鏈路層之上,負責跨網絡數據傳輸)
  • 核心功能:實現“跨網絡”的數據包傳輸,核心是“IP地址封裝”和“路由選擇”——將傳輸層的分段數據封裝為IP數據報(添加IP頭,包含源IP地址、目標IP地址),并通過路由器選擇從源網絡到目標網絡的最優傳輸路徑,同時處理數據包的分片與重組(當數據包超過物理鏈路的MTU值時,拆分為小分片傳輸,到達目標后重組)。
    • IP地址封裝:為數據報添加源IP地址(發送主機的邏輯地址,如192.168.1.10)和目標IP地址(接收主機的邏輯地址,如192.168.2.20),標識數據包的源和目的地,區別于數據鏈路層的MAC地址(僅標識相鄰節點)。
    • 路由選擇:路由器通過路由表(記錄不同網絡的可達路徑),為每個IP數據報選擇最優路徑(如從192.168.1.0/24網絡到192.168.2.0/24網絡,選擇“路由器A→路由器B”的路徑),確保數據包能跨多個網絡到達目標。
    • 分片與重組:不同物理鏈路的MTU(最大傳輸單元,即數據幀的最大數據部分長度)不同(如以太網MTU為1500字節,PPP鏈路MTU為1492字節),若IP數據報超過MTU,網絡層將其拆分為多個分片(每個分片不超過MTU),目標主機的網絡層再將分片重組為完整數據報。
  • 典型協議:IP(互聯網協議,核心協議,負責IP地址封裝和路由轉發,分為IPv4和IPv6)、IPX(互聯網分組交換協議,早期Novell網絡使用)、RIP(路由信息協議,基于距離矢量算法的內部網關協議)、OSPF(開放最短路徑優先協議,基于鏈路狀態算法的內部網關協議,路由選擇更優)。
  • 代表設備:路由器(核心設備,根據IP地址和路由表轉發IP數據報,實現不同網絡的互連)、三層交換機(兼具二層交換機的MAC地址轉發功能和路由器的IP路由功能,適合企業局域網的分層互聯)。
  • 數據單位:數據報(Datagram,IPv4中稱為IP數據報,IPv6中稱為IPv6報文),由IP頭(IP地址、TTL、協議類型等)和數據(來自傳輸層的TCP/UDP報文段)組成。
  • 補充:網絡層解決“數據包到哪個網絡”的問題,數據鏈路層解決“數據包到哪個相鄰節點”的問題,二者協同實現跨網絡通信(如從北京的電腦發送數據到上海的電腦,網絡層選擇跨城市的路由路徑,數據鏈路層在每個路由節點間傳輸數據幀)。
2.2.3.4 傳輸層(網絡層之上,負責端到端可靠傳輸)
  • 核心功能:為應用層提供“端到端”(從源主機的應用程序到目標主機的應用程序)的通信服務,核心是“端口號標識”和“傳輸可靠性保障”——通過端口號(如HTTP的80端口、HTTPS的443端口)區分同一主機上的不同應用程序,同時提供可靠傳輸(TCP)或不可靠傳輸(UDP)選項,滿足不同應用的需求。

    • 端口號標識:每個應用程序對應一個或多個端口號(范圍0-65535,其中0-1023為知名端口,如80端口對應HTTP協議),傳輸層通過“源IP+源端口+目標IP+目標端口”的四元組,唯一標識一個端到端的通信連接(如192.168.1.10:12345與192.168.2.20:80的連接,對應客戶端12345端口與服務器80端口的HTTP通信)。
    • 可靠傳輸(TCP):通過三次握手建立連接、四次揮手釋放連接、序列號與確認號(確保數據按序傳輸)、滑動窗口(流量控制)、重傳機制(丟失數據重傳)、擁塞控制(避免網絡擁堵),確保數據無丟失、無重復、按序到達。
    • 不可靠傳輸(UDP):無需建立連接,直接發送數據,無確認、重傳機制,僅通過校驗和檢測數據錯誤(錯誤則丟棄),傳輸速率快、開銷小,適合對實時性要求高但可容忍少量數據丟失的場景。
  • 典型協議:TCP(傳輸控制協議,面向連接、可靠傳輸):在這里插入圖片描述
    、UDP(用戶數據包協議,面向無連接、不可靠傳輸):在這里插入圖片描述

  • 代表設備:四層交換機(根據TCP/UDP端口號轉發數據,支持端口級的流量控制和負載均衡,如將多個HTTP請求(80端口)分配到不同的Web服務器)、四層路由器(具備傳輸層端口識別功能,可實現端口級的訪問控制,如禁止外部訪問內部的22端口(SSH))。

  • 數據單位:TCP中為報文段(Segment),UDP中為數據報(Datagram),均由首部(源端口、目標端口、序列號/長度、校驗和等)和數據(來自應用層的應用數據)組成。

  • 補充:傳輸層是“端到端通信的核心”,網絡層僅負責“跨網絡傳輸數據包”,不關心數據是否可靠到達;而傳輸層直接與應用層交互,通過可靠/不可靠傳輸機制,為應用程序提供符合需求的通信服務(如網頁瀏覽需可靠傳輸,選擇TCP;視頻通話需實時性,選擇UDP)。
    在這里插入圖片描述

2.2.3.5 應用層(最頂層,直接面向用戶應用)
  • 核心功能:為操作系統或網絡應用程序提供“訪問網絡服務的接口”,將用戶的應用需求(如瀏覽網頁、發送郵件、傳輸文件)轉換為網絡可傳輸的數據,同時解析接收方的網絡數據為用戶可理解的信息,是網絡與用戶交互的“窗口”。
    • 服務接口:為應用程序提供標準化的API(應用程序編程接口),如HTTP協議為瀏覽器提供“請求網頁數據”的接口,SMTP協議為郵件客戶端提供“發送郵件”的接口。
    • 數據格式處理:將應用數據轉換為網絡傳輸格式(如將網頁的HTML文本轉換為二進制數據),接收時將網絡數據轉換為應用格式(如將二進制數據解析為HTML文本并在瀏覽器中顯示)。
    • 會話管理:部分應用層協議包含會話管理功能(如HTTP的Cookie機制,記錄用戶登錄狀態;FTP的主動/被動模式,建立數據傳輸會話),確保應用交互的連續性。
  • 典型協議
    • 網頁瀏覽:HTTP(超文本傳輸協議,非加密,端口80)、HTTPS(安全超文本傳輸協議,基于SSL/TLS加密,端口443)。
    • 電子郵件:SMTP(簡單郵件傳輸協議,用于發送郵件,端口25)、POP3(郵局協議版本3,用于接收郵件,端口110)、IMAP(互聯網郵件訪問協議,用于接收郵件,支持郵件在服務器端管理,端口143)。
    • 文件傳輸:FTP(文件傳輸協議,非加密,端口21控制連接、20數據連接)、SFTP(安全文件傳輸協議,基于SSH加密,端口22)。
    • 遠程登錄:SSH(安全外殼協議,加密遠程登錄,端口22)、Telnet(遠程登錄協議,非加密,端口23,安全性低,已逐步被SSH替代)。
    • 域名解析:DNS(域名系統,將域名(如www.baidu.com)轉換為IP地址,端口53)。
  • 代表設備/軟件:應用層無專用硬件設備,核心是應用程序軟件,如瀏覽器(Chrome、Edge,基于HTTP/HTTPS協議)、郵件客戶端(Outlook、Foxmail,基于SMTP/POP3/IMAP協議)、FTP客戶端(FileZilla,基于FTP/SFTP協議)、SSH客戶端(PuTTY,基于SSH協議)。
  • 數據單位:報文(Message),格式由具體應用層協議定義(如HTTP報文包含請求行/狀態行、首部字段、實體內容,HTML文本為實體內容)。
  • 補充:應用層是“網絡功能的最終體現”,所有底層(物理層、數據鏈路層、網絡層、傳輸層)的功能均為應用層服務,用戶通過應用層軟件直接感受網絡的價值(如通過瀏覽器瀏覽網頁、通過微信發送消息)。

2.3 數據傳輸的封裝與解封裝過程

網絡各層通過“封裝”與“解封裝”實現數據的逐層傳遞,封裝是發送方從應用層到物理層的“添加首部”過程,解封裝是接收方從物理層到應用層的“去除首部”過程,二者形成完整的數據傳輸鏈路,以TCP/IP五層模型為例,具體流程如下:

2.3.1 發送方封裝過程(自上而下)

  1. 應用層封裝:應用程序(如瀏覽器)生成應用數據(如HTML文本),根據應用層協議(如HTTP)添加應用層首部(如HTTP請求行“GET /index.html HTTP/1.1”、首部字段“Host: www.baidu.com”),形成應用層報文,傳遞給傳輸層。
  2. 傳輸層封裝:傳輸層接收應用層報文,根據協議(如TCP)添加傳輸層首部(如源端口12345、目標端口80、序列號x),形成TCP報文段;若使用UDP,則添加UDP首部(如源端口、目標端口、長度),形成UDP數據報,傳遞給網絡層。
  3. 網絡層封裝:網絡層接收傳輸層數據,根據IP協議添加IP首部(如源IP 192.168.1.10、目標IP 202.108.22.5、TTL 64),形成IP數據報,傳遞給數據鏈路層。
  4. 數據鏈路層封裝:數據鏈路層接收IP數據報,根據數據鏈路層協議(如以太網)添加幀頭(源MAC 00-0C-29-5A-14-92、目標MAC 00-0C-29-3B-70-AE、幀類型0x0800表示IP數據)和幀尾(CRC校驗字段),形成數據幀,傳遞給物理層。
  5. 物理層封裝:物理層接收數據幀,將其轉換為物理信號(如電信號、光信號),通過物理介質(如雙絞線、光纖)傳輸到接收方。

2.3.2 接收方解封裝過程(自下而上)

  1. 物理層解封裝:接收方物理層接收物理信號,將其轉換為數據幀,傳遞給數據鏈路層。
  2. 數據鏈路層解封裝:數據鏈路層接收數據幀,驗證CRC校驗(無錯誤則繼續,有錯誤則丟棄),去除幀頭和幀尾,提取IP數據報,傳遞給網絡層。
  3. 網絡層解封裝:網絡層接收IP數據報,驗證IP首部(如目標IP是否為本機),去除IP首部,提取TCP報文段/UDP數據報,傳遞給傳輸層。
  4. 傳輸層解封裝:傳輸層接收數據,若為TCP報文段,驗證序列號和確認號(確保數據可靠),去除TCP首部,提取應用層報文;若為UDP數據報,驗證校驗和,去除UDP首部,提取應用層報文,傳遞給應用層。
  5. 應用層解封裝:應用層接收應用層報文,根據應用層協議(如HTTP)解析首部(如HTTP狀態行“200 OK”表示請求成功),提取應用數據(如HTML文本),并通過應用程序(如瀏覽器)顯示給用戶(如渲染HTML為網頁)。

2.3.3 關鍵特點

  • 逐層添加/去除首部:每個層次僅關注自身首部的添加與解析,不修改其他層次的首部或數據,體現分層設計的“模塊化”優勢(如修改傳輸層協議從TCP為UDP,僅需調整傳輸層封裝,其他層次無需變動)。
  • 首部包含層間交互信息:各層首部包含與下一層交互的關鍵信息(如IP首部的目標IP用于網絡層路由,幀頭的目標MAC用于數據鏈路層轉發),確保數據能準確傳遞到目標層次和目標設備。
  • 數據無損傳遞:封裝與解封裝過程僅添加或去除首部,不修改應用數據(如HTML文本),確保用戶數據的完整性(除非傳輸過程中出現錯誤,由數據鏈路層或傳輸層處理)。

2.4 TCP與UDP協議深度對比(傳輸層核心協議)

TCP與UDP是傳輸層最核心的兩個協議,二者在連接方式、可靠性、開銷、應用場景上差異顯著,需根據應用需求選擇,具體對比如下表及補充說明:

對比維度TCP(傳輸控制協議)UDP(用戶數據包協議)
傳輸可靠性可靠(無丟失、無重復、按序傳輸),通過序列號、確認號、重傳機制、滑動窗口實現不可靠(無確認、無重傳,僅通過校驗和檢測錯誤,錯誤則丟棄)
應用場合傳輸大量數據、對可靠性要求高的場景(如網頁瀏覽、文件傳輸、電子郵件)傳輸少量數據、對實時性要求高的場景(如語音通話、視頻會議、DNS查詢)
速度慢,因建立連接、確認、重傳等機制增加開銷,傳輸延遲較高快,無連接建立和確認過程,開銷小,傳輸延遲低
首部長度可變,默認20字節(無選項字段),最大60字節(含選項字段),包含序列號、確認號、窗口大小等復雜字段固定8字節,僅包含源端口、目標端口、長度、校驗和4個字段,結構簡單
流量控制支持,通過滑動窗口機制(接收方告知發送方可接收的最大數據量,避免發送方過載)不支持,發送方按自身速率發送數據,不考慮接收方處理能力,可能導致接收方數據溢出
擁塞控制支持,通過慢啟動、擁塞避免、快重傳、快恢復等算法,根據網絡擁堵情況調整發送速率,避免網絡癱瘓不支持,發送方不感知網絡擁堵,持續發送數據,可能加劇網絡擁堵(如UDP洪水攻擊)
連接狀態需維護連接狀態(如ESTABLISHED、SYN-SENT),占用系統資源(如TCB傳輸控制塊)無需維護連接狀態,每個數據報獨立發送,資源占用少

2.4.1 TCP協議核心機制(保障可靠性的關鍵)

  1. 三次握手建立連接:確保客戶端與服務器雙方都具備發送和接收數據的能力,避免“無效連接請求”導致資源浪費。

    • 次握手:客戶端發送SYN報文(SYN=1,seq=x),進入SYN-SENT狀態,告知服務器“我要建立連接,初始序列號為x”。
    • 次握手:服務器收到SYN報文后,回復SYN+ACK報文(SYN=1,ACK=1,seq=y,ack=x+1),進入SYN-RCVD狀態,告知客戶端“我同意連接,我的初始序列號為y,已收到你序列號x的報文,下次請發x+1”。
    • 次握手:客戶端收到SYN+ACK報文后,發送ACK報文(ACK=1,seq=x+1,ack=y+1),進入ESTABLISHED狀態,告知服務器“我已收到你的確認,下次請發y+1”;服務器收到ACK后,也進入ESTABLISHED狀態,連接正式建立。
    • 核心目的:防止已失效的連接請求報文(如網絡延遲導致的舊請求)突然到達服務器,導致服務器誤建立連接(若僅兩次握手,服務器發送確認后即建立連接,若客戶端未收到確認,服務器會一直等待,浪費資源)。
      在這里插入圖片描述
  2. 四次揮手終止連接:確保雙方都已完成數據傳輸,避免數據丟失,因TCP是全雙工通信(雙方可同時發送數據),需分別關閉兩個方向的連接。

    • 次揮手:客戶端發送FIN報文(FIN=1,seq=u),進入FIN-WAIT-1狀態,告知服務器“我已完成數據發送,請求關閉我的發送方向連接”。
    • 次揮手:服務器收到FIN報文后,回復ACK報文(ACK=1,ack=u+1,seq=v),進入CLOSE-WAIT狀態,告知客戶端“我已收到關閉請求,正在處理剩余數據,你的發送方向連接可關閉”;客戶端收到ACK后,進入FIN-WAIT-2狀態,等待服務器關閉其發送方向連接。
    • 次揮手:服務器完成剩余數據發送后,發送FIN+ACK報文(FIN=1,ACK=1,seq=w,ack=u+1),進入LAST-ACK狀態,告知客戶端“我已完成數據發送,請求關閉我的發送方向連接”。
    • 次揮手:客戶端收到FIN+ACK報文后,發送ACK報文(ACK=1,ack=w+1,seq=u+1),進入TIME-WAIT狀態服務器收到ACK后進入CLOSED狀態;客戶端等待2MSL(最長報文壽命,確保服務器能收到ACK,避免服務器重發FIN)后,進入CLOSED狀態,連接完全終止。
    • 核心目的:確保雙方都已發送完所有數據,且最后的ACK報文能被服務器接收(若客戶端不等待2MSL直接關閉,服務器未收到ACK會重發FIN,此時客戶端已關閉,服務器會一直等待,浪費資源)。
      在這里插入圖片描述
  3. 序列號與確認號機制:確保數據按序傳輸且不重復。

    • 序列號(seq):標識發送方發送的數據字節的編號(如發送100字節數據,seq=x表示第一個字節編號為x,最后一個為x+99),避免數據重復(接收方丟棄重復序列號的報文)。
    • 確認號(ack):標識接收方期望下次收到的數據字節編號(如接收方收到seq=x的100字節數據,ack=x+100表示“已收到x到x+99的字節,請下次發x+100及以后的數據”),確保數據無丟失(發送方未收到確認會重傳)。
  4. 滑動窗口機制(流量控制):避免接收方因處理能力不足導致數據溢出。

    • 接收方在ACK報文中告知發送方“窗口大小”(即當前可接收的最大數據字節數),發送方僅能發送窗口大小以內的數據。
    • 例如:接收方窗口大小為1000字節,發送方先發送500字節,接收方處理后窗口大小更新為800字節(已處理200字節),并在ACK中告知發送方,發送方可繼續發送800字節。
  5. 擁塞控制機制:避免因發送速率過快導致網絡擁堵。

    • 慢啟動:連接初期,發送方按指數級增加發送窗口(如從1個報文段開始,每次確認后翻倍),快速探測網絡容量。
    • 擁塞避免:當窗口達到“慢啟動閾值”后,按線性級增加窗口,避免突然增加大量數據導致擁堵。
    • 快重傳:接收方收到失序報文后,立即發送重復ACK,發送方收到3個重復ACK后,無需等待超時,直接重傳失序報文,減少重傳延遲。
    • 快恢復:重傳后,將慢啟動閾值設為當前窗口的一半,按線性級增加窗口,快速恢復傳輸速率,避免重新慢啟動導致的效率低下。

2.4.2 UDP協議核心特點(適配實時性的關鍵)

  1. 無連接特性:無需建立和釋放連接,發送方可隨時發送數據,接收方隨時接收數據,減少連接開銷,降低傳輸延遲,適合實時性場景(如語音通話需低延遲,若每次通話都建立TCP連接,會導致語音卡頓)。
  2. 輕量級首部:僅8字節首部,包含源端口(2字節)、目標端口(2字節)、數據報長度(2字節,含首部和數據)、校驗和(2字節,檢測數據錯誤),結構簡單,處理速度快,適合傳輸小容量數據(如DNS查詢僅需幾十字節數據,UDP首部占比低,傳輸效率高)。
  3. 不保障可靠性:無確認、重傳機制,數據發送后不關心是否到達接收方,適合可容忍少量數據丟失的場景(如視頻會議中,偶爾丟失一個數據包僅導致畫面短暫模糊,不影響整體觀看;若使用TCP,重傳丟失的數據包會導致畫面卡頓,反而影響體驗)。
  4. 支持多播與廣播:UDP可向多個接收方(多播,如224.0.0.1標識所有主機)或同一廣播域內的所有接收方(廣播,如255.255.255.255)發送數據,而TCP僅支持點對點通信,適合多設備同時接收數據的場景(如網絡電視直播,通過UDP多播向大量用戶發送視頻流)。

2.4.3 典型應用場景對比

協議應用場景選擇原因
TCP網頁瀏覽(HTTP/HTTPS)需可靠傳輸網頁數據(如HTML、圖片),若數據丟失會導致網頁顯示不全,TCP的可靠性可避免此問題
TCP電子郵件(SMTP/POP3/IMAP)需確保郵件無丟失、無篡改(如重要工作郵件),TCP的確認和重傳機制可保障郵件可靠送達
TCP文件傳輸(FTP/SFTP)傳輸的文件(如文檔、視頻文件)容量大,若數據丟失會導致文件損壞,TCP的按序傳輸和重傳可確保文件完整
TCP遠程登錄(SSH/Telnet)需確保遠程操作指令(如命令輸入、文件修改)準確執行,若指令丟失會導致操作錯誤,TCP的可靠性可保障指令正確傳輸
UDP語音通話(VoIP)需低延遲(延遲超過100ms會導致通話卡頓),可容忍少量數據丟失(偶爾丟失一個語音包不影響理解),UDP的低延遲特性適配此需求
UDP視頻會議(如Zoom)需實時傳輸視頻畫面,延遲過高會導致畫面與聲音不同步,UDP的快速傳輸可降低延遲,少量畫面丟失僅影響局部畫質
UDPDNS查詢查詢請求和響應數據量小(僅幾十字節),需快速獲取結果(若使用TCP建立連接,耗時會遠超查詢本身),UDP的輕量級特性可提升查詢效率
UDP實時游戲(如多人在線游戲)需實時傳輸玩家操作(如移動、攻擊指令),延遲過高會影響游戲體驗,UDP的低延遲可確保操作及時反饋,少量指令丟失可通過游戲邏輯補償(如預測玩家位置)

2.5 高層協議(會話層、表示層、應用層)

在OSI七層模型中,會話層和表示層位于傳輸層與應用層之間,雖在TCP/IP模型中未被單獨劃分(歸為應用層),但二者的功能對網絡應用的正常運行至關重要,需結合OSI模型明確其核心作用:

2.5.1 會話層(Session Layer)

  • 核心功能:建立、管理和維護應用程序之間的“會話連接”,確保應用層數據在會話期間有序傳輸,同時提供會話驗證和會話恢復功能,相當于應用程序間的“通信管家”。
    • 會話建立:在兩個應用程序(如客戶端瀏覽器與服務器Web應用)之間建立會話,協商會話參數(如會話超時時間、數據傳輸格式),并進行身份驗證(如服務器驗證客戶端的登錄賬號密碼,通過后才建立會話)。
    • 會話管理:維護會話狀態(如標記會話為“活躍”或“空閑”),若會話空閑時間超過閾值,自動斷開會話以釋放資源;同時支持會話復用(如同一用戶多次訪問同一網站,可復用已建立的會話,無需重復登錄)。
    • 會話恢復:若會話因網絡波動暫時中斷(如短時間斷網),會話層可在網絡恢復后恢復原有會話,避免應用程序重新建立連接(如在線文檔編輯,會話恢復后可繼續編輯,無需重新打開文檔)。
  • 典型應用:服務器用戶登錄驗證(如網站登錄時,會話層驗證賬號密碼,通過后創建會話ID,后續請求通過會話ID識別用戶)、數據庫連接管理(如MySQL數據庫的會話管理,客戶端與數據庫建立會話后,可執行多個SQL命令,無需每次命令都重新連接)。
  • 補充:會話層的功能通常與應用層協議結合實現(如HTTP的Cookie和Session機制,本質是會話層功能的應用層體現),其核心價值是“簡化應用層的通信邏輯”,讓應用程序無需關注會話的建立和維護,只需專注于數據處理。

2.5.2 表示層(Presentation Layer)

  • 核心功能:解決“用戶信息的語法表示差異”,實現應用層數據的“格式轉換”“加密/解密”“壓縮/解壓縮”,確保發送方和接收方的應用程序能正確理解數據內容,相當于數據的“翻譯官”和“安全衛士”。
    • 格式轉換:將應用層數據從“應用程序的抽象語法”(如Java程序的對象、C++程序的結構體)轉換為“網絡傳輸的傳送語法”(如二進制數據、JSON格式),接收方再將傳送語法轉換為自身的抽象語法。例如,發送方將JPG圖片的像素數據轉換為二進制流傳輸,接收方將二進制流轉換為JPG圖片格式并顯示。
    • 數據加密/解密:為敏感數據提供安全保護,發送方對應用層數據進行加密(如通過SSL/TLS協議加密網頁數據),接收方收到后解密,防止數據在傳輸過程中被竊取或篡改。例如,HTTPS協議中,表示層通過SSL/TLS將HTTP報文加密,確保用戶在網上銀行付款時,賬號密碼不被泄露。
    • 數據壓縮/解壓縮:減少數據傳輸量,提高傳輸效率,發送方對大容量數據(如視頻、文檔)進行壓縮(如通過ZIP壓縮算法),接收方收到后解壓縮。例如,FTP協議傳輸大文件時,表示層可對文件進行壓縮,減少傳輸時間和帶寬占用。
  • 典型應用:圖像格式轉換(如PNG轉JPG、BMP轉GIF)、數據加密(如SSL/TLS加密、AES加密)、文件壓縮(如ZIP、RAR壓縮)、字符編碼轉換(如UTF-8與GBK編碼的轉換,避免中文亂碼)。
  • 補充:表示層的功能同樣常與應用層協議結合(如HTTPS的SSL/TLS加密屬于表示層功能,但通常被視為HTTP協議的擴展),其核心價值是“解決數據的兼容性和安全性問題”,確保不同類型的應用程序(如Windows的瀏覽器和Linux的瀏覽器)能正確交互數據,同時保護敏感信息。

2.5.3 應用層(Application Layer)

  • 核心功能:直接為用戶應用程序提供網絡服務接口,將用戶的操作需求(如瀏覽網頁、發送郵件)轉換為網絡可傳輸的數據,是網絡與用戶交互的“直接窗口”,所有底層協議(物理層、數據鏈路層、網絡層、傳輸層)的功能最終都為應用層服務。
  • 典型協議及應用場景
    • HTTP(超文本傳輸協議)/HTTPS(安全超文本傳輸協議)
      • 功能:HTTP用于傳輸超文本數據(如HTML、CSS、JavaScript),是網頁瀏覽的核心協議;HTTPS在HTTP基礎上添加SSL/TLS加密,確保數據傳輸安全,用于需要安全保障的場景(如網上購物、網銀操作)。
      • 端口:HTTP默認使用80端口,HTTPS默認使用443端口。
      • 應用:用戶通過Chrome、Edge等瀏覽器訪問www.baidu.com時,瀏覽器通過HTTP/HTTPS協議與百度服務器通信,獲取網頁的HTML數據并渲染顯示。
    • SMTP(簡單郵件傳輸協議)/POP3(郵局協議版本3)/IMAP(互聯網郵件訪問協議)
      • 功能:SMTP負責“發送郵件”(如用戶通過Outlook發送郵件到收件人郵箱服務器);POP3和IMAP負責“接收郵件”(POP3將郵件下載到本地,服務器端不保留備份;IMAP支持郵件在服務器端管理,如在本地標記郵件為“已讀”,服務器端同步更新)。
      • 端口:SMTP默認25端口,POP3默認110端口,IMAP默認143端口。
      • 應用:用戶通過Foxmail發送郵件時,使用SMTP協議;接收郵件時,可選擇POP3或IMAP協議,根據需求決定是否在服務器端保留郵件。
    • FTP(文件傳輸協議)/SFTP(安全文件傳輸協議)
      • 功能:FTP用于客戶端與服務器之間的文件傳輸(支持上傳、下載、刪除文件),但數據傳輸未加密,安全性低;SFTP基于SSH協議加密,解決FTP的安全問題,適合傳輸敏感文件(如企業財務報表)。
      • 端口:FTP默認21端口(控制連接,用于發送指令)、20端口(數據連接,用于傳輸文件);SFTP默認22端口。
      • 應用:企業員工通過FileZilla客戶端,使用FTP上傳普通文件到公司服務器,使用SFTP上傳加密的財務數據。
    • SSH(安全外殼協議)/Telnet(遠程登錄協議)
      • 功能:均用于遠程登錄到目標計算機并執行命令,SSH支持數據加密,安全性高;Telnet未加密,數據在傳輸過程中可被竊取(如遠程登錄密碼泄露),已逐步被SSH替代。
      • 端口:SSH默認22端口,Telnet默認23端口。
      • 應用:管理員通過PuTTY客戶端,使用SSH遠程登錄到公司的Linux服務器,執行服務器維護命令(如重啟服務、查看日志);早期使用Telnet登錄,因安全風險,目前僅在測試環境偶爾使用。
    • DNS(域名系統)
      • 功能:將用戶易記憶的“域名”(如www.taobao.com)轉換為計算機可識別的“IP地址”(如140.205.140.201),解決“IP地址難記憶”的問題,是互聯網訪問的“地址翻譯官”。用戶在瀏覽器輸入域名時,需先通過DNS查詢獲取對應的IP地址,才能與目標服務器建立連接。
      • 端口:DNS默認使用53端口,分為UDP 53(用于短查詢請求,如單條域名解析)和TCP 53(用于長查詢或區域傳輸,如批量域名解析、DNS服務器間的數據同步)。
      • 應用:用戶輸入“www.baidu.com”后,瀏覽器自動向本地DNS服務器發送查詢請求,DNS服務器返回百度服務器的IP地址(如180.101.50.188),瀏覽器再通過該IP地址與百度服務器通信,加載網頁內容。
  • 補充:應用層協議的核心是“貼近用戶需求”,不同協議對應不同的應用場景,但其底層均依賴傳輸層(TCP/UDP)、網絡層(IP)等提供的通信能力。例如,HTTP協議基于TCP協議傳輸數據,DNS協議默認基于UDP協議傳輸數據,協議間的分層協作確保了網絡應用的正常運行。

2.6 網絡協議的協作邏輯(以網頁瀏覽為例)

為更直觀理解各層協議的協作關系,以“用戶通過Chrome瀏覽器訪問www.baidu.com”為例,梳理從應用層到物理層的完整協議交互流程,明確各層協議的分工與配合:

2.6.1 步驟1:應用層(HTTP協議)與DNS協議協作——獲取目標IP地址

  1. 用戶在Chrome瀏覽器地址欄輸入“www.baidu.com”,點擊回車后,瀏覽器首先需確定百度服務器的IP地址,因此觸發DNS查詢:
    • 瀏覽器向本地DNS服務器(如家庭路由器分配的DNS地址192.168.1.1,或運營商DNS 202.97.224.68)發送DNS查詢請求,請求解析“www.baidu.com”對應的IP地址。
    • DNS協議基于UDP 53端口傳輸查詢請求(因查詢數據量小,UDP效率更高),本地DNS服務器若有緩存,直接返回IP地址;若無緩存,逐層向上級DNS服務器(根DNS、頂級域DNS、百度權威DNS)查詢,最終獲取百度服務器的IP地址(如180.101.50.188),并返回給瀏覽器。
  2. 瀏覽器獲取IP地址后,基于HTTP協議構建HTTP請求報文,請求內容為“獲取百度首頁的HTML數據”,報文格式如下:
GET / HTTP/1.1
Host: www.baidu.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36
Connection: keep-alive

其中,“GET / HTTP/1.1”為請求行,標識請求方法(GET)、請求路徑(/,即首頁)、協議版本(HTTP/1.1);“Host: www.baidu.com”為首部字段,指定目標服務器域名;其余字段為瀏覽器信息和連接參數。

2.6.2 步驟2:傳輸層(TCP協議)——建立端到端可靠連接

  1. 瀏覽器(客戶端)需與百度服務器(目標IP 180.101.50.188,HTTP默認端口80)建立TCP連接,因此觸發TCP三次握手:
  • 第一次握手:客戶端向服務器發送SYN報文(seq=隨機值x,端口=客戶端隨機端口12345,目標端口=80),進入SYN-SENT狀態。
  • 第二次握手:服務器收到SYN報文后,回復SYN+ACK報文(seq=隨機值y,ack=x+1,端口=80,目標端口=12345),進入SYN-RCVD狀態。
  • 第三次握手:客戶端收到SYN+ACK報文后,發送ACK報文(seq=x+1,ack=y+1),進入ESTABLISHED狀態;服務器收到ACK后,也進入ESTABLISHED狀態,TCP連接正式建立。
  1. TCP連接建立后,瀏覽器將HTTP請求報文傳遞給傳輸層,傳輸層為其添加TCP首部(包含源端口12345、目標端口80、序列號x+1、確認號y+1),形成TCP報文段,傳遞給網絡層。

2.6.3 步驟3:網絡層(IP協議)——實現跨網絡路由轉發

  1. 網絡層接收TCP報文段后,添加IP首部(包含源IP=客戶端IP 192.168.1.10、目標IP=百度服務器IP 180.101.50.188、TTL=64、協議類型=6(標識TCP)),形成IP數據報,傳遞給數據鏈路層。
  2. 網絡層通過路由表選擇轉發路徑:客戶端IP屬于局域網(192.168.1.0/24),目標IP屬于公網,因此IP數據報需先發送到本地網關(如家庭路由器IP 192.168.1.1);網關收到IP數據報后,根據路由表轉發到運營商骨干網,再經多臺路由器逐層轉發,最終到達百度服務器所在的公網網段。

2.6.4 步驟4:數據鏈路層(以太網協議)與物理層——實現相鄰節點數據傳輸

  1. 數據鏈路層接收IP數據報后,添加以太網幀頭(包含源MAC=客戶端網卡MAC 00-0C-29-5A-14-92、目標MAC=網關網卡MAC C8-98-28-81-32-08、幀類型=0x0800(標識IP數據報))和幀尾(CRC校驗字段),形成以太網數據幀,傳遞給物理層。
  2. 物理層接收數據幀后,將其轉換為電信號(若使用雙絞線)或光信號(若使用光纖),通過物理介質(如家庭雙絞線連接到路由器)傳輸到網關;網關接收物理信號后,轉換為數據幀,去除幀頭幀尾提取IP數據報,再按網絡層路由路徑轉發,重復“數據鏈路層封裝-物理層傳輸”過程,直到IP數據報到達百度服務器。

2.6.5 步驟5:百度服務器端解封裝與響應——從物理層到應用層

  1. 百度服務器物理層接收物理信號,轉換為數據幀,傳遞給數據鏈路層;數據鏈路層驗證CRC校驗,去除幀頭幀尾,提取IP數據報,傳遞給網絡層。
  2. 網絡層驗證IP首部(確認目標IP為本機),去除IP首部,提取TCP報文段,傳遞給傳輸層;傳輸層驗證TCP首部(確認目標端口為80),去除TCP首部,提取HTTP請求報文,傳遞給應用層(百度Web服務器,如Nginx)。
  3. Web服務器解析HTTP請求報文,生成HTTP響應報文(包含百度首頁的HTML數據,狀態碼200 OK表示請求成功),并按“應用層→傳輸層→網絡層→數據鏈路層→物理層”的順序封裝,通過原TCP連接返回給客戶端瀏覽器。

2.6.6 步驟6:客戶端接收響應與頁面渲染

  1. 客戶端瀏覽器接收服務器返回的物理信號,經“物理層→數據鏈路層→網絡層→傳輸層→應用層”解封裝,提取HTTP響應報文中的HTML數據。
  2. 瀏覽器解析HTML數據,加載其中的CSS、JavaScript、圖片等資源(過程與上述步驟類似,需多次建立TCP連接和HTTP請求),最終渲染為用戶可見的百度首頁。
  3. 若用戶關閉瀏覽器,TCP連接通過四次揮手終止:客戶端發送FIN報文,服務器回復ACK,服務器發送FIN報文,客戶端回復ACK,連接關閉。

2.6.7 核心結論

各層協議并非獨立工作,而是通過“封裝-解封裝”和“層間接口”協同實現數據傳輸,其中:

  • 應用層負責“用戶需求到數據的轉換”(如HTTP構建請求);
  • 傳輸層負責“端到端可靠/快速傳輸”(如TCP建立連接);
  • 網絡層負責“跨網絡路由”(如IP選擇路徑);
  • 數據鏈路層和物理層負責“相鄰節點的物理傳輸”(如以太網幀傳輸、電信號發送);
  • 這種分層協作模式,既降低了單一協議的復雜度,又確保了網絡通信的有序和高效,是互聯網能夠全球互聯的核心技術基礎。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/921493.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/921493.shtml
英文地址,請注明出處:http://en.pswp.cn/news/921493.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

百度前端社招面經二

社招 百度 前端開發 二面 base 北京 react 17 和 18 的差異react的響應式原理,js是如何驅動模塊的webpacke 4 和 5 差異webpacke 熱更新原理。Tree Shaking 是干嘛的import 和 require 區別,都會被Tree Shaking嗎隱藏元素的幾種方式三欄布局,…

結合prompt分析NodeRAG的build過程

之前介紹了NodeRAG的節點類型和安裝過程。 linux環境conda安裝NodeRAG示例-CSDN博客 這里嘗試從prompt代碼角度分析NodeRAG如何將文檔轉化為節點、關系。 1 整體處理流程 NodeRAG定義了如下所示狀態及處理流程。 # define the state to pipeline mapping self.state_pipelin…

我改寫的二分法XML轉CSV文件程序速度追上了張澤鵬先生的

以下是美團龍貓初稿&#xff0c;我改正&#xff0c;DeepSeek重新格式化的代碼。 重要改正點&#xff1a; 1.二分查找用goto控制迭代&#xff0c;返回<row的正確位置 2.在緩沖區頭填上父標簽使expat能連續解析不報錯 #include <stdio.h> #include <stdlib.h> #in…

使用Docker安裝Stirling-PDF(PDF工具)

1、官方Web端 詳見&#xff1a;https://stirlingpdf.io/?langzh_CN 2、安裝Docker 合集&#xff1a;Docker安裝與使用 3、安裝Stirling-PDF 詳見&#xff1a; https://docs.stirlingpdf.com/Installation/Docker%20Install https://hub.docker.com/r/stirlingtools/stirli…

【開題答辯全過程】以 基于微信小程序的“XIN”學生組織管理系統為例,包含答辯的問題和答案

個人簡介一名14年經驗的資深畢設內行人&#xff0c;語言擅長Java、php、微信小程序、Python、Golang、安卓Android等開發項目包括大數據、深度學習、網站、小程序、安卓、算法。平常會做一些項目定制化開發、代碼講解、答辯教學、文檔編寫、也懂一些降重方面的技巧。感謝大家的…

Iwip驅動8211FS項目——MPSOC實戰1

硬件設計采用RTL8211FS芯片&#xff0c;vitis默認的IWIP庫不支持此芯片。 網口相關知識可以翻看前期文章 以太網PHY_MDIO通信&#xff08;基于RTL8211&#xff09;--FPGA學習筆記22-CSDN博客 以太網ARP協議——FPGA學習筆記23_fpga以太網學習-CSDN博客 以太網ICMP協議(ping…

《Science》神經炎癥綜述思路套用:從機制到跨領域研究范式

2025 年 6 月首都醫科大學團隊在《Science》發表的綜述《Immunological dimensions of neurological disease: from mechanisms to therapeutics》(神經疾病的免疫維度:從機制到療法),系統性解析了神經炎癥的動態演變規律與雙面性,提出階段化、精準化治療新范式。本文基于…

嵌入式學習筆記--Linux系統編程階段--DAY07進程間通信--存儲映射和共享內存

1.存儲映射存儲映射 I/O (Memory-mapped I/O) 使一個磁盤文件與存儲空間中的一個緩沖區相映射。于是當從緩沖區中取數據&#xff0c;就相當于讀文件中的相應字節。于此類似&#xff0c;將數據存入緩沖區&#xff0c;則相應的字節就自動寫入文件。這樣&#xff0c;就可在不適用 …

.Net程序員就業現狀以及學習路線圖(四)

一、.Net程序員就業現狀分析 1. 市場需求與崗位分布 2025年數據顯示&#xff0c;.Net開發崗位在全國IT崗位中占比約0.009%&#xff0c;主要集中在一線城市如深圳、上海等地 2 4。行業分布呈現以下特點&#xff1a;?軟件行業?&#xff1a;占比43.3% ?研發領域?&#xff1a;占…

Monorepo 是什么?如何使用并寫自己的第三方庫

1. 什么是 Monorepo&#xff1f; Monorepo&#xff08;單倉庫&#xff09;指的是把多個項目/包放在一個代碼倉庫里統一管理。常見結構&#xff1a; /repo-root/packages/ui-lib/utils/apps/web-apppackage.jsonpnpm-workspace.yaml好處&#xff1a; 內部庫能直接共享&#xff0…

使用CI/CD部署后端項目(gin)

寫在前面&#xff1a;使用CI/CD部署gin項目到服務器中 前端可以參考&#xff1a;使用CI/CD部署nextjs項目 使用 GitHub Actions 配置后端 CI/CD&#xff08;含部署到服務器&#xff09; 本文檔介紹如何在 GitHub 倉庫中配置 CI/CD&#xff0c;將 PROJECT_NAME 項目自動構建并…

Coze添加知識庫解析的Embedding和PaddleOCR模型配置

1. Embedding模型配置 使用ollama模型&#xff0c;導入qwen3的embedding-8B模型&#xff0c;導入流程參考&#xff1a; Ollama離線部署模型 qwen3-Embedding模型文件可從魔塔社區下載&#xff1a; Qwen3-Embedding-8B 1.2 Coze配置 在coze_studio/docker目錄下輸入: vim .en…

02-Media-6-rtsp_server.py 使用RTSP服務器流式傳輸H264和H265編碼視頻和音頻的示例程序

rtsp_server.py 是使用k230的板載攝像頭和WIFI聯網功能,使用RTSP服務器流式傳輸視頻和音頻的程序示例。程序核心是創建了一個RtspServer類,該類用于初始化、啟動、停止RTSP服務器,并進行視頻和音頻的流傳輸。 一、首先,程序導入必要的模塊,包括視頻編碼、傳感器、媒體處理…

13-Java-面向對象-封裝和this關鍵字

文章目錄封裝this關鍵字封裝 告訴我們&#xff0c;如何正確設計對象的屬性和方法。原則&#xff1a;對象代表什么&#xff0c;就得封裝對應的數據&#xff0c;并提供數據對應的行為 package common;/*** Author: 大海* Date: 2025-09-06*/public class GirlFriend {/*private…

三高項目-緩存設計

三高項目-緩存設計 分流、并發 導流&#xff1a;將原本復雜操作的請求&#xff0c;引導到簡單的操作上。以后再來查&#xff0c;不需要經過復雜的計算。 成本&#xff1a;空間&#xff0c;收益&#xff1a;節省了時間。 不要以為僅僅是 redis&#xff0c;map等。 對應。kv…

happen-before原則

什么是 happen-before 原則&#xff1f; happen-before 是一個邏輯關系&#xff0c;用于描述兩個操作之間的 “先后順序”—— 如果操作 A happen-before 操作 B&#xff0c;那么 A 的執行結果必須對 B 可見&#xff0c;且 A 的執行順序在邏輯上先于 B。也就是保證指令有序性和…

4.1 機器學習 - 評估指標

模型評估是判斷 “模型是否有效” 的核心環節&#xff0c;需結合任務類型&#xff08;分類 / 回歸&#xff09;、數據分布&#xff08;如類別不平衡&#xff09;和商業目標選擇指標。本節聚焦分類任務的核心評估指標&#xff0c;從定義、計算邏輯到適用場景逐一拆解&#xff0c…

雅菲奧朗SRE知識墻分享(七):『可觀測性的定義與實踐』

在分布式系統日益復雜的當下&#xff0c;故障不再是“是否發生”&#xff0c;而是“何時爆發”。SRE可觀測性正是應對不確定性的“顯微鏡”與“導航儀”&#xff1a;通過指標、日志、追蹤三大數據血脈&#xff0c;實時外化系統黑盒&#xff0c;讓每一次抖動、每一行報錯、每一次…

C++ 詳細講解vector類

目錄 1. 什么是vector? 2. vector的使用 1. 構造函數---初始化 1. 默認構造函數(無參構造&#xff09; 2. 填充構造函數(指定數量和初始值&#xff09; 3. 范圍構造函數(通過迭代器拷貝其他容器元素&#xff09; 4. 拷貝構造函數(直接拷貝另一個vector&#xff09; 注…

Windows Server2012 R2 安裝.NET Framework 3.5

Windows Server2012 R2 安裝.NET Framework 3.5 虛擬機系統是Windowsserver 2012R2&#xff0c;在安裝SQlserver2012時候警告未安裝.NET Framework 3.5。于是找了個.NET Framework 3.5的安裝包&#xff0c;但是由于系統原因無法正常安裝。按照提示從控制面板-程序-啟動或關閉Wi…