InfiniBand可靠連接(RC)模式:設計原理、核心機制與應用實踐

引言

InfiniBand作為一種高性能網絡互連技術,廣泛應用于超算集群、分布式存儲和金融交易系統等領域。其可靠連接(Reliable Connection, RC)模式以硬件級的有序性、可靠性和低延遲特性成為關鍵場景的首選。本文結合技術原理、機制對比和實際應用,深入解析InfiniBand RC模式的核心設計。


一、有序性與可靠性保障機制

1.?嚴格按序交付
  • 鏈路層有序傳輸:InfiniBand的RC模式在鏈路層直接保證數據包按發送順序傳輸,無需傳輸層額外排序。

  • 端到端連接管理:每個RC連接對應獨立的隊列對(QP),數據僅在固定QP間傳輸,避免多路徑導致的亂序。

2.?序列號(PSN)與重傳
  • 包序列號(PSN):每個數據包攜帶唯一PSN,接收端按PSN順序驗證數據完整性。

  • NACK觸發選擇性重傳:若檢測到PSN不連續(如收到PSN=5但期望PSN=3),接收端丟棄亂序包并發送NACK,要求僅重傳缺失的PSN包(如PSN=3)。

  • 硬件加速重傳:重傳邏輯由網卡硬件(HCA)直接處理,延遲低至微秒級,無需CPU參與。

3.?與TCP的對比
特性InfiniBand RC模式TCP
亂序包處理丟棄亂序包,觸發NACK重傳缺失包緩存亂序包,等待重組
重傳粒度僅重傳NACK指定的缺失PSN包可能重傳整個窗口(如快速重傳)
延遲微秒級(硬件加速)毫秒級(依賴軟件協議棧)
適用場景低亂序率的高性能網絡高亂序率的復雜網絡

二、信用機制(Credit-Based Flow Control)

1.?核心目標
  • 零丟包傳輸:通過預分配接收端緩沖區(信用槽位),避免發送速率超過接收能力。

  • 高效帶寬利用:動態匹配發送端與接收端的處理能力,最大化吞吐量。

2.?工作原理
  • 信用初始化:連接建立時,接收端告知發送端初始信用值(即接收隊列深度)。

  • 信用消耗與返還

    • 發送端每發送一個數據包消耗一個信用,信用耗盡時暫停發送。

    • 接收端每處理完一個包返還一個信用,通過硬件自動發送信用更新包。

  • 硬件級實現:信用管理完全由網卡硬件完成,無CPU開銷。

3.?性能調優
  • 接收隊列深度(RQD):增大RQD可提升信用上限,但需權衡內存消耗。

  • 信用更新策略:高頻更新減少發送阻塞,但增加控制包開銷。


三、NACK機制與亂序處理

1.?亂序數據包處理邏輯
  • 丟棄策略:接收端直接丟棄所有超出當前期望PSN窗口的亂序包,不進行緩存。

  • NACK觸發重傳:接收端發送NACK指明缺失的PSN范圍,發送端僅重傳指定數據包。

2.?設計優勢
  • 低內存開銷:無需維護亂序緩沖區,適合大規模數據傳輸。

  • 低延遲:硬件加速的NACK/重傳機制顯著降低恢復時間。

3.?局限性
  • 依賴網絡質量:假設鏈路層亂序率極低,若網絡環境惡劣,頻繁重傳可能降低有效吞吐量。

  • 不適用公網場景:適用于專用高性能網絡(如HPC集群),而非復雜公網環境。


四、實際應用與驅動改造

1.?IPoIB驅動改造實踐
  • 目標:移除TCP/IP和以太網依賴,僅保留RC模式通信。

  • 關鍵步驟

    • 剝離協議棧:刪除IP封包/解包邏輯,直接操作InfiniBand QP。

    • 重構網絡接口:將net_device替換為RDMA CM接口,繞過Linux網絡協議棧。

    • 性能驗證:使用ibv_rc_pingpongperftest工具測試吞吐量與延遲。

