数字用户线路DSL(Digital Subscriber Line)是以电话线为传输介质的传输技术,前比较流行的宽带接入方式为ADSL , ADSL是非对称DSL技术,使用的是PPPoE( PPP over Ethernet )协议。PPPoE协议通过在以太网。上提供点到点的连接,建立PPP会话,使得以太网中的主机能够连接到远端的宽带接入服务器上。PPPoE具有适用范围广、安全性高、计费方便等特点。
DSL是一-种利用现有电话网络实现数据通信的宽带技术。在使用DSL接入网络时,用户侧会安装调制解调器,然后通过现有的电话线与数字用户线路接入复用器( DSLAM )相连。DSLAM是各种DSL系统的局端设备,属于最后一公里接入设备。然后, DSLAM通过高速ATM网络或者以太网将用户的数据流量转发给宽带远程接入服务器( BRAS )。BRAS是面向宽带网络应用的接入网关,位于骨干网的边缘层。
运营商希望通过同一台接入设备来连接远程的多个主机,同时接入设备能够提供访问控制和计费功能。在众多的接入技术中,把多个主机连接到接入设备的最经济的方法就是以太网,而PPP协议可以提供良好的访问控制和计费功能,于是产生了在以太网上传输PPP报文的技术,即PPPoE。
PPPoE利用以太网将大量主机组成网络,通过一- 个远端接入设备连入因特网,并运用PPP协议对接入的每个主机进行控制,具有适用范围广、安全性高、计费方便的特点。PPPoE技术解决了用户上网收费等实际应用问题,得到了宽带接入运营商的认可并被广泛应用。
PPPoE报文是使用Ethernet格式进行封装的, Ethernet中各字段解释如下:
PPPoE字段中的各个字段解释如下:
在发现阶段, PPPoE客户端在本地以太网中广播一个PADI报文 ,此PADI报文中包含了客户端需要的服务信息。在PADI报文中,目的MAC地址是一-个广播地址, Code字段为0x09 ,Session ID字段为0x0000。所有PPPoE服务器收到PADI报文之后,会将报文中所请求的服务与自己能够提供的服务进行比较。
所有的PPPoE服务器在收到PADI报文之后,将客户端请求的服务与自己能够提供的服务进行比较,如果可以提供,则单播回复PADO报文。
如果服务器可以提供客户端请求的服务,就会回复一个PADO报文。客户端( RTA)可能会收到多个PPPoE服务器发送的P ADO报文。在PADO报文中,目的地址是发送PADI报文的客户端MAC地址, Code字段为0x07 , Session ID字段为0x0000.
PPPoE客户端选择最先收到的PADO报文对应的PPPoE服务器,并单播发送一个PADR报文。
因为PPPoE客户端是以广播的形式发送PADI报文,所以客户端可能会收到多个PADO报文。在接收到的所有PADO报文中, PPPoE客户端选择最先收到的PADO报文对应的PPPoE服务器,并发送一个PADR报文给这个服务器。在PADR报文中,目的地址是选中的服务器的MAC地址, Code字段为0x19 , Session ID字段为0x0000。
PPPoE服务器生成唯- -的PPPoE Session ID ,并发送PADS报文给客户端,会话建立成功。
PPPoE服务器收到PADR报文后,会生成一-个唯一的Session ID来标识和PPPoE客户端的会话,并通过一个PADS报文把Session ID发送给PPPoE客户端。在PADS报文中,目的地址是PPPoE客户端的MAC地址, Code字段为0x65 , Session ID字段是PPPoE服务器为本PPPoE会话产生的Session ID。会话建立成功后, PPPoE客户端和服务器进入PPPoE会话阶段。
PPPoE会话上的PPP协商和普通的PPP协商方式-致,分为LCP、认证、NCP三个阶段。
PPPoE会话的PPP协商成功后,就可以传输PPP数据
PPPoE会话阶段可分为两部分: PPP协商阶段和PPP报文传输阶段。
PPPoE Session.上的PPP协商和普通的PPP协商方式一致,分为LCP、认证、NCP三个阶段。
LCP阶段主要完成建立、配置和检测数据链路连接。LCP协商成功后 ,开始进行认证,认证协议类型由LCP协商结果决定。认证成功后,
PPP进入NCP阶段,NCP是一个协议族,用于配置不同的网络层协议,常用的是IP控制协议(IPCP ) ,它负责配置用户的IP地址和DNS服务器地址等。
PPPoE Session的PPP协商成功后,就可以承载PPP数据报文。在这- -阶段传输的数据包中必须包含在发现阶段确定的Session ID并保持不变。
PADT报文用于通知对端PPPoE会话结束
当PPPOE客户端希望关闭连接时,可以向PPPOE服务器端发送一个PADT报文。 同样,如果PPPOE服务器端希望关闭连接时,也可以向PPPOE客户端发送一个PADT报文 ,此报文用于关闭连接。在PADT报文中,目的MAC地址为单播地址, Session ID为希望关闭的连接的Session ID。一旦收到一个PADT报文之后,连接随即关闭。