咱們平時所說的區域網路交換技術,也稱為層2交換技術,內容主要包括層2交換的工作原理、網路環路、如何利用Spanning-TreeProtocol來解決網路環路...
咱們平時所說的區域網路交換技術,也稱為層2交換技術,內容主要包括層2交換的工作原理、網路環路、如何利用Spanning-Tree Protocol來解決網路環路、VLAN及VTP技術,這篇文章主要介紹二層交換器的工作原理以及網路環路的危害。其他的內容將在後續陸續介紹。
大家都知道傳統共用乙太網路使用的是CSMA/CD機制,即載波偵聽多路訪問/衝突檢測。我們來詳細分析一下:
▲CSMA/CD
CSMA/CD是一種分布式介質存取控制協議,網路中的各個節點都能獨立地決定資料幀的發送與接收。每個節點在發送資料幀之前,首先要進行載波監聽,只有介質空閑時,才允許發送幀。這時,如果兩個以上的節點同時監聽到介質空閑並發送幀,則會產生衝突現象,這使發送的幀都成為無效幀,發送隨即宣告失敗。每個節點必須有能力隨時檢測衝突是否發生,一旦發生衝突,則應停止發送,以免介質頻寬因傳送無效幀而被白白浪費,然後隨機延時一段時間後,再重新爭用介質,重發送幀。
最早由Inter,施樂,DEC三家公司提出乙太網路標準,後來IEEE組織制定了802.3標準規定了乙太網路的物理層和資料連結層的MAC子層,主要就是定義了10BASE-2、10BASE-5、10BASE-T、10BASE-F等,規定了介質,頻寬,距離等。同時還定義了一個502.2標準,規定乙太網路資料連結層的LLC子層,即邏輯鏈路控制子層,主要是提供了一個資料連結層與網路層的介面,:
網路層有很多協議,資料連結層提供了很多協議之間的區分,使用網路層的哪一個協議,這就是為什麼資料幀要封裝一個LLC的頭部資訊。但傳統以太2幀中不是使用LLC封裝而是在資料幀中有一個2個位元組的type來表明上網所使用的協議,如所使用的網路層協議是ARP。
下面來看一下衝突域,廣播域
衝突域:共用式乙太網路中的所有節點在需要與其他節點通訊時是可以發送資料的,但是CSMA/CD的機制卻在確保在某個時刻只有一個節點可以發送資料,那如果肉個同時發送資料了,出現這種情況會導致衝突,那麼在這個共用式網路中可能產生衝突的這麼一個範圍,我們就稱為衝突域。
廣播域:廣播域是指在一個網路中廣播包所能到達的範圍。也就是說如果在一個網路上一個節點發送了一個廣播包,這個廣播包可以到達的範圍,我們稱為廣播域,
作為一名專業的網路工作人員,具有識別衝突域和廣播域的能力是所需要的一項重要技能。第一層裝置的加入是擴大了衝突域,只有加入第二層裝置或三層裝置才可以分隔衝突域,也就是說如果加入了橋接器、交換器和路由器可以將衝突域分割成較小的部分,從面降低對頻寬的競爭,減少衝突。路由器還有一個好處,可以劃分更小的廣播域。這就叫網路分段。而用二層裝置來減少衝突域的範圍叫做“微分段”,也就是說不是正真意義的分段。真正意義的分段是網段號不同,不可能進行直接通訊。所以二層裝置可以實現分段,但不能真正將網路進行分段,而路由器是可以實現真正網路分段的。這句話,大家好好理解一下!給出一個表供大家參考。
▲網路分段
那麼咱們的交換技術毫無疑問使用的就是交換器,我們來看一個交換器的功能
交換器的三大功能:
1.MACA地址的學習
2.資料幀的轉寄或者是資料幀的過濾
3.利用產生樹協議防止網路環路
首先我們來看第一個交換器MAC地址的學習功能,交換器是通過MAC表來進行交換轉寄工作的,所以MAC地址表是交換工作的核心,網路與交換器的不同之處就在於橋接器使用軟體來建立和管理MAC地址表的,而交換器使用ASIC來建立和管理MAC地址表。
交換器的MAC地址學習功能:
交換器初始化時,要學習進入交換器的資料幀的源地址,並且把源地址及其對應的交換器的連接埠號碼記錄在MAC地址表。在MAC地地址表形成之後,交換器要學習進入交換器資料幀的目的地址,並且與MAC地址表中的條目進行比較,完成相應的轉寄。
▲MAC地址學習
交換器開機初始化時,MAC地址表是空的,因為MAC地址表是儲存在記憶體中的。
如果電腦A發送資料幀到電腦C,此時交換器的E0口接收該資料幀,交換器記錄下該資料幀的源地址C的對應關係及E0口的對應關係。:
由於交換器並不知道C的MAC地址,所以將此資料幀對除了E0口以外的其他連接埠進行轉寄。
如果是電腦D發送資料幀到電腦C,此時交換器的E3口接收該資料幀,交換器記錄下該資料幀的源地址D的地址與連接埠的對應關係。此時交換器仍然不知道C的地址,所以還是要對除了E0口以外的其他連接埠上進行轉寄。
交換器不斷記錄每個介面上接收到的資料幀的地址,一段時間以後所有的連接埠所串連的MAC地址都會記錄到MAC地址表中。此時電腦A再向電腦C發送資料時,就直接查MAC地址表進行轉寄即可,不會再轉寄到其他連接埠上。
在這個圖中電腦A和電腦B通過HUB串連到Switch的E0口上,所以在MAC地址表中記錄兩個MAC地址對應同一個連接埠,此時如果A與B通訊,則交換器不會轉寄該資料幀,因為源和標MAC都在同一個介面上。這就是交換器的地址學習功能以及資料包的轉寄過濾。
交換器的交換方式一般有三種:直通轉寄、片斷轉寄和儲存轉寄
直通轉寄:交換器檢測到目錄位址後即轉寄資料幀,也就是說只要讀到目標地址以後就開始轉寄,大家分析一下資料幀的格式就知道了,加上前置位和目標地址也就是14個位元組左右,不需要再往後分析了。這樣減少延時,但是不適合高錯誤率的網路。因為有一些資料碰撞幀,是小於64位元組的,也會一起轉寄!
片斷轉寄:與直通轉寄相似,只是在轉寄的時候會檢測幀的前64個位元組,這前64個位元組中會包含一小部分資料,好處是可以把可以把小於64位元組的壞幀拋棄掉,以節約頻寬。
儲存轉寄:這是延時最大的一種轉寄,在進行資料轉寄之前要將收到的幀進行完整性校正,確認沒有錯誤才進行轉寄,如果有錯誤就不轉寄。好處是可以丟棄任何小於64位元組和受損的資料包,但是缺點是延遲大。
下面看一下網路環路的形成:
網路環路
大家看下面這個圖:
在這個拓撲圖中,交換器就成了一個單點故障,如果交換器壞了,此時的幾個模組之間都無法進行正常的工作,客戶機不能訪問伺服器,不能串連internet,不能訪問印表機,反之都一樣。所謂單點故障,也就是一點發生故障,則整網路無法正常工作。所以在一般的交換式網路中,我們都需要對交換器進行冗餘,但是引入冗餘又會發生一個問題,一個很嚴重的問題,就是網路環路。下面我們來看看環路對我們的網路到底造成了什麼影響,影響主要有三:
1Broadca ststorms廣播風暴
2Multiple Frame Copies多重複資料幀
3MAC Database Instability MAC地址表不穩定
咱們一一來看
廣播風暴:我們看一個圖,大家就明白什麼是廣播風暴了:
分析:如果主機X希望跟網路上的其他主機通訊,將資料報傳給交換器A,但交換器仍然會將此報再一次傳給交換器A,依次類似,構成了一個環,而且這個環後面比較嚴重,為什麼?我們在講網路基礎的時候,我們講了資料幀的格式,大家可以回憶一下,但在這個格式中,沒有類似於三層IP前序中TTL機制,所以資料幀在網路中將被無限次數的傳遞,從面造成了廣播風暴,如果是單播的資料還要好一些,如果是廣播或者組播資料在這樣一個環路網路中傳遞則廣播風暴更加明顯。
多重資料幀:也稱為重複資料幀
分析:主機X準備發一個單播幀給路由器Y,資料報發出後,發現有兩條路可以到達路由器Y,一個是直接發過去,還有一條就是通過交換器A轉給交換器B,然後再交給路由器Y,此時路由器Y就收到了兩位一模一樣的資料幀。
還有一個就是MAC地址表的不穩定:
分析:還是主機X發送資料幀給路由器Y,路由器的MAC地址表還沒有被交換器學習到,資料幀沿鏈路發送到交換A和交換器B的連接埠0,那麼交換器A和交換器B都將主機X的MAC地址記錄在port0。因為是通過port0收到的資料幀,所以會通過兩個交換器的port1向外泛洪,交叉來到相互交換器的port1口,又認為主機X的MAC地址所對應的連接埠是port1,即從交換器A發出來的資料幀來到了交換器B的port1連接埠。然後交換器B收到後又通過Port0口再次泛洪,依次類推,資料幀在環路裡重複執行上述過程,交換器A和交換器B重複的在port1以及port0上不斷的學習主機X的MAC地址,造成MAC地址表的不穩定。