【軟考中級網絡工程師】知識點之 TCP 協議深度剖析

目錄

  • 一、TCP 協議簡介
  • 二、TCP 協議的特點
    • 2.1 面向連接
    • 2.2 可靠性高
    • 2.3 擁塞控制
    • 2.4 全雙工通信
    • 2.5 高效性
    • 2.6 支持多種應用協議
    • 2.7 可靠的錯誤恢復
  • 三、TCP 協議的工作機制
    • 3.1 三次握手建立連接
    • 3.2 數據傳輸
    • 3.3 四次揮手關閉連接
  • 四、TCP 協議的數據包格式
  • 五、TCP 協議在實際應用中的案例分析
    • 5.1 HTTP 協議中的 TCP
    • 5.2 FTP 協議中的 TCP
  • 六、總結


一、TCP 協議簡介

在計算機網絡的龐大體系中,TCP 協議(傳輸控制協議,Transmission Control Protocol)猶如一座穩固的橋梁,承載著數據可靠傳輸的重任,是網絡通信得以順暢進行的關鍵要素。它工作于傳輸層,主要為兩臺主機之間提供可靠、有序、基于字節流的通信服務。在實際應用里,當我們進行文件傳輸、瀏覽網頁、使用電子郵件等操作時,TCP 協議默默在背后保障數據準確無誤地到達目的地,讓我們能夠高效地獲取信息和進行交互。

在軟考中級網絡工程師考試中,TCP 協議更是重點考查內容。無論是綜合知識單選題,還是案例分析題,TCP 協議的相關知識點頻繁出現,像 TCP 的三次握手、四次揮手過程,以及 TCP 的流量控制、擁塞控制等機制,都是考試的高頻考點。對這些知識點的熟練掌握,直接關系到考生能否在考試中取得優異成績,順利通過軟考中級網絡工程師考試,進而在網絡工程領域開啟更為廣闊的職業發展道路。

二、TCP 協議的特點

2.1 面向連接

TCP 協議在數據傳輸前,會通過三次握手建立連接,就像兩個人打電話前要先撥通號碼并確認對方是否準備好接聽一樣。以瀏覽器訪問網頁為例,當用戶在瀏覽器中輸入網址,瀏覽器作為客戶端會向服務器發送一個帶有 SYN(同步序列編號)標志的 TCP 段,這就像是在說 “我想和你建立連接,這是我的初始序列號”;服務器收到后,回復一個帶有 SYN 和 ACK(確認)標志的 TCP 段,表示 “我同意建立連接,這是我的序列號,同時確認收到你的請求”;客戶端再發送一個帶有 ACK 標志的 TCP 段,完成握手過程,此時連接建立成功,雙方可以開始穩定、有序地傳輸數據。數據傳輸完成后,又會通過四次揮手釋放連接 ,確保數據完整傳輸且資源得到合理釋放,保證了數據傳輸的可靠性和完整性。繪制 TCP 三次握手的流程圖如下:
在這里插入圖片描述

2.2 可靠性高

TCP 協議采用確認機制、序列號和校驗和等技術保證數據可靠傳輸。每個 TCP 段都有唯一序列號,接收方通過發送確認(ACK)告知發送方已成功接收的數據。比如在文件傳輸中,發送方依次發送編號為 1、2、3 的數據段,接收方收到后,會回復 ACK 確認消息,告知發送方已收到哪些數據段。若發送方未收到某個數據段的 ACK,就會啟動超時重傳機制,重新發送該數據段。同時,TCP 段包含校驗和字段,接收方通過校驗和檢測傳輸過程中的數據錯誤,若校驗和不匹配,會丟棄該段并不發送確認,觸發發送方重傳,確保數據準確無誤地傳輸。繪制 TCP 可靠性傳輸機制的示意圖如下:
在這里插入圖片描述

2.3 擁塞控制

