計算機網絡讀書筆記——數據鏈路層(4)

以太網的兩個標準

  • DIX Ethernet V2是世界上第一個局域網產品(以太網)的規約
  • IEEE的802.3標準。

DIX Ethernet V2標準與IEEE的802.3標準只有很小的差別,因此可以將802.3局域網簡稱爲“以太網”,但嚴格來說,“以太網”應當是指符合DIX Ethernet V2標準的局域網。

以太網與數據鏈路層的兩個子層

爲了使數據鏈路層更好適應多種局域網標準,802委員會就將局域網的數據鏈路層拆成兩個子層:
1. 邏輯鏈路控制LLC(Logical Link Control)子層
2. 媒體接入控制MAC(Medium Access Control)子層

局域網對LLC子層是透明的
與接入到傳輸媒體有關的內容都放在MAC子層,而LLC子層則與傳輸媒體無關,由於TCP/IP體系經常使用的局域網是DIX Ethernet V2而不是802.3標準中的幾種局域網,因此現在802委員會制定的邏輯鏈路控制子層LLC(即802.2標準)的作用已經消失了,所以現在很多廠商生產的適配器(網卡)上就僅裝有MAC協議而沒有LLC協議。

以太網提供的服務

以太網提供的服務是不可靠的交付,即盡最大努力的交付。當接收站收到有差錯的數據幀時就丟棄此幀,其他什麼也不做。差錯的糾正由高層(即傳輸層)來決定。如果高層(傳輸層)發現丟失了一些數據而進行重傳,但以太網並不知道這是一個重傳的幀,而是當做一個新的數據幀來發送。

星型拓撲

傳統以太網最初是使用粗同軸電纜,後來演進到使用比較便宜的細同軸電纜,最後發展爲使用更便宜和更靈活的雙絞線。不用電纜而使用無屏蔽雙絞線。每個站需要用兩對雙絞線,分別用於發送和接收,這種以太網採用星型拓撲,在星形的中心則增加了一種可靠性非常高的設備,叫做集線器(hub),設備與集線器之間通過兩對雙絞線的RJ-45水晶接頭相連,每個設備與集線器連接的距離不得超過100米。集線器起到了信號放大的作用,集線器可以與集線器相互連接。
以太網星型拓撲

集線器的一些特點

使用集線器的以太網在邏輯上仍是一個總線網,各工作站的網卡執行CSMA/CD協議,集線器很像一個多接口的轉發器,集線器工作在物理層,它的每個接口只進行簡單的轉發比特,而不進行碰撞檢測。下圖爲一個三接口的集線器,可以發現每一個工作站(設備)通過網卡(適配器)發送的數據(電信號形式)對應着其餘所有網卡的收數據端(其餘某端裝有抓包工具的話可以捕獲數據)。集線器的工作原理非常簡單,只不過當接口變多時,對應的線路也會越多而已。
三接口集線器

10BASE-T星形以太網標準(即就是IEEE制定的802.3i標準)

國際互聯網組織給用集線器連接的以太網定義了一個標準爲10BASE-T,**10BASE-T中的10代表的是10兆(10Mbps=10Mbit/s)的帶寬,BASE代表傳輸的信號爲基帶信號(又稱數字信號),T代表使用雙絞線聯網的。**10BASE-T的通信距離稍短,每個計算機到集線器的距離不超過100米,這種10Mb/s速率的無屏蔽雙絞線星形網的出現,既降低了成本,又提高了可靠性,同時它爲以太網在局域網中的統治地位奠定基礎。除此之外還有:100BASE-FX(百兆以太網,傳輸基帶信號,FX代表光纖),100BASE-T,100BASE-T4等等。

以太網的信道利用率

假定一個10Mb/s以太網同時有10個站在工作,那麼每一個站所能發送數據的平均速率似乎應當是總數據率的1/10(即1Mb/s)。其實不然,因爲多個站在以太網上同時工作就可能會發生碰撞。當發生碰撞時,信道資源實際上是被浪費了。因此,當扣除碰撞所造成的信道損失後,以太網總的信道利用率並不能達到100%。一個站在發送幀時出現了碰撞,經過一個爭用期2τ後(τ是以太網單程端到端傳播時延),可能又出現了碰撞。這樣經過若干個爭用期後,一個站發送幀才能成功。
以太網信道被佔用情況

由上圖可知,成功發送一個幀需要佔用信道的時間是T0+τ ,比這個幀的發送時間多一個τ,因爲數據幀在發送方(傳輸媒體的一端)看來雖然用了T0 時間發送完畢了,但是對於接收方(傳輸媒體的另一端)來說並不是實時就可以接收到的,因爲當一個站發送完最後一個比特時,這個比特還要在以太網上傳播,而數據的單程端到端傳播時延是τ,所以必須經過時間T0+τ 後,當一個站的最後一個比特發送後通過傳輸媒體傳輸到另一端後,以太網的傳輸媒體才完全進入空閒狀態,才能允許其他站發送數據。由上圖可知要提高信道利用率,就必須減小τT0 的比,在以太網中定義了參數a,它是以太網單程端到端傳播時延τ 與幀的發送時間T0 之比:

