你了解PPPOE的工作流程么?
PPPoE簡介
PPPoE(Point-to-Point Protocol over Ethernet),即以太網上的點對點協議,它可以使以太網上的主機通過一個簡單接入設備連到Internet上,并對接入的用戶進行控制、計費管理。
PPPoE協議采用Client/Server(客戶端/服務器)方式,它將PPP報文封裝在以太網幀內,在以太網上提供點對點的連接。
PPPoE連接
PPPoE撥號連接包括Discovery(發現)和Session(PPP會話)兩個階段。下面將分別介紹這兩個階段。
Discovery階段
此階段用來建立連接,當一個用戶主機想開始一個PPPoE會話時,首先必須進行發現階段以識別PPPoE Server的以太網MAC地址,并建立一個PPPoE會話標識(Session ID)。
Discovery階段的基本工作流程
如上圖所示, Discovery階段由四個步驟組成,下面將介紹它的基本工作流程。
1、PADI:如果要建立一條PPPoE連接,首先PPPoE客戶端就要以廣播的方式發送一個PADI(PPPoE Active Discovery Initiation)數據包,PADI數據包包括客戶端請求的服務。
2、PADO:當PPPoE服務器(BRAS)收到一個PADI包之后,它會判斷自己是否能夠提供服務,如果能夠提供服務的話,就會向客戶端發送PADO(PPPoE Active Discovery Offer)數據包來進行回應。PADO數據包包括PPPoE服務器名稱和與PADI數據包中相同的服務名。如果PPPoE服務器不能為PADI提供服務,則不允許用PADO數據包響應。
3、PADR:由于PADI是以廣播的形式發送出去的,PPPoE客戶端可能收到不止一個PADO數據包,它將審查所有接收到的PADO數據包并根據其中的服務器名或所提供的服務選擇一個PPPoE服務器,并向選中的服務器發送PADR(PPPoE Active Discovery Request)數據包。PADR數據包包括客戶端所請求的服務。
4、PADS:當PPPoE服務器收到客戶端發送的PADR包時,它就準備開始一個PPPoE會話,它為PPPoE會話創建一個***的PPPoE會話ID,并向客戶端發送PADS (PPPoE Active Discovery Session- confirmation)包作為響應。
當發現階段正常結束后,通信的兩端都獲得會話標識(Session ID)和對方的MAC地址,它們一起***定義一個PPPoE會話。
PPP會話階段
當PPPoE進入PPP會話階段后,客戶端和服務器將進行標準的PPP協商,PPP協商通過后,數據通過PPP封裝發送。PPP報文作為PPPoE幀的凈荷被封裝在以太網幀內,發送到PPPoE鏈路的對端。Session ID必須是Discovery階段確定的ID,且在會話過程中保持不變,MAC地址必須是對端的MAC地址。
PPPoE連接的斷開
在會話階段的任意時刻,PPPoE服務器和客戶端都可向對方發送PADT(PPPoE Active Discovery Terminate)包通知對方結束本會話。當收到PADT以后,就不允許再使用該會話發送PPP流量了。在發送或接收到PADT數據包后,即使是常規的PPP結束數據包也不允許發送。一般情況下,PPP通信雙方使用PPP協議自身來結束PPPoE會話,但在無法使用PPP時可以使用PADT來結束會話。
【編輯推薦】