WiFi 6的數據在發送端分片和在接收端重組的理解

????????802.11ax是WiFi 6標準,其引入了一些新的特性和技術來提升無線網絡的性能,其中包括幀聚合和幀分片。以下是它們的詳細處理流程:

1. 幀聚合

幀聚合是一種提高傳輸效率的技術,它允許多個數據幀被聚合到一起,然后作為一個單獨的數據包進行傳輸。在802.11ax中,主要使用了兩種類型的幀聚合:

空間流聚合:在此類型中,AP可以將多個客戶端設備的數據幀聚合到一起,然后通過相同的空間流(spatial stream)進行傳輸。這樣可以提高單個AP與多個客戶端設備之間的傳輸效率。

多用戶聚合:在此類型中,AP可以將多個用戶的數據幀聚合到一起,然后通過不同的空間流進行傳輸。每個用戶的數據幀被單獨處理,以避免碰撞和重傳。這樣可以提高AP與多個用戶之間的總傳輸效率。

2. 幀分片

幀分片是一種將大尺寸數據幀分割成更小片段的技術。在802.11ax中,幀分片主要用于支持長距離傳輸和高吞吐量。以下是幀分片的處理流程:

數據切分:在發送端,首先將大尺寸的數據幀切分成多個小尺寸的片段。每個片段都包含必要的元數據(如數據類型、序列號等),以便接收端可以正確地重新組合原始數據幀。

逐片段傳輸:然后,每個小尺寸的片段被單獨封裝成一個數據包,并通過無線介質進行傳輸。每個數據包都使用相同的空間流進行傳輸。

接收端重組:在接收端,根據元數據重新組合這些片段,恢復出原始的數據幀。如果某個片段在傳輸過程中丟失或損壞,可以通過重傳機制進行修復。

通過幀聚合和幀分片技術,802.11ax能夠顯著提高無線網絡的傳輸效率和可靠性。這些技術有助于支持高吞吐量和低延遲的應用場景,如在線游戲、高清視頻流等。

本文接下來主要介紹的是數據在發送端分片和在接收端重組的細節。

WiFi-6的STA應遵循ieee802.11-2020協議中規定的幀分片處理流程,但某些特殊情況除外。動態幀分片在聚合數據以適應受約束的PPDU持續時間方面提供了進一步的靈活性。

ieee802.11-2020協議定義了生成均勻片段化MSDU或MMPDU的程序,其中每個片段的長度相同,但最后一個片段除外。根據HT立即塊確認協議,這些幀分片并不包括在A-MPDU中。

WiFi-6的STA可以協商使用不同級別的動態分段:

級別1:支持一個非A-MPDU的動態片段;不支持不包含S-MPDU的A-MPDU中的動態片段。

級別2:支持不包含S-MPDU的A-MPDU中的動態片段,但需滿足以下條件:條件一,A-MPDU中任何給定MSDU或A-MSDU的不超過一個動態片段;該動態片段是在塊確認協議下發送的。?條件二,不超過一個MPDU,它是A-MPDU中MMPDU的動態片段。

級別3:支持不包含S-MPDU的A-MPDU中的動態片段,但需滿足以下條件:條件一,A-MPDU中任何給定MSDU或A-MSDU的不超過四個動態片段;這些動態片段是根據塊確認協議發送的。?條件二,不超過一個MPDU,它是A-MPDU中MMPDU的動態片段。

需要注意的是:在2級或3級中運行的HE STA也支持發送和接收1級動態片段。在級別2下,可能有多個數據幀是動態片段,但它們具有不同的序列號和狀態。

這里定義了生成非均勻分片的MSDU、A-MSDU或MMPDU的程序,其中每個分片的長度不一定相同。第一片段的長度應大于或等于接收方STA發送的HE Capabilities元素中的HE Capability Information字段中的minimum fragment size子字段中指示的最小片段大小。如果MSDU、A-MSDU或MMPDU的長度小于最小片段大小,則MSDU、A-MSDU或MMPDU不應被分段。用動態分片生成的碎片被稱為動態分片。

