計算機網絡核心知識點全解析(面試通關版)

一、網絡體系結構:從OSI到TCP/IP的分層設計

1.1 七層模型與四層模型對比

OSI七層模型核心功能TCP/IP四層對應典型協議生活類比
應用層為應用程序提供服務(如文件傳輸、郵件、Web瀏覽)應用層HTTP、FTP、SMTP、DNS快遞面單信息(收件人、地址填寫)
表示層數據格式轉換(如JSON/XML解析)、加密(如SSL/TLS)、壓縮應用層-包裹打包(將物品轉換為標準格式)
會話層建立/管理通信連接(如斷點續傳、會話保持)應用層-快遞員與收件人電話確認配送流程
傳輸層端到端可靠(TCP)或不可靠(UDP)傳輸,實現流量控制與差錯校驗傳輸層TCP、UDP快遞運輸方式(普快/特快選擇)
網絡層網絡尋址與路由選擇(IP尋址、分組轉發)網絡層IP、ICMP、OSPF、BGP導航系統規劃運輸路線(高速/省道)
數據鏈路層相鄰節點間幀傳輸,實現硬件地址(MAC)尋址與差錯檢測鏈路層ARP、PPP、Ethernet十字路口交通規則(車道選擇/糾錯)
物理層二進制比特流傳輸(電壓/光信號轉換),定義物理接口標準物理層Ethernet、WiFi、光纖實際道路(高速公路/小巷等介質)

1.2 設計理念差異

  • OSI:理論導向,嚴格分層(適合教學),但協議復雜、實現困難。
  • TCP/IP:務實導向,合并表示層/會話層功能到應用層,聚焦效率(如HTTP直接處理數據格式)。

二、傳輸層核心:TCP與UDP的深度對比

2.1 TCP三次握手:可靠連接的建立

狀態轉換與報文交互
客戶端:CLOSED → SYN_SEND(第一次:SYN=1, seq=x)  → ESTABLISHED(第三次:ACK=1, ack=y+1, seq=x+1)  服務器:CLOSED → LISTEN → SYN_RCVD(第二次:SYN=1, ACK=1, seq=y, ack=x+1)  → ESTABLISHED  
關鍵細節
  • 防歷史連接:首次握手SYN報文不攜帶數據,但消耗1個序號,避免舊連接重復初始化。
  • SYN Flood攻擊
    • 原理:惡意發送大量SYN報文后斷開,耗盡服務器SYN隊列(默認存儲5次重試,耗時63秒)。
    • 防御:Linux啟用TCP Syncookies,通過源地址+端口+時間戳生成無狀態ACK,無需維護半連接表。

2.2 TCP四次揮手:連接的安全釋放

狀態轉換與報文交互
客戶端:ESTABLISHED → FIN_WAIT_1(第一次:FIN=1, seq=u)  → FIN_WAIT_2(第二次:ACK=1, ack=u+1)  → TIME_WAIT(第四次:ACK=1, ack=w+1) → CLOSED  服務器:ESTABLISHED → CLOSE_WAIT(第二次) → LAST_ACK(第三次:FIN=1, seq=w) → CLOSED  
核心機制
  • TIME_WAIT存在原因
    1. 等待2×MSL(最長報文段壽命,Linux默認30秒),確保被動關閉方重傳的FIN能被接收。
    2. 避免新舊連接混淆:防止延遲的舊報文段被誤認為新連接數據。
  • CLOSE_WAIT排查:服務器未調用close()釋放連接,常見于IO流未關閉或線程池資源泄漏。

2.3 滑動窗口:流量控制的核心

窗口機制
  • 發送窗口:大小由接收方通告窗口(rwnd)和擁塞窗口(cwnd)決定(取最小值),表示“允許發送但未確認”的數據范圍。
  • 接收窗口:接收方根據緩沖區剩余空間動態調整,通過ACK的Window Field告知發送方。
  • 零窗口通知:接收方忙時發送Window=0暫停傳輸,后續通過窗口探測報文恢復(每60秒一次)。

2.4 擁塞控制:四階段算法詳解