TCP 協議采用擁塞控制算法避免網絡擁塞和丟包。它主要包含慢啟動、擁塞避免、快重傳和快恢復等機制。在連接建立初期,發送方以指數增長的方式逐漸增加擁塞窗口(cwnd)大小,快速探測網絡的可用帶寬,但又能避免一開始就發送大量數據導致網絡擁塞,這就是慢啟動階段。當擁塞窗口大小達到一定閾值(ssthresh)后,進入擁塞避免階段,此時發送方每經過一個往返時間(RTT),擁塞窗口大小增加1/cwnd,更加緩慢地增加發送速率,以避免網絡擁塞的發生。一旦檢測到擁塞(如數據包丟失或超時),就會及時降低發送速率,以緩解網絡擁塞。當發送方連續收到三個重復的確認時,就會立即重傳丟失的數據并將擁塞窗口減半,然后進入快恢復狀態,逐漸增加擁塞窗口的大小,以便快速恢復到之前的發送速率 。繪制 TCP 擁塞控制狀態轉換圖如下:
在這里插入圖片描述

2.4 全雙工通信

TCP 協議支持全雙工通信,即客戶端和服務器端都可以同時發送和接收數據,實現雙向通信。以即時通訊軟件為例,用戶 A 和用戶 B 聊天時,A 發送消息的同時也能接收 B 發送的消息,雙方的消息傳輸互不干擾。在技術實現上,TCP 連接為每個方向都提供獨立的緩存和發送、接收機制,就像有兩條獨立的車道,數據可以在兩個方向上同時順暢傳輸,大大提高了通信效率和實時性。繪制 TCP 全雙工通信示意圖如下:
在這里插入圖片描述

2.5 高效性

TCP 協議采用滑動窗口機制和分段傳輸技術提高數據傳輸效率和性能。滑動窗口機制中,發送方和接收方各自維護一個窗口大小來限定可以傳輸的數據量。接收方通過通告其接收窗口大小,讓發送方根據接收窗口調整發送速率,防止接收方緩沖區溢出。例如,接收方的接收窗口為 1000 字節,發送方就可以在未收到確認的情況下,連續發送 1000 字節的數據。同時,TCP 將大的數據流分割成較小的段進行傳輸,提高了傳輸效率和可靠性,因為丟失一個小段比丟失整個大數據流的影響小,就像將一大箱貨物分成多個小包裹運輸,即使丟失一兩個小包裹,整體影響也相對較小。繪制 TCP 滑動窗口機制示意圖如下:
在這里插入圖片描述

2.6 支持多種應用協議

TCP 協議可以支持多種應用層協議,在不同的網絡應用場景中發揮關鍵作用。例如,HTTP(超文本傳輸協議)使用 TCP 作為其默認傳輸協議,用于在 Web 瀏覽器和 Web 服務器之間傳輸 HTML、CSS 和 JavaScript 內容等。當我們在瀏覽器中輸入網址訪問網頁時,瀏覽器會與服務器建立 TCP 連接,通過這個連接發送 HTTP 請求并接收服務器返回的網頁數據。FTP(文件傳輸協議)用于在客戶端和服務器之間傳輸文件,同樣依賴 TCP 的可靠傳輸特性,確保文件完整無誤地傳輸,無論是上傳還是下載大文件,都能保證數據的準確性。SMTP(簡單郵件傳輸協議)用于電子郵件發送,包括將郵件從客戶端發送到服務器,并在多臺服務器之間傳遞郵件,TCP 為郵件的可靠傳輸保駕護航,讓郵件能夠準確地投遞到目標郵箱。

2.7 可靠的錯誤恢復

