一種處理報(bào)文的方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,特別涉及一種處理報(bào)文的方法及系統(tǒng)。
【背景技術(shù)】
[0002]網(wǎng)卡是配置在主機(jī)中的一種物理硬件,網(wǎng)卡接收其他主機(jī)發(fā)送的報(bào)文并上送給主機(jī),主機(jī)對(duì)該報(bào)文進(jìn)行處理。為了提高主機(jī)的可靠性,可以配置兩個(gè)或兩個(gè)以上的網(wǎng)卡在主機(jī)中,這樣,即使一個(gè)網(wǎng)卡發(fā)生故障,也可以由剩余網(wǎng)卡中的一個(gè)網(wǎng)卡接替已發(fā)生故障的網(wǎng)卡,不會(huì)影響主機(jī)對(duì)其他主機(jī)發(fā)送的報(bào)文進(jìn)行處理。
[0003]隨著主機(jī)需要處理的報(bào)文越來(lái)越多,目前出現(xiàn)了具有卸載功能的網(wǎng)卡,對(duì)報(bào)文實(shí)現(xiàn)硬件卸載。如果具有卸載功能的網(wǎng)卡配置為主機(jī)所屬的網(wǎng)卡,則原本需要主機(jī)處理的報(bào)文中的部分報(bào)文可以由具有卸載功能的網(wǎng)卡進(jìn)行處理,因此,主機(jī)的工作量減少,性能提尚ο
[0004]為了主機(jī)的可靠性,可以將至少兩個(gè)具有卸載功能的網(wǎng)卡配置為主機(jī)所屬的網(wǎng)卡,具有卸載功能的網(wǎng)卡需要依據(jù)最新的上下文,對(duì)接收到會(huì)話的報(bào)文進(jìn)行處理。然而,最新的上下文通常存儲(chǔ)在對(duì)該會(huì)話的報(bào)文進(jìn)行處理的網(wǎng)卡中,其他網(wǎng)卡由于沒(méi)有最新的上下文,所以無(wú)法對(duì)接收到的所述會(huì)話的報(bào)文進(jìn)行處理。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例提供一種處理報(bào)文的方法及系統(tǒng),用于解決現(xiàn)有技術(shù)中存在的配置為主機(jī)所屬的網(wǎng)卡中具有卸載功能的第一網(wǎng)卡發(fā)生故障后,另一具有卸載功能的第二網(wǎng)卡無(wú)法對(duì)接收到的報(bào)文進(jìn)行處理的問(wèn)題。
[0006]本發(fā)明實(shí)施例第一方面提供了一種處理報(bào)文的方法,應(yīng)用于一種處理報(bào)文的系統(tǒng),所述系統(tǒng)包括:第一主機(jī)、第一網(wǎng)卡和第二網(wǎng)卡,所述方法包括:
[0007]所述第一網(wǎng)卡接收會(huì)話的第一報(bào)文,對(duì)所述第一報(bào)文進(jìn)行處理,生成處理所述會(huì)話的其他報(bào)文時(shí)所依據(jù)的上下文;
[0008]所述第一網(wǎng)卡將所述上下文發(fā)送給所述第一主機(jī);
[0009]所述第一主機(jī)確定所述第一網(wǎng)卡故障;
[0010]所述第一主機(jī)指示所述第二網(wǎng)卡獲取所述上下文。
[0011]第一網(wǎng)卡接收會(huì)話的第一報(bào)文,對(duì)所述第一報(bào)文進(jìn)行處理,生成處理所述會(huì)話的其他報(bào)文時(shí)所依據(jù)的上下文,并將所述上下文發(fā)送給第一主機(jī);然后第一主機(jī)確定第一網(wǎng)卡故障,指示第二網(wǎng)卡獲得第一主機(jī)中的上下文,這樣,第二網(wǎng)卡根據(jù)上下文,對(duì)接收到的所述會(huì)話的其他報(bào)文進(jìn)行處理。因此,即使第一網(wǎng)卡發(fā)生故障,第二網(wǎng)卡能夠獲得上下文,所以第二網(wǎng)卡能夠?qū)邮盏降膱?bào)文進(jìn)行處理。
[0012]結(jié)合第一方面,在第一方面的第一種可能的實(shí)現(xiàn)方式中,所述第二網(wǎng)卡獲取所述上下文后,所述方法還包括:
[0013]所述第一主機(jī)通知交換機(jī)將所述會(huì)話的其他報(bào)文發(fā)送至所述第二網(wǎng)卡,所述交換機(jī)用于所述第一主機(jī)與第二主機(jī)之間的通信。
[0014]第一主機(jī)確定第一網(wǎng)卡發(fā)生故障后,及時(shí)通知交換機(jī)將所述會(huì)話的報(bào)文發(fā)送到第二網(wǎng)卡,使交換機(jī)及時(shí)獲知第一網(wǎng)卡發(fā)生了故障,避免了交換機(jī)確定第一網(wǎng)卡發(fā)生故障的過(guò)程,交換機(jī)根據(jù)第一主機(jī)發(fā)送的通知,將原本發(fā)送給第一網(wǎng)卡的所述會(huì)話的報(bào)文發(fā)送給第二網(wǎng)卡,使得第二網(wǎng)卡及時(shí)收到所述會(huì)話的報(bào)文,提高了網(wǎng)卡處理會(huì)話的報(bào)文的效率。
[0015]結(jié)合第一方面或第一方面的第一種可能的實(shí)現(xiàn)方式,在第一方面的第二種可能的實(shí)現(xiàn)方式中,在生成處理所述會(huì)話的其他報(bào)文時(shí)所依據(jù)的上下文之后,所述方法還包括:
[0016]所述第一網(wǎng)卡根據(jù)所述上下文生成第一校驗(yàn)值,并將所述第一校驗(yàn)值發(fā)送給所述第一主機(jī);
[0017]在所述第一主機(jī)指示所述第二網(wǎng)卡獲取所述上下文之前,所述方法還包括:
[0018]所述第一主機(jī)根據(jù)接收到的上下文生成第二校驗(yàn)值;
[0019]當(dāng)所述第二校驗(yàn)值與所述第一校驗(yàn)值相同時(shí),所述第一主機(jī)確定所述上下文是完整的。第一主機(jī)在指示第二網(wǎng)卡獲取上下文之前,通過(guò)校驗(yàn)值驗(yàn)證上下文的完整性,保證第二網(wǎng)卡獲取到的上下文是完整的,使得第二網(wǎng)卡依據(jù)獲取到的上下文,能夠?qū)邮盏降臅?huì)話的報(bào)文進(jìn)行正確地處理。
[0020]本發(fā)明實(shí)施例第二方面提供了一種處理報(bào)文的系統(tǒng),所述系統(tǒng)包括:
[0021]第一主機(jī)、第一網(wǎng)卡和第二網(wǎng)卡;
[0022]其中,所述第一網(wǎng)卡用于:接收會(huì)話的第一報(bào)文,對(duì)所述第一報(bào)文進(jìn)行處理,生成處理所述會(huì)話的其他報(bào)文時(shí)所依據(jù)的上下文;將所述上下文發(fā)送給所述第一主機(jī);
[0023]所述第一主機(jī)用于:確定所述第一網(wǎng)卡故障;指示所述第二網(wǎng)卡獲取所述上下文。
[0024]結(jié)合第二方面,在第二方面的第一種可能的實(shí)現(xiàn)方式中,所述第一主機(jī)還用于:
[0025]通知交換機(jī)將所述會(huì)話的其他報(bào)文發(fā)送至所述第二網(wǎng)卡,所述交換機(jī)用于所述第一主機(jī)與第二主機(jī)之間的通信。
[0026]結(jié)合第二方面或第二方面的第一種可能的實(shí)現(xiàn)方式,在第二方面的第二種可能的實(shí)現(xiàn)方式中,所述第一網(wǎng)卡還用于:
[0027]根據(jù)所述上下文生成第一校驗(yàn)值,并將所述第一校驗(yàn)值發(fā)送給所述第一主機(jī);
[0028]所述第一主機(jī)還用于:根據(jù)接收到的上下文生成第二校驗(yàn)值;當(dāng)所述第二校驗(yàn)值與所述第一校驗(yàn)值相同時(shí),確定所述上下文是完整的。
[0029]本發(fā)明實(shí)施例中提供的一個(gè)或多個(gè)技術(shù)方案,至少具有如下技術(shù)效果或優(yōu)點(diǎn):
[0030]本發(fā)明實(shí)施例中,第一網(wǎng)卡接收會(huì)話的第一報(bào)文,對(duì)所述第一報(bào)文進(jìn)行處理,生成處理所述會(huì)話的其他報(bào)文時(shí)所依據(jù)的上下文,并將所述上下文發(fā)送給第一主機(jī);然后第一主機(jī)確定第一網(wǎng)卡故障,指示第二網(wǎng)卡獲得第一主機(jī)中的上下文,這樣,第二網(wǎng)卡根據(jù)上下文,對(duì)接收到的所述會(huì)話的其他報(bào)文進(jìn)行處理。因此,即使第一網(wǎng)卡發(fā)生故障,第二網(wǎng)卡能夠獲得上下文,所以第二網(wǎng)卡能夠?qū)邮盏降膱?bào)文進(jìn)行處理,實(shí)現(xiàn)了網(wǎng)卡之間報(bào)文處理功能的靈活切換。
【附圖說(shuō)明】
[0031]為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)要介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域的普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0032]圖1為本發(fā)明實(shí)施例提供的一種處理報(bào)文的系統(tǒng)的結(jié)構(gòu)示意圖;
[0033]圖2為本發(fā)明實(shí)施例提供的系統(tǒng)執(zhí)行處理報(bào)文的方法的信息交互示意圖。
【具體實(shí)施方式】
[0034]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(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ù)的范圍。
[0035]未經(jīng)特別說(shuō)明,本發(fā)明實(shí)施例提到的網(wǎng)卡都是具有卸載功能的網(wǎng)卡。通常在網(wǎng)卡上實(shí)現(xiàn)硬件卸載的報(bào)文遵循的協(xié)議有:TCP(中文:傳輸控制協(xié)議;英文transmiss1nControl Protocol)、iSCSI (中文:互聯(lián)網(wǎng)小型計(jì)算機(jī)系統(tǒng)接口 ;英文:Internet SmallComputer System Interface)協(xié)議、FCoE (中文:以太網(wǎng)光纖通道;英文:Fibre Channelover Ethernet)協(xié)議等。
[0036]上述協(xié)議都是有狀態(tài)的協(xié)議,如果報(bào)文遵循的協(xié)議是有狀態(tài)的協(xié)議,則報(bào)文之間有依賴關(guān)系,上下文用于記錄報(bào)文之間的依賴關(guān)系,網(wǎng)卡依據(jù)上下文對(duì)報(bào)文進(jìn)行處理。由于原始報(bào)文經(jīng)網(wǎng)卡處理后變?yōu)橐烟幚淼膱?bào)文,所以報(bào)文之間的依賴關(guān)系相應(yīng)地發(fā)生改變,因此,網(wǎng)卡每次對(duì)報(bào)文進(jìn)行處理之后,上下文都會(huì)相應(yīng)地發(fā)生改變。網(wǎng)卡需要依據(jù)最新的上下文對(duì)報(bào)文進(jìn)行處理,如果依據(jù)的上下文不是最新的,則網(wǎng)卡不能對(duì)報(bào)文進(jìn)行正確地處理。
[0037]卸載分為全卸載和半卸載。對(duì)于全卸載,完全由網(wǎng)卡對(duì)報(bào)文進(jìn)行處理,主機(jī)不參與報(bào)文處理,因此,網(wǎng)卡在處理第一個(gè)報(bào)文時(shí),沒(méi)有最新的上下文可以依據(jù),網(wǎng)卡處理完第一個(gè)報(bào)文之后,根據(jù)已處理的第一個(gè)報(bào)文,生成最新的上下文,網(wǎng)卡依據(jù)生成的最新的上下文,處理第一個(gè)報(bào)文之后的其他報(bào)文。
[0038]對(duì)于半卸載,主機(jī)首先處理一部分簡(jiǎn)單的報(bào)文,然后將剩余一部分復(fù)雜的報(bào)文卸載到網(wǎng)卡上,由網(wǎng)卡對(duì)剩余一部分復(fù)雜的報(bào)文進(jìn)行處理。因此,主機(jī)首先處理所述一部分簡(jiǎn)單的報(bào)文,然后已處理的所述一部分簡(jiǎn)單的報(bào)文,生成最新的上下文,并發(fā)送給網(wǎng)卡,同時(shí)將所述剩余一部分復(fù)雜的報(bào)文發(fā)送給網(wǎng)卡,網(wǎng)卡在處理所述剩余一部分復(fù)雜的報(bào)文中的第一個(gè)報(bào)文時(shí),依據(jù)主機(jī)發(fā)送的最新的上下文,對(duì)所述剩余一部分復(fù)雜的報(bào)文中的第一個(gè)報(bào)文進(jìn)行處理,