技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國(guó)傳動(dòng)網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 嵌入式操作系統(tǒng)VxWorks下PPPoE的實(shí)現(xiàn)

嵌入式操作系統(tǒng)VxWorks下PPPoE的實(shí)現(xiàn)

時(shí)間:2008-01-26 13:50:00來(lái)源:mahaiyan

導(dǎo)語(yǔ):?PPPoE是一種很常用的撥號(hào)協(xié)議,介紹PPPoE Discovery階段的基本流程和幀封裝格式,同時(shí)介紹PPP的連接控制協(xié)議(LCP)、認(rèn)證協(xié)議(CHAP、PAP)、IP控制協(xié)議I(PCP)各協(xié)議子層之間的關(guān)系和PPP的數(shù)據(jù)包封裝格式。
摘要:PPPoE是一種很常用的撥號(hào)協(xié)議,介紹PPPoE Discovery階段的基本流程和幀封裝格式,同時(shí)介紹PPP的連接控制協(xié)議(LCP)、認(rèn)證協(xié)議(CHAP、PAP)、IP控制協(xié)議I(PCP)各協(xié)議子層之間的關(guān)系和PPP的數(shù)據(jù)包封裝格式。討論P(yáng)PPoE、PPP協(xié)議在嵌入式操作系統(tǒng)VxWorks的TCP/IP協(xié)議棧體系中的具體位置和PPP、PPPoE數(shù)據(jù)包收發(fā)二個(gè)方向的處理流程,同時(shí)給出VxWorks下PPPoE實(shí)現(xiàn)的具體的軟件模塊設(shè)計(jì),具有一定的工程應(yīng)用價(jià)值。 關(guān)鍵字:PPPoE;PPP;VxWorks;嵌入式操作系統(tǒng) 1 前言 在目前的通信市場(chǎng),寬帶逐漸增溫,接入方式呈現(xiàn)多樣性:LAN、ADSL、HFC Cable Modem、WLAN各有一定的市場(chǎng)份額,而ADSL是全球范圍內(nèi)占據(jù)主流地位的寬帶接入方式,它能夠提供最低512 kHz,最高8 MHz的帶寬。用戶可以獨(dú)享帶寬,不會(huì)因?yàn)樯暇W(wǎng)人數(shù)的增加而導(dǎo)致上網(wǎng)速率的降低。更為重要的是ADSL價(jià)格低廉,能為普通消費(fèi)者所接受。目前國(guó)內(nèi)的各大運(yùn)營(yíng)商和寬帶接入提供商正在如火如荼地進(jìn)行寬帶革命。中國(guó)電信推出“ADSL網(wǎng)絡(luò)快車(chē)”,并且已經(jīng)圈定了大規(guī)模的用戶群;中國(guó)網(wǎng)通也有類(lèi)似的市場(chǎng)規(guī)模。另一方面,VoIP語(yǔ)音業(yè)務(wù)也飛速發(fā)展。目前國(guó)內(nèi)大多數(shù)VoIP語(yǔ)音接入終端多為L(zhǎng)AN方式。主要用戶對(duì)象集中于智能化小區(qū)、校園、話吧等。由于大多數(shù)家庭用戶的寬帶接入為ADSL方式,運(yùn)營(yíng)商不得不考慮到目前的ADSL用戶對(duì)VoIP語(yǔ)音業(yè)務(wù)的需求。所以,如果VoIP的終端設(shè)備支持PP-PoE的接入方式,只要將VoIP的終端設(shè)備掛到AD-SLMODEM下就可以提供VoIP語(yǔ)音業(yè)務(wù)。VoIP終端設(shè)備的軟件大多都基于嵌入式操作系統(tǒng)。VxWorks是WRS(Wind River Systems Inc.)推出的嵌入式實(shí)時(shí)操作系統(tǒng)。VxWorks以無(wú)可比擬的高效能、高可靠性、高效的調(diào)試工具和穩(wěn)定、高效的網(wǎng)絡(luò)協(xié)議等優(yōu)點(diǎn)在高端通信市場(chǎng)占據(jù)了優(yōu)勢(shì)地位,太多數(shù)通訊設(shè)備都采用VxWorks作為操作系統(tǒng)。本文詳細(xì)介紹PPP、PPPoE協(xié)議在VxWorks下的具體實(shí)現(xiàn)。 2 PPP和PPPOE協(xié)議 IP接入的功能包括動(dòng)態(tài)IP地址分配、AAA和ISP動(dòng)態(tài)選擇,實(shí)現(xiàn)這些功能通常需要用到一個(gè)著名的接入?yún)f(xié)議即PPP協(xié)議,PPP協(xié)議是一成熟的IP接入?yún)f(xié)議,支持多種協(xié)議封裝,實(shí)現(xiàn)簡(jiǎn)單,易于與現(xiàn)有的ISP配合。它具有鏈路層和網(wǎng)絡(luò)層配置和協(xié)商功能,可方便地自動(dòng)分配TP。PPP本身也是一個(gè)數(shù)據(jù)鏈路層協(xié)議,它可采用不同的傳輸機(jī)制傳送。常用的有HDLC、ATM和以太網(wǎng)。承載在以太網(wǎng)上的稱(chēng)為PPPoE(PPP over Ethernet)。 2.1 PPPoE協(xié)議 RFC2516定義了一種在以太網(wǎng)上傳送PPP的方法即PPPoE。PPPoE分為二個(gè)階段,即Discovery(地址發(fā)現(xiàn))階段和PPP會(huì)話階段。當(dāng)某個(gè)主機(jī)希望發(fā)起一個(gè)PPPoE會(huì)話時(shí),它必須首先執(zhí)行Discovery來(lái)確定對(duì)方的以太網(wǎng)MAC地址并建立起一個(gè)PP-PoE會(huì)話標(biāo)識(shí)符SESSION_ID。雖然PPP定義的是端到端的對(duì)等關(guān)系,Discovery卻是天生的一種客戶端-服務(wù)器關(guān)系。在Discovery的過(guò)程中,主機(jī)(作為客戶端)發(fā)現(xiàn)某個(gè)訪問(wèn)集中器(Access Concentrator,作為服務(wù)器),根據(jù)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),主機(jī)能夠與不只一個(gè)的訪問(wèn)集中器通信。Discovery階段允許主機(jī)發(fā)現(xiàn)所有的訪問(wèn)集中器并從中選擇一個(gè)。當(dāng)Discovery階段成功完成后,主機(jī)和訪問(wèn)集中器二者都具備了用于在以太網(wǎng)上建立點(diǎn)到點(diǎn)連接所需的所有信息。 (1)PPPoE的幀格式和種類(lèi) Discovery階段所有的以太網(wǎng)幀的ETHER_TYPE域都設(shè)置為0x8863。PPP會(huì)話階段以太網(wǎng)幀的ETHER_TYPE域都設(shè)置為0x8864。PPPoE的payload部分包含O個(gè)或多個(gè)TAG。一個(gè)TAG是一個(gè)TLV(type-length-value)結(jié)構(gòu),TAG_TYPE域?yàn)?6位值(網(wǎng)絡(luò)字節(jié)序),RFC2516標(biāo)準(zhǔn)附錄A列出了各種TAG_TYPE和TAG_VALUE。PPPoE的幀格式如圖1所示。
PPPoE discovery階段有5種基本的幀,分別為PPPoE Active Discovery Initiation (PADI)、PPPoE Active Discovery Offer(PADO)、PPPoE Active Discovery Request (PADR)、PPPoE Active Discovery Sessionconfirmation (PADS)、PPPoE Active Discovery Terminate(PADT)。 (2)PPPoE的工作流程 PPPoE包含二個(gè)階段:Discovery搜索階段和Session會(huì)話階段。PPPoE Discovery的主要步驟為: ●主機(jī)發(fā)送PADl分組,其目的地址為廣播地址,會(huì)話IAD為0(未分配); ●任一接入服務(wù)器收到PADI并任提供所需的服務(wù)時(shí),就回送PADO分組,會(huì)話IAD為O; ●主機(jī)可能收到多個(gè)PADO,根據(jù)服務(wù)及其提供的服務(wù)選定一個(gè)服務(wù)器,然后向該服務(wù)器發(fā)送PADR分組,其目的地址為該服務(wù)器的單播地址。會(huì)話ID為0(未分配); ●該服務(wù)器收到PADR后生成一個(gè)唯一的會(huì)話ID,向主機(jī)回送PADS分組,準(zhǔn)備啟動(dòng)PPP。 當(dāng)搜索階段完成后,PPPoE的Host主機(jī)從接入服務(wù)器AC獲取一個(gè)Session ID。搜索成功后主機(jī)和接入服務(wù)器之間就可以建立Ethernet的PPP連接,進(jìn)入PPP會(huì)話階段。 2.2 PPP協(xié)議 (1)PPP協(xié)議組成 PPP協(xié)議由IETF RFCl661定義,主要包含4個(gè)部分: ●幀封裝的方法; ●鏈路控制協(xié)議(LCP-Link Control Protocol),完成線路的啟動(dòng)、測(cè)試、任選參數(shù)的協(xié)商和最終線路斷開(kāi)功能; ●網(wǎng)絡(luò)控制協(xié)議(NCP),最常用的NCP協(xié)議為IP控制協(xié)議IPCP。它的一個(gè)重要功能就是動(dòng)態(tài)分配IP地址; ●用戶認(rèn)證,主要通過(guò)LCP協(xié)商采用何種認(rèn)證協(xié)議,但認(rèn)證協(xié)議本身不是PPP協(xié)議的范圍。 PPP可分為三個(gè)階段:LCP協(xié)商、認(rèn)證和NCP協(xié)商。從協(xié)議上來(lái)說(shuō)可以分為三個(gè)子層,每層可向相鄰的子層發(fā)送“Up”或“Down”事件?!癠p”表示該層已激活,“Down”表示該層已終結(jié)。就整個(gè)接入過(guò)程而言,還可以認(rèn)為L(zhǎng)CP之下還有一個(gè)物理層,在每個(gè)NCP之上還有一個(gè)網(wǎng)絡(luò)接口。 一個(gè)子層的激活(Up)需具有三個(gè)事件:上層發(fā)出“打開(kāi)”(Open)請(qǐng)求,下層收到“Up”事件;本層協(xié)商成功。 協(xié)議的基本過(guò)程為:用戶通過(guò)某個(gè)接口請(qǐng)求建立鏈路,此時(shí)Open事件發(fā)送到PPP的LCP子層,當(dāng)LCP啟動(dòng)后,即請(qǐng)求建立物理鏈路,開(kāi)始PPPoE協(xié)商,當(dāng)PPPoE協(xié)商成功后,就向LCP層發(fā)送Up事件。然后LCP向?qū)Χ税l(fā)送協(xié)商請(qǐng)求,雙方確定鏈路的配置參數(shù)后,LCP向認(rèn)證層發(fā)送Up事件。認(rèn)證成功后,在向NCP層發(fā)Up事件。如不需要認(rèn)證,則可直接向NCP層發(fā)送up事件。NCP協(xié)議收到Up事件后開(kāi)始NCP處理。例如IPCP協(xié)議將開(kāi)始協(xié)商IP地址等。PPP正常終結(jié)過(guò)程是,每個(gè)NCP分別終結(jié),然后LCP終結(jié),最后物理層終結(jié)。但PPP實(shí)現(xiàn)必須能夠處理物理鏈路自行斷開(kāi)、NCP尚未終結(jié)時(shí)LCP先行終結(jié)的異常情況。 (2)PPP的封裝格式 PPPP的封裝格式如下:
發(fā)送的順序是從左到右。Protocol定義被封裝的數(shù)據(jù)報(bào)的協(xié)議類(lèi)型,最常用的幾種定義為:
3 在VxWorks下的實(shí)現(xiàn) 3.1 PPP和PPPoE數(shù)據(jù)包收發(fā)處理流程 為了更清楚地介紹VxWorks下的PPP和PPPoE數(shù)據(jù)包收發(fā)處理流程,先介紹一下Vx-Works下的TCP/IP協(xié)議棧的結(jié)構(gòu)。 PPP和PPPoE在VxWorks TCP/IP協(xié)議棧中的位置如下:
VxWorks的TCP/IP協(xié)議棧與標(biāo)準(zhǔn)的BSD的TCP/IP協(xié)議的最大不同在于加入了MUX層。MUX層的作用是負(fù)責(zé)管理協(xié)議層和驅(qū)動(dòng)層之間的相互作用,使協(xié)議層和驅(qū)動(dòng)層相互透明。從而使一個(gè)VxWorks操作系統(tǒng)可以同時(shí)支持多個(gè)協(xié)議和驅(qū)動(dòng)。PPP和PPPoE都屬于鏈路層的協(xié)議,所以介于MUX和IP層之間。 PPPoE層主要實(shí)現(xiàn)PPPoE撥號(hào)過(guò)程和對(duì)上層PPP的數(shù)據(jù)包進(jìn)行PPPoE封裝。PPPoE通過(guò)MUX層的接口發(fā)送方向采用以太網(wǎng)發(fā)送函數(shù)ehterOutput發(fā)送數(shù)據(jù)包,接收方向主要是調(diào)用VxWorks提供的增加鉤子函數(shù)etherInputHookAdd添加自己的以太網(wǎng)鉤子函數(shù)對(duì)以太網(wǎng)幀類(lèi)型為0x8863和0x8864的包進(jìn)行處理。如幀類(lèi)型為0x8863,則為PPPoE Dis-covery包,如為0x8864,則為PPPoE Session階段的包經(jīng)拆封處理后送到PPP層處理。 PPP層軟件主要實(shí)現(xiàn)LCP鏈路建立、PPP認(rèn)證、IPCP協(xié)商IP地址和對(duì)IP數(shù)據(jù)包的PPP封裝等功能。 PPP層與IP層的接口主要通過(guò)再添加一個(gè)if_PPP的網(wǎng)絡(luò)接口。從IP層看來(lái)if_PPP接口和普通的網(wǎng)口設(shè)備沒(méi)什么不同。if_ppp作為VxWorks TCP/IP協(xié)議棧中的一個(gè)網(wǎng)絡(luò)接口,可以封裝IP數(shù)據(jù)包,并且在PPP的鏈路上收發(fā)IP包。PPP和PPPoE層也有相應(yīng)接口函數(shù)。發(fā)送方向PPP的數(shù)據(jù)包(無(wú)論是IP還是LCP、IPCP)都通過(guò)PPPoE層封裝后發(fā)送出去;接收方向,PPPoE層收到包先進(jìn)行判斷,如是PPF包,就交PPP層處理。PPP層根據(jù)協(xié)議類(lèi)型分發(fā)到LCP、IPCF、IP等相關(guān)模塊進(jìn)行處理。整個(gè)PPP和PPPoE的收發(fā)包處理流程如圖2所示。
3.2 PPP和PPPoE軟件模塊設(shè)計(jì) 整個(gè)PPPoE、PPP軟件由PPP、PPP Adapter、PP-PoE Discovery、PPPoE Session、PPPoE Timer、PPPoE Adpater、PPPoE Config模塊組成,如圖3所示。
1)PPP模塊主要實(shí)現(xiàn)LCP、IPCP和認(rèn)讓協(xié)議(chap、pap)等,PPP還實(shí)現(xiàn)一個(gè)虛擬的ifnet接口,實(shí)現(xiàn)對(duì)上層IP報(bào)的封裝和分發(fā)處理。 2)PPP Adpater模塊主要實(shí)現(xiàn)PPP和PPPoE模塊之間的接口適配。 3)PPPoE Discoverv模塊實(shí)現(xiàn)PPPoE的Discov-ely階段的處理。 4)PPPoE Session模塊實(shí)現(xiàn)PPPoE的Session階段的處理,主要是PPPoE封裝和解包處理。 5)PPPoE Timer模塊主要實(shí)現(xiàn)PPPoE模塊的定時(shí)處理功能,用于PPPoE Discovery階段的狀態(tài)機(jī)切換處理。 6)PPPoE Adapater模塊主要實(shí)現(xiàn)PPPoE的包的收發(fā)處理。 7)PPPoE Config模塊主要實(shí)現(xiàn)PPP和PPPoE的相關(guān)配置功能。如配置用戶名密碼等。 4 結(jié)束語(yǔ) 本文介紹應(yīng)用PPP和PPPoE協(xié)議實(shí)現(xiàn)VoIP的語(yǔ)音接人方法,詳細(xì)介紹了PPP、PPPoE協(xié)議的原理,討論了PPP和PPPoE協(xié)議在VxWorks操作系統(tǒng)下的具體實(shí)現(xiàn),具有一定的工程應(yīng)用價(jià)值。

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:分布式測(cè)試系統(tǒng)的一種網(wǎng)絡(luò)通...

下一篇:微能WIN-V63矢量控制變頻器在...

中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(m.u63ivq3.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

相關(guān)資訊

網(wǎng)站簡(jiǎn)介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見(jiàn)反饋|sitemap

傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢采購(gòu)咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權(quán)所有
粵ICP備 14004826號(hào) | 營(yíng)業(yè)執(zhí)照證書(shū) | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)