2.?挑戰與解決方案
  • 應用兼容性:需基于RDMA Verbs API重構應用程序,放棄標準Socket接口。

  • 硬件依賴:確保網卡固件和驅動支持純RC模式,避免隱含的TCP/IP依賴。


五、適用場景與性能表現

1.?典型應用場景
  • 高性能計算(HPC):MPI通信、大規模并行計算。

  • 分布式存儲:NVMe over Fabrics(NVMe-oF)、分布式文件系統。

  • 金融交易系統:微秒級延遲的訂單匹配與風控。

2.?性能指標
  • 延遲:RC模式在小消息場景下可達到1微秒以下的端到端延遲。

  • 吞吐量:單端口100Gbps InfiniBand可實現**90%+**的線速吞吐。


六、總結

InfiniBand RC模式通過硬件級的有序性保障信用流量控制NACK重傳機制,在專用高性能網絡中實現了接近理論極限的可靠傳輸效率。其設計哲學是犧牲部分容錯性以換取極致性能,與TCP的“適應復雜環境”形成鮮明對比。對于需要確定性與低延遲的場景(如超算、金融交易),RC模式是無可替代的選擇;而在公網或高亂序環境中,仍需依賴TCP等自適應協議。未來,隨著RDMA技術的普及,RC模式有望在更多領域展現其價值。

在TCP協議中,按順序發送的數據包最終會被接收方按順序接收,但這一過程可能涉及復雜的網絡傳輸和協議處理機制。以下是詳細解釋:


1.?TCP的可靠性與順序性保證

TCP是面向連接的可靠傳輸協議,通過以下機制確保數據順序性:

  • 序列號(Sequence Number):每個數據包都帶有唯一的序列號,接收方根據序列號重組數據。

  • 接收緩沖區(Receive Buffer):接收方會緩存亂序到達的包,等待缺失的包到達后,再按順序提交給應用層。

  • 重傳機制:若檢測到丟包(如超時或收到重復ACK),發送方會重傳丟失的包,確保所有數據最終被接收。


2.?網絡傳輸中的亂序現象

雖然TCP保證順序性,但數據包在網絡中可能以亂序到達接收方,原因包括:

  • 多路徑路由:不同數據包可能通過不同路徑傳輸,導致后發先至。

  • 網絡擁塞或故障:部分路徑的延遲或丟包可能打亂傳輸順序。

示例

  • 發送方發送包1、包2、包3。

  • 網絡導致包2先到達,包1延遲,包3隨后到達。

  • TCP接收方會將包2和包3暫存,直到包1到達后,按1→2→3的順序提交給應用層。


3.?例外情況與性能影響

  • 極端網絡問題:若網絡嚴重不穩定(如大量丟包或延遲),TCP仍會保證順序,但應用層可能感受到延遲(需等待重傳和重組)。

  • 吞吐量下降:亂序和重傳會降低有效傳輸速率,但順序性不受影響。


4.?總結

  • 按順序發送的包會按順序交付給應用層,這是TCP的核心特性。

  • 亂序發生在傳輸過程中,但由TCP協議在接收端修正,對應用透明。

結論:TCP通過序列號、緩沖區管理和重傳機制,確保了數據按發送順序被應用層接收,盡管網絡傳輸可能存在亂序。

在 InfiniBand 的?可靠連接(Reliable Connection, RC)模式?下,按順序發送的數據包會嚴格按順序被接收,這是由其協議設計保證的核心特性之一。以下是具體分析:


1.?RC 模式的基本特性

RC 模式是 InfiniBand 中一種面向連接的可靠傳輸模式,其核心特點包括:

  • 可靠性與順序性:所有數據包按發送順序交付,確保無丟失、無重復,且經過校驗17。

  • 流控制機制:基于信用的流量控制(Credit-Based Flow Control),發送方僅在接收方有足夠緩沖區時發送數據,避免因接收端資源不足導致丟包或亂序78。

  • 硬件級實現:InfiniBand 的傳輸層功能(如序列號管理、重傳)由硬件直接處理,顯著降低延遲和 CPU 開銷17。


