PPP協議
PPP協議是二層(數據鏈路層)協議,常用於撥號上網時客戶端向服務器獲取IP地址。PPP支持在各種物理類型的點對點串行線路上傳輸上層協議報文。它具有很多特性,比如支持多協議、提供可選的身份認證服務、以各種方式壓縮數據、支持動態地址協商、支持多鏈路捆綁等等。
PPP協議幀格式
PPP數據幀格式如下所示:
7E | FF | 03 | 7E | |||
---|---|---|---|---|---|---|
標志 | 地址 | 控制 | 協議域 | 信息域 | 校驗 | 標志 |
1B | 1B | 1B | 2B | 缺省1500B | 2B | 1B |
每個PPP數據幀都是以一個標志字節開始和結束的,該字節為0x7E.
接下來分別為地址域,值固定位0xFF(因為點對點協議,對方的地址固定);控制域(固定位0x3); 協議域,用來區分PPP數據幀中信息域所承載的數據報文的內容,幾種常見的協議如下所示:
0xC021 | LCP協議報文 |
---|---|
0xC023 | PAP協議的認證報文 |
0xC223 | CHAP協議的認證報文 |
0x8021 | NCP 協議報文 |
0x0021 | IP數據報文 |
PPP協議棧
PPP更像是一種應用,類似一個撥號上網的應用軟件,撥號成功后,本地主機就可以正常上網,可以使用TCP/IP協議,而完全感覺不到PPP的存在。PPP協議包含三組件:
- 鏈路控制協議LCP
- 網絡控制協議NCP
- PPP擴展協議(如Multilink Protocol)
其中,LCP協議完成數據鏈路的配置和測試;NCP協議完成點對點通信設備之間網絡層通信所需要的參數的配置;
工作流程
(1)當用戶撥號接入ISP后,就建立了一條用戶PC機到ISP的物理連接
(2)用戶PC機向ISP發送一系列的LCP分組(封裝成多個PPP幀),以便建立LCP連接
(3)這些分組及其響應選擇了將要使用的一些PPP參數
(4)NCP協議給新接入的用戶PC機分配了一個臨時的IP地址,這樣用戶PC機就成了因特網上一個有IP地址的主機了
(5)用戶通信完畢后,NCP釋放網絡層連接,收回原來釋放出去的IP地址
(6)LCP釋放數據鏈路層連接
(7)釋放物理連接
其圖示如下所示。

LCP連接
當用戶PC機通過調制解調器呼叫ISP服務器,服務器能夠檢測到載波信號,雙方建立了物理連接,之后PPP進入“鏈路建立”狀態,其目的是建立鏈路層的LCP連接。
通信雙方通過請求-響應幀來進行通信,主要是協商一些配置參數。包括鏈路上的最大幀長,所使用的鑒別協議的規約(如果有的話),以及不使用PPP幀中的地址和控制字段。協商完成后,LCP連接就建立完成,接着進入鑒別階段。
鑒別狀態(身份認證)
用戶在撥號上網的時候需要輸入用戶名和密碼來向服務器確定自己的身份,這個認證過程是在LCP連接建立完成之后進行的。
身份認證主要有兩種方法:口令驗證協議(PAP, Password Authentication Protocol)和質詢握手協議(Challenge Handshake Authentication Protocol, CHAP)。如果雙方在LCP配置的時候達成一致,也可以不使用任何身份認證的方法。
PAP協議使用兩次握手,明文傳送用戶名和密碼的方式進行身份認證;CHAP使用三次握手,MD5加密和隨機數的方式進行身份認證。

CHAP比PAP方法更安全,因為不在線路上傳送明文密碼,而是傳送經過摘要算法加工過的隨機序列。同時CHAP中,身份認證可以隨時進行,包括在雙方正常通信過程中,因此,非法用戶就算截獲並成功破解了一次密碼,此密碼也將在一段時間內失效。CHAP對端系統要求很高,因為需要多次進行身份質詢、響應。這需要耗費較多的CPU資源,因此只用在對安全要求很高的場合。
當身份認證通過之后,會進入NCP連接建立階段。
NCP連接
NCP根據網絡層的不同協議互相交換網絡層特定的網絡控制分組,PPP協議兩端的網絡層可以運行不同的網絡層協議,但仍然可以使用同一個PPP協議進行通信。NCP會配置客戶端的IP地址,之后客戶機就可以上網。
注意,在用戶上網的時候,仍需要PPP協議對IP包進行封裝傳輸數據。
PPPoE
PPP協議要求進行通信的雙方是點到點的關系,不適於廣播類型的以太網和另外一些多點訪問類型的網絡,於是產生了PPPoE協議(Point-to-Point Protocol over Ethernet)。它不僅為使用橋接以太網接入的用戶提供了一種寬帶接入手段,同時還給你提供方便的接入控制和計費。每個接入用戶均建立一個獨一無二的PPP的會話。