RFC4291-IPv6地址架構

RFC4291 IP Version 6 Addressing Architecture

Author:Once Day Date:2025年6月15日

本文翻譯自RFC 4291 - IP Version 6 Addressing Architecture

這篇文章總結了IPv6的基礎概念,屬于IPv6協議入門內容。

文章目錄

      • RFC4291 IP Version 6 Addressing Architecture
        • 1. 概述
          • 1.1 本備忘錄狀態
          • 1.2 版權聲明
          • 1.3 摘要
        • 2. IPv6 編址
          • 2.1 地址模型
          • 2.2 地址的文本表示
          • 2.3 地址前綴的文本表示
          • 2.4 地址類型標識符
          • 2.5 單播地址
            • 2.5.1 接口標識符
            • 2.5.2 未指定地址
            • 2.5.3 回環地址
            • 2.5.4 全局單播地址
            • 2.5.5 嵌入 IPv4 地址的 IPv6 地址
            • 2.5.6 鏈路本地 IPv6 單播地址
            • 2.5.7 站點本地 IPv6 單播地址
          • 2.6. 任播地址
            • 2.6.1. 必備任播地址
          • 2.7. 多播地址
            • 2.7.1. 預定義多播地址
          • 2.8. 節點的必備地址
        • 3. 安全考慮
        • 4. IANA 注意事項

1. 概述
1.1 本備忘錄狀態

本文檔為互聯網社區指定了一種互聯網標準軌道協議,并征求有關改進的討論和建議。有關本協議的標準化狀態和狀況,請參考當前版本的《互聯網官方協議標準》(STD 1)。本備忘錄的分發不受限制。

1.2 版權聲明

版權所有(C)互聯網協會(2006)。

1.3 摘要

本規范定義了 IPv6(互聯網協議第 6 版)的編址架構。文檔內容包括 IPv6 編址模型、IPv6 地址的文本表示、IPv6 單播地址、任播地址和多播地址的定義,以及 IPv6 節點的必備地址。

本文檔替代了 RFC 3513《IPv6 編址架構》。

2. IPv6 編址

IPv6 地址是用于標識接口及接口集合的 128 位標識符(“接口” 的定義參見 [IPV6] 第 2 節)。地址分為三種類型:

單播(Unicast)

  • 標識單個接口。發往單播地址的數據包將被交付至該地址標識的接口。

任播(Anycast)

  • 標識一組接口(通常屬于不同節點)。發往任播地址的數據包將被交付至該地址標識的其中一個接口(根據路由協議的距離度量,選擇 “最近” 的接口)。

多播(Multicast)

  • 標識一組接口(通常屬于不同節點)。發往多播地址的數據包將被交付至該地址標識的所有接口。

IPv6 中不存在廣播地址,其功能已被多播地址取代。

本文檔中,地址字段被賦予特定名稱(如 “子網”)。當名稱后接 “ID”(如 “子網 ID”)時,指該命名字段的內容;當接 “前綴”(如 “子網前綴”)時,指從地址左側開始直至該字段(含)的全部內容。

在 IPv6 中,除非特別排除,任何字段的合法值均可為全零或全一。具體而言,前綴可包含以零值字段結尾的情況。

2.1 地址模型

所有類型的 IPv6 地址均分配給接口,而非節點。IPv6 單播地址標識單個接口,由于每個接口屬于唯一節點,該節點任意接口的單播地址均可作為節點標識符。

所有接口必須至少擁有一個鏈路本地單播地址(其他必備地址見 2.8 節)。單個接口可同時擁有多個任意類型(單播、任播、多播)或作用域的 IPv6 地址。對于不用于與非鄰居節點收發 IPv6 數據包的接口,無需配置作用域大于鏈路范圍的單播地址 —— 這對點到點接口尤為便利。該編址模型存在一個例外情況:

若實現將多個物理接口在網絡層視為單個接口,則可向這些接口分配單個或一組單播地址。此特性適用于通過多物理接口實現負載分擔的場景。

當前 IPv6 沿用 IPv4 模型,即子網前綴與一條鏈路關聯,同一鏈路可分配多個子網前綴。

即使接口僅用于本地通信,也必須配置鏈路本地地址(如 FE80::/10 前綴地址),以確保鏈路層通信的基礎可達性。

