PPP協議主要包括LCP、NCP、PAP&CHAP三族協議。
LCP:建立,配置,測試PPP數據鏈路連接;
NCP:協商在該鏈路上所傳輸的數據包的格式與類型,建立,配置不同網絡層協議;PPP擴展協議族;
PAP&CHAP:對本地和遠端進行鑒權,保證網絡的安全性。
PPP協商過程分為幾個階段:Dead階段,Establish階段,Authenticate階段,Network階段和Termintate階段:
1)當物理層不可用時,PPP鏈路處于dead階段,鏈路必須從這個階段開始和結束.當物理層可用時,PPP在建立鏈路之前首先進行LCP協商,協商內容包括工作方式是SP還是MP,驗證方式和最大傳輸單元等.
2)LCP協商過后就進入Establish階段,此時LCP狀態為Opened,表示鏈路已經建立.
3)如果配置了驗證(遠端驗證本地或者本地驗證遠端)就進入Authenticate階段,開始CHAP或PAP驗證.
4)如果驗證失敗進入Terminate階段,拆除鏈路,LCP狀態轉為Down;如果驗證成功就進入Network協商階段(NCP),此時LCP狀態仍為Opened,而IPCP狀態從Initial轉到Request.
5)NCP協商支持IPCP協商,IPCP協商主要包括雙方的IP地址.通過NCP協商來選擇和配置一個網絡層協議.當選中的網絡層協議配置成功后,該網絡層協議就可以通過這條鏈路發送報文了.
6)PPP鏈路將一直保持通信,直至有明確的LCP或NCP幀關閉這條鏈路,或發生了某些外部事件。
PAP驗證為兩次握手驗證,口令為明文,適用于對網絡安全要求相對較低的環境。PAP驗證的過程如下:
被驗證方發送用戶名和口令到驗證方;驗證方根據用戶配置查看是否有此用戶以及口令是否正確,然后返回不同的響應(Acknowledge Or Not Acknowledge).如正確則會給對端發送ACK報文,通告對端已被允許進入下一階段協商;否則發送NAK報文,通告對端驗證失敗.此時,并不會直接將鏈路關閉.只有當驗證不通過次數達到一定值(缺省為4)時,才會關閉鏈路,來防止因誤傳,網絡干擾等造成不必要的LCP重新協商過程.
CHAP驗證為三次握手驗證,口令為密文(密鑰),適用于安全性要求高的環境。CHAP驗證過程如下:
驗證方向被驗證方發送一些隨機產生的報文,并同時將本端的主機名附帶上一起發送給被驗證方;
被驗證方接到對端對本端的驗證請求(Challenge)時,便根據此報文中驗證方的主機名和本端的用戶表查找用戶口令字,如找到用戶表中與驗證方主機名相同的用戶,便利用接收到的隨機報文、此用戶的密鑰用Md5算法生成應答(Response),隨后將應答和自己的主機名送回;驗證方接到此應答后,利用對端的用戶名在本端的用戶表中查找本方保留的口令字,用本方保留的口令字(密鑰)和隨機報文用Md5算法得出結果,與被驗證方應答比較,根據比較結果返回相應的結果(ACK or NAK)。
MP:為了增加帶寬,將多個鏈路捆綁使用,MultiLink PPP
MP將報文分片后,從MP鏈路下的多個PPP通道發送到PPP對端,對端將這些分片組裝好后,才遞向網絡層。