階段cwnd增長方式觸發條件核心邏輯
慢啟動指數增長(初始1 MSS,每RTT翻倍)初始連接或超時恢復快速探測網絡容量,超過閾值(ssthresh)后進入擁塞避免。
擁塞避免線性增長(每RTT+1 MSS)達到ssthresh避免突發流量擁塞,穩定提升吞吐量。
快速重傳立即重傳3次重復ACK對應的報文收到3個重復ACK無需等待超時,直接重傳丟失報文,減少延遲(比超時重傳快約1個RTT)。
快速恢復cwnd = ssthresh + 3 MSS快速重傳后假設3個ACK代表3個報文已接收,直接進入擁塞避免,維持較高傳輸速率。

2.5 TCP vs UDP:協議特性對比

特性TCP(面向連接)UDP(無連接)
可靠性可靠(確認重傳、流量控制)不可靠(盡力而為,無重傳)
有序性保證順序(序列號+排序重組)無序(接收順序可能亂序)
數據單位字節流(無邊界,按需拆分)數據報(保留應用層報文邊界)
首部開銷20字節(固定首部)8字節(僅端口+長度+校驗)
典型場景HTTP文件傳輸、郵件(可靠優先)DNS查詢、視頻直播(低延遲優先)

2.6 TCP流量控制:滑動窗口的進階細節

1. 窗口類型與調整策略
  • 接收窗口(rwnd)

    • 由接收方決定,通過ACK報文的Window Field動態通告(16位字段,默認最大65535字節,可通過TCP Window Scale選項擴展至1GB)。
    • 示例:若接收方緩沖區剩余1MB,則通告Window=1048576,允許發送方發送最多1MB未確認數據。
  • 擁塞窗口(cwnd)

    • 由發送方維護,初始值為1 MSS(約1460字節),通過慢啟動、擁塞避免算法動態調整。
    • 有效窗口Effective Window = min(rwnd, cwnd),實際可發送的數據量受兩者限制。
2. 零窗口與窗口探測
  • 零窗口場景:接收方緩沖區滿時發送Window=0,發送方停止發送數據,進入TCP_KEEPALIVE狀態。
  • 窗口探測機制
    • 發送方每60秒發送一個1字節的探測報文(僅含ACK標志),觸發接收方重新通告窗口大小。
    • 若連續3次探測未收到響應,判定連接失效,觸發RST重置。
3. Nagle算法與延遲ACK
  • Nagle算法

    • 目的:減少小報文段(如1字節數據)的傳輸,合并成更大的報文段(默認啟用)。
    • 規則:發送方在收到前一個報文段的ACK前,緩存后續小數據;僅當數據達到MSS或收到ACK時發送。
    • 適用場景:交互式應用(如SSH)可能關閉Nagle算法(通過TCP_NODELAY選項),避免延遲。
  • 延遲ACK

    • 接收方不立即回復ACK,而是等待200ms或收到第二個報文段后再確認,減少ACK數量。
    • 與Nagle算法配合:接收方延遲ACK時,發送方可能積累更多數據,提高傳輸效率。

2.7 UDP的進階應用:QUIC協議深度解析

1. QUIC核心特性對比TCP/UDP
特性TCPUDPQUIC
連接建立3次握手+TLS 2-RTT無連接TLS 1-RTT(首次)/0-RTT(會話恢復)
隊頭阻塞存在(傳輸層)無(但應用層需處理亂序)消除(單個流獨立,流內有序,流間并行)
擁塞控制慢啟動/擁塞避免集成TCP優秀算法(如CUBIC),動態調整更靈活
可靠性強可靠可選可靠(基于流的ACK/重傳)
連接遷移依賴IP(更換網絡需重連)基于Connection ID(跨網絡保持會話)
2. QUIC的流模型
  • 單向流(Unidirectional Stream):只能由發起方發送數據(如客戶端→服務器的請求流)。
  • 雙向流(Bidirectional Stream):雙方均可發送數據(如服務器→客戶端的響應流)。
  • 流優先級:通過流權重動態調整資源分配,確保關鍵資源(如HTML)優先傳輸。

