第二章 電腦網路 數據鏈路層

第二章 數據鏈路層

本章的重點內容是:

  • 數據鏈路層的點對點信道和廣播信道的特點,以及這兩種信道使用的協議.(PPP)協議,以及CSMA/CD協議.
  • 數據鏈路層的三個基本問題: 封裝成幀,透明傳輸和差錯檢測

數據發送模型

從主機H1到主機H2通訊,經過路由器R1,R2,R3.其中的H1和H2都是5層協議,路由器都是三層模型.
數據進入路由器後要從物理層上到網路層,在轉發表中找到下一跳的地址後,在向下從物理層發送出去.
在我們研究數據鏈路層中,我們只研究數據鏈路層,也就是我們只關心協議棧水平方向的各數據鏈路層. 不必考慮物理層的資訊,也就是使用模擬訊號還是數字訊號,頻分復用,還是時分復用等等資訊等等.

2.1.1數據鏈路層的信道類型

數據鏈路層屬於電腦的網路的底層.數據鏈路層使用的信道主要有以下的兩種:

  • 點對點通訊
  • 廣播信道 使用一對多的廣播信道.使用專門的共享資訊協議來協調主機的數據發送.

2.1.2鏈路與數據鏈路的概念區別

  • 鏈路:指的是物理概念,是一個節點到下一個節點之間的物理線路(有線,或者無線)
  • 數據鏈路: 除了物理線路外,必須有通行協議來控制這些數據的傳輸.把實現這些協議的硬體和軟體加到鏈路上,構成了數據鏈路 . (別稱邏輯鏈路)
  • 最常見的方法是使用適配器(網卡) 來實現這些協議的硬體和軟體
  • 一般的適配器包括了數據鏈路層和物理層者這兩種功能

2.1.3幀

  • 數據鏈路把網路層交下來的數據構成幀,同樣把收到的幀把其中的數據取出交給網路層.
  • 點對點的通訊協議主要的步驟:
  1. 節點A的數據鏈路層把網路層交下來的IP數據報添加到首部和(校驗資訊)尾部,封裝成幀.
  2. 節點A把封裝好的幀發送給B的鏈路層
  3. 若B的鏈路層收到的幀無差錯,提取數據交給網路層

2.1.4數據鏈路層解決的三個基本問題

  • 封裝成幀
  • 透明傳輸
  • 差錯控制

2.1.5封裝成幀

就是一段數據的前後分別添加頭部和尾部.這樣就構成了一個幀.
用SACII碼傳輸數據時,幀的定界使用特殊的字元. SOH和EOT

2.1.6透明字元

由於幀使用特殊的字元控制幀的定界,如果在字元中出現這種字元,那麼會造成數據傳輸的問題.
使用轉義字元,類似C語言中字元串中的問題. 在發送端的數據中出現轉特殊控制字元是時,添加轉義. 在接受端去除這種轉義字元.

差2.1.7錯檢測

資訊在傳輸的過程中會產生差錯.我們使用誤碼率來衡量這個標準.在電腦網路中.使用一種循環冗餘檢驗(CRC Cyclie Redundancy Cheek)的容錯技術
就是在數據後後面添加上多餘的資訊保證前面的資訊正確.

2.1.8 CRC的具體過程

n位的冗餘碼的計算過程如下:
用二進位的模2運算進行2的n次乘以M的運算,相當於在n的後面添加了n個0.得到(k+n)位的數,除以雙方事先協商好了長度為(n+1)的除數P,這不是二進位除法.

注意 : 這裡的模2運算,加法和減法沒有進位值. 1111+1010=0101
在得到餘數R被添加到數據中,發送出去,在此除以P,那麼餘數就為0.
模二運算模2運算

2.1.8 CRC結果處理

