查看: 17379|回复: 17

原创:PPPOE Discovery协议基础及解码详解!

[复制链接]
发表于 2006-7-11 15:42:31 | 显示全部楼层 |阅读模式
一、PPPOE介绍
PPPOE,全称Point-to-Point Protocol Over Ethernet,它工作在OSI的数据链路层,PPPOE协议提供了在广播式的网络(如以太网)中多台主机连接到远端的访问集中器(目前能完成上述功能的设备我们称之为宽带接入服务器)上的一种标准。
1. PPPOE的工作原理
PPPOE协议共包括两个阶段,即PPPOE的发现阶段(PPPOE Discovery Stage)和PPPOE的会话阶段(PPPOE Session Stage)。而两者的主要区别在于只是在PPP的数据报文前封装了PPPOE的报文头。
当一个主机希望能够开始一个PPPOE会话时,它首先会在广播式的网络上寻找一个访问集中器,当然可能网络上会存在多个访问集中器时,对于主机而言则会根据各访问集中器(AC,Access Concentration)所能提供的服务或用户的预先的一些配置来进行相应的选择。当主机选择完了所需要的访问集中器后,就开始和访问集中器建立一个PPPOE会话进程。在这个过程中访问集中器会为每一个PPPOE会话分配一个唯一的进程ID,会话建立起来后就开始了PPPOE的会话阶段,在这个阶段中已建立好点对点连接的双方(这种点对点的结构与PPP不一样,它是一种逻辑上的点对点关系)就采用PPP协议来交换数据报文,从而完成一系列PPP的过程,最终将在这点对点的逻辑通道上进行网络层数据报的传送。
2. PPPOE的数据报文格式
。。。。。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?CSNA会员注册

×
回复

使用道具 举报

 楼主| 发表于 2006-7-11 15:48:26 | 显示全部楼层
PPPOE Discovery协议基础及解码详解
一、PPPOE介绍
PPPOE,全称Point-to-Point Protocol Over Ethernet,它工作在OSI的数据链路层,PPPOE协议提供了在广播式的网络(如以太网)中多台主机连接到远端的访问集中器(目前能完成上述功能的设备我们称之为宽带接入服务器)上的一种标准。
1. PPPOE的工作原理
PPPOE协议共包括两个阶段,即PPPOE的发现阶段(PPPOE Discovery Stage)和PPPOE的会话阶段(PPPOE Session Stage)。而两者的主要区别在于只是在PPP的数据报文前封装了PPPOE的报文头。
当一个主机希望能够开始一个PPPOE会话时,它首先会在广播式的网络上寻找一个访问集中器,当然可能网络上会存在多个访问集中器时,对于主机而言则会根据各访问集中器(AC,Access Concentration)所能提供的服务或用户的预先的一些配置来进行相应的选择。当主机选择完了所需要的访问集中器后,就开始和访问集中器建立一个PPPOE会话进程。在这个过程中访问集中器会为每一个PPPOE会话分配一个唯一的进程ID,会话建立起来后就开始了PPPOE的会话阶段,在这个阶段中已建立好点对点连接的双方(这种点对点的结构与PPP不一样,它是一种逻辑上的点对点关系)就采用PPP协议来交换数据报文,从而完成一系列PPP的过程,最终将在这点对点的逻辑通道上进行网络层数据报的传送。
2. PPPOE的数据报文格式
我们简要介绍一下PPPOE的数据报文格式。PPPOE的数据报文是被封装在以太网帧的数据域内的。简单来说我们可能把PPPOE报文分成两大块,,一大块是PPPOE的数据报头,另一块则是PPPOE的净载荷(数据域),对于PPPOE报文数据域中的内容会随着会话过程的进行而不断改变。下图1为PPPOE的报文的格式:

        PPPOE数据报文最开始的4位为版本域,协议中给出了明确的规定,这个域的内容填充0x1。
        紧接在版本域后的4位是类型域,协议中同样规定,这个域的内容填充为0x1。
        代码域占用1个字节,对于PPPOE 的不同阶段这个域内的内容也是不一样的。
        会话ID点用2个字节,当访问集中器还未分配唯一的会话ID给用户主机的话,则该域内的内容必须填充为0x0000,一旦主机获取了会话ID后,那么在后续的所有报文中该域必须填充那个唯一的会话ID值。
        长度域为2个字节,用来指示PPPOE数据报文中净载荷的长度。
        数据域,有时也称之为净载荷域,在PPPOE的不同阶段该域内的数据内容会有很大的不同。在PPPOE的发现阶段时,该域内会填充一些Tag(标记);而在PPPOE的会话阶段,该域则携带的是PPP的报文。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?CSNA会员注册

