什么是pppoepppoe的工作原理
與傳統(tǒng)的接入方式相比,PPPoE具有較高的性能價(jià)格比,它在包括小區(qū)組網(wǎng)建設(shè)等一系列應(yīng)用中被廣泛采用,目前流行的寬帶接入方式ADSL 就使用了PPPoE協(xié)議,下面就讓學(xué)習(xí)啦小編來給你科普一下什么是pppoe。
pppoe的工作原理
PPPoE協(xié)議的工作流程包含發(fā)現(xiàn)和會(huì)話兩個(gè)階段,發(fā)現(xiàn)階段是無狀態(tài)的,目的是獲得PPPoE終結(jié)端(在局端的ADSL設(shè)備上)的以太網(wǎng)MAC地址,并建立一個(gè)唯一的PPPoE SESSION-ID。發(fā)現(xiàn)階段結(jié)束后,就進(jìn)入標(biāo)準(zhǔn)的PPP會(huì)話階段。
當(dāng)一個(gè)主機(jī)想開始一個(gè)PPPoE會(huì)話,它必須首先進(jìn)行發(fā)現(xiàn)階段,以識(shí)別局端的以太網(wǎng)MAC地址,并建立一個(gè)PPPoE SESSION-ID。在發(fā)現(xiàn)階段,基于網(wǎng)絡(luò)的拓?fù)洌鳈C(jī)可以發(fā)現(xiàn)多個(gè)接入集中器,然后允許用戶選擇一個(gè)。當(dāng)發(fā)現(xiàn)階段成功完成,主機(jī)和選擇的接入集中器都有了他們?cè)谝蕴W(wǎng)上建立PPP連接的信息。直到PPP會(huì)話建立,發(fā)現(xiàn)階段一直保持無狀態(tài)的Client/Server(客戶/服務(wù)器)模式。一旦PPP會(huì)話建立,主機(jī)和接入集中器都必須為PPP虛接口分配資源。
PPPoE協(xié)議會(huì)話的發(fā)現(xiàn)和會(huì)話兩個(gè)階段具體進(jìn)程如下。
發(fā)現(xiàn)階段
在發(fā)現(xiàn)(Discovery)階段中用戶主機(jī)以類似廣播的方式尋找所連接的所有接入集中器(或交換機(jī)),并獲得其以太網(wǎng)MAC地址。然后選擇需要訪問的接入集中器,并確定所要建立的PPP會(huì)話唯一標(biāo)識(shí)號(hào)碼。發(fā)現(xiàn)階段有4個(gè)步驟,當(dāng)此階段完成,通信的兩端都知道PPPoE SESSION-ID和對(duì)端的以太網(wǎng)地址,他們一起唯一定義PPPoE會(huì)話。這4個(gè)步驟如下。
(1)主機(jī)廣播發(fā)起分組(PADI),分組的目的地址為以太網(wǎng)的廣播地址0×ffffffffffff,CODE(代碼)字段值為0×09,SESSION-ID(會(huì)話ID)字段值為0×0000。PADI分組必須至少包含一個(gè)服務(wù)名稱類型的標(biāo)簽(標(biāo)簽類型字段值為0×0101),向接入集中器提出所要求提供的服務(wù)。
(2)接入集中器收到在服務(wù)范圍內(nèi)的PADI分組,發(fā)送PPPoE有效發(fā)現(xiàn)提供包(PADO)分組,以響應(yīng)請(qǐng)求。其中CODE字段值為0×07,SESSION-ID字段值仍為0×0000。PADO分組必須包含一個(gè)接入集中器名稱類型的標(biāo)簽(標(biāo)簽類型字段值為0×0102),以及一個(gè)或多個(gè)服務(wù)名稱類型標(biāo)簽,表明可向主機(jī)提供的服務(wù)種類。
(3)主機(jī)在可能收到的多個(gè)PADO分組中選擇一個(gè)合適的PADO分組,然后向所選擇的接入集中器發(fā)送PPPoE有效發(fā)現(xiàn)請(qǐng)求分組(PADR)。其中CODE字段為0×19,SESSION_ID字段值仍為0×0000。PADR分組必須包含一個(gè)服務(wù)名稱類型標(biāo)簽,確定向接入集線器(或交換機(jī))請(qǐng)求的服務(wù)種類。當(dāng)主機(jī)在指定的時(shí)間內(nèi)沒有接收到PADO,完整它應(yīng)該重新發(fā)送它的PADI分組,并且加倍等待時(shí)間,這個(gè)過程會(huì)被重復(fù)期望的次數(shù)。
(4)接入集中器收到PADR分組后準(zhǔn)備開始PPP會(huì)話,它發(fā)送一個(gè)PPPoE有效發(fā)現(xiàn)會(huì)話確認(rèn)PADS分組。其中CODE字段值為0×65,SESSION-ID字段值為接入集中器所產(chǎn)生的一個(gè)唯一的PPPoE會(huì)話標(biāo)識(shí)號(hào)碼。PADS分組也必須包含一個(gè)接入集中器名稱類型的標(biāo)簽以確認(rèn)向主機(jī)提供的服務(wù)。當(dāng)主機(jī)收到PADS分組確認(rèn)后,雙方就進(jìn)入PPP會(huì)話階段。
PPP會(huì)話階段
用戶主機(jī)與接入集中器根據(jù)在發(fā)現(xiàn)階段所協(xié)商的PPP會(huì)話連接參數(shù)進(jìn)行PPP會(huì)話。一旦PPPoE會(huì)話開始,PPP數(shù)據(jù)就可以以任何其他的PPP封裝形式發(fā)送。所有的以太網(wǎng)幀都是單播的。PPPoE會(huì)話的SESSION-ID一定不能改變,并且必須是發(fā)現(xiàn)階段分配的值。
PPPoE還有一個(gè)PADT分組,它可以在會(huì)話建立后的任何時(shí)候發(fā)送,來終止PPPoE會(huì)話,也就是會(huì)話釋放。它可以由主機(jī)或者接入集中器發(fā)送。當(dāng)對(duì)方接收到一個(gè)PADT分組,就不再允許使用這個(gè)會(huì)話來發(fā)送PPP業(yè)務(wù)。PADT分組不需要任何標(biāo)簽,其CODE字段值為0×a7,SESSION-ID字段值為需要終止的PPP會(huì)話的會(huì)話標(biāo)識(shí)號(hào)碼。在發(fā)送或接收PADT后,即使正常的PPP終止分組也不必發(fā)送。PPP對(duì)端應(yīng)該使用PPP協(xié)議自身來終止PPPoE會(huì)話,但是當(dāng)PPP不能使用時(shí),可以使用PADT。
以上各個(gè)階段的會(huì)話流程可用圖4-5描述。
pppoe的驗(yàn)證過程
1. 在STA和AP之間建立好關(guān)聯(lián)之后,客戶端向AC設(shè)備發(fā)送一個(gè)PADI報(bào)文,開始PPPOE接入的開始。
2.AC向客戶端發(fā)送PADO報(bào)文。
3. 客戶端根據(jù)回應(yīng),發(fā)起PADR請(qǐng)求給AC。
4. Ac產(chǎn)生一個(gè)session id,通過PADS發(fā)給客戶端。
5. 客戶端和AC之間進(jìn)行PPP的LCP協(xié)商,建立鏈路層通信。同時(shí),協(xié)商使用PAP、CHAP認(rèn)證方式。
6. AC通過Challenge報(bào)文發(fā)送給認(rèn)證客戶端,提供一個(gè)128bit的Challenge。
7. 客戶端收到Challenge報(bào)文后,將密碼和Challenge做MD5算法后的Challenge—Password,在Response回應(yīng)報(bào)文中把它發(fā)送給AC設(shè)備。
8. Ac將Challenge、challenge-Password和用戶名一起送到RADIus用戶認(rèn)證服務(wù)器,由RADIUS用戶認(rèn)證服務(wù)器進(jìn)行認(rèn)證。
9.RADIUS用戶認(rèn)證服務(wù)器根據(jù)用戶信息判斷用戶是否合法,然后回應(yīng)認(rèn)證成功/失敗報(bào)文到AC。如果成功,攜帶協(xié)商參數(shù),以及用戶的相關(guān)業(yè)務(wù)屬性給用戶授權(quán)。如果認(rèn)證失敗,則流程到此結(jié)束。
10.AC將認(rèn)證結(jié)果返回給客戶端。
l 1.用戶進(jìn)行NCP(如IPCP)協(xié)商,通過AC獲取到規(guī)劃的IP地址等參數(shù)。
12.認(rèn)證如果成功,AC發(fā)起計(jì)費(fèi)開始請(qǐng)求給RADIUS用戶認(rèn)證服務(wù)器。
13.RADIUS用戶認(rèn)證服務(wù)器回應(yīng)計(jì)費(fèi)開始請(qǐng)求報(bào)文。用戶上線完畢,開始上網(wǎng)。
假如客戶端要通過一個(gè)局域網(wǎng)與遠(yuǎn)程的PPPoE服務(wù)器進(jìn)行身份驗(yàn)證,這時(shí),它們會(huì)有兩個(gè)不同的會(huì)話階段,Discovery階段和PPP會(huì)話階段。當(dāng)一個(gè)客戶端想開始一個(gè)PPPoE會(huì)話時(shí),它必須首先進(jìn)行發(fā)現(xiàn)階段以識(shí)別對(duì)端的以太網(wǎng)MAC地址,并建立一個(gè)PPPoESESSON_ID。在發(fā)現(xiàn)階段,基于網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),客戶端可以發(fā)現(xiàn)多個(gè)PPPoE服務(wù)器,然后從中選擇一個(gè),不過通常都是選擇反應(yīng)最快的一個(gè)。
Discovery階段是一個(gè)無狀態(tài)的階段,該階段主要是選擇接入服務(wù)器,確定所要建立的PPP會(huì)話標(biāo)識(shí)符Session ID,同時(shí)獲得對(duì)方點(diǎn)到點(diǎn)的連接信息;PPP會(huì)話階段執(zhí)行標(biāo)準(zhǔn)的PPP過程。當(dāng)此階段完成,通信的兩端都知道PPPoESESSON_ID和對(duì)端的以太網(wǎng)地址,它們一起定義了一個(gè)唯一的PPPoE會(huì)話。這些步驟包括客戶端廣播一個(gè)發(fā)起分組(PADI),一個(gè)或多個(gè)PPPoE服務(wù)器發(fā)送響應(yīng)分組(PADO),客戶端向選中的服務(wù)器發(fā)送請(qǐng)求分組(PADR),選中的PPPoE服務(wù)器發(fā)送一個(gè)確認(rèn)分組(PADS)給客戶端。當(dāng)客戶端接收到確認(rèn)分組,它可以開始進(jìn)行PPP會(huì)話階段。當(dāng)PPPoE服務(wù)器發(fā)送出確認(rèn)分組,它可以開始PPP會(huì)話。
當(dāng)客戶端在指定的時(shí)間內(nèi)沒有接收到PADO,它應(yīng)該重新發(fā)送它的PADI分組,并且加倍等待時(shí)間,這個(gè)過程會(huì)被重復(fù)期望的次數(shù)。如果客戶端正等待接收PADS,應(yīng)該使用具有客戶端重新發(fā)送PADR的相似超時(shí)機(jī)制。在重試指定的次數(shù)后,主機(jī)應(yīng)該重新發(fā)送PADI分組。PPPoE還有一個(gè)PADT分組,它可以在會(huì)話建立后的任何時(shí)候發(fā)送,來終止PPPoE會(huì)話。它可以由客戶端或者PPPoE服務(wù)器發(fā)送。當(dāng)接收到一個(gè)PADT,不再允許使用這個(gè)會(huì)話來發(fā)送PPP業(yè)務(wù)在發(fā)送或接收PADT后,即正常的PPP不能使用時(shí),可以使用PADT,一旦PPPoE會(huì)話開始,PPP數(shù)據(jù)就可以以任何其它的PPP封裝形式發(fā)送。所有的以太網(wǎng)幀都是單播的,身份驗(yàn)證是發(fā)生在會(huì)話階段的,PPPoE會(huì)話的SESSION_ID一定不能改變,并且必須是發(fā)現(xiàn)階段分配的值。
看過“pppoe的工作原理”的人還看了:
1.銀行POS機(jī)和第三方支付POS機(jī)的區(qū)別是什么