禁止碼迷,布布扣,豌豆代理,碼農教程,愛碼網等第三方爬蟲網站爬取!
點對點協議
對於點對點的鏈路,目前使用得最廣泛的數據鏈路層協議是點對點協議 PPP (Point-to-Point Protocol)。用戶使用撥號電話線接入互聯網時,用戶計算機和 ISP 進行通信時所使用的數據鏈路層協議就是 PPP 協議。
PPP 協議應滿足以下需求:
1 封裝成幀:規定特殊的字符作為幀定界符。
2 透明性:保證數據傳輸的透明性。
3 多種網絡層協議:在同一條物理鏈路上同時支持多種網絡層協議。
4 多種類型鏈路:在多種類型的鏈路上運行。
5 差錯檢測:對接收端收到的幀進行檢測,並立即丟棄有差錯的幀。
6 檢測連接狀態:及時自動檢測出鏈路是否處於正常工作狀態。
7 最大傳送單元:對於每種類型的點對點鏈路,設置最大傳送單元 MTU 的標准默認值。
8 網絡層地址協商:提供一種機制使通信的兩個網絡層實體能夠通過協商知道或能夠配置彼此的網絡層地址。
9 數據壓縮協商:提供一種方法來協商使用數據壓縮算法。
由於 TCP 協議可以實現可靠數據傳輸,因此 PPP 協議不需要實現糾錯、流量控制、設置序號的功能。PPP 不支持多點線路,只需要支持點對點通信,PPP 只支持全雙工鏈路。
PPP 協議的幀格式
PPP 幀字段
PPP 幀的首部和尾部分別為 4 個字段和 2 個字段,PPP 是面向字節的,所有的 PPP 幀的長度都是整數字節。
尾部的第一個字段是 CRC 的幀檢測序列 FCS,占 2 位。首部第一個字段和尾部第二個字段都是標志字段 F = 0x7E(符號“0x”表示后面的字符是用十六進制表示),用於標志一個幀的開始或結束。標志字段起界定符的作用,若出現連續 2 個標志字段表示這是個空幀。地址字段 A 只置為 0xFF,控制字段 C 通常置為 0x03,這 2 個字段實際上並不起作用。
PPP 有一個 2 個字節的協議字段:
協議字段 | 說明 |
---|---|
0x0021 | 信息字段就是 IP 數據報 |
0x8021 | 信息字段是網絡控制數據 |
0xC021 | 信息字段是 PPP 鏈路控制數據 |
0xC023 | 信息字段是鑒別數據 |
當信息字段中出現和標志字段一樣的值(0x7E)時,就必須采用一些措施是這類值不出現在信息字段中。
字節填充
當 PPP 用在異步傳輸(逐個比特傳輸)時,就使用一種特殊的字符填充法:
- 將信息字段中出現的每一個 0x7E 字節轉變成為 2 字節序列 (0x7D, 0x5E)。
- 若信息字段中出現一個 0x7D 的字節, 則將其轉變成為 2 字節序列 (0x7D, 0x5D)。
- 若信息字段中出現 ASCII 碼的控制字符(即數值小於 0x20 的字符),則在該字符前面要加入一個 0x7D 字節,同時將該字符的編碼加以改變。
接收端收到數據后進行與發送端字節填充的逆過程,之后就可以恢復原來的信息。
零比特填充
當 PPP 用在同步傳輸(一連串的比特連續傳送)鏈路時,例如SONET/SDH 鏈路,PPP 協議采用零比特填充方法來實現透明傳輸。在發送端,只要發現有 5 個連續 1,則立即填入一個 0。接收端對幀中的比特流進行掃描。每當發現 5 個連續1時,就把這 5 個連續 1 后的一個 0 刪除。
PPP 的工作狀態
PPP 的組成
PPP 協議有三個組成部分:
- 一個將 IP 數據報封裝到串行鏈路的方法;
- 鏈路控制協議 LCP (Link Control Protocol),用來建立、配置和測試鏈路層連接;
- 網絡控制協議 NCP (Network Control Protocol),NCP 是一套支持不同網絡層協議的協議。
工作流程
當用戶撥號接入 ISP 時,路由器的調制解調器對撥號做出確認,並建立一條物理連接。PC 機向路由器發送一系列的 LCP 分組(封裝成多個 PPP 幀),這些分組及其響應選擇一些 PPP 參數,並進行網絡層配置。NCP 給新接入的 PC 機分配一個臨時的 IP 地址,使 PC 機成為因特網上的一個主機。通信完畢時,NCP 釋放網絡層連接,收回原來分配出去的 IP 地址。接着,LCP 釋放數據鏈路層連接。最后釋放的是物理層的連接。
可見,PPP 協議已不是純粹的數據鏈路層的協議,它還包含了物理層和網絡層的內容。
參考資料
《計算機網絡(第七版)》 謝希仁 著,電子工業出版社