PPPoE协议报文交互流程
pppoe原理协议详解

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用户上线要经过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协议工作原理

协议的工作流程包含发现和会话两个阶段,发现阶段是无状态的,目的是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的工作原理
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拨号流程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)。
最新pppoe报文深入了解

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报文数据域中的标记封装格式:
从上图中可以看出,标记的封装格式采用的是大家所熟知的TLV结构,也即是(类型+长度+数据)。
标记的类型域为2个字节,下表列出了各种标记类型的含义:
标记类型 标记说明
0x0000 表示PPPOE报文数据域中一串标记的结束,为了保证版本的兼容性而保留,在有些报文中有应用。
0x0202 访问集中器名出错。
0x0203 一般性错误。
? 标记的长度域为2个字节,它用来指明标记数据域的长度。
? 标记的数据域中用来放置不同类型标记所对应的相关数据。
2.1.3.2 PADI(PPPOE Active Discovery Initiation)报文
PPPOE发现阶段的第一步,也即是由用户侧首先发送这样一个报文。用户主机是以广播的方式发送这个报文,所以该报文所对应的以太网帧的目的地址域应填充为全1,而源地址域
中器不支持的话,则访问集中器就不会回应PADO报文。
例2:PADO 数据报文
这个报文中包括4个标记,在PADI所提供的标记的基础上又增加了两个标记,一个是访问集中器名,下划线部分即表示访问集中器名(MD5500),而且还包含一个标记结束标记。
2.1.3.4 PADR(PPPOE Active Discovery Request)报文
例4:PADS 数据报文
其中下划线部分为访问集中器给这个PPPOE会话分配的唯一会话ID。
2.1.3.6 PADT(PPPOE Active Discovery Terminate)报文
PADT报文可能在会话进行开始之后的任意时间内被发送,主要是用来终止一个PPPOE会话的止。它可以由主机或访问集中器发送,目的地址填充为对端的以太网的MAC地址
PPPoE协议工作原理

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之间可以进行数据传输。