專利名稱:交換機加速arp表項老化的方法
技術(shù)領(lǐng)域:
本發(fā)明屬于網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,尤其涉及交換機中ARP(Address ResolutionProtocol,地址解析協(xié)議)表項的老化方法。
背景技術(shù):
通常的應(yīng)用中,交換機中ARP表項通過定時器進行老化,ARP管理任務(wù)為每個表項維護一個超時時間,在表項更新時設(shè)置超時值為系統(tǒng)ARP老化時間,ARP任務(wù)的定時器周期輪詢每個表項,查看表項的上一次更新距今是否已經(jīng)超過ARP表項的超時時間,如果超過,則發(fā)送ARP請求,收到響應(yīng),則更新ARP表項,從新設(shè)置超時值為系統(tǒng)ARP老化時間,否則刪除此ARP表項,并相應(yīng)完成其他軟硬件處理,例如,刪除硬件中ARP表項對應(yīng)的三層地址表項。
由于軟件處理能力的限制,交換機中ARP的老化時間都比較長。上面的ARP表項老化機制使交換機無法迅速檢測到用戶已經(jīng)離線,不能及時清除硬件中設(shè)置的已經(jīng)沒有意義的表項,而硬件表項的數(shù)目是有限的,不及時清除這些無意義的表項就可能影響其他路由的轉(zhuǎn)發(fā)。
發(fā)明內(nèi)容
通常情況下,交換機的FDB(Forwarding DataBase,轉(zhuǎn)發(fā)數(shù)據(jù)庫)表項老化時間遠小于ARP表項的老化時間,基于此,為采用FDB驅(qū)動ARP老化的機制提供了可能。
本發(fā)明的目的是提供一種交換機加速無用ARP表項老化的方法。
本發(fā)明的技術(shù)方案如下交換機加速無用ARP表項老化的方法,是由FDB表項老化驅(qū)動ARP表項老化。
所述的交換機加速ARP表項老化的方法,F(xiàn)DB可以按照如下方法驅(qū)動ARP表項老化當交換機中一個FDB表項老化時,則通知ARP任務(wù),ARP任務(wù)查找和這個FDB表項匹配的所有ARP表項,為這些ARP表項設(shè)置一個較小數(shù)值的超時時間,并發(fā)送相應(yīng)的ARP請求,如果在設(shè)置的超時時間內(nèi)收到響應(yīng),則從新為該ARP表項設(shè)置一個較大數(shù)值的超時時間,并從新學習FDB表項,否則,刪除ARP表項,并相應(yīng)完成其他軟硬件處理。所述的較大數(shù)值一般取系統(tǒng)中的ARP表項老化時間值。
其中為ARP表項設(shè)置的一個較小數(shù)值的超時時間,是相對于為ARP表項設(shè)置的老化時間而言。譬如,一個刷新的ARP表項的超時時間值設(shè)置為系統(tǒng)的ARP老化時間(一般為20分鐘),F(xiàn)DB觸發(fā)ARP老化時,該較小的超時時間值可以設(shè)為10秒,二者屬于不同數(shù)量級,主要是為加速ARP的老化,對該較小的超時時間的值沒有要求,只要滿足一次ARP請求相應(yīng)過程的時間即可。
圖1示出了一個具體的響應(yīng)處理流程。當FDB任務(wù)檢測到硬件表項老化時,發(fā)送消息到ARP任務(wù),通知FDB老化事件,消息中包括FDB表項的VLAN-ID和MAC地址。ARP任務(wù)消息中的VLAN-ID和MAC地址查找所有對應(yīng)的ARP表項,設(shè)置每個表項的超時時間為一個較小的數(shù)值(例如10秒),對每個ARP表項的IP地址發(fā)送ARP請求。如果在所設(shè)置的較小的超時時間內(nèi)接收到對應(yīng)的ARP響應(yīng),則從新學習對應(yīng)的FDB表項,設(shè)置ARP表項的超時時間為系統(tǒng)的ARP表項老化時間(例如20分鐘);否則,刪除ARP表項。
本發(fā)明的優(yōu)點和積極效果由于FDB表項的老化時間小于ARP表項的老化時間,這種機制使交換機能夠迅速地檢測到用戶是否離線,及時刪除無用的ARP表項,減少了不必要的軟硬件資源占用。
圖1為本發(fā)明的FDB驅(qū)動ARP老化機制流程圖,說明了響應(yīng)的處理流程。
圖2為FDB老化驅(qū)動ARP老化實例的ARP任務(wù)消息處理流程
具體實施例方式圖2所示的ARP任務(wù)消息流程圖,說明了一個具體實施本發(fā)明的FDB表項老化驅(qū)動ARP表項老化的實例。定時器消息是由定時器任務(wù)產(chǎn)生的,F(xiàn)DB老化事件是由FDB任務(wù)產(chǎn)生的,對圖中出現(xiàn)的時間數(shù)據(jù)的解釋如下Sys_current_time(圖中簡寫為Tc)系統(tǒng)當前時間,讀取系統(tǒng)時鐘來獲?。籈ntry_out_time(圖中簡寫為To)表項超時時間,當系統(tǒng)當前時間大于表項超時時間時,表項被刪除;arp_expire_time(圖中簡寫為Te)系統(tǒng)ARP老化時間,一個ARP表項上一次刷新距今如果超過系統(tǒng)ARP老化時間,則需要被刪除;伯克利衍生的系統(tǒng)中一般設(shè)置為20分鐘;fdb_expire_time(圖中簡寫為Tf)系統(tǒng)FDB老化時間,一個FDB表項上一次刷新距今如果超過系統(tǒng)FDB老化時間,則需要被刪除;FDB老化一般由硬件完成,硬件老化后通知軟件同步更新;這個時間通常遠小于系統(tǒng)ARP老化時間;wait_reply_time(圖中簡寫為Tr)等待響應(yīng)時間,接收到FDB老化通知后,如果在等待響應(yīng)時間內(nèi)沒有接收到ARP響應(yīng),則這個表項需要被刪除;這個時間要遠小于系統(tǒng)ARP老化時間,否則就失去了快速老化的意義;我們設(shè)置為10秒。
在系統(tǒng)接收到一個ARP報文后,ARP任務(wù)查找系統(tǒng)的ARP表,查看對應(yīng)的ARP表項是否存在,如果不存在,則在ARP表中增加一個新表項,設(shè)置表項的超時時間To為系統(tǒng)的ARP老化時間Te加上系統(tǒng)當前時間Tc(To=Tc+Te),如果表項已經(jīng)存在,則從新設(shè)置表項的超時時間To為系統(tǒng)的ARP老化時間Te加上系統(tǒng)當前時間Tc(To=Tc+Te)。
ARP任務(wù)在初始化時創(chuàng)建一個定時器,這個定時器每個周期向ARP任務(wù)發(fā)送一個定時器消息,ARP任務(wù)接收到定時器消息后,遍歷ARP表,比較每個表項的超時時間To和系統(tǒng)當前時間Tc,如果Tc大于To,則刪除這個表項。
當沒有FDB表項老化驅(qū)動ARP表項老化的機制時,一個表項如果在系統(tǒng)ARP老化時間Te內(nèi)沒有得到刷新,這個表項就會被刪除,也就是說,一個ARP表項創(chuàng)建后,如果沒有得到刷新,這個表項在系統(tǒng)中繼續(xù)存在的時間是系統(tǒng)的ARP老化時間Te(伯克利衍生的系統(tǒng)中,這個時間值通常設(shè)置為20分鐘)。這樣的情況下,一個與交換機相連的設(shè)備,即使已經(jīng)不進行任何報文的收發(fā),交換機仍然把對應(yīng)此設(shè)備的ARP表項保存了Te的時間,這就會占用不必要的軟硬件資源。
當系統(tǒng)中有了本發(fā)明的FDB表項老化驅(qū)動ARP表項老化的機制后,一個FDB表項老化后,F(xiàn)DB任務(wù)發(fā)送消息給ARP任務(wù),通知FDB表項老化事件。ARP任務(wù)接收到這個消息后,遍歷ARP表,查找和此FDB表項對應(yīng)的ARP表項,設(shè)置每個表項的超時時間To為系統(tǒng)當前時間Tc加上等待響應(yīng)時間Tr(To=Tc+Tr),并對表項的IP地址發(fā)送一個ARP請求。如果在Tr的時間內(nèi),系統(tǒng)接收到一個對應(yīng)的ARP響應(yīng)報文,則從新設(shè)置表項的超時時間To為系統(tǒng)的ARP老化時間Te加上系統(tǒng)當前時間Tc(To=Tc+Te);如果在Tr的時間內(nèi),這個ARP表項沒有得到刷新,ARP任務(wù)的定時器消息處理中就會把這個表項刪除。通常情況下,系統(tǒng)中ARP的表項老化時間都遠大于FDB表項的老化時間,當一個設(shè)備不進行任何報文收發(fā)時,經(jīng)過系統(tǒng)FDB老化時間Tf后對應(yīng)的FDB表項老化,有了FDB表項老化驅(qū)動ARP表項老化的機制后,F(xiàn)DB任務(wù)將這個事件通知ARP任務(wù),ARP為對應(yīng)的表項設(shè)置超時時間To為系統(tǒng)當前時間Tc加上等待響應(yīng)時間Tr(To=Tc+Tr),也就是說,如果得不到刷新(接收到對應(yīng)的ARP請求和響應(yīng)報文),這個表項在系統(tǒng)中繼續(xù)存在的時間為等待響應(yīng)時間Tr。
從上面的分析中可以看出,使用FDB表項驅(qū)動ARP表項老化的機制前,在連接的設(shè)備不進行任何報文收發(fā)的情況下,對應(yīng)此設(shè)備的ARP表項要在系統(tǒng)中繼續(xù)存在的時間為系統(tǒng)ARP老化時間Te;使用FDB表項驅(qū)動ARP表項老化的機制后,在連接的設(shè)備不進行任何報文收發(fā)的情況下,對應(yīng)此設(shè)備的ARP表項要在系統(tǒng)中繼續(xù)存在的時間為系統(tǒng)FDB老化時間Tf加上等待響應(yīng)時間Tr。通常情況下,系統(tǒng)FDB老化時間和等待響應(yīng)時間Tr都遠小于系統(tǒng)ARP老化時間Te,因此,在使用了FDB表項老化驅(qū)動ARP表項老化的機制后,一個設(shè)備停止報文的收發(fā)后,對應(yīng)的ARP表項能夠更加快速的老化。
權(quán)利要求
1.交換機加速ARP表項老化的方法,其特征在于,所述ARP表項老化是由FDB表項老化驅(qū)動的。
2.如權(quán)利要求1所述的交換機加速ARP表項老化的方法,其特征在于,所述FDB按照如下方法驅(qū)動ARP表項老化當交換機中一個FDB表項老化時,則通知ARP任務(wù),ARP任務(wù)查找和這個FDB表項匹配的所有ARP表項,為這些ARP表項設(shè)置一個較小數(shù)值的超時時間,并發(fā)送相應(yīng)的ARP請求,如果在設(shè)置的超時時間內(nèi)收到響應(yīng),則從新為該ARP表項設(shè)置一個較大數(shù)值的超時時間,并從新學習FDB表項,否則,刪除ARP表項。
3.如權(quán)利要求2所述的交換機加速ARP表項老化的方法,其特征在于,所述的較大數(shù)值為系統(tǒng)的ARP表項老化時間值。
全文摘要
本發(fā)明提供了一種交換機加速ARP表項老化的方法,是由FDB表項老化驅(qū)動ARP表項老化。當交換機中一個FDB表項老化時,則通知ARP任務(wù),ARP任務(wù)查找和這個FDB表項匹配的所有ARP表項,為這些ARP表項設(shè)置一個較小數(shù)值的超時時間,并發(fā)送相應(yīng)的ARP請求,如果在設(shè)置的超時時間內(nèi)收到響應(yīng),則從新為該ARP表項設(shè)置一個較大數(shù)值的超時時間,并從新學習FDB表項,否則,刪除ARP表項,并相應(yīng)完成其他軟硬件處理。采用本發(fā)明的技術(shù)方案,由于FDB表項的老化時間小于ARP表項的老化時間,這種機制使交換機能夠迅速地檢測到用戶是否離線,及時刪除無用的ARP表項,減少了不必要的軟硬件資源占用。
文檔編號H04Q3/545GK1484405SQ03153250
公開日2004年3月24日 申請日期2003年8月11日 優(yōu)先權(quán)日2003年8月11日
發(fā)明者鄭炎, 李忠志, 鄭 炎 申請人:北京港灣網(wǎng)絡(luò)有限公司