5 PPPOE协议 联系客服

发布时间 : 星期五 文章5 PPPOE协议更新完毕开始阅读6ce6824ff7ec4afe04a1df23

第一章 PPPOE协议

1.1.1 定义

通过PPPOE,在一个共享的以太网上的多个主机,可以通过一个或多个简单的桥接入设备,与远程接入集中器进行多个PPP会话。使用这种模型,每个主机使用它自己的PPP协议栈,并且提供给用户一个熟悉的用户接口。接入控制、计费和服务类型能够基于每用户,而不是每站点来处理。PPPOE包含发现和PPP会话两个阶段,发现阶段是无状态的Client/Server模式,目的是获得PPPOE终结端的以太网MAC地址,并建立一个唯一的PPPOE SESSION_ID。发现阶段结束后,就进入标准的PPP会话阶段。

1.1.2 协议基本框架

PPPOE协议参照RFC2516。PPPOE实现PPP帧在Ethernet上的适配,并提供Ethernet上的PPP连接。图1和图2分别是以太网上的PPPOE协议栈和AAL5上的PPPOE协议栈。

IP PPP PPPOE Ethernet IP PPP PPPOE Ethernet 图1 以太网上的PPPOE协议栈

MPOA(1483) AAL5 SAR ATM 图2 AAL5上的PPPOE协议栈

1.1.3 PPPOE连接示意图

图3显示了典型的PPPOE的连接方式。

Bridge Host Access Concentrator

图3 典型的PPPOE的连接示意图

ATM/Ethernet

1.1.4 PPPOE通信流程

PPPOE有两个不同的阶段:发现阶段和PPP会话阶段。当一个主机想开始一个PPPOE会话,它必须首先进行发现阶段以识别对端的以太网MAC地址,并建立一个PPPOE SESSION_ID。在发现阶段,基于网络的拓扑,主机可以发现多个接入集中器。发现阶段允许主机发现所有的接入集中器,然后选择一个。当发现阶段成功完成,主机和选择的接入集中器都有了他们在以太网上建立PPP连接的信息。直到PPP会话建立,发现阶段一直保持无状态的状态。一旦PPP会话建立,主机和接入集中器都必须为PPP虚接口分配资源。图4显示了PPPOE通信流程。

1.1.4.1 发现阶段

发现阶段有四个步骤,当此阶段完成,通信的两端都知道PPPOE SESSION_ID和对端的以太网地址,他们一起唯一定义PPPOE会话。这些步骤包括:主机广播一个发起分组(PADI),一个或多个接入集中器发送给予分组(PADO),主机发送单播会话请求分组(PADR),选择的接入集中器发送一个确认分组(PADS)。当主机接收到确认分组,它可以开始进行PPP会话阶段。当接入集中器发送出确认分组,它可以开始进行PPP会话阶段。

当主机在指定的时间内没有接收到PADO,它应该重新发送它的PADI分组,并且加倍等待时间,这个过程会被重复期望的次数。如果主机正在等待接收PADS,应该使用具有主机重新发送PADR的相似超时机制。在重试指定的次数后,主机应该重新发送PADI分组。

PPPOE还有一个PADT分组,它可以在会话建立后的任何时候发送,来终止PPPOE会话。

Host PADI PADO PADR PADS PPP Data PADT 图4 PPPOE通信流程

AC 它可以由主机或者接入集中器发送。当接收到一个PADT,不再允许使用这个会话来发送PPP业务。在发送或接收PADT后,即使正常的PPP终止分组也不必发送。PPP对端应该使用PPP协议自身来终止PPPOE会话,但是当PPP不能使用时,可以使用PADT。

4。2 PPP会话阶段

一旦PPPOE会话开始,PPP数据就可以以任何其它的PPP封装形式发送。所有的以太网帧都是单播的。PPPOE会话的 SESSION_ID一定不能改变,并且必须是发现阶段分配的值。

1.2 负荷

拟态网帧格式如下:

DESTINATION_ADDR域包含了唯一的拟态网目标地址或拟态网广播地址0xffffffff。对于发现协议包,该域的值既可以是单播地址,也可以是广播地址。而对于PPP会话帧,该域必须是从发现过程中获得的对端的单播地址。 SOURCE_ADDR域必须包含源设备的拟态网MAC地址。

ETHER_TYPE既可以设置为0x8863,也可以设置为0x8864(PPP会话阶段)。

PPPOE的拟态网负荷如下:

VER 域(4比特),对RFC2516,必须设置为0x1; TYPE域(4比特),对RFC2516,必须设置为0x1; CODE域(8比特),PPPOE包类型; SESSION_ID域(16比特),网络顺序无符号的值。该值在给定的PPP会话中为常量,它与拟态网源地址、目的地址一起定义了一个PPP会话。0xffff被保留,不能使用;

LENGTH域(16比特),网络顺序,指明PPPOE负荷的长度。它不包括拟态网和PPPOE头的长度。

1.3 发现阶段

发现阶段分为四个阶段,当该过程完成时,两端都获得PPPOE的会话ID和对端的拟态网地址,两者结合定义了唯一的PPPOE会话。步骤如下:

主机广播初始化包;

一个或多个访问集中器发送Offer包; 主机发送单播会话请求包;

被选中的访问集中器发送确认包。

HOST Access Concentrator Initiation(PADI) Offer(PADO) Request(PADR) Confirmation(PADS) Access Concentrator Access Concentrator 当主机收到Confirmation包后,进入PPPOE会话阶段。而访问集中器在发送Confirmation包后进入PPPOE会话阶段。

所有发现帧的ETHER_TYPE域都设置为0x8863;

PPPOE负荷包括0或多个TAGs。一个TAG是一个TLV(Type-Length-Value)结构,定义如下:

TAG_TYPE域(16比特),网络顺序,TAG类型;