PPPoE协议报文交互流程
- 格式:docx
- 大小:117.43 KB
- 文档页数:1
PPPoE(Point to Point Protocol over Ethernet,基于以太网的点对点协议)的工作流程包括发觉(Discovery)和会话(Session)两个时期,发觉时期是无状态的,目的是取得PPPoE 终端(在局端的ADSL设备上)的以太网MAC 地址,并成立一个惟一的PPPoE SESSION-ID。
发觉时期终止后,就进入标准的PPP会话时期1.发觉时期(PPPoED:PPPoE Discovery)PADI(PPPoE Active Discovery Initiation)主机广播发起分组,分组的目的地址为以太网的广播地址0xffffffffffff,CODE(代码)字段值为0×09(PADI Code),SESSION-ID(会话ID)字段值为0x0000。
PADI分组必需至少包括一个效劳名称类型的标签(Service Name Tag,字段值为0x0101),向接入集中器提出所要求提供的效劳。
PADO(PPPoE Active Discovery Offer)接入集中器收到在效劳范围内的PADI分组,发送PPPoE有效发觉提供包分组,以响应请求。
其中CODE字段值为0×07(PADO Code),SESSION-ID字段值仍为0x0000。
PADO分组必需包括一个接入集中器名称类型的标签(Access Concentrator Name Tag,字段值为0x0102),和一个或多个效劳名称类型标签,说明可向主机提供的效劳种类。
PADO和PADI的Host-Uniq Tag值相同。
PADR(PPPoE Active Discovery Request)主机在可能收到的多个PADO分组中选择一个适合的PADO分组,然后向所选择的接入集中器发送PPPoE有效发觉请求分组。
其中CODE字段为0x19(PADRCode),SESSION_ID字段值仍为0x0000。
PPPoE用户上线交互过程PPPoE用户上线要经过PPPoE协商、LCP协商、PAP/CHAP认证、NCP协商几个阶段。
PPPoE协商PPPoE协商是ME设备为用户分配PPPoE接入用的Session ID,该Session ID在每ME设备上唯一,用来唯一标识一条用户与ME设备之间的PPPoE虚拟链路。
PPPoE的协商流程见下图。
图1 PPPoE的协商流程1.用户广播一个PADI包,在此包中包含用户想要得到的服务类型信息。
2.以太网内的所有接入集中器(如上图中的ME设备)在收到这个初始化包后,将其中请求的服务与自己能提供的服务进行比较,其中可以为此用户提供此服务的接入集中器发回PADO包。
3.用户可能会收到多个集中器返回的PADO包。
用户根据一定的条件从返回PADO包的接入集中器中选定符合条件的接入集中器,并向它返回一个会话请求包PADR(非广播),在PADR包中封装所需的服务信息。
4.被选定的接入集中器在收到PADR包后开始进入PPP会话阶段。
它会产生一个会话标识以唯一的标识它和主机的这段PPPoE会话。
并把这个特定的会话标识包含在会话确认包PADS中发回给用户,如果没有错误发生就进入到PPP会话阶段,而主机在收到会话确认包后如果没有错误发生也进入到PPP会话阶段。
LCP协商LCP协商的过程如下:协商双方互相发送一个LCP Config-Request报文,确认收到的Config-Request报文中的协商选项,根据这些选项的支持与接受情况,做出适当的回应。
若两端都回应了Config-ACK,则标志LCP链路建立成功,否则会继续发送Request报文,直到对端回应了ACK报文为止。
说明:∙Config-ACK:若完全支持对端的LCP选项,则回应Config-ACK报文,报文中必须完全协带对端Request报文中的选项。
∙Config-NAK:若支持对端的协商选项,但不认可该项协商的内容,则回应Config-NAK 报文,在Config-NAK的选项中填上自己期望的内容,如:对端MRU值为1500,而自己期望MRU值为1492,则在Config-NAK报文中埴上自己的期望值1492。
协议的工作流程包含发现和会话两个阶段,发现阶段是无状态的,目的是PPPoE 地址,并建立一个唯一的以太网MACADSL设备上)获得PPPoE终结端(在局端的的PPPoESESSION-ID。
发现阶段结束后,就进入标准的PPP会话阶段。
当一个主机想开始一个PPPoE会话,它必须首先进行发现阶段,以识别局端的以太网MAC地址,并建立一个PPPoESESSION-ID。
在发现阶段,基于网络的拓扑,主机可以发现多个接入集中器,然后允许用户选择一个。
当发现阶段成功完成,主机和选择的接入集中器都有了他们在以太网上建立PPP连接的信息。
直到PPP会话建立,发现阶段一直保持无状态的Client/Server(客户/服务器)模式。
一旦PPP会话建立,主机和接入集中器都必须为PPP虚接口分配资源。
PPPoE协议会话的发现和会话两个阶段具体进程如下。
1.发现(Discovery)阶段在发现(Discovery)阶段中用户主机以广播方式寻找所连接的所有接入集中器(或),并获得其以太网MAC地址。
然后选择需要连接的主机,并确定交换机所要建立的PPP会话标识号码。
发现阶段有4个步骤,当此阶段完成,通信的两端都知道PPPoESESSION-ID和对端的以太网地址,他们一起唯一定义PPPoE会话。
这4个步骤如下。
(1)主机广播发起分组(PADI)主机广播发起分组(PADI),分组的目的地址为以太网的广播地址0×ffffffffffff,CODE(代码)字段值为0×09,SESSION-ID(会话ID)字段值为0×0000。
PADI分组必须至少包含一个服务名称类型的标签(标签类型字段值为0×0101),向接入集中器提出所要求提供的服务。
(2)接入集中器接入集中器收到在服务范围内的PADI分组,发送PPPoE有效发现提供包(PADO)分组,以响应请求。
其中CODE字段值为 0×07,SESSION-ID字段值仍为0×0000。
pppoe的工作原理
PPPoE(Point-to-Point Protocol over Ethernet)是一种在以太网
上运行的网络协议,用于将数据包从计算机发送到互联网服务提供商(ISP)的服务器。
PPPoE的工作原理如下:
1. 计算机通过以太网卡将数据包发送到本地网络中的PPPoE
客户端。
2. PPPoE客户端将数据包封装成PPPoE报文,并添加必要的
控制信息。
3. PPPoE客户端通过以太网将封装后的PPPoE报文发送到与ISP服务器相连的PPPoE接入设备(如路由器或调制解调器)。
4. PPPoE接入设备解封装PPPoE报文,并将数据包发送到ISP 的PPPoE服务器。
5. PPPoE服务器验证用户的身份和访问权限,如果通过验证,将数据包传输到互联网。
6. 互联网上的目标服务器接收到数据包,并将响应数据包通过相反的路径发送回用户。
7. PPPoE服务器将响应数据包传输到PPPoE接入设备。
8. PPPoE接入设备将响应数据包封装成PPPoE报文,并通过以太网发送到PPPoE客户端。
9. PPPoE客户端解封装PPPoE报文,提取出响应数据包,将其传递给计算机。
通过以上步骤,PPPoE协议实现了在以太网上传输数据包并连接到互联网的功能。
它通过控制信息和认证机制确保数据的安全传输,并为用户提供访问互联网的权限。
PPPOE拨号流程PPPoE(PPP overEthernet)是在以太网上建立PPP连接,由于以太网技术十分成熟且使用广泛,而PPP协议在传统的拨号上网应用中显示出良好的可扩展性和优质的管理控制机制,二者结合而成的PPPoE协议得到了宽带接入运营商的认可并广为采用。
PPPoE不仅有以太网的快速简便的特点,同时还有PPP的强大功能,任何能被PPP封装的协议都可以通过PPPoE传输。
PPPoE的数据报文是被封装在以太网帧的数据域内的。
以太网帧头包括:1. 目的MAC地址(该阶段为ffffffffffff的广播地址)2. 源MAC地址(客户端MAC地址)3. 以太网协议类型(该阶段为0x8863,表示为发现阶段)。
PPPoE数据报文的格式:1.PPPoE数据报文最开始的4位为版本域(Version),协议中给出了明确的规定,这个域填充的内容为0x01.2. 版本域后是4位的类型域(Type),根据协议规定,这个域填充的内容也是0x01.3. 代码域(Code)占用一个字节,对于PPPoE的不同阶段这个域内容也不一样。
4. 会话ID(Session ID)占用两个字节,当访问集中器(AccessConcentrator)还没有分配唯一的会话ID给用户主机的话,改域的内容必须填充为0x0000;一旦主机获取了会话ID后,那么在后续的所有报文里面必须填充那个唯一的会话ID。
5.PPPoE的Payload长度(Length)占两个字节。
PPPoE的Payload可以由多个TLV组成,每个包括Tag_Type,Tag_Length,Tag_Vlaue。
PPPoE建立过程可以分为Discovery阶段和PPP会话阶段。
Discovery阶段是一个无状态的阶段,该阶段主要是选择接入服务器,确定所要建立的PPP会话标识符SessionID,同时获得对方点到点的连接信息;PPP会话阶段执行标准的PPP过程一、发现阶段(Discovery)PPPoE的发现阶段一共分为4步,分别是:PADI(PPPoE Active DiscoveryInitiation),PADO(PPPoE Active Discovery Offer),PADR(PPPoE ActiveDiscovery Request),PADS(PPPoE Active DiscoverySession-confirmation)。
1第一天:pppoe的数据包深入了解,点对点协议(ppp)23Pppoe分为发现阶段和会话阶段,发现阶段分为PADI,PADO,PADR,PADS.4pppoe的数据报文依次为目的MAC(6字节=48bit),源MAC(6字节),协议类5型(2字节为ox8863),版本(VER 4bit 为0001),字段和类型(TYPE 4bit 0001), 6代码(CODE 8bit),版本标识号码(SESSION-ID 16bit 为ox0000),长度(LENGTH 716bit),静载荷(数据域)。
8发现报文的数据域格式为TAG(类型-长度),主机名称(15个字节),TAG(类9型-长度),主机标识符(4个字节),TAG(类型-长度),AC-Cookie(18个字节)。
10采用的是TLV(类型-长度-值)11PPPOE数据报文中Tag(标记)的格式12对于发现阶段的PPPOE数据报文而言,它的净载荷可能包含零个或多个Tag 13(标记),实际上这些标记的意义非常类似于PPP配置参数选项,它同样也是14要经过协商的。
对于PPPOE协议而言,没有像PPP的配置参数选项那样定义了15很多细节,而只是一个初略的定义,因此在实际当中实现这个过程会依据不同16厂商的设备有不同。
首先还是让我们看一下承载在PPPOE报文数据域中的标记17封装格式,如图2。
18(图2 标记的封装格式)19从图2中可以看出,标记的封装格式采用的是大家所熟知的TLV结构,也即20是(类型+长度+数据)。
标记的类型域为2个字节,下表列出了各种标记类型21的含义:22231.PADI24PPPOE发现阶段的第一步,也即是由用户首先发送这样一个报文。
用户主机是25以广播的方式发送这个报文,所以该报文所对应的以太网帧的目的地址域应填26充为全1,而源地址域填充用户主机的MAC地址。
广播包可能会被多个访问集中27器接收到。
28292.PADO30PPPOE发现阶段的第二步,也即是由访问集中器回应各用户主机发送的31PADI报文,此时该报文所对应的以太网帧的源地址填充访问集中器的MAC地址,32而目的地址则填充从PADI中所获取的用户主机的MAC地址。
PPPoE协议工作原理PPPoE(Point-to-Point Protocol over Ethernet)是一种在以太网上运行的数据链路层协议,它允许用户通过以太网连接到互联网服务提供商(ISP)的网络。
本文将详细介绍PPPoE协议的工作原理。
1. 概述PPPoE协议是在以太网上模拟点对点连接的一种协议。
它将PPP(Point-to-Point Protocol)封装在以太网帧中,通过以太网将数据包传输到ISP的服务器,从而实现用户与ISP之间的通信。
2. PPPoE会话的建立在建立PPPoE会话之前,用户需要拥有一个有效的账户和密码。
以下是PPPoE会话建立的过程:2.1 认证阶段用户的拨号客户端(例如路由器)向ISP的拨号服务器发送一个PPPoE Active Discovery Initiation(PADI)数据包,该数据包包含用户的账户和密码等信息。
2.2 服务器选择ISP的拨号服务器收到PADI数据包后,会发送一个PPPoE Active Discovery Offer(PADO)数据包给用户,该数据包包含可用的服务名称和服务器IP地址等信息。
用户的拨号客户端会根据PADO数据包选择一个合适的服务器。
2.3 会话建立用户的拨号客户端向选择的服务器发送一个PPPoE Active Discovery Request (PADR)数据包,请求建立PPPoE会话。
服务器收到PADR数据包后,会发送一个PPPoE Active Discovery Session-confirmation(PADS)数据包给用户,确认会话建立。
2.4 认证和配置在会话建立后,用户的拨号客户端会发送一个PPP认证请求给服务器,服务器验证用户的账户和密码。
一旦认证通过,服务器会为用户分配一个IP地址,并发送一个PPP配置请求给用户,告知用户的网络配置信息。
3. 数据传输一旦PPPoE会话建立成功,用户和ISP之间可以进行数据传输。
PPPoE的协商过程摘要:PPPoE是目前应用最广泛的协议之一,宽带拨号、3G上网卡、企业用户认证等都能看到PPPoE的身影,应用范围广随之带来的维护量同样比较大,经常我们会处理拨号、认证不通过、认证超时等问题。
本文通过实验抓包分析来介绍PPPoE的协商过程,方便大家日后处理PPPoE问题时进行快速分析和判断。
:一、pppoe技术简介PPPoE有两个明显的阶段:Discovery(发现)阶段和PPP Session(会话)阶段,具体如下:当一个主机想开始PPPoE进程的时候,它必须先识别接入端的以太网MAC 地址,建立PPPoE的SESSION ID。
这就是Discovery阶段的目的。
当PPPoE进入Session阶段后PPP报文就可以作为PPPoE帧的净荷封装在以太网帧发到对侧,SESSION ID必须是Discovery阶段确定的ID,MAC地址必须是对侧的MAC地址,PPP报文从Protocol ID开始。
在Session阶段,主机或服务器任何一方都可发PADT报文通知对方结束本Session。
二、pppoe的帧格式及交互过程1.pppoe帧格式介绍首先大家必须了解的是pppoe是数据链路层协议,因此它肯定是封装在以太网帧中。
简单来说我们可以把PPPOE报文分成两大块,一大块是PPPOE 的数据报头,另一块则是PPPOE的净载荷(图中数据区),对于PPPOE报文数据域中的内容会随着会话过程的进行而不断改变,有此变产生了pppoe 的发现阶段的数据报文格式:PADI(PPPoE发现初始报文)PADO(PPPoE发现提供报文)PADR(PPPoE发现请求报文)PADS(PPPoE发现会话确认报文)PADT(PPPoE发现终止报文)2.pppoe交互过程那么上边讲到的五种报文都什么时候用到呢?下面我们通过实验中的抓包信息结合pppoe原理具体分析一下pppoe的交互过程(只有发现阶段)。
第一步:PC向网络中发送广播发现报文。
一、什么是PPPOE?在一个局域网中实现多台主机通过一个桥接入设备,与远程集中器进行多个PPP会话的一种标准。
简单来说就是拨号正确就可以上网。
二、PPPOE实现的具体过程PPPOE分为2个阶段:发现阶段和会话阶段。
发现阶段又可分为4步:1,用户主机首先广播一个PADI(pppoe action discovery initation)报文,以太帧的目的地址全置1,源地址写入主机的MAC地址(代码0X09)。
2,集中器回应用户主机一个PADO(PPPOE action discover offer)报文,源地址是集中器的MAC地址,目的地址写的是用户主机地址(代码0X07)。
3,用户主机单播一个PADR(pppoe action discover request)报文,源地址时主机MAC,目的地址是集中器的MAC地址(代码0X19)。
4,集中器回应用户主机一个PADS(pppoe action discover session-confirmation)报文,集中器接受到PADR就准备进入PPP会话了,所以报文中会携带这个会话的ID(代码0X65)。
会话阶段:Pppoe会话建立后,ppp就会以任何其他的PPP封装形式发送,且session ID一定不会改变。
整个会话过程就是PPP的会话过程,PPP链路分为5个状态:1,链路断开;2,链路建立阶段;3,认证阶段;4,网络层协议阶段;5,链路终止阶段。
会话连接后可随时发送PADT(pppoe action discovery terminate)来终止PPPOE(代码0XA7)。
三、PPPOE数据报文格式PPPOE的报文有版本,类型,代码,会话ID,长度,数据段。
版本,类型,都是4bit协议中规定填0X01;代码1个字节表示是哪种数据报(0X09为PADI);会话ID是2个字节,在PADS之前都是0X0000,确定ID后填入那个ID;长度2个字节表示数据段的长度;数据段在发现阶段是一些TAG,会话阶段携带PPP报文。