协议分析 - pppoe discovery协议解码详解

上传人:子 文档编号:42994571 上传时间:2018-06-04 格式:DOC 页数:6 大小:30.50KB
返回 下载 相关 举报
协议分析 - pppoe discovery协议解码详解_第1页
第1页 / 共6页
协议分析 - pppoe discovery协议解码详解_第2页
第2页 / 共6页
协议分析 - pppoe discovery协议解码详解_第3页
第3页 / 共6页
协议分析 - pppoe discovery协议解码详解_第4页
第4页 / 共6页
协议分析 - pppoe discovery协议解码详解_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《协议分析 - pppoe discovery协议解码详解》由会员分享,可在线阅读,更多相关《协议分析 - pppoe discovery协议解码详解(6页珍藏版)》请在金锄头文库上搜索。

1、协议分析协议分析 - - PPPOEPPPOE DiscoveryDiscovery 协议解码详解协议解码详解协议分析 PPPOE Discovery 协议解码详解PPPOE 协议介绍PPPOE,全称 Point-to-Point Protocol Over Ethernet,它工作在OSI 的数据链路层,PPPOE 协议提供了在广播式的网络(如以太网)中多台主机连接到远端的访问集中器(我们对目前能完成上述功能的设备为宽带接入服务器)上的一种标准。PPPOE 的工作原理PPPOE 协议共包括两个阶段,即 PPPOE 的发现阶段(PPPOE Discovery Stage)和 PPPOE 的会话

2、阶段(PPPOE Session Stage) 。而两者的主要区别在于只是在 PPP 的数据报文前封装了 PPPOE 的报文头。当一个主机希望能够开始一个 PPPOE 会话时,它首先会在广播式的网络上寻找一个访问集中器,当然可能网络上会存在多个访问集中器时,对于主机而言则会根据各访问集中器(AC,Access Concentration)所能提供的服务或用户的预先的一些配置来进行相应的选择。当主机选择完了所需要的访问集中器后,就开始和访问集中器建立一个 PPPOE 会话进程。在这个过程中访问集中器会为每一个 PPPOE 会话分配一个唯一的进程 ID,会话建立起来后就开始了PPPOE 的会话阶段

3、,在这个阶段中已建立好点对点连接的双方(这种点对点的结构与 PPP 不一样,它是一种逻辑上的点对点关系)就采用 PPP 协议来交换数据报文,从而完成一系列 PPP 的过程,最终将在这点对点的逻辑通道上进行网络层数据报的传送。PPPOE 的数据报文格式我们简要介绍一下 PPPOE 的数据报文格式。PPPOE 的数据报文是被封装在以太网帧的数据域内的。简单来说我们可能把 PPPOE 报文分成两大块, ,一大块是 PPPOE 的数据报头,另一块则是 PPPOE 的净载荷(数据域) ,对于 PPPOE 报文数据域中的内容会随着会话过程的进行而不断改变。下图 1 为 PPPOE 的报文的格式:版本类型代

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

5、长度。数据域,有时也称之为净载荷域,在 PPPOE 的不同阶段该域内的数据内容会有很大的不同。在 PPPOE 的发现阶段时,该域内会填充一些 Tag(标记) ;而在 PPPOE 的会话阶段,该域则携带的是 PPP 的报文。这里我们主要来介绍一下 PPPOE 发现阶段的报文格式以及它的报文:PPPOE 数据报文中 Tag(标记)的格式对于发现阶段的 PPPOE 数据报文而言,它的净载荷可能包含零个或多个 Tag(标记) ,实际上这些标记的意义非常类似于 PPP 配置参数选项,它同样也是要经过协商的。对于 PPPOE 协议而言,没有像PPP 的配置参数选项那样定义了很多细节,而只是一个初略的定义,

6、因此在实际当中实现这个过程会依据不同厂商的设备有不同。首先还是让我们看一下承载在 PPPOE 报文数据域中的标记封装格式,如图 2,类型长度数据(图 2 标记的封装格式)从图 2 中可以看出,标记的封装格式采用的是大家所熟知的 TLV 结构,也即是(类型+长度+数据) 。标记的类型域为 2 个字节,下表列出了各种标记类型的含义:标记类型 标记说明0x0000表示 PPPOE 报文数据域中一串标记的结束,为了保证版本的兼容性而保留,在有些报文中有应用。0x0101服务名,主要用来表明网络侧所能提供给用户的一些服务。0x0102访问集中器名,当用户侧接收到了 AC 的回应的 PADO 报文时,就可

7、获从所携带的标记中获知访问集中器的名子,而且还可以据此来选择相应的访问集中器。0x0103主机唯一标识,类似于 PPP 数据报文中的标识域,主要是用来匹配发送和接收端的,因为对于广播式的网络中会同时存在很多个 PPPOE 的数据报文。0x0104AC-Cookies,主要被用来防止恶意性 DOS 功击。0x0105销售商的标识符。0x0110中继会话ID,对于 PPPOE 的数据报文也同样可以像 DHCP 报文一样被中断到另外的 AC 上终结,这个字段则是用来维护另一个连接的。0x0201服务名错误,当请求的服务名不被对端所接受时,会在响应的报文中携带这个标记。0x0202访问集中器名出错。0

