嵌入式PPPoE软件模块的设计与实现
发布时间:2007/8/28 0:00:00 访问次数:1073
作者:张 锋 李 彤 黄永峰
摘要:分析了PPPoE协议的基本框架和协议过程,根据嵌入式系统资源有限和无操作系统支持的特点,设计了一种适合于嵌入式系统的PPPoE软件结构,提出了减少代码长度和数据存储空间的化优方法,在80D51芯片上成功实现了PPPoE协议软件,并应用在以太话机中。实际运行证明,本PPPoE协议软件在稳定性、互通性和一致性等方面都具有良好的性能。
关键词:PPPoE PPP 嵌入式系统
基于以太网的点对点通信协议PPPoE(Point to Point Protocol over Ethenet)是为了满足越来越多的宽带上网设备(如ADSL、无线、有线电视等)和越来越快的网络之间的通信而指定开发的标准,它给出了两个广泛的接受的标准:以太网和PPP拨号协议。不难看出,PPPoE就是将PPP数据承载到以太网上,实质是在共享介质的网络中提供一条逻辑上的点到点链路。对用户而言,在DSLAM(DSL汇聚设备)与ADSL Modem之间的ATM传输是透明的,如果将中间的DSLAM和ADSL Modem换成有效电视的接入设备,就是典型的HFC接入。BAS(宽带接入服务器)对PPPoE包的处理方式不变。而对于服务商,在现有局域网基础上不需要花费巨资做大面积改造。
目前,实现PPPoE协议的软件有多种,且多数都是应用于PC机。该类软件的作用主要是操作系统的拨号(PPP)协议与以太网协议建立连接,通过PPPoE协议与ISP连接,获得Internet连接服务。而本考到嵌入式系统的特点,直接在网络协议数据链路层实现PPPoE协议。这样做省去了链路层的PPP包到PPPoE包的转换,提高了效率,并且具有良好的可移植性。
1 PPPoE协议框架
PPPoE协议共包括两个阶段,即PPPoE的妈现阶段(PPPoE Discovery Stage)和PPPoE的会话阶段(PPPoE Session Stage)。本文着重介绍PPPoE发现阶段。对于PPPoE会话阶段,可以看成与PPP的会话过程基本一样,当然两者在数据的封装上还是有区别的。PPPoE并不需要PPP协议中的起始位标志、地址位、控制位和结束标志,也不需要PPP协议中规定的数据转译和CRC校验,但要在PPP的数据报文前封装PPPoE的报文头。无论是哪一个阶段的数据报文最终会被封装成以太网帧传送。
如果主机要开始一个PPPoE会话,它首先会在网络上发送一个广播,通过广播寻找一个访问集中器AC(Access Concentration)。当网络上存在多个访问集中器时,主机根据访问集中器所能提供的服务或用户预先配置的信息进行相应的选择。访问集中器选定后,主机开始与所选择的访问集中器建立一个PPPoE会话进程。在这一过程中,访问集中器会为每一个PPPoE会话分配一个惟一的进程ID,会话建立后就开始了PPPoE的会话阶段。在这个阶段,已建立好点对点(逻辑点对点)连接的双方采用PPP协议交换数据报文,从而完成一系列PPP的过程,最终将在这个点对点的逻辑通道上进行网络层数据包的传送。
PPPoE可以理解为在以太网上跑PPP数据,因此,其帧格式与以太帧格式一致,如图1所示。通过类型域字段的内容,数据包的接收方可以识别以太网的数据域中承载的是什么协议的数据报文。PPPoE的两大阶段,也正是通过以太网的类型域进行区分的。这个域的值,在发现阶段为0x8863,而在会话阶段为0x8864。
PPPoE帧的载荷字承载PPPoE数据报文,报文格式如图2所示,其中各字段的含义如下:
1)版本字段(ver)标志着协议版本信息,为4bits,目前协议规定其值为0x1。
2)类型字段(type),4bits,标志类型信息,值为0x1。
3)编码字段(code),单个字节,在不同阶段具有不同取值,本文稍候详细分析。
4)会话ID字段(session id)由两个字节组成,在发现阶段,取值为0x0000,在后续的整个PPPo
作者:张 锋 李 彤 黄永峰
摘要:分析了PPPoE协议的基本框架和协议过程,根据嵌入式系统资源有限和无操作系统支持的特点,设计了一种适合于嵌入式系统的PPPoE软件结构,提出了减少代码长度和数据存储空间的化优方法,在80D51芯片上成功实现了PPPoE协议软件,并应用在以太话机中。实际运行证明,本PPPoE协议软件在稳定性、互通性和一致性等方面都具有良好的性能。
关键词:PPPoE PPP 嵌入式系统
基于以太网的点对点通信协议PPPoE(Point to Point Protocol over Ethenet)是为了满足越来越多的宽带上网设备(如ADSL、无线、有线电视等)和越来越快的网络之间的通信而指定开发的标准,它给出了两个广泛的接受的标准:以太网和PPP拨号协议。不难看出,PPPoE就是将PPP数据承载到以太网上,实质是在共享介质的网络中提供一条逻辑上的点到点链路。对用户而言,在DSLAM(DSL汇聚设备)与ADSL Modem之间的ATM传输是透明的,如果将中间的DSLAM和ADSL Modem换成有效电视的接入设备,就是典型的HFC接入。BAS(宽带接入服务器)对PPPoE包的处理方式不变。而对于服务商,在现有局域网基础上不需要花费巨资做大面积改造。
目前,实现PPPoE协议的软件有多种,且多数都是应用于PC机。该类软件的作用主要是操作系统的拨号(PPP)协议与以太网协议建立连接,通过PPPoE协议与ISP连接,获得Internet连接服务。而本考到嵌入式系统的特点,直接在网络协议数据链路层实现PPPoE协议。这样做省去了链路层的PPP包到PPPoE包的转换,提高了效率,并且具有良好的可移植性。
1 PPPoE协议框架
PPPoE协议共包括两个阶段,即PPPoE的妈现阶段(PPPoE Discovery Stage)和PPPoE的会话阶段(PPPoE Session Stage)。本文着重介绍PPPoE发现阶段。对于PPPoE会话阶段,可以看成与PPP的会话过程基本一样,当然两者在数据的封装上还是有区别的。PPPoE并不需要PPP协议中的起始位标志、地址位、控制位和结束标志,也不需要PPP协议中规定的数据转译和CRC校验,但要在PPP的数据报文前封装PPPoE的报文头。无论是哪一个阶段的数据报文最终会被封装成以太网帧传送。
如果主机要开始一个PPPoE会话,它首先会在网络上发送一个广播,通过广播寻找一个访问集中器AC(Access Concentration)。当网络上存在多个访问集中器时,主机根据访问集中器所能提供的服务或用户预先配置的信息进行相应的选择。访问集中器选定后,主机开始与所选择的访问集中器建立一个PPPoE会话进程。在这一过程中,访问集中器会为每一个PPPoE会话分配一个惟一的进程ID,会话建立后就开始了PPPoE的会话阶段。在这个阶段,已建立好点对点(逻辑点对点)连接的双方采用PPP协议交换数据报文,从而完成一系列PPP的过程,最终将在这个点对点的逻辑通道上进行网络层数据包的传送。
PPPoE可以理解为在以太网上跑PPP数据,因此,其帧格式与以太帧格式一致,如图1所示。通过类型域字段的内容,数据包的接收方可以识别以太网的数据域中承载的是什么协议的数据报文。PPPoE的两大阶段,也正是通过以太网的类型域进行区分的。这个域的值,在发现阶段为0x8863,而在会话阶段为0x8864。
PPPoE帧的载荷字承载PPPoE数据报文,报文格式如图2所示,其中各字段的含义如下:
1)版本字段(ver)标志着协议版本信息,为4bits,目前协议规定其值为0x1。
2)类型字段(type),4bits,标志类型信息,值为0x1。
3)编码字段(code),单个字节,在不同阶段具有不同取值,本文稍候详细分析。
4)会话ID字段(session id)由两个字节组成,在发现阶段,取值为0x0000,在后续的整个PPPo