【計算機網路】資料鏈路層 | 複習筆記

吃水不忘挖井人?發表於2020-12-17

在這裡插入圖片描述

第一節 資料鏈路層概況

  • 概念區分:
    1. 鏈路(link)(物理鏈路)
    2. 資料鏈路(data link)(邏輯鏈路)
  • 幀:資料鏈路層的協議資料單元

三個基本問題(PPP協議中)

  • 封裝成幀(framing):在一段資料的前後分別添上首部和尾部,構成一個幀
    1. 重要作用就是進行幀定界
      在這裡插入圖片描述
    2. 當資料是由可列印的 ASCII 碼組成的文字檔案時,幀定界可以使用特殊的幀定界符
    3. 控制字元 SOH (Start Of Header) (十六進位制:01) - 首部開始。另一個控制字元 EOT (End Of Transmission) (十六進位制:04) - 結束。
    4. 資料幀長度問題:資料部分長度大於首部和尾部——資料傳輸效率;MTU(Maximum Transmission Unit)——資料幀長度越長,出錯概率越高,出錯則重傳,造成額外的開銷
  • 透明傳輸
    1. 透明:當一個實際存在的事物看起來好像不存在一樣(資料鏈路層對這些資料來說是透明的);“在資料鏈路層透明傳送資料”表示無論傳送什麼樣的位元組合的資料,這些資料都能夠按照原樣沒有差錯地通過這個資料鏈路層。
    2. 問題:如果資料中的某個位元組的二進位制程式碼恰好和 SOH 或 EOT 一樣,資料鏈路層就會錯誤地“找到幀的邊界”
    3. 解決方法:位元組填充(byte stuffing)或字元填充(character stuffing),新增轉義字元ESC(十六進位制:1B)
      在這裡插入圖片描述
  • 差錯檢測(error detection)
    1. 傳輸差錯:A. 位元差錯,位元在傳輸過程中產生差錯;B. 幀丟失、幀重複、幀失序。下面的差錯都指位元差錯。但是應當注意的是,資料鏈路層上實現的“無位元差錯”不等於“無傳輸差錯”
    2. 誤位元速率BER(Bit Error Rate)傳輸錯誤的位元佔傳輸位元總數的比率
    3. 迴圈冗餘檢驗CRC(Cyclic Redundancy Check):k(資料)+n(冗餘碼)位傳輸。將原來的資料M模2運算(在M後新增n個0),以兩邊約定好的除數P(n+1位),得到餘數R(n位),將R添在M後傳輸。接收方將收到的數字除P,如果餘數為0,則認為沒有差錯,接受(accept);若餘數不為0,則認為有差錯,直接丟棄
    4. 區別:幀檢驗序列FCS(Frame Check Sequence)是冗餘碼,而CRC是檢錯方法
    5. 生成和檢驗都是硬體完成的,處理迅速,不會延誤資料的傳輸
    6. 差錯檢測是建立在封裝成幀上的
    7. 這裡只能實現“無差錯接受”:“凡是接受的幀(即不包括丟棄的幀),我們都能以非常接近於 1 的概率認為這些幀在傳輸過程中沒有產生差錯”&“凡是接收端資料鏈路層接受的幀都沒有傳輸差錯”
    8. 可靠傳輸則需要在此基礎上增加確認和重傳機制。對於通訊質量良好的有線傳輸服務,資料鏈路層協議不採用確認和重傳機制;但對於通訊質量較差的無線傳輸服務,資料鏈路層向上提供可靠的傳輸服務

第二節 點對點協議PPP(Point-to-Point Protocol)

