1. 程式人生 > 實用技巧 >計算機網路學習--資料鏈路層

計算機網路學習--資料鏈路層

第一章 概述
第二章 物理層
第三章 資料鏈路層
第四章 網路層
第五章 傳輸層
第六章 應用層

第三章 資料鏈路層

資料鏈路層使用的通道主要有以下兩種型別:

  • 點對點通道。這種通道使用一對一的點對點通訊方式。

  • 廣播通道。這種通道使用一對多的廣播通訊方式,因此過程比較複雜。廣播通道上連線的主機很多,因此必須使用專用的共享通道協議來協調這些主機的資料發

3.1、點對點通道的資料鏈路層

3.1.1、資料鏈路和幀

  • 鏈路(link)是一條無源點到點物理線路段,中間沒有任何其他的交換結點。

    • 一條鏈路只是一條通路的一個組成部分。
  • 資料鏈路(data link) 除了物理線路外,還必須有通訊協議

    來控制這些資料的傳輸。若把實現這些協議的硬體和軟體加到鏈路上,就構成了資料鏈路。

資料鏈路層傳送的是

3.1.2、三個基本問題

  1. 封裝成幀

    ​ 封裝成幀(framing)就是在一段資料的前後分別新增首部和尾部,然後就構成了一個幀。確定幀的界限

  1. 透明傳輸

位元組填充

​ 在資料中可能存在幀開始字元或幀結束字元,這時為了透明傳輸就需要轉義,類似於程式語言中的\\n

  1. 差錯檢測

在一段時間內,傳輸錯誤的位元佔所傳輸位元總數的比率稱為誤位元速率 BER (Bit Error Rate)

在資料鏈路層傳送的幀中,廣泛使用了迴圈冗餘檢驗 CRC 的檢錯技術

模2除即為非進位除法或異或

幀檢驗序列 FCS

  • 在資料後面新增上的冗餘碼稱為幀檢驗序列 FCS (Frame Check Sequence)。
  • n迴圈冗餘檢驗 CRC 和幀檢驗序列 FCS並不等同。
    • CRC 是一種常用的檢錯方法,而 FCS 是新增在資料後面的冗餘碼。
    • FCS 可以用 CRC 這種方法得出,但 CRC 並非用來獲得 FCS 的唯一方法。

校驗:

  1. 若得出的餘數 R = 0,則判定這個幀沒有差錯,就接受(accept)。

  2. 若餘數 R ¹ 0,則判定這個幀有差錯,就丟棄。

3.2、點對點協議 PPP

3.2.1、PPP 協議的特點

使用者使用撥號電話線接入因特網時,一般都是使用 PPP 協議。

3.2.2、PPP 協議組成

  • 一個將 IP 資料報封裝到序列鏈路的方法。

  • 鏈路控制協議 LCP (Link Control Protocol)。

  • 網路控制協議 NCP (Network Control Protocol)。

3.2.3、PPP幀格式

  • 標誌欄位 F = 0x7E (符號“0x”表示後面的字元是用十六進位制表示。十六進位制的 7E 的二進位制表示是 01111110)。

  • 地址欄位 A 只置為 0xFF。地址欄位實際上並不起作用。

  • 控制欄位 C 通常置為 0x03。

  • PPP 是面向位元組的,所有的 PPP 幀的長度都是整數字節。

  • PPP 有一個 2 個位元組的協議欄位。

    • 當協議欄位為 0x0021 時,PPP 幀的資訊欄位就是IP 資料報。

    • 若為 0xC021, 則資訊欄位是 PPP 鏈路控制資料。

    • 若為 0x8021,則表示這是網路控制資料。

透明傳輸

  • 當 PPP 用在非同步傳輸時,就使用一種特殊的字元填充法。

    1. 將資訊欄位中出現的每一個 0x7E 位元組轉變成為 2 位元組序列(0x7D, 0x5E)。

    2. 若資訊欄位中出現一個 0x7D 的位元組, 則將其轉變成為 2 位元組序列(0x7D, 0x5D)。

    3. 若資訊欄位中出現 ASCII 碼的控制字元(即數值小於 0x20 的字元),則在該字元前面要加入一個 0x7D 位元組,同時將該字元的編碼加以改變。

  • 零位元填充

    • 在傳送端,只要發現有 5 個連續 1,則立即填入一個 0。
    • 接收端對幀中的位元流進行掃描。每當發現 5 個連續1時,就把這 5 個連續 1 後的一個 0 刪除

2.3.4、PPP協議工作狀態

3.3、使用廣播通道的資料鏈路層

3.3.1、區域網的資料鏈路層

媒體共享技術

  • 靜態劃分通道
    • 頻分複用
    • 時分複用
    • 波分複用
    • 碼分複用
  • 動態媒體接入控制(多點接入)
    • 隨機接入(常用)
    • 受控接入 ,如多點線路探詢(polling),或輪詢。

