PPPoE(Point to Point Protocol over Ethernet)意思是基于以太網的點對點協議,實質是以太網和撥號網絡之間的一個中繼協議,下面小編結尾大家詳細的講解PPPOE協議的工作原理,想了解PPPoE協議的朋友快來看看吧。
PPPoE協議的工作流程包含發現和會話兩個階段,發現階段是無狀態的,目的是獲得PPPoE終結端(在局端的ADSL設備上)的以太網MAC地址,并建立一個唯一的PPPoESESSION-ID。發現階段結束后,就進入標準的PPP會話階段。
當一個主機想開始一個PPPoE會話,它必須首先進行發現階段,以識別局端的以太網MAC地 址,并建立一個PPPoESESSION-ID。在發現階段,基于網絡的拓撲,主機可以發現多個接入集中器,然后允許用戶選擇一個。當發現階段成功完成,主機和選擇的接入集中器都有了他們在以太網上建立PPP連接的信息。直到PPP會話建立,發現階段一直保持無狀態的Client/Server(客戶/服務器)模式。一旦PPP會話建立,主機和接入集中器都必須為PPP虛接口分配資源。
PPPoE協議會話的發現和會話兩個階段具體進程如下:
1.發現(Discovery)階段
在發現(Discovery)階段中用戶主機以廣播方式尋找所連接的所有接入集中器(或交換機),并獲得其以太網MAC地址。然后選擇需要連接的主機, 并確定所要建立的PPP會話標識號碼。發現階段有4個步驟,當此階段完成,通信的兩端都知道PPPoESESSION-ID和對端的以太網地址,他們一起唯一定義PPPoE會話。這4個步驟如下。
(1)主機廣播發起分組(PADI)
主機廣播發起分組(PADI),分組的目的地址為以太網的廣播地址0×ffffffffffff,CODE(代碼)字段值為0×09,SESSION-ID(會話ID)字段值為0×0000。PADI分組必須至少包含一個服務名稱類型的標簽(標簽類型字段值為0×0101),向接入集中器提出所要求提供的服務。
(2)接入集中器
接入集中器收到在服務范圍內的PADI分組,發送PPPoE有效發現提供包(PADO)分組,以響應請求。其中CODE字段值為 0×07,SESSION-ID字段值仍為0×0000。PADO分組必須包含一個接入集中器名稱類型的標簽(標簽類型字段值為0×0102),以及一個 或多個服務名稱類型標簽,表明可向主機提供的服務種類。
(3)主機選擇一個合適的PADO分組
主機在可能收到的多個PADO分組中選擇一個合適的PADO分組,然后向所選擇的接入集中器發送PPPoE有效發現請求分組(PADR)。其中 CODE字段為0×19,SESSION_ID字段值仍為0×0000。PADR分組必須包含一個服務名稱類型標簽,確定向接入集線器(或交換機)請求的服務種類。當主機在指定的時間內沒有接收到PADO,它應該重新發送它的PADI分組,并且加倍等待時間,這個過程會被重復期望的次數。
(4)準備開始PPP會話
接入集中器收到PADR分組后準備開始PPP會話,它發送一個PPPoE有效發現會話確認PADS分組。其中CODE字段值為 0×65,SESSION-ID字段值為接入集中器所產生的一個唯一的PPPoE會話標識號碼。PADS分組也必須包含一個接入集中器名稱類型的標簽以確認向主機提供的服務。當主機收到PADS分組確認后,雙方就進入PPP會話階段。
2.PPP會話階段
用戶主機與接入集中器根據在發現階段所協商的PPP會話連接參數進行PPP會話。一旦PPPoE會話開始,PPP數據就可以以任何其他的PPP封裝形式發送。所有的以太網幀都是單播的。PPPoE會話的SESSION-ID一定不能改變,并且必須是發現階段分配的值。
PPPoE還有一個PADT分組,它可以在會話建立后的任何時候發送,來終止PPPoE會話, 也就是會話釋放。它可以由主機或者接入集中器發送。當對方接收到一個PADT分組,就不再允許使用這個會話來發送PPP業務。PADT分組不需要任何標 簽,其CODE字段值為0×a7,SESSION-ID字段值為需要終止的PPP會話的會話標識號碼。在發送或接收PADT后,即使正常的PPP終止分組 也不必發送。PPP對端應該使用PPP協議自身來終止PPPoE會話,但是當PPP不能使用時,可以使用PADT。
PPPoE的驗證過程
假如客戶端要通過一個局域網與遠程的PPPoE服務器進 行身份驗證,這時,它們會有兩個不同的會話階段,Discovery階段和PPP會話階段。當一個客戶端想開始一個PPPoE會話時,它必須首先進行發現階段以識別對端的以太網MAC地址,并建立一個PPPoESESSON_ID。在發現階段,基于網絡的拓撲結構,客戶端可以發現多個PPPoE服務器,然 后從中選擇一個,不過通常都是選擇反應最快的一個。
Discovery階段是一個無狀態的階段,該階段主要是選擇接入服務器,確定所要建立的PPP會話標識符Session ID,同時獲得對方點到點的連接信息;PPP會話階段執行標準的PPP過程。當此階段完成,通信的兩端都知道PPPoESESSON_ID和對端的以太網 地址,它們一起定義了一個唯一的PPPoE會話。這些步驟包括客戶端廣播一個發起分組(PADI),一個或多個PPPoE服務器發送響應分組 (PADO),客戶端向選中的服務器發送請求分組(PADR),選中的PPPoE服務器發送一個確認分組(PADS)給客戶端。當客戶端接收到確認分組,它可以開始進行PPP會話階段。當PPPoE服務器發送出確認分組,它可以開始PPP會話。
當客戶端在指定的時間內沒有接收到PADO,它應該重新發送它的PADI分組,并且加倍等待時 間,這個過程會被重復期望的次數。如果客戶端正等待接收PADS,應該使用具有客戶端重新發送PADR的相似超時機制。在重試指定的次數后,主機應該重新發送PADI分組。PPPOE還有一個PADT分組,它可以在會話建立后的任何時候發送,來終止PPPOE會話。它可以由客戶端或者PPPOE服務器發 送。當接收到一個PADT,不再允許使用這個會話來發送PPP業務在發送或接收PADT后,即正常的PPP不能使用時,可以使用PADT,一旦PPPOE 會話開始,PPP數據就可以以任何其它的PPP封裝形式發送。所有的以太網幀都是單播的,身份驗證是發生在會話階段的,PPPoE會話的 SESSION_ID一定不能改變,并且必須是發現階段分配的值。
以上就是VEVB武林網小編為大家講解的PPPOE協議的工作原理,需要的朋友快來看看吧,想了解更多關于 PPPoE協議的精彩教程請繼續關注VEVB武林網!
新聞熱點
疑難解答