網際網路使用者通常需要連線到某個ISP才能接入到網際網路。PPP協議就是使用者計算機和ISP進行通訊時所用的資料鏈路層協議。(全雙工)

  • PPP協議應滿足的需求:
    1. 簡單。所以不需要糾錯,不需要序號,不需要流量控制,簡單是首要要求。因此,互操作性也提高了
    2. 封裝成幀:幀界定符;
    3. 透明性
    4. 多種網路層協議:在同一條物理鏈路上同時支援多種網路層協議的執行
    5. 多種型別鏈路:序列並行、高速低速、光電、動態靜態
    6. 差錯檢測:直接丟棄有差錯的幀
    7. 檢測連線狀態
    8. 最大傳送單元:MTU1500位元組,資料部分的最大長度
    9. 網路層地址協商
    10. 資料壓縮協商
  • PPP協議的組成
    1. 一個將 IP 資料包封裝到鏈路的方法
    2. 鏈路控制協議 LCP (Link Control Protocol)
    3. 網路控制協議 NCP (Network Control Protocol)
  • PPP協議幀的格式
    1. 各欄位意義
      標誌欄位F表示一個幀的開始和結束(幀界定符)連續兩個幀之間只需要一個標誌欄位,如果出現連續兩個標誌欄位,就表示這是一個空幀,應當丟棄。
      地址欄位A和控制欄位C並沒有攜帶PPP幀的資訊
      協議欄位若為0x0021則為IP資料包,0xC021則為LCP資料包,0x8021則為網路層的控制資料
      資訊部分不得超過1500位元組
      FCS幀檢驗序列在這裡插入圖片描述

    2. 位元組填充(非同步傳輸)
      標誌欄位為0x7E,使用轉義字元0x7D位元組填充
      若為0x7E位元組則轉變為兩個位元組(0x7D,0x5E);若為0x7D則變為(0x7D,0x5D);若出現ASCII碼的控制字元(小於0x20)則在前面加入0x7D,並改變該字元的編碼

    3. 零位元填充(同步傳輸,一連串位元傳輸)
      標誌欄位為111111(六個連續的1),則只要發現五個連續的1,則立即填入一個0,這樣就保證了透明傳輸。

  • PPP協議的工作狀態
    1. 當使用者撥號接入 ISP 時,路由器的調變解調器對撥號做出確認,並建立一條物理連線
    2. PC 機向路由器傳送一系列的 LCP 分組(封裝成多個 PPP幀)
    3. 這些分組及其響應選擇一些 PPP 引數,和進行網路層配置,NCP 給新接入的 PC機分配一個臨時的 IP 地址,使PC 機成為因特網上的一個主機
    4. 通訊完畢時,NCP 釋放網路層連線,收回原來分配出去 的 IP 地址;接著,LCP 釋放資料鏈路層連線;最後釋放的是物理層的連線
      在這裡插入圖片描述

第三節 CSMA/CD協議

一. 區域網的資料鏈路層

  • 特點:網路為一個單位所擁有,且地理範圍和站點數目均有限。

  • 區域網的主要優點:

    1. 具有廣播功能,一個站點可以訪問全網
    2. 便於系統擴充套件和演變,各裝置位置可以靈活調整和改變
    3. 提高系統可靠性(reliability)可用性(availability)生存性(survivability)
  • 由於乙太網在區域網市場上佔據絕對優勢,現在乙太網幾乎成為了區域網的同義詞。

  • 區域網工作的層次跨越了物理層和資料鏈路層,有關資料鏈路層的內容比較豐富。在這裡講區域網並不表示區域網只和資料鏈路層有關。

  • 共享通道的兩種方法:

    1. 靜態劃分通道(分頻多工、分時多工、波長分波多工、碼分複用)
    2. 動態媒體接入控制 / 多點接入(multiple access):隨機接入(接下來詳細要講),受控接入(探詢 / 輪詢 polling)
  • 乙太網的兩個標準
    IEEE 802.3標準,分為兩個子層:

    1. 邏輯鏈路控制LLC (Logical Link Control)子層
    2. 媒體接入控制 MAC (Medium Access Control)子層

    DIX Ethernet V2
    市場競爭下,DIX Ethernet V2 獲勝,LLC的作用已經消失了

  • 介面卡的作用
    網路介皮膚又稱為通訊介面卡(adapter)或網路介面卡NIC (Network Interface Card),或“網路卡”
    主要功能:

    1. 資料傳輸的串並行轉換(介面卡和區域網序列,介面卡和計算機並行)
    2. 快取(網路上的資料率和計算機匯流排上資料率並不相同)
    3. 在計算機的作業系統安裝裝置驅動程式
    4. 實現乙太網協議(接收和傳送各種幀時,不用CPU,收到有差錯的幀時直接丟棄也不通知CPU,收到正確的幀時,中斷)
      在這裡插入圖片描述

    計算機的硬體地址就在介面卡的ROM中,計算機的軟體地址(IP地址)在計算機的儲存器中

