本發(fā)明涉及網(wǎng)絡(luò)設(shè)備的協(xié)議一致性測試方法以及設(shè)備。
背景技術(shù):
協(xié)議一致性測試是檢驗開放系統(tǒng)互連(OSI)產(chǎn)品的協(xié)議實現(xiàn)與OSI協(xié)議標(biāo)準(zhǔn)一致性程度的測試。由于OSI協(xié)議標(biāo)準(zhǔn)本身具有許多可供選擇的功能和需要設(shè)定的參數(shù),不同的OSI產(chǎn)品設(shè)計者和生產(chǎn)者也可能會對相同的協(xié)議標(biāo)準(zhǔn)作出不同的理解和解釋,以及一些人為差錯,都會使采用相同協(xié)議標(biāo)準(zhǔn)的OSI產(chǎn)品有所差異,影響OSI產(chǎn)品之間的互操作。因此,協(xié)議一致性測試的目的就在于提高OSI產(chǎn)品之間的互操作性。
目前協(xié)議一致性測試自動化的方法主要有基于儀表的測試組件,例如SmartBits和IXIA提供的儀表組件等等。現(xiàn)有的方法依賴于儀表設(shè)備,可移植性差,而且設(shè)備成本非常高。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是提供一種可以用于多種協(xié)議的一致性測試的方案。
為此,按照本發(fā)明一個方面,一種協(xié)議一致性測試方法,包括如下步驟:利用scapy生成測試數(shù)據(jù)包;將該測試數(shù)據(jù)包發(fā)送至網(wǎng)絡(luò)設(shè)備;利用scapy獲取該網(wǎng)絡(luò)設(shè)備的反饋數(shù)據(jù)包;以及,根據(jù)該協(xié)議測試數(shù)據(jù)包和該反饋數(shù)據(jù)包判斷該網(wǎng)絡(luò)設(shè)備是否具有協(xié)議一致性。
進(jìn)一步,該方法還包括:在生成該協(xié)議測試包之前獲取該網(wǎng)絡(luò)設(shè)備的端口地址。
進(jìn)一步,該方法在發(fā)送該測試數(shù)據(jù)包之前檢查與網(wǎng)絡(luò)設(shè)備的鏈路是否正常。
其中,該測試數(shù)據(jù)包為ARP請求包,該反饋數(shù)據(jù)包為ARP反饋包。進(jìn)一步,該方法根據(jù)ARP協(xié)議規(guī)范判斷所發(fā)送的ARP請求包與獲取的ARP反饋包是否對應(yīng)。
按照本發(fā)明又一方面,一種協(xié)議一致性測試設(shè)備,其具有至少一個網(wǎng)絡(luò)端口,其中,該設(shè)備包括:數(shù)據(jù)包生成單元,其利用scapy生成測試數(shù)據(jù)包;數(shù)據(jù)包發(fā)送單元,其將該測試數(shù)據(jù)包通過該至少一個網(wǎng)絡(luò)端口發(fā)送至網(wǎng)路設(shè)備;數(shù)據(jù)包獲取單元,其利用scapy獲取該網(wǎng)絡(luò)設(shè)備的反饋數(shù)據(jù)包;一致性判斷單元,其根據(jù)該協(xié)議測試數(shù)據(jù)包和該反饋數(shù)據(jù)包判斷該網(wǎng)絡(luò)設(shè)備是否具有協(xié)議一致性。
進(jìn)一步,該設(shè)備還包括地址獲取單元,其獲取該網(wǎng)絡(luò)設(shè)備的地址,并發(fā)送至該數(shù)據(jù)包生成單元以升車能夠測試數(shù)據(jù)包。
進(jìn)一步,該設(shè)備還包括鏈路檢查單元,其用以檢查該設(shè)備與所述網(wǎng)絡(luò)設(shè)備之間的鏈路是否正常。
其中,該測試數(shù)據(jù)包為ARP請求包,該反饋數(shù)據(jù)包為ARP反饋包。進(jìn)一步,該一致性判斷單元根據(jù)ARP協(xié)議規(guī)范判斷所發(fā)送的ARP請求包與獲取的ARP反饋包是否對應(yīng)。
與現(xiàn)有最好技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:
1.物理成本低,擴(kuò)展性比較好;
2.可以通過scapy生成協(xié)議一致性測試中所需要的任意數(shù)據(jù)包。
附圖說明
下面將以明確易懂的方式,結(jié)合附圖說明優(yōu)選實施方式,對上述特性、技術(shù)特征、優(yōu)點(diǎn)及其實現(xiàn)方式予以進(jìn)一步說明。
圖1為按照本發(fā)明一個實施例的協(xié)議一致性測試方法的示意圖。
圖2為按照本發(fā)明一個實施例的協(xié)議一致性測試設(shè)備的示意圖。
附圖標(biāo)號說明:
100協(xié)議一致性測試設(shè)備
110地址獲取單元 120鏈路檢查單元 130數(shù)據(jù)包生成單元
140數(shù)據(jù)包發(fā)送單元 150數(shù)據(jù)包獲取單元 160一致性判斷單元
200網(wǎng)絡(luò)設(shè)備
具體實施方式
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對照附圖說明本發(fā)明的具體實施方式。顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖,并獲得其他的實施方式。
如圖1所示的,一種協(xié)議一致性測試方法,其用以對網(wǎng)絡(luò)設(shè)備進(jìn)行協(xié)議一致性測試。
在該方法中,先獲取該網(wǎng)絡(luò)設(shè)備的網(wǎng)絡(luò)地址。該網(wǎng)絡(luò)地址可以是IP地址和/或MAC地址。
以及,檢查與該網(wǎng)絡(luò)設(shè)備之間的鏈接是否正常。具體地,檢查與該網(wǎng)絡(luò)設(shè)備上所要進(jìn)行測試的網(wǎng)絡(luò)端口的鏈路是否正常。
利用scapy形成測試數(shù)據(jù)包。該測試數(shù)據(jù)包根據(jù)所要測試的協(xié)議規(guī)范進(jìn)行構(gòu)件。在一個實施例中,可以根據(jù)ARP協(xié)議,將該測試數(shù)據(jù)包構(gòu)建為ARP請求包。
鏈路檢查可以與形成數(shù)據(jù)包同時進(jìn)行,或者先后進(jìn)行。
將該測試數(shù)據(jù)包發(fā)送至該網(wǎng)絡(luò)設(shè)備的待測端口。
然后,利用scapy獲取從該網(wǎng)絡(luò)設(shè)備的待測端口發(fā)送的反饋數(shù)據(jù)包。在一個實施例中,該反饋數(shù)據(jù)包為ARP反饋包。
基于所測試的協(xié)議規(guī)范,根據(jù)該測試數(shù)據(jù)包和該反饋數(shù)據(jù)包確定該網(wǎng)絡(luò)設(shè)備是否具有協(xié)議一致性。例如,對于ARP協(xié)議,其規(guī)范中規(guī)定了ARP請求包和反饋包的格式和內(nèi)容,則根據(jù)獲取的ARP反饋包的內(nèi)容和格式是否符合ARP協(xié)議,并且與該ARP請求包對應(yīng)。如果ARP反饋包符合ARP協(xié)議并且與該ARP請求包對應(yīng),則該網(wǎng)絡(luò)設(shè)備的ARP協(xié)議具有一致性。
在一個例子中,可以采用正則表達(dá)式方法分析該ARP反饋包。正則表達(dá)式是一種規(guī)范表達(dá)式,其原理是用一個字符串表示一個表達(dá)式規(guī)則,并且驗證多個字符串是否符合該規(guī)則。由于特定協(xié)議的網(wǎng)絡(luò)數(shù)據(jù)包具有固定的格式,那么,通過正則表達(dá)式描述這種格式是可能的??梢栽跀?shù)據(jù)包文中設(shè)置特殊的符號或者標(biāo)記,通過正則表達(dá)式表示這些標(biāo)記。然后在接收到的反饋報文中檢查是否存在這些標(biāo)記,也就是是否與正則表達(dá)式匹配。這樣就可以判斷反饋數(shù)據(jù)包是否符合協(xié)議規(guī)范,以及是否與測試數(shù)據(jù)包對應(yīng),從而能夠判斷是否存在協(xié)議一致性。
圖2示出對上述方法對應(yīng)的協(xié)議一致性測試設(shè)備100,其用于對網(wǎng)絡(luò)設(shè)備200進(jìn)行一致性測試。該測試設(shè)備100包括地址獲取單元110,其用于獲取該網(wǎng)絡(luò)設(shè)備200的地址,尤其是獲取所需要測試的網(wǎng)絡(luò)端口的地址,例如WAN端口或LAN端口。該測試設(shè)備100包括鏈路檢查單元120,用于檢查該測試設(shè)備100與該網(wǎng)絡(luò)設(shè)備200之間的鏈路是否正確,尤其是對應(yīng)的網(wǎng)絡(luò)端口的鏈路是否正確。
該測試設(shè)備100還包括數(shù)據(jù)包生成單元130,其根據(jù)該網(wǎng)絡(luò)設(shè)備的地址、利用scapy形成測試數(shù)據(jù)包。在一個例子中,該測試數(shù)據(jù)包可以是根據(jù)ARP協(xié)議構(gòu)建的ARP請求包。
該測試設(shè)備100還包括數(shù)據(jù)包發(fā)送單元140,其將所構(gòu)建的測試數(shù)據(jù)包發(fā)送至該網(wǎng)絡(luò)設(shè)備200,尤其是待測試的端口。
該測試設(shè)備100還包括數(shù)據(jù)包獲取單元150,其利用scapy獲取該網(wǎng)絡(luò)設(shè)備發(fā)送的反饋數(shù)據(jù)包。在一個例子中,該反饋數(shù)據(jù)包為ARP反饋包。
該測試設(shè)備100還包括一致性判斷單元160,其基于所要測試的協(xié)議規(guī)范、根據(jù)該測試數(shù)據(jù)包和反饋數(shù)據(jù)包判斷該網(wǎng)絡(luò)設(shè)備是否具備協(xié)議一致性。具體地,該一致性判斷單元160基于協(xié)議規(guī)則和該測試數(shù)據(jù)包的內(nèi)容形成正則表達(dá)式,并且判斷該反饋數(shù)據(jù)包是否符合該正則表達(dá)式,如果符合則該網(wǎng)絡(luò)設(shè)備具備協(xié)議一致性。
應(yīng)當(dāng)說明的是,上述實施例均可根據(jù)需要自由組合。以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。