当前位置:文档之家› pppoe原理协议详解

pppoe原理协议详解

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

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报文为止。

说明:

(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功能,则回将此选项拒绝掉。

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

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

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

PAP为两次握手协议,它通过用户名及口令来对用户进行验证。PAP验证过程如下:

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

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

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

CHAP为三次握手协议。只在网络上传输用户名,并不传输用户口令,因此它的安全性要比PAP高。CHAP的验证过程为:

首先由验证方(Server)向被验证方(Client)发送一些随机产生的报文,并同时将本端的主机名附带上一起发送给被验证方。被验证方接到对端对本端的验证请求(Challenge)时,便根据此报文中验证方的主机名和本端的用户表查找用户口令字,如找到用户表中与验证方主机名相同的用户,便利用报文ID、此用户的密钥用Md5算法生成应答(Response),随后将应答和自己的主机名送回。验证方接到此应答后,用报文ID、本方保留的口令字(密钥)和随机报文用Md5算法得出结果,与被验证方应答比较,根据比较结果返回相应的结果(ACK or NAK)

(1)接受认证端发送Challenge

(2)申请认证端发验证请求报文

(3)接受认证端回应认证接受报文

经过以上三次报文交互后,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的基本协商流程见下图:

用户和接入设备对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。

4.Linux中的PPPoE拨号守护进程(pppd:Point-to-Point Protocol Daemon)

Linux 内核include/uapi/linux/if_pppox.h 中定义了{PADI_CODE,PADO_CODE,PADR_CODE,PADS_CODE,PADT_CODE} 和struct pppoe_tag/pppoe_hdr;PPP/PPPoE 实现代码在/drivers/net/ppp/ 目录下,pppoe.c 中实现了pppoe_connect、pppoe_xmit、pppoe_recvmsg 等接口。

pppd 是一个后台服务进程(daemon),是一个用户空间的进程,所以把策略性的内容从内核的PPP协议处理模块移到pppd 中是很自然的事了。pppd 实现了所有鉴权、压缩/解压和加密/解密等扩展功能的控制协议。

pppd只是一个普通的用户进程,它如何扩展PPP协议呢?这就是pppd与内核中的PPP 协议处理模块之间约定了,它们之间采用了最传统的内核空间与用户空间之间通信方式:设备文件。

设备文件名是/dev/ppp。通过read系统调用,pppd可以读取PPP协议处理模块的数据包,当然,PPP协议处理模块只会把应该由pppd处理的数据包发给pppd。通过write系统调用,pppd可以把要发送的数据包传递给PPP协议处理模块。通过ioctrl系统调用,pppd

可以设置PPP协议的参数,可以建立/关闭连接

PPP帧格式:

PPPoE的报文就是在PPP的报文前面再加上PPPOE头和以太网的报头,使得PPPoE可以通过简单桥接设备连入远端接入设备

PPPOE字段如下:

其中:

TAG_TYPES:(用于Discovery Stage中的协商参数)0x0000 End-Of-List

0x0101 Service-Name

0x0102 AC-Name

0x0103 Host-Uniq

0x0104 AC-Cookie

0x0105 Vendor-Specific

0x0110 Relay-Session-Id

0x0201 Service-Name-Error 0x0202 AC-System-Error

0x0203 Generic-Error

PPP协议的LCP数据报文

下面我们来对PPP协议的LCP数据报文内容进行一下分析和讲解。首先我们需要从数据帧内容过度一下今天的内容。

对于PPP协议的基础内容,PPP数据帧以及PPP模式我们都做了介绍。那么这里我们再来讲解一下PPP协议的LCP数据报文的内容。通过前面的文章,我们知道,LCP数据报文是在链路建立阶段被交换的,它作为PPP的净载荷被封装在PPP数据帧的信息域中。在链路建立阶段的整个过程中信息域的内容是在变化的,它包括很多种类型的报文,所以这些报文也要通过相应的字段来区分。

PPP数据帧的协议域固定填充0xC021。

代码域 1 + 标识域 1 + 长度域+ 数据域

代码域的长度为一个字节,主要是用来标识LCP数据报文的类型的。在链路建立阶段时,接收方收到LCP数据报文的代码域无法识别时,就会向对端发送一个LCP的代码拒绝报文(Code-Reject报文)。

标识域也是一个字节,其目的是用来匹配请求和响应报文。一般而言在进入链路建立阶段时,通信双方无论哪一端都会连续发送几个配置请求报文(Config-Request报文),而这几个请求报文的数据域可能是完全一样的,而仅仅是它们的标识域不同罢了。通常一个配置请求报文的ID是从0x01开始逐步加1的,当对端接收到该配置请求报文后,无论使用何种报文(回应报文可能是Config-Ack、Config-Nak和Config-Reject三种报文中的一种)来回应对方,但必须要求回应报文中的ID(标识域)要与接收报文中的ID一致,当通信设备收到回应后就可以将该回应与发送时的进行比较来决定下一步的操作。

长度域的内容= 总字节数据(代码域+标志域+长度域+数据域)。长度域所指示字节数之外的字节将被当作填充字节而忽略掉,而且该域的内容不能超过MRU的值。

数据域的内容根据不同的LCP数据报文的内容也是不一样的。

下面说一下LCP包括的几种报文类型,不同的报文在标识域中所填充的内容也不同。

LCP报文主要分为1、链路配置报文;2、链路终止报文;3、链路维护报文。

链路配置报文主要包括Config-Request、Config-Ack、Config-Nak和Config-Reject四种报文。

当通信双方需要建立链路时,无论哪一方都需要发送Config-Request报文并携带每一端自已所希望协商的配置参数选项。

当接收方收到Config-Request报文时,会在剩下的三种类型的报文中选择一种来响应对方的请求报文,到底选择哪种报文来响应对方需依据以下两个条件:

不能完全识别配置参数选项的类型域,我们知道一个Config-Request报文中会同时携带

多个配置参数选项,而对于一个支持PPP协议的通信设备也不一定会支持上表中所有列出的配置选项,即使支持,也可能在实际应用中关闭掉某些选项功能。(例如:当使用PPP协议通信的一端可能将一些无用的配置选项都关闭了,而仅支持0x01和0x03两个配置参数选项,因此当对方发送的Config-Request报文中含有0x04配置选项时,对于本端而言这个配置参数选项就无法识别,也即是不支持这个配置参数选项的协商)。

如果能支持完全识别配置参数选项,但接收端也可能不认可Config-Request报文中配置参数选项数据域中的内容(例如:当一端发送魔术字配置参数选项中的魔术字为全0,而对端认为应该为其它值,这种情况就属于不支持配置参数选项中的内容)。

所以依据上面的两个条件,我们就可以明确在回应对方配置请求报文时,采用何种报文回应。

当接收Config-Request报文的一端能识别发送过来的所有配置参数选项且认可所有配置参数选项数据域的内容时,接收端将会给对端回一个Config-Ack报文并将配置请求报文中的配置参数选项原封不动的放置在Config-Ack报文的数据域内(根据协议的规定是不可改变配置参数选项的顺序)。当配置请求报文的发送端收到Config-Ack报后,则会从当前阶段进入到下一个阶段。

当接收Config-Request报文的一端能识别发送端所发送过来的所有配置参数选项,但对部分配置参数选项数据域中的内容不认可时,接收端将会给对端回应一个Config-Nak报文,(注意,是能够识别,只是对部分参数内容不认可,所以不是Config-Reject报文)该报文中只携带不认可的配置参数选项,而这些配置参数选项的数据内容为本端希望的值。然而当接收端收到Config-Nak报文后,会重新发送Config-Request报文,而这个Config-Request报文与上一次所发送的Config-Request报文区别在于那些被对端不认可的配置参数选项的内容被填写到刚刚协商完后再次发送的Config-Request报文中(Config-Nak报文发送回来的那些配置参数选项)。

当接收Config-Request报文的一端不能识别所有的发送端发送过来的配置参数选项时,此时接收端将会向对端回一个Config-Reject报文,该报文中的数据域只携带那些不能识别的配置参数选项(当配置参数选项的类型域不识别时)。当对端接收到Config-Reject报文后,同样会再次发送一个Config-Request报文,这个配置请求报文与上一次发送的区别在于将不可识别的那些配置参数选项给删除了。

链路终止报文分为Terminate-Request和Terminate-Reply两种报文。LCP报文中提供了一种机制来关闭一个点对点的连接,想要关断链路的一端会持续发送Terminate-Request报文,直到收到一个Terminate-Reply为止。接收端一旦收到了一个Terminate-Request报文后,必须回应一个Terminate-Reply报文,同时等待对端先将链路断开后,再完成本端的所有断开的操作。

LCP的链路终止报文的数据域与链路配置报文的数据域不一样,链路终止报文中无需携带各配置参数选项。对于链路终止报文也同样需要ID一致,当接收到Terminate-Reply报文才会做链路终止操作。

最后说一下魔术字的含义,这是在链路建立过程中比较重要的一个参数,这个参数是在Config-Request里面被协商的,主要的作用是防止环路,如果在双方不协商魔术字的情况下,某些LCP的数据报文需要使用魔术字时,那么只能是将魔术字的内容填充为全0;反之,则填充为配置参数选项协商后的结果。

魔术字在目前所有的设备当中都是需要进行协商的,它被放在Config-Request的配置选项参数中进行发送,而且需要由自身的通信设备独立产生,协议为了避免双方可能产生同样的魔术字,从而导致通信出现不必要的麻烦,因此要求由设备采用一些随机方法产生一个独一无二的魔术字。一般来说魔术字的选择会采用设备的系列号、网络硬件地址或时钟。双方产生相同魔术字的可能性不能说是没有的,但应尽量避免,通常这种情况是发产在相同厂商的设备进行互连时,因为一个厂商所生产的设备产生魔术字的方法是一样的。

我们知道魔术字产生的作用是用来帮助检测链路是否存在环路,当接收端收到一个Config-Request报文时,会将此报文与上一次所接收到的Config-Request进行比较,如果两个报文中所含的魔术字不一致的话,表明链路不存在环路。但如果一致的话,接收端认为链路可能存在环路,但不一定存在环路,还需进一步确认。此时接收端将发送一个Config-Nak 报文,并在该报文中携带一个重新产生的魔术字,而且此时在未接收到任何Config-Request 或Config-Nak报文之前,接收端也不会发送任何的Config-Request报文。这时我们假设可能会有以下两种情况发生:

1.链路实际不存在环路,而是由于对方在产生魔术字时与接收端产生的一致,但实际这种情况出现的概率是很小的。当Config-Nak被对端接收到后,应该发送一个Config-Request 报文(此报文中的魔术字为Nak报文中的),当对端接收到后,与上次比较,由于接收端已经在Nak报文中产生了一个不同的魔术字,此时接收端收到的Config-Request报文中的魔术字与上次配置请求报文中不一样,所以接收端可断定链路不存在环路。

2.链路实际上确实存在环路,一段时间后Config-Nak报文会返回到发送该报文的同一端。这时接收端比较这个Config-Nak报文与上一次发出去的一样,因此链路存在环路的可能性又增大了。我们知道当一端收到了一个Config-Nak报文时,又会发送一个Config-Request报文(该报文中的魔术字与Config-Nak中的一致),这样又回到了最初的状态,在这条链路上就会不断的出现Config-Request、Config-Nak报文,因此这样周而复始下去,接收端就会认为PPP链路存在环路的可能性在不断增加,当达到一定数量级时,就可认为此链路存在环路。(注意,不是第一次受到相同的魔术字就判断有环路的)

但在实际应用中根据不同设备实现PPP协议的方法,我们在链路环路检测时可采用两种方法。第一种机制就是如上面所述的,这个过程不断地重复,最终可能会给LCP状态机发一个Down事件,这时可能会使LCP的状态机又回到初始化阶段,又开始新一轮的协商。当然对于某些设备还会采用第二种机制,就是不产生任何事件去影响当前LCP的状态机,而是停留在请求发送状态。但这时认为链路有环路的一端设备需要不断的向链路上发送Echo-Request报文来检测链路环路是否被解除,当接收端收到Echo-Reply报文时,就认为链路环路被解除,从而就可能进行后续的PPP的过程。

首先,ppp从DEAD阶段开始,PPPOE从开始到结束都是从这个阶段开始了,他表示已经准备好开始了,

然后,他会进入establish段,主机和服务器之间通过交换LCP协议报文配置具体参数。

在这个阶段,如果LCP在刚刚的验证方式验证过程中说不要用验证方式进行验证,那么就直接进入network阶段,如果要用验证,就要进入authentication阶段用PAP,或CHAP进行验证,然后才进入network阶段。

在network阶段,用NCP(网络控制协议)对网络层的一些参数进行协商,通常为IPCP 协议和IPXP,他们通常对IP地址的协商,还有IP的压缩协议进行协商。

这样,这条链路就保持通信了,一条链路就建立好了。就可以传输数据啊,上网啊,什么的。

直到你号没钱了,或是你关机有事出门,把拨号关了,都会进入terminate阶段,继而进入dead阶段,终止了一条PPPOE链路的连接。

PPP协议定义如何在点到点的链路上如何传输数据,为两点的用户提供认证和计费。

但是,如果向我们寝室有6台机器,同时都要通过以太网接入设备进入广域网,而且又要同时进行单独的认证和计费等功能,那么就要用到PPPOE这个协议了

PPPOE的意思是point-to -point over ethernet的意思,就是为了同一个以太网中的用户们宽带接入而产生的。

因为以太网中有N台机器,,每个建立的PPP连接都会有一个MAC地址来标识不同。

他的连接包括两个阶段,一个是discovery阶段,一个是PPPsession阶段。

具体的文章,看我以前写的吧。

discovery阶段分为PADI,PADO,PADR,PADS这几个阶段,其中PADS阶段传送回的PADS报文中就有一个连续分配的唯一的session-ID ,这样就进入了

PPP -session阶段。

IPCP协议格式

PPPoE协议工作原理

4.3.2 PPPoE协议工作原理 PPPoE协议的工作流程包含发现和会话两个阶段,发现阶段是无状态的,目的是获得PPPoE 终结端(在局端的ADSL设备上)的以太网MAC地址,并建立一个唯一的PPPoESESSION_ID。发现阶段结束后,就进入标准的PPP会话阶段。 当一个主机想开始一个PPPoE会话,它必须首先进行发现阶段,以识别局端的以太网MAC 地址,并建立一个PPPoESESSION_ID。在发现阶段,基于网络的拓扑,主机可以发现多个接入集中器,然后允许用户选择一个。当发现阶段成功完成,主机和选择的接入集中器都有了他们在以太网上建立PPP连接的信息。直到PPP会话建立,发现阶段一直保持无状态的Client/Server(客户/服务器)模式。一旦PPP会话建立,主机和接入集中器都必须为PPP虚接口分配资源。 PPPoE协议会话的发现和会话两个阶段具体进程如下: 1. 发现(Discovery)阶段 在发现(Discovery)阶段中用户主机以广播方式寻找所连接的所有接入集线器(或交换机),并获得其以太网MAC地址。然后选择需要连接的主机,并确定所要建立的PPP会话识别标号。发现阶段有四个步骤,当此阶段完成,通信的两端都知道PPPoESESSION_ID和对端的以太网地址,他们一起唯一定义PPPoE会话。这四个步骤如下: (1)主机广播一个发起分组(PADI),分组的目的地址为以太网的广播地址0xffffffffffff,CODE (代码)字段值为0x09,SESSION_ID(会话ID)字段值为0x0000。PADI包必须至少包含一个服务名称类型的标签(标签类型字段值为0x0101),向接入集中器提出所要求提供的服务。(2)接入集中器收到在服务范围内的PADI包分组,发送PPPoE有效发现提供包(PADO)分组,以响应请求。其中CODE字段值为0x07 ,SESSION_ID字段值仍为0x0000。PADO分组必须包含一个接入集中器名称类型的标签(标签类型字段值为0x0102),以及一个,或多个服务名称类型标签,表明可向主机提供的服务种类。 (3)主机在可能收到的多个PADO分组中选择一个合适的PADO分组,然后向所选择的接入集中器发送PPPoE有效发现请求分组(PADR)。其中CODE字段为0x19 ,SESSION_ID字段值仍为0x0000。PADR分组必须包含一个服务名称类型标签,确定向接入集线器(或交换机)请求的服务种类。当主机在指定的时间内没有接收到PADO,它应该重新发送它的PADI 分组,并且加倍等待时间,这个过程会被重复期望的次数。 (4)接入集中器收到PADR包后准备开始PPP会话,它发送一个PPPoE有效发现会话确认(PADS)分组。其中CODE字段值为0x65 ,SESSION_ID字段值为接入集中器所产生的一个惟一的PPPoE会话标识号码。PADS分组也必须包含一个接入集中器名称类型的标签确认向主机提供的服务。当主机收到PADS包确认后,双方就进入PPP会话阶段。 【注意】如果主机正在等待接收PADS分组,应该使用具有主机重新发送PADR的相似超时机制。在重试指定的次数后,主机应该重新发送PADI分组。 2. PPP会话阶段 用户主机与接入集中器根据在发现阶段所协商的PPP会话连接参数进行PPP会话。一旦PPPoE会话开始,PPP数据就可以以任何其它的PPP封装形式发送。所有的以太网帧都是单播的。PPPoE会话的SESSION_ID一定不能改变,并且必须是发现阶段分配的值。 PPPoE还有一个PADT分组,它可以在会话建立后的任何时候发送,来终止PPPoE会话,也就是会话释放。它可以由主机或者接入集中器发送。当对方接收到一个PADT分组,就不再允许使用这个会话来发送PPP业务。PADT包不需要任何标签,其CODE字段值为0xa7 ,SESSION_ID字段值为需要终止的PPP会话的会话标识号码。在发送或接收PADT后,即使正

完整word版pppoe原理协议详解

PPPoE(Point to Point Protocol over Ethernet,基于以太网的点对点协议)的工作流程包含发现(Discovery)和会话(Session)两个阶段,发现阶段是无状态的,目的是获得PPPoE 终端(在局端的ADSL设备上)的以太网MAC 地址,并建立一个惟一的PPPoE SESSION-ID。发现阶段结束后,就进入标准的PPP会话阶段 1.发现阶段(PPPoED:PPPoE Discovery) ) Initiation PADI(PPPoE Active Discovery1.1 主机广播发起分组,分组的目的地址为以太网的广播地址 0xffffffffffff,CODE(代码)字段值为0×09(PADI Code),SESSION-ID(会话ID)字段值为0x0000。PADI分组必须至少包含一个服务名称类型的标签(Service Name Tag,字段值为0x0101),向接入集中器提出所要求提供的服务。) Offer(PPPoE Active Discovery1.2 PADO接入集中器收到在服务范围内的PADI 分组,发送PPPoE有效发现提供包分组,以响应请求。其中CODE字段值为0×07(PADO Code),SESSION-ID字段值仍为0x0000。PADO分组必须包含一个接入集中器名称类型的标签(Access Concentrator Name Tag,字段值为0x0102),以及一个或多个服务名称类型标签,表明可向主机提供的服务种类。PADO和PADI的值相同。Host-Uniq Tag ) Request PADR(PPPoE Active Discovery1.3主机在可能收到的多个PADO分组中选择一个合适的PADO分组,然后向所选择的接入集中器发送PPPoE有效发现请求分组。其中CODE字段为0x19(PADR Code),SESSION_ID字段值仍为0x0000。PADR分组必须包含一个服务名称类型标签,确定向接入集线器(或交换机)请求的服务种类。当主机在指定的时间内没有接收到PADO,它应该重新发送它的PADI分组,时间,这个过程会被重复期望的次数。并且加倍等待)-confirmation(PPPoE Active Discovery Session1.4 PADS接入集中器收到PADR分组后准备开始PPP会话,它发送一个PPPoE有效发现会话确认PADS分组。其中CODE字段值为0×65(PADS Code),SESSION-ID字段值为接入集中器所产生的一个惟一的PPPoE 会话标识号码。PADS分组也必须包含一个接入集中器名称类型的标签以确认向主机提供的服务。当主机收到PADS 分组确认后,双方就进入PPP会话阶段。PADS值相同。的和PADRHost-Uniq Tag )PPPoES:PPPoE Session会话阶段(2. 数据包来配置和测试数据通信链路。PPP会话的建立,需要两端的设备都发送LCP 会话。一PPP用户主机与接入集中器根据在发现阶段所协商的PPP会话连接参数进行

详解PPP及PPPoE协议,文章写得通俗易懂

PPP(Point-to-Point Protocol点到点协议),一种二层协议,通常部署在专线网和按需电路网上面,PPP 有很多丰富的可选特性,如支持多协议、提供可选的身份认证服务、可以以各种方式压缩数据、支持动态地址协商、支持多链路捆绑等等。这些丰富的选项增强了PPP的功能。同时,不论是异步拨号线路还是路由器之间的同步链路均可使用。因此,应用十分广泛 当然,在专线网上我们也可以使用HDLC二层协议,但用的并不多,原因有三: 1.不支持验证,一层通二层就通 2.不支持多种上层协议(ip/ipx/appletalk等),而PPP帧中专门有一个字段用来标示上层协议类型 3.HDLC协议为厂商私有协议,各个厂商互不兼容,但HDLC是cisco产品的默认广域网封装方式, 要使用PPP协议需要encapsulation ppp 命令改变接口封装协议 我们家庭拨号上网就是通过PPP协议在用户端和运营商的接入服务器之间建立通信链路。目前,宽带接入已基本取代拔号接入,在宽带接入技术日新月异的今天,PPP也衍生出新的应用。典型的应用是在ADSL(非对称数据用户环线,Asymmetrical Digital Subscriber Loop)接入方式当中,PPP与其他的协议共同派生出了符合宽带接入要求的新的协议,如PPPoE(PPP over Ethernet),PPPoA(PPP over ATM)。 利用以太网(Ethernet)资源,在以太网上运行PPP来进行用户认证接入的方式称为PPPoE。PPPoE 即保护了用户方的以太网资源,又完成了ADSL的接入要求,是目前ADSL接入方式中应用最广泛的技术标准。 同样,在ATM(异步传输模式,Asynchronous Transfer Mode)网络上运行PPP协议来管理用户认证的方式称为PPPoA。它与PPPoE的原理相同,作用相同;不同的是它是在ATM网络上,而PPPoE是在以太网网络上运行,所以要分别适应ATM标准和以太网标准 好的,下面我们就以点到点专线上的PPP协议和以太网上的PPPoE协议为例,详细介绍它们的工作原理、验证过程及其配置方法 一、点到点专线上的PPP协议 PPP特性有很多,但主要的特性是具备验证技术,所以在此我们主要是讨论PPP的验证。PPP的验证方式分为两种:PAP和CHAP PAP( 密码验证协议):客户端向服务器端发送验证信息,包含用户名和密码。如果用户名和密码与服务器里保存的一致,那就通过验证,否则就不能通过(通过两次握手)。 CHAP(挑战握手验证协议):CHAP首先是由服务器发起的,它向客户端发送含有random值(随机生成)、id号、用户名和密码的数据,客户端收到数据后提取random、id和用户所对应的密码使用MD5算法进行哈希(hash)得到hash值。然后再把自己保存的用户名连同id和刚得到的hash值一起发送给服务器。服务器再收到数据后也进行以上操作得到hash值,再把算得的hash值与从客户端得到的hash 值进行比较:两值相同服务器就发送一个通过的信息;两值不同服务器就发送一个拒绝的信息。可以看出,CHAP在整个验证过程中是不发送密码的,所以是一种安全的认证。 好的,下面我们就以实例来演示PAP和CHAP的配置过程 1、实验拓朴 2、配置步骤 首先我们来做个PAP认证

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。PADO分组必须包含一个接入集中器名称类型的标签(标签类型字段值为0×0102),以及一个或多个服务名称类型标签,表明可向主机提供的服务种类。 (3)主机选择一个合适的PADO分组 主机在可能收到的多个PADO分组中选择一个合适的PADO分组,然后向所选择的接入集中器发送PPPoE有效发现请求分组(PADR)。其中 CODE字段为0×19,SESSION_ID字段值仍为0×0000。PADR分组必须包含一个服务名称类型标签, 当主机在指定的时间内没有接收请求的服务种类。)或交换机(确定向接入集线器.到PADO,它应该重新发送它的PADI分组,并且加倍等待时间,这个过程会被重复期望的次数。 (4)准备开始PPP会话 接入集中器收到PADR分组后准备开始PPP会话,它发送一个PPPoE有效发现会话确认PADS分组。其中CODE字段值为 0×65,SESSION-ID字段值为接入集 中器所产生的一个唯一的PPPoE会话标识号码。PADS分组也必须包含一个接入 集中器名称类型的标签以确认向主机提供的服务。当主机收到PADS分组确认后,双方就进入PPP会话阶段。 2.PPP会话阶段 用户主机与接入集中器根据在发现阶段所协商的PPP会话连接参数进行PPP 会话。一旦PPPoE会话开始,PPP数据就可以以任何其他的PPP封装形式发送。所有的以太网帧都是单播的。PPPoE会话的SESSION-ID一定不能改变,并且必

PPPoE协议(RFC2516)中文

A Method for Transmitting PPP Over Ethernet (PPPoE) 在以太网上传输PPP的方法 RFC2516

目录 1.前言 (3) 2.简介 (3) 3.协议总述 (3) 4.Payloads 有效载荷 (4) 5.Discovery阶段 (5) 5.1. PPPoE Active Discovery Initiation数据包(PADI) (6) 5.2. PPPoE Active Discovery Offer 数据包(PADO) (6) 5.3. PPPoE Active Discovery Request 数据包(PADR) (6) 5.4. PPPoE Active Discovery Session-confirmation 数据包(PADS) (6) 5.5. The PPPoE Active Discovery Terminate数据包(PADT) (7) 6.PPP会话阶段 (7) 7.LCP方面的考虑 (7) 8.其它方面的考虑 (8) 9.安全方面的考虑 (8) 10.参考文献 (8) 附录 A -- TAG_TYPE和TAG_VALUE (8) 附录B -- 数据包的几个例子: (10)

1.前言 点到点协议(PPP,参考文献[1])提供在点到点连路上传送多协议数据报的标准方法。 本文档描述在以太网上建立PPP会话以及封装PPP数据报的方法。 可行性 本说明书试图提供PPP所定义的工具,如链路控制协议(Link Control Protocol,LCP), 网络层控制协议(Network-layer Control Protocols, NCP),认证以及其它机制。这 些功能要求在通信双方之间存在点到点的关系,而不是在以太网和其他多访问环境 中所出现的多点关系。 本规范可用于同一个以太网上的多个主机通过一个或多个跨接(桥接)调制解调器 向多个目的主机建立PPP会话。主要用于采用提桥接以太网拓扑结构的宽带远程 访问技术中,由服务提供商维护PPP会话。 本文档描述的PPPoE是RedBack Networks, RouterWare, UUNET 及其它厂商所采 用的在以太网上封装PPP的方法。 2.简介 现代接入技术需要面对有几个互相冲突的设计目标。人们希望通过同一个家庭接入设备来连接到远程站点上的多个主机,同时(又希望在使用习惯上)提供与拨号上网(使用PPP)类似的访问控制和计费功能。在很多接入技术中,把多个主机连接到家庭接入设备的最经济的方法就是通过以太网。另外,还想尽量保持设备的低成本同时要求不改变或很少改变其配置。 以太网上的PPP(PPPoE)提供了通过简单桥接接入设备把一个网络的多个主机连接到远程接入集线器的功能。使用该模型,每一个主机使用自己的PPP协议栈,呈现给用户的还是熟悉的用户接口。访问控制、计费以及业务类型都能基于每一个用户,而不是基于站点。 为了提供以太网上的点到点连接,每一个PPP会话必须知道对端的以太网地址,并建立一个唯一的会话标识符。PPPoE包含一个(以太网地址)发现协议来提供这个功能。 3.协议总述 PPPoE分为两个阶段,即Discovery(地址发现)阶段和PPP会话阶段。当某个主机希望发起一个PPPoE会话时,它必须首先执行Discovery来确定对方的以太网MAC地址并建立起一个PPPoE会话标识符SESSION_ID。虽然PPP定义的是端到端的对等关系,Discovery却是天生的一种客户端-服务器关系。在Discovery的过程中,由主机(作为客户端)来发现接入集线器(Access Concentrator,作为服务器)。根据网络的拓扑结构,可能存在不止一个能和主机进行通信的接入集线器。Discovery阶段允许主机发现所有的接入集线器并从中选择一个。当Discovery阶段成功完成之后,主机和接入集线器两者都具备了用于在以太网上建立点到点连接所需的所有信息。

OSI七层模型的每一层都有哪些协议、PPPOE机制

OSI七层模型协议 谈到网络不能不谈OSI参考模型,OSI参考模型(OSI/RM)的全称是开放系统互连参考模型(Open System Interconnection Reference Model,OSI/RM),它是由国际标准化组织ISO 提出的一个网络系统互连模型。虽然OSI参考模型的实际应用意义不是很大,但其的确对于理解网络协议内部的运作很有帮助,也为我们学习网络协议提供了一个很好的参考...... 第一层:物理层: 物理层规定了激活、维持、关闭通信端点之间的机械特性、电气特性、功能特性以及过程特性。该层为上层协议提供了一个传输数据的物理媒体。只是说明标准 在这一层,数据的单位称为比特(bit)。 属于物理层定义的典型规范代表包括:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45、fddi 令牌环网等。 第二层:数据链路层802.2、802.3ATM、HDLC、FRAME RELAY 数据链路层在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。 在这一层,数据的单位称为帧(frame)。 数据链路层协议的代表包括:ARP、RARP、SDLC、HDLC、PPP、STP、帧中继等。 第三层:网络层IP、IPX、APPLETALK、ICMP 网络层负责对子网间的数据包进行路由选择。网络层还可以实现拥塞控制、网际互连等功能。在这一层,数据的单位称为数据包(packet)。加密解密是在网络层完成的. 网络层协议的代表包括:IP、IPX、RIP、OSPF等。 第四层:传输层TCP、UDP、SPX 传输层是第一个端到端,即主机到主机的层次。传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输。此外,传输层还要处理端到端的差错控制和流量控制问题。 在这一层,数据的单位称为数据段(segment)。 传输层协议的代表包括:TCP、UDP、SPX等。 第五层:会话层RPC、SQL、NFS 、X WINDOWS、ASP 会话层管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话。会话层还利用在数据中插入校验点来实现数据的同步。 第六层:表示层ASCII、PICT、TIFF、JPEG、MIDI、MPEG 表示层对上层数据或信息进行变换以保证一个主机应用层信息可以被另一个主机的应用程序理解。表示层的数据转换包括数据的加密、压缩、格式转换等。 第七层:应用层HTTP,FTP,SNMP等 应用层为操作系统或网络应用程序提供访问网络服务的接口。 应用层协议的代表包括:Telnet、FTP、HTTP、SNMP等。

OSI七层模型的每一层都有哪些协议、PPPOE机制

OSI七层模型的每一层都有哪些协议 由低到高 谈到网络不能不谈OSI参考模型,OSI参考模型(OSI/RM)的全称是开放系统互连参考模型(Open System Interconnection Reference Model,OSI/RM),它是由国际标准化组织ISO 提出的一个网络系统互连模型。虽然OSI参考模型的实际应用意义不是很大,但其的确对于理解网络协议内部的运作很有帮助,也为我们学习网络协议提供了一个很好的参考...... 物理层规定了激活、维持、关闭通信端点之间的机械特性、电气特性、功能特性以及过程特性。该层为上层协议提供了一个传输数据的物理媒体。只是说明标准 在这一层,数据的单位称为比特(bit)。 属于物理层定义的典型规范代表包括:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45、fddi 令牌环网等。 第一层:物理层 数据链路层在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。 在这一层,数据的单位称为帧(frame)。 数据链路层协议的代表包括:ARP、RARP、SDLC、HDLC、PPP、STP、帧中继等。 第二层:数据链路层802.2、802.3A TM、HDLC、FRAME RELAY 网络层负责对子网间的数据包进行路由选择。网络层还可以实现拥塞控制、网际互连等功能。在这一层,数据的单位称为数据包(packet)。 网络层协议的代表包括:IP、IPX、RIP、OSPF等。 第三层:网络层IP、IPX、APPLETALK、ICMP 传输层是第一个端到端,即主机到主机的层次。传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输。此外,传输层还要处理端到端的差错控制和流量控制问题。 在这一层,数据的单位称为数据段(segment)。 传输层协议的代表包括:TCP、UDP、SPX等。 第四层:传输层TCP、UDP、SPX 会话层管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话。会话层还利用在数据中插入校验点来实现数据的同步。 第五层:会话层RPC、SQL、NFS 、X WINDOWS、ASP 表示层对上层数据或信息进行变换以保证一个主机应用层信息可以被另一个主机的应用程序理解。表示层的数据转换包括数据的加密、压缩、格式转换等。 第六层:表示层ASCII、PICT、TIFF、JPEG、MIDI、MPEG 应用层为操作系统或网络应用程序提供访问网络服务的接口。 应用层协议的代表包括:Telnet、FTP、HTTP、SNMP等。

PPPOE协议详解-对报文进行了详细分析解释通俗易懂

华为技术有限公司版权所有侵权必究

目录(TOC Heading) 第1章概述 (1) 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) 2.1.3 PPPOE发现阶段的数据报文 (3) 2.1.3.1 PPPOE数据报文中Tag(标记)的格式 (3) 2.1.3.2 PADI(PPPOE Active Discovery Initiation)报文 (4) 2.1.3.3 PADO(PPPOE Active Discovery Offer)报文 (5) 2.1.3.4 PADR(PPPOE Active Discovery Request)报文 (6) 2.1.3.5 PADS(PPPOE Active Discovery Session-confirmation)报文 (7) 2.1.3.6 PADT(PPPOE Active Discovery Terminate)报文 (7) 2.2总结 (7) 2.3思考 (8) 第3章 PPPOE的会话阶段 (9) 3.1 PPPOE的会话过程 (9) 3.2总结 (9) 3.3思考 (9)

