計算機網絡-3-5-以太網MAC層及交換機

MAC層的硬件地址

在局域網中,硬件地址又稱為物理地址或者MAC地址(因為這種地址用在MAC幀中)

IEEE 802標準為局域網規定了一種48位(6位元組)的全球地址,固化在適配器的ROM中。

如果計算機中或者路由器有多個適配器,那麼這樣的主機或者路由器就有多個「地址」,更準確的說,這種48位「地址」應當是某個接口的標識符。

IEEE的註冊管理結構RA是局域網全球地址的法定管理機構,它負責分配地址字段6個位元組中的前三個位元組。世界上凡是要生產局域網適配器的廠家都必須向IEEE註冊管理結構購買由這三個位元組構成的號(地址塊),這個號的正式名稱為組織唯一標識符OUI,通常也叫公司標標識符。

以太網適配器還可以設置為一種特殊的工作方式,即混雜模式,工作在混雜模式的適配器只要「聽到」有幀在以太網上就可以悄悄傳輸接收下來,而不管幀發送到哪裡。

MAC幀格式

常用的以太網MAC幀格式有兩種,一種是DIX Ethernet V2標準(以太網V2標準),另一種是IEEE的802.3標準。這裡介紹使用最多的以太網V2的MAC幀格式(圖3-22)。圖中假定網絡層使用的是IP協議。

image

以太網V2的MAC幀比較簡單,由5個字段組成。前兩個字段分別為6位元組長的目的地址源地址字段。第三個字段為2位元組的類型字段,用來標識上一層(例如網絡層)使用的是什麼協議,以便把收到的MAC幀的數據上交給上一層的這個協議。例如,當協議字段為0x0800代表上層網絡層使用的是IP數據報;若類型為0x8137表示的是上層是從Novell IPX發過來的。第四個字段是數據字段,其長度為46-1500位元組之間(最小長度64位元組減去首部和尾部以及類型的長度18)。第五個字段為4位元組的幀檢驗序列FCS(使用CRC校驗)

MAC層怎麼知道從從接收到的以太網幀取出多少位元組交付給上一次層呢?這時候我們需要說一下曼徹斯特編碼,曼徹斯特編碼的重要一個特點是:在曼徹斯特編碼的每一個碼元的正中間一定有一次電壓轉換(由高到低或者由低到高)。當發送方把一個以太網幀發送完畢後,就不再發送其它碼元了(既不發送0,也不發送1)。因此,發送方的網絡適配器上的接口上的電壓就不會發生變化了。這樣,接收方就可以很容易找到以太網幀的結束位置。在這個位置上往前移4位元組(FCS校驗4位元組),就能確定數據字段的結束位置。

當數據字段的長度小於46位元組時候,MAC子層就會在數據字段加入一個整數字段進行填充,以保證以太網的幀不小於64位元組。

從圖3-22還可以看出,在傳輸媒體上實際傳送的要比MAC幀還多8個位元組,這是因為當一個站在剛開始接收MAC幀時,由於適配器的時鐘尚未與到達的比特流達成同步,因此MAC幀的最前面的若干位就無法接收,結果使得整個MAC幀成為無用的幀。為了接收端迅速的實現位同步,從MAC層向下物理層還要幀的前面插入8位元組(由硬件生成),它由兩個字段構成。第一個字段時7位元組的前同步碼(1和0交替碼),它的作用是使接收端的適配器在接收MAC幀的時候能夠迅速調整其時鐘頻率,使它和發送端的時鐘同步,也就是實現位同步,第二個字段是**幀開始定界符,定義為10101011,它的前6位作用和前同步碼一樣,最後兩個連續的1就是告訴接收端適配器:「MAC幀信息就要來了,請適配器注意接收」。

在以太網上傳送數據時是以位單位傳送的。以太網在傳送幀時,各幀之間還必須有一定的間隙。因此,接收端只要找到幀開始定界符,其後面的連續到達的比特流就屬於同一個MAC幀。可見以太網不需要使用幀結束定界符。

