一種報文轉(zhuǎn)發(fā)方法
【專利摘要】本發(fā)明實施例提供了一種報文轉(zhuǎn)發(fā)方法,能在上層業(yè)務(wù)流程不感知底層交換芯片的基礎(chǔ)上實現(xiàn)轉(zhuǎn)發(fā),同時不影響設(shè)備的業(yè)務(wù)功能和轉(zhuǎn)發(fā)性能。本發(fā)明實施例所提供的報文轉(zhuǎn)發(fā)方法,使用時將交換芯片作為主接口注冊,該方法包括:交換芯片入接口接收報文并辨別報文類型;根據(jù)報文類型定位報文IP頭的位置;將處理后的報文送入業(yè)務(wù)處理流程;根據(jù)交換芯片出接口的屬性信息,獲取交換芯片出接口方向報文需要加封vlan標簽的值和標簽的層數(shù);對報文的鏈路層加封vlan標簽,并發(fā)送經(jīng)過業(yè)務(wù)處理的報文。
【專利說明】一種報文轉(zhuǎn)發(fā)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)【技術(shù)領(lǐng)域】,具體涉及一種報文轉(zhuǎn)發(fā)方法。
技術(shù)背景
[0002]網(wǎng)絡(luò)設(shè)備中使用交換芯片對設(shè)備接口進行擴展是常見的一種手段,可以用較低的成本對轉(zhuǎn)發(fā)接口進行復(fù)用,提高設(shè)備整體使用的靈活性和競爭力。
[0003]使用交換芯片復(fù)用接口必須利用vlan的隔離特性對接口進行劃分,即不同接口送上來的報文,都會被添加該接口對應(yīng)的vlan標簽。此種方式可以有效的對不同接口進行區(qū)分,保證接口復(fù)用的獨立性。但是使用此種方式收發(fā)的報文,比原始報文多加了一層vlan標簽,在進入CPU處理時,如何對此標簽進行處理,會直接影響到業(yè)務(wù)處理流程的統(tǒng)一性和設(shè)備轉(zhuǎn)發(fā)的性能。
[0004]現(xiàn)有技術(shù)中將交換芯片作為主接口注冊時,不對報文類型進行區(qū)分,均采用剝離vlan標簽的方法進行報文轉(zhuǎn)發(fā),當轉(zhuǎn)發(fā)流量較大時,由于進行了標簽剝離和添加操作,對每一個報文都存在內(nèi)存拷貝操作,極大的降低了設(shè)備的轉(zhuǎn)發(fā)性能。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本發(fā)明實施例提供了一種報文轉(zhuǎn)發(fā)方法,可以實現(xiàn)在上層業(yè)務(wù)流程不感知底層交換芯片的基礎(chǔ)上實現(xiàn)轉(zhuǎn)發(fā),同時不影響設(shè)備的業(yè)務(wù)功能和轉(zhuǎn)發(fā)性能。
[0006]本發(fā)明一實施例提供了一種報文轉(zhuǎn)發(fā)方法,其特征在于,使用時將交換芯片作為主接口注冊,所述方法包括:
[0007]交換芯片入接口接收報文并辨別報文類型;
[0008]根據(jù)報文類型定位報文IP頭的位置;
[0009]將處理后的報文送入業(yè)務(wù)處理流程;
[0010]根據(jù)交換芯片出接口的屬性信息,獲取交換芯片出接口方向報文需要加封vlan標簽的值和標簽的層數(shù);
[0011]對報文IP頭前面的鏈路層加封vlan標簽,并發(fā)送經(jīng)過業(yè)務(wù)處理的報文。
[0012]其中,所述報文類型包括:本機處理或設(shè)備轉(zhuǎn)發(fā)。
[0013]其中,所述報文類型為本機處理時,所述根據(jù)報文類型定位報文IP頭的位置包括:剝離報文中鏈路層的vlan標簽,使頭指針指向IP頭位置。
[0014]其中,所述剝離報文中鏈路層的vlan標簽為:剝離由交換芯片添加的vlan標簽。
[0015]其中,進一步包括:報文自身攜帶的子接口 vlan標簽直接隨報文一同送入業(yè)務(wù)處
理流程。
[0016]其中,所述報文類型為設(shè)備轉(zhuǎn)發(fā)時,所述根據(jù)報文類型定位報文IP頭的位置包括:
[0017]根據(jù)交換芯片入接口的屬性信息確定由交換芯片添加的vlan標簽的層數(shù);根據(jù)交換芯片添加的vlan標簽的層數(shù),將頭指針偏移至IP頭位置。[0018]其中,所述頭指針偏移包括:更改頭指針地址信息,更改變量與交換芯片添加的vlan標簽的層數(shù)相同。
[0019]本發(fā)明公開的報文轉(zhuǎn)發(fā)方法,將交換芯片作為主接口注冊,業(yè)務(wù)功能不收子接口限制;同時根據(jù)報文類型,采取不同的方式定位IP頭的位置。對于報文類型為設(shè)備轉(zhuǎn)發(fā)的情況,不需要對報文進行剝離,而是采取指南偏移的方式獲取IP頭位置,避免了在報文轉(zhuǎn)發(fā)過程中對報文的多次拷貝;進而提到了設(shè)備的處理和轉(zhuǎn)化性能。
【專利附圖】
【附圖說明】
[0020]圖1所示為本發(fā)明一實施例提供的報文結(jié)構(gòu)示意圖。
[0021]圖2所示為本發(fā)明一實施例提供的報文轉(zhuǎn)發(fā)方法流程圖。
[0022]圖3所示為本發(fā)明一實施例提供的經(jīng)處理后本機處理報文的結(jié)構(gòu)示意圖。
[0023]圖4所示為本發(fā)明一實施例提供的設(shè)備轉(zhuǎn)發(fā)報文轉(zhuǎn)發(fā)方法示意圖。
[0024]圖5所示為本發(fā)明一實施例提供的對處理后的本機處理報文封裝vlan標簽信息后的結(jié)構(gòu)不意圖。
[0025]圖6所示為本發(fā)明另一實施例提供的對處理后的設(shè)備轉(zhuǎn)發(fā)報文封裝vlan標簽信息后的結(jié)構(gòu)不意圖。
【具體實施方式】
[0026]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0027]本發(fā)明實施例提供了一種攜帶多層vlan標簽報文的轉(zhuǎn)發(fā)方法,將交換芯片作為主接口注冊,并根據(jù)報文類型對報文采取不同的轉(zhuǎn)發(fā)方式,可以實現(xiàn)在上層業(yè)務(wù)流程不感知底層的交換芯片的基礎(chǔ)上實現(xiàn)轉(zhuǎn)發(fā),同時不影響設(shè)備的業(yè)務(wù)功能和轉(zhuǎn)發(fā)性能。
[0028]圖1所示為攜帶多層vlan標簽報文的結(jié)構(gòu)示意圖,如圖1所示,攜帶多層vlan標簽的報文包括MAC頭、至少一個vlan標簽、IP頭以及報文內(nèi)容。其中,圖示DMAC+SMAC為
MAC頭,由交換芯片添加的vlan標簽位于MAC頭和IP頭之間,如圖示VLAN1、VLAN2.......這里,報文中的VLAN標簽的個數(shù)即為交換芯片添加的vlan標簽的層數(shù)。
[0029]圖2所示為本發(fā)明一實施例提供的報文轉(zhuǎn)發(fā)方法的流程圖,如圖2所示,當接收到如圖1所述的報文后,該方法包括:
[0030]步驟201:交換芯片入接口接收報文,并辨別報文類型。
[0031]報文類型包括:本機處理或設(shè)備轉(zhuǎn)發(fā)。本機處理報文目的地為本地網(wǎng)絡(luò)設(shè)備,接收后用于本地協(xié)議學習等,業(yè)務(wù)處理流程為送入內(nèi)核協(xié)議棧進行業(yè)務(wù)處理,在本地設(shè)備終結(jié)不進行轉(zhuǎn)發(fā),僅在需要時發(fā)送與原報文相對應(yīng)的應(yīng)答報文,一般轉(zhuǎn)發(fā)流量較小。設(shè)備轉(zhuǎn)發(fā)報文目的地為其他網(wǎng)絡(luò)設(shè)備,接收后需要送入?yún)^(qū)別于內(nèi)核協(xié)議棧的設(shè)備轉(zhuǎn)發(fā)業(yè)務(wù)處理流程,更新信息后再發(fā)送出去,其轉(zhuǎn)發(fā)流量大。
[0032]步驟202:根據(jù)報文類型,定位報文IP頭的位置
[0033]當報文類型為本機處理時,定位報文IP頭的位置為:剝離報文中鏈路層的vlan標簽,即可得到包含MAC頭(DMAC+SMAC)和IP頭組成的報文,剝離后的報文結(jié)構(gòu)具體如圖3所示。由于后續(xù)CPU所處理的報文已經(jīng)不再包含vlan標簽,頭指針直接指向IP頭,因此后續(xù)處理流程中CPU不會感知到底層交換芯片的存在。
[0034]這里需要注意,在本發(fā)明一實施例中,被剝離的vlan標簽為由交換芯片添加的標簽。報文自身攜帶的子接口 vlan標簽不能進行剝離,需隨報文一同送入內(nèi)核協(xié)議棧中處理。
[0035]當報文類型為設(shè)備轉(zhuǎn)發(fā)時,定位報文IP頭的位置為:根據(jù)交換芯片入接口的屬性信息確定由交換芯片添加的vlan標簽的層數(shù),將頭指針偏移至IP頭位置,這樣CPU在識別IP頭時,可直接通過頭指針正確定位IP頭,不會受到報文中鏈路層信息的干擾,從而使得上層業(yè)務(wù)流程不會感知底層交換芯片。如圖4所示,在定位IP頭時,頭指針pucData向報文IP頭位置偏移,并指向IP頭的位置,偏移量為由交換芯片添加的vlan標簽的層數(shù)。
[0036]頭指針的偏移可通過改變頭指針的地址信息實現(xiàn),頭指針的地址信息為在內(nèi)存中的存放位置。如MAC頭和IP頭位置之間添加的vlan標簽層數(shù)為3層,而一個vlan標簽為4個字節(jié),那么將頭指針地址信息加12個字節(jié)即可實現(xiàn)向IP頭位置的偏移。在這種情況下,避免了標簽剝離和添加操作時的內(nèi)存操作
[0037]步驟203:將報文送入業(yè)務(wù)處理流程。
[0038]當報文類型為本機處理時,內(nèi)核協(xié)議棧僅對報文中所包含的信息進行本地學習,并發(fā)送與原報文相對應(yīng)的應(yīng)答報文;當報文類型為設(shè)備轉(zhuǎn)發(fā)時,設(shè)備轉(zhuǎn)發(fā)流程需對報文內(nèi)容進行解析,并更新報文信息,然后選擇相應(yīng)的接口發(fā)送更新信息后的報文。
[0039]步驟204:根據(jù)交換芯片出接口的屬性信息,獲取交換芯片出接口方向報文需要加封vlan標簽的值和標簽的層數(shù)。
[0040]后續(xù)報文每經(jīng)過一個交換芯片,即需要加封一層vlan標簽。這里,獲取需要加封的vlan標簽的值以及層數(shù)(經(jīng)過的交換芯片的個數(shù)),vlan標簽的取值和層數(shù)存儲于交換芯片出接口的屬性信息中。
[0041]步驟205:對報文IP頭前面的鏈路層加封vlan標簽,并發(fā)送經(jīng)業(yè)務(wù)處理后的報文。對報文的鏈路層信息進行封裝時,多層vlan標簽被重新添加。
[0042]當報文類型為本機處理時,所述封裝報文鏈路層信息的詳細過程如圖5所示,多
層vlan標簽(VLAN1、VLAN2......)被重新添加。對于本機處理報文業(yè)務(wù)處理,報文僅在本
地學習,報文內(nèi)容并沒有改變,CPU所要發(fā)送的應(yīng)答報文與原報文一致,重新添加的vlan標簽也與原報文一致。
[0043]當報文類型為設(shè)備轉(zhuǎn)發(fā)時,所述封裝報文鏈路層信息的詳細過程如圖6所示,
報文的多層vlan標簽(VLAN1、VLAN2......)經(jīng)CPU處理和重新封裝后變?yōu)?VLAN3、
VLAN2......)。對于設(shè)備轉(zhuǎn)發(fā)報文業(yè)務(wù)處理,根據(jù)路由信息,轉(zhuǎn)發(fā)報文會選擇相應(yīng)的接口發(fā)
送出去。其對應(yīng)的交換芯片vlan標簽信息也會改變。這樣在轉(zhuǎn)發(fā)流量首包進行處理時,按本發(fā)明所提供的技術(shù)方案會重新封裝其鏈路層信息,并保存下來。后續(xù)報文可直接封裝上此鏈路層信息進行轉(zhuǎn)發(fā)。
[0044]本發(fā)明公開的報文轉(zhuǎn)發(fā)方法接收本機處理報文時,由于本機處理報文流量小不影響設(shè)備的轉(zhuǎn)發(fā)性能,采用剝離vlan標簽方法可使處理流程中不感知底層交換芯片的存在。
[0045]本發(fā)明公開的報文轉(zhuǎn)發(fā)方法接收設(shè)備轉(zhuǎn)發(fā)報文時,由于設(shè)備轉(zhuǎn)發(fā)報文流量大,其轉(zhuǎn)發(fā)效率高低直接影響到設(shè)備性能。采用偏移頭指針的方法,避免了標簽剝離和添加操作時的內(nèi)存操作,保證了設(shè)備性能,提高了效率。
[0046]本領(lǐng)域技術(shù)人員可以理解,以上所有的步驟均可以使用程序代碼來實現(xiàn),并不代表實際的實現(xiàn)過程。
[0047]以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
【權(quán)利要求】
1.一種報文轉(zhuǎn)發(fā)方法,其特征在于,使用時將交換芯片作為主接口注冊,所述方法包括: 交換芯片入接口接收報文并辨別報文類型; 根據(jù)報文類型定位報文IP頭的位置; 將處理后的報文送入業(yè)務(wù)處理流程; 根據(jù)交換芯片出接口的屬性信息,獲取交換芯片出接口方向報文需要加封Vlan標簽的值和標簽的層數(shù); 對報文的鏈路層加封vlan標簽,并發(fā)送經(jīng)過業(yè)務(wù)處理的報文。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述報文類型包括:本機處理或設(shè)備轉(zhuǎn)發(fā)。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述報文類型為本機處理時,所述根據(jù)報文類型定位報文IP頭的位置包括: 剝離報文中鏈路層的vlan標簽,使頭指針指向IP頭位置。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述剝離報文中鏈路層的vlan標簽為:剝離由交換芯片添加的vlan標簽。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,進一步包括:報文自身攜帶的子接口vlan標簽直接隨報文一同送入業(yè)務(wù)處理流程。
6.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述報文類型為設(shè)備轉(zhuǎn)發(fā)時,所述根據(jù)報文類型定位報文IP頭的位置包括: 根據(jù)交換芯片入接口的屬性信息確定由交換芯片添加的vlan標簽的層數(shù);根據(jù)交換芯片添加的vlan標簽的層數(shù),將頭指針偏移至IP頭位置。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述頭指針偏移包括:更改頭指針地址信息,更改變量與交換芯片添加的vlan標簽的層數(shù)相同。
【文檔編號】H04L12/741GK103634213SQ201310541581
【公開日】2014年3月12日 申請日期:2013年11月4日 優(yōu)先權(quán)日:2013年11月4日
【發(fā)明者】韓陽 申請人:天津漢柏信息技術(shù)有限公司