二層交換機(jī)工作于OSI模型的第2層(數(shù)據(jù)鏈路層),故而稱為二層交換機(jī)。二層交換技術(shù)的發(fā)展已經(jīng)比較成熟,二層交換機(jī)屬數(shù)據(jù)鏈路層設(shè)備,可以識(shí)別數(shù)據(jù)幀中的MAC地址信息,根據(jù)MAC地址進(jìn)行轉(zhuǎn)發(fā),并將這些MAC地址與對(duì)應(yīng)的端口記錄在自己內(nèi)部的一個(gè)地址表中。
工作流程
過(guò)程
(1)當(dāng)交換機(jī)從某個(gè)端口收到一個(gè)數(shù)據(jù)幀,它先讀取包頭市中的源MAC地址,這樣它就知道源MAC地址的機(jī)器是連在哪個(gè)端口上的;
(2)再去讀取數(shù)據(jù)幀頭中的目的MAC地址,并在地址表中查找相應(yīng)的端口;
(3)如表中有與這目的MAC地址對(duì)應(yīng)的端口,把數(shù)據(jù)幀直接復(fù)制到這端口上;
(4)如表中找不到相應(yīng)的端口則把數(shù)據(jù)幀廣播到所有端口上,當(dāng)目的機(jī)器對(duì)源機(jī)器回應(yīng)時(shí),交換機(jī)又可以學(xué)習(xí)一目的麥金塔地址與哪個(gè)端口對(duì)應(yīng),在下次傳送數(shù)據(jù)時(shí)就不再需要對(duì)所有端口進(jìn)行廣播了。
不斷的循環(huán)這個(gè)過(guò)程,對(duì)于全網(wǎng)的MAC地址信息都可以學(xué)習(xí)到,二層交換機(jī)就是這樣建立和維護(hù)它自己的地址表。
工作原理
從二層交換機(jī)的工作原理可以推知以下三點(diǎn):
(1)由于交換機(jī)對(duì)多數(shù)端口的數(shù)據(jù)進(jìn)行同時(shí)交換,這就要求具有很寬的交換總線帶寬,如果二層交換機(jī)有N個(gè)端口,每個(gè)端口的帶寬是M,交換機(jī)總線帶寬超過(guò)N×M,那么這交換機(jī)就可以實(shí)現(xiàn)線速交換;
(2)學(xué)習(xí)端口連接的機(jī)器的麥金塔地址,寫入地址表,地址表的大小(一般兩種表示方式:一為BUFFER RAM,一為MAC表項(xiàng)數(shù)值),地址表大小影響交換機(jī)的接入容量;
(3)還有一個(gè)就是二層交換機(jī)一般都含有專門用于處理數(shù)據(jù)包轉(zhuǎn)發(fā)的ASIC (Application specific Integrated Circuit)芯片,因此轉(zhuǎn)發(fā)速度可以做到非常快。由于各個(gè)廠家采用ASIC不同,直接影響產(chǎn)品性能。
以上三點(diǎn)也是評(píng)判二三層交換機(jī)性能優(yōu)劣的主要技術(shù)參數(shù),這一點(diǎn)請(qǐng)大家在考慮設(shè)備選型時(shí)注意比較。
路由技術(shù)
路由器工作在OSI模型的第三層---網(wǎng)絡(luò)層操作,其工作模式與二層交換相似,但路由器工作在第三層,這個(gè)區(qū)別決定了路由和交換在傳遞包時(shí)使用不同的控制信息,實(shí)現(xiàn)功能的方式就不同。工作原理是在路由器的內(nèi)部也有一個(gè)表,這個(gè)表所標(biāo)示的是如果要去某一個(gè)地方,下一步應(yīng)該向哪里走,如果能從路由表中找到數(shù)據(jù)包下一步往哪里走,把鏈路層信息加上轉(zhuǎn)發(fā)出去;如果不能知道下一步走向哪里,則將此包丟棄,然后返回一個(gè)信息交給源地址。
路由技術(shù)實(shí)質(zhì)上來(lái)說(shuō)不過(guò)兩種功能:決定最優(yōu)路由和轉(zhuǎn)發(fā)數(shù)據(jù)包。路由表中寫入各種信息,由路由算法計(jì)算出到達(dá)目的地址的最佳路徑,然后由相對(duì)簡(jiǎn)單直接的轉(zhuǎn)發(fā)機(jī)制發(fā)送數(shù)據(jù)包。接受數(shù)據(jù)的下一臺(tái)路由器依照相同的工作方式繼續(xù)轉(zhuǎn)發(fā),依次類推,直到數(shù)據(jù)包到達(dá)目的路由器。
路由更新
距離矢量路由協(xié)議
在所有的動(dòng)態(tài)路由協(xié)議中,最簡(jiǎn)單的就是距離矢量路由協(xié)議(D-V)。它使用的是最簡(jiǎn)單的距離矢量(Distance-向量,簡(jiǎn)稱D-V)路由算法。
距離矢量算法通過(guò)上述方法累加網(wǎng)絡(luò)距離,并維護(hù)網(wǎng)絡(luò)拓?fù)?/a>信息數(shù)據(jù)庫(kù)。距離矢量協(xié)議定期直接傳送各自路由表的所有信息給鄰居(RIP默認(rèn)是30秒)。網(wǎng)絡(luò)中的路由器從自己的鄰居路由器得到路由信息,并將這些路由信息連同自己的本地路由信息發(fā)送給其他鄰居,這樣一級(jí)一級(jí)地傳遞下去以達(dá)到全網(wǎng)同步。每個(gè)路由器都不了解整個(gè)網(wǎng)絡(luò)拓?fù)洌鼈冎恢琅c自己直接相連的網(wǎng)絡(luò)情況,并根據(jù)從鄰居得到的路由信息更新自己的路由表。它所有的信息都靠道聽(tīng)途說(shuō),它相信所有鄰居告訴它的所有信息,只在這些鄰居中選擇最優(yōu)的來(lái)采用,類似于“傳話”這個(gè)游戲。
路由協(xié)議
定最大值
如上所述,發(fā)生路由環(huán)路時(shí),路由器去往網(wǎng)絡(luò)11.4.0.0的跳數(shù)會(huì)不斷增大,網(wǎng)絡(luò)無(wú)法收斂。為解決這個(gè)問(wèn)題,我們給跳數(shù)定義一個(gè)最大值,在RIP路由協(xié)議中,允許跳數(shù)最大值為15,當(dāng)跳數(shù)到達(dá)最大值時(shí),網(wǎng)絡(luò)11.4.0.0被認(rèn)為是不可達(dá)的,路由器會(huì)在路由表中顯示網(wǎng)絡(luò)不可達(dá)信息,并不再更新到達(dá)網(wǎng)絡(luò)11.4.0.0的路由。
通過(guò)定義最大值,距離矢量路由協(xié)議可以解決發(fā)生環(huán)路時(shí)路由權(quán)值無(wú)限增大的問(wèn)題,同時(shí)也校正了錯(cuò)誤的路由信息。但是,在最大權(quán)值到達(dá)之前,路由環(huán)路還是會(huì)存在。也就是說(shuō),這個(gè)方案只是補(bǔ)救措施,不能避免環(huán)路產(chǎn)生,只能減輕路由環(huán)路產(chǎn)生的危害。
水平分割
水平分割是在距離矢量路由協(xié)議中最常用的避免環(huán)路發(fā)生的解決方案之一。分析產(chǎn)生路由環(huán)路的原因,其中一條就是因?yàn)?a href="/hebeideji/7160845702883721219.html">路由器將從某個(gè)鄰居學(xué)到的路由信息又告訴了這個(gè)鄰居。水平分割的思想就是在路由信息傳送過(guò)程中,不再把路由信息發(fā)送給接收此路由信息的接口上。
抑制時(shí)間
路由中毒和抑制時(shí)間結(jié)合起來(lái),也可以在一定程度上避免路由環(huán)路產(chǎn)生,同時(shí)也可以抑制因復(fù)位接口等原因引起的網(wǎng)絡(luò)動(dòng)蕩。這種方法在網(wǎng)絡(luò)故障或接口復(fù)位時(shí),使相應(yīng)路由中毒,同時(shí)啟動(dòng)抑制時(shí)間,控制路由器在抑制時(shí)間內(nèi)不要輕易更新自己的路由表,從而避免環(huán)路產(chǎn)生、抑制網(wǎng)絡(luò)動(dòng)蕩。
觸發(fā)更新
觸發(fā)更新機(jī)制是在路由信息產(chǎn)生某些改變時(shí),立即發(fā)送給相鄰路由器一種稱為觸發(fā)更新的信息。路由器檢測(cè)到網(wǎng)絡(luò)拓?fù)?/a>變化,立即依次發(fā)送觸發(fā)更新信息給相鄰路由器,如果每個(gè)路由器都這樣做,這個(gè)更新會(huì)很快傳播到整個(gè)網(wǎng)絡(luò)。
當(dāng)網(wǎng)絡(luò)11.4.0.0 不可達(dá)了,路由器C立即通告網(wǎng)絡(luò)11.4.0.0不可達(dá)信息,路由器B接收到這個(gè)信息,就從S0口發(fā)出網(wǎng)絡(luò)11.4.0.0不可達(dá)信息,依次路由器A從E0口通告此信息。
從以上敘述可以看出,使用觸發(fā)更新方法能夠在一定程度上避免路由環(huán)路發(fā)生。但是,仍然存在兩個(gè)問(wèn)題:
(1)包含有更新信息的數(shù)據(jù)包可能會(huì)被丟掉或損壞。
(2)如果觸發(fā)更新信息還沒(méi)有來(lái)得及發(fā)送,路由器就接收到相鄰路由器的周期性路由更新信息,使路由器更新了錯(cuò)誤的路由信息。
為解決以上的問(wèn)題,我們可以將抑制時(shí)間和觸發(fā)更新相結(jié)合。抑制時(shí)間方法有一個(gè)規(guī)則就是當(dāng)?shù)侥骋荒康木W(wǎng)絡(luò)的路徑出現(xiàn)故障,在一定時(shí)間內(nèi),路由器不會(huì)輕易接收到這一目的網(wǎng)絡(luò)的路徑信息。因此,將抑制時(shí)間和觸發(fā)更新相結(jié)合,就可以確保觸發(fā)信息有足夠的時(shí)間在網(wǎng)絡(luò)中傳播。
在多路徑的情況下,要綜合使用這幾種方案才能在一定程度上解決環(huán)路問(wèn)題。距離矢量協(xié)議無(wú)論是實(shí)現(xiàn)還是管理都比較簡(jiǎn)單,但是它的收斂速度慢,報(bào)文量大,占用較多網(wǎng)絡(luò)開(kāi)銷,并且為避免路由環(huán)路需要做各種特殊處理
路由協(xié)議
是目前使用最廣的一類域內(nèi)路由協(xié)議。它采用一種“拼圖”的設(shè)計(jì)策略,即每個(gè)路由器將它到其周圍鄰居的鏈路狀態(tài)向全網(wǎng)的其他路由器進(jìn)行廣播。這樣,一個(gè)路由器收到從網(wǎng)絡(luò)中其他路由器發(fā)送過(guò)來(lái)的路由信息后,它對(duì)這些鏈路狀態(tài)進(jìn)行拼裝,最終生成一個(gè)全網(wǎng)的拓?fù)湟晥D,進(jìn)而可以通過(guò)最短路徑算法來(lái)計(jì)算它到別的路由器的最短路徑。
鏈路狀態(tài)路由選擇協(xié)議的目的是映射互連網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)。每個(gè)鏈路狀態(tài)路由器提供關(guān)
于它鄰居的拓?fù)浣Y(jié)構(gòu)的信息。這包括:
· 路由器所連接的網(wǎng)段(鏈路)。
· 那些鏈路的情況(狀態(tài))。
這個(gè)信息在網(wǎng)絡(luò)上泛洪,目的是所有的路由器可以接收到第1手信息。鏈路狀態(tài)路由器并不會(huì)廣播包含在它們的路由表內(nèi)的所有信息。相反,鏈路狀態(tài)路由器將發(fā)送關(guān)于已經(jīng)改動(dòng)的路由的信息。鏈路狀態(tài)路由器將向它們的鄰居發(fā)送呼叫消息,這稱為鏈路狀態(tài)數(shù)據(jù)包( L S P )或者鏈路狀態(tài)通告( L S A )。然后,鄰居將L S P復(fù)制到它們的路由選擇表中,并傳遞那個(gè)信息到網(wǎng)絡(luò)的剩余部分。這個(gè)過(guò)程稱為泛洪( f l o o d i n g )。它的結(jié)果是向網(wǎng)絡(luò)發(fā)送第1手信息,為網(wǎng)絡(luò)建立更新路由的準(zhǔn)確映射。
鏈路狀態(tài)路由選擇協(xié)議使用稱為代價(jià)的方法,而不是使用跳。代價(jià)是自動(dòng)或人工賦值的。根據(jù)鏈路狀態(tài)協(xié)議的算法,代價(jià)可以計(jì)算數(shù)據(jù)包必須穿越的跳數(shù)目、鏈路帶寬、鏈路上的當(dāng)前負(fù)載,或者甚至其他由管理員加入的權(quán)重來(lái)評(píng)價(jià)。
D i j k s t r a算法不得不在每次路由改變的時(shí)候運(yùn)行;這在所有的路由器上加重了C P U的負(fù)擔(dān)。
D i j k s t r a算法首先是最短的路徑,在這里對(duì)路徑長(zhǎng)度的迭代確定了最短的路徑生成樹(shù)。
由于路由器需要做大量的路徑計(jì)算工作,一般處理器的工作能力直接決定其性能的優(yōu)劣。當(dāng)然這一判斷還是對(duì)中低端路由器而言,因?yàn)?a href="/hebeideji/5166283146388250170.html">高端路由器往往采用分布式處理系統(tǒng)體系設(shè)計(jì)。
參考資料 >