擴展的以太網

擴展的以太網再網絡層看起來仍然是一個網絡

在物理層擴展以太網

以太網上的主機之間的距離不能太遠,否則主機發送的信號經過銅線傳輸就會衰減到CSMA/CD協議無法正常工作。

現在,擴展主機和集線器之間的距離的一種辦法就是使用光纖和一堆光纖調製解調器。如圖3-23:所示:

image

光纖調製解調器的作用是進行電信號與光信號的轉換。由於光纖帶來的時延很小,並且帶寬很寬,因此使用這種方法可以很容易的使主機從幾千公里以外的集線器相連。

在數據鏈路層擴展以太網

擴展以太網更常用的方法是在數據鏈路層上進行。最初人們使用的是網橋,網橋對接收到的幀根據其目的MCA地址進行轉發過濾

在1990年出現了以太網交換機
以太網交換機實質上就是一個多接口的網橋,以太網交換機的每個接口都直接與一台計算機或者另一台以太網交換機相連。並且一般都是工作在全雙工方式,以太網交換機還具有並行性,即能同時聯通多對接口,使多對主機能同時通信(而網橋只能一次分析和轉發一個幀),相互通信的主機都是獨佔傳輸媒體,無碰撞的傳輸數據

以太網的接口還有存儲器,能在輸出端口繁忙時把到來的幀進行緩存。因此,如果以太網交換機上的兩台主機,同時向另一台主機發送幀,那麼當這台主機上的接口繁忙時,發送幀的這兩台主機的接口會把收到的幀暫存一下,以後再發送出去。

以太網交換機是一種即插即用的設備,其內部的幀交換表(又稱地址表)是通過自學習算法自動逐漸建立起來的。以太網交換機由於使用了專門的交換結構芯片,用硬件轉發,其轉發速率往往比要使用軟件轉發快得多。

以太網交換機的自學習功能

使用一個簡單的例子說明交換機是怎樣進行學習的。
假定在圖3-25中以太網有4個接口,各連接一台計算機,其MAC地址分別為A,B,C,D。一開始交換機裏面的交換表使空的。(圖3-25(a))

image

A向B發送一幀,從端口1進入到交換機,交換機在接收到幀後,先查找交換表,沒有查到應從哪個接口轉發這個幀(在MAC地址這列中,找不到目的地址為B的主機)。接着,交換機把這個幀的源地址A和接口2寫入到交換表中,並向除接口1以外的所有接口廣播這個幀。

C,D丟棄掉這個幀,因為目的地址不對,只有B收下這個幀,這也稱之為過濾

從新寫入交換表的項目(A,1)可以看出,以後不管從哪一個接口收到幀,只要其目的地址是A,就應當把收到的幀從接口1轉發出去。這樣做的依據是:既然A發出的幀是從接口1進入到交換機的,那麼從交換機的接口1轉發出去的幀也應當可以到達A。經過一段時間後,交換表中的項目就齊全了。

有時候交換機上的接口更換主機,或者主機更換了網絡適配器,這就需要更改交換表中的項目。為此,在交換表中每個項目都設有一定的有效時間,過期的項目就會被自動刪除,用這樣的方法保證交換表中的數據都符合當前網絡的實際情況。

以太網交換機的這種自學方法不需要人工進行配置,非常的方便。

但有時候為了增加網絡的可靠性,在使用以太網交換機組件網絡的時候,往往會增加一些冗餘的鏈路。在這種情況下,自學習的過程就可能導致以太網幀在網絡的某一個環路中無限制的兜圈子,白白消耗了網絡資源,如圖3-26:

image

為了解決兜圈子問題,IEEE的802.1D標準制定了一個生成樹協議STP,其要點的協議是不改變網絡的實際拓撲,但在邏輯上切斷某些鏈路。使得從一台主機到其他主機的路徑是無環路的樹狀結構,從而避免廣播風暴大量佔用交換機的資源。

