一、交換機的工作原理
前面我們講了以太網(wǎng)的傳輸設(shè)備,在其中也提到了集線器、網(wǎng)橋、交換機等設(shè)備。但隨著技術(shù)的發(fā)展集線器和網(wǎng)橋已經(jīng)被交換機取代。現(xiàn)在局域網(wǎng)中最常用的傳輸設(shè)備為交換機。所以我們這里將會深入的介紹一下交換機的工作原理。
交換機的工作原理:
1. 交換機根據(jù)收到數(shù)據(jù)幀中的源MAC地址建立該地址同交換機端口的映射,并將其寫入MAC地址表中。
2.交換機將數(shù)據(jù)幀中的目的MAC地址同已建立的MAC地址表進行比較,以決定由哪個端口進行轉(zhuǎn)發(fā)。
3.如數(shù)據(jù)幀中的目的MAC地址不在MAC地址表中,則向所有端口轉(zhuǎn)發(fā)。這一過程稱為泛洪(flood)。
4.廣播幀向所有的端口轉(zhuǎn)發(fā),組播幀向所屬的組播端口轉(zhuǎn)發(fā)。
在交換機的工作原理中很關(guān)鍵的一個參數(shù)是MAC地址,交換機基于MAC地址來工作。下面我們詳細學習一下MAC地址。
一個制造商在生產(chǎn)制造網(wǎng)卡之前,必須先向 IEEE 注冊,以獲取到一個長度為 24bit 的廠商代碼,也稱為 OUI(Organizationally-Unique Identifier)。制造商在生產(chǎn)制造網(wǎng)卡的過程中,會往每一塊網(wǎng)卡的 ROM 中燒入一個 48bit 的 BIA(Burned-In Address,固化地址)地址,BIA 地址的前 3 個字節(jié)就是該制造商的 OUI,后 3 個字節(jié)由該制造商自己確定,但不同的網(wǎng)卡,其 BIA 地址的后 3 個字節(jié)不相同。燒入進網(wǎng)卡的 BIA 地址是不能被更改的,只能被讀取出來使用。如下圖所示地址的格式。
注意,BIA 地址只是 MAC 地址的一種,更準確的說,BIA 地址是一種單播 MAC 地址。MAC 地址共分為 3 種,分別為單播 MAC 地址、組播 MAC 地址、廣播 MAC 地址。這 3 種 MAC 地址的定義分別如下:
1)單播 MAC 地址是指第一個字節(jié)的最低位是 0 的 MAC 地址。
2)組播 MAC 地址是指第一個字節(jié)的最低位是 1 的 MAC 地址。
3)廣播 MAC 地址是指每個比特都是 1 的 MAC 地址。廣播 MAC 地址是組播 MAC 地址的一個特例。
一個單播 MAC 地址(例如 BIA 地址)標識了一塊特定的網(wǎng)卡;一個組播 MAC 地址標識的是一組網(wǎng)卡;廣播 MAC 地址是組播 MAC 地址的一個特例,它標識了所有的網(wǎng)卡。從上圖我們可以發(fā)現(xiàn),并非一個 MAC 地址的前 3 個字節(jié)都是 OUI,只有單播 MAC 地址的前 3 個字節(jié)才是 OUI,而組播或廣播 MAC 地址的前 3 個字節(jié)一定不是 OUI。特別需要說明的是,OUI 的第一個字節(jié)的最低位一定是 0。
接下來我們看一下這幾類MAC 地址的事例
有了上面MAC地址的知識后,接下來我們就可以深入地研究交換機的具體的工作原理:
如圖所示,3臺計算機終端設(shè)備(也可以是PLC或其他帶以太網(wǎng)接口的終端設(shè)備)分別接到了交換機的G0/0/1、G0/0/2和G0/0/3端口上
各終端設(shè)備的IP地址和MAC地址如圖所示。交換機上電后處于初始的狀態(tài),交換機的MAC地址為空。
當主機A需要發(fā)起ICMP Ping request到主機C時,主機A通過命令行的命令知道需要通信的目的主機的IP地址(這里的目的地址就是10.1.1.3/24),但主機A卻不知道主機C的MAC地址。所以此時主機A先暫不發(fā)送ICMP 的Ping request,而是發(fā)送一個ARP的廣播報文幀,以此來用來獲得主機C的MAC地址。ARP廣播報文的目的MAC地址為FF-FF-FF-FF-FF-FF的廣播類型地址,而這個ARP廣播報文幀中的源MAC地址為主機A自身的MAC地址00-01-02-03-04-BB的單播地址,ARP廣播報文幀的數(shù)據(jù)部分封裝的是ARP協(xié)議。這樣的報文幀從主機A發(fā)出到達交換機后,交換機按照其工作原理把收到的此幀的源MAC地址00-01-02-03-04-AA和對應端口G0/0/1對應成一條表項記錄到交換的MAC地址表中。
交換機把主機A的MAC地址與端口綁定后,交換機需要把此ARP的廣播數(shù)據(jù)幀轉(zhuǎn)發(fā)出去。在這里我們需要補充一個知識點是交換機的轉(zhuǎn)發(fā)行為:交換機把接收到的數(shù)據(jù)幀可能有如下的3種處理方式。
1、向所有其他所有端口(除入端口外的端口)進行轉(zhuǎn)發(fā);
2、向指定的端口轉(zhuǎn)發(fā);
3、丟棄數(shù)據(jù)幀。
若交換機收到的數(shù)據(jù)幀的目的MAC地址為廣播地址即FF-FF-FF-FF
-FF-FF或交換機收到的單播地址在MAC地址表中不存在,交換機都會按第一種方式發(fā)送。若收到的數(shù)據(jù)幀的MAC地址為單播MAC地址且此地址可以在交換的MAC地址表中查到則交換機會按照第二種單播轉(zhuǎn)發(fā)方式轉(zhuǎn)發(fā)。若交換機接收到的數(shù)據(jù)幀經(jīng)CRC校驗后發(fā)現(xiàn)有錯,則交換機就會按照第三種方式處理,直接丟棄此數(shù)據(jù)幀。
有了上面的知識,我們接著看ARP廣播的數(shù)據(jù)幀到了交換機,且交換經(jīng)過CRC校驗后發(fā)現(xiàn)沒有出錯,交換機也把此幀的源MAC地址與端口綁定,接著交換機查看到目的MAC地址為FF-FF-FF-FF-FF-FF的廣播地址,交換機就把此幀轉(zhuǎn)發(fā)按照廣播的轉(zhuǎn)發(fā)方式轉(zhuǎn)發(fā),即除了如端口外的其他端口都進行轉(zhuǎn)發(fā)出去。此ARP廣播幀會發(fā)送到主機B和主機C上。
主機B接收到此數(shù)據(jù)幀后,把數(shù)據(jù)幀解封裝后發(fā)現(xiàn)ARP協(xié)議部分請求的不是自己IP地址對應MAC地址,就把數(shù)據(jù)幀丟棄,不做進一步的處理。而主機C發(fā)現(xiàn)是請求的是自己IP地址對應的MAC地址,主機C就需要進一步處理,于是主機C就回應主機A的ARP請求。主機C回應主機C的ARP請求是用主機A的MAC地址作為目的MAC地址,主機C自己的MAC地址為源地址進行主機幀的封裝。當此ARP的響應的數(shù)據(jù)幀被從主機C發(fā)出到達交換機后,交換又把此ARP響應幀的源MAC地址即00-01-02-03-04-CC與交換的端口G0/0/3進行綁定并記錄到交換機中,此時交換機中有了兩條表項。
交換機學習完源MAC地址后還需要把此ARP響應的數(shù)據(jù)幀轉(zhuǎn)發(fā)出去,交換機查看此幀的目的MAC地址與交換機地址表的表項1中的MAC地址一致,交換機就把ARP的響應的數(shù)據(jù)幀從端口G0/0/1轉(zhuǎn)發(fā)出去。自此基本上就把交換機的整個工作原理講解完了,即包括交換機的地址學習,又包括交換的轉(zhuǎn)發(fā)方式。當然交換機學習到MAC地址表項不會永久存在交換機。每次新學習到MAC地址后交換機就把此表項的老化時間修改為最大(一般情況下是30S),定時器就從最大值重新倒計時。若超30S內(nèi)沒有新的源MAC是00-01-02-03-04-AA數(shù)據(jù)幀從端口G0、0/1進入。定時器的計數(shù)倒計為0,后此表項就被從交換機中刪除。
二、交換機的三個主要功能
以太網(wǎng)交換機了解每一端口相連設(shè)備的MAC地址,并將地址同相應的端口映射起來存放在交換機緩存中的MAC地址表中。
轉(zhuǎn)發(fā)/過濾:當一個數(shù)據(jù)幀的目的地址在MAC地址表中有映射時,它被轉(zhuǎn)發(fā)到連接目的節(jié)點的端口而不是所有端口(如該數(shù)據(jù)幀為廣播/組播幀則轉(zhuǎn)發(fā)至所有端口)。消除回路:當交換機包括一個冗余回路時,以太網(wǎng)交換機通過生成樹協(xié)議避免回路的產(chǎn)生,同時允許存在后備路徑。
三、交換機的工作特性
1.交換機的每一個端口所連接的網(wǎng)段都是一個獨立的沖突域。
2.交換機所連接的設(shè)備仍然在同一個廣播域內(nèi),也就是說,交換機不隔絕廣播(惟一的例外是在配有VLAN的環(huán)境中)。
3.交換機依據(jù)幀頭的信息進行轉(zhuǎn)發(fā),因此說交換機是工作在數(shù)據(jù)鏈路層的網(wǎng)絡設(shè)備(此處所述交換機僅指傳統(tǒng)的二層交換設(shè)備)。
四、交換機的分類
依照交換機處理幀時不同的操作模式,主要可分為兩類:
存儲轉(zhuǎn)發(fā):交換機在轉(zhuǎn)發(fā)之前必須接收整個幀,并進行錯誤校檢,如無錯誤再將這一幀發(fā)往目的地址。幀通過交換機的轉(zhuǎn)發(fā)時延隨幀長度的不同而變化。
直通式:交換機只要檢查到幀頭中所包含的目的地址就立即轉(zhuǎn)發(fā)該幀,而無需等待幀全部的被接收,也不進行錯誤校驗。由于以太網(wǎng)幀頭的長度總是固定的,因此幀通過交換機的轉(zhuǎn)發(fā)時延也保持不變。