TCP 協議可以對丟失、重復、損壞和超時等錯誤進行恢復和處理。對于丟失的數據,通過超時重傳機制重新發送;對于重復的數據,接收方能夠識別并丟棄,因為每個數據段都有序列號,接收方可以根據序列號判斷數據是否重復;對于損壞的數據,通過校驗和檢測出來后,丟棄該數據段并等待發送方重傳;當發生超時情況,即發送方在一定時間內未收到確認應答,就會重發數據段。通過這些全面的錯誤恢復機制,TCP 協議保證了數據傳輸的可靠性和完整性,確保在復雜的網絡環境下數據依然能夠準確、完整地傳輸。繪制 TCP 錯誤恢復機制流程圖如下:
在這里插入圖片描述

三、TCP 協議的工作機制

3.1 三次握手建立連接

TCP 協議通過三次握手建立可靠連接,確保雙方都能正常收發數據。繪制三次握手的時序圖如下:
在這里插入圖片描述

具體過程如下:

  • 第一次握手:客戶端向服務器發送一個 SYN(同步)包,其中 SYN 標志位設為 1,序列號(seq)為 x ,表示客戶端請求建立連接,進入 SYN_SENT 狀態,等待服務器響應。這就好比打電話時,一方撥通號碼說 “我想和你通話”。
  • 第二次握手:服務器收到客戶端的 SYN 包后,回復一個 SYN + ACK 包,其中 SYN 標志位和 ACK 標志位都設為 1,序列號(seq)為 y,確認號(ack)為 x + 1,表示服務器同意建立連接,并確認收到客戶端的請求,進入 SYN_RCVD 狀態,等待客戶端確認。這相當于對方回應 “我收到你的請求了,我也準備好和你通話了,你能收到我的回應嗎”。
  • 第三次握手:客戶端收到服務器的 SYN + ACK 包后,發送一個 ACK 包,ACK 標志位設為 1,序列號(seq)為 x + 1,確認號(ack)為 y + 1,進入 ESTABLISHED 狀態。服務器收到 ACK 包后也進入 ESTABLISHED 狀態,此時連接建立成功,雙方可以開始傳輸數據。這就像最初撥打電話的一方回應 “我收到你的回應了,我們可以開始正式通話了” 。

3.2 數據傳輸

在數據傳輸過程中,TCP 協議利用序列號、確認號和滑動窗口等機制保障數據的可靠傳輸。每個 TCP 段都有序列號,標識該段數據在數據流中的位置,接收方依據序列號對數據進行排序,確保數據按序傳輸。確認號則是接收方告知發送方下一個期望接收的數據包序列號,發送方通過確認號知曉哪些數據包已被成功接收,哪些需要重傳。

滑動窗口機制使發送方在未收到確認的情況下,也能連續發送多個數據包。發送方和接收方各自維護一個窗口大小,接收方通過通告其接收窗口大小,讓發送方依據接收窗口調整發送速率,防止接收方緩沖區溢出。例如,接收方的接收窗口為 1000 字節,發送方就可在未收到確認的情況下,連續發送 1000 字節的數據。發送方在收到接收方的確認后,會將已確認的數據從發送緩沖區刪除,并根據確認號和窗口大小調整下一次發送的數據。

3.3 四次揮手關閉連接

TCP 協議采用四次揮手關閉連接,確保雙方都能可靠地結束通信。繪制四次揮手的時序圖如下:
在這里插入圖片描述

