第八章 PPPoE协议

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第1页天津工业大学电子与信息工程学院通信系第八章PPPoE协议主要内容8.1PPPoE协议的基本概念8.2PPPoE的发现阶段8.3PPPoE的会话阶段第2页天津工业大学电子与信息工程学院通信系8.1PPPoE协议的基本概念一、PPPoE协议出现的背景随着宽带网络技术的不断发展,以xDSL、CableModem和以太网为主的几种主流宽带接入技术的应用已迅速普及。同时又给各大网络运营商们带来了种种困惑,无论使用哪种接入技术,对于他们而言问题是如何有效地管理用户,如何从网络的投资中收取回报,因此对于各种宽带接入技术的收费的问题就变得更加敏感。第3页天津工业大学电子与信息工程学院通信系在传统的以太网模型中,我们是不存在所谓的用户计费的概念,要么用户能设置/获取IP地址上网,要么用户就无法上网。IETF秉承了窄带拨号上网的运营思路(使用NAS设备终结用户的PPP数据包),制定出了在以太网上传送PPP数据包的协议(PointtoPointProtocoloverEthernet)。这个协议出台后,各网络设备制造商也相继推出自已品牌的宽带接入服务器(BAS),它不仅能支持PPPoE协议数据报文的终结,而且还能支持其它许多协议。第4页天津工业大学电子与信息工程学院通信系二、PPPoE协议简介PPPoE协议提供了在广播式的网络(如以太网)中多台主机连接到远端的访问集中器(我们对目前能完成上述功能的设备称为宽带接入服务器)上的一种标准。在这种网络模型中,我们不难看出所有用户的主机都需要能独立的初始化自已的PPP协议栈,而且通过PPP协议本身所具有的一些特点,能实现在广播式网络上对用户进行计费和管理。第5页天津工业大学电子与信息工程学院通信系为了能在广播式的网络上建立、维持各主机与访问集中器之间点对点的关系,那么就需要每个主机与访问集中器之间能建立唯一的点到点的会话。PPPoE协议共包括两个阶段,即PPPoE的发现阶段(PPPoEDiscoveryStage)和PPPoE的会话阶段(PPPoESessionStage)。本章将介绍重点PPPoE发现阶段的介绍,因为对于PPPoE的会话阶段,可以看成和PPP的会话过程是一样的,而两者的主要区别在于只是在PPP的数据报文前封装了PPPoE的报文头。无论是哪一个阶段的数据报文最终会被封装成以太网的帧进行传送。第6页天津工业大学电子与信息工程学院通信系当一个主机希望能够开始一个PPPoE会话时,它首先会在广播式的网络(协议中是这样说的,但在实际应用中,可能还要跨跃多点访问的网络,如ATM等,从而就形成了PPPoEoA的数据包)上寻找一个访问集中器,当然可能网络上会存在多个访问集中器时,而主机则会根据各访问集中器(AC,AccessConcentration)所能提供的服务或用户的预先的一些配置来进行相应的选择。第7页天津工业大学电子与信息工程学院通信系当主机选择完了所需要的访问集中器后,就开始和访问集中器建立一个PPPoE会话进程。在这个过程中访问集中器会为每一个PPPoE会话分配一个唯一的进程ID,会话建立起来后就开始了PPPoE的会话阶段,在这个阶段中已建立好点对点连接的双方(这种点对点的结构与PPP不一样,它是一种逻辑上的点对点关系)就采用PPP协议来交换数据报文,从而完成一系列PPP的过程,最终将在这点对点的逻辑通道上进行网络层数据报的传送。第8页天津工业大学电子与信息工程学院通信系8.2PPPoE的发现阶段PPPoE的发现阶段即PPPoE的初始化过程,这个过程是至关重要的,它不仅要在广播式的网络上确定一对一的逻辑关系,而且还要为PPPoE的会话阶段准备一些必要条件,如访问集中器唯一分配的会话ID(SessionID)。在介绍PPPoE的发现阶段之前,还是首先复习一下以太网帧的封装格式,前面也介绍过了,所有的PPPoE的数据报文均是被封装在以太网的数据域(净载荷区)中传送的。第9页天津工业大学电子与信息工程学院通信系一、以太网帧格式目的地址(6B)源地址(6B)协议类型(2B)数据(46-1500B)校验码(4B)(1)以太网目的地址(目的MAC地址)和以太网源地址(源MAC地址),是我们大家最为熟悉的数据链路层地址。它包括单播地址、多播地址和广播地址,而对于PPPoE协议中要使用到单播地址和广播地址。对于PPP这样的数据链路层协议,二层地址已失去了意义,但对于PPPoE,要在广播式的网络中标识两个主机,二层地址却是有意义的。第10页天津工业大学电子与信息工程学院通信系目的地址(6B)源地址(6B)协议类型(2B)数据(46-1500B)校验码(4B)(2)以太网的类型域也是我们最关心的一个字段,它在1997年以前还一直由施乐公司维护,但后来就交由IEEE802小组维护了。通过这个字段的内容,数据包的接收方可以识别以太网的数据域中承载的是什么协议的数据报文。对于PPPoE的两大阶段,也正是通过以太网的类型域进行区分的。在PPPoE的发现阶段时,以太网的类型域填充0x8863;而在PPPoE的会话阶段时,以太网的类型域填充为0x8864。第11页天津工业大学电子与信息工程学院通信系(3)数据域(净载荷)主要是用来承载类型域中所指示的数据报文,在PPPoE协议中所有的PPPoE数据报文就是被封装在这个域中被传送。(4)校验域,主要用来保证链路层数据帧传送的正确性。源地址(6B)目的地址(6B)协议类型(2B)数据(46-1500B)校验码(4B)第12页天津工业大学电子与信息工程学院通信系二、PPPoE的数据报文格式描述完了以太网的帧格式后,我们简要介绍一下PPPoE的数据报文格式。PPPoE的数据报文是被封装在以太网帧的数据域内的。简单来说我们可能把PPPoE报文分成两大部分,(虽然这样比较笼统,但还是比较好助于理解),一大部分是PPPoE的数据报头,另一部分则是PPPoE的净载荷(数据域),对于PPPoE报文数据域中的内容会随着会话过程的进行而不断改变。下图为PPPoE的报文的格式:第13页天津工业大学电子与信息工程学院通信系版本类型代码会话ID长度域数据域(净载荷域)数据域(净荷域)(1)PPPoE数据报文最开始的4位为版本域,协议中给出了明确的规定,这个域的内容填充0x01。(2)紧接在版本域后的4位是类型域,协议中同样规定,这个域的内容填充为0x01。第14页天津工业大学电子与信息工程学院通信系版本类型代码会话ID长度域数据域(净载荷域)数据域(净载荷域)(3)代码域占用1个字节,对于PPPoE的不同阶段这个域内的内容也是不一样的,在这里没有用表格的形式将所有代码列出,但在后面会具体给出一些代码与数据报文的对照。第15页天津工业大学电子与信息工程学院通信系版本类型代码会话ID长度域数据域(净载荷域)数据域(净载荷域)(4)会话ID点用2个字节,当访问集中器还未给主机分配唯一的会话ID时,则该域内的内容必须填充为0x0000,一旦主机获取了会话ID后,那么在后续的所有报文中该域必须填充那个唯一的会话ID值。(5)长度域为2个字节,用来指示PPPoE数据报文中净载荷的长度。第16页天津工业大学电子与信息工程学院通信系版本类型代码会话ID长度域数据域(净载荷域)数据域(净载荷域)(6)数据域,有时也称之为净载荷域,在PPPoE的不同阶段该域内的数据内容会有很大的不同。在PPPoE的发现阶段时,该域内会填充一些Tag(标记);而在PPPoE的会话阶段,该域则携带的是PPP的报文。第17页天津工业大学电子与信息工程学院通信系三、PPPoE发现阶段的数据报文PPPoE的发现阶段可分为四步,其实这个过程也是PPPoE四种数据报文的交换的一个过程。当完成这四步后,用户主机与访问集中器双方就能获知对方的MAC地址和唯一的会话ID号,从而进入到下一个阶段(PPPoE的会话阶段)。实际上双方在互相知道了对方的MAC地址后,就已经在广播式的网络上确定了一一的对应关系,为了保证这个连接的有效性,同时使PPPoE协议能更加灵活的运用,因此还加入了会话ID字段,通过这两个条件就可完全确定双方点对点的关系。第18页天津工业大学电子与信息工程学院通信系在这个阶段一开始,由于接入用户并不知道访问集中器的MAC地址,则使用类似于ARP解析的过程的机制来获取访问集中器的MAC地址。首先由接入用户侧发起一个初始化的广播报文,对于访问集中器如果配置了PPPoE的业务时,它会实时检测网络上的数据包,当发现以太网数据帧中所承载的是PPPoE报文时(通过协议域的内容来区分),就会将其交给相应的模块去处理。当收到初始化报文后,访问集中器会向该用户回应一个报文。第19页天津工业大学电子与信息工程学院通信系如果网络上存在很多这样的访问集中器且都收到了用户侧发送的初始化报文时,它们也都会向用户侧回送一个确认报文。如果该用户收到这个报文后,则会依据报文中所携带的内容或本端的一些配置来选择一个唯一的访问集中器进行会话。到此时已完成了前两步了,那么剩下的两步则是协商一些所提供的服务选项和获取PPPoE会话阶段所必须的会话ID值。第20页天津工业大学电子与信息工程学院通信系在这个阶段,前面在讲述以太网帧格式时也特别强调了,所有数据报文是被承载在以太网的数据域中的,而且以太网数据帧的协议域始终为0x8863。下面我们首先介绍一下PPPoE数据报文中的标记格式,然后再结合具体的数据报文的内容,来讲解这四步的过程。第21页天津工业大学电子与信息工程学院通信系1、PPPoE数据报文中Tag(标记)的格式对于发现阶段的PPPoE数据报文,它的净载荷可能包含零个或多个Tag(标记),实际上这些标记的意义非常类似于PPP配置参数选项,它同样也是要经过协商的。PPPoE没有像PPP的配置参数选项那样定义了很多细节,只是一个粗略的定义,因此在实际当中实现这个过程会依据不同厂商的设备有所不同。首先还是让我们看一下承载在PPPoE报文数据域中的标记封装格式:第22页天津工业大学电子与信息工程学院通信系类型长度数据从上图中可以看出,标记的封装格式采用的是大家所熟知的TLV结构,也即是(类型+长度+数据)。(1)标记的类型域为2个字节,下表列出了各种标记类型的含义:第23页天津工业大学电子与信息工程学院通信系类型长度数据标记类型标记说明0x0000表示PPPoE报文数据域中一串标记的结束,为了保证版本的兼容性而保留,在有些报文中有应用。0x0101服务名,主要用来表明网络侧所能提供给用户的一些服务。0x0102访问集中器名,当用户侧接收到了AC的回应的PADO报文时,就可获从所携带的标记中获知访问集中器的名字,而且还可以据此来选择相应的访问集中器。第24页天津工业大学电子与信息工程学院通信系类型长度数据标记类型标记说明0x0103主机唯一标识,类似于PPP数据报文中的标识域,主要是用来匹配发送和接收端的,因为对于广播式的网络中会同时存在很多个PPPoE的数据报文。0x0104AC-Cookies,被用来防止恶意性DOS功击。0x0105销售商的标识符。0x0110中继会话ID,对于PPPoE的数据报文也同样可以像DHCP报文一样被中继到另外的AC上终结,这个字段则是用来维护另一个连接的。第25页天津工业大学电子与信息工程学院通信系类型长度数据标记类型标记说明0x0201服务名错误,当请求的服务名不被对端所接受时,会在响应的报文中携带这个标记。0x0202访问集中器名出错。0x0203一般性错误。第26页天津工业大学电子与信息工程学院通信系类型长度数据(2)标记的长度域为2个字节,它用来指明标记数据域的长度。(3)标记的数据域中用来放置不同类型标记所对应的相关数据。第27页天津工业大学电子与信息工程学院通信系2、PADI(PPPoEActiveDiscoveryInitiation)报文PPPoE发现阶段的第一步,也即是由用户侧首先发送这样一个报文。用户主机是以广播的方式发送这个报文,所以该报文所对应的以太网帧的目的地址域应填充为全1,而源地址域填充用户主机的MAC

1 / 39
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功