精华内容
下载资源
问答
  • 3、 协议概述 4、 有效载荷 5、 发现阶段 5.1、 PPPoE活动发现初始(PADI) 包 5.2、 PPPoE活动发现提议(PADO) 包 5.3、 PPPoE活动发现请求(PADR) 包 5.4、 PPPoE活动发现会话确认(PADS) 包 5.5、 PPPoE活动发现终止...
  • PPPoE协议详解.ppt

    2020-11-20 16:10:00
    通过抓包报文展示PPPOE协议接入的过程,详解PPPOE协议主要关注的协议字段信息,最后总结PPPOE拨号常见问题和解决方案。
  • PPPOE协议详细分析

    2015-11-03 15:49:45
    通过实际PPPOE抓包分析PPPOE协议,非常详细
  • PPP协议和PPPoE协议

    2014-08-25 08:58:50
    PPP协议和PPPoE协议 ISSUE1.0_20061229_A.ppt
  • PPP协议和PPPoE协议.pdf

    2014-05-04 17:45:58
    关于PPP协议和PPPOE协议 比较详细
  • 今天给大家介绍一下PPPoE协议的相关内容,文章浅显易懂,特别适合0基础同学。本文将主要从PPPoE技术背景、基本概念和建立流程三个方面进行说明。 在阅读本文之前,强烈建议您先阅读本文的先导文章:一文看懂PPP协议...

    今天给大家介绍一下PPPoE协议的相关内容,文章浅显易懂,特别适合0基础同学。本文将主要从PPPoE技术背景、基本概念和建立流程三个方面进行说明。
    在阅读本文之前,强烈建议您先阅读本文的先导文章:一文看懂PPP协议——PPP协议简介

    一、PPPoE技术背景

    目前,我们普通家庭在上网的时候,一般都是利用了ADSL技术进行拨号上网。其大致网络架构拓扑图是这样的:

    对于网络运营商而言,搭建如上的网络架构并不难,但是问题在于网络运营商要对用户上网行为进行收费和控制,因此,针对特定的数据包,就必须识别发送方的身份。
    在以太网链路上,以太网帧不具有上述功能,但是在PPP链路上,由于PPP协议自带认证功能,因此可以完美的解决上述问题。但是,PPP链路又无法实现多用户上网的需求。为了解决这个矛盾问题,解决用户上网行为管理和收费的问题,提出了将PPP数据帧封装在以太网数据帧里边从而在以太网网络中传输的技术——PPPoE技术。
    这里的PPP,就是指的PPP协议数据帧,而o就是over的意思,E就是Ethernet的意思,因此,PPPoE形象的说就是“在以太网上的PPP协议”。

    二、PPPoE基本概念

    上文中我们提到了PPPoE的背景——为了解决家庭用户上网行为控制和计费问题。并简要介绍了PPPoE的实现原理。PPPoE在数据链路层依旧是采用以太网格式的数据帧进行封装,但是在以太网封装完毕后,会进行PPPoE的数据头封装,PPPoE包括PPPoE头和PPPoE数据段两个部分,而PPPoE数据段部分中又包含了PPP帧和正常的数据。另外,在这里要特比注意:这里的PPP帧并不是一个完整的PPP帧,它只包含了PPP帧的Protocol字段和正常的数据。其他的字段(如FLAG、FCS等)在PPPoE建立过程中并不需要。PPPoE数据包封装如下所示:
    在这里插入图片描述

    三、PPPoE建立流程

    上文中我们提到了PPPoE的数据包格式,那么PPPoE到底是如何实现的呢?下面我们一起来看一下:
    PPPoE是典型的C/S架构,普通用户一般为Client,而运营商为Server。PPPoE的建立分为Discover阶段和PPP Session阶段。
    在Discover阶段中,数据通信流程如下:
    在这里插入图片描述
    如上图所示,当Client要运行PPPoE时,首先以广播的形式发送一个PADI(PPPoE Active Discovery Initiation)报文,该报文中含有Client端要请求的服务信息,PPPoE服务器在收到该报文后,会以单播的方式发送一个PADO(PPPoE Active Discovery Offer)报文,对Client端的PADI报文进行回应。PPPoE Client端在收到这个报文后,会向PPPoE Server发送PADR(PPPoE Active Discovery Request)报文。在这个报文中,PPPoE Client会创建并携带一个PPPoE Session。之后,PPPoE Server还会向客户端发送PADS(PPPoE Active Discovery Session-confirmation)报文,表示收到了该Session ID。
    到目前为止,Discover阶段已经结束了,PPPoE客户端和PPPoE服务端已经协商好了Session-ID,以后的PPPoE会话就会使用这个Session-ID了。
    在Discover阶段结束后,PPPoE会话会进入到PPP Session阶段,在该阶段中,会完成PPPoE客户端和服务端的认证过程,最终会依照PPP协议中连接的建立流程,完成链路层和网络层参数的协商,最后就能够正常通信了。
    原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200/article/details/118583965

    展开全文
  • PPPoE协议

    千次阅读 2016-12-13 11:16:01
    通过pppoe协议,远端接入设备能够实现对每个接入用户的控制和计费。PPPoE协议的作用是:实现有效的用户管理,进行网络接入计费等 PPPoE帧  PPPoE帧的内容作为以太帧的负载存在, 当一个以太

     PPP over Ethernet(PPPoE)协议,是在以太网络中转播PPP帧信息的技术,尤其适用于ADSL等方式。可以使以太网的主机通过一个简单的桥接设备连到一个远端的接入集中器上。通过pppoe协议,远端接入设备能够实现对每个接入用户的控制和计费。PPPoE协议的作用是:实现有效的用户管理,进行网络接入计费等

    PPPoE帧

      PPPoE帧的内容作为以太帧的负载存在, 当一个以太帧为PPPoE帧时,其Len/Type字段应该为0x8863(表示PPPoE的发现阶段)或者0x8864(表示PPPoE的会话阶段)。

    这里写图片描述 
    Ver: 版本号, 4bit, PPPoE规范的本版本为0x01 
    Type: 类型, 4bit, PPPoE规范的本版本应设置为0x01 
    Code:代码字段、8bit, 根据两阶段中各种数据包的不同功能而值不同。

    Code Description
    0x00 表示PPP会话阶段
    0x09 PADI 报文
    0x07 PADO报文
    0x19 PADR报文
    0x65 PADS报文

    Session-ID:会话ID, 8bit, 是一个网络字节序的无符号值, 其值会在Discovery数据包中定义。 对一个给定的PPP会话来说,该值是一个固定值。 Session-ID 与 以太网Src_addr 和 Dst_addr一起实际定义了一个PPP会话。 Session-ID不允许使用0xFFFF(该值保留作将来使用)。 
    Length: PPPoE负载长度,不包括以太网头部和PPPoE头部。 
    Payload: PPPoE帧的净负载,在不同的阶段PPPoE的Payload字段的格式有很大区别。在PPPOE的发现阶段时,该域内会填充一些Tag(标记);而在PPPOE的会话阶段,该域则携带的是PPP的报文。

    下图是一个PPPoE的PADO报文

    PPPoE链接 建立过程

    PPPoE链路的建立 和PPP会话阶段 
    发现阶段:

    ClientClientServerServerPADIPADOPADRPADS

    会话阶段:

    ClientClientServerServerLCPPAP/CHAP认证NCP链路建立

    断开连接:

    ClientClientServerServerPADT(Terminate)

    (一)发现阶段:

    当主机开始PPPoE进程时,它必须先识别接入端的以太网MAC地址,建立PPPoE的Session_ID。这就是Discovery阶段的目的。 
    PPPoE发现阶段的主要目的是确定一对一的关系,包括以下两部分

    • 互相识别对方的Mac地址 (包括查找NAS服务器)
    • 建立PPPoE的Session_ID

    Discovery阶段由四个步骤组成。完成之后通信双方都知道了PPPoE Session_ID以及对方以太网地址,它们共同确定了唯一的PPPoE会话。

    ClientClientServerServerPADI(PPPoE Active Discovery Initial) Dst:广播 Src:ClientPADO(PPPoE Active Discovery Offer) Dst:Client Src:ServerPADR(PPPoE Active Discovery Request) Dst:Server Src:ClientPADS(PPPoE Active Discovery Session-confirmation) Dst:Client Src:Server

    1. PADI 报文

    主机在本以太网内“广播“一个PADI(PPPoE Active Discovery Initial)报文,在此报文中包含主机想要得到的服务类型信息。 
    在PPPoE的初始阶段,接入主机并不知道访问集中器(NAS)的MAC地址,这时就采用类似于ARP的方式广播PADI报文。以太网上的访问集中器如果配置了PPPoE的业务,就会实时监测网络上的PPPoE报文。 
    PADI报文的目的地址为以太网的广播地址0×ffffffffffff,CODE(代码)字段值为0×09,SESSION-ID(会话ID)字段值为0×0000。 
    如果在PPPoE的服务器端配置service-name,client将发送Discovery阶段的PADI报文给服务器端请求建立连接。 
    如果该PADI报文中包含有不为空的service-name时,服务器端将用配置的service-name和该报文中的service-name进行完全匹配性检测。如果两者完全相同,服务器端提供后续服务,否则,服务器端不提供服务。 
    以上是两者的service-name都不为空时的情况。但如果两者中有一个service-name为空,就不进行此项检测,直接按照原来的程序执行。

    2. PADO报文

    以太网内的所有服务器收到这个PADI报文后,将其中请求的服务与自己能提供的服务进行比较,可以提供此服务的服务器发回PADO(PPPoE Active Discovery Offer)报文。 
    PADO报文的CODE字段值为0×07,SESSION-ID字段值仍为0×0000。 
    这里写图片描述

    3. PADR报文

    主机可能收到多个服务器的PADO报文,主机将依据PADO的内容,从多个服务器中选择一个,并向它发回一个会话请求报文PADR(PPPoE Active Discovery Request)。 
    由于用户主机在收到PADO报文后,就获知了访问集中器的MAC地址,因此PADR的报文以单播的形式存在。 
    PADR报文的CODE字段为0x19,SESSION_ID字段值仍为0×0000。 
    这里写图片描述

    4. PADS报文

    服务器产生唯一的会话标识,标识和主机的这段PPPoE会话。并把此会话标识通过会话确认报文PADS(PPPoE Active Discovery Session-confirmation)发回给主机,若没有错误,双方进入PPP Session阶段。 
    PADS报文,CODE字段值为0×65,SESSION-ID字段值为接入集中器所产生的一个惟一的PPPoE会话标识号码。 
    接入服务器发送确认数据包后,它就可以进入到PPP会话阶段。当主机接收到该确认数据包后,它就可以进入PPP会话阶段。

    这里写图片描述

    (二)PPP会话阶段

    PPP会话的建立,需要两端的设备都发送LCP数据包来配置和测试数据通信链路。 
    用户主机与接入集中器根据在发现阶段所协商的PPP会话连接参数进行PPP会话。一旦PPPoE会话开始,PPP数据就可以以任何其他的PPP封装形式发送。所有的以太网帧都是单播的。PPPoE会话的SESSION-ID一定不能改变,并且必须是发现阶段分配的值。

    PPP工作流程

    a) LCP协商阶段:创建链路完成链路的启动、测试、任选参数的协商和最终链路的断开 
    b)认证阶段: LCP向对端发送协商请求, 双方确定链路的配置参数后,LCP向认证层发送Up事件。常用的认证协议有PAP(口令验证协议)和CHAP(挑战握手验证协议)。 
    c) NCP协商阶段(IPCP协议):调用链路层创建阶段选定的网络控制层协议。主要包括动态分配IP地址功能等。常用的NCP协议有IPCP协议。 
    d)会话维持阶段:进行PPPoE心跳保活 
    e)PPP正常终结: NCP分别终结,然后LCP终结,最后物理层终结

    1. LCP协商阶段

      LCP的Client和Server进行报文的交互,协商一些通信参数,LCP协商阶段完成最大传输单元(MTU),是否进行认证和采用何种认证方式(Authentication Type)的协商。 
      LCP协议数据报文可以分为以下几种: 
    链路配置报文:用来建立和配置一条链路,主要包括Configure-Request、Configure-Ack、Configure-Nak和Configure-Reject报文 
    链路维护报文:用来管理和调试链路,主要包括Code-Reject、Protocol-Reject、Echo-Request、Echo-Reply和Discard-Request报文 
    链路终止报文:用来终止一条链路,主要包括Terminate-Request和Terminate-Reply报文

    LCP协商过程

    ClientClientServerServerConfig-RequestConfig-AckConfig-RequestConfig-Ack

    LCP 两端通过发送LCP Config-Request和Config-Ack交互协商选项。 LCP一方通过发送LCP Config-Request来向另一方请求自己需要的LCP协商选项。如果Config-Request报文的接收方支持并接受这些选项则回复LCP Config-Ack报文。如果Config-Request部分(或者全部)不支持所有的LCP选项则回复其他报文。 
    (1)Config-ACK:若完全支持对端的LCP选项,则回应Config-ACK报文,报文中必须完全协带对端Request报文中的选项。 
    (2)Config-NAK:若支持对端的协商选项,但不认可该项协商的内容,则回应Config-NAK报文,在Config-NAK的选项中填上自己期望的内容,如:对端MRU值为1500,而自己期望MRU值为1492,则在Config-NAK报文中埴上自己的期望值1492。 
    (3)Config-Reject:若不能支持对端的协商选项,则回应Config-Reject报文,报文中带上不能支持的选项,如Windows拨号器会协商CBCP(被叫回呼),而ME60不支持CBCP功能,则回将此选项拒绝掉。

    —-Config-request报文——— 
    这里写图片描述 
    —-Config-Ack报文——— 
    这里写图片描述

    2. 认证阶段

      PPP认证,常用认证协议有PAP(口令验证协议)和CHAP(挑战握手验证协议) 
      会话双方通过LCP协商好的认证方法进行认证,如果认证通过了,才可以进行下面的网络层的协商。认证过程在链路协商结束后就进行。 
    PAP验证: 两次握手,明文传输口令,安全性低 
    CHAP验证: 三次握手, 密文传输口令。 
    PAP验证过程

    ClientClientServerServerRadiusRadiusAuth-ReqAuth-ReqAuth-AckAuth-ACK

    CHAP验证过程:

    ClientClientServerServerRadiusRadiusWaitChallenge(CHAP)ResponseResponseSuccessSuccess

    3. NCP协商协议

      NCP有很多种,如IPCP、BCP、IPv6CP,最为常用的是IPCP(Internet Protocol Control Protocol)协议。NCP的主要功能是协商PPP报文的网络层参数,如IP地址,DNS Server IP地址,WINS Server IP地址等。PPPoE用户主要通过IPCP来获取访问网络的IP地址或IP地址段。 
      NCP流程与LCP流程类似,用户与ME设备之间互相发送NCP Config-Request报文并且互相回应NCP Config-Ack报文后,标志NCP己协商完,用户上线成功,可以正常访问网络了。 
      NCP协商协议的基本流程如下:

    ClientClientServerServerConfiguration-RequestConfiguration-ACKConfiguration-RequestConfiguration-ACK

    用户和接入设备对IP服务阶段的一些要求进行多次协商,以决定双方都能够接收的约定。 
      通LCP类似,当Request中的一些选项不被接收方接受时, 接收方不会回复Configuration-ACK报文,而是回复其他如Configuration-NACK报文。

    NCP Configuration-Request报文 
    这里写图片描述

    NCP Configuration-NAK报文

    这里写图片描述

    4. 会话维持(Session Keep-alive)

    设备主动发送Echo Request进行PPPoE心跳保活,若3次未得到服务器的响应,则设备主动释放地址。发LCP Echo Request 的时候,魔术字字段要和之前通信的Configure_Request使用的魔术字字段保持一致。 
    有些设备或终端不支持主动发送 Echo-Request 报文, 只能支持回应Echo-Reply报文。

    5. 会话结束(Session Termination)

    PPPoE 还有一个PADT(PPPOE Active Discovery Terminate)分组,它可以在会话建立后的任何时候发送,来终止PPPoE会话,也就是会话释放。它可以由主机或者接入集中器发送,目的地址填充为对端的以太网的MAC地址。 
    当对方接收到一个 PADT(PPPOE Active Discovery Terminate)分组,就不再允许使用这个会话来发送PPP业务。PADT分组不需要任何标签,其CODE字段值为0xa7(PADT Code),SESSION-ID字段值为需要终止的PPP会话的会话标识号码。在发送或接收PADT后,即使正常的PPP终止分组也不必发送。PPP对端应该使用PPP协议自身来终止PPPoE会话,但是当PPP不能使用时,可以使用PADT。

    展开全文
  • pppoe 协议协议协议协议pppoe 协议协议协议协议pppoe 协议协议协议协议pppoe 协议协议协议协议
  • PPPoE协议交互过程

    2019-12-04 14:39:25
    PPPoE协议交互过程1、发现阶段(PPPoED:PPPoE Discovery)1.1 PADI(PPPoE Active Dis...

    PPPoE(Point to Point Protocol over Ethernet,基于以太网的点对点协议)的工作流程包含发现(Discovery)和会话(Session)两个阶段,发现阶段是无状态的,目的是获得 PPPoE 终端(在局端的ADSL设备上)的以太网 MAC 地址,并建立一个惟一的 PPPoE SESSION-ID。发现阶段结束后,就进入标准的PPP会话阶段。

    1、发现阶段(PPPoED:PPPoE Discovery)

    1.1 PADI(PPPoE Active Discovery Initiation)

    主机广播发起分组,分组的目的地址为以太网的广播地址 0xffffffffffff,CODE(代码)字段值为0×09(PADI Code),SESSION-ID(会话ID)字段值为0x0000。PADI分组必须至少包含一个服务名称类型的标签(Service Name Tag,字段值为0x0101),向接入集中器提出所要求提供的服务。

    1.2 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值相同。

    1.3 PADR(PPPoE Active Discovery Request)

    主机在可能收到的多个PADO分组中选择一个合适的PADO分组,然后向所选择的接入集中器发送PPPoE有效发现请求分组。其中CODE字段为0x19(PADR Code),SESSION_ID字段值仍为0x0000。PADR分组必须包含一个服务名称类型标签,确定向接入集线器(或交换机)请求的服务种类。当主机在指定的时间内没有接收到PADO,它应该重新发送它的PADI分组,并且加倍等待时间,这个过程会被重复期望的次数。

    1.4 PADS(PPPoE Active Discovery Session-confirmation)

    接入集中器收到PADR分组后准备开始PPP会话,它发送一个PPPoE有效发现会话确认PADS分组。其中CODE字段值为0×65(PADS Code),SESSION-ID字段值为接入集中器所产生的一个惟一的PPPoE会话标识号码。PADS分组也必须包含一个接入集中器名称类型的标签以确认向主机提供的服务。当主机收到PADS 分组确认后,双方就进入PPP会话阶段。PADS和PADR的Host-Uniq Tag值相同。

    PPPoE的协商流程
    图1 PPPoE的协商流程

    2、会话阶段(PPPoES:PPPoE Session)

    PPP会话的建立,需要两端的设备都发送LCP数据包来配置和测试数据通信链路。
    用户主机与接入集中器根据在发现阶段所协商的PPP会话连接参数进行PPP会话。一旦PPPoE会话开始,PPP数据就可以以任何其他的PPP封装形式发送。所有的以太网帧都是单播的。PPPoE会话的SESSION-ID一定不能改变,并且必须是发现阶段分配的值。

    2.1 LCP协商阶段(LCP:Link Control Protocol)

    LCP的Request主机和AC都要给对方发送,LCP协商阶段完成最大传输单元(MTU),是否进行认证和采用何种认证方式(Authentication Type)的协商。

    (1)LCP协议数据报文分类

    链路配置报文:用来建立和配置一条链路,主要包括Configure-Request、Configure-Ack、Configure-Nak和Configure-Reject报文
    链路维护报文:用来管理和调试链路,主要包括Code-Reject、Protocol-Reject、Echo-Request、Echo-Reply和Discard-Request报文
    链路终止报文:用来终止一条链路,主要包括Terminate-Request和Terminate-Reply报文

    (2)LCP协商过程

    LCP协商的过程如下:协商双方互相发送一个LCP Config-Request报文,确认收到的Config-Request报文中的协商选项,根据这些选项的支持与接受情况,做出适当的回应。若两端都回应了Config-ACK,则标志LCP链路建立成功,否则会继续发送Request报文,直到对端回应了ACK报文为止。

    LCP协商的基本过程
    图2 LCP协商的基本过程

    说明:
    (1)Config-ACK:若完全支持对端的LCP选项,则回应Config-ACK报文,报文中必须完全协带对端Request报文中的选项。
    (2)Config-NAK:若支持对端的协商选项,但不认可该项协商的内容,则回应Config-NAK报文,在Config-NAK的选项中填上自己期望的内容,如:对端MRU值为1500,而自己期望MRU值为1492,则在Config-NAK报文中埴上自己的期望值1492。
    (3)Config-Reject:若不能支持对端的协商选项,则回应Config-Reject报文,报文中带上不能支持的选项,如Windows拨号器会协商CBCP(被叫回呼),而ME60不支持CBCP功能,则回将此选项拒绝掉。
    需要指出的是PPP协商是双向的,也就是说双方都会发出Configure-Request请求,并且有可能协商多次才能成功,最理想的就是一对Configure-Request&Configure-Ack就协商成功,下面是几种常见的协商过程。

    一次交互
    一次交互
    两次交互--Nak情况
    两次交互--Nak情况
    两次交互--Reject情况
    两次交互--Reject情况
    多次交互
    多次交互

    2.2 认证阶段(PPP Authentication:PAP/CHAP)

    会话双方通过LCP协商好的认证方法进行认证,如果认证通过了,才可以进行下面的网络层的协商。认证过程在链路协商结束后就进行。

    2.2.1 PAP(Password Authentication Protocol,口令认证协议)认证

    PAP为两次握手协议,它通过用户名及口令来对用户进行验证。PAP验证过程如下:
    当两端链路可相互传输数据时,被验证方发送本端的用户名及口令到验证方,验证方根据本端的用户表(或Radius服务器)查看是否有此用户,口令是否正确。如正确则会给对端发送Authenticate-ACK报文,通告对端已被允许进入下一阶段协商;否则发送NAK报文,通告对端验证失败。此时,并不会直接将链路关闭。只有当验证不过次数达到一定值(缺省为10)时,才会关闭链路。

    PAP的特点是在网络上以明文的方式传递用户名及口令,如在传输过程中被截获,便有可能对网络安全造成极大的威胁。因此,它适用于对网络安全要求相对较低的环境。

    PAP认证流程
    PAP认证流程

    2.2.2 CHAP(Challenge Handshake Authentication Protocol,质询握手认证协议)

    认证 CHAP为三次握手协议。只在网络上传输用户名,并不传输用户口令,因此它的安全性要比PAP高。CHAP的验证过程为: 首先由验证方(Server)向被验证方(Client)发送一些随机产生的报文,并同时将本端的主机名附带上一起发送给被验证方。被验证方接到对端对本端的验证请求(Challenge)时,便根据此报文中验证方的主机名和本端的用户表查找用户口令字,如找到用户表中与验证方主机名相同的用户,便利用报文ID、此用户的密钥用Md5算法生成应答(Response),随后将应答和自己的主机名送回。验证方接到此应答后,用报文ID、本方保留的口令字(密钥)和随机报文用Md5算法得出结果,与被验证方应答比较,根据比较结果返回相应的结果(ACK or NAK)

    (1)接受认证端发送Challenge
    (2)申请认证端发验证请求报文
    (3)接受认证端回应认证接受报文
    经过以上三次报文交互后,CHAP认证完成。

    CHAP认证流程
    CHAP认证流程

    2.3 NCP协商阶段(NCP:Network Control Protocol)

    NCP有很多种,如IPCP、BCP、IPv6CP,最为常用的是IPCP(Internet Protocol Control Protocol)协议。NCP的主要功能是协商PPP报文的网络层参数,如IP地址,DNS Server IP地址,WINS Server IP地址等。PPPoE用户主要通过IPCP来获取访问网络的IP地址或IP地址段。

    NCP流程与LCP流程类似,用户与ME设备之间互相发送NCP Config-Request报文并且互相回应NCP Config-Ack报文后,标志NCP己协商完,用户上线成功,可以正常访问网络了。

    IPCP的协商过程是基于PPP状态机进行协商的。经过双方协商,通过配置请求、配置确认、配置否认等包文交换配置信息,最终由initial (或closed)状态变为Opened状态。IPCP状态变为Opened的条件必须是发送方和接收方都发送和接收过确认包文。

    IPCP协商过程中,协商包文可包含多个选项,即参数。各个选项的拒绝或否认都不能影响IPCP的UP,IPCP可以无选项协商,无选项协商也同样能够UP。选项有IP Address、网关、掩码等,其中IP Address是最重要的一个选项,有些厂家的实现必须这个选项得到确认,大多数厂家的实现允许这个选项为空。

    NCP的基本协商流程见下图:

    NCP的基本协商流程
    NCP的基本协商流程
    用户和接入设备对IP服务阶段的一些要求进行多次协商,以决定双方都能够接收的约定。

    如:IP业务阶段使用的IP压缩协议等。双方的协议是通过报文中包含的Option项进行协商的,每一个Option都是一个需要协商的问题。

    最后双方都需要对方答复Configure_Ack的同意报文。

    2.4 会话维持(Session Keep-alive)

    设备主动发送Echo Request进行PPPoE心跳保活,若3次未得到服务器的响应,则设备主动释放地址。发LCP Echo Request 的时候,魔术字字段要和之前通信的Configure_Request使用的魔术字字段保持一致。

    有些设备或终端不支持主动发送 Echo-Request 报文, 只能支持回应Echo-Reply报文。

    2.5 会话结束(Session Termination)

    PPPoE 还有一个PADT(PPPOE Active Discovery Terminate)分组,它可以在会话建立后的任何时候发送,来终止PPPoE会话,也就是会话释放。它可以由主机或者接入集中器发送,目的地址填充为对端的以太网的MAC地址。

    当对方接收到一个 PADT(PPPOE Active Discovery Terminate)分组,就不再允许使用这个会话来发送PPP业务。PADT分组不需要任何标签,其CODE字段值为0xa7(PADT Code),SESSION-ID字段值为需要终止的PPP会话的会话标识号码。在发送或接收PADT后,即使正常的PPP终止分组也不必发送。PPP对端应该使用PPP协议自身来终止PPPoE会话,但是当PPP不能使用时,可以使用PADT。

    3、抓包分析PPPoE连接过程

    PPPoE抓包
    从上述过程可以分析出,在进行PPPoE拨号过程中,前5个包是PPPoE发现阶段,该过程正常完成了PADI、PADO、PADR、PADS;接着是会话阶段中的双向LCP协商过程,第8个包为Configuration Reject包,两次交互后,最终完成了Configuration Ack报文的交互,完成了LCP协商过程。第15个包发起身份认证请求,但是服务器回复Authenticate-Nak报文,服务器发出终止请求,后续相关交互终止了该次会话过程。
    从上述抓包分析来看,我们可以根据PPPoE抓包来分析该协议的交互流程,进而定位PPPoE的相关bug。

    展开全文
  • PPPoE协议详解,详细描述PPPOE协议的交互过程
  • PPPoE(英语:Point-to-Point Protocol Over Ethernet),以太网上的点对点协议,是将点对点协议(PPP)封装在以太网(Ethernet)框架中的一种网络隧道协议。由于协议中集成PPP协议,所以实现出传统以太网不能提供的...

    PPPoE(英语:Point-to-Point Protocol Over Ethernet),以太网上的点对点协议,是将点对点协议(PPP)封装在以太网(Ethernet)框架中的一种网络隧道协议。由于协议中集成PPP协议,所以实现出传统以太网不能提供的身份验证、加密以及压缩等功能,也可用于缆线调制解调器(cable modem)和数字用户线路(DSL)等以以太网协议向用户提供接入服务的协议体系。

    与传统的接入方式相比,PPPoE具有较高的性能价格比,它在包括小区组网建设等一系列应用中被广泛采用,目前流行的宽带接入方式ADSL 就使用了PPPoE协议。

    随着降低成本的宽带技术日益盛行,DSL(digital subscriber line 数字用户线路)也使用的越来越多。它使用电话设施,只投入非常少的改造成本,将传统电话通信线缆中没有使用的部分用作高速数据传输服务,使得通信基础设施更加充分的使用,让语音和数据共享,这是DSL网络的核心基础。

    通过ADSL方式上网的计算机大都是通过以太网卡(Ethernet)与互联网相连的。同样使用的还是普通的TCP/IP方式,并没有附加新的协议。另外一方面,调制解调器的拨号上网,使用的是PPP协议,即Point to Point Protocol,点到点协议,该协议具有用户认证及通知IP地址的功能。PPP over Ethernet(PPPoE)协议,是在以太网络中转播PPP帧信息的技术,尤其适用于ADSL等方式。

    DSL网络的表现形式非常多,但大致可以归类为两种:ADSL(Asymmetric Digital Subscriber Line)非对称数字用户线路和SDSL(Symmetric Digital Subscriber Line)对称数字用户线路。

    ADSL:非对称数字用户线路它提供不对称的上床和下载速度,踏实DSL市场上部署最多的一种宽带技术,提供1.58Mbit/s的下载速度和16kbit/s1Mbit/s的上传速度,它允许电话线上传输语音的同时也可以传输数据。所以用户在使用ADSL网络时,能打电话也能上网。
    SDSL:它提供对称的上传与下载速度,其速率范围在128kbit/s~2.32mbit/s之间,常见的速率为768kbit/s。

    PPPoE: PPP over Ethernet,运行在以太网上的PPP,传统的PPP协议是针对点对点的链路所设计的广域网协议。它能方便进行认证、监控、计时,因为线路只有两个点,一个用户的PPP接入端,另一个就是ISP接受PPP的服务端。
    PPPoE的工作过程:
    发现阶段:

    1. 用户主机用广播的方式发出PADI (PPPOE Active Discovery Initiatio) 包,准备去获得所有可连接的接入设备(获得其MAC地址);
    2. 接入设备收到PADI包后,返回PADO (PPPOE Active Discovery Offer) 作为回应;
    3. 用户主机从收到的多个PADO包中,根据其名称类型名或者服务名,选择一个合适的接入设备,然后发送PADR (PPPOE Active Discovery Request) 包,另外如果一个用户主机在发出PADI后在规定时间内没有收到PADO,则会重发PADI;
    4. 接入设备收到PADR包后,返回PAS (PPPOE Active Discovery Session-confirmation) 包,其中包含了一个唯一session ID,双方进入PPP会话阶段。

    PPP会话阶段:
    用户主机与接入集中器根据在发现阶段所协商的PPP会话连接参数进行PPP会话。一旦PPPoE会话开始,PPP数据就可以以任何其他的PPP封装形式发送。所有的以太网帧都是单播的。PPPoE会话的SESSION-ID一定不能改变,并且必须是发现阶段分配的值。

    PPPoE还有一个PADT分组,它可以在会话建立后的任何时候发送,来终止PPPoE会话,也就是会话释放。它可以由主机或者接入集中器发送。当对方接收到一个PADT分组,就不再允许使用这个会话来发送PPP业务。SESSION-ID字段值为需要终止的PPP会话的会话标识号码。在发送或接收PADT后,即使正常的PPP终止分组也不必发送。PPP对端应该使用PPP协议自身来终止PPPoE会话,但是当PPP不能使用时,可以使用PADT。

    部分内容来源网络
    助教:马季

    展开全文
  • pppoe_pppoe协议包_源码

    2021-09-30 04:54:10
    pppoe交互协议报文,方便协议学习和问题定位
  • PPP与PPPoE协议

    2021-03-23 08:32:06
    计算机网络实验2 - PPP与PPPoE协议 张自平 201900460035 文章目录实验一: PPP与PPPoE学习背景知识1. PPP2. PPP认证方式2. PPPoEPPPoE的工作过程实验步骤实验环境实验过程准备阶段交换机初始化:建立PPPoE链接任务一...
  • PPPoE协议是公开协议,它与传统的接入方式相比,它具有较高的性能价格比,现在最流行的宽带接入方式ADSL 就使用了PPPoE协议
  • 以太网点对点协议之pppoe协议讲解

    千次阅读 2021-01-02 23:00:17
    PPPoE是以太网点对点协议的首字母缩写(Point to Point ...IETF在1999年发布了PPPoE协议的工作标准。PPPoE的IETF规范是RFC2516。 下面开始介绍pppoe协议。 以太网点对点协议(PPPoE) PPPoE的工作流程包含发现( Disco
  • pppoe 协议协议协议协议pppoe 协议协议协议协议pppoe 协议协议协议协议pppoe 协议协议协议协议
  • PPP 和PPPOE协议介绍

    2019-09-16 09:01:37
    PPP 和PPPOE协议介绍 一.PPP 协议  PPP(Point-to-Point Protocol点到点协议)是为在同等单元之间传输数据包这样的简单链路设计的链路层协议。这种链路提供全双工操作,并按照顺序传递数据包。设计目的主 要是...
  • PPPoE协议交互过程详解及抓包分析

    万次阅读 多人点赞 2018-12-04 19:53:01
    PPPoE协议交互过程1、发现阶段(PPPoED:PPPoE Discovery)1.1 PADI(PPPoE Active Discovery Initiation)1.2 PADO(PPPoE Active Discovery Offer)1.3 PADR(PPPoE Active Discovery Request)1.4 PADS(PPPoE ...
  • PPPOE协议工作流程

    千次阅读 2019-10-30 09:05:19
    PPPoE ( Point to Point Protocol over Ethernet ,基于以太网的点对点协议)的工作流程包含发现( Discovery ) 和会话( Session )两个阶段,发现阶段是无状态的,目的是获得PPPoE 终端(在局端的ADSL 设备上)...
  • PPPOE协议

    2016-03-21 22:48:52
    PPPOE协议 前言 PPPOE(PPP over Ethernet, RFC2516,值得注意的是此RFC不是Standard而是Information类型的)定义了如何在以太网上传输PPP数据包的方法,目前流行的宽带类型 ADSL就是通过PPPoE
  • 1.1 PPPOE协议的基本概念 1 1.1.1 PPPOE协议出现的背景 1 1.1.2 PPPOE协议简介 1 1.2 总结 2 1.3 思考 2 第2章 PPPOE的发现阶段 1 2.1 PPPOE的初始化过程 1 2.1.1 以太网的帧格式 1 2.1.2 PPPOE的数据报文格式 2 ...
  • PPP协议、PPPoE协议、L2TP协议的关系

    千次阅读 2020-02-07 18:14:58
    首先对这3中协议做一个简单的描述: 协议 协议类型 描述 PPP 点对点链路层协议 应用最广泛的点对点协议,可应用在多种网络,改善了SLIP协议的不足 PPPoE 点对点链路层协议 对PPP协议进行扩展,将PPP用于...
  • PPPoE协议应用场景

    千次阅读 2018-12-15 22:20:49
    如图,AR作为PPPoE Client,路由器作为PPPoE Server,终端用户直接通过无线网络访问lnternet。
  • PPP 协议和PPPOE协议

    2013-05-23 16:45:59
    PPP协议和PPPOE协议的详细讲解及举例说明,适于对网络的初学者学习使用,以PPT 格式呈现。
  • PPPoE协议详细介绍

    2011-10-17 18:58:55
    PPPOE协议提供了在广播式的网络(如以太网)中多台主机连接到远端的访问集中器(我们对目前能完成上述功能的设备为宽带接入服务器)上的一种标准。在这种网络模型中,我们不难看出所有用户的主机都需要能独立的初始...
  • PPPOE协议抓包报文

    2020-07-19 18:14:03
    PPPOE报文 网盘:https://pan.baidu.com/s/1gC0Pu39bXQyS4uclgUAd_Q 提取码:fd1l
  • PPPoE协议详解

    万次阅读 2014-06-27 14:46:42
     PPPoE协议的工作流程包含发现和会话两个阶段,发现阶段是无状态的,目的是获得PPPoE终结端(在局端的ADSL设备上)的以太网MAC地址,并建 立一个唯一的PPPoESESSION_ID。发现阶段结束后,就进入标准的PPP会话阶段。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,471
精华内容 3,788
关键字:

pppoe协议