專利名稱:地址解析協(xié)議表項的處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及TCP/IP(傳輸控制協(xié)議/網(wǎng)際協(xié)議),具體地說,涉及ARP(地址解析協(xié)議)表項的處理方法,以使ARP支持并解決VPN(虛擬專用網(wǎng))中的多實例問題。
背景技術(shù):
網(wǎng)絡(luò)通信技術(shù)的飛速發(fā)展使網(wǎng)絡(luò)在現(xiàn)代社會中的應(yīng)用越來越普及。為了保證在公共網(wǎng)絡(luò)上傳輸數(shù)據(jù)的安全性,VPN技術(shù)正在越來越廣泛地被使用。VPN要將通過公共網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)進行加密,因此對于VPN來說,公共網(wǎng)絡(luò)就如同是使用租用線路的專用網(wǎng)絡(luò)。然而,并非所有的通信系統(tǒng)都支持VPN。對于不支持VPN的系統(tǒng),任何一個IP地址都必須是唯一的,從而可以通過IP地址唯一索引到一個ARP表項。
在實際的通信系統(tǒng)中,IP地址是作為互聯(lián)網(wǎng)的邏輯地址,因此IP地址與實際網(wǎng)絡(luò)的固有地址之間必須有對應(yīng)關(guān)系。ARP的主要目的就是實現(xiàn)地址解析,即形成MAC(媒體訪問控制)地址與IP地址的對應(yīng)關(guān)系。在路由器、三層交換機等產(chǎn)品中,ARP表項里還包含出端口、出接口等信息。在不支持VPN的系統(tǒng)中,由于IP地址的唯一性,故而不存在多實例的問題。但是對于支持VPN的系統(tǒng),不同的VPN中會存在IP地址相同的ARP表項,因此根據(jù)IP地址就不能唯一地索引到一個ARP表項,從而產(chǎn)生了需要通信系統(tǒng)支持多實例的問題。
在這種情況下,要想索引到VPN中的目標(biāo)ARP表項,就需要區(qū)分開各個VPN。為此可以采取分別將各個不同VPN的ARP表項中的IP地址IPAddr加上偏移量X的方法。換言之,通過IPAddr+X來索引各VPN的ARP表項。X可根據(jù)各個通信系統(tǒng)實現(xiàn)方案的特點而有不同的選擇。
在以往不支持VPN的系統(tǒng)中,通過IP地址索引ARP表項的一般方法是,通過對IP地址進行HASH(散列算法)的處理,將ARP表項組織起來,構(gòu)成HASH表(哈希表,或HASH數(shù)組)。在查找ARP表項時,根據(jù)IP地址進行HASH處理,得到HASH數(shù)組的下標(biāo)。然后再遍歷沖突鏈。沖突鏈?zhǔn)侵窰ASH值相同,都放在同一個HASH數(shù)組里的不同表項,通常以鏈表形式組織起來。在遍歷過程中,依次對各ARP表項與相關(guān)規(guī)則進行匹配,以找到所需要的表項。圖1顯示了表項組織結(jié)構(gòu)的示意圖。
但是,對于支持VPN的系統(tǒng),如果還按照上述現(xiàn)有技術(shù)的方法對IP地址進行HASH處理,則不同的VPN中IP地址相同的ARP表項就都掛在一個HASH數(shù)組(鏈)下,沖突鏈就可能會很長,使查表速度變慢,從而降低系統(tǒng)的運行速度。
發(fā)明內(nèi)容
本發(fā)明的目的就是要克服現(xiàn)有技術(shù)中的上述問題,使得支持VPN的通信系統(tǒng)能夠以與不支持VPN的系統(tǒng)幾乎相同的速度來查詢ARP表項,以適應(yīng)VPN體系中的多實例情況,并達到很好地支持VPN體系的目的。
根據(jù)本發(fā)明,提供了一種ARP表項的處理方法,包括(1)根據(jù)VPN的特定參數(shù)將不同VPN的ARP表項分別放入不同的HASH數(shù)組;(2)比較IP地址以查詢HASH數(shù)組中的ARP表項。
在本發(fā)明的一種實施方案中,上述步驟(1)包括將VPN的ARP表項中的IP地址加上VPN特定的參數(shù);對IP地址與所述參數(shù)相加的結(jié)果進行HASH處理,得到經(jīng)HASH處理后的ARP表項的HASH數(shù)組。
在本發(fā)明的上述方法中,所述的參數(shù)例如為VLANid,RdIndex等。
根據(jù)上述方法,當(dāng)查詢ARP表項時,只需比較其IP地址即可。從而使得支持VPN的系統(tǒng)在查詢ARP表項時的速度與以往不支持VPN的系統(tǒng)(非VPN系統(tǒng))的查詢速度幾乎一樣。因此本發(fā)明的方法可以很好地支持VPN體系,并可適應(yīng)ARP的多實例情況。而且,本發(fā)明在使原有的非VPN系統(tǒng)過渡到VPN系統(tǒng)的過程中,僅就ARP協(xié)議層而言,對系統(tǒng)的改動很小。
另外,當(dāng)通信系統(tǒng)中的系統(tǒng)內(nèi)存很大,可以支持足夠的ARP表項數(shù)目時,上述步驟(1)也可以這樣來實現(xiàn)在創(chuàng)建一個VPN時,按照該VPN的索引RdIndex向通信系統(tǒng)中專門負責(zé)系統(tǒng)內(nèi)存管理的模塊申請一套ARPHASH數(shù)組;通信系統(tǒng)判斷內(nèi)存容量情況,在內(nèi)存容量允許分配新的所述HASH數(shù)組時,向該VPN分配所述HASH數(shù)組;將該VPN的ARP表項進行HASH處理后的值放入所分配的HASH數(shù)組中。這樣,各個VPN可以在自己的HASH數(shù)組中按常規(guī)的方法那樣通過對IP地址進行HASH處理而組織自己的ARP表項。這樣就不再使用前面所述的將RdIndex或VLANid與IPAddr相加后再進行HASH處理的方法了。在查表時也可以按前文所述的現(xiàn)有技術(shù)的方法來進行。
該實施方案可以有效地縮短ARP表項的沖突鏈長度,使支持VPN的系統(tǒng)可以達到與不支持VPN的系統(tǒng)一樣的ARP表項查找速度。從ARP方面解決了通信系統(tǒng)對VPN的支持問題。
圖1顯示了ARP表項組織結(jié)構(gòu)的示意圖。
具體實施例方式
通過下面對本發(fā)明的優(yōu)選實施方案的說明,本領(lǐng)域技術(shù)人員對本發(fā)明的特征及優(yōu)點將有更清楚和全面的理解。
根據(jù)本發(fā)明的優(yōu)選實施方案,為適應(yīng)在支持VPN的系統(tǒng)中出現(xiàn)多個分屬于不同VPN的ARP表項具有相同IP地址的情況,對于現(xiàn)有技術(shù)中的ARP表項的散列處理方法進行修改。具體地說,就是將現(xiàn)有技術(shù)中的對IP地址IPAddr進行HASH處理改為對IPAddr與VLAN(虛擬局域網(wǎng))的參數(shù)相加后的結(jié)果來進行HASH處理。對于同一VLAN,可以選擇某一類型的參數(shù)與IPAddr相加,只要該參數(shù)對于VLAN是特定且唯一的即可。同時,對于不同的多個VLAN,所選擇的參數(shù)類型應(yīng)一樣。這樣,即使是不同VLAN的ARP表項具有相同的IP地址,由于不同的VLAN的ARP表項的HASH值不一樣,從而避免了相同IP地址的ARP表項都掛在同一個HASH鏈下的情況,故而縮短了沖突鏈的長度。因此,利用本發(fā)明的方法,在查詢支持VPN系統(tǒng)的ARP表項的情況下,在得到HASH值后再比較ARP表項的各字段信息時,只需要比較IP地址即可,無需再比較其他信息。這與在不支持VPN系統(tǒng)情況下查詢ARP表項時的操作基本相同,即只需要查詢IP地址即可。這樣就可提高查表速度,從而避免了采用現(xiàn)有技術(shù)的按照IP地址進行HASH處理時查表速度變慢的問題。
下面以幾個優(yōu)選實施例來更具體地說明本發(fā)明,以使本領(lǐng)域的技術(shù)人員能夠更清楚地理解本發(fā)明的技術(shù)方案。
實施例1在該實施例1中,ARP表項組織結(jié)構(gòu)與圖1所示的ARP表項的組織結(jié)構(gòu)是一樣的。而實施例1與現(xiàn)有技術(shù)的不同點即在于各自使用了不同的HASH方法。在本例中,是對IPAddr+VLANid進行HASH處理,以得到HASH值。其中VLANid代表虛擬局域網(wǎng)VLAN的標(biāo)識符。具體的處理算法例如可為((IpAddr>>22)+(IpAddr>>11)+IpAddr+(VLANid<<4))%TableLen;
這樣,在用IPAddr+VLANid進行如上式所示那樣的HASH處理之后,由于不同的VPN的VLANid是不同的,因此即使不同VLAN的ARP表項具有相同IP地址,其HASH值也將是不一樣的。而只有HASH值相同的ARP表項才放在一個HASH數(shù)組中。所以不同的VLAN的ARP表項就不會放在相同的數(shù)組中。這樣就避免了在現(xiàn)有技術(shù)中由于只對IP地址進行HASH處理而將不同VLAN中具有相同IP地址的ARP表項都掛在同一個HASH數(shù)組(鏈)下的情況。由此,縮短了沖突鏈的長度。
在查表時,要得到HASH值后再比較ARP表項的各字段信息。利用本發(fā)明上述實施例的方法,由于對于具有相同IP地址的不同VLAN的ARP表項,其HASH值是不一樣的,所以不同VLAN的具有相同IP地址的ARP表項不在相同的HASH數(shù)組(鏈)中。這樣在查表時只需要象現(xiàn)有技術(shù)中那樣僅比較IP地址即可,無需再比較其他信息。也就是說,利用該實施例的方法,在查詢ARP表項時的操作與現(xiàn)有技術(shù)是基本相同的。而且查表速度也與不支持VPN的通信系統(tǒng)中的查表速度幾乎一樣。
采用上述實施例1的方法,對ARP表項經(jīng)HASH處理后的HASH數(shù)組結(jié)構(gòu)(ARP表項的組織結(jié)構(gòu))和不支持VPN系統(tǒng)中的幾乎一樣。這樣,在使不支持VPN的通信系統(tǒng)過渡到支持VPN的通信系統(tǒng)時,在ARP方面對系統(tǒng)幾乎不需要作什么改動。
目前,分布式結(jié)構(gòu)已成為新一代路由器和交換機的重要特征之一。對于具有分布式結(jié)構(gòu)的路由器和交換機,需要進行微碼ARP報文處理。在上層協(xié)議處理模塊的ARP表項組織方式可以采用上述實施例1所描述的方法,而微碼由于考慮到可能采用不同網(wǎng)絡(luò)處理芯片,所以ARP表項組織方式不必局限于這種方法,但是其key值必須至少包含IPAddr,VLANid兩個信息。例如,當(dāng)采用IBM的處理芯片時,微碼中的ARP表項組織就可以采用DT+Patricia Tree的方式,key值為IPAddr+VLANid+端口號。
本領(lǐng)域的技術(shù)人員可以理解,使用本發(fā)明實施例1的上述方法,ARP協(xié)議對ARP報文的接收、上送、下發(fā)處理與現(xiàn)有技術(shù)的處理方式是相同的。即采用本發(fā)明實施例1的方法的通信系統(tǒng),其ARP對VPN與非VPN的ARP報文的處理方式是一樣的,因而ARP無需對是否在通信系統(tǒng)中存在VPN作出判斷,也無需對ARP報文作其它特殊的處理。這樣,在ARP方面就可以使通信系統(tǒng)很好地支持VPN。
另外,采用本發(fā)明的上述實施例1的方法,在通信系統(tǒng)支持的ARP表項數(shù)目是確定的情況下,對于支持和不支持VPN的系統(tǒng)來說,其ARP表項的內(nèi)存開銷是一樣的。不需要針對不同的VPN再靜態(tài)申請大量的HASH數(shù)組。
實施例2在該實施例2中,ARP表項組織結(jié)構(gòu)仍與圖1所示的ARP表項的組織結(jié)構(gòu)相同。而實施例2與現(xiàn)有技術(shù)及上述實施例1的不同點在于,在本例中是對IPAddr+RdIndex進行HASH處理,以得到HASH值。其中RdIndex代表不同VPN的索引。具體的處理算法例如可為((IpAddr>>22)+(IpAddr>>11)+IpAddr+(RdIndex<<4))%TableLen;這樣,在用IPAddr+RdIndex進行如上式所示那樣的HASH處理之后,由于不同VPN的RdIndex是不同的,所以不同VPN的ARP表項即使具有相同的IP地址,但在HASH處理后所得到的值是不一樣的。這樣,實施例2就具有與實施例1同樣的優(yōu)點,解決了在現(xiàn)有技術(shù)只對IP地址進行HASH處理而造成在支持VPN的通信系統(tǒng)中沖突鏈過長使查表速度變慢的問題。
同樣,采用上述實施例2的方法,對ARP表項經(jīng)HASH處理后的數(shù)組結(jié)構(gòu)和不支持VPN的系統(tǒng)幾乎一樣。這樣,在使不支持VPN的通信系統(tǒng)過渡到支持VPN的通信系統(tǒng)時,對系統(tǒng)幾乎不需要作什么改動。
另一方面,對于具有分布式結(jié)構(gòu)的路由器、交換機,如采用本發(fā)明的上述實施例的方法,微碼里的ARP表項組織方式的具體HASH算法同樣可以不限于該實施例的方法。但是其key值必須至少包含IPAddr,RdIndex兩個信息。例如,當(dāng)采用IBM的處理芯片時,微碼中的ARP表項組織就可以采用DT+Patricia Tree的方式,key值為IPAddr+RdIndex+端口號。
本領(lǐng)域的技術(shù)人員可以理解,使用本發(fā)明的上述實施例2的方法,與實施例1的方法一樣,ARP協(xié)議對ARP報文的接收、上送、下發(fā)處理與現(xiàn)有技術(shù)的處理方式是相同的。即采用本發(fā)明實施例2的方法的通信系統(tǒng),其ARP也不需要對是否在通信系統(tǒng)中存在VPN作出判斷,亦無需作其它特殊的處理。
同樣,采用本發(fā)明的上述實施例2的方法,在通信系統(tǒng)主機支持的ARP表項數(shù)目是確定的情況下,對于支持和不支持VPN的系統(tǒng)來說,其ARP表項的內(nèi)存開銷是一樣的。不需要針對不同的VPN再靜態(tài)申請大量的HASH數(shù)組。
根據(jù)本發(fā)明的另一實施方案,在通信系統(tǒng)中的系統(tǒng)內(nèi)存很大,可以支持足夠的ARP表項數(shù)目時,可以采用不同的VPN可以各自維護一套自己的存放ARP表項的ARP HASH數(shù)組。這樣可以更好地隔離不同VPN中的ARP表項,即避免不同VPN中具有相同IP地址的ARP表項在同一HASH數(shù)組中。
具體方法是,在創(chuàng)建一個VPN時,按照該VPN的索引RdIndex向通信系統(tǒng)中專門負責(zé)系統(tǒng)內(nèi)存管理的模塊申請一套ARP HASH數(shù)組。通信系統(tǒng)判斷內(nèi)存容量情況,在內(nèi)存容量允許為該VPN分配新的HASH數(shù)組時,則向該VPN分配HASH數(shù)組。這樣就可以對該VPN的ARP表項進行常規(guī)的HASH處理,將處理后的值放入所分配的HASH數(shù)組中。
根據(jù)上述方法,不同的VPN的各自ARP HASH數(shù)組的組織結(jié)構(gòu)與沒有支持VPN的系統(tǒng)中的ARP HASH數(shù)組結(jié)構(gòu)是一致的。這樣,各個VPN可以在自己的HASH數(shù)組中按常規(guī)的方法那樣通過對IP地址進行HASH處理而組織自己的ARP表項。這樣就不再使用前面所述的將RdIndex或VLANid與IPAddr相加后再進行HASH處理的方法了。在查表時也可以按前文所述的現(xiàn)有技術(shù)的方法來進行。
該實施方案可以有效地縮短ARP表項的沖突鏈長度,使支持VPN的系統(tǒng)可以達到與不支持VPN的系統(tǒng)一樣的ARP表項查找速度。從ARP方面解決了通信系統(tǒng)對VPN的支持問題。
上文結(jié)合具體的例子對本發(fā)明的技術(shù)方案進行了解釋,目的是為了使本領(lǐng)域技術(shù)人員更好地理解本發(fā)明的精神實質(zhì)。因此本發(fā)明的具體限定并不限于上述說明中的具體內(nèi)容,例如以及散列算法所使用的公式以及參數(shù)VLANid等。本領(lǐng)域技術(shù)人員可以理解,在本發(fā)明的精神和實質(zhì)的基礎(chǔ)上可以進行各種修改和等同方式的替換。
權(quán)利要求
1.地址解析協(xié)議(ARP)表項的處理方法,其特征在于,包括如下步驟(1)根據(jù)虛擬專用網(wǎng)(VPN)的特定參數(shù)將不同VPN的ARP表項分別放入不同的散列(HASH)數(shù)組;(2)比較IP(互聯(lián)網(wǎng)協(xié)議)地址以查詢HASH數(shù)組中的ARP表項。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟(1)包括(1-1)將VPN的ARP表項中的IP地址加上VPN特定的參數(shù);(1-2)對IP地址與所述參數(shù)相加的結(jié)果進行HASH處理,得到經(jīng)HASH處理后的ARP表項的HASH數(shù)組。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟(1)包括(1-1′)按照所述VPN的所述特定參數(shù)向通信系統(tǒng)申請用于存放該VPN的ARP表項的HASH數(shù)組;(1-2′)通信系統(tǒng)判斷內(nèi)存容量情況,在內(nèi)存容量允許分配新的所述HASH數(shù)組時,向該VPN分配所述HASH數(shù)組;(1-3′)對該VPN的ARP表項進行HASH處理,將處理后的值放入所述分配的HASH數(shù)組中。
4.根據(jù)權(quán)利要求1-3任一項所述的方法,其特征在于,所述的參數(shù)為VLANid或RdIndex。
全文摘要
本發(fā)明提供了一種ARP表項的處理方法,包括根據(jù)VPN的特定參數(shù)區(qū)分不同VPN的ARP表項的HASH數(shù)組;比較IP地址以查詢HASH數(shù)組中的ARP表項。根據(jù)本發(fā)明的一種實施方案,上述步驟(1)包括將VPN的ARP表項中的IP地址加上VPN特定的參數(shù);對IP地址與所述參數(shù)相加的結(jié)果進行HASH處理,得到經(jīng)HASH處理后的ARP表項的HASH數(shù)組。這樣,當(dāng)通信系統(tǒng)當(dāng)查詢ARP表項時,只需比較其IP地址即可。從而使得ARP能夠支持VPN,并且實現(xiàn)ARP的快速查表。
文檔編號H04L29/06GK1531298SQ03119348
公開日2004年9月22日 申請日期2003年3月17日 優(yōu)先權(quán)日2003年3月17日
發(fā)明者朱偉, 朱 偉 申請人:華為技術(shù)有限公司