第1章概述 1.1 PPPOE协议的基本概念 1.1.1 PPPOE协议出现的背景 随着宽带网络技术的不断发展,以xDSL、CableModem和以太网为主的几种 主流宽带接入技术的应用已开展的如火如荼。同时又给各大网络运营商们带 来了种种困惑,无论使用哪种接入技术,对于他们而言可盼和可求的是如何 有效的管理用户,如何从网络的投资中收取回报,因此对于各种宽带接入技 术的收费的问题就变得更加敏感。在传统的以太网模型中,我们是不存在所 谓的用户计费的概念,要么用户能设置/获取IP地址上网,要么用户就无法上 网。IETF的工程师们在秉承窄带拨号上网的运营思路(使用NAS设备终结用 户的PPP数据包),制定出了在以太网上传送PPP数据包的协议(Point To Point Protocol Over Ethernet),这个协议出台后,各网络设备制造商也相继 推出自已品牌的宽带接入服务器(BAS),它不仅能支持PPPOE协议数据报 文的终结,而且还能支持其它许多协议。如华为公司的MA5200(小BAS) 和ISN8850(大BAS)。 1.1.2 PPPOE协议简介 PPPOE协议提供了在广播式的网络(如以太网)中多台主机连接到远端的访 问集中器(我们对目前能完成上述功能的设备为宽带接入服务器)上的一种 标准。在这种网络模型中,我们不难看出所有用户的主机都需要能独立的初 始化自已的PPP协议栈,而且通过PPP协议本身所具有的一些特点,能实现 在广播式网络上对用户进行计费和管理。为了能在广播式的网络上建立、维 持各主机与访问集中器之间点对点的关系,那么就需要每个主机与访问集中 器之间能建立唯一的点到点的会话。 PPPOE协议共包括两个阶段,即PPPOE的发现阶段(PPPOE Discovery Stage)和PPPOE的会话阶段(PPPOE Session Stage)。在这篇培训教材 中更注重是PPPOE发现阶段的介绍,因为对于PPPOE的会话阶段,可以看 成和PPP的会话过程是一样的(可直接参照PPP协议培训教材),而两者的 主要区别在于只是在PPP的数据报文前封装了PPPOE的报文头。无论是哪 一个阶段的数据报文最终会被封装成以太网的帧进行传送。