這些過程允許在級別1、級別2和級別3中包括作為非A-MPDU的一個動態片段,并且允許在級別2和級別3中包含一個或多個MPDU的A-MPDU內包括一個或更多個動態片段。

HE STA遵循協議定義的用于生成這些片段的規則以及用于對接收到的動態片段進行碎片整理的規則。在協議中,HE STA遵循其發送的HE能力元素中的HE MAC能力信息字段中的動態分段支持子字段中指示的分段級別,除非在塊確認建立過程期間交換的ADDBA請求和ADDBA響應幀中包括ADDBA擴展元素。在這種情況下,HE STA遵循其在塊ack設置過程期間接收的ADDBA響應幀中的ADDBA擴展元素中指示的分段級別。

HE STA應將ADDBA請求或ADDBA響應幀中的ADDBA擴展元素中的HE分段操作子字段(如果存在)設置為小于或等于其發送的HE能力元素中的動態分段支持子字段的值。

HE STA應將ADDBA響應幀中的ADDBA擴展元素(如果存在)中的HE分段操作子字段設置為小于或等于接收到的ADDBA請求幀中的DDBA擴展元素中的HE分片操作子字段(如果存在的話)的值。

下面是動態幀分片的相關細節:

對于級別1和級別2的動態分段,以下內容適用:

第一:發送一個或多個動態片段的始發STA應針對每個片段請求來自接收方STA的即時響應。

第二:發起方STA應按照10.4中定義的順序發送片段。

對于3級動態分段,并非所有動態分段都需要立即響應,并且不需要按順序發送動態分段。如果接收方發送的HE Capabilities元素中的A-MSDU Fragmentation Support子字段為1,則HE STA可以發送A-MSDU的動態片段。

發起方STA不應同時向同一接收方STA發送大于Nmax的多個未決MSDU和A-MSDU(如果支持的話)的動態片段,其中MSDU和A-MSDU的Nmax(如果支持)是基于接收方STA傳輸的HE Capabilities元素中的Maximum number of Fragmented MSDU/a-MSDU子字段來計算的。術語未決是指包含MSDU、A-MSDU或MMPDU的全部或部分的MPDU,對于該MPDU,傳輸已經開始,并且MSDU、A-MSDU或MMPDU的遞送尚未完成(即,尚未接收到對最終片段的確認,并且由于重傳、生存期或某些其他原因,MSDU、A-MSDU或MMADU尚未被丟棄)。

注意:未完成MMPDU的動態片段不計入針對Nmax限制的檢查中。

如果先前發送的MSDU、A-MSDU或MMPDU的所有動態片段在接收STA處已明確失敗,則發起方STA可重新發送完整MSDU、A-MSDU或MMPDU。如果先前發送的MSDU、A-MSDU或MMPDU的片段中的一個或多個在接收STA處明確失敗,則始發STA可以重新發送失敗的片段(關于術語明確失敗的定義,參見下一段)。重傳片段的幀體長度和內容應與最初傳輸的片段相同,并且在該STA的MSDU、A-MSDU或MMPDU的使用壽命內應保持固定,除非幀未加密,在最初傳輸片段之前的所有片段都已接收,并且初始發送的片段之后的所有片段要么已經明確失敗,要么還沒有被發送。在這種情況下,重新發送的片段的幀體長度和內容可能與最初發送的片段不同。

如果發起方STA接收到包含以下內容的即時響應,則片段在接收STA處明確是失敗的:

1、有效的第一個MPDU不是Ack幀、壓縮的塊確認幀或多STA塊確認幀,其所有先前的EOF前MPDU定界符都被接收。

2、不包含BA信息字段且TID等于分段的BA信息字段的多STA塊確認幀。

3、壓縮的塊確認幀或多STA塊確認幀,其中包含BA信息字段,其TID等于分段的TID,但不確認收到分段。

發起方STA不得向接收方STA發送未在A-MPDU中攜帶的MPDU或攜帶不滿足上述條件的動態片段的A-MPDU。

級別1的動態幀分片