三、應用層協議:HTTP/HTTPS的深度解析

3.1 HTTP報文結構:請求與響應

請求報文示例
GET /api/user?name=test HTTP/1.1          # 請求行:方法+URL+版本  
Host: www.example.com                     # 請求頭:主機地址  
User-Agent: curl/7.68.0                    # 客戶端信息  
Connection: keep-alive                     # 長連接配置  (空行)  
請求正文(GET無正文,POST包含JSON/表單數據)  
響應報文示例
HTTP/1.1 200 OK                            # 狀態行:版本+狀態碼+描述  
Content-Type: application/json; charset=utf-8 # 響應頭:內容類型  
Content-Length: 128                         # 正文長度  (空行)  
{"code": 200, "message": "OK"}             # 響應正文(JSON格式)  

3.2 GET vs POST:核心區別

維度GETPOST
數據位置URL參數(明文,可見于地址欄)請求體(可加密,如JSON)
冪等性冪等(多次請求結果一致)非冪等(可能修改資源狀態)
安全性低(參數易被劫持)高(適合提交密碼等敏感數據)
長度限制受限于瀏覽器URL長度(如IE 2083字節)理論無限制(受服務器配置影響)
典型場景查詢資源(如獲取用戶列表)創建/更新資源(如提交訂單)

3.3 HTTP版本演進:從1.1到3.0

HTTP/1.1:長連接與管線化
  • 長連接:默認Connection: keep-alive,多個請求復用TCP連接,減少三次握手開銷。
  • 管線化:客戶端可連續發送多個請求,無需等待前一個響應(但服務器需按順序處理,仍存在隊頭阻塞)。
HTTP/2:二進制分幀與多路復用
  • 二進制分幀:將請求/響應分解為二進制幀(如HEADERS幀DATA幀),解析更快且支持并行傳輸。
  • 多路復用:單個TCP連接中并發傳輸多個請求/響應,通過流ID(Stream ID)區分,徹底解決隊頭阻塞。
  • 頭部壓縮:使用HPACK算法,緩存常用頭部(靜態/動態字典),平均減少50%-90%的頭部開銷。
HTTP/3(QUIC):基于UDP的革命性升級
  • 核心優勢
    • 基于UDP:繞過TCP層隊頭阻塞,單個流丟包不影響其他流。
    • 加密先行:TLS握手與連接建立合并為1-RTT(HTTPS需2-RTT),首次連接更快。
    • 連接遷移:切換網絡(如Wi-Fi→4G)時,通過連接ID保持會話,無需重新握手。

3.4 HTTPS:安全通信的實現

TLS握手流程
  1. 客戶端Hello:發送支持的加密算法(如TLS 1.3)和隨機數Client Random
  2. 服務器Hello:選擇加密算法,返回數字證書(含公鑰)、隨機數Server Random
  3. 客戶端驗證
    • 證書有效性(CA簽名、域名匹配、未過期)。
    • 生成預主密鑰(用服務器公鑰加密后發送)。
  4. 密鑰協商:雙方通過Client Random+Server Random+預主密鑰生成對稱密鑰(用于數據加密)。
  5. 安全通信:使用AES-GCM等對稱算法加密數據,通過SHA-256校驗完整性。
加密算法分類
類型算法示例作用
非對稱加密RSA、ECDSA交換對稱密鑰(公鑰加密,私鑰解密)
對稱加密AES-256-GCM、ChaCha20數據加密(高效,單密鑰)
摘要算法SHA-256、SHA-384生成數據指紋(防篡改)

3.5 HTTP緩存機制:強緩存與協商緩存

1. 強緩存(本地緩存直接生效)
  • 控制字段
    • Cache-Control: max-age=604800(資源有效期7天)。
    • Expires: Thu, 31 Dec 2025 23:59:59 GMT(絕對過期時間,優先級低于max-age)。
  • 流程:客戶端檢查緩存有效期,未過期則直接使用本地緩存,無需發送請求。