PPPOE协议

PPPOE协议 modem接入技术面临一些相互矛盾的目标,既要通过同一个用户前置接入设备连接远程的多个用户主机,又要提供类似拨号一样的接入控制,计费等功能,而且要尽可能地减少用户的配置操作。 PPPOE 的目标就是解决上述问题, 1998年后期问世的以太网上点对点协议(PPP over Ethernet)技术是由Redback 网络公司、客户端软件开发商RouterWare公司以及Worldcom子公司UUNET Technologies 公司在IETF RFC 的基础上联合开发的。通过把最经济的局域网技术-以太网和点对点协议的可扩展性及管理控制功能结合在一起,网络服务提供商和电信运营商便可利用可靠和熟悉的技术来加速部署高速互联网业务。它使服务提供商在通过数字用户线、电缆调制解调器或无线连接等方式,提供支持多用户的宽带接入服务时更加简便易行。同时该技术亦简化了最终用户在选择这些服务时的配置操作。PPPOE特点 PPPOE在标准PPP报文的前面加上以太网的报头,使得PPPOE提供通过简单桥接接入设备连接远端接入设备,并可以利用以太网的共享性连接多个用户主机,在这个模型下,每个用户主机利用自身的ppp堆栈,用户使用熟悉的界面。接入控制,计费等都可以针对每个用户来进行。 PPPOE的优点: .?安裝与操作方式类似于以往的拨号网络模式,方便用戶使用。 .?用户处的XDSL 调制解调器无须任何配置。 .?允许多个用户共享一个高速数据接入链路。 .?适应小型企业和远程办公的要求。 .?终端用户可同时接入多个ISP,这种动态服务选择的功能可以使ISP容易创建和提供新的业务。 .?兼容现有所有的XDSL Modem 和DSLAM。 .?可与ISP 有接入结构相融合。 PPPOE的帧格式

