1. 程式人生 > >PPPoE的驗證方法

PPPoE的驗證方法

 PPPoE 是基於乙太網的點對點協議,當前的 PPPOE 主要被 ISP用於 xDSL 和 cable modems 與使用者端的連線,他們幾乎與乙太網一樣。PPPoE 是一種標準的點對點協議 (PPP), 他們之間只是傳輸上的差異:PPPoE 使用 modem 連線來代替普通的乙太網。一般來說 ,PPPoE 是基於與使用者認證和通過分發 IP 地址給客戶端。一個PPPoE連線由客戶端和一個訪問集線伺服器組成,客戶端可以是一個安裝了 PPPoE 協議的windows電腦。PPPoE 客戶端和伺服器能工作在任何乙太網等級的路由器介面。

PPPoE 的驗證方法:
假如客戶端要通過一個區域網與遠端的PPPoE伺服器進行身份驗證,這時,它們會有兩個不同的會話階段,Discovery階段和PPP會話階段。當一個客戶端想開始一個PPPoE會話時,它必須首先進行發現階段以識別對端的乙太網MAC地址,並建立一個PPPoESESSON_ID。在發現階段,基於網路的拓撲結構,客戶端可以發現多個PPPoE伺服器,然後從中選擇一個,不過通常都是選擇反應最快的一個。
  Discovery階段是一個無狀態的階段,該階段主要是選擇接入伺服器,確定所要建立的PPP會話識別符號Session ID,同時獲得對方點到點的連線資訊;PPP會話階段執行標準的PPP過程。當此階段完成,通訊的兩端都知到PPPoESESSON_ID和對端的乙太網地址,它們一起定義了一個唯一的PPPoE會話。這些步驟包括客戶端廣播一個發起分組(PASI),一個或多個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一定不能改變,並且必須是發現階段分配的值。