嵌入式PPPoE軟件模塊的設計與實現
發布時間:2007/8/28 0:00:00 訪問次數:1069
作者:張 鋒 李 彤 黃永峰
摘要:分析了PPPoE協議的基本框架和協議過程,根據嵌入式系統資源有限和無操作系統支持的特點,設計了一種適合于嵌入式系統的PPPoE軟件結構,提出了減少代碼長度和數據存儲空間的化優方法,在80D51芯片上成功實現了PPPoE協議軟件,并應用在以太話機中。實際運行證明,本PPPoE協議軟件在穩定性、互通性和一致性等方面都具有良好的性能。
關鍵詞:PPPoE PPP 嵌入式系統
基于以太網的點對點通信協議PPPoE(Point to Point Protocol over Ethenet)是為了滿足越來越多的寬帶上網設備(如ADSL、無線、有線電視等)和越來越快的網絡之間的通信而指定開發的標準,它給出了兩個廣泛的接受的標準:以太網和PPP撥號協議。不難看出,PPPoE就是將PPP數據承載到以太網上,實質是在共享介質的網絡中提供一條邏輯上的點到點鏈路。對用戶而言,在DSLAM(DSL匯聚設備)與ADSL Modem之間的ATM傳輸是透明的,如果將中間的DSLAM和ADSL Modem換成有效電視的接入設備,就是典型的HFC接入。BAS(寬帶接入服務器)對PPPoE包的處理方式不變。而對于服務商,在現有局域網基礎上不需要花費巨資做大面積改造。
目前,實現PPPoE協議的軟件有多種,且多數都是應用于PC機。該類軟件的作用主要是操作系統的撥號(PPP)協議與以太網協議建立連接,通過PPPoE協議與ISP連接,獲得Internet連接服務。而本考到嵌入式系統的特點,直接在網絡協議數據鏈路層實現PPPoE協議。這樣做省去了鏈路層的PPP包到PPPoE包的轉換,提高了效率,并且具有良好的可移植性。
1 PPPoE協議框架
PPPoE協議共包括兩個階段,即PPPoE的媽現階段(PPPoE Discovery Stage)和PPPoE的會話階段(PPPoE Session Stage)。本文著重介紹PPPoE發現階段。對于PPPoE會話階段,可以看成與PPP的會話過程基本一樣,當然兩者在數據的封裝上還是有區別的。PPPoE并不需要PPP協議中的起始位標志、地址位、控制位和結束標志,也不需要PPP協議中規定的數據轉譯和CRC校驗,但要在PPP的數據報文前封裝PPPoE的報文頭。無論是哪一個階段的數據報文最終會被封裝成以太網幀傳送。
如果主機要開始一個PPPoE會話,它首先會在網絡上發送一個廣播,通過廣播尋找一個訪問集中器AC(Access Concentration)。當網絡上存在多個訪問集中器時,主機根據訪問集中器所能提供的服務或用戶預先配置的信息進行相應的選擇。訪問集中器選定后,主機開始與所選擇的訪問集中器建立一個PPPoE會話進程。在這一過程中,訪問集中器會為每一個PPPoE會話分配一個惟一的進程ID,會話建立后就開始了PPPoE的會話階段。在這個階段,已建立好點對點(邏輯點對點)連接的雙方采用PPP協議交換數據報文,從而完成一系列PPP的過程,最終將在這個點對點的邏輯通道上進行網絡層數據包的傳送。
PPPoE可以理解為在以太網上跑PPP數據,因此,其幀格式與以太幀格式一致,如圖1所示。通過類型域字段的內容,數據包的接收方可以識別以太網的數據域中承載的是什么協議的數據報文。PPPoE的兩大階段,也正是通過以太網的類型域進行區分的。這個域的值,在發現階段為0x8863,而在會話階段為0x8864。
PPPoE幀的載荷字承載PPPoE數據報文,報文格式如圖2所示,其中各字段的含義如下:
1)版本字段(ver)標志著協議版本信息,為4bits,目前協議規定其值為0x1。
2)類型字段(type),4bits,標志類型信息,值為0x1。
3)編碼字段(code),單個字節,在不同階段具有不同取值,本文稍候詳細分析。
4)會話ID字段(session id)由兩個字節組成,在發現階段,取值為0x0000,在后續的整個PPPo
作者:張 鋒 李 彤 黃永峰
摘要:分析了PPPoE協議的基本框架和協議過程,根據嵌入式系統資源有限和無操作系統支持的特點,設計了一種適合于嵌入式系統的PPPoE軟件結構,提出了減少代碼長度和數據存儲空間的化優方法,在80D51芯片上成功實現了PPPoE協議軟件,并應用在以太話機中。實際運行證明,本PPPoE協議軟件在穩定性、互通性和一致性等方面都具有良好的性能。
關鍵詞:PPPoE PPP 嵌入式系統
基于以太網的點對點通信協議PPPoE(Point to Point Protocol over Ethenet)是為了滿足越來越多的寬帶上網設備(如ADSL、無線、有線電視等)和越來越快的網絡之間的通信而指定開發的標準,它給出了兩個廣泛的接受的標準:以太網和PPP撥號協議。不難看出,PPPoE就是將PPP數據承載到以太網上,實質是在共享介質的網絡中提供一條邏輯上的點到點鏈路。對用戶而言,在DSLAM(DSL匯聚設備)與ADSL Modem之間的ATM傳輸是透明的,如果將中間的DSLAM和ADSL Modem換成有效電視的接入設備,就是典型的HFC接入。BAS(寬帶接入服務器)對PPPoE包的處理方式不變。而對于服務商,在現有局域網基礎上不需要花費巨資做大面積改造。
目前,實現PPPoE協議的軟件有多種,且多數都是應用于PC機。該類軟件的作用主要是操作系統的撥號(PPP)協議與以太網協議建立連接,通過PPPoE協議與ISP連接,獲得Internet連接服務。而本考到嵌入式系統的特點,直接在網絡協議數據鏈路層實現PPPoE協議。這樣做省去了鏈路層的PPP包到PPPoE包的轉換,提高了效率,并且具有良好的可移植性。
1 PPPoE協議框架
PPPoE協議共包括兩個階段,即PPPoE的媽現階段(PPPoE Discovery Stage)和PPPoE的會話階段(PPPoE Session Stage)。本文著重介紹PPPoE發現階段。對于PPPoE會話階段,可以看成與PPP的會話過程基本一樣,當然兩者在數據的封裝上還是有區別的。PPPoE并不需要PPP協議中的起始位標志、地址位、控制位和結束標志,也不需要PPP協議中規定的數據轉譯和CRC校驗,但要在PPP的數據報文前封裝PPPoE的報文頭。無論是哪一個階段的數據報文最終會被封裝成以太網幀傳送。
如果主機要開始一個PPPoE會話,它首先會在網絡上發送一個廣播,通過廣播尋找一個訪問集中器AC(Access Concentration)。當網絡上存在多個訪問集中器時,主機根據訪問集中器所能提供的服務或用戶預先配置的信息進行相應的選擇。訪問集中器選定后,主機開始與所選擇的訪問集中器建立一個PPPoE會話進程。在這一過程中,訪問集中器會為每一個PPPoE會話分配一個惟一的進程ID,會話建立后就開始了PPPoE的會話階段。在這個階段,已建立好點對點(邏輯點對點)連接的雙方采用PPP協議交換數據報文,從而完成一系列PPP的過程,最終將在這個點對點的邏輯通道上進行網絡層數據包的傳送。
PPPoE可以理解為在以太網上跑PPP數據,因此,其幀格式與以太幀格式一致,如圖1所示。通過類型域字段的內容,數據包的接收方可以識別以太網的數據域中承載的是什么協議的數據報文。PPPoE的兩大階段,也正是通過以太網的類型域進行區分的。這個域的值,在發現階段為0x8863,而在會話階段為0x8864。
PPPoE幀的載荷字承載PPPoE數據報文,報文格式如圖2所示,其中各字段的含義如下:
1)版本字段(ver)標志著協議版本信息,為4bits,目前協議規定其值為0x1。
2)類型字段(type),4bits,標志類型信息,值為0x1。
3)編碼字段(code),單個字節,在不同階段具有不同取值,本文稍候詳細分析。
4)會話ID字段(session id)由兩個字節組成,在發現階段,取值為0x0000,在后續的整個PPPo