详解PPP及PPPoE协议

详解PPP及PPPoE协议 PPP(Point-to-Point Protocol点到点协议),一种二层协议,通常部署在专线网和按需电路网上面,PPP有很多丰富的可选特性,如支持多协议、提供可选的身份认证服务、可以以各种方式压缩数据、支持动态地址协商、支持多链路捆绑等等。这些丰富的选项增强了PPP的功能。同时,不论是异步拨号线路还是路由器之间的同步链路均可使用。 因此,应用十分广泛 当然,在专线网上我们也可以使用HDLC二层协议,但用的并不多,原因有三: 1.不支持验证,一层通二层就通 2.不支持多种上层协议(ip/ipx/appletalk等),而PPP帧中专门有一个字段用来标示上层协议类型 3.HDLC协议为厂商私有协议,各个厂商互不兼容,但HDLC是cisco产品的默认广域网封装方式,要使用PPP协议需要encapsulation ppp 命令改变接口封装协议 我们家庭拨号上网就是通过PPP协议在用户端和运营商的接入服务器之间建立通信链路。目前,宽带接入已基本取代拔号接入,在宽带接入技术日新月异的今天,PPP 也衍生出新的应用。典型的应用是在ADSL(非对称数据用户环线,Asymmetrical Digital Subscriber Loop)接入方式当中,PPP与其他的协议共同派生出了符合宽带接入要求的新的协议,如PPPoE(PPP over Ethernet),PPPoA(PPP over ATM)。 利用以太网(Ethernet)资源,在以太网上运行PPP来进行用户认证接入的方式称为PPPoE。PPPoE即保护了用户方的以太网资源,又完成了ADSL的接入要求,是目前ADSL接入方式中应用最广泛的技术标准。 同样,在ATM(异步传输模式,Asynchronous Transfer Mode)网络上运行PPP协议来管理用户认证的方式称为PPPoA。它与PPPoE的原理相同,作用相同;不同的是它是在ATM网络上,而PPPoE是在以太网网络上运行,所以要分别适应ATM标准和以太网标准 好的,下面我们就以点到点专线上的PPP协议和以太网上的PPPoE协议为例,详细介绍它们的工作原理、验证过程及其配置方法 一、点到点专线上的PPP协议 PPP特性有很多,但主要的特性是具备验证技术,所以在此我们主要是讨论PPP的验证。PPP的验证方式分为两种:PAP和CHAP PAP( 密码验证协议):客户端向服务器端发送验证信息,包含用户名和密码。如果用户名和密码与服务器里保存的一致,那就通过验证,否则就不能通过(通过两次握手)。 CHAP(挑战握手验证协议):CHAP首先是由服务器发起的,它向客户端发送含有random值(随机生成)、id号、用户名和密码的数据,客户端收到数据后提取random、id和用户所对应的密码使用MD5算法进行哈希(hash)得到hash值。然后再把自己保存的用户名连同id和刚得到的hash值一起发送给服务器。服务器再收到数据后也进行以上操作得到hash值,再把算得的hash值与从客户端得到的hash值进行比较:两值相同服务器就发送一个通过的信息;两值不同服务器就发送一个拒绝的信息。可以看出,CHAP在整个验证过程中是不发送密码的,所以是一种安全的认证。 好的,下面我们就以实例来演示PAP和CHAP的配置过程 1、实验拓朴 2、配置步骤 首先我们来做个PAP认证 1)基本配置: R1#conf t R1(config)#int s0 R1(config-if)#ip add 192.168.0.1 255.255.255.252 R1(config-if)#no shutdown R2#conf t R2(config)#int s0

