組播流轉發方法及其路由器和系統的製作方法
2023-06-11 08:58:01 2
專利名稱:組播流轉發方法及其路由器和系統的製作方法
技術領域:
本發明涉及通信領域,尤其涉及一種當路由器到達組播源的單播路由發生改變時,組播數據流的轉發方法,以及應用於該方法的路由器和系統。
背景技術:
單播路由協議不相關組播協議(Protocol Independent Multicast,PIM)是一種與單播路由選擇協議無關的組播路由協議,它不依賴於特定的單播路由協議,使用現存的單播路由表實現逆向路徑轉發(Reverse Path Forwarding,RPF)檢查。單播路由協議不相關組播-稀疏模式(Protocol IndependentMulticast-Sparse Mode,PIM-SM)通過PIM路由器顯式發送加入或剪枝(Join/Prune)消息建立起基於會聚點(Rendezvous Point,RP)的共享樹(Rendezvous Point Tree,RPT)或基於源的源路徑樹(SPT),組播數據沿著共享樹RPT或源路徑樹SPT流到加入到該組播組的網段。單播路由協議不相關組播-特定源組播(Protocol Independent Multicast-source-specific multicast,PIM-SSM)是對PIM-SM的改進,PIM路由器顯式發送加入或剪枝(Join/Prune)消息建立源路徑樹SPT,從而省略了共享樹RPT的建立過程以及RPT向SPT切換的過程。
隨著寬帶網絡技術的不斷發展和成熟,越來越多的網絡運營商正在部署PIM組播網絡,從而向公眾提供高質量的IP電視(IPTV)業務,以此增加寬帶業務收入。IPTV就是利用IP網絡中的組播技術,向公眾提供高清晰的寬帶視頻業務。因此,PIM組播網絡的可靠性成為網絡運營商普遍關注的關鍵技術。PIM組播網絡的可靠性就是將網絡故障對IPTV業務中斷的影響減小到最低程度。
在Internet工程任務組(Internet Engineering Task Force,IETF)關於PIM-SM的標準文檔[PIM-SM]中,關於單播路由改變導致SPT切換的協議處理過程有如下描述當單播路由改變時,所有活動的(S,G),(*,G)和(*,*,RP)條目都要進行RPT檢查,並且所有受其影響的入接口都要進行更新。特別地,若新的入接口出現在出接口列表中,則其將被從出接口列表中刪除。原有的入接口可能由於從下遊路由器發送來的周期性的Join/Prune消息觸發而被加入到出接口列表中。當前入接口接收的Join/Prune消息被忽略,而新接口或現有出接口接收的Join/Prune消息則不會被忽略。其他的出接口將被保留下來,直到它們被下遊路由器明確地剪枝,或由於缺乏適當的Join/Prune消息維持而超時。若路由器有一個包含SPT位標記的(S,G)條目,並且最新的iif(S,G)條目與iif(*,G)條目或iif(*,*,RP)條目相同,則該路由器重置SPT位。
路由器必須通過新的入接口發送一個Join消息,在該消息的Join列表中攜帶S信息,以通知上遊路由器希望通過該新的接口接收組播數據流。如果原有入接口還是活動狀態的話,該路由器還要通過原有入接口發送一個Prune消息,在該消息的Prune列表中攜帶S信息,以通知上遊路由器不再需要組播分發樹的這個分支了。
在上述[PIM-SM]的規定中,當達到組播源的用於RPF計算的單播路由發生改變(從次優路由改變切換到最優路由)之後,PIM路由器會向新的上遊PIM鄰居發送Join消息,以此建立新的SPT,與此同時,如果原有入接口仍然處於活動狀態,則向原有的上遊PIM鄰居發送Prune消息,以此剪枝原有的SPT。但是在原有的SPT被剪枝之後,新的SPT還沒有完全建立起來的情況下,組播數據流轉發就會出現暫時的中斷。
發明內容
本發明提供一種組播流轉發方法,用以解決現有技術中當路由器到達組播源或會聚點RP的單播路由改變而導致組播轉發路徑切換時,組播數據流轉發中斷的問題。
基於上述方法,本發明另提供一種用於轉發組播數據流的路由器。
本發明還提供一種組播流轉發系統。
本發明方法包括當路由器到達組播源或會聚點RP的單播路由從第一路由切換到第二路由時,執行步驟該路由器與所述第二路由對應的相鄰上遊路由器建立新的組播轉發路徑,並保持通過原有組播轉發路徑轉發組播流;當所述路由器從新建的組播轉發路徑接收到組播流時,斷開原有組播轉發路徑,並通過新建立的組播轉發路徑轉發組播流。
根據本發明的上述方法,所述路由器從新建的組播轉發路徑接收到組播流後,丟棄從原有組播轉發路徑重複接收的組播流。
根據本發明的上述方法,所述路由器通過該路由器與所述第二路由對應的相鄰上遊路由器連接的入接口發送加入消息,建立起所述相鄰上遊路由器到該入接口的組播轉發路徑;所述路由器從該入接口接收組播流,並從原有組播轉發路徑對應的出接口向該路由器的下遊設備轉發組播流。
所述路由器通過從原有組播轉發路徑對應的入接口向所述原有組播轉發路徑對應的相鄰上遊路由器發送剪枝消息,斷開所述相鄰上遊路由器到該入接口的組播轉發路徑。
根據本發明的上述方法,若組播流通過源路徑樹SPT轉發,則當所述路由器到達組播源的單播路由從次優路由切換到最優路由時,所述路由器建立新的組播轉發路徑SPT;若組播流通過基於會聚點的共享樹RPT轉發,則當所述路由器到達組播會聚點的單播路由從次優路由切換到最優路由時,所述路由器建立新的組播轉發路徑RPT。
本發明提供的轉發組播流的路由器,包括路由模塊、轉發模塊、檢測模塊和至少兩個入接口和一個出接口;所述路由模塊與分別與兩個入接口和所述轉發模塊連接;所述轉發模塊與兩個入接口和一個出接口連接;所述檢測模塊分別與一個入接口和所述路由模塊連接;當路由器到達組播源或會聚點RP的單播路由從第一路由切換到第二路由時,所述路由模塊通過與所述第二路由對應的相鄰上遊路由器連接的入接口通知該上遊路由器建立新的組播轉發路徑,通知所述檢測模塊對該入接口接收組播流進行檢測,並通知原有組播轉發路徑對應的入接口保持接收組播流;並接收所述檢測模塊發送的信號,通過所述原有組播轉發路徑對應的入接口通知原有組播轉發路徑對應上遊路由器斷開該路徑;所述檢測模塊檢測到所述入接口接收到組播流時,向所述路由模塊發送信號;所述轉發模塊從入接口接收組播流,並接受所述路由模塊的控制將其發送到指定的出接口,轉發到所述路由器的下遊設備。
所述路由模塊收到所述檢測模塊發送的信號後,通知原有入接口忽略其接收到的組播流;所述轉發模塊將從與所述第二路由對應的相鄰上遊路由器連接的入接口接收到的組播流發送到所述路由模塊指定的出接口,並轉發到所述路由器的下遊設備。
當路由器到達組播源或會聚點RP的單播路由從第一路由切換到第二路由時,所述路由模塊通過所述與第二路由對應的相鄰上遊路由器連接的入接口向該上遊路由器發送加入消息,建立起所述相鄰上遊路由器到該入接口的組播轉發路徑;所述路由器從該入接口接收組播流,從原有組播轉發路徑對應的出接口向該路由器的下遊設備轉發組播流。
當所述路由模塊收到所述檢測模塊發送的信號時,所述路由模塊通過原有入接口向所述原有組播轉發路徑對應的相鄰上遊路由器發送剪枝消息,斷開所述相鄰上遊路由器到該入接口的組播轉發路徑。
本發明提供的組播流轉發系統,包括組播流發送端、組播流接收端和至少3個本發明提供的路由器;所述路由器互相連接,且其中一個路由器與所述組播流發送端連接,另一個路由器與所述組播流接收端連接,將組播流從所述發送端,通過路由器互相連接後形成的組播流轉發路徑,轉發到所述組播流接收端。
本發明的有益效果如下(1)本發明通過在當路由器到達組播源或會聚點RP的單播路由從次優路由切換到最優路由而導致組播轉發路徑切換時,路由器在建立新的轉發路徑時,繼續從原有轉發路徑接收並轉發組播數據流,直到從新的轉發路徑接收到組播數據流之後,才斷開原有轉發路徑,從而保證了組播數據流在轉發過程中無中斷。
(2)路由器在從新的轉發路徑收到組播數據流後,將從原有轉發路徑收到的組播數據流丟棄,從而避免了因重複接收組播數據流而造成的組播數據接收和播放錯誤。
圖1為本發明在組播源的單播路由發生改變時PIM路由器轉發組播數據流的流程示意圖;圖2為本發明實施例的組播數據流轉發系統結構示意圖;圖3為本發明實施例單播路由改變前的組播數據流轉發示意圖;圖4為本發明實施例單播路由改變時的組播數據流轉發示意圖;圖5為本發明實施例單播路由改變後的組播數據流轉發示意圖;圖6為本發明路由器的結構示意圖。
具體實施例方式
本發明通過到達組播源或會聚點RP的單播路由發生改變(從次優路由切換到最優路由)的情況下,PIM路由器在組播數據流從新的入接口收到之前,繼續接收並轉發從原有入接口收到的組播數據流,只有組播數據流從新的入接口收到之後,才向原有相鄰的上遊路由器發送Prune消息,並將從原有入接口收到的組播數據流丟棄,從而到達組播數據流無中斷轉發的目的。
參見圖1,為本發明PIM路由器在組播源的單播路由發生改變,導致SPT切換時的轉發組播流的流程示意圖,具體包括步驟S1、PIM路由器獲知達到組播源的用於RPF計算的單播路由發生改變,即從次優路由切換到最優路由;步驟S2、PIM路由器向最優路由對應的上遊路由器發送Join消息,建立新的源路徑樹SPT;同時,從原有的SPT接收組播數據流並進行轉發;步驟S3、當PIM路由器從新建立的SPT接收到組播數據流時,向原有上遊路由器發送Prune消息,斷開原有的SPT,並丟棄從原有SPT接收的組播數據流,通過新的SPT接收並轉發組播數據流。
上述組播流轉發過程通過本發明的組播流轉發系統實現。本發明的組播流轉發系統包括組播流發送端、組播流接收端和多個轉發組播流的路由器。這些路由器中包括與組播發送端連接的最上遊路由器,與組播流接收端連接的最下遊路由器,以及介於最上遊路由器和最下遊路由器之間存在的多個彼此連接的中間路由器,組播流發送端發送的組播流經過這些路由器連接形成的組播轉發路逕到達組播流接收端。
下面以具有3個路由器的PIM-SM組播流轉發系統為實施例,對本發明進行詳細說明。
參見圖2,為本發明的組播流轉發系統,包括組播數據發送端、組播數據接收端和PIM路由器R1、R2和R3。R1與組播數據發送端連接,R3與組播數據接收端連接,R2分別與R1和R3連接,R1和R3連接。
當到達組播源的單播路由發生改變(從次優路由切換到最優路由)而導致SPT切換,此時的組播數據流轉發過程如下所述。
參見圖3,為本發明實施例單播路由改變前的組播數據流轉發示意圖。PIM路由器R1與R3之間的鏈路處於中斷狀態,R3到達組播源的單播路由的下一跳是R2,R2到達R1的單播路由的下一跳是R1,所有PIM路由器沿著到達組播源的最短路徑方向周期性發送Join消息,建立並維持SPT。組播數據流沿著建立的SPT(R1-R2-R3)從組播數據發送端被轉發到組播數據接收端。其間,R3通過與其上遊鄰居路由器R2連接的入接口E1接收組播數據流。
當R1與R3之間的鏈路恢復正常,PIM路由器R3發現到達組播源的單播路由發生改變(從次優路由改變切換到最優路由),即到達組播源的單播路由下一跳從R2變為R1時,R3通過接口E0向新的上遊鄰居路由器R1發送PIMJoin消息,如圖4所示,建立新的從R1到R3的SPT;同時,R3在組播數據流從新的入接口E0被接收到之前,繼續接收從原有的入接口E1收到的組播數據流,並通過原有的出接口轉發該組播數據流;當R3從新的入接口E0接收到組播數據流之後,如圖5所示,立即向原有的上遊鄰居R2發送PIM Prune消息,斷開原有的SPT;同時,R3忽略掉此刻和以後從接口E1接收的組播數據流,以避免因E0和E1重複接收組播數據流而引起的組播數據流接收錯誤,影響組播數據流的播放。R3將從入接口E0接收到的組播數據流通過原有的出接口轉發到組播數據流接收端。
上述路由器R1、R2和R3具有如下結構,如圖6所示,包括路由模塊、轉發模塊、檢測模塊和多個入/出接口(包括與R1連接的入接口E0、與R2連接的入接口E1和一個出接口)。其中,轉發模塊與入接口E0和E1,以及出接口連接,負責組播數據流轉發;路由模塊與入接口E0和E1連接,控制其建立或斷開對應的上遊路徑,並與轉發模塊連接,控制其轉發組播數據流;檢測模塊分別與入接口E0和路由模塊連接,檢測入接口E0接收數據情況,並當檢測到入接口接收數據後,向路由模塊發送信號,以通知路由模塊向入接口E1發送剪枝消息,斷開入接口E1對應的上遊路徑。圖中實線代表組播數據流,虛線代表信號數據流。
對應上述流程,當到達組播源的單播路由從次優路由切換到最優路由而導致原有組播轉發路徑SPT切換時,路由器的路由處理過程如下所述。
初始狀態下,路由器R3與R1之間的鏈路處於中斷狀態,此時的組播數據流沿著現有的SPT(R1-R2-R3)從組播數據發送端被轉發到組播數據接收端。其間,R3通過與其上遊鄰居路由器R2連接的入接口E1接收組播數據流,轉發模塊將接收的組播數據流發送到路由模塊指定的出接口,轉發到組播數據流接收端。
當到達組播源的單播路由從次優路由切換到最優路由時,即R1與R3之間的鏈路恢復正常,路由模塊通過與R1連接的入接口E0向R1發送PIM Join消息,建立新的從R1到R3的SPT,並通知檢測模塊對入接口E0接收組播數據流進行檢測;同時,路由模塊通知與R2連接的入接口E1保持接收組播數據流,並通知轉發模塊將接收的組播數據流發送到原有的出接口。
當檢測模塊檢測到入接口E0接收到組播數據流時,向路由模塊發送信號;路由模塊收到信號後,立即通知入接口E1向R2發送PIM Prune消息,斷開原有的SPT;同時,路由模塊通知入接口E1忽略此刻和以後接收的組播數據流。轉發模塊將從入接口E0接收到的組播數據流發送到路由模塊指定的原有出接口,轉發到組播數據流接收端。
上述實施例以PIM-SM為例,說明當到達組播源的單播路由發生改變(從次優路由切換到最優路由)而導致SPT切換的過程中,實現組播數據流轉發的流程,對於PIM-SSM模式下,當到達組播源的單播路由發生改變(從次優路由切換到最優路由)而導致SPT切換的過程中,實現組播數據流轉發的流程與上述流程類似。在PIM-SM模式下,若組播數據流通過RPT進行轉發,那麼當到達RP的單播路由發生改變(從次優路由切換到最優路由)而導致RPT切換的過程中,組播數據流轉發流程與上述流程類似。
通過以上描述可知,PIM路由器發現到達組播源的單播路由發生改變(從次優路由切換到最優路由)時,在組播流從新建立的入接口收到之前,繼續從原有入接口接收並轉發組播數據流,只有在組播數據流從新的入接口收到之後,才向原有上遊鄰居路由器發送Prune消息,斷開原有轉發路徑,從而保證了組播數據流無中斷轉發。同時,在從新的入接口收到組播數據流後,將從原有入接口重複收到的組播數據流丟棄,從而避免了因重複接收組播數據流而造成的組播數據接收和播放錯誤。
顯然,本領域的技術人員可以對本發明進行各種改動和變型而不脫離本發明的精神和範圍。這樣,倘若本發明的這些修改和變型屬於本發明權利要求及其等同技術的範圍之內,則本發明也意圖包含這些改動和變型在內。
權利要求
1.一種組播流轉發方法,當路由器到達組播源或會聚點RP的單播路由從第一路由切換到第二路由時,執行步驟該路由器與所述第二路由對應的相鄰上遊路由器建立新的組播轉發路徑,並保持通過原有組播轉發路徑轉發組播流;當所述路由器從新建的組播轉發路徑接收到組播流時,斷開原有組播轉發路徑,並通過新建立的組播轉發路徑轉發組播流。
2.如權利要求1所述的方法,其特徵在於,所述路由器從新建的組播轉發路徑接收到組播流後,丟棄從原有組播轉發路徑重複接收的組播流。
3.如權利要求1所述的方法,其特徵在於,所述路由器通過該路由器與所述第二路由對應的相鄰上遊路由器連接的入接口發送加入消息,建立起所述相鄰上遊路由器到該入接口的組播轉發路徑;所述路由器從該入接口接收組播流,並從原有組播轉發路徑對應的出接口向該路由器的下遊設備轉發組播流。
4.如權利要求1所述的方法,其特徵在於,所述路由器通過從原有組播轉發路徑對應的入接口向所述原有組播轉發路徑對應的相鄰上遊路由器發送剪枝消息,斷開所述相鄰上遊路由器到該入接口的組播轉發路徑。
5.如權利要求1所述的方法,其特徵在於,若組播流通過源路徑樹SPT轉發,則當所述路由器到達組播源的單播路由從次優路由切換到最優路由時,所述路由器建立新的組播轉發路徑SPT;若組播流通過基於會聚點的共享樹RPT轉發,則當所述路由器到達組播會聚點的單播路由從次優路由切換到最優路由時,所述路由器建立新的組播轉發路徑RPT。
6.一種轉發組播流的路由器,包括路由模塊、轉發模塊、檢測模塊和至少兩個入接口和一個出接口;所述路由模塊與分別與兩個入接口和所述轉發模塊連接;所述轉發模塊與兩個入接口和一個出接口連接;所述檢測模塊分別與一個入接口和所述路由模塊連接;當路由器到達組播源或會聚點RP的單播路由從第一路由切換到第二路由時,所述路由模塊通過與所述第二路由對應的相鄰上遊路由器連接的入接口通知該上遊路由器建立新的組播轉發路徑,通知所述檢測模塊對該入接口接收組播流進行檢測,並通知原有組播轉發路徑對應的入接口保持接收組播流;並接收所述檢測模塊發送的信號,通過所述原有組播轉發路徑對應的入接口通知原有組播轉發路徑對應上遊路由器斷開該路徑;所述檢測模塊檢測到所述入接口接收到組播流時,向所述路由模塊發送信號;所述轉發模塊從入接口接收組播流,並接受所述路由模塊的控制將其發送到指定的出接口,轉發到所述路由器的下遊設備。
7.如權利要求6所述的路由器,其特徵在於,所述路由模塊收到所述檢測模塊發送的信號後,通知原有入接口忽略其接收到的組播流;所述轉發模塊將從與所述第二路由對應的相鄰上遊路由器連接的入接口接收到的組播流發送到所述路由模塊指定的出接口,並轉發到所述路由器的下遊設備。
8.如權利要求6所述的路由器,其特徵在於,當路由器到達組播源或會聚點RP的單播路由從第一路由切換到第二路由時,所述路由模塊通過所述與第二路由對應的相鄰上遊路由器連接的入接口向該上遊路由器發送加入消息,建立起所述相鄰上遊路由器到該入接口的組播轉發路徑;所述路由器從該入接口接收組播流,從原有組播轉發路徑對應的出接口向該路由器的下遊設備轉發組播流。
9.如權利要求6所述的路由器,其特徵在於,當所述路由模塊收到所述檢測模塊發送的信號時,所述路由模塊通過原有入接口向所述原有組播轉發路徑對應的相鄰上遊路由器發送剪枝消息,斷開所述相鄰上遊路由器到該入接口的組播轉發路徑。
10.一種組播流轉發系統,包括組播流發送端和組播流接收端,其特徵在於,還包括至少3個如權利要求6所述的路由器;所述路由器互相連接,且其中一個路由器與所述組播流發送端連接,另一個路由器與所述組播流接收端連接,將組播流從所述發送端,通過路由器互相連接後形成的組播流轉發路徑,轉發到所述組播流接收端。
全文摘要
本發明公開了一種組播流轉發方法,當路由器到達組播源或會聚點RP的單播路徑從第一路由切換到第二路由時,該路由器與所述第二路由對應的相鄰上遊路由器建立新的組播轉發路徑,並通過原有組播轉發路徑轉發組播數據流;當所述路由器從新建的組播轉發路徑接收到組播數據流時,斷開原有的組播轉發路徑,並通過新的組播轉發路徑轉發組播數據流。採用本發明方法,可以避免在到達組播源或會聚點RP的單播路切換而導致組播轉發路徑切換時,組播數據流轉發中斷。
文檔編號H04L29/06GK101035063SQ20061005681
公開日2007年9月12日 申請日期2006年3月7日 優先權日2006年3月7日
發明者徐小虎 申請人:華為技術有限公司