pppoe原理
2021-06-09, updated 2021-09-12
PPP相比于以太网有很多的优点,我们可以让以太网拥有以太网的功能,所以PPPoE利用以太网将大量主机组成网络,通过一个远端接入设备连入因特网,并运用PPP协议对接入的每个主机进行控制,具有适用范围广、安全性高、计费方便的特点。(主要是可以方便计费管理,在以太网局域网中,我们更加常用802.1x进行认证计费,但是在运营商的网络环境中,更多应用的是PPPoE)。
在PC和运营商的路由器之间建立PPPoE会话,每一个PC建立一个PPPoE会话。每个PC都是一个PPPoE Client,单独使用一个帐号,方便运营商对用户进行计费和控制。PC上必须安装PPPoE客户端拨号软件。
PPPoE会话建立过程
类比DHCP来进行记忆
PPPoE可分为三个阶段,即Discovery阶段、Session阶段和Terminate阶段。
Discovery阶段
- PPPoE Client广播发送一个PADI(PPPoE Active Discovery Initial)报文,在此报文中包含PPPoE Client想要得到的服务类型信息。
- 所有的PPPoE Server收到PADI报文之后,将其中请求的服务与自己能够提供的服务进行比较,如果可以提供,则单播回复一个PADO(PPPoE Active Discovery Offer)报文。
- 根据网络的拓扑结构,PPPoE Client可能收到多个PPPoE Server发送的PADO报文,PPPoE Client选择最先收到的PADO报文对应的PPPoE Server做为自己的PPPoE Server,并单播发送一个PADR(PPPoE Active Discovery Request)报文。
- PPPoE Server产生一个唯一的会话ID(Session ID),标识和PPPoE Client的这个会话,通过发送一个PADS(PPPoE Active Discovery Session-confirmation)报文把会话ID发送给PPPoE Client,会话建立成功后便进入PPPoE Session阶段。
- 完成之后通信双方都会知道PPPoE的Session_ID以及对方以太网地址,它们共同确定了唯一的PPPoE Session。
Seesion阶段
- PPPoE Session上的PPP协商和普通的PPP协商方式一致。
- PPPoE Session的PPP协商成功后,就可以承载PPP数据报文。
- 在PPPoE Session阶段所有的以太网数据包都是单播发送的。
Terminate阶段
- 进入PPPoE Session阶段后,PPPoE Client和PPPoE Server都可以通过发送PADT报文的方式来结束PPPoE连接。PADT数据包可以在会话建立以后的任意时刻单播发送。在发送或接收到PADT后,就不允许再使用该会话发送PPP流量了。
参考链接
https://blog.csdn.net/tushanpeipei/article/details/111199497