|
PPP的連接控制協(xié)議(LCP)、認(rèn)證協(xié)議(CHAP、PAP)、IP控制協(xié)議I(PCP) 1.IP接入的功能包括動(dòng)態(tài)IP地址分配、AAA和ISP動(dòng)態(tài)選擇 2.PPPoE主要分為兩個(gè)階段即Discovery(地址發(fā)現(xiàn))階段和PPP會(huì)話階段,當(dāng)某個(gè)主機(jī)希望發(fā)起一個(gè)PPPoE會(huì)話時(shí),它必須首先執(zhí)行Discovery來確定對(duì)方的以太網(wǎng)MAC地址并建立起一個(gè)PP-PoE會(huì)話標(biāo)識(shí)符SSION_ID,雖然PPP定義的是端到端的對(duì)等關(guān)系,Discovery卻是天生的一種客戶端-服務(wù)器關(guān)系,在Discovery的過程中,主機(jī)(作為客戶端)發(fā)現(xiàn)某個(gè)訪問集中器(Access Concentrator,作為服務(wù)器),根據(jù)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),主機(jī)能夠與不只一個(gè)的訪問集中器通信.Discovery階段允許主機(jī)發(fā)現(xiàn)所有的訪問集中器并從中選擇一個(gè)。當(dāng)Discovery階段成功完成后,主機(jī)和訪問集中器二者都具備了用于在以太網(wǎng)上建立點(diǎn)到點(diǎn)連接所需的所有信息。 3.PPPoE的幀格式和種類 Discovery階段:以太網(wǎng)幀的ETHER_TYPE域都設(shè)置為0x8863。 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)。 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é)序), 4. PPPoE的工作流程 Discovery搜索階段 ●主機(jī)發(fā)送PADl分組,其目的地址為廣播地址,會(huì)話IAD為0(未分配); ●主機(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。 Session會(huì)話階段,PPPoE的Host主機(jī)從接入服務(wù)器AC獲取一個(gè)Session ID。進(jìn)入PPP會(huì)話階段 分析二(PPP) 1. PPP協(xié)議組成 a) 鏈路控制協(xié)議(LCP-Link Control Protocol),完成線路的啟動(dòng)、測試、任選參數(shù)的協(xié)商和最終線路斷開功能 b) 認(rèn)證協(xié)議,最常用的包括口令驗(yàn)證協(xié)議PAP(Password Authentication Protocol)和挑戰(zhàn)握手驗(yàn)證協(xié)議CHAP(Challenge-Handshake Authentication Protocol) c) 用戶認(rèn)證,主要通過LCP協(xié)商采用何種認(rèn)證協(xié)議,但認(rèn)證協(xié)議本身不是PPP協(xié)議的范圍 d) IP控制協(xié)議IPCP(網(wǎng)絡(luò)控制協(xié)議(NCP)),最常用的NCP協(xié)議為。它的一個(gè)重要功能就是動(dòng)態(tài)分配IP地址; 2. 認(rèn)證方式 1. 口令驗(yàn)證協(xié)議(PAP) 2. 挑戰(zhàn)-握手驗(yàn)證協(xié)議(CHAP) 3. PPP工作流程 a) LCP協(xié)商(之下物理層,之上網(wǎng)絡(luò)接口層)創(chuàng)建鏈路 Open事件發(fā)送到PPP的LCP子層,當(dāng)LCP啟動(dòng)后,即請(qǐng)求建立物理鏈路,開始以上的PPPoE協(xié)商,當(dāng)PPPoE協(xié)商成功后,就向LCP層發(fā)送Up事件。 b) 認(rèn)證 LCP向?qū)Χ税l(fā)送協(xié)商請(qǐng)求,雙方確定鏈路的配置參數(shù)后,LCP向認(rèn)證層發(fā)送Up事件。 c) NCP協(xié)商 調(diào)用鏈路層創(chuàng)建階段選定的網(wǎng)絡(luò)控制層協(xié)議 認(rèn)證成功后,在向NCP層發(fā)Up事件。如不需要認(rèn)證,則可直接向NCP層發(fā)送up事件,NCP協(xié)議收到Up事件后開始NCP處理。 d) PPP正常終結(jié)過程 NCP分別終結(jié),然后LCP終結(jié),最后物理層終結(jié) 說明:每層可向相鄰的子層發(fā)送“Up”或“Down”事件。“Up”表示該層已激活,“Down”表示該層已終結(jié). 4.PPP幀格式 a) 發(fā)送的順序是從左到右Protocol 分析二(實(shí)現(xiàn)) 1. PPP和PPPoE數(shù)據(jù)包收發(fā)處理流程 PPPoE層主要實(shí)現(xiàn)PPPoE撥號(hào)過程和對(duì)上層PPP的數(shù)據(jù)包進(jìn)行PPPoE封裝及處理,主要處理幀類型為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封裝等功能。 2. 數(shù)據(jù)包流向 4. PPP和PPPoE軟件模塊設(shè)計(jì) 整個(gè)PPPoE、PPP軟件可分為一下模塊設(shè)計(jì), 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ā)處理。 |
|
|