一種標簽棧的壓縮方法及裝置、標簽棧的解壓縮方法及裝置的制造方法
【技術領域】
[0001]本發(fā)明涉及通信技術領域,具體涉及一種標簽棧的壓縮方法及裝置、標簽棧的解壓縮方法及裝置。
【背景技術】
[0002]為了實現(xiàn)數(shù)據(jù)包的快速轉發(fā),現(xiàn)有技術中存在一種分段路由(英文-SegmentRouting,簡稱:SR)技術。在進行報文轉發(fā)之前,由源節(jié)點根據(jù)轉發(fā)需求創(chuàng)建源節(jié)點與目的節(jié)點之間的轉發(fā)路徑(英文:Label Switching Path,簡稱:LSP),確定出LSP經(jīng)過的節(jié)點、鏈路以及節(jié)點要執(zhí)行的業(yè)務等信息,并以標簽棧形式將這些信息添加在待轉發(fā)的報文中。這樣,LSP上的轉發(fā)節(jié)點接收到報文后,即可根據(jù)標簽棧棧頂?shù)臉撕灡硎镜暮x進行后續(xù)處理。例如,棧頂標簽為業(yè)務分段標識(英文:Segment Identificat1n,簡稱:SID),轉發(fā)節(jié)點就可執(zhí)行該業(yè)務SID代表的業(yè)務;棧頂標簽為節(jié)點SID,轉發(fā)節(jié)點就可將報文轉發(fā)至該節(jié)點SID代表的節(jié)點;棧頂標簽為鏈路SID,中間節(jié)點就可按照該鏈路SID的指示進行鏈路轉發(fā),以將報文轉發(fā)至中間節(jié)點的對端節(jié)點。
[0003]由此可知,當轉發(fā)節(jié)點對報文沿著該LSP進行轉發(fā)時,如果確定出的LSP經(jīng)過的節(jié)點、鏈路以及節(jié)點要執(zhí)行的業(yè)務等信息較多,那么壓入到該報文中的標簽棧就會嵌套多層標簽,導致標簽棧的長度過長,大大的增加了被轉發(fā)的報文長度,不利于報文在網(wǎng)絡中傳輸。
【發(fā)明內容】
[0004]本發(fā)明實施例提供的標簽棧的壓縮方法及裝置、標簽棧的解壓縮方法及裝置,在轉發(fā)節(jié)點對報文進行轉發(fā)時,能夠縮短壓入報文的標簽棧長度,進一步減少報文的總長度,有利于報文在網(wǎng)絡中傳輸。
[0005]為此,本發(fā)明實施例提供如下技術方案:
[0006]第一方面,本發(fā)明實施例提供了一種標簽棧的壓縮方法,所述方法包括:
[0007]網(wǎng)絡設備獲得轉發(fā)路徑對應的第一標簽棧,所述第一標簽棧包括所述轉發(fā)路徑上的每個節(jié)點對應的節(jié)點標簽;
[0008]所述網(wǎng)絡設備從所述第一標簽棧中選取第一節(jié)點標簽,所述第一節(jié)點標簽對應的節(jié)點在對報文進行轉發(fā)時,能對報文封裝至少兩層標簽;
[0009]所述網(wǎng)絡設備將所述第一標簽棧中位于所述第一節(jié)點標簽之后的至少兩個相鄰標簽替換為一個第一壓縮標簽,生成第二標簽棧;
[0010]所述網(wǎng)絡設備指導所述轉發(fā)路徑上的源節(jié)點根據(jù)所述第二標簽棧進行報文處理。
[0011]在第一方面的第一種可能的實現(xiàn)方式中,所述網(wǎng)絡設備從所述第一標簽棧中選取第一節(jié)點標簽,包括:
[0012]所述網(wǎng)絡設備獲得節(jié)點標簽i對應的節(jié)點能對報文封裝標簽的層數(shù)Q和所述節(jié)點標簽i關聯(lián)的標簽個數(shù)% ;所述節(jié)點標簽i關聯(lián)的標簽為節(jié)點標簽i+Ι及所述節(jié)點標簽i+Ι之后的標簽,1 ( i〈n,η為所述轉發(fā)路徑上的節(jié)點的個數(shù);
[0013]所述網(wǎng)絡設備計算第一差值Λ x = L-M,;
[0014]所述網(wǎng)絡設備選取所述第一節(jié)點標簽,所述第一節(jié)點標簽對應的節(jié)點能對報文封裝標簽的層數(shù)不小于2,且所述第一節(jié)點標簽對應的第一差值不小于0。
[0015]結合第一方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,如果所述第一標簽棧包括至少兩個節(jié)點標簽對應的節(jié)點能對報文封裝標簽的層數(shù)不小于2,且所述至少兩個節(jié)點標簽對應的第一差值不小于0,則,
[0016]所述第一節(jié)點標簽關聯(lián)的標簽個數(shù)是所述至少兩個節(jié)點標簽關聯(lián)的標簽個數(shù)中數(shù)值最大的。
[0017]結合第一方面的第一種或第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,若i = η,則Μη為零,或者Μη為節(jié)點標簽η之后的標簽數(shù)。
[0018]結合第一方面的第一種至第三種中的任一種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,在所述生成第二標簽棧之后,所述方法還包括:
[0019]所述網(wǎng)絡設備獲得節(jié)點標簽j對應的節(jié)點能對報文封裝標簽的層數(shù)L,和所述節(jié)點標簽j關聯(lián)的標簽個數(shù)Μ,;所述節(jié)點標簽j關聯(lián)的標簽為節(jié)點標簽j+Ι及所述節(jié)點標簽j+Ι之后的標簽,1彡j<m, m彡η ;
[0020]所述網(wǎng)絡設備計算第二差值Λ j = L -Mj ;
[0021]所述網(wǎng)絡設備選取第二節(jié)點標簽,所述第二節(jié)點標簽對應的節(jié)點能對報文封裝標簽的層數(shù)不小于2,且所述第二節(jié)點標簽對應的第二差值不小于0 ;
[0022]所述網(wǎng)絡設備將所述第二標簽棧中位于所述第二節(jié)點標簽之后的至少兩個相鄰標簽替換為一個第二壓縮標簽,生成第三標簽棧;所述第二節(jié)點標簽之后的至少兩個相鄰標簽中包括所述第一壓縮標簽;
[0023]相應地,所述網(wǎng)絡設備指導所述轉發(fā)路徑上的源節(jié)點根據(jù)所述第二標簽棧進行報文處理為:
[0024]所述網(wǎng)絡設備指導所述轉發(fā)路徑上的源節(jié)點根據(jù)所述第三標簽棧進行報文處理。
[0025]結合第一方面或第一方面的第一種至第四種中的任一種可能的實現(xiàn)方式,在第五種可能的實現(xiàn)方式中,在所述網(wǎng)絡設備從所述第一標簽棧中選取第一節(jié)點標簽之前,所述方法還包括:
[0026]所述網(wǎng)絡設備判斷所述源節(jié)點是否能對報文封裝至少兩層標簽,如果是,再執(zhí)行從所述第一標簽棧中選取第一節(jié)點標簽的步驟。
[0027]結合第一方面或第一方面的第一種至第五種中的任一種可能的實現(xiàn)方式,在第六種可能的實現(xiàn)方式中,所述節(jié)點標簽為節(jié)點分段標識SID或鏈路SID。
[0028]第二方面,本發(fā)明實施例提供了一種標簽棧的解壓縮方法,所述方法包括:
[0029]轉發(fā)節(jié)點獲取本節(jié)點的標簽配置信息,所述標簽配置信息包括壓縮標簽與被壓縮標簽的對應關系,所述被壓縮標簽包括至少兩個標簽;
[0030]所述轉發(fā)節(jié)點接收從源節(jié)點發(fā)送來的報文,所述報文包含第一標簽棧,所述第一標簽棧包括所述壓縮標簽;
[0031]所述轉發(fā)節(jié)點根據(jù)所述標簽配置信息,將所述第一標簽棧中的所述壓縮標簽替換為所述被壓縮標簽,生成第二標簽棧;
[0032]所述轉發(fā)節(jié)點根據(jù)所述第二標簽棧對所述報文進行處理。
[0033]在第二方面的第一種可能的實現(xiàn)方式中,所述轉發(fā)節(jié)點根據(jù)所述第二標簽棧對所述報文進行處理,包括:
[0034]如果所述第二標簽棧的棧頂標簽為節(jié)點標簽,所述轉發(fā)節(jié)點將所述報文轉發(fā)至所述節(jié)點標簽對應的節(jié)點;
[0035]如果所述第二標簽棧的棧頂標簽為業(yè)務標簽,所述轉發(fā)節(jié)點對所述報文執(zhí)行所述業(yè)務標簽對應的業(yè)務。
[0036]第三方面,本發(fā)明實施例提供了一種標簽棧的壓縮裝置,所述裝置包括:
[0037]標簽棧獲得單元,用于獲得轉發(fā)路徑對應的第一標簽棧,所述第一標簽棧包括所述轉發(fā)路徑上的每個節(jié)點對應的節(jié)點標簽;
[0038]第一選取單元,用于從所述標簽棧獲得單元獲得的所述第一標簽棧中選取第一節(jié)點標簽,所述第一節(jié)點標簽對應的節(jié)點在對報文進行轉發(fā)時,能對報文封裝至少兩層標簽;
[0039]第一替換單元,用于將所述第一標簽棧中位于所述第一節(jié)點標簽之后的至少兩個相鄰標簽替換為一個第一壓縮標簽,生成第二標簽棧;
[0040]指導單元,用于指導所述轉發(fā)路徑上的源節(jié)點根據(jù)所述第一替換單元生成的所述第二標簽棧進行報文處理。
[0041]在第三方面的第一種可能的實現(xiàn)方式中,所述第一選取單元包括:
[0042]第一獲得單元,用于獲得節(jié)點標簽i對應的節(jié)點能對報文封裝標簽的層數(shù)Q和所述節(jié)點標簽i關聯(lián)的標簽個數(shù)% ;所述節(jié)點標簽i關聯(lián)的標簽為節(jié)點標簽i+Ι及所述節(jié)點標簽i+Ι之后的標簽,1 ( i〈n, η為所述轉發(fā)路徑上的節(jié)點的個數(shù);
[0043]第一計算單元,用于根據(jù)所述第一獲得單元獲得的U和Mi計算第一差值Λ x =L-M,;
[0044]選取子單元,用于選取所述第一節(jié)點標簽,所述第一節(jié)點標簽對應的節(jié)點能對報文封裝標簽的層數(shù)不小于2,且所述第一節(jié)點標簽對應的第一差值不小于0。
[0045]結合第三方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述裝置還包括:
[0046]第二獲得單元,用于在所述第一替換單元生成所述第二標簽棧后,獲得節(jié)點標簽j對應的節(jié)點能對報文封裝標簽的層數(shù)L,和所述節(jié)點標簽j關聯(lián)的標簽個數(shù)M,;所述節(jié)點標簽j關聯(lián)的標簽為節(jié)點標簽j+Ι及所述節(jié)點標簽j+Ι之后的標簽,1 ( j<m, m < η ;
[0047]第二計算單元,用于根據(jù)所述第二獲得單元獲得的“和Μ,計算第二差值Λ ,=LrM.1 ;
[0048]第二選取單元,用于選取第二節(jié)點標簽,所述第二節(jié)點標簽對應的節(jié)點能對報文封裝標簽的層數(shù)不小于2,且所述第二節(jié)點標簽對應的第二差值不小于0 ;
[0049]第二替換單元,用于將所述第二標簽棧中位于所述第二節(jié)點標簽之后的至少兩個相鄰標簽替換為一個第二壓縮標簽,生成第三標簽棧;所述第二節(jié)點標簽之后的至少兩個相鄰標簽中包括所述第一壓縮標簽;
[0050]相應地,所述指導單元,具體用于指導所述轉發(fā)路徑上的源節(jié)點根據(jù)所述第二替換單元生成的所述第三標簽棧進行報文處理。
[0051]結合第三方面或第三方面的第一種或第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述裝置還包括:
[0052]判斷單元,用于在所述第一選取單元選取所述第一節(jié)點標簽之前,判斷所述源節(jié)點是否能對報文封裝至少兩層標簽,如果是,再通知所述第一選取單元選取所述第一節(jié)點標簽。
[0053]第四方面,本發(fā)明實施例提供了一種標簽棧的解壓縮裝置,所述裝置包括:
[0054]獲取單元,用于獲取本節(jié)點的標簽配置信息,所述標簽配置信息包括壓縮標簽與被壓縮標簽的對應關系,所述被壓縮標簽包括至少兩個標簽;
[0055]接收單元,用于接收從源節(jié)點發(fā)送來的報文,所述報文包含第一標簽棧,所述第一標簽棧包括所述壓縮標簽;
[0056]替換單元,用于根據(jù)所述獲取單元獲取的所述標簽配置信息,將所述接收單元接收的所述報文包含的所述第一標簽棧中的所述壓縮標簽替換為所述被壓縮標簽,生成第二標簽棧;
[0057]處理單元,用于根據(jù)所述第二標簽棧對所述報文進行處理。
[0058]在第四方面的第一種可能的實現(xiàn)方式中,所述處理單元,具體用于在所述第二標簽棧的棧頂標簽為節(jié)點標簽時,將所述報文轉發(fā)至所述節(jié)點標簽對應的節(jié)點;或者,所述處理單元,具體用于在所述第二標簽棧的棧頂標簽為業(yè)務標簽時,對所述報文執(zhí)行所述業(yè)務標簽對應的業(yè)務。
[0059]本發(fā)明實施例的標簽棧的壓縮方法及裝置,網(wǎng)絡設備從第一標簽棧中選取第一節(jié)點標簽,所述第一節(jié)點標簽對應的節(jié)點在對報文進行轉發(fā)時,能對報文封裝至少兩層標簽,如此,可對第一標簽棧進行壓縮處理,將第一標簽棧中位于第一節(jié)點標簽之后的至少兩個相鄰標簽替換為一個第一壓縮標簽,生成