具體過程如下:

  • 第一次揮手:客戶端向服務器發送一個 FIN(結束)包,FIN 標志位設為 1,序列號(seq)為 u,表示客戶端不再發送數據,但仍可接收數據,進入 FIN_WAIT_1 狀態。這就像通話結束時,一方說 “我說完了,準備掛電話了”。
  • 第二次揮手:服務器收到客戶端的 FIN 包后,發送一個 ACK 包作為確認,ACK 標志位設為 1,序列號(seq)為 v,確認號(ack)為 u + 1,進入 CLOSE_WAIT 狀態。客戶端收到 ACK 后進入 FIN_WAIT_2 狀態。這相當于對方回應 “我知道你準備掛電話了,我還在處理一些事情” 。
    第三次揮手:服務器完成數據發送后,向客戶端發送一個 FIN 包,FIN 標志位設為 1,序列號(seq)為 w,確認號(ack)為 u + 1,表示服務器也不再發送數據,進入 LAST_ACK 狀態,等待客戶端確認。這就好比對方處理完事情后說 “我也說完了,準備掛電話了”。
  • 第四次揮手:客戶端收到服務器的 FIN 包后,發送一個 ACK 包作為確認,ACK 標志位設為 1,序列號(seq)為 u + 1,確認號(ack)為 w + 1,進入 TIME_WAIT 狀態,等待 2MSL(最大報文段生存時間)后進入 CLOSED 狀態。服務器收到 ACK 后,立即進入 CLOSED 狀態。這就像最初說要掛電話的一方回應 “好的,再見” 。等待 2MSL 時間是為了確保網絡中所有舊的重復報文段消失,防止干擾新連接。

四、TCP 協議的數據包格式

TCP 協議的數據包格式包含多個重要字段,這些字段協同工作,保障了數據的可靠傳輸和連接的有效管理。繪制 TCP 數據包格式的流程圖如下:
在這里插入圖片描述

各字段含義和作用如下:

  • 源端口(Source Port):16 位字段,標識發送端應用程序的端口號,就像寄信時填寫的寄件人地址中的門牌號,用于接收方回復數據時找到對應的應用程序進程 。
  • 目的端口(Destination Port):16 位字段,標識接收端應用程序的端口號,如同寄信時填寫的收件人地址中的門牌號,確定數據要送達的目標應用程序進程 。
  • 序列號(Sequence Number):32 位字段,在連接建立時,初始序列號(ISN)隨機生成。它用于標識發送端發送的字節流中的每一個字節的順序編號,接收端依據此序號重組數據包,確保數據按正確順序接收。例如,發送端的 ISN 為 1000,第一個數據段包含 100 字節數據,那么第二個數據段的序列號字段值為 1100 。
  • 確認號(Acknowledgment Number):32 位字段,用于確認接收的數據。這個字段表示接收端期望接收的下一個字節的序號,如接收端收到序號為 1000 到 1999 的數據段后,發送的確認報文中確認序號字段的值應為 2000,表示已成功接收到 1000 到 1999 字節,期望下一個字節為 2000 。
  • 數據偏移(Data Offset):4 位字段,也叫首部長度,以 32 位字(即 4 字節)為單位,表示 TCP 報文頭部的長度,最小值為 5,表示沒有選項字段的基本 TCP 頭部長度為 20 字節。若有選項字段,首部長度相應增加,它指明了數據區在報文段中的起始偏移值 。
  • 保留(Reserved):4 位字段,為 TCP 將來的發展預留空間,目前必須全部為 0 。
  • 標志位(Flags):8 位字段,包含多個控制位,具體如下:
    • CWR(Congestion Window Reduce):擁塞窗口減少標志,用來表明它接收到了設置 ECE 標志的 TCP 包。并且,發送方收到消息之后,通過減小發送窗口的大小來降低發送速率。
    • ECE(ECN - Echo):用來在 TCP 三次握手時表明一個 TCP 端是具備 ECN 功能的。在數據傳輸過程中,它也用來表明接收到的 TCP 包的 IP 頭部的 ECN 被設置為 11,即網絡線路擁堵。
    • URG(Urgent):緊急指針字段有效標志,當 URG = 1 時,表示緊急指針字段有效,用于指示緊急數據,緊急數據可以繞過正常的數據流,優先傳輸和處理。
    • ACK(Acknowledgment):確認號有效標志,當 ACK = 1 時,表示確認號字段有效,只有當 ACK = 1 時,前面的確認號字段才有效,TCP 規定,連接建立后,ACK 必須為 1 。
    • PSH(Push):推送標志,當 PSH = 1 時,表示接收端應立即將數據交付給上層應用,而不是在緩沖區排隊。
    • RST(Reset):重置連接標志,當 RST = 1 時,表示連接需要重置,用于處理由于主機崩潰或其他原因而出現錯誤的連接,或者用于拒絕非法的報文段和拒絕連接請求。
    • SYN(Synchronize):同步序號標志,用于建立連接過程,當 SYN = 1,ACK = 0 時,表示這是一個請求建立連接的報文段;當 SYN = 1,ACK = 1 時,表示對方同意建立連接,只有在前兩次握手中 SYN 才為 1 。
    • FIN(Finish):結束標志,用于釋放連接,當 FIN = 1 時,表示發送方已經沒有數據發送了,即關閉本方數據流 。
  • 窗口大小(Window Size):16 位字段,用于流量控制,表示接收端可接收的數據量,以字節為單位。發送端根據窗口大小調整發送的數據量,避免接收端緩沖區溢出,實現 TCP 的滑動窗口機制,確保高效的數據傳輸。
  • 校驗和(Checksum):16 位字段,用于確保數據完整性。發送端基于數據內容(包括 TCP 頭部和 TCP 數據)校驗生成一個數值,接收端收到報文后再進行計算,比較結果是否一致。如果不一致,表示數據在傳輸過程中發生了錯誤,接收端會丟棄該數據包。
  • 緊急指針(Urgent Pointer):16 位字段,僅在 URG 標志置 1 時有效,它指示在報文中的緊急數據的結束位置,以序號為基準,偏移該指針值得到緊急數據的最后一個字節序號。
  • 選項(Options):可變長字段,用于支持各種擴展功能,常見的選項包括最大報文段長度(MSS)、時間戳(Timestamp)、窗口擴大因子(Window Scale)、選擇確認(Selective Acknowledgment, SACK)等。這些選項增強了 TCP 的靈活性和性能。
  • 填充(Padding):可變長字段,用于將選項字段填充為 32 位的整數倍,以保證 TCP 頭部是 32 位的整數倍。

