廣域網是可覆蓋分範圍最大的網絡,可跨區跨國設置跨洲提供遠距通信。早期的廣域網主要解決兩個問題,一是長距離傳輸,二是骨幹網絡的高速轉發。前者主要是通過廣域網封裝協議PPP/HDLC/FR來解決,後者則是通過ISP内部經常用的ATM協議解決。
PPP協議是一種廣域網數據鍊路層協議,用于全雙工(數據可以在兩個方向上同時傳輸,類似于電話)的鍊路上進行點對點的數據傳輸。它主要提供了安全認證協議族PAP(密碼驗證協議)和CHAP(挑戰握手認證協議),提供LCP(鍊路控制協議)用于各種鍊路層的協商。
工作原理
廣域網上采用PPP協議進行點對點鍊路連接主要有三個協商過程:首先要進行鍊路層協商,即通過LCP報文來進行鍊路參數協商,以此建立鍊路層連接;第二是進行認證協商,連接之後要認證連接是否正确,需要通過建立鍊路時的認證方式進行鍊路認證;三是網絡層協商,即通過NCP協商來選擇并且配置網絡層協議來進行網絡層的參數協商。
整個協商的過程是由鍊路兩端的接口共同完成的,接口的狀态其實就反映了協議的協商階段:
對應的也是六種鍊路階段
1. 鍊路不可用: 最開始兩者還未進行鍊路協商時的鍊路狀态
2. 鍊路建立:通過 LCP進行協商
3. 協商認證: 采用PAP/CHAP進行驗證
4. 網絡層協議:NCP協商
5. PPP會話維持: 維持PPP會話, 定時發送Echo Request報文,并等待Echo Reply報文
6. 網絡終止: 終止PPP會話,回到鍊路不可用階段。
LCP報文
PPP報文有多種類型,具體怎麼判斷是何種類型是在Protocol字段标識的,如果字段值為0xco21則表示的是LCP報文。LCP協商就是由不同的LCP報文交互完成的,協商過程的開始可以由兩個端口的任意一邊發送configure-request報文,内含MRU、認證協議、魔術字相關配置參數,如果接收端與收到的參數相匹配,則響應configure-ack表示兩者協商成功。
如果沒有收到ack确認報文,那發送方每隔三秒就會重傳request報文,連續十次都沒有收到回答,就會認為對端是不可用或者壓根連接不到的,就不會再發送request報文了。
如果收到request報文的一端後,發現兩者參數不匹配,就表示協商不成功,就會回應發送端一個configure-nak報文,這個報文裡面就包含着不匹配的參數值,以及它自己可以接受的參數值。發送端接受到後,就會更改自己的參數,然後再重新發送request。
如果收到request報文的一端發現這之中有不能識别的參數,就會發送一個configure-reject響應告訴發送方删除不能識别的參數,然後再發送新的request
以上是采用LCP報文進行鍊路建立的過程。
協商認證
在鍊路成功協商建立後,就要進行PPP鍊路認證,鍊路認證包含PAP與CHAP兩種方式。
采用PAP認證,鍊路兩端要進行兩次握手,被認證的一方會将配置的用戶名以及密碼以明文的方式發送給認證方,包含在發送的Authenticate-Request報文中;認證方收到這個報文後,會在自己的數據庫裡面尋找有沒有對應的信息,如果有的話。就發送Authenticate-Ack報文給被認證方,表示認證成功了;如果沒有,就發送Authenticate-Nak報文表示認證失敗。
采用CHAP認證則需要三次報文的交互,與PAP不同,CHAP是認證方主動請求。發送Challenge報文,報文内包含着ID以及随機數,被認證方收到報文之後,将進行一次加密運算,最後到一個長度為16比特的摘要信息,此摘要信息與端口上配置的CHAP用戶名一起包含在Response報文中發回認證方。認證方收到回複後會按照用戶名在自己的數據庫中尋找密碼信息,也進行一次相同的加密計算,如果得出的結果與response報文中的相同就表示驗證成功。
NCP協商
在完成PPP驗證協商後,就進入了NCP協商階段,這個階段主要是用來配置不同的網絡層協議,運用最廣泛的就是IPCP協議,它分為靜态與動态IP地址協商兩種。
靜态是指需要手動配置,鍊路兩端都需要發送configure-request報文,之中包含了本地IP地址,兩端接受到對方的報文後會檢查和自己的有沒有沖突(如果IP地址一樣就是有沖突),沒有沖突就會發送configure-ack報文。
如果大家還想要更多的技術知識可以私信哦!
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!