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