丟包重傳是數(shù)據(jù)通信應(yīng)用里面一項(xiàng)非常重要的功能,特別是在無(wú)線通信中是一項(xiàng)決定通信協(xié)議先進(jìn)程度的指標(biāo)。前文詳細(xì)的介紹了無(wú)線通信協(xié)議是如何檢測(cè)數(shù)據(jù)丟包機(jī)制和減少網(wǎng)絡(luò)丟包率有哪些處理機(jī)制,本文接著詳細(xì)介紹通信協(xié)議中系統(tǒng)層重傳機(jī)制。
有丟包就有重傳,針對(duì)不同的丟包,重傳策略也各不相同。我們還是以zigbee的重傳機(jī)制為入口,分析通信協(xié)議的重傳機(jī)制。
CSMA/CA是配合載波偵聽(tīng)使用的重傳機(jī)制。我們?cè)谥v載波偵聽(tīng)時(shí)說(shuō)過(guò)其原理就是接收一段時(shí)間,CSMA/CA的重傳機(jī)制就是去控制偵聽(tīng)時(shí)間。
Zigbee的MAC層在發(fā)送消息時(shí),會(huì)隨機(jī)偵聽(tīng)一段時(shí)間。這個(gè)隨機(jī)時(shí)間也是有講究的,我們都知道zigbee傳輸一個(gè)字節(jié)的時(shí)間為32微秒,MAC層規(guī)定10個(gè)字節(jié)的傳輸時(shí)間也就是320微秒為一個(gè)“避退周期”。MAC層第一次發(fā)送數(shù)據(jù)時(shí),隨機(jī)1~8個(gè)避退周期的時(shí)間來(lái)偵聽(tīng)載波,也就是說(shuō)偵聽(tīng)載波的時(shí)間可能是320微秒到2.56毫秒。假設(shè)這時(shí)有2~3個(gè)zigbee設(shè)備同時(shí)發(fā)送MAC層消息,根據(jù)概率散布,它們大概率不會(huì)偵測(cè)到彼此的載波,因此都可機(jī)會(huì)成功獲得發(fā)送窗口。但是如果同時(shí)發(fā)送的zigbee設(shè)備數(shù)據(jù)增加了,肯定就會(huì)有zigbee設(shè)備搶不到發(fā)送窗口,造成載波偵聽(tīng)丟包,這個(gè)時(shí)候就要重傳了。
CSMA/CA的重傳也是有講究的,既然1~8個(gè)隨機(jī)避退周期會(huì)有碰撞,索性把避退周期的范圍擴(kuò)大1倍,重傳的時(shí)候偵聽(tīng)1~16個(gè)隨機(jī)避退周期,這樣是不是就降低了避退概率?還不夠的話下次重傳直接1~32個(gè)隨機(jī)避退周期……但是如果一直有信道沖突,不可能一直無(wú)止盡的重傳下去吧?而且每次重傳都要擴(kuò)大隨機(jī)避退的范圍,這是一個(gè)無(wú)底洞。因此通常zigbee的MAC層在3次重傳都因?yàn)檩d波偵聽(tīng)丟包后會(huì)通過(guò)“AF Data Confirm”告訴應(yīng)用層“老子盡力了就是不行”,剩下該怎么辦就該應(yīng)用層決定了。
在zigbee協(xié)議中,在發(fā)送MAC幀時(shí)如果沒(méi)有收到MAC-ACK,MAC層也會(huì)自動(dòng)重傳3次MAC幀。不同于載波偵聽(tīng)的每次重傳需要增加間隔時(shí)間,MAC層的重傳是不會(huì)增加間隔時(shí)間的。3次重傳如果都失敗,同樣會(huì)用“AF Data Confirm”告知應(yīng)用層丟包且無(wú)力回天了。
MAC丟包重傳
但是MAC幀的每次重傳,還是會(huì)進(jìn)行載波偵聽(tīng)的。如果MAC層的重傳再遇上載波偵聽(tīng)沖突,還會(huì)誘發(fā)CSMA/CA重傳。
Zigbee協(xié)議的傳輸層重傳,是用來(lái)保證消息有沒(méi)有傳送到最終設(shè)備上。APS層在發(fā)送消息后,等待6秒鐘,沒(méi)有收到APS-ACK則繼續(xù)重傳。通常APS重傳2次,第一次重傳是6秒后,第二次重傳是12秒后。如果最后一次重傳失敗,APS層會(huì)通過(guò)“AF Data Confirm”向應(yīng)用層報(bào)告“死亡通知”。
今天的分享就到這里啦,EBYTE人每一天都致力于更好的助力物聯(lián)化、智能化、自動(dòng)化的發(fā)展,提升資源利用率,更多無(wú)線數(shù)傳模組產(chǎn)品及物聯(lián)網(wǎng)應(yīng)用資料,感興趣的小伙伴可以登錄我們的億佰特官網(wǎng)進(jìn)行了解,還有客服小姐姐在線答疑哦!
7 X 24 銷(xiāo)售服務(wù)熱線
4000-330-990深圳辦事處柯經(jīng)理:18218726658 無(wú)錫辦事處劉經(jīng)理:13558641933
成都總部銷(xiāo)售經(jīng)理:
秦 科(無(wú)線模塊):18884314654 馮子恒(無(wú)線模塊):18828049434
蔡友銀(無(wú)線模塊):13882211021 葛宇龍(通信設(shè)備):19138800613
胡兵(外貿(mào)銷(xiāo)售經(jīng)理):18584911141、 sales06@ebyte.com
業(yè)務(wù)郵箱:support@cdebyte.com 全國(guó)銷(xiāo)售投訴電話:19934352316
地址:四川省成都市高新西區(qū)西區(qū)大道199號(hào)B5棟(前臺(tái)座機(jī):028-61543675)
?? 成都億佰特電子科技有限公司【版權(quán)所有】 蜀ICP備13019384號(hào)