PPPoE协议详解

PPPoE协议详解
  
PPPoE协议的工作流程包含发现和会话两个阶段,发现阶段是无状态的,目的是获得PPPoE终结端(在局端的ADSL设备上)的以太网MAC地址,并建立一个惟一的PPPoESESSION-ID。发现阶段结束后,就进入标准的PPP会话阶段。

  当一个主机想开始一个PPPoE会话,它必须首先进行发现阶段,以识别局端的以太网MAC地址,并建立一个PPPoESESSION-ID。在发现阶段,基于网络的拓扑,主机可以发现多个接入集中器,然后允许用户选择一个。当发现阶段成功完成,主机和选择的接入集中器都有了他们在以太网上建立PPP连接的信息。直到PPP会话建立,发现阶段一直保持无状态的Client/Server(客户/服务器)模式。一旦PPP会话建立,主机和接入集中器都必须为PPP虚接口分配资源。

  PPPoE协议会话的发现和会话两个阶段具体进程如下。议简介
与传统的接入方式相比, pppoe具有较高的性能价格比,它在包括小区组网建设等一系列应用中被广泛采用,目前流行的宽带接入方式adsl就使用了pppoe协议。
   modem接入技术面临一些相互矛盾的目标,既要通过同一个用户前置接入设备连接远程的多个用户主机,又要提供类似拨号一样的接入控制,计费等功能,而且要尽可能地减少用户的配置操作。
   PPPOE的目标就是解决上述问题,1998年后期问世的以太网上点对点协议(PPPoverEthernet)技术是由Redback网络公司、客户端软件开发商RouterWare公司以及Worldcom子公司UUNET Technologies公司在IETFRFC的在发现(Discovery)阶段中用户主机以广播方式寻找所连接的所有接入集中器(或交换机),并获得其以太网MAC地址。然后选择需要连接的主机,并确定所要建立的PPP会话标识号码。发现阶段有4个步骤,当此阶段完成,通信的两端都知道PPPoESESSION-ID和对端的以太网地址,他们一起惟一定义PPPoE会话。这4个步骤如下。基础上联合开发的。通过把最经济的局域网技术-以太网和点对点协议的可扩展性及管理控制功能结合在一起,网络服务提供商和电信运营商便可利用可靠和熟悉的技术来加速部署高速互联网业务。它使服务提供商在通过数字用户线、电缆调制解调器或无线连接等方式,提供支持多用户的宽带接入服务时更加简便易行。同时该技术亦简化了最终用户在选择这些服务时的配置操作。
   PPPoE:以太网上的 PPP
  ( PPPoE:point to point protocal over Ethernet)
  在 以太网上承载 PPP协议(点到点连接协议),它利用以太网将大量主机组成网络,通过一个远端接入设备连入因特网,并对接入的每一个主机实现控制。计费功能,极高的性能价格比使pppoe在包括小区组网建设等一系列应用中广泛采用。

PPPoE协议工作原理
   PPPoE协议的工作流程包含发现和会话两个阶段,发现阶段是无状态的,目的是获得PPPoE终结端(在局端的ADSL设备上)的以太网MAC地址,并建立一个惟一的PPPoESESSION-ID。发现阶段结束后,就进入标准的PPP会话阶段。
  当一个主机想开始一个 PPPoE会话,它必须首先进行发现阶段,以识别局端的以太网MAC地址,并建立一个PPPoESESSION-ID。在发现阶段,基于网络的拓扑,主机可以发现多个接入集中器,然后允许用户选择一个。当发现阶段成功完成,主机和选择的接入集中器都有了他们在以太网上建立PPP连接的信息。直到PPP会话建立,发现阶段一直保持无状态的Client/Server(客户/服务器)模式。一旦PPP会话建立,主机和接入集中器都必须为PPP虚接口分配资源。
   PPPoE协议会话的发现和会话两个阶段具体进程如下。


一、发现阶段
PPPoE的发现阶段一共分为4步,分别 是:PADI(PPPoE Active Discovery Initiation),PADO(PPPoE Active Discovery Offer),PADR(PPPoE Active Discovery Request),PADS(PPPoE Active DiscoverySession- confirmation)。当完成这四步之后,用户主机(PC)和访问集中器(AC)双方就能获知对方唯一的MAC地址和唯一的会话ID。MAC地址和 会话ID共同定义了唯一的PPPoE会话。PPPoE Discovery的以太网类型域为0x8863。

1.主机广播发起分组(PADI),分组的目的地址为以太网的广播地址0×ffffffffffff,CODE(代码)字段值为0×09,SESSION-ID(会话ID)字段值为0×0000。PADI分组必须至少包含一个服务名称类型的标签(标签类型字段值为0×0c00000016000000),向接入集中器提出所要求提供的服务。

PPPoE协议详解_第1张图片


2.接入集中器收到在服务范围内的PADI分组,发送PPPoE有效发现提供包(PADO)分组,以响应请求。其中CODE字段值为0×07,SESSION-ID字段值仍为0×0000。PADO分组必须包含一个接入集中器名称类型的标签(标签类型字段值为AEO8RNVUR6OD5Z),以及一个或多个服务名称类型标签,表明可向主机提供的服务种类。

PPPoE协议详解_第2张图片