如果從接收方STA接收的HE Capabilities元素的HE MAC Capabilities Information字段中的 Dynamic Fragmentation Support 子字段為 1、2 或 3,則發起方 STA 可以使用級別 1 動態分段向接收方STA傳輸MSDU、A-MSDU(如果接收方支持)或MMPDU(非A-MPDU)或 MMPDU的一個動態分段,該MMPDU是非A-MPDU,并且未根據塊確認協議發送到接收方 STA。

發起方 STA 可以使用 1 級動態分段根據塊確認協議將分段的 MSDU 或 A-MSDU(如果受接收方支持)傳輸到接收方 STA,前提是滿足以下條件:從接收方 STA 接收的 HE Capabilities 元素中的 Dynamic Fragmentation Support 子字段為 1、2 或 3;對于與 MSDU 或 AMSDU 的 TID 關聯的塊確認協議,如果從接收方 STA 接收的 ADDBA 響應幀中存在 ADDBA 擴展元素,則 HE 分段操作子字段為 1。

級別2的動態幀分片

如果滿足以下條件之一,發起方STA可以根據塊確認協議將分段的MSDU或A-MSDU(如果接收方支持)傳輸到使用級別2動態分段的接收方STA:

條件1:從接收方STA接收的HE Capabilities元素中的Dynamic Fragmentation Support子字段為2;對于與MSDU或AMSDU的TID關聯的塊確認協議,如果從接收方STA接收的ADDBA響應幀中存在ADDBA擴展元素,則HE分段操作子字段為2。

條件2:從接收方STA接收的HE Capabilities元素中的Dynamic Fragmentation Support子字段為3;對于與MSDU或A-MSDU的TID關聯的塊確認協議,ADDBA Extension元素存在,并且從接收方STA接收的ADDBA響應幀中的HE Fragmentation Operation子字段為2。

發起方STA可以向接收方STA傳輸以下內容:

1、MSDU、A-MSDU(如果收件人支持)或MMPDU的一個動態分段,該分段是使用1級動態分段的非A-MPDU。

2、每個MSDU或A-MSDU最多有一個MSDU或A-MSDU(如果接收方支持)的動態分段,在A-MPDU中最多有一個MMPDU的動態分段,其中AMPDU包含至少一個使用2級動態分段的動態分段;MSDU或A-MSDU的動態片段應根據塊確認協議發送。

級別3的動態幀分片

只要滿足以下條件,發起方STA可以根據塊確認協議或分段MMPDU使用級別3動態分段將分段的MSDU或A-MSDU(如果接收方支持)傳輸到接收方STA:

條件1:從接收方STA接收的HE Capabilities元素中的Dynamic Fragmentation Support 子字段為3。

條件2:對于與MSDU或A-MSDU的TID關聯的塊確認協議,如果從接收方STA接收的 ADDBA響應幀中存在ADDBA擴展元素,則HE分段操作子字段為3。

另外,級別3分段允許在同一A-MPDU中包含的MSDU或A-MSDU的多個分段,減少片段的傳輸延遲。

發起方 STA 可以向接收方 STA 傳輸以下內容:

1、MSDU、A-MSDU(如果收件人支持)或 MMPDU 的一個動態分段,該分段是使用 1 級動態分段的非 A-MPDU。發起方 STA 應遵循協議定義的生成 S-MPDU 的規則。

2、每個MSDU或A-MSDU最多有四個MSDU或A-MSDU的動態片段(如果接收方支持),A-MPDU中最多有一個MMPDU的動態片段,其中AMPDU包含至少一個使用3級動態分段的動態片段;MSDU或A-MSDU的動態片段應根據塊確認協議發送。

2.1、發起方 STA 應將每個 MPDU 的 Fragment Number 子字段設置為小于 4 的值。

2.2、發起方 STA 應遵循協議定義的生成 A-MPDU 的規則,但 A-MPDU 應包含序列號子字段范圍不超過 BL/4 的 MPDU,其中 BL 是對應于傳輸片段的 TID 的壓縮 BlockAck 或多 STA BlockAck 幀的 Block Ack 位圖字段的長度。

下面是動態幀聚合的相關細節

如果HE STA不支持動態分段,則應將它傳輸的HE Capabilities元素的HE MAC Capabilities Information字段中的Dynamic Fragmentation Support子字段設置為0。否則,HE STA應按如下方式設置 Dynamic Fragmentation Support 子字段:

