本發(fā)明涉及流量回放技術(shù)領(lǐng)域,特別是涉及代理服務(wù)器流量回放方法和系統(tǒng)。
背景技術(shù):
傳統(tǒng)的流量回放工具,只能對(duì)具有旁路或者純轉(zhuǎn)發(fā)功能的中間設(shè)備進(jìn)行數(shù)據(jù)包的回放。如需要進(jìn)行流量回放的設(shè)備,在客戶端和服務(wù)器之間新建了連接,例如,被測(cè)試設(shè)備對(duì)HTTP(HyperText Transfer Protocol超文本傳輸協(xié)議),郵件等協(xié)議做了代理,則無法使用傳統(tǒng)的流量回放工具對(duì)其進(jìn)行流量回放,如何方便的實(shí)現(xiàn)具有代理功能的服務(wù)器的流量回放,是流量回放技術(shù)領(lǐng)域亟待解決的問題。
技術(shù)實(shí)現(xiàn)要素:
基于此,有必要針對(duì)無法對(duì)代理服務(wù)器進(jìn)行流量回放的問題,提供一種代理服務(wù)器流量回放方法和系統(tǒng),其中,所述方法包括:
獲取待回放原始數(shù)據(jù);
解析所述待回放原始數(shù)據(jù),獲取所述待回放原始數(shù)據(jù)中的各數(shù)據(jù)流,將解析出的各數(shù)據(jù)流按照發(fā)送方和接收方的地址組合進(jìn)行分組,獲取各待回放數(shù)據(jù)組,所述數(shù)據(jù)流為客戶端和服務(wù)器之間的一次會(huì)話的數(shù)據(jù);
通過第一物理網(wǎng)口將所述各待回放數(shù)據(jù)組中其中一端的數(shù)據(jù)包發(fā)送至代理服務(wù)器的第三物理網(wǎng)口;通過第二物理網(wǎng)口將所述各待回放數(shù)據(jù)組中另一端的應(yīng)答數(shù)據(jù)包發(fā)送至代理服務(wù)器的第四物理網(wǎng)口;其中,所述第一物理網(wǎng)口和所述代理服務(wù)器的第三物理網(wǎng)口直連,所述第二物理網(wǎng)口和所述代理服務(wù)器的第四物理網(wǎng)口直連。
在其中一個(gè)實(shí)施例中,所述解析所述待回放原始數(shù)據(jù),將解析出的數(shù)據(jù)流按照發(fā)送方和接收方的地址組合進(jìn)行分組,獲取各待回放數(shù)據(jù)組,包括:
解析所述待回放原始數(shù)據(jù),獲取所述待回放原始數(shù)據(jù)中的各數(shù)據(jù)流;
提取所述數(shù)據(jù)流中的應(yīng)用層數(shù)據(jù),在所述提取后的各數(shù)據(jù)流中保留原始的發(fā)送方和接收方的地址組合信息,并標(biāo)記發(fā)送方向,獲取各待回放數(shù)據(jù)流;
將所述各待回放數(shù)據(jù)流按照發(fā)送方和接收方的地址組合進(jìn)行分組,獲取各待回放數(shù)據(jù)組。
在其中一個(gè)實(shí)施例中,所述在所述提取后的各數(shù)據(jù)流中保留原始的發(fā)送方和接收方的地址組合信息,并標(biāo)記發(fā)送方向,還包括:
標(biāo)記所述應(yīng)用層數(shù)據(jù)包的長(zhǎng)度。
在其中一個(gè)實(shí)施例中,所述解析所述待回放原始數(shù)據(jù),獲取所述待回放原始數(shù)據(jù)中的各數(shù)據(jù)流,還包括:
丟棄亂序包比例到達(dá)預(yù)設(shè)閾值的數(shù)據(jù)流。
在其中一個(gè)實(shí)施例中,在所述通過第一物理網(wǎng)口將所述各待回放數(shù)據(jù)組中其中一端的數(shù)據(jù)包發(fā)送至代理服務(wù)器的第三物理網(wǎng)口的步驟之前,所述方法還包括:
將所述各待回放數(shù)據(jù)組中的所述各客戶端的網(wǎng)際協(xié)議IP地址,設(shè)置于所述第一物理網(wǎng)口,將所述各服務(wù)器的IP地址設(shè)置于所述第二物理網(wǎng)口;
將所述各客戶端和所述各服務(wù)器的媒體訪問控制MAC地址和IP地址,寫入靜態(tài)地址解析協(xié)議ARP規(guī)則。
在其中一個(gè)實(shí)施例中,在所述通過第一物理網(wǎng)口將所述各待回放數(shù)據(jù)組中其中一端的數(shù)據(jù)包發(fā)送至代理服務(wù)器的第三物理網(wǎng)口的步驟之前,所述方法還包括:
將所述各待回放數(shù)據(jù)組中其中一端的數(shù)據(jù)包的源MAC地址填充為第一物理網(wǎng)口的MAC地址、目的MAC地址填充為第二物理網(wǎng)口的MAC地址,獲取虛擬發(fā)送數(shù)據(jù)包;
將所述各待回放數(shù)據(jù)組中另一端的應(yīng)答數(shù)據(jù)包的源MAC地址填充為第二物理網(wǎng)口的MAC地址、目的MAC地址填充為第一物理網(wǎng)口的MAC地址,獲取虛擬應(yīng)答數(shù)據(jù)包;
所述通過第一物理網(wǎng)口將所述各待回放數(shù)據(jù)組中其中一端的數(shù)據(jù)包發(fā)送至代理服務(wù)器的第三物理網(wǎng)口,通過第二物理網(wǎng)口將所述各待回放數(shù)據(jù)組中另一端的應(yīng)答數(shù)據(jù)包發(fā)送至代理服務(wù)器的第四物理網(wǎng)口,還包括:
將所述虛擬發(fā)送數(shù)據(jù)包通過第一虛擬網(wǎng)口發(fā)送至第一物理網(wǎng)口,再通過第一物理網(wǎng)口發(fā)送至代理服務(wù)器的第三物理網(wǎng)口;
將所述虛擬應(yīng)答數(shù)據(jù)包通過第二虛擬網(wǎng)口發(fā)送至第二物理網(wǎng)口,再通過第二物理網(wǎng)口發(fā)送至所述代理服務(wù)器的第四物理網(wǎng)口。
在其中一個(gè)實(shí)施例中,在所述通過第二物理網(wǎng)口接收所述代理服務(wù)器發(fā)回的回放數(shù)據(jù)組的步驟之后,所述方法還包括:
將所述第一物理網(wǎng)口和/或第二物理網(wǎng)口接收到的回放數(shù)據(jù)組,與所述待回放數(shù)據(jù)組進(jìn)行比對(duì),根據(jù)所述比對(duì)結(jié)果分析所述代理服務(wù)器的流量回放指標(biāo)。
在其中一個(gè)實(shí)施例中,通過將待回放的原始數(shù)據(jù)進(jìn)行解析,將解析出的各數(shù)據(jù)流按照發(fā)送方和接收方的地址組合進(jìn)行分組后,將其中一端的數(shù)據(jù)包通過第一物理網(wǎng)口發(fā)送至代理服務(wù)器的第三物理網(wǎng)口,將另一端的應(yīng)答數(shù)據(jù)包通過第二物理網(wǎng)口發(fā)送至代理服務(wù)器的第四物理網(wǎng)口,完成所述待回放原始數(shù)據(jù)的回放。本發(fā)明通過對(duì)待回放原始數(shù)據(jù)進(jìn)行整理后,再通過特定的物理網(wǎng)口對(duì)其中一端的數(shù)據(jù)包進(jìn)行發(fā)送,完成對(duì)代理服務(wù)器的流量回放,避免了對(duì)每個(gè)數(shù)據(jù)包都需要進(jìn)行連接跟蹤,能夠方便的實(shí)現(xiàn)對(duì)代理服務(wù)器的流量回放。
在其中一個(gè)實(shí)施例中,通過解析所述待回放原始數(shù)據(jù)中的第七層數(shù)據(jù),標(biāo)記發(fā)送方向,再按照四元組進(jìn)行分組,獲取各待回放數(shù)據(jù)組,將所述每個(gè)回放數(shù)據(jù)包中的七層數(shù)據(jù)剝離出來,用于在代理服務(wù)器中回放七層數(shù)據(jù),對(duì)于七層以下的數(shù)據(jù)不進(jìn)行解析,提高代理服務(wù)器流量回放的效率。
在其中一個(gè)實(shí)施例中,在對(duì)待回放數(shù)據(jù)組進(jìn)行解析后,標(biāo)記所述第七層數(shù)據(jù)包的長(zhǎng)度,用于對(duì)代理服務(wù)器流量回放的執(zhí)行效率進(jìn)行分析。
在其中一個(gè)實(shí)施例中,丟棄亂序包比例達(dá)到預(yù)設(shè)閾值的數(shù)據(jù)流,可以保證用于流量回放的數(shù)據(jù)的完整性,提高對(duì)代理服務(wù)器流量回放的回放效率。
在其中一個(gè)實(shí)施例中,將所述各客戶端和所述各服務(wù)器的媒體訪問控制MAC地址和IP地址,寫入靜態(tài)地址解析協(xié)議ARP規(guī)則,完成代理服務(wù)器的流量回放,適用于客戶端和服務(wù)器個(gè)數(shù)較少的流量回放,提高流量回放的效率。
在其中一個(gè)實(shí)施例中,利用虛擬網(wǎng)卡實(shí)現(xiàn)待回放數(shù)據(jù)組的流量回放,由于虛擬網(wǎng)卡利用了虛擬網(wǎng)口,能夠自動(dòng)完成數(shù)量較多的通過代理服務(wù)器的客戶端和服務(wù)器之間的待回放數(shù)據(jù)的流量回放,提高代理服務(wù)器流量回放的效率。
本發(fā)明還提供一種代理服務(wù)器流量回放系統(tǒng),包括:
待回放原始數(shù)據(jù)獲取模塊,用于獲取待回放原始數(shù)據(jù);
待回放數(shù)據(jù)組獲取模塊,用于解析所述待回放原始數(shù)據(jù),獲取所述待回放原始數(shù)據(jù)中的各數(shù)據(jù)流,將解析出的各數(shù)據(jù)流按照發(fā)送方和接收方的地址組合進(jìn)行分組,獲取各待回放數(shù)據(jù)組,所述數(shù)據(jù)流為客戶端和服務(wù)器之間的一次會(huì)話的數(shù)據(jù);
數(shù)據(jù)包回放模塊,用于通過第一物理網(wǎng)口將所述各待回放數(shù)據(jù)組中其中一端的數(shù)據(jù)包發(fā)送至代理服務(wù)器的第三物理網(wǎng)口;通過第二物理網(wǎng)口將所述各待回放數(shù)據(jù)組中另一端的應(yīng)答數(shù)據(jù)包發(fā)送至代理服務(wù)器的第四物理網(wǎng)口;其中,所述第一物理網(wǎng)口和所述代理服務(wù)器的第三物理網(wǎng)口直連,所述第二物理網(wǎng)口和所述代理服務(wù)器的第四物理網(wǎng)口直連。
在其中一個(gè)實(shí)施例中,所述待回放數(shù)據(jù)組獲取模塊,包括:
數(shù)據(jù)流解析單元,用于解析所述待回放原始數(shù)據(jù),獲取所述待回放原始數(shù)據(jù)中的各數(shù)據(jù)流;
待回放數(shù)據(jù)流獲取單元,用于提取所述數(shù)據(jù)流中的應(yīng)用層數(shù)據(jù),在所述提取后的各數(shù)據(jù)流中保留原始的發(fā)送方和接收方的地址組合信息,并標(biāo)記發(fā)送方向,獲取各待回放數(shù)據(jù)流;
待回放數(shù)據(jù)組獲取單元,用于將所述各待回放數(shù)據(jù)流按照發(fā)送方和接收方的地址組合進(jìn)行分組,獲取各待回放數(shù)據(jù)組。
在其中一個(gè)實(shí)施例中,所述待回放數(shù)據(jù)流獲取單元,還用于:
標(biāo)記所述應(yīng)用層數(shù)據(jù)包的長(zhǎng)度。
在其中一個(gè)實(shí)施例中,所述數(shù)據(jù)流解析單元,還用于:
丟棄亂序包比例到達(dá)預(yù)設(shè)閾值的數(shù)據(jù)流。
在其中一個(gè)實(shí)施例中,還包括:
靜態(tài)地址添加模塊,用于將所述各待回放數(shù)據(jù)組中的所述各客戶端的網(wǎng)際協(xié)議IP地址,設(shè)置于所述第一物理網(wǎng)口,將所述各服務(wù)器的IP地址設(shè)置于所述第二物理網(wǎng)口;將所述各客戶端和所述各服務(wù)器的媒體訪問控制MAC地址和IP地址,寫入靜態(tài)地址解析協(xié)議ARP規(guī)則。
在其中一個(gè)實(shí)施例中,還包括:
動(dòng)態(tài)地址添加模塊,用于將所述各待回放數(shù)據(jù)組中其中一端的數(shù)據(jù)包的源MAC地址填充為第一物理網(wǎng)口的MAC地址、目的MAC地址填充為第二物理網(wǎng)口的MAC地址,獲取虛擬發(fā)送數(shù)據(jù)包;將所述各待回放數(shù)據(jù)組中另一端的應(yīng)答數(shù)據(jù)包的源MAC地址填充為第二物理網(wǎng)口的MAC地址、目的MAC地址填充為第一物理網(wǎng)口的MAC地址,獲取虛擬應(yīng)答數(shù)據(jù)包;
所述數(shù)據(jù)包回放模塊,還用于將所述虛擬發(fā)送數(shù)據(jù)包通過第一虛擬網(wǎng)口發(fā)送至第一物理網(wǎng)口,再通過第一物理網(wǎng)口發(fā)送至代理服務(wù)器的第三物理網(wǎng)口;將所述虛擬應(yīng)答數(shù)據(jù)包通過第二虛擬網(wǎng)口發(fā)送至第二物理網(wǎng)口,再通過第二物理網(wǎng)口發(fā)送至所述代理服務(wù)器的第四物理網(wǎng)口。
在其中一個(gè)實(shí)施例中,還包括:
回放指標(biāo)獲取模塊,用于將所述第一物理網(wǎng)口和/或第二物理網(wǎng)口接收到的回放數(shù)據(jù)組,與所述待回放數(shù)據(jù)組進(jìn)行比對(duì),根據(jù)所述比對(duì)結(jié)果分析所述代理服務(wù)器的流量回放指標(biāo)。
在其中一個(gè)實(shí)施例中,通過將待回放的原始數(shù)據(jù)進(jìn)行解析,將解析出的各數(shù)據(jù)流按照四元組進(jìn)行分組后,將其中一端的數(shù)據(jù)包通過第一物理網(wǎng)口發(fā)送至代理服務(wù)器的第三物理網(wǎng)口,將另一端的應(yīng)答數(shù)據(jù)包通過第二物理網(wǎng)口發(fā)送至代理服務(wù)器的第四物理網(wǎng)口,完成所述待回放原始數(shù)據(jù)的回放。本發(fā)明通過對(duì)待回放原始數(shù)據(jù)進(jìn)行整理后,再通過特定的物理網(wǎng)口對(duì)其中一端的數(shù)據(jù)包進(jìn)行發(fā)送,完成對(duì)代理服務(wù)器的流量回放,避免了對(duì)每個(gè)數(shù)據(jù)包都需要進(jìn)行連接跟蹤,能夠方便的實(shí)現(xiàn)對(duì)代理服務(wù)器的流量回放。
在其中一個(gè)實(shí)施例中,通過解析所述待回放原始數(shù)據(jù)中的第七層數(shù)據(jù),標(biāo)記發(fā)送方向,再按照四元組進(jìn)行分組,獲取各待回放數(shù)據(jù)組,將所述每個(gè)回放數(shù)據(jù)包中的七層數(shù)據(jù)剝離出來,用于在代理服務(wù)器中回放七層數(shù)據(jù),對(duì)于七層以下的數(shù)據(jù)不進(jìn)行解析,提高代理服務(wù)器流量回放的效率。
在其中一個(gè)實(shí)施例中,在對(duì)待回放數(shù)據(jù)組進(jìn)行解析后,標(biāo)記所述第七層數(shù)據(jù)包的長(zhǎng)度,用于對(duì)代理服務(wù)器流量回放的執(zhí)行效率進(jìn)行分析。
在其中一個(gè)實(shí)施例中,丟棄數(shù)據(jù)流中亂序包的比例達(dá)到預(yù)設(shè)閾值的數(shù)據(jù)流,可以保證用于流量回放的數(shù)據(jù)的完整性,提高對(duì)代理服務(wù)器流量回放的回放效率。
在其中一個(gè)實(shí)施例中,將所述各客戶端和所述各服務(wù)器的媒體訪問控制MAC地址和IP地址,寫入靜態(tài)地址解析協(xié)議ARP規(guī)則,完成代理服務(wù)器的流量回放,適用于客戶端和服務(wù)器較少的流量回放。
在其中一個(gè)實(shí)施例中,利用虛擬網(wǎng)卡實(shí)現(xiàn)待回放數(shù)據(jù)組的流量回放,由于虛擬網(wǎng)卡利用了虛擬網(wǎng)口,能夠自動(dòng)完成數(shù)量較多的通過代理服務(wù)器的客戶端和服務(wù)器之間的待回放數(shù)據(jù)的流量回放,提高了代理服務(wù)器流量回放的效率。
附圖說明
圖1為一個(gè)實(shí)施例的代理服務(wù)器流量回放方法的流程示意圖;
圖2為另一個(gè)實(shí)施例的代理服務(wù)器流量回放方法的流程示意圖;
圖3為又一個(gè)實(shí)施例的代理服務(wù)器流量回放方法的流程示意圖;
圖4為一個(gè)實(shí)施例的代理服務(wù)器流量回放系統(tǒng)的結(jié)構(gòu)示意圖;
圖5為另一個(gè)實(shí)施例的代理服務(wù)器流量回放系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
圖1為一個(gè)實(shí)施例的代理服務(wù)器流量回放方法的流程示意圖,如圖1所示的代理服務(wù)器流量回放方法,包括:
步驟S100,獲取待回放原始數(shù)據(jù)。
具體的,所述待回放原始數(shù)據(jù),包括通過代理服務(wù)器轉(zhuǎn)發(fā)的數(shù)據(jù),如代理服務(wù)器對(duì)HTTP(HyperText Transfer Protocol超文本傳輸協(xié)議)和郵件做了代理后,無法使用傳統(tǒng)的流量回放工具進(jìn)行流量回放,因?yàn)榭蛻舳税l(fā)送給服務(wù)器的數(shù)據(jù)經(jīng)過代理服務(wù)器時(shí),從客戶端到代理服務(wù)器,再?gòu)拇矸?wù)器到服務(wù)器,新建了一次連接,數(shù)據(jù)包的SEQ(Sequencenumber初始序列號(hào))和ACK_SEQ(Acknowledgment Sequence number確認(rèn)號(hào))都發(fā)生了變化,基本改變了每個(gè)數(shù)據(jù)包的TCP(Transmission Control Protocol傳輸控制協(xié)議)頭部信息。
步驟S200,解析所述待回放原始數(shù)據(jù),獲取所述待回放原始數(shù)據(jù)中的各數(shù)據(jù)流,將解析出的各數(shù)據(jù)流按照發(fā)送方和接收方的地址組合進(jìn)行分組,獲取各待回放數(shù)據(jù)組,所述數(shù)據(jù)流為客戶端和服務(wù)器之間的一次會(huì)話的數(shù)據(jù)。
具體的,首先解析所述待回放原始數(shù)據(jù),獲取所述待回放原始數(shù)據(jù)中的各數(shù)據(jù)流,所述數(shù)據(jù)流為客戶端和服務(wù)器之間的一次會(huì)話的數(shù)據(jù)。在所述待回放原始數(shù)據(jù)中,將各數(shù)據(jù)流中的數(shù)據(jù)包,按照時(shí)間先后順序整理在一起,一個(gè)會(huì)話一個(gè)數(shù)據(jù)流,再按照發(fā)送方和接收方的地址組合進(jìn)行分組,所述發(fā)送方和接收方的地址組合,包括四元組,也包括五元組、七元組等其他與發(fā)送方和接收方的地址組合相關(guān)的參數(shù)組合。所述四元組包括源IP地址、目的IP地址、源端口、目的端口;不同的源IP地址和目的IP地址,代表不同的客戶端和服務(wù)器,不同的源端口和目的端口代表不同的業(yè)務(wù)的數(shù)據(jù)流,如端口80通常為HTTP業(yè)務(wù),443通常為SSL業(yè)務(wù),110通常為POP業(yè)務(wù)等。將所述解析出的數(shù)據(jù)流,按照四元組進(jìn)行分組后,可以按照客戶端、服務(wù)器和業(yè)務(wù)進(jìn)行分組,在接下來的流量回放中,可以按照需求選擇不同的客戶端或服務(wù)器的數(shù)據(jù)流,或選擇不同的業(yè)務(wù)進(jìn)行數(shù)據(jù)流的回放。
步驟S300,通過第一物理網(wǎng)口將所述各待回放數(shù)據(jù)組中其中一端的數(shù)據(jù)包發(fā)送至代理服務(wù)器的第三物理網(wǎng)口;通過第二物理網(wǎng)口將所述各待回放數(shù)據(jù)組中另一端的應(yīng)答數(shù)據(jù)包發(fā)送至代理服務(wù)器的第四物理網(wǎng)口;其中,所述第一物理網(wǎng)口和所述代理服務(wù)器的第三物理網(wǎng)口直連,所述第二物理網(wǎng)口和所述代理服務(wù)器的第四物理網(wǎng)口直連。
具體的,所述通過第一物理網(wǎng)口將所述各待回放數(shù)據(jù)組中其中一端的數(shù)據(jù)包發(fā)送至代理服務(wù)器的第三物理網(wǎng)口,通過第二物理網(wǎng)口將所述各待回放數(shù)據(jù)組中另一端的應(yīng)答數(shù)據(jù)包發(fā)送至代理服務(wù)器的第四物理網(wǎng)口,包括:
將各待回放數(shù)據(jù)組中所有的客戶端發(fā)送的數(shù)據(jù)包通過第一物理網(wǎng)口發(fā)送至代理服務(wù)器的第三物理網(wǎng)口,所有的服務(wù)器端發(fā)送的數(shù)據(jù)包通過第二物理網(wǎng)口發(fā)送至代理服務(wù)器的第四物理網(wǎng)口;或
將各待回放數(shù)據(jù)組中部分客戶端發(fā)送的數(shù)據(jù)包通過第一物理網(wǎng)口發(fā)送至代理服務(wù)器的第三物理網(wǎng)口,剩余部分客戶端發(fā)送的數(shù)據(jù)包通過第二物理網(wǎng)口發(fā)送至代理服務(wù)器的第三物理網(wǎng)口;同時(shí)部分服務(wù)器端發(fā)送的數(shù)據(jù)包通過第一物理網(wǎng)口發(fā)送至代理服務(wù)器的第三物理網(wǎng)口,剩余部分服務(wù)器端發(fā)送的數(shù)據(jù)包通過第二物理網(wǎng)口發(fā)送至代理服務(wù)器的第四物理網(wǎng)口。
即,可以將所有的客戶端發(fā)送的數(shù)據(jù)包都通過其中一個(gè)物理網(wǎng)口發(fā)送,所有的服務(wù)器端發(fā)送的數(shù)據(jù)包都通過另外一個(gè)物理網(wǎng)口發(fā)送,或,部分客戶端發(fā)送的數(shù)據(jù)包和部分服務(wù)器端發(fā)送的數(shù)據(jù)包通過其中一個(gè)物理網(wǎng)口發(fā)送,剩余的客戶端發(fā)送的數(shù)據(jù)包和剩余的服務(wù)器端發(fā)送的數(shù)據(jù)包,通過剩余的物理網(wǎng)口發(fā)送,可以根據(jù)客戶端和服務(wù)器端發(fā)送的數(shù)據(jù)包的多少,進(jìn)行靈活的設(shè)置。
使用數(shù)據(jù)流并發(fā)的功能發(fā)送所述待回放數(shù)據(jù)組,為解決流量回放中瞬間發(fā)送大量數(shù)據(jù)包請(qǐng)求所引起的擁塞問題,可以設(shè)置最大活動(dòng)連接數(shù),用于限制同時(shí)發(fā)送的數(shù)據(jù)包或活動(dòng)連接的數(shù)據(jù)包的數(shù)量。
在本實(shí)施例中,通過將待回放的原始數(shù)據(jù)進(jìn)行解析,將解析出的各數(shù)據(jù)流按照四元組進(jìn)行分組后,將其中一端的數(shù)據(jù)包通過第一物理網(wǎng)口發(fā)送至代理服務(wù)器的第三物理網(wǎng)口,將另一端的應(yīng)答數(shù)據(jù)包通過第二物理網(wǎng)口發(fā)送至代理服務(wù)器的第四物理網(wǎng)口,完成所述待回放原始數(shù)據(jù)的回放。本發(fā)明通過對(duì)待回放原始數(shù)據(jù)進(jìn)行整理后,再通過特定的物理網(wǎng)口對(duì)其中一端的數(shù)據(jù)包進(jìn)行發(fā)送,完成對(duì)代理服務(wù)器的流量回放,避免了對(duì)每個(gè)數(shù)據(jù)包都需要進(jìn)行連接跟蹤,能夠方便的實(shí)現(xiàn)對(duì)代理服務(wù)器的流量回放。
在其中一個(gè)實(shí)施例中,解析所述待回放原始數(shù)據(jù),獲取所述待回放原始數(shù)據(jù)中的各數(shù)據(jù)流;提取所述數(shù)據(jù)流中的應(yīng)用層數(shù)據(jù),在所述提取后的各數(shù)據(jù)流中保留原始的發(fā)送方和接收方的地址組合信息,并標(biāo)記發(fā)送方向,獲取各待回放數(shù)據(jù)流;將所述各待回放數(shù)據(jù)流按照發(fā)送方和接收方的地址組合進(jìn)行分組,獲取各待回放數(shù)據(jù)組。
具體的,在流量回放中,如只關(guān)心應(yīng)用層的數(shù)據(jù),則在對(duì)待回放原始數(shù)據(jù)進(jìn)行分析時(shí),只對(duì)第七層數(shù)據(jù)進(jìn)行解析并提取,可提高數(shù)據(jù)解析的效率。如只對(duì)第七層數(shù)據(jù)進(jìn)行解析并提取,需要在解析并提取后的各數(shù)據(jù)流中保留原始的四元組信息,并標(biāo)記數(shù)據(jù)流中,每條數(shù)據(jù)的發(fā)送方向,才能獲取到可以用于回放的待回放數(shù)據(jù)流。
在本實(shí)施例中,通過解析所述待回放原始數(shù)據(jù)中的第七層數(shù)據(jù),標(biāo)記發(fā)送方向,再按照四元組進(jìn)行分組,獲取各待回放數(shù)據(jù)組,將所述每個(gè)回放數(shù)據(jù)包中的七層數(shù)據(jù)剝離出來,用于在代理服務(wù)器中回放七層數(shù)據(jù),對(duì)于七層以下的數(shù)據(jù)不進(jìn)行解析,提高代理服務(wù)器流量回放的效率。
在其中一個(gè)實(shí)施例中,所述在所述提取后的各數(shù)據(jù)流中保留原始的發(fā)送方和接收方的地址組合信息,并標(biāo)記發(fā)送方向,還包括:標(biāo)記所述應(yīng)用層數(shù)據(jù)包的長(zhǎng)度。
具體的,在各數(shù)據(jù)流中對(duì)各數(shù)據(jù)包的長(zhǎng)度進(jìn)行標(biāo)記,用于在流量回放后,根據(jù)所述接收到的數(shù)據(jù)包的長(zhǎng)度進(jìn)行對(duì)比,以分析代理服務(wù)器流量回放的數(shù)據(jù)包是否被完整的成功回放。
在本實(shí)施例中,在對(duì)待回放數(shù)據(jù)組進(jìn)行解析后,標(biāo)記所述第七層數(shù)據(jù)包的長(zhǎng)度,用于對(duì)代理服務(wù)器流量回放的執(zhí)行效率進(jìn)行分析。
在其中一個(gè)實(shí)施例中,所述解析所述待回放原始數(shù)據(jù),獲取所述待回放原始數(shù)據(jù)中的各數(shù)據(jù)流,還包括:丟棄亂序包比例到達(dá)預(yù)設(shè)閾值的數(shù)據(jù)流。
具體的,所述丟棄亂序包比例達(dá)到預(yù)設(shè)閾值的數(shù)據(jù)流,用于整理所述待回放原始數(shù)據(jù),將待回放原始數(shù)據(jù)中不完整的數(shù)據(jù)剔除,提高生成的待回放數(shù)據(jù)流的數(shù)據(jù)的完整性,以提高流量回放的回放效率。在丟棄亂序包比例達(dá)到預(yù)設(shè)閾值的數(shù)據(jù)流的同時(shí),本實(shí)施例還包括,只保留完整的數(shù)據(jù)流、保留有連接開始但沒有結(jié)束的數(shù)據(jù)流等。
在其中一個(gè)實(shí)施例中,在所述通過第二物理網(wǎng)口接收所述代理服務(wù)器發(fā)回的回放數(shù)據(jù)組的步驟之后,所述方法還包括:將所述第一物理網(wǎng)口和/或第二物理網(wǎng)口接收到的回放數(shù)據(jù)組,與所述待回放數(shù)據(jù)組進(jìn)行比對(duì),根據(jù)所述比對(duì)結(jié)果分析所述代理服務(wù)器的流量回放指標(biāo)。
具體的,在代理服務(wù)器進(jìn)行流量回放后,將接收到的回放數(shù)據(jù)組,和回訪前的待回放數(shù)據(jù)組進(jìn)行比對(duì)分析,如分析接收成功率、接收時(shí)延等,對(duì)代理服務(wù)器進(jìn)行壓力測(cè)試,對(duì)流量回放進(jìn)行執(zhí)行效率的分析等。
在本實(shí)施例中,根據(jù)接收到的回放數(shù)據(jù)組與待回放數(shù)據(jù)組進(jìn)行比對(duì),以分析代理服務(wù)器的流量回訪指標(biāo),可以進(jìn)一步的對(duì)代理服務(wù)器的流量回放的執(zhí)行結(jié)果進(jìn)行分析。
圖2為另一個(gè)實(shí)施例的代理服務(wù)器流量回放方法的流程示意圖,如圖2所示的代理服務(wù)器流量回放方法,包括:
步驟S100a,獲取待回放原始數(shù)據(jù)。
具體的,同步驟S100。
步驟S200a,解析所述待回放原始數(shù)據(jù),獲取所述待回放原始數(shù)據(jù)中的各數(shù)據(jù)流,將解析出的各數(shù)據(jù)流按照發(fā)送方和接收方的地址組合進(jìn)行分組,獲取各待回放數(shù)據(jù)組,所述數(shù)據(jù)流為客戶端和服務(wù)器之間的一次會(huì)話的數(shù)據(jù)。
具體的,同步驟S200。
步驟S300a,將所述各待回放數(shù)據(jù)組中的所述各客戶端的網(wǎng)際協(xié)議IP地址,設(shè)置于所述第一物理網(wǎng)口,將所述各服務(wù)器的IP地址設(shè)置于所述第二物理網(wǎng)口;將所述各客戶端和所述各服務(wù)器的媒體訪問控制MAC地址和IP地址,寫入靜態(tài)地址解析協(xié)議ARP規(guī)則。
具體的,所述ARP協(xié)議是(Address Resolution Protocol地址解析協(xié)議)的縮寫。在計(jì)算機(jī)網(wǎng)絡(luò)中,一個(gè)節(jié)點(diǎn)和另一個(gè)節(jié)點(diǎn)進(jìn)行直接通信,必須要知道目標(biāo)節(jié)點(diǎn)的MAC地址,目標(biāo)MAC地址的獲得,通過ARP協(xié)議,即地址解析協(xié)議獲得的。所述“地址解析”就是發(fā)送數(shù)據(jù)的節(jié)點(diǎn)在發(fā)送數(shù)據(jù)幀前將數(shù)據(jù)包的目標(biāo)IP地址轉(zhuǎn)換成目標(biāo)MAC地址的過程。ARP協(xié)議通過目標(biāo)節(jié)點(diǎn)設(shè)備的IP地址,查詢目標(biāo)節(jié)點(diǎn)設(shè)備的MAC地址,以保證通信的順利進(jìn)行。
當(dāng)網(wǎng)絡(luò)中的節(jié)點(diǎn)數(shù)較少,且所述節(jié)點(diǎn)的IP地址數(shù)較少時(shí),采用靜態(tài)ARP規(guī)則,將每個(gè)節(jié)點(diǎn)的IP地址和MAC地址寫入靜態(tài)ARP規(guī)則中,以使待回放數(shù)據(jù)組在發(fā)送時(shí),能夠完成地址解析,成功發(fā)送。
步驟S400a,通過第一物理網(wǎng)口將所述各待回放數(shù)據(jù)組中其中一端的數(shù)據(jù)包發(fā)送至代理服務(wù)器的第三物理網(wǎng)口;通過第二物理網(wǎng)口將所述各待回放數(shù)據(jù)組中另一端的應(yīng)答數(shù)據(jù)包發(fā)送至代理服務(wù)器的第四物理網(wǎng)口;其中,所述第一物理網(wǎng)口和所述代理服務(wù)器的第三物理網(wǎng)口直連,所述第二物理網(wǎng)口和所述代理服務(wù)器的第四物理網(wǎng)口直連。
具體的,采用步驟S300a時(shí),根據(jù)圖2所述的實(shí)施例中步驟S400的相關(guān)描述,是將所有客戶端發(fā)送的數(shù)據(jù)包通過其中一個(gè)物理網(wǎng)口發(fā)送,將所有服務(wù)器端發(fā)送的數(shù)據(jù)包通過另外一個(gè)物理網(wǎng)口發(fā)送。
若將部分客戶端和部分服務(wù)器端發(fā)送的數(shù)據(jù)包通過其中一個(gè)物理網(wǎng)口發(fā)送,將剩余客戶端和剩余服務(wù)器端發(fā)送的數(shù)據(jù)包通過另外一個(gè)物理網(wǎng)口發(fā)送,則在步驟S300a中,需要將部分客戶端和部分服務(wù)器端的IP地址,設(shè)置于第一物理網(wǎng)口,將剩余客戶端和剩余服務(wù)器端的IP地址,設(shè)置于第二物理網(wǎng)口,并將各客戶端和各服務(wù)器的MAC地址和IP地址,寫入靜態(tài)ARP規(guī)則中,以便完成待回放數(shù)據(jù)流的回放。
在本實(shí)施例中,將所述各客戶端和所述各服務(wù)器的媒體訪問控制MAC地址和IP地址,寫入靜態(tài)地址解析協(xié)議ARP規(guī)則,完成代理服務(wù)器的流量回放,適用于客戶端和服務(wù)器個(gè)數(shù)較少的流量回放,提高流量回放的效率。
圖3為又一個(gè)實(shí)施例的代理服務(wù)器流量回放方法的流程示意圖,如圖3所示的代理服務(wù)器流量回放方法,包括:
步驟S100b,獲取待回放原始數(shù)據(jù)。
具體的,同步驟S100。
步驟S200b,解析所述待回放原始數(shù)據(jù),獲取所述待回放原始數(shù)據(jù)中的各數(shù)據(jù)流,將解析出的各數(shù)據(jù)流按照發(fā)送方和接收方的地址組合進(jìn)行分組,獲取各待回放數(shù)據(jù)組,所述數(shù)據(jù)流為客戶端和服務(wù)器之間的一次會(huì)話的數(shù)據(jù)。
具體的,同步驟S200。
步驟S300b,將所述各待回放數(shù)據(jù)組中其中一端的數(shù)據(jù)包的源MAC地址填充為第一物理網(wǎng)口的MAC地址、目的MAC地址填充為第二物理網(wǎng)口的MAC地址,獲取虛擬發(fā)送數(shù)據(jù)包;將所述各待回放數(shù)據(jù)組中另一端的應(yīng)答數(shù)據(jù)包的源MAC地址填充為第二物理網(wǎng)口的MAC地址、目的MAC地址填充為第一物理網(wǎng)口的MAC地址,獲取虛擬應(yīng)答數(shù)據(jù)包。
具體的,在本實(shí)施例中,通過設(shè)置虛擬網(wǎng)卡實(shí)現(xiàn)數(shù)據(jù)包的尋址。首先,設(shè)置兩個(gè)虛擬網(wǎng)卡,分別為第一虛擬網(wǎng)口和第二虛擬網(wǎng)口。所有通過第一物理網(wǎng)口的數(shù)據(jù),發(fā)送時(shí)先通過第一虛擬網(wǎng)卡,該虛擬網(wǎng)卡的處理函數(shù)會(huì)將數(shù)據(jù)包的源MAC地址填充為第一物理網(wǎng)卡的地址,目的MAC地址填充為第二物理網(wǎng)卡的地址,然后將數(shù)據(jù)包傳遞給第一物理網(wǎng)口,通過第一物理網(wǎng)口發(fā)送數(shù)據(jù)包。在接收回放數(shù)據(jù)包時(shí),數(shù)據(jù)包先進(jìn)入到第一物理網(wǎng)口,通過第一物理網(wǎng)口的處理函數(shù)將數(shù)據(jù)包強(qiáng)制傳遞給第一虛擬網(wǎng)卡,再由第一虛擬網(wǎng)口接收數(shù)據(jù)。第二虛擬網(wǎng)口和第二物理網(wǎng)口相互配合工作的流程同上。
步驟S400b,將所述虛擬發(fā)送數(shù)據(jù)包通過第一虛擬網(wǎng)口發(fā)送至第一物理網(wǎng)口,再通過第一物理網(wǎng)口發(fā)送至代理服務(wù)器的第三物理網(wǎng)口;將所述虛擬應(yīng)答數(shù)據(jù)包通過第二虛擬網(wǎng)口發(fā)送至第二物理網(wǎng)口,再通過第二物理網(wǎng)口發(fā)送至所述代理服務(wù)器的第四物理網(wǎng)口。
具體的,所述虛擬發(fā)送數(shù)據(jù)包,包括將所有的客戶端發(fā)送的數(shù)據(jù)包通過其中一個(gè)物理網(wǎng)口發(fā)送,所有客戶端發(fā)送的數(shù)據(jù)包通過另外一個(gè)物理網(wǎng)口發(fā)送;或?qū)⒉糠挚蛻舳税l(fā)送的數(shù)據(jù)包和部分服務(wù)器端發(fā)送的數(shù)據(jù)包通過其中一個(gè)物理網(wǎng)口發(fā)送,剩余的客戶端和剩余的服務(wù)器端的數(shù)據(jù)包通過另外一個(gè)物理網(wǎng)口發(fā)送,將數(shù)據(jù)包的源MAC地址和目的MAC地址填充為相應(yīng)的物理網(wǎng)口的MAC地址即可。
在本實(shí)施例中,利用虛擬網(wǎng)卡實(shí)現(xiàn)待回放數(shù)據(jù)組的流量回放,由于虛擬網(wǎng)卡利用了虛擬網(wǎng)口,能夠自動(dòng)完成數(shù)量較多的通過代理服務(wù)器的客戶端和服務(wù)器之間的待回放數(shù)據(jù)的流量回放,提高代理服務(wù)器流量回放的效率。
圖4為一個(gè)實(shí)施例的代理服務(wù)器流量回放系統(tǒng)的結(jié)構(gòu)示意圖,如圖4所示的代理服務(wù)器流量回放系統(tǒng)包括:
待回放原始數(shù)據(jù)獲取模塊100,用于獲取待回放原始數(shù)據(jù);
待回放數(shù)據(jù)組獲取模塊200,用于解析所述待回放原始數(shù)據(jù),獲取所述待回放原始數(shù)據(jù)中的各數(shù)據(jù)流,將解析出的各數(shù)據(jù)流按照發(fā)送方和接收方的地址組合進(jìn)行分組,獲取各待回放數(shù)據(jù)組,所述數(shù)據(jù)流為客戶端和服務(wù)器之間的一次會(huì)話的數(shù)據(jù);包括數(shù)據(jù)流解析單元,用于解析所述待回放原始數(shù)據(jù),獲取所述待回放原始數(shù)據(jù)中的各數(shù)據(jù)流;待回放數(shù)據(jù)流獲取單元,用于提取所述數(shù)據(jù)流中的應(yīng)用層數(shù)據(jù),在所述提取后的各數(shù)據(jù)流中保留原始的發(fā)送方和接收方的地址組合信息,并標(biāo)記發(fā)送方向,獲取各待回放數(shù)據(jù)流;待回放數(shù)據(jù)組獲取單元,用于將所述各待回放數(shù)據(jù)流按照發(fā)送方和接收方的地址組合進(jìn)行分組,獲取各待回放數(shù)據(jù)組。所述待回放數(shù)據(jù)流獲取單元,還用于標(biāo)記所述應(yīng)用層數(shù)據(jù)包的長(zhǎng)度。所述數(shù)據(jù)流解析單元,還用于丟棄亂序包比例到達(dá)預(yù)設(shè)閾值的數(shù)據(jù)流。
數(shù)據(jù)包回放模塊300,用于通過第一物理網(wǎng)口將所述各待回放數(shù)據(jù)組中其中一端的數(shù)據(jù)包發(fā)送至代理服務(wù)器的第三物理網(wǎng)口;通過第二物理網(wǎng)口將所述各待回放數(shù)據(jù)組中另一端的應(yīng)答數(shù)據(jù)包發(fā)送至代理服務(wù)器的第四物理網(wǎng)口;其中,所述第一物理網(wǎng)口和所述代理服務(wù)器的第三物理網(wǎng)口直連,所述第二物理網(wǎng)口和所述代理服務(wù)器的第四物理網(wǎng)口直連。
在本實(shí)施例中,通過將待回放的原始數(shù)據(jù)進(jìn)行解析,將解析出的各數(shù)據(jù)流按照四元組進(jìn)行分組后,將其中一端的數(shù)據(jù)包通過第一物理網(wǎng)口發(fā)送至代理服務(wù)器的第三物理網(wǎng)口,將另一端的應(yīng)答數(shù)據(jù)包通過第二物理網(wǎng)口發(fā)送至代理服務(wù)器的第四物理網(wǎng)口,完成所述待回放原始數(shù)據(jù)的回放。本發(fā)明通過對(duì)待回放原始數(shù)據(jù)進(jìn)行整理后,再通過特定的物理網(wǎng)口對(duì)其中一端的數(shù)據(jù)包進(jìn)行發(fā)送,完成對(duì)代理服務(wù)器的流量回放,避免了對(duì)每個(gè)數(shù)據(jù)包都需要進(jìn)行連接跟蹤,能夠方便的實(shí)現(xiàn)對(duì)代理服務(wù)器的流量回放。
在本實(shí)施例中,通過解析所述待回放原始數(shù)據(jù)中的第七層數(shù)據(jù),標(biāo)記發(fā)送方向,再按照四元組進(jìn)行分組,獲取各待回放數(shù)據(jù)組,將所述每個(gè)回放數(shù)據(jù)包中的七層數(shù)據(jù)剝離出來,用于在代理服務(wù)器中回放七層數(shù)據(jù),對(duì)于七層以下的數(shù)據(jù)不進(jìn)行解析,提高代理服務(wù)器流量回放的效率。
在本實(shí)施例中,在對(duì)待回放數(shù)據(jù)組進(jìn)行解析后,標(biāo)記所述第七層數(shù)據(jù)包的長(zhǎng)度,用于對(duì)代理服務(wù)器流量回放的執(zhí)行效率進(jìn)行分析。
在本實(shí)施例中,丟棄亂序包比例達(dá)到預(yù)設(shè)閾值的數(shù)據(jù)流,可以保證用于流量回放的數(shù)據(jù)的完整性,提高對(duì)代理服務(wù)器流量回放的回放效率。
圖5為另一個(gè)實(shí)施例的代理服務(wù)器流量回放系統(tǒng)的結(jié)構(gòu)示意圖,如圖5所示的代理服務(wù)器流量回放系統(tǒng)包括:
待回放原始數(shù)據(jù)獲取模塊100a,用于獲取待回放原始數(shù)據(jù)。
待回放數(shù)據(jù)組獲取模塊200a,用于解析所述待回放原始數(shù)據(jù),獲取所述待回放原始數(shù)據(jù)中的各數(shù)據(jù)流,將解析出的各數(shù)據(jù)流按照發(fā)送方和接收方的地址組合進(jìn)行分組,獲取各待回放數(shù)據(jù)組,所述數(shù)據(jù)流為客戶端和服務(wù)器之間的一次會(huì)話的數(shù)據(jù)。
靜態(tài)地址添加模塊300a,用于將所述各待回放數(shù)據(jù)組中的所述各客戶端的網(wǎng)際協(xié)議IP地址,設(shè)置于所述第一物理網(wǎng)口,將所述各服務(wù)器的IP地址設(shè)置于所述第二物理網(wǎng)口;將所述各客戶端和所述各服務(wù)器的媒體訪問控制MAC地址和IP地址,寫入靜態(tài)地址解析協(xié)議ARP規(guī)則。
動(dòng)態(tài)地址添加模塊400a,用于將所述各待回放數(shù)據(jù)組中其中一端的數(shù)據(jù)包的源MAC地址填充為第一物理網(wǎng)口的MAC地址、目的MAC地址填充為第二物理網(wǎng)口的MAC地址,獲取虛擬發(fā)送數(shù)據(jù)包;將所述各待回放數(shù)據(jù)組中另一端的應(yīng)答數(shù)據(jù)包的源MAC地址填充為第二物理網(wǎng)口的MAC地址、目的MAC地址填充為第一物理網(wǎng)口的MAC地址,獲取虛擬應(yīng)答數(shù)據(jù)包。
數(shù)據(jù)包回放模塊500a,用于通過第一物理網(wǎng)口將所述各待回放數(shù)據(jù)組中其中一端的數(shù)據(jù)包發(fā)送至代理服務(wù)器的第三物理網(wǎng)口;通過第二物理網(wǎng)口將所述各待回放數(shù)據(jù)組中另一端的應(yīng)答數(shù)據(jù)包發(fā)送至代理服務(wù)器的第四物理網(wǎng)口;其中,所述第一物理網(wǎng)口和所述代理服務(wù)器的第三物理網(wǎng)口直連,所述第二物理網(wǎng)口和所述代理服務(wù)器的第四物理網(wǎng)口直連;還用于將所述虛擬發(fā)送數(shù)據(jù)包通過第一虛擬網(wǎng)口發(fā)送至第一物理網(wǎng)口,再通過第一物理網(wǎng)口發(fā)送至代理服務(wù)器的第三物理網(wǎng)口;將所述虛擬應(yīng)答數(shù)據(jù)包通過第二虛擬網(wǎng)口發(fā)送至第二物理網(wǎng)口,再通過第二物理網(wǎng)口發(fā)送至所述代理服務(wù)器的第四物理網(wǎng)口。
回放指標(biāo)獲取模塊600a,用于將所述第一物理網(wǎng)口和/或第二物理網(wǎng)口接收到的回放數(shù)據(jù)組,與所述待回放數(shù)據(jù)組進(jìn)行比對(duì),根據(jù)所述比對(duì)結(jié)果分析所述代理服務(wù)器的流量回放指標(biāo)。
在本實(shí)施例中,將所述各客戶端和所述各服務(wù)器的媒體訪問控制MAC地址和IP地址,寫入靜態(tài)地址解析協(xié)議ARP規(guī)則,完成代理服務(wù)器的流量回放,適用于客戶端和服務(wù)器較少的流量回放;利用虛擬網(wǎng)卡實(shí)現(xiàn)待回放數(shù)據(jù)組的流量回放,由于虛擬網(wǎng)卡利用了虛擬網(wǎng)口,能夠自動(dòng)完成數(shù)量較多的通過代理服務(wù)器的客戶端和服務(wù)器之間的待回放數(shù)據(jù)的流量回放,提高代理服務(wù)器流量回放的效率。
以上所述實(shí)施例的各技術(shù)特征可以進(jìn)行任意的組合,為使描述簡(jiǎn)潔,未對(duì)上述實(shí)施例中的各個(gè)技術(shù)特征所有可能的組合都進(jìn)行描述,然而,只要這些技術(shù)特征的組合不存在矛盾,都應(yīng)當(dāng)認(rèn)為是本說明書記載的范圍。
以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。