ata-MDT的切換。從而保證在Default-MDT切換到Data-MDT過(guò)程中,沒(méi)有第二 PE出現(xiàn)因?yàn)榻M播分發(fā)樹的切換而造成組播數(shù)據(jù)流斷流的問(wèn)題。
[0093]參見圖5,下面給出一個(gè)具體實(shí)例來(lái)對(duì)上述實(shí)施例所述的網(wǎng)絡(luò)故障處理方法進(jìn)行解釋說(shuō)明:
[0094]S1、組播源與CE1相連接,組播源發(fā)送(192.168.1.1,225.1.1.1)的VPN A私網(wǎng)組播數(shù)據(jù)流到CE1上,CE1將該私網(wǎng)組播數(shù)據(jù)流轉(zhuǎn)發(fā)到相連的PE1上。
[0095]S2、PE1 在接收到(192.168.1.1,225.1.1.1)組播數(shù)據(jù)流后,通過(guò) Default-MDT,將組播數(shù)據(jù)流分發(fā)到PE2,PE3上。
[0096]S3、PE2將(192.168.1.1,225.1.1.1)根據(jù)組播分發(fā)樹將組播流轉(zhuǎn)發(fā)給CE2,最終轉(zhuǎn)發(fā)給接收者;PE3將(192.168.1.1,225.1.1.1)根據(jù)組播分發(fā)樹將組播流轉(zhuǎn)發(fā)給CE3,最終轉(zhuǎn)發(fā)給接收者。
[0097]S4、假設(shè)(192.168.1.1,225.1.1.1)的私網(wǎng)組播數(shù)據(jù)流的流量達(dá)到了入口 PE1的流量閥值,PE1將為(192.168.1.1,225.1.1.1)這條私網(wǎng)組播數(shù)據(jù)流進(jìn)行Data-MDT切換,從地址池中獲取一個(gè)空閑的組播地址239.1.1.2創(chuàng)建一個(gè)(1.1.1.1.239.1.1.2)的Data-MDT封裝表項(xiàng),然后沿著 Default-MDT 發(fā)送 C-S 為 192.168.1.1,C-G 為 225.1.1.1,P-G 為239.1.1.2 的 MDT-Join 報(bào)文。
[0098]S5、假設(shè)PE2上的解封裝表項(xiàng)資源已經(jīng)達(dá)到上限,PE2在接收C-S為192.168.1.1,C-G 為 225.1.1.1,P-G 為 239.1.1.2 的 MDT-Join 報(bào)文后,創(chuàng)建(*,239.1.1.2)的 Data-MDT解封裝表項(xiàng)時(shí)失敗,此時(shí),不會(huì)向公網(wǎng)加入239.1.1.2的組播組。PE2為了避免出現(xiàn)組播數(shù)據(jù)流斷流的問(wèn)題,向PE1發(fā)送創(chuàng)建解封裝表失敗的第一消息,以請(qǐng)求PE1暫時(shí)不進(jìn)行從Default-MDT 到 Data-MDT 的切換。
[0099]S6、假設(shè)PE3上的解封裝表項(xiàng)資源已經(jīng)達(dá)到上限,PE3在接收C-S為192.168.1.1,C-G 為 225.1.1.1,P-G 為 239.1.1.2 的 MDT-Join 報(bào)文后,創(chuàng)建(*,239.1.1.2)的 Data-MDT解封裝表項(xiàng)時(shí)失敗,此時(shí),不會(huì)向公網(wǎng)加入239.1.1.2的組播組。PE3為了避免出現(xiàn)組播數(shù)據(jù)流斷流的問(wèn)題,向PE1發(fā)送創(chuàng)建解封裝表失敗的第一消息,以請(qǐng)求PE1暫時(shí)不進(jìn)行從Default-MDT 到 Data-MDT 的切換。
[0100]S7、PE4 在接收到 C-S 為 192.168.1.1,C-G 為 225.1.1.1,P-G 為 239.1.1.2 的MDT-Join報(bào)文后,先建立一個(gè)(*,239.1.1.2)的Data-MDT解封裝表項(xiàng),然后向公網(wǎng)加入239.1.1.2組播組,完成Data-MDT分發(fā)樹的加入。
[0101]S8、PE1在預(yù)設(shè)時(shí)間內(nèi)接收到所述PE2以及所述PE3發(fā)送的第一消息后,PE1對(duì)發(fā)送第一消息的PE2和PE3進(jìn)行記錄,并停止進(jìn)行從Default-MDT到Data-MDT的切換,以避免在切換過(guò)程中,PE2和PE3出現(xiàn)組播數(shù)據(jù)流斷流的問(wèn)題。
[0102]S9、PE1在接收到所述PE2發(fā)送的解封裝表創(chuàng)建成功的第二消息后,PE1查詢之前的記錄內(nèi)容,判斷發(fā)送第一消息的PE3是否已發(fā)送第二消息,若PE3還沒(méi)有發(fā)送第二消息,則PE1繼續(xù)停止進(jìn)行從Default-MDT到Data-MDT的切換,并等待PE3創(chuàng)建解封裝表。
[0103]S10、當(dāng)PE1接收到PE3發(fā)送的第二消息后,PE1判斷之前發(fā)送第一消息的PE2和PE3均已發(fā)送第二消息,此時(shí)PE1將(192.168.1.1,225.1.1.1)的私網(wǎng)組播數(shù)據(jù)流從Default-MDT切換到Data-MDT,該組播數(shù)據(jù)流沿著Data-MDT將組播數(shù)據(jù)流分發(fā)到PE2、PE3和PE4上從而使得與CE2、CE3、CE4連接的用戶接收者可以正常接收到(192.168.1.1,225.1.1.1)的組播數(shù)據(jù)流。
[0104]本發(fā)明第六個(gè)實(shí)施例提供了另一種網(wǎng)絡(luò)故障處理方法,參見圖6,該方法包括如下步驟:
[0105]步驟201:第二 PE接收第一 PE發(fā)送的MDT-Join報(bào)文。
[0106]步驟202:第二 PE根據(jù)所述MDT-Join報(bào)文創(chuàng)建解封裝表。
[0107]步驟203:判斷第二 PE創(chuàng)建所述解封裝表是否失敗,若是,則執(zhí)行步驟203a。
[0108]步驟203a:第二 PE向第一 PE發(fā)送第一消息,請(qǐng)求所述第一 PE停止進(jìn)行從Default-MDT 到 Data-MDT 的切換。
[0109]在本實(shí)施例中,當(dāng)?shù)诙?PE接收第一 PE發(fā)送的MDT-Join報(bào)文之后,第二 PE根據(jù)所述MDT-Join報(bào)文創(chuàng)建解封裝表,若第二 PE創(chuàng)建解封裝表失敗,則向第一 PE發(fā)送第一消息,以請(qǐng)求第一 PE停止進(jìn)行從Default-MDT到Data-MDT的切換,以避免在Default-MDT切換到Data-MDT過(guò)程中,出現(xiàn)因?yàn)榻M播分發(fā)樹的切換而造成的組播數(shù)據(jù)流斷流的問(wèn)題。
[0110]在本發(fā)明第七個(gè)實(shí)施例中,參見圖7,上述第六個(gè)實(shí)施例所述的網(wǎng)絡(luò)故障處理方法還包括下述步驟204-205a。
[0111]步驟204:第二 PE根據(jù)所述MDT-Join報(bào)文重新創(chuàng)建解封裝表。
[0112]在本步驟中,第二 PE在向第一 PE發(fā)送第一消息后,可以立即根據(jù)所述MDT-Join報(bào)文重新創(chuàng)建解封裝表,也可以相隔預(yù)設(shè)時(shí)間段后再據(jù)所述MDT-Join報(bào)文重新創(chuàng)建解封裝表。
[0113]步驟205:判斷第二 PE重新創(chuàng)建解封裝表是否成功,若是,則執(zhí)行步驟205a。
[0114]步驟205a:第二 PE向第一 PE發(fā)送第二消息,請(qǐng)求所述第一 PE開始進(jìn)行從Default-MDT 到 Data-MDT 的切換。
[0115]在本實(shí)施例中,當(dāng)?shù)诙?PE創(chuàng)建解封裝表失敗并向第一 PE發(fā)送第一消息之后,第二 PE根據(jù)所述MDT-Join報(bào)文重新創(chuàng)建解封裝表,若第二 PE創(chuàng)建解封裝表成功,則向第一 PE發(fā)送第二消息,以告知第一 PE其解封裝表創(chuàng)建成功,請(qǐng)求所述第一 PE開始進(jìn)行從Default-MDT 到 Data-MDT 的切換。
[0116]在本發(fā)明第八個(gè)實(shí)施例中,參見圖8,若上述步驟205中第二PE判斷重新創(chuàng)建解封裝表失敗,則在每一個(gè)預(yù)設(shè)的定時(shí)時(shí)刻到來(lái)時(shí),重復(fù)執(zhí)行上述步驟204-205,直至第二 PE創(chuàng)建所述解封裝表成功。
[0117]在本實(shí)施例中,當(dāng)?shù)诙?PE創(chuàng)建解封裝表失敗并向第一 PE發(fā)送第一消息之后,第二PE根據(jù)所述MDT-Join報(bào)文重新創(chuàng)建解封裝表,若第二PE重新創(chuàng)建解封裝表失敗,則在每一個(gè)預(yù)設(shè)的定時(shí)時(shí)刻,第二 PE根據(jù)所述MDT-Join報(bào)文繼續(xù)創(chuàng)建解封裝表,直至第二 PE創(chuàng)建所述解封裝表成功,并向第一 PE發(fā)送第二消息。
[0118]本發(fā)明第九個(gè)實(shí)施例提供了一種服務(wù)提供商的邊緣設(shè)備,參見圖9包括:
[0119]第一發(fā)送單元801,用于向預(yù)設(shè)范圍內(nèi)的另一服務(wù)提供商的邊緣設(shè)備PE發(fā)送MDT-Join 報(bào)文;
[0120]第一判斷單元802,用于判斷預(yù)設(shè)時(shí)間內(nèi)是否接收到所述另一 PE發(fā)送的第一消息,所述第一消息為所述另一 PE根據(jù)接收到的MDT-Join報(bào)文創(chuàng)建解封裝表失敗后發(fā)送的消息;
[0121]第一處理單元803,用于在所述第一判斷單元確定接收到所述另一 PE發(fā)送的第一消息時(shí),停止進(jìn)行從Default-MDT到Data-MDT的切換。
[0122]在本實(shí)施例提供的服務(wù)提供商的邊緣設(shè)備,通過(guò)判斷預(yù)設(shè)時(shí)間內(nèi)是否接收到所述另一 PE發(fā)送的第一消息確定是否進(jìn)行從Default-MDT到Data-MDT的切換。當(dāng)接收到所述另一 PE發(fā)送的第一消息時(shí),所述服務(wù)提供商的邊緣設(shè)備停止進(jìn)行從Default-MDT到Data-MDT的切換,以避免在Default-MDT切換到Data-MDT過(guò)程中,另一 PE出現(xiàn)因?yàn)榻M播分發(fā)樹的切換造成組播數(shù)據(jù)流斷流的問(wèn)題。
[0123]在本發(fā)明第十個(gè)實(shí)施例中,上述第一處理單元803還用于在所述第一判斷單元802確定預(yù)設(shè)時(shí)間內(nèi)未接收到所述另一 PE發(fā)送的第一消息時(shí),開始進(jìn)行從Default-MDT到Data-MDT的切換。
[0124]在本實(shí)施例中,若所述服務(wù)提供商的邊緣設(shè)備確定在預(yù)設(shè)時(shí)間內(nèi)沒(méi)有接收到所述另一 PE發(fā)送的第一消息,則所述服務(wù)提供商的邊緣設(shè)備認(rèn)為另一 PE創(chuàng)建解封裝表成功,因此所述服務(wù)提供商的邊緣設(shè)備開始進(jìn)行從Default-MDT到Data-MDT的切換。由于另一 PE創(chuàng)建解封裝表成功,因此在進(jìn)行組播分發(fā)樹切換時(shí),另一 PE不會(huì)出現(xiàn)因組播分發(fā)樹切換而造成的組播數(shù)據(jù)流斷流的現(xiàn)象。
[0125]在本發(fā)明第十一個(gè)實(shí)施例中,所述第一判斷單元802,還用于判斷是否接收到所述另一 PE發(fā)送的第二消息,所述第二消息為發(fā)送所述第一消息的另一 PE發(fā)送的消息,以及所述第二消息為所述另一 PE根據(jù)所述MDT-Join報(bào)文重新創(chuàng)建解封裝表成功后發(fā)送的消息;
[0126]相應(yīng)地,參見圖10,在本實(shí)施例中,所述設(shè)備還包括第二判斷單元804 ;
[0127]所述第二判斷單元804,用于在所述第一判斷單元802確定接收到所述另一 PE發(fā)送的第二消息時(shí),判斷所述預(yù)設(shè)范圍內(nèi)發(fā)送第一消息的另一 PE是否均已發(fā)送第二消息;
[0128]所述第一處理單元803,還用于在所述第二判斷單元804確定所述預(yù)設(shè)范圍內(nèi)發(fā)送第一消息的另一 PE未均發(fā)送第二消息時(shí),停止進(jìn)行從Default-MDT到Data-MDT的切換。
[0129]在本實(shí)施例中,所述服務(wù)提供商的邊緣設(shè)備在接收到另一 PE發(fā)送的第一消息之后,所述服務(wù)提供商的邊緣設(shè)備停止進(jìn)行從Default-MDT到Data-MDT的切換并進(jìn)行等待,等待所述另一 PE成功創(chuàng)建解封裝表后,再進(jìn)行從Default-MDT到Data-MDT的切換。
[0130]具體地,當(dāng)所述服務(wù)提供商的邊緣設(shè)備接收到另一 PE發(fā)送的解封裝表創(chuàng)建成功的第二消息后,所述服務(wù)提供商的邊緣設(shè)備開始判斷所述預(yù)設(shè)范圍內(nèi)發(fā)送解封裝表創(chuàng)建失敗的第一消息的另一 PE是否均已發(fā)送解封裝表創(chuàng)建成功的第二消息,若否,則不進(jìn)行從Default-MDT到Data-MDT的切換,而是繼續(xù)等待。這樣可以保證在Default-MDT切換到Data-MDT過(guò)程中,沒(méi)有任何另一 PE出現(xiàn)因?yàn)榻M播分發(fā)樹的切換而造成組播數(shù)據(jù)流斷流