五、TCP 協議在實際應用中的案例分析

5.1 HTTP 協議中的 TCP

HTTP 協議(超文本傳輸協議,HyperText Transfer Protocol)作為應用層協議,主要負責在 Web 瀏覽器和 Web 服務器之間傳輸超文本內容,像 HTML 頁面、CSS 樣式表、JavaScript 腳本等。它基于 TCP 協議實現可靠的數據傳輸,為用戶提供穩定的網頁瀏覽體驗。

當我們在瀏覽器中輸入網址并按下回車鍵,瀏覽器會解析出主機名,查詢其對應的 IP 地址,然后與服務器建立 TCP 連接。以訪問百度為例,在瀏覽器地址欄輸入www.baidu.com后,瀏覽器會先通過 DNS 服務器將域名解析為 IP 地址,假設為119.75.217.109。接著,瀏覽器與該 IP 地址的 80 端口(HTTP 協議默認端口)建立 TCP 連接 ,通過三次握手成功建立連接后,瀏覽器向服務器發送 HTTP 請求報文,比如 GET 請求,請求獲取首頁的 HTML 內容。服務器收到請求后,處理請求并返回 HTTP 響應報文,包含 HTML 頁面數據。瀏覽器接收響應報文,解析并渲染頁面,呈現給用戶,完成一次 HTTP 請求 - 響應過程 。數據傳輸完成后,TCP 連接會根據情況關閉,若開啟了長連接,則可以在一定時間內保持連接,用于后續請求。

在這個過程中,TCP 協議的可靠性保證了 HTTP 請求和響應報文準確無誤地傳輸,不會出現數據丟失或亂序的情況,使得網頁能夠完整、正確地加載。TCP 的擁塞控制機制避免了網絡擁塞對數據傳輸的影響,確保即使在網絡繁忙時,也能穩定地獲取網頁數據 。繪制 HTTP 協議基于 TCP 協議的工作流程圖如下:
在這里插入圖片描述