2. 協商緩存(服務器驗證緩存有效性)
  • 驗證字段
    • Last-Modified/If-Modified-Since:比較資源最后修改時間(精度秒級)。
    • ETag/If-None-Match:比較資源內容哈希(精度字節級,優先級高于Last-Modified)。
  • 流程
    1. 客戶端發送請求,攜帶If-None-Match(ETag值)。
    2. 服務器對比ETag,若一致則返回304 Not Modified,客戶端使用緩存;否則返回200 OK及新數據。
3. 緩存策略對比
場景強緩存協商緩存
網絡請求無(直接讀本地)有(發送驗證請求)
服務器參與是(驗證資源是否更新)
適用場景靜態資源(CSS/JS/圖片)動態資源(用戶數據頁面)

3.6 HTTPS證書體系:從申請到驗證

1. 證書類型
類型驗證級別特點示例
自簽名證書無需CA,僅用于測試環境本地開發服務器
域名驗證(DV)僅驗證域名所有權(郵箱/文件)免費證書(Let’s Encrypt)
組織驗證(OV)驗證企業資質(營業執照)企業官網
擴展驗證(EV)嚴格審核,地址欄顯示綠色鎖銀行/金融機構網站
2. 證書驗證流程
  1. 客戶端獲取證書:服務器在TLS握手階段發送證書(.cer文件)。
  2. 驗證證書鏈
    • 從客戶端內置的根CA證書開始,逐級驗證證書簽名(根CA→中間CA→服務器證書)。
    • 檢查證書有效期、域名匹配(Subject Alternative Name字段)。
  3. CRL與OCSP
    • CRL(證書吊銷列表):CA定期發布吊銷證書列表,客戶端下載對比(效率低,已逐漸淘汰)。
    • OCSP(在線證書狀態協議):實時查詢CA服務器,確認證書是否有效(如OCSP Stapling技術減少延遲)。

四、網絡層與鏈路層:底層尋址與路由

4.1 ARP協議:IP到MAC地址的映射

工作原理
  1. 廣播請求:主機A發送ARP請求(目標IP=B的IP,目標MAC=FF:FF:FF:FF:FF:FF),詢問“誰有這個IP?請告知MAC地址”。
  2. 單播響應:主機B收到后回復ARP響應(包含自己的MAC地址),主機A緩存到ARP表(默認有效期10-30分鐘)。
  3. 更新機制:若B的MAC地址變化,發送免費ARP(目標IP=自己IP)強制更新全網緩存。
攻擊與防御
  • ARP欺騙:偽造IP-MAC映射,攔截流量(如中間人攻擊)。
  • 防御措施
    • 靜態綁定:arp -s 網關IP 網關MAC(防止動態篡改)。
    • 交換機啟用DAI(動態ARP檢測),驗證ARP報文的合法性。

4.2 路由協議:從本地到全網的路徑選擇

類型協議工作原理適用場景
靜態路由手動配置管理員手工寫入路由表小型網絡(<10節點)
距離矢量RIP向鄰居發送路由表(跳數作為度量)早期小型網絡
鏈路狀態OSPF構建全網鏈路圖(Dijkstra算法)大型企業網絡
路徑矢量BGP自治系統間策略路由(AS間通信)互聯網核心路由

4.3 IPv4分片機制:MTU限制與重組

1. 關鍵字段
  • MTU(最大傳輸單元):數據鏈路層允許的最大幀大小(以太網默認1500字節)。
  • MF(More Fragments):標識是否為最后一個分片(1=后續還有分片,0=最后一個)。
  • Fragment Offset:分片數據在原始IP包中的偏移量(單位8字節)。
2. 分片示例
  • 原始IP包:1500字節(MTU=1500),包含20字節IP頭+1480字節數據。
  • 若需通過MTU=1000的鏈路:
    • 第一個分片:IP頭20字節+數據980字節(MF=1,Offset=0)。
    • 第二個分片:IP頭20字節+數據500字節(MF=0,Offset=122.5→實際122×8=976字節,因Offset單位為8字節)。
3. 分片重組
  • 僅接收方負責重組,重組超時時間約60秒(避免內存泄漏)。
  • 若分片丟失,整個IP包被丟棄(無部分重組機制),需上層協議(TCP)重傳。

4.4 OSPF路由協議:區域劃分與LSA類型

1. 區域類型
  • 骨干區域(Area 0):必須存在,連接所有非骨干區域,負責區域間路由匯總。
  • Stub區域:不允許AS外部路由(Type 5 LSA),減少路由表規模(如企業內網區域)。
  • NSSA區域:允許引入外部路由(Type 7 LSA),但需轉換為Type 5 LSA注入骨干區域。
2. LSA類型
類型名稱傳播范圍作用
Type 1路由器LSA單個區域描述路由器接口的IP地址和開銷
Type 2網絡LSA單個區域描述廣播網絡/NBMA網絡的DR和成員
Type 3匯總LSA區域間傳遞區域間路由(子網信息)
Type 5外部LSA整個AS傳遞AS外部路由(如BGP引入的路由)

五、基礎概念與實戰問題

5.1 端口vs接口:易混淆概念

  • 端口(Port)
    • 傳輸層概念(16位整數,0-65535),標識主機上的應用程序(如80→HTTP,443→HTTPS)。
    • 作用:同一主機上多個應用可通過端口區分,如服務器同時提供HTTP(80)和FTP(21)服務。
  • 接口(API)
    • 應用層概念,指程序對外暴露的調用入口(如RESTful接口GET /users/{id})。
    • 關系:接口通過端口提供服務,一個端口可承載多個接口(通過URL路徑區分,如/api/v1/user/api/v2/user)。

5.2 IPv4 vs IPv6:地址空間革命

特性IPv4IPv6
地址長度32位(4字節,約43億地址)128位(16字節,地址空間2^128)
表示方式點分十進制(192.168.1.1)冒分十六進制(2001:db8::1)
安全性無內置加密(需IPSec)內置IPSec(強制加密傳輸)
自動配置依賴DHCP支持無狀態自動配置(鏈路本地地址)

5.3 PPP協議:撥號網絡的核心

1. 組件構成
  • LCP(鏈路控制協議):建立/配置/測試數據鏈路(如協商最大傳輸單元MTU)。
  • NCP(網絡控制協議):為上層協議(如IP、IPX)提供服務(如IPCP協商IP地址)。
  • 認證協議
    • PAP:明文傳輸用戶名密碼(不安全,已廢棄)。
    • CHAP:三次握手認證,服務器發送隨機挑戰值,客戶端用密碼哈希響應(更安全)。
2. PPPoE(以太網上的PPP)
  • 應用場景:ADSL撥號上網,在以太網幀中封裝PPP報文。
  • 階段
    1. 發現階段:客戶端廣播尋找BRAS(寬帶遠程接入服務器),獲取對方MAC地址。
    2. 會話階段:建立PPP連接,傳輸數據(如IP數據包)。

5.4 以太網:CSMA/CD與VLAN影響

1. CSMA/CD(載波監聽多路訪問/沖突檢測)
  • 工作原理
    1. 發送前監聽信道,空閑則發送;若檢測到沖突,發送阻塞信號后隨機退避(二進制指數退避算法)。
    2. 退避時間:隨機數×512比特時間(如第一次沖突后隨機0或1,第二次0-3,最大退避1023次)。
  • 局限性:僅適用于半雙工模式,全雙工模式下無需沖突檢測(可同時收發)。
2. VLAN對鏈路層的影響
  • 802.1Q標簽:在以太網幀中插入4字節標簽(包含VLAN ID,12位,支持4094個VLAN)。
  • 跨VLAN通信:需通過三層設備(路由器/三層交換機),因為VLAN隔離了二層廣播域。

六、面試高頻問題深度解析

6.1 為什么TCP三次握手不能是兩次?

  • 核心原因:兩次握手無法確認雙方序列號的接收可靠性。
    • 假設客戶端發送舊SYN報文(序列號x1),服務器回復SYN-ACK(序列號y,確認x1+1),客戶端此時若未發送第三次ACK,服務器誤以為連接建立,導致資源浪費。
    • 三次握手確保客戶端和服務器都明確對方已收到自己的初始化序列號,避免歷史連接干擾。