2.2 地址的文本表示

IPv6 地址以文本字符串表示時存在三種常規形式:

(1)首選格式

格式為 x:x:x:x:x:x:x:x,其中每個 x 為地址中 8 個 16 位段的 1~4 位十六進制數字。示例:

  • ABCD:EF01:2345:6789:ABCD:EF01:2345:6789
  • 2001:DB8:0:0:8:800:200C:417A

注意:單個字段中的前導零無需書寫,但每個字段至少保留一位數字(除非符合第 2 點描述的情況)。

(2)零壓縮語法

由于部分 IPv6 地址分配方式會產生長串零位,為簡化書寫,可用特殊語法壓縮連續零段:

  • :: 表示一個或多個 16 位零組,且每個地址中 :: 只能出現一次,可用于壓縮地址中的前導或 trailing 零。
原始地址壓縮后地址類型說明
2001:DB8:0:0:8:800:200C:417A2001:DB8::8:800:200C:417A單播地址
FF01:0:0:0:0:0:0:101FF01::101多播地址
0:0:0:0:0:0:0:1::1回環地址
0:0:0:0:0:0:0:0::未指定地址

(3)IPv4 - 兼容混合格式

在 IPv4/IPv6 混合環境中,可用 x:x:x:x:x:x:d.d.d.d 格式。前 6 個 x 為地址高 6 個 16 位段的十六進制值,后 4 個 d 為低 4 個 8 位段的十進制值(標準 IPv4 表示法)。示例:

  • 完整格式:0:0:0:0:0:0:13.1.68.30:0:0:0:0:FFFF:129.144.52.38
  • 壓縮格式:::13.1.68.3::FFFF:129.144.52.38
2.3 地址前綴的文本表示

IPv6 地址前綴的文本表示方式類似于無類別域間路由(CIDR)記法中 IPv4 地址前綴的寫法。IPv6 地址前綴的表示格式為:

ipv6-address/prefix-length

其中:

  • ipv6-address:采用 2.2 節中任意一種記法表示的 IPv6 地址。
  • prefix-length:一個十進制數值,表示地址中左側連續多少位構成前綴。

合法與非法表示示例:

前綴描述合法表示示例非法表示示例
60 位前綴 20010DB80000CD32001:0DB8:0000:CD30:0:0:0:0/60 2001:0DB8::CD30:0:0:0:0/60 2001:0DB8:0:CD30::/602001:0DB8:0:CD3/60 2001:0DB8::CD30/60 2001:0DB8::CD3/60

錯誤原因:

  1. 壓縮后的段必須保持 16 位對齊。
  2. :: 擴展后前綴長度不足 60 位。
  3. 壓縮導致非末尾段的零被移除。

當同時表示節點地址及其子網前綴時,可采用以下簡化方式:

  • 節點地址:2001:0DB8:0:CD30:123:4567:89AB:CDEF
  • 子網前綴:2001:0DB8:0:CD30::/60

組合縮寫:

2001:0DB8:0:CD30:123:4567:89AB:CDEF/60
2.4 地址類型標識符

IPv6 地址的類型通過地址的高位比特進行標識,如下所示:

地址類型二進制前綴IPv6 表示法章節
未指定地址全 0(128 位)::/1282.5.2
回環地址00…1(128 位)::1/1282.5.3
多播地址11111111FF00::/82.7
鏈路本地單播地址1111111010FE80::/102.5.6
全球單播地址(其他所有情況)--

任播地址取自單播地址空間(任意作用域),且在語法上與單播地址無區別。

全球單播地址的通用格式在 2.5.4 節描述。部分包含嵌入式 IPv4 地址的全球單播地址子類型(用于 IPv4-IPv6 互操作)在 2.5.5 節說明。

未來規范可能會將全球單播地址空間的一個或多個子范圍重新定義為其他用途,但在此之前,實現必須將所有不以上述前綴開頭的地址視為全球單播地址。

2.5 單播地址

IPv6 單播地址可使用任意比特長度的前綴進行聚合,這與無類別域間路由(CIDR)體系下的 IPv4 地址類似。