5.2 FTP 協議中的 TCP

FTP 協議(文件傳輸協議,File Transfer Protocol)主要用于在客戶端和服務器之間進行文件傳輸,廣泛應用于網站維護、軟件分發等場景。它基于 TCP 協議實現,利用 TCP 的可靠傳輸特性確保文件準確無誤地傳輸。

FTP 協議采用控制連接和數據連接分離的設計。控制連接用于傳輸 FTP 命令和響應,如登錄、列出文件、切換目錄等操作,客戶端與服務器的 21 端口建立 TCP 連接作為控制連接,并且在整個會話期間保持打開狀態。數據連接則專門用于傳輸文件數據或目錄列表等,當需要傳輸實際文件數據時,會根據傳輸模式建立數據連接。傳輸模式分為主動模式和被動模式:

  • 主動模式:客戶端與服務器的 21 端口建立控制連接后,客戶端隨機選擇一個臨時端口(假設為 10000),通過控制連接發送 PORT 命令,告知服務器自己的數據端口為 10000。服務器收到命令后,從 20 端口主動連接客戶端的 10000 端口,建立數據連接,完成文件傳輸后,數據連接立即斷開 。例如,網站管理員通過 FTP 客戶端上傳網站更新文件時,若采用主動模式,服務器會主動連接客戶端指定端口進行文件傳輸。
  • 被動模式:客戶端與服務器的 21 端口建立控制連接后,發送 PASV 命令,服務器收到命令后,隨機開放一個高端端口(假設為 30000),并通過控制連接將該端口號告知客戶端。客戶端主動連接服務器的 30000 端口,建立數據連接進行文件傳輸,完成傳輸后數據連接關閉 。由于被動模式下客戶端主動發起數據連接,能有效解決防火墻和 NAT 穿透問題,在公共網絡環境中應用廣泛。

在 FTP 文件傳輸過程中,TCP 協議保證了每個文件字節按序、無差錯地傳輸到目標位置,確保文件完整性。比如,在企業內部通過 FTP 服務器分發軟件安裝包時,TCP 協議確保安裝包完整無誤地傳輸到各個客戶端,避免文件損壞導致安裝失敗。繪制 FTP 協議基于 TCP 協議的工作流程圖如下:
在這里插入圖片描述

六、總結

TCP 協議作為傳輸層的核心協議之一,在軟考中級網絡工程師考試中占據著舉足輕重的地位,同時在實際網絡應用中也是保障數據可靠傳輸的關鍵。從其特點來看,面向連接確保了通信前的可靠準備,高可靠性通過多種機制保證數據準確無誤,擁塞控制維持網絡穩定,全雙工通信實現高效雙向傳輸,高效性利用滑動窗口等技術提升性能,支持多種應用協議使其廣泛應用于各類網絡場景,可靠的錯誤恢復保障數據完整性。

在工作機制方面,三次握手建立連接、數據傳輸時的序列號與滑動窗口保障、四次揮手關閉連接,每一個環節都緊密相扣,共同構建起可靠的數據傳輸鏈路。TCP 協議的數據包格式,各個字段各司其職,從端口標識到校驗和確保數據正確,再到選項字段的擴展功能,都體現了其設計的精妙與嚴謹。通過 HTTP 協議和 FTP 協議中的實際案例分析,我們更直觀地看到了 TCP 協議如何在具體應用中發揮作用,保障網頁瀏覽和文件傳輸的穩定與準確。

對于軟考中級網絡工程師考試的考生而言,扎實掌握 TCP 協議的相關知識,不僅能幫助順利通過考試,更是為今后從事網絡工程相關工作奠定堅實基礎。在實際網絡應用中,無論是構建企業網絡、維護網絡穩定,還是優化網絡性能,對 TCP 協議的深入理解和靈活運用都是必不可少的。希望讀者通過本文的學習,能夠對 TCP 協議有更全面、深入的認識,不斷深入學習和實踐,將理論知識與實際操作相結合,在網絡技術的學習和應用道路上不斷前進。

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

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

