ppp是數據鏈路層協議,為什麼能進行IP地址協商呢?
在生活中有好多場景可以幫助我們理解PPP協議,比如火車在發車前,調度室會使用電話或其他信號系統,確保前方無車,才會讓火車發車。
還有用戶撥打電話,在開始通話前,會有幾秒的等待時間,這幾秒的時間,就是控制信令在幫助用戶在連接,等連接通了之後,語音數據就可以自由流動了。
PPP也是採用上述的機制,分兩個階段:
1 控制信令完成連接
1.1 Link Control Protocol (LCP)
第一個控制信令就是LCP,用於協商MRU、Multiple Link、採用 PAP/Chap/EAP 何種認證方式來認證客戶端,格式如下:
PPP + LCP
1.2 PAP/CHAP/EAP
運營商再將用戶接入網路之前必須認證用戶,否則運營商也不幹啊,假設1.1 協商的認證方式為Chap,則認證格式如下:
PPP + Chap
如果認證失敗,無法進入下一步。
認證成功,協商用什麼網路控制協議NCP來分配地址信息,假設協商的是IPCP,即用IP Control Protocol 來協商關於IP的參數信息。
1.3 IP Control Protocol (IPCP)
進入這一步,說明1.2 順利通過,這步主要給用戶分配一些上網必要的參數,其實和DHCP很類似,只是叫法不同而已,格式為:
PPP + IPCP
以上3個過程完成,則用戶被合法接入網路,運營商將雙向的路由也自動配置完成,就等待用戶發IP數據
2 IP數據傳輸
這個過程就很easy了,用戶的IP包用PPP封裝起來就好了。
PPP + IP + Data
我將問題理解為:"PPP是數據鏈路層協議,而IP是網路層協議,為什麼在PPP里干IP的活?"
最近自己經歷一個廣域網連接斷開案例,就是在路由器某PPP協議封裝埠上發現有LCP REQsent狀態標誌,解決過程省略,重點是重新整理PPP協議的工作流程。
首先,要知道PPP的三大件:
1.使用HDLC封裝數據包,封裝過程請搜索cisco wiki文檔;
2.LCP負責完成點對點的數據連接(在數據包進行交換前,先把兩個設備間網路鋪好);
3.NCP完成網路層的協商,這裡的協商,我在英文文檔里看到的是negotiate,不知樓主問題出處是在哪看到的,或者能給出具體案例,協商是對各種網路層協議(IPCP、IPXCP、NBFCP)選擇與配置的過程,即決定數據在建立起來的網路怎麼傳輸,現在樓主的問題應該明朗了,不是能不能的問題,而是要不要的問題。IP數據包在點對點鏈接里傳輸,必須完成NCP的工作,而這項工作最重要的部分就是IP控制協議,例如,在LCP確認並認證鏈接後,NCP開始初始化IPCP配置選項(1)IP-Compression-Protocol用於節省帶寬;(2)IP-Address指定IP用於路由協議。
到了這裡,樓主能確認自己的答案就在NCP這一塊了,請移步tcpipguide搜索Networck Control Protocol部分,再結合RFC標準文檔,相信你能有柳暗花明的感覺~
PPP和ARP都把他們看成2.5層就好理解了。
另外網路協議分層只是理論上方便理解的,不一定要和實際上一一嚴格對應的。
PPP雖然我們說是數據鏈路層協議,但是NCP確實是可以協商網路層的一些配置,例如IP地址,所以,PPP可以說是數據鏈路層協議和網路層協議相結合的協議。 PS:剛剛開始學習
推薦閱讀:
※越來越多國產手機品牌都想學小米的互聯網營銷,是否奏效?
※怎樣看待音樂付費下載?
※小米手機搶購被指是「騙局」,真實情況是什麼?
※身邊的人是網紅是什麼感受?
※無人駕駛真的是未來嗎?