專利名稱:多核平臺(tái)上轉(zhuǎn)發(fā)系統(tǒng)的加速方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)安全技術(shù)領(lǐng)域,尤其涉及一種多核平臺(tái)上轉(zhuǎn)發(fā)系統(tǒng)的加速方法及
裝置。
背景技術(shù):
隨著CPU的換代升級(jí),多核CPU已經(jīng)進(jìn)入到了商用階段,不僅在PC市場(chǎng),在網(wǎng)絡(luò)設(shè) 備市場(chǎng)也占有了一席之地。這就要求各個(gè)廠商需要在新的多核平臺(tái)上開發(fā)產(chǎn)品或者將以前 的軟件移植到多核平臺(tái)上來提升自身產(chǎn)品的競(jìng)爭(zhēng)力。 目前的防火墻系統(tǒng)都是基于狀態(tài)檢測(cè)技術(shù)的。防火墻在收到包之后匹配訪問策 略,如果策略允許通過,就建立session (連接,由源地址、源端口 、目的地址、目的端口和協(xié) 議號(hào)等構(gòu)成)轉(zhuǎn)發(fā)出去。防火墻在收到后續(xù)的屬于這個(gè)session的包后就直接轉(zhuǎn)發(fā)出去, 不需要再匹配訪問策略等工作。在多核平臺(tái)上,運(yùn)行轉(zhuǎn)發(fā)系統(tǒng)的CPU需要加鎖訪問這個(gè) SESSI0N表(在內(nèi)存中存放所有session的一張表)。這樣運(yùn)行轉(zhuǎn)發(fā)系統(tǒng)的CPU越多,他們 之間訪問SESSION表的競(jìng)爭(zhēng)越大,導(dǎo)致CPU的增加不能線性提高轉(zhuǎn)發(fā)系統(tǒng)的整體性能,甚至 在極端情況下還不如一個(gè)CPU的轉(zhuǎn)發(fā)性能。 因此,在多核平臺(tái)上,如何實(shí)現(xiàn)轉(zhuǎn)發(fā)系統(tǒng)的快速轉(zhuǎn)發(fā),減少多個(gè)CPU之間的鎖競(jìng)爭(zhēng) 是需要解決的關(guān)鍵技術(shù)。
發(fā)明內(nèi)容
鑒于上述的分析,本發(fā)明旨在提供一種多核平臺(tái)上轉(zhuǎn)發(fā)系統(tǒng)的加速方法及裝置, 達(dá)到多核平臺(tái)上轉(zhuǎn)發(fā)系統(tǒng)加速的目的。 本發(fā)明的目的主要是通過以下技術(shù)方案實(shí)現(xiàn)的 本發(fā)明提供了一種多核平臺(tái)上轉(zhuǎn)發(fā)系統(tǒng)的加速方法,多核平臺(tái)上的每個(gè)CPU都在 本地預(yù)先創(chuàng)建并維護(hù)一個(gè)本地連接表,則所述方法包括 步驟A:每個(gè)CPU在收到某數(shù)據(jù)流的數(shù)據(jù)包時(shí),優(yōu)先在本地連接表中查找與該數(shù)據(jù)
流對(duì)應(yīng)的本地連接,如果找到,則根據(jù)該本地連接轉(zhuǎn)發(fā)該數(shù)據(jù)包,否則執(zhí)行步驟B ; 步驟B :在連接表中查找該數(shù)據(jù)流對(duì)應(yīng)的連接,如果找到,則根據(jù)該連接轉(zhuǎn)發(fā)該數(shù)
據(jù)包并在本地連接表中建立一個(gè)與該數(shù)據(jù)流對(duì)應(yīng)的本地連接,否則在連接表中建立一個(gè)與
該數(shù)據(jù)流對(duì)應(yīng)的連接并轉(zhuǎn)發(fā)出去。 進(jìn)一步地,所述步驟A中,在本地連接表中查找與該數(shù)據(jù)流對(duì)應(yīng)的本地連接的過 程不需要加鎖保護(hù);所述步驟B中,在連接表中查找該數(shù)據(jù)流對(duì)應(yīng)的連接的過程需要加鎖 保護(hù)。
其中,所述本地連接至少包括源地址、源端口、目的地址、目的端口和協(xié)議號(hào)。
本發(fā)明還提供了一種多核平臺(tái)上轉(zhuǎn)發(fā)系統(tǒng)的加速裝置,包括連接存儲(chǔ)模塊、每個(gè) CPU中的本地連接存儲(chǔ)模塊和查找轉(zhuǎn)發(fā)模塊,其中, 所述連接存儲(chǔ)模塊,用于存儲(chǔ)并維護(hù)每個(gè)數(shù)據(jù)流對(duì)應(yīng)的連接;
所述本地連接存儲(chǔ)模塊,用于存儲(chǔ)并維護(hù)該CPU接收到的數(shù)據(jù)流對(duì)應(yīng)的連接;
所述查找轉(zhuǎn)發(fā)模塊,用于在該CPU收到某數(shù)據(jù)流的數(shù)據(jù)包時(shí),優(yōu)先在本地連接存 儲(chǔ)模塊中查找與該數(shù)據(jù)流對(duì)應(yīng)的本地連接,如果找到,則根據(jù)該本地連接轉(zhuǎn)發(fā)該數(shù)據(jù)包;否 則在連接存儲(chǔ)模塊中查找該數(shù)據(jù)流對(duì)應(yīng)的連接,如果找到,則根據(jù)該連接轉(zhuǎn)發(fā)該數(shù)據(jù)包并 在本地連接存儲(chǔ)模塊中建立一個(gè)與該數(shù)據(jù)流對(duì)應(yīng)的本地連接,否則在連接存儲(chǔ)模塊中建立 一個(gè)與該數(shù)據(jù)流對(duì)應(yīng)的連接并轉(zhuǎn)發(fā)出去。 進(jìn)一步地,所述步驟查找轉(zhuǎn)發(fā)模塊在本地連接表中查找與該數(shù)據(jù)流對(duì)應(yīng)的本地連 接的過程不需要進(jìn)行加鎖保護(hù)處理,在連接表中查找該數(shù)據(jù)流對(duì)應(yīng)的連接的過程需要進(jìn)行 加鎖保護(hù)處理。 其中,所述本地連接至少包括源地址、源端口、目的地址、目的端口和協(xié)議號(hào)。
本發(fā)明有益效果如下 本發(fā)明通過每個(gè)CPU在本地都維護(hù)一個(gè)1ocal—session表,并且遵循優(yōu)先查找 local_session表然后查找SESSI ON表的原則,使得多個(gè)CPU之間訪問SESSI ON表的競(jìng)爭(zhēng)減 少,大幅提高了多核轉(zhuǎn)發(fā)系統(tǒng)的性能。 本發(fā)明的其他特征和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部分的從說明書中變 得顯而易見,或者通過實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過在所寫的說明 書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和獲得。
圖1為本發(fā)明實(shí)施例所述方法的流程示意圖;
圖2為本發(fā)明實(shí)施例所述裝置的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
下面結(jié)合附圖來具體描述本發(fā)明的優(yōu)選實(shí)施例,其中,附圖構(gòu)成本申請(qǐng)一部分,并 與本發(fā)明的實(shí)施例一起用于闡釋本發(fā)明的原理。為了清楚和簡(jiǎn)化目的,當(dāng)其可能使本發(fā)明 的主題模糊不清時(shí),將省略本文所描述的器件中已知功能和結(jié)構(gòu)的詳細(xì)具體說明。
本發(fā)明實(shí)施例的主要內(nèi)容包括 每個(gè)CPU在收到某數(shù)據(jù)流的數(shù)據(jù)包時(shí),優(yōu)先在本地連接表中查找與該數(shù)據(jù)流對(duì)應(yīng) 的本地連接,如果找到,則根據(jù)該本地連接轉(zhuǎn)發(fā)該數(shù)據(jù)包,否則在連接表中查找該數(shù)據(jù)流對(duì) 應(yīng)的連接; 如果在連接表中查找到該數(shù)據(jù)流對(duì)應(yīng)的連接,則根據(jù)該連接轉(zhuǎn)發(fā)該數(shù)據(jù)包并在本 地連接表中建立一個(gè)與該數(shù)據(jù)流對(duì)應(yīng)的本地連接,否則在連接表中建立一個(gè)與該數(shù)據(jù)流對(duì) 應(yīng)的連接并轉(zhuǎn)發(fā)出去。 首先結(jié)合附圖1對(duì)本發(fā)明實(shí)施例所述方法進(jìn)行詳細(xì)說明。 如圖1所示,圖1為本發(fā)明實(shí)施例所述方法的流程示意圖,設(shè)定本實(shí)施例的多核平 臺(tái)上有n個(gè)CPU,每個(gè)CPU都預(yù)先在本地創(chuàng)建并維護(hù)一個(gè)local_session表,則所述方法具 體可以包括如下步驟 步驟101 :TOS轉(zhuǎn)發(fā)系統(tǒng)的CPU1在收到某數(shù)據(jù)流的一個(gè)數(shù)據(jù)包后,優(yōu)先到local_ session表中查找與該數(shù)據(jù)流對(duì)應(yīng)的local_session,如果找到該數(shù)據(jù)流對(duì)應(yīng)的local_session,就直接轉(zhuǎn)發(fā)該數(shù)據(jù)包;如果沒有在local—session表中查找與該數(shù)據(jù)流對(duì)應(yīng)的 local_session,那么就要查找SESSION表,如果沒有查找到與該數(shù)據(jù)流對(duì)應(yīng)的session,就 建立一個(gè)與該數(shù)據(jù)流對(duì)應(yīng)的session,并根據(jù)該session轉(zhuǎn)發(fā)出去;如果找到與該數(shù)據(jù)包對(duì) 應(yīng)的session,就根據(jù)該session直接轉(zhuǎn)發(fā)出去,同時(shí)在local_session表中建立一個(gè)與該 數(shù)據(jù)流對(duì)應(yīng)的local—session ; 本發(fā)明實(shí)施例中,由于CPU1第一次收到該數(shù)據(jù)流的數(shù)據(jù)包,因而對(duì)于該數(shù)據(jù)流 在local_session表尚未建立對(duì)應(yīng)的local_session,在SESSION表也尚未建立對(duì)應(yīng)的 session,因此本步驟中需要先在SESSION表中建立一個(gè)與該數(shù)據(jù)流對(duì)應(yīng)的session,并且, CPU1查找SESSION表,建立session的過程需要加鎖保護(hù); 步驟102 :T0S轉(zhuǎn)發(fā)系統(tǒng)的CPU2在收到后續(xù)同一數(shù)據(jù)流的數(shù)據(jù)包后,優(yōu)先查 找local—session表,由于CPU2也是第一次收到該數(shù)據(jù)流的數(shù)據(jù)包,因而對(duì)于該數(shù)據(jù)流 在1ocal—session表尚未建立對(duì)應(yīng)的local_session,因此需要查找SESSION表,由于在 SESSION表找到與該數(shù)據(jù)流對(duì)應(yīng)的session,并且這個(gè)session的狀態(tài)是可用的狀態(tài),于是 CPU2就在local_session表中創(chuàng)建一個(gè)與該數(shù)據(jù)流對(duì)應(yīng)的local_session,這個(gè)local_ session是CPU變量,只有這個(gè)CPU (即CPU2)才能訪問這個(gè)local_session,這個(gè)local_ session記錄這個(gè)數(shù)據(jù)流轉(zhuǎn)發(fā)出去所需的所有信息,至少包括源地址、源端口 、目的地址、 目的端口和協(xié)議號(hào);本步驟中,CPU2查找SESSION表過程需要加鎖保護(hù);
步驟103 :TOS轉(zhuǎn)發(fā)系統(tǒng)的CPUn在收到后續(xù)同一數(shù)據(jù)流的數(shù)據(jù)包后,優(yōu)先查 找local_session表,由于CPUn也是第一次收到該數(shù)據(jù)流的數(shù)據(jù)包,因而對(duì)于該數(shù)據(jù)流 在1ocal—session表尚未建立對(duì)應(yīng)的local_session,因此需要查找SESSION表,由于在 SESSION表找到與該數(shù)據(jù)流對(duì)應(yīng)的session,并且這個(gè)session的狀態(tài)是可用的狀態(tài),于是 CPUn就在local_session表中創(chuàng)建一個(gè)與該數(shù)據(jù)流對(duì)應(yīng)的local_session,這個(gè)local_ session是CPU變量,只有這個(gè)CPU才能訪問這個(gè)local_session ;本步驟中,CPUn查找 SESSION表的過程需要加鎖保護(hù); 步驟104 :T0S轉(zhuǎn)發(fā)系統(tǒng)的CPU1再次收到同一數(shù)據(jù)流后續(xù)的數(shù)據(jù)包后,優(yōu)先查找 local_session表,由于CPU1第一次收到該數(shù)據(jù)流的數(shù)據(jù)包時(shí)只是在SESSION中創(chuàng)建了與 該數(shù)據(jù)流對(duì)應(yīng)的session,而在local—session表尚未建立對(duì)應(yīng)的local—session,因此當(dāng) 在SESSION表中查找到與該數(shù)據(jù)流對(duì)應(yīng)的session,并且這個(gè)session的狀態(tài)是可用的狀態(tài) 時(shí),CPU1就在local_session表中創(chuàng)建一個(gè)與該數(shù)據(jù)流對(duì)應(yīng)的local_session,這個(gè)local_ session是CPU變量,只有這個(gè)CPU才會(huì)戰(zhàn)問這個(gè)local—session,這個(gè)local—session記 錄這個(gè)流轉(zhuǎn)發(fā)出去所需的所有信息,至少包括源地址、源端口、目的地址、目的端口和協(xié)議 號(hào); 步驟105 :T0S轉(zhuǎn)發(fā)系統(tǒng)的CPU2再次收到同一數(shù)據(jù)流后續(xù)的數(shù)據(jù)包后,首先查 找local_session表,因?yàn)橹安襟E102中CPU2對(duì)于該數(shù)據(jù)流已經(jīng)建立了對(duì)應(yīng)的local_ session,這時(shí)CPU2在local—session表中就能查找到與該數(shù)據(jù)流對(duì)應(yīng)的local—session, 并根據(jù)該local—session轉(zhuǎn)發(fā)出去;本步驟CPU2查找local_session表這個(gè)過程不需要加 鎖保護(hù); 步驟106 :TOS轉(zhuǎn)發(fā)系統(tǒng)的CPUn在收到同一數(shù)據(jù)流的后續(xù)數(shù)據(jù)包后,首先查找 1ocal—session表,因?yàn)橹安襟E103中CPUn對(duì)于該數(shù)據(jù)流已經(jīng)建立了對(duì)應(yīng)的local_
5session,這時(shí)CPUn在local_session表中就能查找到與該數(shù)據(jù)流對(duì)應(yīng)的local_session, 并根據(jù)該local—session轉(zhuǎn)發(fā)出去;本步驟CPUn查找local_session表這個(gè)過程不需要加 鎖保護(hù); 步驟107 :T0S轉(zhuǎn)發(fā)系統(tǒng)的CPU1在第三次收到同一數(shù)據(jù)流的數(shù)據(jù)包后,首先查 找local_session表,因?yàn)橹安襟E104中CPU1對(duì)于該數(shù)據(jù)流已經(jīng)建立了對(duì)應(yīng)的local_ session,這時(shí)CPU1在local_session表中就能查找到與該數(shù)據(jù)流對(duì)應(yīng)的local_session, 并根據(jù)1ocal—session轉(zhuǎn)發(fā)出去;本步驟CPU1查找local—session表這個(gè)過程不需要加鎖 保護(hù); 如圖1所示在第一階段,CPUl-n在收到數(shù)據(jù)包后都建立了 session和local_ session。這個(gè)階段是需要鎖競(jìng)爭(zhēng)的,需要大量的CPU資源。在第二階段,CPUl-n收到數(shù)據(jù) 包后在local_session表中能查找到local_session就直接轉(zhuǎn)發(fā)出去了,由于是在local_ session表中查找,所以沒有鎖競(jìng)爭(zhēng),達(dá)到加速轉(zhuǎn)發(fā)的目的。 需要說明的是,對(duì)于每個(gè)CPU在查找時(shí)都要遵循優(yōu)先查找local—session表然后 查找SESSION表的原則,即在收到某數(shù)據(jù)流的一個(gè)數(shù)據(jù)包后都要優(yōu)先到local—session表 中查找與該數(shù)據(jù)流對(duì)應(yīng)的local_session,如果找到與該數(shù)據(jù)流對(duì)應(yīng)的local_session,則 進(jìn)行轉(zhuǎn)發(fā);如果沒有找到與該數(shù)據(jù)流對(duì)應(yīng)的1ocal—session,再到SESSION表中查找與該數(shù) 據(jù)流對(duì)應(yīng)的session,如果找到與該數(shù)據(jù)流對(duì)應(yīng)的session,則進(jìn)行轉(zhuǎn)發(fā),如果沒有找到與 該數(shù)據(jù)流對(duì)應(yīng)的session,則建立一個(gè)與該數(shù)據(jù)流對(duì)應(yīng)的session并轉(zhuǎn)發(fā)出去。
接下來結(jié)合附圖2對(duì)本發(fā)明實(shí)施例所述裝置進(jìn)行詳細(xì)說明。 如圖2所示,圖2為本發(fā)明實(shí)施例所述裝置的結(jié)構(gòu)示意圖,具體可以包括連接存 儲(chǔ)模塊、每個(gè)CPU中的本地連接存儲(chǔ)模塊和查找轉(zhuǎn)發(fā)模塊,其中, 連接存儲(chǔ)模塊,負(fù)責(zé)存儲(chǔ)并維護(hù)每個(gè)數(shù)據(jù)流對(duì)應(yīng)的連接,本發(fā)明實(shí)施例中采用 SESSION表的形式; 本地連接存儲(chǔ)模塊,負(fù)責(zé)存儲(chǔ)并維護(hù)該CPU接收到的數(shù)據(jù)流對(duì)應(yīng)的連接,本發(fā)明 實(shí)施例中采用1ocal—session表的形式; 查找轉(zhuǎn)發(fā)模塊,遵循優(yōu)先查找local—session表然后查找SESSION表的原則對(duì)該 CPU接收到的數(shù)據(jù)包進(jìn)行查找轉(zhuǎn)發(fā)處理,即在該CPU收到某數(shù)據(jù)流的數(shù)據(jù)包時(shí),查找轉(zhuǎn)發(fā) 模塊優(yōu)先在local—session表中查找與該數(shù)據(jù)流對(duì)應(yīng)的本地連接,如果找到,則根據(jù)該本 地連接轉(zhuǎn)發(fā)該數(shù)據(jù)包;否則在SESSION表中查找該數(shù)據(jù)流對(duì)應(yīng)的連接,如果找到,則根據(jù)該 連接轉(zhuǎn)發(fā)該數(shù)據(jù)包并在local—session表中建立一個(gè)與該數(shù)據(jù)流對(duì)應(yīng)的本地連接,否則在 SESSION表中建立一個(gè)與該數(shù)據(jù)流對(duì)應(yīng)的連接,并且轉(zhuǎn)發(fā)出去。 對(duì)于本發(fā)明實(shí)施例所述裝置的具體實(shí)施過程,由于上述方法已有詳細(xì)說明,故此 處不再贅述。 綜上所述,本發(fā)明實(shí)施例所述方法提供了一種多核平臺(tái)上轉(zhuǎn)發(fā)系統(tǒng)的加速方法 及裝置,通過每個(gè)CPU在本地都維護(hù)一個(gè)local_session表,并且遵循優(yōu)先查找local_ session表然后查找SESSION表的原則,使得多個(gè)CPU之間訪問SESSION表的競(jìng)爭(zhēng)減少,大 幅提高了多核轉(zhuǎn)發(fā)系統(tǒng)的性能,尤其是運(yùn)行轉(zhuǎn)發(fā)系統(tǒng)的CPU個(gè)數(shù)很多時(shí),效果非常好。
以上所述,僅為本發(fā)明較佳的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此, 任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求書的保護(hù)范 圍為準(zhǔn)。
權(quán)利要求
一種多核平臺(tái)上轉(zhuǎn)發(fā)系統(tǒng)的加速方法,其特征在于,多核平臺(tái)上的每個(gè)CPU都在本地預(yù)先創(chuàng)建并維護(hù)一個(gè)本地連接表,則所述方法包括步驟A每個(gè)CPU在收到某數(shù)據(jù)流的數(shù)據(jù)包時(shí),優(yōu)先在本地連接表中查找與該數(shù)據(jù)流對(duì)應(yīng)的本地連接,如果找到,則根據(jù)該本地連接轉(zhuǎn)發(fā)該數(shù)據(jù)包,否則執(zhí)行步驟B;步驟B在連接表中查找該數(shù)據(jù)流對(duì)應(yīng)的連接,如果找到,則根據(jù)該連接轉(zhuǎn)發(fā)該數(shù)據(jù)包并在本地連接表中建立一個(gè)與該數(shù)據(jù)流對(duì)應(yīng)的本地連接,否則在連接表中建立一個(gè)與該數(shù)據(jù)流對(duì)應(yīng)的連接并轉(zhuǎn)發(fā)出去。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟A中,在本地連接表中查找與該 數(shù)據(jù)流對(duì)應(yīng)的本地連接的過程不需要加鎖保護(hù);所述步驟B中,在連接表中查找該數(shù)據(jù)流 對(duì)應(yīng)的連接的過程需要加鎖保護(hù)。
3. 根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述本地連接至少包括源地址、源端口 、目的地址、目的端口和協(xié)議號(hào)。
4. 一種多核平臺(tái)上轉(zhuǎn)發(fā)系統(tǒng)的加速裝置,其特征在于,包括連接存儲(chǔ)模塊、每個(gè)CPU 中的本地連接存儲(chǔ)模塊和查找轉(zhuǎn)發(fā)模塊,其中,所述連接存儲(chǔ)模塊,用于存儲(chǔ)并維護(hù)每個(gè)數(shù)據(jù)流對(duì)應(yīng)的連接; 所述本地連接存儲(chǔ)模塊,用于存儲(chǔ)并維護(hù)該CPU接收到的數(shù)據(jù)流對(duì)應(yīng)的連接;所述查找轉(zhuǎn)發(fā)模塊,用于在該CPU收到某數(shù)據(jù)流的數(shù)據(jù)包時(shí),優(yōu)先在本地連接存儲(chǔ)模 塊中查找與該數(shù)據(jù)流對(duì)應(yīng)的本地連接,如果找到,則根據(jù)該本地連接轉(zhuǎn)發(fā)該數(shù)據(jù)包;否則在 連接存儲(chǔ)模塊中查找該數(shù)據(jù)流對(duì)應(yīng)的連接,如果找到,則根據(jù)該連接轉(zhuǎn)發(fā)該數(shù)據(jù)包并在本 地連接存儲(chǔ)模塊中建立一個(gè)與該數(shù)據(jù)流對(duì)應(yīng)的本地連接,否則在連接存儲(chǔ)模塊中建立一個(gè) 與該數(shù)據(jù)流對(duì)應(yīng)的連接并轉(zhuǎn)發(fā)出去。
5. 根據(jù)權(quán)利要求4所述的裝置,其特征在于,所述步驟查找轉(zhuǎn)發(fā)模塊在本地連接表中 查找與該數(shù)據(jù)流對(duì)應(yīng)的本地連接的過程不需要進(jìn)行加鎖保護(hù)處理,在連接表中查找該數(shù)據(jù) 流對(duì)應(yīng)的連接的過程需要進(jìn)行加鎖保護(hù)處理。
6. 根據(jù)權(quán)利要求4或5所述的方法,其特征在于,所述本地連接至少包括源地址、源 端口 、目的地址、目的端口和協(xié)議號(hào)。
全文摘要
本發(fā)明公開了一種多核平臺(tái)上轉(zhuǎn)發(fā)系統(tǒng)的加速方法及裝置,多核平臺(tái)上的每個(gè)CPU都在本地預(yù)先創(chuàng)建并維護(hù)一個(gè)本地連接表,所述方法包括每個(gè)CPU在收到某數(shù)據(jù)流的數(shù)據(jù)包時(shí),優(yōu)先在本地連接表中查找與該數(shù)據(jù)流對(duì)應(yīng)的本地連接,如果找到,則根據(jù)該本地連接轉(zhuǎn)發(fā)該數(shù)據(jù)包;否則在連接表中查找該數(shù)據(jù)流對(duì)應(yīng)的連接,如果找到,則根據(jù)該連接轉(zhuǎn)發(fā)該數(shù)據(jù)包并在本地連接表中建立一個(gè)與該數(shù)據(jù)流對(duì)應(yīng)的本地連接,否則在連接表中建立一個(gè)與該數(shù)據(jù)流對(duì)應(yīng)的連接并轉(zhuǎn)發(fā)出去;本發(fā)明通過每個(gè)CPU遵循優(yōu)先查找本地連接表然后查找連接表的原則,使得多個(gè)CPU之間訪問連接表的競(jìng)爭(zhēng)減少,大幅提高了多核轉(zhuǎn)發(fā)系統(tǒng)的性能。
文檔編號(hào)H04L29/06GK101789901SQ20091024326
公開日2010年7月28日 申請(qǐng)日期2009年12月30日 優(yōu)先權(quán)日2009年12月30日
發(fā)明者吳亞飚, 王震 申請(qǐng)人:北京天融信科技有限公司