1.無(wú)線自組織網(wǎng)絡(luò)中低開(kāi)銷的可靠組播路由方法,包括:
(1)網(wǎng)絡(luò)中的源節(jié)點(diǎn)將組播分組進(jìn)行緩存,并將分組封裝于可靠組播報(bào)文RM中進(jìn)行發(fā)送;
(2)對(duì)接收到的可靠組播報(bào)文RM進(jìn)行處理:
(2a)網(wǎng)絡(luò)中的其它節(jié)點(diǎn)接收可靠組播報(bào)文RM,并對(duì)報(bào)文中封裝的組播分組進(jìn)行緩存;
(2b)在規(guī)定的時(shí)間間隔后,接收到可靠組播報(bào)文RM的節(jié)點(diǎn)根據(jù)報(bào)文中的分組ID更新緩存中的丟失組播分組記錄;
(2c)接收到RM報(bào)文的節(jié)點(diǎn)判斷RM報(bào)文中是否有自己的丟失分組ID,若有,則執(zhí)行步驟(2d),若沒(méi)有,則執(zhí)行步驟(2e);
(2d)等待丟失分組,若在規(guī)定的時(shí)間間隔后仍未收到這些丟失分組,則將丟失分組ID封裝為組播分組恢復(fù)報(bào)文MMR并發(fā)送給發(fā)送可靠組播報(bào)文RM的節(jié)點(diǎn);
(2e)判斷自己是否為可靠組播報(bào)文RM中組播分組所屬的組播組成員,若不是,則丟棄此RM報(bào)文,返回步驟(2a),否則,執(zhí)行步驟(2f);
(2f)判斷自己是否收到過(guò)此RM報(bào)文中的組播分組,若有,則丟棄此RM報(bào)文,否則,將此RM報(bào)文中的組播分組重新封裝為新的RM報(bào)文并發(fā)送,返回步驟(2a);
(3)發(fā)送組播分組恢復(fù)報(bào)文MMR:
(3a)網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)刷新緩存中的丟失組播分組記錄;
(3b)每個(gè)節(jié)點(diǎn)判斷自己緩存中的丟失組播分組記錄是否為空,若是,則返回步驟(3a),否則,執(zhí)行步驟(3c);
(3c)每個(gè)節(jié)點(diǎn)判斷自己是否長(zhǎng)時(shí)間未與鄰居節(jié)點(diǎn)進(jìn)行報(bào)文的交互,若是,則執(zhí)行步驟(3d),否則,返回步驟(3a);
(3d)長(zhǎng)時(shí)間未與鄰居節(jié)點(diǎn)進(jìn)行報(bào)文交互的節(jié)點(diǎn)在規(guī)定的時(shí)間間隔后將自己丟失的組播分組的ID封裝為組播分組恢復(fù)報(bào)文MMR進(jìn)行廣播發(fā)送,返回步驟(3a);
(4)對(duì)接收到的組播分組恢復(fù)報(bào)文MMR進(jìn)行處理:
(4a)網(wǎng)絡(luò)中的其它節(jié)點(diǎn)接收到組播分組恢復(fù)報(bào)文MMR,在規(guī)定的時(shí)間間隔后,根據(jù)報(bào)文中的分組ID更新緩存中的丟失組播分組記錄;
(4b)接收到組播分組恢復(fù)報(bào)文MMR的節(jié)點(diǎn)判斷MMR報(bào)文的接收地址是否為自己或廣播的地址,若不是,則丟棄報(bào)文,返回步驟(4a),否則,執(zhí)行步驟(4c);
(4c)接收到組播分組恢復(fù)報(bào)文MMR的節(jié)點(diǎn)判斷緩存中是否有發(fā)送MMR報(bào)文節(jié)點(diǎn)的丟失分組,若不是,則丟棄報(bào)文,返回步驟(4a),否則,執(zhí)行步驟(4d);
(4d)接收到組播分組恢復(fù)報(bào)文MMR的節(jié)點(diǎn)判斷MMR報(bào)文的接收地址是否為自己的地址,若不是,則執(zhí)行步驟(4e),否則,執(zhí)行步驟(4f);
(4e)接收到組播分組恢復(fù)報(bào)文MMR的節(jié)點(diǎn)在規(guī)定的時(shí)間間隔后,如果未檢測(cè)到鄰居節(jié)點(diǎn)給發(fā)送此MMR報(bào)文的節(jié)點(diǎn)發(fā)送了封裝其丟失組播分組的可靠組播報(bào)文RM,則將此丟失分組封裝于RM報(bào)文中進(jìn)行發(fā)送,返回步驟(4a);
(4f)接收到組播分組恢復(fù)報(bào)文MMR的節(jié)點(diǎn)判斷緩存中待回復(fù)組播分組記錄中是否有發(fā)送MMR報(bào)文的節(jié)點(diǎn)的丟失分組,若是,則丟棄此MMR報(bào)文,返回步驟(4a),否則,執(zhí)行步驟(4g);
(4g)接收到組播分組恢復(fù)報(bào)文MMR的節(jié)點(diǎn)在規(guī)定的時(shí)間間隔后,將發(fā)送此MMR報(bào)文的節(jié)點(diǎn)的丟失分組封裝于可靠組播報(bào)文RM中進(jìn)行發(fā)送,返回步驟(4a)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于:步驟(1)中可靠組播報(bào)文RM中封裝待發(fā)送組播分組和最近收到組播分組的ID,是指組播分組的源節(jié)點(diǎn)地址、序號(hào)和組播地址。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于:步驟(2b)、(2d)、(3d)、(4a)、(4e)和(4g)中的時(shí)間間隔服從均勻分布,取值區(qū)間是根據(jù)網(wǎng)絡(luò)中的平均丟包率和組播分組平均到達(dá)速率進(jìn)行設(shè)定。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于(2b)中接收到可靠組播報(bào)文RM的節(jié)點(diǎn)根據(jù)RM報(bào)文更新緩存中的丟失組播分組記錄,按如下兩種情況進(jìn)行:
第一種情況是:接收到可靠組播報(bào)文RM的節(jié)點(diǎn)將攜帶發(fā)送RM報(bào)文節(jié)點(diǎn)最近收到組播分組的ID與自己緩存中的組播分組ID進(jìn)行對(duì)比,查看自己丟失了哪些分組,并將丟失的分組存入緩存中的丟失組播分組記錄中;
第二種情況是:若接收到可靠組播報(bào)文RM的節(jié)點(diǎn)為RM報(bào)文中組播分組所屬的組播組成員,則將組播分組的序號(hào)與自己記錄的發(fā)送RM報(bào)文的源節(jié)點(diǎn)的最大分組序號(hào)進(jìn)行對(duì)比,查看丟失了哪些分組,并將丟失的分組存入緩存中的丟失組播分組記錄中。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于:步驟(2d)中組播分組恢復(fù)報(bào)文MMR中封裝了丟失組播分組的ID。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于:步驟(2f)中將接收到的RM報(bào)文中的組播分組重新封裝為新的RM報(bào)文并發(fā)送,目的是轉(zhuǎn)發(fā)接收到的RM報(bào)文的組播分組,按如下規(guī)則進(jìn)行:
若準(zhǔn)備轉(zhuǎn)發(fā)可靠組播報(bào)文RM的節(jié)點(diǎn)在組播組中為葉子節(jié)點(diǎn),且發(fā)送RM報(bào)文的節(jié)點(diǎn)為自己的上游節(jié)點(diǎn),則不轉(zhuǎn)發(fā);
若準(zhǔn)備轉(zhuǎn)發(fā)可靠組播報(bào)文RM的節(jié)點(diǎn)的下游節(jié)點(diǎn)數(shù)量大于2個(gè),則在規(guī)定的時(shí)間間隔T1后檢測(cè)自己所有的上下游節(jié)點(diǎn)是否均轉(zhuǎn)發(fā)了接收到的RM報(bào)文中的組播分組,若是,則不轉(zhuǎn)發(fā),否則,將組播分組重新封裝為可靠組播報(bào)文RM進(jìn)行發(fā)送。時(shí)間間隔T1服從均勻分布,取值區(qū)間是根據(jù)網(wǎng)絡(luò)中的平均丟包率和分組到達(dá)速率進(jìn)行設(shè)定。
若準(zhǔn)備轉(zhuǎn)發(fā)可靠組播報(bào)文RM的節(jié)點(diǎn)的下游節(jié)點(diǎn)數(shù)量不大于2個(gè),則在規(guī)定的時(shí)間間隔T2后檢測(cè)自己所有的上下游節(jié)點(diǎn)是否均轉(zhuǎn)發(fā)了接收到的RM報(bào)文中的組播分組,若是,則不轉(zhuǎn)發(fā),否則,將組播分組重新封裝為可靠組播報(bào)文RM進(jìn)行發(fā)送。時(shí)間間隔T2服從均勻分布,取值區(qū)間是根據(jù)網(wǎng)絡(luò)中的平均丟包率和分組到達(dá)速率進(jìn)行設(shè)定,且T2必須大于T1。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于:步驟(3a)中每個(gè)節(jié)點(diǎn)刷新緩存中的丟失組播分組記錄,其刷新規(guī)則是:每個(gè)節(jié)點(diǎn)查看緩存中丟失組播分組記錄中的每一個(gè)組播分組所屬的組播組,若自己已經(jīng)退出這個(gè)分組所屬的組播組,則在丟失組播分組記錄中刪除這個(gè)組播分組。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于:步驟(4a)中接收到組播分組恢復(fù)報(bào)文MMR的節(jié)點(diǎn)根據(jù)MMR報(bào)文更新自己緩存中的丟失組播分組記錄,其更新規(guī)則是:接收到組播分組恢復(fù)報(bào)文MMR的節(jié)點(diǎn)將MMR報(bào)文中攜帶丟失組播分組的ID與自己緩存中的組播分組ID進(jìn)行對(duì)比,查看自己丟失了哪些分組,并將丟失的分組存入緩存中的丟失組播分組記錄。