PPPoE协议抓包分析

课程设计成绩评价表

成都信息工程学院 课程设计 课程名称:网络协议实践 设计题目:PPPoE协议数据包分析 班级:网络工程网络083班 学号:2008121093 姓名:白玉强 指导老师:刘云本提交日期:2011-12-17

摘要 网络协议的定义:为计算机网络中进行数据交换而建立的规则、标准或约定的集合。例如,网络中一个微机用户和一个大型主机的操作员进行通信,由于这两个数据终端所用字符集不同,因此操作员所输入的命令彼此不认识。为了能进行通信,规定每个终端都要将各自字符集中的字符先变换为标准字符集的字符后,才进入网络传送,到达目的终端之后,再变换为该终端字符集的字符。当然,对于不相容终端,除了需变换字符集字符外。其他特性,如显示格式、行长、行数、屏幕滚动方式等也需作相应的变换。 网络协议是网络上所有设备(网络服务器、计算机及交换机、路由器、防火墙等)之间通信规则的集合,它规定了通信时信息必须采用的格式和这些格式的意义。大多数网络都采用分层的体系结构,每一层都建立在它的下层之上,向它的上一层提供一定的服务,而把如何实现这一服务的细节对上一层加以屏蔽。 一台设备上的第n层与另一台设备上的第n层进行通信的规则就是第n层协议。 在网络的各层中存在着许多协议,接收方和发送方同层的协议必须一致,否则一方将无法识别另一方发出的信息。网络协议使网络上各种设备能够相互交换信息。常见的协议有:TCP/IP协议、IPX/SPX协议、NetBEUI协议等。 物理层:以太网·调制解调器·电力线通信(PLC)·SONET/SDH·G.709·光导纤维·同轴电缆·双绞线等 数据链路层:Wi-Fi(IEEE802.11)·WiMAX(IEEE 802.16)·ARP·RARP·ATM·DTM·令牌环·以太网·FDDI·帧中继·GPRS·EVDO·HSPA·HDLC·PPP·L2TP·PPTP·ISDN·STP等 网络层协议:IP(IPv4·IPv6)·ICMP·ICMPv6·IGMP·IS-IS·IPsec等 传输层协议:TCP·UDP·TLS·DCCP·SCTP·RSVP·OSPF等 关键词:协议TCP

