1. 程式人生 > >網路基礎-資料鏈路層的基礎概念及PPP協議概述

網路基礎-資料鏈路層的基礎概念及PPP協議概述

資料鏈路層位於網路模型的底層,使用的通道主要有兩種型別:

  • 點對點通道
  • 廣播通道

點對點的資料鏈路層

首先是區分幾個概念:

  • 鏈路:從一個結點到相鄰結點的一段物理線路,而中間沒有任何其他的交換結點。在資料通訊時,兩個計算機之間的通訊路徑可能要經過許多種這樣的鏈路。
  • 資料鏈路:當需要在一條線路上傳送資料時,除了必須有一條物理線路之外,還必須有一些必要的通訊協議來控制這些資料的傳輸。若把實現這些協議的硬體和軟體加到鏈路上,就構成了資料鏈路。
  • 幀:點對點通道的資料鏈路層的協議資料單元。資料鏈路層將把從網路層交下來的資料構成幀傳送到鏈路上,以及把接收到的幀中的資料取出並上交給網路層。

這裡寫圖片描述

只考慮點對點通道的資料鏈路層在進行通訊時的主要步驟如下:

  1. 結點A的資料鏈路層把網路層交下來的IP資料報新增首部和尾部封裝成幀。
  2. 結點A把封裝好的幀傳送給結點B的資料鏈路層。(不考慮傳送細節)
  3. 若結點B的資料鏈路層收到的幀無差錯,則從收到的幀中提取出IP資料報上交給上面的網路層;否則丟棄。

封裝成幀

封裝成幀就是在一段資料的前後分別新增首部和尾部,這樣就構成了一個幀,接收端在收到物理層上交的位元流後,就能根據首部和尾部的標記,從收到的位元流中識別幀的開始和結束。首部和尾部的一個重要作用就是幀定界即限定幀的邊界。

當資料是由可列印的ASCII碼組成的文字時,幀定界可以使用特殊的幀定界符。
ASCII是7位編碼,可組合128個不同的ASCII碼,可列印95個,不可見的控制字元33個。
這裡寫圖片描述


一個控制字元SOH放在一幀的最前面,表示幀的首部開始,另一個控制字元EOT表示幀的結束。SOH和EOT都是控制字元的名稱,分別是01和04,而不是三個字元。
當資料在傳輸時,出現差錯,假設在傳送幀時突然出現故障,中斷了傳送,但隨後很快又恢復了正常,於是重新從頭開始傳送剛才未傳送完的幀。在接收端看來,第一次接收到的幀只有SOH沒有EOT那麼他就知道這是一個不完整的幀就會丟棄。後收到的幀既有SOH又有EOT說明這是一個完整的幀。

透明傳輸

由於使用了SOH和EOT作為幀定界,那麼顯然在資料中就不允許出現與幀定界相同的編碼,這樣就會出現混亂。

當傳送的幀是用文字檔案時(從鍵盤輸入的),資料部分顯然不會出現SOH和EOT這樣的幀定界控制字元。也就是說,不管從鍵盤上輸入什麼字元都可以放在這樣的幀中傳輸過去,因此這樣的傳輸就是透明傳輸。

但是當幀是非ASCII碼的文字檔案時(二進位制程式碼或影象等),情況就會不同。如果資料中的某個位元組的二進位制序列恰好和SOH和EOT這種控制字元一樣,資料鏈路層就會錯誤地“找到幀地定界”,把部分幀收下,剩下的就會丟棄。這樣的顯然就不是透明傳輸。

為了解決透明傳輸的問題,就必須設法使資料中可能出現的控制字元SOH或EOT在接收端不被解釋未控制字元。

具體方法是:
傳送端的資料鏈路層在資料中出現控制字元SOH或EOT的前面插入一個轉義字元“ESC”。而在接收端的資料鏈路層在把資料送往網路層之前刪除這個插入的轉義字元。這種方法稱為位元組填充。
如果資料中也出現轉義字元,那麼就在轉義字元的前面插入一個轉義字元,當接收端收到連續兩個轉義字元時,就刪除其中前面的一個。

差錯檢測

通常使用迴圈冗餘CRC校驗檢測。
下面舉一個例子:
這裡寫圖片描述

CRC是檢測方法,FCS是新增在資料後面的冗餘碼。
也就是說,實際傳送的資料是110101。接收端接收到資料以幀為單位再進行CRC檢驗,把收到的每一個幀都除以同樣的除數(模2運算),如果傳輸過程中無差錯。那麼經過檢驗後得出的餘數一定是0。如果出錯,就丟棄。

但是這裡需要注意一點,CRC檢測僅僅只能實現無位元差錯的傳輸,並不能實現可靠傳輸。

PPP協議

PPP協議是目前應用最廣泛的資料鏈路層協議。

PPP(點到點協議)是為在同等單元之間傳輸資料包這樣的簡單鏈路設計的鏈路層協議。這種鏈路提供全雙工操作,並按照順序傳遞資料包。設計目的主要是用來通過撥號或專線方式建立點對點連線傳送資料,使其成為各種主機、網橋和路由器之間簡單連線的一種共通的解決方案。

PPP功能

  1. PPP具有動態分配IP地址的能力,允許在連線時刻協商IP地址;
  2. PPP支援多種網路協議,比如TCP/IP、NetBEUI、NWLINK等;
  3. PPP具有錯誤檢測以及糾錯能力,支援資料壓縮;
  4. PPP具有身份驗證功能。
  5. PPP可以用於多種型別的物理介質上,包括串列埠線、電話線、行動電話和光纖(例如SDH),PPP也用於Internet接入。

PPP組成

PPP協議由三個部分組成

  • 一個將IP資料報封裝到序列鏈路的方法。PPP既支援非同步鏈路,也支援面向位元的資料鏈路。
  • 鏈路控制協議LCP:用來建立,配置和測試資料鏈路連線。
  • 網路控制協議NCP:其中的每一個協議支援不同的網路層協議。

幀格式

各欄位如下圖所示:

這裡寫圖片描述

工作流程

狀態及階段如下所示:

這裡寫圖片描述