2.?有序交付的機制保障

RC 模式通過以下機制確保數據包順序性:

  • 鏈路層有序傳輸:InfiniBand 的鏈路層(Link Layer)直接提供有序數據包交付,傳輸層無需額外排序,僅需驗證序列完整性78。

  • 端到端連接管理:每個 RC 連接對應一個獨立的隊列對(QP),數據包僅在兩個固定 QP 之間傳輸,避免了多路徑導致的亂序17。

  • 重傳機制:若檢測到丟包或錯誤,發送方自動重傳,確保接收方最終按序收到所有數據18。


3.?與 UC/UD 模式的對比

  • 不可靠連接(UC):雖然也是面向連接,但不保證數據包的交付和順序性,適用于容錯性強的場景(如實時流媒體)1。

  • 不可靠數據報(UD):無連接且不保證順序,類似 UDP,適用于低開銷的單播或多播場景18。

  • RC 的優勢:相比 UC 和 UD,RC 通過硬件級可靠性和順序性保障,成為高性能計算(HPC)和分布式存儲等對數據一致性要求嚴格場景的首選17。


4.?性能影響與適用場景

  • 低延遲與高吞吐量:RC 模式在保證順序性的同時,仍能通過 RDMA(遠程直接內存訪問)實現零拷貝傳輸,顯著降低延遲(如測試中 RC 模式在小消息場景下的延遲可低至微秒級)18。

  • 適用場景:適用于需要嚴格順序和可靠性的場景,如數據庫事務、分布式鎖服務、金融交易系統等17。


5.?例外情況與限制

盡管 RC 模式設計上保證順序性,但以下極端情況可能影響實際表現:

  • 硬件故障:如 InfiniBand 適配器或交換機故障可能導致連接中斷,需依賴上層協議或冗余設計恢復7。

  • 配置錯誤:錯誤的子網管理器(Subnet Manager)配置或緩沖區分配不當可能引發性能下降,但不會破壞順序性67。


總結

在 InfiniBand 的?RC 模式?下,數據包按序發送后必然按序接收,這是其協議層和硬件機制共同保障的核心特性。與 TCP 的按序交付類似,但通過硬件加速和 RDMA 技術實現了更低的延遲和更高的吞吐量178。

在修改 IPoIB 驅動源碼以適配?InfiniBand 可靠連接(RC)模式并移除所有 TCP/IP 和以太網相關部分時,需要深入分析驅動架構、核心模塊依賴關系以及協議棧的交互邏輯。以下是具體分析和實施步驟:


一、可行性分析

1.?IPoIB 驅動與 RC 模式的關系
  • IPoIB 的本質:IPoIB 是將 IP 協議運行在 InfiniBand 網絡上的技術,其默認支持?Datagram 模式(不可靠)?和?Connected 模式(可靠,類似 RC 模式)13。Connected 模式通過 InfiniBand 的隊列對(QP)和連接管理(CM)機制實現可靠傳輸,與 RC 模式的核心特性(有序性、可靠性)高度一致36。

  • TCP/IP 與以太網依賴:IPoIB 的默認實現依賴 Linux 網絡協議棧(如?net_device?結構體、IP 封包/解包邏輯),但其底層數據傳輸可通過 InfiniBand 原生接口(如?ib_post_send/ib_post_recv)直接操作,理論上可以繞過 TCP/IP 和以太網封裝36。

2.?技術難點
  • 協議棧剝離:需移除所有與 IP 封包(如 IPv4/IPv6 頭)、以太網幀(如 MAC 地址處理)相關的邏輯,包括數據發送/接收路徑中的封裝/解封裝代碼36。

  • 網絡設備抽象重構:IPoIB 驅動依賴?net_device?結構體注冊為網絡接口,若完全剝離 TCP/IP,需重新設計設備接口,直接對接 InfiniBand 的 RC 通信原語16。

  • 用戶空間兼容性:標準應用程序(如?pingssh)依賴 Socket API,若完全去除 TCP/IP,需提供替代通信接口(如 RDMA Verbs API)5。


二、修改步驟與關鍵代碼調整

1.?配置與編譯選項
  • Kconfig 調整:在?drivers/infiniband/ulp/ipoib/Kconfig?中,移除對 TCP/IP 協議棧的依賴選項(如?CONFIG_INET),確保驅動僅編譯 RC 模式相關代碼2。

  • Makefile 精簡:排除與以太網(如?ethool?支持)和 IP 協議(如?ipv6?模塊)相關的源文件2。

2.?核心代碼修改
  • 移除 IP 封包邏輯

    • 在數據發送路徑(如?ipoib_start_xmit?函數)中,刪除對 IP 頭的封裝代碼,直接傳遞原始數據到 InfiniBand QP6。

    • 在接收路徑(如?ipoib_ib_handle_rx?函數)中,跳過 IP 包解析,直接將 InfiniBand 數據提交給上層應用6。

  • 禁用以太網特性

    • 在設備初始化時(如?ipoib_dev_init),移除對以太網特性(如?NETIF_F_IP_CSUMNETIF_F_SG)的設置3。

    • 修改?ipoib_set_mode_rss?函數,強制鎖定為 Connected 模式,禁用 Datagram 模式切換3。

  • 重構網絡設備接口

    • 將?net_device?替換為自定義結構體,避免依賴 Linux 網絡協議棧。例如,使用 RDMA CM(Connection Manager)直接管理 RC 連接65。

    • 移除與?ifconfigip?命令交互的 Netlink 接口代碼(如?ipoib_netlink.c),改為通過 IB Verbs 或 sysfs 進行配置15。

3.?關鍵函數示例
  • 發送路徑改造(以?ipoib_start_xmit?為例):

    // 原始代碼(含 IP 封裝)
    skb_push(skb, IPOIB_ENCAP_LEN); // 添加 IPoIB 封裝頭
    // 修改后(直接發送原始數據)
    ib_post_send(priv->qp, &wr, &bad_wr); // 通過 InfiniBand QP 發送
  • 接收路徑改造(以?ipoib_ib_handle_rx?為例):

    // 原始代碼(解析 IP 頭)
    skb_pull(skb, IPOIB_ENCAP_LEN); // 剝離 IPoIB 封裝頭
    netif_receive_skb(skb); // 提交給網絡協議棧
    // 修改后(直接提交數據)
    user_buffer_copy(skb->data, skb->len); // 用戶空間直接訪問

三、驗證與測試

1.?功能驗證
  • 連接建立:使用?ibv_rc_pingpong?工具測試 RC 模式的端到端通信,確認數據可按序可靠傳輸5。

  • 性能測試:通過?perftest?工具測量吞吐量和延遲,對比修改前后的性能差異6。

2.?兼容性檢查
  • 協議棧依賴:使用?strace?跟蹤系統調用,確認驅動不再觸發 TCP/IP 相關操作(如?socketbind)5。

  • 內核日志分析:通過?dmesg?檢查是否有 IP 或以太網相關的錯誤日志(如?WARN_ON(netif_running(dev)))3。


四、限制與注意事項

  1. 應用層適配:去除 TCP/IP 后,需基于 RDMA Verbs 或自定義 API 重寫應用程序,無法直接使用標準 Socket 接口5。

  2. 硬件兼容性:需確保 InfiniBand 適配器支持純 RC 模式,且固件/驅動無隱含的 TCP/IP 依賴6。

  3. 維護成本:此類修改會導致與上游內核版本脫節,需定期同步關鍵補丁(如安全修復)2。


五、總結

可以修改 IPoIB 驅動源碼以僅支持 RC 模式并移除 TCP/IP 和以太網部分,但需徹底重構數據路徑、網絡設備接口及用戶空間交互邏輯。此方案適用于需要極致性能(如 HPC 集群)且能接受應用層改造的場景。若需保留部分 IP 兼容性,可考慮折中方案(如保留輕量級 IP 頭封裝但禁用 TCP 校驗和)36。