二. CSMA/CD協議(Carrier Sense Multiple Access with Collision Detection)⭐

  • 無連線的工作方式,不進行編號,也不要求對方發回確認。

  • 盡最大努力的交付,即不可靠的交付,對差錯幀是否需要重傳由高層決定,乙太網並不知道是否為重傳幀

  • 曼徹斯特(Manchester)編碼,為保證接收端可以從收到的位元流中提取位同步(位元同步)訊號
    在這裡插入圖片描述

  • 要點:

    1. 多點接入
    2. 載波監聽:不管在傳送前,還是在傳送時,每個站都必須不停地檢測通道
    3. 碰撞檢測 / 衝突檢測(邊傳送邊監聽):當檢測到的電壓幅度變化超過一定門限值,就認為是發生了衝突,則立即停止傳送。
    4. 一個站不能同時傳送和接收(但必須邊傳送邊監聽通道),因此,只能進行雙向交替通訊(半雙工通訊)
    5. 傳送的不確定性:每一個站在自己傳送資料後一小段時間內,存在著遭遇碰撞的可能性。這一小段時間是不確定的,它取決於另一個站到本站的距離。
    6. 爭用期(contention)/ 碰撞視窗(collision window):乙太網的端到端往返時延 2τ 。經過爭用期還沒有檢測到碰撞,才能確定不會發生碰撞。爭用時間為51.2µs,或512位元時間(在10Mbit/s乙太網),傳送64位元組。因此確定最短幀長64位元組,不足則填充:凡長度小於64位元組的幀都是由於衝突而異常中止的無效幀,立即丟棄
    7. 截斷二進位制指數退避(truncated binary exponential type):A. 基本退避時間:一般是取為爭用期 2τ;B. 定義重傳次數 k = Min[重傳次數, 10];C. 從整數集合[0,1,…, (2k −1)]中隨機地取出一個數,記為 r;D. 重傳所需的時延就是 r 倍基本退避時間;E. 當重傳達 16 次仍不能成功時即丟棄該幀,並向高層報告
    8. 強化碰撞:一旦發現發生碰撞時,立即停止傳送資料,並再繼續傳送32或48位元的人為干擾訊號(jamming signal),以便讓所有使用者都知道現在已經發生了碰撞
    9. 幀間最小間隔為 9.6 µs,相當於 96 bit 的傳送時間:使剛剛收到資料幀的站的接收快取來得及清理,做好接收下一幀的準備
  • 總結:

    1. 準備傳送:介面卡從網路層獲得一個分組,加上首部和尾部,組成乙太網幀,放入介面卡快取中,傳送前,通道檢測
    2. 檢測通道:若通道忙,則不停檢測,直到空閒;若通道空閒,並在96位元時間一直空閒,則傳送這個幀;
    3. 介面卡邊傳送邊監聽:A. 傳送成功,回到1;B. 傳送失敗:爭用期內檢測到碰撞,立即停止傳送資料,併傳送人為干擾訊號,接著執行指數退避演算法,等待後返回2,若重傳16次不能成功,則終止重傳並向上報錯

三. 乙太網通道利用率

一個幀從開始傳送,經可能發生的碰撞後,將再重傳數次,到傳送成功且通道轉為空閒(即再經過時間 τ 使得通道上無訊號在傳播)時為止,是傳送一幀所需的平均時間
在這裡插入圖片描述

要提高乙太網的通道利用率,就必須減小 τ 與 T0 之比。在乙太網中定義了引數 a,它是乙太網單程端到端時延 τ 與幀的傳送時間 T0 之比:
在這裡插入圖片描述

對乙太網引數的要求:

  1. 當資料率一定時,乙太網的連線的長度受到限制,否則 τ的數值會太大
  2. 乙太網的幀長不能太短,否則 T0 的值會太小,使 a 值太大(這裡從另一方面提出了幀不得過短)
    理想情況下,通道利用率的最大值 Smax
    在這裡插入圖片描述

第四節 乙太網的MAC層

一. MAC幀的硬體地址

在所有計算機系統中,標識系統(identification system)都是一個核心問題

名字指出我們所要尋找的那個資源,地址指向那個資源在何處,路由告訴我們如何到達該處

嚴格地講,名字應當與系統所在地無關。但IEEE 802標準為區域網規定的地址,是指固化在介面卡ROM中的地址。區域網中的“地址”應當是每一站的“名字”或識別符號。

  • 在區域網中,硬體地址又稱為實體地址,或 MAC 地址,共48位
  • IEEE 的註冊管理機構 RA 負責向廠家分配地址欄位的前三個位元組(即高位 24 位);地址欄位中的後三個位元組(即低位 24 位)由廠家自行指派,稱為擴充套件識別符號,必須保證生產出的介面卡沒有重複地址
  • 一個地址塊可以生成224個不同的地址。這種 48 位地址稱為MAC-48,它的通用名稱是EUI-48;“MAC地址”實際上就是介面卡地址或介面卡識別符號EUI-48

介面卡有過濾功能,僅接收“發往本站的幀”,包括以下三種:

  1. 單播(unicast)幀(一對一)
  2. 廣播(boardcast)幀(一對全體)
  3. 多播(multicast)幀(一對多)

乙太網介面卡還可以設定一種特殊的工作方式,即混雜方式(promiscuous mode):竊聽,嗅探器(Sniffer)