如果STA支持級別1的動態幀分片的過程接收動態分段,則設置為1、2 或 3。

如果STA支持級別2的動態幀分片的過程接收動態分段,則設置為2 或 3。

如果STA支持級別3的動態幀分片的過程接收動態分段,則設置為3。

如果HE STA支持接收動態分段,則應將dot11HEDynamicFragmentationLevel設置為其傳輸的HE Capabilities元素中Dynamic Fragmentation Support子字段的值。

如果分片是在 級別1、級別2或者級別3分片方式下發送的,則該分片屬于動態分片。

動態幀聚合整理應遵循協議中定義的規則,但以下情況除外:

1、接收方STA應支持同時接收多個未完成的MSDU和A-MSDU的動態分段,當支持來自等于Nmax的同一發送STA時,其中MSDU和A-MSDU(如果支持)的Nmax 是從STA傳輸的HE功能元素中的分段MSDU/A-MSDU指數子字段獲得的。術語“未完成”是指包含全部或部分MSDU或A-MSDU的MPDU,其傳輸已開始,但MSDU或AMSDU的交付尚未完成(即,尚未收到對最終片段的確認,并且MSDU、A-MSDU或MMPDU未因重試而被丟棄, 壽命,或其他原因)。接收方STA應支持從發送STA并發接收一個未完成的MMPDU的動態片段。

2、接收方STA可能受10.5中定義的每個MSDU、A-MSDU和MMPDU的接收計時器規則的約束。

具有 dot11AMSDUFragmentationOptionImplemented true的STA應將HE Capabilities 元素中的A-MSDU Fragmentation Support子字段設置為1。否則,STA應將HE Capabilities元素中的A-MSDU Fragmentation Support子字段設置為0。

級別1的動態幀聚合

在接收到非A-MPDU或攜帶動態分段的A-MPDU時,接收方STA會使用Ack幀或多STA BlockAck幀進行響應(如果接收到的分段包含在請求立即響應的MPDU中)。接收方STA應遵循協議中定義的規則,用于為作為MPDU或在S-MPDU或啟用ACK的單TID A-MPDU 中攜帶的請求動態片段生成Ack幀,用于生成包含對請求S-MPDU 的確認的規則,該請求包含對攜帶一個動態分段并在HE TB PPDU中攜帶的請求S-MPDU的確認,啟用ACK的單TID A-MPDU或啟用ACK的多TID A-MPDU。

級別2的動態幀聚合

在接收到作為動態分段的非A-MPDU或攜帶一個或多個動態分段的A-MPDU時,接收方STA使用以下幀之一進行響應:

如果接收到的片段是非A-MPDU或包含在A-MPDU中并請求立即響應,則為Ack幀或多 STA BlockAck幀。接收方STA應遵循協議中定義的規則,為請求動態分段生成Ack幀,該動態分段是MPDU或在S-MPDU或啟用了確認的單TID A-MPDU中傳輸,以及上面定義的規則,用于生成多STA BlockAck幀,該幀包含對HE TB PPDU中攜帶的請求S-MPDU的確認,啟用ACK的單TID A-MPDU或啟用ACK的多TID A-MPDU。

如果接收到的MSDU或A-MSDU(如果有)(每個MSDU或A-MSDU最多一個片段)的片段包含在包含請求立即響應的MPDU的A-MPDU中,則為壓縮BlockAck幀或多STA BlockAck 幀。接收方STA應遵循協議中定義的生成BlockAck幀的規則和生成Multi-STA BlockAck幀的規則,但STA應該如下處理:

處理1:將壓縮 BlockAck 幀或多 STA BlockAck 幀的 Block Ack Starting Sequence Control 子字段中的Fragment Number子字段的LSB設置為0,該子字段對應于根據塊確認協議發送的已接收分段的TID。

處理2:將Block Ack Bitmap字段的每個位設置為1,該字段對應于根據請求A-MPDU(不是S-MPDU)中包含的塊確認協議發送的已接收片段的 Sequence Number 子字段和 TID子字段。