基于BAS的PPPoE协议实现

前面我们对PPPoE的基础内容进行了讲解。这里我们则重点讲解一下PPPoE协议在BAS上的实现。PPPoE拨号软件在应用中已经很成熟(Windows XP中自带),下面重点讨论PPPoE 在接入服务器BAS中的实现方式。 1 PPPoE协议的效率 从PPPoE协议模型可以看出,BAS汇聚了用户的所有数据流,它必须将每一个PPPoE包都拆开检查处理,这在很大程度上是沿袭了传统的PPP处理的方式,虽然有很好的安全性,但一旦用户很多,数据包数量很大,解封装速度就需要很快,BAS很大的精力花在检测用户的数据包上,容易形成接入的“瓶颈”。 为此,在BAS的硬件结构上可以采用分布式网络处理器(NP)和ASIC芯片设计。网络处理器是专门针对电信网络设备而开发的专用处理器,它有一套专门的指令集,用于处理电信网络的各种协议和业务,可以大大提高设备的处理能力。同时,ASIC芯片转发数据包时接近硬件的转发性能,远非CPU软件方式可比,采用这种方式将PPPoE数据流的处理与转发分开,工作效率大大提高。此外在软件系统结构上还应该与其他技术相结合,更好地发挥PPPoE 的性能。 2 PPPoE与VLAN的结合 VLAN即虚拟局域网,是一种通过将局域网内的设备逻辑地划分成一个个不同的网段,从而实现虚拟工作组的技术。划分VLAN的目的,一是提高网络安全性,不同VLAN的数据不能自由交流,需要接受第三层的检验;二是隔离广播信息,划分VLAN后,广播域缩小,有利于改善网络性能,能够将广播风暴控制在一个VLAN内部。 PPPoE是一个客户端/服务器协议,客户端需要发送PADI包寻找BAS,因此它必须同BAS 在同一个广播式的二层网络内,与VLAN的结合很好地解决了这方面的安全隐患。此外通过将不同业务类型的用户分配到不同的VLAN处理,可以灵活地开展业务,加快处理流程,当然VLAN的规划必须在二层设备和BAS之间统一协调。 BAS收到上行的PPPoE包后,首先判别VLAN ID的所属类别,如果是普通的拨号用户,则确定是Discovery阶段还是会话阶段的数据包,并严格按照PPPoE协议处理。在会话阶段,根据不同的用户类型从不同的地址池中向用户分配IP地址,地址池由上层网管配置。如果是已经通过认证的用户的数据包,则根据该用户的服务类型处理,比如,如果是本地认证的拨号用户,且对方也申请有同样的功能,则直接由本地转发。 如果是专线用户,则不用经过PPPoE协议复杂的认证过程,直接根据用户的VLAN ID便可进入专线用户处理流程,接入速度大大提高。此外为了统一网管,在BAS与其他设备之间需要通信,这些数据包是内部数据包,也可根据VLAN ID来辨别。 对于下行数据,由于BAS负责分配和解析用户的IP,兼有网关的功能,它收到数据包的目的IP是用户的,因此以IP为索引查找用户的信息比根据MAC要方便得多,这一点与普通的交换机有所不同,具体过程跟上行处理差不多。 3 PPPoE对多业务选择的支持 多业务选择指的是用户通过一条终结到BAS的PPP连接来自主地选择后台网络运营商所提供的多种业务。之所以要支持多业务的选择,一方面是因为各种业务的具体实现在技术上的侧重点是不同的,对网络性能的要求也不尽相同,以前采取的固定分配的方式非常不便;另

