本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種組播流的轉(zhuǎn)發(fā)系統(tǒng)、方法及裝置。
背景技術(shù):
RFC6513和RFC6514討論了運(yùn)營(yíng)商(service provider,SP)提供組播虛擬專(zhuān)用網(wǎng)(virtual private network,VPN)業(yè)務(wù)時(shí)的各種消息和流程的運(yùn)用。支持組播的邊界網(wǎng)關(guān)協(xié)議(Border Gateway Protocol,BGP)/多協(xié)議標(biāo)簽交換(Multi-Protocol Label Switching,MPLS)網(wǎng)絡(luò)互聯(lián)協(xié)議(Internet Protocol,IP)VPN服務(wù)被稱(chēng)為組播VPN或組播虛擬專(zhuān)用網(wǎng)(multicast virtual private network,MVPN)。
MVPN可提供相容性運(yùn)營(yíng)商組播業(yè)務(wù)接口(inclusive provider multicast service interface,I-PMSI)隧道的數(shù)據(jù)承載模式。I-PMSI隧道可以是基于點(diǎn)到多點(diǎn)流量工程(point-to-multipoint traffic engineering,P2MP TE)或者基于點(diǎn)到多點(diǎn)多標(biāo)簽分發(fā)協(xié)議(point-to-multipoint Multi-Label Distribution Protocol,P2MP MLDP)等創(chuàng)建的隧道。MVPN還可提供選擇性運(yùn)營(yíng)商組播業(yè)務(wù)接口(Selective provider multicast service interface,S-PMSI)隧道的數(shù)據(jù)承載模式。一個(gè)MVPN的一個(gè)特定的PE能組播消息,然后被該MVPN的其它PE的一個(gè)子集接收到。
依據(jù)RFC6513、RFC6514中定義的MVPN以及Selective PMSI隧道建立的信令過(guò)程,以及RFC6625中定義的在建立Selective PMSI隧道中使用通配符(*,*)AD路由和SPMSI-only的組播轉(zhuǎn)發(fā)。圖1示出了傳統(tǒng)Selective PMSI隧道建立方案的信令流程示意圖。
如圖1所述,傳統(tǒng)Selective PMSI隧道建立過(guò)程中,從組播加入到完成Selective PMSI隧道的建立,實(shí)現(xiàn)組播,需要資源預(yù)留協(xié)議(Resource Reservation Protocol,RSVP)或多標(biāo)簽分發(fā)協(xié)議LDP(multi-Label Distribution Protocol,mLDP)信令逐跳完成,組播加入延遲大(多跳),如圖1所示,CE2組播加入延遲為3跳,CE5組播加入延遲為4跳。
因此,如何解決傳統(tǒng)Selective PMSI隧道建立方案中組播加入延遲大的缺陷,是業(yè)界所亟待研究和解決的問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)?zhí)峁┮环N組播流的轉(zhuǎn)發(fā)系統(tǒng)、方法及設(shè)備,用以降低組播延遲,提高組播流的傳輸效率。
第一方面,本申請(qǐng)?zhí)峁┝艘环N組播流的轉(zhuǎn)發(fā)系統(tǒng),包括:根節(jié)點(diǎn)、N個(gè)葉節(jié)點(diǎn)以及M個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn);所述根節(jié)點(diǎn)、所述轉(zhuǎn)發(fā)節(jié)點(diǎn)以及所述葉節(jié)點(diǎn)以樹(shù)狀結(jié)構(gòu)連接,所述根節(jié)點(diǎn)位于所述樹(shù)狀結(jié)構(gòu)的最頂層,所述轉(zhuǎn)發(fā)節(jié)點(diǎn)位于所述樹(shù)狀結(jié)構(gòu)的中間層,所述葉節(jié)點(diǎn)位于所述樹(shù)狀結(jié)構(gòu)的最底層;所述N、M均為大于或等于1的正整數(shù);其中:
所述根節(jié)點(diǎn),用于獲取能夠接收待發(fā)送的組播流的至少一個(gè)葉節(jié)點(diǎn)的葉節(jié)點(diǎn)信息,在預(yù)設(shè)的組播指示信息包括的各個(gè)比特位中查找到與獲取的至少一個(gè)葉節(jié)點(diǎn)信息分別對(duì)應(yīng)的比特位,并將查找到的比特位置1、且將未被查找到的比特位置0,將置位處理后的組播指示信息與所述組播流發(fā)送給與所述根節(jié)點(diǎn)連接的每個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn);其中,預(yù)設(shè)的組播指示信息中包括的每個(gè)比特位分別對(duì)應(yīng)一個(gè)葉節(jié)點(diǎn)信息、且各個(gè)比特位分別對(duì)應(yīng)的葉節(jié)點(diǎn)信息不同;
所述轉(zhuǎn)發(fā)節(jié)點(diǎn),用于接收與所述轉(zhuǎn)發(fā)節(jié)點(diǎn)連接的上游節(jié)點(diǎn)發(fā)送的組播指示信息和組播流,根據(jù)所述組播指示信息中被置位為1的比特位,以及所述組播指示信息中各個(gè)比特位分別對(duì)應(yīng)的葉節(jié)點(diǎn)信息,確定能夠接收所述組播流的葉節(jié)點(diǎn);并將接收的所述組播指示信息和組播流轉(zhuǎn)發(fā)給與所述轉(zhuǎn)發(fā)節(jié)點(diǎn)連接的、且與確定出的葉節(jié)點(diǎn)之間存在通信路徑的下游節(jié)點(diǎn);
所述葉節(jié)點(diǎn),用于接收所述葉節(jié)點(diǎn)連接的上游節(jié)點(diǎn)發(fā)送的組播指示信息和組播流,所述組播指示信息中包括的、與所述葉節(jié)點(diǎn)的葉節(jié)點(diǎn)信息對(duì)應(yīng)的比特位被置位為1。
本申請(qǐng)所提供的上述組播流的轉(zhuǎn)發(fā)系統(tǒng)中,各個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)通過(guò)置位后的組播流指示信息來(lái)確定組播流的葉節(jié)點(diǎn),實(shí)現(xiàn)組播流的正確轉(zhuǎn)發(fā),因而能夠降低組播延遲,提高組播流的傳輸效率。
在一種可能的實(shí)現(xiàn)方式中,所述葉節(jié)點(diǎn),還用于確定所述葉節(jié)點(diǎn)占據(jù)所述組播指示信息中的比特位信息,并將所述葉節(jié)點(diǎn)的葉節(jié)點(diǎn)信息和確定的比特位信息構(gòu)成信息對(duì),上報(bào)給與所述葉節(jié)點(diǎn)連接的上游節(jié)點(diǎn);
所述轉(zhuǎn)發(fā)節(jié)點(diǎn),還用于接收并保存與所述轉(zhuǎn)發(fā)節(jié)點(diǎn)連接的下游節(jié)點(diǎn)發(fā)送的葉節(jié)點(diǎn)信息和比特位信息構(gòu)成的信息對(duì),并將所述信息對(duì)上報(bào)給與所述轉(zhuǎn)發(fā)節(jié)點(diǎn)連接的上游節(jié)點(diǎn);
所述根節(jié)點(diǎn),還用于接收與所述根節(jié)點(diǎn)連接的各個(gè)下游節(jié)點(diǎn)分別上報(bào)的葉節(jié)點(diǎn)信息和比特位信息構(gòu)成的信息對(duì);根據(jù)接收的各個(gè)信息對(duì)生成并保存預(yù)設(shè)的組播指示信息。
通過(guò)上述過(guò)程,根節(jié)點(diǎn)能獲知各個(gè)葉節(jié)點(diǎn)的葉節(jié)點(diǎn)信息和比特位信息構(gòu)成的信息對(duì),進(jìn)而可基于所獲取到的信息對(duì)生成預(yù)設(shè)的組播指示信息。
在一種可能的實(shí)現(xiàn)方式中,所述根節(jié)點(diǎn),還用于將生成的組播指示信息發(fā)送給與所述根節(jié)點(diǎn)分別連接的各個(gè)下游節(jié)點(diǎn);
所述轉(zhuǎn)發(fā)節(jié)點(diǎn),還用于接收并保存與所述轉(zhuǎn)發(fā)節(jié)點(diǎn)連接的上游節(jié)點(diǎn)發(fā)送的組播指示信息。
通過(guò)上述過(guò)程,轉(zhuǎn)發(fā)節(jié)點(diǎn)能獲知各個(gè)葉節(jié)點(diǎn)的葉節(jié)點(diǎn)信息和比特位信息構(gòu)成的信息對(duì),進(jìn)而可以在根節(jié)點(diǎn)下發(fā)置位后的組播流指示信息時(shí),根據(jù)置位后的組播流指示信息來(lái)確定組播流的葉節(jié)點(diǎn),實(shí)現(xiàn)組播流的正確轉(zhuǎn)發(fā),因而能夠降低組播延遲,提高組播流的傳輸效率。
第二方面,本申請(qǐng)?zhí)峁┝艘环N組播流的轉(zhuǎn)發(fā)方法,應(yīng)用于包括有根節(jié)點(diǎn)、N個(gè)葉節(jié)點(diǎn)以及M個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)的組播流的轉(zhuǎn)發(fā)系統(tǒng);所述根節(jié)點(diǎn)、所述轉(zhuǎn)發(fā)節(jié)點(diǎn)以及所述葉節(jié)點(diǎn)以樹(shù)狀結(jié)構(gòu)連接,所述根節(jié)點(diǎn)位于所述樹(shù)狀結(jié)構(gòu)的最頂層,所述轉(zhuǎn)發(fā)節(jié)點(diǎn)位于所述樹(shù)狀結(jié)構(gòu)的中間層,所述葉節(jié)點(diǎn)位于所述樹(shù)狀結(jié)構(gòu)的最底層;所述N、M均為大于或等于1的正整數(shù);該方法包括:
所述根節(jié)點(diǎn)獲取能夠接收待發(fā)送的組播流的至少一個(gè)葉節(jié)點(diǎn)的葉節(jié)點(diǎn)信息;
所述根節(jié)點(diǎn)在預(yù)設(shè)的組播指示信息包括的各個(gè)比特位中查找到與獲取的至少一個(gè)葉節(jié)點(diǎn)信息分別對(duì)應(yīng)的比特位,并將查找到的比特位置1、且將未被查找到的比特位置0;
所述根節(jié)點(diǎn)將置位處理后的組播指示信息與所述組播流發(fā)送給與所述根節(jié)點(diǎn)連接的每個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn);其中,預(yù)設(shè)的組播指示信息中包括的每個(gè)比特位分別對(duì)應(yīng)一個(gè)葉節(jié)點(diǎn)信息、且各個(gè)比特位分別對(duì)應(yīng)的葉節(jié)點(diǎn)信息不同。
在一種可能的實(shí)現(xiàn)方式中,所述方法還包括:
所述根節(jié)點(diǎn)接收與所述根節(jié)點(diǎn)連接的各個(gè)下游節(jié)點(diǎn)分別上報(bào)的葉節(jié)點(diǎn)信息和比特位信息構(gòu)成的信息對(duì);
所述根節(jié)點(diǎn)根據(jù)接收的各個(gè)信息對(duì)生成并保存預(yù)設(shè)的組播指示信息。
在一種可能的實(shí)現(xiàn)方式中,所述方法還包括:
所述根節(jié)點(diǎn)將生成的組播指示信息發(fā)送給與所述根節(jié)點(diǎn)分別連接的各個(gè)下游節(jié)點(diǎn)。
由于該方法解決問(wèn)題的原理以及有益效果可以參見(jiàn)上述第一方面和第一方面的各可能的組播流的轉(zhuǎn)發(fā)系統(tǒng)中根節(jié)點(diǎn)的實(shí)施方式以及所帶來(lái)的有益效果,因此該方法的實(shí)施可以參見(jiàn)上述第一方面和第一方面的各可能的組播流的轉(zhuǎn)發(fā)系統(tǒng)中根節(jié)點(diǎn)的實(shí)施,重復(fù)之處不再贅述。
第三方面,本申請(qǐng)?zhí)峁┝艘环N組播流的轉(zhuǎn)發(fā)裝置,所述裝置部署在根節(jié)點(diǎn),應(yīng)用于包括有所述根節(jié)點(diǎn)、N個(gè)葉節(jié)點(diǎn)以及M個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)的組播流的轉(zhuǎn)發(fā)系統(tǒng);所述根節(jié)點(diǎn)、所述轉(zhuǎn)發(fā)節(jié)點(diǎn)以及所述葉節(jié)點(diǎn)以樹(shù)狀結(jié)構(gòu)連接,所述根節(jié)點(diǎn)位于所述樹(shù)狀結(jié)構(gòu)的最頂層,所述轉(zhuǎn)發(fā)節(jié)點(diǎn)位于所述樹(shù)狀結(jié)構(gòu)的中間層,所述葉節(jié)點(diǎn)位于所述樹(shù)狀結(jié)構(gòu)的最底層;所述N、M均為大于或等于1的正整數(shù);所述裝置包括:
獲取模塊,用于獲取能夠接收待發(fā)送的組播流的至少一個(gè)葉節(jié)點(diǎn)的葉節(jié)點(diǎn)信息;
置位模塊,用于在預(yù)設(shè)的組播指示信息包括的各個(gè)比特位中查找到與獲取的至少一個(gè)葉節(jié)點(diǎn)信息分別對(duì)應(yīng)的比特位,并將查找到的比特位置1、且將未被查找到的比特位置0;
發(fā)送模塊,用于將置位處理后的組播指示信息與所述組播流發(fā)送給與所述根節(jié)點(diǎn)連接的每個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn);其中,預(yù)設(shè)的組播指示信息中包括的每個(gè)比特位分別對(duì)應(yīng)一個(gè)葉節(jié)點(diǎn)信息、且各個(gè)比特位分別對(duì)應(yīng)的葉節(jié)點(diǎn)信息不同。
在一種可能的實(shí)現(xiàn)方式中,所述裝置還包括:
接收模塊,用于接收與所述根節(jié)點(diǎn)連接的各個(gè)下游節(jié)點(diǎn)分別上報(bào)的葉節(jié)點(diǎn)信息和比特位信息構(gòu)成的信息對(duì);
生成模塊,用于根據(jù)接收的各個(gè)信息對(duì)生成并保存預(yù)設(shè)的組播指示信息。
在一種可能的實(shí)現(xiàn)方式中,所述發(fā)送模塊,還用于:
將生成的組播指示信息發(fā)送給與所述根節(jié)點(diǎn)分別連接的各個(gè)下游節(jié)點(diǎn)。
由于該裝置解決問(wèn)題的原理以及有益效果可以參見(jiàn)上述第一方面和第一方面的各可能的組播流的轉(zhuǎn)發(fā)系統(tǒng)中根節(jié)點(diǎn)的實(shí)施方式以及所帶來(lái)的有益效果,因此該裝置的實(shí)施可以參見(jiàn)上述第一方面和第一方面的各可能的組播流的轉(zhuǎn)發(fā)系統(tǒng)中根節(jié)點(diǎn)的實(shí)施,重復(fù)之處不再贅述。
第四方面,本申請(qǐng)?zhí)峁┝艘环N組播流的轉(zhuǎn)發(fā)方法,應(yīng)用于包括有根節(jié)點(diǎn)、N個(gè)葉節(jié)點(diǎn)以及M個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)的組播流的轉(zhuǎn)發(fā)系統(tǒng);所述根節(jié)點(diǎn)、所述轉(zhuǎn)發(fā)節(jié)點(diǎn)以及所述葉節(jié)點(diǎn)以樹(shù)狀結(jié)構(gòu)連接,所述根節(jié)點(diǎn)位于所述樹(shù)狀結(jié)構(gòu)的最頂層,所述轉(zhuǎn)發(fā)節(jié)點(diǎn)位于所述樹(shù)狀結(jié)構(gòu)的中間層,所述葉節(jié)點(diǎn)位于所述樹(shù)狀結(jié)構(gòu)的最底層;所述N、M均為大于或等于1的正整數(shù);該方法包括:
所述轉(zhuǎn)發(fā)節(jié)點(diǎn)接收與所述轉(zhuǎn)發(fā)節(jié)點(diǎn)連接的上游節(jié)點(diǎn)發(fā)送的組播指示信息和組播流;
所述轉(zhuǎn)發(fā)節(jié)點(diǎn)根據(jù)所述組播指示信息中被置位為1的比特位,以及所述組播指示信息中各個(gè)比特位分別對(duì)應(yīng)的葉節(jié)點(diǎn)信息,確定能夠接收所述組播流的葉節(jié)點(diǎn);
所述轉(zhuǎn)發(fā)節(jié)點(diǎn)將接收的所述組播指示信息和組播流轉(zhuǎn)發(fā)給與所述轉(zhuǎn)發(fā)節(jié)點(diǎn)連接的、且與確定出的葉節(jié)點(diǎn)之間存在通信路徑的下游節(jié)點(diǎn)。
在一種可能的實(shí)現(xiàn)方式中,所述方法還包括:
所述轉(zhuǎn)發(fā)節(jié)點(diǎn)接收并保存與所述轉(zhuǎn)發(fā)節(jié)點(diǎn)連接的下游節(jié)點(diǎn)發(fā)送的葉節(jié)點(diǎn)信息和比特位信息構(gòu)成的信息對(duì),并將所述信息對(duì)上報(bào)給與所述轉(zhuǎn)發(fā)節(jié)點(diǎn)連接的上游節(jié)點(diǎn)。
在一種可能的實(shí)現(xiàn)方式中,所述方法還包括:
所述轉(zhuǎn)發(fā)節(jié)點(diǎn)接收并保存與所述轉(zhuǎn)發(fā)節(jié)點(diǎn)連接的上游節(jié)點(diǎn)發(fā)送的組播指示信息;所述組播指示信息為所述根節(jié)點(diǎn)生成并發(fā)送的。
由于該方法解決問(wèn)題的原理以及有益效果可以參見(jiàn)上述第一方面和第一方面的各可能的組播流的轉(zhuǎn)發(fā)系統(tǒng)中轉(zhuǎn)發(fā)節(jié)點(diǎn)的實(shí)施方式以及所帶來(lái)的有益效果,因此該方法的實(shí)施可以參見(jiàn)上述第一方面和第一方面的各可能的組播流的轉(zhuǎn)發(fā)系統(tǒng)中轉(zhuǎn)發(fā)節(jié)點(diǎn)的實(shí)施,重復(fù)之處不再贅述。
第五方面,本申請(qǐng)?zhí)峁┝艘环N組播流的轉(zhuǎn)發(fā)裝置,所述裝置部署在轉(zhuǎn)發(fā)節(jié)點(diǎn),應(yīng)用于包括有根節(jié)點(diǎn)、N個(gè)葉節(jié)點(diǎn)以及M個(gè)所述轉(zhuǎn)發(fā)節(jié)點(diǎn)的組播流的轉(zhuǎn)發(fā)系統(tǒng);所述根節(jié)點(diǎn)、所述轉(zhuǎn)發(fā)節(jié)點(diǎn)以及所述葉節(jié)點(diǎn)以樹(shù)狀結(jié)構(gòu)連接,所述根節(jié)點(diǎn)位于所述樹(shù)狀結(jié)構(gòu)的最頂層,所述轉(zhuǎn)發(fā)節(jié)點(diǎn)位于所述樹(shù)狀結(jié)構(gòu)的中間層,所述葉節(jié)點(diǎn)位于所述樹(shù)狀結(jié)構(gòu)的最底層;所述N、M均為大于或等于1的正整數(shù);所述裝置包括:
接收模塊,用于接收與所述轉(zhuǎn)發(fā)節(jié)點(diǎn)連接的上游節(jié)點(diǎn)發(fā)送的組播指示信息和組播流;
確定模塊,用于根據(jù)所述組播指示信息中被置位為1的比特位,以及所述組播指示信息中各個(gè)比特位分別對(duì)應(yīng)的葉節(jié)點(diǎn)信息,確定能夠接收所述組播流的葉節(jié)點(diǎn);
轉(zhuǎn)發(fā)模塊,用于將接收的所述組播指示信息和組播流轉(zhuǎn)發(fā)給與所述轉(zhuǎn)發(fā)節(jié)點(diǎn)連接的、且與確定出的葉節(jié)點(diǎn)之間存在通信路徑的下游節(jié)點(diǎn)。
在一種可能的實(shí)現(xiàn)方式中,所述裝置還包括:
第一保存模塊,用于接收并保存與所述轉(zhuǎn)發(fā)節(jié)點(diǎn)連接的下游節(jié)點(diǎn)發(fā)送的葉節(jié)點(diǎn)信息和比特位信息構(gòu)成的信息對(duì),并將所述信息對(duì)上報(bào)給與所述轉(zhuǎn)發(fā)節(jié)點(diǎn)連接的上游節(jié)點(diǎn)。
在一種可能的實(shí)現(xiàn)方式中,所述裝置還包括:
第二保存模塊,用于接收并保存與所述轉(zhuǎn)發(fā)節(jié)點(diǎn)連接的上游節(jié)點(diǎn)發(fā)送的組播指示信息;所述組播指示信息為所述根節(jié)點(diǎn)生成并發(fā)送的。
由于該裝置解決問(wèn)題的原理以及有益效果可以參見(jiàn)上述第一方面和第一方面的各可能的組播流的轉(zhuǎn)發(fā)系統(tǒng)中轉(zhuǎn)發(fā)節(jié)點(diǎn)的實(shí)施方式以及所帶來(lái)的有益效果,因此該裝置的實(shí)施可以參見(jiàn)上述第一方面和第一方面的各可能的組播流的轉(zhuǎn)發(fā)系統(tǒng)中轉(zhuǎn)發(fā)節(jié)點(diǎn)的實(shí)施,重復(fù)之處不再贅述。
第六方面,本申請(qǐng)?zhí)峁┝艘环N組播流的轉(zhuǎn)發(fā)方法,應(yīng)用于包括有根節(jié)點(diǎn)、N個(gè)葉節(jié)點(diǎn)以及M個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)的組播流的轉(zhuǎn)發(fā)系統(tǒng);所述根節(jié)點(diǎn)、所述轉(zhuǎn)發(fā)節(jié)點(diǎn)以及所述葉節(jié)點(diǎn)以樹(shù)狀結(jié)構(gòu)連接,所述根節(jié)點(diǎn)位于所述樹(shù)狀結(jié)構(gòu)的最頂層,所述轉(zhuǎn)發(fā)節(jié)點(diǎn)位于所述樹(shù)狀結(jié)構(gòu)的中間層,所述葉節(jié)點(diǎn)位于所述樹(shù)狀結(jié)構(gòu)的最底層;所述N、M均為大于或等于1的正整數(shù);該方法包括:
所述葉節(jié)點(diǎn)接收所述葉節(jié)點(diǎn)連接的上游節(jié)點(diǎn)發(fā)送的組播指示信息和組播流,所述組播指示信息中包括的、與所述葉節(jié)點(diǎn)的葉節(jié)點(diǎn)信息對(duì)應(yīng)的比特位被置位為1。
在一種可能的實(shí)現(xiàn)方式中,所述方法還包括:
所述葉節(jié)點(diǎn)確定所述葉節(jié)點(diǎn)占據(jù)所述組播指示信息中的比特位信息,并將所述葉節(jié)點(diǎn)的葉節(jié)點(diǎn)信息和確定的比特位信息構(gòu)成信息對(duì),上報(bào)給與所述葉節(jié)點(diǎn)連接的上游節(jié)點(diǎn)。
由于該方法解決問(wèn)題的原理以及有益效果可以參見(jiàn)上述第一方面和第一方面的各可能的組播流的轉(zhuǎn)發(fā)系統(tǒng)中葉節(jié)點(diǎn)的實(shí)施方式以及所帶來(lái)的有益效果,因此該方法的實(shí)施可以參見(jiàn)上述第一方面和第一方面的各可能的組播流的轉(zhuǎn)發(fā)系統(tǒng)中葉節(jié)點(diǎn)的實(shí)施,重復(fù)之處不再贅述。
第七方面,本申請(qǐng)?zhí)峁┝艘环N組播流的轉(zhuǎn)發(fā)裝置,所述裝置部署在葉節(jié)點(diǎn),應(yīng)用于包括有根節(jié)點(diǎn)、N個(gè)所述葉節(jié)點(diǎn)以及M個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)的組播流的轉(zhuǎn)發(fā)系統(tǒng);所述根節(jié)點(diǎn)、所述轉(zhuǎn)發(fā)節(jié)點(diǎn)以及所述葉節(jié)點(diǎn)以樹(shù)狀結(jié)構(gòu)連接,所述根節(jié)點(diǎn)位于所述樹(shù)狀結(jié)構(gòu)的最頂層,所述轉(zhuǎn)發(fā)節(jié)點(diǎn)位于所述樹(shù)狀結(jié)構(gòu)的中間層,所述葉節(jié)點(diǎn)位于所述樹(shù)狀結(jié)構(gòu)的最底層;所述N、M均為大于或等于1的正整數(shù);所述裝置包括:
接收模塊,用于接收所述葉節(jié)點(diǎn)連接的上游節(jié)點(diǎn)發(fā)送的組播指示信息和組播流,所述組播指示信息中包括的、與所述葉節(jié)點(diǎn)的葉節(jié)點(diǎn)信息對(duì)應(yīng)的比特位被置位為1。
在一種可能的實(shí)現(xiàn)方式中,所述裝置還包括:
上報(bào)模塊,用于確定所述葉節(jié)點(diǎn)占據(jù)所述組播指示信息中的比特位信息,并將所述葉節(jié)點(diǎn)的葉節(jié)點(diǎn)信息和確定的比特位信息構(gòu)成信息對(duì),上報(bào)給與所述葉節(jié)點(diǎn)連接的上游節(jié)點(diǎn)。
由于該裝置解決問(wèn)題的原理以及有益效果可以參見(jiàn)上述第一方面和第一方面的各可能的組播流的轉(zhuǎn)發(fā)系統(tǒng)中葉節(jié)點(diǎn)的實(shí)施方式以及所帶來(lái)的有益效果,因此該裝置的實(shí)施可以參見(jiàn)上述第一方面和第一方面的各可能的組播流的轉(zhuǎn)發(fā)系統(tǒng)中葉節(jié)點(diǎn)的實(shí)施,重復(fù)之處不再贅述。
附圖說(shuō)明
圖1為傳統(tǒng)組播方案的信令流程示意圖;
圖2為本發(fā)明一些實(shí)施例提供的組播流的轉(zhuǎn)發(fā)系統(tǒng)的結(jié)構(gòu)示意圖;
圖3為本發(fā)明一些實(shí)施例提供的組播流的轉(zhuǎn)發(fā)系統(tǒng)的在實(shí)際場(chǎng)景中的拓?fù)浣Y(jié)構(gòu)示意圖;
圖4為本發(fā)明一些實(shí)施例提供的組播流的轉(zhuǎn)發(fā)系統(tǒng)中根節(jié)點(diǎn)執(zhí)行的方法流程示意圖;
圖5為本發(fā)明一些實(shí)施例提供的組播流的轉(zhuǎn)發(fā)系統(tǒng)中轉(zhuǎn)發(fā)節(jié)點(diǎn)執(zhí)行的方法流程示意圖;
圖6為本發(fā)明一些實(shí)施例提供的組播流的轉(zhuǎn)發(fā)系統(tǒng)中葉節(jié)點(diǎn)執(zhí)行的方法流程示意圖;
圖7為本發(fā)明一些實(shí)施例提供的組播流的轉(zhuǎn)發(fā)系統(tǒng)中預(yù)設(shè)的組播指示信息的生成流程示意圖;
圖8為本發(fā)明一些實(shí)施例提供的組播流的轉(zhuǎn)發(fā)系統(tǒng)中根節(jié)點(diǎn)、轉(zhuǎn)發(fā)節(jié)點(diǎn)以及葉節(jié)點(diǎn)之間通信過(guò)程的示意圖;
圖9為本發(fā)明一些實(shí)施例提供的組播流的轉(zhuǎn)發(fā)系統(tǒng)中根節(jié)點(diǎn)下發(fā)的報(bào)文以及轉(zhuǎn)發(fā)節(jié)點(diǎn)根據(jù)根節(jié)點(diǎn)下發(fā)的報(bào)文進(jìn)行轉(zhuǎn)發(fā)的示意圖;
圖10為本發(fā)明一些實(shí)施例提供的組播流的轉(zhuǎn)發(fā)裝置的結(jié)構(gòu)示意圖;
圖11為本發(fā)明一些實(shí)施例提供的組播流的轉(zhuǎn)發(fā)裝置的結(jié)構(gòu)示意圖;
圖12為本發(fā)明一些實(shí)施例提供的組播流的轉(zhuǎn)發(fā)裝置的結(jié)構(gòu)示意圖;
圖13為本發(fā)明一些實(shí)施例提供的組播流的轉(zhuǎn)發(fā)裝置的結(jié)構(gòu)示意圖;
圖14為本發(fā)明一些實(shí)施例提供的組播流的轉(zhuǎn)發(fā)裝置的結(jié)構(gòu)示意圖;
圖15為本發(fā)明一些實(shí)施例提供的組播流的轉(zhuǎn)發(fā)裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施例提供的組播流的轉(zhuǎn)發(fā)方案進(jìn)行闡述。
圖2示出了本發(fā)明一些實(shí)施例提供的組播流的轉(zhuǎn)發(fā)系統(tǒng)的結(jié)構(gòu)示意圖。
如圖2所示,該系統(tǒng)中包括有:
根節(jié)點(diǎn)201、M個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)202以及N個(gè)葉節(jié)點(diǎn)203;M、N均為大于或等于1的正整數(shù)。
如圖2所示,根節(jié)點(diǎn)201、轉(zhuǎn)發(fā)節(jié)點(diǎn)202和葉節(jié)點(diǎn)203以樹(shù)狀結(jié)構(gòu)連接,根節(jié)點(diǎn)201位于樹(shù)狀結(jié)構(gòu)的最頂層,轉(zhuǎn)發(fā)節(jié)點(diǎn)202位于樹(shù)狀結(jié)構(gòu)的中間層,葉節(jié)點(diǎn)203位于樹(shù)狀結(jié)構(gòu)的最底層。
具體地,在上述樹(shù)狀結(jié)構(gòu)中,根節(jié)點(diǎn)201為連接組播源的節(jié)點(diǎn),葉節(jié)點(diǎn)為連接組播流的接收者的節(jié)點(diǎn)。來(lái)自于組播源的組播流從根節(jié)點(diǎn)201沿著該樹(shù)狀結(jié)構(gòu)中的各個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)202轉(zhuǎn)發(fā)至連接有組播流接收者的葉節(jié)點(diǎn)303。
作為一個(gè)示例,圖3示出了本發(fā)明一些實(shí)施例提供的組播流的轉(zhuǎn)發(fā)系統(tǒng)在實(shí)際場(chǎng)景中的拓?fù)浣Y(jié)構(gòu)示意圖。
如圖3所示,該拓?fù)浣Y(jié)構(gòu)中包括有:
用戶(hù)邊緣(Customer Edge,CE)設(shè)備(圖示CE1、CE2、CE3、CE4、CE5);運(yùn)營(yíng)商邊緣(Provider Edge,PE)設(shè)備(圖示PE1、PE2、PE3、PE4、PE5);以及運(yùn)營(yíng)商(Provider,P)設(shè)備(圖示P6、P7、P8)。
CE設(shè)備可以是路由器,也可以是交換機(jī)或主機(jī)。PE設(shè)備可以是運(yùn)營(yíng)商邊緣路由器,位于骨干網(wǎng)絡(luò),可與CE直接相連。P設(shè)備可以是運(yùn)營(yíng)商網(wǎng)絡(luò)中的骨干路由器,不與CE直接相連。
該拓?fù)浣Y(jié)構(gòu)呈現(xiàn)樹(shù)狀結(jié)構(gòu):CE1與PE1連接,PE1與P6連接,P6與P7連接,P7與P8、PE2以及PE3連接,PE8與PE4以及PE5連接,PE2與CE2連接,PE3與CE3連接,PE4與CE4連接,PE5與CE5連接。
假設(shè)CE1連接組播源,CE2、CE3、CE4、CE5均連接有組播流的接收者,那么在該樹(shù)狀結(jié)構(gòu)中,PE1相當(dāng)于根節(jié)點(diǎn)201、P6、P7、P8相當(dāng)于3個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)202,PE2、PE3、PE4、PE5相當(dāng)于4個(gè)葉節(jié)點(diǎn)203。
基于上述樹(shù)狀結(jié)構(gòu),在本發(fā)明一些實(shí)施例中,為了實(shí)現(xiàn)組播流的轉(zhuǎn)發(fā),根節(jié)點(diǎn)201用于執(zhí)行如圖4所示的過(guò)程,該過(guò)程包括:
步驟401:獲取能夠接收待發(fā)送的組播流的至少一個(gè)葉節(jié)點(diǎn)203的葉節(jié)點(diǎn)信息;
步驟402:在預(yù)設(shè)的組播指示信息包括的各個(gè)比特位中查找到與獲取的至少一個(gè)葉節(jié)點(diǎn)信息分別對(duì)應(yīng)的比特位,并將查找到的比特位置1、且將未被查找到的比特位置0;
步驟403:將置位處理后的組播指示信息與該組播流發(fā)送給與根節(jié)點(diǎn)201連接的每個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)202;其中,預(yù)設(shè)的組播指示信息中包括的每個(gè)比特位分別對(duì)應(yīng)一個(gè)葉節(jié)點(diǎn)信息、且各個(gè)比特位分別對(duì)應(yīng)的葉節(jié)點(diǎn)信息不同。
相應(yīng)地,每個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)202用于執(zhí)行如圖5所示的過(guò)程,該過(guò)程包括:
步驟501:接收與該轉(zhuǎn)發(fā)節(jié)點(diǎn)202連接的上游節(jié)點(diǎn)發(fā)送的組播指示信息和組播流;
步驟502:根據(jù)組播指示信息中被置位為1的比特位,以及該組播指示信息中各個(gè)比特位分別對(duì)應(yīng)的葉節(jié)點(diǎn)信息,確定能夠接收該組播流的葉節(jié)點(diǎn)203;
步驟503:將接收的該組播指示信息和組播流轉(zhuǎn)發(fā)給與該轉(zhuǎn)發(fā)節(jié)點(diǎn)202連接的、且與確定出的葉節(jié)點(diǎn)203之間存在通信路徑的下游節(jié)點(diǎn)。
相應(yīng)地,每個(gè)葉節(jié)點(diǎn)203用于執(zhí)行如圖6所示的過(guò)程,具體包括:
步驟601:接收該葉節(jié)點(diǎn)203連接的上游節(jié)點(diǎn)發(fā)送的組播指示信息和組播流;
步驟602:該葉節(jié)點(diǎn)確認(rèn)所接收到的組播指示信息中包括的、與該葉節(jié)點(diǎn)的葉節(jié)點(diǎn)信息對(duì)應(yīng)的比特位被置位為1。
在上述組播流的轉(zhuǎn)發(fā)系統(tǒng)中,根節(jié)點(diǎn)根據(jù)組播流的葉節(jié)點(diǎn)的葉節(jié)點(diǎn)信息,可以對(duì)預(yù)設(shè)的組播指示信息進(jìn)行置位處理,得到能夠指示組播流的葉節(jié)點(diǎn)的組播指示信息后,可以將該組播指示信息下發(fā)到下游節(jié)點(diǎn);下游的各轉(zhuǎn)發(fā)節(jié)點(diǎn)接收到組播指示信息后,可以根據(jù)該組播指示信息確定出組播流的葉節(jié)點(diǎn),從而可以使得組播流沿著根節(jié)點(diǎn)到能夠接收該組播流的葉節(jié)點(diǎn)之間的通信路徑逐跳轉(zhuǎn)發(fā)到相應(yīng)的葉節(jié)點(diǎn),實(shí)現(xiàn)組播流的正確轉(zhuǎn)發(fā)。
可以看到,在本發(fā)明實(shí)施例所提供的組播流的轉(zhuǎn)發(fā)系統(tǒng)中,各個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)通過(guò)置位后的組播流指示信息來(lái)確定組播流的葉節(jié)點(diǎn),實(shí)現(xiàn)組播流的正確轉(zhuǎn)發(fā),因而能夠降低組播延遲,提高組播流的傳輸效率。
具體地,在本發(fā)明一些實(shí)施例中,還提供了上述預(yù)設(shè)的組播指示信息的生成過(guò)程。圖7示出了本發(fā)明一些實(shí)施例所提供的組播流的轉(zhuǎn)發(fā)系統(tǒng)中預(yù)設(shè)的組播指示信息的生成流程示意圖。
如圖7所示,該流程中包括:
步驟701:每個(gè)葉節(jié)點(diǎn)確定該葉節(jié)點(diǎn)占據(jù)組播指示信息中的比特位信息,并將該葉節(jié)點(diǎn)的葉節(jié)點(diǎn)信息和確定的比特位信息構(gòu)成信息對(duì),上報(bào)給與該葉節(jié)點(diǎn)連接的上游節(jié)點(diǎn);
步驟702:每個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)接收并保存與該轉(zhuǎn)發(fā)節(jié)點(diǎn)連接的下游節(jié)點(diǎn)發(fā)送的葉節(jié)點(diǎn)信息和比特位信息構(gòu)成的信息對(duì),并將該信息對(duì)上報(bào)給與該轉(zhuǎn)發(fā)節(jié)點(diǎn)連接的上游節(jié)點(diǎn);
步驟703:根節(jié)點(diǎn)接收與該根節(jié)點(diǎn)連接的各個(gè)下游節(jié)點(diǎn)分別上報(bào)的葉節(jié)點(diǎn)信息和比特位信息構(gòu)成的信息對(duì);根據(jù)接收的各個(gè)信息對(duì)生成并保存預(yù)設(shè)的組播指示信息。
可以看到通過(guò)上述過(guò)程,根節(jié)點(diǎn)能獲知各個(gè)葉節(jié)點(diǎn)的葉節(jié)點(diǎn)信息和比特位信息構(gòu)成的信息對(duì),進(jìn)而可基于所獲取到的信息對(duì)生成預(yù)設(shè)的組播指示信息。
具體地,預(yù)設(shè)的組播指示信息的比特位數(shù)可以與系統(tǒng)中的PE數(shù)量相同,從而可以分配各個(gè)比特位分別指示系統(tǒng)中的一個(gè)PE。
具體地,本發(fā)明上述實(shí)施例中各個(gè)葉節(jié)點(diǎn)占據(jù)組播指示信息中的比特位信息具體可以是預(yù)先配置到各個(gè)葉結(jié)點(diǎn)上的,各個(gè)葉節(jié)點(diǎn)的葉結(jié)點(diǎn)信息具體可以是葉結(jié)點(diǎn)的標(biāo)識(shí)ID(比如葉節(jié)點(diǎn)的IP地址);上述由葉節(jié)點(diǎn)信息與比特位信息構(gòu)成的信息對(duì)具體可以是葉結(jié)點(diǎn)的標(biāo)識(shí)ID與比特位信息構(gòu)成的信息對(duì)。
舉例來(lái)說(shuō),對(duì)于一個(gè)葉節(jié)點(diǎn),假設(shè)該葉節(jié)被配置的該葉結(jié)點(diǎn)占據(jù)組播指示信息中的比特位為2,該葉結(jié)點(diǎn)的ID為該葉結(jié)點(diǎn)的IP地址,那么該葉結(jié)點(diǎn)所上報(bào)的信息對(duì)可以表示為(葉結(jié)點(diǎn)的IP地址,2);位于該葉結(jié)點(diǎn)與根節(jié)點(diǎn)的通信路徑上的各轉(zhuǎn)發(fā)節(jié)點(diǎn)可以逐跳接收該信息對(duì)并進(jìn)行保存,根節(jié)點(diǎn)接收該信息對(duì)后,便可以設(shè)置組播指示信息的第2個(gè)比特位對(duì)應(yīng)該葉節(jié)點(diǎn)的IP地址;
在后續(xù)組播流的轉(zhuǎn)發(fā)過(guò)程中,如果該葉結(jié)點(diǎn)為組播組成員,那么根節(jié)點(diǎn)便可以將組播指示信息的第2個(gè)比特位置1,以指示該葉節(jié)點(diǎn)可以接收組播流;相應(yīng)地,如果該葉結(jié)點(diǎn)不是組播組成員,那么根節(jié)點(diǎn)便可以將組播指示信息的第2個(gè)比特位置0,以指示該葉節(jié)點(diǎn)不可以接收組播流。
進(jìn)一步地,在本發(fā)明一些實(shí)施例中,根節(jié)點(diǎn)生成預(yù)設(shè)的組播指示信息之后,可以將生成的組播指示信息發(fā)送給與該根節(jié)點(diǎn)分別連接的各個(gè)下游節(jié)點(diǎn);各個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)接收并保存與該轉(zhuǎn)發(fā)節(jié)點(diǎn)連接的上游節(jié)點(diǎn)發(fā)送的組播指示信息。
具體地,根節(jié)點(diǎn)可以將組播指示信息以信令報(bào)文的形式單獨(dú)下發(fā),并指示接收到組播指示信息的各個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)保存所接收到的組播指示信息。
對(duì)于本發(fā)明上述實(shí)施例中根節(jié)點(diǎn)、各個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)以及各個(gè)葉結(jié)點(diǎn)上的處理過(guò)程,下面以圖3所示的樹(shù)狀結(jié)構(gòu)為例,進(jìn)行示例性地說(shuō)明。
為了簡(jiǎn)化描述,下文將使用(S,G)表示待發(fā)送的組播流,其中,S表示組播源IP地址,G表示組播組IP地址;使用葉結(jié)點(diǎn)ID表示葉節(jié)點(diǎn)信息;使用比特(BIT)表示葉節(jié)點(diǎn)占據(jù)組播指示信息中的比特位信息;使用比特流(BitString)表示預(yù)設(shè)的組播指示信息,BitString中包括若干個(gè)比特位,每個(gè)比特位對(duì)應(yīng)一個(gè)葉結(jié)點(diǎn)的ID。
假設(shè)CE1連接組播流(S,G)的組播源,CE2、CE4連接有組播流(S,G)的接收者,如圖3所示的樹(shù)狀結(jié)構(gòu)中的PE1相當(dāng)于根節(jié)點(diǎn)201;PE2、PE4相當(dāng)于能夠接收待發(fā)送組播流(S,G)的2個(gè)葉節(jié)點(diǎn)203;P6、P7、P8相當(dāng)于3個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)202。P6、P7這兩個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)位于根節(jié)點(diǎn)PE1與葉節(jié)點(diǎn)PE2之間的通信路徑上,P6、P7、P8這三個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)位于根節(jié)點(diǎn)PE1與葉節(jié)點(diǎn)PE4之間的通信路徑上。
具體地,作為根節(jié)點(diǎn)的PE1可以首先獲取作為待發(fā)送組播流(S,G)葉節(jié)點(diǎn)的PE2、PE4的BIT(假設(shè)PE2的BIT被配置為2,指示在預(yù)設(shè)的BitString中表示該P(yáng)E2的比特位為第2個(gè)比特位;假設(shè)PE4的BIT被配置為4,指示在預(yù)設(shè)的BitString中表示該P(yáng)E4的比特位為第4個(gè)比特位);
進(jìn)而,作為根節(jié)點(diǎn)的PE1可以在預(yù)設(shè)的BitString(假設(shè)為由5個(gè)比特位構(gòu)成)的各個(gè)比特位中查找到與獲取的PE2、PE4的BIT分別對(duì)應(yīng)的比特位,再進(jìn)行置位,得到對(duì)應(yīng)組播流(S,G)的BitString=0x01010,其中,第2位比特位和第4位比特位被置1,其它比特位被置0;
進(jìn)而,作為根節(jié)點(diǎn)的PE1可以將置位處理后的對(duì)應(yīng)組播流(S,G)的BitString發(fā)送給與PE1連接的轉(zhuǎn)發(fā)節(jié)點(diǎn)P6,轉(zhuǎn)發(fā)節(jié)點(diǎn)P6接收并保存后,可以根據(jù)該對(duì)應(yīng)組播流(S,G)的BitString(0x01001)中被置位為1的比特位(第2位和第4位),確定能夠接收該組播流(S,G)的葉節(jié)點(diǎn)PE2和PE4,進(jìn)而在接收到該組播流(S,G)后,可以將該組播流(S,G)的下發(fā)到與其連接的PE2,以及與其連接的、并與PE5之間存在通信路徑的P8,由P8根據(jù)所保存的該對(duì)應(yīng)組播流(S,G)的BitString(0x01001),將該組播流(S,G)的下發(fā)到與其連接的PE5。
為了更清楚地說(shuō)明本發(fā)明上述實(shí)施例所提供的組播流的轉(zhuǎn)發(fā)系統(tǒng),下面將基于互聯(lián)網(wǎng)信息文檔(Request For Comments,RFC)中的RFC6513、RFC6514、RFC6625,以及申請(qǐng)?zhí)枮镃N201610546280.5(一種建立組播隧道的方法和裝置)的專(zhuān)利申請(qǐng)文件,并基于圖3所示的系統(tǒng)架構(gòu)示意圖,對(duì)本發(fā)明一些實(shí)施例所提供的組播流的轉(zhuǎn)發(fā)系統(tǒng)中根節(jié)點(diǎn)、轉(zhuǎn)發(fā)節(jié)點(diǎn)以及葉節(jié)點(diǎn)之間的通信過(guò)程進(jìn)行示例性的說(shuō)明。
圖8示出了本發(fā)明一些實(shí)施例提供的組播流的轉(zhuǎn)發(fā)系統(tǒng)中根節(jié)點(diǎn)、轉(zhuǎn)發(fā)節(jié)點(diǎn)以及葉節(jié)點(diǎn)之間通信過(guò)程的示意圖。
首先對(duì)下文中涉及到的部分術(shù)語(yǔ)列舉如下:
BGP:Border Gateway Protocol,邊界網(wǎng)關(guān)協(xié)議;
RSVP:Resource Reservation Protocol,資源預(yù)留協(xié)議;
RSVP-TE:Resource Reservation Protocol-Traffic Engineering,基于流量工程擴(kuò)展的資源預(yù)留協(xié)議;
PIM:Protocol Independent Multicast,協(xié)議無(wú)關(guān)組播;
P2MP:Point to Multi-Point,點(diǎn)到多點(diǎn);
LSP:Label Switch Path,標(biāo)簽交換路徑;
LSR:Label Switching Route,LSP上的節(jié)點(diǎn)可稱(chēng)為標(biāo)簽交換路由器;
P2MP LSP:點(diǎn)到多點(diǎn)的標(biāo)簽交換路徑;
Sub LSP:P2MP LSP中,從一個(gè)根節(jié)點(diǎn)到一個(gè)葉節(jié)點(diǎn)的LSP路徑;
Inclusive-PMSI:Inclusive provider multicast service interface,相容性運(yùn)營(yíng)商組播業(yè)務(wù)接口;本文中使用相容性點(diǎn)到多點(diǎn)(Inclusive P2MP)隧道表示Selective-PMSI隧道;
Selective-PMSI:Selective provider multicast service interface,選擇性運(yùn)營(yíng)商組播業(yè)務(wù)接口;本中文使用選擇性點(diǎn)到多點(diǎn)(Selective P2MP)隧道表示Selective-PMSI隧道。
如圖8所示:
首先,根節(jié)點(diǎn)(PE1)通過(guò)轉(zhuǎn)發(fā)節(jié)點(diǎn)(P6、P7、P8)與葉節(jié)點(diǎn)(PE2、PE3、PE4、PE5)之間進(jìn)行路由發(fā)現(xiàn):
S1:PE2、PE3、PE4、PE5上報(bào)BGP自動(dòng)發(fā)現(xiàn)(auto-discovery,AD)路由(route)消息(BGP Intra AD route);
S2:PE1向PE2、PE3、PE4、PE5下發(fā)SPMSI(BGP Spmsi(*,*)AD route)消息,通過(guò)該消息收集組播流(S,G)的葉節(jié)點(diǎn)列表。
然后,根節(jié)點(diǎn)(PE1)建立Inclusive P2MP隧道,其中,根節(jié)點(diǎn)(PE1)與各個(gè)葉節(jié)點(diǎn)(PE2、PE3、PE4、PE5)分別建立起SubLSP,:
S3:PE1下發(fā)與PE2之間的SubLSP(1)路徑消息(SubLSP(1)Path),并在該消息中攜帶指示轉(zhuǎn)發(fā)節(jié)點(diǎn)(Branch節(jié)點(diǎn))(P6、P7)的轉(zhuǎn)發(fā)面下發(fā)為BUD節(jié)點(diǎn)的指令信息;SubLSP(1)Path消息沿著PE1與PE2之間的通信路徑透?jìng)髦寥~結(jié)點(diǎn)PE2,沿途建立路徑狀態(tài);
類(lèi)似地,PE1還下發(fā)與PE3間的SubLSP(2)路徑消息(SubLSP(2)Path)、與PE4之間的SubLSP(3)路徑消息(SubLSP(3)Path)、以及與PE5之間的SubLSP(4)路徑消息(SubLSP(4)Path);
SubLSP(2)Path消息沿著PE1與PE3間的通信路徑透?jìng)髦寥~結(jié)點(diǎn)PE3,指示Branch節(jié)點(diǎn)(P6、P7)的轉(zhuǎn)發(fā)面下發(fā)為BUD節(jié)點(diǎn),沿途建立路徑狀態(tài);
SubLSP(3)Path消息沿著PE1與PE4間的通信路徑透?jìng)髦寥~結(jié)點(diǎn)PE4,指示Branch節(jié)點(diǎn)(P6、P7、P8)的轉(zhuǎn)發(fā)面下發(fā)為BUD節(jié)點(diǎn),沿途建立路徑狀態(tài);
SubLSP(4)Path消息沿著PE1與PE5間的通信路徑透?jìng)髦寥~結(jié)點(diǎn)PE5,指示Branch節(jié)點(diǎn)(P6、P7、P8)的轉(zhuǎn)發(fā)面下發(fā)為BUD節(jié)點(diǎn),沿途建立路徑狀態(tài);
S4:PE2接收SubLSP(1)Path消息后,進(jìn)行資源預(yù)留,上報(bào)RSVP下的Resv消息,并在其中攜帶由PE2的LSR ID(具體可以是PE2的IP地址)和PE2被配置的BIT組成的信息對(duì)(Resv(LSRPE2ID,LSRPE2BIT));
Resv(LSRPE2ID,LSRPE2BIT)消息沿著PE2與PE1之間的通信路徑透?jìng)髦粮Y(jié)點(diǎn)PE1,沿途建立資源預(yù)留狀態(tài),(LSRPE2ID,LSRPE2BIT)被沿途各個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)(P6、P7)接收并保存;
類(lèi)似地,PE3接收SubLSP(2)Path消息后,進(jìn)行資源預(yù)留,上報(bào)Resv(LSRPE3ID,LSRPE3BIT)消息;Resv(LSRPE3ID,LSRPE3BIT)消息沿著PE3與PE1之間的通信路徑透?jìng)髦粮Y(jié)點(diǎn)PE1,沿途建立資源預(yù)留狀態(tài),(LSRPE3ID,LSRPE3BIT)被沿途各個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)(P6、P7)接收并保存;
類(lèi)似地,PE4接收SubLSP(3)Path消息后,進(jìn)行資源預(yù)留,上報(bào)Resv(LSRPE4ID,LSRPE4BIT)消息;Resv(LSRPE4ID,LSRPE4BIT)消息沿著PE4與PE1之間的通信路徑透?jìng)髦粮Y(jié)點(diǎn)PE1,沿途建立資源預(yù)留狀態(tài),(LSRPE4ID,LSRPE4BIT)被沿途各個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)(P6、P7、P8)接收并保存;
類(lèi)似地,PE5接收SubLSP(4)Path消息后,進(jìn)行資源預(yù)留,上報(bào)Resv(LSRPE5ID,LSRPE5BIT)消息;Resv(LSRPE5ID,LSRPE5BIT)消息沿著PE5與PE1之間的通信路徑透?jìng)髦粮Y(jié)點(diǎn)PE1,沿途建立資源預(yù)留狀態(tài),(LSRPE5ID,LSRPE5BIT)被沿途各個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)(P6、P7、P8)接收并保存;
通過(guò)上述步驟,根節(jié)點(diǎn)PE1建立起Inclusive P2MP隧道,PE1與各個(gè)葉節(jié)點(diǎn)(PE2、PE3、PE4、PE5)之間分別建立起SubLSP,并且在建立Inclusive P2MP隧道的各SubLSP的過(guò)程中:
根節(jié)點(diǎn)PE1獲取到了葉節(jié)點(diǎn)PE2、PE3、PE4、PE5的(LSRPE2ID,LSRPE2BIT)、(LSRPE3ID,LSRPE3BIT)、(LSRPE4ID,LSRPE4BIT)、(LSRPE5ID,LSRPE5BIT);各個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)的轉(zhuǎn)發(fā)面下發(fā)為BUD;同時(shí)各個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)保存了其所位于的通信路徑對(duì)應(yīng)的葉節(jié)點(diǎn)的(LSR ID,LSR BIT)。
具體地,在本發(fā)明一些實(shí)施例中,可以使用申請(qǐng)?zhí)枮镃N201610546280.5(一種建立組播隧道的方法和裝置)的專(zhuān)利申請(qǐng)文件所公開(kāi)的技術(shù)方案建立組播隧道,通過(guò)該技術(shù)方案可建立同路徑的多個(gè)組播隧道(共路批量隧道)。
具體地,基于申請(qǐng)?zhí)枮镃N201610546280.5(一種建立組播隧道的方法和裝置)的專(zhuān)利申請(qǐng)文件所公開(kāi)的技術(shù)方案,在本發(fā)明一些實(shí)施例中:
根節(jié)點(diǎn)在創(chuàng)建隧道時(shí),可以指定批量隧道的數(shù)目(blocksize),在批量隧道建立時(shí),每個(gè)下游節(jié)點(diǎn)申請(qǐng)大小為blocksize的連續(xù)的標(biāo)簽塊,并將標(biāo)簽塊基值(LabelBase)發(fā)給上游,形成一個(gè)大小為blocksize的共路批量隧道,批量隧道中的每個(gè)隧道通過(guò)偏移值(offset)標(biāo)識(shí);
同時(shí),根節(jié)點(diǎn)可以配置所建立的批量隧道中的首隧道(偏移值offset=0的隧道)作為信令隧道,并指示Branch節(jié)點(diǎn)強(qiáng)制變更為BUD節(jié)點(diǎn),將Branch節(jié)點(diǎn)下發(fā)轉(zhuǎn)發(fā)面時(shí)按BUD節(jié)點(diǎn)下發(fā),使得隧道上的每個(gè)LSR節(jié)點(diǎn)都將信令報(bào)文落地送給控制面;具體比如,根節(jié)點(diǎn)可以在下發(fā)RSVP(sessID,LSR ID<每個(gè)LSR一條>,range)建立隧道時(shí),擴(kuò)展攜帶兩個(gè)字段(Flag=CTL-PMSI,offset=0),來(lái)指示RSVP-TE建隧道時(shí)將offset=0的子隧道的Branch節(jié)點(diǎn)強(qiáng)制變更為BUD。
進(jìn)一步地,由于通過(guò)上述過(guò)程,PE1獲取到了PE2、PE3、PE4、PE5的(LSR PE2ID,LSRPE2BIT)、(LSRPE3ID,LSRPE3BIT)、(LSRPE4ID,LSRPE4BIT)、(LSRPE5ID,LSRPE5BIT);各個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)的轉(zhuǎn)發(fā)面下發(fā)為BUD;同時(shí)各個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)保存了其所位于的通信路徑對(duì)應(yīng)的葉節(jié)點(diǎn)的(LSR ID,LSR BIT);
進(jìn)而,在本發(fā)明一些實(shí)施例中,PE1便可以基于所獲取到的PE2、PE3、PE4、PE5的(LSRPE2ID,LSRPE2BIT)、(LSRPE3ID,LSRPE3BIT)、(LSRPE4ID,LSRPE4BIT)、(LSRPE5ID,LSRPE5BIT),生成組播指示消息BitString,BitString中的各個(gè)比特位所對(duì)應(yīng)的葉節(jié)點(diǎn)的ID,由各個(gè)葉節(jié)點(diǎn)的BIT確定。
比如,假設(shè)LSRPE2BIT為2,LSRPE3BIT為3,LSRPE4BIT為4,LSRPE5BIT為5,并假設(shè)BitString包括5個(gè)比特位(位數(shù)可以由當(dāng)前網(wǎng)絡(luò)的所有PE決定),因而在BitString的這5個(gè)比特位中,第2位對(duì)應(yīng)PE2的ID,指示PE2;第3位對(duì)應(yīng)PE3的ID,指示PE3;第4位對(duì)應(yīng)PE4的ID,指示PE4;第5位對(duì)應(yīng)PE5的ID,指示PE5。
基于上述過(guò)程,PE1便可以根據(jù)獲取到的能夠接收待發(fā)送的組播流(S,G)的葉節(jié)點(diǎn)的ID,對(duì)BitString進(jìn)行置位處理。根節(jié)點(diǎn)可通過(guò)SPMSI(*,*)AD路由收集組播流(S,G)的葉節(jié)點(diǎn)列表;
假設(shè)組播流(S,G)的葉節(jié)點(diǎn)的ID包括PE2,那么置位處理后的BitString可表示為0x01000,PE1進(jìn)而可以將置位處理后的BitString發(fā)送逐跳傳遞給各個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn),各個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)保存該BitString,完成Selective P2MP的建立;
進(jìn)而,根節(jié)點(diǎn)可以將組播流(S,G)通過(guò)建立起的Selective P2MP到達(dá)能夠接收該組播流(S,G)的PE2,完成組播數(shù)據(jù)的按需復(fù)制。
具體地,圖8中進(jìn)一步地示出了本發(fā)明一些實(shí)施例所提供的組播流的轉(zhuǎn)發(fā)系統(tǒng)實(shí)現(xiàn)組播流轉(zhuǎn)發(fā)的信令流程。如圖8所示,該流程包括有:
S5:CE2向PE2發(fā)送用于請(qǐng)求獲取組播流(S,G)的協(xié)議無(wú)關(guān)組播加入請(qǐng)求消息(PIM Jion);
S6:PE2向PE1透?jìng)鰾GP客戶(hù)組播(Customer-multicast)路由消息(BGP C-mcast route)消息;
S7:PE2向PE1透?jìng)鰾GP葉子AD路由消息(BGP Leaf AD route);該leaf A-D路由用于表示該葉節(jié)點(diǎn)PE2請(qǐng)求建立Selective P2MP隧道,該Leaf A-D路由包括該葉節(jié)點(diǎn)PE2的IP地址;
S8:PE1向CE1發(fā)送協(xié)議無(wú)關(guān)組播加入請(qǐng)求消息PIM Jion報(bào)文;
PE1建立Selective P2MP隧道,并根據(jù)所接收到的BGP C-mcast route消息,確定接收組播流(S,G)的葉節(jié)點(diǎn)為PE2,進(jìn)而置位BitString為0x01000;
S9:PE1將BitString(0x01000)沿著所建立的Inclusive P2MP隧道Flush到各個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn),由各個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)進(jìn)行保存;
S10:由于通過(guò)上述過(guò)程,各個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)上均保存了用于確定組播流(S,G)的葉節(jié)點(diǎn)信息BitString(0x01000),因而,PE1可以將組播流(S,G)導(dǎo)入Selective P2MP隧道,復(fù)制到PE2上;
可以看到,通過(guò)上述過(guò)程,CE2的組播加入延遲僅為1跳,組播加入延遲得到了明顯的改善,解決了傳統(tǒng)Selective P2MP的組播加入延遲大的問(wèn)題。
進(jìn)一步地,如果PE5接收到CE5發(fā)送的用于請(qǐng)求獲取組播流(S,G)的PIM Jion報(bào)文(S11),則;
S12:PE5向PE1透?jìng)鰾GP C-mcast route消息;
S13:PE5向PE1透?jìng)鰾GP Leaf AD route消息;該leaf A-D路由用于表示該葉節(jié)點(diǎn)PE5請(qǐng)求加入Selective P2MP隧道,該Leaf A-D路由包括該葉節(jié)點(diǎn)PE5的IP地址;
PE1刷新Selective P2MP隧道,并根據(jù)所接收到的BGP C-mcast route消息,確定接收組播流(S,G)的葉節(jié)點(diǎn)還包括PE5,進(jìn)而刷新BitString為0x01001;
S14:PE1將新的BitString(0x01001)沿著所建立的Inclusive P2MP隧道再次Flush到各個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn),由各個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)刷新所保存的BitString為0x01001;
S15:由于通過(guò)上述過(guò)程,各個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)上均保存了組播流(S,G)新的BitString(0x01001),因而,組播流(S,G)保持在Selective P2MP隧道,復(fù)制到PE5上。
可以看到,通過(guò)上述過(guò)程,CE5的組播加入延遲僅為1跳,因而解決了傳統(tǒng)Selective P2MP的組播加入延遲大的問(wèn)題。
與前文相應(yīng)地,假設(shè)本發(fā)明一些實(shí)施例使用申請(qǐng)?zhí)枮镃N201610546280.5(一種建立組播隧道的方法和裝置)的專(zhuān)利申請(qǐng)文件所公開(kāi)的技術(shù)方案,建立有同路徑的多個(gè)組播隧道,且在這些實(shí)施例中根節(jié)點(diǎn)配置所建立的批量隧道中的首隧道(offset=0的隧道)作為信令隧道,并指示offset=0的隧道的Branch節(jié)點(diǎn)強(qiáng)制變更為BUD節(jié)點(diǎn):
進(jìn)而,根節(jié)點(diǎn)PE1可通過(guò)SPMSI(*,*)AD路由收集每組播流(S,G)的葉(Leaf)節(jié)點(diǎn)列表,當(dāng)葉節(jié)點(diǎn)上報(bào)組播流(S,G)的葉節(jié)點(diǎn)信息時(shí),根節(jié)點(diǎn)PE1為組播流(S,G)分配offset(假設(shè)表示為offset=NNN),并將根據(jù)組播流(S,G)的葉節(jié)點(diǎn)信息組裝成BitString,然后通過(guò)信令隧道(offset=0)發(fā)送(offset=NNN,BitString)信息;各個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)控制面接收同樣的(offset=NNN,BitString)信息之后,下發(fā)(offset=NNN的隧道)轉(zhuǎn)發(fā)信息,完成Selective P2MP的建立;
完成上述過(guò)程之后,可以繼續(xù)使用上述申請(qǐng)?zhí)枮镃N201610546280.5的專(zhuān)利申請(qǐng)文件所公開(kāi)的技術(shù)方案,由根節(jié)點(diǎn)PE1將組播流(S,G)導(dǎo)入到(offset=NNN)的隧道中,流量Selective P2MP到達(dá)相應(yīng)的葉節(jié)點(diǎn),完成組播數(shù)據(jù)的按需復(fù)制。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例中組播指示信息的生成以及如何通過(guò)組播指示信息實(shí)現(xiàn)組播流的轉(zhuǎn)發(fā)、降低組播時(shí)延,下面對(duì)本發(fā)明一些實(shí)施例在基于使用申請(qǐng)?zhí)枮镃N201610546280.5的專(zhuān)利申請(qǐng)文件所公開(kāi)的技術(shù)方案的基礎(chǔ)上,建立同路徑的多個(gè)組播隧道并實(shí)現(xiàn)組播流的轉(zhuǎn)發(fā)過(guò)程進(jìn)行闡述。
基于圖3所示的本發(fā)明一些實(shí)施例所提供的組播流的轉(zhuǎn)發(fā)系統(tǒng)在實(shí)際場(chǎng)景中的拓?fù)浣Y(jié)構(gòu),圖9示出了本發(fā)明一些實(shí)施例提供的組播流的轉(zhuǎn)發(fā)系統(tǒng)中根節(jié)點(diǎn)下發(fā)的報(bào)文以及轉(zhuǎn)發(fā)節(jié)點(diǎn)根據(jù)根節(jié)點(diǎn)下發(fā)的報(bào)文進(jìn)行轉(zhuǎn)發(fā)的示意圖
如圖9所示,該組播流的轉(zhuǎn)發(fā)系統(tǒng)中,CE1連接BTV服務(wù)器(Server),BTV服務(wù)器提供組播流(S,G1)、組播流(S,G2)以及組播流(S,G3);CE1連接到PE1;能夠接收組播流(S,G1)的葉節(jié)點(diǎn)包括PE2、PE3、PE4、PE5;能夠接收組播流(S,G2)的葉節(jié)點(diǎn)為PE2;能夠接收組播流(S,G3)的葉節(jié)點(diǎn)包括PE3、PE4、PE5;
P6與P7之間進(jìn)行通信的接口為if1;P7與PE2之間進(jìn)行通信的接口為if1;P7與PE3之間進(jìn)行通信的接口為if2;P7與P8之間進(jìn)行通信的接口為if3;P9與PE4之間進(jìn)行通信的接口為if1;P9與PE5之間進(jìn)行通信的接口為if2。
如圖9所示,PE1在實(shí)現(xiàn)組播流的轉(zhuǎn)發(fā)過(guò)程中:
1、使用申請(qǐng)?zhí)枮镃N201610546280.5的專(zhuān)利申請(qǐng)文件所公開(kāi)的技術(shù)方案建立同路徑的多個(gè)組播隧道(批量隧道);
2、在使用上述技術(shù)方案建立批量隧道時(shí),按照預(yù)先確定的策略,將所建立的批量隧道中的首隧道(Offset=0的隧道)標(biāo)識(shí)為CTL-PMSI,其特征在于Branch節(jié)點(diǎn)強(qiáng)制變更為Bud節(jié)點(diǎn)處理,進(jìn)而該隧道上的協(xié)議報(bào)文除了按P2MP往下游節(jié)點(diǎn)復(fù)制之外,還會(huì)本地上送,在本地進(jìn)行保存。
具體比如,可以在下發(fā)RSVP消息用以建立批量隧道時(shí),擴(kuò)展攜帶兩個(gè)字段(Flag=CTL-PMSI,Offset=0),以指示RSVP-TE建隧道時(shí)將Offset=0的隧道的Branch節(jié)點(diǎn)強(qiáng)制變更為Bud節(jié)點(diǎn);
3、下發(fā)(sessID,List<LSR BIT,LSR ID>);用于將PE2、PE3、PE4、PE5的LSR BIT與LSR ID的對(duì)應(yīng)關(guān)系下發(fā)到各個(gè)節(jié)點(diǎn),由各個(gè)節(jié)點(diǎn)往下游節(jié)點(diǎn)復(fù)制并在本地上送保存;
4、下發(fā)(sessID,Offset=1/2/3,BitString>;分別用于創(chuàng)建(S,G1)、(S,G2)、(S,G3)的Selective P2MP隧道;
具體地,根據(jù)能接收組播流(S,G1)的葉節(jié)點(diǎn)信息,PE1為組播流(S,G1)分配Offset=1的隧道,置位BitString=0x01111;根據(jù)能接收組播流(S,G2)的葉節(jié)點(diǎn)信息,PE1為組播流(S,G2)分配Offset=2的隧道,置位BitString=0x01000;根據(jù)能接收組播流(S,G3)的葉節(jié)點(diǎn)信息,PE1為組播流(S,G3)分配Offset=3的隧道,置位BitString=0x00111;
具體地,上述2、3的報(bào)文通過(guò)offset=0的首隧道,發(fā)送給各個(gè)LSR節(jié)點(diǎn)。
由于在本發(fā)明一些實(shí)施例中,各個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)在建立隧道的過(guò)程中能夠接收并保存葉節(jié)點(diǎn)的信息對(duì)<LSR BIT,LSR ID>,因而2中的報(bào)文為可選下發(fā)的。
進(jìn)而,P6、P7以及P8在接收PE1發(fā)送的上述報(bào)文后可以在本地進(jìn)行保存報(bào)文,進(jìn)而可以根據(jù)所保存的報(bào)文執(zhí)行本地處理,實(shí)現(xiàn)組播流的轉(zhuǎn)發(fā):
如圖9所示,P6根據(jù)本地保存的上述報(bào)文,在控制面的處理包括:
Offset=1,BitString=0x01111;
{根據(jù)該BitString=0x01111,確定出接口列表(Out-interface-List,OifList)的過(guò)程如下:
==>BIT(0x01000)if1;
==>BIT(0x00100)if1;
==>BIT(0x00010)if1;
==>BIT(0x00001)if1;
==>(Offset=1,OifList=if1);}
Offset=2,BitString=0x01000;
{相應(yīng)地,==>(Offset=2,OifList=if1);}
Offset=3,BitString=0x00111;
{相應(yīng)地,==>(Offset=3,OifList=if1);}
類(lèi)似地,P7根據(jù)本地保存的上述報(bào)文,在控制面的處理包括:
Offset=1,BitString=0x01111;
{根據(jù)該BitString=0x01111,確定出接口列表的過(guò)程如下:
==>BIT(0x01000)if1;
==>BIT(0x00100)if2;
==>BIT(0x00010)if3;
==>BIT(0x00001)if3;
==>(Offset=1,OifList=if1/if2/if3);}
Offset=2,BitString=0x01000;
{相應(yīng)地,==>(Offset=2,OifList=if1);}
Offset=3,BitString=0x00111;
{相應(yīng)地,==>(Offset=3,OifList=if2/if3);}
類(lèi)似地,P8根據(jù)本地保存的上述報(bào)文,在控制面的處理包括:
Offset=1,BitString=0x01111;
{根據(jù)該BitString=0x01111,確定出接口列表的過(guò)程如下:
==>BIT(0x01000)if-;(if-表示無(wú)效出接口)
==>BIT(0x00100)if-;
==>BIT(0x00010)if1;
==>BIT(0x00001)if2;
==>(Offset=1,OifList=if1/if2);}
Offset=2,BitString=0x01000;
{相應(yīng)地,==>(Offset=2,OifList=null);}
Offset=3,BitString=0x00111;
{相應(yīng)地,==>(Offset=3,OifList=if1/if2);}
進(jìn)而,P6、P7與P8在接收到組播流((S,G1)、(S,G2)、(S,G3)中的任一個(gè)或多個(gè))以后,都可以根據(jù)各自所保存的報(bào)文在控制面進(jìn)行本地處理,從而分別確定出對(duì)應(yīng)各個(gè)組播流的Offset和OifList,實(shí)現(xiàn)組播流的轉(zhuǎn)發(fā)。
通過(guò)以上描述可以看出,在本發(fā)明一些實(shí)施例中,根節(jié)點(diǎn)可以將所建立的多個(gè)隧道的首隧道(offset=0的隧道)作為信令隧道,將Branch節(jié)點(diǎn)下發(fā)轉(zhuǎn)發(fā)面時(shí)按Bud節(jié)點(diǎn)下發(fā),使得隧道上的每個(gè)LSR節(jié)點(diǎn)都會(huì)將信令報(bào)文落地送給控制面;并通過(guò)在創(chuàng)建Inclusive P2MP隧道的各SubLSP的過(guò)程中,將各葉子節(jié)點(diǎn)的(LSR ID,LSR BIT)的對(duì)應(yīng)關(guān)系傳遞到各LSR節(jié)點(diǎn);進(jìn)而根節(jié)點(diǎn)可以收集到各個(gè)組播流的葉子節(jié)點(diǎn),根據(jù)(LSR ID,LSR BIT)信息組成BitString,并將組播流(S,G)對(duì)應(yīng)的offset值,以及組播流(S,G)的BitString,組成(offset,BitString)的信息,通過(guò)信令隧道傳遞到Inclusive P2MP的各LSR節(jié)點(diǎn),各LSR節(jié)點(diǎn)建立或刷新轉(zhuǎn)發(fā)信息,完成Selective P2MP的建立。
基于相同的技術(shù)構(gòu)思,圖10為本發(fā)明一些實(shí)施例提供的組播流的轉(zhuǎn)發(fā)裝置的結(jié)構(gòu)示意圖。如圖10所示的裝置部署在根節(jié)點(diǎn),可應(yīng)用于如圖2所示的組播流的轉(zhuǎn)發(fā)系統(tǒng)中。如圖10所示,該裝置1000包括:
獲取模塊1001,用于獲取能夠接收待發(fā)送的組播流的至少一個(gè)葉節(jié)點(diǎn)的葉節(jié)點(diǎn)信息;
置位模塊1002,用于在預(yù)設(shè)的組播指示信息包括的各個(gè)比特位中查找到與獲取的至少一個(gè)葉節(jié)點(diǎn)信息分別對(duì)應(yīng)的比特位,并將查找到的比特位置1、且將未被查找到的比特位置0;
發(fā)送模塊1003,用于將置位處理后的組播指示信息與所述組播流發(fā)送給與所述根節(jié)點(diǎn)連接的每個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn);其中,預(yù)設(shè)的組播指示信息中包括的每個(gè)比特位分別對(duì)應(yīng)一個(gè)葉節(jié)點(diǎn)信息、且各個(gè)比特位分別對(duì)應(yīng)的葉節(jié)點(diǎn)信息不同。
在本發(fā)明一些實(shí)施例中,該裝置還包括有:
接收模塊,用于接收與所述根節(jié)點(diǎn)連接的各個(gè)下游節(jié)點(diǎn)分別上報(bào)的葉節(jié)點(diǎn)信息和比特位信息構(gòu)成的信息對(duì);
生成模塊,用于根據(jù)接收的各個(gè)信息對(duì)生成并保存預(yù)設(shè)的組播指示信息。
在本發(fā)明一些實(shí)施例中,發(fā)送模塊1003,還用于:
將生成的組播指示信息發(fā)送給與所述根節(jié)點(diǎn)分別連接的各個(gè)下游節(jié)點(diǎn)。
基于相同的技術(shù)構(gòu)思,本發(fā)明一些實(shí)施例所提供的組播流的轉(zhuǎn)發(fā)裝置解決問(wèn)題的原理以及有益效果可以參見(jiàn)上述圖2所示組播流的轉(zhuǎn)發(fā)系統(tǒng)的實(shí)施方式的相關(guān)描述以及所帶來(lái)的有益效果,該組播流的轉(zhuǎn)發(fā)裝置的實(shí)施可以參見(jiàn)上述組播流的轉(zhuǎn)發(fā)系統(tǒng)實(shí)施例中的相關(guān)實(shí)施,重復(fù)之處不再贅述。
基于相同的技術(shù)構(gòu)思,本發(fā)明一些實(shí)施例還提供一種組播流的轉(zhuǎn)發(fā)方法,該方法流程可由根節(jié)點(diǎn)執(zhí)行,應(yīng)用于如圖2所示的組播流的轉(zhuǎn)發(fā)系統(tǒng)中,所述根節(jié)點(diǎn)上具體可部署有如圖10所示的組播流的轉(zhuǎn)發(fā)裝置,該方法流程可參見(jiàn)圖4,該組播流的轉(zhuǎn)發(fā)方法的實(shí)施可以參見(jiàn)上述組播流的轉(zhuǎn)發(fā)系統(tǒng)實(shí)施例中的相關(guān)實(shí)施,此處不再贅述。
基于相同的技術(shù)構(gòu)思,圖11為本發(fā)明一些實(shí)施例提供的組播流的轉(zhuǎn)發(fā)裝置的結(jié)構(gòu)示意圖。如圖11所示的裝置部署在轉(zhuǎn)發(fā)節(jié)點(diǎn),可應(yīng)用于如圖2所示的組播流的轉(zhuǎn)發(fā)系統(tǒng)中。如圖11所示,該裝置1100包括:
接收模塊1101,用于接收與所述轉(zhuǎn)發(fā)節(jié)點(diǎn)連接的上游節(jié)點(diǎn)發(fā)送的組播指示信息和組播流;
確定模塊1102,用于根據(jù)所述組播指示信息中被置位為1的比特位,以及所述組播指示信息中各個(gè)比特位分別對(duì)應(yīng)的葉節(jié)點(diǎn)信息,確定能夠接收所述組播流的葉節(jié)點(diǎn);
轉(zhuǎn)發(fā)模塊1103,用于將接收的所述組播指示信息和組播流轉(zhuǎn)發(fā)給與所述轉(zhuǎn)發(fā)節(jié)點(diǎn)連接的、且與確定出的葉節(jié)點(diǎn)之間存在通信路徑的下游節(jié)點(diǎn)。
在本發(fā)明一些實(shí)施例中,該裝置還包括:
第一保存模塊,用于接收并保存與所述轉(zhuǎn)發(fā)節(jié)點(diǎn)連接的下游節(jié)點(diǎn)發(fā)送的葉節(jié)點(diǎn)信息和比特位信息構(gòu)成的信息對(duì),并將所述信息對(duì)上報(bào)給與所述轉(zhuǎn)發(fā)節(jié)點(diǎn)連接的上游節(jié)點(diǎn)。
在本發(fā)明一些實(shí)施例中,該裝置還包括:
第二保存模塊,用于接收并保存與所述轉(zhuǎn)發(fā)節(jié)點(diǎn)連接的上游節(jié)點(diǎn)發(fā)送的組播指示信息;所述組播指示信息為所述根節(jié)點(diǎn)生成并發(fā)送的。
基于相同的技術(shù)構(gòu)思,本發(fā)明一些實(shí)施例所提供的組播流的轉(zhuǎn)發(fā)裝置解決問(wèn)題的原理以及有益效果可以參見(jiàn)上述圖2所示組播流的轉(zhuǎn)發(fā)系統(tǒng)的實(shí)施方式的相關(guān)描述以及所帶來(lái)的有益效果,該組播流的轉(zhuǎn)發(fā)裝置的實(shí)施可以參見(jiàn)上述組播流的轉(zhuǎn)發(fā)系統(tǒng)實(shí)施例中的相關(guān)實(shí)施,重復(fù)之處不再贅述。
基于相同的技術(shù)構(gòu)思,本發(fā)明一些實(shí)施例還提供一種組播流的轉(zhuǎn)發(fā)方法,該方法流程可由轉(zhuǎn)發(fā)節(jié)點(diǎn)執(zhí)行,應(yīng)用于如圖2所示的組播流的轉(zhuǎn)發(fā)系統(tǒng)中,所述轉(zhuǎn)發(fā)節(jié)點(diǎn)上具體可部署有如圖11所示的組播流的轉(zhuǎn)發(fā)裝置,該方法流程可參見(jiàn)圖5,該組播流的轉(zhuǎn)發(fā)方法的實(shí)施可以參見(jiàn)上述組播流的轉(zhuǎn)發(fā)系統(tǒng)實(shí)施例中的相關(guān)實(shí)施,此處不再贅述。
基于相同的技術(shù)構(gòu)思,圖12為本發(fā)明一些實(shí)施例提供的組播流的轉(zhuǎn)發(fā)裝置的結(jié)構(gòu)示意圖。如圖12所示的裝置部署在葉節(jié)點(diǎn),可應(yīng)用于如圖2所示的組播流的轉(zhuǎn)發(fā)系統(tǒng)中。如圖12所示,該裝置1200包括:
接收模塊1201,用于接收所述葉節(jié)點(diǎn)連接的上游節(jié)點(diǎn)發(fā)送的組播指示信息和組播流,所述組播指示信息中包括的、與所述葉節(jié)點(diǎn)的葉節(jié)點(diǎn)信息對(duì)應(yīng)的比特位被置位為1。
在本發(fā)明一些實(shí)施例中,該裝置還包括:
上報(bào)模塊1202,用于確定所述葉節(jié)點(diǎn)占據(jù)所述組播指示信息中的比特位信息,并將所述葉節(jié)點(diǎn)的葉節(jié)點(diǎn)信息和確定的比特位信息構(gòu)成信息對(duì),上報(bào)給與所述葉節(jié)點(diǎn)連接的上游節(jié)點(diǎn)。
基于相同的技術(shù)構(gòu)思,本發(fā)明一些實(shí)施例所提供的組播流的轉(zhuǎn)發(fā)裝置解決問(wèn)題的原理以及有益效果可以參見(jiàn)上述圖2所示組播流的轉(zhuǎn)發(fā)系統(tǒng)的實(shí)施方式的相關(guān)描述以及所帶來(lái)的有益效果,該組播流的轉(zhuǎn)發(fā)裝置的實(shí)施可以參見(jiàn)上述組播流的轉(zhuǎn)發(fā)系統(tǒng)實(shí)施例中的相關(guān)實(shí)施,重復(fù)之處不再贅述。
基于相同的技術(shù)構(gòu)思,本發(fā)明一些實(shí)施例還提供一種組播流的轉(zhuǎn)發(fā)方法,該方法流程可由葉節(jié)點(diǎn)執(zhí)行,應(yīng)用于如圖2所示的組播流的轉(zhuǎn)發(fā)系統(tǒng)中,所述葉節(jié)點(diǎn)上具體可部署有如圖12所示的組播流的轉(zhuǎn)發(fā)裝置,該方法流程可參見(jiàn)圖6,該組播流的轉(zhuǎn)發(fā)方法的實(shí)施可以參見(jiàn)上述組播流的轉(zhuǎn)發(fā)系統(tǒng)實(shí)施例中的相關(guān)實(shí)施,此處不再贅述。
圖13為本發(fā)明一些實(shí)施例提供的組播流的轉(zhuǎn)發(fā)裝置的結(jié)構(gòu)示意圖。如圖13所示的裝置部署在根節(jié)點(diǎn),可應(yīng)用于如圖2所示的組播流的轉(zhuǎn)發(fā)系統(tǒng)中。
如圖13所示,裝置1300包括通信接口1301、存儲(chǔ)器1303和處理器1302,其中,通信接口1301、處理器1302、存儲(chǔ)器1303、通過(guò)總線1304相互連接;總線1304可以是外設(shè)部件互連標(biāo)準(zhǔn)(peripheral component interconnect,PCI)總線或擴(kuò)展工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)(extended industry standard architecture,EISA)總線等。所述總線可以分為地址總線、數(shù)據(jù)總線、控制總線等。為便于表示,圖13中僅用一條粗線表示,但并不表示僅有一根總線或一種類(lèi)型的總線。
所述通信接口1301用于與對(duì)端進(jìn)行通信。存儲(chǔ)器1303,用于存放程序。具體地,程序可以包括程序代碼,所述程序代碼包括計(jì)算機(jī)操作指令。存儲(chǔ)器1303可能包含隨機(jī)存取存儲(chǔ)器(random access memory,簡(jiǎn)稱(chēng)RAM),也可能還包括非易失性存儲(chǔ)器(non-volatile memory),例如至少一個(gè)磁盤(pán)存器。
處理器1302執(zhí)行存儲(chǔ)器1303所存放的程序,用于執(zhí)行如圖4所示流程:
用通信接口1301獲取能夠接收待發(fā)送的組播流的至少一個(gè)葉節(jié)點(diǎn)的葉節(jié)點(diǎn)信息;
在預(yù)設(shè)的組播指示信息包括的各個(gè)比特位中查找到與獲取的至少一個(gè)葉節(jié)點(diǎn)信息分別對(duì)應(yīng)的比特位,并將查找到的比特位置1、且將未被查找到的比特位置0;
用通信接口1301將置位處理后的組播指示信息與所述組播流發(fā)送給與所述根節(jié)點(diǎn)連接的每個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn);其中,預(yù)設(shè)的組播指示信息中包括的每個(gè)比特位分別對(duì)應(yīng)一個(gè)葉節(jié)點(diǎn)信息、且各個(gè)比特位分別對(duì)應(yīng)的葉節(jié)點(diǎn)信息不同。
處理器1302還用于:
用通信接口1301接收與所述根節(jié)點(diǎn)連接的各個(gè)下游節(jié)點(diǎn)分別上報(bào)的葉節(jié)點(diǎn)信息和比特位信息構(gòu)成的信息對(duì);根據(jù)接收的各個(gè)信息對(duì)生成并保存預(yù)設(shè)的組播指示信息。
處理器1302還用于:用通信接口1301將生成的組播指示信息發(fā)送給與所述根節(jié)點(diǎn)分別連接的各個(gè)下游節(jié)點(diǎn)。
上述的處理器1302可以是通用處理器,包括中央處理器(Central Processing Unit,CPU)、網(wǎng)絡(luò)處理器(Network Processor,NP)等;還可以是數(shù)字信號(hào)處理器(DSP)、專(zhuān)用集成電路(ASIC)、現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)或者其他可編程邏輯器件、分立門(mén)或者晶體管邏輯器件、分立硬件組件。
圖14為本發(fā)明一些實(shí)施例提供的組播流的轉(zhuǎn)發(fā)裝置的結(jié)構(gòu)示意圖。如圖14所示的裝置部署在轉(zhuǎn)發(fā)節(jié)點(diǎn),可應(yīng)用于如圖2所示的組播流的轉(zhuǎn)發(fā)系統(tǒng)中。
如圖14所示,裝置1400包括通信接口1401、存儲(chǔ)器1403和處理器1402,其中,通信接口1401、處理器1402、存儲(chǔ)器1403、通過(guò)總線1404相互連接;總線1404可以是PCI總線或EISA總線等。所述總線可以分為地址總線、數(shù)據(jù)總線、控制總線等。為便于表示,圖14中僅用一條粗線表示,但并不表示僅有一根總線或一種類(lèi)型的總線。
所述通信接口1401用于與對(duì)端進(jìn)行通信。存儲(chǔ)器1403,用于存放程序。具體地,程序可以包括程序代碼,所述程序代碼包括計(jì)算機(jī)操作指令。存儲(chǔ)器1403可能包含隨機(jī)存取存儲(chǔ)器,也可能還包括非易失性存儲(chǔ)器,例如至少一個(gè)磁盤(pán)存器。
處理器1402執(zhí)行存儲(chǔ)器1403所存放的程序,用于執(zhí)行如圖5所示流程:
用通信接口1401接收與所述轉(zhuǎn)發(fā)節(jié)點(diǎn)連接的上游節(jié)點(diǎn)發(fā)送的組播指示信息和組播流;
根據(jù)所述組播指示信息中被置位為1的比特位,以及所述組播指示信息中各個(gè)比特位分別對(duì)應(yīng)的葉節(jié)點(diǎn)信息,確定能夠接收所述組播流的葉節(jié)點(diǎn);
用通信接口1401將接收的所述組播指示信息和組播流轉(zhuǎn)發(fā)給與所述轉(zhuǎn)發(fā)節(jié)點(diǎn)連接的、且與確定出的葉節(jié)點(diǎn)之間存在通信路徑的下游節(jié)點(diǎn)。
處理器1402還用于:
用通信接口1401接收與所述轉(zhuǎn)發(fā)節(jié)點(diǎn)連接的下游節(jié)點(diǎn)發(fā)送的葉節(jié)點(diǎn)信息和比特位信息構(gòu)成的信息對(duì)并保存,并用通信接口1401將所述信息對(duì)上報(bào)給與所述轉(zhuǎn)發(fā)節(jié)點(diǎn)連接的上游節(jié)點(diǎn)。
處理器1402還用于:
用通信接口1401接收與所述轉(zhuǎn)發(fā)節(jié)點(diǎn)連接的上游節(jié)點(diǎn)發(fā)送的組播指示信息并保存;所述組播指示信息為所述根節(jié)點(diǎn)生成并發(fā)送的。
上述的處理器1402可以是通用處理器,包括中央處理器、網(wǎng)絡(luò)處理器等;還可以是數(shù)字信號(hào)處理器、專(zhuān)用集成電路、現(xiàn)場(chǎng)可編程門(mén)陣列或者其他可編程邏輯器件、分立門(mén)或者晶體管邏輯器件、分立硬件組件。
圖15為本發(fā)明一些實(shí)施例提供的組播流的轉(zhuǎn)發(fā)裝置的結(jié)構(gòu)示意圖。如圖15所示的裝置部署在葉節(jié)點(diǎn),可應(yīng)用于如圖2所示的組播流的轉(zhuǎn)發(fā)系統(tǒng)中。
如圖15所示,裝置1500包括通信接口1501、存儲(chǔ)器1503和處理器1502,其中,通信接口1501、處理器1502、存儲(chǔ)器1503、通過(guò)總線1504相互連接;總線1504可以是PCI總線或EISA總線等。所述總線可以分為地址總線、數(shù)據(jù)總線、控制總線等。為便于表示,圖15中僅用一條粗線表示,但并不表示僅有一根總線或一種類(lèi)型的總線。
所述通信接口1501用于與對(duì)端進(jìn)行通信。存儲(chǔ)器1503,用于存放程序。具體地,程序可以包括程序代碼,所述程序代碼包括計(jì)算機(jī)操作指令。存儲(chǔ)器1503可能包含隨機(jī)存取存儲(chǔ)器,也可能還包括非易失性存儲(chǔ)器,例如至少一個(gè)磁盤(pán)存器。
處理器1502執(zhí)行存儲(chǔ)器1503所存放的程序,用于執(zhí)行如圖6所示流程:
用通信接口1501接收所述葉節(jié)點(diǎn)連接的上游節(jié)點(diǎn)發(fā)送的組播指示信息和組播流,所述組播指示信息中包括的、與所述葉節(jié)點(diǎn)的葉節(jié)點(diǎn)信息對(duì)應(yīng)的比特位被置位為1。
處理器1502還用于:
確定所述葉節(jié)點(diǎn)占據(jù)所述組播指示信息中的比特位信息,并將所述葉節(jié)點(diǎn)的葉節(jié)點(diǎn)信息和確定的比特位信息構(gòu)成信息對(duì),用通信接口1501上報(bào)給與所述葉節(jié)點(diǎn)連接的上游節(jié)點(diǎn)。
上述的處理器1502可以是通用處理器,包括中央處理器、網(wǎng)絡(luò)處理器等;還可以是數(shù)字信號(hào)處理器、專(zhuān)用集成電路、現(xiàn)場(chǎng)可編程門(mén)陣列或者其他可編程邏輯器件、分立門(mén)或者晶體管邏輯器件、分立硬件組件。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明實(shí)施例可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明實(shí)施例可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤(pán)存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本發(fā)明實(shí)施例是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專(zhuān)用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明實(shí)施例進(jìn)行各種改動(dòng)和變型而不脫離本申請(qǐng)的范圍。這樣,倘若本發(fā)明實(shí)施例的這些修改和變型屬于本申請(qǐng)權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本申請(qǐng)也意圖包含這些改動(dòng)和變型在內(nèi)。