IPv6 中存在多種單播地址類型,特別是全球單播地址站點本地單播地址(已棄用,參見 2.5.7 節)鏈路本地單播地址。此外,全球單播地址還包含一些特殊用途的子類型(如嵌入 IPv4 地址的 IPv6 地址)。未來可能會定義更多地址類型或子類型。

根據節點角色(如主機與路由器)的不同,IPv6 節點對 IPv6 地址內部結構的認知程度可能存在差異。至少,節點可認為單播地址(包括其自身地址)不具備內部結構:128 位的節點地址。

略復雜的主機(但仍屬于簡單類型)可能額外知曉其連接鏈路的子網前綴(不同地址的 n 值可能不同):

n 位子網前綴 + 128-n 位接口標識符

盡管非常簡單的路由器可能不了解 IPv6 單播地址的內部結構,但通常情況下,路由器會知曉一個或多個用于路由協議運行的層次化邊界。具體知曉的邊界因路由器在路由層次中的位置而異。

除上述關于子網邊界的認知外,節點不應對 IPv6 地址的結構做任何假設。

2.5.1 接口標識符

IPv6 單播地址中的接口標識符用于標識鏈路上的接口,要求在子網前綴內唯一。建議同一鏈路上不同節點不分配相同的接口標識符,其也可在更廣泛范圍內唯一。在某些情況下,接口標識符可直接從該接口的鏈路層地址派生。單個節點的多個接口若連接至不同子網,可使用相同的接口標識符。

需注意,接口標識符的唯一性與 IPv6 地址的唯一性無關。例如,可使用本地范圍接口標識符創建全球單播地址,或使用全局范圍接口標識符創建鏈路本地地址。

除二進制值以 000 開頭的單播地址外,所有單播地址的接口標識符必須為 64 位長,并采用修改的 EUI-64 格式構造。

基于修改的 EUI-64 格式的接口標識符,若派生自全局令牌(如 IEEE 802 48 位 MAC 或 IEEE EUI-64 標識符 [EUI64])則具有全局范圍;若缺乏全局令牌(如串行鏈路、隧道端點)或無需全局令牌(如隱私保護臨時令牌 [PRIV]),則具有本地范圍。

從 IEEE EUI-64 標識符構造接口標識符時,需翻轉 “u” 位(IEEE EUI-64 術語中的全局 / 本地位)。在修改的 EUI-64 格式中:

  • “u” 位設為 1 表示全局范圍;
  • 設為 0 表示本地范圍。

IEEE EUI-64 標識符的前三個八位組二進制結構如下(按互聯網標準位序):

         0       0 0       1 1       2|0       7 8       5 6       3|+----+----+----+----+----+----+|cccc|ccug|cccc|cccc|cccc|cccc|+----+----+----+----+----+----+

其中:

  • “u” 為全局 / 本地位;
  • “g” 為個體 / 組位;
  • “c” 為公司標識符位。

翻轉 “u” 位的設計初衷是便于系統管理員在缺乏硬件令牌時手動配置非全局標識符(如串行鏈路、隧道端點場景)。若不翻轉該位,標識符可能需表示為0200:0:0:10200:0:0:2等形式,而翻轉后可簡化為0:0:0:10:0:0:2

IPv6 節點無需驗證 “u” 位設為全局的修改 EUI-64 令牌所創建接口標識符的唯一性。修改的 EUI-64 格式標識符中全局 / 本地位的設計,為未來利用全局范圍接口標識符的技術發展預留空間。

接口標識符的具體構造細節在相應的 “<鏈路> 上的 IPv6” 規范中定義,如《以太網承載 IPv6》[ETHER] 和《FDDI 承載 IPv6》[FDDI]。

2.5.2 未指定地址

地址0:0:0:0:0:0:0:0稱為未指定地址,絕不可分配給任何節點。它表示地址缺失,典型用途如初始化主機在獲取自身地址前發送的 IPv6 數據包的源地址字段。

未指定地址不得作為 IPv6 數據包的目的地址或出現在 IPv6 路由報頭中。源地址為未指定地址的 IPv6 數據包,IPv6 路由器必須不進行轉發

2.5.3 回環地址

