PPPOE協(xié)議詳解-對報文進行了詳細分析解釋通俗易懂_第1頁
PPPOE協(xié)議詳解-對報文進行了詳細分析解釋通俗易懂_第2頁
PPPOE協(xié)議詳解-對報文進行了詳細分析解釋通俗易懂_第3頁
PPPOE協(xié)議詳解-對報文進行了詳細分析解釋通俗易懂_第4頁
PPPOE協(xié)議詳解-對報文進行了詳細分析解釋通俗易懂_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

華為技術(shù)有限公司版權(quán)所有侵權(quán)必究

目錄(TOCHeading)第1章概述 11.1PPPOE協(xié)議的基本概念 11.1.1PPPOE協(xié)議出現(xiàn)的背景 11.1.2PPPOE協(xié)議簡介 11.2總結(jié) 21.3思考 2第2章PPPOE的發(fā)現(xiàn)階段 12.1PPPOE的初始化過程 1以太網(wǎng)的幀格式 12.1.2PPPOE的數(shù)據(jù)報文格式 22.1.3PPPOE發(fā)現(xiàn)階段的數(shù)據(jù)報文 3PPPOE數(shù)據(jù)報文中Tag(標(biāo)記)的格式 3PADI(PPPOEActiveDiscoveryInitiation)報文 4PADO(PPPOEActiveDiscoveryOffer)報文 5PADR(PPPOEActiveDiscoveryRequest)報文 6PADS(PPPOEActiveDiscoverySession-confirmation)報文 7PADT(PPPOEActiveDiscoveryTerminate)報文 72.2總結(jié) 72.3思考 8第3章PPPOE的會話階段 93.1PPPOE的會話過程 93.2總結(jié) 93.3思考 9概述PPPOE協(xié)議的基本概念PPPOE協(xié)議出現(xiàn)的背景隨著寬帶網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,以xDSL、CableModem和以太網(wǎng)為主的幾種主流寬帶接入技術(shù)的應(yīng)用已開展的如火如荼。同時又給各大網(wǎng)絡(luò)運營商們帶來了種種困惑,無論使用哪種接入技術(shù),對于他們而言可盼和可求的是如何有效的管理用戶,如何從網(wǎng)絡(luò)的投資中收取回報,因此對于各種寬帶接入技術(shù)的收費的問題就變得更加敏感。在傳統(tǒng)的以太網(wǎng)模型中,我們是不存在所謂的用戶計費的概念,要么用戶能設(shè)置/獲取IP地址上網(wǎng),要么用戶就無法上網(wǎng)。IETF的工程師們在秉承窄帶撥號上網(wǎng)的運營思路(使用NAS設(shè)備終結(jié)用戶的PPP數(shù)據(jù)包),制定出了在以太網(wǎng)上傳送PPP數(shù)據(jù)包的協(xié)議(PointToPointProtocolOverEthernet),這個協(xié)議出臺后,各網(wǎng)絡(luò)設(shè)備制造商也相繼推出自已品牌的寬帶接入服務(wù)器(BAS),它不僅能支持PPPOE協(xié)議數(shù)據(jù)報文的終結(jié),而且還能支持其它許多協(xié)議。如華為公司的MA5200(小BAS)和ISN8850(大BAS)。PPPOE協(xié)議簡介PPPOE協(xié)議提供了在廣播式的網(wǎng)絡(luò)(如以太網(wǎng))中多臺主機連接到遠端的訪問集中器(我們對目前能完成上述功能的設(shè)備為寬帶接入服務(wù)器)上的一種標(biāo)準(zhǔn)。在這種網(wǎng)絡(luò)模型中,我們不難看出所有用戶的主機都需要能獨立的初始化自已的PPP協(xié)議棧,而且通過PPP協(xié)議本身所具有的一些特點,能實現(xiàn)在廣播式網(wǎng)絡(luò)上對用戶進行計費和管理。為了能在廣播式的網(wǎng)絡(luò)上建立、維持各主機與訪問集中器之間點對點的關(guān)系,那么就需要每個主機與訪問集中器之間能建立唯一的點到點的會話。PPPOE協(xié)議共包括兩個階段,即PPPOE的發(fā)現(xiàn)階段(PPPOEDiscoveryStage)和PPPOE的會話階段(PPPOESessionStage)。在這篇培訓(xùn)教材中更注重是PPPOE發(fā)現(xiàn)階段的介紹,因為對于PPPOE的會話階段,可以看成和PPP的會話過程是一樣的(可直接參照PPP協(xié)議培訓(xùn)教材),而兩者的主要區(qū)別在于只是在PPP的數(shù)據(jù)報文前封裝了PPPOE的報文頭。無論是哪一個階段的數(shù)據(jù)報文最終會被封裝成以太網(wǎng)的幀進行傳送。當(dāng)一個主機希望能夠開始一個PPPOE會話時,它首先會在廣播式的網(wǎng)絡(luò)(協(xié)議中是這樣說的,但在實際應(yīng)用中,可能還要跨躍多點訪問的網(wǎng)絡(luò),如ATM等,從而就形成了PPPOEOA的數(shù)據(jù)包)上尋找一個訪問集中器,當(dāng)然可能網(wǎng)絡(luò)上會存在多個訪問集中器時,對于主機而言則會根據(jù)各訪問集中器(AC,AccessConcentration)所能提供的服務(wù)或用戶的預(yù)先的一些配置來進行相應(yīng)的選擇。當(dāng)主機選擇完了所需要的訪問集中器后,就開始和訪問集中器建立一個PPPOE會話進程。在這個過程中訪問集中器會為每一個PPPOE會話分配一個唯一的進程ID,會話建立起來后就開始了PPPOE的會話階段,在這個階段中已建立好點對點連接的雙方(這種點對點的結(jié)構(gòu)與PPP不一樣,它是一種邏輯上的點對點關(guān)系)就采用PPP協(xié)議來交換數(shù)據(jù)報文,從而完成一系列PPP的過程,最終將在這點對點的邏輯通道上進行網(wǎng)絡(luò)層數(shù)據(jù)報的傳送。總結(jié)PPPOE協(xié)議包括PPPOE的發(fā)現(xiàn)階段和PPPOE的會話階段大多數(shù)的BAS(寬帶接入服務(wù)器)都支持PPPOE協(xié)議思考1、PPPOE的客戶端是依據(jù)什么條件來選項訪問集中器的?PPPOE的發(fā)現(xiàn)階段PPPOE的初始化過程PPPOE的初始化過程是至關(guān)重要的,它不僅要在廣播式的網(wǎng)絡(luò)上確定一對一的邏輯關(guān)系,而且還要為PPPOE的會話階段準(zhǔn)備一些必要條件,如訪問集中器唯一分配的會話ID(SessionID)。在介紹PPPOE的發(fā)現(xiàn)階段之前,首先讓我們重溫一下以太網(wǎng)幀的封裝格式,前面也介紹過了,所有的PPPOE的數(shù)據(jù)報文均是被封裝在以太網(wǎng)的數(shù)據(jù)域(凈載荷區(qū))中傳送的。以太網(wǎng)的幀格式以太網(wǎng)的幀格式對于大多數(shù)人來說是并不陌生,而且目前大多數(shù)的網(wǎng)絡(luò)中都在使用以太網(wǎng)2.0版,因此EthernetII就被作為一種事實上的工業(yè)標(biāo)準(zhǔn)而廣泛使用,如果對以太網(wǎng)不太熟悉或想深入了解的讀者,可參考相關(guān)局域網(wǎng)技術(shù)方面的書籍。下圖為以太網(wǎng)的幀格式:以太網(wǎng)目的地址(目的MAC地址)和以太網(wǎng)源地址(源MAC地址),是我們大家最為熟悉的數(shù)據(jù)鏈路層地址。它包括單播地址、多播地址和廣播地址,而對于PPPOE協(xié)議中要使用到單播地址和廣播地址。在PPP的培訓(xùn)教材中也提到了,對于PPP這樣的數(shù)據(jù)鏈路層協(xié)議而言,二層地址通信雙方之間已失去了原有的意義。以太網(wǎng)的類型域也是我們最關(guān)心的一個字段,它在1997年以前還一直由施樂公司維護,但后來就交由IEEE802小組維護了。通過這個字段的內(nèi)容,數(shù)據(jù)包的接收方可以識別以太網(wǎng)的數(shù)據(jù)域中承載的是什么協(xié)議的數(shù)據(jù)報文。對于PPPOE的兩大階段,也正是通過以太網(wǎng)的類型域進行區(qū)分的。在PPPOE的發(fā)現(xiàn)階段時,以太網(wǎng)的類型域填充0x8863;而在PPPOE的會話階段時,以太網(wǎng)的類型域填充為0x8864。數(shù)據(jù)域(凈載荷)主要是用來承載類型域中所指示的數(shù)據(jù)報文,在PPPOE協(xié)議中所有的PPPOE數(shù)據(jù)報文就是被封裝在這個域中被傳送。校驗域,主要用來保證鏈路層數(shù)據(jù)幀傳送的正確性。PPPOE的數(shù)據(jù)報文格式描述完了以太網(wǎng)的幀格式后,我們簡要介紹一下PPPOE的數(shù)據(jù)報文格式。PPPOE的數(shù)據(jù)報文是被封裝在以太網(wǎng)幀的數(shù)據(jù)域內(nèi)的。簡單來說我們可能把PPPOE報文分成兩大塊,(雖然這樣比較籠統(tǒng),但還是比較好助于理解),一大塊是PPPOE的數(shù)據(jù)報頭,另一塊則是PPPOE的凈載荷(數(shù)據(jù)域),對于PPPOE報文數(shù)據(jù)域中的內(nèi)容會隨著會話過程的進行而不斷改變。下圖為PPPOE的報文的格式:PPPOE數(shù)據(jù)報文最開始的4位為版本域,協(xié)議中給出了明確的規(guī)定,這個域的內(nèi)容填充0x01。緊接在版本域后的4位是類型域,協(xié)議中同樣規(guī)定,這個域的內(nèi)容填充為0x01。代碼域占用1個字節(jié),對于PPPOE的不同階段這個域內(nèi)的內(nèi)容也是不一樣的,在這里沒有用表格的形式將所有代碼列出,但在后續(xù)章節(jié)會給出一些代碼與數(shù)據(jù)報文的對照。會話ID點用2個字節(jié),當(dāng)訪問集中器還未分配唯一的會話ID給用戶主機的話,則該域內(nèi)的內(nèi)容必須填充為0x0000,一旦主機獲取了會話ID后,那么在后續(xù)的所有報文中該域必須填充那個唯一的會話ID值。長度域為2個字節(jié),用來指示PPPOE數(shù)據(jù)報文中凈載荷的長度。數(shù)據(jù)域,有時也稱之為凈載荷域,在PPPOE的不同階段該域內(nèi)的數(shù)據(jù)內(nèi)容會有很大的不同。在PPPOE的發(fā)現(xiàn)階段時,該域內(nèi)會填充一些Tag(標(biāo)記);而在PPPOE的會話階段,該域則攜帶的是PPP的報文。PPPOE發(fā)現(xiàn)階段的數(shù)據(jù)報文PPPOE的發(fā)現(xiàn)階段可分為四步,其實這個過程也是PPPOE四種數(shù)據(jù)報文的交換的一個過程。當(dāng)完成這四步后,用戶主機與訪問集中器雙方就能獲知對方的MAC地址和唯一的會話ID號,從而進入到下一個階段(PPPOE的會話階段)。實際上雙方在互相知道了對方的MAC地址后,就已經(jīng)在廣播式的網(wǎng)絡(luò)上確定了一一的對應(yīng)關(guān)系,為了保證這個連接的有效性,同時使PPPOE協(xié)議能更加靈活的運用,因此還加入了會話ID字段,通過這兩個條件就可完成確定雙方點對點的關(guān)系。在這個階段一開始,由于接入用戶并不知道訪問集中器的MAC地址,則使用類似于ARP解析的過程的機制來獲取訪問集中器的MAC地址。首先由接入用戶側(cè)發(fā)起一個初始化的廣播報文,對于訪問集中器如果配置了PPPOE的業(yè)務(wù)時,它會時實檢測網(wǎng)絡(luò)上的數(shù)據(jù)包,當(dāng)發(fā)現(xiàn)以太網(wǎng)數(shù)據(jù)幀中所承載的是PPPOE報文時(通過協(xié)議域的內(nèi)容來區(qū)分),就會將其交給相應(yīng)的模塊去處理。當(dāng)收到初始化報文后,訪問集中器會向該用戶回應(yīng)一個報文。如果網(wǎng)絡(luò)上存在很多這樣的訪問集中器且都收到了用戶側(cè)發(fā)送的初始化報文時,它們也都會向用戶側(cè)會送一個確認(rèn)報文,如果該用戶收到這個報文后,則會依據(jù)報文中所攜帶的內(nèi)容或本端的一些配置來選擇一個唯一的訪問集中器進行會話。到此時已完成了前兩步了,那么剩下的兩步則是協(xié)商一些所提供的服務(wù)選項和獲取PPPOE會話階段所必須的會話ID值。在這個階段,前面在講述以太網(wǎng)幀格式時也特別強調(diào)了,所有數(shù)據(jù)報文是被承載在以太網(wǎng)的數(shù)據(jù)域中的,而且以太網(wǎng)數(shù)據(jù)幀的協(xié)議域始終為0x8863。下面我們結(jié)合具體的數(shù)據(jù)報文的內(nèi)容,來具體的講解這四步的過程。PPPOE數(shù)據(jù)報文中Tag(標(biāo)記)的格式對于發(fā)現(xiàn)階段的PPPOE數(shù)據(jù)報文而言,它的凈載荷可能包含零個或多個Tag(標(biāo)記),實際上這些標(biāo)記的意義非常類似于PPP配置參數(shù)選項,它同樣也是要經(jīng)過協(xié)商的。對于PPPOE協(xié)議而言,沒有像PPP的配置參數(shù)選項那樣定義了很多細節(jié),而只是一個初略的定義,因此在實際當(dāng)中實現(xiàn)這個過程會依據(jù)不同廠商的設(shè)備有不同。首先還是讓我們看一下承載在PPPOE報文數(shù)據(jù)域中的標(biāo)記封裝格式:從上圖中可以看出,標(biāo)記的封裝格式采用的是大家所熟知的TLV結(jié)構(gòu),也即是(類型+長度+數(shù)據(jù))。標(biāo)記的類型域為2個字節(jié),下表列出了各種標(biāo)記類型的含義:標(biāo)記類型標(biāo)記說明0x0000表示PPPOE報文數(shù)據(jù)域中一串標(biāo)記的結(jié)束,為了保證版本的兼容性而保留,在有些報文中有應(yīng)用。0x0101服務(wù)名,主要用來表明網(wǎng)絡(luò)側(cè)所能提供給用戶的一些服務(wù)。0x0102訪問集中器名,當(dāng)用戶側(cè)接收到了AC的回應(yīng)的PADO報文時,就可獲從所攜帶的標(biāo)記中獲知訪問集中器的名子,而且還可以據(jù)此來選擇相應(yīng)的訪問集中器。0x0103主機唯一標(biāo)識,類似于PPP數(shù)據(jù)報文中的標(biāo)識域,主要是用來匹配發(fā)送和接收端的,因為對于廣播式的網(wǎng)絡(luò)中會同時存在很多個PPPOE的數(shù)據(jù)報文。0x0104AC-Cookies,主要被用來防止惡意性DOS功擊。0x0105銷售商的標(biāo)識符。0x0110中繼會話ID,對于PPPOE的數(shù)據(jù)報文也同樣可以像DHCP報文一樣被中斷到另外的AC上終結(jié),這個字段則是用來維護另一個連接的。0x0201服務(wù)名錯誤,當(dāng)請求的服務(wù)名不被對端所接受時,會在響應(yīng)的報文中攜帶這個標(biāo)記。0x0202訪問集中器名出錯。0x0203一般性錯誤。標(biāo)記的長度域為2個字節(jié),它用來指明標(biāo)記數(shù)據(jù)域的長度。標(biāo)記的數(shù)據(jù)域中用來放置不同類型標(biāo)記所對應(yīng)的相關(guān)數(shù)據(jù)。PADI(PPPOEActiveDiscoveryInitiation)報文PPPOE發(fā)現(xiàn)階段的第一步,也即是由用戶側(cè)首先發(fā)送這樣一個報文。用戶主機是以廣播的方式發(fā)送這個報文,所以該報文所對應(yīng)的以太網(wǎng)幀的目的地址域應(yīng)填充為全1,而源地址域填充用戶主機的MAC地址。廣播包可能會被多個訪問集中器接收到,后面會講到對于接收到PADI報文的訪問集中器會使用PADO報文來回應(yīng)用戶主機。我們來看一下PADI報文中幾個域的填充情況,前面已強調(diào)過版本域和類型域固定填充0x01,因為兩個域各占4位,所以合并為1個字節(jié)后應(yīng)為0x11。PADI報文的代碼域填充0x09,會話ID填充0x0000。PADI報文必須含一個由用戶側(cè)請求的正確服務(wù)名標(biāo)記,當(dāng)然還可能攜帶一些其它的標(biāo)記,而一個完整的PADI報文(包括PPPOE頭)不能超過1484個字節(jié),以便能留下足夠的空間給中繼代理增加一個中繼的會話ID標(biāo)記。例1:PADI數(shù)據(jù)報文這個報文中包括兩個標(biāo)記:一個是主機的只唯一標(biāo)識,另一個則是服務(wù)名標(biāo)記,從上面這個報文中可以看出服務(wù)名沒有具體實際的內(nèi)容,說明對于用戶主機可以接受任何由訪問集中器所提供的服務(wù)。PADO(PPPOEActiveDiscoveryOffer)報文PPPOE發(fā)現(xiàn)階段的第二步,也即是由訪問集中器回應(yīng)各用戶主機發(fā)送的PADI報文,此時該報文所對應(yīng)的以太網(wǎng)幀的源地址填充訪問集中器的MAC地址,而目的地址則填充從PADI中所獲取的用戶主機的MAC地址。我們來看一下PADO報文幾個域的填充情況,版本域和類型域不變固定填充0x01,代碼域填充0x07,會話ID填充0x0000。PADO報文中必須包含一個訪問集中器名這個標(biāo)記,同時還要包含對PADI報文中服務(wù)名標(biāo)記的確認(rèn)標(biāo)記和對其它標(biāo)記的一些確認(rèn)標(biāo)記。這個過程有點類似于PPP協(xié)議中鏈路建立過程中的Config-Ack報文,當(dāng)然如果用戶主機所申請的服務(wù)訪問集中器不支持的話,則訪問集中器就不會回應(yīng)PADO報文。例2:PADO數(shù)據(jù)報文這個報文中包括4個標(biāo)記,在PADI所提供的標(biāo)記的基礎(chǔ)上又增加了兩個標(biāo)記,一個是訪問集中器名,下劃線部分即表示訪問集中器名(MD5500),而且還包含一個標(biāo)記結(jié)束標(biāo)記。PADR(PPPOEActiveDiscoveryRequest)報文PPPOE發(fā)現(xiàn)階段的第三步,也即是由用戶主機向訪問服務(wù)器發(fā)送單播的請求報文。當(dāng)用戶主機收到PADO報文后,會從這些報文中挑選一個訪問集中器作為后續(xù)會話的對象。由于用戶主機在收到PADO報文后,就獲知了訪問集中器的MAC地址,因此PADR報文所以應(yīng)的以太網(wǎng)幀的源地址填充用戶主機的MAC地址,而以太網(wǎng)的目的地址填充為訪問集中器的MAC地址。我們來看一下PADR報文幾個域的填充情況,版本域和類型域不變固定填充0x01,代碼域填充0x19,會話ID域填充0x0000。此時PADR報文必須準(zhǔn)確地包含一個服務(wù)名的標(biāo)記,指示用戶主機申請的服務(wù)和其它的標(biāo)記類型。例3:PADR數(shù)據(jù)報文當(dāng)收到訪問集中器的PADO報文后,用戶主機會發(fā)送PADR報文,該報文所含的標(biāo)記域與PADI報文中的一致,但些時用戶主機已獲知了訪問集中器名。PADS(PPPOEActiveDiscoverySession-confirmation)報文PPPOE發(fā)現(xiàn)階段的第四步,也即是最后一步,此時訪問集中器當(dāng)收到PADR報文時,就準(zhǔn)備進入開始一個PPP的會話了,而此時訪問集中器會為在這個會話分配一個唯一的會話進程ID,并在發(fā)送給主機的PADS報文中攜帶上這個會話ID。當(dāng)然如果訪問集中器不滿足用戶所申請的服務(wù)的話,則會向用戶發(fā)送一個PADS報文,而其中攜帶一個服務(wù)名錯誤的標(biāo)記,而且此時該PADS報文中的會話ID填充0x0000。我們來看一下PADS報文幾個域的填充情況,版本域和類型域不變固定填充0x01,代碼域填充0x65,會話ID必須設(shè)為給這個PPPOE進程所分配的唯一值。例4:PADS數(shù)據(jù)報文其中下劃線部分為訪問集中器給這個PPPOE會話分配的唯一會話ID。PADT(PPPOEActiveDiscoveryTerminate)報文PADT報文可能在會話進行開始之后的任意時間內(nèi)被發(fā)送,主要是用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論