在InfiniBand的可靠連接(Reliable Connection, RC)模式中,信用機制(Credit-Based Flow Control)?是確保數據傳輸可靠性和高效性的核心機制之一。它通過硬件級的流量控制,避免接收端緩沖區溢出,同時最大化鏈路利用率。以下是其詳細工作原理和意義:


一、信用機制的核心目標

  1. 防止接收端溢出:確保發送方不會發送超過接收端緩沖區容量的數據。

  2. 零丟包與低延遲:通過預分配的信用(緩沖區資源)實現無阻塞傳輸,避免因丟包觸發的重傳。

  3. 高效帶寬利用:動態調整發送速率,匹配接收端處理能力。


二、信用機制的工作原理

1.?信用的定義
  • 信用(Credit)?代表接收端緩沖區中可用的**空閑槽位(Buffer Slot)**數量。

  • 每個槽位對應一個**數據包(Packet)消息分段(Message Segment)**的存儲空間。

  • 信用由接收端主動通知發送端,通過硬件自動管理的**流量控制數據包(Flow Control Packet)**傳遞。

2.?初始化階段
  • 連接建立時:接收端通過連接管理器(CM)告知發送端其初始信用值(即接收隊列深度)。

  • 發送端限制:發送端僅能在當前可用信用范圍內發送數據。

3.?數據傳輸過程
  • 發送端行為

    • 每發送一個數據包,消耗一個信用。

    • 當信用降為0時,暫停發送,等待接收端的新信用。

  • 接收端行為

    • 每處理完一個數據包(提交給應用層或釋放緩沖區),釋放一個信用槽位。

    • 定期或按需通過流量控制數據包將更新后的信用值反饋給發送端。

4.?信用更新方式
  • 顯式更新:接收端主動發送信用更新包(如RC模式中的ACK包攜帶信用信息)。

  • 隱式更新:某些場景下,發送端通過接收端的ACK/NACK推斷信用狀態(較少見,多用于優化場景)。


三、信用機制的實現細節

1.?硬件加速
  • InfiniBand的信用管理完全由**網卡硬件(HCA, Host Channel Adapter)**實現,無需CPU參與。

  • 信用狀態存儲在HCA的隊列對(QP)上下文中,通過**發送隊列(SQ)接收隊列(RQ)**協同工作。

2.?信用與窗口大小
  • 窗口大小(Window Size):發送端在等待信用更新前可發送的最大數據量,等于初始信用值。

  • 動態調整:高性能場景下,可通過擴大接收隊列深度(增加信用)提升吞吐量,但需權衡內存開銷。

3.?與重傳機制的協同
  • 丟包處理:若數據包丟失或損壞,接收端發送NACK觸發重傳,但信用機制確保重傳不會因緩沖區不足而失敗。

  • 順序性保障:信用機制與序列號(PSN, Packet Sequence Number)結合,確保重傳后數據仍按序提交。


四、信用機制 vs. TCP流控

特性InfiniBand RC信用機制TCP滑動窗口
實現層級硬件(HCA網卡)軟件(內核協議棧)
延遲微秒級(無CPU參與)毫秒級(需上下文切換)
開銷零拷貝、無中斷需內存拷貝、中斷處理
動態調整固定信用(初始化時配置)動態窗口(根據擁塞控制算法調整)
適用場景高吞吐、低延遲(HPC、存儲)通用網絡

五、性能調優與配置建議

  1. 接收隊列深度(RQD)

    • 增大隊列深度可提升信用上限,減少發送端阻塞,但需更多內存。

    • 經驗值:通常設置為發送端突發數據量的1.5~2倍。

  2. 信用更新頻率

    • 高頻更新減少發送端等待,但增加控制包開銷。

    • 可通過InfiniBand子網管理器(SM)調整更新策略。

  3. 硬件配置

    • 啟用HCA的自動信用返還功能(如Mellanox的Adaptive Routing)。

    • 使用RDMA技術繞過操作系統協議棧,進一步降低延遲。


六、總結