單播地址0:0:0:0:0:0:0:1稱為回環地址,節點可用其向自身發送 IPv6 數據包,但絕不可分配給任何物理接口。該地址被視為具有鏈路本地作用域,可理解為虛擬接口(通常稱為 “回環接口”)連接到虛構鏈路的鏈路本地單播地址。

回環地址不得作為節點外發 IPv6 數據包的源地址。目的地址為回環地址的 IPv6 數據包,絕不可發送到節點外部,且 IPv6 路由器必須不進行轉發。接口接收到目的地址為回環地址的數據包時,必須丟棄

2.5.4 全局單播地址

IPv6 全球單播地址用于在全球范圍內唯一標識網絡中的設備,其一般格式如下3:

n 位m 位128 - n - m 位
全球路由前綴子網 ID接口 ID

其中,全球路由前綴是分配給一個站點(子網 / 鏈路集群)的值,通常采用分層結構;子網 ID 用于標識站點內的鏈路;接口 ID 如 2.5.1 節中所定義。

除了以二進制 000 開頭的地址外,所有全球單播地址都有一個 64 位的接口 ID 字段(即 n + m = 64),其格式如 2.5.1 節所述。以二進制 000 開頭的全球單播地址,對接口 ID 字段的大小或結構沒有此限制。例如,以二進制 000 開頭的全球單播地址有 2.5.5 節中描述的內嵌 IPv4 地址的 IPv6 地址;而以非 000 二進制值開頭(因此具有 64 位接口 ID 字段)的全球地址示例可以是2001:1111:2222:ABCD::1/64,其中全球路由前綴為2001:1111:2222,子網 ID 為ABCD,接口 ID 為::13。

2.5.5 嵌入 IPv4 地址的 IPv6 地址

定義了兩種在地址低 32 位攜帶 IPv4 地址的 IPv6 地址類型:IPv4 兼容的 IPv6 地址IPv4 映射的 IPv6 地址

(1)IPv4 兼容的 IPv6 地址,該地址用于輔助 IPv6 過渡,格式如下:

80 位16 位32 位
0000…0000(全 0)0000IPv4 地址

說明

  • 其中的 IPv4 地址必須是全局唯一的 IPv4 單播地址。
  • 該地址類型現已棄用,因當前 IPv6 過渡機制不再使用,新實現無需支持。

(2)IPv4 映射的 IPv6 地址,用于將 IPv4 節點地址表示為 IPv6 地址,格式如下:

80 位16 位32 位
0000…0000(全 0)FFFFIPv4 地址

使用背景參見 [RFC4038]。

2.5.6 鏈路本地 IPv6 單播地址

鏈路本地地址僅用于單一鏈路,格式如下:

10 位54 位64 位
11111110100接口標識符

用途

  • 單一鏈路內的自動地址配置、鄰居發現,或無路由器場景。
  • 路由器禁止轉發源或目的地址為鏈路本地地址的數據包到其他鏈路。
2.5.7 站點本地 IPv6 單播地址

該地址原設計用于站點內部尋址,無需全局前綴,現已按 [SLDEP] 棄用。格式如下:

10 位54 位64 位
1111111011子網標識符接口標識符

說明

  • 新實現不再支持[RFC3513] 中定義的該前綴特殊行為(需將其視為全球單播地址)。
  • 現有實現和部署可繼續使用該前綴。
2.6. 任播地址

IPv6 任播地址是分配給多個接口(通常屬于不同節點)的地址,其特性是:根據路由協議的距離度量,發往任播地址的數據包將被路由至擁有該地址的 “最近” 接口。

任播地址從單播地址空間中分配,使用任意已定義的單播地址格式。因此,任播地址在語法上與單播地址無法區分。當單播地址被分配給多個接口(即轉換為任播地址)時,必須顯式配置地址所屬節點,使其知曉該地址為任播地址。

對于任何已分配的任播地址,存在一個最長前綴 P,該前綴標識所有屬于該任播地址的接口所在的拓撲區域。在 P 標識的區域內,任播地址必須作為路由系統中的獨立條目(通常稱為 “主機路由”)維護;在 P 標識的區域外,任播地址可聚合到前綴 P 的路由條目中。

