本發(fā)明涉及網(wǎng)絡(luò),尤其涉及一種報(bào)文處理方法、網(wǎng)卡、網(wǎng)關(guān)設(shè)備、存儲(chǔ)介質(zhì)和程序。
背景技術(shù):
1、網(wǎng)關(guān)設(shè)備基于其路由功能(能夠在不同網(wǎng)絡(luò)之間傳遞數(shù)據(jù))在網(wǎng)絡(luò)通信中扮演著至關(guān)重要的角色。在諸如數(shù)據(jù)中心等場(chǎng)景中,經(jīng)常有大流量報(bào)文的轉(zhuǎn)發(fā)需求,比如數(shù)據(jù)中心中的某網(wǎng)關(guān)設(shè)備將從某交換機(jī)中接收到的大流量報(bào)文轉(zhuǎn)發(fā)到對(duì)應(yīng)的云服務(wù)器中。因此,能夠承擔(dān)大流量報(bào)文轉(zhuǎn)發(fā)需求的網(wǎng)關(guān)設(shè)備成為重要發(fā)展趨勢(shì)。
2、目前,一個(gè)網(wǎng)關(guān)設(shè)備中通常會(huì)配置多個(gè)網(wǎng)卡,網(wǎng)卡通常采用網(wǎng)卡多隊(duì)列技術(shù),所謂網(wǎng)卡多隊(duì)列,顧名思義,就是高速率網(wǎng)卡的直接內(nèi)存訪問(wèn)(direct?memory?access,簡(jiǎn)稱dma)隊(duì)列有多個(gè),網(wǎng)卡有基于多個(gè)dma隊(duì)列的分配機(jī)制,一個(gè)dma隊(duì)列可以與網(wǎng)關(guān)設(shè)備中的一個(gè)處理器核心(通常為cpu核心)綁定。目前,網(wǎng)卡一般采用接收方縮放(receive?sidescaling,簡(jiǎn)稱rss)模式進(jìn)行接收?qǐng)?bào)文向cpu核心的分發(fā)處理。
3、在實(shí)際應(yīng)用中,針對(duì)一個(gè)服務(wù)來(lái)說(shuō),其對(duì)應(yīng)的報(bào)文一般包含控制類(lèi)報(bào)文和數(shù)據(jù)類(lèi)報(bào)文,其中,控制類(lèi)報(bào)文一般被網(wǎng)卡發(fā)送到cpu核心中的內(nèi)核協(xié)議棧處理,而數(shù)據(jù)類(lèi)報(bào)文則一般被網(wǎng)卡發(fā)送至cpu核心中的服務(wù)程序處理。在對(duì)控制類(lèi)報(bào)文或數(shù)據(jù)類(lèi)報(bào)文進(jìn)行處理后,將處理后報(bào)文反饋給網(wǎng)卡,以通過(guò)網(wǎng)卡完成報(bào)文轉(zhuǎn)發(fā)工作。然而,在使用rss模式進(jìn)行報(bào)文轉(zhuǎn)發(fā)時(shí),數(shù)據(jù)類(lèi)報(bào)文很容易導(dǎo)致處理器核心負(fù)載過(guò)高、報(bào)文處理延遲大,最終影響后續(xù)控制類(lèi)報(bào)文向該處理器核心的發(fā)送,從而造成控制類(lèi)報(bào)文丟包。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明實(shí)施例提供一種報(bào)文處理方法、網(wǎng)卡、網(wǎng)關(guān)設(shè)備、存儲(chǔ)介質(zhì)和程序,用于在數(shù)據(jù)類(lèi)報(bào)文將其對(duì)應(yīng)的處理器核心打高,導(dǎo)致該處理器核心負(fù)載過(guò)高、報(bào)文處理延遲大的情況下,確保后續(xù)控制類(lèi)報(bào)文能夠順利發(fā)送。
2、第一方面,本發(fā)明實(shí)施例提供了一種報(bào)文處理方法,所述方法應(yīng)用于網(wǎng)關(guān)設(shè)備,所述網(wǎng)關(guān)設(shè)備中包括網(wǎng)卡和用于處理報(bào)文的多個(gè)處理器核心,所述網(wǎng)卡中包括可編程芯片,所述方法包括:
3、響應(yīng)于源端設(shè)備發(fā)送的目標(biāo)報(bào)文,所述可編程芯片根據(jù)所述目標(biāo)報(bào)文的特征信息確定所述目標(biāo)報(bào)文的報(bào)文類(lèi)型;
4、所述可編程芯片從所述目標(biāo)報(bào)文的報(bào)文類(lèi)型對(duì)應(yīng)的網(wǎng)卡接收隊(duì)列集合中確定目標(biāo)網(wǎng)卡接收隊(duì)列,基于所述目標(biāo)網(wǎng)卡接收隊(duì)列將所述目標(biāo)報(bào)文發(fā)送至與所述目標(biāo)網(wǎng)卡接收隊(duì)列具有映射關(guān)系的目標(biāo)處理器核心,其中,所述目標(biāo)處理器核心為所述多個(gè)處理器核心之一。
5、第二方面,本發(fā)明實(shí)施例提供了一種報(bào)文處理裝置,所述裝置應(yīng)用于網(wǎng)關(guān)設(shè)備,所述網(wǎng)關(guān)設(shè)備中包括網(wǎng)卡和用于處理報(bào)文的多個(gè)處理器核心,所述網(wǎng)卡中包括可編程芯片,所述裝置包括:
6、確定模塊,用于響應(yīng)于源端設(shè)備發(fā)送的目標(biāo)報(bào)文,根據(jù)所述目標(biāo)報(bào)文的特征信息確定所述目標(biāo)報(bào)文的報(bào)文類(lèi)型;
7、發(fā)送模塊,用于所述可編程芯片從所述目標(biāo)報(bào)文的報(bào)文類(lèi)型對(duì)應(yīng)的網(wǎng)卡接收隊(duì)列集合中確定目標(biāo)網(wǎng)卡接收隊(duì)列,基于所述目標(biāo)網(wǎng)卡接收隊(duì)列將所述目標(biāo)報(bào)文發(fā)送至與所述目標(biāo)網(wǎng)卡接收隊(duì)列具有映射關(guān)系的目標(biāo)處理器核心,其中,所述目標(biāo)處理器核心為所述多個(gè)處理器核心之一。
8、第三方面,本發(fā)明實(shí)施例提供了一種網(wǎng)卡,所述網(wǎng)卡中包括可編程芯片,所述網(wǎng)卡分別與所位于的網(wǎng)關(guān)設(shè)備中的多個(gè)處理器核心通信連接;
9、所述可編程芯片,用于響應(yīng)于源端設(shè)備發(fā)送的目標(biāo)報(bào)文,根據(jù)所述目標(biāo)報(bào)文的特征信息確定所述目標(biāo)報(bào)文的報(bào)文類(lèi)型,并從所述目標(biāo)報(bào)文的報(bào)文類(lèi)型對(duì)應(yīng)的網(wǎng)卡接收隊(duì)列集合中確定目標(biāo)網(wǎng)卡接收隊(duì)列,基于所述目標(biāo)網(wǎng)卡接收隊(duì)列將所述目標(biāo)報(bào)文發(fā)送至與所述目標(biāo)網(wǎng)卡接收隊(duì)列具有映射關(guān)系的目標(biāo)處理器核心,其中,所述目標(biāo)處理器核心為所述多個(gè)處理器核心之一。
10、第四方面,本發(fā)明實(shí)施例提供了一種網(wǎng)關(guān)設(shè)備,所述網(wǎng)關(guān)設(shè)備包括:
11、多個(gè)處理器核心;
12、網(wǎng)卡,所述網(wǎng)卡中包括可編程芯片;
13、所述可編程芯片用于響應(yīng)于源端設(shè)備發(fā)送的目標(biāo)報(bào)文,根據(jù)所述目標(biāo)報(bào)文的特征信息確定所述目標(biāo)報(bào)文的報(bào)文類(lèi)型,并從所述目標(biāo)報(bào)文的報(bào)文類(lèi)型對(duì)應(yīng)的網(wǎng)卡接收隊(duì)列集合中確定目標(biāo)網(wǎng)卡接收隊(duì)列,基于所述目標(biāo)網(wǎng)卡接收隊(duì)列將所述目標(biāo)報(bào)文發(fā)送至與所述目標(biāo)網(wǎng)卡接收隊(duì)列具有映射關(guān)系的目標(biāo)處理器核心,其中,所述目標(biāo)處理器核心為所述多個(gè)處理器核心之一。
14、第五方面,本發(fā)明實(shí)施例提供了一種非暫時(shí)性機(jī)器可讀存儲(chǔ)介質(zhì),所述非暫時(shí)性機(jī)器可讀存儲(chǔ)介質(zhì)上存儲(chǔ)有可執(zhí)行代碼,當(dāng)所述可執(zhí)行代碼被網(wǎng)關(guān)設(shè)備執(zhí)行時(shí),使所述網(wǎng)關(guān)設(shè)備執(zhí)行如第一方面所述的報(bào)文處理方法。
15、第六方面,本發(fā)明實(shí)施例提供了一種計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括:計(jì)算機(jī)程序,當(dāng)所述計(jì)算機(jī)程序被網(wǎng)關(guān)設(shè)備執(zhí)行時(shí),使所述網(wǎng)關(guān)設(shè)備執(zhí)行如第一方面所述的報(bào)文處理方法。
16、本發(fā)明實(shí)施例提供的報(bào)文處理方法,在接收到源端設(shè)備發(fā)送的目標(biāo)報(bào)文后,通過(guò)可編程芯片根據(jù)目標(biāo)報(bào)文的特征信息確定目標(biāo)報(bào)文的報(bào)文類(lèi)型,以便后續(xù)針對(duì)不同報(bào)文類(lèi)型的報(bào)文進(jìn)行區(qū)分處理。具體地,可編程芯片從目標(biāo)報(bào)文的報(bào)文類(lèi)型對(duì)應(yīng)的網(wǎng)卡接收隊(duì)列集合中確定目標(biāo)網(wǎng)卡接收隊(duì)列,進(jìn)而基于目標(biāo)網(wǎng)卡接收隊(duì)列將目標(biāo)報(bào)文發(fā)送至與目標(biāo)網(wǎng)卡接收隊(duì)列具有映射關(guān)系的目標(biāo)處理器核心。
17、需要說(shuō)明的是,不同的報(bào)文類(lèi)型對(duì)應(yīng)的網(wǎng)卡接收隊(duì)列集合相互獨(dú)立,這也就使得不同類(lèi)型的目標(biāo)報(bào)文會(huì)基于各自對(duì)應(yīng)的網(wǎng)卡接收隊(duì)列被發(fā)送到不同的處理器核心進(jìn)行處理,且在處理過(guò)程中不會(huì)相互干擾。即使數(shù)據(jù)類(lèi)報(bào)文將其對(duì)應(yīng)的處理器核心打高,導(dǎo)致該處理器核心負(fù)載過(guò)高、報(bào)文處理延遲大,也不會(huì)對(duì)后續(xù)控制類(lèi)報(bào)文的處理造成影響,后續(xù)控制類(lèi)報(bào)文依然可通過(guò)其對(duì)應(yīng)的網(wǎng)卡接收隊(duì)列將目標(biāo)報(bào)文發(fā)送至其對(duì)應(yīng)的處理器核心處理,避免造成控制類(lèi)報(bào)文丟失。
1.一種報(bào)文處理方法,其特征在于,應(yīng)用于網(wǎng)關(guān)設(shè)備,所述網(wǎng)關(guān)設(shè)備中包括網(wǎng)卡和用于處理報(bào)文的多個(gè)處理器核心,所述網(wǎng)卡中包括可編程芯片,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述多個(gè)處理器核心包括第一處理器核心和第二處理器核心;所述可編程芯片從所述目標(biāo)報(bào)文的報(bào)文類(lèi)型對(duì)應(yīng)的網(wǎng)卡接收隊(duì)列集合中確定目標(biāo)網(wǎng)卡接收隊(duì)列,基于所述目標(biāo)網(wǎng)卡接收隊(duì)列將所述目標(biāo)報(bào)文發(fā)送至與所述目標(biāo)網(wǎng)卡接收隊(duì)列具有映射關(guān)系的目標(biāo)處理器核心,包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述可編程芯片根據(jù)所述目標(biāo)報(bào)文的特征信息確定所述目標(biāo)報(bào)文的報(bào)文類(lèi)型,包括:
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述匹配規(guī)則中包含至少一個(gè)元組字段的參考值;所述若所述目標(biāo)報(bào)文的特征信息與所述匹配規(guī)則相匹配,則所述可編程芯片確定所述目標(biāo)報(bào)文的報(bào)文類(lèi)型為控制類(lèi)報(bào)文,包括:
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述匹配規(guī)則中包含網(wǎng)卡接收隊(duì)列標(biāo)識(shí);所述可編程芯片從所述控制類(lèi)報(bào)文對(duì)應(yīng)的第一網(wǎng)卡接收隊(duì)列集合中確定第一網(wǎng)卡接收隊(duì)列,包括:
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述多個(gè)處理器核心中還包括運(yùn)行dpdk程序的第三處理器核心;所述方法還包括:
7.根據(jù)權(quán)利要求2-5中任一項(xiàng)所述的方法,其特征在于,所述網(wǎng)關(guān)設(shè)備中還包括運(yùn)行dpdk程序的第三處理器核心;所述方法還包括:
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述可編程芯片基于接收方縮放模式從所述數(shù)據(jù)類(lèi)報(bào)文對(duì)應(yīng)的第二網(wǎng)卡接收隊(duì)列集合中確定第二網(wǎng)卡接收隊(duì)列,包括:
9.一種網(wǎng)卡,其特征在于,所述網(wǎng)卡中包括可編程芯片,所述網(wǎng)卡分別與所位于的網(wǎng)關(guān)設(shè)備中的多個(gè)處理器核心通信連接;
10.一種網(wǎng)關(guān)設(shè)備,其特征在于,包括:
11.一種非暫時(shí)性機(jī)器可讀存儲(chǔ)介質(zhì),其特征在于,所述非暫時(shí)性機(jī)器可讀存儲(chǔ)介質(zhì)上存儲(chǔ)有可執(zhí)行代碼,當(dāng)所述可執(zhí)行代碼被網(wǎng)關(guān)設(shè)備執(zhí)行時(shí),使所述網(wǎng)關(guān)設(shè)備執(zhí)行如權(quán)利要求1-8中任一項(xiàng)所述的報(bào)文處理方法。
12.一種計(jì)算機(jī)程序產(chǎn)品,其特征在于,包括:計(jì)算機(jī)程序,當(dāng)所述計(jì)算機(jī)程序被網(wǎng)關(guān)設(shè)備執(zhí)行時(shí),使所述網(wǎng)關(guān)設(shè)備執(zhí)行如權(quán)利要求1-8中任一項(xiàng)所述的報(bào)文處理方法。