為了使資料鏈路層能更好地適應多種區域網標準,802 委員會就將區域網的資料鏈路層拆成兩個子層:

  • 邏輯鏈路控制 LLC (Logical Link Control)子層(一般不存在)

  • 媒體接入控制 MAC (Medium Access Control)子層。

3.3.2、CSMA/CD協議

載波監聽多點接入/碰撞檢測

  • 多點接入”表示許多計算機以多點接入的方式連線在一根總線上。

  • 載波監聽”是指每一個站在傳送資料之前先要檢測一下總線上是否有其他計算機在傳送資料,如果有,則暫時不要傳送資料,以免發生碰撞。

  • 碰撞檢測”就是計算機邊傳送資料邊檢測通道上的訊號電壓大小

    • 當一個站檢測到的訊號電壓擺動值超過一定的門限值時,就認為總線上至少有兩個站同時在傳送資料,表明產生了碰撞
    • 碰撞的結果是兩個幀都變得無用

使用 CSMA/CD 協議的乙太網不能進行全雙工通訊而只能進行雙向交替通訊(半雙工通訊)

爭用期

最先發送資料幀的站,在傳送資料幀後至多經過時間 2t (兩倍的端到端往返時延)就可知道傳送的資料幀是否遭受了碰撞。

乙太網的端到端往返時延 2t 稱為爭用期,或碰撞視窗

二進位制指數型別退避演算法

  • 發生碰撞的站在停止傳送資料後,要推遲(退避)一個隨機時間才能再發送資料。

    • 確定基本退避時間,一般是取為爭用期 2t

    • 定義重傳次數 kk £ 10,即

      k = Min[重傳次數, 10]

    • 從整數集合[0,1,…, (2k -1)]中隨機地取出一個數,記為 r。重傳所需的時延就是 r 倍的基本退避時間。

    • 當重傳達 16 次仍不能成功時即丟棄該幀,並向高層報告。

乙太網在傳送資料時,若前 64 位元組沒有發生衝突,則後續的資料就不會發生衝突

乙太網規定了最短有效幀長為 64 位元組,凡長度小於 64 位元組的幀都是由於衝突而異常中止的無效幀

強化碰撞

  • 當傳送資料的站一旦發現發生了碰撞時:

    • 立即停止傳送資料;

    • 再繼續傳送若干位元的人為干擾訊號(jamming signal),以便讓所有使用者都知道現在已經發生了碰撞

3.4、使用廣播通道的乙太網

3.4.1、使用集線器的星形拓撲

這種乙太網採用星形拓撲,在星形的中心則增加了一種可靠性非常高的裝置,叫做集線器(hub)

使用集線器的乙太網在邏輯上仍是一個匯流排網,各工作站使用的還是 CSMA/CD 協議,並共享邏輯上的匯流排

集線器很像一個多介面的轉發器,工作在物理層(沒有處理能力,收到什麼發什麼)

集線器示意圖

3.4.2、乙太網的通道利用率

幀長為 L (bit),資料傳送速率為 C (b/s),因而幀的傳送時間為 L/C = T0 (s)。

  • 當資料率一定時,乙太網的連線的長度受到限制,否則 t 的數值會太大。
  • 乙太網的幀長不能太短,否則的值會太小,使 a 值太大

3.4.3 、乙太網的 MAC 層

  • 在區域網中,硬體地址又稱為實體地址,或 MAC 地址。
  • MAC地址共48位,前24為IEEE註冊管理機構分配給廠家,後24廠家自行安排
  • 最常用的 MAC 幀是乙太網 V2 的格式

介面卡檢查MAC地址

收到幀之後進行檢測,如果是發往本站就接受,否則就丟棄。

發往本站的幀:

  • 單播(unicast)幀(一對一)
  • 廣播(broadcast)幀(一對全體)
  • 多播(multicast)幀(一對多)

MAC幀格式

3.5 在資料鏈路層擴充套件區域網

在資料鏈路層擴充套件區域網是使用網橋

網橋只適合於使用者數不太多(不超過幾百個)和通訊量不太大的區域網,否則有時還會因傳播過多的廣播資訊而產生網路擁塞。這就是所謂的廣播風暴

集線器和網橋的不同

  • 集線器在轉發幀時,不對傳輸媒體進行檢測。
  • 網橋在轉發幀之前必須執行 CSMA/CD 演算法。
    • 若在傳送過程中出現碰撞,就必須停止傳送和進行退避。

3.6、乙太網交換機

交換式集線器常稱為乙太網交換機(switch)或第二層交換機(表明此交換機工作在資料鏈路層)

3.7、虛擬區域網(VLAN)

虛擬區域網協議允許在乙太網的幀格式中插入一個 4 位元組的識別符號,稱為 VLAN 標記(tag)

幀格式: