專利名稱:用于媒體訪問(wèn)控制地址學(xué)習(xí)的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信網(wǎng)絡(luò)領(lǐng)域,更具體來(lái)說(shuō),涉及媒體訪問(wèn)控制(MAC) 地址學(xué)習(xí)。
背景技術(shù):
以太網(wǎng)是用于局域網(wǎng)(LAN)的基于幀的組網(wǎng)技術(shù)。以太網(wǎng)使用以 太網(wǎng)交換機(jī)來(lái)連接LAN。以太網(wǎng)交換機(jī)使用媒體訪問(wèn)控制(MAC)地址、 即分配給網(wǎng)絡(luò)節(jié)點(diǎn)的唯一標(biāo)識(shí)符將以太網(wǎng)幀從源節(jié)點(diǎn)轉(zhuǎn)發(fā)給目標(biāo)節(jié) 點(diǎn)。MAC地址學(xué)習(xí)是橋接以太網(wǎng)的基本屬性,例如電氣和電子工程師 協(xié)會(huì)(正EE)802.1Q-2003(第8.7條)和正EE 802.1D-2004(第7.8條)等的 標(biāo)準(zhǔn)中定義的那樣。MAC地址學(xué)習(xí)被執(zhí)行以保存用于轉(zhuǎn)發(fā)幀的轉(zhuǎn)發(fā) 表,即使得可將以太網(wǎng)交換機(jī)的入口端口上接收的幀轉(zhuǎn)發(fā)給以太網(wǎng)交 換機(jī)的正確的出口端口 。
具有執(zhí)行控制功能的控制平面和執(zhí)行幀轉(zhuǎn)發(fā)功能的轉(zhuǎn)發(fā)平面的以 太網(wǎng)交換機(jī),通常分為跨越若干物理線卡的若千以太網(wǎng)橋。由于MAC 地址學(xué)習(xí)用轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)來(lái)執(zhí)行,因此,現(xiàn)有以太網(wǎng)交換機(jī)中的以太網(wǎng) 橋的物理分布,作為控制平面中保存的主轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)和轉(zhuǎn)發(fā)平面中保 存的本地轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)來(lái)實(shí)現(xiàn)。本地轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)由主轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)更新。 具體來(lái)說(shuō),線卡對(duì)保持主轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)的中央控制處理器轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)更 新。中央控制處理器將數(shù)據(jù)庫(kù)更新從主轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)分發(fā)到分別由各線 卡保持的本地轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)。
MAC地址學(xué)習(xí)可產(chǎn)生極大量的信息。例如,如果只有先前未學(xué)習(xí) 的地址到達(dá)10GBps以太網(wǎng)端口(例如由于網(wǎng)絡(luò)重新配置),則單獨(dú)對(duì)于 該以太網(wǎng)端口可產(chǎn)生超過(guò)每秒一千六百萬(wàn)個(gè)學(xué)習(xí)請(qǐng)求。不利的是,盡
管在非分布MAC地址學(xué)習(xí)中(其中學(xué)習(xí)請(qǐng)求集中于單個(gè)線卡)處理如 此大量的學(xué)習(xí)請(qǐng)求是可行的,但是在分布MAC地址學(xué)習(xí)中處理如此 大量的學(xué)習(xí)請(qǐng)求可能并不是可行的。而且,丟棄這類學(xué)習(xí)請(qǐng)求會(huì)使整 體網(wǎng)絡(luò)性能降級(jí)(因?yàn)槲磳W(xué)習(xí)的MAC地址產(chǎn)生額外涌入的以太網(wǎng)業(yè)務(wù)量)。
不利的是,由于線卡與中夬控制處理器之間的有限帶寬,極復(fù)雜 的控制通路只能處理轉(zhuǎn)發(fā)通路帶寬的一小部分。由于控制通路只能處 理轉(zhuǎn)發(fā)通路帶寬的一小部分,所以許多學(xué)習(xí)請(qǐng)求^支丟棄,從而引起網(wǎng) 絡(luò)降級(jí)。此外,在價(jià)格壓力不斷推動(dòng)控制平面復(fù)雜度降低的同時(shí),高 容量以太網(wǎng)設(shè)備對(duì)帶寬的需求持續(xù)增加,因此加劇了學(xué)習(xí)請(qǐng)求的丟棄 (以及所產(chǎn)生的網(wǎng)絡(luò)降級(jí))。
發(fā)明內(nèi)容
通過(guò)本發(fā)明的使線卡轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)同步的方法及裝置,使現(xiàn)有技術(shù) 的各種缺點(diǎn)得到解決。 一種方法包括在線卡上接收數(shù)據(jù)包;為至少 一個(gè)其他線卡中的每一個(gè)生成控制包,以能夠在其上進(jìn)行地址更新操 作;以及向至少一個(gè)其他線卡傳播至少一個(gè)控制包。響應(yīng)"對(duì)所接收 數(shù)據(jù)包執(zhí)行地址更新操作"這一確定,生成該(該等)控制包。地址 更新過(guò)程可作為入口地址更新過(guò)程或出口地址更新過(guò)程來(lái)實(shí)現(xiàn)。該地 址更新過(guò)程與地址老化過(guò)程一起^l行。
研讀以下結(jié)合附圖的詳細(xì)描述,可易于理解本發(fā)明的教導(dǎo),附圖
中
圖1是表示通信網(wǎng)絡(luò)的高級(jí)框圖2是表示圖1的網(wǎng)橋的高級(jí)框圖3是表示圖1的網(wǎng)橋的高級(jí)框圖4表示根據(jù)本發(fā)明的一個(gè)實(shí)施例的方法;
圖5表示根據(jù)本發(fā)明的一個(gè)實(shí)施例的方法; 圖6表示根據(jù)本發(fā)明的一個(gè)實(shí)施例的方法; 圖7表示適合于在轉(zhuǎn)發(fā)平面中分發(fā)地址學(xué)習(xí)信息的作為示例的學(xué) 習(xí)請(qǐng)求包(LRP);
圖8表示才艮據(jù)本發(fā)明的一個(gè)實(shí)施例的方法;
圖9是表示用于MAC地址老化的線卡的一部分的高級(jí)框圖IO表示根據(jù)本發(fā)明的一個(gè)實(shí)施例的方法;
圖11是地址老化和地址刷新的時(shí)序圖12是根據(jù)本發(fā)明的一個(gè)實(shí)施例的基于入口的分布地址更新的 狀態(tài)圖13是根據(jù)本發(fā)明的一個(gè)實(shí)施例的基于出口的分布地址更新的 狀態(tài)圖;以及
圖14是表示適合用于執(zhí)^f亍文中所述功能的通用計(jì)算機(jī)的高級(jí)框圖。
為有助于理解,在可能的情況下用相同的附圖標(biāo)記來(lái)表示附圖中 共有的相同元件。
具體實(shí)施例方式
布MAC地址學(xué)習(xí)),本發(fā)明克月艮了對(duì)于在控制平面中實(shí)現(xiàn)MAC地址 學(xué)習(xí)的限制(慢通道中的集中MAC地址學(xué)習(xí))。具體來(lái)說(shuō),在轉(zhuǎn)發(fā)平面 (快通道)中實(shí)現(xiàn)轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中涉及MAC地址學(xué)習(xí)的部分。通過(guò)完全在 轉(zhuǎn)發(fā)平面中實(shí)現(xiàn)MAC地址學(xué)習(xí),本發(fā)明消除了對(duì)于使用控制平面與 轉(zhuǎn)發(fā)平面之間的復(fù)雜控制接口進(jìn)行通信的需要,由此消除了目前引起 現(xiàn)有以太網(wǎng)中的網(wǎng)絡(luò)降級(jí)的瓶頸。因此,與控制平面中的MAC地址 學(xué)習(xí)相比,本發(fā)明具有顯著的優(yōu)點(diǎn)。
如文中所述,雖然術(shù)語(yǔ)"MAC地址學(xué)習(xí),,往往用作一般術(shù)語(yǔ),但是, MAC地址學(xué)習(xí)操作可包括MAC地址學(xué)習(xí)操作(即,對(duì)轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)添加 條目)、MAC地址刷新操作(即,刷新轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)條目的地址時(shí)間戳)
條目端口)。因此,為了防止對(duì)"MAC地址學(xué)習(xí)"的一般說(shuō)法與不同MAC 地址學(xué)習(xí)操作之間的混淆,典型術(shù)語(yǔ)"MAC地址學(xué)習(xí)"在本文中更一般 地稱作"MAC地址更新",類似i也,典型術(shù)語(yǔ)"MAC地址學(xué)習(xí)操作,,在 本文更一般地稱作"MAC地址更新操作,,(或者"轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)更新操 作")。
圖1說(shuō)明通信網(wǎng)絡(luò)的高級(jí)框圖。通信網(wǎng)絡(luò)100包括互連多個(gè)局域 網(wǎng)(LAN)120A-120c(統(tǒng)稱為L(zhǎng)AN 120)的網(wǎng)橋110,每個(gè)LAN 120支持多 個(gè)終端130(統(tǒng)稱為終端130)。在一個(gè)實(shí)施例中,網(wǎng)橋和LAN120可以 是基于以太網(wǎng)的,但是本發(fā)明不限于這樣一種實(shí)現(xiàn)方式(即,可使用其 它各種橋接技術(shù))。網(wǎng)橋110包括分別服務(wù)于LAN 120r1203的多個(gè)線 卡112A-112c(統(tǒng)稱為線卡112)。網(wǎng)橋110的線卡112交換數(shù)據(jù)包,以在LAN120之間傳播數(shù)據(jù)包。網(wǎng)橋110的線卡112交換MAC地址更 新信息,以同步由線卡112保持的分布式轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)。
圖2是表示圖1的網(wǎng)橋的高級(jí)框圖。網(wǎng)橋100包括控制平面210 和轉(zhuǎn)發(fā)平面220??刂破矫?10和轉(zhuǎn)發(fā)平面220用控制信道215進(jìn)行 通信??刂破矫?10包括提供轉(zhuǎn)發(fā)平面220的控制功能的控制才莫塊211。 轉(zhuǎn)發(fā)平面220包括轉(zhuǎn)發(fā)莫塊221(例如線卡112及關(guān)聯(lián)模塊)。轉(zhuǎn)發(fā)平面 220轉(zhuǎn)發(fā)數(shù)據(jù)包,并且還根據(jù)本發(fā)明執(zhí)行分布MAC地址學(xué)習(xí)(與控制 平面210利用控制信道215來(lái)才丸行集中MAC地址學(xué)習(xí)的現(xiàn)有網(wǎng)橋不同)。結(jié)合本文所描述的圖3-圖13可更好地理解本發(fā)明的分布MAC 地址學(xué)習(xí)功能。
如圖2所示,網(wǎng)橋100使用支持本發(fā)明的分布MAC地址更新功 能的增強(qiáng)硬件和軟件??刂苅t塊211可包括一個(gè)或多個(gè)控制平面硬件芯片(例如控制處理器、存儲(chǔ)器等)及關(guān)聯(lián)軟件。轉(zhuǎn)發(fā)平面模塊220均可 包括一個(gè)或多個(gè)轉(zhuǎn)發(fā)平面硬件芯片(例如網(wǎng)絡(luò)處理器、存儲(chǔ)器等)及關(guān) 聯(lián)軟件。轉(zhuǎn)發(fā)平面硬件芯片由控制平面硬件芯片控制。轉(zhuǎn)發(fā)平面硬件 芯片支持?jǐn)?shù)據(jù)包轉(zhuǎn)發(fā)功能和分布MAC地址更新功能。換言之,根據(jù) 本發(fā)明,MAC地址更新(例如MAC地址學(xué)習(xí))完全在轉(zhuǎn)發(fā)平面220中
執(zhí)行,由此消除為進(jìn)行MAC地址更新在控制平面210與轉(zhuǎn)發(fā)平面220 之間的通信(即慢通道通信)。
轉(zhuǎn)發(fā)平面硬件芯片包括根據(jù)本發(fā)明增強(qiáng)的轉(zhuǎn)發(fā)平面硬件芯片。轉(zhuǎn) 發(fā)平面硬件芯片經(jīng)過(guò)增強(qiáng),以支持跨越線卡的MAC地址的分布式同 步。在一個(gè)實(shí)施例中,增強(qiáng)轉(zhuǎn)發(fā)平面硬件芯片包括增強(qiáng)以太網(wǎng)芯片。 具體來(lái)說(shuō),在一個(gè)實(shí)施例中,以太網(wǎng)芯片經(jīng)過(guò)增強(qiáng),從而包括控制包 復(fù)制器引擎和MAC地址老化引擎。在另一個(gè)(其中以太網(wǎng)芯片包括 多播復(fù)制器引擎和MAC地址老化引擎的)實(shí)施例中,如文中所描述, 多播復(fù)制器引擎和MAC地址老化引擎可經(jīng)過(guò)增強(qiáng)以支持本發(fā)明的分 布MAC地址更新功能。
雖然本文主要就網(wǎng)橋110的特定實(shí)現(xiàn)(包括控制平面210和轉(zhuǎn)發(fā)平 面220的特定實(shí)現(xiàn))作了描述,^f旦是,也有各種其它的控制平面和轉(zhuǎn)發(fā) 平面實(shí)現(xiàn)可用來(lái)提供本發(fā)明的分布MAC地址更新功能。具體來(lái)說(shuō), 本發(fā)明的分布MAC地址更新功能可用各種硬件和/或軟件的組合來(lái)實(shí) 現(xiàn)。在特定硬件和/或軟件實(shí)現(xiàn)的上下文中對(duì)本發(fā)明的描述只是說(shuō)明性 的。本發(fā)明不限于本文描迷的特定硬件和/或$欠件實(shí)現(xiàn),它們只是作為 描述本發(fā)明的分布MAC地址更新功能的示例。
圖3是表示圖1的網(wǎng)橋的高級(jí)框圖。如圖3所示,網(wǎng)橋110包括 多個(gè)線卡112A-112c(統(tǒng)稱為線卡122)。線卡112A-112C包括相應(yīng)端口 302A-302c(統(tǒng)稱為端口 302)。端口 302從其它網(wǎng)橋或終端(未示出)接收 數(shù)據(jù)包,并向其它網(wǎng)橋或終端(未示出)發(fā)送數(shù)據(jù)包。線卡112A-112c包 括相應(yīng)的處理器304A-304c(統(tǒng)稱為處理器304)。線卡112A-112C包括相 應(yīng)的轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)305A-305c(統(tǒng)稱為轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)305)。線卡112(具體指 處理器304和轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)305)支持本發(fā)明的數(shù)據(jù)包轉(zhuǎn)發(fā)功能和MAC 地址更新功能,參照?qǐng)D4 -圖13可更好地理解這一點(diǎn)。
如圖3所示,各線卡112支持?jǐn)?shù)據(jù)包轉(zhuǎn)發(fā)功能。其上接收到數(shù)據(jù) 包的線卡112確定所接收數(shù)據(jù)包的轉(zhuǎn)發(fā)。端口 302接收數(shù)據(jù)包(用作所 接收數(shù)據(jù)包的入口端口)。與入口端口 302關(guān)聯(lián)的處理器304確定將所 接收數(shù)據(jù)包轉(zhuǎn)發(fā)到的一個(gè)或多個(gè)其它端口 302(用作數(shù)據(jù)包的出口端
口)。處理器304確定使用(入口端口 302的線卡的)關(guān)聯(lián)轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)305 將所接收數(shù)據(jù)包轉(zhuǎn)發(fā)給哪個(gè)(哪些)出口端口 302。具體來(lái)說(shuō),處理器304 確定所接收數(shù)據(jù)包的目標(biāo)MAC地址,并搜索關(guān)聯(lián)轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)305中 的目標(biāo)MAC地址。
如圖3所示,各線卡112支持MAC地址更新功能。與通過(guò)網(wǎng)橋 110轉(zhuǎn)發(fā)的數(shù)據(jù)包關(guān)聯(lián)的線卡112(即在其上接收數(shù)據(jù)包的入口線卡 112或者從其中發(fā)送數(shù)據(jù)包的出口線卡112),確定是否分發(fā)數(shù)據(jù)包的 MAC地址更新信息。與該線卡112關(guān)聯(lián)的處理器304,確定是否使用 關(guān)聯(lián)轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)305來(lái)分發(fā)所接收數(shù)據(jù)包的MAC地址信息。如果要 分發(fā)MAC地址更新信息,則處理器304將關(guān)聯(lián)的MAC地址更新信息 分發(fā)到線卡112中的其它線卡。具體來(lái)說(shuō),處理器304生成包含MAC 地址學(xué)習(xí)信息的控制包(文中指學(xué)習(xí)請(qǐng)求包(LRP)),并將這些控制包轉(zhuǎn) 發(fā)給線卡112中的其它線卡。
如圖3所示,轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)305包括多個(gè)MAC地址條目(示為轉(zhuǎn)發(fā) 數(shù)據(jù)庫(kù)中的行)。轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)305包括存儲(chǔ)MAC地址條目中每一個(gè)條 目的信息的字段(描述為轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中的列)。在一個(gè)實(shí)施例中,各轉(zhuǎn) 發(fā)數(shù)據(jù)庫(kù)包括"MAC地址"字段、"端口"字段(標(biāo)示服務(wù)于關(guān)聯(lián)的MAC 地址的端口)和"地址老化時(shí)間戳"字段(指示關(guān)聯(lián)的MAC地址的使用 期)。如文中所述,"地址老化時(shí)間戳,,字段存儲(chǔ)的老化時(shí)間戳值可由相 應(yīng)的老化計(jì)時(shí)器(它可以是向下計(jì)數(shù)或向上計(jì)數(shù),具體取決于實(shí)現(xiàn)方式) 來(lái)更新。 一個(gè)或多個(gè)轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)305可包括用于提供各MAC地址條 目的附加信息的一個(gè)或多個(gè)附加字段(文中為清楚起見(jiàn)而省略)。
如文中所述,線卡112交換數(shù)據(jù)包和MAC地址更新信息。線卡 112用通信通路(CP)308(統(tǒng)稱為CP 308)進(jìn)行通信,以交換數(shù)據(jù)包和 MAC地址更新信息。具體來(lái)說(shuō),如圖3所示,線卡302A和302B用CP 308!進(jìn)行通信,線卡302B和302c用CP 3082進(jìn)行通信,以及線卡302c 和302a用CP 3083進(jìn)行通信。CP 308可用線卡122之間的任何通信手 段(例如使用 一個(gè)或多個(gè)交換卡、底板等以及它們的各種組合)來(lái)實(shí)現(xiàn)。 本發(fā)明不限于卡間通信的任何特定實(shí)現(xiàn)方式。
雖然本文中主要描述為包括端口、處理器和轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù),但是,
各線卡302可包括用于提供本發(fā)明的功能的其它各種組件(例如處理 器、存儲(chǔ)器、配套電路等以及它們的各種組合)。雖然為清楚起見(jiàn)僅就 具有一個(gè)端口的線卡作了描述,但是線卡也可包括多個(gè)端口。雖然為 清楚起見(jiàn)就三個(gè)線卡作了描述,但是網(wǎng)橋110也可包括更多或更少的 線卡。
如文中所描述,線卡112交換數(shù)據(jù)包和MAC地址更新信息。線 卡112用相應(yīng)的轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)305來(lái)執(zhí)行數(shù)據(jù)包轉(zhuǎn)發(fā)功能(對(duì)于單播業(yè)務(wù) 和/或多播業(yè)務(wù))。線卡112用相應(yīng)的轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)305來(lái)執(zhí)行MAC地址 更新功能(包括執(zhí)行MAC地址更新操作、分發(fā)MAC地址更新信息、 執(zhí)行MAC地址老化處理等以及它們的各種組合)。線卡112用控制包 (文中表示學(xué)習(xí)請(qǐng)求包(LRP))來(lái)分發(fā)MAC地址更新信息。文中參照?qǐng)D6 -圖8來(lái)描述MAC地址更新操作的執(zhí)行和關(guān)聯(lián)的MAC地址更新信息 的分發(fā)。文中參照?qǐng)D9 -圖10來(lái)描述MAC地址老化處理的執(zhí)行。
圖4說(shuō)明根據(jù)本發(fā)明的一個(gè)實(shí)施例的方法。具體來(lái)說(shuō),圖4的方 法400包括用于處理所接收數(shù)椐包的方法,其中包括轉(zhuǎn)發(fā)所接收數(shù)據(jù) 包并對(duì)所接收數(shù)據(jù)包執(zhí)行MAC地址更新功能。雖然就一個(gè)數(shù)據(jù)包作 了描述,但是可對(duì)于方法400在其上運(yùn)作的網(wǎng)橋上所接收的每個(gè)數(shù)據(jù) 包執(zhí)行方法400。雖然描述為依次執(zhí)行,但是,圖4的方法400的步 驟的至少一部分可同時(shí)或以不同于本文針對(duì)圖4所描述的順序來(lái)執(zhí) 行。方法400開(kāi)始于步驟402,然后進(jìn)入步驟404。
在步驟404,接收數(shù)據(jù)包。該數(shù)據(jù)包在入口端口接收。該數(shù)據(jù)包 包括數(shù)據(jù)包報(bào)頭和數(shù)據(jù)包有效載荷。該數(shù)據(jù)包的格式取決于基礎(chǔ)技術(shù)。 例如,在一個(gè)實(shí)施例中,該數(shù)據(jù)包可以是以太網(wǎng)包。在本實(shí)施例中, 數(shù)據(jù)包報(bào)頭可包括標(biāo)示包的始發(fā)終端的源MAC地址字段和標(biāo)示該數(shù) 據(jù)包要發(fā)送到的終端(或多個(gè)終端)的目標(biāo)MAC地址字段,以及其它數(shù) 據(jù)包報(bào)頭字段。雖然本文主要就以太網(wǎng)數(shù)據(jù)包作了描述,但是,本發(fā) 明可用來(lái)為交換各種其它類型的數(shù)據(jù)包的網(wǎng)絡(luò)提供增強(qiáng)MAC地址更 新功能。
在步驟406,轉(zhuǎn)發(fā)數(shù)據(jù)包。該數(shù)據(jù)包轉(zhuǎn)發(fā)給一個(gè)或多個(gè)線卡。該 數(shù)據(jù)包祐^轉(zhuǎn)發(fā),以通過(guò)一個(gè)或多個(gè)出口端口 (可設(shè)置在一個(gè)或多個(gè)線卡 上)進(jìn)行傳送。文中參照?qǐng)D5來(lái)描述數(shù)據(jù)包的轉(zhuǎn)發(fā)。在步驟408,執(zhí)行 MAC地址更新過(guò)程。對(duì)于所4秦收數(shù)據(jù)包執(zhí)行MAC地址更新過(guò)程。 MAC地址更新過(guò)程可在入口線卡上執(zhí)行(對(duì)于入口 MAC地址更新), 或者在其它線卡之一上執(zhí)行(對(duì)于出口 MAC地址更新)。文中參照?qǐng)D6 -圖10來(lái)描述MAC地址更新過(guò)程的執(zhí)行。方法400在步驟410結(jié)束。
圖5說(shuō)明根據(jù)本發(fā)明的一個(gè)實(shí)施例的方法。具體來(lái)說(shuō),圖5的方 法500包括用于轉(zhuǎn)發(fā)所接收數(shù)據(jù)包的方法。雖然描述為依次執(zhí)行,但 是,圖5的方法500的步驟的至少一部分可同時(shí)或者以不同于本文針 對(duì)圖5所描述的順序來(lái)執(zhí)行。方法500開(kāi)始于步驟502(在接收到數(shù)據(jù) 包之后,如參照?qǐng)D4的方法400所描述),然后進(jìn)入步驟504。
在步驟504,(例如從數(shù)據(jù)包的報(bào)頭)確定數(shù)據(jù)包的目標(biāo)MAC地址。 在步驟506,確定目標(biāo)MAC地址的條目是否存在于轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)(即, 入口端口的線卡的轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù))。通過(guò)搜索轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中的目標(biāo)MAC 地址(即包含目標(biāo)MAC地址的轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)條目),來(lái)執(zhí)行關(guān)于目標(biāo)MAC 地址的條目是否存在于轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)的確定。如果目標(biāo)MAC地址的條 目包含在轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中,則方法500進(jìn)入步驟508。如果目標(biāo)MAC地 址的條目未包含在轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中,則方法500進(jìn)入步驟512。
在步驟508,確定數(shù)據(jù)包的出口端口 (即,數(shù)據(jù)包離開(kāi)網(wǎng)橋的端口 )。 數(shù)據(jù)包的出口端口用轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)(例如根據(jù)與包含目標(biāo)MAC地址的轉(zhuǎn) 發(fā)數(shù)據(jù)庫(kù)條目相關(guān)聯(lián)的"端口"值)來(lái)確定。在步驟510,數(shù)據(jù)包被轉(zhuǎn)發(fā) 到數(shù)據(jù)包的出口端口(它可以是與入口端口相同的線卡上的不同端口、 不同線卡上的端口或者一個(gè)或多個(gè)線卡上的一個(gè)以上的端口 (對(duì)于多 播))。方法500從步驟510進(jìn)入步驟514,在該步驟方法500結(jié)束。在 步驟512,數(shù)據(jù)包被轉(zhuǎn)發(fā)到所有端口(即,網(wǎng)橋上除了端口X以外的其 它所有端口,包括與入口端口相同的線卡上和網(wǎng)橋的其它線卡上的其 它端口)。方法500從步驟512進(jìn)入步驟514,在該步驟方法500結(jié)束。
圖6說(shuō)明根據(jù)本發(fā)明的一個(gè)實(shí)施例的方法。具體來(lái)說(shuō),圖6的方
法600包括用于對(duì)一個(gè)線卡上的所接收數(shù)據(jù)包執(zhí)行MAC地址更新并 將關(guān)聯(lián)的MAC地址更新信息分發(fā)給至少一個(gè)其他線卡的方法。雖然 作為獨(dú)立方法來(lái)描述,但是,圖6的方法600與圖9的方法900 —起 執(zhí)行,以提供本發(fā)明的MAC地址更新功能。雖然描述為依次執(zhí)行, 但是,圖6的方法600的步驟的至少一部分可同時(shí)或者以不同于文中 參照?qǐng)D6所描述的順序來(lái)執(zhí)行。方法600在步驟602開(kāi)始(在接收到數(shù) 據(jù)包之后,如參照?qǐng)D4的方法400所描述),然后進(jìn)入步驟604 。
在步驟604,(例如從所接收數(shù)據(jù)包的報(bào)頭)確定所接收數(shù)據(jù)包的源 MAC地址。在步驟606,確定可對(duì)所接收數(shù)據(jù)包執(zhí)行的MAC地址更 新操作的類型。如圖6所示,確定所接收數(shù)據(jù)包可能需要的MAC地 址更新操作的類型的步驟取決于(1)確定源MAC地址的條目是否存 在于轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù);以及(2)如果源MAC地址的條目存在于轉(zhuǎn)發(fā)數(shù)據(jù) 庫(kù),則取決于關(guān)于現(xiàn)有條目的關(guān)聯(lián)端口是未改變還是已改變(與根據(jù)所 接收數(shù)據(jù)包確定的、當(dāng)前與該MAC地址關(guān)聯(lián)的端口地址進(jìn)行比較)。 MAC地址更新操作可以是MAC地址學(xué)習(xí)操作、MAC地址刷新操作 或者M(jìn)AC地址再學(xué)習(xí)操作,本文將更詳細(xì)地描述其中的每一個(gè)。
如圖6所示,通過(guò)搜索轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中的源MAC地址(即包舍源 MAC地址的轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)條目),來(lái)執(zhí)行關(guān)于源MAC地址的條目是否存 在于轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)的確定。對(duì)于入口 MAC地址更新,搜索入口線卡的 轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù),以確定MAC地址更新操作的類型。對(duì)于出口 MAC地址 更新,搜索出口線卡的轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù),以確定MAC地址更新操作的類 型。關(guān)于現(xiàn)有條目的關(guān)聯(lián)端口是未改變還是已改變的確定,包括確定 現(xiàn)有數(shù)據(jù)包被接收的入口端口是否匹配轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中的相應(yīng)條目的 "端口"值。
如圖6所示,MAC地址更新操作的類型之一凈皮識(shí)別并可一支執(zhí)行 (即,學(xué)習(xí)和再學(xué)習(xí)操作被執(zhí)行,但刷新操作可執(zhí)行或可不執(zhí)行)。如
果轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中不存在源MAC地址的條目,則執(zhí)行學(xué)習(xí)操作(如步驟 608所示)。如果轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中存在源MAC地址的條目,并且現(xiàn)有條 目的關(guān)聯(lián)端口未改變,則可執(zhí)行或可不執(zhí)行刷新操作(如步驟610、 612
和614所示)。如果轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中存在源MAC地址的條目,并且現(xiàn)有 條目的關(guān)聯(lián)端口已改變,則執(zhí)行再學(xué)習(xí)操作(如步驟616所示)。對(duì)于每 種類型的MAC地址學(xué)習(xí)操作,對(duì)于其它線卡生成LRP(如步驟618所 示),并將其分發(fā)給其它線卡(如步驟620所示)。
在步驟608,執(zhí)行學(xué)習(xí)操作。在其上保持轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)的當(dāng)前線卡 上執(zhí)行學(xué)習(xí)操作。該學(xué)習(xí)操作包括學(xué)習(xí)源MAC地址。具體來(lái)說(shuō),該 學(xué)習(xí)操作包括對(duì)轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)添加源MAC地址的條目。在一個(gè)實(shí)施例 中,該源MAC地址的條目可包括源MAC地址、與源MAC地址關(guān)聯(lián) 的出口端口(即,接收關(guān)聯(lián)數(shù)據(jù)包的端口)以及關(guān)聯(lián)老化時(shí)間戳。在一 個(gè)實(shí)施例中,該老化時(shí)間戳4支初始化為最小值然后遞增(例如從0秒到 600秒)。在一個(gè)實(shí)施例中,將老化時(shí)間戳祐匸初始化為最大值然后遞減 (例如從600秒到0秒)。
在步驟610、 612和614,刷新操作可執(zhí)行或可不執(zhí)行。在步驟610, 確定源MAC地址的老化時(shí)間戳。在一個(gè)實(shí)施例中,根據(jù)轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)
612,確定老化時(shí)間戳是否達(dá)到(或滿足)閾值。閾值在本文中指刷新閾 值,因?yàn)樵撻撝当挥脕?lái)確定是否應(yīng)當(dāng)執(zhí)行MAC地址刷新操作。
如果老化時(shí)間戳沒(méi)有達(dá)到刷新閾值(這意味著老化時(shí)間戳在老化 時(shí)間戳向上計(jì)數(shù)時(shí)小于刷新閾值,或者老化時(shí)間戳在老化時(shí)間戳向下 計(jì)數(shù)時(shí)大于刷新閾值),則方法600進(jìn)入步驟622,在該步驟方法600 結(jié)束(即,不為那個(gè)數(shù)據(jù)包生成LRP)。如果老化時(shí)間戳達(dá)到刷新閾值(這 意味著老化時(shí)間戳在老化時(shí)間戳向上計(jì)數(shù)時(shí)大于刷新閾值,或者老化 時(shí)間戳在老化時(shí)間戳向下計(jì)數(shù)時(shí)小于刷新閾值),則方法600進(jìn)入步驟 614(在該步驟執(zhí)行刷新操作)。
在步驟614,執(zhí)行刷新操作。在保持轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)的當(dāng)前線卡上執(zhí) 行刷新操作。該刷新#:作包括刷新源MAC地址條目。具體來(lái)說(shuō),刷 新操作包括更新轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中的源MAC地址條目(即,將轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù) 的那個(gè)源MAC地址的"老化時(shí)間戳,,字段中的老化時(shí)間戳重設(shè))。在一 個(gè)實(shí)施例中,老化時(shí)間戳被刷新為最小值然后遞增(例如從0秒到600
秒)。在一個(gè)實(shí)施例中,老化時(shí)間戳^皮刷新為最大值然后遞減(例如從
600秒到0秒)。
在步驟616,執(zhí)行再學(xué)習(xí)操作。在保持轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)的當(dāng)前線卡上 執(zhí)行再學(xué)習(xí)操作。該再學(xué)習(xí)操作包括再學(xué)習(xí)源MAC地址。具體來(lái)說(shuō), 再學(xué)習(xí)操作包括更新轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中的源MAC地址條目(即,將"端口 ,, 字段更新以包含與該源MAC地址關(guān)聯(lián)的新端口 ,并將該源MAC地址 的"老化時(shí)間戳"字段中的老化時(shí)間戳重設(shè))。在一個(gè)實(shí)施例中,將老化 時(shí)間戳刷新為最小值然后遞增(例如從0秒到600秒)。在一個(gè)實(shí)施例中, 將老化時(shí)間戳刷新為最大值然后遞減(例如從600秒到0秒)。
在步驟618,分別對(duì)于其它線卡生成LRP。在一個(gè)實(shí)施例中,不 對(duì)于其上接收關(guān)聯(lián)數(shù)據(jù)包的線卡或發(fā)送關(guān)聯(lián)數(shù)據(jù)包的線卡生成LRP, 因?yàn)槟莻€(gè)線卡或那些線卡可用數(shù)據(jù)包來(lái)執(zhí)行適當(dāng)?shù)腗AC地址更新操 作(即,不需要對(duì)于通過(guò)其上傳遞關(guān)聯(lián)數(shù)據(jù)包的線卡或多個(gè)線卡另外生 成一個(gè)或多個(gè)LRP)。在另一實(shí)施例中,對(duì)于其它線卡中的每一個(gè)生成 LRP,并將生成的LRP分發(fā)到其它線卡中的每一個(gè)(雖然在這樣的實(shí)施 例中可能需要附加的處理,以防止接收數(shù)據(jù)包和從該數(shù)據(jù)包生成的 LRP的線卡對(duì)同 一數(shù)據(jù)包執(zhí)行多個(gè)MAC地址操作)。
發(fā)數(shù)據(jù)庫(kù)的同步。換言之,通過(guò)將該數(shù)據(jù)包(在該數(shù)據(jù)包通過(guò)的線卡上) 的處理和一個(gè)或多個(gè)LRP的生成、分發(fā)及處理相組合,本發(fā)明的分布 MAC地址更新功能使得所有線卡上的所有轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)的同步成為可 能。雖然可執(zhí)行三種不同類型的MAC地址更新操作(即MAC地址學(xué) 習(xí)操作、MAC地址刷新操作和MAC地址再學(xué)習(xí)操作),但在一個(gè)實(shí)施 例中,生成的LRP的格式與引發(fā)LRP生成的MAC地址更新操作的類 型無(wú)關(guān)。
在一個(gè)實(shí)施例中,通過(guò)復(fù)制關(guān)聯(lián)的所接收數(shù)據(jù)包來(lái)生成各LRP。 在一個(gè)這樣的實(shí)施例中,利用 一個(gè)或多個(gè)多播復(fù)制功能來(lái)復(fù)制所接收 數(shù)據(jù)包。在一個(gè)實(shí)施例中,生成各LRP而不復(fù)制關(guān)聯(lián)數(shù)據(jù)包。在一個(gè) 這樣的實(shí)施例中,生成LRP來(lái)包含線卡中的其它線卡所需的信息,以
更新其它線卡的相應(yīng)轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)。在此實(shí)施例中,LRP可包括適于向 線卡中的其它線卡傳遞MAC地址更新信息的任何信息。
通過(guò)復(fù)制數(shù)據(jù)包而形成關(guān)聯(lián)LRP,確保LRP中一定包含接收
息(例如源AC地址、入口端口等)。如文中所述,由于LRP在數(shù)據(jù)包 轉(zhuǎn)發(fā)通路上分發(fā)(并且由于LRP可包含關(guān)聯(lián)數(shù)據(jù)包的副本),所以必須 區(qū)分LRP和數(shù)據(jù)包。在一個(gè)實(shí)施例中,LRP可經(jīng)過(guò)適配,使得接收數(shù) 據(jù)包轉(zhuǎn)發(fā)通路中的數(shù)據(jù)包和LRP這二者的線卡可區(qū)分所接收數(shù)據(jù)包和 LRP??赏ㄟ^(guò)多種不同方式(文中參照?qǐng)D7描述它們的一些實(shí)例)將LRP 跟數(shù)據(jù)包區(qū)分開(kāi)。
在步驟620,對(duì)于其它線卡生成的LRP被分發(fā)給其它線卡。從所 接收數(shù)據(jù)包生成的LRP轉(zhuǎn)發(fā)平面中分發(fā)給其它線卡(即,使用數(shù)據(jù)包 轉(zhuǎn)發(fā)通路,線卡之間通過(guò)該(該等)通路轉(zhuǎn)發(fā)數(shù)據(jù)包)。在一個(gè)實(shí)施例 中,可將多播組用于分發(fā)LRP,以減少不必要的LRP。在一個(gè)實(shí)施例 中,可用一個(gè)或多個(gè)專用隊(duì)列(例如專用于某些實(shí)體,例如網(wǎng)橋分區(qū)、 濾波標(biāo)識(shí)符等)來(lái)分發(fā)LRP,以減少不必要LRP的數(shù)量。可利用其它 分發(fā)方案將LRP在轉(zhuǎn)發(fā)平面中分發(fā)給其它線卡。
通過(guò)對(duì)于其它線卡生成LRP,并在轉(zhuǎn)發(fā)平面中將生成的LRP分發(fā) 給其它線卡(即,使用數(shù)據(jù)包轉(zhuǎn)發(fā)通路),分別對(duì)于所有線卡的所有轉(zhuǎn) 發(fā)數(shù)據(jù)庫(kù)實(shí)現(xiàn)同步,而無(wú)需使用分布式轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)須從中更新的中央 轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)。換言之,本發(fā)明可實(shí)現(xiàn)轉(zhuǎn)發(fā)平面中有效的分布MAC地 址更新,從而提供了優(yōu)于現(xiàn)有MAC地址更新(學(xué)習(xí))方案的改進(jìn)性能。
圖7示出適于在轉(zhuǎn)發(fā)平面中分發(fā)地址更新信息的作為示例的學(xué)習(xí) 請(qǐng)求包(LRP)。如文中所述,在一個(gè)實(shí)施例中,從關(guān)聯(lián)數(shù)據(jù)包生成LRP。 在一種這樣的實(shí)施例中,通過(guò)復(fù)制關(guān)聯(lián)數(shù)據(jù)包來(lái)生成LRP。如文中所 述,由于在數(shù)據(jù)包轉(zhuǎn)發(fā)通路中分發(fā)LRP(與數(shù)據(jù)包一起),因此必須區(qū) 分LRP和數(shù)據(jù)包,以佳j矣收數(shù)才居包和LRP的線卡易于區(qū)分?jǐn)?shù)據(jù)包與 LRP。在一個(gè)實(shí)施例中,如文中所描述,可通過(guò)在LRP中設(shè)置一個(gè)或 多個(gè)位(即,復(fù)制數(shù)據(jù)包,并在復(fù)制的數(shù)據(jù)包中設(shè)置一個(gè)或多個(gè)位,以 將所復(fù)制的數(shù)據(jù)包標(biāo)示為L(zhǎng)RP)來(lái)區(qū)分LRP和數(shù)據(jù)包。
如圖7所示,從其中生成LRP的數(shù)據(jù)包是以太網(wǎng)數(shù)據(jù)包。以太網(wǎng) 數(shù)據(jù)包包括以太網(wǎng)包寺艮頭和以太網(wǎng)包有效載荷。以太網(wǎng)包報(bào)頭包括例 如目標(biāo)MAC地址(DAMAC)、源MAC地址(SAMAC)、類型、標(biāo)志、 類型等的標(biāo)準(zhǔn)字段。以太網(wǎng)包有效載荷包括數(shù)據(jù)。內(nèi)部"^艮頭可前掛到 以太網(wǎng)數(shù)據(jù)包上以在以太網(wǎng)交4灸機(jī)內(nèi)使用。內(nèi)部才艮頭可在生成LRP期 間從數(shù)據(jù)包復(fù)制,或者前掛到從數(shù)據(jù)包生成的LRP上??赏ㄟ^(guò)多種不 同方式(例如,通過(guò)在數(shù)據(jù)包的復(fù)制副本中設(shè)置將復(fù)制數(shù)據(jù)包標(biāo)示為 LRP的信息)來(lái)區(qū)分LRP和數(shù)據(jù)包。
如圖7所示,在一個(gè)實(shí)施例中,通過(guò)在內(nèi)部才艮頭中設(shè)置一個(gè)或多 個(gè)位,將包(例如,包710)指示為L(zhǎng)RP(與數(shù)椐包不同)??稍趦?nèi)部才良頭 的一個(gè)或多個(gè)字段設(shè)置位。例如,設(shè)為0的位可指示包是LRP,而設(shè) 為等于1的位可指示包是數(shù)據(jù)包(反之亦然)。也可通過(guò)其它各種方式來(lái) 標(biāo)記包的內(nèi)部?jī)袅碱^,以將包標(biāo)示為L(zhǎng)RP。除了f^改內(nèi)部?jī)趑揞^的一部分 之外,在一個(gè)實(shí)施例中,也可將一個(gè)或多個(gè)附加字段附加到內(nèi)部報(bào)頭, 以將該包標(biāo)示為L(zhǎng)RP。
如圖7所示,在一個(gè)實(shí)施例中,通過(guò)在包才艮頭中設(shè)置一個(gè)或多個(gè) 位,將包(例如,包720)示為L(zhǎng)RP(與數(shù)據(jù)包不同)??稍诎鼉趑揞^的一個(gè) 或多個(gè)字段設(shè)置位。在從以太網(wǎng)包生成LRP的一個(gè)實(shí)施例中,通過(guò)在 復(fù)制包的以太網(wǎng)包報(bào)頭的"標(biāo)志"字段(即正EE 802.1Q VLAN標(biāo)志字段) 設(shè)置某個(gè)值,可將復(fù)制的數(shù)據(jù)包標(biāo)示為L(zhǎng)RP。例如,等于0x000的"標(biāo) 志"字段可指示該包是LRP,而等于其它任何值的"標(biāo)志"字段可指示該 包是數(shù)據(jù)包。雖然以上描述為包括以太網(wǎng)包有效載荷,但是在一個(gè)實(shí) 施例中,以太網(wǎng)包有效載荷可從LRP分離(在數(shù)據(jù)包復(fù)制期間或之后)。 也可通過(guò)其它各種方式來(lái)標(biāo)示包的包報(bào)頭,以將該包標(biāo)示為L(zhǎng)RP。
雖然主要就以太網(wǎng)包作了描述,但也可從其它各種類型的數(shù)據(jù)包 生成LRP。雖然主要就包含內(nèi)部報(bào)頭的數(shù)據(jù)包作了描述,但也可從沒(méi) 有內(nèi)部報(bào)頭的數(shù)據(jù)包生成LRP。雖然主要描述為具有有效載荷,但是 在一個(gè)實(shí)施例中,復(fù)制數(shù)據(jù)包以形成相應(yīng)LRP的步驟可包括將數(shù)據(jù)包
有效載荷分離,以減小所得到的LRP的大小。雖然主要就通過(guò)復(fù)制關(guān) 聯(lián)數(shù)據(jù)包而生成的LRP作了描述,但是在一個(gè)實(shí)施例中,控制包可在 不復(fù)制關(guān)聯(lián)數(shù)據(jù)包的情況下生成。
圖8說(shuō)明根據(jù)本發(fā)明的一個(gè)實(shí)施例的方法。具體來(lái)說(shuō),圖8的方 法800包括用于處理通過(guò)數(shù)據(jù)轉(zhuǎn)發(fā)通絲4秦收的包的方法(例如包括響應(yīng) 數(shù)據(jù)包而執(zhí)行MAC地址更新操作并通過(guò)出口端口轉(zhuǎn)發(fā)該數(shù)據(jù)包,以 及響應(yīng)學(xué)習(xí)請(qǐng)求包而執(zhí)行MAC地址更新操作,但不通過(guò)出口端口轉(zhuǎn) 發(fā)該學(xué)習(xí)請(qǐng)求包)。雖然就其它線卡中的一個(gè)作了描述,但是方法800 可在其它線卡中的每一個(gè)上執(zhí)4亍,因?yàn)閿?shù)據(jù)包和學(xué)習(xí)請(qǐng)求包都可由線 卡中的每一個(gè)通過(guò)數(shù)據(jù)轉(zhuǎn)發(fā)通if各從其它線卡接收。雖然描述為依次執(zhí)
行,但是,圖8的方法800的步驟的至少一部分可同時(shí)或者以不同于 文中參照?qǐng)D8所描述的順序來(lái)4丸行。方法800開(kāi)始于步驟802,然后 進(jìn)入步驟804。
在步驟804接收包。該包通過(guò)內(nèi)部通信通路在線卡上接收(即,不 是在線卡的外部端口接收的數(shù)椐包)。在步驟806,確定所接收的包的 包類型。所接收的包可以是數(shù)椐包或控制包(例如LRP)。在一個(gè)實(shí)施 例中,可通過(guò)4企查所4妄收的包的 一個(gè)或多個(gè)位(例如包的內(nèi)部?jī)趑揞^的一 個(gè)或多個(gè)位、包的包報(bào)頭的一個(gè)或多個(gè)位等,如文中參照?qǐng)D7所描述) 來(lái)確定所接收的包的包類型。
如果所接收的包是數(shù)據(jù)包,則方法800進(jìn)入步驟808。在步驟808, 執(zhí)行MAC地址更新操作。使用來(lái)自數(shù)據(jù)包的信息來(lái)執(zhí)行MAC地址更 新操作??捎脠D6的方法600來(lái)才丸行MAC地址更新操作。在步驟810, 通過(guò)線卡的出口端口來(lái)轉(zhuǎn)發(fā)數(shù)椐包??捎脠D5的方法500的相關(guān)部分 來(lái)執(zhí)行數(shù)據(jù)包轉(zhuǎn)發(fā)操作。如果所接收的包是控制包,則方法800進(jìn)入 步驟810。在步驟812,;執(zhí)行MAC地址更新4喿作。利用來(lái)自控制包的 信息來(lái)執(zhí)行MAC地址更新操作。可用圖6的方法600的相關(guān)部分來(lái) 執(zhí)行MAC地址更新操作。方法800在步驟814結(jié)束。
如文中所述,若包是控制包,則凈皮從中接收該控制包的線卡為線 卡中的其它線卡生成控制包,并分別將所生成的包分發(fā)給線卡中的其
它線卡。在其它線卡接收到控制包時(shí),分別在其它線卡上重復(fù)圖8的
方法800。由于應(yīng)當(dāng)使相應(yīng)線卡(包括始發(fā)LRP的線卡和接收LRP的 線卡)的轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中的每一個(gè)同步,其它線卡中的每一個(gè)應(yīng)當(dāng)執(zhí)行與 生成并分發(fā)LRP的始發(fā)線卡上才丸行的MAC地址更新操作相同的MAC 地址更新操作。
如文中所述,執(zhí)行MAC地址老化以支持MAC地址更新功能。對(duì) 于網(wǎng)橋中的每一個(gè)線卡、對(duì)于線卡的轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中的各MAC地址條 目執(zhí)行本文所描述的MAC地址老化功能。給定線卡的MAC地址老化 功能可由與該線卡關(guān)聯(lián)的控制器(例如,網(wǎng)橋110的線卡112a-112c各 自的處理器304A-304C,如文中參照?qǐng)D1、圖3所描述)來(lái)執(zhí)行和/或控 制。文中參照?qǐng)D9來(lái)描述MAC地址老化;溪塊的作為示例的實(shí)現(xiàn)。文 中參照?qǐng)D10來(lái)描述(對(duì)于 一個(gè)線卡上的 一個(gè)轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)的 一個(gè)MAC地 址條目的)作為示例的MAC地址老化過(guò)程。
圖9是表示用于MAC地址老化的線卡的一部分的高級(jí)框圖。具 體來(lái)說(shuō),可對(duì)于網(wǎng)橋的線卡中的每一個(gè)(例如,網(wǎng)橋110的線卡 112A-112C,如文中所描述)實(shí)現(xiàn)線卡900。如圖9所示,線卡900包括 控制器910、轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)920和MAC地址老化過(guò)程930。轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù) 920包括多個(gè)MAC地址條目922廣922N(統(tǒng)稱為MAC地址條目922), 它們可與參照?qǐng)D3所描述的MAC地址條目相似。MAC地址老化過(guò)程 930分別對(duì)于MAC地址條目922r922M提供MAC地址老化功能(用 MAC地址過(guò)程930與MAC地址條目922之間的虛線表示)。
雖然文中就用于提供本發(fā)明的增強(qiáng)MAC地址老化功能的具體實(shí) 現(xiàn)方式作了描述,但是,本發(fā)明的增強(qiáng)MAC地址老化功能也可使用 其它方式(例如,使用一個(gè)或多個(gè)其它組件,如控制模塊、存儲(chǔ)器等以 及它們的各種組合)來(lái)實(shí)現(xiàn)。由于本發(fā)明的增強(qiáng)MAC地址老化功能可 用各種實(shí)現(xiàn)方式提供,因此僅一般地描述MAC地址老化才莫塊900的 操作,而沒(méi)有具體提到MAC地址老化斗莫塊900的組件。
在MAC地址老化中,對(duì)轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)的各MAC地址條目保存一個(gè) MAC地址老化時(shí)間戳。在轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)的MAC地址條目中定期更新該
MAC地址條目的MAC地址老化時(shí)間戳。定期遞增(或遞減)MAC地址 的MAC地址老化時(shí)間戳。MAC地址的MAC地址老化時(shí)間戳通過(guò) MAC地址老化過(guò)程930來(lái)遞增,它確定是否使MAC地址條目過(guò)期(如 下文所述)。MAC地址條目的MAC地址老化時(shí)間戳具有關(guān)聯(lián)的分辨率 (本文中表示為分辨率時(shí),.,,戮),它是MAC地址老化時(shí)間戳的遞增量(例如 按10秒、20秒等來(lái)遞增)。
在MAC地址老化中,對(duì)轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)的各MAC地址條目執(zhí)行MAC 地址老化過(guò)程。MAC地址條目的MAC地址老化過(guò)程定期地執(zhí)行。 MAC地址條目的MAC地址老化過(guò)程定期地確定是否應(yīng)當(dāng)使關(guān)聯(lián)的 MAC地址條目無(wú)效。MAC地址條目的MAC地址老化過(guò)程具有關(guān)聯(lián) 的分辨率(表示為分辨率扭),它是MAC地址老化過(guò)程的執(zhí)行頻度(在 沒(méi)有使MAC地址條目無(wú)效時(shí),也是對(duì)于該MAC地址條目更新MAC 地址老化時(shí)間戳的頻度)。
通過(guò)將MAC地址條目的MAC地址老化時(shí)間戳與老化閾值(表示 為閾值老化)進(jìn)行比較,MAC地址老化過(guò)程確定關(guān)聯(lián)的MAC地址條目是 否被無(wú)效(即過(guò)期)。如果MAC地址條目的MAC地址老化時(shí)間戳達(dá)到 老化閾值(例如,老化時(shí)間戳向上計(jì)數(shù)時(shí)大于老化閾值,或者老化閾值 向下計(jì)數(shù)時(shí)小于老化閾值),則MAC地址條目被無(wú)效(即,從轉(zhuǎn)發(fā)數(shù)據(jù) 庫(kù)消除該MAC地址條目) 。如果MAC地址條目的MAC地址老化時(shí)間 戳沒(méi)有達(dá)到老化閾值(例如,老化時(shí)間戳向上計(jì)數(shù)時(shí)小于老化閾值,或 者老化閾值向下計(jì)數(shù)時(shí)大于老化閾值),則MAC地址條目不邱皮無(wú)效; 而是對(duì)該MAC地址條目更新該MAC地址條目的MAC地址老化時(shí)間 戳(例如將MAC地址老化時(shí)間戳的當(dāng)前值改變MAC地址老化時(shí)間戳 4皮設(shè)定改變的量)。
如文中所述,本發(fā)明在線卡中的每一個(gè)上4是供增強(qiáng)的MAC地址 老化功能。參照?qǐng)DIO(該圖表示MAC地址老化的方法)可更好地理解 本發(fā)明的增強(qiáng)MAC地址老化功能(包括MAC地址老化過(guò)程)。此外, 參照?qǐng)Dll(該圖是表示本發(fā)明的增強(qiáng)MAC地址更新功能的時(shí)序圖),
MAC地址老化過(guò)程之間的關(guān)系(包括關(guān)聯(lián)的參數(shù)分辨率扭、分辨率時(shí)間 戮和閾值老化之間的關(guān)系)以及MAC地址刷新(包括關(guān)聯(lián)的參數(shù)閾值刷新)。
圖IO表示根據(jù)本發(fā)明的一個(gè)實(shí)施例的方法。具體來(lái)il,圖10的 方法1000包括MAC地址老化的方法(即MAC地址老化過(guò)程)。對(duì)于 網(wǎng)橋的各線卡的轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)的各MAC地址條目執(zhí)行作為圖10的方法 1000描述的MAC地址老化過(guò)程。雖然描述為依次執(zhí)行,但是,圖10 的方法1000的步驟的至少一部分可同時(shí)或者以不同于文中參照?qǐng)D10 所描述的順序來(lái)執(zhí)行。方法1000開(kāi)始于步驟1002,然后進(jìn)入步驟1004。
在步驟1004,確定MAC地址老化時(shí)間戳。通過(guò)搜索轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù) 中的關(guān)聯(lián)的MAC地址條目并從"地址老化時(shí)間戳"字段檢索出MAC地 址老化時(shí)間戳的當(dāng)前值,來(lái)確定MAC地址老化時(shí)間戳。在步驟1006, 確定MAC地址老化時(shí)間戳是否大于老化閾值。老化閾值可以是任何 值(例如300秒、600秒等),并且可根據(jù)許多考慮因素(包括MAC地址 老化時(shí)間戳的分辨率即分辨率,戮、MAC地址老化過(guò)程的分辨率即分 辨率艦等以及它們的各種組合)來(lái)設(shè)置。
如圖10所示,如果MAC地址老化時(shí)間戳小于老化閾值,則方法 1000進(jìn)入步驟1008;否則,如果MAC地址老化時(shí)間戳大于老化閾值, 則方法100進(jìn)入步驟1012。在步驟1008,更新MAC地址條目的MAC 地址老化時(shí)間戳。遞增或遞減該MAC地址條目的MAC地址老化時(shí)間 戳,這取決于實(shí)現(xiàn)方式。例如,轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中的MAC地址老化時(shí)間 戳可遞增10秒、遞減15秒等。從步驟1008,方法1000進(jìn)入步驟IOIO(下 面進(jìn)行論述)。在步驟1012, MAC地址條目^支無(wú)效(即,從轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù) 刪除該MAC地址)。方法1000 A人步驟1012進(jìn)入步驟1014,方法1000 在該步驟結(jié)束。
在步驟IOIO,確定是否執(zhí)行MAC地址老化過(guò)程(即,確定是否為 再次對(duì)該MAC地址條目執(zhí)行MAC地址老化過(guò)程的時(shí)機(jī))。雖然描述 為直接的確定(an explicit determination) , ^旦步驟1010表示定期地(即 按照MAC地址老化過(guò)程的分辨率)執(zhí)行方法1000。換言之,在通過(guò) MAC地址老化過(guò)程更新MAC地址老化時(shí)間戳之后,方法IOOO等待,
直到MAC地址老化過(guò)程纟皮再次:執(zhí)行,這時(shí),方法1000進(jìn)入步驟1004, 以重復(fù)MAC地址等待過(guò)程(例如等待10秒、15秒或任何用以設(shè)定MAC 地址老化過(guò)程重復(fù)進(jìn)行的時(shí)間長(zhǎng)度)。
由于MAC地址條目可添加到轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)(在MAC地址學(xué)習(xí)操作
發(fā)數(shù)據(jù)庫(kù)刪除,以下步驟可能纟支執(zhí)行(為了清楚起見(jiàn)圖示省略)(1) 每次向轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)添加MAC地址條目時(shí),為了對(duì)新的MAC地址條目 執(zhí)行MAC地址老化處理,可由關(guān)聯(lián)控制器對(duì)關(guān)聯(lián)的MAC地址老化過(guò) 程進(jìn)行例示(instantiated);以及(2)每次從轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)刪除MAC地 址條目時(shí),可將對(duì)先前為該MAC地址條目保持的關(guān)聯(lián)的MAC地址老 化過(guò)程撤銷例示(un-instantiated )。
圖11是表示MAC地址老4t和MAC地址刷新的時(shí)序圖。具體來(lái) 說(shuō),時(shí)序圖IIOO說(shuō)明MAC地址老化功能與MAC地址刷新功能之間 的關(guān)系。時(shí)序圖llOO示出沿x軸的時(shí)間(包含各包到達(dá)線卡的時(shí)間)以 及沿y軸的MAC地址老化時(shí)間戳。時(shí)間沿x軸增加。MAC地址老化 時(shí)間戳沿y軸增力口(由于MAC地址老化時(shí)間戳定期地遞增,因此逐步 地增加)。MAC地址老化時(shí)間戳對(duì)閾值刷新和閾值老化計(jì)數(shù)(在不同條件下 與每個(gè)進(jìn)行比較,如文中所述)。如果MAC地址老化時(shí)間戳超過(guò)閾值刷 新參數(shù),則通過(guò)重設(shè)關(guān)聯(lián)的MAC地址老化時(shí)間戳來(lái)更新MAC地址條 目。如果MAC地址老化時(shí)間戳超過(guò)閾值老化,則MAC地址條目被無(wú)效。
時(shí)序圖包括各參數(shù)之間的關(guān)系,包括分辨率狄參數(shù)(相對(duì)于時(shí)間測(cè) 定)以及分辨率時(shí)間戮、閾值刷新和閾值老化參數(shù)(相對(duì)于MAC地址老化時(shí)間 戳的值測(cè)定)。參數(shù)分辨率姊和分辨率關(guān)戮通過(guò)用Cts表示的參數(shù)相關(guān), 使得分辨率時(shí)纖-分辨率錄xCt3。在一個(gè)實(shí)施例中,參數(shù)Qs的默認(rèn)值是 1/每秒。實(shí)際老化時(shí)間(表示為t老化)可根據(jù)分辨率狄、分辨率時(shí)間戳和Qs 參數(shù)來(lái)計(jì)算,例如t老化〈[(分辨率扭+分辨率時(shí)戰(zhàn))/Cts]。因此,如果分 辨率扭《分辨率時(shí)間戮,則不確定性很小。
如文中所述,刷新闊值(閾值刷新)用來(lái)確保不為每個(gè)所接收數(shù)據(jù)包 生成刷新LRP(因?yàn)檫@類LRP會(huì)在數(shù)量上掩蓋轉(zhuǎn)發(fā)平面中分發(fā)的學(xué)習(xí)
和再學(xué)習(xí)LRP以及數(shù)據(jù)包)。如文中所述,老化閾值(閾值老化)用以確保 無(wú)效MAC地址條目在轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中的保留時(shí)間不超過(guò)必要的數(shù)據(jù)長(zhǎng) 度(例如,終端從網(wǎng)絡(luò)的一個(gè)部分移動(dòng)到網(wǎng)絡(luò)的另一部分時(shí))。根據(jù)所 描述的時(shí)序圖,如果關(guān)聯(lián)的MAC地址的數(shù)據(jù)包在至少下列時(shí)間內(nèi)仍 未#^送,則MAC地址條目過(guò)期(即無(wú)效)[(閾值老化-閾值刷新+分辨率時(shí)
間戳)/Cts]。
雖然對(duì)于全部MAC地址主要就一個(gè)老化閾值作了描述,但在一 個(gè)實(shí)施例中,可對(duì)每個(gè)MAC地址分配一個(gè)關(guān)聯(lián)的老化閾值。雖然主 要就靜態(tài)的老化閾值作了描述,但在一個(gè)實(shí)施例中,也可動(dòng)態(tài)地修改
閾值)。例如,可響應(yīng)網(wǎng)絡(luò)操作員命令、網(wǎng)絡(luò)業(yè)務(wù)條件之改變及其他情
其自身的老化閾值的情況下的多個(gè)老化閾值中的一個(gè)或多個(gè))。
雖然根據(jù)本發(fā)明的增強(qiáng)MAC地址更新在本文中主要描述為入口 MAC地址更新,但是,根據(jù)本發(fā)明的增強(qiáng)MAC地址更新也可實(shí)現(xiàn)為 出口 MAC地址更新。在分布式網(wǎng)橋中,由于數(shù)據(jù)包可進(jìn)入一個(gè)線卡 上的網(wǎng)橋并退出另一線卡上的網(wǎng)橋,因此,在各線卡的入口側(cè)和各線 卡的出口側(cè)上均須存在包處理功能性。由于在各線卡的入口側(cè)和出口 側(cè)均實(shí)現(xiàn)包處理功能性,因此,可在各線卡的入口側(cè)或在各線卡的出 口側(cè)或者它們兩者的組合上執(zhí)行MAC地址更新。
如文中所述,文中參照?qǐng)D1 -圖11描述一般化的MAC地址更新, 它可實(shí)現(xiàn)為入口 MAC地址更新或出口 MAC地址更新。因此,文中參 照?qǐng)D1 -圖11才是供的描述可一4殳地適用于入口 MAC地址更新和出口 MAC地址更新。為了說(shuō)明入口 MAC地址更新和出口 MAC地址更新 均可根據(jù)本發(fā)明執(zhí)行,本文分別參照?qǐng)D12、圖13描述入口 MAC地址 更新和出口 MAC地址更新的作為示例的狀態(tài)圖。
圖12是沖艮據(jù)本發(fā)明的一個(gè)實(shí)施例的基于入口的分布MAC地址更 新的狀態(tài)圖。如圖12的狀態(tài)圖1200所示,隨時(shí)間(在y軸上示出)在入 口線卡接收數(shù)據(jù)包。在接收到每個(gè)數(shù)據(jù)包時(shí),將數(shù)據(jù)包轉(zhuǎn)發(fā)給出口線
卡(意指出口(目標(biāo))),并且還在入口線卡上執(zhí)行關(guān)聯(lián)的MAC地址更新 操作。如果在入口線卡上對(duì)所接收數(shù)據(jù)包執(zhí)行MAC地址更新操作, 則LRP由入口線卡生成并分發(fā)到線卡中的其它線卡,并且其它線卡在 接收到LRP時(shí)執(zhí)行MAC地址更新操作。在各線卡上保持老化功能(例 如,圖9的MAC地址老化過(guò)程930)。
圖13是根據(jù)本發(fā)明的一個(gè)實(shí)施例的基于出口的分布MAC地址更 新的狀態(tài)圖。如圖13的狀態(tài)圖1300所示,隨時(shí)間(在y軸上示出)在入 口線卡接收數(shù)據(jù)包。在接收到每個(gè)數(shù)據(jù)包時(shí),將數(shù)據(jù)包轉(zhuǎn)發(fā)給出口線 卡(意指出口 (目標(biāo)));但在入口線卡上不執(zhí)行關(guān)聯(lián)的MAC地址更新操 作。而是在接收到轉(zhuǎn)發(fā)數(shù)據(jù)包時(shí),出口線卡可^l行MAC地址更新操 作。如果在出口線卡上對(duì)所接收數(shù)據(jù)包執(zhí)行MAC地址更新操作,則 LRP由出口線卡生成并分發(fā)到線卡中的其它線卡,且其它線卡在接收 到LRP時(shí)執(zhí)行MAC地址更新^喿作。各線卡上保持老化功能(例如,圖 9的MAC地址老化過(guò)程930)。
雖然本文主要就響應(yīng)單播數(shù)據(jù)業(yè)務(wù)而執(zhí)行本發(fā)明的增強(qiáng)地址更新 功能作了描述,但是,本發(fā)明的增強(qiáng)地址更新功能可響應(yīng)其它類型的 業(yè)務(wù)(例如多播業(yè)務(wù)、廣播業(yè)務(wù)等以及它們的各種組合)來(lái)執(zhí)行。此外, 根據(jù)本發(fā)明的增強(qiáng)地址更新可與橋接網(wǎng)絡(luò)的其它各種功能結(jié)合使用 (為了行文清楚起見(jiàn)而被省略)。例如,根據(jù)本發(fā)明的增強(qiáng)地址更新 可與環(huán)路預(yù)防算法(如生成樹(shù)算法等)、端口保護(hù)功能、虛擬LAN(VLAN) 功能、鏈路聚合功能等以及它們的各種組合結(jié)合起來(lái)使用。
雖然本文主要就一個(gè)具體交換機(jī)體系結(jié)構(gòu)作了描述,但是本發(fā)明 并不限于交換機(jī)體系結(jié)構(gòu)。例如,在一個(gè)實(shí)施例中, 一個(gè)物理交換機(jī) 可分為相互獨(dú)立地進(jìn)行操作的多個(gè)虛擬交換機(jī)。例如,在另一實(shí)施例 中,多個(gè)物理交換機(jī)可作為一個(gè)邏輯交換機(jī)進(jìn)行操作。換言之,本發(fā) 明的MAC地址更新功能并不限于本文為了清楚描述這類MAC地址更 新功能而描述的特定交換機(jī)體系結(jié)構(gòu)。
雖然本文主要就橋接以太網(wǎng)作了描述,但是,本發(fā)明可用于提供 其它各種類型的網(wǎng)絡(luò)(例如令牌環(huán)網(wǎng)、光纖分布數(shù)據(jù)接口 (FDDI)網(wǎng)絡(luò)等
以及它們的各種組合)中的地址更新功能。類似地,雖然本文主要就以
太網(wǎng)MAC地址的增強(qiáng)地址更新作了描述,但是,增強(qiáng)地址更新可用 于其它各種類型的地址,具體取決于基礎(chǔ)網(wǎng)絡(luò)。因此,本發(fā)明并不限 于在橋接以太網(wǎng)中實(shí)現(xiàn);本發(fā)明的增強(qiáng)分布地址更新功能而是可在各 種其它網(wǎng)絡(luò)中實(shí)現(xiàn)。
圖14是表示適合用于執(zhí)-f亍文中所述功能的通用計(jì)算機(jī)的高級(jí)框 圖。如圖14所示,系統(tǒng)1400包括處理器部件1402(例如中央處理器 CPU));存儲(chǔ)器1404,例如隨機(jī)存取存儲(chǔ)器(RAM)和/或只讀存儲(chǔ)器 (ROM);地址更新模塊1405;以及各種輸7v/輸出裝置606(例如存儲(chǔ)設(shè) 備,包括但不限于磁帶驅(qū)動(dòng)器、軟盤驅(qū)動(dòng)器、硬盤驅(qū)動(dòng)器或光盤驅(qū)動(dòng) 器、接收器、發(fā)射器、揚(yáng)聲器、顯示器、輸出端口和用戶輸入裝置(如 鍵盤、小鍵盤、鼠標(biāo)等))。
應(yīng)當(dāng)注意,本發(fā)明可通過(guò)l欠件和/或軟硬件的組合來(lái)實(shí)現(xiàn),例如使 用專用集成電路(ASIC)、通用計(jì)算機(jī)或者其它任何硬件等效方案來(lái)實(shí) 現(xiàn)。在一個(gè)實(shí)施例中,本地址更新過(guò)程1405可加載到存儲(chǔ)器1404中, 由處理器1402運(yùn)行,以實(shí)現(xiàn)如上所述的功能。因此,本發(fā)明的地址更 新過(guò)程1405(包括關(guān)聯(lián)數(shù)據(jù)結(jié)構(gòu))可存儲(chǔ)在例如RAM存儲(chǔ)器、磁或光 驅(qū)動(dòng)器或者磁盤等的計(jì)算機(jī)可讀i某體或載體中。
文中所述的作為車欠件方法步驟的一部分,預(yù)期可在硬件中實(shí)現(xiàn), 例如實(shí)現(xiàn)為與處理器配合工作以執(zhí)行各種方法步驟的電路。本發(fā)明的 若干部分可作為計(jì)算機(jī)程序產(chǎn)品實(shí)現(xiàn),其中,計(jì)算機(jī)指令在由計(jì)算機(jī) 進(jìn)行處理時(shí)調(diào)整計(jì)算機(jī)的操作,以調(diào)用或者以其它方式提供本發(fā)明的 方法和/或技術(shù)。用來(lái)調(diào)用本發(fā)明方法的指令可存儲(chǔ)在固定々某體或可移 動(dòng)媒體中、經(jīng)由廣播或其它信號(hào)承載媒體中的數(shù)據(jù)流發(fā)送和/或存儲(chǔ)在 按照指令進(jìn)行操作的計(jì)算裝置的工作存儲(chǔ)器中。
本文詳細(xì)描述了結(jié)合本發(fā)明的教導(dǎo)的各種實(shí)施例,但是,本領(lǐng)域 技術(shù)人員不難設(shè)計(jì)出仍汲取這些教導(dǎo)的許多其它不同的實(shí)施例。
權(quán)利要求
1.一種用于使線卡轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)同步的方法,包括在線卡上接收數(shù)據(jù)包;響應(yīng)“對(duì)所接收數(shù)據(jù)包執(zhí)行地址更新操作”之確定而為至少一個(gè)其他線卡中的每一個(gè)生成控制包,以能夠在其上進(jìn)行地址更新操作;以及向所述至少一個(gè)其他線卡傳播所述至少一個(gè)控制包。
2. 如權(quán)利要求l所述的方法,其中,確定是否對(duì)所述數(shù)據(jù)包執(zhí)行 地址更新操作的步驟包括確定所述數(shù)據(jù)包的源地址;確定所述源地址的條目是否存在于其上所述數(shù)據(jù)包被接收的所述 線卡的轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中。
3. 如權(quán)利要求2所述的方法,還包括如果所述源地址的條目沒(méi)有存在于所述轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù),則執(zhí)行其中 包括將所述源地址的新條目添加到所述轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)的地址學(xué)習(xí)操作, 其中,所述源地址的所述新條目包含所述源地址、關(guān)聯(lián)出口端口和老 化時(shí)間戳;以及如果所述源地址的條目存在于所述轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù),則確定所述源地 址的條目中包含的出口端口是否同與所接收數(shù)據(jù)包關(guān)聯(lián)的出口端口匹配。
4. 如權(quán)利要求3所述的方法,還包括如果所述出口端口匹配,則確定是否執(zhí)行地址刷新操作,其中, 確定是否執(zhí)行所述地址刷新操作的步驟包括確定所述源地址的條目 的老化時(shí)間戳是否滿足刷新閾值,并響應(yīng)所述老化時(shí)間戳之滿足所述 刷新閾值而執(zhí)行所述地址刷新操作,其中,執(zhí)行所述地址刷新操作的步驟包括重設(shè)所述源地址的條目的老化時(shí)間戳;或者如果所述出口端口不匹配,則執(zhí)行地址再學(xué)習(xí)操作,其中,執(zhí)行 所述地址再學(xué)習(xí)操作的步驟包括更新所述源地址的條目的出口端口 , 并重設(shè)所述源地址的條目的老化時(shí)間戳。
5. 如權(quán)利要求l所述的方法,其中,生成控制包的步驟包括 生成所述數(shù)據(jù)包的副本;以及修改所述數(shù)據(jù)包的副本以將所述數(shù)據(jù)包的副本標(biāo)記為所述控制包。
6. 如權(quán)利要求l所述的方法,還包括在所述線卡中的每一個(gè)上運(yùn)行地址老化過(guò)程,各老化過(guò)程包括 對(duì)于關(guān)聯(lián)轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)的多個(gè)條目中的每一個(gè),確定與所述條目關(guān)聯(lián)的地址老化時(shí)間戳是否滿足老化閾值;對(duì)于所述關(guān)聯(lián)地址老化時(shí)間戳不滿足所述老化閎值的所述多個(gè)條目中的每一個(gè),遞增與所述條目關(guān)聯(lián)的所述地址老化時(shí)間戳;以及對(duì)于所述關(guān)聯(lián)地址老化時(shí)間戳滿足所述老化閾值的所述多個(gè) 條目中的每一個(gè),使所述條目無(wú)效。
7. —種用于使有關(guān)的多個(gè)線卡的多個(gè)轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)同步的裝置,包括用于在線卡上接收數(shù)據(jù)包的部件;用于響應(yīng)"對(duì)所接收數(shù)據(jù)包執(zhí)行地址更新操作"之確定而為至少 一個(gè)其他線卡中的每一個(gè)生成控制包、以能夠在其上進(jìn)行地址更新操 作的部件;以及用于向所述至少一個(gè)其他線卡傳播所述至少一個(gè)控制包的部件。
8. 如權(quán)利要求7所述的裝置,其中,用于確定是否對(duì)數(shù)據(jù)包執(zhí)行地址更新操作的部件包括用于確定所述數(shù)椐包的源地址的部件;用于確定所述源地址的條目是否存在于所述數(shù)據(jù)包在其上^皮接收 的所述線卡的轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中的部件;習(xí)操作的部件,所述地址學(xué)習(xí)操作包括將所述源地址的新條目添加到所述轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù),其中,所述源地址的新條目至少包含所述源地址、 關(guān)聯(lián)出口端口和老化時(shí)間戳;用于在所述源地址的條目存在于所述轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)時(shí)、確定所述源 地址的條目中包含的出口端口是否同與所接收數(shù)據(jù)包關(guān)聯(lián)的出口端口 匹配的部^f牛;用于在所述出口端口不匹配時(shí)執(zhí)行地址再學(xué)習(xí)操作的部件,所述 地址再學(xué)習(xí)操作包括更新所述源地址的條目的出口端口和重設(shè)所述源 地址的條目的老化時(shí)間戳;用于在所述出口端口匹配時(shí)、通過(guò)確定所述源地址的條目的老化 時(shí)間戳是否滿足刷新閾值來(lái)確定是否執(zhí)行地址刷新操作的部件;以及用于響應(yīng)"所述老化時(shí)間戳之滿足所述刷新閾值"而通過(guò)重設(shè)所 述源地址的條目的老化時(shí)間戳來(lái)執(zhí)行所述地址刷新操作的部件。
9.如權(quán)利要求7所述的裝置,還包括用于在所述線卡中的每一個(gè)上運(yùn)行地址老化過(guò)程的部件,其中包括用于對(duì)于關(guān)聯(lián)轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)的多個(gè)條目中的每一個(gè)確定與所述 條目關(guān)聯(lián)的地址老化時(shí)間戳是否滿足老化閾值的部件;用于使所述關(guān)聯(lián)地址老化時(shí)間戳不滿足所述老化閾值的所述 多個(gè)條目中的每一個(gè)的所述地址老化時(shí)間戳遞增的部件;以及用于使所述關(guān)聯(lián)地址老化時(shí)間戳滿足所述老化閾值的所述多 個(gè)條目中的每一個(gè)無(wú)效的部件。
10. —種用于保持有關(guān)的多個(gè)線卡上的多個(gè)轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)的方法, 包括對(duì)于所述轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中的每一個(gè),存儲(chǔ)多個(gè)地址條目,各地址條 目包含地址值、端口值和地址老化時(shí)間戳;以及對(duì)于所述轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)中的每一個(gè),對(duì)所述所存儲(chǔ)地址條目中的每 一個(gè)定期地運(yùn)行地址老化過(guò)程,其中包括確定與所述條目關(guān)聯(lián)的所述地址老化時(shí)間戳是否滿足老化閾值;如果所述地址老化時(shí)間戳不滿足所述老化閾值,則使與所述條目關(guān)聯(lián)的所述地址老化時(shí)間戳遞增;以及如果地址老化時(shí)間戳滿足所述老化閾值,則使所述表?xiàng)l目無(wú)效。
全文摘要
本發(fā)明提供用于媒體訪問(wèn)控制地址學(xué)習(xí)的方法及裝置,其中包括用于使線卡轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)同步的方法及裝置。一種方法包括在線卡上接收數(shù)據(jù)包;為至少一個(gè)其他線卡中的每一個(gè)生成控制包,以能夠在其上進(jìn)行地址更新操作;以及向至少一個(gè)其他線卡傳播至少一個(gè)控制包。響應(yīng)“對(duì)所接收數(shù)據(jù)包執(zhí)行地址更新操作”這一確定而生成控制包或多個(gè)包。地址更新過(guò)程可作為入口地址更新過(guò)程或出口地址更新過(guò)程來(lái)實(shí)現(xiàn)。該地址更新過(guò)程與地址老化過(guò)程一起執(zhí)行。
文檔編號(hào)H04L12/28GK101340366SQ200810090930
公開(kāi)日2009年1月7日 申請(qǐng)日期2008年3月28日 優(yōu)先權(quán)日2007年3月30日
發(fā)明者R·施倫克 申請(qǐng)人:盧森特技術(shù)有限公司