6.2 HTTP無狀態如何實現會話管理?

  • 解決方案
    1. Cookie:服務器發送Cookie到客戶端(如JSESSIONID),后續請求攜帶Cookie,實現狀態跟蹤(存在CSRF風險,需設置SameSite=Strict)。
    2. Session:服務器存儲會話數據(如用戶登錄信息),返回Session ID給客戶端(通過Cookie或URL重寫),分布式場景需用Redis等共享存儲。
    3. JWT(JSON Web Token):客戶端存儲包含用戶信息的Token,無需服務器存儲,適合微服務架構(需HTTPS防止Token泄露)。

6.3 HTTPS真的絕對安全嗎?

  • 局限性
    • 證書信任鏈問題:若用戶信任被篡改的CA證書(如中間人攻擊偽造證書),仍可能泄露數據。
    • HTTP劫持風險:從http://跳轉https://的過程中,可能被植入惡意內容(啟用HSTS強制HTTPS可緩解)。
    • 性能開銷:加密計算增加CPU負載,首次連接延遲(TLS握手1-RTT)高于HTTP。

6.4 常用網絡診斷命令

1. 端口與連接排查
  • netstat -antp:顯示所有TCP/UDP連接,ESTABLISHED為已建立連接,TIME_WAIT為等待釋放。
  • ss -ltun:更高效的socket統計工具,-l顯示監聽端口,-t TCP,-u UDP。
  • lsof -i :port:查看占用指定端口的進程(如lsof -i :80定位HTTP服務進程)。
2. 路由與DNS排查
  • traceroute -I:使用ICMP探測路由路徑(-I強制使用IPv4)。
  • nslookup domain:手動查詢DNS解析(如nslookup www.baidu.com查看IP映射)。
  • dig +trace domain:跟蹤DNS解析過程(從根域名服務器到權威服務器的查詢路徑)。
3. 抓包分析
  • tcpdump -i eth0 ‘tcp port 80’:抓取eth0接口80端口的TCP流量。
  • Wireshark過濾規則
    • 顯示HTTP GET請求:http.request.method == "GET"
    • 顯示TCP重傳包:tcp.flags.res == 1(RST標志)或tcp.analysis.retransmission

6.5 性能優化案例

1. TCP參數調優(Linux)
  • 增大接收緩沖區sysctl -w net.core.rmem_max=16777216(16MB,提升大文件傳輸吞吐量)。
  • 縮短TIME_WAIT時間sysctl -w net.ipv4.tcp_fin_timeout=30(默認60秒,降低端口占用)。
  • 啟用TCP BBR擁塞控制echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf(適合高帶寬延遲網絡)。
2. HTTP/2優化
  • 啟用HPACK動態字典:服務器緩存客戶端常用頭部(如User-AgentAccept-Encoding),減少重復傳輸。
  • 優先級配置:通過:priority頭指定資源優先級(如HTML優先于圖片),確保關鍵資源先加載。

七、面試問題深度拓展

7.1 深入理解TCP序列號

問:為什么TCP的序列號是按字節編號,而非按報文段編號?

  • 可靠性需求:按字節編號可精確標識每個數據單元,支持部分重傳(如丟失中間某個字節,僅重傳該字節所在的報文段)。
  • 流量控制精度:滑動窗口基于字節范圍(如ack=1001表示前1000字節已接收),比報文段編號更細粒度。
  • 兼容性:適應不同MTU的鏈路,即使報文段被分片,仍可通過字節偏移重組數據。

7.2 HTTPS握手失敗排查

問:客戶端訪問HTTPS網站時提示“證書不可信”,可能的原因有哪些?

  1. 證書過期:檢查證書的Not BeforeNot After時間。
  2. 域名不匹配:證書的Common NameSubject Alternative Name與訪問域名不一致(如證書為www.example.com,卻訪問api.example.com)。
  3. 根CA缺失:客戶端未安裝證書鏈中的根CA(常見于企業自建CA場景)。
  4. 中間人攻擊:攻擊者偽造證書,攔截通信(需檢查證書簽名是否為可信CA)。

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

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

