ppp
發現階段
初始化pppoe
會話時,
cpe路由器必須首先執行發現階段,以識別與其建立對等關係的裝置的
mac位址,建立乙個
pppoe session_id
。發現程序實質上是乙個客戶端
/伺服器關係,在發現階段,路由器會發現服務提供商的接入集中器。
cpe路由器可以在發現階段找到所有可用匯聚裝置,並選擇其中的乙個作為接入集中器。該操作完成後,
cpe路由器和選定的接入集中器都將獲取有關在它們之間建立連線關係所需的各種資訊。 在
ppp會話建立之前,發現階段一直都處於無狀態,
ppp會話建立之後,
cpe路由器和接入集中器都需要為
ppp虛介面分配資源,目前的接入集中器可以完成匯聚路由器的功能,匯聚路由器上的虛介面作為
cpe路由器的預設閘道器。
發現階段主要包括以下
4個基本步驟。 1
.pppoe
客戶端傳送請求服務的
padi
(pppoe active discovery initiation
,pppoe
啟用發現初始化)包,目的
mac位址被設定為組播位址。 2
.匯聚路由器回送描述了所提供服務的
pado
(pppoe active discovery offer
,pppoe
啟用發現提供)包,目的
mac位址為源客戶端的單播位址。 3
.pppoe
客戶端向匯聚路由器傳送
padr
(pppoe active discovery request
,pppoe
啟用發現請求)包,該請求被轉入會話階段。 4
.匯聚路由器向客戶端傳送乙個單播
pppoe
啟用發現會話證實訊息,分配乙個
session_id
,並確認進入會話階段。
正如所期望的那樣,會話發生在乙太網幀的淨荷之內,乙太網幀是
lan環境下的典型幀,為便於回顧和進一步討論,圖
4-6給出了乙太網幀結構。
發現階段的目的
mac位址是
ff.ff.ff.ff.ff.ff
,屬於乙太網廣播位址,而源
mac位址則為
cpe路由器的位址,
ether_type
欄位被設定為
0x8863
(發現階段的
pppoe
控制幀)或
0x8864
(ppp
會話階段的
pppoe
資料幀)。
乙太網幀淨荷中是乙個完整的
pppoe
結構,pppoe
需要使用位於子頭部中的額外資訊,具體字段資訊如下:
l 4位元
ver欄位,對於現有版本的
pppoe
規範來說必須被設定為
0x1;
l 4位元
type
字段(請注意不要與乙太網頭部中的
ether_type
欄位相混淆),對於現有版本的
pppoe
規範來說必須被設定為
0x1;
l 8位元
code
字段,在發現階段該字段值在不同的發現程序時期是可變的,而會話階段
pppoe code
字段必須被設定為
0x00;
l 16
位元session_id
字段,該字段值在網路位元組序列中未予分配,其值在不同的發現程序時期是可變的,但是對某個給定的
ppp會話來說,該字段值是固定的(必須使用發現階段分配的值),並定義乙個
ppp會話以及乙太網
source_add
和destination_addr
。值0xffff
被預留將來使用,現在不能使用;
l 16位元
length
字段,在網路位元組序列中,該值表示
pppoe
淨荷的長度,但不包括乙太網頭部或
pppoe
頭部的長度。
在發現階段,
code
和session_id
值會隨著不同時間的變化而變化,發現階段包括初始化、提供、請求、會話證實以及終結等操作。但在會話階段,這兩個值都保持不變。
現階段學習計畫
資料結構與演算法 c python 程式設計之法 資料結構中各種樹 技術面試寶典 常用資料結構及複雜度 演算法複雜度速查表 15道使用頻率極高的基礎演算法題 常用的十大程式設計演算法介紹 面試中的排序演算法總結 資料庫 資料庫的最簡單實現 資料庫的原理 儲存過程簡介 漫談資料庫索引 mysql 索引...
DP現階段優化
長度 n 逆序對為 k 的排列有幾鍋?k 200 k 2000 排列計數問題經典套路 滿足排列套路,把1 n往後查,dp i j 前 i 個數 產生 j 的逆序對的方案數,因為新插入的數是更大的所以,分別考慮插在最後邊,次後邊.dp i 1 j x dp i j x belong 0,1,2,i 1...
StoneAgeDict現階段設計小結
今天和zy結隊程式設計了一天,討論了很多問題。主要是圍繞詞庫的開放式 實時的基本特性討論的。下面是對這兩個特性的基本描述 註冊使用者可以在查詢出來的詞彙中提交自己的詞彙解釋。這個解釋將被遞交到詞庫審核組,由審核組的工作人員審核這個提交。例如,使用者daniel查詢了beyond這個詞彙,但是對這個詞...