8、x0203一般性错误。标记的长度域为 2 个字节,它用来指明标记数据域的长度。标记的数据域中用来放置不同类型标记所对应的相关数据。PPPOE 发现阶段的数据报文PPPOE 的发现阶段可分为四步,其实这个过程也是 PPPOE 四种数据报文的交换的一个过程。当完成这四步后,用户主机与访问集中器双方就能获知对方的 MAC 地址和唯一的会话 ID 号,从而进入到下一个阶段(PPPOE 的会话阶段) 。实际上双方在互相知道了对方的 MAC地址后,就已经在广播式的网络上确定了一一的对应关系,为了保证这个连接的有效性,同时使 PPPOE 协议能更加灵活的运用,因此还加入了会话 ID 字段,通过这两个条件就可

9、完成确定双方点对点的关系。在这个阶段一开始,由于接入用户并不知道访问集中器的 MAC 地址,则使用类似于 ARP 解析的过程的机制来获取访问集中器的 MAC 地址。首先由接入用户侧发起一个初始化的广播报文,对于访问集中器如果配置了 PPPOE 的业务时,它会时实检测网络上的数据包,当发现以太网数据帧中所承载的是 PPPOE 报文时(通过协议域的内容来区分) ,就会将其交给相应的模块去处理。当收到初始化报文后,访问集中器会向该用户回应一个报文。如果网络上存在很多这样的访问集中器且都收到了用户侧发送的初始化报文时,它们也都会向用户侧会送一个确认报文,如果该用户收到这个报文后,则会依据报文中所携带的

10、内容或本端的一些配置来选择一个唯一的访问集中器进行会话。到此时已完成了前两步了,那么剩下的两步则是协商一些所提供的服务选项和获取 PPPOE 会话阶段所必须的会话 ID 值。说明:在这个阶段,所有数据报文是被承载在以太网的数据域中的,而且以太网数据帧的协议域始终为 0x8863。在 PPPOE 发现阶段的四步的过程中,PPPOE 会遇到PADI、PADO、PADR 和 PADS 这四种报文。PPPOE 中的 PADT 报文是用来终止一条会话的。PADI(PPPOE Active Discovery Initiation)报文PPPOE 发现阶段的第一步,也即是由用户侧首先发送这样一个报文。用户

11、主机是以广播的方式发送这个报文,所以该报文所对应的以太网帧的目的地址域应填充为全 1,而源地址域填充用户主机的 MAC地址。广播包可能会被多个访问集中器接收到。 PADO(PPPOE Active Discovery Offer)报文PPPOE 发现阶段的第二步,也即是由访问集中器回应各用户主机发送的 PADI 报文,此时该报文所对应的以太网帧的源地址填充访问集中器的 MAC 地址,而目的地址则填充从 PADI 中所获取的用户主机的MAC 地址。PADR(PPPOE Active Discovery Request)报文PPPOE 发现阶段的第三步,也即是由用户主机向访问服务器发送单播的请求报

12、文。当用户主机收到 PADO 报文后,会从这些报文中挑选一个访问集中器作为后续会话的对象。由于用户主机在收到 PADO 报文后,就获知了访问集中器的 MAC 地址,因此 PADR 报文所以应的以太网帧的源地址填充用户主机的 MAC 地址,而以太网的目的地址填充为访问集中器的 MAC 地址。PADS(PPPOE Active Discovery Session-confirmation)报文PPPOE 发现阶段的第四步,也即是最后一步,此时访问集中器当收到 PADR 报文时,就准备进入开始一个 PPP 的会话了,而此时访问集中器会为在这个会话分配一个唯一的会话进程 ID,并在发送给主机的 PAD

13、S 报文中携带上这个会话 ID。当然如果访问集中器不满足用户所申请的服务的话,则会向用户发送一个 PADS 报文,而其中携带一个服务名错误的标记,而且此时该 PADS 报文中的会话 ID 填充0x0000。PADT(PPPOE Active Discovery Terminate)报文PADT 报文可能在会话进行开始之后的任意时间内被发送,主要是用来终止一个 PPPOE 会话的止。它可以由主机或访问集中器发送,目的地址填充为对端的以太网的 MAC 地址PPPOE Discovery 详细解码我们使用科来网络分析系统捕获 PPPOE 数据包,如图 3,(图 3 PPPOE Discovery 的

14、详细解码)查看科来网络分析系统中的详细解码,可以看出这是 PPPOE 发现阶段的第一步的 PADI 报文,我们来详细说明:版本:1,协议中给出了明确的规定,这个域的内容填充 0x1。类型:1 协议中也给了明确的规定,这里也职能填充 0x1代码:0x09,表示该报文是发现阶段的 PADI 报文会话 ID:0,表示还没有会话 ID长度:16,表示 PPPOE 数据报文中净载荷的长度PPP 发现标记:在面我们列出的标记类型表可以看出以上主要是对 PPPOE Discovery 协议及详细解码的介绍。成都科来软件有限公司HYPERLINK “http:/“ 2006 年 6 月PPPOE Discovery 协议解码详解成都科来软件有限公司 电话:028-85120922Email:HYPERLINK “http:/“ http:/ 传真:028-PAGE 5 / NUMPAGES 5 *JimiSoft: Unregistered Software ONLY Convert Part Of File! Read Help To Know How To Register.*

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号