相關文章

AI圖稿生成訂單管理系統

讓設計生產“零誤差、全自動、秒響應” 一、核心價值&#xff1a;重構設計到生產的效率革命 效率提升70% 告別人工排版&#xff0c;AI自動復用歷史稿件模板&#xff0c;單次設計永久沉淀為可調用資產&#xff1b; 印刷文件生成速度達20萬張/分鐘&#xff0c;滿足電商大促、…

TwinCAT數據類型,%MX,%MD這些特殊符號

在 TwinCAT&#xff08;Beckhoff PLC 編程環境&#xff09;中&#xff0c;%MX、%MD 等符號是 IEC 61131-3 標準的地址表示法&#xff0c;用于直接訪問 PLC 的物理 I/O 或內存區域。這些符號通常用于 變量聲明 或 直接尋址&#xff0c;特別是在 TwinCAT 2 和 傳統 PLC 編程 中較…

基于UNet算法的農業遙感圖像語義分割——補充版

前言 本案例希望建立一個UNET網絡模型&#xff0c;來實現對農業遙感圖像語義分割的任務。本篇博客主要包括對上一篇博客中的相關遺留問題進行解決&#xff0c;并對網絡結構進行優化調整以適應個人的硬件設施——NVIDIA GeForce RTX 3050。 本案例的前兩篇博客直達鏈接基于UNe…

Compose筆記(二十一)--AnimationVisibility

這一節主要了解一下Compose的AnimationVisibility,AnimatedVisibility 是 Jetpack Compose 里用于實現組件可見性動畫效果的組件&#xff0c;借助它能讓組件在顯示和隱藏時帶有平滑的過渡動畫&#xff0c;從而提升用戶體驗。現總結如下: API 1. visible 含義&#xff1a;這是一…

基于 HT 構建 2D 智慧倉儲可視化系統的技術解析

在當今數字化時代&#xff0c;倉儲管理對于企業的運營效率和成本控制愈發關鍵。圖撲軟件&#xff08;Hightopo&#xff09;憑借其強大的 HT for Web 產品&#xff0c;打造出 2D 智慧倉儲可視化平臺&#xff0c;為倉儲管理帶來了全新的技術解決方案。 HT 是一款基于 WebGL、can…

HTML ASCII 編碼詳解

HTML ASCII 編碼詳解 引言 HTML&#xff08;HyperText Markup Language&#xff09;是一種用于創建網頁的標準標記語言。在HTML中&#xff0c;字符的表示方式非常重要&#xff0c;因為它直接影響到網頁內容的顯示效果。ASCII編碼作為一種基本的字符編碼方式&#xff0c;在HTM…

pinia-plugin-persistedstate的使用

pinia持久化存儲的使用 安裝 npm install pinia-plugin-persistedstate 注冊 import { createPinia } from pinia import piniaPluginPersistedstate from pinia-plugin-persistedstateconst pinia createPinia() pinia.use(piniaPluginPersistedstate)export default pinia …

Vue:el-table-tree懶加載數據

目錄 一、出現場景二、具體使用三、修改時重新加載樹節點四、新增、刪除重新加載樹節點 一、出現場景 在項目的開發過程中&#xff0c;我們經常會使用到表格樹的格式&#xff0c;但是猶豫數據較多&#xff0c;使用分頁又不符合項目需求時&#xff0c;就需要對樹進行懶加載的操…

ChipCN IDE KF32 導入工程后,無法編譯的問題

使用ChipON IDE for KungFu32 導入已有的工程是時&#xff0c;發現能夠編譯&#xff0c;但是點擊&#xff0c;同時選擇硬件調試時 沒有任何響應。查看工程調試配置時&#xff0c;發現如下問題&#xff1a; 沒有看到添加有啟動配置&#xff0c;說明就是這里的問題了(應該是IDE的…

前端筆記-Element-Plus

