首先申明一下,以下理解不一定正確,都是根據Core5.2 Spec和LL.TS.p17 Spec的理解,如有誤歡迎大家提出來,可以發我郵箱[email protected],
1.FT點后SN和NESN變化機制舉例1:
2.FT點后SN和NESN變化機制舉例2:
備注:
1.可以看到S在第一個Event的SubEvent4發送CIS NULL PDU,不應該發CIS Empty PDU,因為CIS Empty PDU屬于CIS Data PDU,存在重繪點,那么對端如果沒有到該筆資料的話,勢必需要S重發,看起就不合理了,
2.請注意,如果S根本沒有接收到資料包,它就不能發送,因為它不知道時序,對S來說三個黑盒這里應該是收到了M的資料包但是CRC是錯誤的,因為圖示S這種情況下都向M發包了,說明肯定之前收到了M的資料包了,
至于如何知道接收到的對端資料對應的CisPayloadNum:
以M向S發的CIS Data PDU舉例,比如在CIS Event1開始處才收到一筆NEW包(CIS Event0期間收到的包CRC均是錯誤的),收到的這筆資料的SN我們可以知道是0,那么可以推斷出來這筆資料的CisPayloadNum是2或者0,即要么是P2,要么是P0包,如果是P2的話,那么S此時肯定已經收到P1了,但是我們目前只收到1筆NEW包,如果是P1包SN判斷又不滿足,因為P1包的SN為1,所以只能是P0包,也就是CisPayloadNum0,
3.發送和接收sn和nesn流程圖(參考Core5.2 | Vol6,Part B,Page 2995):

4.FT點前后local sn和local nesn變化機制(參考Core5.2 | Vol6,Part B,Page 2997):
When the transmitting Link Layer either does not send a CIS Data PDU or sends one but does not receive an acknowledgment for that PDU by the time the flush point occurs (see Section 4.5.13.5), the transmitSeqNum shall be incremented by one and the PDU shall not be retransmitted after the flush point.
當發送鏈路層不發送CIS資料PDU或發送一個但在重繪點(Flush Pointer)發生時未接收到該PDU的ACK時,transmitSeqNum應增加1,并且PDU不應在重繪點之后重新發送,
When the Link Layer expecting to receive a CIS Data PDU either does not receive that PDU or fails to acknowledge the PDU by the time the flush point occurs, the nextExpectedSeqNum shall be incremented by one and the Link Layer shall not expect the PDU to be retransmitted after the flush point.
當期望接收CIS資料PDU的鏈路層要么沒有接收到該PDU,要么在重繪點發生時未能ACK PDU時,nextExpectedSeqNum應增加1,并且鏈路層不期望PDU在重繪點之后被重新傳輸,
5.ACK Sequence(參考LL.TS.p17 | Page835):

參考檔案:
[1] Core Specification, Versions 5.2
[2] LL.TS.p17 Specification
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/73540.html
標籤:其他
上一篇:matlab 語音識別 深度學習