PPPOE协议技术与标准-20020613-C

PPPOE协议技术与标准 华为技术有限公司 版权所有侵权必究

PPPOE协议技术与标准文档密级:内部公开 修订记录

PPPOE协议技术与标准文档密级:内部公开 目录 第1章概述 (1) 1.1 PPPOE协议的基本概念 (1) 1.1.1 PPPOE协议出现的背景 (1) 1.1.2 PPPOE协议简介 (1) 1.2 总结 (2) 1.3 思考 (2) 第2章 PPPOE的发现阶段 (3) 2.1 PPPOE的初始化过程 (3) 2.1.1 以太网的帧格式 (3) 2.1.2 PPPOE的数据报文格式 (4) 2.1.3 PPPOE发现阶段的数据报文 (5) 2.1.4 PPPOE数据报文中Tag(标记)的格式 (5) 2.1.5 PADI(PPPOE Active Discovery Initiation)报文 (7) 2.1.6 PADO(PPPOE Active Discovery Offer)报文 (8) 2.1.7 PADR(PPPOE Active Discovery Request)报文 (9) 2.1.8 PADS(PPPOE Active Discovery Session-confirmation)报文 (9) 2.1.9 PADT(PPPOE Active Discovery Terminate)报文 (10) 2.2 总结 (10) 2.3 思考 (10) 第3章 PPPOE的会话阶段 (11) 3.1 PPPOE的会话过程 (11) 3.2 总结 (11) 3.3 思考 (11)

