当前位置:文档之家› pppoe原理协议详解计算机硬件及网络IT计算机专业资料

pppoe原理协议详解计算机硬件及网络IT计算机专业资料

(,基于以太网的点对点协议)的工作流程包含发现()和会话()两个阶段,发现阶段是无状态的,目的是获得终端(在局端的设备上)的以太网地址,并建立一个惟一的。

发现阶段结束后,就进入标准的会话阶段1.发现阶段(:)1.1 ()主机广播发起分组,分组的目的地址为以太网的广播地址 0,(代码)字段值为0×09(),(会话)字段值为0x0000。

分组必须至少包含一个服务名称类型的标签(,字段值为0x0101),向接入集中器提出所要求提供的服务。

1.2 ()接入集中器收到在服务范围内的分组,发送有效发现提供包分组,以响应请求。

其中字段值为0×07(),字段值仍为0x0000。

分组必须包含一个接入集中器名称类型的标签(,字段值为0x0102),以及一个或多个服务名称类型标签,表明可向主机提供的服务种类。

和的值相同。

1.3()主机在可能收到的多个分组中选择一个合适的分组,然后向所选择的接入集中器发送有效发现请求分组。

其中字段为0x19(),字段值仍为0x0000。

分组必须包含一个服务名称类型标签,确定向接入集线器(或交换机)请求的服务种类。

当主机在指定的时间内没有接收到,它应该重新发送它的分组,并且加倍等待时间,这个过程会被重复期望的次数。

1.4 ()接入集中器收到分组后准备开始会话,它发送一个有效发现会话确认分组。

其中字段值为0×65(),字段值为接入集中器所产生的一个惟一的会话标识号码。

分组也必须包含一个接入集中器名称类型的标签以确认向主机提供的服务。

当主机收到分组确认后,双方就进入会话阶段。

和的值相同。

2.会话阶段(:)会话的建立,需要两端的设备都发送数据包来配置和测试数据通信链路。

用户主机与接入集中器根据在发现阶段所协商的会话连接参数进行会话。

一旦会话开始,数据就可以以任何其他的封装形式发送。

所有的以太网帧都是单播的。

会话的一定不能改变,并且必须是发现阶段分配的值。

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

(1)协议数据报文分类链路配置报文:用来建立和配置一条链路,主要包括、、和报文链路维护报文:用来管理和调试链路,主要包括、、、和报文链路终止报文:用来终止一条链路,主要包括和报文(2)协商过程协商的过程如下:协商双方互相发送一个报文,确认收到的报文中的协商选项,根据这些选项的支持与接受情况,做出适当的回应。

若两端都回应了,则标志链路建立成功,否则会继续发送报文,直到对端回应了报文为止。

说明:(1):若完全支持对端的选项,则回应报文,报文中必须完全携带对端报文中的选项。

(2):若支持对端的协商选项,但不认可该项协商的内容,则回应报文,在的选项中填上自己期望的内容,如:对端值为1500,而自己期望值为1492,则在报文中埴上自己的期望值1492。

(3):若不能支持对端的协商选项,则回应报文,报文中带上不能支持的选项,如拨号器会协商(被叫回呼),而60不支持功能,则回将此选项拒绝掉。

2.2 认证阶段(:)会话双方通过协商好的认证方法进行认证,如果认证通过了,才可以进行下面的网络层的协商。

认证过程在链路协商结束后就进行。

Ⅰ(,口令认证协议)认证为两次握手协议,它通过用户名及口令来对用户进行验证。

验证过程如下:当两端链路可相互传输数据时,被验证方发送本端的用户名及口令到验证方,验证方根据本端的用户表(或服务器)查看是否有此用户,口令是否正确。

如正确则会给对端发送报文,通告对端已被允许进入下一阶段协商;否则发送报文,通告对端验证失败。

此时,并不会直接将链路关闭。

只有当验证不过次数达到一定值(缺省为10)时,才会关闭链路。

的特点是在网络上以明文的方式传递用户名及口令,如在传输过程中被截获,便有可能对网络安全造成极大的威胁。

因此,它适用于对网络安全要求相对较低的环境。

Ⅱ(,质询握手认证协议)认证为三次握手协议。

只在网络上传输用户名,并不传输用户口令,因此它的安全性要比高。

的验证过程为:首先由验证方()向被验证方()发送一些随机产生的报文,并同时将本端的主机名附带上一起发送给被验证方。

被验证方接到对端对本端的验证请求()时,便根据此报文中验证方的主机名和本端的用户表查找用户口令字,如找到用户表中与验证方主机名相同的用户,便利用报文、此用户的密钥用5算法生成应答(),随后将应答和自己的主机名送回。

验证方接到此应答后,用报文、本方保留的口令字(密钥)和随机报文用5算法得出结果,与被验证方应答比较,根据比较结果返回相应的结果()(1)接受认证端发送(2)申请认证端发验证请求报文(3)接受认证端回应认证接受报文经过以上三次报文交互后,认证完成。