需注意,在最壞情況下,任播地址集合的前綴 P 可能是空前綴(即集合成員無拓撲局部性)。此時,任播地址必須在整個互聯網中作為獨立路由條目維護,這將對支持此類 “全局” 任播集合的數量構成嚴重的擴展性限制。因此,全局任播集合的支持可能不可用或受到嚴格限制。

任播地址的典型用途之一是標識提供互聯網服務的組織所屬的路由器集合。此類地址可作為 IPv6 路由報頭中的中間地址,使數據包通過特定服務提供商或服務提供商序列傳輸。

其他可能用途包括:標識連接到特定子網的路由器集合,或標識提供進入特定路由域入口的路由器集合。

2.6.1. 必備任播地址

子網路由器任播地址已預先定義,其格式如下:

n 位128-n 位
子網前綴00000000000000(全 0)

任播地址中的 “子網前綴” 用于標識特定鏈路,該任播地址在語法上與鏈路中接口標識符全為零的單播地址相同。

發往子網路由器任播地址的數據包將被交付至子網中的某一臺路由器。所有路由器必須支持其接口所連接子網的子網路由器任播地址。

該地址旨在用于節點需要與路由器集合中任意一臺通信的場景。

2.7. 多播地址

IPv6 多播地址是一組接口(通常位于不同節點)的標識符。一個接口可屬于任意數量的多播組。多播地址的格式如下:

8 位4 位4 位112 位
11111111flgsscopgroup ID

(1)地址開頭的二進制11111111標識該地址為多播地址。

(2)flgs(4 位標志位)

+-+-+-+-+
|0|R|P|T|
+-+-+-+-+
  • 最高位保留,必須初始化為 0。
  • T=0:表示永久分配的 “知名” 多播地址,由互聯網數字分配機構(IANA)分配。
  • T=1:表示非永久分配的 “臨時” 或動態分配的多播地址。
  • P 標志的定義和用法見 [RFC3306]。
  • R 標志的定義和用法見 [RFC3956]。

(3)scop(4 位多播作用域值)

用于限制多播組的作用域,取值如下:

描述
0保留
1接口本地作用域
2鏈路本地作用域
3保留
4管理本地作用域
5站點本地作用域
6-7未分配
8組織本地作用域
9-A未分配
B-D未分配
E全局作用域
F保留
  • 接口本地作用域:僅覆蓋節點上的單個接口,僅用于多播環回傳輸。
  • 鏈路本地作用域:與對應單播地址的拓撲區域一致。
  • 管理本地作用域:需管理員手動配置的最小作用域(非自動基于物理連接推導)。
  • 站點本地作用域:覆蓋單個站點。
  • 組織本地作用域:覆蓋同一組織的多個站點。
  • 未分配值:可供管理員定義額外多播區域。

(4)group ID,在給定作用域內標識多播組(永久或臨時),其結構定義見 [RFC3306]。

多播地址的作用域與組標識:

  • 永久多播地址的含義與作用域無關。例如:
    • FF01::101:與發送方同接口(同一節點)的所有 NTP 服務器。
    • FF02::101:與發送方同鏈路的所有 NTP 服務器。
    • FF05::101:與發送方同站點的所有 NTP 服務器。
    • FF0E::101:互聯網中的所有 NTP 服務器。
  • 臨時多播地址僅在給定作用域內有效。例如:
    • 某站點的臨時站點本地地址FF15::101與其他站點的同地址組無關聯,也與不同作用域或永久組的同 ID 組無關。

多播地址使用規則

  1. 禁止作為源地址:多播地址不得作為 IPv6 數據包的源地址,也不出現在路由報頭中。
  2. 作用域轉發限制:路由器不得將多播數據包轉發至超過目的地址 scop 字段指定的作用域。
  3. 保留值處理:
    • 節點不得向 scop=0 的多播地址發送數據包,若接收此類數據包需靜默丟棄。
    • 節點應避免向 scop=F 的多播地址發送數據包,若發送或接收,按全局(scop=E)多播地址處理。
2.7.1. 預定義多播地址

以下為預定義的知名多播地址,本節定義的組 ID(group ID)僅適用于顯式作用域值。禁止將這些組 ID 與其他作用域值結合使用(且 T 標志位必須為 0)。

(1)保留多播地址:

