專利名稱:地址過濾表生成方法及裝置、以太幀接收方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù),尤其涉及一種地址過濾表生成方法及裝置、以太幀接收方法及裝置。
背景技術(shù):
以太網(wǎng)(ETHERNET)是當(dāng)前應(yīng)用最普遍的一種計算機局域網(wǎng)組網(wǎng)技術(shù),在很大程度上取代了其他局域網(wǎng)標(biāo)準(zhǔn),例如令牌環(huán)網(wǎng)(token ring)、光纖分布式數(shù)據(jù)接口(Fiber Distributed Data hterface ;簡稱為FDDI)和ARCNET。美國電氣和電子工程師協(xié)會 (Institute of Electrical andElectronics Engineers ;簡禾爾為:IEEE) IfjiJ 定白勺 IEEE 802. 3標(biāo)準(zhǔn)給出了以太網(wǎng)的技術(shù)標(biāo)準(zhǔn)。IEEE 802. 3標(biāo)準(zhǔn)規(guī)定了包括物理層的連線、電信號和介質(zhì)訪問控制(Media Access Control ;簡稱為MAC)層協(xié)議的內(nèi)容。目前快速以太網(wǎng) (例如100BASE-T、1000BASE-T標(biāo)準(zhǔn))為了最大程度的減少沖突,最大程度的提高網(wǎng)絡(luò)速度和使用效率,使用交換機來進行網(wǎng)絡(luò)連接和組織,使以太網(wǎng)的拓撲結(jié)構(gòu)發(fā)展成了星型,但在邏輯上,以太網(wǎng)仍采用總線型拓撲和帶沖突檢測的載波監(jiān)聽多路訪問(Carrier Sense MultipleAccess/Collision Detect ;簡稱為CSMA/CD)的總線爭用技術(shù)。在以太網(wǎng)上存在各種MAC地址的數(shù)據(jù)幀,對于工作在以太網(wǎng)中的站點設(shè)備而言, 有些數(shù)據(jù)幀是應(yīng)該被接收的,有些數(shù)據(jù)幀是不應(yīng)該被接收的。其中,地址過濾是以太網(wǎng)普遍使用的一種過濾以太網(wǎng)上數(shù)據(jù)幀的技術(shù)。各個站點設(shè)備通過設(shè)置自己的地址過濾表,對數(shù)據(jù)幀進行過濾,選擇出應(yīng)該接收的數(shù)據(jù)幀避免將多余的數(shù)據(jù)幀接收上來,以避免加重處理負擔(dān)。目前以太網(wǎng)最常用的地址過濾方式主要是精確地址過濾方式。在精確地址過濾方式中,站點設(shè)備預(yù)先將允許接收的MAC地址存放到地址過濾表中,當(dāng)有以太幀到達時,站點設(shè)備將每個到達的以太幀的MAC地址與地址過濾表中的MAC地址逐一進行比較,直到匹配到一致的MAC地址為止,確定接收該以太幀,反之,不接收該以太幀。該方式具有地址過濾結(jié)果精確可靠的優(yōu)點,但是,由于MAC芯片的地址過濾表做的比較小,一般不會超過16個可過濾地址,不適用于規(guī)模較大的以太網(wǎng),如果地址過濾表做大了,逐一比較的地址過濾方式又會讓地址過濾的效率低下。
發(fā)明內(nèi)容
本發(fā)明提供一種地址過濾表生成方法及裝置、以太幀接收方法及裝置,用以解決現(xiàn)有技術(shù)存在的地址過濾效率低的問題,提高地址過濾的效率。本發(fā)明提供一種地址過濾表生成方法,包括生成η行m列的地址表;將合法MAC地址按照預(yù)設(shè)順序劃分為η個長度為k比特的位組,η個位組依次與所述地址表的η行相對應(yīng),m = 2k;以每個位組對應(yīng)的值為列索引,將所述地址表中與每個位組對應(yīng)的行中的相應(yīng)比特位置為預(yù)設(shè)第一值,以形成所述地址過濾表。
本發(fā)明提供一種地址過濾表生成裝置,包括
生成模塊,用于生成η行m列的地址表;第一拆分模塊,用于將合法MAC地址按照預(yù)設(shè)順序劃分為η個長度為k比特的位組,η個位組依次與所述地址表的η行相對應(yīng),m = 2k;置位模塊,用于以每個位組對應(yīng)的值為列索引,將所述地址表中與每個位組對應(yīng)的行中的相應(yīng)比特位置為預(yù)設(shè)第一值,以形成所述地址過濾表。本發(fā)明提供一種以太幀接收方法,包括獲取以太幀中的目的MAC地址;將所述源MAC地址按照預(yù)設(shè)順序劃分為η個長度為k比特的位組,η個位組依次與預(yù)先生成的η行m列的地址過濾表的η行相對應(yīng),m = 2k ;以每個位組對應(yīng)的值為列索引,查詢所述地址過濾表中與每個位組對應(yīng)的行中的相應(yīng)比特位,并判斷查詢到的所有比特位的值是否均為預(yù)設(shè)第一值;當(dāng)查詢到的所有比特位的值均為第一值時,接收所述以太幀;當(dāng)查詢到的所有比特位中存在值不為第一值的比特位時,丟棄所述以太幀。本發(fā)明提供一種以太幀接收裝置,包括獲取模塊,用于獲取以太幀中的目的MAC地址;第二拆分模塊,用于將所述目的MAC地址按照預(yù)設(shè)順序劃分為η個長度為k比特的位組,η個位組依次與預(yù)先生成的η行m列的地址過濾表的η行相對應(yīng),m = 2k ;查詢判斷模塊,用于以每個位組對應(yīng)的值為列索引,查詢所述地址過濾表中與每個位組對應(yīng)的行中的相應(yīng)比特位,并判斷查詢到的所有比特位的值是否均為預(yù)設(shè)第一值;接收處理模塊,用于在查詢到的所有比特位的值均為第一值時,接收所述以太幀, 以及在查詢到的所有比特位中存在值不為第一值的比特位時,丟棄所述以太幀。本發(fā)明的地址過濾表生成方法及裝置、以太幀接收方法及裝置,根據(jù)MAC地址的特性將MAC地址拆分為η個k位組,并以每個k位組為行索引、以每個k位組對應(yīng)的值為列索引,將η行2k列的地址表中的相應(yīng)位置1,形成地址過濾表;在有以太幀到來時,將以太幀中的目的MAC地址拆分成η個k位組,并以拆分出的η個k位組為行索引、以每個k位組對應(yīng)的值為列索引,去查詢生成的地址過濾表中的相應(yīng)比特位,當(dāng)查詢到的所有比特位的值均為預(yù)設(shè)第一值時,接收以太幀;反之,丟棄以太幀。本發(fā)明技術(shù)方案中的地址過濾表中不是直接存儲MAC地址,增加了允許過濾的MAC地址的數(shù)量,且采用將MAC地址進行拆分比較的方式,與直接對MAC地址進行比較相比提高了過濾效率。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明一實施例提供的地址過濾表生成方法的流程圖;圖2為本發(fā)明一實施例提供的MAC地址ABEF013F4CE1映射到地址過濾表中的過程示意圖3為本發(fā)明一實施例設(shè)置合法MAC地址ABEF013F4CEA后的地址過濾表的狀態(tài)示意圖;圖4為本發(fā)明一實施例提供的以太幀接收方法的流程圖;圖5為本發(fā)明一實施例提供的地址過濾表生成裝置的結(jié)構(gòu)示意圖;圖6為本發(fā)明另一實施例提供的地址過濾表生成裝置的結(jié)構(gòu)示意圖;圖7為本發(fā)明一實施例提供的以太幀接收裝置的結(jié)構(gòu)示意圖。
具體實施例方式為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。圖1為本發(fā)明一實施例提供的地址過濾表生成方法的流程圖。如圖1所示,本實施例的方法包括步驟101、生成η行m列的地址表。其中,η和m是自然數(shù)。該地址表是一空表,包括n*m個比特位。本步驟所生成的地址表是地址過濾表的初始狀態(tài)。步驟102、將合法MAC地址按照預(yù)設(shè)順序劃分為η個長度為k比特的位組。為便于表述,后續(xù)將長度為k比特的位組簡稱為k位組。其中,合法MAC地址是指接收到以太幀的站點設(shè)備的MAC地址,也就是站點設(shè)備接收到的以太幀中的目的MAC地址;相應(yīng)地,攜帶合法MAC地址的以太幀是指指向站點設(shè)備的以太幀。例如假設(shè)當(dāng)前站點設(shè)備的某個以太接口上配置了兩個MAC地址,分別為 010(^e010101和00ala2a3flf2,在該以太接口上接收到的以太幀的目的MAC地址必須是上述兩個MAC地址中的一個,站點設(shè)備才予以接收并進入后繼處理流程,這種操作方式可以避免本該由其他站點設(shè)備接收和處理的以太幀進入本站點設(shè)備的處理流程里,造成對本站點設(shè)備的資源的浪費。也就是說,在本發(fā)明各實施例中,是以以太幀的目的MAC地址為基準(zhǔn)對以太幀進行過濾的。其中,MAC地址的長度為48比特(bit),故本實施例中的n*k = 48。又因為實際應(yīng)用中通常是以字節(jié)為單位對MAC地址進行處理的,故k的值優(yōu)選為4的整數(shù)倍,以便于對劃分出的k位組進行處理。在本實施例中,將合法MAC地址劃分為η個k位組,η個k位組依次與地址表的η行相對應(yīng),且m = 2k。例如n可以為12,k為4,此時,合法MAC地址被劃分為12個4位組,而地址表為一張12行16列的表。又例如n為6,k為8,此時,合法MAC 地址被劃分為6個8位組,而地址表為一種6行256列的表。在本實施例中,預(yù)先設(shè)定了對合法MAC地址的劃分順序,例如可以是按照由高位到低位的順序劃分,也可以是按照由低位到高位的順序劃分。要求依序劃分出的η個k位組以一定順序與地址表的η行對應(yīng)。對所有合法MAC地址均按照同一順序進行拆分,且均拆分為η個k位組。步驟103、以每個位組對應(yīng)的值為列索引,將地址表中與每個位組對應(yīng)的行中的相應(yīng)比特位置為預(yù)設(shè)第一值,以形成地址過濾表。
對應(yīng)一個合法MAC地址而言,每個位組對應(yīng)地址表中的一行,而每個位組對應(yīng)的值的范圍為0-2k,每個位組對應(yīng)的值的范圍中的每個值分別對應(yīng)該位組對應(yīng)的地址表中的行中的一列。故每個位組對應(yīng)的值可以作為該位組對應(yīng)的行中的列索引,找到該位組對應(yīng)于地址表中的比特位。換句話說,每個位組對應(yīng)于地址表中的一個比特位。故在本實施例中,以每個位組為行索引,例如以每個位組的序號為行索引找到該位組在地址表中對應(yīng)的行;然后,以每個位組對應(yīng)的值為列索引,找到該位組在地址表中對應(yīng)的列;找到的行與找到的列的交叉位置即為該位組對應(yīng)的比特位,將該比特位置為第一值。當(dāng)一個合法MAC地址的η個k位組對應(yīng)于地址表中的比特位均被置為第一值后,相當(dāng)于該合法MAC地址被設(shè)置在地址表中。當(dāng)所有合法MAC地址均被設(shè)置在地址表中后,該地址表就變成了多個比特位被置為第一值的地址過濾表。當(dāng)有以太幀到來時,就可以基于所生成的地址過濾表來對以太幀進行過濾操作。其中,第一值可以是1或0等;而在生成地址表時可以將地址表中每個比特位設(shè)置為第二值,第二值是與第一值不同的值。例如當(dāng)?shù)谝恢禐?時,第二值可以為0或者為空; 當(dāng)?shù)谝恢禐?時,第二值可以為1或者為空等。本實施例的地址過濾表生成方法,基于MAC地址的特性將MAC地址劃分為η個k 位組,并生成η行2k列的地址表,以每個k位組的序號為行索引,以每個k位組的值為列索引將索引到的地址表中的比特位置為第一值,對每個合法MAC地址均進行相應(yīng)處理,最終生成地址過濾表。由上述分析可見,本實施例的地址過濾表中存儲的不是MAC地址,與現(xiàn)有技術(shù)中直接存儲MAC地址的地址過濾表相比所允許過濾的MAC地址的數(shù)量明顯增加,適應(yīng)于各種規(guī)模的網(wǎng)絡(luò),可過濾地址的數(shù)量不再受地址過濾表大小的限制,為提高地址過濾效率打下了基礎(chǔ)。進一步,現(xiàn)有技術(shù)中存在直接對合法MAC地址進行HASH運算,然后以HASH運算的結(jié)果為索引設(shè)置地址過濾表的方案,而本實施例的地址過濾表中各比特位的值不是以對 MAC地址進行HASH運算的結(jié)果為索引設(shè)置的,而是以劃分出的η個k位組和每個k位組的值為索引設(shè)置的。與以直接對MAC地址進行HASH運算的結(jié)果為索引設(shè)置的地址過濾表相比,本實施例的地址過濾表所允許誤接收的MAC地址的數(shù)量較少,有利于降低錯誤接收的以太幀的數(shù)量,提高了地址過濾的精度。以η取6,k取8,即用6個8位組來劃分合法MAC地址為例說明本實施例地址過濾表降低誤接收率、提高地址過濾精度的效果當(dāng)?shù)刂愤^濾表中設(shè)置有2個合法MAC地址,且假設(shè)2個合法MAC地址的每個8位組對應(yīng)的比特位都不相同,即在該極限情況下,由這些8 位組的比特位組合出可能導(dǎo)致接收的MAC地址的最大個數(shù)為2*2*2*2*2*2 = 64個。當(dāng)?shù)刂愤^濾表設(shè)置4個合法MAC地址時,在極限情況下,由這些8位組的比特位組合出可能導(dǎo)致接收的MAC地址的最大個數(shù)為4*4*4*4*4*4 = 4096個。當(dāng)?shù)刂愤^濾表中設(shè)置了 8個合法 MAC地址時,在極限情況下,由這些8位組的比特位組合出的可能導(dǎo)致接收的MAC地址的最大個數(shù)為8*8*8*8*8*8 = 262144個。同理,當(dāng)?shù)刂愤^濾表中設(shè)置了 16個合法MAC地址時, 導(dǎo)致可能接收到的MAC地址的最大個數(shù)為16777216個。而以對MAC地址進行HASH計算形成的地址過濾表,假設(shè)形成的地址過濾表有10 (即21°)位,則只要地址過濾表設(shè)置1位 (對應(yīng)設(shè)置1個合法MAC地址),則導(dǎo)致可能接收的MAC地址是238個,也就是274877906944個,其中2的指數(shù)38是由MAC地址的位數(shù)(即48)-地址過濾表對應(yīng)的指數(shù)(即10)得到的;而如果是設(shè)置了 4位(對應(yīng)設(shè)置4個合法MAC地址),則可能導(dǎo)致接收的MAC地址就是 4*274877906944 = 1099511627776個。通過比較設(shè)置相同個數(shù)的合法MAC地址時,兩種方式可能導(dǎo)致接收的MAC地址的個數(shù),可以發(fā)現(xiàn)本實施例可能導(dǎo)致接收的MAC地址的數(shù)量遠遠小于以HASH運算生成的地址過濾表的情況,而可能導(dǎo)致接收的MAC地址的數(shù)量越少,表明錯誤接收以太幀的概率就越低,地址過濾精度也就越高。下面以η為12,k為4的情況為例,舉例說明上述實施例的實施過程。首先,地址過濾表生成裝置生成一張大小為12*24的地址表,該地址表移動有192 個比特位,如表1所示。在實際實現(xiàn)時,該地址表可由6個32位的無符號整型數(shù)來表示,其中,每2個4位組分別由32位無符號整型數(shù)的高16比特和低16比特來表示。接著,假設(shè)按照由高位到低位的順序,對合法MAC地址進行拆分,且合法MAC地址被拆分為12個4位組。其中,每個MAC地址都是48位的,可以用6個字節(jié)(Byte)來表示。在本實施例中,每個字節(jié)被分為高4位和低4位,分別對應(yīng)一個4位組。以MAC地址為 ABEFO13F4CE1為例,按照由高位到低位的順序該MAC地址包括6個字節(jié),依次為AB、EF、 01、3F、4C和El ;每個字節(jié)被分為高4位和低4位,則得到12個4位組,依次為A、B、E、F、0、 1、3、F、4、C、E和1,且12個4位組依次對應(yīng)于表1中的0_11行。接著,以每個4位組的值為列索引,將表1中每個4位組對應(yīng)的行中的相應(yīng)比特位置1。在本實施例中,以第一值為1,第二值為0為例。具體的,與第0行對應(yīng)的4位組“A” 的值為10,將第0行第10列對應(yīng)的比特位置為1。與第1行對應(yīng)的4位組“B”的值為11, 將第1行第11列對應(yīng)的比特位置為1。與第2行對應(yīng)的4位組“E”的值為14,將第2行第 14列對應(yīng)的比特位置為1。與第3行對應(yīng)的4位組“F”的值為15,將第3行第15列對應(yīng)的比特位置為1。與第4行對應(yīng)的4位組“0”的值為0,將第4行第0列對應(yīng)的比特位置為 1。與第5行對應(yīng)的4位組“1”的值為1,將第5行第1列對應(yīng)的比特位置為1。與第6行對應(yīng)的4位組“3”的值為3,將第6行第3列對應(yīng)的比特位置為1。與第7行對應(yīng)的4位組 “F”的值為15,將第7行第15列對應(yīng)的比特位置為1。與第8行對應(yīng)的4位組“4”的值為 4,將第8行第4列對應(yīng)的比特位置為1。與第9行對應(yīng)的4位組“C”的值為12,將第9行第12列對應(yīng)的比特位置為1。與第10行對應(yīng)的4位組‘ ”的值為14,將第10行第14列對應(yīng)的比特位置為1。與第11行對應(yīng)的4位組“1”的值為1,將第11行第1列對應(yīng)的比特位置為1。將其他比特位置為0,至此,得到如表2所示的地址過濾表。在此說明,在生成地址表時各比特位除了被置為0之外,也可以為空,或者也可以置為其他值,即其他比特位的值只要不是1即可。表 權(quán)利要求
1.一種地址過濾表生成方法,其特征在于,包括 生成η行m列的地址表;將合法MAC地址按照預(yù)設(shè)順序劃分為η個長度為k比特的位組,η個位組依次與所述地址表的η行相對應(yīng),m= 2k;以每個位組對應(yīng)的值為列索引,將所述地址表中與每個位組對應(yīng)的行中的相應(yīng)比特位置為預(yù)設(shè)第一值,以形成所述地址過濾表。
2.根據(jù)權(quán)利要求1所述的地址過濾表生成方法,其特征在于,還包括當(dāng)所述地址表中與每個位組對應(yīng)的行中的相應(yīng)比特位被置為第一值時,將所述被置為第一值的比特位的引用計數(shù)加1。
3.根據(jù)權(quán)利要求2所述的地址過濾表生成方法,其特征在于,還包括當(dāng)刪除合法MAC地址時,將所述地址表中與被刪除的合法MAC地址的η個位組對應(yīng)的比特位的引用計數(shù)減1,并判斷減1后的引用計數(shù)是否為0 ;當(dāng)所述減1后的引用計數(shù)為0時,將所述減1后為0的引用計數(shù)對應(yīng)的比特位置為預(yù)設(shè)第二值。
4.根據(jù)權(quán)利要求1或2或3所述的地址過濾表生成方法,其特征在于,所述η為12、k 為4;或所述η為6,k為8。
5.一種地址過濾表生成裝置,其特征在于,包括 生成模塊,用于生成η行m列的地址表;第一拆分模塊,用于將合法MAC地址按照預(yù)設(shè)順序劃分為η個長度為k比特的位組,η 個位組依次與所述地址表的η行相對應(yīng),m = 2k;置位模塊,用于以每個位組對應(yīng)的值為列索引,將所述地址表中與每個位組對應(yīng)的行中的相應(yīng)比特位置為預(yù)設(shè)第一值,以形成所述地址過濾表。
6.根據(jù)權(quán)利要求5所述的地址過濾表生成裝置,其特征在于,還包括第一計數(shù)處理模塊,用于在所述地址表中與每個位組對應(yīng)的行中的相應(yīng)比特位被置為第一值時,將所述被置為第一值的比特位的引用計數(shù)加1。
7.根據(jù)權(quán)利要求6所述的地址過濾表生成裝置,其特征在于,還包括第二計數(shù)處理模塊,用于在刪除合法MAC地址時,將所述地址表中與被刪除的合法MAC 地址的η個位組對應(yīng)的比特位的引用計數(shù)減1,并判斷減1后的引用計數(shù)是否為0 ;以及用于在所述減1后的引用計數(shù)為0時,將所述減1后為0的引用計數(shù)對應(yīng)的比特位置為預(yù)設(shè)^ ·~ο
8.根據(jù)權(quán)利要求5或6或7所述的地址過濾表生成裝置,其特征在于,所述η為12,k 為4;或所述η為6,k為8。
9.一種以太幀接收方法,其特征在于,包括 獲取以太幀中的目的MAC地址;將所述目的MAC地址按照預(yù)設(shè)順序劃分為η個長度為k比特的位組,η個位組依次與預(yù)先生成的η行m列的地址過濾表的η行相對應(yīng),m = 2k ;以每個位組對應(yīng)的值為列索引,查詢所述地址過濾表中與每個位組對應(yīng)的行中的相應(yīng)比特位,并判斷查詢到的所有比特位的值是否均為預(yù)設(shè)第一值; 當(dāng)查詢到的所有比特位的值均為第一值時,接收所述以太幀;當(dāng)查詢到的所有比特位中存在值不為第一值的比特位時,丟棄所述以太幀。
10.根據(jù)權(quán)利要求9所述的以太幀接收方法,其特征在于,所述η為12,k為4;或所述 η為6, k為8。
11.一種以太幀接收裝置,其特征在于,包括獲取模塊,用于獲取以太幀中的目的MAC地址;第二拆分模塊,用于將所述目的MAC地址按照預(yù)設(shè)順序劃分為η個長度為k比特的位組,η個位組依次與預(yù)先生成的η行m列的地址過濾表的η行相對應(yīng),m = 2k ;查詢判斷模塊,用于以每個位組對應(yīng)的值為列索引,查詢所述地址過濾表中與每個位組對應(yīng)的行中的相應(yīng)比特位,并判斷查詢到的所有比特位的值是否均為預(yù)設(shè)第一值;接收處理模塊,用于在查詢到的所有比特位的值均為第一值時,接收所述以太幀,以及在查詢到的所有比特位中存在值不為第一值的比特位時,丟棄所述以太幀。
12.根據(jù)權(quán)利要求11所述的以太幀接收裝置,其特征在于,所述η為12,k為4;或所述 η為6, k為8。
全文摘要
本發(fā)明提供一種地址過濾表生成方法及裝置、以太幀接收方法及裝置。其中,地址過濾表生成方法包括生成n行m列的地址表;將合法MAC地址按照預(yù)設(shè)順序劃分為n個長度為k比特的位組,n個位組依次與地址表的n行相對應(yīng),m=2k;以每個位組對應(yīng)的值為列索引,將地址表中與每個位組對應(yīng)的行中的相應(yīng)比特位置為預(yù)設(shè)第一值,以形成地址過濾表。本發(fā)明技術(shù)方案解決了現(xiàn)有技術(shù)的缺陷,提高了地址過濾的效率和精確度。
文檔編號H04L29/12GK102196061SQ201110164980
公開日2011年9月21日 申請日期2011年6月17日 優(yōu)先權(quán)日2011年6月17日
發(fā)明者彭琮 申請人:福建星網(wǎng)銳捷網(wǎng)絡(luò)有限公司