生成樹STP協議原理:任意一交換機中如果到達根網橋有兩條或者兩條以上的鏈路,生成樹協議都根據算法把其中一條切斷,僅保留一條,從而保證任意兩個交換機之間只有一條單一的活動鏈路。因為這種生成的拓撲結構,很像是以根交換機為樹榦的樹形結構,故為生成樹協議。

總線以太網使用了CSMA/CD協議,以半雙工進行通信,但是以太網交換機採用的是全雙工通信,並不是使用CSMA/CD協議,為什麼還叫以太網?原因是它的幀結構未發生變化,仍然採用以太網的幀結構

虛擬局域網

利用以太網交換機可以很方便的實現虛擬局域網(VLAN),在IEEE802.1Q標準中,對虛擬局域網是這樣定義的:虛擬局域網是由一些局域網網段構成的與物理位置無關的邏輯組,而這些網絡具有某些共同的需求,每一個VLAN幀都有一個明確的標識符,指明發送這個幀的計算機屬於哪一個VLAN。

本章重要的概念

  • 鏈路是從一個節點到相鄰節點的一段物理層線路,數據鏈路是在鏈路的基礎上增加了一些必要的硬件(如網絡適配器)和軟件(如協議的實現)。

  • 數據鏈路層使用的信道主要是點對點信道和廣播信道兩種。

  • 數據鏈路層傳送的協議數據單元是幀。數據鏈路層的三個基本問題是:封裝成幀,透明傳輸,差錯檢測。

  • 循環冗餘檢驗CRC是一種檢錯方法,而幀檢測序列FCS是添加在數據後面的冗餘碼。

  • 點對點協議PPP是數據鏈路層使用最多的一個協議,它的特點是:簡單,只檢測差錯,而不是糾正錯誤,不使用序列號,也不進行流量控制。可同時支持多種網絡協議。

  • PPoE是為寬帶上網的主機使用的鏈路層協議。

  • 局域網的優點是:

    • 具有廣播功能,從一個站點可以很方便的訪問全國。
    • 便於系統的擴展和演變。
    • 提高了系統的可靠性,可用性和生存性。
  • 計算機與外界局域網的通信要通過通信適配器(或網絡適配器),它又稱為網絡接口卡或網卡。計算機的硬件地址就在適配器的ROM中。

  • 以太網採用無連接的工作方式,對發送的數據幀不進行編號,也不要求對方發回確
    認。目的站收到有差錯幀就把它丟棄,其他什麼也不做。

  • 以太網採用的協議是具有衝突檢測的載波監聽多點接入 CSMA/CD。協議的要點是:發送前先監聽,邊發送邊監聽,一旦發現總線上出現了碰撞,就立即停止發送。然後按照退避算法等待一段隨機時間後再次發送。因此,每一個站在自己發送數據之後的一小段時間內,存在着遭遇碰撞的可能性。以太網上各站點都平等地爭用以太網信道。

  • 傳統的總線以太網基本上都是使用集線器的雙絞線以太網。這種以太網在物理上是星形網,但在邏輯上則是總線形網。集線器工作在物理層,它的每個接口僅僅簡單地轉發比特,不進行碰撞檢測。

  • 以太網的硬件地址,即MAC地址實際上就是適配器地址或適配器標識符,與主機
    所在的地點無關。源地址和目的地址都是48位長。

  • 以太網的適配器有過濾功能,它只接受單播幀,廣播幀和多播幀。

  • 使用集線器在物理層上擴展以太網(擴展後的以太網仍然是一個網絡)。

  • 交換式集線器常稱為以太網交換機或第二層交換機(工作在數據鏈路層)。它就是
    個多接口的網橋,而每個接口都直接與某台單主機或另一個集線器相連,且工作
    在全雙工方式。以太網交換機能同時連通許多對的接口,使每一對相互通信的主機
    都能像獨佔通信媒體那樣,無碰撞地傳輸數據。