STA應更新僅當MSDU或 A-MSDU 成功重建時才收到分段的MSDU或A-MSDU的相應塊確認記錄。否則,STA 不應更新該MSDU或A-MSDU的塊確認記錄。

注意:接收方STA設置與MPDU的序列號和TID子字段對應的Block Ack位圖字段的位,該子字段不是協議中定義的片段。

如果接收方STA從發起方STA接收到該TID的BlockAckReq幀,則接收方STA應丟棄在TID的HT即時塊確認會話期間接收的任何不完整MSDU或A-MSDU片段,如果這些片段的序列號字段值小于BlockAckReq幀的起始序列號字段的值,或者序列號小于WinStartB。兩個值的比較按照協議中所述的圓模4096進行。

級別3的動態幀聚合

在接收到作為動態分段的非A-MPDU或攜帶一個或多個動態分段的A-MPDU時,接收方STA使用以下幀之一進行響應:

如果接收到的片段是非A-MPDU或包含在請求立即響應的A-MPDU中,則為Ack幀或多 STA BlockAck幀。接收方STA應遵循協議中定義的規則,為請求動態分段生成 Ack幀,該動態分段是MPDU或在S-MPDU或啟用了ack的單TID A-MPDU 中傳輸,以及協議中定義的規則,用于生成多STA BlockAck幀,該幀包含對HE TB PPDU中攜帶的請求S-MPDU的確認,啟用ACK的單TID A-MPDU或啟用ACK的多TID A-MPDU。

如果與 TID 對應的 MSDU 或 A-MSDU(如果有)的接收片段(每個 MSDU 或 AMSDU 的一個或多個片段)包含在 A-MPDU 中,則壓縮 BlockAck 幀或多 STA BlockAck 幀,其中至少一個接收到的 MPDU 的片段編號字段對應于與接收的片段相同的 TID 具有非零值,該字段請求立即響應。接收方STA應遵循協議中生成BlockAck幀的規則和生成Multi-STA BlockAck幀的規則,但STA應該如下處理:

處理1:將壓縮 BlockAck 幀或多 STA BlockAck 幀的 Block Ack Starting Sequence Control 子字段中的 Fragment Number 子字段的 LSB 設置為 1,該子字段對應于根據塊確認協議發送的已接收分段的 TID。

處理2:將 Block Ack 位圖字段位置 B 的每個位設置為 1,該字段對應于根據塊確認協議發送的接收片段,否則應將其設置為 0,B 計算為 B = 4 × (SN – SSN) + FN,其中對序列號的操作執行模 4096。SN 是 MPDU 的 Sequence Number 子字段的值,其中包含指示其接收狀態的片段。SSN 是 BlockAck 幀的 Block Ack Starting Sequence Control 子字段的 Starting Sequence Number 子字段的值。FN 是 Fragment Number 子字段中的值。

壓縮 BlockAck 幀或多 STA BlockAck 幀,如果接收到的 MSDU 或 A-MSDU(如果有)的片段對應于 TID(每個 MSDU 或 AMSDU 的一個或多個片段)包含在 A-MPDU 中,其中所有接收的 MPDU 的片段編號字段對應于與接收的片段相同的 TID,則請求立即響應。接收方STA應遵循協議中生成BlockAck幀的規則和生成Multi-STA BlockAck幀的規則,但STA應該如下處理:

處理1:將壓縮 BlockAck 幀或多 STA BlockAck 幀的 Block Ack Starting Sequence Control 子字段中的 Fragment Number 子字段的 LSB 設置為 0,該子字段對應于根據塊確認協議發送的已接收分段的 TID。

處理2:將 Block Ack Bitmap 字段的每個位設置為 1,該字段對應于根據非 S-MPDU 請求的 A-MPDU 中包含的塊確認協議發送的接收片段的序列號子字段和 TID 子字段。

STA 應更新僅當 MSDU 或 A-MSDU 成功重建時才收到分段的 MSDU 或 A-MSDU 的相應塊確認記錄。否則,STA 不應更新該 MSDU 或 A-MSDU 的塊確認記錄。