×
回复

使用道具 举报

 楼主| 发表于 2006-7-11 15:50:41 | 显示全部楼层
这里我们主要来介绍一下PPPOE发现阶段的报文格式以及它的报文:
1)        PPPOE数据报文中Tag(标记)的格式
对于发现阶段的PPPOE数据报文而言,它的净载荷可能包含零个或多个Tag(标记),实际上这些标记的意义非常类似于PPP配置参数选项,它同样也是要经过协商的。对于PPPOE协议而言,没有像PPP的配置参数选项那样定义了很多细节,而只是一个初略的定义,因此在实际当中实现这个过程会依据不同厂商的设备有不同。首先还是让我们看一下承载在PPPOE报文数据域中的标记封装格式,如图2,
  
从图2中可以看出,标记的封装格式采用的是大家所熟知的TLV结构,也即是(类型+长度+数据)。标记的类型域为2个字节,下表列出了各种标记类型的含义:
  
2)        PPPOE发现阶段的数据报文
PPPOE的发现阶段可分为四步,其实这个过程也是PPPOE四种数据报文的交换的一个过程。当完成这四步后,用户主机与访问集中器双方就能获知对方的MAC地址和唯一的会话ID号,从而进入到下一个阶段(PPPOE的会话阶段)。实际上双方在互相知道了对方的MAC地址后,就已经在广播式的网络上确定了一一的对应关系,为了保证这个连接的有效性,同时使PPPOE协议能更加灵活的运用,因此还加入了会话ID字段,通过这两个条件就可完成确定双方点对点的关系。
在这个阶段一开始,由于接入用户并不知道访问集中器的MAC地址,则使用类似于ARP解析的过程的机制来获取访问集中器的MAC地址。首先由接入用户侧发起一个初始化的广播报文,对于访问集中器如果配置了PPPOE的业务时,它会时实检测网络上的数据包,当发现以太网数据帧中所承载的是PPPOE报文时(通过协议域的内容来区分),就会将其交给相应的模块去处理。当收到初始化报文后,访问集中器会向该用户回应一个报文。如果网络上存在很多这样的访问集中器且都收到了用户侧发送的初始化报文时,它们也都会向用户侧会送一个确认报文,如果该用户收到这个报文后,则会依据报文中所携带的内容或本端的一些配置来选择一个唯一的访问集中器进行会话。到此时已完成了前两步了,那么剩下的两步则是协商一些所提供的服务选项和获取PPPOE会话阶段所必须的会话ID值。
说明:在这个阶段,所有数据报文是被承载在以太网的数据域中的,而且以太网数据帧的协议域始终为0x8863。
在PPPOE发现阶段的四步的过程中,PPPOE会遇到PADI、PADO、PADR和PADS这四种报文。PPPOE中的PADT报文是用来终止一条会话的。
        PADI(PPPOE Active Discovery Initiation)报文
PPPOE发现阶段的第一步,也即是由用户侧首先发送这样一个报文。用户主机是以广播的方式发送这个报文,所以该报文所对应的以太网帧的目的地址域应填充为全1,而源地址域填充用户主机的MAC地址。广播包可能会被多个访问集中器接收到。
        PADO(PPPOE Active Discovery Offer)报文
PPPOE发现阶段的第二步,也即是由访问集中器回应各用户主机发送的PADI报文,此时该报文所对应的以太网帧的源地址填充访问集中器的MAC地址,而目的地址则填充从PADI中所获取的用户主机的MAC地址。
        PADR(PPPOE Active Discovery Request)报文