FF00:0:0:0:0:0:0:0  
FF01:0:0:0:0:0:0:0  
FF02:0:0:0:0:0:0:0  
FF03:0:0:0:0:0:0:0  
FF04:0:0:0:0:0:0:0  
FF05:0:0:0:0:0:0:0  
FF06:0:0:0:0:0:0:0  
FF07:0:0:0:0:0:0:0  
FF08:0:0:0:0:0:0:0  
FF09:0:0:0:0:0:0:0  
FF0A:0:0:0:0:0:0:0  
FF0B:0:0:0:0:0:0:0  
FF0C:0:0:0:0:0:0:0  
FF0D:0:0:0:0:0:0:0  
FF0E:0:0:0:0:0:0:0  
FF0F:0:0:0:0:0:0:0  

上述多播地址為保留地址,不得分配給任何多播組。

(2)所有節點地址

FF01:0:0:0:0:0:0:1  (作用域1:接口本地)  
FF02:0:0:0:0:0:0:1  (作用域2:鏈路本地)  

上述地址標識對應作用域內的所有 IPv6 節點。

(3)所有路由器地址

FF01:0:0:0:0:0:0:2  (作用域1:接口本地)  
FF02:0:0:0:0:0:0:2  (作用域2:鏈路本地)  
FF05:0:0:0:0:0:0:2  (作用域5:站點本地)  

上述地址標識對應作用域內的所有 IPv6 路由器。

(4)被請求節點地址

格式:FF02:0:0:0:0:1:FFXX:XXXX

生成規則:被請求節點多播地址由節點的單播 / 任播地址計算得到:取地址的低 24 位,附加到前綴FF02:0:0:0:0:1:FF00::/104后,范圍為FF02:0:0:0:0:1:FF00:0000FF02:0:0:0:0:1:FFFF:FFFF

示例:IPv6 地址4037::01:800:200E:8C6C對應的被請求節點地址為FF02::1:FF0E:8C6C

特性:僅高位不同的 IPv6 地址(如因不同聚合前綴導致)會映射到同一被請求節點地址,從而減少節點需加入的多播組數量。

實現要求:節點必須為其接口配置的所有單播 / 任播地址(手動 / 自動配置)計算并加入(在對應接口上)關聯的被請求節點多播地址。

2.8. 節點的必備地址

主機必須識別以下標識自身的地址

  • 每個接口的鏈路本地地址(必備)。
  • 為節點接口配置的所有額外單播 / 任播地址(手動或自動配置)。
  • 回環地址(::1)
  • 2.7.1 節定義的所有節點多播地址(如鏈路本地作用域的 FF02::1)。
  • 每個單播 / 任播地址對應的被請求節點多播地址(如 FF02::1:FFXX:XXXX)。
  • 節點所屬的所有其他多播組的地址。

路由器必備地址,路由器除需識別主機的所有必備地址外,還需額外識別:

  • 所有配置為路由器接口的子網路由器任播地址(格式為子網前綴 + 全 0 接口 ID)。
  • 路由器已配置的所有其他任播地址。
  • 2.7.1 節定義的所有路由器多播地址(如鏈路本地作用域的 FF02::2)。
地址類型主機需求路由器額外需求
鏈路本地地址每個接口必須配置同上
任播地址可選(若配置)必須支持子網路由器任播地址
多播地址加入所有節點組和被請求節點組額外加入所有路由器組
回環地址必須識別同上

示例場景

  • 主機啟動時自動生成鏈路本地地址(如 FE80::/10),并加入 FF02::1 多播組以接收鏈路內廣播消息。
  • 路由器在接口配置子網前綴 2001:db8:1234::/64 后,自動生成任播地址 2001:db8:1234::/64(接口 ID 全 0),并響應發往該地址的數據包。
3. 安全考慮

IPv6 尋址相關文檔對互聯網基礎設施安全沒有直接影響。IPv6 數據包的認證機制在 [AUTH] 中定義。

4. IANA 注意事項

IPv4 兼容的 IPv6 地址,已被本文檔棄用。IANA 應繼續將包含這些地址的地址塊在:http://www.iana.org/assignments/ipv6-address-space 中標記為 “IETF 保留”,且不得重新分配作其他用途。例如:

  • 0000::/8:IETF 保留(參考 [RFC3513])。