相關文章

操作系統1.5:操作系統引導

目錄 總覽 什么是操作系統引導? 磁盤里邊有哪些相關數據? 操作系統引導(開機過程) 總覽 什么是操作系統引導? 操作系統引導(boot)——開機的時候,怎么讓操作系統運行起來? 磁盤里邊有哪些相關數據? 一個剛買來的磁盤(硬…

[鷓鴣云]光伏AI設計平臺解鎖電站開發新范式

1.[鷓鴣云]平臺概述[鷓鴣云]是由鷓鴣云(徐州)信息技術有限公司傾力打造的,可以媲美?PVsyst的光伏AI設計平臺。它為光伏項目不同階段的開發提供了快速設計、衛星地圖設計、無人機3D設計、Unity3D設計、專業繪圖設計與場區設計多種設計方式&am…

docker compose和docker-compose命令的區別

Docker Compose 有兩種命令形式:docker compose(空格連接)docker-compose(短橫線連接)其核心區別如下:一、技術特性docker-compose(短橫線)獨立可執行文件:作為獨立程序安…

基于Strands Agent開發輔助閱讀Agent

序 本篇由來,在COC上我當面感謝了組委會和姜寧老師,隨即被姜寧老師催稿,本來當天晚上寫了一個流水賬,感覺甚為不妥。于是決定慢慢寫,緩緩道來。要同時兼顧Show me the code,Show me the vide。希望能形成一…

20250807簡單樹上問題

引入 樹是一種特殊的圖,因其看起來像一顆倒掛的樹而得名。 樹有許多等價的形式化定義,我們這里只取一個:nnn個點n?1n-1n?1條邊的無向連通圖。 樹的直徑 定義樹上任意兩點之間最長的簡單路徑為樹的直徑。 一棵樹可能有很多直徑&#xff0c…

諾基亞就4G/5G相關專利起訴吉利對中國汽車及蜂窩模組企業的影響

諾基亞于2025年7月18日向歐洲統一專利法院(UPC)曼海姆分庭和德國慕尼黑法院提起訴訟,控訴中國吉利控股集團及其極氪、領克、路特斯、Smart等關聯品牌在未經許可的情況下使用諾基亞4項蜂窩通信標準必要專利 。涉案專利包括1項覆蓋4G/5G的標準必…

Kotlin反射詳解

反射是一種機制,它允許我們在運行時檢查、修改和操作類或對象的內部結構。反射開啟了動態編程的可能性,在開發庫、框架或工具等場景中非常有用。Java 中的反射 在 Java 中,反射一直是實現動態編程的重要基石。它允許開發者在不提前知道類名的…

學習嵌入式-IMX6ULL學習——中斷

volatile:易變的,防止系統優化對寄存器做處理的時候使用,在進行寫1清零操作時,防止該操作被系統優化;一、GIC通用中斷控制器1.GIC通用中斷控制器GIC接收眾多外部中斷,然后對其進行處理,最終通過…

HENGSHI SENSE 6.0 功能-AI 查數助手

面向所有AI Agent開放BI和數據分析能力 AI 查數助手 6.0版本中,我們AI助手的優化是比較深入且全面的。從問答效率到集成能力,都得到了大的躍升,是智能問數應用場景的重大升級以及體驗的全方位優化。我們優化了 AI 助手執行流程,…

降壓型DCDC電源芯片推薦-芯伯樂XBL4001 40V/5A

在電子設備不斷追求高性能與低功耗的今天,電源管理芯片的重要性不言而喻。芯伯樂主推的XBLW-XBL4001芯片,憑借其出色的設計與穩定的性能,為電源管理領域帶來了一款實用的新選擇。一、芯片概述XBLW-XBL4001是一款降壓型(Buck&#…

uni-app app端安卓和ios如何申請麥克風權限,喚起提醒彈框

代碼包含功能如下: 1、判斷推送權限是否開啟 2、判斷定位權限是否開啟 3、判斷麥克風權限是否開啟 4、判斷相機權限是否開啟 5、判斷相冊權限是否開啟 6、判斷通訊錄權限是否開啟 7、判斷日歷權限是否開啟 8、判斷備忘錄權限是否開啟 9、Android權限查詢 10、檢查系…

關于 Rust 異步(無棧協程)的相關疑問

這是一個記錄問題求助的文章。關于 waker 與運行時的合作方式我膚淺地學習了 Rust 異步底層實現原理,關于 Future、waker 和運行時等。關于 waker 我有三點猜測:waker 是由實現執行器的人提供的在執行器中會調用 epoll_wait,epoll 返回 fd&am…

stm32項目(25)——基于stm32的植物生長箱環境監測系統

1.實現功能 測 環境溫濕度、光照強度、土壤濕度、水箱水位 手機APP顯示 溫度過低-->打開加熱板 濕度過低-->打開水泵 土壤濕度低-->開水泵 --->只要有指標低于閾值時 就蜂鳴器報警 光強弱-->補光 水位低-->抽水 OLED屏幕實時顯示各種信息 分…

golang 基礎案例_02

1.鎖有時候我們的代碼中可能會存在多個 goroutine 同時操作一個資源(臨界區)的情況,這種情況下就會發生競態問題(數據競態)。(1)、互斥鎖;(2)、讀寫互斥鎖;(3)、sync.WaitGroup;(4)、…

C++算法·前綴和

前綴和(Prefix(Prefix(Prefix Sum)Sum)Sum)的定義 前綴和是一種高效處理區間求和問題的算法技巧 其核心思想是通過預處理構建一個前綴和數組 使得后續的區間和查詢可以在常數時間O(1)O(1)O(1)內完成 核心概念 定義 給定一個數組a[1...n]a[1...n]a[1...n],其前綴和數組s[1...…

JavaEE 初階第十七期:文件 IO 的 “管道藝術”(下)

專欄:JavaEE初階起飛計劃 個人主頁:手握風云 目錄 一、Java文件內容寫入 1.1. OutputStream 二、字符流讀取和寫入 2.1. Reader 2.2. Writer 三、示例練習 3.1. 查找文件功能 一、Java文件內容寫入 1.1. OutputStream OutputStream同樣只是?個抽…

【liunx】web高可用---nginx

NGINX簡介Nginx(發音為 “engine x”)是一款由俄羅斯程序員 Igor Sysoev 開發的 輕量級、高性能的 HTTP 和反向代理服務器,同時也是一個 IMAP/POP3/SMTP 代理服務器。自 2004 年首次發布以來,Nginx 憑借其 高并發處理能力、低內存…

FPGA+護理:跨學科發展的探索(二)

FPGA護理:跨學科發展的探索(二) 系列文章目錄 FPGA護理:跨學科發展的探索(一) 文章目錄FPGA護理:跨學科發展的探索(二)系列文章目錄引言三、FPGA 在精神醫學護理中的應用…

localforage的數據倉庫、實例、storeName和name的概念和區別

在 localForage 中,數據倉庫、實例、storeName 和 name 是核心概念,用于管理底層存儲(IndexedDB/WebSQL/localStorage)。以下是詳細解釋和區別: 1. 數據倉庫 (Database) 定義:指底層的物理數據庫&#xff…

使用MAS(Microsoft Activation Scripts)永久獲得win10專業版和office全套

文章目錄Microsoft Activation Scripts簡介下載地址使用方法Microsoft Activation Scripts簡介 MAS是Microsoft Activation Scripts縮寫。 主要提供如下功能: 使用該腳本可以永久獲得win10專業版和office全套(可選) 下載地址 https://pan…