TWI779383B - Br/edr 鏈路的mic 恢復 - Google Patents
Br/edr 鏈路的mic 恢復 Download PDFInfo
- Publication number
- TWI779383B TWI779383B TW109138192A TW109138192A TWI779383B TW I779383 B TWI779383 B TW I779383B TW 109138192 A TW109138192 A TW 109138192A TW 109138192 A TW109138192 A TW 109138192A TW I779383 B TWI779383 B TW I779383B
- Authority
- TW
- Taiwan
- Prior art keywords
- pdu
- received
- seqn
- packet
- value
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
- H04L1/1642—Formats specially adapted for sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
- H04L1/0054—Maximum-likelihood or sequential decoding, e.g. Viterbi, Fano, ZJ algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/08—Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L5/00—Arrangements affording multiple use of the transmission path
- H04L5/003—Arrangements for allocating sub-channels of the transmission path
- H04L5/0053—Allocation of signaling, i.e. of overhead other than pilot signals
- H04L5/0055—Physical resource allocation for ACK/NACK
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/18—Self-organising networks, e.g. ad-hoc networks or sensor networks
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Artificial Intelligence (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mobile Radio Communication Systems (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Communication Control (AREA)
- Mechanical Treatment Of Semiconductor (AREA)
Abstract
本文揭示用於辨識傳輸錯誤和糾正動作以維護鏈路的糾錯技術的裝置、方法和電腦可讀取媒體。一種無線通訊的示例方法包括:接收第一PDU,第一PDU包括SEQN位元或封包計數器值中的至少一項。該示例方法包括決定所接收的第一PDU的SEQN位元的值是預期SEQN還是非預期SEQN。該示例方法包括計算所接收的第一PDU的MIC。該示例方法包括決定所接收的第一PDU是先前PDU的重傳還是所接收的第一PDU包括錯誤。該示例方法包括回應於關於第一PDU是先前PDU的重傳還是第一PDU包括錯誤的決定,來發送ACK或NACK。
Description
請求優先權
本專利申請案請求於2019年11月22日提出申請的、名稱為「MIC RECOVERY OF BR/EDR LINKS」的申請案第16/693,083號的優先權,以及該申請被轉讓給本案的受讓人並且據此經由引用的方式明確地併入本文中。
概括而言,本案內容係關於通訊系統,以及更具體地,本案內容係關於基本速率/增強型速率鏈路的訊息完整性校驗恢復。
無線個人區域網路(WPAN)是用於將以與使用者的特定距離為中心的設備互連的個人短程無線網路。由於WPAN提供的連接靈活性和便利性,WPAN已經得以普及。WPAN(諸如基於短程通訊協定(例如,藍芽®
(BT)協定、藍芽®
低能量(BLE)協定、Zigbee®
協定等)的那些WPAN)經由提供允許在特定距離(例如,5米、10米、20米、100米等)內的連線性的無線鏈路,來提供去往周邊設備的無線連線性。
BT是短程無線通訊協定,其可以支援無線設備(例如,主設備)與至少一個周邊設備(例如,從設備)之間的WPAN。存在兩種形式的BT無線技術系統:基本速率(BR)和低能量(LE)。兩個系統都包括設備探索、連接建立和連接機制。BR系統包括可選的增強型速率(EDR)、替代的媒體存取控制(MAC)、和實體(PHY)層擴展。BR系統提供同步連接和非同步連接,其具有用於BR的資料速率721.2 kbps、用於EDR的資料速率2.1 Mbps、以及關於802.11 AMP的多達54 Mbps的高速操作。LE系統包括被設計為實現具有比BR/EDR更低的電流消耗的產品的特徵。主BR/EDR設備可以與無線網路(例如,微微網路)中的最多七個從設備進行通訊。
在有雜訊或差的射頻環境中,BR/EDR鏈路可能變得不可靠。為了對此抵消,BT提供了可以允許接收設備(例如,從設備)偵測及/或糾正所發送的資料封包中的錯誤的糾錯技術。例如,當接收設備偵測到所接收的資料封包中的錯誤時,接收設備可以向發送設備(例如,主設備)發送否定確認(NACK),以指示沒有正確地接收到特定資料封包。回應於NACK,發送設備可以重新發送該特定資料封包,直到接收設備發送指示特定資料封包被正確地接收的確認(ACK)。然而,在一些情況下,所發送的資料封包在傳輸期間可能被損壞,使得由接收設備(例如,從設備)接收的資料封包不是最初由發送設備(例如,主設備)發送的資料封包。在此類情況下,接收設備將持續地偵測到錯誤以及發送重複的NACK,這可能導致鏈路損耗。因此,存在對於補償傳輸錯誤以及維護鏈路的糾錯技術的需求。
下文提供了一或多個態樣的簡要概述,以便提供對此類態樣的基本理解。該概述不是對全部預期態樣的廣泛綜述,以及既不旨在標識全部態樣的關鍵或重要元素,也不旨在圖示任何或全部態樣的範圍。其唯一目的是以簡化的形式提供一或多個態樣的一些概念,作為稍後提供的更加詳細的描述的前序。
用於與WPAN一起使用的各種標準和協定(諸如BT及/或BLE)可以規定來自一個設備(例如,主設備)的資料被輸出到另一設備(例如,從設備)上。例如,智慧型電話可以經由短程無線通訊鏈路與耳機耦合,以及可以向耳機發送音訊資料以經由耳機的揚聲器播放。
在一些場景下,當主設備正在向從設備發送資料封包時存在的狀況可能改變。例如,與短程無線通訊鏈路相關聯的通道狀況可能降級。為了抵消通道狀況中的降級,BT提供了可以允許接收設備(例如,從設備)偵測及/或糾正在所發送的資料封包中的錯誤的糾錯技術。例如,某些封包類型可以包括前向糾錯(FEC)編碼以允許接收設備進行糾錯,一些封包類型包括循環冗餘錯誤校驗(CRC),而一些封包類型可以包括用於驗證資料的完整性的訊息完整性校驗(MIC)以及用於避免重放攻擊的封包計數器。當第三方擷取發送的封包以及重放或重新發送所擷取的資料封包的修改版本以試圖獲得對旨在接收最初發送的資料封包的設備的存取時,可能發生重放攻擊。
糾錯失敗可能導致接收設備(例如,從設備)向源設備(例如,主設備)發送NACK,使得源設備重新發送所發送的資料封包的原始版本。當接收設備沒有正確地解密由源設備加密的資料封包時,BR/EDR鏈路可能容易受到MIC錯誤的影響。所發送的資料封包在傳輸期間可能變為被損壞,使得接收設備可能無法使用MIC來驗證資料的完整性,以及遇到重複的MIC錯誤。重複的MIC錯誤可能導致鏈路丟失。
存在對於用於辨識傳輸錯誤以及採取糾正動作來維護鏈路的BT糾錯技術的需求。更具體地,存在對於用於接收設備從重複的MIC錯誤中恢復的機制的需求,重複的MIC錯誤可能由於在傳輸期間的位元翻轉錯誤而發生。
本案內容提供了一種糾錯技術,其允許接收設備辨識在資料封包的傳輸期間可能發生的資料封包錯誤,以及執行糾正動作以維護與源設備的通訊鏈路。接收設備可以被配置為檢查資料封包的一或多個部分,以辨識在資料封包中在傳輸期間發生的錯誤。因此,這些技術提供了針對封包的糾錯,包括不受嵌入的糾錯機制保護的封包部分。結果,在有雜訊的通訊媒體上的資料通訊可以更加可靠,因為這些技術可以降低錯誤率以及增加同級間設備(諸如接收設備和源設備)之間的鏈路穩定性。
在本案內容的一個態樣中,提供了一種方法、電腦可讀取媒體和裝置。該裝置可以接收第一封包資料單元(PDU),該第一PDU包括序號(SEQN)位元或封包計數器值中的至少一項。該裝置可以決定所接收的第一PDU的該SEQN位元的值是預期SEQN還是非預期SEQN。該裝置可以基於該封包計數器值來計算所接收的第一PDU的MIC。該裝置可以基於關於該SEQN位元的該值是非預期SEQN的決定,來決定所接收的第一PDU是先前PDU的重傳還是所接收的第一PDU包括錯誤。該裝置可以回應於關於該第一PDU是該先前PDU的該重傳還是該第一PDU包括錯誤的決定,來發送ACK或NACK。
為了實現前述目的和相關目的,一或多個態樣包括下文中充分描述以及在請求項中具體指出的特徵。下文的描述和附圖詳細地闡述了一或多個態樣的某些說明性特徵。然而,所示出的特徵指示可以在其中採用各個態樣的原理的各種方式中的僅一些方式,以及該描述旨在包括全部此類態樣以及它們的均等物。
下文結合附圖闡述的具體實施方式旨在作為對各種配置的描述,而並非旨在表示在其中可以實踐本文所描述的概念的唯一配置。出於提供對各個概念的全面理解的目的,具體實施方式包括特定細節。然而,對於本領域技藝人士將顯而易見的是,可以在沒有這些特定細節的情況下實踐這些概念。在一些情況中,以方塊圖形式圖示公知的結構和元件,以便避免模糊此類概念。
現在將參照各種裝置和方法來提供電信系統的若干態樣。將經由各個方塊、元件、電路、程序、演算法等(被統稱為「元素」),在下文的具體實施方式中描述以及在附圖中示出該等裝置和方法。該等元素可以使用電子硬體、電腦軟體或其任意組合來實現。此類元素是實現為硬體還是軟體,取決於特定的應用和對整個系統所施加的設計約束。
舉例而言,可以將元素、元素的任何部分、或元素的任意組合實現為「處理系統」,其包括一或多個處理器。處理器的示例包括:微處理器、微控制器、圖形處理單元(GPU)、中央處理單元(CPU)、應用處理器、數位訊號處理器(DSP)、精簡指令集運算(RISC)處理器、片上系統(SoC)、基頻處理器、現場可程式化閘陣列(FPGA)、可程式化邏輯裝置(PLD)、狀態機、閘控邏輯、個別硬體電路、以及被配置為執行遍及本案內容描述的各種功能的其它合適的硬體。處理系統中的一或多個處理器可以執行軟體。無論被稱為軟體、韌體、仲介軟體、微代碼、硬體描述語言還是其它術語,軟體都應當被廣泛地解釋為意指指令、指令集、代碼、程式碼片段、程式碼、程式、副程式、軟體元件、應用、軟體應用、套裝軟體、常式、子常式、物件、可執行檔、執行的執行緒、程序、函數等。
相應地,在一或多個示例實施例中,可以在硬體、軟體或其任意組合中實現所描述的功能。如果在軟體中實現,該等功能可以作為一或多個指令或代碼儲存在電腦可讀取媒體上或在電腦可讀取媒體上進行編碼。電腦可讀取媒體包括電腦儲存媒體。儲存媒體可以是能夠由電腦存取的任何可用媒體。經由舉例而非限制的方式,此類電腦可讀取媒體可以包括隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電子可抹除可程式化ROM(EEPROM)、光碟儲存、磁碟儲存、其它磁儲存裝置、上述類型的電腦可讀取媒體的組合、或者能夠用於以指令或資料結構形式儲存能夠由電腦存取的電腦可執行代碼的任何其它媒體。
圖1根據本案內容的某些態樣圖示示例WPAN 100。在WPAN 100內,無線設備102可以使用通訊鏈路116,以使用短程無線通訊協定與一或多個周邊設備104、106、108、110、112、114進行通訊。短程無線通訊協定可以包括BT協定或BLE協定。
無線設備102的示例可以包括蜂巢式電話、智慧型電話、通信期啟動協定(SIP)電話、行動站(STA)、膝上型電腦、個人電腦(PC)、桌上型電腦、個人數位助理(PDA)、衛星無線單元、全球定位系統、多媒體設備、視訊設備、數位音訊播放機(例如,MP3播放機)、相機、遊戲控制台、平板設備、智慧設備、可穿戴設備(例如,智慧手錶、無線耳機等)、車輛、電錶、氣泵、烤箱、恒溫器、助聽器、血糖在體單元、物聯網路(IoT)設備或任何其它功能相似的設備。
一或多個周邊設備104、106、108、110、112、114的示例可以包括蜂巢式電話、智慧型電話、SIP電話、STA、膝上型電腦、PC、桌上型電腦、PDA、衛星無線單元、全球定位系統、多媒體設備、視訊設備、數位音訊播放機(例如,MP3播放機)、相機、遊戲控制台、平板設備、智慧設備、可穿戴設備(例如,智慧手錶、無線耳機等)、車輛、電錶、氣泵、烤箱、恒溫器、助聽器、血糖在體單元、IoT設備或任何其它功能相似的設備。儘管無線設備102被示為與WPAN 100中的六個周邊設備104、106、108、110、112、114進行通訊,但是在不脫離本案內容的範圍的情況下,無線設備102可以與WPAN 100內的多於或少於六個的周邊設備進行通訊。
實現BT協定的設備(例如,無線設備102)可以根據諸如BR/EDR的一種無線模式進行操作,以及實現BLE協定的設備可以根據BLE無線模式進行操作。在一些態樣中,設備(例如,無線設備102)可以被配置有雙無線模式,以及可能能夠基於該設備可能參與的短程無線通訊的類型,根據BR/EDR模式或者BLE模式進行操作。
例如,設備可以根據BR/EDR模式進行操作,以用於對資料(例如,音訊資料)的連續的串流傳輸、用於廣播網路、用於網狀網路及/或用於在其中相對較高的資料速率可能是更合適的一些其它應用。然而,設備可以根據BLE模式進行操作,以用於短脈衝資料傳輸及/或用於在其中可能期望功率節省(例如,當相對較低的資料速率可以是可接受的)一些其它應用。
短程無線通訊協定(例如,BT及/或BLE)可以包括及/或可以使用一或多個其它通訊協定,例如以用於建立和維護通訊鏈路。如圖所示,無線設備102可以根據用於短程無線通訊的至少一種通訊協定來與周邊設備104、106、108、110、112、114建立通訊鏈路116。
通訊鏈路116可以包括遵循與BT或BLE包括在一起的及/或用於與其一起使用的協定的鏈路。在一個態樣中,通訊鏈路116可以包括非同步無連接(ACL)鏈路。利用ACL,無線設備102可以與第二設備(例如,周邊設備112)進行連接(或者在BT規範的術語中,「進行配對」)。該連接可以是非同步的,因為兩個設備可以不需要按照時間相互之間對資料通訊進行同步來允許經由通訊鏈路116傳送資料封包。
在一些態樣中,通訊鏈路116可以包括進階音訊分發簡檔(A2DP)鏈路。A2DP鏈路可以提供在源設備(例如,無線設備102)與宿設備(例如,周邊設備112)之間的點對點鏈路。利用A2DP鏈路,可以在ACL資料通道上發送包括音訊的資料封包,以及可以在單獨的控制通道上發送其它資訊(例如,用於控制音訊串流)。資料封包(例如,包括音訊)可以非週期性地發生。
無線設備102可以包括可以用以使用BLE協定或經修改的BLE協定與一或多個周邊設備104、106、108、110、112、114進行通訊的邏輯、電路、介面、處理器及/或代碼。無線設備102可以作為發起者進行操作,以請求建立與預期的周邊設備104、106、108、110、112、114的鏈路層(LL)連接。
與BT相比,BLE協定堆疊及/或經修改的BLE協定堆疊(未示出)中的LL可以提供超低功率閒置模式操作、簡單的設備探索和更加可靠的點對多點資料傳輸以及進階功率節省和加密功能。在建立請求的LL連接之後,無線設備102可以變為主設備,以及預期的周邊設備104、106、108、110、112、114可以變為用於所建立的LL連接的從設備。作為主設備,無線設備102可能能夠一次支援與各個周邊設備104、106、108、110、112、114(從設備)的多個LL連接。無線設備102(主設備)可以可操作為管理在與相關聯的周邊設備104、106、108、110、112、114(從設備)的LL連接上的資料封包通訊的各個態樣。例如,無線設備102可以可操作為決定針對與周邊設備104、106、108、110、112、114的LL連接的操作排程。無線設備102可以可操作為在LL連接上發起LL協定資料單元(PDU)交換序列。LL連接可以被配置為在專用資料通道上運行週期性連接事件。在無線設備102與周邊設備104、106、108、110、112、114中的一或多個周邊設備之間的LL資料PDU傳輸的交換可以在連接事件內發生。
在某些配置中,無線設備102可以被配置為向預期的周邊設備104、106、108、110、112、114發送每個連接事件的第一LL資料PDU。在某些其它配置中,無線設備102可以利用輪詢方案,以針對在連接事件期間的LL資料PDU傳輸來輪詢預期的周邊設備104、106、108、110、112、114。預期的周邊設備104、106、108、110、112、114可以在從無線設備102接收到LL資料封包PDU時發送LL資料PDU。在某些其它配置中,周邊設備104、106、108、110、112、114可以在沒有首先從無線設備102接收LL資料PDU的情況下向無線設備102發送LL資料PDU。
再次參考圖1,在某些態樣中,周邊設備(例如,從設備)可以被配置為辨識資料封包錯誤以及執行糾正動作以維護與源設備(例如,主設備)的通訊鏈路。例如,在圖1中,周邊設備可以包括決定元件120,其被配置為決定第一接收的PDU是先前接收的PDU的重傳或者所接收的第一PDU是否包括錯誤。決定元件120可以被配置為基於關於SEQN位元的值是非預期SEQN的決定,來決定第一接收的PDU是重傳還是包括錯誤。在一些態樣中,當第一PDU是重傳時或者當第一PDU包括錯誤時,可以發生不同的糾正動作。
圖2是根據本案內容的某些態樣的無線設備200的方塊圖。無線設備200可以對應於例如上文結合圖1描述的周邊設備104、106、108、110、112、114中的一者及/或無線設備102。在某些態樣中,無線設備200可以是支援BT的設備。
如圖2所示,無線設備200可以包括諸如處理器202的處理元件,其可以執行用於無線設備200的程式指令。無線設備200還可以包括顯示器電路204,其可以執行圖形處理以及向顯示器242提供顯示器信號。處理器202還可以耦合到記憶體管理單元(MMU)240,其可以被配置為從處理器202接收位址以及將這些位址轉換為記憶體(例如,記憶體206、ROM 208、快閃記憶體210)中的位址位置及/或其它電路或設備(諸如顯示器電路204、無線單元230、連接器介面220及/或顯示器242)中的位址位置。MMU 240可以被配置為執行記憶體保護和頁表轉換或建立。在一些實施例中,可以將MMU 240包括為為處理器202的一部分。
如圖所示,處理器202可以耦合到無線設備200的各種其它電路。例如,無線設備200可以包括各種類型的記憶體、連接器介面220(例如,用於耦合到電腦系統)、顯示器242和無線通訊電路(例如,用於Wi-Fi、BT、BLE、蜂巢等)。無線設備200可以包括用於執行與例如WPAN中的無線設備的無線通訊的複數個天線235a、235b、235c、235d。
在某些態樣中,無線設備200可以包括被配置為進行以下操作的硬體和軟體元件(處理元件):例如使用在本案內容中描述的技術,辨識資料封包錯誤以及執行糾正動作以維護與源設備的鏈路。無線設備200還可以包括用於控制BT及/或BLT操作的BT及/或BLE韌體或其它硬體/軟體。
無線設備200可以被配置為例如經由執行在記憶體媒體(例如,非暫時性電腦可讀記憶體媒體)上儲存的程式指令及/或經由硬體或韌體操作,來實現下文結合圖3-18中的任何圖來描述的技術的部分或全部技術。在其它實施例中,下文結合圖3-18中的任何圖來描述的技術可以至少部分地由可程式化硬體元件(諸如現場可程式化閘陣列(FPGA))及/或專用積體電路(ASIC)來實現。
在某些態樣中,無線單元230可以包括被配置為控制用於各種相應的無線存取技術(RAT)協定的通訊的單獨的控制器。例如,如圖2所示,無線單元230可以包括被配置為控制WLAN通訊的WLAN控制器250、被配置為控制短程通訊的短程通訊控制器252、以及被配置為控制WWAN通訊的WWAN控制器256。在某些態樣中,無線設備200可以儲存和執行用於控制由WLAN控制器250執行的WLAN操作的WLAN軟體驅動器、用於控制由短程通訊控制器252執行的短程通訊操作的短程通訊軟體驅動器、及/或用於控制由WWAN控制器256執行的WWAN操作的WWAN軟體驅動器。
在某些實現方式中,第一共存介面254(例如,有線介面)可以用於在WLAN控制器250與短程通訊控制器252之間發送資訊。在某些其它態樣中,第二共存介面258可以用於在WLAN控制器250與WWAN控制器256之間發送資訊。在某些其它態樣中,第三共存介面260可以用於在短程通訊控制器252與WWAN控制器256之間發送資訊。
在一些態樣中,WLAN控制器250、短程通訊控制器252及/或WWAN控制器256中的一者或多者可以被實現為硬體、軟體、韌體或其某種組合。
在某些態樣中,WLAN控制器250可以被配置為使用天線235a、235b、235c、235d中的全部天線,使用WLAN鏈路來與WPAN中的第二設備進行通訊。在某些其它配置中,短程通訊控制器252可以被配置為使用天線235a、235b、235c、235d中的一或多個天線來與WPAN中的至少一個第二設備進行通訊。在某些其它配置中,WWAN控制器256可以被配置為使用天線235a、235b、235c、235d中的全部天線與WPAN中的第二設備進行通訊。短程通訊控制器252可以被配置為辨識資料封包錯誤以及執行糾正動作以維護與源設備的鏈路。
圖3根據本案內容的某些態樣圖示可以在無線設備中實現的BT協定堆疊300。例如,BT協定堆疊300可以例如由在圖2中所示的處理器202、記憶體206、快閃記憶體210、ROM 208、無線單元230及/或短程通訊控制器252中的一者或多者來實現。
參照圖3,BT協定堆疊300可以被組織為下層、中間層和上層。BT協定堆疊300的下層可以包括控制器306,其尤其可以用於硬體介面管理、鏈路建立和鏈路管理。BT協定堆疊300的中間層可以包括主機304,其尤其可以用於應用(層)介面管理以允許應用(層)存取短程無線通訊。BT協定堆疊300的較高層可以包括應用302,其可以包括一或多個應用以及允許一或多個應用使用BT通訊的一或多個簡檔。
控制器306可以包括實體(PHY)層322。PHY層322可以包括例如無線單元及/或基頻處理器。在一些態樣中,PHY層322可以定義用於在連接BT設備的實體鏈路或通道上發送位元串流的機制。位元串流可以被分組為編碼字或符號,以及被轉換為在無線傳輸媒體上發送的資料封包。PHY層322可以向無線傳輸媒體提供電、機械及/或程序介面。PHY層322可以負責將資料調制和解調為射頻(RF)信號以經由空中傳輸。PHY層322可以描述無線設備的接收器/發射器的物理特性。物理特性可以包括調制特性、射頻容限、靈敏度級別等。
控制器306還可以包括鏈路控制器層320。鏈路控制器層320可以負責適當地將用於提供給PHY層322以及從PHY層322獲得的資料進行格式化。此外,鏈路控制器層320可以執行對鏈路(例如,邏輯鏈路,其包括ACL鏈路、A2DP鏈路、SCO鏈路、eSCO鏈路、ISO鏈路等)的同步。鏈路控制器層320可以負責執行經由鏈路管理器層318發出的命令和指令,其包括建立和維護經由鏈路管理器層318指示的鏈路。
鏈路管理器層318可以將主機控制器介面(HCI)316命令轉換為控制器級別的操作(例如,基頻級別的操作)。鏈路管理器層318還可以負責建立和配置鏈路以及管理功率改變請求、以及其它任務。每個類型的邏輯鏈路(例如,ACL鏈路、A2DP鏈路、SCO鏈路、eSCO鏈路、ISO鏈路等)可以與特定的封包類型相關聯。例如,SCO鏈路可以提供針對在主設備與從設備之間的通訊的預留的通道頻寬,以及支援在不進行重傳的情況下對資料封包的定期、週期***換。eSCO鏈路可以提供針對在主設備與從設備之間的通訊的預留的通道頻寬,以及支援在重傳的情況下對資料封包的定期、週期***換。從建立在主設備與從設備之間的連接開始,在主設備與從設備之間可以存在ACL鏈路,以及用於ACL鏈路的資料封包除了有效載荷之外,還可以包括編碼資訊。
鏈路管理器層318可以經由主機控制器介面(HCI)316與主機堆疊304進行通訊,例如,鏈路管理器層318可以將HCI 316命令轉換為控制器級別的操作(例如,基頻級別的操作)。HCI 316可以充當在BT協定堆疊300的下層(例如,控制器306)與BT協定堆疊的其它層(例如,主機304和應用302)之間的邊界。BT規範可以定義標準HCI以支援跨越兩個單獨的處理器來實現的BT系統。例如,在電腦上的BT系統可以使用BT元件的處理器來實現堆疊的下層(例如,PHY層322、鏈路控制器層320及/或鏈路管理器層318)。BT系統然後可以使用BT系統的處理器來實現其它層(例如,主機304和應用302)。然而,在一些態樣中,BT系統可以是在相同的處理器上實現的以實現其它層(例如,主機304和控制器306),以及此類BT系統可以被稱為「無主機」。
主機304可以至少包括邏輯鏈路控制和適配協定(L2CAP)層314、服務探索協定(SDP)層312、射頻通訊(RFCOMM)層310和物件交換(OBEX)層308。L2CAP層314是在HCI 316之上實現的,以及可以經由HCI 316進行通訊。L2CAP層314主要可以負責建立跨越一些現有鏈路(例如,包括ACL鏈路的邏輯鏈路)的連接及/或請求一些鏈路(例如,包括ACL鏈路的邏輯鏈路)的建立(如果此類鏈路尚不存在的話)。此外,L2CAP層314可以在不同的較高層協定(諸如SDP協定和RFCOMM協定)之間實現多工,這可以允許不同的應用使用單個鏈路(例如,包括ACL鏈路的邏輯鏈路)。另外,L2CAP層314可以將從較高層接收的資料封包重新封包為較低層所期望的格式。L2CAP層314可以採用通道的概念來追蹤資料封包源自何處以及資料封包應當去往何處。通道可以是在發送設備(例如,主設備)處的L2CAP層314與在接收設備(例如,從設備)處的另一L2CAP層314之間的資料流或串流傳輸的邏輯表示。
SDP層312可以定義針對BT服務的伺服器和客戶端兩者的動作。BT規範將服務定義為可以是可由另一(遠端)BT設備使用的任何特徵。SDP客戶端可以使用L2CAP鏈路上的預留通道來與SDP伺服器進行通訊,以探索哪些服務是可用的。當SDP客戶端找到所期望的服務時,SDP客戶端可以請求單獨的連接以使用該服務。預留通道可以專用於SDP通訊,以使得設備知道如何連接到在任何其它設備上可用的SDP服務。SDP伺服器可以維護SDP資料庫,SDP資料庫可以包括描述SDP伺服器所提供的服務的一組服務記錄。服務記錄可以包含服務的通用唯一辨識碼(UUID)以及描述SDP客戶端可以如何連接到服務的資訊。
RFCOMM層310可以模擬串列電纜線設置和RS-232序列埠的狀態。RFCOMM層310可以經由L2CAP層314連接到BT協定堆疊300的下層。經由提供序列埠模擬,RFCOMM層310可以支援傳統的序列埠應用。RFCOMM層310還可以支援物件交換(OBEX)層308。
OBEX層308可以定義可以由設備用來交換資料物件的通訊協定。資料物件還可以是由OBEX層308來定義的。希望與另一設備建立OBEX通訊通信期的BT設備可以被視為客戶端設備。客戶端設備初始可以發送一或多個SDP請求,以確保另一設備可以充當OBEX服務的伺服器。如果伺服器設備可以提供OBEX服務,則伺服器設備可以利用伺服器設備的OBEX服務記錄進行回應。OBEX服務記錄可以包含客戶端設備可以用來建立RFCOMM通道的RFCOMM通道號。在兩個設備之間的進一步通訊可以是以封包來傳送的,封包可以包含請求、回應及/或資料。封包的格式可以是由OBEX通信期協定來定義的。
應用層302可以包括至少一個應用326,其中使用者可以與應用326進行互動以及應用326可以存取BT通訊以用於各種功能。應用326可以經由可以描述各種各樣的不同類型的任務的一或多個簡檔328來存取BT通訊。經由遵循一或多個簡檔328的程序,應用326可以根據BT規範來使用BT通訊。
圖4是根據本案內容的某些態樣示出封包結構的示例圖400。資料封包可以與各種短程無線通訊技術(諸如BT)一起使用。資料封包402可以是通用的基本速率封包格式。資料封包402可以包括存取碼402、標頭404和有效載荷406。資料封包410可以是通用的增強型速率封包格式。資料封包410可以包括存取碼404、標頭406、保護412、同步414、增強型速率有效載荷416和尾部418。資料封包410的存取碼404和標頭406在格式和調制上可以與資料封包402相同。資料封包410包括跟隨在標頭之後的保護時間和同步序列。資料封包410還包括跟隨在有效載荷之後的尾部符號。
在一些態樣中,封包402的存取碼404可以包括72或68個位元,而標頭406可以包括54個位元。有效載荷406可以具有在0個位元到最大2790個位元的範圍內的位元。在一些態樣中,封包402可以僅包括縮短的存取碼404。在一些態樣中,封包402可以包括存取碼404和標頭406。在又一些態樣中,封包402可以包括存取碼404、標頭406和有效載荷408。存取碼可以標識在實體通道上交換的封包。
在一些態樣中,標頭420可以包括複數個欄位,其至少包括LT_ADDR欄位422、TYPE欄位424、FLOW欄位426、ARQN欄位428、SEQN欄位430和標頭錯誤校驗(HEC)欄位432。標頭420可以對應於資料封包402及/或410的標頭404。LT_ADDR欄位422可以指示邏輯傳輸位址。LT_ADDR欄位422可以與邏輯鏈路相關聯。例如,被包括在LT_ADDR欄位422中的邏輯傳輸位址可以指示邏輯鏈路的類型(例如,ACL、A2DP、eSCO、ISO等)。TYPE欄位424可以指示使用了哪種封包類型。所使用的封包的類型可用取決於封包中的邏輯傳輸位址。FLOW欄位426可以用於對在ACL邏輯傳輸上的封包的流控制。ARQN 428可以是用以向源設備通知對有效載荷資料的成功傳輸的1位元確認指示。SEQN位元430提供順序編號方案以對資料封包串流進行排序。對於每個新的資料有效載荷傳輸,可以將SEQN位元進行交替。在其中PDU被重新發送的情況下,不改變SEQN位元,所以目的地可以將當前SEQN位元值與先前SEQN位元值進行比較。如果兩個值是不同的,則已經接收到新的有效載荷,否則有效載荷是相同的資料有效載荷或先前有效載荷的重複。
在BR/EDR協定中,封包可以使用自動重傳請求(ARQ)協定來向源設備通知接收到的封包的狀態。每當接收設備(例如,從設備)接收到資料封包時,接收設備利用所接收的封包的ACK或NACK來對源設備(例如,主設備)進行回應。ARQ可以具有值「1」或「0」,其中值「1」指示所接收的資料封包的ACK,而值「0」指示所接收的資料封包的NACK。ACK指示所接收的資料封包是在沒有錯誤的情況下接收的,而NACK指示所接收的資料封包是在具有錯誤的情況下接收的。例如,資料封包可能在該資料封包內具有一些錯誤,諸如但不限於由於封包位元的一些位元被損壞而導致的循環冗餘檢查(CRC)錯誤。在空中傳輸期間,封包位元可能變為被損壞。在另一示例中,所接收的資料封包可以是在沒有任何位元錯誤的情況下接收的,但是封包可能具有資料完整性錯誤(諸如訊息完整性校驗(MIC)錯誤)。當接收器無法辨識所接收的資料封包的發送者或源設備時,可能發生MIC錯誤。在這種情況下,接收設備可以利用NACK進行回應以及丟棄所接收的資料封包。
每個封包可以具有序列欄位,其可以是關於正在發送的內容的反映。序列欄位可以是用於順序編號方案的1位元欄位。序列位元或SEQN位元可以用以將新封包與所重新發送的封包進行區分。通常,每當發送新封包時,序列位元將被反轉。例如,SEQN位元可以具有值「0」或「1」,以及可以利用SEQN位元值0來發送第一封包。如果第一封包被確認,那麼將利用SEQN位元值1來發送下一封包。對於每個新傳輸,SEQN位元將在「0」和「1」之間交替。然而,在被重新發送的封包的情況下,將不改變SEQN位元以使接得收設備能夠決定該封包是重傳。例如,如果第一封包是利用SEQN位元值「0」來發送的,但是第一封包沒有被確認(例如,NACK),則下一封包將是第一封包的重傳,其再次具有SEQN位元值「0」。因此,接收設備可以決定當前封包是先前封包的重傳。
在一些態樣中,ARQN位元和SEQN位元中的一者或兩者在傳輸期間可能被損壞,使得ARQN位元及/或SEQN位元的值在傳輸期間被翻轉。因此,所接收的ARQN位元及/或SEQN位元的值不是最初發送的值。被翻轉的SEQN位元及/或被翻轉的ARQN位元可能導致封包丟失及/或鏈路失敗。另外,在一些加密方案下,經歷被翻轉的SEQN位元及/或被翻轉的ARQN位元的資料封包可能導致重複的MIC錯誤。重複的MIC錯誤可能被接收設備認為是從攻擊設備(例如,嘗試獲得對接收設備的未經授權的存取的未經授權的設備)接收資料封包,而不是從經認證的設備接收資料封包。在此類情況下,接收設備可以終止鏈路以便防止接收未經授權的資料封包的接收。另外,被翻轉的SEQN位元及/或被翻轉的ARQN位元可能導致接收設備將所接收的資料解釋為具有從未被辨識的設備發送的重複的MIC錯誤,以及最終使得接收設備終止鏈路。
鏈路丟失可能是接收到具有被翻轉的SEQN位元及/或被翻轉的ARQN位元的PDU封包的結果。在一些其它加密方案中,對於接收到位元錯誤的結果可能不會導致鏈路丟失。例如,可能存在一些封包丟失,但是鏈路可能保持完整。在使用某些加密方案的某些音訊應用中,資料封包中的錯誤可能導致封包丟失,這可能導致可聽到的刺聲(glitch),而不是鏈路丟失。然而,在其它加密方案(諸如但不限於具有區塊鏈的訊息認證碼的進階加密標準(AES)-計數器(AES-CCM))中,接收到被翻轉的SEQN位元及/或被翻轉的ARQN位元的結果是鏈路丟失。也就是說,由於重複的MIC錯誤,鏈路將被終止。AES-CCM加密可以取決於資料封包的封包計數器。所發送的每個封包將具有特定計數器,該計數器可以是遞增計數器。例如,所發送的第一封包或PDU可以具有封包計數器值「1」,所發送的第二新封包或PDU可以具有封包計數器值「2」,以及所發送的第三新封包或PDU可以具有封包計數器值「3」等等。然而,被重新發送的封包或PDU可以不具有新封包計數器值。被重新發送的封包可以具有與先前發送的封包相同的封包計數器值,以及封包計數器值將僅在新封包或PDU的傳輸上進行遞增。封包計數器值可以不在空中發送,而是可以替代地用作用於加密資料封包的關鍵參數。每個封包可以具有用於加密的不同的輸入封包計數器值。接收設備採用相同的加密金鑰(例如,封包計數器值)來解密資料封包。因此,對於AES-CCM加密,封包計數器值應當在發送側和接收側兩者保持同步,以用於可靠的通訊。
如果一或多個資料封包在傳輸期間丟失,則封包計數器可能失去同步。如果封包計數器失去同步,則接收設備可能無法正確地解密資料封包,因為接收設備可能沒有在使用正確的加密金鑰來解密資料,這可能導致不正確的密碼金鑰和重複的MIC錯誤。接收設備可以將重複的MIC錯誤解釋為對接收設備的攻擊,以及可以終止鏈路。失去同步的封包計數器可能對後續資料封包的解密具有多米諾效應,使得對後續資料封包的解密失敗,這繼而可能被解釋為由接收設備進行的攻擊,以及導致發送設備與接收設備之間的鏈路丟失。
因此,對於上文的類型的加密,在接收到被翻轉的SEQN位元及/或被翻轉的ARQN位元導致鏈路丟失的情況下,存在對於可以辨識位元錯誤以及採取糾正動作來維護鏈路的糾錯技術的需求。
本案內容提供了一種糾錯技術,該糾錯技術允許接收設備辨識在資料封包的傳輸期間可能發生的資料封包錯誤(諸如被翻轉的SEQN位元及/或被翻轉的ARQN位元)以及執行糾正動作以維護與源設備的鏈路。接收設備可以被配置為檢查資料封包的一或多個部分,以辨識在資料封包中的在傳輸期間發生的錯誤。因此,該等技術提供了針對封包(包括不受嵌入的糾錯機制保護的封包部分)的糾錯。結果,接收設備可以不將MIC錯誤解釋為由未經授權的設備進行的攻擊,而是可以替代地能夠在某些狀況下採取糾正動作。另外,在有雜訊的通訊媒體上的資料通訊可以更加可靠,因為該等技術可以降低錯誤率以及增加接收設備與源設備之間的鏈路穩定性。
圖5圖示用於在其中封包的SEQN位元在封包的傳輸期間被翻轉的場景中,在WPAN中的第一設備502與第二設備504之間的通訊的資料流500。第一設備502可以對應於主設備,以及第二設備504可以對應於從設備。
第一設備502可以發送第一PDU 506。第一PDU 506可以具有SEQN位元值S和封包計數器值「x」。第二設備504從第一設備502接收第一PDU作為所接收的第一PDU 508。所接收的第一PDU 508具有SEQN位元值S和封包計數器值「x」。所接收的第一PDU 508的SEQN位元值和封包計數器值與針對第一PDU的SEQN位元和封包計數器值的預期值匹配。作為回應,第二設備504可以向第一設備502發送ACK 510,其指示第一PDU 506被正確地接收。
第一設備502可以接著發送第二PDU 512。第二PDU 512是新封包,以及具有SEQN位元值S-橫條或以及封包計數器值「x+1」。第二設備504接收從第一設備502發送的第二PDU作為所接收的第二PDU 516。然而,在第二PDU的傳輸期間,第二PDU的SEQN位元被翻轉,使得所接收的第二PDU 516具有SEQN位元值S,而封包計數器具有值「x+1」。在這種情況下,由於所接收的封包計數器的值與預期封包計數器值匹配,因此所接收的第二PDU 516可以具有MIC通過。然而,由於所接收的第二PDU 516具有SEQN位元值S,因此第二PDU可以作為副本而被丟棄,這是因為SEQN位元的值與最後成功地接收的SEQN位元(例如,所接收的第一PDU 508的SEQN位元)相同。因此,第二設備504發送ACK 518。
第一設備502可以接著發送第三PDU 520。第一設備502可以將第三PDU 520配置為具有SEQN位元值S以及封包計數器值「x+2」。由於先前發送的PDU已經被第二設備504 確認,因此封包計數器的值在由第一設備502發送的PDU中遞增。照此,第一設備502在關於PDU正被正確地接收的假設下進行操作。第二設備504接收從第一設備502發送的第三PDU 520作為所接收的第三PDU 522。第二設備504正在預期接收具有SEQN位元值的第三PDU 522,以及正在預期接收封包計數器值「x+1」,這是因為所接收的第二PDU 516具有與最後成功地接收的PDU的SEQN位元(例如,所接收的第一PDU 508的SEQN位元)相同的SEQN位元值。相反,所接收的第三PDU 522具有SEQN位元值S和封包計數器值「x+2」。由於封包計數器值「x+2」與預期封包計數器值「x+1」不匹配,因此所接收的第三PDU 522可能具有MIC失敗。在這種情況下,可以忽略MIC失敗,以及所接收的第三PDU 522可以作為副本而被丟棄,因為所接收的第三PDU 522的SEQN位元與最後成功地接收的PDU的SEQN位元(例如,所接收的第一PDU 508的SEQN位元)相同。第二設備504可以向第一設備502發送ACK 524。
第一設備502可以接著發送第四PDU 526。第一設備502可以將第四PDU 526配置為具有SEQN位元值和封包計數器值「x+3」。由於從第二設備504接收到ACK 524,因此再次將封包計數器的值遞增。回應於ACK 524,還將SEQN位元的值進行交替。第二設備504接收所發送的第四PDU 526作為所接收的第四PDU 528。第二設備504正在預期接收具有SEQN位元值和封包計數器編號「x+1」的第四PDU 528。然而,所接收的第四PDU 528具有SEQN位元值和封包計數器編號「x+3」。所接收的PDU 528的封包計數器編號「x+3」與預期封包計數器編號「x+1」不匹配。照此,由於所接收的第四PDU的封包計數器編號與預期封包計數器編號不匹配,因此所接收的第四PDU 528可能具有MIC失敗。第二設備504可以由於MIC失敗而向第一設備502發送NACK 530;所接收的第四PDU 528也被丟棄。
回應於NACK 530,第一設備502可以發送第五PDU 532。回應於NACK 530,第五PDU 532是對第四PDU 526的重傳。所發送的第五PDU 532可以被配置為具有SEQN位元值為和封包計數器值「x+3」,其與所發送的第四PDU 526的SEQN位元值和封包計數器值匹配。第二設備504接收所發送的第五PDU 532作為所接收的第五PDU 534。第二設備504正在預期所接收的第五PDU 534具有SEQN位元值和封包計數器值「x+1」(假設在第五封包的傳輸期間沒有位元錯誤)。所接收的第五PDU 534可以具有與預期值匹配的SEQN位元值。然而,所接收的第五PDU 534可以具有封包計數器值「x+3」,其與預期值「x+1」不匹配。照此,所接收的第五PDU 534可能具有MIC失敗。第一設備與第二設備之間的封包計數器不再是同步的,以及可能進入MIC錯誤的連續循環。在此類情況下,第二設備504可能將重複的MIC錯誤解釋為由發送設備進行的攻擊,以及可以終止鏈路作為防禦措施。在圖5的場景中,除了終止鏈路之外,沒有辦法從MIC錯誤的循環中恢復。因此,在傳輸期間在PDU中一個SEQN位元被翻轉的結果可能導致與第一設備502的鏈路丟失。
圖6圖示用於在其中PDU的SEQN位元在傳輸期間被翻轉的另一場景中,在WPAN中的第一設備602與第二設備604之間的通訊的資料流600。第一設備602可以對應於主設備,以及第二設備604可以對應於從設備。
第一設備602可以發送第一PDU 606。要被發送的第一PDU 606可以具有SEQN位元值S和封包計數器值「x」。第二設備604從第一設備602接收所發送的第一PDU作為所接收的第一PDU 608。所接收的第一PDU 608具有SEQN位元值S和封包計數器值「x」。然而,儘管所接收的第一PDU 508的SEQN位元和封包計數器值與針對所接收PDU的SEQN位元和封包計數器值匹配,但是所接收的第一PDU 608可能經歷CRC或MIC錯誤。作為回應,第二設備504可以向第一設備602發送NACK 610,其指示第一PDU 606沒有被正確地接收。
第一設備602可以接著發送第二PDU 612。第二PDU 612是第一PDU 606的重傳以及具有SEQN位元值S和封包計數器值「x」,其與第一PDU 606中的值相同。第二設備604從第一設備602接收所發送的第二PDU作為所接收的第二PDU 616。然而,在第二PDU的傳輸614期間,第二PDU的SEQN位元被翻轉,使得所接收的第二PDU 616具有SEQN位元值,而封包計數器具有值「x」。在這種情況下,由於所接收的封包計數器的值與預期封包計數器值匹配,因此所接收的第二PDU 616的MIC可以通過。然而,因為所接收的第二PDU 616具有SEQN位元值(由於被翻轉的SEQN位元),所以第二PDU可以作為副本而被丟棄,這是因為SEQN位元的值與最後成功地接收的PDU的SEQN位元(例如,所接收的第一PDU 608的SEQN位元)相同。這樣,第二設備604發送ACK 618。
第一設備602可以接著發送第三PDU 620。第一設備602可以將要被發送的第三PDU 620配置為具有SEQN位元值和封包計數器值「x+1」。封包計數器的值在由第一設備602發送的PDU中遞增,因為先前發送的PDU已經被第二設備604確認。照此,第一設備602在關於v正在正確地接收PDU的假設下進行操作。第二設備604從第一設備602接收所發送的第三PDU 620作為所接收的第三PDU 622。由於所接收的第二PDU 616具有與最後成功地接收的PDU的SEQN位元值(例如,所接收的第一PDU 608的SEQN位元)相同的SEQN位元值,因此第二設備604正在預期接收具有SEQN位元值的第三PDU 622,以及正在預期接收封包計數器值「x」。相反,所接收的第三PDU 622具有SEQN位元值和封包計數器值「x+1」。所接收的第三PDU 622可能導致MIC失敗,這是因為封包計數器值「x+1」與預期封包計數器值「x」不匹配。在此類情況下,可以忽略MIC失敗,以及所接收的第三PDU 622可以作為副本而被丟棄,因為所接收的第三PDU 622的SEQN位元與最後成功地接收的PDU的SEQN位元(例如,所接收的第二PDU 616的SEQN位元)相同。由於第二設備604決定所接收的第三PDU 622是副本或重傳,所以第二設備604可以向第一設備602發送ACK 624。
第一設備602可以接著發送第四PDU 626。第一設備602可以將要被發送的第四PDU 626配置為具有SEQN位元值S和封包計數器值「x+2」。由於從第二設備604接收到ACK 624,因此封包計數器的值再次遞增。回應於ACK 624,還將SEQN位元的值進行交替。第二設備604接收所發送的第四PDU 626作為所接收的第四PDU 628。第二設備604正在預期所接收的第四PDU 628具有SEQN位元值S和封包計數器編號「x」(針對在傳輸期間在值中沒有錯誤)。所接收的第四PDU 628具有SEQN位元值S和封包計數器編號「x+2」。所接收的第四PDU 628的封包計數器編號「x+2」與預期封包計數器編號「x」不匹配。照此,由於所接收的第四PDU的封包計數器編號與預期封包計數器編號不匹配,因此所接收的第四PDU 628可能導致MIC失敗。由於MIC失敗,第二設備604可以向第一設備602發送NACK 630。所接收的第四PDU 628也被丟棄。
回應於NACK 630,第一設備602可以發送第五PDU 632。回應於NACK 630,第五PDU 632可以是對第四PDU 626的重傳。要被發送的第五PDU 632可以被配置為具有SEQN位元值S和封包計數器值「x+2」,其與已經發送的第四PDU 626的SEQN位元值和封包計數器值匹配。第二設備604接收所發送的第五PDU 632作為所接收的第五PDU 634。第二設備604正在預期所接收的第五PDU 634具有SEQN位元值S和封包計數器值「x」。所接收的第五PDU 634可以具有與預期值匹配的SEQN位元值S。然而,所接收的第五PDU 634可以具有封包計數器值「x+2」,其與預期值「x」不匹配。照此,所接收的第五PDU 634可能導致MIC失敗。在該場景中,與在圖5的場景一樣,第一設備與第二設備之間的封包計數器失去同步,以及可能進入MIC錯誤的連續循環。在此類情況下,第二設備604可能將重複的MIC錯誤解釋為攻擊,以及可以終止鏈路作為防禦措施。在圖6的場景中,除了終止鏈路之外,沒有辦法從MIC錯誤的循環中恢復。因此,一個SEQN位元在PDU的傳輸期間被翻轉的結果可能導致與第一設備602的鏈路丟失。
圖7圖示用於在其中PDU的ARQN位元在PDU的傳輸期間被翻轉的場景中,在WPAN中的第一設備702與第二設備704之間的通訊的資料流700。第一設備702可以對應於主設備,以及第二設備704可以對應於從設備。
第一設備702可以發送第一PDU 706。第一PDU 706可以具有SEQN位元值S和封包計數器值「x」。第二設備704接收從第一設備702發送的第一PDU作為所接收的第一PDU 708。所接收的第一PDU 708具有SEQN位元值S和封包計數器值「x」。然而,儘管所接收的第一PDU 708的SEQN位元和封包計數器值與針對SEQN位元和封包計數器值的預期值匹配,但是所接收的第一PDU 708可能經歷CRC錯誤或MIC錯誤。作為回應,第二設備704可以向第一設備702發送NACK 710,其指示第一PDU 706沒有被正確地接收。然而,在傳輸期間,NACK 710的ARQN位元的值變為被破壞並且被翻轉的值,使得第一設備702接收NACK 710作為ACK 712。照此,第一設備702處理ACK 712以及在關於第一PDU 706被正確地接收的假設下進行操作。
第一設備702然後可以發送第二PDU 714,第二PDU 714是新資料封包,而不是第一PDU 706的重傳。因為第二封包714是新封包,所以SEQN位元值是,以及封包計數器值是「x+1」。也就是說,被翻轉的ARQN位元的結果使得NACK被接收為ACK,這繼而使得第一設備702不重新發送第一PDU 706,而是移到下一PDU或第二PDU 714。第二設備704從第一設備702接收所發送的第二PDU作為所接收的第二PDU 716。第二設備704正在預期所接收的第二PDU 716是第一PDU 706的重傳。因此,第二設備正在預期所接收的第二PDU 716具有SEQN位元值S和具有值「x」的封包計數器值。然而,所接收的第二PDU 716具有指示新資料封包的新SEQN位元值和新封包計數器值。結果,由於所接收的封包計數器值的值「x+1」與預期封包計數器值「x」不匹配,因此所接收的第二PDU 716導致第二設備處的MIC失敗。然而,在這種情況下,可以忽略MIC錯誤,因為所接收的第二PDU 716具有SEQN位元值,以及第二PDU可以被丟棄,這是因為SEQN位元的值與最後成功地接收的PDU的SEQN位元相同。這樣,第二設備704發送ACK 718。
第一設備702可以接著發送第三PDU 720。第一設備702可以將要被發送的第三PDU 720配置有SEQN位元值S和封包計數器值「x+2」。封包計數器的值在由第一設備702發送的PDU中遞增,因為先前發送的PDU已經被第二設備704確認。照此,第一設備702在所發送的PDU被正確地接收的假設下進行。第二設備704接收從第一設備702發送的第三PDU 720作為所接收的第三PDU 722。第二設備704正在預期接收具有SEQN位元值S的第三PDU 722,以及正在預期接收封包計數器值「x」。然而,所接收的第三PDU 722具有SEQN位元值S,但是具有封包計數器值「x+2」。所接收的第三PDU 722導致第二設備處的MIC失敗,因為封包計數器值「x+2」與預期封包計數器值「x」不匹配。由於MIC失敗,因此認為沒有正確地接收到所接收的第三PDU 722。第二設備704丟棄所接收的第三PDU 722以及發送NACK 724。
第一設備702可以接著發送第四PDU 726。第一設備702可以將要被發送的第四PDU 726配置有SEQN位元值S和封包計數器值「x+2」。因為第二設備沒有正確地接收到第三PDU 720,所以該SEQN位元和封包計數器的值與所發送的第三PDU 720相同,因此第四PDU 726是第三PDU 720的重傳。第二設備704接收由第一設備發送的第四PDU 726作為所接收的第四PDU 730。第二設備704正在預期具有SEQN位元值S和封包計數器編號「x」的所接收的第四PDU 730。然而,所接收的PDU 730具有SEQN位元值S和封包計數器編號「x+2」。同樣,所接收的PDU 730的封包計數器編號「x+2」與預期封包計數器編號「x」不匹配。照此,由於所接收的第四PDU 730的封包計數器編號與預期封包計數器編號不匹配,因此所接收的第四PDU 730導致MIC失敗,與所接收的第三PDU 722類似。由於MIC失敗,第二設備704可以向第一設備702發送NACK,以及所接收的第四PDU 730也被丟棄。
第一設備與第二設備之間的封包計數器再次失去同步,以及可能進入MIC錯誤的連續循環。在此類情況下,第二設備704可能將重複的MIC錯誤解釋為攻擊,以及可以終止鏈路作為防禦措施。在圖7的場景中,除了終止鏈路之外,沒有辦法從MIC錯誤的循環中恢復。因此,一個ARQN位元在傳輸期間被翻轉的結果可能導致與第一設備702的鏈路丟失。
圖5-7圖示其中可能發生SEQN位元翻轉或ARQN位元翻轉的場景。然而,可以存在其中可能發生SEQN位元翻轉或ARQN位元翻轉的其它場景。下文的表1提供了在封包傳輸期間從某些位元翻轉中恢復的可能場景和可能的解決方案的總結。
情況 | 接收狀態 (最後ESN是= S) | 接收的 SEQN (與ESN相同或相反) | MIC 結果 | CRC 結果 | 場景 | 當前動作 | 建議的新動作 |
1-i | NACK, ESN = S | S | 通過 | 通過 | 在當前接收中,在沒有任何錯誤的情況下正確地接收到當前封包。 | ACK | 不改變 |
1-ii | NACK, ESN = S | S | 通過 | 失敗 | 在當前接收中,接收到預期SEQN,但其中封包具有CRC錯誤。 | NACK | 不改變 |
2-i | ACK, ESN = | 通過 | 通過 | 在沒有任何錯誤的情況下正確地接收到當前封包。 | ACK | 不改變 | |
2-ii | ACK, ESN = | 通過 | 失敗 | 在當前接收中,接收到預期SEQN,但是其中封包具有CRC錯誤。 | NACK | 不改變 | |
3 | ACK, ESN = | S | 失敗 | 通過/失敗 | 在當前接收中,接收到SEQN的重傳,但是具有MIC失敗。將來自先前封包和當前封包(在不解密該封包的情況下)的MIC八位元組進行比較,或者將先前封包的CRC八位元組與當前封包進行比較,或者進行這兩種操作。如果來自先前封包和當前封包(在不解密該封包的情況下)的MIC八位元組、或者先前封包的CRC八位元組與當前封包分別匹配、或者這兩者都匹配,則當前接收是重傳,否則當前接收可能是具有SEQN位元翻轉的ESN。 | 丟棄封包以及對封包進行ACK,因為其被視為重傳 | 如果當前接收被決定為重傳,則對封包進行ACK。否則,其是在SEQN位元翻轉的情況下接收的封包,以及對該封包進行NACK。 |
4 | NACK, ESN = S | 失敗 | 通過/失敗 | 在當前接收中,存在MIC失敗,以及接收到非預期SEQN。這可能是SEQN翻轉或ARQN翻轉。 | 丟棄封包以及對封包進行ACK,因為其被視為重傳 | 最初,將當前封包視為在SEQN翻轉的情況下接收到的。對封包進行NACK以及保持ESN = S(注意–接收狀態不變)。對封包進行N次(N≧1)NACK或者直到我們退出此狀態(例如,接收SEQN = S)為止。注意–實現方式可以使N = 0,使得將該錯誤直接視為ARQN錯誤。 如果在N個NACK之後狀態沒有改變,則可能是ARQN翻轉,其中針對該封包的NACK中的一個NACK被遠端側作為ACK來接收,以及因此其已經發送了下一封包。再次對封包進行NACK,改變ESN =,以及將封包計數器遞增。 | |
5 | ACK, ESN = | S | 通過 | 通過/失敗 | 在當前封包中,接收到非預期SEQN,其中MIC 通過。其可能是SEQN翻轉。 | 丟棄封包以及對封包進行ACK,因為其被視為重傳 | 1. 對封包進行ACK,例如,經由將SEQN接受為來接受該封包;或者 2. 對封包進行NACK。ESN仍然與相同(注意–接收狀態移至新狀態,其是:NACK,ESN = S) |
6 | NACK, ESN = S | 通過 | 通過/失敗 | 當前封包是以非預期SEQN接收的,但是其中MIC通過 | 丟棄封包以及對封包進行ACK,因為其被視為重傳 | 1. 對封包進行ACK(例如,經由將SEQN接受為來接受該封包);或者 2. 對封包進行NACK;或者 3. 對封包進行NACK達可配置次數,或者直到接收狀態改變為止。如果在N個NACK之後接收狀態沒有改變,則經由將封包接受為具有SEQN =的封包來對封包進行ACK。 | |
7 | NACK, ESN = S | S | 失敗 | 通過/失敗 | 在當前接收中,接收到預期SEQN,但是其中該封包具有CRC和MIC錯誤或僅具有MIC錯誤。 | NACK | 不改變 |
8 | ACK, ESN = | 失敗 | 通過/失敗 | 在當前接收中,接收到預期SEQN,但是其中該封包具有CRC和MIC錯誤或僅具有MIC錯誤。 | NACK | 不改變 |
表1
上文的表1提供了在接收封包時可能發生的8種場景。被標記為接收狀態(最後ESN是=S)的列是接收設備回應於接收到具有SEQN位元值S的封包而可以採取的動作。例如,在加密之後的第一封包接收,初始接收狀態可以是ACK,ESN=S。被標記為接收的SEQN(與ESN相同或相反)的列指示針對由接收設備接收的下一封包的SEQN位元的值。例如,接收狀態可以經由在最後的接收時採取的動作(其是ACK或NACK)以及然後設置ESN來定義。列MIC結果是接收設備對由接收設備接收的下一封包進行的訊息完整性校驗的結果。列CRC結果是接收設備對由接收設備接收的下一封包進行的循環冗餘檢查的結果。在一些態樣中,BR/EDR協定可以具有被稱為Poll/Null(輪詢/空)的封包(這些封包是空封包),使得Poll/Null封包不具有有效載荷。由於此類MIC和CRC不存在,但是在此類Poll/Null封包中不使用SEQN位元。因此,對SEQN翻轉的決定是基於攜帶有效載荷的封包來決定的。關於ARQN翻轉,空封包可以具有有效的ARQN位元(例如,它們可以用以ACK或NACK),對ARQN翻轉的決定是針對作為NACK發送的封包的以及可以在空封包或攜帶有效載荷的封包中發送的。對ARQN翻轉的決定可以是基於對具有SEQN的下一封包(例如,攜帶封包的有效載荷)的接收的。照此,表1用於攜帶有效載荷的接收,因為其是從基於ESN的接收狀態中顯而易見的,ESN繼而意指攜帶封包的有效載荷。
場景列描述了在封包從發送設備到接收設備的傳輸期間可能發生的情況、及/或接收設備接收到的內容。當前操作列描述了接收設備回應於在場景列中描述的事件而可以採取的一般動作。建議的新動作列描述了接收設備回應於在場景列中描述的事件而可以採取的糾正動作。在表1中列出的可能的場景中的一些場景中,使CRC失敗將導致接收設備發送NACK以及無法對封包進行資料採擷以決定MIC通過/失敗,以及決定SEQN位元值及/或封包計數器值。
在表1的第一場景(例如,1-i和1-ii)中,發送設備發送具有SEQN位元值S的封包,但是接收設備沒有正確地接收到該封包以及向發送設備發送NACK。NACK向發送設備通知接收設備沒有正確地接收到該封包。然後,發送設備向接收設備發送下一封包,該下一封包是先前封包的重傳。接收設備接收到不具有任何錯誤的下一或當前封包,以及決定該下一封包具有SEQN位元值S以及MIC通過,因為發送設備與接收設備之間的封包計數器是同步的,使得該下一封包的封包計數器的值與針對該下一封包的封包計數器的預期值匹配。接收設備決定該下一封包是先前封包的重傳,因為該下一封包具有與先前封包的SEQN位元值匹配的SEQN位元值S,以及因為封包計數器是同步的。接收設備經由向發送設備發送ACK來確認接收到該下一封包。在一些態樣中(諸如在1-ii中),接收設備可以接收具有預期SEQN的下一或當前封包,但是其中封包具有CRC錯誤。在此類態樣中,由於下一或當前封包具有CRC錯誤,接收設備可以對該封包進行NACK。
在表1的第二場景(例如,2-i和2-ii)中,發送設備發送具有SEQN位元值的封包,以及接收設備正確地接收到不具有任何錯誤的該封包,以及經由向發送設備發送ACK來對該封包進行確認。然後,發送設備發送具有SEQN位元值的下一封包,以及接收設備正確地到接收該下一封包,因為第二封包的SEQN位元值與針對該下一封包的預期SEQN位元值匹配,以及在接收設備處MIC通過,因為該下一封包的封包計數器值與預期封包計數器值匹配。接收設備決定該下一封包是旨在被接收的封包序列的下一封包。接收設備經由向發送設備發送ACK來對該下一封包進行確認。在一些態樣中(諸如在2-ii中),接收設備可以接收具有預期SEQN的下一或當前封包,但是其中該封包具有CRC錯誤。在此類態樣中,由於下一或當前封包具有CRC錯誤,接收設備可以對該封包進行NACK。
在表1的第三場景(例如,3)中,發送設備發送具有SEQN位元值S的封包,以及接收設備正確地接收到該封包以及經由向發送設備發送ACK來對該封包進行確認。發送設備發送下一封包,但是該下一封包具有SEQN位元值S。發送設備已經重新發送了先前封包。如果來自接收設備的ACK丟失或者沒有被發送設備接收到,或者如果ACK的ARQN位元在傳輸期間被翻轉,使得發送設備將ACK作為NACK接收,則可能發生這種情況。在此類情況下,下一或重新發送的封包的SEQN可能與預期SEQN不匹配,因為接收設備正在預期新封包而不是先前封包的重傳。另外,下一或重新發送的封包的封包計數器值與先前封包相同,以及可能與預期封包計數器值不匹配,使得該下一或重新發送的封包可能具有MIC失敗。該第三場景不是具有問題,因為如果ACK丟失或損壞以及作為NACK而被接收,則發送設備可以重新發送先前封包。接收設備可以將下一封包標識為重新發送的封包,因為SEQN和封包計數器值可以與先前確認的封包匹配。例如,接收設備可以將來自先前封包(例如,最後成功地接收的封包)的MIC八位元組與來自當前封包的MIC八位元組(例如,在當前接收中接收的資訊)進行比較,而不對該封包進行解密。如果MIC八位元組匹配,則可以將當前封包標識為重傳。在一些態樣中,接收設備可以將先前封包的CRC八位元組與當前封包的CRC八位元組進行比較。如果CRC八位元組匹配,則可以將當前封包標識為重傳。在一些態樣中,接收設備可以將來自先前封包的MIC八位元組和CRC八位元組與來自當前封包的MIC八位元組和CRC八位元組進行比較。如果MIC八位元組和CRC八位元組兩者都匹配,則可以將當前封包標識為重傳。接收設備可以採取的糾正動作是丟棄所重新發送的封包,因為其被視為重傳,以及向發送設備發送ACK,以使得發送設備可以繼續向前以及發送下一封包。然而,在一些態樣中,接收設備可以決定該封包是新的或下一封包,以及可以假設該封包具有SEQN位元翻轉以及可以對該封包進行NACK。
在表1的第四場景(例如,4)中,發送設備發送具有SEQN位元值S的封包,但是接收設備沒有正確地接收到該封包以及向發送設備發送NACK。發送設備發送下一封包,但是該下一封包具有SEQN位元值,其將表現為新封包,而不是先前不正確地接收的封包的重傳。另外,該下一封包在接收設備處具有MIC失敗,這意指發送設備和接收設備的封包計數器值是不同步的。因此,已經發生了某種錯誤,使得發送設備發送具有非預期SEQN及/或經遞增的封包計數器值的封包,而不是重新發送最初不正確地接收的封包。在一般動作下,接收設備可以經由忽略MIC失敗、丟棄封包以及向發送設備發送ACK來進行回應。由於該下一封包的SEQN位元值與最後成功地接收的SEQN位元相同,所以將發送ACK。然而,如圖7所討論的,由於封包計數器變為不同步,所以由發送設備發送的後續封包可能開始重複的MIC錯誤,以及導致鏈路丟失。根據本案內容的某些態樣,接收設備可以採取的糾正動作是將當前封包初始視為在SEQN翻轉的情況下接收的。照此,接收設備可以對封包進行NACK以及保持ESN = S,其中接收狀態保持不變。接收設備可以對封包進行N次NACK,其中N ≧ 0或者直到接收到預期SEQN以及MIC通過和CRC通過為止,以較早者為准。當接收到預期SEQN時,N的計數器被重置為零(0)。在一些態樣中,N可以等於0,使得可以直接將錯誤視為ARQN錯誤。然而,如果在N個NACK之後沒有接收到預期SEQN,則可能是ARQN翻轉,其中針對封包的NACK中的一個NACK被遠端側作為ACK來接收,這導致遠端側發送下一封包。在此類態樣中,接收設備可以採取的進一步糾正動作是將接收視為具有ARQN位元翻轉,這可能在NACK從接收設備到發送設備的傳輸期間發生,這導致發送設備將NACK作為ACK來接收。這繼而導致發送設備發送具有經遞增的SEQN位元值和經遞增的封包計數器值的新封包,從而導致MIC失敗。如下文所討論的,接收設備可以採取發送NACK、改變預期SEQN的值以及將封包計數器值遞增的糾正動作。糾正動作可以克服ARQN位元翻轉,以及防止重複的MIC錯誤,以及維護發送設備與接收設備之間的通訊鏈路。
在表1的第五場景(例如,5)中,發送設備發送具有SEQN位元值S的封包,以及接收設備正確地接收到該封包以及經由向發送設備發送ACK來對該封包進行確認。發送設備發送下一封包,但是該下一封包具有SEQN位元值S,其將表現為先前確認的封包的重傳。然而,該下一封包在接收設備處具有MIC通過,這意指下一封包的封包計數器值與預期封包計數器值匹配。該下一封包的SEQN位元與預期SEQN位元不匹配,但是由於MIC通過,發送設備和接收設備的封包計數器是同步的。在一般動作下,由於該下一封包的SEQN與先前確認的封包的SEQN匹配,所以接收設備可以經由丟棄該封包以及向發送設備發送ACK來進行回應。然而,如圖5所討論的,由於封包計數器變為不同步,所以由發送設備發送的後續封包可能開始重複的MIC錯誤,以及導致鏈路丟失。根據本案內容的某些態樣,接收設備可以採取的糾正動作是辨識在該下一封包的傳輸期間已經發生了SEQN位元翻轉,這導致該下一封包具有SEQN位元值S,同時具有MIC通過。如下文所討論的,接收設備可以採取糾正動作,糾正動作可以克服SEQN位元翻轉以及防止重複的MIC錯誤,以及維護發送設備與接收設備之間的通訊鏈路。在一些態樣中,糾正動作可以包括對封包進行ACK,使得接收設備經由將SEQN接受為來接受該封包。在一些態樣中,糾正動作可以包括對封包進行NACK,以及ESN保持與相同,使得接收狀態移到NACK、ESN = S的新狀態。
在表1的第六場景(例如,6)中,發送設備發送具有SEQN位元值S的封包,但是接收設備沒有正確地接收到該封包以及向發送設備發送NACK。發送設備發送下一封包,但是該下一封包具有非預期SEQN位元值,其將表現為新封包而不是先前封包的重傳。然而,該下一封包在接收設備處具有MIC通過,這意指該下一封包的封包計數器值與預期封包計數器值匹配。該下一封包的SEQN位元與預期SEQN位元不匹配,但是由於MIC通過,所以發送設備和接收設備的封包計數器是同步的。在一般動作下,由於該下一封包的SEQN與先前確認的封包的SEQN匹配,所以接收設備可以經由丟棄該封包以及向發送設備發送ACK來進行回應。然而,如圖6所討論的,由於封包計數器變為不同步,所以由發送設備發送的後續封包可能開始重複的MIC錯誤,以及導致鏈路丟失。根據本案內容的某些態樣,接收設備可以採取的糾正動作是辨識在下一封包的傳輸期間已經發生了SEQN位元翻轉,這導致該下一封包具有SEQN位元值,同時具有MIC通過。如下文所討論的,接收設備可以採取糾正動作,糾正動作可以克服SEQN位元翻轉,以及防止重複的MIC錯誤,以及維護發送設備與接收設備之間的通訊鏈路。在一些態樣中,糾正動作可以包括對封包進行ACK,以使得接收設備將SEQN接受為。在一些態樣中,糾正動作可以包括對封包進行NACK。在一些態樣中,糾正動作可以包括對封包進行NACK達可配置的次數或直到接收狀態改變為止。如果在N個NACK之後接收狀態沒有改變,則經由將封包接受為具有SEQN =的封包來對該封包進行ACK。
在表1的第七場景中,發送設備發送具有SEQN位元值S的第一封包,但是接收設備沒有正確地接收到該第一封包以及向發送設備發送NACK。發送設備發送下一或第二封包,但是接收設備決定第二封包具有與預期SEQN位元值匹配的SEQN位元值S,但是第二封包在接收設備處具有CRC和MIC錯誤或者僅具有MIC錯誤。第二封包在接收設備處具有MIC失敗將指示封包計數器不是同步的。因此,可能已經發生了某種錯誤,這已經導致下一或第二封包具有與預期SEQN位元值匹配的SEQN位元值,但不具有MIC通過。
在一些情況下,由於第一封包沒有被正確地接收而發送的NACK可能已經損壞以及經歷ARQN位元翻轉,使得NACK被發送設備作為ACK來接收。因此,發送設備在關於第一封包被正確地接收的假設下進行操作,以及準備發送具有針對SEQN位元和封包計數器的經遞增的值的第二封包。然而,在第二封包去往接收設備的傳輸期間,第二封包可能經歷位元錯誤,使得第二封包經歷SEQN位元翻轉。照此,接收設備將第二封包接收為具有SEQN位元值S(而不是)以及具有經遞增的封包計數器值。第二封包的SEQN位元值與預期值匹配(由於SEQN位元翻轉),但是第二封包的封包計數器值與預期封包計數器值不匹配,因為預期封包計數器值是未經遞增的值(由於第一封包的NACK),以及第二封包的封包計數器值是經遞增的值(由於錯誤的接收的ACK)。
在一般動作下,由於MIC失敗,接收設備可以經由向發送設備發送NACK以指示第二封包沒有被正確地接收,從而進行回應。發送設備可以正確地接收NACK以及可以發送第三封包,第三封包是第二封包的重傳。接收設備可以接收第三封包以及決定其是第二封包的重傳,以及可以丟棄第三封包以及向發送設備發送ACK。發送設備可以發送具有經遞增的SEQN位元值和經遞增的封包計數器值的第四封包。此時,接收設備可能遇到重複的MIC錯誤,以及導致鏈路丟失。
根據本案內容的某些態樣,接收設備可以採取的糾正動作是:回應於第一封包沒有被正確地接收來辨識在NACK從接收設備到發送設備的傳輸期間已經發生了ARQN位元翻轉,這導致發送設備將NACK作為ACK來接收。這繼而導致發送設備發送具有經遞增的SEQN位元值和經遞增的封包計數器值的第二封包。接收設備還可以被配置為決定在第二封包的傳輸期間已經發生了SEQN位元翻轉,使得第二封包的SEQN位元值與預期SEQN位元值匹配,但是在接收設備處仍然具有MIC失敗。在其中接收設備決定已經發生了ARQN位元翻轉和SEQN位元翻轉的情況下,由於第二封包具有MIC失敗,接收設備可以經由向發送設備發送NACK來進行回應。發送設備可以發送第三封包,第三封包是第二封包的重傳。接收設備可以接收第三封包,以及決定第三封包的SEQN位元值相對於第二封包而遞增,以及與第二封包具有MIC失敗相結合可以指示ARQN位元翻轉。接收設備可以採取可以克服ARQN位元翻轉的糾正動作。例如,接收設備採取的糾正動作可以包括丟棄第三封包(在辨識已經發生ARQN位元翻轉之後)、向發送設備發送NACK以及將封包計數器值遞增1。如下文所討論的,接收設備可以採取糾正動作,其可以克服ARQN位元翻轉以及防止重複的MIC錯誤,以及維護發送設備與接收設備之間的通訊鏈路。
在表1的第八場景(例如,8)中,發送設備發送具有SEQN位元值S的第一封包,以及接收設備正確地接收到該第一封包以及向發送設備發送ACK。發送設備發送具有與預期SEQN位元值匹配的SEQN位元值的下一或第二封包,然而,下一或第二封包在接收設備處具有CRC和MIC錯誤或僅具有MIC錯誤。具有MIC失敗的下一或第二封包可以指示封包計數器值不是同步的。因此,可能已經發生了某種錯誤,其使得下一或第二封包具有與預期SEQN位元值匹配的SEQN位元值,但是不具有MIC通過。
如在表1的第七場景中所討論的,ARQN位元翻轉可能與SEQN位元翻轉相結合發生,使得由接收設備發送以指示第一封包被正確地接收的ACK被發送設備相反作為NACK來接收。然後,發送設備向接收設備發送下一或第二封包,下一或第二封包將是第一封包的重傳,但是發生SEQN位元翻轉,使得該下一或第二封包具有由於SEQN位元翻轉而遞增的SEQN位元值,以及與預期SEQN位元值匹配。然而,由於該下一或第二封包是第一封包的重傳,所以該下一或第二封包的封包計數器值與第一封包的封包計數器值匹配。照此,該下一或第二封包的封包計數器值與預期封包計數器值不匹配,因為在發送設備由於錯誤的NACK而發送重傳時,接收設備正在預期經遞增的封包計數器值。
在一般動作下,由於MIC失敗,接收設備可以經由向發送設備發送NACK以指示下一或第二封包沒有被正確地接收來進行回應。發送設備可以正確地接收NACK,以及可以發送後續或第三封包,後續或第三封包是該下一或第二封包的重傳。接收設備可以接收該後續或第三封包,以及決定其是下一或第二封包的重傳,其中下一或第二封包是第一封包的重傳,因為第三封包的SEQN位元值與第一封包的SEQN位元值匹配。第三封包的封包計數器值還與第一封包的封包計數器值匹配,其還與接收設備處的預期封包計數器值匹配。因此,接收設備將決定第三封包是已經被確認的第一封包的重傳。照此,接收設備可以丟棄該封包以及發送ACK。
圖8根據本案內容的某些態樣圖示用於WPAN中的第一設備802與第二設備804之間的通訊的資料流800。第一設備802可以對應於主設備,以及第二設備804可以對應於從設備。第一設備或主設備802可以對應於例如無線設備102、周邊設備104、106、110、112、114、無線設備200、802、804、902、904、1002、1004、1102、1104、1202、1204、1450或裝置1402/1402'。第二設備或從設備804可以對應於例如無線設備102、周邊設備104、106、110、112、114、無線設備200、802、804、902、904、1002、1004、1102、1104、1202、1204、1450或裝置1402/1402'。圖8提供了其中SEQN位元被翻轉的場景以及可以用於維護鏈路的糾正動作。
第一設備802可以發送第一PDU 806。第一PDU 806可以被配置為具有SEQN位元值S和封包計數器值「x」。第二設備804接收從第一設備802發送的第一PDU 806作為所接收的第一PDU 808。所接收的第一PDU 808具有SEQN位元值S和封包計數器值「x」。所接收的第一PDU 808的SEQN位元和封包計數器值與針對SEQN位元值和封包計數器值的預期值匹配,以及導致在第二設備處的MIC通過。作為回應,第二設備804可以向第一設備802發送ACK 810,其指示第一PDU 806被正確地接收。
第一設備802可以接著發送第二PDU 812。第二PDU 812是新封包,以及可以被配置為使第二PDU的SEQN位元和封包計數器的值遞增。照此,第二PDU 812可以具有SEQN位元值和封包計數器值「x+1」。第二設備804接收從第一設備802發送的第二PDU 812作為所接收的第二PDU 816。然而,在第二PDU 812的傳輸814期間,第二PDU 812的SEQN位元變為翻轉,使得所接收的第二PDU 816具有SEQN位元值S而不是預期值,而封包計數器具有值「x+1」。在此類情況下,由於所接收的封包計數器的值與預期封包計數器值匹配,因此所接收的第二PDU 816可以導致第二設備處的MIC通過。然而,所接收的第二PDU 816的SEQN位元值具有SEQN位元值S,以及與預期SEQN位元值不匹配。通常,由於SEQN位元與預期SEQN位元不匹配,所接收的第二PDU 816將被丟棄。然而,第二設備804可以被配置為辨識所接收的第二PDU 816的SEQN位元是否可能已經在傳輸814期間被翻轉。
在本發明的態樣中,所接收的第二PDU 816的SEQN位元值S與最後成功地接收的PDU的SEQN位元(例如,所接收的第一PDU 808的SEQN位元)相同,同時具有MIC通過。所接收的第二PDU 816導致在第二設備處的MIC通過,因為所接收的第二PDU 816的封包計數器的值與針對所接收的第二PDU 816的預期封包計數器的值匹配。因此,當所接收的PDU具有與最後成功地接收的PDU的SEQN位元匹配或重複的SEQN位元值以及所接收的PDU具有MIC通過時,則第二設備804可以將所接收的第二PDU 816的SEQN位元辨識為被翻轉的位元。第二設備804可以決定所接收的第二PDU 816的SEQN位元的實際值是。因此,在某些狀況下,第二設備可以將SEQN位元辨識為被翻轉的位元,以及如同SEQN位元沒有被翻轉一樣來處理所接收的第二PDU 816。在將SEQN位元辨識為被翻轉的SEQN位元之後,第二設備804可以處理所接收的具有被反轉的SEQN位元的第二PDU 816,以及然後發送ACK 818。在一些態樣中,在將SEQN位元辨識為被翻轉的SEQN位元之後,第二設備804可以將SEQN位元值改變為正確或預期SEQN位元值,處理所接收的第二PDU 816以及發送ACK 818。在一些態樣中,第二設備804在將SEQN位元辨識為被翻轉的SEQN位元之後,可以不將SEQN位元值改變為經糾正的或預期SEQN位元值,而是可以替代地在理解SEQN位元被翻轉以及SEQN位元的實際值與預期SEQN位元值匹配的情況下處理所接收的第二PDU 816。
第一設備802可以接著發送第三PDU 820。第一設備802可以將第三PDU 820配置為具有SEQN位元值S和封包計數器值「x+2」。在由第一設備802發送的PDU中,將封包計數器和SEQN位元的值遞增,因為先前發送的PDU已經被第二設備804確認。第二設備804接收從第一設備802發送的第三PDU 820作為所接收的第三PDU 822。第二設備804正在預期接收具有SEQN位元值S的第三PDU 822,以及正在預期接收封包計數器值「x+2」,因為所接收的第二PDU 816由於被正確地接收而被第二設備804確認。當第二設備804向第一設備802發送ACK時,第二設備804將預期SEQN位元和封包計數器的值遞增,使得第二設備804可以準備接收新的資料封包。
所接收的第三PDU 822具有SEQN位元值S和封包計數器值「x+2」,其與SEQN位元和封包計數器的預期值匹配。由於封包計數器與預期封包計數器匹配,因此所接收的第三PDU 822可以導致第二設備處的MIC通過。第二設備804可以處理所接收的第三PDU 822以及向第一設備802發送ACK 824。
第一設備802可以接著將第四PDU 826準備用於傳輸。回應於接收到ACK 824,第一設備802可以將SEQN位元和封包計數器的值遞增。第一設備802可以將第四PDU 826配置為具有SEQN位元值和封包計數器值「x+3」。第二設備804接收由第一設備發送的PDU 826作為所接收的第四PDU 828。第二設備804正在預期接收具有SEQN位元值和封包計數器值「x+3」的第四PDU 828。所接收的第四PDU 828具有SEQN位元值和封包計數器值「x+3」,其與SEQN位元和封包計數器值「x+1」匹配。照此,由於所接收的第四PDU的封包計數器與預期封包計數器匹配,因此所接收的第四PDU 828導致在第二設備處MIC通過。然後,第二設備804可以處理所接收的第四PDU 828,以及向第一設備502發送ACK以繼續處理。
在圖8的態樣中,當將SEQN位元辨識為被翻轉的SEQN位元時,第二設備可以採取糾正動作。在糾正動作期間,第二設備804可以經由確保第一設備802與第二設備804之間的封包計數器不失去同步來維護與第一設備802的鏈路。糾正動作可能能夠糾正由於SEQN位元被翻轉而導致的MIC錯誤。糾正動作可以由此防止第二設備處的重複的MIC錯誤,重複的MIC錯誤將導致鏈路丟失。
圖9根據本案內容的某些態樣圖示用於WPAN中的第一設備902與第二設備904之間的通訊的資料流900。第一設備902可以對應於主設備,以及第二設備904可以對應於從設備。第一設備或主設備902可以對應於例如無線設備102、周邊設備104、106、110、112、114、無線設備200、802、804、902、904、1002、1004、1102、1104、1202、1204、1450或裝置1402/1402'。第二設備或從設備904可以對應於例如無線設備102、周邊設備104、106、110、112、114、無線設備200、802、804、902、904、1002、1004、1102、1104、1202、1204、1450或裝置1402/1402'。圖9圖示其中SEQN位元在PDU的傳輸期間被翻轉的另一場景以及可以利用於維護鏈路的糾正動作。
第一設備902可以發送第一PDU 906。第一PDU 906可以被配置為具有SEQN位元值S和封包計數器值「x」。第二設備904接收從第一設備902發送的第一PDU 906作為所接收的第一PDU 908。所接收的第一PDU 908具有SEQN位元值S和封包計數器值「x」。然而,儘管所接收的第一PDU 908的SEQN位元和封包計數器與針對SEQN值和封包計數器值的預期值匹配,但是所接收的第一PDU 908可能在第二設備處造成CRC或MIC錯誤。在此類情況下,第二設備904可以向第一設備902發送NACK 910,其指示第一PDU 906沒有被正確地接收。
回應於接收到NACK,第一設備902可以接著發送第二PDU 912。第二PDU 912是第一PDU 906的重傳,以及可以被配置為具有與第一PDU 906的SEQN位元值和封包計數器值相同的SEQN位元值和封包計數器值。照此,第二PDU 912可以具有SEQN位元值S和封包計數器值「x」。第二設備904接收從第一設備902發送的第二PDU 912作為所接收的第二PDU 916。然而,在第二PDU 912的傳輸914期間,第二PDU 912的SEQN位元被翻轉,使得所接收的第二PDU 916具有SEQN位元值而不是原始值S,而封包計數器具有值「x」。在這種情況下,由於所接收的封包計數器的值與預期封包計數器值匹配,因此所接收的第二PDU 916可以導致第二設備處的MIC通過。然而,所接收的第二PDU 916的SEQN位元值具有與預期SEQN位元值不匹配的SEQN位元值。通常,由於SEQN位元值與預期SEQN位元值的不匹配,所接收的第二PDU 916將被丟棄。然而,第二設備904可以被配置為辨識所接收的第二PDU 916的SEQN位元是否可能已經在傳輸914期間被翻轉。
在上文的場景中,所接收的第二PDU 916的SEQN位元值與最後接收的PDU的SEQN位元值(例如,所接收的第一PDU 908的SEQN位元值)不匹配,但是所接收的第二PDU 916導致在第二設備處的MIC通過。所接收的第二PDU 916導致MIC通過,因為所接收的第二PDU 916的封包計數器的值與預期封包計數器值的值匹配。因此,當所接收的PDU具有與最後成功地接收的PDU的SEQN位元值匹配或重複的SEQN位元值,以及所接收的PDU導致第二設備處的MIC通過時,則第二設備904可以將所接收的第二PDU 916的SEQN位元辨識為在PDU的傳輸期間被翻轉。第二設備904可以決定所接收的第二PDU 16的實際SEQN位元值實際上是S。因此,在某些狀況下,第二設備可以辨識SEQN位元在傳輸期間被翻轉,以及如同SEQN位元未被翻轉一樣來處理所接收的第二PDU 916。在將SEQN位元辨識為被翻轉的SEQN位元之後,第二設備904可以將SEQN位元值改變為正確或預期SEQN位元值,處理所接收的第二PDU 916以及發送ACK 918。在一些態樣中,第二設備904在將SEQN位元辨識為被翻轉的SEQN位元之後,可以不將SEQN位元值改變為正確或預期SEQN位元值,而是可以替代地在理解SEQN位元被翻轉以及SEQN位元的實際值與預期SEQN位元值匹配的情況下處理所接收的第二PDU 916。在準備接收下一PDU時,第二設備904還可以將針對SEQN位元和封包計數器的預期值遞增。
第一設備902可以按照類似於在圖8的態樣中討論的方式來準備和發送下一PDU(例如,920、926)。圖9提供了可以由第二設備904利用的糾正動作的示例。第二設備904可以理解:由於SEQN位元在重新發送的資料封包的傳輸期間被翻轉,所以可以發生在發送NACK之後接收新的SEQN位元值。第二設備904沒有正確地接收到第一PDU,以及正在預期接收與第一PDU的SEQN位元值和封包計數器值相對應的SEQN位元值和封包計數器值。當第二設備904正在預期第一PDU要被重新發送,但是替代地接收到具有新的或經遞增的SEQN位元值的PDU但通過MIC時,則第二設備904可以決定由於SEQN位元在傳輸中被翻轉而接收到新的或經遞增的SEQN位元值。將SEQN位元辨識為被翻轉的位元允許第二設備904採取糾正動作以恢復所發送的SEQN位元值以及防止由於SEQN位元值被翻轉而導致的MIC錯誤。第二設備904可以經由確保第一設備902與第二設備904之間的封包計數器不失去同步來維護與第一設備902的鏈路。糾正動作可能能夠糾正由於SEQN位元值在傳輸期間被翻轉而導致的MIC錯誤。糾正動作由此可以防止重複的MIC錯誤,重複的MIC錯誤將導致鏈路丟失。糾正動作可以允許要被正確地發送(例如,926)和接收(例如,928)下一或後續PDU。
圖10根據本案內容的某些態樣圖示用於WPAN中的第一設備1002與第二設備1004之間的通訊的資料流1000。第一設備1002可以對應於主設備,以及第二設備1004可以對應於從設備。第一設備或主設備1002可以對應於例如無線設備102、周邊設備104、106、110、112、114、無線設備200、802、804、902、904、1002、1004、1102、1104、1202、1204、1450或裝置1402/1402'。第二設備或從設備1004可以對應於例如無線設備102、周邊設備104、106、110、112、114、無線設備200、802、804、902、904、1002、1004、1102、1104、1202、1204、1450或裝置1402/1402'。圖10提供了其中ARQN位元在傳輸期間被翻轉的場景以及可以利用於維護鏈路的糾正動作。
第一設備1002可以發送第一PDU 1006。第一PDU 1006可以被配置為具有SEQN位元值S和封包計數器值「x」。第二設備1004接收從第一設備1002發送的第一PDU 1006作為所接收的第一PDU 1008。所接收的第一PDU 1008具有SEQN位元值S和封包計數器值「x」。然而,儘管所接收的第一PDU 1008的SEQN位元值和封包計數器值與針對SEQN位元值和封包計數器值的預期值匹配,但是所接收的第一PDU 1008可能在第二設備處造成CRC錯誤或MIC錯誤。作為回應,第二設備1004可以向第一設備1002發送NACK 1010,其指示第一PDU 1006沒有被正確地接收。然而,在傳輸期間,NACK 1010的ARQN位元的值變為被破壞並且被翻轉的值,使得第一設備1002將NACK 1010作為ACK 1012來接收。照此,第一設備1002處理ACK 1012以及在關於第一PDU 1006被正確地接收的假設下進行操作。
第一設備1002可以接著發送第二PDU 1014,其是新的資料封包而不是第一PDU 1006的重傳。由於第二PDU 1014是新封包,所以第一設備可以將第二PDU 1014配置為使SEQN位元從最後的SEQN位元值反轉以及封包計數器值從先前的封包計數器值遞增(因為接收到ACK 1012)。照此,第二PDU 1014可以具有SEQN位元值和封包計數器值「x+1」。被翻轉的ARQN位元使得從第二設備1004發送的NACK 1010被第一設備1002作為ACK 1012接收,這繼而使得第一設備1002不重新發送第一PDU 1006,而是替代地將新的PDU作為第二PDU 1014來發送。第二設備1004接收從第一設備1002發送的第二PDU 1014作為所接收的第二PDU 1016。第二設備1004正在預期接收第一PDU 1006的重傳作為所接收的第二PDU 1016,使得所接收的第二PDU 1016被預期具有SEQN位元值S和封包計數器值「x」,其對應於針對第一PDU 1006的重傳的值。然而,所接收的第二PDU 1016具有SEQN位元值和封包計數器值「x+1」(針對新封包的值)。由於所接收的封包計數器值「x+1」的值與預期封包計數器值「x」不匹配,因此所接收的第二PDU 1016導致第二設備處的MIC失敗。在某些情況下,可以忽略MIC錯誤,因為所接收的第二PDU將具有與最後成功地接收的PDU的SEQN位元值相同的SEQN位元值,使得第二PDU將被丟棄以及第二PDU將被確認,但是這樣做將導致重複的MIC錯誤以及導致鏈路丟失。然而,第二設備1004可以被配置為決定是否正確地接收到NACK的ARQN位元,使得如果ARQN位元沒有被正確地接收,則ARQN位元可能已經在傳輸1010期間被翻轉。
如在圖10中圖示的場景所示,當在第二設備處具有MIC失敗時,所接收的第二PDU 1016的SEQN位元值與最後的PDU的最後接收的SEQN位元值(例如,所接收的第一PDU 1008的SEQN位元值)不同。所接收的第二PDU 1016具有MIC失敗,因為所接收的第二PDU 1016具有針對封包計數器值的值「x+1」,該值與針對預期封包計數器值的值「x」不匹配。因此,當相對於最後接收的PDU而言所接收的PDU具有新的或經遞增的SEQN位元值以及具有MIC失敗時,則第一設備沒有正確地接收到NACK的ARQN位元。照此,當SEQN位元的值與最後接收的SEQN位元的值不匹配以及所接收的PDU導致第二設備處的MIC失敗時,則第二設備1004可以將NACK 1010的ARQN位元辨識為被翻轉的位元。當第二設備1004辨識ARQN位元沒有被第一設備正確地接收或者是被翻轉的ARQN位元時,第二設備1004可以採取糾正動作來克服MIC失敗,以維護與第一設備1002的鏈路。
在一些態樣中,在辨識ARQN位元在傳輸期間被翻轉或者NACK沒有被正確地接收之後,第二設備1004可以丟棄封包,對封包進行NACK,以及調整針對SEQN位元和封包計數器的預期值。例如,第二設備1004可以決定NACK 1010的ARQN位元在傳輸期間被翻轉,使得第一設備1002沒有正確地接收到NACK 1010。照此,第二設備1004可以丟棄所接收的第二PDU 1016。然後,第二設備1004可以發送NACK 1018以指示第二PDU 1014沒有被正確地接收。
在一些態樣中,第二設備1004還可以定義新的預期封包計數器值。在一些態樣中,第二設備1004可以經由將預期封包計數器值遞增1來定義新的預期封包計數器值。例如,第二PDU 1014的預期封包計數器值是「x」,以及第二設備1004可以經由將預期封包計數器值遞增1來定義新的預期封包計數器值,這將新的預期封包計數器值定義為「x+1」。新的預期封包計數器值「x+1」將被指派為針對下一接收的封包或第三PDU 1020的封包計數器的預期值。
在一些態樣中,當發生上文的場景時,第二設備1004還可以定義新的預期SEQN位元。新的預期SEQN位元值可指派為針對下一PDU的預期SEQN位元。在一些態樣中,在第二設備1004將ARQN位元辨識為被翻轉的位元之後,第二設備1004可以經由將最後接收的PDU的SEQN位元的值遞增來定義新的預期SEQN位元值。例如,第二設備1004可以經由將所接收的第一PDU 1008的SEQN位元的值遞增來定義新的預期SEQN位元的值。在此類示例中,新的預期SEQN位元可以被設置為,使得針對第三PDU的預期SEQN位元可以被設置為。
然後,回應於接收到NACK 1018,第一設備1002可以發送第三PDU 1020。第三PDU 1020可以不是新封包,但是可以是第二PDU 1014的重傳。第三PDU 1020可以被配置為具有第二PDU 1014的SEQN位元和封包計數器值。第三PDU 1020可以被配置為具有SEQN位元值,以及可以被配置為具有封包計數器值「x+1」,其對應於第二PDU 1014的SEQN位元和封包計數器。第二設備1004從第一設備1002接收第三PDU 1020作為所接收的第三PDU 1022。
如上文所討論的,第二設備1004可以具有針對所接收的第三PDU 1022的預期SEQN位元值,其是作為第二設備1004採取的糾正動作的一部分來決定的。照此,第二設備1004可能正在預期接收具有SEQN位元值的第三PDU 1022。在一些態樣中,在某些狀況下,第二設備1004可以定義針對所接收的第三PDU 1022的預期SEQN位元。例如,在一些態樣中,當第二設備1004將ARQN位元辨識為被翻轉的位元時,第二設備1004可以定義針對所接收的第三PDU 1022的預期SEQN位元,如上文所討論的。在一些態樣中,當第二設備1004決定第一設備1002沒有正確地接收到NACK時,第二設備1004可以定義針對所接收的第三PDU 1022的預期SEQN位元。
如上文所討論的,第二設備1004可以具有針對所接收的第三PDU 1022的預期封包計數器值,其是作為第二設備1004所採取的糾正動作的一部分來決定的。照此,第二設備1004可能正在預期接收具有封包計數器值「x+1」的第三PDU 1022。在一些態樣中,在某些狀況下,第二設備1004可以定義針對所接收的第三PDU 1022的預期封包計數器。例如,在一些態樣中,當第二設備1004將ARQN位元辨識為被翻轉的位元時,第二設備1004可以定義針對所接收的第三PDU 1022的預期封包計數器,如上所討論的。在一些態樣中,當第二設備1004決定第一設備1002沒有正確地接收到NACK時,第二設備1004可以定義針對所接收的第三PDU 1022的預期封包計數器。
返回參考圖10的態樣,所接收的第三PDU 1022具有與SEQN位元和封包計數器的預期值匹配的SEQN位元值和封包計數器值「x+1」。照此,由於封包計數器與預期封包計數器匹配,所接收的第三PDU 1022可以具有MIC通過。第二設備1004可以處理所接收的第三PDU 1022以及向第一設備1002發送ACK 1024。然後,第一設備1002可以發送第四PDU 1026。第二設備1004接收第四PDU 1026作為所接收的第四PDU 1028。所接收的第四PDU 1028的SEQN位元和封包計數器可以與預期SEQN位元和預期封包計數器匹配,照此,所接收的第四PDU 1028可以具有MIC通過。
第二設備1004所採取的糾正動作允許第二設備1004從被翻轉的ARQN位元中恢復以及防止重複的MIC錯誤。第二設備1004所採取的糾正動作允許維護第一設備1002與第二設備1004之間的鏈路。然而,在執行糾正動作時,沒有被正確地接收以及導致NACK被發送但作為ACK被接收的資料封包可能丟失。例如,在圖10的態樣中,第一PDU 1006沒有被正確地接收以及NACK 1010被發送給第一設備1002,但是NACK 1010經歷了ARQN位元翻轉以及NACK 1010被作為ACK 1012接收。第二設備1004為克服ARQN位元翻轉而採取的糾正動作的一部分可以包括經由將封包計數器遞增1(例如,「x+1」)來定義新封包計數器。作為將封包計數器遞增1的結果,與先前封包計數器(例如,「x」)相關聯的第一PDU 1006丟失。儘管PDU可能丟失(這可能造成音訊廣播中的可聽到的刺聲),但是至少一個優勢在於接收設備可以克服位元錯誤以及防止重複的MIC錯誤,使得鏈路被保留。
圖11根據本案內容的某些態樣圖示用於WPAN中的第一設備1102與第二設備1104之間的通訊的資料流1100。第一設備1102可以對應於主設備,以及第二設備1104可以對應於從設備。第一設備或主設備1102可以對應於例如無線設備102、周邊設備104、106、110、112、114、無線設備200、802、804、902、904、1002、1004、1102、1104、1202、1204、1450或裝置1402/1402'。第二設備或從設備1104可以對應於例如無線設備102、周邊設備104、106、110、112、114、無線設備200、802、804、902、904、1002、1004、1102、1104、1202、1204、1450或裝置1402/1402'。圖11圖示其中ARQN在傳輸期間位元被翻轉、SEQN位元在傳輸期間被翻轉的場景以及可以用於維護鏈路的糾正動作。
第一設備1102可以發送第一PDU 1106。第一PDU 1106可以被配置為具有SEQN位元值S和封包計數器值「x」。第二設備1104接收從第一設備1102發送的第一PDU 1106作為所接收的第一PDU 1108。所接收的第一PDU 1108具有SEQN位元值S和封包計數器值「x」。然而,儘管所接收的第一PDU 1108的SEQN位元值和封包計數器值與針對SEQN值和封包計數器值的預期值匹配,但是所接收的第一PDU 1108可能經歷CRC錯誤或MIC錯誤。作為回應,第二設備1104可以向第一設備1102發送NACK 1110,其指示第一PDU 1106沒有被正確地接收。然而,在傳輸期間,NACK 1110的ARQN位元的值變為被破壞並且被翻轉的值,使得第一設備1102將NACK 1110作為ACK 1112來接收。照此,第一設備1102處理ACK 1112以及在關於第一PDU 1106被正確地接收的假設下進行操作。
第一設備1102可以接著利用新資料封包來發送第二PDU 1114,而不是作為第一PDU 1106的重傳。第二PDU 1114是新封包,以及由於接收到ACK 1112,其可以被配置為使其SEQN位元的值反轉以及使封包計數器值遞增。照此,第二PDU 1114可以具有SEQN位元值以及封包計數器值為「x+1」。也就是說,被翻轉的ARQN位元使得第一設備1102將從第二設備1104發送的NACK 1110作為ACK 1112來接收,這繼而使得第一設備1102不重新發送第一PDU 1106,而是替代地繼續傳輸針對第二PDU 1114的新PDU。第二設備1104接收從第一設備1102發送的第二PDU 1114作為所接收的第二PDU 1118。第二設備1104正在預期在第二PDU 1118中接收第一PDU 1106的重傳。因此,第二設備預期所接收的第二PDU 1118具有SEQN位元值S,其中封包計數器具有值「x」,這對應於第一PDU 1106的重傳。然而,第二PDU 1114是具有新的或經遞增的SEQN位元值以及新的或經遞增的封包計數器值的新資料封包。在第二PDU 1114的傳輸1116期間,第二PDU的SEQN位元變為被翻轉,使得所接收的第二PDU 1118具有SEQN位元值S和封包計數器值「x+1」。第二設備1104可能正在預期以所接收的第二PDU 1118的形式來接收第一PDU 1106的重傳,使得所接收的第二PDU 1118具有SEQN位元值S,其中封包計數器具有值「x」,這對應於第一PDU 1106的重傳。然而,所接收的第二PDU是新資料封包,以及具有SEQN位元值S(而不是由於SEQN位元翻轉而導致的)和新封包計數器值「x+1」。所接收的第二PDU 1118具有與預期SEQN位元值匹配的SEQN位元值,但是所接收的第二PDU 1118具有與預期封包計數器值「x+1」不匹配的封包計數器值「x」。由於所接收的封包計數器值與預期封包計數器值不匹配,因此所接收的第二PDU 1118可能導致第二設備處的MIC失敗。第二設備1104正在預期接收第一PDU 1106的重傳,但是所接收的第二PDU 1118的封包計數器值被遞增指示第一設備1102可能已經發送了新序列而不是重傳。第二設備1104可以被配置為:決定第一設備是否正確地接收到NACK的ARQN位元,使得如果ARQN位元沒有被正確地接收,則ARQN位元可能在傳輸期間被翻轉,及/或決定SEQN位元是否可能已經在傳輸期間被翻轉。
如圖11所圖示的,所接收的第二PDU 1118可以具有SEQN位元值S,其重複最後接收的PDU(例如,1108)的SEQN位元,以及在一些情況下,SEQN位元值的重複可以被視為重傳。然而,所接收的第二PDU 1118的封包計數器的值是「x+1」,其指示封包計數器已經被遞增,以及在最後接收的PDU的封包計數器的值之上遞增1的封包計數器可以指示新封包傳輸。因此,在傳輸期間可能已經發生了錯誤。第二設備1104可以被配置為實現糾正動作,以便克服某些錯誤以及維護與第一設備1102的鏈路。在一些態樣中,第二設備1104可以被配置為決定所接收的第二PDU 1118可以是新封包,因為所接收的第二PDU 1118的封包計數器的值是「x+1」,該值是在預期封包計數器值「x」之上的經遞增的值。在一些態樣中,第二設備1104可以決定SEQN位元在第二PDU 1114的傳輸1116期間可能已經被翻轉。在此類態樣中,第二設備1104可以實現的糾正動作可以是對第二PDU進行最多連續N次NACK,其中N可以是1或大於1或者直到成功地接收到預期SEQN位元值為止。在一些態樣中,將NACK發送一次或多次可能導致接收到預期SEQN位元值。然而,在一些態樣中,經由將NACK發送一次或多次,可能不會實現對預期SEQN位元值的成功接收。在此類情況下,第二設備1104可以決定NACK的ARQN位元在傳輸期間可能已經被翻轉。在此類情況下,第二設備1104可以對封包(例如,所接收的第二PDU 1118)進行NACK。第二設備1104可以向第一設備1102發送NACK 1120,使得當第一設備接收到NACK 1120時第一設備準備發送第三PDU 1122。
第三PDU 1122可以是第二PDU 1114的重傳,以及具有與第二PDU 1114相同的SEQN位元值(例如,)和封包計數器值(例如,「x+1」)。第二設備1104接收第三PDU 1122作為所接收的第三PDU 1124。所接收的第三PDU 1124可以具有SEQN位元值和封包計數器值「x+1」。第二設備可能正在預期接收SEQN位元值S,以及可能正在預期接收封包計數器值「x」。由於封包計數器值與預期封包計數器值不匹配,因此所接收的第三PDU 1124可能導致第二設備處的MIC失敗。然而,所接收的第三PDU 1124的SEQN位元值與預期SEQN位元值不匹配。因此,回應於NACK,所接收的第三PDU可以包括新序列(例如,經遞增的SEQN位元值)或新資料封包,以及還導致第二設備處的MIC失敗。如上所討論的,參照圖10,當所接收的PDU是相對於最後接收的序列或資料封包而言的新序列或新資料封包以及具有MIC失敗時,則第一設備沒有正確地接收到NACK的ARQN位元。照此,當SEQN位元的值與最後接收的SEQN位元的值不匹配以及所接收的PDU具有MIC失敗時,則第二設備1104可以將NACK的ARQN位元辨識為被翻轉的位元。當第二設備1104辨識ARQN位元沒有被第一設備正確地接收或者是被翻轉的ARQN位元時,第二設備1104可以採取糾正動作來克服MIC失敗,以維護與第一設備1102的鏈路。
在一些態樣中,在辨識ARQN位元是被翻轉的位元或者NACK沒有被正確地接收之後,第二設備1104可以丟棄封包(例如,第三PDU),對封包(例如,第三PDU)進行NACK,以及調整針對SEQN和封包計數器的預期值。例如,第二設備1104可以決定NACK(例如,NACK 1110)的ARQN位元是被翻轉的位元,使得第一設備1102沒有正確地接收到NACK。照此,第二設備1104可以丟棄所接收的第三PDU 1124,以及第二設備1104然後可以發送NACK 1126以指示第三PDU 1122沒有被正確地接收。然後,第二設備1104可以經由將最後接收的PDU(例如,1118)的SEQN位元和封包計數器的值遞增來定義針對下一PDU(例如,1128)的SEQN位元和封包計數器的值。在圖11的態樣中,針對第四PDU的預期SEQN位元值可以是,以及針對第四PDU的預期封包計數器值可以是「x+1」。
在一些態樣中,第二設備1104還可以定義新的預期封包計數器值,如上文在圖10的態樣中描述的。在一些態樣中,第二設備1104還可以定義新的預期SEQN位元,如上文在圖10的態樣中描述的。
回應於接收到NACK 1126,第一設備1102然後可以發送第四PDU 1128。第四PDU 1128可以不是新封包,但是可以是第三PDU 1122的重傳。第四PDU 1128可以被配置為具有與第三PDU 1122相同的SEQN位元和封包計數器值。也就是說,第四PDU 1128可以被配置為具有SEQN位元值,以及可以被配置為具有封包計數器值「x+1」,其對應於第三PDU 1122的SEQN位元和封包計數器值。第二設備1104從第一設備1102接收第四PDU 1128作為所接收的第四PDU 1130。
如上文所討論的,第二設備1104可以具有針對所接收的第四PDU 1130的預期SEQN位元值,作為第二設備1104採取的糾正動作的一部分。照此,第二設備1104可能正在預期接收具有SEQN位元值的第四PDU 1128。在一些態樣中,在某些狀況下,第二設備1104可以定義針對所接收的第四PDU 1130的預期SEQN位元值。例如,在一些態樣中,如上文所討論的,當第二設備1104將ARQN位元辨識為被翻轉的位元時,第二設備1104可以定義針對所接收的第四PDU 1130的預期SEQN位元。在一些態樣中,當第二設備1104決定第一設備1102沒有正確地接收到NACK時,第二設備1104可以定義針對所接收的第四PDU 1130的預期SEQN位元。
如上文討論的,第二設備1104可以具有針對所接收的第四PDU 1130的預期封包計數器值,其是作為第二設備1104所採取的糾正動作的一部分來決定的。照此,第二設備1104可能正在預期接收具有封包計數器值「x+1」的第四PDU 1130。在一些態樣中,在某些狀況下,第二設備1104可以定義針對所接收的第四PDU 1130的預期封包計數器。例如,在一些態樣中,如上文所討論的,當第二設備1104將ARQN位元辨識為被翻轉的位元時,第二設備1104可以定義針對所接收的第四PDU 1130的預期封包計數器。在一些態樣中,當第二設備1104決定第一設備1102沒有正確地接收到NACK時,第二設備1104可以定義針對所接收的第四PDU 1130的預期封包計數器。
所接收的第四PDU 1130具有SEQN位元值和封包計數器值「x+1」,其與SEQN位元和封包計數器的預期值匹配。照此,由於所接收的封包計數器值與預期封包計數器值匹配,因此所接收的第四PDU 1130可以導致第二設備處的MIC通過。第二設備1104可以處理所接收的第四PDU 1130以及向第一設備1102發送ACK。第一設備1102然後可以發送下一及/或後續PDU,以及第二設備1104可以接收下一及/或後續PDU以及發送ACK或NACK。
第二設備1104所採取的糾正動作允許第二設備1104從被翻轉的ARQN位元及/或被翻轉的SEQN位元中恢復,以及防止在第二設備處的重複的MIC錯誤。第二設備1104所採取的糾正動作允許維護第一設備1102與第二設備1104之間的鏈路。然而,在執行糾正動作中,沒有被正確地接收以及使得NACK被發送但作為ACK被接收的資料封包可能丟失。例如,在圖11的態樣中,第一PDU 1106沒有被正確地接收以及NACK 1110被發送給第一設備1102,但是NACK 1110經歷了ARQN位元翻轉以及NACK 1110被作為ACK 1112接收,類似於在圖10的態樣中討論的。第二設備1104為了克服ARQN位元翻轉而採取的糾正動作的一部分可以包括經由將封包計數器遞增1(例如,「x+1」)來定義新封包計數器。作為將封包計數器遞增1的結果,與先前封包計數器(例如,「x」)相關聯的第一PDU 1106丟失。儘管PDU可能丟失(這可能導致音訊廣播中的可聽到的刺聲),但是至少一個優勢在於接收設備可以克服位元錯誤以及防止重複的MIC錯誤,使得鏈路被保留。
圖12是根據本案內容的某些態樣的可以用以在短程無線通訊鏈路上建立主設備與從設備之間的連接的資料流1200。第一設備1202可以對應於主設備,以及第二設備1204可以對應於從設備。第一設備或主設備1202可以對應於例如無線設備102、周邊設備104、106、110、112、114、無線設備200、802、804、902、904、1002、1004、1102、1104、1202、1204、1450或裝置1402/1402'。第二設備或從設備1204可以對應於例如無線設備102、周邊設備104、106、110、112、114、無線設備200、802、804、902、904、1002、1004、1102、1104、1202、1204、1450或裝置1402/1402'。
在一些態樣中,在1206處,第一設備1202或第二設備1204中的至少一者可以發送用於建立連接的請求。在一些態樣中,主設備或第一設備1202可以發起與從設備的連接請求。在一些態樣中,從設備或第二設備1204可以發起與主設備的連接請求。
在1208處,第一設備1202可以開始與第二設備1204的連接程序。第一設備1202可以向第二設備1204發送一或多個信號以便發起或開始連接程序。
在1210處,第一設備1202和第二設備1204可以彼此進行通訊以在彼此之間建立安全連接。
在1212處,第一設備1202可以被配置為向第二設備1204發送加密金鑰和封包計數器序列。在一些態樣中,加密金鑰可以是基於封包計數器序列的,使得當第一設備1202與第二設備1204之間的封包計數器序列是同步的時,第二設備可以正確地解密資料。
第一設備1202可以被配置為向第二設備1204發送資料1214,使得第二設備接收至少包括SEQN位元的第一PDU。第一設備1202可以被配置為向第二設備1204發送一或多個資料封包。第一設備1202可以使用封包計數器來推導隨後用以在傳輸端對封包進行加密的亂數,使得接收器或第二設備1204可以使用相同的封包計數器來推導該亂數以及成功地解密封包。
在1216處,第二設備1204可以被配置為決定所接收的第一PDU的SEQN位元的值是預期SEQN還是非預期SEQN。
在1218處,第二設備1204可以被配置為計算所接收的第一PDU的MIC。MIC可以是基於封包計數器值來計算的。
在1220處,第二設備1204可以被配置為決定所接收的第一PDU是先前PDU的重傳還是所接收的第一PDU包括錯誤。決定第一PDU是重傳還是包括錯誤可以是基於關於SEQN位元的值是非預期SEQN的決定的。
在1222處,第二設備1204可以被配置為回應於關於第一PDU是否是先前PDU的重傳或者第一PDU是否在沒有任何錯誤的情況下被接收的決定,來發送ACK或NACK。在一些態樣中,在決定所接收的第一PDU是否是先前PDU的重傳時,第二設備可以被配置為決定第一PDU的至少未經加密的MIC八位元組是否與先前接收的PDU的未經加密的MIC八位元組匹配。如果第一PDU的未經加密的MIC八位元組和先前接收的PDU的未經加密的MIC八位元組匹配,則第一PDU被辨識為重傳。在一些態樣中,第二設備可以被配置為決定第一PDU的CRC八位元組是否與先前接收的PDU的CRC八位元組匹配。如果第一PDU的CRC八位元組與先前接收的PDU的CRC八位元組匹配,則第一PDU被辨識為重傳。在一些態樣中,第二設備可以被配置為決定第一PDU的CRC八位元組和MIC八位元組是否與先前接收的PDU的CRC八位元組和MIC八位元組匹配,使得如果第一PDU的CRC八位元組和MIC八位元組與先前接收的PDU的CRC八位元組和MIC八位元組匹配,則第一PDU被辨識為重傳,否則第一PDU被視為新傳輸。在一些態樣中,當第一PDU的未經加密的CRC八位元組與先前接收的PDU的未經加密的CRC八位元組匹配時,或者當第一PDU的MIC八位元組與先前接收的PDU的MIC八位元組匹配時,或者當第一PDU的CRC八位元組和未經加密的MIC八位元組兩者都與先前接收的PDU的未經加密的MIC八位元組和CRC八位元組匹配時,第二設備可以被配置為將第一PDU辨識為先前接收的PDU的重傳。在一些態樣中,當第一PDU被決定為先前接收的PDU的重傳時,發送ACK或NACK包括:發送ACK以及丟棄第一PDU。當接收到非預期SEQN以及當MIC結果失敗時(諸如例如,在表1的情況3中),可以決定關於重傳的決定。然而,可能存在其中可以決定關於重傳的決定的其它情況,以及本案內容並不旨在限於本文所揭示的態樣。在一些態樣中,發送ACK或NACK可以包括:在決定重傳時發送ACK,而不管重傳是否具有錯誤。
在一些態樣中,第二設備1204可以被配置為將第一PDU辨識為具有錯誤的新PDU。例如,第二設備可以決定非預期SEQN是否是在接收第一PDU時接收的。在關於接收到非預期SEQN的決定時,第二設備1204可以經由將CRC八位元組及/或未經加密的MIC八位元組(如上文所討論的)與先前成功接收的封包進行匹配來決定第一PDU是否是重傳。如果這些匹配,則第一PDU是重傳。然而,當第一PDU被決定為與先前接收的PDU的未經加密的MIC八位元組及/或CRC八位元組中的任何一者不匹配時,則第一PDU可以被視為具有錯誤的新PDU。在一些態樣中,在除了當接收到非預期SEQN時之外的情況下,具有錯誤的新PDU可以被辨識為至少具有SEQN位元錯誤。在此類態樣中,第二設備1204可以被配置為發送最多N個連續NACK,其中N ≧ 0或者直到成功地接收到預期SEQN為止。在一些態樣中,第二設備1204可以被配置為:當在發送N個連續NACK中的至少一個NACK之後成功地接收到預期SEQN時,發送ACK。在一些態樣中,第二設備1204可以被配置為當在N個連續NACK之後沒有成功地接收到預期SEQN時,決定存在ARQN位元錯誤。N個連續NACK之每一者NACK可以包括ARQN位元,以指示對應的封包沒有被正確地接收。在一些態樣中,第二設備1204可以被配置為回應於將第一PDU辨識為具有ARQN位元錯誤來發送NACK。第二設備1204可以被配置為將預期SEQN的值切換為相反值。第二設備1204可以被配置為將封包計數器值遞增1。
圖13是根據本案內容的某些態樣的無線通訊的方法的流程圖1300。該方法可以由第二或從設備(例如,無線設備102、周邊設備104、106、110、112、114、無線設備200、802、804、902、904、1002、1004、1102、1104、1202、1204、1450;裝置1402/1402';處理系統1514)來執行,該第二或從設備與第一或主設備(例如,無線設備102、周邊設備104、106、110、112、114、無線設備200、802、804、902、904、1002、1004、1102、1104、1202、1204、1450;裝置1402/1402';處理系統1514)相通訊。所示出的操作中的一或多個操作可以被省去、調換或者是同時發生的。第二或從設備可以實現圖1200的方法。可選態樣是利用虛線來示出的。該方法的各態樣可以幫助接收設備克服位元錯誤(例如,SEQN位元翻轉或ARQN位元翻轉),以及維護與發送設備的通訊鏈路。
參照圖13,第一設備或主設備可以向第二設備或從設備發送封包集合,使得在1302處,第二設備或從設備從第一設備接收第一PDU(例如,806、906、1006、1106),如在圖8-11的各態樣中所示。例如,1302可以由裝置1402的接收元件1404來執行。在一些態樣中,第一PDU可以包括SEQN位元。封包集合可以包括複數個PDU(例如,806、812、820、826、906、912、920、926、1006、1014、1020、1026、1106、1114、1122、1128)。發射器或第一設備可以使用封包計數器來推導隨後用以在傳輸端對封包進行加密的亂數,使得接收器或第二設備可以使用相同的封包計數器來推導亂數e以及成功地解密封包。例如,複數個PDU可以使用BT協定來發送,如在圖8-11的各態樣中所示。根據各個態樣,方法1300的所示出的操作中的一或多個操作可以被省去、調換及/或同時地執行。可選態樣是利用虛線來示出的。
在1304處,第二設備或從設備可以決定第一PDU的SEQN位元的值是預期SEQN還是非預期SEQN。例如,1304可以由裝置1402的SEQN值元件1406來執行。在一些態樣中(諸如在圖12中),在建立主設備1202與從設備1204之間的安全連接1210之後,主設備1202可以發送加密金鑰和封包計數器序列1212,使得主設備和從設備可以是同步的以及SEQN位元被初始化。在一些態樣中,SEQN位元可以被初始化為在封包序列的傳輸的開始時使用的預設值。在一些態樣中,預期SEQN位元可以是兩個可能值中的一個值。在一些態樣中,當接收到預期SEQN位元以及存在MIC通過和CRC通過時,可以發送ACK 1306。要理解的是,在將所提出的演算法應用於封包之前,假設全部封包已經通過標頭錯誤校驗(HEC)。在存在標頭錯誤或HEC失敗的事件中,封包被忽略。
在一些態樣中,為了決定SEQN位元是否是預期SEQN位元,第二設備或從設備可以決定所接收的第一PDU(例如,808、908、1008、1108)是否具有MIC通過。在一些態樣中,訊息完整性校驗可以是基於第一PDU的封包計數器值是否與預期封包計數器值匹配。當第一PDU的封包計數器值與預期封包計數器值匹配時,第一PDU可以被決定為具有MIC通過。
在1308處,第二設備可以被配置為計算所接收的第一PDU的MIC。例如,1308可以由裝置1402的MIC元件1408來執行。MIC可以是基於第一PDU的封包計數器值來計算的。在一些態樣中,當在第一PDU的SEQN位元與最後成功地接收的PDU的SEQN位元之間的比較不匹配時,SEQN位元可以被決定為預期SEQN位元。在一些態樣中,在關於第一PDU通過訊息完整性校驗的決定之後,可以發生在第一PDU的SEQN位元與最後成功地接收的PDU的SEQN位元之間的比較。
在1310處,第二設備可以被配置為決定所接收的第一PDU是先前PDU的重傳還是所接收的第一PDU包括錯誤。例如,1310可以由裝置1402的決定元件1410來執行。在一些態樣中,決定所接收的第一PDU是重傳還是包括錯誤可以是基於關於SEQN位元的值是非預期SEQN的決定的。在一些態樣中,步驟1310可以是在步驟1308之前執行的。例如,在決定第一PDU是具有錯誤的新PDU時,第二設備可以計算MIC(例如,步驟1308)。在一些態樣中,在決定第一PDU是重傳時,計算所接收的第一PDU的MIC(例如,步驟1308)可以不是必要的。
在一些態樣中,例如,在1312處,在決定所接收的第一PDU是否是先前PDU的重傳時,第二設備可以被配置為決定第一PDU的至少未經加密的MIC八位元組是否與先前接收的PDU的未經加密的MIC八位元組匹配。例如,1312可以由裝置1402的比較元件1412來執行。
在一些態樣中,例如,在1314處,在決定所接收的第一PDU是否是先前PDU的重傳時,第二設備可以被配置為決定第一PDU的CRC八位元組是否與先前接收的PDU的CRC八位元組匹配。例如,1314可以由裝置1402的比較元件1412來執行。
在1316處,第二設備可以被配置為:當第一PDU的未經加密的MIC八位元組、CRC八位元組或兩者分別與先前接收的PDU的未經加密的MIC八位元組、CRC八位元組或兩者匹配時,將第一PDU辨識為先前接收的PDU的重傳。例如,1316可以由裝置1402的辨識元件1414來執行。在一些態樣中,第二設備可以被配置為:當第一PDU的未經加密的CRC八位元組與先前接收的PDU的未經加密CRC八位元組匹配時,將第一PDU辨識為先前接收的PDU的重傳。在一些態樣中,第二設備可以被配置為:當第一PDU的MIC八位元組與先前接收的PDU的MIC八位元組匹配時,將第一PDU辨識為先前接收的PDU的重傳。在一些態樣中,第二設備可以被配置為:當第一PDU的CRC八位元組和未經加密的MIC八位元組兩者與先前接收的PDU的未經加密的MIC八位元組和CRC八位元組匹配時,將第一PDU辨識為先前接收的PDU的重傳。
第二設備可以被配置為回應於關於第一PDU是先前PDU的重傳還是第一PDU包括錯誤的決定來發送ACK或NACK。
例如,在1318處,第二設備可以被配置為:當第一PDU被決定為先前接收的PDU的重傳時,發送ACK。例如,1318可以由重傳ACK元件1416來執行。在一些態樣中,第二設備還可以被配置為:當回應於第一PDU被決定為先前接收的PDU的重傳來發送ACK時,丟棄第一PDU。ACK/NACK可以被包括在標頭內。ACK/NACK可以與從第二設備到第一設備的新有效載荷或重傳一起被攜帶。在一些態樣中,ACK/NACK可以使用空封包(例如,不包含有效載荷的POLL/NULL封包)來發送。
在1322處,第二設備可以被配置為將第一PDU辨識為具有錯誤的新PDU。例如,1322可以由裝置1402的PDU錯誤元件1418來執行。在一些態樣中,當第一PDU被決定為與先前接收的PDU的未經加密的MIC八位元組及/或CRC八位元組中的任何一者都不匹配時,第一PDU可以被辨識為具有錯誤的新PDU。在一些態樣中,具有錯誤的新PDU可以被辨識為至少具有SEQN位元錯誤。
在1324處,第二設備可以被配置為發送最多N個連續NACK,其中N ≧ 0。例如,1324可以由裝置1402的SEQN NACK元件1420來執行。N的值可以是預先決定的或可配置的值。在一些態樣中,可以發送連續NACK,直到成功地接收到預期SEQN為止或者直到已經發送了最多N個NACK為止,以較早發生的為准。
如上所討論的,第二設備可以被配置為回應於關於第一PDU是先前PDU的重傳還是第一PDU包括錯誤的決定來發送ACK或NACK。
在1326處,第二設備可以被配置為:當在發送N個連續NACK中的至少一個NACK之後成功地接收到預期SEQN時,發送ACK。例如,1326可以由裝置1402的SEQN ACK元件1422來執行。
在1328處,第二設備可以被配置為:當在N個連續NACK之後沒有成功地接收到預期SEQN時,決定存在ARQN位元錯誤。例如,1328可以由裝置1402的ARQN錯誤元件1424來執行。N個連續NACK之每一者NACK可以包括ARQN位元,其被配置為向第一設備或主設備指示第二設備沒有正確地接收到對應的封包。在一些態樣中,當在第一PDU之前的PDU被第二設備不正確地接收,以及由此得到的NACK的ARQN位元被同級間設備(例如,第一設備或主設備)不正確地接收時,可能發生ARQN位元錯誤。結果,下一接收的PDU可能包括MIC失敗,以及下一接收的PDU的SEQN位元的值可能與預期SEQN不匹配。
在1330處,第二設備可以被配置為回應於將第一PDU辨識為具有ARQN位元錯誤來發送NACK。例如,1330可以由裝置1402的ARQN NACK元件1426來執行。
在1332處,第二設備可以被配置為將預期SEQN的值切換為相反值。例如,1332可以由裝置1402的切換元件1428來執行。
在1334處,第二設備可以被配置為將封包計數器值遞增1。例如,1334可以由裝置1402的遞增元件1430來執行。
圖14是示出在示例性裝置1402中的不同構件/元件之間的資料流的概念性資料流示意圖1400。該裝置可以是第二或從設備(例如,無線設備102、周邊設備104、106、110、112、114、無線設備200、802、804、902、904、1002、1004、1102、1104、1202、1204),其與第一或主設備(例如,無線設備102、周邊設備104、106、110、112、114、無線設備200、802、804、902、904、1002、1004、1102、1104、1202、1204、1450)進行無線通訊。
該裝置包括接收元件1404,其被配置為從主設備1450接收一或多個PDU,例如,如結合圖13的1302所描述的。一或多個PDU可以包括SEQN位元或封包計數器值中的至少一項。該裝置包括SEQN值元件1406,其被配置為決定所接收的第一PDU的SEQN位元的值可以是預期SEQN還是非預期SEQN,例如,如結合圖13的1304所描述的。該裝置包括MIC元件1408,其被配置為基於封包計數器值來計算所接收的第一PDU的MIC,例如,如結合圖13的1308所描述的。該裝置包括決定元件1410,其被配置為決定所接收的第一PDU是先前PDU的重傳還是所接收的第一PDU包括錯誤,例如,如結合圖13的1310所描述的。該裝置可以包括比較元件1412,其被配置為決定第一PDU的至少未經加密的MIC八位元組是否與先前接收的PDU的未經加密的MIC八位元組匹配,例如,如結合圖13的1312所描述的。比較元件1412可以被配置為決定第一PDU的CRC八位元組是否與先前接收的PDU的CRC八位元組匹配,例如,如結合圖13的1314所描述的。該裝置包括辨識元件1414,其被配置為:當第一PDU的未經加密的MIC八位元組、CRC八位元組或兩者分別與先前接收的PDU的未經加密的MIC八位元組、CRC八位元組或兩者匹配時,將第一PDU辨識為先前接收的PDU的重傳,例如,如結合圖13的1316所描述的。該裝置包括重傳ACK元件1416,其被配置為:當第一PDU被決定為先前接收的PDU的重傳時,發送ACK,例如,如結合圖13的1318所描述的。重傳ACK元件1416可以被配置為:當第一PDU元件被決定為先前接收的PDU的重傳時,丟棄第一PDU。該裝置包括PDU錯誤元件1418,其被配置為將第一PDU辨識為具有錯誤的新PDU,例如,如結合圖13的1322所描述的。具有錯誤的新PDU可以被辨識為至少具有SEQN位元錯誤。該裝置包括SEQN NACK元件1420,其被配置為發送最多N個連續NACK,其中N ≧ 0或者直到成功地接收到預期SEQN為止,例如,如結合圖13的1324所描述的。該裝置包括SEQN ACK元件1422,其被配置為當在發送N個連續NACK中的至少一個NACK之後成功地接收到預期SEQN時,發送ACK,例如,如結合圖13的1326所描述的。該裝置包括ARQN錯誤元件1424,其被配置為當在N個連續NACK之後沒有成功地接收到預期SEQN時,決定存在ARQN位元錯誤,例如,如結合圖13的1328所描述的。該裝置包括ARQN-NACK元件1426,其被配置為回應於將第一PDU辨識為具有ARQN位元錯誤來發送NACK,例如,如結合圖13的1330所描述的。該裝置包括切換元件1428,其被配置為將預期SEQN的值切換為相反值,例如,如結合圖13的1332所描述的。該裝置包括遞增元件1430,其被配置為將封包計數器值遞增1,例如,如結合圖13的1334所描述的。該裝置包括發送元件1432,其被配置為向同級設備(例如,主設備或第一設備)發送信號(例如,ACK或NACK)。
該裝置可以包括執行圖8-11的上述流程圖中的演算法的方塊之每一方塊的額外元件。照此,圖8-11的上述流程圖之每一方塊可以由元件執行,以及該裝置可以包括那些元件中的一或多個元件。元件可以是被專門配置為執行所述程序/演算法的一或多個硬體元件,由被配置為執行所述程序/演算法的處理器實現,儲存在電腦可讀取媒體內以用於由處理器來實現,或其某種組合。
圖15是示出針對採用處理系統1514的裝置1402'的硬體實現方式的示例的圖1500。可以利用匯流排架構(大體經由匯流排1524表示)來實現處理系統1514。匯流排1524可以包括任何數量的互連匯流排和橋接器,這取決於處理系統1514的特定應用和整體設計約束。匯流排1524將包括一或多個處理器及/或硬體元件(由處理器1504、元件1404、1406、1408、1410、1412、1414、1416、1418、1420、1422、1424、1426、1428、1430、1432以及電腦可讀取媒體/記憶體1506表示)的各種電路連結到一起。匯流排1524還可以將諸如時序源、周邊設備、電壓調節器以及電源管理電路的各種其它電路進行連結,它們是本領域公知的,以及因此將不再進行任何進一步描述。
處理系統1514可以耦合到收發機1510。收發機1510耦合到一或多個天線1520。收發機1510提供用於在傳輸媒體上與各種其它裝置進行通訊的構件。收發機1510從一或多個天線1520接收信號,從所接收的信號中提取資訊,以及向處理系統1514(具體為接收元件1404)提供所提取的資訊。另外,收發機1510從處理系統1514(具體為發送元件1432)接收資訊,以及基於所接收到的資訊來產生要應用於一或多個天線1520的信號。處理系統1514包括耦合到電腦可讀取媒體/記憶體1506的處理器1504。處理器1504負責通用處理,其包括對在電腦可讀取媒體/記憶體1506上儲存的軟體的執行。軟體在由處理器1504執行時使得處理系統1514執行上文針對任何特定裝置所描述的各種功能。電腦可讀取媒體/記憶體1506還可以用於儲存由處理器1504在執行軟體時所操縱的資料。處理系統1514還包括元件1404、1406、1408、1410、1412、1414、1416、1418、1420、1422、1424、1426、1428、1430、1432中的至少一者。元件可以是在處理器1504中運行的、常駐/儲存在電腦可讀取媒體/記憶體1506中的軟體元件、耦合到處理器1504的一或多個硬體元件、或其某種組合。
在某些配置中,用於無線通訊的裝置1402/1402'可以包括:用於接收第一PDU的構件,第一PDU包括SEQN位元或封包計數器值中的至少一項。該裝置可以包括:用於決定所接收的第一PDU的SEQN位元的值是預期SEQN還是非預期SEQN的構件。該裝置可以包括:用於基於封包計數器值來計算所接收的第一PDU的MIC的構件。該裝置可以包括:用於基於關於SEQN位元的值是非預期SEQN的決定來決定所接收的第一PDU是先前PDU的重傳還是所接收的第一PDU包括錯誤的構件。該裝置可以包括:用於回應於關於第一PDU是先前PDU的重傳還是第一PDU包括錯誤的決定來發送ACK或NACK的構件。該裝置還可以包括:用於決定第一PDU的至少未經加密的MIC八位元組是否與先前接收的PDU的未經加密的MIC八位元組匹配的構件。該裝置還可以包括:用於決定第一PDU的CRC八位元組是否與先前接收的PDU的CRC八位元組匹配的構件。該裝置還可以包括:用於當第一PDU的未經加密的MIC八位元組、CRC八位元組或兩者分別與先前接收的PDU的未經加密的MIC八位元組、CRC八位元組或兩者匹配時,將第一PDU辨識為先前接收的PDU的重傳的構件。該裝置還可以包括:用於當第一PDU被決定為先前接收的PDU的重傳時,發送ACK以及丟棄第一PDU的構件。該裝置還可以包括:用於當第一PDU被決定為與先前接收的PDU的未經加密的MIC八位元組、CRC八位元組中的任何一者都不匹配時,將第一PDU辨識為具有錯誤的新PDU的構件,其中具有錯誤的新PDU被辨識為至少具有SEQN位元錯誤。該裝置還可以包括:用於發送最多N個連續NACK的構件,其中N ≧ 0或者直到成功地接收到預期SEQN為止。該裝置還可以包括:用於當在發送N個連續NACK中的至少一個NACK之後成功地接收到預期SEQN時發送ACK的構件。該裝置還可以包括:用於當在N個連續NACK之後沒有成功地接收到預期SEQN時決定存在ARQN位元錯誤的構件。N個連續NACK之每一者NACK可以包括ARQN位元,以指示對應的封包沒有被正確地接收。該裝置還可以包括:用於回應於將第一PDU辨識為具有ARQN位元錯誤來發送NACK的構件。該裝置還可以包括:用於將預期SEQN的值切換為相反值的構件。該裝置還可以包括:用於將封包計數器值遞增1的構件。上述構件可以是處理器202、無線單元230、MMU 240、WLAN控制器250/短程通訊控制器252/WWAN控制器256、裝置1402的上述元件中的一或多個元件、及/或裝置1402'的被配置為執行由上述構件所記載的功能的處理系統1514。
應當理解的是,所揭示的程序/流程圖中的方塊的特定次序或層次是對示例性方法的說明。應當理解的是,基於設計偏好,可以重新排列程序/流程圖中的方塊的特定次序或層次。此外,可以合併或省去一些方塊。所附的方法請求項以示例次序提供了各個方塊的元素,而並不意指限於所提供的特定次序或層次。
提供前面的描述以使得本領域的任何技藝人士能夠實踐本文描述的各個態樣。對這些態樣的各種修改對於本領域技藝人士而言將是顯而易見的,以及本文所定義的通用原理可以應用到其它態樣。因此,請求項並不旨在限於本文所示出的態樣,而是被賦予與請求項表達相一致的全部範圍,其中除非明確地聲明如此,否則提及單數形式的元素並不旨在意指「一個和僅一個」,而是「一或多個」。本文使用單詞「示例性」意指「用作示例、實例或說明」。本文中描述為「示例性」的任何態樣未必被解釋為比其它態樣優選或者有優勢。除非另有明確聲明,否則術語「一些」指的是一或多個。諸如「A、B或C中的至少一個」、「A、B、或C中的一或多個」、「A、B和C中的至少一個」、「A、B和C中的一或多個」、以及「A、B、C或其任意組合」的組合包括A、B及/或C的任何組合,以及可以包括A的倍數、B的倍數或C的倍數。具體地,諸如「A、B或C中的至少一個」、「A、B、或C中的一或多個」、「A、B和C中的至少一個」、「A、B和C中的一或多個」、以及「A、B、C或其任意組合」的組合可以是僅A、僅B、僅C、A和B、A和C、B和C、或A和B和C,其中任何此類組合可以包含A、B或C中的一或多個成員或數個成員。遍及本案內容描述的各個態樣的、對於本領域技藝人士而言是已知的或者稍後將知的元素的全部結構和功能均等物以引用方式明確地併入本文中,以及旨在由請求項來包含。此外,本文中沒有任何揭露內容是想要奉獻給公眾的,不管此類揭露內容是否明確記載在請求項中。詞語「模組」、「機制」、「元素」、「設備」等等可以不是詞語「構件」的替代。因此,沒有請求項元素要被解釋為功能模組單元,除非該元素是明確地使用短語「用於……的構件」來記載的。
100:示例WPAN
102:無線設備
104:周邊設備
106:周邊設備
108:周邊設備
110:周邊設備
112:周邊設備
114:周邊設備
116:通訊鏈路
120:決定元件
200:無線設備
202:處理器
204:顯示器電路
206:記憶體
208:ROM
210:快閃記憶體
220:連接器介面
230:無線單元
235a:天線
235b:天線
235c:天線
235d:天線
240:MMU
242:顯示器
250:WLAN控制器
252:短程通訊控制器
254:第一共存介面
256:WWAN控制器
258:第二共存介面
260:第三共存介面
300:BT協定堆疊
302:應用
304:主機堆疊
306:控制器
308:物件交換(OBEX)層
310:RFCOMM層
312:服務探索協定(SDP)層
314:邏輯鏈路控制和適配協定(L2CAP)層
316:HCI
318:鏈路管理器層
320:鏈路控制器層
322:實體(PHY)層
326:應用
328:簡檔
400:示例圖
402:存取碼
404:標頭
406:有效載荷
408:有效載荷
410:資料封包
412:保護
414:同步
416:增強型速率有效載荷
418:尾部
420:標頭
422:LT_ADDR欄位
424:TYPE欄位
426:FLOW欄位
428:ARQN欄位
430:SEQN欄位
432:標頭錯誤校驗(HEC)欄位
500:資料流
502:第一設備
504:第二設備
506:第一PDU
508:第一PDU
510:ACK
512:第二PDU
516:第二PDU
518:ACK
520:第三PDU
522:第三PDU
524:ACK
526:第四PDU
528:所接收的第四PDU
530:NACK
532:第五PDU
534:所接收的第五PDU
600:資料流
602:第一設備
604:第二設備
606:第一PDU
608:所接收的第一PDU
610:NACK
612:第二PDU
614:第二PDU的傳輸
616:所接收的第二PDU
618:ACK
620:第三PDU
622:第三PDU
624:ACK
626:第四PDU
628:所接收的第四PDU
630:NACK
632:所發送的第五PDU
634:所接收的第五PDU
700:資料流
702:第一設備
704:第二設備
706:第一PDU
708:所接收的第一PDU
710:NACK
712:ACK
714:第二封包
716:所接收的第二PDU
718:ACK
720:第三PDU
722:所接收的第三PDU
724:NACK
726:第四PDU
730:所接收的第四PDU
800:資料流
802:第一設備
804:第二設備
806:第一PDU
808:所接收的第一PDU
810:ACK
812:第二PDU
814:第二PDU 812的傳輸
816:所接收的第二PDU
818:ACK
820:第三PDU
822:所接收的第三PDU
824:ACK
826:第四PDU
828:所接收的第四PDU
900:資料流
902:第一設備
904:第二設備
906:第一PDU
908:所接收的第一PDU
910:NACK
912:第二PDU
914:傳輸
916:所接收的第二PDU
918:ACK
920:PDU
926:發送
928:接收
1000:資料流
1002:第一設備
1004:第二設備
1006:第一PDU
1008:所接收的第一PDU
1010:NACK
1012:ACK
1014:第二PDU
1016:第二PDU
1018:NACK
1020:第三PDU
1022:所接收的第三PDU
1024:ACK
1026:第四PDU
1028:所接收的第四PDU
1100:資料流
1102:第一設備
1104:第二設備
1106:第一PDU
1108:所接收的第一PDU
1110:NACK
1112:ACK
1114:第二PDU
1116:傳輸
1118:所接收的第二PDU
1120:NACK
1122:第三PDU
1124:所接收的第三PDU
1126:NACK
1128:第四PDU
1130:所接收的第四PDU
1200:資料流
1202:第一設備或主設備
1204:第二設備或從設備
1206:步驟
1208:步驟
1210:步驟
1212:步驟
1214:步驟
1216:步驟
1218:步驟
1220:步驟
1222:步驟
1300:流程圖
1302:步驟
1304:步驟
1306:步驟
1308:步驟
1310:步驟
1312:步驟
1314:步驟
1316:步驟
1318:步驟
1320:步驟
1322:步驟
1324:步驟
1326:步驟
1328:步驟
1330:步驟
1332:步驟
1334:步驟
1400:概念性資料流示意圖
1402:裝置
1402':裝置
1404:接收元件
1406:SEQN值元件
1408:MIC元件
1410:決定元件
1412:比較元件
1414:辨識元件
1416:重傳ACK元件
1418:PDU錯誤元件
1420:SEQN NACK元件
1422:SEQN ACK元件
1424:ARQN錯誤元件
1426:ARQN NACK元件
1428:切換元件
1430:遞增元件
1432:發送元件
1450:無線設備
1500:圖
1504:處理器
1506:電腦可讀取媒體/記憶體
1510:收發機
1514:處理系統
1520:天線
1524:匯流排
圖1是根據本案內容的某些態樣示出WPAN的示例的圖。
圖2是根據本案內容的某些態樣的無線設備的方塊圖。
圖3是根據本案內容的某些態樣示出BT協定堆疊的圖。
圖4是根據本案內容的某些態樣示出封包結構的圖。
圖5是示出在主設備與從設備之間的無線通訊的圖。
圖6是示出在主設備與從設備之間的無線通訊的圖。
圖7是示出在主設備與從設備之間的無線通訊的圖。
圖8是根據本案內容的某些態樣示出在主設備與從設備之間的無線通訊的圖。
圖9是根據本案內容的某些態樣示出在主設備與從設備之間的無線通訊的圖。
圖10是根據本案內容的某些態樣示出在主設備與從設備之間的無線通訊的圖。
圖11是根據本案內容的某些態樣示出在主設備與從設備之間的無線通訊的圖。
圖12是根據本案內容的某些態樣的可以用以在短程無線通訊鏈路上建立主設備與從設備之間的連接的資料流。
圖13是根據本案內容的某些態樣的無線通訊的方法的流程圖。
圖14是根據本案內容的某些態樣示出示例性裝置中的不同構件/元件之間的資料流的概念性資料流示意圖。
圖15是根據本案內容的某些態樣示出針對採用處理系統的裝置的硬體實現方式的示例的圖。
國內寄存資訊(請依寄存機構、日期、號碼順序註記)
無
國外寄存資訊(請依寄存國家、機構、日期、號碼順序註記)
無
1300:流程圖
1302:步驟
1304:步驟
1306:步驟
1308:步驟
1310:步驟
1312:步驟
1314:步驟
1316:步驟
1318:步驟
1320:步驟
1322:步驟
1324:步驟
1326:步驟
1328:步驟
1330:步驟
1332:步驟
1334:步驟
Claims (27)
- 一種無線通訊的方法,包括:接收一第一封包資料單元(PDU),該第一PDU包括一序號(SEQN)位元及一封包計數器值;決定該接收的第一PDU的該SEQN位元的一值是一預期SEQN還是一非預期SEQN;基於該封包計數器值來計算該接收的第一PDU的一訊息完整性校驗(MIC);基於關於該SEQN位元的該值是該非預期SEQN的決定,來決定該接收的第一PDU是一先前PDU的一重傳還是該接收的第一PDU包括錯誤;回應於關於該第一PDU是該先前PDU的該重傳還是該第一PDU包括錯誤的決定,來發送一確認(ACK)或一否定確認(NACK);及其中決定該接收的第一PDU是否是該先前PDU的該重傳包括:決定該第一PDU的至少未經加密的MIC八位元組是否與該先前接收的PDU的未經加密的MIC八位元組匹配。
- 根據請求項1之方法,還包括:決定該第一PDU的CRC八位元組是否與該先前接收的PDU的CRC八位元組匹配。
- 根據請求項1之方法,還包括:當該第一PDU的該未經加密的MIC八位元組、CRC 八位元組或兩者分別與該先前接收的PDU的該未經加密的MIC八位元組、CRC八位元組或兩者匹配時,將該第一PDU辨識為該先前接收的PDU的該重傳;及當該第一PDU被決定為該先前接收的PDU的該重傳時,發送一ACK以及丟棄該第一PDU。
- 根據請求項1之方法,還包括:當該第一PDU被決定為與該先前接收的PDU的該未經加密的MIC八位元組、CRC八位元組中的任何一者都不匹配時,將該第一PDU辨識為具有錯誤的一新PDU,其中該具有錯誤的新PDU被辨識為至少具有一SEQN位元錯誤。
- 根據請求項4之方法,還包括:發送最多N個連續NACK,其中N≧0或者直到成功地接收到該預期SEQN為止。
- 根據請求項5之方法,還包括:當在發送該N個連續NACK中的至少一個NACK之後成功地接收到該預期SEQN時,發送該ACK。
- 根據請求項5之方法,還包括:當在該N個連續NACK之後沒有成功地接收到該預期SEQN時,決定存在一自動重傳請求編號(ARQN)位元錯誤,其中該N個連續NACK之每一者NACK包括一ARQN位元以指示對應的封包沒有被正確地接收。
- 根據請求項7之方法,還包括: 回應於將該第一PDU辨識為具有該ARQN位元錯誤來發送一NACK;將該預期SEQN的該值切換為一相反值;及將該封包計數器值遞增1。
- 根據請求項7之方法,其中當在該第一PDU之前的一PDU被不正確地接收以及由此得到的NACK的一ARQN位元被一同級設備不正確地接收時,發生該ARQN位元錯誤,使得下一接收的PDU包括一MIC失敗,以及該下一接收的PDU的該SEQN位元的該值與一預期SEQN不匹配。
- 一種用於無線通訊的裝置,包括:用於接收一第一封包資料單元(PDU)的構件,該第一PDU包括一序號(SEQN)位元及一封包計數器值;用於決定該接收的第一PDU的該SEQN位元的一值是一預期SEQN還是一非預期SEQN的構件;用於基於該封包計數器值來計算該接收的第一PDU的一訊息完整性校驗(MIC)的構件;用於基於關於該SEQN位元的該值是該非預期SEQN的決定,來決定該接收的第一PDU是一先前PDU的一重傳還是該接收的第一PDU包括錯誤的構件;用於回應於關於該第一PDU是該先前PDU的該重傳還是該第一PDU包括錯誤的決定,來發送一確認(ACK)或一否定確認(NACK)的構件;及 其中該用於決定該接收的第一PDU是否是該先前PDU的該重傳的構件被配置為:決定該第一PDU的至少未經加密的MIC八位元組是否與該先前接收的PDU的未經加密的MIC八位元組匹配。
- 根據請求項10之裝置,還包括:用於決定該第一PDU的CRC八位元組是否與該先前接收的PDU的CRC八位元組匹配的構件。
- 根據請求項10之裝置,還包括:用於當該第一PDU的未經加密的MIC八位元組、CRC八位元組或兩者分別與該先前接收的PDU的未經加密的MIC八位元組、CRC八位元組或兩者匹配時,將該第一PDU辨識為該先前接收的PDU的該重傳的構件;及用於當該第一PDU被決定為該先前接收的PDU的該重傳時,發送一ACK以及丟棄該第一PDU的構件。
- 根據請求項10之裝置,還包括:用於當該第一PDU被決定為與該先前接收的PDU的未經加密的MIC八位元組、CRC八位元組中的任何一者都不匹配時,將該第一PDU辨識為具有錯誤的一新PDU的構件,其中該具有錯誤的新PDU被辨識為至少具有一SEQN位元錯誤。
- 根據請求項13之裝置,還包括:用於發送最多N個連續NACK的構件,其中N≧0 或者直到成功地接收到該預期SEQN為止。
- 根據請求項14之裝置,還包括:用於當在發送該N個連續NACK中的至少一個NACK之後成功地接收到該預期SEQN時發送該ACK的構件。
- 根據請求項14之裝置,還包括:用於當在該N個連續NACK之後沒有成功地接收到該預期SEQN時,決定存在一自動重傳請求編號(ARQN)位元錯誤的構件,其中該N個連續NACK之每一者NACK包括一ARQN位元以指示對應的封包沒有被正確地接收。
- 根據請求項16之裝置,還包括:用於回應於將該第一PDU辨識為具有該ARQN位元錯誤來發送一NACK的構件;用於將該預期SEQN的該值切換為一相反值的構件;及用於將該封包計數器值遞增1的構件。
- 根據請求項16之裝置,其中當在該第一PDU之前的一PDU被不正確地接收以及由此得到的NACK的一ARQN位元被一同級設備不正確地接收時,發生該ARQN位元錯誤,使得下一接收的PDU包括一MIC失敗,以及該下一接收的PDU的該SEQN位元的該值與一預期SEQN不匹配。
- 一種用於無線通訊的裝置,包括: 一記憶體;及至少一個處理器,其耦合到該記憶體並且被配置為:接收一第一封包資料單元(PDU),該第一PDU包括一序號(SEQN)位元及一封包計數器值;決定所接收的第一PDU的該SEQN位元的一值是一預期SEQN還是一非預期SEQN;基於該封包計數器值來計算該接收的第一PDU的一訊息完整性校驗(MIC);基於關於該SEQN位元的該值是該非預期SEQN的決定,來決定該接收的第一PDU是一先前PDU的一重傳還是該接收的第一PDU包括錯誤;回應於關於該第一PDU是該先前PDU的該重傳還是該第一PDU包括錯誤的決定,來發送一確認(ACK)或一否定確認(NACK);及其中為了決定該接收的第一PDU是否是該先前PDU的該重傳,該至少一個處理器還被配置為:決定該第一PDU的至少未經加密的MIC八位元組是否與該先前接收的PDU的未經加密的MIC八位元組匹配。
- 根據請求項19之裝置,該至少一個處理器還被配置為:決定該第一PDU的CRC八位元組是否與該先前接收的PDU的CRC八位元組匹配。
- 根據請求項19之裝置,該至少一個處理器 還被配置為:當該第一PDU的未經加密的MIC八位元組、CRC八位元組或兩者分別與該先前接收的PDU的未經加密的MIC八位元組、CRC八位元組或兩者匹配時,將該第一PDU辨識為該先前接收的PDU的該重傳;及當該第一PDU被決定為該先前接收的PDU的該重傳時,發送一ACK以及丟棄該第一PDU。
- 根據請求項19之裝置,該至少一個處理器還被配置為:當該第一PDU被決定為與該先前接收的PDU的未經加密的MIC八位元組、該CRC八位元組中的任何一者都不匹配時,將該第一PDU辨識為具有錯誤的一新PDU,其中該具有錯誤的新PDU被辨識為至少具有一SEQN位元錯誤。
- 根據請求項22之裝置,該至少一個處理器還被配置為:發送最多N個連續NACK,其中N≧0或者直到成功地接收到該預期SEQN為止。
- 根據請求項23之裝置,該至少一個處理器還被配置為:當在發送該N個連續NACK中的至少一個NACK之後成功地接收到該預期SEQN時,發送該ACK。
- 根據請求項23之裝置,該至少一個處理器還被配置為: 當在該N個連續NACK之後沒有成功地接收到該預期SEQN時,決定存在一自動重傳請求編號(ARQN)位元錯誤,其中該N個連續NACK之每一者NACK包括一ARQN位元以指示對應的封包沒有被正確地接收。
- 根據請求項25之裝置,該至少一個處理器還被配置為:回應於將該第一PDU辨識為具有該ARQN位元錯誤來發送一NACK;將該預期SEQN的該值切換為一相反值;及將該封包計數器值遞增1。
- 一種儲存電腦可執行代碼的非暫時性電腦可讀取媒體,該代碼在由一處理器執行時使得該處理器進行以下操作:接收一第一封包資料單元(PDU),該第一PDU包括一序號(SEQN)位元及一封包計數器值;決定該接收的第一PDU的該SEQN位元的一值是一預期SEQN還是一非預期SEQN;基於該封包計數器值來計算該接收的第一PDU的一訊息完整性校驗(MIC);基於關於該SEQN位元的該值是該非預期SEQN的決定,來決定該接收的第一PDU是一先前PDU的一重傳還是該接收的第一PDU包括錯誤;回應於關於該第一PDU是該先前PDU的該重傳還是 該第一PDU包括錯誤的決定,來發送一確認(ACK)或一否定確認(NACK);及其中決定該接收的第一PDU是否是該先前PDU的該重傳包括:決定該第一PDU的至少未經加密的MIC八位元組是否與該先前接收的PDU的未經加密的MIC八位元組匹配。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/693,083 | 2019-11-22 | ||
US16/693,083 US11153038B2 (en) | 2019-11-22 | 2019-11-22 | MIC recovery of BR/EDR links |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202125999A TW202125999A (zh) | 2021-07-01 |
TWI779383B true TWI779383B (zh) | 2022-10-01 |
Family
ID=73544273
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109138192A TWI779383B (zh) | 2019-11-22 | 2020-11-03 | Br/edr 鏈路的mic 恢復 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11153038B2 (zh) |
EP (1) | EP4062567A1 (zh) |
CN (1) | CN114731228B (zh) |
TW (1) | TWI779383B (zh) |
WO (1) | WO2021101671A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200236140A1 (en) * | 2019-04-16 | 2020-07-23 | Intel Corporation | Transport layer security offload to a network interface |
US11677494B2 (en) * | 2021-01-19 | 2023-06-13 | Avago Technologies International Sales Pte. Limited | Enhanced error protection of payload using double CRC |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110022916A1 (en) * | 2009-07-24 | 2011-01-27 | Prasanna Desai | Method and system for saving power for packet re-transmission in an encrypted bluetooth low power link layer connection |
US20140208152A1 (en) * | 2012-02-28 | 2014-07-24 | Hitachi, Ltd. | Relay node, control method of relay node and network system |
US20160210189A1 (en) * | 2015-01-15 | 2016-07-21 | Texas Instruments Incorporated | Robust Connection for Low-Energy Wireless Networks |
US20180115517A1 (en) * | 2016-10-24 | 2018-04-26 | Fisher-Rosemount Systems, Inc. | Secured Process Control Communications |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6374526B2 (ja) * | 2014-03-12 | 2018-08-15 | エルジー エレクトロニクス インコーポレイティド | 無線通信システムにおけるデータ送信率調節方法及び装置 |
US9544767B2 (en) * | 2014-07-21 | 2017-01-10 | Imagination Technologies Limited | Encryption key updates in wireless communication systems |
US9788257B2 (en) * | 2015-03-27 | 2017-10-10 | Samsung Electronics Co., Ltd. | Method and system for dynamically forming service aware bluetooth low energy (BLE) mesh network |
WO2017052343A1 (en) * | 2015-09-25 | 2017-03-30 | Samsung Electronics Co., Ltd. | Terminal and communication method of the same |
US10924219B2 (en) * | 2016-11-11 | 2021-02-16 | Sony Corporation | Transmitting node, receiving node, methods and mobile communications system |
-
2019
- 2019-11-22 US US16/693,083 patent/US11153038B2/en active Active
-
2020
- 2020-10-27 CN CN202080079294.5A patent/CN114731228B/zh active Active
- 2020-10-27 EP EP20811792.9A patent/EP4062567A1/en active Pending
- 2020-10-27 WO PCT/US2020/057445 patent/WO2021101671A1/en unknown
- 2020-11-03 TW TW109138192A patent/TWI779383B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110022916A1 (en) * | 2009-07-24 | 2011-01-27 | Prasanna Desai | Method and system for saving power for packet re-transmission in an encrypted bluetooth low power link layer connection |
US20140208152A1 (en) * | 2012-02-28 | 2014-07-24 | Hitachi, Ltd. | Relay node, control method of relay node and network system |
US20160210189A1 (en) * | 2015-01-15 | 2016-07-21 | Texas Instruments Incorporated | Robust Connection for Low-Energy Wireless Networks |
US20180115517A1 (en) * | 2016-10-24 | 2018-04-26 | Fisher-Rosemount Systems, Inc. | Secured Process Control Communications |
Also Published As
Publication number | Publication date |
---|---|
US20210160009A1 (en) | 2021-05-27 |
EP4062567A1 (en) | 2022-09-28 |
CN114731228A (zh) | 2022-07-08 |
CN114731228B (zh) | 2024-06-14 |
US11153038B2 (en) | 2021-10-19 |
WO2021101671A1 (en) | 2021-05-27 |
TW202125999A (zh) | 2021-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10911184B2 (en) | Error correction for data packets in short-range wireless communications systems | |
US10784993B1 (en) | Soft combining packets received from different piconets | |
US20200329052A1 (en) | System and method for aligning a packet counter in short-range wireless communications systems | |
US11558155B2 (en) | Broadcast relay piconet for low energy audio | |
TWI836053B (zh) | 用於使用選擇性中繼來構造協定資料單元的系統和方法 | |
TWI818116B (zh) | 解密的封包的即時軟組合、crc驗證和mic驗證 | |
TWI779383B (zh) | Br/edr 鏈路的mic 恢復 | |
US11275648B2 (en) | Empty data packet hard align | |
US11330468B2 (en) | Low power techniques for bluetooth low energy in scanning state | |
TW202341780A (zh) | 低功率自我調整功率控制 | |
US20200228235A1 (en) | Data recovery in unreliable packet networks | |
TW202011718A (zh) | 用於使用非同步無連接通訊鏈路發送的資料封包的糾錯 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GD4A | Issue of patent certificate for granted invention patent |