IANA 為該地址塊添加了以下注釋和鏈接:

  • [5] 0000::/96 此前被定義為 “IPv4 兼容 IPv6 地址” 前綴,該定義已被 RFC 4291 棄用。

IANA 已相應更新 IANA 注冊表中 IPv6 地址架構的引用信息。

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

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

相關文章

基礎數據結構第03天:順序表(實戰篇)

目錄 求奇數的乘積 數值統計 青年歌手大獎賽_評委會打分 猜數字 拿硬幣 值相等的最小索引 最大連續1的個數 差的絕對值為K的數對數目 數組中兩元素的最大乘積 數組元素和與數字和的絕對差 K個元素的最大和 等差三元組的數目 移除元素 基于排列構建數組 數組串聯…

10.OpenCV—聯合QT界面顯示

1.顯示在graphicsView控件上 .h文件 #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow>#include <QGraphicsPixmapItem> //1.聲明頭文件 namespace Ui { class MainWindow; }class MainWindow : public QMainWindow {Q_OBJECTpublic:explicit Ma…

ChromaDB深度技術研究報告

第一章: ChromaDB核心概念與架構 1.1 向量數據庫:新一代AI應用基石 向量數據庫是為存儲、管理和搜索向量嵌入(Vector Embeddings)而專門設計的數據庫系統。在高維空間中,向量嵌入是數據(如文本、圖片、音頻等)的數值表示。向量數據庫的核心能力在于,它能夠高效地執行相…

react 自定義狀態管理庫

核心實現原理 &#xff1a; 全局狀態容器&#xff1a;維護單一狀態源 訂閱機制&#xff1a;組件訂閱狀態變化 狀態更新調度&#xff1a;通過 Hooks 觸發組件重渲染 基礎版實現–核心代碼 // 1. 創建全局狀態存儲 const createStore (initialState) > {let state initial…

解決idea無法正常加載lombok包

問題 近期發現了一個問題&#xff0c;就是很多同學在導包的&#xff0c;lombok經常會爆紅&#xff0c;經過研究找到了解決方法。 解決 1、更改lombok包的版本 通過手動調整pom.xml文件的lombok&#xff0c;通常講版本調整為1.18.20&#xff0c;或者1.18.32。 <dependenc…

0_1樹和圖

樹的概念 樹(tree)是一種能夠分層存儲數據的重要數據結構,樹中的每個元素被稱為樹的節點,每個節點有若干個指針指向子節點。從節點的角度來看,樹是由唯一的起始節點引出的節點集合。這個起始結點稱為根(root)。樹中節點的子樹數目稱為節點的度(degree)。在面試中,關于樹的…

從0搭建出海 Demo:免費香港服務器實戰指南

你有沒有在通勤地鐵上、午飯后摸魚時&#xff0c;突然冒出一個想法&#xff1a;“要不我也做個應用試試&#xff1f;好像不少人靠這個補貼生活開銷啊&#xff01;” 結果隨手搜了幾篇“海外項目經驗分享”&#xff0c;瞬間被一堆術語勸退&#xff1a;CDN、備案、分發平臺、服務…

《仿盒馬》app開發技術分享--未完成訂單列表展示邏輯優化(61)

技術棧 Appgallery connect 前言&#xff1a; 上一節我們實現訂單與優惠券的聯合提交時&#xff0c;我去到訂單列表頁面查看生成的訂單信息&#xff0c;發現現在的訂單從信息展示到價格計算全都是有問題的。所以緊急的把對應的問題修改一下。 問題來源&#xff1a; async …

手搓多模態-08 主模型的搭建(上)

前情回顧 在之前的章節我們已經構建好了視覺編碼器&#xff0c;預處理模塊&#xff0c;以及gemma模型的頂層。gemma模型的頂層&#xff0c;主要是構建圖中圈出的輸入&#xff0c;它把視覺編碼器里每個圖像patch的編碼維度對齊到自然語言token的嵌入維度&#xff0c;并組裝成了一…

Matlab 角點探測

文章目錄 一、簡介二、實現代碼三、實現效果一、簡介 這里實現一種角點探測功能,其思路仍然是借助圖像的局部梯度信息,實現亞像素精度的角點定位。該功能核心思想是利用角點周圍的局部梯度信息,通過加權最小二乘優化的方式迭代調整角點位置,使定位精度達到亞像素級別。整個…

