本申請涉及通信技術(shù)領(lǐng)域,尤其涉及一種報文處理方法和設(shè)備。
背景技術(shù):
隨著網(wǎng)絡(luò)不斷發(fā)展,網(wǎng)絡(luò)設(shè)備的功能越來越多,網(wǎng)絡(luò)設(shè)備的報文處理性能因此備受關(guān)注。相關(guān)技術(shù)中,通常僅由處理器對接收到的報文進(jìn)行業(yè)務(wù)處理,或者僅由FPGA芯片對接收到的報文進(jìn)行業(yè)務(wù)處理。但在實際應(yīng)用中,采用前一方式網(wǎng)絡(luò)設(shè)備的報文處理效率較差,而采用后一方式會導(dǎo)致網(wǎng)絡(luò)設(shè)備的部分業(yè)務(wù)處理功能缺失,均無法較好地滿足用戶需求。
技術(shù)實現(xiàn)要素:
有鑒于此,本申請?zhí)峁┮环N報文處理方法和設(shè)備,以解決相關(guān)技術(shù)中網(wǎng)絡(luò)設(shè)備的報文處理性能低下的問題。
具體地,本申請是通過如下技術(shù)方案實現(xiàn)的:
第一方面,本申請?zhí)峁┮环N報文處理方法,所述方法應(yīng)用于網(wǎng)絡(luò)設(shè)備,所述網(wǎng)絡(luò)設(shè)備包括邏輯芯片、處理器,所述方法包括:
邏輯芯片對接收到的原始報文進(jìn)行第一業(yè)務(wù)處理,并根據(jù)第一業(yè)務(wù)處理結(jié)果檢測所述原始報文是否命中上送表項;
邏輯芯片在確定所述原始報文命中所述上送表項時,為所述原始報文封裝邏輯頭,并將封裝后的原始報文發(fā)送至處理器;其中,所述邏輯頭中攜帶有邏輯芯片對所述原始報文進(jìn)行第一業(yè)務(wù)處理后得到的第一業(yè)務(wù)處理結(jié)果;
處理器在接收到所述封裝后的原始報文時,對所述原始報文進(jìn)行第二業(yè)務(wù)處理,并基于所述邏輯頭中攜帶的第一業(yè)務(wù)處理結(jié)果對第二業(yè)務(wù)處理后的原始報文進(jìn)行轉(zhuǎn)發(fā)。
第二方面,本申請?zhí)峁┮环N報文處理設(shè)備,所述設(shè)備包括:邏輯芯片、處理器;
其中,所述邏輯芯片用于:
對接收到的原始報文進(jìn)行第一業(yè)務(wù)處理,并根據(jù)第一業(yè)務(wù)處理結(jié)果檢測所述原始報文是否命中上送表項;
在確定所述原始報文命中所述上送表項時,為所述原始報文封裝邏輯頭,并將封裝后的原始報文發(fā)送至處理器;其中,所述邏輯頭中攜帶有邏輯芯片對所述原始報文進(jìn)行第一業(yè)務(wù)處理后得到的第一業(yè)務(wù)處理結(jié)果;
所述處理器用于:
在接收到所述封裝后的原始報文時,對所述原始報文進(jìn)行第二業(yè)務(wù)處理,并基于所述邏輯頭中攜帶的第一業(yè)務(wù)處理結(jié)果對第二業(yè)務(wù)處理后的原始報文進(jìn)行轉(zhuǎn)發(fā)。
分析上述技術(shù)方案可知,在網(wǎng)絡(luò)設(shè)備中,可以先由邏輯芯片對接收到的原始報文進(jìn)行第一業(yè)務(wù)處理,以實現(xiàn)數(shù)據(jù)包過濾、網(wǎng)絡(luò)地址轉(zhuǎn)換、路由查找等較為常見的功能。后續(xù)邏輯芯片可以為所述原始報文封裝攜帶有第一業(yè)務(wù)處理結(jié)果的邏輯頭,并將封裝后的原始報文發(fā)送至處理器,由處理器對所述原始報文進(jìn)行第二業(yè)務(wù)處理,并基于所述第一業(yè)務(wù)處理結(jié)果對處理后的原始報文進(jìn)行轉(zhuǎn)發(fā),以實現(xiàn)VPN處理、GRE處理等邏輯芯片不支持的功能。與相關(guān)技術(shù)相比,采用這樣的方式既提高了網(wǎng)絡(luò)設(shè)備的報文處理效率,又保證了網(wǎng)絡(luò)設(shè)備業(yè)務(wù)處理功能的完整性。
附圖說明
圖1是本申請一示例性實施例示出的一種報文處理方法的流程圖;
圖2是本申請一示例性實施例示出的一種報文處理設(shè)備的框圖。
具體實施方式
這里將詳細(xì)地對示例性實施例進(jìn)行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本申請相一致的所有實施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本申請的一些方面相一致的設(shè)備和方法的例子。
在本申請使用的術(shù)語是僅僅出于描述特定實施例的目的,而非旨在限制本申請。在本申請和所附權(quán)利要求書中所使用的單數(shù)形式的“一種”、“所述”和“該”也旨在包括多數(shù)形式,除非上下文清楚地表示其他含義。還應(yīng)當(dāng)理解,本文中使用的術(shù)語“和/或”是指并包含一個或多個相關(guān)聯(lián)的列出項目的任何或所有可能組合。
應(yīng)當(dāng)理解,盡管在本申請可能采用術(shù)語第一、第二、第三等來描述各種信息,但這些信息不應(yīng)限于這些術(shù)語。這些術(shù)語僅用來將同一類型的信息彼此區(qū)分開。例如,在不脫離本申請范圍的情況下,第一信息也可以被稱為第二信息,類似地,第二信息也可以被稱為第一信息。取決于語境,如在此所使用的詞語“如果”可以被解釋成為“在……時”或“當(dāng)……時”或“響應(yīng)于確定”。
請參考圖1,為本申請一示例性實施例示出的一種報文處理方法的流程圖,所述方法可以應(yīng)用于網(wǎng)絡(luò)設(shè)備,所述網(wǎng)絡(luò)設(shè)備可以包括邏輯芯片、處理器,所述方法可以包括如下步驟:
步驟101:邏輯芯片對接收到的原始報文進(jìn)行第一業(yè)務(wù)處理,并根據(jù)第一業(yè)務(wù)處理結(jié)果檢測所述原始報文是否命中上送表項。
在本實施例中,交換芯片在接收到原始報文時,可以先發(fā)送至邏輯芯片,由邏輯芯片對所述原始報文進(jìn)行第一業(yè)務(wù)處理,所述邏輯芯片可以是FPGA芯片等可編程邏輯芯片,所述第一業(yè)務(wù)處理可以包括:數(shù)據(jù)包過濾、網(wǎng)絡(luò)地址轉(zhuǎn)換、路由查找等。邏輯芯片在對所述原始報文進(jìn)行路由查找后,可以獲得所述原始報文的路由轉(zhuǎn)發(fā)信息,包括所述原始報文的下一跳路由信息和出接口信息。后續(xù),邏輯芯片可以根據(jù)所述原始報文的出接口信息檢測所述原始報文是否命中本地保存的上送表項,所述上送表項中可以保存有各出接口與是否上送處理器的對應(yīng)關(guān)系。舉例來說,假設(shè)邏輯芯片確定原始報文1的出接口信息為出接口1,且在上送表項中出接口1對應(yīng)上送處理器,則邏輯芯片可以確定原始報文1命中上送表項。邏輯芯片在確定接收到的原始報文命中本地保存的上送表項時,可以執(zhí)行步驟102。
需要說明的是,如果邏輯芯片在對所述原始報文進(jìn)行數(shù)據(jù)包過濾后,確定所述報文對應(yīng)的過濾規(guī)則為丟棄報文,則可以丟棄所述原始報文,而無需再檢測所述原始報文是否命中本地保存的上送表項。
步驟102:邏輯芯片在確定所述原始報文命中所述上送表項時,為所述原始報文封裝邏輯頭,并將封裝后的原始報文發(fā)送至處理器;其中,所述邏輯頭中攜帶有邏輯芯片對所述原始報文進(jìn)行第一業(yè)務(wù)處理后得到的第一業(yè)務(wù)處理結(jié)果。
在本實施例中,基于前述步驟101的檢測結(jié)果,如果邏輯芯片確定所述原始報文命中所述上送表項,則可以為所述原始報文封裝邏輯頭,所述邏輯頭中攜帶有邏輯芯片對所述原始報文進(jìn)行第一業(yè)務(wù)處理后得到的第一業(yè)務(wù)處理結(jié)果,所述第一業(yè)務(wù)處理結(jié)果通常包括所述原始報文的網(wǎng)絡(luò)地址轉(zhuǎn)換信息、路由轉(zhuǎn)發(fā)信息等。為了便于后續(xù)處理,邏輯芯片可以在所述原始報文的尾部封裝邏輯頭。邏輯芯片在為所述原始報文封裝邏輯頭后,可以將封裝后的原始報文發(fā)送至處理器。
需要說明的是,基于前述步驟101的檢測結(jié)果,如果邏輯芯片確定所述原始報文未命中所述上送表項,則可以基于邏輯芯片對所述原始報文進(jìn)行第一業(yè)務(wù)處理后得到的第一業(yè)務(wù)處理結(jié)果對所述原始報文進(jìn)行轉(zhuǎn)發(fā)。具體地,邏輯芯片可以將所述原始報文和所述第一業(yè)務(wù)處理結(jié)果發(fā)送至交換芯片,交換芯片可以根據(jù)所述第一業(yè)務(wù)處理結(jié)果對所述原始報文進(jìn)行轉(zhuǎn)發(fā)。
在一個可選的實施例中,邏輯芯片接收和發(fā)送報文時均可以采用XAUI總線。XAUI總線的有效帶寬為10Gbps,邏輯芯片的工作周期通常為8納秒,則邏輯芯片每個工作周期可以傳輸8字節(jié)。由于原始報文的長度通常各不相同,因此為各原始報文封裝的邏輯頭的起始位置也各不相同。舉例來說,假設(shè)某一原始報文的長度為17字節(jié),邏輯芯片在為該原始報文封裝邏輯頭后進(jìn)行傳輸時,第三次傳輸數(shù)據(jù)的1字節(jié)處為該邏輯頭的起始位置;假設(shè)另一原始報文的長度為18字節(jié),則邏輯芯片在為該原始報文封裝邏輯頭后進(jìn)行傳輸時,第三次傳輸數(shù)據(jù)的2字節(jié)處才為該邏輯頭的起始位置,這樣對處理器的后續(xù)處理造成了極大影響。為了解決該問題,邏輯芯片在為接收到的原始報文封裝邏輯頭時,可以先檢測所述原始報文的長度是否為8字節(jié)的整數(shù)倍。如果是,則邏輯芯片可以將基于所述第一業(yè)務(wù)處理結(jié)果生成的邏輯頭封裝在所述原始報文后。如果不是,則邏輯芯片可以在所述原始報文后添加無效填充部,以將所述原始報文的長度擴(kuò)充至8字節(jié)的整數(shù)倍,后續(xù)邏輯芯片可以將基于所述第一業(yè)務(wù)處理結(jié)果生成的邏輯頭封裝在所述無效填充部后。采用這樣的方式,可以保證為各原始報文封裝的邏輯頭的起始位置均為某次傳輸數(shù)據(jù)的0字節(jié)處,便于處理器對封裝后的原始報文進(jìn)行后續(xù)處理。
步驟103:處理器在接收到所述封裝后的原始報文時,對所述原始報文進(jìn)行第二業(yè)務(wù)處理,并基于所述邏輯頭中攜帶的第一業(yè)務(wù)處理結(jié)果對第二業(yè)務(wù)處理后的原始報文進(jìn)行轉(zhuǎn)發(fā)。
在本實施例中,處理器在接收到邏輯芯片上送的封裝后的原始報文時,可以先對所述封裝后的原始報文進(jìn)行解封裝,從而可以獲取原始報文以及邏輯頭中攜帶的邏輯芯片對所述原始報文進(jìn)行所述第一業(yè)務(wù)處理后得到的第一業(yè)務(wù)處理結(jié)果。處理器在獲取到所述原始報文后,可以對所述原始報文進(jìn)行第二業(yè)務(wù)處理,所述第二業(yè)務(wù)處理可以包括:虛擬專用網(wǎng)絡(luò)(Virtual Private Network,VPN)處理、通用路由封裝處理(Generic Routing Encapsulation,GRE)等。后續(xù)處理器可以基于所述邏輯頭中攜帶的第一業(yè)務(wù)處理結(jié)果對第二業(yè)務(wù)處理后的原始報文進(jìn)行轉(zhuǎn)發(fā)。
需要說明的是,邏輯芯片對接收到的大部分原始報文可以成功進(jìn)行第一業(yè)務(wù)處理,獲取所述原始報文對應(yīng)的第一業(yè)務(wù)處理結(jié)果,并將所述第一業(yè)務(wù)處理結(jié)果寫入為所述原始報文封裝的邏輯頭中。然而對于接收到的小部分原始報文,例如:攜帶有VLAN(Virtual Local Area Network,虛擬局域網(wǎng))標(biāo)簽、MPLS(Multi-Protocol Label Switching,多協(xié)議標(biāo)簽交換)標(biāo)簽等的原始報文,邏輯芯片對這類原始報文無法成功進(jìn)行第一業(yè)務(wù)處理,即邏輯芯片對這類原始報文的第一業(yè)務(wù)處理失敗,邏輯芯片可以將任意內(nèi)容作為第一業(yè)務(wù)處理結(jié)果,邏輯芯片在為所述原始報文封裝邏輯頭時,可以將上述任意內(nèi)容的第一業(yè)務(wù)處理結(jié)果封裝到所述邏輯頭中。
為了便于處理器確定邏輯頭中攜帶的第一業(yè)務(wù)處理結(jié)果是否有效,邏輯芯片還可以在所述邏輯頭中攜帶所述第一業(yè)務(wù)處理結(jié)果對應(yīng)的結(jié)果標(biāo)識。處理器在對接收到的封裝后的原始報文進(jìn)行解封裝后,如果檢測到獲取到的邏輯頭中攜帶的結(jié)果標(biāo)識為第一業(yè)務(wù)處理成功,則說明邏輯芯片對獲取到的原始報文進(jìn)行第一業(yè)務(wù)處理成功,所述邏輯頭中攜帶的第一業(yè)務(wù)處理結(jié)果有效,進(jìn)而處理器可以在對獲取的原始報文進(jìn)行第二業(yè)務(wù)處理后,基于所述第一業(yè)務(wù)處理結(jié)果對處理后的原始報文進(jìn)行轉(zhuǎn)發(fā)。然而,如果處理器檢測到所述邏輯頭中攜帶的結(jié)果標(biāo)識為第一業(yè)務(wù)處理失敗,則說明邏輯芯片對所述原始報文進(jìn)行第一業(yè)務(wù)處理失敗,所述邏輯頭中攜帶的第一業(yè)務(wù)處理結(jié)果無效,進(jìn)而處理器可以對獲取的原始報文進(jìn)行第一業(yè)務(wù)處理和第二業(yè)務(wù)處理,并基于處理器對所述原始報文進(jìn)行第一業(yè)務(wù)處理后得到的處理結(jié)果,對第二業(yè)務(wù)處理后的原始報文進(jìn)行轉(zhuǎn)發(fā)。
由上述實施例可見,在網(wǎng)絡(luò)設(shè)備中,可以先由邏輯芯片對接收到的原始報文進(jìn)行第一業(yè)務(wù)處理,以實現(xiàn)數(shù)據(jù)包過濾、網(wǎng)絡(luò)地址轉(zhuǎn)換、路由查找等較為常見的功能。后續(xù)邏輯芯片可以為所述原始報文封裝攜帶有第一業(yè)務(wù)處理結(jié)果的邏輯頭,并將封裝后的原始報文發(fā)送至處理器,由處理器對所述原始報文進(jìn)行第二業(yè)務(wù)處理,并基于所述第一業(yè)務(wù)處理結(jié)果對處理后的原始報文進(jìn)行轉(zhuǎn)發(fā),以實現(xiàn)VPN處理、GRE處理等邏輯芯片不支持的功能。與相關(guān)技術(shù)相比,采用這樣的方式既提高了網(wǎng)絡(luò)設(shè)備的報文處理效率,又保證了網(wǎng)絡(luò)設(shè)備業(yè)務(wù)處理功能的完整性。此外,對于無需進(jìn)行第二業(yè)務(wù)處理的原始報文,邏輯芯片可以在對其進(jìn)行第一業(yè)務(wù)處理后進(jìn)行轉(zhuǎn)發(fā),進(jìn)一步提高了網(wǎng)絡(luò)設(shè)備的報文處理效率;而對于無法進(jìn)行第一業(yè)務(wù)處理的原始報文,邏輯芯片則可以將其發(fā)送至處理器,由處理器對所述原始報文進(jìn)行第一業(yè)務(wù)處理和第二業(yè)務(wù)處理后進(jìn)行轉(zhuǎn)發(fā),也保證了網(wǎng)絡(luò)設(shè)備業(yè)務(wù)處理功能的完整性。
與前述報文處理方法的實施例相對應(yīng),本申請還提供了報文處理設(shè)備的實施例。
請參考圖2,為本申請一示例性實施例示出的一種報文處理設(shè)備的框圖,該設(shè)備可以包括:邏輯芯片201和處理器202;
其中,所述邏輯芯片201可以用于:
對接收到的原始報文進(jìn)行第一業(yè)務(wù)處理,并根據(jù)第一業(yè)務(wù)處理結(jié)果檢測所述原始報文是否命中上送表項;
在確定所述原始報文命中所述上送表項時,為所述原始報文封裝邏輯頭,并將封裝后的原始報文發(fā)送至處理器;其中,所述邏輯頭中攜帶有邏輯芯片對所述原始報文進(jìn)行第一業(yè)務(wù)處理后得到的第一業(yè)務(wù)處理結(jié)果;
所述處理器202可以用于:
在接收到所述封裝后的原始報文時,對所述原始報文進(jìn)行第二業(yè)務(wù)處理,并基于所述邏輯頭中攜帶的第一業(yè)務(wù)處理結(jié)果對第二業(yè)務(wù)處理后的原始報文進(jìn)行轉(zhuǎn)發(fā)。
在一個可選的實施例中,所述邏輯芯片201還可以用于:
在確定所述原始報文未命中所述上送表項時,基于所述第一業(yè)務(wù)處理結(jié)果對所述原始報文進(jìn)行轉(zhuǎn)發(fā)。
在另一個可選的實施例中,所述邏輯頭中還攜帶有所述第一業(yè)務(wù)處理結(jié)果對應(yīng)的結(jié)果標(biāo)識;
所述處理器202還可以用于:
在檢測到所述邏輯頭中攜帶的結(jié)果標(biāo)識為第一業(yè)務(wù)處理成功時,對所述原始報文進(jìn)行第二業(yè)務(wù)處理,并基于所述第一業(yè)務(wù)處理結(jié)果對第二業(yè)務(wù)處理后的原始報文進(jìn)行轉(zhuǎn)發(fā);
在檢測到所述邏輯頭中攜帶的結(jié)果標(biāo)識為第一業(yè)務(wù)處理失敗時,對所述原始報文進(jìn)行第一業(yè)務(wù)處理和第二業(yè)務(wù)處理,并基于處理器對所述原始報文進(jìn)行第一業(yè)務(wù)處理后得到的處理結(jié)果,對第二業(yè)務(wù)處理后的原始報文進(jìn)行轉(zhuǎn)發(fā)。
在另一個可選的實施例中,所述邏輯芯片201通過如下方式為所述原始報文封裝邏輯頭:
在所述原始報文的長度不為8字節(jié)的整數(shù)倍時,在所述原始報文后添加無效填充部,以將所述原始報文的長度擴(kuò)充至8字節(jié)的整數(shù)倍;
基于所述第一業(yè)務(wù)處理結(jié)果生成邏輯頭,并將所述邏輯頭封裝在所述無效填充部后。
在另一個可選的實施例中,所述第一業(yè)務(wù)處理可以包括:數(shù)據(jù)包過濾、網(wǎng)絡(luò)地址轉(zhuǎn)換、路由查找;所述第二業(yè)務(wù)處理可以包括:虛擬專用網(wǎng)絡(luò)處理、通用路由封裝處理。
上述設(shè)備中邏輯芯片和處理器的功能和作用的實現(xiàn)過程具體詳見上述方法中對應(yīng)步驟的實現(xiàn)過程,在此不再贅述。
以上所述僅為本申請的較佳實施例而已,并不用以限制本申請,凡在本申請的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請保護(hù)的范圍之內(nèi)。