2.3 协商阶段(:)有很多种,如、、6,最为常用的是()协议。

的主要功能是协商报文的网络层参数,如地址,地址,地址等。

用户主要通过来获取访问网络的地址或地址段。

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

的协商过程是基于状态机进行协商的。

经过双方协商,通过配置请求、配置确认、配置否认等包文交换配置信息,最终由(或)状态变为状态。

状态变为的条件必须是发送方和接收方都发送和接收过确认包文。

协商过程中,协商包文可包含多个选项,即参数。

各个选项的拒绝或否认都不能影响的,可以无选项协商,无选项协商也同样能够。

选项有、网关、掩码等,其中是最重要的一个选项,有些厂家的实现必须这个选项得到确认,大多数厂家的实现允许这个选项为空。

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

如:业务阶段使用的压缩协议等。

双方的协议是通过报文中包含的项进行协商的,每一个都是一个需要协商的问题。

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

2.4 会话维持()设备主动发送进行心跳保活,若3次未得到服务器的响应,则设备主动释放地址。

发的时候,魔术字字段要和之前通信的使用的魔术字字段保持一致。

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

2.5 会话结束()还有一个()分组,它可以在会话建立后的任何时候发送,来终止会话,也就是会话释放。

它可以由主机或者接入集中器发送,目的地址填充为对端的以太网的地址。

当对方接收到一个()分组,就不再允许使用这个会话来发送业务。

分组不需要任何标签,其字段值为07(),字段值为需要终止的会话的会话标识号码。

在发送或接收后,即使正常的终止分组也不必发送。

对端应该使用协议自身来终止会话,但是当不能使用时,可以使用。

4中的拨号守护进程(:)内核中定义了{} 和;实现代码在目录下,中实现了、、等接口。

是一个后台服务进程(),是一个用户空间的进程,所以把策略性的内容从内核的协议处理模块移到中是很自然的事了。

实现了所有鉴权、压缩/解压和加密/解密等扩展功能的控制协议。

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

设备文件名是。

通过系统调用,可以读取协议处理模块的数据包,当然,协议处理模块只会把应该由处理的数据包发给。

通过系统调用,可以把要发送的数据包传递给协议处理模块。

通过系统调用,可以设置协议的参数,可以建立/关闭连接帧格式:的报文就是在的报文前面再加上头和以太网的报头,使得可以通过简单桥接设备连入远端接入设备字段如下:其中::(用于中的协商参数)0x00000x01010x01020x01030x0104 0x0105 0x0110 0x0201 0x0202 0x0203协议的数据报文下面我们来对协议的数据报文内容进行一下分析和讲解。

首先我们需要从数据帧内容过度一下今天的内容。

对于协议的基础内容,数据帧以及模式我们都做了介绍。

那么这里我们再来讲解一下协议的数据报文的内容。

通过前面的文章,我们知道,数据报文是在链路建立阶段被交换的,它作为的净载荷被封装在数据帧的信息域中。

在链路建立阶段的整个过程中信息域的内容是在变化的,它包括很多种类型的报文,所以这些报文也要通过相应的字段来区分。

数据帧的协议域固定填充0021。

代码域 1 + 标识域 1 + 长度域+ 数据域代码域的长度为一个字节,主要是用来标识数据报文的类型的。

在链路建立阶段时,接收方收到数据报文的代码域无法识别时,就会向对端发送一个的代码拒绝报文(报文)。

标识域也是一个字节,其目的是用来匹配请求和响应报文。

一般而言在进入链路建立阶段时,通信双方无论哪一端都会连续发送几个配置请求报文(报文),而这几个请求报文的数据域可能是完全一样的,而仅仅是它们的标识域不同罢了。

通常一个配置请求报文的是从0x01开始逐步加1的,当对端接收到该配置请求报文后,无论使用何种报文(回应报文可能是、和三种报文中的一种)来回应对方,但必须要求回应报文中的(标识域)要与接收报文中的一致,当通信设备收到回应后就可以将该回应与发送时的进行比较来决定下一步的操作。

长度域的内容= 总字节数据(代码域+标志域+长度域+数据域)。

长度域所指示字节数之外的字节将被当作填充字节而忽略掉,而且该域的内容不能超过的值。

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

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

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

链路配置报文主要包括、、和四种报文。

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

当接收方收到报文时,会在剩下的三种类型的报文中选择一种来响应对方的请求报文,到底选择哪种报文来响应对方需依据以下两个条件:不能完全识别配置参数选项的类型域,我们知道一个报文中会同时携带多个配置参数选项,而对于一个支持协议的通信设备也不一定会支持上表中所有列出的配置选项,即使支持,也可能在实际应用中关闭掉某些选项功能。

(例如:当使用协议通信的一端可能将一些无用的配置选项都关闭了,而仅支持0x01和0x03两个配置参数选项,因此当对方发送的报文中含有0x04配置选项时,对于本端而言这个配置参数选项就无法识别,也即是不支持这个配置参数选项的协商)。

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

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

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

相关主题