国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      廣播方法及通信設(shè)備與流程

      文檔序號(hào):12796296閱讀:213來(lái)源:國(guó)知局
      廣播方法及通信設(shè)備與流程
      本發(fā)明涉及通信技術(shù),尤其涉及一種廣播方法及通信設(shè)備。

      背景技術(shù):
      廣播是一種重要的網(wǎng)絡(luò)數(shù)據(jù)發(fā)送方式,由一個(gè)源設(shè)備發(fā)送數(shù)據(jù)包給多個(gè)目標(biāo)設(shè)備,是一種一對(duì)多的發(fā)送。在某些情況下一個(gè)源設(shè)備發(fā)送數(shù)據(jù)包給部分相鄰設(shè)備,比如廣播到所有路由器設(shè)備,而非路由器的相鄰設(shè)備可能會(huì)丟棄收到的廣播數(shù)據(jù)包,在另外一些情況下一個(gè)源設(shè)備發(fā)送數(shù)據(jù)包給所有相鄰設(shè)備,也就是說(shuō)源設(shè)備發(fā)送的數(shù)據(jù)包的目標(biāo)設(shè)備,在某些情況下是網(wǎng)絡(luò)中的部分設(shè)備,在另外一些情況下是網(wǎng)絡(luò)中的所有設(shè)備。通常一個(gè)源設(shè)備通過(guò)廣播方式發(fā)送數(shù)據(jù)包給所有的相鄰目標(biāo)設(shè)備。所有收到數(shù)據(jù)包的相鄰目標(biāo)設(shè)備將數(shù)據(jù)包轉(zhuǎn)發(fā)給自身的相鄰目標(biāo)設(shè)備,如此一直到所有的目標(biāo)設(shè)備都收到數(shù)據(jù)包。ZigBee是一種低速率的短距離無(wú)線通信技術(shù),在ZigBee標(biāo)準(zhǔn)中提出了一種可靠廣播的方法。ZigBee標(biāo)準(zhǔn)中廣播方法實(shí)現(xiàn)過(guò)程為:通信網(wǎng)絡(luò)中的每個(gè)設(shè)備都存儲(chǔ)一個(gè)廣播表,廣播表中包括多條記錄項(xiàng),記錄項(xiàng)用于記錄發(fā)起的或收到的廣播數(shù)據(jù)包的標(biāo)識(shí)符。標(biāo)識(shí)符唯一標(biāo)識(shí)一個(gè)數(shù)據(jù)包。設(shè)備收到數(shù)據(jù)包之后,查找廣播表中是否存在與接收到的數(shù)據(jù)包的標(biāo)識(shí)符相同的記錄項(xiàng),如果存在,則判斷接收到的數(shù)據(jù)包為重復(fù)收到的包,將該數(shù)據(jù)包丟棄。否則判斷接收到的數(shù)據(jù)包為新接收到的包,將新接收到的包進(jìn)行轉(zhuǎn)發(fā)。標(biāo)識(shí)一個(gè)數(shù)據(jù)包的方法有很多種,比如可以使用源地址和時(shí)戳來(lái)標(biāo)識(shí)一個(gè)數(shù)據(jù)包,或者只使用時(shí)戳來(lái)標(biāo)識(shí)一個(gè)數(shù)據(jù)包,或者可以使用源地址和序列號(hào)來(lái)標(biāo)識(shí)一個(gè)數(shù)據(jù)包。如果網(wǎng)絡(luò)中每個(gè)目標(biāo)設(shè)備都轉(zhuǎn)發(fā)接收到的數(shù)據(jù)包,則同一數(shù)據(jù)包會(huì)重復(fù)被轉(zhuǎn)發(fā),造成網(wǎng)絡(luò)帶寬極大的消耗,影響正常的網(wǎng)絡(luò)通信。在ZigBee標(biāo)準(zhǔn)的廣播方法中,為了減小由于數(shù)據(jù)包重復(fù)發(fā)送造成的網(wǎng)絡(luò)帶寬消耗,對(duì)于數(shù)據(jù)包的轉(zhuǎn)發(fā)范圍進(jìn)行了限制。本申請(qǐng)的發(fā)明人發(fā)現(xiàn):上述增加跳數(shù)限制的廣播方法,雖然減少網(wǎng)絡(luò)帶寬的消耗,但是該廣播方法的可靠性存在問(wèn)題,從而會(huì)導(dǎo)致網(wǎng)絡(luò)中某些設(shè)備收不到源設(shè)備發(fā)起并發(fā)送的數(shù)據(jù)包。

      技術(shù)實(shí)現(xiàn)要素:
      本發(fā)明實(shí)施例針對(duì)現(xiàn)有技術(shù)中存在的問(wèn)題,提供一種廣播方法及廣播網(wǎng)絡(luò)中的設(shè)備,能夠提高廣播的可靠性。本發(fā)明實(shí)施例提供了一種廣播方法,包括:接收第一數(shù)據(jù)包或第一廣播命令;如果當(dāng)前接收到的第一數(shù)據(jù)包是重復(fù)的數(shù)據(jù)包,比較當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令能夠被轉(zhuǎn)發(fā)的次數(shù)和根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)確定的所述第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù),如果當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令能夠被轉(zhuǎn)發(fā)的次數(shù)小于或等于根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)確定的所述第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù),丟棄當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令。本發(fā)明實(shí)施例還提供了一種廣播方法,包括:接收第一數(shù)據(jù)包或第一廣播命令;如果當(dāng)前接收到的第一數(shù)據(jù)包是重復(fù)的數(shù)據(jù)包,則比較當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令能夠被轉(zhuǎn)發(fā)的次數(shù)和根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)和/或非組播成員剩余跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù),如果當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令能夠被轉(zhuǎn)發(fā)的次數(shù)小于或等于根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)和/或非組播成員剩余跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù),丟棄當(dāng)前接收到的第一數(shù)據(jù)包。本發(fā)明實(shí)施例還提供了一種通信設(shè)備,包括:接收模塊,用于接收第一數(shù)據(jù)包或第一廣播命令;第一判斷模塊,用于判斷當(dāng)前接收到的第一數(shù)據(jù)包是否是重復(fù)的數(shù)據(jù)包;第一比較模塊,用于當(dāng)所述第一判斷模塊確定當(dāng)前接收到的數(shù)據(jù)包是重復(fù)的數(shù)據(jù)包時(shí),比較當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令能夠被轉(zhuǎn)發(fā)的次數(shù)和根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)確定的所述第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù);第一數(shù)據(jù)處理模塊,用于當(dāng)當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令能夠被轉(zhuǎn)發(fā)的次數(shù)小于或等于根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)確定的所述第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)時(shí),丟棄當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令。本發(fā)明實(shí)施例還提供了一種通信設(shè)備,包括:接收模塊,用于接收第一數(shù)據(jù)包或第一廣播命令;第一判斷模塊,用于判斷當(dāng)前接收到的第一數(shù)據(jù)包是否是重復(fù)的數(shù)據(jù)包;第二比較模塊,用于當(dāng)所述判斷模塊確定當(dāng)前接收到的數(shù)據(jù)包是重復(fù)的數(shù)據(jù)包時(shí),比較當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令能夠被轉(zhuǎn)發(fā)的次數(shù)和根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)和/或非組播成員剩余跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù);第二數(shù)據(jù)處理模塊,用于當(dāng)當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令能夠被轉(zhuǎn)發(fā)的次數(shù)小于或等于根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)和/或非組播成員剩余跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)時(shí),丟棄當(dāng)前接收到的第一數(shù)據(jù)包。本發(fā)明實(shí)施例中,設(shè)備在收到重復(fù)數(shù)據(jù)包之后,進(jìn)一步比較第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)和根據(jù)之前存儲(chǔ)的跳數(shù)參數(shù)或非組播成員剩余跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù),根據(jù)判斷結(jié)果來(lái)進(jìn)一步確定是要丟棄數(shù)據(jù)包還是繼續(xù)將數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā),提高了廣播方式發(fā)送數(shù)據(jù)包的可靠性。附圖說(shuō)明圖1所示為本發(fā)明廣播方法實(shí)施例一流程圖;圖2所示為本發(fā)明廣播方法實(shí)施例二流程圖;圖3所示為本發(fā)明實(shí)施例中涉及到的一種網(wǎng)絡(luò)結(jié)構(gòu);圖4所示為本發(fā)明實(shí)施例中涉及到的另一種網(wǎng)絡(luò)結(jié)構(gòu);圖5所示為本發(fā)明廣播方法實(shí)施例三流程圖;圖6所示為本發(fā)明廣播方法實(shí)施例四流程圖;圖7所示為本發(fā)明廣播方法實(shí)施例五流程圖;圖8所示為本發(fā)明廣播方法實(shí)施例六流程圖;圖9所示為本發(fā)明廣播方法實(shí)施例七流程圖;圖10所示為本發(fā)明廣播方法實(shí)施例八流程圖;圖11所示為本發(fā)明實(shí)施例中涉及到的又一種網(wǎng)絡(luò)結(jié)構(gòu);圖12所示為本發(fā)明廣播方法實(shí)施例九流程圖;圖13所示為本發(fā)明廣播方法實(shí)施例十流程圖;圖14所示為本發(fā)明廣播方法實(shí)施例十一流程圖;圖15所示為本發(fā)明廣播網(wǎng)絡(luò)中的設(shè)備實(shí)施例一結(jié)構(gòu)示意圖;圖16所示為本發(fā)明廣播網(wǎng)絡(luò)中的設(shè)備實(shí)施例二結(jié)構(gòu)示意圖;圖17所示為本發(fā)明廣播網(wǎng)絡(luò)中的設(shè)備實(shí)施例三結(jié)構(gòu)示意圖。具體實(shí)施方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。下述的本發(fā)明的實(shí)施例的廣播方法,可以用在各種網(wǎng)絡(luò)通信當(dāng)中,包括無(wú)線網(wǎng)絡(luò)和有線網(wǎng)絡(luò)。如圖1所示為本發(fā)明廣播方法實(shí)施例一流程圖,包括:步驟101、接收第一數(shù)據(jù)包或第一廣播命令;步驟102、如果當(dāng)前接收到的第一數(shù)據(jù)包是重復(fù)的數(shù)據(jù)包,比較當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令能夠被轉(zhuǎn)發(fā)的次數(shù)和根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)確定的所述第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù),如果當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令能夠被轉(zhuǎn)發(fā)的次數(shù)小于或等于根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)確定的所述第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù),丟棄當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令。在ZigBee標(biāo)準(zhǔn)的廣播方法中,為了減小由于數(shù)據(jù)包重復(fù)發(fā)送造成的網(wǎng)絡(luò)帶寬消耗,對(duì)于數(shù)據(jù)包的轉(zhuǎn)發(fā)范圍進(jìn)行了限制。在數(shù)據(jù)包中有一個(gè)Radius域,該Radius域表示數(shù)據(jù)包可以傳遞的跳數(shù),數(shù)據(jù)包每經(jīng)過(guò)一跳的轉(zhuǎn)發(fā),則數(shù)據(jù)包中Radius域中的值減一,當(dāng)目標(biāo)設(shè)備收到的數(shù)據(jù)包Radius域中的值減一之后為0時(shí),目標(biāo)設(shè)備不轉(zhuǎn)發(fā)該數(shù)據(jù)包?;蛘?,數(shù)據(jù)包每經(jīng)過(guò)一跳的轉(zhuǎn)發(fā),則數(shù)據(jù)包中Radius域中的值加一,當(dāng)目標(biāo)設(shè)備收到的數(shù)據(jù)包Radius域中的值加一之后超過(guò)預(yù)先設(shè)定的最大允許跳數(shù)之后,目標(biāo)設(shè)備不轉(zhuǎn)發(fā)該數(shù)據(jù)包。網(wǎng)絡(luò)中的各個(gè)目標(biāo)設(shè)備在收到數(shù)據(jù)包之后,可以對(duì)數(shù)據(jù)包中的跳數(shù)進(jìn)行加一或減一,對(duì)于接收到重復(fù)的數(shù)據(jù)包,判斷當(dāng)前接收到的數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)是否大于根據(jù)之前存儲(chǔ)的該數(shù)據(jù)包的跳數(shù)參數(shù)確定的該數(shù)據(jù)包的能夠被轉(zhuǎn)發(fā)的次數(shù)時(shí),需要結(jié)合具體的情況。下面主要以對(duì)跳數(shù)進(jìn)行減一為例進(jìn)行介紹如圖2所示為本發(fā)明廣播方法實(shí)施例二流程圖,包括:步驟201、接收第一數(shù)據(jù)包。步驟202、判斷預(yù)先存儲(chǔ)的廣播表中是否存在與第一數(shù)據(jù)包的標(biāo)識(shí)符相同的記錄項(xiàng),如果預(yù)先存儲(chǔ)的廣播表中不存在與第一數(shù)據(jù)包的標(biāo)識(shí)符相同的記錄項(xiàng),則執(zhí)行步驟203;否則執(zhí)行步驟204。步驟203、確定接收到的第一數(shù)據(jù)包是新的數(shù)據(jù)包,在所述廣播表中記錄第一數(shù)據(jù)包的標(biāo)識(shí)符,并且將第一數(shù)據(jù)包的跳數(shù)參數(shù)進(jìn)行存儲(chǔ),再將第一數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā),結(jié)束。步驟204、確定第一數(shù)據(jù)包是重復(fù)的數(shù)據(jù)包,判斷當(dāng)前接收到的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)是否大于根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù),如果當(dāng)前接收到的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)大于根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù),則執(zhí)行步驟205;如果當(dāng)前接收到的第一數(shù)據(jù)包的能夠被轉(zhuǎn)發(fā)的次數(shù)小于或等于根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù),則執(zhí)行步驟206。步驟205、將之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)更換為當(dāng)前接收到的第一數(shù)據(jù)包的跳數(shù)參數(shù),并將當(dāng)前接收到的第一數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā)。步驟206、丟棄當(dāng)前接收到的第一數(shù)據(jù)包,結(jié)束。步驟202中判斷當(dāng)前接收到的第一數(shù)據(jù)包是否是重復(fù)的數(shù)據(jù)包具體包括:判斷預(yù)先存儲(chǔ)的廣播表中是否存在與當(dāng)前接收到的第一數(shù)據(jù)包的標(biāo)識(shí)符相同的記錄項(xiàng),其中,標(biāo)識(shí)符是能夠唯一標(biāo)識(shí)一個(gè)數(shù)據(jù)包的標(biāo)識(shí)符,標(biāo)識(shí)符可以由數(shù)據(jù)包的源地址和序列號(hào)組成,或者標(biāo)識(shí)符為數(shù)據(jù)包的時(shí)間戳,或者標(biāo)識(shí)符可以由源地址和時(shí)間戳組成。對(duì)于對(duì)跳數(shù)進(jìn)行減一的情況,實(shí)施例二中步驟判斷當(dāng)前接收到的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)是否大于根據(jù)之前存儲(chǔ)的跳數(shù)參數(shù)第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)的步驟,具體如步驟204所示,即可以判斷當(dāng)前接收到的第一數(shù)據(jù)包中的跳數(shù)參數(shù)是否大于之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)。如果當(dāng)前接收到的第一數(shù)據(jù)包的跳數(shù)參數(shù)大于之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù),那么可以確定當(dāng)前接收到的數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù),大于根據(jù)之前存儲(chǔ)的跳數(shù)參數(shù)第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)。步驟203中,將跳數(shù)參數(shù)進(jìn)行存儲(chǔ)的步驟,可以在對(duì)第一數(shù)據(jù)包中的跳數(shù)進(jìn)行處理之前進(jìn)行,也可以在對(duì)第一數(shù)據(jù)包中的跳數(shù)進(jìn)行處理之后進(jìn)行。如果步驟203中,將跳數(shù)參數(shù)進(jìn)行存儲(chǔ)的步驟在對(duì)第一數(shù)據(jù)包中的跳數(shù)進(jìn)行處理之前進(jìn)行,那么跳數(shù)參數(shù)就是第一數(shù)據(jù)包中的跳數(shù),則步驟204中,將第一數(shù)據(jù)包中跳數(shù)參數(shù)與之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)相比較的步驟可以在對(duì)第一數(shù)據(jù)包中的跳數(shù)進(jìn)行處理之前進(jìn)行。如果步驟203中,將跳數(shù)參數(shù)進(jìn)行存儲(chǔ)的步驟在對(duì)第一數(shù)據(jù)包中的跳數(shù)進(jìn)行處理之后進(jìn)行,那么跳數(shù)參數(shù)就是經(jīng)過(guò)處理后的跳數(shù),即減一后的跳數(shù),則步驟204中,將第一數(shù)據(jù)包中跳數(shù)參數(shù)與之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)相比較的步驟可以在對(duì)第一數(shù)據(jù)包中的跳數(shù)進(jìn)行處理之后進(jìn)行。例如,假設(shè)對(duì)數(shù)據(jù)包中的跳數(shù)進(jìn)行處理具體是將數(shù)據(jù)包中的跳數(shù)減一,步驟203中,當(dāng)?shù)谝粩?shù)據(jù)包是新的數(shù)據(jù)包時(shí),將第一數(shù)據(jù)包中的跳數(shù)減一,將跳數(shù)減一之后的值作為跳數(shù)參數(shù)進(jìn)行存儲(chǔ),然后將第一數(shù)據(jù)包轉(zhuǎn)發(fā)。步驟204中,當(dāng)?shù)谝粩?shù)據(jù)包是重復(fù)的數(shù)據(jù)包時(shí),將第一數(shù)據(jù)包中的跳數(shù)減一,如果跳數(shù)減一之后大于之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù),則將之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)更換為當(dāng)前接收到的第一數(shù)據(jù)包的跳數(shù)參數(shù)(即當(dāng)前接收到的第一數(shù)據(jù)包的跳數(shù)減一之后的值),然后將第一數(shù)據(jù)包轉(zhuǎn)發(fā)。如果當(dāng)前接收到的第一數(shù)據(jù)包的跳數(shù)減一之后小于或等于之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù),則當(dāng)前接收到的第一數(shù)據(jù)包丟棄?;蛘?,假設(shè)對(duì)數(shù)據(jù)包中的跳數(shù)進(jìn)行處理具體是將數(shù)據(jù)包中的跳數(shù)減一,步驟203中,當(dāng)?shù)谝粩?shù)據(jù)包是新的數(shù)據(jù)包時(shí),將當(dāng)前接收到的第一數(shù)據(jù)包中的跳數(shù)作為跳數(shù)參數(shù)進(jìn)行存儲(chǔ),然后將第一數(shù)據(jù)包中的跳數(shù)減一,再將第一數(shù)據(jù)包轉(zhuǎn)發(fā)。步驟204中,當(dāng)?shù)谝粩?shù)據(jù)包是重復(fù)的數(shù)據(jù)包時(shí),如果當(dāng)前接收到的第一數(shù)據(jù)包的跳數(shù)參數(shù)大于之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù),則將之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)更換為當(dāng)前接收到的第一數(shù)據(jù)包的跳數(shù)參數(shù)(即當(dāng)前接收到的第一數(shù)據(jù)包的跳數(shù)),然后將第一數(shù)據(jù)包中的跳數(shù)減一后再將第一數(shù)據(jù)包轉(zhuǎn)發(fā)。如果當(dāng)前接收到的第一數(shù)據(jù)包的跳數(shù)小于或等于之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù),則當(dāng)前接收到的第一數(shù)據(jù)包丟棄。實(shí)施例二中,網(wǎng)絡(luò)中各設(shè)備中存儲(chǔ)有一個(gè)廣播表,廣播表中包括多個(gè)記錄項(xiàng),每個(gè)記錄項(xiàng)用于記錄一個(gè)數(shù)據(jù)包的標(biāo)識(shí)符,數(shù)據(jù)包的跳數(shù)參數(shù)可以存儲(chǔ)在廣播表里與該數(shù)據(jù)包對(duì)應(yīng)的記錄項(xiàng)中?;蛘?,由于各目標(biāo)設(shè)備接收到數(shù)據(jù)包之后需要將其緩存之后再轉(zhuǎn)發(fā),所以數(shù)據(jù)包的跳數(shù)參數(shù)可以作為緩存的數(shù)據(jù)包的一部分進(jìn)行存儲(chǔ)。目標(biāo)設(shè)備在收到數(shù)據(jù)包之后,可以將數(shù)據(jù)包緩存,通過(guò)查找廣播表中關(guān)于該數(shù)據(jù)包的標(biāo)識(shí)符,就可以提取出數(shù)據(jù)包。下面通過(guò)具體的網(wǎng)絡(luò)中的設(shè)備來(lái)說(shuō)明本發(fā)明實(shí)施例二的實(shí)現(xiàn)過(guò)程。如圖3所示為本發(fā)明實(shí)施例中涉及到的一種網(wǎng)絡(luò)結(jié)構(gòu),下面以圖3所示的網(wǎng)絡(luò)結(jié)構(gòu)為例來(lái)介紹本發(fā)明實(shí)施例的具體過(guò)程。圖3中,A設(shè)備作為源設(shè)備發(fā)送2跳數(shù)據(jù)包M,一開始B設(shè)備收到數(shù)據(jù)包M,而C設(shè)備由于干擾沒(méi)有收到數(shù)據(jù)包M,后續(xù)C設(shè)備收到了B設(shè)備轉(zhuǎn)發(fā)的數(shù)據(jù)包M,C設(shè)備查找自身存儲(chǔ)廣播表,判斷是否存在與數(shù)據(jù)包M的標(biāo)識(shí)符相同的記錄項(xiàng),由于C設(shè)備是第一次收到數(shù)據(jù)包M,所以C設(shè)備的廣播表中不存在與數(shù)據(jù)包M的標(biāo)識(shí)符均相同的數(shù)據(jù)包,C設(shè)備判斷數(shù)據(jù)包M為新的數(shù)據(jù)包。C設(shè)備將數(shù)據(jù)包M中的跳數(shù)減一,C設(shè)備在自身的廣播表中添加數(shù)據(jù)包M的記錄項(xiàng),記錄數(shù)據(jù)包M的標(biāo)識(shí)符,并記錄數(shù)據(jù)包M的跳數(shù)參數(shù)(由于C設(shè)備將數(shù)據(jù)包M中的跳數(shù)減一,所以此處跳數(shù)參數(shù)為0跳)。C設(shè)備將數(shù)據(jù)包M中的跳數(shù)減一后,數(shù)據(jù)包M的跳數(shù)變?yōu)?,于是C設(shè)備不將數(shù)據(jù)包M進(jìn)行轉(zhuǎn)發(fā)。A設(shè)備由于收不到來(lái)自C設(shè)備轉(zhuǎn)發(fā)的數(shù)據(jù)包M,所以A設(shè)備重新發(fā)起并發(fā)送2跳數(shù)據(jù)包M,這時(shí)C設(shè)備收到A設(shè)備發(fā)送的2跳數(shù)據(jù)包M,C設(shè)備在收到A設(shè)備發(fā)送的數(shù)據(jù)包M后,從自身的廣播表中查找,判斷是否存在與數(shù)據(jù)包M的標(biāo)識(shí)符均相同的記錄項(xiàng)。之前B設(shè)備向C設(shè)備轉(zhuǎn)發(fā)過(guò)數(shù)據(jù)包M,B設(shè)備轉(zhuǎn)發(fā)的數(shù)據(jù)包M中源地址為A設(shè)備,因?yàn)锽設(shè)備是進(jìn)行轉(zhuǎn)發(fā),而不是主動(dòng)發(fā)起并發(fā)送數(shù)據(jù)包。A設(shè)備后續(xù)發(fā)送給C設(shè)備的數(shù)據(jù)包M中的源地址也是A設(shè)備。這樣,C設(shè)備能夠從自身的廣播表中查找到與當(dāng)前接收到的數(shù)據(jù)包M的標(biāo)識(shí)符均相同的記錄項(xiàng),即之前C設(shè)備收到B設(shè)備轉(zhuǎn)發(fā)的數(shù)據(jù)包M后添加的記錄項(xiàng)。于是C設(shè)備判斷當(dāng)前接收到的數(shù)據(jù)包M為重復(fù)數(shù)據(jù)包。C設(shè)備收到重復(fù)數(shù)據(jù)包之后,不是直接丟棄,而是還需要進(jìn)行進(jìn)一步的判斷。具體地,C設(shè)備將當(dāng)前接收到的來(lái)自A設(shè)備發(fā)送的數(shù)據(jù)包M中的跳數(shù)減一之后的值(即當(dāng)前數(shù)據(jù)包M的跳數(shù)參數(shù))與廣播表中關(guān)于數(shù)據(jù)包M的記錄項(xiàng)中記錄的跳數(shù)參數(shù)進(jìn)行比較,將當(dāng)前接收的數(shù)據(jù)包M中的跳數(shù)減一之后的值為2-1=1跳,而廣播表中存儲(chǔ)的數(shù)據(jù)包M的跳數(shù)參數(shù)為0跳,1>0,即C設(shè)備當(dāng)前接收到的數(shù)據(jù)包M能夠被轉(zhuǎn)發(fā)的次數(shù)(1次)大于根據(jù)之前存儲(chǔ)的數(shù)據(jù)包M的跳數(shù)參數(shù)確定的數(shù)據(jù)包M能夠被轉(zhuǎn)發(fā)的次數(shù)(0次),所以C設(shè)備將廣播表中數(shù)據(jù)包M的跳數(shù)參數(shù)更換為1跳。然后C設(shè)備將數(shù)據(jù)包M中的跳數(shù)減一后,進(jìn)行轉(zhuǎn)發(fā)。C設(shè)備收到的數(shù)據(jù)包M中的跳數(shù)為2,減一之后跳數(shù)為1,所以C設(shè)備可以將數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā)。如果按照現(xiàn)有技術(shù)ZigBee標(biāo)準(zhǔn)中廣播方法,C設(shè)備收到重復(fù)數(shù)據(jù)包之后直接丟棄,而對(duì)于B設(shè)備轉(zhuǎn)發(fā)的數(shù)據(jù)包M由于剩余跳數(shù)不足,無(wú)法進(jìn)行轉(zhuǎn)發(fā),會(huì)導(dǎo)致C設(shè)備收不到A設(shè)備發(fā)送的數(shù)據(jù)包M。本發(fā)明實(shí)施例二提供的方法中,C設(shè)備在收到重復(fù)數(shù)據(jù)包之后,進(jìn)一步比較當(dāng)前接收到的來(lái)自A設(shè)備發(fā)送的數(shù)據(jù)包M中能夠被轉(zhuǎn)發(fā)的次數(shù)與根據(jù)廣播表中關(guān)于數(shù)據(jù)包M的記錄項(xiàng)中記錄的跳數(shù)參數(shù)確定的數(shù)據(jù)包M能夠被轉(zhuǎn)發(fā)的次數(shù)的大小,這樣就避免了C設(shè)備將與自身間隔跳數(shù)較少的設(shè)備發(fā)送過(guò)來(lái)的數(shù)據(jù)包直接丟棄,從而提高了廣播方式發(fā)送數(shù)據(jù)包的可靠性。如圖4所示為本發(fā)明實(shí)施例中涉及到的另一種網(wǎng)絡(luò)結(jié)構(gòu),下面一圖4所示的網(wǎng)絡(luò)結(jié)構(gòu)為例來(lái)介紹本發(fā)明實(shí)施例的實(shí)現(xiàn)過(guò)程。圖4中,S設(shè)備作為源設(shè)備發(fā)起廣播,發(fā)送5跳數(shù)據(jù)包M給相鄰的A設(shè)備和D設(shè)備,B設(shè)備是低功耗路由器件。低功耗路由是無(wú)線傳感器網(wǎng)絡(luò)當(dāng)中一個(gè)重要特征。低功耗路由器件通常周期性地進(jìn)行休眠和工作,在休眠的時(shí)候,其他設(shè)備無(wú)法與低功耗器件進(jìn)行通信,只有在非休眠的時(shí)候,其他設(shè)備才能與低功耗路由器件通信。如果B設(shè)備恰好處于休眠狀態(tài),則A設(shè)備需要等到B設(shè)備喚醒后才將接收到的數(shù)據(jù)包M進(jìn)行轉(zhuǎn)發(fā),因此D設(shè)備先進(jìn)行數(shù)據(jù)包的轉(zhuǎn)發(fā)。D設(shè)備將數(shù)據(jù)包M轉(zhuǎn)發(fā)給E設(shè)備,E設(shè)備將數(shù)據(jù)包M轉(zhuǎn)發(fā)給F設(shè)備,F(xiàn)設(shè)備將數(shù)據(jù)包M轉(zhuǎn)發(fā)給C設(shè)備和J設(shè)備,C設(shè)備先收到F設(shè)備轉(zhuǎn)發(fā)的2跳數(shù)據(jù)包M,并在自身的廣播表中添加關(guān)于數(shù)據(jù)包M的記錄項(xiàng),記錄數(shù)據(jù)包M的標(biāo)識(shí)符,并在記錄項(xiàng)中記錄數(shù)據(jù)包M的跳數(shù)參數(shù)(即2-1=1跳),然后將數(shù)據(jù)包M跳數(shù)減一后轉(zhuǎn)發(fā)給G、I、A和F設(shè)備,G設(shè)備和I設(shè)備將數(shù)據(jù)包M跳數(shù)減一后,跳數(shù)為0,于是不再轉(zhuǎn)發(fā)。經(jīng)過(guò)一段時(shí)間后,B設(shè)備喚醒,A設(shè)備將接收到的數(shù)據(jù)包M轉(zhuǎn)發(fā)。C設(shè)備收到了來(lái)自A設(shè)備轉(zhuǎn)發(fā)的數(shù)據(jù)包M,C設(shè)備從自身的廣播表中查找,判斷是否存在與數(shù)據(jù)包M的標(biāo)識(shí)符均相同的記錄項(xiàng)。之前F設(shè)備向C設(shè)備轉(zhuǎn)發(fā)過(guò)數(shù)據(jù)包M,所以C設(shè)備能夠在廣播表中查找到與當(dāng)前接收到的數(shù)據(jù)包M的標(biāo)識(shí)符均相同的記錄項(xiàng)。于是C設(shè)備判斷當(dāng)前接收到的數(shù)據(jù)包M為重復(fù)數(shù)據(jù)包。C設(shè)備將當(dāng)前接收到的A設(shè)備轉(zhuǎn)發(fā)的數(shù)據(jù)包M中的跳數(shù)減一之后的值(即當(dāng)前數(shù)據(jù)包M的跳數(shù)參數(shù))與廣播表中關(guān)于數(shù)據(jù)包M的記錄項(xiàng)中記錄的跳數(shù)參數(shù)進(jìn)行比較,將當(dāng)前接收到的A設(shè)備轉(zhuǎn)發(fā)的數(shù)據(jù)包M中的跳數(shù)減一之后的值為4-1=3跳,而廣播表中存儲(chǔ)的數(shù)據(jù)包M的跳數(shù)參數(shù)為1跳,3>1,即當(dāng)前接收到的數(shù)據(jù)包M能夠被轉(zhuǎn)發(fā)的次數(shù)大于根據(jù)之前存儲(chǔ)的數(shù)據(jù)包M的跳數(shù)參數(shù)確定的數(shù)據(jù)包M能夠被轉(zhuǎn)發(fā)的次數(shù),所述C設(shè)備將廣播表中數(shù)據(jù)包M的跳數(shù)參數(shù)更換為3跳。然后C設(shè)備將當(dāng)前接收到的A設(shè)備轉(zhuǎn)發(fā)的數(shù)據(jù)包M中的跳數(shù)減一后,轉(zhuǎn)發(fā)給G、I、A、F設(shè)備。G、I設(shè)備收到的C設(shè)備轉(zhuǎn)發(fā)的數(shù)據(jù)包M中跳數(shù)為3跳,這樣G、I設(shè)備就能將接收到的數(shù)據(jù)包M轉(zhuǎn)發(fā),從而H、K、L、N設(shè)備也能收到數(shù)據(jù)包M。如圖5所示為本發(fā)明廣播方法實(shí)施例三流程圖,包括:步驟501、接收第一數(shù)據(jù)包;步驟502、判斷預(yù)先存儲(chǔ)的廣播表中是否存在與第一數(shù)據(jù)包的標(biāo)識(shí)符均相同的記錄項(xiàng),如果預(yù)先存儲(chǔ)的廣播表中不存在與第一數(shù)據(jù)包的標(biāo)識(shí)符均相同的記錄項(xiàng),則執(zhí)行步驟503;否則執(zhí)行步驟504。步驟503、確定接第一數(shù)據(jù)包是新的數(shù)據(jù)包,在所述廣播表中記錄第一數(shù)據(jù)包的標(biāo)識(shí)符,并且將第一數(shù)據(jù)包的跳數(shù)參數(shù)進(jìn)行存儲(chǔ),再將第一數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā),結(jié)束。步驟504、確定第一數(shù)據(jù)包是重復(fù)的數(shù)據(jù)包,判斷當(dāng)前接收到的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)是否大于根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù),如果當(dāng)前接收到的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)大于根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù),則執(zhí)行步驟505;否則,執(zhí)行步驟506。步驟505、判斷根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)是否是0,如果是,則說(shuō)明之前收到的第一數(shù)據(jù)包沒(méi)有被轉(zhuǎn)發(fā)過(guò),則執(zhí)行步驟507;否則,說(shuō)明之前收到的第一數(shù)據(jù)包被轉(zhuǎn)發(fā)過(guò),執(zhí)行步驟508。步驟506、丟棄當(dāng)前接收到的第一數(shù)據(jù)包,結(jié)束。步驟507、將之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)更換為當(dāng)前接收到的第一數(shù)據(jù)包的跳數(shù)參數(shù),并將當(dāng)前接收到的第一數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā),結(jié)束。步驟508、發(fā)送第一廣播命令給相鄰目標(biāo)設(shè)備,所述第一廣播命令中包括當(dāng)前接收到的第一數(shù)據(jù)包的源地址、序列號(hào)和當(dāng)前接收到的第一數(shù)據(jù)包中的跳數(shù)經(jīng)過(guò)跳數(shù)處理后的值,具體到本實(shí)施例即當(dāng)前接收到的第一數(shù)據(jù)包中的跳數(shù)減一之后的值。第一廣播命令中的跳數(shù),即是第一數(shù)據(jù)包中的跳數(shù)經(jīng)過(guò)跳數(shù)減一之后的值。其他目標(biāo)設(shè)備收到第一廣播命令之后的處理方式與接收到數(shù)據(jù)包之后的處理方式類似,具體地,當(dāng)目標(biāo)設(shè)備收到第一廣播命令之后,查找自身的廣播表,如果廣播表中存在與第一廣播命令中的標(biāo)識(shí)符均相同的記錄項(xiàng),則比較第一廣播命令中的跳數(shù)參數(shù)(即第一廣播命令中的跳數(shù)減一之后的值)與記錄項(xiàng)中的跳數(shù)參數(shù)的大小。如果第一廣播命令中的跳數(shù)參數(shù)大于記錄項(xiàng)中的跳數(shù)參數(shù),則將記錄項(xiàng)中的跳數(shù)參數(shù)更換為第一廣播命令中的跳數(shù)參數(shù),提取出與記錄項(xiàng)中與第一廣播命令中的標(biāo)識(shí)符均相同的數(shù)據(jù)包,并將提取出的數(shù)據(jù)包中的跳數(shù)設(shè)置為第一廣播命令中的跳數(shù),然后將提取出的數(shù)據(jù)包轉(zhuǎn)發(fā)。如果第一廣播命令中的跳數(shù)參數(shù)小于或等于記錄項(xiàng)中的跳數(shù)參數(shù),則丟棄該第一廣播命令,或者轉(zhuǎn)發(fā)該第一廣播命令,即將第一廣播命令中的跳數(shù)減一后轉(zhuǎn)發(fā),直到該第一廣播命令中的跳數(shù)為0時(shí),停止轉(zhuǎn)發(fā)。如果廣播表中不存在與第一廣播命令中的標(biāo)識(shí)符相同的記錄項(xiàng),則說(shuō)明該目標(biāo)設(shè)備沒(méi)有收到過(guò)與第一廣播命令中的標(biāo)識(shí)符相同的數(shù)據(jù)包,該目標(biāo)設(shè)備丟棄該命令,或者將該命令中的跳數(shù)減一后轉(zhuǎn)發(fā)出去,直到該命令中的跳數(shù)為0時(shí),停止轉(zhuǎn)發(fā)。以圖4所示的網(wǎng)絡(luò)結(jié)構(gòu)為例,當(dāng)C設(shè)備收到A設(shè)備轉(zhuǎn)發(fā)的重復(fù)數(shù)據(jù)包M后,判斷數(shù)據(jù)包M能夠被轉(zhuǎn)發(fā)的次數(shù)大于根據(jù)之前存儲(chǔ)的數(shù)據(jù)包M的跳數(shù)參數(shù)確定的數(shù)據(jù)包M能夠被轉(zhuǎn)發(fā)的次數(shù),具體地,可以判斷數(shù)據(jù)包M中跳數(shù)減一之后的值(即當(dāng)前數(shù)據(jù)包M的跳數(shù)參數(shù))大于廣播表中關(guān)于數(shù)據(jù)包M的記錄項(xiàng)中記錄的跳數(shù)參數(shù)(即1跳),然后C設(shè)備繼續(xù)判斷根據(jù)之前存儲(chǔ)的數(shù)據(jù)包M的跳數(shù)參數(shù)確定的數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)不為0(即之前粗糙農(nóng)戶的數(shù)據(jù)包M的跳數(shù)參數(shù)不為0),于是C設(shè)備發(fā)送第一廣播命令給相鄰目標(biāo)設(shè)備G、I、F和A,第一廣播命令中包括數(shù)據(jù)包M的源地址、序列號(hào)和C設(shè)備當(dāng)前接收到的數(shù)據(jù)包M的跳數(shù)參數(shù)。之前由于B設(shè)備休眠,所以D設(shè)備先轉(zhuǎn)發(fā)數(shù)據(jù)包M。在G和I設(shè)備的記錄表中存儲(chǔ)有關(guān)于數(shù)據(jù)包M的記錄項(xiàng),該記錄項(xiàng)中數(shù)據(jù)包M的跳數(shù)參數(shù)為0跳。G和I設(shè)備在收到后續(xù)的第一廣播命令后,在自身的廣播表中能夠查找到與第一廣播命令中的標(biāo)識(shí)符均相同的記錄項(xiàng),第一廣播命令中的跳數(shù)參數(shù)大于記錄項(xiàng)中存儲(chǔ)的數(shù)據(jù)包M的跳數(shù)參數(shù),且之前存儲(chǔ)的數(shù)據(jù)包M的跳數(shù)參數(shù)為0,所以G設(shè)備和I設(shè)備提取出數(shù)據(jù)包M,并將提取出的數(shù)據(jù)包M中的跳數(shù)設(shè)置為第一廣播命令的跳數(shù)參數(shù)(即第一廣播命令的跳數(shù)減一之后的值)的值,并將數(shù)據(jù)包M轉(zhuǎn)發(fā)出去。通過(guò)發(fā)送第一廣播命令給G設(shè)備和I設(shè)備,使得G設(shè)備和I設(shè)備將之前收到過(guò)的數(shù)據(jù)包M轉(zhuǎn)發(fā),避免了如同現(xiàn)有技術(shù)那樣,G設(shè)備和I設(shè)備由于數(shù)據(jù)包M中剩余跳數(shù)不足而停止轉(zhuǎn)發(fā),造成G設(shè)備和I設(shè)備的相鄰目標(biāo)設(shè)備收不到數(shù)據(jù)包M的情況。本發(fā)明實(shí)施例三提供的方法,對(duì)于重復(fù)接收到的數(shù)據(jù)包,當(dāng)數(shù)據(jù)包的跳數(shù)參數(shù)大于先前存儲(chǔ)的數(shù)據(jù)包的跳數(shù)參數(shù),并且根據(jù)之前存儲(chǔ)的數(shù)據(jù)包的跳數(shù)參數(shù)確定的該數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)不為0時(shí),發(fā)送第一廣播命令,而不是轉(zhuǎn)發(fā)數(shù)據(jù)包。由于第一廣播命令的字節(jié)數(shù)少于數(shù)據(jù)包,這樣就可以節(jié)省傳輸字節(jié)數(shù)。方法實(shí)施例三中,對(duì)于有的目標(biāo)設(shè)備,在收到一個(gè)第一廣播命令之后,在自身存儲(chǔ)的廣播表中查找不到與追加廣播命令中的標(biāo)識(shí)符均相同的記錄項(xiàng),也就是說(shuō)之前該目標(biāo)設(shè)備沒(méi)有收到過(guò)與第一廣播命令中的標(biāo)識(shí)符均相同的數(shù)據(jù)包,這樣,設(shè)備即使收到了第一廣播命令之后,也無(wú)法轉(zhuǎn)發(fā)相應(yīng)的數(shù)據(jù)包。以圖4所示的網(wǎng)絡(luò)結(jié)構(gòu)為例,C設(shè)備先收到F設(shè)備轉(zhuǎn)發(fā)的2跳數(shù)據(jù)包M,并在自身的廣播表中添加關(guān)于數(shù)據(jù)包M的記錄項(xiàng),記錄數(shù)據(jù)包M的標(biāo)識(shí)符,并在記錄項(xiàng)中記錄數(shù)據(jù)包M的跳數(shù)參數(shù)(即2-1=1跳),然后將數(shù)據(jù)包M跳數(shù)減一后轉(zhuǎn)發(fā)給G、I、F和A設(shè)備,然而由于干擾,經(jīng)過(guò)多次重傳,G和I都沒(méi)有收到來(lái)自C和J的轉(zhuǎn)發(fā)。經(jīng)過(guò)一段時(shí)間后,B設(shè)備喚醒,A設(shè)備將接收到的數(shù)據(jù)包M轉(zhuǎn)發(fā)。C設(shè)備收到了來(lái)自A設(shè)備轉(zhuǎn)發(fā)的數(shù)據(jù)包M,C設(shè)備從自身的廣播表中查找,判斷是否存在與數(shù)據(jù)包M的標(biāo)識(shí)符相同的記錄項(xiàng)。之前F設(shè)備向C設(shè)備轉(zhuǎn)發(fā)過(guò)數(shù)據(jù)包M,所以C設(shè)備能夠在廣播表中查找到與當(dāng)前接收到的數(shù)據(jù)包M的標(biāo)識(shí)符相同的記錄項(xiàng)。于是C設(shè)備判斷當(dāng)前接收到的數(shù)據(jù)包M為重復(fù)數(shù)據(jù)包。C設(shè)備將當(dāng)前接收到的A設(shè)備轉(zhuǎn)發(fā)的數(shù)據(jù)包M中的跳數(shù)減一之后的值(即當(dāng)前數(shù)據(jù)包M的跳數(shù)參數(shù))與廣播表中關(guān)于數(shù)據(jù)包M的記錄項(xiàng)中記錄的跳數(shù)參數(shù)進(jìn)行比較,將當(dāng)前接收到的A設(shè)備轉(zhuǎn)發(fā)的數(shù)據(jù)包M中的跳數(shù)減一之后的值為4-1=3跳,而廣播表中存儲(chǔ)的數(shù)據(jù)包M的跳數(shù)參數(shù)為1跳,3>1,即當(dāng)前接收到的數(shù)據(jù)包M能夠被轉(zhuǎn)發(fā)的次數(shù)大于根據(jù)之前存儲(chǔ)的數(shù)據(jù)包M的跳數(shù)參數(shù)確定的數(shù)據(jù)包M能夠被轉(zhuǎn)發(fā)的次數(shù),并且根據(jù)之前存儲(chǔ)的數(shù)據(jù)包M的跳數(shù)參數(shù)確定的數(shù)據(jù)包M能夠被轉(zhuǎn)發(fā)的次數(shù)不等于0,因此所述C設(shè)備發(fā)送追第一廣播命令,命令的標(biāo)識(shí)符跟存儲(chǔ)的數(shù)據(jù)包相同,跳數(shù)為3跳,然后C設(shè)備將第一廣播命令轉(zhuǎn)發(fā)給G、I、F、A設(shè)備。G、I設(shè)備收到的C設(shè)備發(fā)送的第一廣播命令中跳數(shù)為3跳,減一之后為2跳,由于G和I之前由于干擾沒(méi)有收到廣播包,因此G、I查找廣播表沒(méi)有發(fā)現(xiàn)有對(duì)應(yīng)的表項(xiàng),就會(huì)丟棄收到的第一廣播命令,最后仍會(huì)造成H、K、L、N等設(shè)備收不到數(shù)據(jù)包M。為了避免這種情況發(fā)生,本發(fā)明提供一個(gè)實(shí)施例四。如圖6所示為本發(fā)明廣播方法實(shí)施例四流程圖,包括:步驟601、接收第一數(shù)據(jù)包;步驟602、判斷預(yù)先存儲(chǔ)的廣播表中是否存在與第一數(shù)據(jù)包的標(biāo)識(shí)符相同的記錄項(xiàng),如果預(yù)先存儲(chǔ)的廣播表中不存在與第一數(shù)據(jù)包的標(biāo)識(shí)符相同的記錄項(xiàng),則執(zhí)行步驟603;否則,執(zhí)行步驟604。步驟603、確定接收到的第一數(shù)據(jù)包是新的數(shù)據(jù)包,在所述廣播表中記錄第一數(shù)據(jù)包的標(biāo)識(shí)符,并且將第一數(shù)據(jù)包的跳數(shù)參數(shù)進(jìn)行存儲(chǔ),再將第一數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā),結(jié)束。具體地,在設(shè)備自身存儲(chǔ)的關(guān)于第一數(shù)據(jù)包的記錄項(xiàng)中添加第一數(shù)據(jù)包的轉(zhuǎn)發(fā)狀態(tài),例如,A設(shè)備有n個(gè)相鄰目標(biāo)設(shè)備,當(dāng)收到來(lái)自一個(gè)相鄰目標(biāo)設(shè)備M轉(zhuǎn)發(fā)的第一數(shù)據(jù)包時(shí),就在A設(shè)備中關(guān)于第一數(shù)據(jù)包的記錄項(xiàng)中標(biāo)記第一數(shù)據(jù)包已被M設(shè)備收到,直到第一數(shù)據(jù)包的記錄項(xiàng)中標(biāo)記第一數(shù)據(jù)包已被所有n個(gè)相鄰目標(biāo)設(shè)備收到。如果在規(guī)定的時(shí)間內(nèi),A設(shè)備中第一數(shù)據(jù)包的轉(zhuǎn)發(fā)狀態(tài)中不是所有n個(gè)相鄰目標(biāo)設(shè)備都已收到第一數(shù)據(jù)包,則A設(shè)備需要重新向n個(gè)相鄰目標(biāo)設(shè)備轉(zhuǎn)發(fā)第一數(shù)據(jù)包。A設(shè)備的n個(gè)相鄰目標(biāo)設(shè)備轉(zhuǎn)發(fā)的第一數(shù)據(jù)包中攜帶的MAC層源地址不同,這樣A設(shè)備就能獲知是哪一個(gè)相鄰目標(biāo)設(shè)備轉(zhuǎn)發(fā)的第一數(shù)據(jù)包。n個(gè)相鄰目標(biāo)設(shè)備轉(zhuǎn)發(fā)的第一數(shù)據(jù)包的源地址是相同的,此處源地址是指網(wǎng)絡(luò)層源地址。第一數(shù)據(jù)包在網(wǎng)絡(luò)中被轉(zhuǎn)發(fā)的過(guò)程中,數(shù)據(jù)包中的源地址是不變的,但是被不同的設(shè)備轉(zhuǎn)發(fā)之后,數(shù)據(jù)包中就會(huì)攜帶不同設(shè)備的MAC層源地址。步驟604、確定接收到的第一數(shù)據(jù)包是重復(fù)的數(shù)據(jù)包,將當(dāng)前接收到的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)與根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)相比較,如果當(dāng)前接收到的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)大于根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù),則執(zhí)行步驟605;否則,執(zhí)行步驟606。步驟605、判斷根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)是否為0,如果是,執(zhí)行步驟607,否則,執(zhí)行步驟608。步驟606、丟棄當(dāng)前接收到的第一數(shù)據(jù)包,結(jié)束。步驟607、將之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)更換為當(dāng)前接收到的第一數(shù)據(jù)包的跳數(shù)參數(shù),并將當(dāng)前接收到的第一數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā),結(jié)束。步驟608、判斷是否所有相鄰目標(biāo)設(shè)備都已接收到第一數(shù)據(jù)包,如果是,則執(zhí)行步驟609;否則,說(shuō)明相鄰目標(biāo)設(shè)備中有的設(shè)備可能沒(méi)有收到第一數(shù)據(jù)包,執(zhí)行步驟610。具體地,設(shè)備可以判斷自身存儲(chǔ)的關(guān)于第一數(shù)據(jù)包的記錄項(xiàng)中,第一數(shù)據(jù)包的轉(zhuǎn)發(fā)狀態(tài)是否標(biāo)記為所有相鄰目標(biāo)設(shè)備均已收到。步驟609、發(fā)送第一廣播命令給相鄰目標(biāo)設(shè)備,第一廣播命令中包括當(dāng)前接收到的第一數(shù)據(jù)包的源地址、序列號(hào)和第一數(shù)據(jù)包經(jīng)過(guò)當(dāng)前設(shè)備后的剩余跳數(shù)。第一廣播命令中的跳數(shù),即是第一數(shù)據(jù)包經(jīng)過(guò)當(dāng)前設(shè)備后的剩余跳數(shù),結(jié)束。步驟610、將存儲(chǔ)的廣播表中第一數(shù)據(jù)包的跳數(shù)參數(shù)更換為當(dāng)前接收到的第一數(shù)據(jù)包的跳數(shù)參數(shù),將當(dāng)前接收到的第一數(shù)據(jù)包的跳數(shù)減一后轉(zhuǎn)發(fā),結(jié)束。第四實(shí)施例中,在判斷目標(biāo)設(shè)備所存儲(chǔ)的關(guān)于第一數(shù)據(jù)包的記錄項(xiàng)中,標(biāo)記第一數(shù)據(jù)包已經(jīng)被所有相鄰目標(biāo)設(shè)備都收到時(shí),才發(fā)送第一廣播命令給相鄰目標(biāo)設(shè)備,這樣就避免了有的相鄰目標(biāo)設(shè)備沒(méi)有收到第一數(shù)據(jù)包卻收到了第一廣播命令的情況產(chǎn)生,并且通過(guò)發(fā)送第一廣播命令來(lái)代替第一數(shù)據(jù)包,能夠減少網(wǎng)絡(luò)中數(shù)據(jù)量的傳輸。第一廣播命令的格式可以如表一所示。表一、本發(fā)明各實(shí)施例中涉及到的第一廣播命令的格式表一中,源地址占用兩個(gè)字節(jié),序列號(hào)占用一個(gè)字節(jié),當(dāng)前接收到的第一數(shù)據(jù)包中的跳數(shù)經(jīng)過(guò)跳數(shù)處理之后的值占用一個(gè)字節(jié),或者當(dāng)前接收到的第一數(shù)據(jù)包中的跳數(shù)經(jīng)過(guò)跳數(shù)處理之后的值可以放在幀頭所在字段。表一中僅是給出第一廣播命令的一個(gè)例子,第一廣播命令還可以是其他的能夠在網(wǎng)絡(luò)中通過(guò)廣播方式傳輸?shù)拿罡袷?。如果是通過(guò)時(shí)間戳來(lái)唯一標(biāo)識(shí)一個(gè)數(shù)據(jù)包,則在第一廣播命令中需要攜帶當(dāng)前接收到的第一數(shù)據(jù)包的時(shí)間戳和當(dāng)前接收到的第一數(shù)據(jù)包中的跳數(shù)經(jīng)過(guò)跳數(shù)處理之后的值。如果是通過(guò)時(shí)間戳和源地址來(lái)唯一標(biāo)識(shí)一個(gè)數(shù)據(jù)包,則在第一廣播命令中需要攜帶當(dāng)前接收到的第一數(shù)據(jù)包的時(shí)間戳、源地址和當(dāng)前接收到的第一數(shù)據(jù)包中的跳數(shù)經(jīng)過(guò)跳數(shù)處理之后的值。在現(xiàn)有技術(shù)中,網(wǎng)絡(luò)中的某個(gè)設(shè)備發(fā)送給相鄰目標(biāo)設(shè)備的數(shù)據(jù)包,如果沒(méi)有被所有的相鄰目標(biāo)設(shè)備收到,則該設(shè)備會(huì)重新發(fā)送數(shù)據(jù)包,即進(jìn)行數(shù)據(jù)包的重傳。在本發(fā)明的各個(gè)實(shí)施例中,除了由于發(fā)送給相鄰目標(biāo)設(shè)備的數(shù)據(jù)包沒(méi)有被所有相鄰目標(biāo)設(shè)備收到引起重傳之外,對(duì)于重復(fù)收到的數(shù)據(jù)包,確定將重復(fù)收到的數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā)后,當(dāng)數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)大于根據(jù)之前存儲(chǔ)的跳數(shù)參數(shù)確定的該數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)時(shí),也會(huì)將重復(fù)收到的數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā),即進(jìn)行數(shù)據(jù)包的重傳。對(duì)重復(fù)收到的數(shù)據(jù)包進(jìn)行重新轉(zhuǎn)發(fā)時(shí),可以只轉(zhuǎn)發(fā)一次,例如,步驟207、507、607中,可以將第一數(shù)據(jù)包轉(zhuǎn)發(fā)一次(轉(zhuǎn)發(fā)一次是指轉(zhuǎn)發(fā)第一數(shù)據(jù)包給所有相鄰目標(biāo)設(shè)備),即使有的相鄰目標(biāo)設(shè)備收不到,也不再重傳。或者,對(duì)于重復(fù)收到的數(shù)據(jù)包,當(dāng)數(shù)據(jù)包中的跳數(shù)參數(shù)大于之前存儲(chǔ)的跳數(shù)參數(shù)時(shí),將設(shè)備自身關(guān)于第一數(shù)據(jù)包的重傳次數(shù)計(jì)數(shù)器清零,然后將重復(fù)收到的第一數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā)?;蛘?,對(duì)于重復(fù)收到的數(shù)據(jù)包,當(dāng)數(shù)據(jù)包中的跳數(shù)參數(shù)大于之前存儲(chǔ)的跳數(shù)參數(shù)時(shí),將重復(fù)收到的第一數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā),直到重傳次數(shù)達(dá)到最大值。上述各個(gè)實(shí)施例中,將跳數(shù)參數(shù)進(jìn)行存儲(chǔ)的步驟是在對(duì)第一數(shù)據(jù)包的跳數(shù)進(jìn)行跳數(shù)處理之后進(jìn)行的,即所存儲(chǔ)的跳數(shù)參數(shù)是當(dāng)前接收到的第一數(shù)據(jù)包的跳數(shù)減一之后的值,如果將跳數(shù)參數(shù)進(jìn)行存儲(chǔ)的步驟是在對(duì)第一數(shù)據(jù)包進(jìn)行跳數(shù)處理之前進(jìn)行的,則所存儲(chǔ)的跳數(shù)參數(shù)是當(dāng)前接收到的第一數(shù)據(jù)包的跳數(shù)的值,步驟505和605中,判斷根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)是否是0,具體可以是判斷之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)是否為1跳。如果將跳數(shù)參數(shù)進(jìn)行存儲(chǔ)的步驟是在對(duì)第一數(shù)據(jù)包進(jìn)行跳數(shù)處理之前進(jìn)行的,并且對(duì)數(shù)據(jù)包的跳數(shù)進(jìn)行加一操作,則所存儲(chǔ)的跳數(shù)參數(shù)是當(dāng)前接收到的第一數(shù)據(jù)包的跳數(shù)的值,步驟505和605中,判斷根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)是否是0,具體可以是判斷之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)是否為最大允許跳數(shù)減一。如果將跳數(shù)參數(shù)進(jìn)行存儲(chǔ)的步驟是在對(duì)第一數(shù)據(jù)包進(jìn)行跳數(shù)處理之后進(jìn)行的,并且對(duì)數(shù)據(jù)包的跳數(shù)進(jìn)行加一操作,則所存儲(chǔ)的跳數(shù)參數(shù)是當(dāng)前接收到的第一數(shù)據(jù)包的跳數(shù)加一的值,步驟505和605中,判斷根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)是否是0,具體可以是判斷之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)是否為最大允許跳數(shù)。如圖7所示為本發(fā)明廣播方法實(shí)施例五流程圖,該實(shí)施例五的步驟701-703與分別實(shí)施例四的步驟601-603相同。下面描述實(shí)施例五與實(shí)施例四存在不同之處的步驟。步驟704、確定接收到的第一數(shù)據(jù)包是重復(fù)的數(shù)據(jù)包,判斷當(dāng)前接收到的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)是否大于根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù),如果當(dāng)前接收到的第一數(shù)據(jù)包的能夠被轉(zhuǎn)發(fā)的次數(shù)大于根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù),則執(zhí)行步驟705;否則,執(zhí)行步驟706。步驟705、判斷是否所有相鄰目標(biāo)設(shè)備都已接收到第一數(shù)據(jù)包,如果是,則執(zhí)行步驟708;否則,說(shuō)明相鄰目標(biāo)設(shè)備中有的設(shè)備可能沒(méi)有收到第一數(shù)據(jù)包,執(zhí)行步驟707。具體地,設(shè)備可以判斷自身存儲(chǔ)的關(guān)于第一數(shù)據(jù)包的記錄項(xiàng)中,第一數(shù)據(jù)包的轉(zhuǎn)發(fā)狀態(tài)是否標(biāo)記為所有相鄰目標(biāo)設(shè)備均已收到。步驟706、丟棄當(dāng)前接收到的第一數(shù)據(jù)包,結(jié)束。步驟707、將存儲(chǔ)的廣播表中第一數(shù)據(jù)包的跳數(shù)參數(shù)更換為當(dāng)前接收到的第一數(shù)據(jù)包的跳數(shù)參數(shù),將當(dāng)前接收到的第一數(shù)據(jù)包的跳數(shù)減一后轉(zhuǎn)發(fā),結(jié)束。步驟708、發(fā)送第一廣播命令給相鄰目標(biāo)設(shè)備,第一廣播命令中包括當(dāng)前接收到的第一數(shù)據(jù)包的源地址、序列號(hào)和第一數(shù)據(jù)包經(jīng)過(guò)當(dāng)前設(shè)備后的跳數(shù)(即當(dāng)前接收到的第一數(shù)據(jù)包的跳數(shù)加一或減一之后的跳數(shù))。第一廣播命令中的跳數(shù),即是第一數(shù)據(jù)包經(jīng)過(guò)當(dāng)前設(shè)備后的跳數(shù),結(jié)束。實(shí)施例五中,當(dāng)前接收到的第一數(shù)據(jù)包的能夠被轉(zhuǎn)發(fā)的次數(shù)大于根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)時(shí),判斷是否所有相鄰目標(biāo)設(shè)備都已接收到第一數(shù)據(jù)包,而不是如同實(shí)施例四中那樣需要確定根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)不為0之后,才判斷是否所有相鄰目標(biāo)設(shè)備都已接收到第一數(shù)據(jù)包。因?yàn)橐粋€(gè)設(shè)備即使自身沒(méi)有發(fā)送過(guò)第一數(shù)據(jù)包給相鄰設(shè)備,但是相鄰設(shè)備有可能從其他設(shè)備中接收到第一數(shù)據(jù)包,如果一個(gè)設(shè)備接收到來(lái)自全部相鄰設(shè)備轉(zhuǎn)發(fā)的第一數(shù)據(jù)包之后,就可以確定所有相鄰設(shè)備都收到了第一數(shù)據(jù)包,自身也就無(wú)需再重新轉(zhuǎn)發(fā)第一數(shù)據(jù)包,而只需要發(fā)送第一廣播命令即可。網(wǎng)絡(luò)當(dāng)中的設(shè)備可以歸屬于某些預(yù)先設(shè)定的組,設(shè)備中有的設(shè)備可以是組播成員,有的設(shè)備是非組播成員。網(wǎng)絡(luò)中的各設(shè)備可以記錄自己所歸屬的組的標(biāo)識(shí)。對(duì)于這種網(wǎng)絡(luò),當(dāng)一個(gè)組播成員作為源設(shè)備,發(fā)起廣播數(shù)據(jù)包時(shí),廣播的組播數(shù)據(jù)包當(dāng)中除了帶有跳數(shù)和數(shù)據(jù)包的標(biāo)識(shí)符之外,還帶有兩個(gè)特有的用于組播的信息,一個(gè)稱為最大組播成員跳數(shù)間隔,另一個(gè)稱為非組播成員剩余跳數(shù)。另外,源設(shè)備發(fā)送的數(shù)據(jù)包當(dāng)中還帶有組的標(biāo)識(shí),因此接收設(shè)備能判斷自己是否是組播組成員設(shè)備。如圖8所示為本發(fā)明廣播方法實(shí)施例六流程圖,實(shí)施例六中所示的方法適用于網(wǎng)絡(luò)中的非組播組成員設(shè)備,包括:步驟801、接收第一數(shù)據(jù)包或第一廣播命令;步驟802、如果當(dāng)前接收到的第一數(shù)據(jù)包是重復(fù)的數(shù)據(jù)包,并且自身是非組播組成員設(shè)備,則比較當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令能夠被轉(zhuǎn)發(fā)的次數(shù)和根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)和/或非組播成員剩余跳數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù),如果當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令能夠被轉(zhuǎn)發(fā)的次數(shù)小于或等于根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)和/或非組播成員剩余跳數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù),丟棄當(dāng)前接收到的第一數(shù)據(jù)包。網(wǎng)絡(luò)中的設(shè)備,當(dāng)接收到一個(gè)數(shù)據(jù)包時(shí),對(duì)于非組播剩余跳數(shù)的處理與數(shù)據(jù)包中跳數(shù)類似,也是將非組播成員剩余跳數(shù)進(jìn)行加一或減一。所以與跳數(shù)參數(shù)類似,非組播成員剩余跳數(shù)參數(shù)可以是數(shù)據(jù)包中的非組播成員剩余跳數(shù)或者數(shù)據(jù)包中的非組播成員剩余跳數(shù)加一或減一之后的值。對(duì)于數(shù)據(jù)包中的最大組播成員跳數(shù)間隔,則不進(jìn)行處理。下面主要以對(duì)數(shù)據(jù)包中的跳數(shù)和非組播成員剩余跳數(shù)進(jìn)行減一為例進(jìn)行介紹。如圖9所示為本發(fā)明廣播方法實(shí)施例七流程圖,包括:步驟901、接收第一數(shù)據(jù)包。步驟902、判斷當(dāng)前接收到的第一數(shù)據(jù)包是否是重復(fù)的數(shù)據(jù)包,如果當(dāng)前接收到的第一數(shù)據(jù)包不是重復(fù)的數(shù)據(jù)包,則執(zhí)行步驟903;否則,執(zhí)行步驟904。步驟903、記錄第一數(shù)據(jù)包的標(biāo)識(shí)符,將第一數(shù)據(jù)包的跳數(shù)參數(shù)和非組播成員剩余跳數(shù)參數(shù)進(jìn)行存儲(chǔ),并將第一數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā),結(jié)束。步驟904、判斷當(dāng)前接收到的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)是否大于根據(jù)之前存儲(chǔ)的跳數(shù)參數(shù)和/或非組播成員剩余跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù),如果當(dāng)前接收到的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)大于根據(jù)之前存儲(chǔ)的跳數(shù)參數(shù)和/或非組播成員剩余跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù),則執(zhí)行步驟905;如果當(dāng)前接收到的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)小于或等于根據(jù)之前存儲(chǔ)的跳數(shù)參數(shù)和/或非組播成員剩余跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù),則執(zhí)行步驟906。步驟905、將之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)更換為當(dāng)前接收到的第一數(shù)據(jù)包的跳數(shù)參數(shù),將之前存儲(chǔ)的第一數(shù)據(jù)包的非組播成員剩余跳數(shù)參數(shù)更換為當(dāng)前接收到的第一數(shù)據(jù)包的非組播成員剩余跳數(shù)參數(shù),并將當(dāng)前接收到的第一數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā)。步驟906、丟棄當(dāng)前接收到的第一數(shù)據(jù)包,結(jié)束。步驟904中判斷當(dāng)前接收到的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)是否大于根據(jù)之前存儲(chǔ)的跳數(shù)參數(shù)和/或非組播成員剩余跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù),可以只根據(jù)跳數(shù)參數(shù)或非組播成員剩余跳數(shù)參數(shù),或者同時(shí)根據(jù)跳數(shù)參數(shù)和非組播成員剩余跳數(shù)參數(shù)進(jìn)行。例如,根據(jù)當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令中的跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)為A1,根據(jù)所述第一數(shù)據(jù)包或第一廣播命令中的非組播成員剩余參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)為B1,根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)為A2,根據(jù)之前存儲(chǔ)的非組播成員剩余跳數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)為B2。如果A1大于A2,并且B1大于B2,則確定當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令能夠被轉(zhuǎn)發(fā)的次數(shù)大于根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)和/或非組播成員剩余跳數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù);否則,確定當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令能夠被轉(zhuǎn)發(fā)的次數(shù)小于或等于根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)和/或非組播成員剩余跳數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)。或者,如果A1大于A2,或者B1大于B2,則確定當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令能夠被轉(zhuǎn)發(fā)的次數(shù)大于根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)和/或非組播成員剩余跳數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù);否則確定當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令能夠被轉(zhuǎn)發(fā)的次數(shù)小于或等于根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)和/或非組播成員剩余跳數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)。如圖10所示為本發(fā)明廣播方法實(shí)施例八流程圖,該實(shí)施例適用于網(wǎng)絡(luò)中組播組成員設(shè)備,包括:步驟1001、接收第一數(shù)據(jù)包或第一廣播命令;步驟1002、如果當(dāng)前接收到的第一數(shù)據(jù)包是重復(fù)的數(shù)據(jù)包,并且自身是組播組成員設(shè)備,則將當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令中的非組播剩余跳數(shù)的值更換成最大組播成員跳數(shù)間隔的值,比較當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令能夠被轉(zhuǎn)發(fā)的次數(shù)和根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)和/或非組播成員剩余跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù),如果當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令能夠被轉(zhuǎn)發(fā)的次數(shù)小于或等于根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)和/或非組播成員剩余跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù),丟棄當(dāng)前接收到的第一數(shù)據(jù)包。如圖11所示為本發(fā)明實(shí)施例中涉及到的又一種網(wǎng)絡(luò)結(jié)構(gòu),下面以圖11所示的網(wǎng)絡(luò)結(jié)構(gòu)為例來(lái)介紹實(shí)施例七的實(shí)現(xiàn)過(guò)程。圖11中,A、D、E和F設(shè)備屬于同一個(gè)組播組,B和C設(shè)備是非組播成員。組播組中的A設(shè)備發(fā)起組播過(guò)程,首先廣播方式發(fā)送數(shù)據(jù)包M,其中跳數(shù)設(shè)置為3,最大組播成員跳數(shù)間隔和非組播成員剩余跳數(shù)設(shè)置為2。B設(shè)備收到組播數(shù)據(jù)包后把跳數(shù)減一變成2,由于B設(shè)備不是組播成員,因此把數(shù)據(jù)包M中非組播成員剩余跳數(shù)減一后變成1,然后轉(zhuǎn)發(fā)數(shù)據(jù)包M。假設(shè)C設(shè)備由于干擾沒(méi)有收到來(lái)自于A設(shè)備的數(shù)據(jù)包M,但收到了來(lái)自B設(shè)備轉(zhuǎn)發(fā)的數(shù)據(jù)包M,于是C設(shè)備把跳數(shù)減一變成1,而數(shù)據(jù)包M中的非組播成員剩余跳數(shù)減一后變成0。這時(shí)C判斷是否繼續(xù)轉(zhuǎn)發(fā)組播數(shù)據(jù)包,因?yàn)榉墙M播成員剩余跳數(shù)變成0,所以C設(shè)備不再轉(zhuǎn)發(fā)并丟棄當(dāng)前接收到的數(shù)據(jù)包M,但C設(shè)備會(huì)在廣播表當(dāng)中記錄收到的數(shù)據(jù)包M的記錄項(xiàng),并且記錄數(shù)據(jù)包M的跳數(shù)參數(shù)(即數(shù)據(jù)包M的跳數(shù)減一之后的值)和非組播成員剩余跳數(shù)參數(shù)(即非組播成員剩余跳數(shù)減一之后的值)。這時(shí)A設(shè)備重新進(jìn)行廣播,C設(shè)備收到來(lái)自A設(shè)備廣播的數(shù)據(jù)M包,把數(shù)據(jù)包M中的跳數(shù)減一變成2,將非組播成員剩余跳數(shù)減一變成1。如果按照現(xiàn)有技術(shù),C認(rèn)為收到的是重復(fù)數(shù)據(jù)包會(huì)將數(shù)據(jù)包M直接丟棄,但本發(fā)明實(shí)施例中,C設(shè)備需要比較當(dāng)前接收到的數(shù)據(jù)包M能夠被轉(zhuǎn)發(fā)的次數(shù)與根據(jù)之前存儲(chǔ)的數(shù)據(jù)包M的跳數(shù)參數(shù)和/或非組播成員剩余跳數(shù)參數(shù)確定的數(shù)據(jù)包M能夠被轉(zhuǎn)發(fā)的次數(shù),C設(shè)備經(jīng)過(guò)比較厚發(fā)現(xiàn)收到的重復(fù)數(shù)據(jù)包M的跳數(shù)參數(shù)和非組播成員剩余跳數(shù)參數(shù)分別大于之前存儲(chǔ)的數(shù)據(jù)包M的跳數(shù)參數(shù)和非組播成員剩余跳數(shù)參數(shù),因此C設(shè)備將存儲(chǔ)的數(shù)據(jù)包M的跳數(shù)參數(shù)和非組播成員剩余跳數(shù)參數(shù)分別更新為2和1,即更換為當(dāng)前接收到的數(shù)據(jù)包M的跳數(shù)參數(shù)和非組播成員剩余跳數(shù)參數(shù)的值,并且轉(zhuǎn)發(fā)數(shù)據(jù)包M。這時(shí)D設(shè)備收到C設(shè)備廣播的組播數(shù)據(jù)包當(dāng)中跳數(shù)為2,非組播成員剩余跳數(shù)為1,由于D設(shè)備是組播組成員設(shè)備,因此D設(shè)備會(huì)更新數(shù)據(jù)包M當(dāng)中的非組播成員剩余跳數(shù)為當(dāng)前接收到的數(shù)據(jù)包M中的最大組播成員跳數(shù)間隔的值,即2,將非組播成員剩余跳數(shù)減一后變?yōu)?,而跳數(shù)減一變?yōu)?,經(jīng)過(guò)判斷,D設(shè)備可以確定當(dāng)前接收到的數(shù)據(jù)包M能夠被轉(zhuǎn)發(fā)的次數(shù)大于根據(jù)之前存儲(chǔ)的數(shù)據(jù)包M的跳數(shù)參數(shù)和/或非組播成員剩余跳數(shù)參數(shù)確定的數(shù)據(jù)包M能夠被轉(zhuǎn)發(fā)的次數(shù),所以D設(shè)備繼續(xù)轉(zhuǎn)發(fā)數(shù)據(jù)包M到E設(shè)備和F設(shè)備。E設(shè)備和F設(shè)備收到數(shù)據(jù)包M之后,也會(huì)更新數(shù)據(jù)包M當(dāng)中的非組播成員剩余跳數(shù)為當(dāng)前接收到的數(shù)據(jù)包M中的最大組播成員跳數(shù)間隔的值,即2,然后將數(shù)據(jù)包M的非組播成員剩余跳數(shù)減一,然后再轉(zhuǎn)發(fā)。最后所有組播組成員設(shè)備都能收到數(shù)據(jù)包M。如圖12所示為本發(fā)明廣播方法實(shí)施例九流程圖,包括:步驟1201、接收第一數(shù)據(jù)包;步驟1202、判斷預(yù)先存儲(chǔ)的廣播表中是否存在與第一數(shù)據(jù)包的標(biāo)識(shí)符相同的記錄項(xiàng),如果預(yù)先存儲(chǔ)的廣播表中不存在與第一數(shù)據(jù)包的標(biāo)識(shí)符相同的記錄項(xiàng),則執(zhí)行步驟1203;否則執(zhí)行步驟1204。步驟1203、確定第一數(shù)據(jù)包是新的數(shù)據(jù)包,在所述廣播表中記錄第一數(shù)據(jù)包的標(biāo)識(shí)符,并且將第一數(shù)據(jù)包的跳數(shù)參數(shù)和非組播成員剩余跳數(shù)參數(shù)進(jìn)行存儲(chǔ),再將第一數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā),結(jié)束。步驟1204、確定第一數(shù)據(jù)包是重復(fù)的數(shù)據(jù)包,判斷當(dāng)前接收到的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)是否大于根據(jù)之前存儲(chǔ)的跳數(shù)參數(shù)和/或非組播成員剩余跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù),如果當(dāng)前接收到的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)大于根據(jù)之前存儲(chǔ)的跳數(shù)參數(shù)和/或非組播成員剩余跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù),則執(zhí)行步驟1205;如果當(dāng)前接收到的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)小于或等于根據(jù)之前存儲(chǔ)的跳數(shù)參數(shù)和/或非組播成員剩余跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù),則執(zhí)行步驟1206。步驟1205、判斷根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)或非組播成員剩余參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)是否為0,如果是,則說(shuō)明之前收到的第一數(shù)據(jù)包沒(méi)有被轉(zhuǎn)發(fā)過(guò),則執(zhí)行步驟1207;否則,說(shuō)明之前收到的第一數(shù)據(jù)包被轉(zhuǎn)發(fā)過(guò),執(zhí)行步驟1208。步驟1206、丟棄當(dāng)前接收到的第一數(shù)據(jù)包,結(jié)束。步驟1207、將之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)和非組播成員剩余跳數(shù)參數(shù)分別更換為當(dāng)前接收到的第一數(shù)據(jù)包的跳數(shù)參數(shù)和非組播成員剩余跳數(shù)參數(shù),并將當(dāng)前接收到的第一數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā),結(jié)束。步驟1208、發(fā)送第一廣播命令給相鄰目標(biāo)設(shè)備,所述第一廣播命令中包括當(dāng)前接收到的第一數(shù)據(jù)包的源地址、序列號(hào)和當(dāng)前接收到的第一數(shù)據(jù)包中的跳數(shù)以及非組播成員剩余跳數(shù)經(jīng)過(guò)跳數(shù)處理后的值。第一廣播命令中的跳數(shù)和非組播成員剩余跳數(shù)分別是第一數(shù)據(jù)包中的跳數(shù)和非組播成員剩余跳數(shù)經(jīng)過(guò)跳數(shù)減一之后的值。其他目標(biāo)設(shè)備收到第一廣播命令之后的處理方式與接收到數(shù)據(jù)包之后的處理方式類似。如圖13所示為本發(fā)明廣播方法實(shí)施例十流程圖,包括:步驟1301、接收第一數(shù)據(jù)包;步驟1302、判斷預(yù)先存儲(chǔ)的廣播表中是否存在與第一數(shù)據(jù)包的標(biāo)識(shí)符相同的記錄項(xiàng),如果預(yù)先存儲(chǔ)的廣播表中不存在與第一數(shù)據(jù)包的標(biāo)識(shí)符相同的記錄項(xiàng),則執(zhí)行步驟1303;否則,執(zhí)行步驟1304。步驟1303、確定接收到的第一數(shù)據(jù)包是新的數(shù)據(jù)包,在所述廣播表中記錄第一數(shù)據(jù)包的標(biāo)識(shí)符,并且將第一數(shù)據(jù)包的跳數(shù)參數(shù)和非組播成員剩余跳數(shù)參數(shù)進(jìn)行存儲(chǔ),再將第一數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā),結(jié)束。步驟1304、確定接收到的第一數(shù)據(jù)包是重復(fù)的數(shù)據(jù)包,判斷當(dāng)前接收到的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)是否大于根據(jù)之前存儲(chǔ)的跳數(shù)參數(shù)和/或非組播成員剩余跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù),如果當(dāng)前接收到的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)大于根據(jù)之前存儲(chǔ)的跳數(shù)參數(shù)和/或非組播成員剩余跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù),則執(zhí)行步驟1305;如果當(dāng)前接收到的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)小于或等于根據(jù)之前存儲(chǔ)的跳數(shù)參數(shù)和/或非組播成員剩余跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù),則執(zhí)行步驟1306。步驟1305、判斷根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)或非組播成員剩余跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)是否為0,如果是,執(zhí)行步驟1307,否則,執(zhí)行步驟1308。步驟1306、丟棄當(dāng)前接收到的第一數(shù)據(jù)包,結(jié)束。步驟1307、將之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)和非組播成員剩余跳數(shù)參數(shù)分別更換為當(dāng)前接收到的第一數(shù)據(jù)包的跳數(shù)參數(shù)和非組播成員剩余跳數(shù)參數(shù),并將當(dāng)前接收到的第一數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā),結(jié)束。步驟1308、判斷是否所有相鄰目標(biāo)設(shè)備都已接收到第一數(shù)據(jù)包,如果是,則執(zhí)行步驟1309;否則,說(shuō)明相鄰目標(biāo)設(shè)備中有的設(shè)備可能沒(méi)有收到第一數(shù)據(jù)包,執(zhí)行步驟1310。具體地,設(shè)備可以判斷自身存儲(chǔ)的關(guān)于第一數(shù)據(jù)包的記錄項(xiàng)中,第一數(shù)據(jù)包的轉(zhuǎn)發(fā)狀態(tài)是否標(biāo)記為所有相鄰目標(biāo)設(shè)備均已收到。步驟1309、發(fā)送第一廣播命令給相鄰目標(biāo)設(shè)備,第一廣播命令中包括當(dāng)前接收到的第一數(shù)據(jù)包的源地址、序列號(hào)和第一數(shù)據(jù)包經(jīng)過(guò)當(dāng)前設(shè)備后的剩余跳數(shù)以及非組播成員剩余跳數(shù)經(jīng)過(guò)跳數(shù)處理后的值,結(jié)束。步驟1310、將存儲(chǔ)的廣播表中第一數(shù)據(jù)包的跳數(shù)參數(shù)和非組播成員剩余跳數(shù)參數(shù)更換為當(dāng)前接收到的第一數(shù)據(jù)包的跳數(shù)參數(shù)和非組播成員剩余跳數(shù)參數(shù),將當(dāng)前接收到的第一數(shù)據(jù)包的跳數(shù)減一并且非組播成員剩余跳數(shù)減一后轉(zhuǎn)發(fā),結(jié)束。如圖14所示為本發(fā)明廣播方法實(shí)施例十一流程圖,實(shí)施例十一與實(shí)施例十相比,步驟1401-步驟1403均分別與步驟1301-1303相同,存在區(qū)別之處的步驟包括:步驟1404、確定接收到的第一數(shù)據(jù)包是重復(fù)的數(shù)據(jù)包,判斷當(dāng)前接收到的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)是否大于根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)和/或非組播成員剩余跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù),如果當(dāng)前接收到的第一數(shù)據(jù)包的能夠被轉(zhuǎn)發(fā)的次數(shù)大于根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)和/或非組播成員剩余跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù),則執(zhí)行步驟1405;否則,執(zhí)行步驟1406。步驟1405、判斷是否所有相鄰目標(biāo)設(shè)備都已接收到第一數(shù)據(jù)包,如果是,則執(zhí)行步驟1406;否則,說(shuō)明相鄰目標(biāo)設(shè)備中有的設(shè)備可能沒(méi)有收到第一數(shù)據(jù)包,執(zhí)行步驟1407。具體地,設(shè)備可以判斷自身存儲(chǔ)的關(guān)于第一數(shù)據(jù)包的記錄項(xiàng)中,第一數(shù)據(jù)包的轉(zhuǎn)發(fā)狀態(tài)是否標(biāo)記為所有相鄰目標(biāo)設(shè)備均已收到。步驟1406、丟棄當(dāng)前接收到的第一數(shù)據(jù)包。步驟1407、將存儲(chǔ)的廣播表中第一數(shù)據(jù)包的跳數(shù)參數(shù)更換為當(dāng)前接收到的第一數(shù)據(jù)包的跳數(shù)參數(shù),將第一數(shù)據(jù)包中的非組播成員剩余跳數(shù)參數(shù)更換為當(dāng)前接收到的第一數(shù)據(jù)包的非組播成員剩余跳數(shù)參數(shù),將當(dāng)前接收到的第一數(shù)據(jù)包的跳數(shù)減一,并將第一數(shù)據(jù)包的非組播成員剩余跳數(shù)減一后轉(zhuǎn)發(fā),結(jié)束。步驟1408、發(fā)送第一廣播命令給相鄰目標(biāo)設(shè)備,結(jié)束。網(wǎng)絡(luò)中的有的設(shè)備能夠接收并識(shí)別第一廣播命令中的源地址、序列號(hào)和跳數(shù),但是不能轉(zhuǎn)發(fā)第一廣播命令。對(duì)于這種設(shè)備,如果按照前述各實(shí)施例的方法,需要轉(zhuǎn)發(fā)或發(fā)送第一廣播命令時(shí),即發(fā)送或轉(zhuǎn)發(fā)與第一廣播命令中的標(biāo)識(shí)符相同的數(shù)據(jù)包本身,發(fā)送或轉(zhuǎn)發(fā)的數(shù)據(jù)包中的跳數(shù)為第一廣播命令的跳數(shù)。在實(shí)際應(yīng)用中,網(wǎng)絡(luò)中可能有的設(shè)備支持本發(fā)明實(shí)施例提供的方法中對(duì)于數(shù)據(jù)包的處理,有的設(shè)備不支持,對(duì)于支持本發(fā)明實(shí)施例提供的方法中對(duì)于數(shù)據(jù)包的處理的設(shè)備,在收到不支持本發(fā)明實(shí)施例中相關(guān)數(shù)據(jù)包處理的設(shè)備發(fā)送過(guò)來(lái)的數(shù)據(jù)包時(shí),同樣可以按照以上各實(shí)施例中所提供的方法進(jìn)行。前述各實(shí)施例中主要描述網(wǎng)絡(luò)中的設(shè)備在接收到數(shù)據(jù)包時(shí)的處理方法,對(duì)于網(wǎng)絡(luò)中主動(dòng)發(fā)起并發(fā)生數(shù)據(jù)包的源設(shè)備,在發(fā)送數(shù)據(jù)包時(shí),可以記錄數(shù)據(jù)包的標(biāo)識(shí)符和跳數(shù)參數(shù)。源設(shè)備在收到一個(gè)數(shù)據(jù)包之后,查找自身的廣播表中存儲(chǔ)的關(guān)于已發(fā)送的數(shù)據(jù)包的記錄項(xiàng),如果查找到與自身發(fā)送的數(shù)據(jù)包的標(biāo)識(shí)符相同的記錄項(xiàng),則標(biāo)記一個(gè)相鄰目標(biāo)設(shè)備收到源設(shè)備發(fā)送的數(shù)據(jù)包。如果在規(guī)定的時(shí)間內(nèi),有的相鄰目標(biāo)設(shè)備沒(méi)有收到源設(shè)備發(fā)送的數(shù)據(jù)包則源設(shè)備會(huì)重新發(fā)起并發(fā)送數(shù)據(jù)包。設(shè)備在接收到第一廣播命令之后的處理方法與接收到數(shù)據(jù)包之后的處理方法類似,此處不再贅述。如圖15所示為本發(fā)明廣播網(wǎng)絡(luò)中的設(shè)備實(shí)施例一結(jié)構(gòu)示意圖,該設(shè)備包括接收模塊11、第一判斷模塊12、第一比較模塊13和第一數(shù)據(jù)處理模塊14,第一判斷模塊12分別與接收模塊11和第一比較模塊13比較,第一數(shù)據(jù)處理模塊14與第一比較模塊13連接。該設(shè)備的工作原理為:接收模塊11接收第一數(shù)據(jù)包或第一廣播命令,第一判斷模塊12判斷接收模塊11當(dāng)前接收到的第一數(shù)據(jù)包是否是重復(fù)的數(shù)據(jù)包,當(dāng)?shù)谝慌袛嗄K確定當(dāng)前接收到的第一數(shù)據(jù)包是重復(fù)的數(shù)據(jù)包時(shí),第一比較模塊13比較當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令能夠被轉(zhuǎn)發(fā)的次數(shù)和根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)確定的該第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù),如果第一比較模塊13比較的結(jié)果為當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令能夠被轉(zhuǎn)發(fā)的次數(shù)小于或等于根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)確定的所述第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù),則第一數(shù)據(jù)處理模塊14丟棄當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令。如圖15所示的設(shè)備還可以包括一個(gè)第一存儲(chǔ)模塊,用于當(dāng)當(dāng)前接收到的第一數(shù)據(jù)包不是重復(fù)的數(shù)據(jù)包時(shí),存儲(chǔ)當(dāng)前接收到的第一數(shù)據(jù)包攜帶的標(biāo)識(shí)符和跳數(shù)參數(shù),并用于存儲(chǔ)之前接收到的第一數(shù)據(jù)包的標(biāo)識(shí)符和跳數(shù)參數(shù)。圖15中第一判斷模塊12具體用于根據(jù)接收模塊11當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令攜帶的的標(biāo)識(shí)符,判斷當(dāng)前接收到的第一數(shù)據(jù)包是否是重復(fù)的數(shù)據(jù)包,標(biāo)識(shí)符由數(shù)據(jù)包的源地址和序列號(hào)組成,或者所述標(biāo)識(shí)符為數(shù)據(jù)包的時(shí)間戳,或所述標(biāo)識(shí)符由數(shù)據(jù)包的時(shí)間戳和源地址組成。如果當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令能夠被轉(zhuǎn)發(fā)的次數(shù)大于根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)確定的所述第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù),則第一數(shù)據(jù)處理模塊14更換第一存儲(chǔ)模塊中之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)為當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令的跳數(shù)參數(shù),轉(zhuǎn)發(fā)當(dāng)前接收到的第一數(shù)據(jù)包或發(fā)送所述第一廣播命令。第一數(shù)據(jù)處理模塊14可以包括第一數(shù)據(jù)處理子單元和第二數(shù)據(jù)處理子單元(圖15中未示出),第一數(shù)據(jù)子單元判斷根據(jù)第一存儲(chǔ)模塊之前存儲(chǔ)的跳數(shù)參數(shù)確定的所述第一數(shù)據(jù)包的能夠被轉(zhuǎn)發(fā)的次數(shù)是否為0;如果根據(jù)第一存儲(chǔ)模塊之前存儲(chǔ)的跳數(shù)參數(shù)確定的所述第一數(shù)據(jù)包的能夠被轉(zhuǎn)發(fā)的次數(shù)為0,轉(zhuǎn)發(fā)當(dāng)前接收到的第一數(shù)據(jù)包;如果根據(jù)第一存儲(chǔ)模塊之前存儲(chǔ)的跳數(shù)參數(shù)確定的所述第一數(shù)據(jù)包的能夠被轉(zhuǎn)發(fā)的次數(shù)不為0,發(fā)送第一廣播命令。第二數(shù)據(jù)處理子單元判斷相鄰設(shè)備是否全部接收到所述第一數(shù)據(jù)包或第一廣播命令;如果相鄰設(shè)備全部接收到所述第一數(shù)據(jù)包或第一廣播命令,發(fā)送第一廣播命令;如果相鄰設(shè)備沒(méi)有全部接收到所述第一數(shù)據(jù)包或第一廣播命令,發(fā)送當(dāng)前接收到的第一數(shù)據(jù)包。如圖16所示為本發(fā)明廣播網(wǎng)絡(luò)中的設(shè)備實(shí)施例二結(jié)構(gòu)示意圖,該設(shè)備包括接收模塊11、第一判斷模塊12、第二比較模塊15和第二數(shù)據(jù)處理模塊16,第一判斷模塊12分別與接收模塊11和第二比較模塊15連接,第二數(shù)據(jù)處理模塊16和第二比較模塊15連接。該設(shè)備的工作原理為:接收模塊11接收第一數(shù)據(jù)包或第一廣播命令,第一判斷模塊12判斷接收模塊11當(dāng)前接收到的第一數(shù)據(jù)包是否是重復(fù)的數(shù)據(jù)包,如果第一判斷模塊確定接收模塊11當(dāng)前接收到的第一數(shù)據(jù)包是重復(fù)的數(shù)據(jù)包,則第二比較模塊15比較當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令能夠被轉(zhuǎn)發(fā)的次數(shù)和根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)和/或非組播成員剩余跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù),如果第二比較模塊15的比較結(jié)果為當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令能夠被轉(zhuǎn)發(fā)的次數(shù)小于或等于根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)和/或非組播成員剩余跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù),則第二數(shù)據(jù)處理模塊16丟棄當(dāng)前接收到的第一數(shù)據(jù)包。如圖17所示為本發(fā)明廣播網(wǎng)絡(luò)中的設(shè)備實(shí)施例三結(jié)構(gòu)示意圖,該設(shè)備在圖16所示設(shè)備的基礎(chǔ)上還包括第二判斷模塊17和第二存儲(chǔ)模塊18。第二判斷模塊17用于根據(jù)接收模塊11當(dāng)前接收到的第一數(shù)據(jù)包中攜帶的組播組標(biāo)識(shí)判斷自身是否是組播組成員設(shè)備;如果圖17所示的設(shè)備自身是組播組成員設(shè)備,則第二數(shù)據(jù)處理模塊16在第二比較模塊15比較當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令能夠被轉(zhuǎn)發(fā)的次數(shù)和根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)和/或非組播成員剩余跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)之前,將當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令中的非組播剩余跳數(shù)的值更換成最大組播成員跳數(shù)間隔的值。在將當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令中的非組播剩余跳數(shù)的值更換成最大組播成員跳數(shù)間隔的值后,第二比較模塊15可以參照前文對(duì)圖11所示的網(wǎng)絡(luò)架構(gòu)中D設(shè)備進(jìn)行的方法進(jìn)行比較,此處不再贅述。如果圖17所示的設(shè)備自身不是組播組成員設(shè)備,則第二比較模塊15可以直接比較當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令能夠被轉(zhuǎn)發(fā)的次數(shù)和根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)和/或非組播成員剩余跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù);當(dāng)當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令能夠被轉(zhuǎn)發(fā)的次數(shù)小于或等于根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)和/或非組播成員剩余跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)時(shí),第二數(shù)據(jù)處理模塊16丟棄當(dāng)前接收到的第一數(shù)據(jù)包。第二存儲(chǔ)模塊18用于當(dāng)當(dāng)前接收到的第一數(shù)據(jù)包不是重復(fù)的數(shù)據(jù)包時(shí),存儲(chǔ)當(dāng)前接收到的第一數(shù)據(jù)包攜帶的標(biāo)識(shí)符、跳數(shù)參數(shù)和非組播成員剩余跳數(shù)參數(shù),并存儲(chǔ)之前接收到的第一數(shù)據(jù)包的標(biāo)識(shí)符、跳數(shù)參數(shù)和非組播成員剩余跳數(shù)參數(shù)。第二比較模塊15比較當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令能夠被轉(zhuǎn)發(fā)的次數(shù)和根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)和/或非組播成員剩余跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)具體為:根據(jù)當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令中的跳數(shù)參數(shù)確定第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)A1,根據(jù)所述第一數(shù)據(jù)包或第一廣播命令中的非組播成員剩余跳數(shù)參數(shù)確定第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)B1,根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)確定第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)A2,根據(jù)之前存儲(chǔ)的非組播成員剩余跳數(shù)參數(shù)確定第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)B2;如果A1大于A2,并且B1大于B2,則確定當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令能夠被轉(zhuǎn)發(fā)的次數(shù)大于根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)和/或非組播成員剩余跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù);或者如果A1大于A2,或者B1大于B2,則確定當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令能夠被轉(zhuǎn)發(fā)的次數(shù)大于根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)和/或非組播成員剩余跳數(shù)參數(shù)確定的第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)。當(dāng)?shù)诙容^模塊15的比較結(jié)果為當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令能夠被轉(zhuǎn)發(fā)的次數(shù)大于根據(jù)之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)確定的所述第一數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)時(shí),第二數(shù)據(jù)處理模塊16更換第二存儲(chǔ)模塊18之前存儲(chǔ)的第一數(shù)據(jù)包的跳數(shù)參數(shù)為當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令的跳數(shù)參數(shù),更換第二存儲(chǔ)模塊18之前存儲(chǔ)的第一數(shù)據(jù)包的非組播成員剩余跳數(shù)參數(shù)為當(dāng)前接收到的第一數(shù)據(jù)包或第一廣播命令的非組播成員剩余跳數(shù)參數(shù),轉(zhuǎn)發(fā)當(dāng)前接收到的第一數(shù)據(jù)包或發(fā)送所述第一廣播命令。第二數(shù)據(jù)處理模塊16可以包括第三數(shù)據(jù)處理子單元和第四數(shù)據(jù)處理子單元(圖17中未示出),第三數(shù)據(jù)處理子單元判斷根據(jù)第二存儲(chǔ)模塊18之前存儲(chǔ)的跳數(shù)參數(shù)和/或非組播成員剩余跳數(shù)參數(shù)確定的所述第一數(shù)據(jù)包的能夠被轉(zhuǎn)發(fā)的次數(shù)是否為0;如果根據(jù)之前存儲(chǔ)的跳數(shù)參數(shù)和/或非組播成員剩余跳數(shù)參數(shù)確定的所述第一數(shù)據(jù)包的能夠被轉(zhuǎn)發(fā)的次數(shù)為0,轉(zhuǎn)發(fā)當(dāng)前接收到的第一數(shù)據(jù)包;如果根據(jù)之前存儲(chǔ)的跳數(shù)參數(shù)和/或非組播成員剩余跳數(shù)參數(shù)確定的所述第一數(shù)據(jù)包的能夠被轉(zhuǎn)發(fā)的次數(shù)不為0,發(fā)送第一廣播命令。第四數(shù)據(jù)處理子單元判斷相鄰設(shè)備是否全部接收到所述第一數(shù)據(jù)包或第一廣播命令;如果相鄰設(shè)備全部接收到所述第一數(shù)據(jù)包或第一廣播命令,第二數(shù)據(jù)處理模塊16發(fā)送第一廣播命令;如果相鄰設(shè)備沒(méi)有全部接收到所述第一數(shù)據(jù)包或第一廣播命令,第二數(shù)據(jù)處理模塊16發(fā)送當(dāng)前接收到的第一數(shù)據(jù)包。本發(fā)明實(shí)施例中提供的方法及設(shè)備,對(duì)于重復(fù)收到的數(shù)據(jù)包不是直接丟棄,而是需要進(jìn)一步判斷當(dāng)前接收到的數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)與根據(jù)之前存儲(chǔ)的該數(shù)據(jù)包的跳數(shù)參數(shù),或者根據(jù)之前存儲(chǔ)的該數(shù)據(jù)包的非組播成員剩余跳數(shù)參數(shù)確定的該數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù),如果當(dāng)前接收到的數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù)大于根據(jù)之前存儲(chǔ)的跳數(shù)參數(shù)或非組播成員剩余跳數(shù)參數(shù)確定的該數(shù)據(jù)包能夠被轉(zhuǎn)發(fā)的次數(shù),則需要將該數(shù)據(jù)包轉(zhuǎn)發(fā),或發(fā)送第一廣播命令給相鄰設(shè)備,這樣可以提高廣播方式發(fā)送數(shù)據(jù)包的可靠性,避免了有的廣播網(wǎng)絡(luò)中某些設(shè)備收不到數(shù)據(jù)包的情況。本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過(guò)程序指令相關(guān)的硬件來(lái)完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。最后應(yīng)說(shuō)明的是:以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案而非對(duì)其進(jìn)行限制,盡管參照較佳實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而這些修改或者等同替換亦不能使修改后的技術(shù)方案脫離本發(fā)明技術(shù)方案的精神和范圍。為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步地詳細(xì)描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部份實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其它實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
      當(dāng)前第1頁(yè)1 2 3 
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1