1 前言
從外部看,交換機(jī)與集線器類似,實(shí)際上它們的分類是不同的。研究一下OSI,你會(huì)注意到七個(gè)不同的層對(duì)應(yīng)不同的通訊服務(wù)。最底層是物理層,中繼器或中繼型集線器接收這些信令并在擴(kuò)展時(shí)修復(fù)。10BASE5和10BASE-T都是物理層的標(biāo)準(zhǔn)。
物理層上面是數(shù)據(jù)鏈路層,它負(fù)責(zé)處理物理層間往來(lái)的幀的實(shí)際傳送和接收。站點(diǎn)編址(MAC或媒介訪問(wèn)控制)、數(shù)據(jù)分幀及錯(cuò)誤檢測(cè)都由數(shù)據(jù)鏈路層處理。盡管物理層的參照也包括在其中,IEEE802.3標(biāo)準(zhǔn)基本上是數(shù)據(jù)鏈路層的標(biāo)準(zhǔn)。網(wǎng)橋工作在數(shù)據(jù)鏈路層上。交換機(jī)和網(wǎng)橋一樣。
上一層是論述數(shù)據(jù)傳送的網(wǎng)絡(luò)層,它包括了一個(gè)以上的數(shù)據(jù)鏈接。由IP(流行的互連協(xié)議)的互連進(jìn)行分類。路由器在多重鏈接中指揮交通。傳送單元叫做數(shù)據(jù)包。交換機(jī)通常不工作在這層,但有一個(gè)叫做第3層的交換機(jī)。實(shí)際上這是一個(gè)帶有交換機(jī)功能的路由器。
按硬件分,上一層是應(yīng)用層。當(dāng)需要用網(wǎng)關(guān)來(lái)互連不同的網(wǎng)絡(luò)和不同的協(xié)議時(shí),網(wǎng)關(guān)位于該層。網(wǎng)關(guān)能獲知實(shí)際運(yùn)行的應(yīng)用而其他的設(shè)備如中繼器、網(wǎng)橋和路由器則不能。本文的重點(diǎn)是討論網(wǎng)橋。
2 網(wǎng)橋(交換機(jī))的結(jié)構(gòu)
交換機(jī)即網(wǎng)橋,兩者可以互換。最初,網(wǎng)橋用兩個(gè)端口連接兩個(gè)類似的數(shù)據(jù)鏈路以形成一個(gè)更大數(shù)據(jù)鏈路。如果這種實(shí)現(xiàn)沒(méi)有損失,加上數(shù)據(jù)鏈路間的通訊看起來(lái)一樣,這種網(wǎng)橋叫做透明網(wǎng)橋,你或許認(rèn)為我們?cè)诿枋雎酚善,?shí)際不是。路由器將每一個(gè)數(shù)據(jù)鏈接看作帶有相應(yīng)網(wǎng)絡(luò)地址的實(shí)際網(wǎng)絡(luò)。網(wǎng)橋把單個(gè)數(shù)據(jù)鏈接當(dāng)作一個(gè)更大數(shù)據(jù)鏈接或網(wǎng)絡(luò)的一部分。它不使用網(wǎng)絡(luò)編址的概念,在多個(gè)數(shù)據(jù)鏈接中單站點(diǎn)的地址(MAC地址)并不重復(fù)。和傳統(tǒng)的帶有兩個(gè)端口的網(wǎng)橋不同,交換機(jī)有多個(gè)端口,通常被稱為交換型集線器或交換機(jī)。
與中繼型集線器不同,交換機(jī)的每一個(gè)端口和以太網(wǎng)主機(jī)適配器上的端口一樣,都是以太網(wǎng)的接口。這是因?yàn)槊恳粋(gè)端口必須以另一個(gè)以太網(wǎng)設(shè)備身份作用。它必須能接收幀并進(jìn)行解碼、測(cè)試幀的完整性、重裝并傳送以太網(wǎng)幀。但是,每一個(gè)端口都不要求有類似于以太網(wǎng)卡那樣的MAC地址。每一個(gè)交換機(jī)端口以混合方式作用,不考慮目標(biāo)MAC地址即可接收所有幀。傳送過(guò)程中,以太網(wǎng)端口通過(guò)假設(shè)它的目標(biāo)地址偽裝成節(jié)點(diǎn)設(shè)備。因此,交換型集線器的每一個(gè)端口并不需要自己的MAC地址,除非網(wǎng)橋有編址要求(生成樹(shù)算法要求網(wǎng)橋編址)。
以太網(wǎng)碰撞域通過(guò)交換機(jī)端口對(duì)其進(jìn)行終結(jié)。對(duì)中繼型集線器而言,整個(gè)集線器是碰撞域的一部分。對(duì)交換機(jī)而言,它的好處在于每增加一個(gè)交換機(jī),網(wǎng)絡(luò)的有效范圍就擴(kuò)大一倍。這是因?yàn)榫W(wǎng)絡(luò)分成了兩個(gè)不同的數(shù)據(jù)鏈接。對(duì)于100Mbps的銅纜系統(tǒng)來(lái)說(shuō),這是很重要的,因?yàn)樗呐鲎灿蛑挥?05米。
另一個(gè)不同是中繼型集線器只能在一種速度下工作,要么10Mbps要么100Mbps。交換型集線器擁有多速端口,能與附屬于該端口的設(shè)備匹配,叫做自動(dòng)協(xié)商。不同端口允許有不同速度。一些交換機(jī)有固定的低速端口(10Mbps),另還有一個(gè)或多個(gè)連至服務(wù)器的高速端口(100Mbps)。
通過(guò)在交換機(jī)端口上終結(jié)碰撞域,可以有效地把網(wǎng)絡(luò)分成單獨(dú)的碰撞域。如果只有一個(gè)設(shè)備附屬于交換機(jī)端口(一個(gè)以太網(wǎng)卡或是另一個(gè)交換機(jī)端口),這稱做網(wǎng)絡(luò)微化。在這種情況下,可實(shí)現(xiàn)全雙工工作而不會(huì)產(chǎn)生碰撞。但如果交換機(jī)端口(多主機(jī)適配卡和一個(gè)中繼集線器)存在一個(gè)共享型以太網(wǎng)碰撞域,只允許半雙工工作且交換機(jī)端口必須與以太網(wǎng)媒介裁決規(guī)則相符。
2.1 交換機(jī)工作原理
為了理解交換機(jī)工作原理,我們假設(shè)未對(duì)交換機(jī)進(jìn)行編程。我們所討論的交換機(jī)只通過(guò)學(xué)習(xí)方式對(duì)操作進(jìn)行修改。
假設(shè)有四個(gè)同樣的端口。假設(shè)端口1的站點(diǎn)A準(zhǔn)備傳送信息至端口2的站點(diǎn)B。對(duì)于中繼型集線器或是未學(xué)習(xí)的交換機(jī),盡管其它站點(diǎn)不是對(duì)話的一部分,它們會(huì)收聽(tīng)至站點(diǎn)B的傳送。這種方式造成了不必要的網(wǎng)絡(luò)通訊,阻止了其他站點(diǎn)的初始化傳送。延遲站點(diǎn)只有偵測(cè)到空閑信號(hào)才能進(jìn)行初始化傳送。與中繼型集線器不同,自學(xué)習(xí)交換機(jī)會(huì)注意到端口站點(diǎn)A的源地址,并將端口1與站點(diǎn)A相連這一實(shí)際情況輸入表格。但是,這時(shí)的交換機(jī)并不知道站點(diǎn)B位于何處,所以必須傳送至所有其他端口。這叫做洪泛。在站點(diǎn)B初始化傳送前,交換機(jī)獲悉站點(diǎn)B與端口2相連。一旦站點(diǎn)A和B的端口分配輸入交換機(jī)的表格,在兩個(gè)站點(diǎn)間的所有并發(fā)單址發(fā)送僅出現(xiàn)在端口1和2。所有的其他端口并不知道正在發(fā)生的傳送,因而允許端口1和2之外的站點(diǎn)能進(jìn)行同步的傳送。這就是交換機(jī)提高吞吐量的原因。
如果站點(diǎn)B移至端口3會(huì)出現(xiàn)什么情況?如果站點(diǎn)A與站點(diǎn)B有通訊,根據(jù)端口-地址表,會(huì)傳送至端口2,傳送失敗。為了找到站點(diǎn)B所連的端口,需要進(jìn)行傳送初始化。之后,交換機(jī)會(huì)注意到站點(diǎn)B端口分配的變化,在表格中做相應(yīng)改動(dòng)。但如果沒(méi)有站點(diǎn)B的報(bào)告,就無(wú)法讓交換機(jī)獲知站點(diǎn)B新的位置。這就是為什么交換機(jī)表格需要刷新。
刷新是忘卻的過(guò)程。交換機(jī)定時(shí)檢查表格中的所有站點(diǎn)是否在刷新期限內(nèi)進(jìn)行過(guò)初始化傳送。如果有某個(gè)站點(diǎn)沒(méi)有這么做,則被刪去。即站點(diǎn)B將被刪除。因此,當(dāng)站點(diǎn)A對(duì)站點(diǎn)B進(jìn)行初始化傳送,由于交換機(jī)表格中找不到站點(diǎn)B的入口,就會(huì)發(fā)送至所有端口,使得站點(diǎn)B能聽(tīng)到站點(diǎn)A。站點(diǎn)B以發(fā)送初始化傳送來(lái)響應(yīng)站點(diǎn)A,交換機(jī)將再次獲知站點(diǎn)B的端口分配并寫入表格。刷新過(guò)程通常每四,五分鐘發(fā)生一次,這樣可以獲知沒(méi)有動(dòng)靜的設(shè)備的位置。
2.2 交換機(jī)的結(jié)構(gòu)
與中繼型集線器不同,交換機(jī)允許端口的同步傳送進(jìn)而提高了吞吐量。當(dāng)然,這是在交換機(jī)的工作速度足夠快的前提下。做到這些的交換機(jī)叫做非阻塞型交換機(jī)。如果通訊不能同步,幀需要排隊(duì)或有丟失現(xiàn)象,叫做阻塞型交換機(jī)。
交換機(jī)的首要任務(wù)是把幀從一個(gè)端口可靠傳送至另一個(gè)端口。第二個(gè)任務(wù)是在表格中記錄它所知的多個(gè)源地址的位置。它的最后一個(gè)任務(wù)是對(duì)表作刷新,使站點(diǎn)能重新定位至另外的端口,可以被交換機(jī)找到。交換機(jī)是否對(duì)每一個(gè)幀都做這些工作,由處理的通訊量決定。多幀傳送時(shí)交換機(jī)可能會(huì)放棄刷新表格,這意味著一些第一次出現(xiàn)的源地址沒(méi)有記錄。一般地,刷新過(guò)程只是一個(gè)后臺(tái)過(guò)程,時(shí)間會(huì)隨通訊的情況變化。
2.3 數(shù)據(jù)延遲
交換機(jī)對(duì)幀進(jìn)行操作,而中繼型集線器對(duì)信令進(jìn)行操作。交換機(jī)必須從它的輸入端口之一接收完整的幀、觀察目的地址、端口分配查找、記錄源地址、檢驗(yàn)幀是否有錯(cuò),然后轉(zhuǎn)發(fā)幀至指定的端口號(hào)。這叫存儲(chǔ)-轉(zhuǎn)發(fā)。10Mbps下,以太網(wǎng)幀通過(guò)交換機(jī)的最長(zhǎng)允許時(shí)間是1.2ms,而發(fā)送的最短允許時(shí)間仍需要500μs左右。交換機(jī)的存儲(chǔ)-轉(zhuǎn)發(fā)引起了數(shù)據(jù)延遲。這個(gè)延遲時(shí)間與中繼型集線器進(jìn)行比較,后者的延遲小于1ms。直通型交換機(jī)可以解決這個(gè)問(wèn)題。
由于目的地址緊隨以太網(wǎng)幀的前導(dǎo)碼,交換機(jī)只需用11μs獲知幀要傳送的端口。交換機(jī)會(huì)立即將幀傳至要求的端口。當(dāng)然,這是在假設(shè)已知輸出端口的情況下。如果端口已知,數(shù)據(jù)延遲可以明顯降低,但這種方法仍有問(wèn)題。
如果輸出端口未知,交換機(jī)會(huì)象存儲(chǔ)-轉(zhuǎn)發(fā)方式那樣進(jìn)行排隊(duì)。如果幀損壞,F(xiàn)CS沒(méi)有驗(yàn)證出,交換機(jī)轉(zhuǎn)發(fā)的是不完整的幀。這種有缺陷的幀不應(yīng)該在網(wǎng)絡(luò)中傳播,應(yīng)該被丟棄。但是在一個(gè)可靠的局域網(wǎng)絡(luò)中,F(xiàn)CS失敗的機(jī)會(huì)很少,因此,這不是一個(gè)重要的話題。重要的是碰撞導(dǎo)致的幀殘片。這些幀殘片長(zhǎng)度小于576位,但有可能比前導(dǎo)碼和目的地址之和(即112位)要大。因此,在確定幀是否殘缺前交換機(jī)會(huì)錯(cuò)誤地轉(zhuǎn)發(fā)這些幀。解決的方法就是修改直通方式,即至少收到幀的576位才開(kāi)始轉(zhuǎn)發(fā)。只有這時(shí),幀的轉(zhuǎn)發(fā)才真正開(kāi)始。
有時(shí)直通操作并不可行,例如,如果交換機(jī)要進(jìn)行廣播、多址發(fā)送或目的地址未知的發(fā)送,在所有端口的輸出隊(duì)列同時(shí)進(jìn)行即時(shí)傳送的可能性還很遙遠(yuǎn),在這種情況下,還是接收完整的幀并送至端口輸出隊(duì)列等待最終的傳送。
2.4 流量控制
高速結(jié)構(gòu)的交換機(jī)可以用來(lái)處理大容量的同步通訊,但是,通訊方式并不會(huì)均勻地分布。通常會(huì)有一個(gè)主要端口,處理另一端口通訊,這個(gè)端口可能連接在服務(wù)器上或是主控制器上。如果交換機(jī)沒(méi)有用流量控制機(jī)制來(lái)限制輸入端口的接收,輸出端口發(fā)生阻塞,沒(méi)有多余的可用緩沖,幀會(huì)被未加提示、簡(jiǎn)單地丟棄掉。為了避免這個(gè)問(wèn)題,發(fā)展了兩種流量控制的方法-backpressure和PAUSE。
backpressure用在連接半雙工或共享型以太網(wǎng)的交換機(jī)端口上,即交換機(jī)端口使用以太網(wǎng)內(nèi)置的碰撞檢測(cè)和延遲算法來(lái)加強(qiáng)段內(nèi)的碰撞,進(jìn)而要求附屬設(shè)備重發(fā)數(shù)據(jù)。當(dāng)交換機(jī)的通訊恢復(fù)正常后,backpressure停止工作。
全雙工的鏈接是沒(méi)有碰撞的,因此backpressure不工作,取代它的是專用于全雙工的PAUSE功能。由交換機(jī)端口發(fā)出的PAUSE幀告訴源設(shè)備在一確定的時(shí)間內(nèi)終止發(fā)送。這個(gè)方案工作與否要看附屬的設(shè)備能夠調(diào)用全雙工操作并能理解PAUSE幀的含義。
3 IEEE802.1D
IEEE中有一適用于網(wǎng)橋的標(biāo)準(zhǔn)-802.1D。這個(gè)標(biāo)準(zhǔn)的標(biāo)題是:“信息技術(shù)—系統(tǒng)間的電信和信息交換-局域網(wǎng)和城域網(wǎng)—一般的規(guī)范—第3部分:媒介訪問(wèn)控制網(wǎng)橋”。這個(gè)標(biāo)準(zhǔn)談了網(wǎng)橋(交換機(jī))的使用。在這個(gè)標(biāo)準(zhǔn)中有一些參數(shù)對(duì)實(shí)時(shí)控制網(wǎng)絡(luò)的運(yùn)作有一定影響。
3.1 數(shù)據(jù)刷新
刷新就是在一定量時(shí)間內(nèi)由于源地址未進(jìn)行初始化傳送,網(wǎng)橋的源地址從表格中移去的時(shí)間。標(biāo)準(zhǔn)允許的范圍為10s~1,000,000s。但大多數(shù)的網(wǎng)橋采用的約定是300s或5分鐘。
3.2 網(wǎng)橋發(fā)送延遲
規(guī)定了交換機(jī)引入的最大數(shù)據(jù)延遲。推薦最大值是1s,實(shí)際4s以內(nèi)都允許,
3.3 FCS校驗(yàn)
要求交換機(jī)對(duì)幀執(zhí)行幀校驗(yàn)序列測(cè)試,并丟棄殘缺幀。為此,交換機(jī)必須在轉(zhuǎn)發(fā)前接收完整的幀。這意味著標(biāo)準(zhǔn)不允許直通或直通修正型的操作。
3.4 網(wǎng)橋編址
標(biāo)準(zhǔn)要求網(wǎng)橋不僅要有MAC地址,每一個(gè)端口也要有MAC地址。對(duì)于普通操作這是不必要的,許多商業(yè)交換機(jī)并不支持這個(gè)要求。
4 概括
交換機(jī)按網(wǎng)橋來(lái)分類,工作在數(shù)據(jù)鏈路層。它把網(wǎng)絡(luò)分成不同的碰撞域,擴(kuò)展了網(wǎng)絡(luò)范圍。交換機(jī)會(huì)根據(jù)當(dāng)前的通訊情況限制數(shù)據(jù)流向指定的端口,使其它空閑端口能進(jìn)行獨(dú)立的傳送,改善了性能(與共享型相比)。中繼型集線器有它的作用,但取決于應(yīng)用,交換機(jī)能提供更佳的解決方法。
|