InfiniBand RC模式的信用機制通過硬件級流量控制實現了零丟包、按序交付和高吞吐量,其核心是通過動態管理接收端緩沖區信用,確保發送速率與接收能力嚴格匹配。這一機制是InfiniBand在超算、分布式存儲等場景中性能卓越的關鍵設計之一。

在InfiniBand的可靠連接(RC)模式中,對亂序數據包的處理機制與TCP存在顯著差異,其核心設計目標是低延遲和高吞吐量,同時確保嚴格的數據順序性。以下是詳細分析:


一、InfiniBand RC模式對亂序數據包的處理

  1. 基本機制

    • 序列號(PSN, Packet Sequence Number):每個數據包攜帶唯一的PSN,接收方按PSN順序驗證數據包。

    • 期望窗口(Expected Window):接收方維護一個連續的PSN窗口,僅接受當前期望的PSN及其后續連續包。

  2. 接收端行為

    • 亂序包的處理

      • 若接收方檢測到PSN不連續(例如收到PSN=5,但期望PSN=3),則判定PSN=3的包丟失或延遲。

      • 丟棄亂序包:InfiniBand?不會緩存或重組亂序包,而是直接丟棄所有超出當前期望窗口的數據包。

    • 觸發NACK

      • 接收方立即發送NACK(Negative Acknowledgment),指明缺失的PSN范圍(如PSN=3)。

      • 發送方收到NACK后,僅重傳缺失的PSN對應的數據包(而非所有未確認的包)。

  3. 示例場景

    • 發送方發送PSN=3、4、5、6。

    • 接收方收到PSN=5(亂序),立即丟棄PSN=5,并發送NACK要求重傳PSN=3。

    • 發送方重傳PSN=3后,接收方按順序處理PSN=3→4→5→6。


二、與TCP的對比

特性InfiniBand RC模式TCP
亂序包處理丟棄亂序包,觸發NACK重傳缺失包緩存亂序包,等待缺失包到達后重組
重傳范圍僅重傳NACK指定的缺失PSN包可能重傳丟失包及后續未確認包(如快速重傳)
緩沖區管理無需維護亂序緩沖區,降低內存開銷需要接收緩沖區暫存亂序包
延遲影響低延遲(硬件加速NACK/重傳)較高延遲(依賴軟件協議棧重組)
適用場景高性能計算、低延遲網絡(假設低亂序率)通用網絡(容忍較高亂序和延遲)

三、設計原理與性能權衡

  1. 為何不緩存亂序包?

    • 硬件優化:InfiniBand的NACK/重傳機制完全由**網卡硬件(HCA)**處理,重傳延遲極低(微秒級),因此無需緩存亂序包。

    • 簡化設計:避免維護復雜的亂序緩沖區,減少資源消耗,適合大規模并行場景。

    • 假設低亂序率:InfiniBand通常部署在高品質網絡(如專用HPC集群),鏈路層亂序概率極低,丟棄亂序包的代價可控。

  2. 與TCP的本質區別

    • TCP的適應性:針對公網高亂序、高丟包環境,TCP通過滑動窗口和重組機制最大化吞吐量。

    • InfiniBand的嚴格性:為追求極致性能,犧牲部分容錯性,依賴底層網絡質量保證有序交付。


四、例外情況與優化

  1. 選擇性重傳(Selective Retransmission)

    • 某些InfiniBand實現支持選擇性NACK,僅要求重傳特定PSN,而非整個窗口。

    • 例如:若PSN=3丟失,但PSN=4-6到達,接收方可僅NACK PSN=3,發送方僅重傳PSN=3。

  2. 端到端超時機制

    • 若NACK丟失,發送方依賴超時檢測丟包(類似TCP的RTO),但超時閾值遠低于TCP(通常為微秒級)。


五、總結

  • InfiniBand RC模式對亂序包的處理:直接丟棄亂序數據包并發送NACK觸發重傳,不在接收端重組數據

  • 與TCP的差異:TCP通過緩存和重組亂序包適應復雜網絡,而InfiniBand依賴硬件加速和低亂序率的假設,優先保障低延遲與高吞吐量。

  • 適用性:InfiniBand的策略在高質量網絡(如HPC集群)中高效,而TCP更適合不可預測的公網環境。

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

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

