點到點數據通信
點對點協議 PPP
**PPP 協議的特點 **
- 現在全世界使用得最多的數據鏈路層協議是點對點協議 PPP (Point-to-Point Protocol)。
- 用戶使用撥號電話線接入因特網時,一般都是使用 PPP 協議。
PPP協議使用場合
用戶到ISP的鏈路使用PPP協議。該協議可以驗證用戶身份並且自動分配IP地址。
PPP 協議應滿足的需求
- 簡單——這是首要的要求
- 封裝成幀
- 透明性
- 多種網絡層協議
- 多種類型鏈路 (可以是光纖,雙絞線等)
- 差錯檢測
- 檢測連接狀態
- 最大傳送單元
- 網絡層地址協商
- 數據壓縮協商
PPP 協議不需要的功能
- 糾錯
- 流量控制
- 序號
- 多點線路
- 半雙工或單工鏈路
PPP 協議的組成
-
1992 年制訂了 PPP 協議。經過 1993 年和 1994 年的修訂,現在的 PPP 協議已成為因特網的正式標准[RFC 1661]。
-
PPP 協議有三個組成部分
- 一個將 IP 數據報封裝到串行鏈路的方法。
- 鏈路控制協議 LCP (Link Control Protocol)。建立並維護數據鏈路連接。
- 網絡控制協議 NCP (Network Control Protocol)。 允許在點到點連接上使用多種網絡層協議,如圖所示:
PPP 協議的幀格式
-
十六進制的7E,用二進制表示為0111 1110 表示幀頭;幀尾也為7E;
-
十六進制的FF是目標地址,在點到點線路中這是固定的,(因為只有兩頭,一頭發出,只有另一頭接收一種可能)。
-
十六進制的03也是固定的;
-
PPP 有一個 2 個字節的協議字段:標識信息部分是什么內容。(如快遞外面的分類標簽)
- 當協議字段為 0x0021 時,PPP 幀的信息字段就是IP 數據報。
- 若為 0xC021,則信息字段是 PPP 鏈路控制數據。
- 若為 0x8021,則表示這是網絡控制數據。
- 若為 0xC023,則表示信息字段是安全性認真PAP。
- 若為 0xC025,則表示信息字段是LQR。
- 若為 0xC223,則表信息字段是安全性認證CHAP。
-
2字節的FCS為幀檢驗序列。
透明傳輸問題
問題:信息字段中出現了標志字段的值,可能會被誤認為是“標志位”,這時應該怎么辦?
- 當 PPP 用在同步傳輸(傳輸的可能是比特流)鏈路時,協議規定采用硬件來完成比特填充(和 HDLC 的做法一樣)即零比特填充。
- 當 PPP 用在異步傳輸(傳輸的是字節)時,就使用一種特殊的字節填充法。
字節填充
- 將信息字段中出現的每一個 0x7E(即以7E結尾的數據) 字節轉變成為 2 字節序列 (0x7D, 0x5E)。
- 若信息字段中出現一個 0x7D 的字節(即以7D結尾的數據), 則將其轉變成為 2 字節序列 (0x7D, 0x5D)。
- 若信息字段中出現 ASCII 碼的控制字符(即數值小於 0x20 的字符),則在該字符前面要加入一個 0x7D 字節,同時將該字符的編碼加以改變。
零比特填充
這樣就不會產生歧義,解決了透明傳輸的問題。
PPP協議不提供使用序號和確認的可靠傳輸
PPP 協議之所以不使用序號和確認機制是出於以下的考慮:
- 在數據鏈路層出現差錯的概率不大時,使用比較簡單的 PPP 協議較為合理。
- 在因特網環境下,PPP 的信息字段放入的數據是 IP 數據報。數據鏈路層的可靠傳輸並不能夠保證網絡層的傳輸也是可靠的。
- 幀檢驗序列 FCS 字段可保證無差錯接受。
PPP協議的工作狀態
- 當用戶撥號接入 ISP 時,路由器的調制解調器對撥號做出確認,並建立一條物理連接。
- PC 機向路由器發送一系列的 LCP 分組(封裝成多個 PPP 幀)。
- 這些分組及其響應選擇一些 PPP 參數,和進行網絡層配置,NCP 給新接入的 PC機分配一個臨時的 IP 地址,使 PC 機成為因特網上的一個主機。
- 通信完畢時,NCP 釋放網絡層連接,收回原來分配出去的 IP 地址。接着,LCP 釋放數據鏈路層連接。最后釋放的是物理層的連接。