位索引顯式復(fù)制的制作方法
【專利說明】位索引顯式復(fù)制
[0001] 相關(guān)申請(qǐng)
[0002] 本申請(qǐng)根據(jù)美國聯(lián)邦法典35卷§119(e)條款要求于2013年9月17日遞交的、題為 "Multicast IPv6 with Bit Mask Forwarding(具有位屏蔽轉(zhuǎn)發(fā)的多播IPv6)"、序列號(hào)為 61/878,693的美國臨時(shí)專利申請(qǐng)W及于2014年1月24日遞交的、題為"Bit Mask Forwarding Architectures for Stateless Multipoint Replication(用于無狀態(tài)多點(diǎn) 復(fù)制的位屏蔽轉(zhuǎn)發(fā)架構(gòu)r、序列號(hào)為61/931,473的美國臨時(shí)專利申請(qǐng)的本國權(quán)益,二者的 全部?jī)?nèi)容通過引用并為所有目的被合并于此,如同其在本文中被完全且充分地闡述。
【背景技術(shù)】
[0003] 網(wǎng)絡(luò)節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)。網(wǎng)絡(luò)節(jié)點(diǎn)可W采用W下形式:一個(gè)或多個(gè)路由器、一個(gè)或多個(gè) 網(wǎng)橋、一個(gè)或多個(gè)交換機(jī)、一個(gè)或多個(gè)服務(wù)器或任意其他合適的通信處理設(shè)備。數(shù)據(jù)通常被 格式化為分組并使用轉(zhuǎn)發(fā)表進(jìn)行轉(zhuǎn)發(fā)。分組是通常包含有效負(fù)載數(shù)據(jù)和控制信息的數(shù)據(jù)的 格式化單元??刂菩畔⒖蒞包括:標(biāo)識(shí)源和目的地的信息(例如,地址)、類似于校驗(yàn)和的錯(cuò) 誤檢測(cè)碼、排序信息等??刂菩畔⑼ǔT诜纸M頭部和尾部中被發(fā)現(xiàn)。有效負(fù)載數(shù)據(jù)通常位于 分組頭部和尾部之間。
[0004] 轉(zhuǎn)發(fā)分組包括盡管在概念上簡(jiǎn)單但可能很復(fù)雜的各種處理。在轉(zhuǎn)發(fā)分組中設(shè)及到 的處理基于所使用的轉(zhuǎn)發(fā)方法的類型而變化。=種類型的轉(zhuǎn)發(fā)方法是:單播、廣播和多播。 =種轉(zhuǎn)發(fā)方法各自包括其本身的配置和控制處理的集合。單播是點(diǎn)對(duì)點(diǎn)通信的方法,其常 用在特定節(jié)點(diǎn)(被稱為源)希望將數(shù)據(jù)發(fā)送到另一特定節(jié)點(diǎn)(被稱為接收方)并且不設(shè)及將 數(shù)據(jù)發(fā)送到多個(gè)接收方的情況。廣播是當(dāng)源希望將數(shù)據(jù)發(fā)送到域中的所有接收方時(shí)所使用 的方法,并且多播允許源將數(shù)據(jù)發(fā)送到域中的一組接收方而阻止數(shù)據(jù)被發(fā)送到域中的其他 接收方。
[0005] 對(duì)于許多網(wǎng)絡(luò),多播是優(yōu)選的數(shù)據(jù)轉(zhuǎn)發(fā)的方法。運(yùn)么說的一個(gè)原因是多播是通過 同時(shí)將數(shù)據(jù)遞送到多個(gè)接收方來減少流量的帶寬節(jié)約技術(shù)。然而,在傳統(tǒng)的多播系統(tǒng)中,相 對(duì)大量的控制平面信息被使用。設(shè)置并維護(hù)該控制信息在計(jì)算資源方面傾向于變得復(fù)雜和 昂貴的,并且可能成為整個(gè)網(wǎng)絡(luò)性能中的主要限制因素。
【附圖說明】
[0006] 本發(fā)明可W通過參考附圖而被更好地理解,并且其許多對(duì)象、特性和優(yōu)點(diǎn)對(duì)本領(lǐng) 域的技術(shù)人員是顯而易見的。
[0007] 圖1是示出示例網(wǎng)絡(luò)的某些組件的簡(jiǎn)化框圖。
[0008] 圖2是示出示例網(wǎng)絡(luò)的某些組件的簡(jiǎn)化框圖。
[0009] 圖3A是示出圖2的節(jié)點(diǎn)所采用的示例處理的流程圖。
[0010] 圖3B是示出圖2的節(jié)點(diǎn)所采用的示例處理的流程圖。
[0011] 圖4A是示出圖2的節(jié)點(diǎn)所采用的示例處理的流程圖。
[0012] 圖4B是示出圖2的節(jié)點(diǎn)所采用的示例處理的流程圖。
[0013] 圖5是示出圖2的節(jié)點(diǎn)所采用的示例處理的流程圖。
[0014] 圖6是示出圖2的節(jié)點(diǎn)所采用的示例處理的流程圖。
[0015] 圖7是示出可W在圖2的網(wǎng)絡(luò)中被采用的示例節(jié)點(diǎn)的某些組件的框圖。
[0016] 圖8是描述適用于實(shí)現(xiàn)本文所描述的系統(tǒng)的實(shí)施例的計(jì)算機(jī)系統(tǒng)的框圖。
【具體實(shí)施方式】
[0017] 懸
[0018] 本文公開了用于執(zhí)行位索引顯式復(fù)制(BIER)的各種系統(tǒng)和方法。例如,一種方法 包括在節(jié)點(diǎn)處接收分組。分組包括多播轉(zhuǎn)發(fā)條目。多播轉(zhuǎn)發(fā)條目具有多個(gè)元素,并且每一元 素與特定節(jié)點(diǎn)相對(duì)應(yīng)。方法還包括將多播轉(zhuǎn)發(fā)條目與由節(jié)點(diǎn)存儲(chǔ)的轉(zhuǎn)發(fā)信息進(jìn)行比較。方 法包括基于所進(jìn)行的比較來選擇鄰居節(jié)點(diǎn),更新分組中的多播轉(zhuǎn)發(fā)條目,W及將分組轉(zhuǎn)發(fā) 到鄰居節(jié)點(diǎn)。
[0019] 多播
[0020] ^將多播數(shù)據(jù)分組(通常包括標(biāo)識(shí)多播組的信息(例如,多播組地址)的數(shù)據(jù)分 組)從源遞送到多個(gè)接收方,而不會(huì)給源帶來過重的負(fù)擔(dān)。如本文所使用的,術(shù)語"接收方" 表示已訂閱到多播組的主機(jī)(例如,計(jì)算設(shè)備或應(yīng)用)。不是由源復(fù)制多播數(shù)據(jù)分組并將多 播數(shù)據(jù)分組的副本發(fā)送到每一接收方,而是由源發(fā)送多播數(shù)據(jù)分組的單一副本并且多播使 能(multicast-enabled)的路由器(本文簡(jiǎn)稱為節(jié)點(diǎn))在到各個(gè)接收方的路徑分叉的(一個(gè) 或多個(gè))點(diǎn)處復(fù)制分組。多播路由協(xié)議通過在靠近多播數(shù)據(jù)分組的目的地處復(fù)制該多播數(shù) 據(jù)分組來使能多播傳輸(即,一對(duì)多連接和多對(duì)多連接),避免了出于相同的目的而使用多 個(gè)單播。運(yùn)節(jié)省了網(wǎng)絡(luò)帶寬并提高了吞吐量。
[0021] 多播使用各種路由協(xié)議(例如,互聯(lián)網(wǎng)協(xié)議(IP)和多協(xié)議標(biāo)簽交換(MPLS))而被采 用。在使用IP的多播網(wǎng)絡(luò)(具有多播使能的節(jié)點(diǎn)的網(wǎng)絡(luò))中,源在被發(fā)送到與多播組地址相 對(duì)應(yīng)的組的分組中包括多播組地址。例如,源可W包括作為多播數(shù)據(jù)分組的目的地地址的 多播組地址。多播使能的節(jié)點(diǎn)然后可W基于多播組地址來將多播數(shù)據(jù)分組轉(zhuǎn)發(fā)到多播組的 接收方。
[0022] 在MPLS中,源同樣地可W將多播組地址添加到分組。然而,MPLS使能的節(jié)點(diǎn)使用標(biāo) 簽而不是目的地地址來轉(zhuǎn)發(fā)分組,包括多播數(shù)據(jù)分組。為轉(zhuǎn)發(fā)多播數(shù)據(jù)分組,MPLS使能的節(jié) 點(diǎn)可W生成與多播組地址相對(duì)應(yīng)的標(biāo)簽交換路徑化SP),并且可W使用LSP來轉(zhuǎn)發(fā)多播數(shù)據(jù) 分組。
[0023] 當(dāng)在多播使能的節(jié)點(diǎn)處接收到多播數(shù)據(jù)分組時(shí),多播使能的節(jié)點(diǎn)可W使用由多播 使能的節(jié)點(diǎn)維護(hù)的多播轉(zhuǎn)發(fā)表來確定多播數(shù)據(jù)分組應(yīng)該被轉(zhuǎn)發(fā)到多播使能的節(jié)點(diǎn)的哪一 個(gè)接口(如果有的話)。運(yùn)設(shè)及多播使能的節(jié)點(diǎn)知道一個(gè)或多個(gè)接收器是否被(直接或間接 地)連接到多播使能的節(jié)點(diǎn)的接口。多播使能的節(jié)點(diǎn)然后可W根據(jù)需要復(fù)制多播數(shù)據(jù)分組 并通過(一個(gè)或多個(gè))確定的接口傳輸所復(fù)制的多播數(shù)據(jù)分組。
[0024] W上所描述的技術(shù)包括給定多播網(wǎng)絡(luò)中的每個(gè)多播使能的節(jié)點(diǎn)維護(hù)指示如何轉(zhuǎn) 發(fā)多播數(shù)據(jù)分組的信息(還被稱為狀態(tài)或控制平面信息),W使得多播數(shù)據(jù)分組到達(dá)已經(jīng)加 入每一組的每一接收方。隨著組、源和接收方的數(shù)目的增加,狀態(tài)信息的數(shù)量增加,并且存 儲(chǔ)和維護(hù)狀態(tài)信息(例如,響應(yīng)于接收方加入和離開組而更新狀態(tài)信息)成為多播使能的節(jié) 點(diǎn)和多播使能的節(jié)點(diǎn)之間的鏈路的越來越重的負(fù)擔(dān)。
[0025] 感受到維護(hù)狀態(tài)信息的負(fù)擔(dān)增加的一個(gè)方面是收斂。在多播的上下文中,收斂指 代多播網(wǎng)絡(luò)中的多播使能的節(jié)點(diǎn)響應(yīng)于改變(例如,接收方加入組、離開組或改變其位置) 來更新狀態(tài)信息W使得所有多播使能的節(jié)點(diǎn)均具有準(zhǔn)確反映當(dāng)前組成員關(guān)系的狀態(tài)信息 所花費(fèi)的時(shí)間。關(guān)于組成員關(guān)系的狀態(tài)信息被用來生成和更新多播使能的節(jié)點(diǎn)所使用的轉(zhuǎn) 發(fā)表W復(fù)制和轉(zhuǎn)發(fā)多播數(shù)據(jù)分組。
[0026] 多播的一個(gè)方面是對(duì)用于控制多播數(shù)據(jù)分組在多播網(wǎng)絡(luò)中何處被轉(zhuǎn)發(fā)的多播分 發(fā)樹(MDT)和多播轉(zhuǎn)發(fā)表的構(gòu)建。MDT描述源和接收方之間穿過多播網(wǎng)絡(luò)的路徑。如果接收 方想要從給定的源或與給定多播組地址相關(guān)聯(lián)的源接收多播數(shù)據(jù)分組,則多播使能的節(jié)點(diǎn) 構(gòu)建將接收方連接到源的MDT。沿著MDT的每一多播使能的節(jié)點(diǎn)對(duì)指示了多播數(shù)據(jù)分組應(yīng)該 如何被轉(zhuǎn)發(fā)到下一 MDT的多播轉(zhuǎn)發(fā)表進(jìn)行構(gòu)建和維護(hù)。
[0027] W下示例提供了構(gòu)建多播分布樹和多播轉(zhuǎn)發(fā)表的復(fù)雜度的圖示。當(dāng)主機(jī)想要接收 給定多播組的(或者來自具體源的)多播數(shù)據(jù)分組時(shí),主機(jī)首先發(fā)送指示了主機(jī)對(duì)多播組 (或源)的興趣的消息。該消息可W是例如,包含標(biāo)識(shí)了主機(jī)感興趣的多播組的信息(例如, 多播組地址)的互聯(lián)網(wǎng)組管理協(xié)議(IGMP)成員關(guān)系報(bào)告或多播監(jiān)聽發(fā)現(xiàn)(MLD)報(bào)告。盡管本 文中組地址為簡(jiǎn)潔起見而被使用,但應(yīng)該理解主機(jī)可W發(fā)送消息,該消息除標(biāo)識(shí)特定多播 組的信息之外或者作為標(biāo)識(shí)特定多播組的信息的替換還具有標(biāo)識(shí)接收方希望從其接收多 播數(shù)據(jù)分組的特定源的信息。在該示例中,主機(jī)將消息發(fā)送到客戶邊緣(CE)節(jié)點(diǎn)。CE節(jié)點(diǎn)將 消息轉(zhuǎn)發(fā)到可W作為多播網(wǎng)絡(luò)中的多播使能的節(jié)點(diǎn)而被實(shí)現(xiàn)的提供商邊緣(PE)節(jié)點(diǎn)。
[0028] 響應(yīng)于接收消息,在假定尚不存在條目的情況下,多播使能的節(jié)點(diǎn)在組的多播轉(zhuǎn) 發(fā)表中創(chuàng)建條目并將其存儲(chǔ)在存儲(chǔ)器中。多播使能的節(jié)點(diǎn)基于多播轉(zhuǎn)發(fā)表來轉(zhuǎn)發(fā)多播數(shù)據(jù) 分組。在一個(gè)示例中,條目包括指示來自CE節(jié)點(diǎn)的消息將在其上被接收的接口的信息和標(biāo) 識(shí)主機(jī)希望加入的組的信息。在MPLS的情況下,多播使能的節(jié)點(diǎn)還可W對(duì)被分配給組的多 播使能的節(jié)點(diǎn)的標(biāo)簽進(jìn)行請(qǐng)求。在一個(gè)實(shí)施例中,多播使能的節(jié)點(diǎn)使用多點(diǎn)標(biāo)簽分發(fā)協(xié)議 (mLDP)來請(qǐng)求標(biāo)簽。多播使能的節(jié)點(diǎn)知道將該組的多播數(shù)據(jù)分組的隨后所接收的分組轉(zhuǎn)發(fā) 到條目中指定的(或使用標(biāo)簽的)接口。多播使能的節(jié)點(diǎn)可W被配置有IGMP,并且可W具有 可執(zhí)行W讀取該消息并構(gòu)建相應(yīng)的條目的"偵聽(snooping)"軟件。
[0029] 多播使能的節(jié)點(diǎn)還確定上游的多播使能的節(jié)點(diǎn)。在一個(gè)示例中,多播使能的節(jié)點(diǎn) 使用匯聚點(diǎn)(RP)節(jié)點(diǎn)或與主機(jī)正加入的組相關(guān)聯(lián)的源的地址(或其前綴)來執(zhí)行逆向路徑 轉(zhuǎn)發(fā)(RPF)檢查。RPF檢查被用于標(biāo)識(shí)朝向RP(或源)的上游下一跳節(jié)點(diǎn)。多播使能的節(jié)點(diǎn)然 后將加入消息發(fā)送到下一跳節(jié)點(diǎn)。加入消息可W使用例如協(xié)議獨(dú)立多播(PIM)消息而被實(shí) 現(xiàn)。多播使能的節(jié)點(diǎn)可W使用PIM來發(fā)送指示運(yùn)些多播使能的節(jié)點(diǎn)希望加入的特定多播組 或者從特定源接收多播數(shù)據(jù)分組的消息("JOIN"消息)。多播使能的節(jié)點(diǎn)還可W使用PIM來 發(fā)送"PRU肥(剪除)"消息,該消息指示多播使能的節(jié)點(diǎn)不希望接收被定向到特定多播組或 者由特定源發(fā)送的分組。
[0030] 上游下一跳節(jié)點(diǎn)W相似的方式接收加入消息并進(jìn)行響應(yīng)。更具體地,在假定尚不 存在條目的情況下,上游下一跳節(jié)點(diǎn)在其路由表中創(chuàng)建條目。條目包括指示如何轉(zhuǎn)發(fā)特定 多播組的多播數(shù)據(jù)分組的信息。例如,條目可W包括標(biāo)識(shí)接口的信息,并且在MPLS的情況 下,該信息為標(biāo)簽。響應(yīng)于接收到加入消息,下一跳節(jié)點(diǎn)確定上游下一跳節(jié)點(diǎn)。該MDT構(gòu)建處 理通常針對(duì)朝向源或RP的每一上游路由器繼續(xù),直到加入消息到達(dá)源或RP或者直到加入消 息到達(dá)具有針對(duì)該組或源的已有多播轉(zhuǎn)發(fā)表?xiàng)l目的上游路由器。
[0031] 當(dāng)加入消息到達(dá)已經(jīng)具有針對(duì)組的條目的多播使能的節(jié)點(diǎn)時(shí),多播使能的節(jié)點(diǎn)例 如通過添加信息指示與組相關(guān)聯(lián)的分組應(yīng)該(例如,使用加入消息中所包括的標(biāo)簽)被轉(zhuǎn)發(fā) 到的附加接口來更新多播轉(zhuǎn)發(fā)表。更新多播轉(zhuǎn)發(fā)表完成了在最接近接收方的PE節(jié)點(diǎn)和源之 間的MDT的構(gòu)建。此后,多播數(shù)據(jù)分組可W經(jīng)由源和PE節(jié)點(diǎn)之間的MDT來從源流動(dòng)到被連接 到PE節(jié)點(diǎn)的接收方。當(dāng)由MDT上的多播使能的節(jié)點(diǎn)進(jìn)行接收時(shí),來自源的或者與多播組相關(guān) 聯(lián)的多播數(shù)據(jù)分組將根據(jù)需要被復(fù)制W向MDT上的多播使能的節(jié)點(diǎn)提供多播數(shù)據(jù)分組。在 該方式下,多播流可W通過多播網(wǎng)絡(luò)被傳輸?shù)蕉鄠€(gè)接收方。當(dāng)MDT上的多播使能的節(jié)點(diǎn)接收 與給定組相關(guān)聯(lián)的多播數(shù)據(jù)分組時(shí),多播使能的節(jié)點(diǎn)可W訪問其多播轉(zhuǎn)發(fā)表W對(duì)多播數(shù)據(jù) 分組應(yīng)該被轉(zhuǎn)發(fā)到的MDT上的任何下游節(jié)點(diǎn)(和/或與運(yùn)些下游節(jié)點(diǎn)相對(duì)應(yīng)的接口)進(jìn)行標(biāo) 識(shí)。多播使能的節(jié)點(diǎn)復(fù)制多播數(shù)據(jù)分組并向MDT上的每一下游多播使能的節(jié)點(diǎn)轉(zhuǎn)發(fā)多播數(shù) 據(jù)分組的副本。
[0032] 圖1是執(zhí)行多播數(shù)據(jù)傳輸?shù)木W(wǎng)絡(luò)100的簡(jiǎn)化框圖。多播使能的節(jié)點(diǎn)110、120、130和 140通過網(wǎng)絡(luò)鏈路150、160和170進(jìn)行禪合。多播使能的節(jié)點(diǎn)110還被禪合到源111和接收方 112;多播使能的節(jié)點(diǎn)120被禪合到接收方121;多播使能的節(jié)點(diǎn)130被禪合到接收方131和接 收方132,并且多播使能的節(jié)點(diǎn)140被禪合到接收方141。多播使能的節(jié)點(diǎn)和源和/或接收方 之間的運(yùn)種禪合可W是直接或間接的(例如,經(jīng)由L2網(wǎng)絡(luò)設(shè)備或另一節(jié)點(diǎn))。
[0033] 為了該圖示的目的,源111是被配置為將多播數(shù)據(jù)分組發(fā)送到多播組,該多播組包 括作為接收方的主機(jī)112、121、131、132和141。源111將多播流(包括具有共