專利名稱:一種報(bào)文分流處理方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種報(bào)文分流處理方法及裝置。
背景技術(shù):
隨著現(xiàn)代網(wǎng)絡(luò)技術(shù)的發(fā)展和網(wǎng)絡(luò)影響的擴(kuò)大,越來越多的網(wǎng)絡(luò)設(shè)備,如 安全網(wǎng)關(guān)、邊緣路由器和核心路由器,需要支持快速準(zhǔn)確的報(bào)文分流。未來 網(wǎng)絡(luò)的發(fā)展趨勢需要為用戶提供更好的服務(wù)質(zhì)量,而諸如防火墻、區(qū)分服務(wù)、 虛擬專網(wǎng)、基于策略的路由和高層交換等提高服務(wù)質(zhì)量的機(jī)制都是基于高效 報(bào)文分流技術(shù)的。使用報(bào)文分流技術(shù),可有效才企測并實(shí)時(shí)阻斷隱藏在海量網(wǎng) 絡(luò)流量中的病毒、攻擊與濫用行為,也可以對分布在網(wǎng)絡(luò)中的各種流量進(jìn)行 有效管理,從而實(shí)現(xiàn)對網(wǎng)絡(luò)應(yīng)用、網(wǎng)絡(luò)基礎(chǔ)設(shè)施和網(wǎng)絡(luò)性能的保護(hù)。
現(xiàn)有技術(shù)中,通常采用多核CPU ( Central Processing Unit,中央處理單元) 進(jìn)行業(yè)務(wù)報(bào)文處理,每個(gè)CPU核由四個(gè)石更線程VCPU (Virtual Central Processing Unit,虛擬中央處理單元)構(gòu)成,為了使多個(gè)VCPU在相互配合下 達(dá)到最大報(bào)文處理速度,需要使用流分類算法使所有VCPU的報(bào)文分發(fā)負(fù)載 平衡。流分類算法采用一定規(guī)則識別符合某類特征的報(bào)文,是有區(qū)別地對報(bào) 文進(jìn)行服務(wù)的前提和基礎(chǔ)。具體地,流分類算法可以使用IP( Internet Protocol, 因特網(wǎng)協(xié)議)報(bào)文頭的ToS (Type of Service,服務(wù)類型)字段的優(yōu)先級位, 識別出有不同優(yōu)先級特征的流量;也可以由網(wǎng)絡(luò)管理者設(shè)置流分類的策略。 報(bào)文的分類依據(jù)一般都局限在封裝報(bào)文的頭部信息,很少使用報(bào)文的內(nèi)容作 為分流的標(biāo)準(zhǔn)。報(bào)文分流的結(jié)果沒有范圍限制,可以是一個(gè)由三元組(包括 源地址、協(xié)議號和目的地址)確定的狹小范圍,也可以是到某網(wǎng)段的所有報(bào) 文。
在網(wǎng)絡(luò)環(huán)境中,當(dāng)需要傳輸?shù)腎P報(bào)文大小超過MTU (Maximum Transmission Unit,最大傳輸單位)時(shí),會產(chǎn)生IP分片情況。例如,在以太網(wǎng)環(huán)境中可傳輸最大IP報(bào)文(MTU)為1500字節(jié),而傳輸?shù)腎P報(bào)文大于1500字節(jié)時(shí),需要使用分片技術(shù)將IP報(bào)文分片后,才能傳輸。由于TCP ( TransferControl Protocol,傳輸控制協(xié)議)面向連接,對數(shù)據(jù)包的到達(dá)順序以及數(shù)據(jù)包傳輸中是否發(fā)生錯(cuò)誤有嚴(yán)格的要求,因此,應(yīng)使同組分片報(bào)文盡量在同一VCPU上處理。
為滿足上述要求,現(xiàn)有技術(shù)提出了三元組流分類及分片報(bào)文處理方案和五元組流分類及分片報(bào)文處理方案,其中,三元組流分類方案通過提取報(bào)文IP頭部的源IP、目的IP和協(xié)議三部分的內(nèi)容進(jìn)行Hash (哈希)運(yùn)算,得到進(jìn)行報(bào)文處理的目的VCPU,并對分片報(bào)文進(jìn)行進(jìn)一步分析。當(dāng)IP數(shù)據(jù)報(bào)文被分片后,每一分片都成為一個(gè)分組,具有自己的IP首部,并在選擇路由時(shí)與其他分組獨(dú)立。當(dāng)數(shù)據(jù)報(bào)文的分片到達(dá)目的端時(shí)有可能會失序,但是在IP首部中有足夠的信息使接收端正確組裝上述數(shù)據(jù)報(bào)文的分片,因此,分片報(bào)文采用三元組流分類算法,仍能使同組分片報(bào)文在同一 VCPU上處理,且對分片報(bào)文不作特殊處理。
五元組流分類方案在三元組流分類的基礎(chǔ)上添加源端口和目的端口兩部分信息,通過Hash運(yùn)算得到目的VCPU。由于分片報(bào)文只有首片具有源/目端口,其他分片都僅有源/目IP地址沒有端口,因此,分片報(bào)文應(yīng)進(jìn)行特殊處理,即對分片報(bào)文采用Hash鏈表緩存,在一組報(bào)文接收完畢后,對分片報(bào)文進(jìn)行統(tǒng)一分發(fā)處理。
具體地,Hash鏈表用于將所有關(guān)鍵字為同一詞的記錄存儲在同一線性鏈表中,假設(shè)某哈希函數(shù)產(chǎn)生的哈希地址在區(qū)間[O, m-l]上,則設(shè)立一個(gè)指針型向量Chain chainhash[m],該向量的每個(gè)分量的初始狀態(tài)都是空指針,凡哈希地址為i的記錄都插入到頭指針為chainhash[i]的鏈表中,在鏈表中的插入位置可以在表頭或表尾,也可以在中間,以保持同一詞在同一線性鏈表中按關(guān)鍵字排列。同一組分片報(bào)文的標(biāo)識字相同,因此可將標(biāo)識字相同的分片報(bào)文掛接在同一 Hash鏈表中,鏈中每個(gè)結(jié)點(diǎn)存放報(bào)文相關(guān)信息,包括標(biāo)識符、MF ( More Fragment,更多分片)值、DF ( Don't Fragment,不允許分片)值和偏移量等信息。對分片報(bào)文的處理流程包括,才艮據(jù)報(bào)文的標(biāo)準(zhǔn)偏移和MF值來判斷是否為分片報(bào)文,如果不是分片報(bào)文,則直接按照五元組進(jìn)行流分
類;如果是分片報(bào)文,則讀取IP頭中的協(xié)議信息,如果IP頭中沒有協(xié)議信息,則判斷該分片報(bào)文不是首片報(bào)文;如果IP頭中有協(xié)議信息,則判斷該分片報(bào)文是首片報(bào)文,并提取該分片報(bào)文的源/目的IP地址、源/目的端口和標(biāo)識等信息,對標(biāo)識相同的分片報(bào)文懸掛于同一Hash鏈表中。隨后,繼續(xù)接收分片報(bào)文直到分片報(bào)文的MF值為0,表示該報(bào)文包結(jié)束。當(dāng)一組報(bào)文接收完畢后,查找該鏈表中所有標(biāo)識相同的才艮文進(jìn)行流分類處理。
然而,對于三元組流分類及分片報(bào)文處理方案,由于目前很多局域網(wǎng)采用NAT (Network Address Translation,網(wǎng)絡(luò)地址轉(zhuǎn)換)技術(shù)以解決全球IP地址不足的現(xiàn)狀,存在大量IP相同但端口不同的網(wǎng)絡(luò)數(shù)據(jù)報(bào)文,而IP地址相同而端口不同的報(bào)文要在同一個(gè)VCPU上處理,因此,會造成報(bào)文分發(fā)不平衡的現(xiàn)象,即某些VCPU因阻塞而丟包,而另一些VCPU卻處于空閑狀態(tài)。
對于五元組流分類及分片報(bào)文處理方案,對分片報(bào)文的緩存處理會占用內(nèi)存空間并降低分類速度,查找Hash鏈表會給系統(tǒng)帶來很大開銷,同時(shí),網(wǎng)絡(luò)中存在分片風(fēng)暴攻擊,即故意發(fā)送部分IP分片而不是全部的IP分片,會使目標(biāo)主機(jī)總是處于等待分片報(bào)文的狀態(tài),消耗并占用了系統(tǒng)資源。
發(fā)明內(nèi)容
本發(fā)明提供了 一種報(bào)文分流處理方法及裝置,用于提高多核網(wǎng)絡(luò)設(shè)備處理報(bào)文的速度和效率。
本發(fā)明提供了 一種報(bào)文分流處理方法,應(yīng)用于包括多核網(wǎng)絡(luò)設(shè)備的報(bào)文分流處理系統(tǒng)中,所述方法包括以下步驟
所述多核網(wǎng)絡(luò)i殳備提耳又才艮文的五元組信息,所述五元組信息包括源端口 、目的端口、源因特網(wǎng)協(xié)議IP地址、目的IP地址和協(xié)議內(nèi)容;
所述多核網(wǎng)絡(luò)設(shè)備根據(jù)所述報(bào)文的分片信息,判斷所述報(bào)文是否為分片報(bào)文,如果所述報(bào)文為分片報(bào)文,則根據(jù)所述報(bào)文的源IP地址、目的IP地址和協(xié)議內(nèi)容進(jìn)行哈希Hash運(yùn)算,獲取所述報(bào)文對應(yīng)的虛擬中央處理單元VCPU;如果所述報(bào)文不是分片報(bào)文,則根據(jù)所述報(bào)文的源端口、目的端口、源IP地址、目的IP地址和協(xié)議內(nèi)容進(jìn)行Hash運(yùn)算,獲耳又所述才艮文對應(yīng)的VCPU;
所述多核網(wǎng)絡(luò)i殳備通過所述獲取的VCPU處理所述導(dǎo)艮文。所述報(bào)文的分片信息為所述報(bào)文包含的標(biāo)志字段和標(biāo)準(zhǔn)偏移字段。所述多核網(wǎng)絡(luò)設(shè)備根據(jù)所述報(bào)文的分片信息,判斷所述報(bào)文是否為分片報(bào)文,具體為
如果所述標(biāo)志字段的最后一位為O且標(biāo)準(zhǔn)偏移字段為0,則所述多核網(wǎng)絡(luò)設(shè)備判斷所述報(bào)文不是分片報(bào)文;如果所述標(biāo)志字段的最后一位為O且標(biāo)準(zhǔn)偏移字段不為0,或所述標(biāo)志字段的最后一位為1,則所述多核網(wǎng)絡(luò)設(shè)備判斷所述報(bào)文是分片報(bào)文。
當(dāng)所述報(bào)文為分片報(bào)文時(shí),所述多核網(wǎng)絡(luò)設(shè)備通過所述獲取的VCPU處理所述報(bào)文,具體為
所述多核網(wǎng)絡(luò)設(shè)備通過同一 VCPU處理同一分組中的所有分片報(bào)文。
當(dāng)所述報(bào)文為分片報(bào)文時(shí),所述多核網(wǎng)絡(luò)設(shè)備通過所述獲取的VCPU處理所述報(bào)文之后,還包括
所述多核網(wǎng)絡(luò)設(shè)備根據(jù)所述分片報(bào)文中的標(biāo)識字段和標(biāo)準(zhǔn)偏移字段,對同 一分組中的分片報(bào)文進(jìn)行組裝。
本發(fā)明還提供了 一種報(bào)文分流處理裝置,應(yīng)用于報(bào)文分流處理系統(tǒng)中,所述裝置包括
提取模塊,用于提取報(bào)文的五元組信息,所述五元組信息包括源端口、目的端口、源因特網(wǎng)協(xié)議IP地址、目的IP地址和協(xié)議內(nèi)容;
判斷才莫塊,用于根據(jù)所述報(bào)文的分片信息,判斷所述報(bào)文是否為分片報(bào)
文;
獲取模塊,與所述判斷模塊和所述提取模塊連接,用于在所述判斷模塊判斷所述報(bào)文為分片報(bào)文時(shí),根據(jù)所述提取模塊提取的所述報(bào)文的源IP地址、
目的IP地址和協(xié)議內(nèi)容進(jìn)行Hash運(yùn)算,獲取所述報(bào)文對應(yīng)的VCPU;在所述判斷模塊判斷所述報(bào)文不是分片報(bào)文時(shí),根據(jù)所述提取模塊提取的所述報(bào)文的源端口、目的端口、源IP地址、目的IP地址和協(xié)議內(nèi)容進(jìn)行Hash運(yùn)算,獲耳又所述報(bào)文對應(yīng)的VCPU;
處理模塊,與所述獲取模塊連接,用于通過所述獲取模塊獲取的VCPU處理所述報(bào)文。
所述報(bào)文的分片信息為所述報(bào)文包含的標(biāo)志字^a和標(biāo)準(zhǔn)偏移字段。
所述判斷模塊,具體用于在所述標(biāo)志字段的最后一位為0且標(biāo)準(zhǔn)偏移字段為0時(shí),判斷所述報(bào)文不是分片報(bào)文;在所述標(biāo)志字段的最后一位為0且標(biāo)準(zhǔn)偏移字段不為0,或所述標(biāo)志字段的最后一位為1時(shí),判斷所述報(bào)文是分片報(bào)文。
當(dāng)所述報(bào)文為分片報(bào)文時(shí),所述處理模塊,具體用于通過同一 VCPU處
理同 一分組中的所有分片報(bào)文。
當(dāng)所述報(bào)文為分片報(bào)文時(shí),所述處理模塊,還用于根據(jù)所述分片報(bào)文中的標(biāo)識字段和標(biāo)準(zhǔn)偏移字段,對同一分組中的分片報(bào)文進(jìn)行組裝。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)
本發(fā)明通過綜合三元組流分類方案和五元組流分類方案,改進(jìn)了報(bào)文分流算法,對非分片報(bào)文采用五元組流分類,對分片報(bào)文動態(tài)切換到三元組流分類,解決了三元組流分類方案對大流量報(bào)文分發(fā)不平衡的缺陷,彌補(bǔ)了五元組流分類方案下分片報(bào)文緩存帶來的性能下降的不足,報(bào)文在多VCPU上分發(fā)更加均衡,加快了報(bào)文處理速度,減小了丟包率;另外,同一組分片報(bào)文在同一VCPU上處理,為上層分片報(bào)文的重組提供方便。
圖1為本發(fā)明中的一種報(bào)文分流處理方法流程圖2為本發(fā)明中才艮文頭的結(jié)構(gòu)示意圖3為本發(fā)明中的一種才良文分流處理裝置結(jié)構(gòu)示意圖。
具體實(shí)施例方式
本發(fā)明的核心思想為多核網(wǎng)絡(luò)設(shè)備根據(jù)報(bào)文的分片信息,判斷該報(bào)文是否為分片報(bào)文,如果報(bào)文為分片報(bào)文,則根據(jù)該報(bào)文的源IP地址、目的IP地址和協(xié)議內(nèi)容進(jìn)4亍Hash運(yùn)算,獲耳又才艮文對應(yīng)的VCPU,并通過該VCPU處理報(bào)文;如果報(bào)文不是分片報(bào)文,則根據(jù)報(bào)文的源端口、目的端口、源IP地址、目的IP地址和協(xié)議內(nèi)容進(jìn)行Hash運(yùn)算,獲取報(bào)文對應(yīng)的VCPU,并通過該VCPU處理纟艮文。
本發(fā)明中提供了 一種報(bào)文分流處理方法,應(yīng)用于包括多核網(wǎng)絡(luò)設(shè)備的報(bào)文分流處理系統(tǒng)中,該方法如圖l所示,包括以下步驟
步驟IOI,多核網(wǎng)絡(luò)設(shè)備提取報(bào)文的五元組信息。
其中,五元組信息包括源端口、目的端口、源IP地址、目的IP地址和協(xié)議內(nèi)容,如表l所示。
表1 五元組信息表
源端口目的端口源IP地址目的IP地址協(xié)議內(nèi)容
PortlPort210,10,0.110.10.0.0Tcp
Port2anyIplIp2Udp
步驟102,多核網(wǎng)絡(luò)設(shè)備根據(jù)報(bào)文的分片信息,判斷該報(bào)文是否為分片報(bào)文,如果報(bào)文為分片報(bào)文,則執(zhí)行步驟103;如果報(bào)文不是分片報(bào)文,則執(zhí)行步驟104。
具體地,報(bào)文的分片信息可以為報(bào)文包含的標(biāo)志字段和標(biāo)準(zhǔn)偏移字段。報(bào)文頭的結(jié)構(gòu)如圖2所示,該報(bào)文頭包括4位版本字段、4位首部長度字段、8位服務(wù)類型字段、16位數(shù)據(jù)包總長度字段、16位標(biāo)識字段、3位標(biāo)志字段、13位標(biāo)準(zhǔn)偏移字段、8位TTL (Time To Live,生存時(shí)間)字段、8位協(xié)議字段、16位首部校驗(yàn)和字^:、 32位源IP地址和32位目的IP地址,其中,版本字l^示IP協(xié)議的版本,通信雙方使用的IP協(xié)議版本必須一致,目前IP協(xié)議版本為Ipv4(InternetProtocol version4,因特網(wǎng)協(xié)議第4版),因此,該字段通常為4;首部長度字段用于表示報(bào)頭區(qū)包含的長度單位的個(gè)數(shù);服務(wù)類型字段用于規(guī)定對本報(bào)文的處理方式,發(fā)送端可以利用該字段要求中途轉(zhuǎn)發(fā)該報(bào)文的路由器使用低延遲、高吞吐率或高可靠性的線路發(fā)送;數(shù)據(jù)包總長度字段用于表示該報(bào)文的總長度,包括報(bào)頭區(qū)和數(shù)據(jù)區(qū)的長度之和;標(biāo)識字段為IP報(bào)文在源主機(jī)的網(wǎng)絡(luò) 層產(chǎn)生時(shí)所被加上的一個(gè)16位的唯一識別碼;標(biāo)志字段為用于描述報(bào)文分片狀 態(tài)的3位標(biāo)志記號;標(biāo)準(zhǔn)偏移字段用于描述分片狀態(tài)下的報(bào)文在原報(bào)文中的起 始位置;TTL字段用于描述才艮文在網(wǎng)絡(luò)中的有效存在時(shí)間,字段單位為跳站, 一個(gè)跳站代表IP報(bào)文經(jīng)過的一個(gè)路由器,每經(jīng)過一個(gè)路由器,報(bào)文的TTL值減 1,如果TTL值為0,則該報(bào)文被丟棄,避免死循環(huán)的發(fā)生;協(xié)議字段用于指明 報(bào)文所攜帶的數(shù)據(jù)字段部分到達(dá)目的主機(jī)對應(yīng)的高層協(xié)議;首部校驗(yàn)和字段用 于檢測報(bào)文在傳輸過程中,報(bào)文的頭部信息是否被修改;源IP地址和目的IP地 址在報(bào)文的傳輸過程中始終保持不變。
多核網(wǎng)絡(luò)設(shè)備根據(jù)報(bào)文的標(biāo)志字段和標(biāo)準(zhǔn)偏移字段判斷該報(bào)文是否為分片 報(bào)文,如果標(biāo)志字段的最后一位為0且標(biāo)準(zhǔn)偏移字段為0,則該報(bào)文不是分片報(bào) 文;如果標(biāo)志字段的最后一位為O且標(biāo)準(zhǔn)偏移字段不為0,或標(biāo)志字段的最后一 位為l,則該報(bào)文是分片報(bào)文。
步驟103,多核網(wǎng)絡(luò)設(shè)備根據(jù)報(bào)文的源IP地址、目的IP地址和協(xié)議內(nèi)容進(jìn) 行Hash運(yùn)算,獲取該報(bào)文對應(yīng)的VCPU。
具體地,Hash運(yùn)算可以將任意長度的輸入,通過散列算法變換成固定長度 的輸出,該輸出為散列值。散列值的空間通常遠(yuǎn)小于輸入的空間,不同的輸入 可能會散列成相同的輸出,因而無法從散列值來唯一地確定輸入值。
多核網(wǎng)絡(luò)設(shè)備可以將報(bào)文的源IP地址、目的IP地址和協(xié)議內(nèi)容作為Hash 運(yùn)算的輸入量,通過散列算法將上述輸入量變換成固定長度的散列值,即128 位的編碼,并根據(jù)該編碼獲取對應(yīng)的VCPU。由于同一分組中的所有分片報(bào)文 的源IP地址、目的IP地址和協(xié)議內(nèi)容均相同,因此,同一分組中的所有分片報(bào) 文對應(yīng)同一個(gè)VCPU。
步驟104 ,多核網(wǎng)絡(luò)設(shè)備根據(jù)報(bào)文的源端口 、目的端口 、源IP地址、目的 IP地址和協(xié)議內(nèi)容進(jìn)行Hash運(yùn)算,獲取該報(bào)文對應(yīng)的VCPU。
具體地,多核網(wǎng)絡(luò)設(shè)備還可以將報(bào)文的源端口、目的端口、源IP地址、目 的IP地址和協(xié)議內(nèi)容作為Hash運(yùn)算的輸入量,通過散列算法將上述輸入量變 換成固定長度的散列值,即128位的編碼,并根據(jù)該編碼獲取對應(yīng)的VCPU。由于Hash運(yùn)算中,不同的輸入可能^:列成相同的輸出,因此,具有不同源端 口、目的端口、源IP地址、目的IP地址或協(xié)議內(nèi)容的報(bào)文可以對應(yīng)相同或不同 的VCPU。
步驟105,多核網(wǎng)絡(luò)設(shè)備通過上述獲取的VCPU處理報(bào)文。 具體地,當(dāng)報(bào)文為分片報(bào)文時(shí),多核網(wǎng)絡(luò)設(shè)備通過同一 VCPU處理同一分 組中的所有分片報(bào)文。
當(dāng)報(bào)文為分片報(bào)文時(shí),多核網(wǎng)絡(luò)設(shè)備通過獲取的VCPU處理報(bào)文后,還
可以根據(jù)分片報(bào)文中的標(biāo)識字段和標(biāo)準(zhǔn)偏移字段,對同一分組中的分片報(bào)文 進(jìn)行組裝。
為進(jìn)一步驗(yàn)證上述技術(shù)方案的可行性,可以對真實(shí)網(wǎng)絡(luò)環(huán)境中的分片報(bào) 文進(jìn)行統(tǒng)計(jì),可以得出真實(shí)的網(wǎng)絡(luò)環(huán)境中分片報(bào)文的數(shù)量很小,且上層平臺
對報(bào)文會進(jìn)行過濾。當(dāng)采用Smartbits軟件在數(shù)據(jù)流中構(gòu)造源IP地址、目的IP 地址、源端口和目的端口變化的數(shù)據(jù)包來模擬大型網(wǎng)絡(luò)時(shí),還可以通過查看 每個(gè)業(yè)務(wù)VCPU的報(bào)文統(tǒng)計(jì)量,比較三元組流分類方案和五元組流分類方案 的性能差別。對于IP地址相同而端口變化的報(bào)文,五元組流分類方案對報(bào)文 的分發(fā)更加均衡,而三元組流分類方案只能將報(bào)文在同一 VCPU上處理;源/ 目的端口對換,以及源/目的IP地址對換的報(bào)文流在同一 VCPU處理,相當(dāng)于 發(fā)送方和接收方在同一條通道上;IP地址變化而端口不變的三元組流分類方 案和五元組流分類方案對報(bào)文的分發(fā)都比較均衡。因此,五元組流分類方案 在真實(shí)的網(wǎng)絡(luò)環(huán)境中更加合理,對處理海量網(wǎng)絡(luò)報(bào)文更具有優(yōu)越性。
本發(fā)明提出的技術(shù)方案綜合三元組流分類方案和五元組流分類方案,改 進(jìn)了報(bào)文分流算法,對非分片報(bào)文采用五元組流分類,對分片報(bào)文動態(tài)切換 到三元組流分類,解決了三元組流分類方案對大流量報(bào)文分發(fā)不平衡的缺陷, 彌補(bǔ)了五元組流分類方案下分片報(bào)文緩存帶來的性能下降的不足,報(bào)文在多 VCPU上分發(fā)更加均衡,加快了報(bào)文處理速度,減小了丟包率;同一組分片 報(bào)文在同一 VCPU上處理,為上層分片報(bào)文的重組提供方便。
本發(fā)明在上述實(shí)施方式中提供了報(bào)文分流處理方法,相應(yīng)地,本發(fā)明還提供了應(yīng)用上述報(bào)文分流處理方法的裝置。
如圖3所示,為本發(fā)明中的一種報(bào)文分流處理裝置結(jié)構(gòu)示意圖,應(yīng)用于
報(bào)文分流處理系統(tǒng)中,該裝置包括
提取模塊310,用于提取報(bào)文的五元組信息。
其中,五元組信息包括源端口 、目的端口 、源IP地址、目的IP地址和協(xié) 議內(nèi)容。
判斷模塊320,用于根據(jù)所述報(bào)文的分片信息,判斷所述報(bào)文是否為分片 報(bào)文。
具體地,報(bào)文的分片信息可以為報(bào)文包含的標(biāo)志字段。本發(fā)明中的報(bào)文 結(jié)構(gòu)包括4位版本字段、4位首部長度字段、8位服務(wù)類型字段、16位數(shù)據(jù)包 總長度字段、16位標(biāo)識字^:、 3位標(biāo)志字段、13位標(biāo)準(zhǔn)偏移字^a、 8位TTL 字段、8位協(xié)議字^殳、16位首部校驗(yàn)和字段、32位源IP地址和32位目的IP 地址,其中,版本字段表示IP協(xié)議的版本,通信雙方使用的IP協(xié)議版本必須 一致,目前IP協(xié)議版本為Ipv4,因此,該字^殳通常為4;首部長度字段用于 表示報(bào)頭區(qū)包含的長度單位的個(gè)數(shù);服務(wù)類型字段用于規(guī)定對本報(bào)文的處理 方式,發(fā)送端可以利用該字段要求中途轉(zhuǎn)發(fā)該報(bào)文的路由器使用低延遲、高 吞吐率或高可靠性的線路發(fā)送;數(shù)據(jù)包總長度字段用于表示該報(bào)文的總長度, 包括報(bào)頭區(qū)和數(shù)據(jù)區(qū)的長度之和;標(biāo)識字段為IP報(bào)文在源主機(jī)的網(wǎng)絡(luò)層產(chǎn)生 時(shí)所被加上的一個(gè)16位的唯一識別碼;標(biāo)志字段為用于描述報(bào)文分片狀態(tài)的 3位標(biāo)志記號;標(biāo)準(zhǔn)偏移字段用于描述分片狀態(tài)下的報(bào)文在原報(bào)文中的起始位 置;TTL字段用于描述報(bào)文在網(wǎng)絡(luò)中的有效存在時(shí)間,字段單位為跳站,一 個(gè)跳站代表IP報(bào)文經(jīng)過的一個(gè)路由器,每經(jīng)過一個(gè)路由器,報(bào)文的TTL值減 1,如果TTL值為O,則該報(bào)文被丟棄,避免死循環(huán)的發(fā)生;協(xié)議字段用于指 明報(bào)文所攜帶的數(shù)據(jù)字段部分到達(dá)目的主機(jī)對應(yīng)的高層協(xié)議;首部校驗(yàn)和字 段用于檢測報(bào)文在傳輸過程中,報(bào)文的頭部信息是否被修改;源IP地址和目 的IP地址在報(bào)文的傳輸過程中始終保持不變。
上述判斷模塊320,具體用于在所述標(biāo)志字段的最后一位為O且標(biāo)準(zhǔn)偏移 字段為O時(shí),判斷所述報(bào)文不是分片報(bào)文;在所述標(biāo)志字段的最后一位為0且標(biāo)準(zhǔn)偏移字段不為O,或所述標(biāo)志字段的最后一位為1時(shí),判斷所述報(bào)文是分 片報(bào)文。
獲取模塊330,與判斷模塊320和提取模塊310連接,用于在判斷模塊 320判斷所述報(bào)文為分片報(bào)文時(shí),根據(jù)提取模塊310提取的所述報(bào)文的源IP 地址、目的IP地址和協(xié)議內(nèi)容進(jìn)行Hash運(yùn)算,獲取所述報(bào)文對應(yīng)的VCPU; 在判斷模塊320判斷所述報(bào)文不是分片報(bào)文時(shí),根據(jù)提取模塊310提取的所 述才艮文的源端口 、目的端口 、源IP地址、目的IP地址和協(xié)議內(nèi)容進(jìn)行Hash 運(yùn)算,獲取所述才艮文對應(yīng)的VCPU。
處理模塊340,與獲取模塊330連接,用于通過獲取模塊330獲取的VCPU 處理所述,艮文。
當(dāng)所述報(bào)文為分片報(bào)文時(shí),上述處理模塊340,具體用于通過同一VCPU 處理同 一分組中的所有分片才艮文。
當(dāng)所述報(bào)文為分片報(bào)文時(shí),上述處理模塊340,還用于根據(jù)所述分片報(bào)文 中的標(biāo)識字段和標(biāo)準(zhǔn)偏移字段,對同 一分組中的分片報(bào)文進(jìn)行組裝。
本發(fā)明提出的技術(shù)方案綜合三元組流分類方案和五元組流分類方案,改進(jìn) 了報(bào)文分流算法,對非分片報(bào)文采用五元組流分類,對分片報(bào)文動態(tài)切換到三 元組流分類,解決了三元組流分類方案對大流量報(bào)文分發(fā)不平衡的缺陷,彌補(bǔ) 了五元組流分類方案下分片報(bào)文緩存帶來的性能下降的不足,報(bào)文在多VCPU 上分發(fā)更加均衡,加快了報(bào)文處理速度,減小了丟包率;同一組分片報(bào)文在同 一 VCPU上處理,為上層分片才艮文的重組提供方<吏。
通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)
明可借助軟件加必需的通用硬件平臺的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件, 但很多情況下前者是更佳的實(shí)施方式。基于這樣的理解,本發(fā)明的技術(shù)方案 本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來, 該計(jì)算機(jī)軟件產(chǎn)品存儲在一個(gè)存儲介質(zhì)中,包括若干指令用以使得一臺終端 設(shè)備(可以是手機(jī),個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各 個(gè)實(shí)施例所述的方法。以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普 通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤 飾,這些改進(jìn)和潤飾也應(yīng)浮見本發(fā)明的保護(hù)范圍。
權(quán)利要求
1、一種報(bào)文分流處理方法,應(yīng)用于包括多核網(wǎng)絡(luò)設(shè)備的報(bào)文分流處理系統(tǒng)中,其特征在于,所述方法包括以下步驟所述多核網(wǎng)絡(luò)設(shè)備提取報(bào)文的五元組信息,所述五元組信息包括源端口、目的端口、源因特網(wǎng)協(xié)議IP地址、目的IP地址和協(xié)議內(nèi)容;所述多核網(wǎng)絡(luò)設(shè)備根據(jù)所述報(bào)文的分片信息,判斷所述報(bào)文是否為分片報(bào)文,如果所述報(bào)文為分片報(bào)文,則根據(jù)所述報(bào)文的源IP地址、目的IP地址和協(xié)議內(nèi)容進(jìn)行哈希Hash運(yùn)算,獲取所述報(bào)文對應(yīng)的虛擬中央處理單元VCPU;如果所述報(bào)文不是分片報(bào)文,則根據(jù)所述報(bào)文的源端口、目的端口、源IP地址、目的IP地址和協(xié)議內(nèi)容進(jìn)行Hash運(yùn)算,獲取所述報(bào)文對應(yīng)的VCPU;所述多核網(wǎng)絡(luò)設(shè)備通過所述獲取的VCPU處理所述報(bào)文。
2、 如權(quán)利要求l所述的方法,其特征在于,所述報(bào)文的分片信息為所述報(bào) 文包含的標(biāo)志字段和標(biāo)準(zhǔn)偏移字段。
3、 如權(quán)利要求2所述的方法,其特征在于,所述多核網(wǎng)絡(luò)設(shè)備根據(jù)所述報(bào) 文的分片信息,判斷所述報(bào)文是否為分片報(bào)文,具體為如果所述標(biāo)志字段的最后一位為0且所述標(biāo)準(zhǔn)偏移字段為0,則所述多核網(wǎng) 絡(luò)設(shè)備判斷所述凈艮文不是分片報(bào)文;如果所述標(biāo)志字段的最后一位為0且所述 標(biāo)準(zhǔn)偏移字段不為O,或所述標(biāo)志字段的最后一位為1,則所述多核網(wǎng)絡(luò)設(shè)備判 斷所述報(bào)文是分片報(bào)文。
4、 如權(quán)利要求l所述的方法,其特征在于,當(dāng)所述報(bào)文為分片報(bào)文時(shí),所 述多核網(wǎng)絡(luò)設(shè)備通過所述獲取的VCPU處理所述報(bào)文,具體為所述多核網(wǎng)絡(luò)設(shè)備通過同一 VCPU處理同 一分組中的所有分片報(bào)文。
5、 如權(quán)利要求l所述的方法,其特征在于,當(dāng)所述報(bào)文為分片報(bào)文時(shí), 所述多核網(wǎng)絡(luò)設(shè)備通過所述獲取的VCPU處理所述報(bào)文之后,還包括所述多核網(wǎng)絡(luò)設(shè)備根據(jù)所述分片報(bào)文中的標(biāo)識字段和標(biāo)準(zhǔn)偏移字段,對 同 一分組中的分片報(bào)文進(jìn)行組裝。
6、 一種報(bào)文分流處理裝置,應(yīng)用于報(bào)文分流處理系統(tǒng)中,其特征在于,所述裝置包括提取才莫塊,用于提取報(bào)文的五元組信息,所述五元組信息包括源端口、目的端口、源因特網(wǎng)協(xié)議IP地址、目的IP地址和協(xié)議內(nèi)容;判斷模塊,用于根據(jù)所述報(bào)文的分片信息,判斷所述報(bào)文是否為分片報(bào)文;獲取模塊,與所述判斷模塊和所述提取模塊連接,用于在所述判斷模塊 判斷所述報(bào)文為分片報(bào)文時(shí),根據(jù)所述提取模塊提取的所述報(bào)文的源ip地址、目的IP地址和協(xié)議內(nèi)容進(jìn)行Hash運(yùn)算,獲取所述才艮文對應(yīng)的VCPU;在所述 判斷模塊判斷所述報(bào)文不是分片報(bào)文時(shí),根據(jù)所述提取模塊提取的所述報(bào)文 的源端口、目的端口、源IP地址、目的IP地址和協(xié)議內(nèi)容進(jìn)行Hash運(yùn)算, 獲取所述報(bào)文對應(yīng)的VCPU;處理模塊,與所述獲取模塊連接,用于通過所述獲取模塊獲取的vcpu 處理所述報(bào)文。
7、 如權(quán)利要求6所述的裝置,其特征在于,所述報(bào)文的分片信息為所述 報(bào)文包含的標(biāo)志字段和標(biāo)準(zhǔn)偏移字段。
8、 如權(quán)利要求7所述的裝置,其特征在于,所述判斷模塊,具體用于在所述標(biāo)志字段的最后一位為0且標(biāo)準(zhǔn)偏移字段 為0時(shí),判斷所述報(bào)文不是分片報(bào)文;在所述標(biāo)志字段的最后一位為O且標(biāo)準(zhǔn) 偏移字段不為O,或所述標(biāo)志字段的最后一位為l時(shí),判斷所述報(bào)文是分片報(bào) 文。
9、 如權(quán)利要求6所述的裝置,其特征在于,當(dāng)所述報(bào)文為分片報(bào)文時(shí), 所述處理模塊,具體用于通過同一 VCPU處理同一分組中的所有分片報(bào)文。
10、 如權(quán)利要求6所述的裝置,其特征在于,當(dāng)所述報(bào)文為分片報(bào)文時(shí), 所述處理模塊,還用于根據(jù)所述分片報(bào)文中的標(biāo)識字段和標(biāo)準(zhǔn)偏移字段,對同 一分組中的分片報(bào)文進(jìn)行組裝。
全文摘要
本發(fā)明公開了一種報(bào)文分流處理方法,應(yīng)用于包括多核網(wǎng)絡(luò)設(shè)備的報(bào)文分流處理系統(tǒng)中,所述方法包括以下步驟所述多核網(wǎng)絡(luò)設(shè)備提取報(bào)文的五元組信息;所述多核網(wǎng)絡(luò)設(shè)備根據(jù)所述報(bào)文的分片信息,判斷所述報(bào)文是否為分片報(bào)文,如果所述報(bào)文為分片報(bào)文,則根據(jù)所述報(bào)文的源IP地址、目的IP地址和協(xié)議內(nèi)容進(jìn)行哈希Hash運(yùn)算,獲取所述報(bào)文對應(yīng)的虛擬中央處理單元VCPU;如果所述報(bào)文不是分片報(bào)文,則根據(jù)所述報(bào)文的源端口、目的端口、源IP地址、目的IP地址和協(xié)議內(nèi)容進(jìn)行Hash運(yùn)算,獲取所述報(bào)文對應(yīng)的VCPU;所述多核網(wǎng)絡(luò)設(shè)備通過所述獲取的VCPU處理所述報(bào)文。本發(fā)明提高了多核網(wǎng)絡(luò)設(shè)備處理報(bào)文的速度和效率。本發(fā)明同樣公開了一種應(yīng)用上述方法的裝置。
文檔編號H04L12/56GK101656677SQ20091017672
公開日2010年2月24日 申請日期2009年9月18日 優(yōu)先權(quán)日2009年9月18日
發(fā)明者燕 葉, 濤 王 申請人:杭州迪普科技有限公司