PPPoE拔号的发现阶段(Discovery):
PPPoE的发现阶段一共分为4步。
分别是:
PADI(PPPoE Active Discovery Initiation)
PADO(PPPoE Active Discovery Offer)
PADR(PPPoE Active Discovery Request)
PADS(PPPoE Active Discovery Session-confirmation)。
当完成这四步之后,用户主机(PC)和访问集中器(AC)双方就能获知对方唯一的MAC地址和唯一的会话ID。
MAC地址和会话ID 共同定义了唯一的PPPoE会话。
PPPoE Discovery的以太网类型域为0x8863。
1. PADI:
PPPoE发现阶段的第一步。
用户主机以广播的方式发送PADI数报包,请求建立链路。Code域置为0x09,会话ID域必须置为0x0000。
2. PADO:
PPPoE发现阶段的第二步。
访问集中器(AC)以单播的方式发送一个PADO数据包对主机的请求做出应答。
目的地址为主机的MAC地址,Code域置为0x07,会话ID域必须置为0x0000。
PADO数据包必须包含一个类型为AC-Name的Tag(包含了访问集中器的名字)。
3. PADR:
PPPoE发现阶段的第三步。
因为PADI数据包是广播的,所以主机可能收到不止一个的PADO报文。
主机在收到报文后,会根据AC-Name或者PADO所提供的服务来选择一个AC,然后主机向选中的AC单播一个PADR数据包。
目的地址域为AC的MAC地址,Code域置为0x19,会话ID域必须置为0x0000。
PADR报文必须且只能包含一个Tag_Type为Service-Name的Tag,表明主机请求的服务。
4. PADS:
PPPoE发现阶段最后一步。
当AC在收到PADR报文时,就准备开始一个PPP的会话了。
它为PPPoE会话创建一个唯一的会话ID并用单播一个PADS数据包来给主机做出响应。
目的地址域为主机的MAC地址,Code域置为0x65,会话ID必须设置为所创建好的会话ID。
参考:
http://www.baike.com/wiki/PPPOE