PPPOE协议技术与标准文档密级:内部公开关键词: PPPOE 集中器PADR 摘要: PPPOE协议提供了在广播式的网络中多台主机连接到远端的访问集中器上的一种标准。本文主要介绍了PPPOE协议的报文结构以及PPPOE发现阶段的报文交互过程。 缩略语清单: 参考资料清单:

PPPoE协议的基本功能以及报文格式

PPPoE协议调研 by 00848223 刘盾 PPPoE是一种在以太网上进行PPP点对点拨号连接的协议。因为以太网属于专网,网络是直接连接的,不用拨号,所以物理层上的连接是没有问题的。但为了确保连接安全,并且只允许合法用户连接,所以采取了类似电话拨号方式的身份验证,此时所拨的不是电话号码,而是用户的账户,属于数据链路层的协议。 PPPoE虽然是目前应用最广的一种ADSL网络协议,但它不是随着ADSL技术的出现而出现的,它是在1998年才开发出来的,主要目的是为了解决公网IP地址不足的问题。所谓虚拟拨号是指用ADSL接入Internet时同样需要输入用户名与密码才能进行连接,与传统的模拟电话线路+MODEM、数字电话线路+ISDN Ta的接入方式不同,ADSL不是对具体的电话号码进行拨号,而是直接在局端以太网上进行身份验证。因为事实上在没有拨号前物理网络是连通的,只是通过相应账户的身份验证登录网络系统,所以称之为“虚拟拨号”。 PPPoE技术最早是由Redback 网络公司、客户端软件开发商RouterWare公司以及Worldcom子公司“UUNET Technologies”公司,于1998年后期在IETF RFC基础上联合开发的。通过把最经济的以太局域网和点对点协议的可扩展性和管理控制功能结合在一起,网络服务提供商和电信运营商便可利用可靠、熟悉的技术来加速部署高速互联网业务。它使服务提供商在通过DSL、Cable MODEM或WLAN(无线局域网)等方式,提供支持多用户的宽带接入服务时更加简便易行。而在以前,在传统的以太网模型中,我们是不存在所谓的用户计费的概念,要么用户能获取IP 地址上网,要么用户就无法上网。IETF 的工程师们在秉承窄带拨号上网的运营思路的基础上,制定出了在以太网上传送PPP 数据包的协议——PPPoE。这个协议出台后,各网络设备制造商也相继推出自己品牌的宽带接入服务器(BAS),使得PPPoE这种灵活的ADSL接入方式迅速得到了广泛应用。 PPPoE利用以太网络的工作机制,将ADSL MODEM的10Base-T接口(因为目前ADSL的最高接入速率在10Mbps以内,无须更高速率端口)与内部以太网互联。ADSL的这种接入方式在 RFC1483文档中规定。在ADSL MODEM中采用的桥接封装方式对终端发出的PPP数据包进行封装后,通过连接两端的PVC(永久虚电路)在ADSL MODEM与中继传输网和数据交换 网(这些网之间通常是采用虚电路连接的)的宽带接入服务器之间建立连接,实现PPP的动态接入。组网方式很简单,大大降低了网络的复杂程度。 通过PPPoE协议,在一个共享的以太网上的多个主机可以通过一个或多个简单的桥接接入设备,与远程接入集中器进行多个PPP会话,这就是ADSL 应用最广的桥接接入模式,使用这种模型,每个主机使用它自己的PPP协议栈,并且为每个用户分配一个熟悉的用户接口。接入控制、计费和服务类型能够基于每用户,而不是每站点来处理。 PPPoE协议的工作流程包含发现和会话两个阶段,发现阶段是无状态的,目的是获得PPPoE终结端(在局端的ADSL设备上)的以太网MAC地址,并建立一个惟一的PPPoESESSION-ID。发现阶段结束后,就进入标准的PPP会话阶段。 当一个主机想开始一个PPPoE会话,它必须首先进行发现阶段,以识别局端的以太网MAC地址,并建立一个PPPoESESSION-ID。在发现阶段,基于网络的拓扑,主机可以发现多个接入集中器,然后允许用户选择一个。当发现阶段成功完成,主机和选择的接入集中器都有了他们在以太网上建立PPP连接的信息。直到PPP会话建立,发现阶段一直保持无状态的Client/Server(客户/服务器)模式。一旦PPP会话建立,主机和接入集中器都必须为PPP虚接口分配资源。 PPPoE协议会话的发现和会话两个阶段具体进程如下。 1.发现(Discovery)阶段 在发现(Discovery)阶段中用户主机以广播方式寻找所连接的所有接入集中器(或交换机),并获得其以太网MAC地址。然后选择需要连接的主机,并确定所要建立的PPP会话标识号码。发现阶段有4个步骤,当此阶段完成,通信的两端都知道PPPoESESSION-ID和对端的以太网地址,他们一起惟一定义 PPPoE会话。这4个步骤如下。

相关主题