錯誤監控----比如實現sentry一些思路

錯誤監控 ?、引? 1.為什么需要前端錯誤監控 你的腳本在哪些邊界條件下會報錯&#xff1f; 你的腳本和樣式兼容性如何&#xff1f; 有哪些地區不能正常訪問你的?站&#xff1f; 出現問題之后&#xff0c;你如何快速定位排查&#xff0c;把損失降到最低&#xff1f; 如果你想解…

linux內核調試

1. 前置安裝 1.1 編譯好的內核 參考&#xff1a; https://blog.csdn.net/qq_51950769/article/details/148596916 1.2 編譯busybox BusyBox 是一個非常輕量級的多合一工具箱&#xff0c;常被稱為“Linux 的瑞士軍刀”。 簡單來說&#xff1a; 它把很多常用的 Linux 命令&am…

什么是曲面細分

什么是曲面細分 在CAD格式中&#xff0c;通常使用曲線和數學函數來定義曲面和實體。這些曲面的精確度和光滑度非常適用于制造過程。但是&#xff0c;現代GPU芯片針對由三角形網格體組成的曲面的渲染計算進行了高度優化。通常&#xff0c;實時渲染器和虛幻之類的游戲引擎只能處…

CANFD加速是什么?和CANFD有什么區別?

文章目錄 摘要什么是CANFD加速?CAN FD的基本原理:仲裁階段(Arbitration Phase):數據階段(Data Phase):關鍵特性:優勢:總結摘要 下面的截圖,大家肯定不陌生,在使用CAN設備上位機的時候,已經選擇了CANFD,但還有一個選項是“CANFD加速”,那CANFD加速和不加速有什么…

minio 啟動失敗--Incorrect Usage: flag provided but not defined: -consoleaddress

根據錯誤信息 flag provided but not defined: -consoleaddress&#xff0c;這表明 Minio 服務啟動時使用了未定義的命令行參數 --consoleaddress&#xff0c;導致啟動失敗。這個問題與 Minio 版本兼容性有關。 問題原因 參數名稱變更&#xff1a; Minio 版本 > RELEASE.20…

基于Rust的Polars學習筆記

基于Rust的Polars學習筆記 Polars 學習筆記 Cargo.toml通用配置 [package] name = "rustP" version = "0.1.0" edition = "2024"[dependencies] polars = { version = "0.48.1", features = ["full"]}Quickstart use po…

SpringBoot擴展——定時任務!

定時任務 項目開發中會涉及很多需要定時執行的代碼&#xff0c;如每日凌晨對前一日的數據進行匯總&#xff0c;或者系統緩存的清理、對每日的數據進行分析和總結等需求&#xff0c;這些都是定時任務。單體系統和分布式系統的分布式任務有很大的區別&#xff0c;單體系統就一個…

RTDETRv2 pytorch 官方版自己數據集訓練遇到的問題解決

rtdetrv2 訓練問題遇到的問題。 pip install torch2.0.1 torchvision0.15.2 torchaudio2.0.2 --index-url https://download.pytorch.org/whl/cu117 1 Please make sure torchvision version > 0.15.2 發現自己實際裝的是 torchvison0.15.2cu117 修改_misc.py中修改為…

Linux系統移植⑤:uboot啟動流程詳解-board_init_f執行過程

Linux系統移植⑤&#xff1a;uboot啟動流程詳解-board_init_f執行過程 _main 中會調用 board_init_f 函數。 board_init_f 函數主要有兩個工作&#xff1a; ①初始化一系列外設&#xff0c;比如串口、定時器&#xff0c;或者打印一些消息等。 ②初始化 gd 的各個成員變量&am…

Git命令與代碼倉庫管理

步驟一、完成Gitee碼云上賬號注冊并新建代碼倉庫。 1.1 新建代碼倉庫 1.2 填寫信息并創建 1.3 獲取倉庫地址 https://gitee.com/dog-kidney/2022082206.git 步驟二、建立本地代碼倉庫&#xff0c;并連接到遠程代碼倉庫。 2.1初始化 git init 2.2添加倉庫 git remote add o…