結束了vue的基礎學習&#xff0c;現在進一步學習組件 Element-Plus部分學習目標&#xff1a; Element Plus1、查閱官方文檔指南2、學習常用組件的使用方法3、Table、Pagination、Form4、Input、Input Number、Switch、Select、Date Picker、Button5、Message、MessageBox、N…

C++入門小館: 模板

嘿&#xff0c;各位技術潮人&#xff01;好久不見甚是想念。生活就像一場奇妙冒險&#xff0c;而編程就是那把超酷的萬能鑰匙。此刻&#xff0c;陽光灑在鍵盤上&#xff0c;靈感在指尖跳躍&#xff0c;讓我們拋開一切束縛&#xff0c;給平淡日子加點料&#xff0c;注入滿滿的pa…

強化學習之基于無模型的算法之基于值函數的深度強化學習算法

3、基于值函數的深度強化學習算法 1&#xff09;深度Q網絡&#xff08;DQN&#xff09; 核心思想 DQN是一種將Q學習與深度神經網絡結合的方法&#xff0c;用于解決高維狀態空間的問題。 它以環境的狀態作為輸入&#xff0c;通過神經網絡輸出每個動作的 Q 值&#xff0c;智能體…

網絡規劃和設計

1.結構化綜合布線系統包括建筑物綜合布線系統PDS&#xff0c;智能大夏布線系統IBS和工業布線系統IDS 2.GB 50311-2016綜合布線系統工程設計規范 GB/T 50312-2016綜合布線系統工程驗收規范 3.結構化布線系統分為6個子系統&#xff1a; 工作區子系統&#xff1b;水平布線子系…

軟件設計師-錯題筆記-計算機硬件和體系

1. 解析&#xff1a;循環冗余校驗碼也叫CRC校驗碼&#xff0c;其中運算包括了模2&#xff08;異或&#xff09;來構造校驗位。別的三種沒有用到模2的方法。 2. 解析&#xff1a;如果是正數&#xff0c;則是首位為0&#xff0c;其余位全為1&#xff0c;這時最大數(2^(n-1))-1…

OpenCV 4.7企業級開發實戰:從圖像處理到目標檢測的全方位指南

簡介 OpenCV作為工業級計算機視覺開發的核心工具庫,其4.7版本在圖像處理、視頻分析和深度學習模型推理方面實現了顯著優化。 本文將從零開始,系統講解OpenCV 4.7的核心特性和功能更新,同時結合企業級應用場景,提供詳細代碼示例和實戰項目,幫助讀者掌握從基礎圖像處理到復…

LeetCode算法題 (除自身以外數組的乘積)Day14!!!C/C++

https://leetcode.cn/problems/product-of-array-except-self/description/ 一、題目分析 給你一個整數數組 nums&#xff0c;返回 數組 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘積 。 題目數據 保證 數組 nums之中任意元素的全部前綴…

如何寫好Verilog狀態機

還記得之前軟件的同事說過的一句話。怎么凸顯自己的工作量&#xff0c;就是自己給自己寫BUG。 看過夏宇聞老師書的都知道&#xff0c;verilog的FSM有moore和mealy,然后有一段&#xff0c;二段&#xff0c;三段式。記得我還是學生的時候&#xff0c;看到這里的時候&#xff0c;感…

晶振頻率/穩定度/精度/溫度特性的深度解析與測量技巧

在電子設備的精密世界里&#xff0c;晶振如同跳動的心臟&#xff0c;為各類系統提供穩定的時鐘信號。晶振的頻率、穩定度、精度以及溫度特性&#xff0c;這些關鍵參數不僅決定了設備的性能&#xff0c;更在不同的應用場景中發揮著至關重要的作用。 一、頻率選擇的本質&#xff…

Kafka-可視化工具-Offset Explorer

安裝&#xff1a; 下載地址&#xff1a;Offset Explorer 安裝好后如圖&#xff1a; 1、下載安裝完畢&#xff0c;進行新增連接&#xff0c;啟動offsetexplorer.exe&#xff0c;在Add Cluster窗口Properties 選項下填寫Cluster name 和 kafka Cluster Version Cluster name (集…