多核模式下快速處理數(shù)據(jù)報文的方法及裝置的制造方法
【技術領域】
[0001]本發(fā)明涉及計算機技術領域,尤其涉及一種多核模式下快速處理數(shù)據(jù)報文的方法。此外,本發(fā)明還涉及一種多核模式下快速處理數(shù)據(jù)報文的裝置。
【背景技術】
[0002]現(xiàn)有技術中,中央處理器CPU首先通過套接字socket接收數(shù)據(jù)報文,然后根據(jù)數(shù)據(jù)報文的類型對數(shù)據(jù)報文進行相應的處理,其中數(shù)據(jù)報文包括管理報文和業(yè)務報文,管理報文的數(shù)據(jù)載荷內(nèi)容中包括發(fā)送規(guī)則表項,發(fā)送業(yè)務報文之前,根據(jù)業(yè)務報文的特點查找規(guī)則表項并按相應的規(guī)則轉發(fā)出去,所有的處理過程都是通過socket完成,由于socket是在協(xié)議棧基礎上運行的,數(shù)據(jù)報文處理的全過程都需要TCP/IP協(xié)議棧的參與。
[0003]另外,數(shù)據(jù)報文的處理都是在用戶態(tài)進行的,數(shù)據(jù)報文從內(nèi)核態(tài)上送至用戶態(tài)時首先要經(jīng)過TCP/IP協(xié)議棧,并且有數(shù)據(jù)拷貝的動作,整個數(shù)據(jù)報文的處理流程相對來說比較復雜,業(yè)務報文的處理速度比較慢,影響中央處理器的數(shù)據(jù)處理性能。因此,需要一種多核模式下快速處理業(yè)務數(shù)據(jù)報文的方法,以解決現(xiàn)有技術中存在的上述技術問題。
【發(fā)明內(nèi)容】
[0004]本發(fā)明提供一種多核模式下快速處理業(yè)務數(shù)據(jù)報文的方法。采用所述多核模式下快速處理業(yè)務數(shù)據(jù)報文的方法可以提高數(shù)據(jù)報文處理的速度,提高中央處理器的數(shù)據(jù)處理能力。此外,本發(fā)明還提供了一種多核模式下快速處理業(yè)務數(shù)據(jù)報文的裝置。
[0005]本發(fā)明采用的技術方案是:
[0006]一種多核模式下快速處理數(shù)據(jù)報文的方法,其包括:規(guī)則表項建立步驟:將管理報文上送至運行在多核中至少一個核上的用戶態(tài)程序,以使用戶態(tài)程序基于所述管理報文建立發(fā)送規(guī)則表項,所述發(fā)送規(guī)則表項包括所有業(yè)務報文的特征和與之對應的發(fā)送規(guī)則;收包步驟:從服務器的硬件端口對實時業(yè)務報文進行收包,將所述實時業(yè)務報文上送至運行在多核中其它至少一個核上的用戶態(tài)程序;轉發(fā)步驟:根據(jù)實時業(yè)務報文的特征查找所述發(fā)送規(guī)則表項,并按相應的發(fā)送規(guī)則轉發(fā)所述實時業(yè)務報文。
[0007]優(yōu)選地,在規(guī)則表項建立步驟中,通過協(xié)議棧將所述管理報文上送至運行在所述多核中至少一個核上的用戶態(tài)程序,和/或,根據(jù)設定的五元組規(guī)則建立所述發(fā)送規(guī)則表項。
[0008]優(yōu)選地,在規(guī)則表項建立步驟中,提取所述管理報文中數(shù)據(jù)載荷的內(nèi)容,以獲取所述設定的五元組規(guī)則。
[0009]優(yōu)選地,在規(guī)則表項建立步驟中,根據(jù)硬核分配策略將所述管理報文上送至運行在所述多核中至少一個核上的用戶態(tài)程序;在收包步驟中,根據(jù)所述硬核分配策略將所述實時業(yè)務報文上送至運行在所述多核中其它至少一個核上的用戶態(tài)程序。
[0010]優(yōu)選地,收包步驟中,通過輪詢的方式從所述服務器的硬件端口對所述實時業(yè)務報文進行收包。
[0011]本發(fā)明還提供了一種多核模式下快速處理數(shù)據(jù)報文的裝置,設置于服務器中,其包括:規(guī)則表項建立模塊,用于將管理報文上送至運行在多核中至少一個核上的用戶態(tài)程序,以使用戶態(tài)程序基于所述管理報文建立發(fā)送規(guī)則表項,所述發(fā)送規(guī)則表項包括所有業(yè)務報文的特征和與之對應的發(fā)送規(guī)則;收包模塊,用于從服務器的硬件端口對實時業(yè)務報文進行收包,將所述實時業(yè)務報文上送至運行在多核中其它至少一個核上的用戶態(tài)程序;轉發(fā)模塊,用于根據(jù)實時業(yè)務報文的特征查找所述發(fā)送規(guī)則表項,并按相應的發(fā)送規(guī)則轉發(fā)所述實時業(yè)務報文。
[0012]優(yōu)選地,所述規(guī)則表項建立模塊,還用于通過協(xié)議棧將所述管理報文上送至運行在多核中至少一個核上的用戶態(tài)程序,和/或,還用于根據(jù)設定的五元組規(guī)則建立所述發(fā)送規(guī)則表項。
[0013]優(yōu)選地,所述規(guī)則表項建立模塊,還用于提取所述管理報文中數(shù)據(jù)載荷的內(nèi)容,以獲取所述設定的五元組規(guī)則。
[0014]優(yōu)選地,所述規(guī)則表項建立模塊還用于,根據(jù)硬核分配策略將所述管理報文上送至運行在所述多核中至少一個核上的用戶態(tài)程序;所述收包模塊還用于,根據(jù)所述硬核分配策略將所述實時業(yè)務報文上送至運行在所述多核中其它至少一個核上的用戶態(tài)程序。
[0015]優(yōu)選地,所述收包模塊還用于,通過輪詢的方式從所述服務器的硬件端口對所述實時業(yè)務報文進行收包。
[0016]采用上述技術方案,本發(fā)明至少具有下列優(yōu)點:采用本發(fā)明的多模式下快速處理數(shù)據(jù)報文的方法可以實現(xiàn)對管理報文的可靠處理,而實現(xiàn)對業(yè)務報文的快速處理,減少了業(yè)務報文拷貝的次數(shù),簡化了系統(tǒng)的處理流程,提高了服務器的數(shù)據(jù)處理能力。
【附圖說明】
[0017]圖1為本發(fā)明第一實施例的多核模式下快速處理業(yè)務數(shù)據(jù)報文的方法的流程圖;
[0018]圖2為本發(fā)明第二優(yōu)選實施例的多核模式下快速處理業(yè)務數(shù)據(jù)報文的裝置的示意圖。
[0019]其中,100-規(guī)則表項建立模塊;200_收包模塊;300_轉發(fā)模塊。
【具體實施方式】
[0020]為更進一步闡述本發(fā)明為達成預定目的所采取的技術手段及功效,以下結合附圖及較佳實施例,對本發(fā)明進行詳細說明如后。
[0021]本發(fā)明提供的多核模式下快速處理數(shù)據(jù)報文的方法能夠實現(xiàn)數(shù)據(jù)報文的快速處理,下面將詳細地描述本發(fā)明的多核模式下快速處理業(yè)務數(shù)據(jù)報文的方法及其各個步驟。
[0022]第一實施例
[0023]如圖1所示,本實施例中的多核模式下快速處理數(shù)據(jù)報文的方法是在服務器采用對稱多處理SMP架構下實現(xiàn)的,由此可以將管理報文和業(yè)務報文分開來分別處理。具體地,如圖中示出的,該方法包括規(guī)則表項建立步驟S10、收包步驟S20和轉發(fā)步驟S30。其中,規(guī)則表項建立步驟SlO:將管理報文上送至運行在多核中至少一個核上的用戶態(tài),以使用戶態(tài)程序基于管理報文建立發(fā)送規(guī)則表項,發(fā)送規(guī)則表項包括所有業(yè)務報文的特征和與之對應的發(fā)送規(guī)則。多核模式下是指一個CPU包括多個核,數(shù)據(jù)報文可以由指定的核處理,也可以分發(fā)到所有的核上同時處理。具體執(zhí)行過程中,用戶可以通過以太網(wǎng)端口向服務器下發(fā)包括發(fā)送規(guī)則表項的管理報文,將實時業(yè)務報文通過高速端口上送服務器。從而從服務器的不同硬件端口向服務器分開發(fā)送管理報文和業(yè)務報文。規(guī)則表項建立步驟SlO是將管理報文發(fā)送至多核中至少一個核上的用戶態(tài)。服務器接收到管理報文后提取并且存儲發(fā)送規(guī)則表項。作為優(yōu)選地,可以根據(jù)硬核分配策略將管理報文上送至運行在多核中至少一個核上的用戶態(tài)程序,例如硬核分配策略可以采用哈希策略,由此確定出負責處理管理報文的核。發(fā)送規(guī)則表項的建立可以依據(jù)不同的方式,只要發(fā)送規(guī)則表項中包括所有業(yè)務報文的特征和與之對應的發(fā)送規(guī)則即可。進一步地,根據(jù)設定的五元組規(guī)則建立發(fā)送規(guī)則表項。數(shù)據(jù)報文的五元組包括源IP地址、目的IP地址、源端口、目的端口和協(xié)議類型,設定的五元組規(guī)則是基于上述五元組中各項的不同取值采用對應的發(fā)送規(guī)則。另外,規(guī)則表項建立步驟S10中,數(shù)據(jù)載荷中的內(nèi)容包含設定的五元組規(guī)則,提取管理報文中數(shù)據(jù)載荷的內(nèi)容來獲取設定的五元組規(guī)則,。由此可以看出,規(guī)則表項建立步驟SlO之前,預先將設定的五元組規(guī)則設置在管理報文的數(shù)據(jù)載荷中,當運行在多核中的至少一個核上的用戶態(tài)程序接收到管理報文后,提取管理報文的數(shù)據(jù)載荷中包括的設定的五元組規(guī)則。此外,在規(guī)則表項建立步驟SlO中,通過協(xié)議棧例如TCP/IP協(xié)議棧,將管理報文上送至運行在多核中至少一個核上的用戶態(tài)。采用協(xié)議??梢员WC管理報文傳輸?shù)目煽啃?,確保管理報文的穩(wěn)定處理。管理報文的到來是通過服務器的硬件端口例如以太網(wǎng)端口發(fā)送中斷信號通知服務器,由此服務器將管理報文上送至運行在多核中至少一個核上的用戶態(tài)程序。
[0024]收包步驟S20:從服務器的硬件端口對實時業(yè)務報文進行收包至運行在多核中其它至少一個核上的用戶態(tài)程