本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,尤其涉及一種報(bào)文處理方法、裝置和設(shè)備。
背景技術(shù):TOE(TCPOffloadEngine,TCP卸載引擎)指由網(wǎng)卡芯片實(shí)現(xiàn)對(duì)TCP報(bào)文的協(xié)議處理,主機(jī)驅(qū)動(dòng)接收和發(fā)送的僅是TCP報(bào)文的數(shù)據(jù)段,從而將主機(jī)CPU從協(xié)議處理中釋放出來(lái),更好地處理其他業(yè)務(wù),最終實(shí)現(xiàn)加速網(wǎng)絡(luò)響應(yīng)的同時(shí)提高服務(wù)器性能。MTU(MaximumTransmissionUnit,最大傳輸單元)是指一種通信協(xié)議的某一層上面所能通過(guò)的最大數(shù)據(jù)包大小(以字節(jié)為單位),在OSI模型中指鏈路層的最大數(shù)據(jù)幀長(zhǎng)度(對(duì)于IP報(bào)文,指包含IP頭的長(zhǎng)度,一般為1500);PMTU(PathMTU,路徑最大傳輸單元),指從源地址到目的地址,所有IP節(jié)點(diǎn)MTU中的最小值,使得長(zhǎng)度在該值內(nèi)的報(bào)文經(jīng)過(guò)該路徑時(shí)都不需要分片,長(zhǎng)度超出該值的報(bào)文需要被分片才能通過(guò)此路徑傳輸;PMTUDP(PathMtuDiscoveryProtocol協(xié)議,路徑最大傳輸單元發(fā)現(xiàn)協(xié)議),是一種動(dòng)態(tài)發(fā)現(xiàn)任意路徑PMTU的技術(shù)。通過(guò)ICMP(InternetControlMessageProtocol,互聯(lián)網(wǎng)控制報(bào)文協(xié)議)報(bào)文在源/目的節(jié)點(diǎn)之間協(xié)商PMTU值,最終源節(jié)點(diǎn)使用該值作為發(fā)送報(bào)文的MTU(對(duì)于IP報(bào)文還需要將頭部的DF(DeclineFragment,禁止分片)置位,以禁止路由器對(duì)報(bào)文進(jìn)行分片);MSS(MaximumSegmentSize,最大分段大小)是TCP協(xié)議的概念,表示該條連接每個(gè)數(shù)據(jù)包的最大長(zhǎng)度,該值通過(guò)PMTUD協(xié)議協(xié)商的PMTU計(jì)算獲得:MSS=PMTU-40,其中40為20字節(jié)的IP頭長(zhǎng)度加上20字節(jié)的TCP頭長(zhǎng)度。目前現(xiàn)有技術(shù)中常采用以下方法處理報(bào)文:1、一般的網(wǎng)卡在收發(fā)報(bào)文時(shí),協(xié)議棧會(huì)根據(jù)所配置的網(wǎng)卡的MTU值支持報(bào)文分片和報(bào)文重組。2、支持報(bào)文分片的TOE網(wǎng)卡在接收到分片報(bào)文后,不對(duì)接收到的分片報(bào)文進(jìn)行TOE卸載,而是直接交給主機(jī)協(xié)議棧進(jìn)行后續(xù)處理。3、不支持報(bào)文分片的TOE網(wǎng)卡在接收到分片報(bào)文后將分片報(bào)文直接丟棄;在建立連接時(shí),先根據(jù)PMTUD協(xié)議協(xié)商PMTU值,取整個(gè)鏈路中所有設(shè)備端口MTU的最小值作為該連接的PMTU值;在發(fā)IP報(bào)文時(shí)在IP頭部置DF位,禁止中間路由器對(duì)其分片;通過(guò)以上方式TOE網(wǎng)卡收到對(duì)端發(fā)送的報(bào)文都是非分片報(bào)文,而該TOE網(wǎng)卡在發(fā)送報(bào)文時(shí),TOE驅(qū)動(dòng)將該連接的PMTU減去40得到MSS值,然后將該MSS值配置給TOE網(wǎng)卡,TOE網(wǎng)卡根據(jù)MSS構(gòu)造TCP報(bào)文。在實(shí)現(xiàn)上述分片報(bào)文的處理過(guò)程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問(wèn)題:一般的網(wǎng)卡將TCP卸載交由協(xié)議棧處理,因此會(huì)占用較大的主機(jī)CPU利用率;支持報(bào)文分片的TOE網(wǎng)卡由于將分片報(bào)文不走TOE通道,從而未實(shí)現(xiàn)硬件TCP加速功能,并且當(dāng)一個(gè)TCP連接的部分報(bào)文是分片報(bào)文時(shí),報(bào)文分別走TOE卸載通道和普通網(wǎng)卡通道,該連接將出現(xiàn)狀態(tài)異常;在TOE網(wǎng)卡不支持報(bào)文分片的情況下,為了防范DDOS(DistributedDenialofService,分布式拒絕服務(wù))攻擊等原因,較多網(wǎng)絡(luò)不再提供ICMP傳輸,使得PMTUD協(xié)議無(wú)法工作,并且當(dāng)對(duì)端發(fā)送較大報(bào)文,且DF未置位時(shí),最終收到路由器分片后的報(bào)文又被丟棄,影響網(wǎng)絡(luò)性能。
技術(shù)實(shí)現(xiàn)要素:本發(fā)明的實(shí)施例提供一種報(bào)文處理方法、裝置和設(shè)備,能夠使TOE網(wǎng)卡支持對(duì)IP分片報(bào)文的處理并實(shí)現(xiàn)對(duì)分片報(bào)文的硬件TOE卸載,提高了網(wǎng)絡(luò)的響應(yīng)性能和傳輸性能。為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案:一方面,提供一種報(bào)文處理方法,所述方法包括:接收第一報(bào)文;當(dāng)所述第一報(bào)文為分片報(bào)文時(shí),則將所述第一報(bào)文搬移到主機(jī)共享內(nèi)存中;在所述主機(jī)共享內(nèi)存中讀取所述第一報(bào)文并進(jìn)行重組生成第二報(bào)文;將所述第二報(bào)文搬移到網(wǎng)卡內(nèi)存中;將所述網(wǎng)卡內(nèi)存中的所述第二報(bào)文進(jìn)行傳輸控制協(xié)議TCP卸載引擎卸載。在第一種可能的實(shí)現(xiàn)方式中,結(jié)合第一方面,所述接收第一報(bào)文后,所述方法還包括:判斷所述第一報(bào)文是否為分片報(bào)文,若所述第一報(bào)文為分片報(bào)文,則將所述第一報(bào)文搬移到主機(jī)共享內(nèi)存中;若所述第一報(bào)文不是分片報(bào)文,則將所述第一報(bào)文直接進(jìn)行傳輸控制協(xié)議TCP卸載引擎卸載。在第二種可能的實(shí)現(xiàn)方式中,結(jié)合第一方面的第一中可能的實(shí)現(xiàn)方式,所述將所述第一報(bào)文搬移到主機(jī)共享內(nèi)存中包括:通過(guò)直接內(nèi)存存取DMA引擎將所述第一報(bào)文搬移到所述主機(jī)共享內(nèi)存中。在第三種可能的實(shí)現(xiàn)方式中,結(jié)合第一方面,所述在所述主機(jī)共享內(nèi)存中將所述第一報(bào)文進(jìn)行重組生成第二報(bào)文包括:傳輸控制協(xié)議TCP卸載引擎驅(qū)動(dòng)通過(guò)軟件方式將所述第一報(bào)文進(jìn)行重組。在第四種可能的實(shí)現(xiàn)方式中,結(jié)合第一方面,將所述網(wǎng)卡內(nèi)存中的所述第二報(bào)文進(jìn)行傳輸控制協(xié)議TCP卸載引擎卸載之后,所述方法還包括:將所述第二報(bào)文進(jìn)行傳輸控制協(xié)議TCP卸載引擎卸載之后的數(shù)據(jù)通過(guò)所述直接內(nèi)存存取DMA引擎搬移到所述主機(jī)共享內(nèi)存中;主機(jī)驅(qū)動(dòng)將所述數(shù)據(jù)提交。第二方面,提供一種報(bào)文處理裝置,所述裝置包括:接收單元,用于接收第一報(bào)文;第一搬移單元,用于在所述接收單元接收到所述第一報(bào)文后,若所述第一報(bào)文為分片報(bào)文,則將所述第一報(bào)文搬移到主機(jī)共享內(nèi)存中;重組單元,用于在所述第一搬移單元將所述第一報(bào)文搬移到所述主機(jī)內(nèi)存中后,在所述主機(jī)共享內(nèi)存中將所述第一報(bào)文進(jìn)行重組生成第二報(bào)文;反注入單元,用于所述重組單元生成所述第二報(bào)文后,將所述第二報(bào)文搬移到網(wǎng)卡內(nèi)存中;卸載單元,用于在所述反注入單元將所述第二報(bào)文搬移到網(wǎng)卡內(nèi)存后,將所述網(wǎng)卡內(nèi)存中的所述第二報(bào)文進(jìn)行傳輸控制協(xié)議TCP卸載引擎卸載。在第一種可能的實(shí)現(xiàn)方式中,結(jié)合第二方面,在所述接收單元接收到所述第一報(bào)文后,所述裝置還包括:判斷單元,用于在所述接收單元接收到所述第一報(bào)文后,判斷所述第一報(bào)文是否為分片報(bào)文,若所述第一報(bào)文為分片報(bào)文,則將所述第一報(bào)文搬移到主機(jī)共享內(nèi)存中;若所述第一報(bào)文不是分片報(bào)文,則將所述第一報(bào)文直接進(jìn)行傳輸控制協(xié)議TCP卸載引擎卸載。在第二種可能的實(shí)現(xiàn)方式中,結(jié)合第二方面的第一種可能的實(shí)現(xiàn)方式,所述第一搬移單元具體用于:通過(guò)直接內(nèi)存存取DMA引擎將所述第一報(bào)文搬移到主機(jī)共享內(nèi)存中。在第三種可能的實(shí)現(xiàn)方式中,結(jié)合第二方面,所述重組單元具體用于:通過(guò)傳輸控制協(xié)議TCP卸載引擎驅(qū)動(dòng)通過(guò)軟件方式將所述第一報(bào)文進(jìn)行重組。在第四種可能的實(shí)現(xiàn)方式中,結(jié)合第二方面,將所述網(wǎng)卡內(nèi)存中的所述第二報(bào)文進(jìn)行傳輸控制協(xié)議TCP卸載引擎卸載之后,所述裝置還包括:第二搬移單元,用于將所述第二報(bào)文進(jìn)行傳輸控制協(xié)議TCP卸載引擎卸載之后的數(shù)據(jù)通過(guò)所述直接內(nèi)存存取DMA引擎搬移到所述主機(jī)共享內(nèi)存中;提交單元,用于在所述第二搬移單元將所述數(shù)據(jù)搬移到所述主機(jī)共享內(nèi)存中后,通過(guò)主機(jī)驅(qū)動(dòng)將所述數(shù)據(jù)提交。本發(fā)明實(shí)施例提供一種報(bào)文處理方法、裝置和設(shè)備,首先TCP卸載引擎TOE網(wǎng)卡接收第一報(bào)文,若所述第一報(bào)文為分片報(bào)文,則將所述第一報(bào)文搬移到主機(jī)共享內(nèi)存中,再由TOE驅(qū)動(dòng)將所述第一報(bào)文進(jìn)行重組后生成第二報(bào)文,將所述第二報(bào)文搬移到TOE網(wǎng)卡內(nèi)存中,而后將所述第二報(bào)文進(jìn)行TOE卸載,最后將經(jīng)過(guò)TOE卸載后的數(shù)據(jù)交由系統(tǒng)上層單元處理,能夠使TOE網(wǎng)卡支持對(duì)IP分片報(bào)文的處理并實(shí)現(xiàn)對(duì)分片報(bào)文的硬件TOE卸載,提高了網(wǎng)絡(luò)的響應(yīng)性能和傳輸性能。附圖說(shuō)明為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實(shí)施例提供的一種報(bào)文處理方法流程示意圖一;圖2為本發(fā)明實(shí)施例提供的一種報(bào)文處理方法流程示意圖二;圖3為本發(fā)明實(shí)施例提供的一種報(bào)文首部結(jié)構(gòu)示意圖;圖4為本發(fā)明實(shí)施例提供的一種報(bào)文處理方法流程示意圖三;圖5為本發(fā)明實(shí)施例提供的一種報(bào)文處理裝置結(jié)構(gòu)示意圖一;圖6為本發(fā)明實(shí)施例提供的一種報(bào)文處理裝置結(jié)構(gòu)示意圖二;圖7為本發(fā)明實(shí)施例提供的一種報(bào)文處理裝置結(jié)構(gòu)示意圖三;圖8為本發(fā)明實(shí)施例提供的一種報(bào)文處理設(shè)備結(jié)構(gòu)示意圖。具體實(shí)施方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。本發(fā)明實(shí)施例提供一種報(bào)文處理方法,如圖1所示,所述方法包括:S101、接收第一報(bào)文。S102、當(dāng)所述第一報(bào)文為分片報(bào)文時(shí),則將所述第一報(bào)文搬移到主機(jī)共享內(nèi)存中。S103、在所述主機(jī)共享內(nèi)存中讀取所述第一報(bào)文并進(jìn)行重組生成第二報(bào)文。S104、將所述第二報(bào)文搬移到網(wǎng)卡內(nèi)存中。S105、將所述網(wǎng)卡內(nèi)存中的所述第二報(bào)文進(jìn)行傳輸控制協(xié)議TCP卸載引擎卸載。本發(fā)明實(shí)施例提供一種報(bào)文處理方法,首先TCP卸載引擎TOE網(wǎng)卡接收第一報(bào)文,若所述第一報(bào)文為分片報(bào)文,則將所述第一報(bào)文搬移到主機(jī)共享內(nèi)存中,再由TOE驅(qū)動(dòng)將所述第一報(bào)文進(jìn)行重組后生成第二報(bào)文,將所述第二報(bào)文搬移到TOE網(wǎng)卡內(nèi)存中,而后將所述第二報(bào)文進(jìn)行TOE卸載,最后將經(jīng)過(guò)TOE卸載后的數(shù)據(jù)交由系統(tǒng)上層單元處理,能夠使TOE網(wǎng)卡支持對(duì)IP分片報(bào)文的處理并實(shí)現(xiàn)對(duì)分片報(bào)文的硬件TOE卸載,提高了網(wǎng)絡(luò)的響應(yīng)性能和傳輸性能。為了使本領(lǐng)域技術(shù)人員能夠更清楚地理解本發(fā)明實(shí)施例提供的技術(shù)方案,下面通過(guò)具體的實(shí)施例,對(duì)本發(fā)明實(shí)施例提供一種報(bào)文處理方法進(jìn)行詳細(xì)說(shuō)明。本發(fā)明提供一種報(bào)文處理方法,如圖2所示,所述方法包括:S201、接收第一報(bào)文。S202、判斷所述第一報(bào)文是否為分片報(bào)文。示例性的,IP報(bào)文首部的第6和第7字節(jié)(從第0個(gè)字節(jié)算起)內(nèi)容如圖3所示,當(dāng)接收到IP報(bào)文后,判斷該IP報(bào)文首部的MF位和FragmentOffset段是否同時(shí)為0,其中MF(MoreFragment,更多分片)位表示該分片報(bào)文是否不為分片報(bào)文或該分片報(bào)文是否為該報(bào)文的最后一個(gè)分片,F(xiàn)ragmentOffset段表示為分片報(bào)文的數(shù)據(jù)在完整報(bào)文數(shù)據(jù)中的偏移。若所述MF位和FragmentOffset段同時(shí)為0,則表示該IP報(bào)文為非分片報(bào)文,否則該IP報(bào)文被判斷為分片報(bào)文。S203、當(dāng)所述第一報(bào)文為分片報(bào)文時(shí),則將所述第一報(bào)文搬移到主機(jī)共享內(nèi)存中。具體的,可通過(guò)以下方法實(shí)現(xiàn):當(dāng)判斷出接收到的第一報(bào)文為分片報(bào)文后,TOE網(wǎng)卡在主機(jī)內(nèi)存中申請(qǐng)一塊內(nèi)存作為主機(jī)和網(wǎng)卡的共享內(nèi)存,并將接收到的分片報(bào)文存儲(chǔ)到該共享內(nèi)存中,將分片報(bào)文搬移到共享內(nèi)存是通過(guò)直接內(nèi)存存取引擎DMA(DirectMemoryAccess)引擎來(lái)完成的。S204、在所述主機(jī)共享內(nèi)存中讀取所述第一報(bào)文并進(jìn)行重組生成第二報(bào)文。示例性的,當(dāng)TOE網(wǎng)卡接收到分片的IP報(bào)文后,TOE網(wǎng)卡中的IP重組模塊根據(jù)報(bào)文中的標(biāo)識(shí)、目的地址、源地址和協(xié)議作為關(guān)鍵字計(jì)算散列值Hash值,其中,Hash值用來(lái)定位某個(gè)報(bào)文;當(dāng)接收到的某個(gè)報(bào)文分片無(wú)法定位其對(duì)應(yīng)的Hash節(jié)點(diǎn),則表示該報(bào)文分片屬于一個(gè)新的報(bào)文,則給該分片分配新的Hash節(jié)點(diǎn),并啟動(dòng)定時(shí)器,以避免長(zhǎng)時(shí)間無(wú)法收到該新的報(bào)文的其他分片;為了減少數(shù)據(jù)拷貝,重組報(bào)文的過(guò)程既是將各個(gè)報(bào)文分片組成一個(gè)聚合鏈的過(guò)程。S205、將所述第二報(bào)文搬移到網(wǎng)卡內(nèi)存中。具體的,可通過(guò)以下方法實(shí)現(xiàn):為了減少數(shù)據(jù)拷貝,當(dāng)接收到了一個(gè)分片報(bào)文的所有分片并將該報(bào)文的所有分片依次組成一個(gè)完整的聚合鏈,即將分片報(bào)文重組完成后,將重組好的報(bào)文存儲(chǔ)于所述主機(jī)共享內(nèi)存中,并將該聚合鏈信息發(fā)送給TOE網(wǎng)卡,TOE網(wǎng)卡獲得并解析該聚合鏈信息后,啟動(dòng)DMA引擎,將重組好的報(bào)文從主機(jī)共享內(nèi)存中搬移到TOE網(wǎng)卡內(nèi)存中。S206、將所述網(wǎng)卡內(nèi)存中的所述第二報(bào)文進(jìn)行傳輸控制協(xié)議TCP卸載引擎卸載。具體的,可通過(guò)以下方法實(shí)現(xiàn):TOE驅(qū)動(dòng)作為一個(gè)內(nèi)核模塊嵌入linux內(nèi)核中,替換TCPSocket層的接口,對(duì)TCP協(xié)議的連接建立過(guò)程進(jìn)行攔截,并將TCP連接的信息截獲,下發(fā)到網(wǎng)卡上,實(shí)現(xiàn)了將TCP協(xié)議的處理轉(zhuǎn)移到網(wǎng)卡上。后者將卸載好的TCP數(shù)據(jù)直接通過(guò)DMA引擎搬移到主機(jī)內(nèi)存,并通知TOE驅(qū)動(dòng)將數(shù)據(jù)傳給傳輸層?;诓襟ES201~S206所述的方法,該支持分片報(bào)文的TOE卸載過(guò)程示意圖如圖4所示。本發(fā)明實(shí)施例提供一種報(bào)文處理方法,首先TCP卸載引擎TOE網(wǎng)卡接收第一報(bào)文,若所述第一報(bào)文為分片報(bào)文,則將所述第一報(bào)文搬移到主機(jī)共享內(nèi)存中,再由TOE驅(qū)動(dòng)將所述第一報(bào)文進(jìn)行重組后生成第二報(bào)文,將所述第二報(bào)文搬移到TOE網(wǎng)卡內(nèi)存中,而后將所述第二報(bào)文進(jìn)行TOE卸載,最后將經(jīng)過(guò)TOE卸載后的數(shù)據(jù)交由系統(tǒng)上層單元處理,能夠使TOE網(wǎng)卡支持對(duì)IP分片報(bào)文的處理并實(shí)現(xiàn)對(duì)分片報(bào)文的硬件TOE卸載,提高了網(wǎng)絡(luò)的響應(yīng)性能和傳輸性能。本發(fā)明實(shí)施例提供一種報(bào)文處理裝置01,如圖5所示,所述裝置01包括:接收單元011,用于接收第一報(bào)文;第一搬移單元012,用于在所述接收單元011接收到所述第一報(bào)文后,若所述第一報(bào)文為分片報(bào)文,則將所述第一報(bào)文搬移到主機(jī)共享內(nèi)存中;重組單元013,用于在所述第一搬移單元012將所述第一報(bào)文搬移到所述主機(jī)內(nèi)存中后,在所述主機(jī)共享內(nèi)存中將所述第一報(bào)文進(jìn)行重組生成第二報(bào)文;反注入單元014,用于所述重組單元013生成所述第二報(bào)文后,將所述第二報(bào)文搬移到網(wǎng)卡內(nèi)存中;卸載單元015,用于在所述反注入單元014將所述第二報(bào)文搬移到網(wǎng)卡內(nèi)存后,將所述網(wǎng)卡內(nèi)存中的所述第二報(bào)文進(jìn)行傳輸控制協(xié)議TCP卸載引擎卸載。進(jìn)一步的,如圖6所示,在所述接收單元接收到所述第一報(bào)文后,所述裝置01還包括:判斷單元016,用于在所述接收單元011接收到所述第一報(bào)文后,判斷所述第一報(bào)文是否為分片報(bào)文,若所述第一報(bào)文為分片報(bào)文,則將所述第一報(bào)文搬移到主機(jī)共享內(nèi)存中;若所述第一報(bào)文不是分片報(bào)文,則將所述第一報(bào)文直接進(jìn)行傳輸控制協(xié)議TCP卸載引擎卸載。再進(jìn)一步的,所述第一搬移單元012具體用于:通過(guò)直接內(nèi)存存取DMA引擎將所述第一報(bào)文搬移到主機(jī)共享內(nèi)存中。再進(jìn)一步的,所述重組單元013具體用于:傳輸控制協(xié)議TCP卸載引擎驅(qū)動(dòng)通過(guò)軟件方式將所述第一報(bào)文進(jìn)行重組。更進(jìn)一步的,如圖7所示,將所述網(wǎng)卡內(nèi)存中的所述第二報(bào)文進(jìn)行傳輸控制協(xié)議TCP卸載引擎卸載之后,所述裝置01還包括:第二搬移單元017,用于將所述第二報(bào)文進(jìn)行傳輸控制協(xié)議TCP卸載引擎卸載之后的數(shù)據(jù)通過(guò)所述直接內(nèi)存存取DMA引擎搬移到所述主機(jī)共享內(nèi)存中;提交單元018,用于在所述第二搬移單元將所述數(shù)據(jù)搬移到所述主機(jī)共享內(nèi)存中后,通過(guò)主機(jī)驅(qū)動(dòng)將所述數(shù)據(jù)提交。本發(fā)明實(shí)施例提供一種報(bào)文處理裝置,首先TCP卸載引擎TOE網(wǎng)卡接收第一報(bào)文,若所述第一報(bào)文為分片報(bào)文,則將所述第一報(bào)文搬移到主機(jī)共享內(nèi)存中,再由TOE驅(qū)動(dòng)將所述第一報(bào)文進(jìn)行重組后生成第二報(bào)文,將所述第二報(bào)文搬移到TOE網(wǎng)卡內(nèi)存中,而后將所述第二報(bào)文進(jìn)行TOE卸載,最后將經(jīng)過(guò)TOE卸載后的數(shù)據(jù)交由系統(tǒng)上層單元處理,能夠使TOE網(wǎng)卡支持對(duì)IP分片報(bào)文的處理并實(shí)現(xiàn)對(duì)分片報(bào)文的硬件TOE卸載,提高了網(wǎng)絡(luò)的響應(yīng)性能和傳輸性能。本發(fā)明實(shí)施例提供一種報(bào)文處理設(shè)備02,如圖8所示,所述設(shè)備02包括總線021以及連接到總線021上的網(wǎng)卡022、存儲(chǔ)器023和處理器024,所述存儲(chǔ)器023用于存儲(chǔ)指令0231和網(wǎng)卡驅(qū)動(dòng)0232,所述處理器024用于執(zhí)行該指令用于:通過(guò)網(wǎng)卡022接收第一報(bào)文;當(dāng)所述第一報(bào)文為分片報(bào)文時(shí),處理器024執(zhí)行該指令將所述第一報(bào)文搬移到主機(jī)共享內(nèi)存中;處理器024執(zhí)行該指令0231調(diào)用網(wǎng)卡驅(qū)動(dòng)0232,在所述主機(jī)共享內(nèi)存中讀取所述第一報(bào)文并進(jìn)行重組生成第二報(bào)文;將所述第二報(bào)文搬移到網(wǎng)卡內(nèi)存中;將所述網(wǎng)卡內(nèi)存中的所述第二報(bào)文進(jìn)行傳輸控制協(xié)議TCP卸載引擎卸載。進(jìn)一步的,所述接收第一報(bào)文后,所述處理器024執(zhí)行該指令還用于:通過(guò)網(wǎng)卡022判斷所述第一報(bào)文是否為分片報(bào)文,若所述第一報(bào)文為分片報(bào)文,則將所述第一報(bào)文搬移到主機(jī)共享內(nèi)存中;若所述第一報(bào)文不是分片報(bào)文,則將所述第一報(bào)文直接進(jìn)行傳輸控制協(xié)議TCP卸載引擎卸載。再進(jìn)一步的,處理器024執(zhí)行該指令具體用于:通過(guò)直接內(nèi)存存取DMA引擎將所述第一報(bào)文搬移到所述主機(jī)共享內(nèi)存中。再進(jìn)一步的,處理器024執(zhí)行該指令具體用于:通過(guò)傳輸控制協(xié)議TCP卸載引擎驅(qū)動(dòng)通過(guò)軟件方式將所述第一報(bào)文進(jìn)行重組。更進(jìn)一步的,處理器024執(zhí)行該指令還用于:將所述第二報(bào)文進(jìn)行傳輸控制協(xié)議TCP卸載引擎卸載之后的數(shù)據(jù)通過(guò)所述直接內(nèi)存存取DMA引擎搬移到所述主機(jī)共享內(nèi)存中;通過(guò)網(wǎng)卡驅(qū)動(dòng)0232將所述數(shù)據(jù)提交。本發(fā)明實(shí)施例提供一種報(bào)文處理設(shè)備,首先TCP卸載引擎TOE網(wǎng)卡接收第一報(bào)文,若所述第一報(bào)文為分片報(bào)文,則將所述第一報(bào)文搬移到主機(jī)共享內(nèi)存中,再由TOE驅(qū)動(dòng)將所述第一報(bào)文進(jìn)行重組后生成第二報(bào)文,將所述第二報(bào)文搬移到TOE網(wǎng)卡內(nèi)存中,而后將所述第二報(bào)文進(jìn)行TOE卸載,最后將經(jīng)過(guò)TOE卸載后的數(shù)據(jù)交由系統(tǒng)上層單元處理,能夠使TOE網(wǎng)卡支持對(duì)IP分片報(bào)文的處理并實(shí)現(xiàn)對(duì)分片報(bào)文的硬件TOE卸載,提高了網(wǎng)絡(luò)的響應(yīng)性能和傳輸性能。在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng),設(shè)備和方法,可以通過(guò)其它的方式實(shí)現(xiàn)。例如,以上所描述的設(shè)備實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另外,在本發(fā)明各個(gè)實(shí)施例中的設(shè)備和系統(tǒng)中,各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理包括,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。且上述的各單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用硬件加軟件功能單元的形式實(shí)現(xiàn)。實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過(guò)程序指令相關(guān)的硬件來(lái)完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:U盤、移動(dòng)硬盤、只讀存儲(chǔ)器(ReadOnlyMemory,簡(jiǎn)稱ROM)、隨機(jī)存取存儲(chǔ)器(RandomAccessMemory,簡(jiǎn)稱RAM)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。以上所述,僅為本發(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)。