PPPOE发现阶段的第三步,也即是由用户主机向访问服务器发送单播的请求报文。当用户主机收到PADO报文后,会从这些报文中挑选一个访问集中器作为后续会话的对象。由于用户主机在收到PADO报文后,就获知了访问集中器的MAC地址,因此PADR报文所以应的以太网帧的源地址填充用户主机的MAC地址,而以太网的目的地址填充为访问集中器的MAC地址。
        PADS(PPPOE Active Discovery Session-confirmation)报文
PPPOE发现阶段的第四步,也即是最后一步,此时访问集中器当收到PADR报文时,就准备进入开始一个PPP的会话了,而此时访问集中器会为在这个会话分配一个唯一的会话进程ID,并在发送给主机的PADS报文中携带上这个会话ID。当然如果访问集中器不满足用户所申请的服务的话,则会向用户发送一个PADS报文,而其中携带一个服务名错误的标记,而且此时该PADS报文中的会话ID填充0x0000。
        PADT(PPPOE Active Discovery Terminate)报文
PADT报文可能在会话进行开始之后的任意时间内被发送,主要是用来终止一个PPPOE会话的止。它可以由主机或访问集中器发送,目的地址填充为对端的以太网的MAC地址

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?CSNA会员注册

×
回复

使用道具 举报

 楼主| 发表于 2006-7-11 15:52:40 | 显示全部楼层
二、PPPOE Discovery详细解码
我们使用科来网络分析系统捕获PPPOE数据包,如图3,

(图3  PPPOE Discovery的详细解码)

查看科来网络分析系统中的详细解码,可以看出这是PPPOE发现阶段的第一步的PADI报文,我们来详细说明:
        版本:1,协议中给出了明确的规定,这个域的内容填充0x1。
        类型:1协议中也给了明确的规定,这里也职能填充0x1
        代码:0x09,表示该报文是发现阶段的 PADI报文
        会话ID:0,表示还没有会话ID
        长度:16,表示PPPOE数据报文中净载荷的长度
        PPP发现标记:在面我们列出的标记类型表可以看出
以上主要是对PPPOE Discovery协议及详细解码的介绍。

                                                                                                                                                             CSNA网络分析论坛
                                                                                                                                                                      2006年7月


转帖请注明:转自CSNA网络分析论坛CSNA网络分析论坛

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?CSNA会员注册

×
回复

使用道具 举报

发表于 2006-7-11 17:05:17 | 显示全部楼层
集中器能用arp吗?
回复

使用道具 举报

 楼主| 发表于 2006-7-11 17:15:07 | 显示全部楼层
原帖由 wwwang 于 2006-7-11 17:05 发表
集中器能用arp吗?

不太明白你的意思,
回复

使用道具 举报

发表于 2006-7-13 16:51:16 | 显示全部楼层
有点不是很懂,不好意思 。
回复

使用道具 举报

发表于 2006-8-6 15:16:39 | 显示全部楼层
嗯,的确挺不错,不过很多东西没看特别明白。
回复

使用道具 举报

发表于 2007-4-5 10:14:15 | 显示全部楼层
谢谢楼主的分享
正有用呢
回复

使用道具 举报

发表于 2007-4-20 08:08:52 | 显示全部楼层
dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
回复

使用道具 举报

发表于 2007-4-20 08:35:12 | 显示全部楼层
不错,看了学到东西了。。。
回复

使用道具 举报

发表于 2010-9-4 00:08:29 | 显示全部楼层
下载附件学习,多谢了啊~~~~~~~~~~~~
回复

使用道具 举报

发表于 2010-9-8 15:33:33 | 显示全部楼层
非常实行的文章,我天天都在接触这些东西。
回复

使用道具 举报

发表于 2010-11-9 20:30:46 | 显示全部楼层
相当不错,高手!
回复

使用道具 举报

发表于 2011-8-23 11:38:54 | 显示全部楼层
支持,顶起!
回复

使用道具 举报

发表于 2012-4-28 22:42:07 | 显示全部楼层
多谢lz,支持
回复

使用道具 举报

您需要登录后才可以回帖 登录 | CSNA会员注册

本版积分规则

快速回复 返回顶部 返回列表