注意:接收方 STA 設置與 MPDU 的序列號和 TID 子字段對應的 Block Ack 位圖字段的位,該子字段不是協議中定義的片段。

如果接收方 STA 從發起方 STA 接收到該 TID 的 BlockAckReq 幀,并且該分段的序列號字段值小于 BlockAckReq 幀的起始序列號字段值,或者序列號小于 WinStartB,則接收方 STA 應丟棄在 TID 的 HT 即時塊確認會話期間接收的任何不完整 MSDU 或 A-MSDU 片段。兩個值的比較按照協議中所述的4096進行。

以上只是我個人的一些理解,具體還是要以標準一些的規定為主。

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

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

相關文章

layui(2.8.18)生成驗證碼

<!DOCTYPE html> <html> <head><meta charset"utf-8"><title>登入</title><meta name"renderer" content"webkit"><meta http-equiv"X-UA-Compatible" content"IEedge,chrome1&quo…

Go 工具鏈詳解(七):模塊緩存清理工具

go mod 緩存 在 Golang 中&#xff0c;模塊是對一組版本化的包的集合的描述。Go 1.11 版本引入了模塊支持&#xff0c;通過 go mod 命令提供了對模塊的管理。Go 模塊的一個重要特性是依賴管理&#xff0c;可以清晰地定義項目所依賴的模塊及對應的版本&#xff0c;并確保代碼使…

電磁優化的并行空間映射方法

空間映射(SM)是一種公認的加速電磁優化的方法。現有的SM方法大多基于順序計算機制。本文提出了一種用于電磁優化的并行SM方法。在該方法中&#xff0c;每次迭代開發的代理模型被訓練以同時匹配多個點的精細模型。多點訓練和SM使代理模型在比標準SM更大的鄰域內有效。本文提出的…

[補題記錄] Complete the Permutation(貪心、set)

URL&#xff1a;https://codeforces.com/group/OcmZ7weh45/contest/487583/problem/J 目錄 Problem/題意 Thought/思路 Code/代碼 Problem/題意 給出一個長度為 N 的序列&#xff0c;其中的元素都是奇數。 現在要求在兩個奇數之間插入一個偶數&#xff0c;使得這三個數遞增…

信息壓縮模型在自然語言處理中的應用和探討

信息壓縮模型在自然語言處理中的應用和探討 摘要:正文:結論:附錄:摘要: 隨著人工智能和深度學習的發展,自然語言處理(NLP)在信息處理中的角色變得越來越重要。然而,海量的自然語言數據為信息處理帶來了挑戰——更多的信息通常意味著更高的處理成本,并可能導致效率降低。為…

一個工具讓你明白“萬丈高樓平地起”,拒絕重復造輪子!

大家在公司工作當中是不是很多時間裝環境很麻煩&#xff0c;一個項目要上線了&#xff0c;開始網上搜了一邊又一遍的環境搭建教程&#xff1f;等到下一個項目要上線了&#xff0c;又上網上搜了一邊又一遍的環境搭建教程。關鍵天花亂墜的互聯網&#xff0c;找不到很靠譜的呀。有…

數組的移動

設計程序&#xff0c;給定包含N個整數的數組array&#xff0c;實現操作&#xff1a;前面各個整數順序向后移動m個位置&#xff0c;最后的m個整數移動到最前面。方法&#xff1a;void move(int array[], int n,int m ) 輸入要求 第一行輸入兩個整數N(1<N<1e6)和m(0<m&…

webpack 配置

1、基礎配置 // node js核心模塊 const path require(path) // 插件是需要引入使用的 const ESLintPlugin require(eslint-webpack-plugin) // 自動生成index.html const HtmlWebpackPlugin require(html-webpack-plugin); // 將css文件單獨打包&#xff0c;在index.html中…

如何做好項目管理?年薪百萬項目大佬一直在用這11張圖

大家好&#xff0c;我是老原。 日常工作中&#xff0c;我們會遇到各種大大小小的工作項目&#xff0c;如何能讓項目保質保量的完成&#xff0c;是我們項目經理的目標。 項目管理的流程可以說是由一系列的子過程組成的&#xff0c;它是一個循序漸進的過程&#xff0c;所以不能…

python數字

