本發(fā)明涉及對在形成了通信網(wǎng)絡的通信裝置之間接收和發(fā)送的幀進行中繼的中繼裝置。
背景技術(shù):
在通信網(wǎng)絡上進行幀傳輸時,利用中繼裝置來作為基于幀的地址信息決定發(fā)送端口并傳送的裝置。中繼裝置例如有二層交換機。
二層交換機具有將幀的發(fā)送源mac(mediaaccesscontrol:介質(zhì)訪問控制)地址和接收該幀的通信端口對應起來的地址表。二層交換機通過參照該地址表,對接收到的幀決定是否需要傳送和登記或者決定傳送目標。二層交換機主要在執(zhí)行以下5種處理時訪問地址表(例如參照專利文獻1、2)。第一種處理是在發(fā)送幀時對發(fā)送目標mac地址(以下記為macda:destinationaddress-目標地址)進行檢索的處理。第二種處理是在接收幀時對發(fā)送源mac地址(以下記為macsa:sourceaddress-源地址)進行檢索的處理。第三種處理是對發(fā)送源mac地址進行學習的處理。第四種處理是地址的清除處理。第五種處理是將一定時間內(nèi)沒有接收到幀的地址刪除的老化處理。
現(xiàn)有技術(shù)文獻
專利文獻
專利文獻1:日本專利特開2013-258497號公報
專利文獻2:日本專利特開2008-35437號公報
技術(shù)實現(xiàn)要素:
發(fā)明所要解決的技術(shù)問題
近年來,對于高速數(shù)據(jù)通信的需求越來越大,網(wǎng)絡構(gòu)成的要素也被要求高速地進行工作。對于中繼裝置,也要求每一個接收幀都實施上述的訪問處理,然而,中繼裝置的性能趕不上幀輸入率的提高,從而不能充分地發(fā)揮實現(xiàn)高速、高品質(zhì)幀傳輸?shù)墓δ堋?/p>
現(xiàn)有技術(shù)的中繼裝置在對地址表內(nèi)的條目實施清除處理的過程中,當產(chǎn)生了老化處理的請求時,其執(zhí)行的控制是在對所有地址完成了清除處理之后,再對地址表內(nèi)的所有地址實施老化處理。因此,在隨著高速化,裝置規(guī)模變大,地址表內(nèi)可存儲的地址數(shù)量增加的情況下,清除處理或老化處理所帶來的對地址表的訪問次數(shù)也增加,因而,對于中繼裝置所要求的性能變高。地址表存放在中繼裝置內(nèi)的存儲器中,因此,隨著上述訪問次數(shù)的增加,對于存儲器所要求的性能也變高。因而,存在存儲器的成本和功耗增加的問題。
本發(fā)明中,為了解決上述問題,其目的在于通過提高對地址表的訪問處理的效率,削減對地址表的處理負荷,從而應對高速的幀傳輸,并降低存儲器的成本和功耗。
解決技術(shù)問題所采用的技術(shù)方案
本發(fā)明的一個方式所涉及的中繼裝置包括:接收和發(fā)送幀的多個通信端口;存儲包含有地址信息的地址管理信息的存儲部,該地址信息將所述多個通信端口中包含的一個通信端口與該一個通信端口的連接目標的通信地址對應起來;基于所述地址管理信息對所述多個通信端口各自接收到的幀進行傳送的切換控制部;請求伴隨所述地址管理信息的更新而進行的處理的請求部;以及接受來自所述請求部的請求并訪問所述地址管理信息以進行所請求的處理的訪問控制部,所述訪問控制部在從所述請求部接受第一請求并進行基于該第一請求的第一處理時,從所述請求部接收到第二請求的情況下,則與所述第一處理并行地進行基于該第二請求的第二處理。
本發(fā)明的另一方式所涉及的中繼裝置包括:接收和發(fā)送幀的多個通信端口;存儲包含有地址信息的地址管理信息的存儲部,該地址信息將所述多個通信端口中包含的一個通信端口與該一個通信端口的連接目標的通信地址對應起來;基于所述地址管理信息對所述多個通信端口各自接收到的幀進行傳送的切換控制部;請求進行老化處理的請求部,該老化處理是將預定時間內(nèi)未被訪問的地址信息從所述地址管理信息中刪除的處理;以及接受來自所述請求部的請求并進行所述老化處理的訪問控制部,所述訪問控制部在進行所述老化處理時,對于在作為所述預定時間的第一時間內(nèi)訪問次數(shù)在預定的閾值以上的地址信息,即使在該第一時間的下一個作為所述預定時間的第二時間內(nèi)未被訪問的情況下,也不進行刪除。
發(fā)明效果
根據(jù)本發(fā)明的一個方式,通過提高對地址表進行的訪問處理的效率,減輕對地址表的處理負荷,從而能夠應對高速的幀傳輸,并降低存儲器的成本和功耗。
附圖說明
圖1是簡要地表示實施方式1和2所涉及的中繼裝置的結(jié)構(gòu)的框圖。
圖2是表示實施方式1的地址表的一個示例的概要圖。
圖3是表示實施方式1中接收幀之后對地址表進行地址檢索和學習處理的流程圖。
圖4是表示實施方式1中的老化處理的流程圖。
圖5是表示實施方式1中清除處理和老化處理沖突時的第一處理例的流程圖。
圖6是表示現(xiàn)有技術(shù)中清除處理和老化處理的執(zhí)行時刻重疊時的處理例的概要圖。
圖7是表示實施方式1中清除處理和老化處理的執(zhí)行時刻重疊時的處理例的概要圖。
圖8是表示實施方式1中清除處理和老化處理沖突時的第二處理例的流程圖。
圖9是表示實施方式1中第一清除處理和第二清除處理沖突時的處理例的流程圖。
圖10是表示實施方式1中第一清除處理和第二清除處理的執(zhí)行時刻重疊時的處理例的概要圖。
圖11是表示實施方式2的地址表的一個示例的概要圖。
圖12是表示實施方式1中接收幀之后對地址表進行地址檢索和學習處理的流程圖。
圖13是表示實施方式2中的老化處理的流程圖。
具體實施方式
下面,基于附圖對本發(fā)明的實施方式進行說明。本發(fā)明并不由以下的實施方式限定。
實施方式1
圖1是簡要地表示實施方式1的中繼裝置100的結(jié)構(gòu)的框圖。
如圖所示,中繼裝置100包括:地址表存儲部110、多個通信端口120a~120d(以下,在不需要特意區(qū)分各個通信端口的情況下,稱之為通信端口120)、切換控制部121、幀識別部122、作為發(fā)送目標地址檢索部的macda檢索部123、作為發(fā)送源地址檢索部的macsa檢索部124、訪問控制部125及請求部126。
這些構(gòu)成部分以能夠進行信號或數(shù)據(jù)的輸入輸出的方式單向或雙向地連接。
地址表存儲部110存儲作為地址管理信息的地址表。地址管理信息包含將多個通信端口120中所包含的一個通信端口120與該一個通信端口120的連接目標的通信地址對應起來的地址信息。
圖2是表示存儲在地址表存儲部110中的地址表的一個示例的概要圖。
如圖所示,地址表111中,每一個條目112a~112c(以下,在不需要特意區(qū)分各個條目的情況下,稱為條目112)存儲包含mac地址、通信端口號、valid和hit在內(nèi)的地址信息。
mac地址是登記在對應條目112中的通信地址。
通信端口號是用于識別被分配給存儲于對應條目112的mac地址的通信端口的通信端口識別信息。
valid表示對應條目112是有效還是無效。例如,若valid的值為“1”時,則該條目112有效,若valid的值為“0”,則該條目112無效。無效的條目112將被刪除。
hit表示老化時間內(nèi)macsa的檢索是否符合對應條目112。例如,若hit的值為“1”,則表示符合,若hit的值為“0”,則表示不符合。
返回圖1,通信端口120是收發(fā)幀的接口。
切換控制部121基于地址表111,對通信端口120接收到的幀進行傳送。
幀識別部122對通信端口120接收到的幀進行解析,識別發(fā)送目標地址macda和發(fā)送源地址macsa。
macda檢索部123對幀識別部122識別出的macda進行檢索。例如,macda檢索部123訪問存儲在地址表存儲部110中的地址表,并向訪問控制部125請求對幀識別部122識別出的macda進行檢索。
macsa檢索部124對幀識別部122識別出的macsa進行檢索。例如,macsa檢索部124訪問存儲在地址表存儲部110中的地址表,并向訪問控制部125請求對幀識別部122識別出的macsa進行檢索。
訪問控制部125對存儲在地址表存儲部110中的地址表111進行訪問。尤其是訪問控制部125接受來自請求部126的請求,訪問地址表111并進行所請求的處理。例如,訪問控制部125按照來自macda檢索部123、macsa檢索部124或者請求部126的請求,對地址表111進行地址的檢索、登記、刪除等各種處理時,刪除或者更新存放在地址表111中的條目112的mac地址、端口號、valid或者hit。
此處,訪問控制部125在從請求部126接受第一請求并執(zhí)行基于第一請求的第一處理時,從請求部126接收到第二請求的情況下,則與第一處理并行地執(zhí)行基于第二請求的第二處理。
請求部126向訪問控制部125請求伴隨著存儲在地址表存儲部110中的地址表111的更新而進行的處理。請求部126包括老化控制部127和清除控制部128。
老化控制部127控制存儲在地址表中的地址的老化處理。老化處理是指每隔預定時間將未被訪問的條目從地址表111中刪除的處理。例如,老化控制部127每經(jīng)過老化時間,便請求訪問控制部125將所有條目112的hit清零。之后,在傳送幀時的macsa檢索時,通過地址學習處理,將相應的條目112的hit的值改寫為“1”。而且,在老化控制部127對于所有條目112在下一個周期中請求再次訪問的情況下hit的值依然為“0”時,訪問控制部125將該條目112無效。
在macsa檢索時,相應條目112的hit的值被改寫為“1”。因此,只要在老化時間內(nèi)被訪問了一次,該條目112的hit的值始終為“1”。因而,hit的值為“0”的條目112被判斷為長時間沒有被訪問的條目112,其valid的值為“0”。
清除控制部128控制存儲在地址表中的地址的清除處理。清除處理是指將所指示的條目(刪除對象)從地址表111中刪除的處理。例如,清除控制部128以來自外部電路的清除指示(例如基于s/w的清除指示)為觸發(fā),依次讀取出地址表111的條目112,并向訪問控制部125請求將相應端口號的條目112中的valid的值改寫為“0”。
圖3是表示接收到幀之后向地址表111進行地址檢索和學習處理的流程圖。
圖3的流程圖在通信端口120接收到幀的情況下開始。
切換控制部121從通信端口120接收幀,并將幀提供給幀識別部122。幀識別部122參照接收到的幀的幀頭,識別出該幀的macda和macsa。macda檢索部123基于幀識別部122的識別結(jié)果,向訪問控制部125請求對地址表111進行macda檢索(s10)。
在發(fā)送對象的幀的信息(例如發(fā)送目標信息)已登記在地址表111中的情況下(s10:是),處理前進至步驟s11。
步驟s11中,切換控制部121決定發(fā)送對象的幀的發(fā)送目標和發(fā)送路徑。該幀被傳送給決定為發(fā)送目標的通信端口120。
另一方面,在發(fā)送對象的幀的信息(例如發(fā)送目標信息)未登記在地址表111中的情況下(s10:否),處理前進至步驟s12。
步驟s12中,切換控制部121將發(fā)送對象的幀傳送給除接收到該幀的通信端口120以外的所有通信端口120。
macsa檢索部124基于幀識別部122識別出的幀的信息(例如發(fā)送源信息),向訪問控制部125請求對地址表111進行macsa檢索(s13)。訪問控制部125例如判斷地址表111內(nèi)的條目112中存放的mac地址和端口號與幀識別部122識別出的發(fā)送源的mac地址和端口號是否完全一致。
在mac地址和端口號完全一致的情況下(s13:是),處理前進至步驟s14。步驟s14中,macsa檢索部124使訪問控制部125對mac地址和端口號一致的條目112進行改寫,將valid更新為“1”,將hit更新為“1”。
另一方面,在mac地址和端口號完全一致的條目112不存在的情況下(s13:否),處理前進至步驟s15。步驟s15中,macsa檢索部124使訪問控制部125確認地址表111內(nèi)是否有valid的值為“0”的條目112。在有這樣的條目112的情況下,處理前進至步驟s16,在沒有這樣的條目112的情況下,不登記地址信息并結(jié)束處理。
步驟s16中,macsa檢索部124通過向訪問控制部125請求,使步驟s15中被確認為valid的值為“0”的條目112之一進行如下的改寫:mac地址改寫為接收到的幀的發(fā)送源的mac地址,端口號改寫為接收到該幀的通信端口120的端口號,valid的值改寫為“1”,hit的值改寫為“1”。當步驟s15中確認為valid的值為“0”的條目112有多個時,對任意的條目112、例如地址表111中位置最靠上的條目112進行改寫即可。
圖4是表示實施方式1中的老化處理的流程圖。
老化控制部127管理到幀的信息(例如發(fā)送源信息)從存儲器刪除為止的時間,并將其作為老化時間(例如10秒~5分鐘左右)。若經(jīng)過了上述老化時間,則老化控制部127向訪問控制部125發(fā)出老化請求,訪問控制部125開始執(zhí)行圖4所示的流程。
訪問控制部125從地址表111依次讀取出一個條目112(s20)。
然后,訪問控制部125判斷讀取出的條目112的hit的值是否為“1”(s21)。讀取出的條目112的hit的值為“1”的情況下(s21:是),處理前進至步驟s22,讀取出的條目112的hit的值為“0”的情況下(s21:否),處理前進至步驟s23。
步驟s22中,訪問控制部125將讀取出的條目112的hit清零。例如,訪問控制部125將讀取出的條目112的hit的值更新為“0”。然后,處理前進至步驟s24。
另一方面,步驟s23中,訪問控制部125將讀取出的條目112無效。例如,訪問控制部125將讀取出的條目112的valid的值更新為“0”。然后,處理前進至步驟s24。
步驟s24中,訪問控制部125判斷是否從地址表111讀取出了所有條目112。在讀取出了所有條目112的情況下(s24:是),處理結(jié)束。在沒有讀取出所有條目112的情況下(s24:否),換言之,在存在有未被讀取的條目112的情況下,處理返回步驟s20。然后,在步驟s20中,讀取出一個未被讀取的條目112。
圖5是表示實施方式1中清除處理和老化處理沖突時的第一處理例的流程圖。
圖5所示的流程圖在訪問控制部125從清除控制部128接收到清除請求的情況下開始。
訪問控制部125判斷清除處理過程中是否從老化控制部127接收到老化請求(s30)。如上所述,在經(jīng)過了老化時間的情況下,老化控制部127向訪問控制部125發(fā)出老化請求。在接收到老化請求的情況下(s30:是),處理前進至步驟s31,在沒有接收到老化請求的情況下(s30:否),處理前進至步驟s39。
步驟s31中,訪問控制部125從地址表111依次地讀取出一個條目112。
然后,訪問控制部125判斷讀取出的條目112是否是刪除對象的通信端口120的條目112(s32)。讀取出的條目112是刪除對象的通信端口120的條目的情況下(s32:是),處理前進至步驟s33,讀取出的條目112不是刪除對象的通信端口120的條目112的情況下(s32:否),處理前進至步驟s34。
步驟s33中,訪問控制部125將讀取出的條目112無效。例如,訪問控制部125將讀取出的條目112的valid的值更新為“0”。然后,處理前進至步驟s37。
另一方面,步驟s34中,訪問控制部125判斷讀取出的條目112的hit的值是否為“1”。讀取出的條目112的hit的值為“1”的情況下(s34:是),處理前進至步驟s35,讀取出的條目112的hit的值為“0”的情況下(s34:否),處理前進至步驟s36。
步驟s35中,訪問控制部125將讀取出的條目112的hit清零。例如,訪問控制部125將讀取出的條目112的hit的值更新為“0”。然后,處理前進至步驟s37。
另一方面,步驟s36中,訪問控制部125將讀取出的條目112無效。例如,訪問控制部125將讀取出的條目112的valid的值更新為“0”。然后,處理前進至步驟s37。
步驟s37中,訪問控制部125判斷是否從地址表111讀取出了所有條目112。在讀取出了所有條目112的情況下(s37:是),處理前進至步驟s38。另一方面,在沒有讀取出所有條目112的情況下(s37:否),換言之,在存在有未被讀取的條目112的情況下,處理返回步驟s31。然后,在步驟s31中,讀取出一個未被讀取的條目112。
步驟s38中,訪問控制部125對未進行老化處理的條目112進行老化處理。例如,訪問控制部125依次逐一地讀出未執(zhí)行老化處理的條目112。然后,在讀取出的條目112的hit的值為“1”的情況下,訪問控制部125將該條目112的hit的值更新為“0”。另一方面,在讀取出的條目112的hit的值為“0”的情況下,訪問控制部125將該條目112的valid的值更新為“0”。
另一方面,在步驟s30中判斷為未接收到老化請求的情況下(s30:否),處理前進至步驟s39。步驟s39中,從地址表111依次地讀取出一個條目112。
然后,訪問控制部125判斷讀取出的條目112是否是刪除對象的通信端口120的條目112(s40)。讀取出的條目112是刪除對象的通信端口120的條目112的情況下(s40:是),處理前進至步驟s41,讀取出的條目112不是刪除對象的通信端口120的條目120的情況下(s40:否),處理前進至步驟s42。
步驟s41中,訪問控制部125將讀取出的條目112無效。然后,處理前進至步驟s42。
步驟s42中,訪問控制部125判斷是否從地址表111讀取出了所有條目112。在讀取出了所有條目112的情況下(s42:是),處理結(jié)束。另一方面,在沒有讀取出所有條目112的情況下(s42:否),換言之,在存在有未被讀取的條目112的情況下,處理返回步驟s30。
如上所述,在進行清除處理時接收到老化請求的情況下,訪問控制部125從產(chǎn)生老化請求的時刻的下一個讀取出的條目112起,并行地實施清除處理和老化處理。由于產(chǎn)生老化處理的請求之前實施了清除處理的條目112僅僅完成了清除處理,因此訪問控制部125在清除處理和老化處理的并行處理完成之后,再對相應條目112實施老化處理。
圖6是表示現(xiàn)有技術(shù)中清除處理和老化處理的執(zhí)行時刻重疊時的處理例的概要圖。
這里,在地址表111內(nèi)存放有條目#1~條目#256的條目112。
訪問控制部125在從清除控制部128接收到對通信端口120a的條目112進行清除的清除請求的情況下,從地址表111內(nèi)的條目#1開始依次逐一地讀取出條目112,并判斷讀取出的條目112是否是通信端口120a的條目112。然后,訪問控制部125在檢測出通信端口120a的條目112的情況下,刪除該條目112(將valid改寫為0)。
這里,當訪問控制部125讀取出條目#100時從老化控制部127接收到老化請求的情況下,訪問控制部125暫時保留該老化請求,并繼續(xù)實施條目112的清除處理。訪問控制部125在完成了到條目#256的清除處理的情況下,向清除控制部128通知通信端口120a的清除處理已完成。
然后,訪問控制部125在清除處理完成后,依次逐一地讀取出條目#1~條目#256的條目112,并對讀取出的條目112實施老化處理。訪問控制部125在完成了到條目#256的老化處理的情況下,向老化控制部128通知老化處理已完成。
因此,如圖6所示,現(xiàn)有技術(shù)中,即使在清除處理執(zhí)行過程中接收到老化請求的情況下,清除處理和老化處理也分開進行。因此,為了進行各自的處理,負荷會加重,還需要耗費時間。
圖7是表示實施方式1中清除處理和老化處理的執(zhí)行時刻重疊時的處理例的概要圖。
圖7中,也在地址表111內(nèi)存放有條目#1~條目#256的條目112。
訪問控制部125在從清除控制部128接收到對通信端口120a的條目112進行清除的清除請求的情況下,從地址表111內(nèi)的條目#1開始依次逐一地讀取出條目112,并判斷讀取出的條目112是否是通信端口120a的條目112。然后,訪問控制部125在檢測出通信端口120a的條目112的情況下,刪除該條目112(將valid改寫為0)。
在訪問控制部125讀取出條目#100時從老化控制部127接收到老化請求的情況下,訪問控制部125從條目#101開始并行地實施清除處理和老化處理。例如,訪問控制部125判斷讀取出的條目112是否是通信端口120a的條目112。然后,訪問控制部125將通信端口120a的條目112刪除,對通信端口120a以外的條目112執(zhí)行老化處理。
然后,訪問控制部125在完成了到條目#256的清除處理的情況下,向清除控制部128通知通信端口120a的清除處理已完成。此處,僅條目#101~條目#256完成了老化處理,因此訪問控制部125對剩下的條目#1~條目#100,從條目#1開始依次逐一地讀取條目112,并對讀取出的條目112執(zhí)行老化處理。訪問控制部125在完成了到條目#100的老化處理的情況下,向老化控制部128通知老化處理已完成。
如上所述,訪問控制部125在執(zhí)行清除處理的過程中接收到老化請求的情況下,并行地執(zhí)行清除處理和老化要求,因此能夠減輕處理負荷,并且能夠縮短處理時間。
另外,在訪問控制部125執(zhí)行老化處理的過程中清除控制部128產(chǎn)生了訪問數(shù)據(jù)表111的訪問請求的情況下,也執(zhí)行同樣的處理。
圖8是表示實施方式1中清除處理和老化處理沖突時的第二處理例的流程圖。
圖8所示的流程圖在訪問控制部125從老化控制部127接收到老化請求的情況下開始。
訪問控制部125判斷老化處理過程中是否從清除控制部128接收到清除請求(s50)。如上所述,清除控制部128從外部電路等接收到清除指示的情況下,對訪問控制部125發(fā)出清除請求。在接收到清除請求的情況下(s50:是),處理前進至步驟s51,在沒有接收到清除請求的情況下(s50:否),處理前進至步驟s59。
在步驟s51中,訪問控制部125從地址表111依次讀取一個條目112。
然后,訪問控制部125判斷讀取出的條目112是否是刪除對象的通信端口120的條目112(s52)。讀取出的條目112是刪除對象的通信端口120的條目112的情況下(s52:是),處理前進至步驟s53,讀取出的條目112不是刪除對象的通信端口120的條目112的情況下(s52:否),處理前進至步驟s54。
步驟s53中,訪問控制部125將讀取出的條目112無效。然后,處理前進至步驟s57。
另一方面,步驟s54中,訪問控制部125判斷讀取出的條目112的hit的值是否為“1”。讀取出的條目112的hit的值為“1”的情況下(s54:是),處理前進至步驟s55,讀取出的條目112的hit的值為“0”的情況下(s54:否),處理前進至步驟s56。
步驟s55中,訪問控制部125將讀取出的條目112的hit清零。然后,處理前進至步驟s57。
另一方面,步驟s56中,訪問控制部125將讀取出的條目112無效。然后,處理前進至步驟s57。
步驟s57中,訪問控制部125判斷是否從地址表111讀取出了所有條目112。在讀取出了所有條目112的情況下(s57:是),處理前進至步驟s58。另一方面,在沒有讀取出所有條目112的情況下(s57:否),換言之,在存在有未被讀取的條目112的情況下,處理返回步驟s51。然后,在步驟s51中,讀取出一個未被讀取的條目112。
步驟s58中,訪問控制部125對未進行清除處理的條目112進行清除處理。例如,訪問控制部125依次逐一地讀出未執(zhí)行清除處理的條目112。然后,訪問控制部125判斷讀取出的條目112是否是刪除對象的通信端口120的條目112。在讀取出的條目112是刪除對象的通信端口120的條目112的情況下,訪問控制部125將該條目112無效。
另一方面,在步驟s50中判斷為未接收到清除請求的情況下(s50:否),處理前進至步驟s59。步驟s59中,從地址表111依次讀取一個條目112。
然后,訪問控制部125判斷讀取出的條目112的hit的值是否為“1”(s60)。讀取出的條目112的hit的值為“1”的情況下(s60:是),處理前進至步驟s61,讀取出的條目112的hit的值為“0”的情況下(s60:否),處理前進至步驟s62。
步驟s61中,訪問控制部125將讀取出的條目112的hit清零。然后,處理前進至步驟s63。
另一方面,步驟s62中,訪問控制部125將讀取出的條目112無效。然后,處理前進至步驟s63。
步驟s63中,訪問控制部125判斷是否從地址表111讀取出了所有條目112。在讀取出了所有條目112的情況下(s63:是),處理結(jié)束。另一方面,在沒有讀取出所有條目112的情況下(s63:否),換言之,在存在有未被讀取的條目112的情況下,處理返回步驟s50。
如上所述,在進行老化處理時接收到清除請求的情況下,訪問控制部125從產(chǎn)生清除請求的時刻之后讀取出的條目112起,并行地實施老化處理和清除處理。由于產(chǎn)生清除處理的請求之前實施了老化處理的條目112僅僅完成了老化處理,因此訪問控制部125在老化處理和清除處理的并行處理完成之后,再對相應條目112實施清除處理。
如上所述,在進行老化處理時產(chǎn)生了清除請求的情況下,也能夠減輕負荷并縮短處理時間。
此外,在某一通信端口120的條目112的清除處理與另一通信端口120的條目112的清除處理的時刻重疊的情況下,訪問控制部125也執(zhí)行相同的處理。
圖9是表示實施方式1中某一通信端口120的條目112的清除處理(第一清除處理)和另一通信端口120的條目112的清除處理(第二清除處理)沖突時的處理例的流程圖。
圖9所示的流程圖在訪問控制部125從清除控制部128接收到清除請求(第一清除請求)的情況下開始。
訪問控制部125判斷在基于第一清除請求執(zhí)行第一清除處理的過程中,是否有從清除控制部128接收到不同于第一清除請求的刪除通信端口120的條目112的清除請求(第二清除請求)(s70)。在接收到第二清除請求的情況下(s70:是),處理前進至步驟s71,在沒有接收到第二清除請求的情況下(s70:否),處理前進至步驟s78。
步驟s71中,訪問控制部125從地址表111依次讀取出一個條目112。
然后,訪問控制部125判斷讀取出的條目112是否是第一清除請求中的刪除對象的通信端口120的條目112(s72)。讀取出的條目112是上述條目112的情況下(s72:是),處理前進至步驟s73,讀取出的條目112不是上述條目112的情況下(s72:否),處理前進至步驟s74。
步驟s73中,訪問控制部125將讀取出的條目112無效。然后,處理前進至步驟s76。
另一方面,步驟s74中,訪問控制部125判斷讀取出的條目112是否是第二清除請求中的刪除對象的通信端口120的條目112。讀取出的條目112是上述條目112的情況下(s74:是),處理前進至步驟s75,讀取出的條目112不是上述條目112的情況下(s74:否),處理前進至步驟s76。
步驟s75中,訪問控制部125將讀取出的條目112無效。然后,處理前進至步驟s76。
步驟s76中,訪問控制部125判斷是否從地址表111讀取出了所有條目112。在讀取出了所有條目112的情況下(s76:是),處理前進至步驟s77。另一方面,在沒有讀取出所有條目112的情況下(s76:否),換言之,在存在有未被讀取的條目112的情況下,處理返回步驟s71。然后,在步驟s71中,讀出一個未被讀取的條目112。
步驟s77中,訪問控制部125對未進行第二清除處理的條目112進行第二清除處理。例如,訪問控制部125依次逐一地讀取出未執(zhí)行第二清除處理的條目112。然后,訪問控制部125判斷讀取出的條目112是否是第二清除請求中的刪除對象的通信端口120的條目112。在讀取出的條目112是第二清除請求中的刪除對象的通信端口120的條目112的情況下,訪問控制部125將該條目112無效。
另一方面,在步驟s70中判斷為未接收到第二清除請求的情況下(s70:否),處理前進至步驟s78。步驟s78中,從地址表111依次讀取一個條目112。
然后,訪問控制部125判斷讀取出的條目112是否是第一清除請求中的刪除對象的通信端口120的條目112(s79)。讀取出的條目112是上述條目112的情況下(s79:是),處理前進至步驟s80,讀取出的條目112不是上述條目112的情況下(s79:否),處理前進至步驟s81。
步驟s80中,訪問控制部125將讀取出的條目112無效。然后,處理前進至步驟s81。
步驟s81中,訪問控制部125判斷是否從地址表111讀取出了所有條目112。在讀取出了所有條目112的情況下(s81:是),處理結(jié)束。另一方面,在沒有讀取出所有條目112的情況下(s81:否),換言之,在存在有未被讀取的條目112的情況下,處理返回步驟s70。
如上所述,在根據(jù)第一清除請求執(zhí)行清除處理時產(chǎn)生了第二清除請求的情況下,訪問控制部125從產(chǎn)生第二清除請求的時刻的下一個讀取出的條目112起,并行地實施第一清除處理和第二清除處理。在產(chǎn)生第二清除請求之前實施了第一清除處理的條目112僅僅完成了第一清除處理,因此訪問控制部125在第一清除處理與第二清除處理的并行處理完成之后,再對相應條目112執(zhí)行第二清除處理。
圖10是表示實施方式1中第一清除處理和第二清除處理的執(zhí)行時刻重疊時的處理例的概要圖。
圖10中,也在地址表111內(nèi)存放有條目#1~條目#256的條目112。
訪問控制部125在從清除控制部128接收到對通信端口120a的條目112進行清除的第一清除請求的情況下,從地址表111內(nèi)的條目#1開始依次逐一地讀取出條目112,并判斷讀取出的條目112是否是通信端口120a的條目112。訪問控制部125在讀取出的條目112是通信端口120a的條目112的情況下,刪除該條目112(將valid改寫為“0”)。
在訪問控制部125讀取出了條目#100時,若清除控制部128向訪問控制部125發(fā)出針對通信端口120b的條目112的第二清除請求,則訪問控制部125自條目#101起,對通信端口120a的條目112和通信端口120b的條目112執(zhí)行清除處理。訪問控制部125判斷讀取出的條目112是否是通信端口120a的條目112。在讀取出的條目112是通信端口120a的條目112的情況下,訪問控制部125將讀取出的條目112清除。在讀取出的條目112不是通信端口120a的條目112的情況下,訪問控制部125判斷讀取出的條目112是否是通信端口120b的條目112。在讀取出的條目112是通信端口120b的條目112的情況下,訪問控制部125將讀取出的條目112刪除。
到條目#256為止的通信端口120a的清除處理完成的情況下,訪問控制部125向清除控制部128通知通信端口120a的清除處理完成。這里,通信端口120b的條目112的清除處理僅完成了條目#100~條目#256的,因此訪問控制部125對于剩下的條目#1~條目#100,從條目#1開始依次逐一地讀取出條目112,并判斷讀取出的條目112是否是通信端口120b的條目112。在讀取出的條目112是通信端口120b的條目112的情況下,訪問控制部125將讀取出的條目112刪除。到條目#100為止的通信端口120b的清除處理完成的情況下,訪問控制部125向清除控制部128通知通信端口120b的清除處理完成。
如上所述,實施方式1中,通過對地址表111并行地進行清除處理和老化處理,能夠減少訪問地址表111的次數(shù)。從而,具有以下效果:能夠?qū)崿F(xiàn)高速的幀傳輸而無需安裝多個存儲器,能夠降低存儲器的成本和功耗。
另外,實施方式1中,通過并行地進行多個清除處理,能夠減少訪問地址表111的次數(shù)。從而,具有以下效果:能夠?qū)崿F(xiàn)高速的幀傳輸而無需安裝多個存儲器,能夠降低存儲器的成本和功耗。
以上記載的中繼裝置100中的切換控制部121、幀識別部122、macda檢索部123、macsa檢索部124、訪問控制部125、老化控制部127、清除控制部128可通過cpu(centralprocessingunit:中央處理器)執(zhí)行存儲在存儲裝置中的程序來實現(xiàn)。另外,地址表存儲部110可通過cpu利用易失性或非易失性存儲器來實現(xiàn)。
但是,中繼裝置100并不限于在計算機系統(tǒng)上以軟件的方式來實現(xiàn)。例如,切換控制部121、幀識別部122、macda檢索部123、macsa檢索部124、訪問控制部125、老化控制部127、清除控制部128的一部分或者全部可利用asic(applicationspecificintegratedcircuits:專用集成電路)、fpga(fieldprogrammablegatearray:現(xiàn)場可編程門陣列)等集成邏輯ic以硬件的方式實現(xiàn)?;蛘?,其中的一部分或全部也可以利用dsp(digitalsignalprocessor:數(shù)字信號處理器)等以軟件的方式實現(xiàn)。
實施方式2
接下來,對實施方式2進行說明。實施方式2中,除了上述實施方式1的清除處理與老化處理的沖突控制之外,還實施與接收的幀數(shù)相應的條目老化處理。
如圖1所示,實施方式2的中繼裝置200包括地址表存儲部210、通信端口120、切換控制部121、幀識別部122、macda檢索部123、macsa檢索部224、訪問控制部225、請求部126。
實施方式2的中繼裝置200除了地址表存儲部210、macsa檢索部224和訪問控制部225以外,都采用與實施方式1的中繼裝置100相同的結(jié)構(gòu)。下面,主要針對與實施方式1不同的地址表存儲部210、macsa檢索部224和訪問控制部225進行說明。
地址表存儲部210存儲作為地址管理信息的地址表。由于接收的幀數(shù)較多的條目不易成為老化的刪除對象,因此實施方式2中,在地址表中追加了表示接收幀數(shù)的計數(shù)信息。
圖11是表示存儲在地址表存儲部210中的地址表的一個示例的概要圖。
如圖所示,地址表211中,每一個條目212a~211c(以下,在不需要特意區(qū)分各個條目的情況下,稱為條目212)存儲包含mac地址、通信端口號、valid、hit和count在內(nèi)的地址信息。
mac地址、通信端口號、valid與實施方式1的相同。
hit表示對應的條目212是否成為老化處理的刪除對象。例如,若hit的值為“1”以上,則表示不會成為刪除對象,若hit的值為“0”時,則表示成為刪除對象。實施方式2中,hit的值在當count的值達到預定的閾值以上時進行累加。hit的值在當count的值小于預定的閾值時進行累減。從而,能夠根據(jù)條目212的訪問次數(shù),動態(tài)地變更老化時間。
count是表示將對應條目212的mac地址作為發(fā)送源地址的幀的接收數(shù)的計數(shù)信息。
返回圖1,macsa檢索部224基于幀識別部122識別出的幀的信息,經(jīng)由訪問控制部225對地址表211進行macsa檢索。然后,macsa檢索部224在地址表211內(nèi)存在相應地址的情況下,向訪問控制部225請求對其條目212進行改寫,將valid更新為“1”,并且使count進行累加。
圖12是表示接收到幀之后向地址表211進行地址檢索和學習處理的流程圖。
圖12所示的流程圖中,對于與圖3所示的流程圖相同的處理,標注與圖3相同的標號,并省略其詳細說明。
圖12的步驟s10~s13的處理與圖3的步驟s10~s13的處理相同。但是步驟s13中判斷為mac地址和端口號完全一致的情況下(s13:是),處理前進至步驟s90。
步驟s90中,macsa檢索部224使訪問控制部225對mac地址和端口號一致的條目212進行改寫,將valid更新為“1”,并且使count的值加“1”。
另外,圖12的步驟s15的處理與圖3的步驟s15的處理相同。但是步驟s15中判斷為存在valid的值為“0”的條目212的情況下(s15:是),處理前進至步驟s91。
步驟s91中,macsa檢索部224通過向訪問控制部225請求,使步驟s15中被確認為valid的值為“0”的條目212之一進行如下的改寫:mac地址改寫為接收到的幀的發(fā)送源的mac地址,端口號改寫為接收到該幀的通信端口120的端口號,valid的值改寫為“1”,hit的值改寫為“1”,count的值改寫為“1”。當步驟s15中確認為valid的值為“0”的條目212有多個時,對任意的條目212、例如地址表211中位置最靠上的條目212進行改寫即可。
返回圖1,訪問控制部225對存儲在地址表存儲部210中的地址表211進行訪問。例如,訪問控制部225按照來自macda檢索部123、macsa檢索部224或者請求部126的請求,對地址表211進行地址的檢索、登記、刪除等各種處理時,刪除或者更新存放在地址表211中的條目212的mac地址、端口號、valid、hit或者count。
實施方式2中的訪問控制部225在進行老化處理時,對于在作為預定時間的第一時間內(nèi)訪問次數(shù)達到預定的閾值以上的條目,即使其在第一時間的下一個作為預定時間的第二時間內(nèi)未被訪問,也不進行刪除。例如,訪問控制部225從老化控制部127接收到老化請求的情況下,依次讀取出地址表211內(nèi)的條目212,在count的值為“0”的情況下,當hit的值為“0”或“1”時,將hit的值設(shè)為“0”,當hit的值為“2”以上時,對hit的值進行累減。另外,訪問控制部225在count的值為預定的閾值以上時(例如閾值為“100”),對hit的值進行累加,并將count的值清零。在count的值小于閾值的情況下,當hit的值為“0”或“1”時,將hit的值設(shè)為“1”,當hit的值為“2”以上時,對hit的值進行累減。這樣,能夠根據(jù)老化時間內(nèi)發(fā)送的幀的次數(shù)來動態(tài)地控制老化時間。
圖13是表示實施方式2中的老化處理的流程圖。
老化控制部127與實施方式1相同,若經(jīng)過了老化時間,則向訪問控制部225發(fā)出老化請求,訪問控制部225開始執(zhí)行圖13所示的流程。
訪問控制部225從地址表211依次地讀取出一個條目212(s100)。
然后,訪問控制部225判斷讀取出的條目212的count的值是否為“0”(s101)。在count的值為“0”的情況下(s101:是),處理前進至步驟s102,在count的值為“1”以上的情況下(s101:否),處理前進至步驟s105。
步驟s102中,訪問控制部225判斷讀取出的條目212的hit的值是否為“0”或“1”。在hit的值為“0”或“1”的情況下(s102:是),處理前進至步驟s103,在hit的值為“2”以上的情況下(s102:否),處理前進至步驟s104。
步驟s103中,訪問控制部225將讀取出的條目212的hit的值更新為“0”。然后,處理前進至步驟s111。
步驟s104中,訪問控制部225將讀取出的條目212的hit的值減“1”。然后,處理前進至步驟s111。
另一方面,步驟s105中,訪問控制部225判斷讀取出的條目212的count的值是否在預定的閾值以上。在count的值為預定的閾值以上的情況下(s105:是),處理前進至步驟s106,在count的值小于預定的閾值的情況下(s105:否),處理前進至步驟s107。
步驟s106中,訪問控制部225將讀取出的條目212的hit的值加“1”。
步驟s107中,訪問控制部225判斷讀取出的條目212的hit的值是否為“0”或“1”。在hit的值為“0”或“1”的情況下(s107:是),處理前進至步驟s108,在hit的值為“2”以上的情況下,處理前進至步驟s109。
步驟s108中,訪問控制部225將讀取出的條目212的hit的值更新為“1”。然后,處理前進至步驟s110。
另一方面,步驟s109中,訪問控制部225將讀取出的條目212的hit的值減“1”。然后,處理前進至步驟s110。
步驟s110中,訪問控制部225將讀取出的條目212的count的值初始化。例如,訪問控制部225將count的值變?yōu)椤?”。然后,處理前進至步驟s111。
步驟s111中,訪問控制部225判斷讀取出的條目212的hit的值是否為“0”。讀取出的條目212的hit的值為“0”的情況下(s111:是),處理前進至步驟s112,讀取出的條目112的hit的值為“1”以上的情況下(s111:否),處理前進至步驟s113。
步驟s112中,訪問控制部225將讀取出的條目212無效。例如,訪問控制部225將讀取出的條目212的valid的值更新為“0”。然后,處理前進至步驟s113。
步驟s113中,訪問控制部225判斷是否從地址表211讀取出了所有條目212。在讀取出了所有條目212的情況下(s113:是),處理結(jié)束。在沒有讀取出所有條目212的情況下(s113:否),換言之,在存在有未被讀取的條目212的情況下,處理返回步驟s100。然后,在步驟s100中,讀取出一個未被讀取的條目212。
如上所述,實施方式2中,通過延長高頻接收的幀的發(fā)送源地址的老化時間,減少向地址表211登記的登記處理次數(shù),從而能夠減輕訪問處理。
實施方式2中,以僅進行老化處理的情況為例進行了說明,但老化處理和清除處理沖突的情況下,也可以進行圖13所說明的處理。
例如,也可以進行圖13所示的步驟s101~s112的處理來代替圖5所示的步驟s34~s36的處理。另外,也可以進行圖13所示的步驟s101~s112的處理來代替圖8所示的步驟s54~s56的處理。還可以進行圖13所示的步驟s101~s112的處理來代替圖8所示的步驟s60~s62的處理。
標號說明
100、120中繼裝置;110、210地址表存儲部;120通信端口;121切換控制部;122幀識別部;123macda檢索部;124、224macsa檢索部;125、225訪問控制部;126請求部;127老化控制部;128清除控制部。