在數據鏈路層,反送幀檢驗序列(FCS)就是前面的餘數,以及接受端CRC檢驗都是用硬體完成的,處理非常的迅速.並不會耽誤數據的傳輸
這裡只使用CRC技術,只能對做到對幀的無差錯接受(就是凡是接受端數據鏈路層接受的幀均無差錯).
這裡注意,現在並沒有對數據鏈路層向網路層提供可靠的傳輸服務. 前面說的是bit差錯,就是在數據中發送錯誤.但是接受到的幀如果出現幀丟失,幀重複,幀失序則CRC無能為力了.
解決辦法:

  1. 最簡單的方法就是在數據上添加必要的冗餘資訊,例如幀編號,幀確認,幀重複.收到正確的幀要向發送端發送正確的通知,在一定的時間沒有收到幀,發送幀丟失資訊.進行重新傳送.
  2. 交給上層的傳輸協議來檢查,具體的數據是否正確

2.2 點對點的協議PPP

在通訊品質比較差的年代,在數據鏈路層使用可靠傳輸協議曾經是一種比較好的辦法(HDLC Height-Level Data Link Control0).但是現在普遍使用的點對點PPP(point-to-point)協議,在這裡ISP實現了計費功能 驗證功能

2.2.1 PPP協議特點

PPP協議就是電腦和ISP進行通訊是使用的協議. PPP協議是IETF在1992年制定的. 在1994成為標準.

PPP協議滿足的要求

  • 簡單,將最複雜放在TCP協議,網際協議IP提供的是不可靠的數據服務,數據鏈路層也不需要糾錯,序號等冗餘資訊 簡單的使用CRC演算法
  • 封裝成幀 使用特殊的字元作為開始和結束字元
  • 透明 前面數據透明相同
  • 多種網路層協議 PPP必須同時能夠在同一條物理鏈路上同時支援多種網路層協議(IP協議或者IPX)或者其他
  • 多種類型鏈路 串列或者並行,同步非同步,以及高速低速,光或者非光.
    1999年發布在乙太網上運行的PPP及就是PPP over Ethernet ,簡稱為PPoe,這就是PPP協議能夠適應多種類型鏈路的典型例子.
  • 差錯檢測:丟棄有差錯的幀
  • 連接狀態檢測: 自動檢測鏈路是否處於正常工作狀態
  • 最大傳送單元 PPP協議必須對每一種類型的點對點鏈路設置最大的傳送單元MTU(maximum receive Unit).默認是1500位元組. 這裡是數據的長度不是幀的長度
  • 網路層地址協商 : 使得通訊的兩個網路層能夠通過協商能夠知道或者配置彼此的網路層.
  • 數據壓縮:不是必須的標準
    數據的可靠:數據的可靠是在運輸層的TCP控制的.PPP協議不支援多點線路,一個主站輪流和鏈路上的多個從站交流 PPP指支援雙全工

PPP協議幀的格式

  1. F 0x7E表示幀的開始 首部地址AoXFF開始地址,控制欄位0X03沒有定義.
    第四個欄位: 使用的2個位元組是協議欄位 0X0021表示的IP數據段 0xC021表示的是PPP鏈路控制協議LCP的數據 ,0X8021表示的是網路層的控制數據.
    尾部的FCS,前面的餘數,最後7E結束.

  2. 位元組填充
    使用0X7D為轉義定義

  3. 零bit填充
    如果傳輸使用的bit流,如果出現5個1,則後面添加一個0實現,接受端接受帶數據在刪除0

  4. PPP協議工作狀態
    用戶撥號接入ISP時,路由器的數據機對撥號做出確認,並建立一條物理連接.
    PC機發送一系列的LCP分組(分組成多個PPP協議) 這些分組資訊及其相應資訊對網路進行配置,NCP給接入的PC機分配一個臨時IP地址,是PC機成為一個主機.
    通訊完畢,NCP釋放網路層連接,收回分配的IP地址.最後釋放物理層協議
    路由器檢測到數據機發出的載波訊號後,建立的物理層連接