3. 主机在可能收到的多个PADO分组中选择一个合适的PADO分组,然后向所选择的接入集中器发送PPPoE有效发现请求分组(PADR)。其中CODE字段为0×19,SESSION_ID字段值仍为0×0000。PADR分组必须包含一个服务名称类型标签(0×0c00000017000000),确定向接入集线器(或交换机)请求的服务种类。当主机在指定的时间内没有接收到PADO,它应该重新发送它的PADI分组,并且加倍等待时间,这个过程会被重复期望的次数。

PPPoE协议详解_第3张图片


4. 接入集中器收到PADR分组后准备开始PPP会话,它发送一个PPPoE有效发现会话确认PADS分组。其中CODE字段值为0×65,SESSION-ID字段值为接入集中器所产生的一个惟一的PPPoE会话标识号码(0x0070)。PADS分组也必须包含一个接入集中器名称类型的标签以确认向主机提供的服务。当主机收到PADS分组确认后,双方就进入PPP会话阶段。

PPPoE协议详解_第4张图片


注 意:
1. Host-Uniq  
在PPPoE发现阶段的四个步骤中,PPPoE头的Payload中始终含有这样一个TLV:
Tag_Type = A08A0010 (表示为Host-Uniq)
Tag_Length = 8 (8个字节的长度)
Tag_Value = 0500000008000000
Host-Uniq为主机唯一标识,类似于PPP数据报文中的标识域,主要是用来匹配发送和接收端的。因为对于 广播式的网络中会同时存在很多个PPPoE的数据报文。

2. AC-Cookie()
PADO和PADR数据包里面都含有 Tag_Type为AC-Cookie的Tag,16Bytes。Ac-Cookie是为了防止拒绝服务攻击(Denial of Service,简称DOS)。访问集中器(AC)能够根据PADR的源地址来重新产生唯一的Tag_Value。使用这种方法,AC可以确保PADI的 源地址是可达的,并对该地址的并行会话数进行限制。

PPPoE协议详解_第5张图片

二.PPP会话阶段

  用户主机与接入集中器根据在发现阶段所协商的 PPP会话连接参数进行PPP会话。一旦PPPoE会话开始,PPP数据就可以以任何其他的PPP封装形式发送。所有的以太网帧都是单播的。PPPoE会话的SESSION-ID一定不能改变,并且必须是发现阶段分配的值(0x0070)。
PPPoE协议详解_第6张图片

   PPPoE还有一个PADT分组,它可以在会话建立后的任何时候发送,来终止PPPoE会话,也就是会话释放。它可以由主机或者接入集中器发送。当对方接收到一个PADT分组,就不再允许使用这个会话来发送PPP业务。PADT分组不需要任何标签,其CODE字段值为0×a7,SESSION-ID字段值为需要终止的PPP会话的会话标识号码。在发送或接收PADT后,即使正常的PPP终止分组也不必发送。PPP对端应该使用PPP协议自身来终止PPPoE会话,但是当PPP不能使用时,可以使用PADT。
  以上各个阶段的会话流程可用图 4描述。

PPPoE的验证过程
   假如客户端要通过一个局域网与远程的PPPoE服务器进行身份验证,这时,它们会有两个不同的会话阶段,Discovery阶段和PPP会话阶段。当一个客户端想开始一个PPPoE会话时,它必须首先进行发现阶段以识别对端的以太网MAC地址,并建立一个PPPoESESSON_ID。在发现阶段,基于网络的拓扑结构,客户端可以发现多个PPPoE服务器,然后从中选择一个,不过通常都是选择反应最快的一个。
   Discovery阶段是一个无状态的阶段,该阶段主要是选择接入服务器,确定所要建立的PPP会话标识符Session ID,同时获得对方点到点的连接信息;PPP会话阶段执行标准的PPP过程。当此阶段完成,通信的两端都知到PPPoESESSON_ID和对端的以太网地址,它们一起定义了一个唯一的PPPoE会话。这些步骤包括客户端广播一个发起分组(PASI),一个或多个PPPoE服务器发送响应分组(PADO),客户端向选中的服务器发送请求分组(PADR),选中的PPPoE服务器发送一个确认分组(PADS)给客户端。当客户端接收到确认分组,它可以开始进行PPP会话阶段。当PPPoE服务器发送出确认分组,它可以开始PPP会话。
  当客户端在指定的时间内没有接收到 PADO,它应该重新发送它的PADI分组,并且加倍等待时间,这个过程会被重复期望的次数。如果客户端正等待接收PADS,应该使用具有客户端重新发送PADR的相似超时机制。在重试指定的次数后,主机应该重新发送PADI分组。PPPoE还有一个PADT分组,它可以在会话建立后的任何时候发送,来终止PPPOE会话。它可以由客户端或者PPPOE服务器发送。当接收到一个PADT,不再允许使用这个会话来发送PPP业务在发送或接收PADT后,即正常的PPP不能使用时,可以使用PADT,一旦PPPOE会话开始,PPP数据就可以以任何其它的PPP封装形式发送。所有的以太网帧都是单播的,身份验证是发生在会话阶段的,PPPoE会话的SESSION_ID一定不能改变,并且必须是发现阶段分配的值。



你可能感兴趣的:(网络协议)