![嵌入式PPPoE软件模块的设计与实现_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-1/19/10749ec1-75df-4131-9f91-2b82c8c96ee1/10749ec1-75df-4131-9f91-2b82c8c96ee11.gif)
![嵌入式PPPoE软件模块的设计与实现_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-1/19/10749ec1-75df-4131-9f91-2b82c8c96ee1/10749ec1-75df-4131-9f91-2b82c8c96ee12.gif)
![嵌入式PPPoE软件模块的设计与实现_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-1/19/10749ec1-75df-4131-9f91-2b82c8c96ee1/10749ec1-75df-4131-9f91-2b82c8c96ee13.gif)
![嵌入式PPPoE软件模块的设计与实现_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-1/19/10749ec1-75df-4131-9f91-2b82c8c96ee1/10749ec1-75df-4131-9f91-2b82c8c96ee14.gif)
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 嵌入式PPPoE软件模块的设计与实现 张 锋1, 李 彤1, 黄永峰2 时间:2008年08月25日 字 体: 大 中 小 关键词: 摘要:关键词: PPPoE PPP 嵌入式系统1 PPPoE协议框架1PPPoE协议共包
2、括两个阶段11与以太帧格式一致,如图1所示。通过类型域字段的内容,数据包的接收方可以识别以太网的数据域中承载的是什么协议的数据报文。PPPoE的两大阶段,也正是通过以太网的类型域进行区分的。这个域的值,在发现阶段为0x8863,而在会话阶段为0x8864。PPPoE帧的载荷字段承载PPPoE数据报文1,报文格式如图2所示,其中各字段的含义如下:(1)版本字段(ver)标志着协议版本信息,为4bits,目前协议规定其值为0x1。(2)类型字段(type),4bits,标志类型信息,值为0x1。(3)编码字段(code),单个字节,在不同阶段具有不同取值,本文稍候详细分析。(4)会话ID字段(se
3、ssion id)由两个字节组成,在发现阶段,取值为0x0000,在后续的整个PPPoE会话过程中取值为发现阶段所获得的由AC分配的惟一值。(5)长度字段(length)由两个字节组成,指示payload字段的长度,取值可以是01500。(6)净载荷字段(payload),该字段存放PPPoE协议帧所承载的数据,在发现阶段承载零个或多个TAG结构1,在会话阶段承载PPP协议数据。但不是简单的PPP封装,因为并不需要PPP协议中的起始位标志、地址位、控制位和结束标志,也不需要PPP协议中规定的数据转译和CRC校验。TAG结构如图3所示。2 PPPoE协议分析PPPoE协议分为发现(Discove
4、ry)阶段和会话(Session)阶段。发现阶段是一个无状态的阶段,该阶段主要选择访问集中器,确定所要建立的PPP会话标识符Session ID,同时获得对方点到点的连接信息;PPP会话阶段执行标准的PPP过程。(1) 发现阶段一个典型的发现阶段分为四个步骤,当整个发现阶段结束后,通信双方分别获得对方的MAC地址,并且共用一个Session ID,这两个参数共同确定一个PPPoE会话。第一步,发送PADI(PPPoE Active Discovery Initiation)帧。在PPPoE的以太帧结构中,编码域的值为0x09,会话ID域的值设为0x0000。在这个步骤中,以太帧目的地址为广播并
5、且在包中必须包含一个确切的服务名。第二步,接收PADO(PPPoE Active Discovery Offer) 帧。这一过程就是当ISP的PPPoE访问集中器收到PADI帧后,若能够满足PADI提出的服务请求,可以发送PADO帧回应。PADO帧中的目的地址为发送PADI帧的客户端的MAC地址,源地址为响应PADO帧的服务器地址。编码域的值为0x07,会话ID域的值也设为0x0000。PADO帧还要包括PADI帧所提出的服务项。第三步,发送PADR(PPPoE Active Discovery Request) 帧。由于PADI包是广播式的,故主机可能收到多个PADO响应帧。主机在可能收到的
6、多个PADO帧中根据访问集中器的名称标签或能提供的服务标签选择一个合适的访问集中器,然后向所选择的访问集中器发送PPPoE有效发现请求(PADR) 帧。其编码域为0x19,Session ID域仍为0x0000,PADR帧必须包含一个服务名称类型标签,确定向接入服务器请求的服务种类。第四步,接收PADS(PPPoE Active Discovery Session-confirmation ) 帧。访问集中器收到PADR帧后开始PPP会话,它发送一个PPPoE有效发现会话确认(PADS) 帧。其编码域为0x65,会话 ID域此时为接入服务器所产生的惟一PPPoE会话标识号码。PADS帧也必须包
7、含一个访问集中器名称类型的标签,确认向主机提供的服务。当主机收到PADS帧确认后,双方进入PPP会话阶段。若访问集中器不能提供PADR中的服务名称标签所定义的服务,它必须回复PADS帧,此帧必须包含标签类型Sevice-Name-Error的标签,此时SESSION_ID必须为0x0000。在完成上述步骤后,双方进入会话阶段。会话建立后,会话双方任何一方都可以通过发送PADT(PPPoE active discover terminate)帧终止会话。PADT帧中的编码字段值为0xA7,SESSION_ID字段为在发现阶段结束之后得到的会话ID值,以太帧类型字段还是0x8863。发送PADT后
8、则该次PPPoE过程结束。(2)会话阶段当PPPoE会话开始后,PPP数据就像普通的PPP数据被传送,这时以太帧的目的地址是单播地址,类型为0x8864,编码域必须是0x00,SESSION_ID必须是发现阶段建立的SESSION_ID,且在会话过程中不能改变。PPPoE净载荷是PPP帧,会话过程实际上也就是实现PPP协议的过程,PPP分为三个阶段。首先通过LCP完成相关链路控制协商过程,主要是建立、配置、测试数据链路,根据双方的需求,进行链路的协商和配置。PAP密码认证后,通过NCP,针对不同的网络层协议的网络控制阶段。最后就是IP数据的传输阶段。3 PPPoE模块软件设计应用于嵌入式系统的
9、PPPoE软件模块主要通过系统中的以太网络驱动在链路层与访问集中器建立一个逻辑上点对点的通信链路,为上层TCP/IP协议栈服务。发送数据时,将上层IP分组封装成PPPoE协议帧发送出去。在接收数据时,将接收到的PPPoE协议帧解析后,交由上层模块处理,如图4所示。与访问集中器建立通信链路的过程是软件设计的核心部分。PPPoE发现阶段流程如图5所示。发现阶段分为四个过程完成:发送PADI、接收PADO、发送PADR和接收PADS。在发送PADI和PADR时要分别定时和计数,在有限的时间内没有收到响应,就应重新发送;如果在重复发送若干次之后还没有相应,说明此时网络故障或者网络上没有能够响应请求的服
10、务器。PPPoE会话阶段是一个标准的PPP协商过程。整个协商过程分为三部分:LCP Negotiation、PAP Negotiation、IPCP Negotiation。LCP阶段23过程比较简单,发送PAP请求数据包,其中包括账号和密码,ISP返回确认数据包,PAP协商过程结束。IPCP阶段4的目的是获取ISP方提供的IP地址,流程如图7所示。所以在IPCP阶段的协商主要针对OPTION3进行。PPPoE模块首先接收服务器端一个IPCP_REQ,这个IPCP_REQ包括OPTION3(其IP地址值通常无效);接着PPPoE模块发送一个IPCP_ACK,ISP方会响应一个带有有效地址的IP
11、CP_NAK;然后PPPoE模块就以这个地址再发一个IPCP_REQ,ISP服务器回应IPCP_ACK,IPCP结束。此时PPPoE模块得到了服务器分配的有效IP地址,随后就可以在PPPoE协议之上传送IP数据包。需要注意的是,在PPP协商过程结束后,服务器为了检验接入方链路的活动状态,会定期发出LCP Echo-Request请求,此时PPPoE模块需要发送LCP Echo-ACK作为应答。嵌入式系统程序设计的特点是面向特定应用,由于资源有限,软件必须去除冗余。本PPPoE模块应用在以太电话中,在程序模块设计中针对性地实现PPPoE协议的主要功能,尽量使代码短小精悍,如省略掉了PPPoE发现
12、阶段网络上有多个AC的情况,还省略了在会话阶段对于LCP OPTION3(认证协议)以外选项的协商和IPCP PTION3(IP地址)以外的选项的协商等情况。这些情况,PPPoE模块需要更多的代码来处理,而对于以太话机这种特定的应用,有些选项是不必要的。另外,在软件结构设计中,采用“超循环”结构来解决无操作系统问题,可以很好地实现以太话机中的任务调度功能。在代码编写上,采用C与汇编相结合的方法提高程序效率,同时采用流水操作、Inline、全局变量和共享内存等技术实现代码长度和数据空间的优化。测试表明,实现PPPoE软件所需的代码空间和数据空间都比PC机环境下PPPoE软件代码要小得多。PPPo
13、E协议是当今ADSL宽带接入Internet的主要技术之一,而嵌入式技术是如今IT技术发展的热点,广泛应用于信息家电和各种媒体通信终端设备。本文在对PPPoE协议深入分析的基础上,结合嵌入式系统的特点,提出了PPPoE在嵌入式系统上的具体实现方法,通过运用这些优化方法,使软件代码空间和数据空间大大减少。目前该软件模块已成功应用在笔者自己开发的以太话机中。实际运行表明,软件运行稳定、互通性好,所实现的PPPoE协议软件具有良好的应用价值。参考文献1 RFC2516 A Method for Transmitting PPP Over Ethernet (PPPoE). February 19992 RFC1661. The Point-to-Point Protocol (PPP). July 19943
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度海洋资源开发借款施工合同
- 2025年度进口药品注册及临床试验合同范本
- 2025年度个人信用贷款合同模板(2024版)
- 2025年度新能源汽车以租代购与充电服务合同
- 环境科学在环境保护政策制定中的作用
- 现代酒店业中的人机交互技术应用
- 电商平台消费者行为分析与研究
- 统编版初中语文八年级下册第六课《阿西莫夫短文两篇》听评课记录
- 2025年度混凝土预制构件加工及销售合同范本
- 电商平台供应链金融创新及对盈利的贡献
- 食品安全公益诉讼
- 中学生低碳生活调查报告
- 游泳池经营合作方案
- 弱电项目经理工作总结
- 擘画未来技术蓝图
- 基于情报基本理论的公安情报
- 《“白山黑水”-东北三省》示范课课件(第1课时)
- 员工节能环保培训课件
- 四年级下册部编版语文教学参考教师用书
- 华为公司的内部审计制度
- 月球基地建设与运行管理模式
评论
0/150
提交评论