![基于網(wǎng)絡(luò)處理器實(shí)現(xiàn)PIM協(xié)議及組播數(shù)據(jù)快速轉(zhuǎn)發(fā).doc_第1頁(yè)](http://file.renrendoc.com/FileRoot1/2020-1/11/d3ca26d8-d0ba-4342-a8b8-fb38d98e318d/d3ca26d8-d0ba-4342-a8b8-fb38d98e318d1.gif)
![基于網(wǎng)絡(luò)處理器實(shí)現(xiàn)PIM協(xié)議及組播數(shù)據(jù)快速轉(zhuǎn)發(fā).doc_第2頁(yè)](http://file.renrendoc.com/FileRoot1/2020-1/11/d3ca26d8-d0ba-4342-a8b8-fb38d98e318d/d3ca26d8-d0ba-4342-a8b8-fb38d98e318d2.gif)
![基于網(wǎng)絡(luò)處理器實(shí)現(xiàn)PIM協(xié)議及組播數(shù)據(jù)快速轉(zhuǎn)發(fā).doc_第3頁(yè)](http://file.renrendoc.com/FileRoot1/2020-1/11/d3ca26d8-d0ba-4342-a8b8-fb38d98e318d/d3ca26d8-d0ba-4342-a8b8-fb38d98e318d3.gif)
![基于網(wǎng)絡(luò)處理器實(shí)現(xiàn)PIM協(xié)議及組播數(shù)據(jù)快速轉(zhuǎn)發(fā).doc_第4頁(yè)](http://file.renrendoc.com/FileRoot1/2020-1/11/d3ca26d8-d0ba-4342-a8b8-fb38d98e318d/d3ca26d8-d0ba-4342-a8b8-fb38d98e318d4.gif)
![基于網(wǎng)絡(luò)處理器實(shí)現(xiàn)PIM協(xié)議及組播數(shù)據(jù)快速轉(zhuǎn)發(fā).doc_第5頁(yè)](http://file.renrendoc.com/FileRoot1/2020-1/11/d3ca26d8-d0ba-4342-a8b8-fb38d98e318d/d3ca26d8-d0ba-4342-a8b8-fb38d98e318d5.gif)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于網(wǎng)絡(luò)處理器實(shí)現(xiàn)PIM協(xié)議及組播數(shù)據(jù)快速轉(zhuǎn)發(fā)摘 要:本文提出了在網(wǎng)絡(luò)處理器Intel IXA IXP2XXX中PIM-SM組播路由協(xié)議高效實(shí)現(xiàn)方法。將PIM-SM 協(xié)議規(guī)范中涉及數(shù)據(jù)轉(zhuǎn)發(fā)的操作加以分解,并將它們分布于轉(zhuǎn)發(fā)引擎和主控引擎,微引擎轉(zhuǎn)發(fā)數(shù)據(jù)包僅需一次查表,與控制平面盡量隔離,實(shí)現(xiàn)了組播包的高速轉(zhuǎn)發(fā)。關(guān)鍵詞:PIM-SM;網(wǎng)絡(luò)處理器;微引擎Achieving PIM and Line-rate Forward Ability based on NP(Network Processor) Abstract:This paper presents an efficient implementation of PIM-SM in Network Processor IXP2XXX. It decomposes forwarding functions in PIM-SM specification and distributes them in main controller and forwarding engine. The forwarding hardwareMicroengine only needs one lookup to forward packet and forwarding behavior is isolated with the control panel. The forwarding speed can get line rate.Key words:PIM-SM;Network Processor;Microengine1 引言網(wǎng)絡(luò)設(shè)備的基本功能是實(shí)現(xiàn)網(wǎng)絡(luò)通信業(yè)務(wù)流的控制和轉(zhuǎn)發(fā),處于網(wǎng)絡(luò)邊緣的設(shè)備需要將來(lái)自不同物理鏈路的各種業(yè)務(wù)流復(fù)用到統(tǒng)一的傳輸鏈路上,傳統(tǒng)的方法是在網(wǎng)絡(luò)邊緣設(shè)備上采用通用的處理器來(lái)完成協(xié)議棧處理、路由選擇以及包頭的剝離等功能。隨著網(wǎng)絡(luò)規(guī)模和性能迅速增長(zhǎng)以及新業(yè)務(wù)接連不斷出現(xiàn),要求網(wǎng)絡(luò)設(shè)備具有線速和智能的處理能力。能否實(shí)現(xiàn)線速轉(zhuǎn)發(fā)是網(wǎng)絡(luò)設(shè)備組播性能的重要檢驗(yàn)指標(biāo),也是長(zhǎng)期困擾組播應(yīng)用的一個(gè)關(guān)鍵問(wèn)題。于是用專用芯片完成包的處理成為一種趨勢(shì),網(wǎng)絡(luò)處理器(NP,Network Processor)就是在這樣的背景下誕生的。網(wǎng)絡(luò)處理器是新一代用來(lái)執(zhí)行數(shù)據(jù)處理和轉(zhuǎn)發(fā)的高速可編程處理器,與傳統(tǒng)的處理器不同,它的設(shè)計(jì)采用了全新的理念,使其既有ASIC(Application Specific Integrated Circuit,專用集成電路)的高速處理能力,又有完全的可編程特性。網(wǎng)絡(luò)處理器設(shè)計(jì)的關(guān)鍵技術(shù)主要有快速表查找、提供高容量的存貯器帶寬、處理器的可編程性能和軟件開(kāi)發(fā)環(huán)境,以及如何有效地利用多處理器機(jī)制實(shí)現(xiàn)并行化處理,這些都為組播的線速轉(zhuǎn)發(fā)提供了保證。本文提及的NP采用Intel IX架構(gòu)的IXP2XXX系列網(wǎng)絡(luò)處理器。PIM-SM實(shí)現(xiàn)了RFC1112提出的ASM組播服務(wù)模型,具有非常強(qiáng)大的分發(fā)功能,是目前應(yīng)用比較廣泛的域內(nèi)組播路由協(xié)議。它采用的是由接收者發(fā)起的加入模型,通過(guò)建立組播轉(zhuǎn)發(fā)樹(shù)實(shí)現(xiàn)組播數(shù)據(jù)的轉(zhuǎn)發(fā)。從其協(xié)議的實(shí)現(xiàn)行為來(lái)看, PIM-SM可以分為協(xié)議控制引擎和數(shù)據(jù)轉(zhuǎn)發(fā)引擎兩大部分。其中控制引擎用來(lái)處理相關(guān)的協(xié)議報(bào)文,包括PIM報(bào)文、MLD報(bào)文、網(wǎng)管命令等,從而對(duì)組播樹(shù)狀態(tài)信息進(jìn)行維護(hù)和更新,保證協(xié)議的正確運(yùn)行。數(shù)據(jù)引擎則通過(guò)由控制引擎生成的組播轉(zhuǎn)發(fā)表項(xiàng)進(jìn)行組播數(shù)據(jù)的轉(zhuǎn)發(fā)。與一般的單播路由協(xié)議有所不同, PIM-SM的控制引擎和數(shù)據(jù)引擎難以清楚的分離,它的很多協(xié)議行為需要靠數(shù)據(jù)進(jìn)行驅(qū)動(dòng),如Assert過(guò)程、SPT樹(shù)切換及KAT定時(shí)器等。因此數(shù)據(jù)引擎還必須對(duì)能夠驅(qū)動(dòng)協(xié)議行為的數(shù)據(jù)報(bào)文進(jìn)行特別的處理,并通過(guò)特殊的方式和控制引擎進(jìn)行交互,這導(dǎo)致了組播數(shù)據(jù)轉(zhuǎn)發(fā)的復(fù)雜和低效。做為IP網(wǎng)絡(luò)的骨干節(jié)點(diǎn),要求以線速進(jìn)行包轉(zhuǎn)發(fā),這就勢(shì)必要求用硬件實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)發(fā)功能,NP無(wú)疑有其不可替代的優(yōu)勢(shì)。2 方案的提出2.1 傳統(tǒng)解決方案的缺點(diǎn)協(xié)議報(bào)文數(shù)據(jù)報(bào)文偽消息更新轉(zhuǎn)發(fā)表PIM控制引擎網(wǎng)絡(luò)通信模塊內(nèi)核模塊(轉(zhuǎn)發(fā)引擎)路由表 MRIB轉(zhuǎn)發(fā)數(shù)據(jù)圖 1傳統(tǒng)PIM-SM組播實(shí)現(xiàn)結(jié)構(gòu)框圖傳統(tǒng)路由器在實(shí)現(xiàn)PIM-SM協(xié)議時(shí)大都采用在實(shí)時(shí)操作系統(tǒng)內(nèi)核中嵌入相應(yīng)轉(zhuǎn)發(fā)引擎的方式來(lái)實(shí)現(xiàn)數(shù)據(jù)的轉(zhuǎn)發(fā),這種轉(zhuǎn)發(fā)引擎大多采用Cache維護(hù)包括源地址、組地址、出接口列表等信息的轉(zhuǎn)發(fā)表項(xiàng),數(shù)據(jù)報(bào)文則是通過(guò)Socket方式接收到后查詢相應(yīng)的轉(zhuǎn)發(fā)表項(xiàng),如果發(fā)現(xiàn)匹配的表項(xiàng)則在該表項(xiàng)中的每一個(gè)出接口都轉(zhuǎn)發(fā)一次;反之則進(jìn)一步判斷是否是能夠驅(qū)動(dòng)協(xié)議行為的數(shù)據(jù)包;如果不是,則丟棄該數(shù)據(jù)包;如果是,則生成事先約定好的偽消息發(fā)送到控制引擎,隨后控制引擎對(duì)該消息進(jìn)行相應(yīng)的處理并對(duì)組播路由信息表MRIB進(jìn)行更新,并通過(guò)進(jìn)程間通信的方式對(duì)內(nèi)核中的轉(zhuǎn)發(fā)表項(xiàng)進(jìn)行修改。其實(shí)現(xiàn)結(jié)構(gòu)框圖如圖1所示??梢钥闯?在傳統(tǒng)的PIM-SM實(shí)現(xiàn)機(jī)制中,完全依靠軟件方式實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)發(fā)??刂埔婧娃D(zhuǎn)發(fā)引擎采用進(jìn)程間通信方式交互效率低下,轉(zhuǎn)發(fā)性能受到處理器處理能力、調(diào)度算法、數(shù)據(jù)流量等諸多因素的影響,難以得到提高。2.2 新方案的提出隨著組播應(yīng)用的廣泛開(kāi)展,對(duì)支持高性能組播的路由器的需求日趨迫切。近年來(lái),人們提出了許多方法來(lái)提高路由器的轉(zhuǎn)發(fā)性能,如改造路由表組織結(jié)構(gòu)、采用Cache轉(zhuǎn)發(fā)、數(shù)據(jù)緩沖隊(duì)列、零拷貝轉(zhuǎn)發(fā)等。這些方法的主體思想仍舊是采用軟件方式實(shí)現(xiàn)。在實(shí)際應(yīng)用中發(fā)現(xiàn),只能較低程度而難以大規(guī)模的提高轉(zhuǎn)發(fā)速率。解決轉(zhuǎn)發(fā)性能瓶頸的關(guān)鍵在于盡可能地減少數(shù)據(jù)包的處理時(shí)間,只有依靠NP的高性能網(wǎng)絡(luò)數(shù)據(jù)處理能力才能實(shí)現(xiàn)高速的數(shù)據(jù)包處理。3 硬件轉(zhuǎn)發(fā)方案IXP2XXX解決方案3.1 方案介紹在傳統(tǒng)的網(wǎng)絡(luò)設(shè)備,比如路由器中,通過(guò)內(nèi)核處理來(lái)處理每個(gè)數(shù)據(jù)包,又加上大量的定時(shí)器處理操作。這大大增加了系統(tǒng)開(kāi)銷(xiāo)從而造成了處理效率的低下,難以實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)發(fā)的高速處理,而且利用軟件查找轉(zhuǎn)發(fā)表項(xiàng)也是轉(zhuǎn)發(fā)性能低下的一個(gè)關(guān)鍵原因。利用NP實(shí)現(xiàn)就可以擯棄這些缺陷,由于NP微引擎的完全可編程特性,通過(guò)采用不同的編程模型以及相應(yīng)的協(xié)議、算法,在低層硬件設(shè)備的支持下,完全可以實(shí)現(xiàn)許多復(fù)雜的網(wǎng)絡(luò)處理功能,如PIM-SM中對(duì)一些控制數(shù)據(jù)包的復(fù)雜處理等,而且具有很好的功能靈活性。3.2系統(tǒng)結(jié)構(gòu)和設(shè)計(jì)原理PIM-SM在NP中實(shí)現(xiàn)的系統(tǒng)結(jié)構(gòu)如圖2所示:主控部分運(yùn)行控制消息的接收、處理、組播樹(shù)狀態(tài)的維護(hù)和控制消息的發(fā)送等功能。它對(duì)控制消息進(jìn)行相應(yīng)的處理并根據(jù)協(xié)議規(guī)范觸發(fā)組播樹(shù)狀態(tài)信息集(TIB)的變化以及其它信息集的維護(hù)并產(chǎn)生相關(guān)動(dòng)作,比如接收J(rèn)oin/Prune協(xié)議數(shù)據(jù)包,根據(jù)其內(nèi)路由表管理子系統(tǒng)網(wǎng)管軟件子系統(tǒng)組播路由表控制消息處理消息接收/發(fā)送其它控制消息PIM-SM數(shù)據(jù)驅(qū)動(dòng)控制消息(DDM)組播轉(zhuǎn)發(fā)表組播查表組播報(bào)文總裁處理報(bào)頭報(bào)文緩存單元分類(lèi)檢查轉(zhuǎn)發(fā)引擎主控圖2 PIM-SM 組播協(xié)議實(shí)現(xiàn)體系結(jié)構(gòu)容生成或更新組播狀態(tài)表,從而觸發(fā)組播轉(zhuǎn)發(fā)表的更新,同時(shí)向上游節(jié)點(diǎn)發(fā)送相應(yīng)的Join/Prune協(xié)議數(shù)據(jù)包,從而實(shí)現(xiàn)整個(gè)組播共享樹(shù)的更新或維護(hù)等。轉(zhuǎn)發(fā)引擎則根據(jù)主控部分下發(fā)的組播轉(zhuǎn)發(fā)表轉(zhuǎn)發(fā)組播數(shù)據(jù)包,并且在必要時(shí)向主控上報(bào)數(shù)據(jù)驅(qū)動(dòng)控制消息,以觸發(fā)協(xié)議體的相關(guān)動(dòng)作和狀態(tài)變化。本文將重點(diǎn)討論P(yáng)IM-SM組播包高速轉(zhuǎn)發(fā)的實(shí)現(xiàn)的相關(guān)問(wèn)題,PIM-SM 協(xié)議控制包及其它協(xié)議包的處理見(jiàn)文獻(xiàn) 13等。系統(tǒng)實(shí)現(xiàn)的基本原則是:PIM-SM協(xié)議控制平面與數(shù)據(jù)平面(轉(zhuǎn)發(fā))盡量獨(dú)立,交互的信息量和頻度盡量??;利用NP的微引擎的高速處理能力實(shí)現(xiàn)組播包的轉(zhuǎn)發(fā),盡量減少查表次數(shù),縮短查表所需的指令周期,提高查表效率;功能符合協(xié)議規(guī)范,組播樹(shù)狀態(tài)信息與轉(zhuǎn)發(fā)表狀態(tài)應(yīng)盡可能保持同步。3.3 PIM-SM的轉(zhuǎn)發(fā)過(guò)程分析與功能分解PIM-SM數(shù)據(jù)包的轉(zhuǎn)發(fā)過(guò)程涉及的條件判斷與當(dāng)前TIB樹(shù)的狀態(tài)機(jī)及其函數(shù)相關(guān),為達(dá)到快速轉(zhuǎn)發(fā)的目的,需要將TIB與轉(zhuǎn)發(fā)過(guò)程相關(guān)的狀態(tài)和狀態(tài)函數(shù)的結(jié)果下發(fā)到轉(zhuǎn)發(fā)模塊,以便轉(zhuǎn)發(fā)模塊直接確定出接口列表oiflist或觸發(fā)相關(guān)的動(dòng)作;另外,轉(zhuǎn)發(fā)過(guò)程也可能觸發(fā)必須反映到控制平面的相關(guān)動(dòng)作,如重置KAT(S,G)、Update_SPTbit(S,G,iif)、 發(fā)送Assert消息等,因此,需要由轉(zhuǎn)發(fā)引擎構(gòu)造PIM-SM數(shù)據(jù)驅(qū)動(dòng)控制消息(DDM)適時(shí)上報(bào)主控模塊,以便主控模塊完成相應(yīng)的動(dòng)作。PIM-SM數(shù)據(jù)包轉(zhuǎn)發(fā)過(guò)程1的功能可以如下分解:其偽代碼中“ ”部分(由F*作為標(biāo)識(shí))由轉(zhuǎn)發(fā)引擎完成,“ ”部分(由Z*作為標(biāo)識(shí))由主控完成(進(jìn)行計(jì)算下發(fā)至轉(zhuǎn)發(fā)表或根據(jù)DDM 完成的相應(yīng)動(dòng)作),“ ”部分(由B*標(biāo)識(shí))功能需要進(jìn)一步分解由轉(zhuǎn)發(fā)引擎和主控引擎共同協(xié)作來(lái)完成。在iif(入接口)接收到從源S到目標(biāo)G的數(shù)據(jù)包:if( DirectlyConnected(S) = TRUE )F1/判斷S是否為跟DR直連的源。set_KeepaliveTimer(S,G)_to Keepalive_Period Z1 /重置KAT(S,G)Update_SPTbit(S,G,iif) B1 /第一個(gè)組播數(shù)據(jù)包從SPT樹(shù)到達(dá), (S,G) SPTbit 的更新g過(guò)程oiflist = NULLif(iif=RPF_interface(S)F2AND UpstreamJPState(S,G) = Joined Z2) /按照(S,G)狀態(tài)轉(zhuǎn)發(fā)oiflist = inherited_olist(S,G)Z3if( oiflist != NULL )F3 restart KeepaliveTimer(S,G)Z1 else if( iif = RPF_interface(RP(G)F4 ANDSPTbit(S,G) = FALSE)NOT F5 /按(*,G)或(*,*,RP)轉(zhuǎn)發(fā)oiflist = inherited_olist(S,G,rpt)Z4CheckSwitchToSpt(S,G)B2else /RPF 檢查失敗if ( SPTbit(S,G) = TRUEF5AND iif is in inherited_olist(S,G)F6 ) send Assert(S,G) on iif Z5/在入接口發(fā)Assert(S,G)else if ( SPTbit(S,G) = FALSE NOT F5 ANDiif is in inherited_olist(S,G,rpt) F7send Assert(*,G) on iif Z6/在入接口發(fā)Assert(*,G)oiflist = oiflist (-) iif F8forward packet on all interfaces in oiflist F9(S,G) SPTbit 用于區(qū)分是根據(jù)(*,*,RP)/(*,G)狀態(tài)還是根據(jù)(S,G)狀態(tài)轉(zhuǎn)發(fā),也就是決定從組播共享樹(shù)(RPT)轉(zhuǎn)發(fā)還是從最短路徑樹(shù)(SPT)轉(zhuǎn)發(fā),而且從SPT切換到RPT需要一個(gè)過(guò)渡周期,在此周期內(nèi)從S到G的組播數(shù)據(jù)包持續(xù)從組播共享樹(shù)上轉(zhuǎn)發(fā),與此同時(shí)以源S為目標(biāo)的最短路徑樹(shù)(SPT)正在建立,在SPT建立起來(lái)以前路由器必須仍然只按 (*,*,RP)/(*,G) 狀態(tài)進(jìn)行也就是只能在RPT上轉(zhuǎn)發(fā)。當(dāng)一個(gè)從S到G的數(shù)據(jù)包從SPT 樹(shù)到達(dá), (S,G) SPTbit 的更新過(guò)程如下:Update_SPTbit(S,G,iif) if ( iif = RPF_interface(S) F10#數(shù)據(jù)包沿源樹(shù)到來(lái)AND JoinDesired(S,G) = TRUEAND ( DirectlyConnected(S) = TRUEOR RPF_interface(S)!=RPF_interface(RP(G)OR inherited_olist(S,G,rpt) = NULLOR RPF(S,G) = RPF(*,G) ) )Set SPTbit(S,G) to TRUE在PIM 稀疏模式下,最后一跳路由器向RP 加入共享樹(shù)。一旦組播數(shù)據(jù)到達(dá)最后一跳路由器,它可選擇從SPT 接收組播流量,發(fā)起從RPT 切換到SPT 的決策函數(shù)如下:CheckSwitchToSpt(S,G) if ( pim_include(*,G) (-)pim_exclude(S,G)(+)pim_include(S,G) != NULL )F11AND SwitchToSptDesired(S,G) )restart KeepaliveTimer(S,G);其中, F11 表示本地有接收者, 本地接收者集合經(jīng)集合運(yùn)算公式得到數(shù)學(xué)表達(dá)式為:pim_include(*,G)(-)pim_exclude(S,G)(+)pim_include(S,G)Z7 ,由主控完成計(jì)算,并將判斷結(jié)果F11 下發(fā)至轉(zhuǎn)發(fā)表,轉(zhuǎn)發(fā)引擎根據(jù)其值決定是否上報(bào)主控重置KAT(S,G)。主控模塊在下發(fā)轉(zhuǎn)發(fā)表之前可能完成的運(yùn)算或操作有Z2、Z3、Z4、Z7。轉(zhuǎn)發(fā)引擎完成的操作有F1F11。為限制上報(bào)主控的PIM-SM 數(shù)據(jù)驅(qū)動(dòng)控制消息(DDM)的頻率,DDM分為兩類(lèi):DDM1(通知主控完成Z5/Z6/B1)和DDM2(通知主控完成Z1)。主控將KAT(S,G)重置、SPT 與RPT 相互轉(zhuǎn)換等所引起TIB 的變化采用觸發(fā)方式下發(fā)至轉(zhuǎn)發(fā)表。為保證線速處理,在具體實(shí)現(xiàn)上,按照如下規(guī)則處理:1) PIM-SM控制引擎在網(wǎng)絡(luò)處理器的Xscale Core上實(shí)現(xiàn),轉(zhuǎn)發(fā)引擎利用微引擎的可編程能力及高速數(shù)據(jù)包處理能力來(lái)實(shí)現(xiàn)。由于Xscale Core的時(shí)鐘頻率也很高,在控制引擎與轉(zhuǎn)發(fā)引擎之間的數(shù)據(jù)交換能力完全可以滿足要求。2) 轉(zhuǎn)發(fā)表項(xiàng)用CAM和SRAM配合來(lái)實(shí)現(xiàn),可以實(shí)現(xiàn)對(duì)數(shù)據(jù)結(jié)構(gòu)的高速緩存和快速操作,基本一次查表可得。使得查找時(shí)間縮短在納秒級(jí)別。3) 利用微引擎的匯編指令快速判斷報(bào)文類(lèi)型并讀取數(shù)據(jù)包源和目的地址信息,協(xié)議報(bào)文經(jīng)微引擎識(shí)別后上交給主控控制引擎處理。數(shù)據(jù)報(bào)文通過(guò)快速查找轉(zhuǎn)發(fā)表項(xiàng)后經(jīng)轉(zhuǎn)發(fā)模塊直接輸出。4) 如果數(shù)據(jù)報(bào)文查找轉(zhuǎn)發(fā)表項(xiàng)失敗,則將該數(shù)據(jù)包上交主控模塊處理。5) 驅(qū)動(dòng)協(xié)議行為的數(shù)據(jù)報(bào)文經(jīng)過(guò)微引擎辨別后仍舊采用偽消息方式通知主控模塊,主控模塊按照一般的協(xié)議報(bào)文處理流程來(lái)處理該偽消息。6) 主控模塊處理協(xié)議報(bào)文后更新路由表MRIB,然后采用定時(shí)觸發(fā)方式下發(fā)到微引擎重新生成轉(zhuǎn)發(fā)表項(xiàng),更新組播轉(zhuǎn)發(fā)表。4 轉(zhuǎn)發(fā)引擎的設(shè)計(jì)要保證組播數(shù)據(jù)的線速轉(zhuǎn)發(fā),轉(zhuǎn)發(fā)引擎的設(shè)計(jì)是關(guān)鍵,包含兩部分:組播轉(zhuǎn)發(fā)表的設(shè)計(jì)和組播轉(zhuǎn)發(fā)過(guò)程的設(shè)計(jì)。轉(zhuǎn)發(fā)表的設(shè)計(jì)要簡(jiǎn)潔合理,同時(shí)又必須包含必要的有用信息,最關(guān)鍵的是要便于快速查找和便于更新。轉(zhuǎn)發(fā)過(guò)程則要求快速、準(zhǔn)確,同時(shí)在所有需要轉(zhuǎn)發(fā)的端口上轉(zhuǎn)發(fā)組播數(shù)據(jù),這就涉及到Packet Copier,而網(wǎng)絡(luò)處理器也恰好提供了相應(yīng)的Packet Replication Algorithm,可以快速實(shí)現(xiàn)數(shù)據(jù)包的復(fù)制。4.1組播轉(zhuǎn)發(fā)表的設(shè)計(jì)根據(jù)功能的要求,組播轉(zhuǎn)發(fā)表如表1。表1 組播轉(zhuǎn)發(fā)表SS1S2*GG1G2G3RPF-interface(S)RPF-interface(S1)RPF-interface(S2)-RPF-interface(RP(G)-RPF-interface(RP(G2)RPF-interface(RP(G2)Olistinherited_olist(S1,G1)inherited_olist(S2,G2,rpt)inherited_olist(*,G3)RPT011Local_Recv-1/01/0Data_LiveXXX-Data_follow1/0-組播轉(zhuǎn)發(fā)表是按照組播轉(zhuǎn)發(fā)表項(xiàng)的邏輯數(shù)據(jù)結(jié)構(gòu)構(gòu)造的,包含3類(lèi)表項(xiàng):1)第一類(lèi)為組播轉(zhuǎn)發(fā)表中的(S,G,RPT=0)類(lèi)型的表項(xiàng),用于匹配直接從SPT轉(zhuǎn)發(fā)的組播數(shù)據(jù)包,這類(lèi)數(shù)據(jù)包的源地址是組播數(shù)據(jù)的源發(fā)送地址,通過(guò)最短路徑樹(shù)SPT轉(zhuǎn)發(fā),其出接口列表(olist)的值由主控模塊計(jì)算Z3得到,并下發(fā),更新或維護(hù)存于SRAM中的組播轉(zhuǎn)發(fā)表;Data_Live域表示當(dāng)有與該組播轉(zhuǎn)發(fā)表項(xiàng)匹配的組播數(shù)據(jù)包到達(dá)時(shí),通知主控模塊重新設(shè)置DDM2(重置KAT(S,G))消息的最遲響應(yīng)時(shí)刻,其設(shè)定值根據(jù)PIM-SM協(xié)議的相關(guān)規(guī)定來(lái)設(shè)置,由轉(zhuǎn)發(fā)軟件在下發(fā)該組播轉(zhuǎn)發(fā)表項(xiàng)時(shí)計(jì)算并寫(xiě)入或更新組播轉(zhuǎn)發(fā)表;Data_follow域表示在組播轉(zhuǎn)發(fā)表中存在該組播轉(zhuǎn)發(fā)表項(xiàng)之后是否有與該表項(xiàng)相匹配的組播數(shù)據(jù)包通過(guò),初始生成該組播轉(zhuǎn)發(fā)表項(xiàng)時(shí)將該域置為0,如果有數(shù)據(jù)包通過(guò)則將其置為1。2)第二類(lèi)為(S,G,RPT=1)類(lèi)型的表項(xiàng),這類(lèi)表項(xiàng)用來(lái)匹配通過(guò)組播共享樹(shù)(RPT)轉(zhuǎn)發(fā)的特定源的數(shù)據(jù)包,其olist由主控模塊計(jì)算Z4得到,下發(fā)到轉(zhuǎn)發(fā)模塊,更新或維護(hù)SRAM中的組播轉(zhuǎn)發(fā)表;Local_Recv由主控模塊計(jì)算Z7得到并下發(fā)。3)第三類(lèi)為(*,G,SPT=1)類(lèi)型的組播轉(zhuǎn)發(fā)表項(xiàng),這一類(lèi)型的表項(xiàng)用于任意源組播數(shù)據(jù)的轉(zhuǎn)發(fā),當(dāng)前兩種表項(xiàng)都不能匹配的情況下,通過(guò)查找此種類(lèi)型的組播轉(zhuǎn)發(fā)表項(xiàng)來(lái)匹配通過(guò)RPT轉(zhuǎn)發(fā)的組播數(shù)據(jù)流量,其olist的值由主控模塊計(jì)算Immediate_olist(*,G)并下發(fā),更新或維護(hù)SRAM中的組播轉(zhuǎn)發(fā)表。根據(jù)PIM-SM協(xié)議規(guī)范,組播數(shù)據(jù)包只能通過(guò)兩種途徑轉(zhuǎn)發(fā),組播共享樹(shù)(RPT)轉(zhuǎn)發(fā)和最短路徑樹(shù)(SPT)轉(zhuǎn)發(fā)。因此,在組播轉(zhuǎn)發(fā)表中,第一類(lèi)轉(zhuǎn)發(fā)表項(xiàng)與第二類(lèi)轉(zhuǎn)發(fā)表項(xiàng)無(wú)法共存于組播轉(zhuǎn)發(fā)表中,任一時(shí)刻只能有一種類(lèi)型的轉(zhuǎn)發(fā)表項(xiàng)有效。當(dāng)主控模塊判斷存在(S,G)狀態(tài)但最短路徑樹(shù)SPT尚未建立(SPTbit為FALSE,即NOT F5)起來(lái)時(shí),轉(zhuǎn)發(fā)的是(S,G,RPT=1)類(lèi)型的組播數(shù)據(jù)包;當(dāng)主控模塊判斷存在(S,G)狀態(tài)并且最短路徑樹(shù)SPT已經(jīng)建立(SPTbit為T(mén)RUE,即F5)起來(lái)時(shí),轉(zhuǎn)發(fā)的是(S,G,RPT=0)類(lèi)型的組播數(shù)據(jù)包;轉(zhuǎn)發(fā)第一第二類(lèi)型的組播數(shù)據(jù)包時(shí),如果組播轉(zhuǎn)發(fā)表中存在相應(yīng)的(S,G)第一第二類(lèi)型轉(zhuǎn)發(fā)表項(xiàng)時(shí),需要將其覆蓋。RPF-interface(S)和 RPF-interface(RP(G)在主控模塊下發(fā)組播轉(zhuǎn)發(fā)表之前根據(jù)組播路由信息表(MRIB)求得,得到的結(jié)果存進(jìn)組播轉(zhuǎn)發(fā)表。在(S,G,RPT=1)類(lèi)型表項(xiàng)中同時(shí)保存這兩項(xiàng)的目的在于:當(dāng)從組播共享樹(shù)接收組播數(shù)據(jù)包的同時(shí),還需要監(jiān)控是否有組播數(shù)據(jù)包從最短路徑樹(shù)到達(dá)(F10),如果某時(shí)刻監(jiān)測(cè)到RPF(S) OK?U_SPT=1START組播查表:查表?xiàng)l件: 組播包中S,G匹配轉(zhuǎn)發(fā)表中的S,G 域輸出:SUCC( 是否成功1/0)RPF-interface(S)RPF-interface(RP(G)olist: 輸出列表RPT : 共享1/源0 樹(shù)Local-Recv : 本地有無(wú)接收者1/0Data-Live: 重置KAT 最終期限D(zhuǎn)ata_follow: 是否已有數(shù)據(jù)通過(guò)S直連KAT 處理1iif=RPF_interface(S)且RPT=1YesNoYes息No息Is (S,G) match?Is(*,G) match?Noif olistNULL olistYes,succ=1,查找成功Is SPTbitset?YesRPF(S) OK?NoIS Drop?YesDrop YesException processNoYesKAT處理2olist=olist-iif; 在OLIST所有的接口轉(zhuǎn)發(fā)數(shù)據(jù)包NoRPF(RP(G) OK?Yesif olistNULL olistYes,succ=1,查找成功If Local_Recv = 1KAT處理1YesS directly connect?NoException processDrop YesNoDrop PacketNoU-SPT = 1 or ASSERT-S=1生成DDM1:消息格式為(U-SPT,ASSERT-S,ASSERT-G,iif,組播數(shù)據(jù)包頭信息)將DDM1上報(bào)主控模塊ENDYesNo圖3 組播轉(zhuǎn)發(fā)模塊處理過(guò)程數(shù)據(jù)包既從RPT到達(dá)又從SPT到達(dá),則需要通知主控模塊進(jìn)行Updata_SPTbit(S,G,iif)的處理工作,即B1。4.2 組播轉(zhuǎn)發(fā)過(guò)程轉(zhuǎn)發(fā)模塊完成的轉(zhuǎn)發(fā)處理過(guò)程如圖3所示。U-SPT、ASSERT-S、ASSERT-G是在轉(zhuǎn)發(fā)過(guò)程中用來(lái)分別記錄是否(1/0)需要通知主控模塊執(zhí)行B1、Z5和Z6操作的標(biāo)志位。根據(jù)RFC PIM-SM協(xié)議規(guī)范,這3種事件發(fā)生概率較小,故DDM1消息不會(huì)過(guò)于頻繁。由于當(dāng):(1) S 為直連源; (2)從S 到G 的數(shù)據(jù)包沿源樹(shù)到達(dá)且有本地接收者;(3)從S 到G 的數(shù)據(jù)包沿源樹(shù)到達(dá)時(shí),均需重置KAT(S,G),進(jìn)行中斷和重啟定時(shí)器的操作。因此,如果每次出現(xiàn)上述情況時(shí)均通知主控模塊,勢(shì)必會(huì)造成通知的過(guò)于頻繁,造成時(shí)鐘中斷的過(guò)于頻繁,占用處理器資源過(guò)多以及消息緩沖區(qū)溢出從而影響數(shù)據(jù)包的快速轉(zhuǎn)發(fā),而網(wǎng)絡(luò)處理器恰好提供了RBUF緩存,通過(guò)空閑進(jìn)程將數(shù)據(jù)從RBUF中移入DRAM重組得到完整的Packet。RBUF 用于緩存多個(gè)需要通知主控模塊執(zhí)行Z1的相應(yīng)(S,G)項(xiàng),再利用網(wǎng)絡(luò)處理器的通用寄存器記錄緩沖區(qū)內(nèi)容上報(bào)主控模塊的最終期限時(shí)刻。由于在網(wǎng)絡(luò)處理器中主要進(jìn)行組播數(shù)據(jù)包的快速轉(zhuǎn)發(fā),(1)、(2)的情況較少,當(dāng)網(wǎng)絡(luò)處理器微引擎檢查發(fā)生(1)、(2)情況時(shí),則將(S,G)對(duì)直接放入緩沖區(qū)(KAT 處理1)。由于第(3)種情況發(fā)生的頻率過(guò)于頻繁,必須限制(S,G)項(xiàng)寫(xiě)入緩沖區(qū)的次數(shù),減少中斷的發(fā)生,完成的是KAT 處理2:如果匹配表項(xiàng)的Data_follow=0 , 將該表項(xiàng)Data_follow置1,將(S,G)對(duì)寫(xiě)入緩沖區(qū)并判斷匹配表項(xiàng)的Data-Live(最后上報(bào)期限)是否小于時(shí)間寄存器中記錄的時(shí)間,如果小于則將時(shí)間寄存器的值置為Data-Live的值,完成定時(shí)器的更新。如果定時(shí)器時(shí)刻到達(dá)或緩沖區(qū)將滿,則將緩沖區(qū)中的(S,G)數(shù)據(jù)加上控制報(bào)頭生成DDM2上報(bào)主控模塊, 同時(shí)清空緩沖區(qū)并將時(shí)間寄存器設(shè)為最大值(最大值根據(jù)PIM-SM協(xié)議規(guī)范來(lái)確定)。5 結(jié)論本設(shè)計(jì)對(duì)PIM-SM 協(xié)議進(jìn)行了細(xì)致的功能分割;轉(zhuǎn)發(fā)模塊可采用流水作業(yè),利用網(wǎng)絡(luò)處理器的高速處理能力和快速可編程能力,僅需一次查表,實(shí)現(xiàn)組播數(shù)據(jù)包的線速轉(zhuǎn)發(fā);解決了轉(zhuǎn)發(fā)硬件、轉(zhuǎn)發(fā)軟件和主控之間速度不匹配以及上報(bào)KAT 重置消息的問(wèn)題。 參考文獻(xiàn)1Bill Fenner, Mark Handley, Hugh Holbrook. draft-ietf-pim-sm-v2-new-12.txt INTERNET-DRAFT 20 March 20062 S. Deering, W. Fenner and B. Haberman, “Multicast Listener Discovery (MLD) for IPv6”, RFC 2710, 19993B.Haber
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 開(kāi)年會(huì)議領(lǐng)導(dǎo)發(fā)言稿范文(5篇)
- 幼小銜接培訓(xùn)心得體會(huì)
- 感動(dòng)中國(guó)十大人物先進(jìn)事跡15篇
- 開(kāi)業(yè)的致辭(集錦15篇)
- 感人婚禮致辭
- 第六單元課外古詩(shī)詞誦讀《朝天子.詠喇叭》 統(tǒng)編版語(yǔ)文九年級(jí)下冊(cè)
- 智研咨詢發(fā)布:2024年中國(guó)智能魚(yú)缸行業(yè)市場(chǎng)發(fā)展環(huán)境及前景研究報(bào)告
- 2024年中國(guó)無(wú)人機(jī)交通管理(UTM)行業(yè)市場(chǎng)規(guī)模及發(fā)展前景研究報(bào)告(智研咨詢)
- 二零二五版帶車(chē)位產(chǎn)權(quán)房屋買(mǎi)賣(mài)合同范本2篇
- 二零二五年度大型活動(dòng)物資運(yùn)輸合同書(shū)定制版3篇
- 2025年銷(xiāo)售部年度工作計(jì)劃
- 2024年蘇州工業(yè)園區(qū)服務(wù)外包職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試歷年參考題庫(kù)含答案解析
- 人教版初中語(yǔ)文2022-2024年三年中考真題匯編-學(xué)生版-專題08 古詩(shī)詞名篇名句默寫(xiě)
- 2024-2025學(xué)年人教版(2024)七年級(jí)(上)數(shù)學(xué)寒假作業(yè)(十二)
- 山西粵電能源有限公司招聘筆試沖刺題2025
- ESG表現(xiàn)對(duì)企業(yè)財(cái)務(wù)績(jī)效的影響研究
- 醫(yī)療行業(yè)軟件系統(tǒng)應(yīng)急預(yù)案
- 車(chē)間空調(diào)崗位送風(fēng)方案
- 使用錯(cuò)誤評(píng)估報(bào)告(可用性工程)模版
- 《精密板料矯平機(jī) 第2部分:技術(shù)規(guī)范》
- 2023-2024年同等學(xué)力經(jīng)濟(jì)學(xué)綜合真題及參考答案
評(píng)論
0/150
提交評(píng)論