<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > 基于Linux內(nèi)核模式的PPPoE優(yōu)化與實(shí)現(xiàn)

          基于Linux內(nèi)核模式的PPPoE優(yōu)化與實(shí)現(xiàn)

          作者: 時(shí)間:2010-09-13 來源:網(wǎng)絡(luò) 收藏

          PPPOE(Point.to.Point Protoeol over Ethernet)是將PPP協(xié)議封裝在以太網(wǎng)幀上進(jìn)行傳輸,它的通信過程分為探測(Discovery)和PPP會(huì)話(Session)2個(gè)階段。PPPoE Discovery階段主要是客戶機(jī)確定AC(Access Concentrator)以及客戶機(jī)與AC協(xié)商Session ID。而PPPoE Sess-ion用于完成數(shù)據(jù)包的接收與發(fā)送,同時(shí)它也用于完成PPP鏈路的協(xié)商(LCP),以及網(wǎng)絡(luò)層的控制協(xié)商(IPCP)等。
          傳統(tǒng)的PPPoE先會(huì)用Raw socket讀取數(shù)據(jù),然后采用用戶態(tài)程序?qū)ζ浞獍獍?,然后再發(fā)送給內(nèi)核。但是這種方法會(huì)引起大量的內(nèi)核空間與用戶空間的上下文切換,從而帶來不必要的開銷。而對于實(shí)現(xiàn)于內(nèi)核態(tài)的PPPoE,它會(huì)把所有的封包以及解包實(shí)現(xiàn)于內(nèi)核,這樣就大大提高PPPoE的效率。

          1 PPPoE協(xié)議概述
          1. 1 PPPoE Discovery階段
          在PPPoE Discovery階段,客戶機(jī)首先廣播一個(gè)PADI(0x09)幀。收到PADI幀的一個(gè)或多個(gè)服務(wù)器會(huì)發(fā)送PADO(0x07)幀,這個(gè)包中包含了服務(wù)器的各種標(biāo)識(shí)。然后,客戶機(jī)會(huì)選擇其中一個(gè)服務(wù)器發(fā)送PADR(0x19),表明主機(jī)選擇了這個(gè)服務(wù)器。最終,收到PADR(0x65)幀的服務(wù)器會(huì)為新的會(huì)話分配資源并向客戶機(jī)發(fā)送PADS(0x65)。當(dāng)此階段完成,這兩次的對話完成了SESSION_ID以及雙方物理地址,為后續(xù)數(shù)據(jù)會(huì)話打好基礎(chǔ)。
          同時(shí)PPP協(xié)議還提供了一個(gè)PADT請求,該請求用于結(jié)束這次PPPoE會(huì)話。這個(gè)請求可以由任何一方發(fā)出,同時(shí)代表這次回話的結(jié)束,圖1描述整個(gè)discovery過程。

          本文引用地址:http://www.ex-cimer.com/article/157118.htm


          1.2 PPPoE Session階段
          PPPoE Discovery階段是為整個(gè)PPPoE會(huì)話獲取雙方物理地址以及Session_ID,這個(gè)Session_ID就成為了雙方的通信憑證,在整個(gè)會(huì)話過程中保持不變。PPP幀數(shù)據(jù)被封在以太幀中,它在以太幀的標(biāo)識(shí)為0x8864,當(dāng)碰到0x8864時(shí),就認(rèn)為是一個(gè)PPPoE包。
          在PPPoE Session階段,PPPoE除數(shù)據(jù)傳輸以外,還提供了鏈路的協(xié)商(LCP),以及網(wǎng)絡(luò)層的控制協(xié)商(IPCP)等其他服務(wù)。對于LCP,它主要用于配置和測試數(shù)據(jù)通信鏈路,用來協(xié)商PPP協(xié)議的一些配置參數(shù)選項(xiàng);處理不同大小的數(shù)據(jù)幀:檢測鏈路環(huán)路和一些鏈路的錯(cuò)誤;終止一條鏈路,其作用類似于IP層的ICMP協(xié)議。而對于IPCP,它主要用于動(dòng)態(tài)地協(xié)商客戶機(jī)與服務(wù)器雙方IP,實(shí)際的數(shù)據(jù)報(bào)文交換過程中主要涉及Config-Request、Config-Ack、Config-Nak和Config-Re-ject。圖2描述IPCP協(xié)商IP的過程。



          2 PPPOE設(shè)計(jì)實(shí)現(xiàn)
          從上述PPPoE協(xié)議描述中,了解到整個(gè)PPPoE會(huì)話包括Discovery、鏈路協(xié)商和數(shù)據(jù)傳輸3種交互。這3種數(shù)據(jù)中,數(shù)據(jù)傳輸最重要,數(shù)據(jù)量最大。對于用戶空間模式的PPPoE,數(shù)據(jù)包收發(fā)需要通過pty,由用戶空間的PPPoE進(jìn)程處理PPPoE包頭后通過Raw socket收發(fā)。也就是說所有的PPPoE數(shù)據(jù)封包結(jié)果都在用戶空間執(zhí)行,這樣就大大增加了內(nèi)核空間與用戶空間數(shù)據(jù)切換的次數(shù)。為了減少這種開銷。這里采用一個(gè)內(nèi)核模塊來處理數(shù)據(jù)的封包解包,這樣就大大減少了內(nèi)核空間與用戶空間數(shù)據(jù)切換的次數(shù),提高效率。所以對內(nèi)核空間模式的PPPoE的處理策略是:Discovery以及鏈路協(xié)商交互全部在用戶空間完成,而數(shù)據(jù)的封解包則通過一個(gè)內(nèi)核模塊在內(nèi)核空間完成。


          上一頁 1 2 3 下一頁

          關(guān)鍵詞: 收發(fā)器

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();