a=τT0

要提高信道利用率,首先要減小a 的值,即減小τ ,增大T0。因此必須限制以太網的連線長度,這樣可以使端到端的傳播時延τ 減小,同時以太網的數據幀不能太短,這樣可以增加幀的發送時間T0 。現在考慮一種理想化的情況,假定以太網各個站發送數據不會產生碰撞(這顯然已經不是CSMA/CD,而需要使用一種特殊的調度方法),並且能夠非常有效的利用網絡的傳輸資源,即總線一旦空閒就有某一個站立即發送數據。這樣,發送一個幀佔用線路的時間是T0+τ ,而幀本身的發送時間是T0 。於是我們可計算出極限信道利用率Smax 爲:
Smax=T0T0+τ=11+a

雖然實際的以太網不可能有這樣高的極限信道利用率,但只有當參數a 遠小於1才能得到儘可能高的極限信道利用率。反之,若參數a 遠大於1(即每發生一次碰撞,就要浪費相對較多的傳輸時間),這時實際的信道利用率就更小了。

數據鏈路層的MAC子層

MAC層的硬件地址(MAC地址)

以太網組成的網絡中的每一臺計算機他們的網卡都有一個全球唯一地址,這個地址在網卡生產時就已經嵌入到芯片當中了,網卡的這個地址就稱爲媒體訪問控制地址,又稱MAC地址 。MAC地址是由48位二進制組成的(我們所看到的的是16進製表示的MAC地址),IEEE的註冊管理機構RA負責向廠家分配48位MAC地址字段的前三個字節(即高位24位),地址字段中的後三個字節(即低位24位)由廠家自行指派,稱爲擴展標識符,最後必須保證生產出的適配器沒有重複地址(全球唯一)。適配器從網絡中每收到一個MAC幀就首先用硬件檢查MAC幀的目的地址是否正確,也就是說MAC幀是否發送給了正確的接收方,如果檢測沒問題則接收該MAC幀。
“發往本站的幀”包括以下三種幀

  • 單播幀(一對一),即收到的幀的MAC地址與本站的硬件地址相同。
  • 廣播幀(一對全體),即發送給本局域網上所有站點的幀(目標MAC地址爲ff ff ff ff ff ff,也就是二進制的全1)。
  • 多播幀(一對多),即發送給本局域網上一部分站點的幀。

MAC幀格式

以太網V2的MAC幀格式

常用的以太網MAC幀格式有兩種標準,一種是DIX Ethernet V2標準(即以太網V2標準,如上圖),另一種是IEEE的802.3標準。這裏只介紹使用最多的以太網V2的MAC幀格式。以太網V2的MAC幀比較簡單,由五個字段組成,前兩個字段分別爲6字節長的目的地址源地址字段。第三個字段是2字節的類型字段,用來標誌上一層使用的是什麼協議,以便把收到的MAC幀的數據上交給上一層的這個協議。例如當類型字段的值是0x0800時,表示上一層使用的是IP數據報,第四個字段是數據字段,其長度在46到1500之間,因爲前三個字段和最後一個字段加起來共18個字段,而以太網的幀最短爲64字節,所以數據部分最短爲64-18=46字節。最後一個字段是4字節的幀檢驗序列FCS(使用CRC檢驗)。在傳輸MAC幀的時候需要在MAC幀首部加上8個字節,這8個字節中前7個字節爲前同步碼,它的作用是:使接收端的適配器在接收MAC幀時能夠迅速調整其時鐘頻率,使它和發送端的時鐘同步,以就是“實現位同步”(位同步就是比特同步的意思)。最後1個字節是幀開始定界符,定義爲10101011,它的前六位作用和前同步碼一樣,最後兩個連續的1就是告訴接收端適配器:“MAC幀的信息馬上就要來了,請適配器注意接收”。MAC幀的FCS字段的檢驗範圍不包括前同步碼和幀開始定界符。注意首部加上的這8個字節並不屬於MAC幀裏包括的內容,幀的內容總共就5個字段,分別是目的地址、源地址、類型、數據、FCS。若MAC幀中數據部分長度小於46個字節,MAC子層就會在數據字段的後面加入一個整數字節的填充字段,以保證以太網的MAC幀長不小於64字節。

無效的MAC幀

  1. 幀的長度不是整數個字節。
  2. 用收到的幀檢驗序列FCS查出有差錯。
  3. 數據字段的長度不在46~1500字節之間。
  4. 有效的MAC幀長度爲64~1518字節之間。
  5. 對於檢查出的無效MAC幀就簡單地丟棄,以太網不負責重傳丟棄的幀。

幀間最小時間間隔

幀間最小時間間隔爲9.6μs,相當於96bit的發送時間。一個站在檢測到總線開始空閒後,還要等待9.6μs才能再次發送數據。這樣做是爲了使剛剛收到數據幀的站的接受緩存來得及清理,做好接收下一幀的準備

發佈了54 篇原創文章 · 獲贊 33 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章