目錄 整數&#xff08;如&#xff0c;2、4、20 &#xff09;的類型是 int&#xff0c;帶小數&#xff08;如&#xff0c;5.0、1.6 &#xff09;的類型是 float。 Python 用 ** 運算符計算乘方 1&#xff1a; 等號&#xff08;&#xff09;用于給變量賦值。 解釋器像一個簡單…

進程API

linux下進程的api forkwaitexec fork #include <stdio.h> #include <stdlib.h> #include <unistd.h>/* linux環境運行 子進程并不是完全拷貝了父進程。具體來說&#xff0c;雖然它擁有自己的 地址空間&#xff08;即擁有自己的私有內存&#xff09;、寄存器…

【Delphi】使用TWebBrowser執行JavaScript命令傳入JSON參數執行出錯解決方案

目錄 一、問題背景&#xff1a; 二、實際示例&#xff1a; 三、解決方案&#xff1a; 1. Delphi 代碼&#xff1a; 2. javaScript代碼&#xff1a; 一、問題背景&#xff1a; 在用Delphi開發程序&#xff0c;無論是移動端還是PC端&#xff0c;都可以很方便的使用TWebBrows…

Postman如何使用(一):導入導出和發送請求查看響應

一、Postman如何導入導出打包的應用 在Postman中導入導出我們的 測試數據包 和 工作環境 非常的方便&#xff1a; 導出數據包的方法如下&#xff1a; 如果你想學習自動化測試&#xff0c;我這邊給你推薦一套視頻&#xff0c;這個視頻可以說是B站播放全網第一的自動化測試教程…

七天.NET 8操作SQLite入門到實戰 - 第三天SQLite快速入門

前言 今天我們花費一個小時快速了解SQLite數據類型、SQLite常用命令和語法。 七天.NET 8操作SQLite入門到實戰詳細教程 第一天 SQLite 簡介第二天 在 Windows 上配置 SQLite環境 EasySQLite項目源碼地址 GitHub地址&#xff1a;https://github.com/YSGStudyHards/EasySQLite&…

第一百七十六回 如何創建漸變色邊角

文章目錄 1. 概念介紹2. 實現方法3. 代碼與細節3.1 示例代碼3.2 代碼細節 4. 內容總結 我們在上一章回中介紹了"如何創建放射形狀漸變背景"相關的內容&#xff0c;本章回中將介紹"如何創建漸變色邊角".閑話休提&#xff0c;讓我們一起Talk Flutter吧。 1.…

2023-11-22 LeetCode每日一題(網格中的最小路徑代價)

2023-11-22每日一題 一、題目編號 2304. 網格中的最小路徑代價二、題目鏈接 點擊跳轉到題目位置 三、題目描述 給你一個下標從 0 開始的整數矩陣 grid &#xff0c;矩陣大小為 m x n &#xff0c;由從 0 到 m * n - 1 的不同整數組成。你可以在此矩陣中&#xff0c;從一個…

一石激起千層浪,有關奧特曼被炒的消息引發了一場熱烈的討論

在毫無征兆的情況下&#xff0c;OpenAI CEO山姆-奧特曼被炒了。 一石激起千層浪&#xff0c;有關奧特曼被炒的消息引發了一場熱烈的討論。 有人將其看成是一場「宮斗」&#xff0c;有人將其看成是OpenAI的董事會與創始人們的一次糾偏。 無論如何&#xff0c;這樣一件看似并無…

網工內推 | 合資公司網工,CCNP/HCIP認證優先,朝九晚六

01 中企網絡通信技術有限公司 招聘崗位&#xff1a;網絡工程師 職責描述&#xff1a; 1、按照工作流程和指引監控網絡運行情況和客戶連接狀況&#xff1b; 2、確保各監控系統能正常運作&#xff1b; 3、快速響應各個網絡告警事件&#xff1b; 4、判斷出網絡故障&#xff0c;按…

數據要素:數字經濟最核心的資源。(存儲,流通,使用)數據資產的價值量化評估,數據要素的特點

目錄 數據要素:數字經濟最核心的資源。(存儲,流通,使用) 數據資產的價值量化評估