相關文章

【網絡】Caddy 服務器如何提供 TLS(Transport Layer Security)(傳輸層安全協議)

這張圖片介紹了 Caddy 服務器如何提供 TLS(傳輸層安全協議) 支持,確保通信的安全性。以下是對圖片內容的詳細分析 1. Caddy 是什么? Caddy 是一個現代化的 Web 服務器,以其簡單易用和自動化的 HTTPS 支持而聞名。它內…

GHCTF web方向題解

upload?SSTI! import os import refrom flask import Flask, request, jsonify,render_template_string,send_from_directory, abort,redirect from werkzeug.utils import secure_filename import os from werkzeug.utils import secure_filenameapp Flask(__name__)# 配置…

《Python實戰進階》No21:數據存儲:Redis 與 MongoDB 的使用場景

第21集:數據存儲:Redis 與 MongoDB 的使用場景 摘要 在現代應用開發中,數據存儲的選擇直接影響系統的性能、擴展性和成本。Redis 和 MongoDB 是兩種極具代表性的數據庫技術,它們分別擅長解決不同場景下的問題。本文將深入探討 Re…

【Agent】OpenManus-Prompt組件詳細分析

1. 提示詞架構概述 OpenManus 的提示詞組件采用了模塊化設計,為不同類型的智能體提供專門的提示詞模板。每個提示詞模塊通常包含兩種核心提示詞:系統提示詞(System Prompt)和下一步提示詞(Next Step Prompt&#xff0…

藍橋杯刷題周計劃(第三周)

目錄 前言題目一題目代碼題解分析 題目二題目代碼題解分析 題目三題目代碼題解分析 題目四題目代碼題解分析 題目五題目代碼題解分析 題目六題目代碼題解分析 題目七題目代碼題解分析 題目八題目代碼題解分析 題目九題目代碼題解分析 題目十題目代碼題解分析 前言 大家好&#…

mysql學習-常用sql語句

1、安裝mysql參考網上鏈接,進入mysql數據庫 mysql -u root -p 2、數據庫操作 2.1、創建數據庫 create database 數據庫名 default character set utf8; 2.2、顯示所有數據庫 show databases; 2.3、選擇數據庫 use elementInfo; 2.4、刪除數據庫 drop database…

(全)2024下半年真題 系統架構設計師 綜合知識 答案解析01

系統架構設計師第二版教程VIP課程https://edu.csdn.net/course/detail/40283 操作系統 下列選項中不能作為預防死鎖措施的是 。 A. 破壞“循環等待"條件 B. 破壞“不可搶占”條件 C. 破壞“互斥”條件 D. 破壞“請求和保持”條件 答案:C 解析&…

Java泛型程序設計使用方法

Java泛型程序設計是Java語言中一項強大的特性&#xff0c;它允許你編寫更加通用和類型安全的代碼。以下是Java泛型程序設計的使用方法和技巧&#xff1a; 1. 基本概念 泛型類&#xff1a;可以定義一個類&#xff0c;其中的某些類型是參數化的。 public class Box<T> {pr…

LeetCode算法心得——零數組變換IV(0-1背包)

大家好&#xff0c;我是晴天學長&#xff0c;很久很久沒有寫算法題解了&#xff0c;今天開始轉python了。&#x1f4aa;&#x1f4aa;&#x1f4aa; 1&#xff09;統計打字方案數 給你一個長度為 n 的整數數組 nums 和一個二維數組 queries &#xff0c;其中 queries[i] [li, …

superset部署記錄

具備網絡條件的&#xff0c;完全可以一鍵部署&#xff0c;不需要折騰。網絡條件不具備時&#xff0c;部署記錄留存備查。 1、正常模式 詳細介紹參考&#xff1a;【開源項目推薦】Apache Superset——最優秀的開源數據可視化與數據探索平臺-騰訊云開發者社區-騰訊云 (tencent.c…

AI大模型完全指南:從核心原理到行業落地實踐

目錄 大模型技術演進脈絡核心原理解析與數學基礎主流大模型架構對比開發環境搭建與模型部署Prompt Engineering高階技巧垂直領域應用場景實戰倫理與安全風險防控前沿發展方向與學習資源 一、大模型技術演進脈絡 1.1 發展歷程里程碑 2017&#xff1a;Transformer架構誕生&…

HTB 學習筆記 【中/英】《前端 vs. 后端》P3

&#x1f4cc; 這篇文章講了什么&#xff1f; 介紹了 前端&#xff08;客戶端&#xff09; 和 后端&#xff08;服務器端&#xff09; 的區別。解釋了 全棧開發&#xff08;Full Stack Development&#xff09;&#xff0c;即前端后端開發。介紹了 前端和后端常用的技術。討論…

golang中的結構體

1.簡介 go也支持面向對象編程(OOP)&#xff0c;但是和傳統的面向對象編程有區別&#xff0c;并不是純粹的面向對象語言。所以說go支持面向對象編程特性是比較準確的。go沒有類(class)&#xff0c;go語言的結構體(struct)和其它編程語言的類(class)有同等的地位&#xff0c;你可…

Day 64 卡瑪筆記

這是基于代碼隨想錄的每日打卡 參加科學大會&#xff08;第六期模擬筆試&#xff09; 題目描述 ? 小明是一位科學家&#xff0c;他需要參加一場重要的國際科學大會&#xff0c;以展示自己的最新研究成果。 ? 小明的起點是第一個車站&#xff0c;終點是最后一個車站。然…

《C語言中\0:字符串的神秘“終結者”》

&#x1f680;個人主頁&#xff1a;BabyZZの秘密日記 &#x1f4d6;收入專欄&#xff1a;C語言 &#x1f30d;文章目入 引言一、字符串的定義與存儲二、\0&#xff1a;字符串的終結標志三、\0在字符串操作中的作用四、\0的陷阱與注意事項五、\0與字符串的動態分配六、總結 引言…

九、Prometheus 監控windows(外部)主機

一、監控 Windows 主機的方法 方式 1:使用 Windows Exporter Windows Exporter(wmi_exporter) 是 Prometheus 官方推薦的 Windows 監控工具,它可以采集 CPU、內存、磁盤、網絡、進程、服務狀態等 指標。 方式 2:使用 Node Exporter for Windows node_exporter 主要用于…

TCP/IP協議中三次握手(Three-way Handshake)與四次揮手(Four-way Wave)

TCP/IP協議中三次握手&#xff08;Three-way Handshake&#xff09;與四次揮手&#xff08;Four-way Wave&#xff09; 一、TCP三次握手&#xff08;Three-way Handshake&#xff09;二、TCP四次揮手&#xff08;Four-way Wave&#xff09;三、常見問題解答總結為什么三次握手不…

Java集成WebSocket實現消息推送,詳細步驟以及出現的問題如何解決

Java集成WebSocket實現消息推送 WebSocket是一種在單個TCP連接上進行全雙工通信的協議,非常適合實現實時消息推送功能。與傳統的HTTP請求-響應模式不同,WebSocket建立連接后可以保持長連接狀態,服務器可以主動向客戶端推送數據,這使得它成為實現聊天應用、通知系統和實時數…

如何在Linux中切換用戶?

Linux切換用戶 在Linux系統中&#xff0c;切換用戶可以通過使用su命令和sudo命令實現 1、su命令 su是switch user的縮寫&#xff0c;用于切換到另一個用戶。su命令的語法如下&#xff1a; su [選項] [用戶名]以下是一些示例&#xff1a; # 切換到root用戶 su - # 切換到指定…

網頁制作16-Javascipt時間特效の設置D-DAY倒計時

01、效果圖 02、應用 new Date()//返回今天日期 new Date("April 1,2025")//返回目標日期 document.write()//文檔顯示 getTime()返回當日毫秒數 Math.floor(amadays / (1000 * 60 * 60 * 24)//把毫秒換算天 03、代碼 <!doctype html> <html> &…