二. MAC 幀的格式
在這裡插入圖片描述

五個欄位:

  • 目的地址源地址(6位元組+6位元組)
  • 型別欄位:上一層用什麼協議(2位元組)
  • 資料欄位:46-1500位元組(64-1518)
  • 幀檢驗序列FCS(4位元組)

此處注意2個問題:

  1. 首部沒有幀長度,如何判斷取出多少位元組交付上一層?曼徹斯特編碼每個碼元正中間都有一次電壓變化,而傳送方傳送完畢後電壓不再變化
  2. 上層協議如何知道填充欄位的長度?依靠資料鏈路層上層使用IP協議時的“總長度”欄位

實際傳輸時多8個位元組:

  • 前同步位碼(7個位元組)接收端迅速實現 MAC 幀的位元同步
  • 幀開始定界符(1個位元組)10101011表示後面的資訊就是MAC 幀

注意2個問題:

  1. 同步傳輸時不需要前同步位碼
  2. 乙太網以幀為單位傳送,各幀之間有一定空隙,不需要幀結束定界符,也不需要位元組插入來保證透明傳輸

第五節 區域網的擴充套件

一. 在物理層擴充區域網

集線器工作在物理層,它的每個介面僅僅簡單地轉發位元,不進行碰撞檢測
在這裡插入圖片描述

碰撞域(衝突域):在任一時刻,每一個碰撞域中只能有一個節點傳送資料
用集線器組成更大的區域網都在一個碰撞域中
在這裡插入圖片描述

優點:

  1. 使原來屬於不同碰撞域的區域網上的計算機能夠進行跨碰撞域的通訊
  2. 擴大了區域網覆蓋的地理範圍

缺點:

  1. 碰撞域增大了,但總的吞吐量並未提高
  2. 如果不同的碰撞域使用不同的資料率,那麼就不能用集線器將它們互連起來(集線器不能把幀快取)

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

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

  • 網橋具有過濾幀的功能。當網橋收到一個幀時,並不是向所有的介面轉發此幀,而是先檢查此幀的目的 MAC 地址,然後再確定將該幀轉發到哪一個介面
    在這裡插入圖片描述

  • 優點:

    1. 過濾通訊量
    2. 擴大了物理範圍
    3. 提高了可靠性
    4. 可互連不同物理層、不同 MAC 子層和不同速率(如10 Mb/s 和 100 Mb/s 乙太網)的區域網(可以快取)
  • 缺點:

    1. 儲存轉發增加了時延
    2. 在MAC 子層並沒有流量控制功能
    3. 具有不同 MAC 子層的網段橋接在一起時時延更大
    4. 網橋只適合於使用者數不太多(不超過幾百個)和通訊量不太大的區域網,否則有時還會因傳播過多的廣播資訊而產生網路擁塞。這就是所謂的廣播風暴
  • 兩個網橋之間還可使用一段點到點鏈路,網橋不改變它轉發的幀的源地址

  • 網橋與集線器的區別:

    1. 集線器在轉發幀時,不對傳輸媒體進行檢測
    2. 網橋在轉發幀之前必須執行 CSMA/CD 演算法:若在傳送過程中出現碰撞,就必須停止傳送和進行退避
  • 網橋應當按照自學習演算法處理收到的幀和建立轉發表

    1. 網橋每收到一個幀,就記下其源地址和進入網橋的介面,作為轉發表中的一個專案
    2. 在轉發幀時,則是根據收到的幀首部中的目的地址來轉發的。這時就把在“地址”欄下面已經記下的源地址當作目的地址,而把記下的進入介面當作轉發介面
    3. 在網橋的轉發表中寫入的資訊除了地址和介面外,還有幀進入該網橋的時間。只保留網路拓撲的最新狀態資訊
      在這裡插入圖片描述
  • 生成樹演算法:避免產生轉發的幀在網路中不斷地兜圈子;在任何兩個站之間只有一條路徑

  • 乙太網交換機:全雙工方式

  • 獨佔傳輸媒體的頻寬

三. 虛擬區域網

虛擬區域網 VLAN 是由一些區域網網段構成的與物理位置無關的邏輯組,而這些網段具有某些共同的需求。
虛擬區域網其實只是區域網給使用者提供的一種服務,而並不是一種新型區域網。
在這裡插入圖片描述

虛擬區域網協議允許在乙太網的幀格式中插入一個4位元組的識別符號,稱為 VLAN 標記 (tag),用來指明該幀屬於哪一個虛擬區域網。
插入VLAN標記得出的幀稱為 802.1Q 幀或帶標記的乙太網幀。
在這裡插入圖片描述

相關文章