PPPoE工作原理與幀格式

2021-08-22 05:33:18 字數 2333 閱讀 6085

pppoe協議的工作流程包含發現和會話兩個階段,發現階段是無狀態的,目的是獲得pppoe終結端(在局端的adsl裝置上)的乙太網mac位址,並建立乙個唯一的pppoesession_id。發現階段結束後,就進入標準的ppp會話階段。

當乙個主機想開始乙個pppoe會話,它必須首先進行發現階段,以識別局端的乙太網mac位址,並建立乙個pppoesession_id。在發現階段,基於網路的拓撲,主機可以發現多個接入集中器,然後允許使用者選擇乙個。當發現階段成功完成,主機和選擇的接入集中器都有了他們在乙太網上建立ppp連線的資訊。直到ppp會話建立,發現階段一直保持無狀態的client/server(客戶/伺服器)模式。一旦ppp會話建立,主機和接入集中器都必須為ppp虛介面分配資源。

pppoe協議會話的發現和會話兩個階段具體程序如下:

1. 發現(discovery)階段

在發現(discovery)階段中使用者主機以廣播方式尋找所連線的所有接入集線器(或交換機),並獲得其乙太網mac位址。然後選擇需要連線的主機,並確定所要建立的ppp會話識別標號。發現階段有四個步驟,當此階段完成,通訊的兩端都知道pppoesession_id和對端的乙太網位址,他們一起唯一定義pppoe會話。這四個步驟如下:

(1)主機廣播乙個發起分組(padi),分組的目的位址為乙太網的廣播位址0xffffffffffff,code(**)字段值為0x09,session_id(會話id)字段值為0x0000。padi包必須至少包含乙個服務名稱型別的標籤(標籤型別字段值為0x0101),向接入集中器提出所要求提供的服務。

(2)接入集中器收到在服務範圍內的padi包分組,傳送pppoe有效發現提供包(pado)分組,以響應請求。其中code字段值為0x07 ,session_id字段值仍為0x0000。pado分組必須包含乙個接入集中器名稱型別的標籤(標籤型別字段值為0x0102),以及乙個,或多個服務名稱型別標籤,表明可向主機提供的服務種類。

(3)主機在可能收到的多個pado分組中選擇乙個合適的pado分組,然後向所選擇的接入集中器傳送pppoe有效發現請求分組(padr)。其中code欄位為0x19 ,session_id字段值仍為0x0000。padr分組必須包含乙個服務名稱型別標籤,確定向接入集線器(或交換機)請求的服務種類。當主機在指定的時間內沒有接收到pado,它應該重新傳送它的padi分組,並且加倍等待時間,這個過程會被重複期望的次數。

(4)接入集中器收到padr包後準備開始ppp會話,它傳送乙個pppoe有效發現會話確認(pads)分組。其中code字段值為0x65 ,session_id字段值為接入集中器所產生的乙個惟一的pppoe會話標識號碼。pads分組也必須包含乙個接入集中器名稱型別的標籤確認向主機提供的服務。當主機收到pads包確認後,雙方就進入ppp會話階段。

【注意】如果主機正在等待接收pads分組,應該使用具有主機重新傳送padr的相似超時機制。在重試指定的次數後,主機應該重新傳送padi分組。

2. ppp會話階段

使用者主機與接入集中器根據在發現階段所協商的ppp會話連線引數進行ppp會話。一旦pppoe會話開始,ppp資料就可以以任何其它的ppp封裝形式傳送。所有的乙太網幀都是單播的。pppoe會話的session_id一定不能改變,並且必須是發現階段分配的值。

pppoe還有乙個padt分組,它可以在會話建立後的任何時候傳送,來終止pppoe會話,也就是會話釋放。它可以由主機或者接入集中器傳送。當對方接收到乙個padt分組,就不再允許使用這個會話來傳送ppp業務。padt包不需要任何標籤,其code字段值為0xa7 ,session_id字段值為需要終止的ppp會話的會話標識號碼。在傳送或接收padt後,即使正常的ppp終止分組也不必傳送。ppp對端應該使用ppp協議自身來終止pppoe會話,但是當ppp不能使用時,可以使用padt。

以上各個階段的會話流程可用圖4-5描述。

圖4-5 pppoe會話建立流程

對應於上節介紹的兩個pppoe協議會話的兩個階段,pppoe幀格式也包括兩種型別:發現階段的乙太網幀中的型別字段值為0x8863;ppp會話階段的乙太網幀中的型別字段值為0x8864,均已得到ieee的認可。pppoe分組幀結構如圖4-6所示。

圖4-6 pppoe幀結構

pppoe分組中的版本(ver) 欄位和型別(type)字段長度均為4位元,在當前版本pppoe建議中這兩個字段值都固定為0x1。**(code)字段長度為8位元,根據兩階段中各種資料報的不同功能而值不同。在ppp會話階段code字段值為0x00,發現階段中的各步驟中的各種資料分組格式參見前面介紹。版本標識號碼(session_id)字段長度為16位元,在乙個給定的ppp會話過程中它的值是固定不變的,其中值0xffffff為保留值。長度(length)欄位為16比特長,指示pppoe淨荷長度。發現階段pppoe載荷可以為空或由多個標記(tag)組成,每個標記都是tlv(型別-長度-值)的結構;ppp會話階段pppoe載荷為標準的點對點協議包。

PPPoE工作原理與幀格式

pppoe 協議的工作流程包含發現和會話兩個階段,發現階段是無狀態的,目的是獲得 pppoe 終結端 在局端的 adsl 裝置上 的乙太網 mac位址,並建立乙個唯一的 pppoesession id 發現階段結束後,就進入標準的 ppp會話階段。當乙個主機想開始乙個 pppoe 會話,它必須首先進...

CAN2 0A幀格式 與 LIN幀格式 簡單說明

各欄位解釋 sof 幀開始標誌位元是乙個顯性位元 0 由乙個或多個準備傳送幀的節點傳輸。sof標誌著幀的開始 或仲裁傳送幀的權利 並用於 硬同步 匯流排上的裝置。只有在開始傳送前匯流排上至少有11個處於隱性狀態的連續位元時,傳送方才能開始傳送幀。仲裁字段 仲裁字段包含12位元,前11位元被稱為仲裁i...

雜湊工作原理與應用

參考 我們使用乙個下標範圍比較大的陣列來儲存元素。可以設計乙個函式 雜湊函式,也叫做雜湊函式 使得每個元素的關鍵字都與乙個函式值 即陣列下標 相對應,於是用這個陣列單元來儲存這個元素 也可以簡單的理解為,按照關鍵字為每一 個元素 分類 然後將這個元素儲存在相應 類 所對應的地方。但是,不能夠保證每個...