-
1 课程内容
-
2 随堂测验
-
3 课程资料
PPPoE(以太网上的点对点协议 Point-to-Point Protocol Over Ethernet),定义了在以太网环境中使用PPP的规范。PPP主要用于城域以太网以及个人用户基于以太网连接ADSL接入设备的场合。PPPoE同时融合了以太网和PPP的优点。它工作在OSI的数据链路层,PPPOE协议提供了在广播式的网络(如以太网)中多台主机连接到远端的访问集中器(我们对目前能完成上述功能的设备为宽带接入服务器)上的一种标准。
modem接入技术面临一些相互矛盾的目标,既要通过同一个用户前置接入设备连接远程的多个用户主机,又要提供类似拨号一样的接入控制,计费等功能,而且要尽可能地减少用户的配置操作。PPPOE的目标就是解决上述问题。
PPPoE协议流程包含两个阶段:发现(Discovery Stage)和PPP会话(Session Stage)。
发现阶段包含的四个步骤:
1、发起PADI(PPPoE Active Discovery Initiation):客户端通过广播请求以获取可用的服务器。
2、提供PADO(PPPoE ActiveDiscovery Offer):在收到请求后,若服务器可以提供服务,则返回此报文。
3、请求PADR(PPPoE ActiveDiscovery Request,):若客户端收到来自多个服务器的应答,则必须从中选择一个并向服务器发出请求。
4、确认PADS(PPPoE ActiveDiscovery Session-confirmation):收到请求后的服务器项客户端返回确认,从而建立PPP连接及会话。
会话阶段:
1、用户主机与接入集中器根据在发现阶段所协商的PPP会话连接参数进行PPP会话。一旦PPPoE会话开始,PPP数据就可以以任何其他的PPP封装形式发送。所有的以太网帧都是单播的。PPPoE会话的SESSION-ID一定不能改变,并且必须是发现阶段分配的值。
2、终止连接和会话PADT(PPPoE Active Discovery Termination),一旦发送或收到该报文,立即停止所有与该会话相关的数据传递操作。正常情况下,会话阶段的结束是由PPP协议控制完成的,但在PPPOE中定义了PADT 包用来结束会话,主机或者访问集中器可以在PPP会话开始后的任何时候通过发送这个数据包来结束会话。
PPPoE报文作为以太网帧数据区封装于以太网帧中。
■ 版本(VER)和类型(TYPE):各为4比特,在当前版本PPPoE建议中这两个字段值都固定为0x01。
■ 代码(CODE):8比特,根据两阶段中各种数据包的不同功能而值不同。在PPP会话阶段CODE字段值为0x00,发现阶段中的PADI为0x09,PADO为0x07,PADR为0x19,PADS为0x65,PADT为0xA7。
■ 版本标识号码(SESSION_ID):16比特,在一个给定的PPP会话过程中它的值是固定不变的,其中值0xffffff为保留值。
■ 长度(LENGTH):16比特,指示PPPoE净荷长度。
■ 净载荷:发现阶段PPPoE载荷可以为空或由多个标记(TAG)组成,每个标记都是TLV(类型-长度-值)的结构;PPP会话阶段PPPoE载荷为标准的PPP协议数据报文。
若以太网帧封装的是发现阶段的报文,则帧类型为0x8863,否则设置为0x8864。
◆ PPPOE发现阶段数据报文分类:
PADI(PPPOE发现初始报文):目标地址为广播地址0xffffffff,源地址为主机的以太网地址。ETHER_TYPE值为0x8863,码值为0x09,SESSION-ID为0x0000。TAG_TYPE:有且仅有一个Service-Name表明主机请求的服务。任何数量的其他TAG_TYPE。 PADI报文长度不能超过1484个字节,为Relay-Session-IdTAG留空间。
PADO(PPPOE发现提供报文):目标地址为主机以太网地址。源地址为接入集中器的以太网地址。ETHER_TYPE值为0x8863,码值为0x07,SESSION-ID为0x0000,TAG_TYPE:必须有一个含有接入集中器名字的AC-Name TAG,必须有一个与收到的PADI相同的Service-Name TAG和任意数量的其他Service-Name TAG表明集中器可以提供的服务。
PADR(PPPOE发现请求报文):目标地址为接入集中器的以太网地址,源地址为主机的以太网地址。ETHER_TYPE值为0x8863,码值为0x19,SESSION-ID为0x0000,TAG_TYPE:必须有一个类型为Service-Name的TAG向集中器指明请求的服务,可以有任意数量的其他TAG。
PADS(PPPOE发现会话确认报文):目标地址为主机的以太网地址,源地址为接入集中器的以太网地址。ETHER_TYPE值为0x8863,码值为0x65,SESSION-ID为集中器指定的唯一的标识一个PPPOE会话的值,TAG_ TYPE:包含一个类型为Service-Name的TAG,表明集中器提供给这个会话的服务,可以包含任意数量的其他TAG。
PADT(PPPOE发现终止报文):这个数据包可以在会话建立起来之后的任何时间由主机或集中器发出。目的地址为单一的以太网地址。 ETHER_TYPE值为0x8863,码值为0xa7,SESSION-ID为要终止的会话的SESSION-ID。不要求有TAG。
PPPOE会话阶段数据报文:一旦PPPOE会话建立起来之后,主机与接入器之间就开始依据PPP协议传送PPP数据,所有的以太网帧都是单一地址的。此时,ETHER_TYPE值为0x8864,码值为0x00,SESSION-ID在整个会话过程中保持不变。PPPOE有效负载域里包含一个PPP数据包。其格式如下图所示。
PPPoA(PPP over ATM)协议简称,采用PPPoA的接入技术,由PC终端直接发起PPP呼叫,用户侧ATM25网卡在收到上层的PPP包后,根据RFC2364封装标准对 PPP包进行AAL5层封装处理形成ATM信元流。
参考文献:
1、姜金梁,郭锐锋,李家霁.PPPoE协议及客户端软件实现方法的研究[J].小型微型计算机系统,2002,23(7):821-823.
2、陈武茂,张世发,谢卫平.A method for implementing PPPoA to PPPoE conversion in network access equipment:CN,CN 1571392 A[P].2005.