[优秀嵌入式毕业设计]基于嵌入式Linux系统的PPPoE实现方案的研究

上传人:仙*** 文档编号:31897770 上传时间:2021-10-13 格式:DOC 页数:41 大小:1.55MB
收藏 版权申诉 举报 下载
[优秀嵌入式毕业设计]基于嵌入式Linux系统的PPPoE实现方案的研究_第1页
第1页 / 共41页
[优秀嵌入式毕业设计]基于嵌入式Linux系统的PPPoE实现方案的研究_第2页
第2页 / 共41页
[优秀嵌入式毕业设计]基于嵌入式Linux系统的PPPoE实现方案的研究_第3页
第3页 / 共41页
资源描述:

《[优秀嵌入式毕业设计]基于嵌入式Linux系统的PPPoE实现方案的研究》由会员分享,可在线阅读,更多相关《[优秀嵌入式毕业设计]基于嵌入式Linux系统的PPPoE实现方案的研究(41页珍藏版)》请在装配图网上搜索。

1、摘 要嵌入式系统技术是近几年发展较快的一种新兴技术,嵌入式系统产品已经被广泛的应用在科技、工业、通信、生活等各个领域。随着信息化、智能化、网络化的发展,嵌入式系统将成为通信和消费类产品的共同发展方向。目前,嵌入式处理器和嵌入式操作系统的发展日臻完善,结合成熟的网络技术,嵌入式产品的网络化将成为嵌入式技术的发展趋势。PPPoE 是宽带接入方式中广泛应用的技术,为了实现嵌入式多媒体终端的宽带接入,本文提出了嵌入式系统 PPPoE 协议的开发。现在大多数 ISP 都不提供 Linux 操作系统 PPPoE 客户端,而只提供 windows客户端支持。本文会先简要介绍嵌入式 Linux 系统,接着详细

2、分析 PPPoE 协议和PPP 协议的原理,最后通过硬件与软件设计给出了在嵌入式 Linux 操作系统上的PPPoE 的实现方案,最终通过在 Ubuntu 与目标板的实际操作,实现嵌入式 Linux系统上的 PPPoE 的拨号上网。关键词 嵌入式系统 PPPoE PPP LinuxABSTRACTThe embedded system is a potential technology developing fastly. The embedded productions have been widely used in various fileds such as research,indu

3、stry,communication,lifes and so on. Now,the embedded operation system,embedded processors are becoming mature. The embedded production will develop together with Internet. PPPoE is the main protocol of broadband access technology. In order to make the embedded system communicated through broadband a

4、ccess mode,we research PPPoE protocol in embedded system.Now most ISP dont supply PPPoE cilent for Linux,but do PPPoE cilents only for windows. Firstly this paper briefly describes the embedded Linux system,then describes in detail the PPPoE protocol and PPP protocol,lastly achieve the PPPoE softwar

5、e implementations in the Linux operating system.Finally,according to the actual operation on the Ubuntu and target to complete PPPoE dial-up Internet access of the embedded Linux system.Key words Embedded system,PPPoE,PPP,Linux目目 录录第一章 绪论.11.1 课题的研究背景.11.2 课题的研究方案.21.3 课题的研究内容.2第二章 嵌入式系统.22.1 什么是嵌入式

6、系统.22.1.1 嵌入式系统定义.22.1.2 嵌入式系统的体系结构.22.2 嵌入式操作系统.32.2.1 常见的嵌入式操作系统.32.3 实时操作系统.42.3.1 实时性.42.3.2 实时操作系统概括.42.4 嵌入式 LINUX操作系统.42.4.1 Linux 发展概述.42.4.2 Linux 作为嵌入式操作系统的优势.52.4.3 Linux 的版本.5第三章 PPP 协议分析与研究.63.1 PPP 协议概述.63.2 PPP 的层次结构.63.3 PPP 的链路建立过程.73.4 PPP 的帧结构.83.5 PPP 的身份验证.9第四章 PPPOE 协议分析与研究.104

7、.1 PPPOE 协议概述.104.2 PPPOE 协议原理.114.3 PPPOE 协议分析.124.3.1 PPPoE 的包格式.124.3.2 PPPoE 的消息类型和协商过程.134.4 PPPOE 协议的相关问题.144.4.1 超时重传机制.144.4.2 PPPoE 的 MTU 设置.14第五章 PPPOE 的实现方案.155.1 硬件设计.155.2 软件设计.15第六章 PPPOE 在嵌入式 LINUX 系统上的实现.216.1 ICETEK-OMAP3530-MINI板简介.216.1.1 ICETEK-OMAP3530-MINI板开发环境.226.1.2 ICETEK-O

8、MAP3530-Mini 板使用操作.226.2 ICETEK-OMAP3530-MINI板嵌入式软件目标系统概述.236.3 UBUNTU上实际操作-准备步骤.246.3.1 复制并且编译 XLoader 程序.246.3.2 复制并且编译 UBoot 程序.246.3.3 复制并且编译内核.256.4 UBUNTU上实际操作-具体步骤.266.4.1 配置编译内核.266.4.2 安装 PPP-2.4.4.276.4.3 安装 rp-pppoe-3.10.286.4.4 复制配置文件.306.4.5 在 ICETEK-OMAP3530-Mini 板上测试运行.316.4.6 成果展示.31

9、结束语.31致谢.32参考文献.331第一章第一章 绪论绪论1.1 课题的研究背景课题的研究背景随着计算机技术、网络技术和通信技术的不断发展以及人们物质生活水平的不断提高,人们对家居品质的要求也与日俱增。曾经在科幻片中幻想的诸多情景:坐在沙发上就可以控制家里照明系统;躺在床上就能开关卫生间的换气扇、不必下床就能为客人打开家门;下班途中发个短信就可以提前启动家中的空调和热水器;每天晚上,所有的窗帘都会定时自动关闭;出门在外不光可以关闭忘记断电的家用设施,还可以实时查看家中老人及孩子的安全状况。所有的这些,不断刺激着消费者对高品质家居的追求,也不断激励着各大科研机构和厂商推动科技进步,从此,智能家

10、居概念深入人心。智能家居主要由宽带接入、家庭智能网关、家居信息系统和家居控制网络等组成,其中家庭智能网关是整个智能家居的核心,不仅仅为家庭内部网络和家庭外部网络提供网络连接,成为家庭内部网络的出口,同时,要对家庭网络及设备实现监控、远程控制,信息的路由选择、内外网络之间的协议转换等功能。家庭智能网关对于智能家居的开展至关重要,智能家居是否能成功部署,与家庭智能网关是否易用,是否可以与家庭网络中的设备相互发现和互操作,是否支持多种业务均是紧密相关的,因此本文将家庭智能网关作为研究的对象。由于本文是在嵌入式系统上实现的,所以下面将对嵌入式系统进一步地介绍。随着数字信息技术的发展,我们已经进入了网络

11、时代,人类社会已经进入了后 PC 时代,其中嵌入式技术是近几年来发展最为迅猛、最受人关注的一门新兴技术。从工业流水线控制、通讯、仪器仪表、汽车、航空航天、军事装备等领域到手表、电话、手机、新型的电饭锅、冰箱等生活用品,无处不体现了嵌入式技术的身影。目前嵌入式计算机在数量上远远超过了各种通用计算机,PC 的各种输入输出和外部设备均由嵌入式处理器控制,每台 PC 的外部设备中包含了 5-10 个嵌入式微处理器。根据美国嵌入式系统专业杂志 RTC 报道,21世纪初的十年中,全球嵌入式系统市场需求量具有比 PC 市场大 10 至 100 倍的商机。目前以信息家电为代表的互联网时代嵌入式产品,不仅为嵌入

12、式市场展现了美好的前景,注入了新的生命;同时也对嵌入式系统技术,特别是软件技术提出新的挑战,这主要包括:支持日趋增长的功能密度、灵活的网络联接、轻便的移动应用和多媒体的的信息处理。嵌入式系统的多媒体和网络化随着多媒体技术的发展不断进步,视频、音频信息的处理水平越来越高,为嵌入式系统的多媒体化创造了良好的条件,嵌入式系统的多媒体化将变为现实。嵌入式系统中嵌入式 Linux 系统是很重要的一部分。Linux 从 1991 年问世到现在的短短十几年时间内,已经发展成为功能强大、设计完善的操作系统之一,不仅可以与各种传统的商业操作系统分庭抗争,在新兴的嵌入式领域内也获得了飞速发展。嵌入式 Linux

13、以其可应用于多种硬件平台、内核高效稳定、源代码开放、软件丰富、网络通信和文件管理机制完善等优良特性,成为嵌入式系统领域中的一个研究热点。在如今的用户上网方式中,ADSL(Asymmetric Digital Subscriber Line,非对称数字用户线路)是一种非常常见的方式,是一种通过现有普通电话线为家2庭、办公室提供宽带数据传输服务的技术。要实现嵌入式多媒体终端在 ADSL上通信,就必须开发 PPPoE 协议。PPPoE 全称是 Point to Point Protocol over Ethernet(基于局域网的点对点通信协议) ,这个协议是为了满足越来越多的宽带上网设备(即 AD

14、SL、无线、有线电视等)和越来越快的网络之间的通信而最新制定开发的标准,它基于两个广泛接受的标准,即:以太网和 PPP(点到点)拨号协议。对于最终用户来说不需要用户了解比较深的局域网技术,只需要当做普通拨号上网就可以了对于服务商来说在现有局域网基础上不需要花费巨资来做大面积改造,设置 IP 地址绑定用户等来支持专业方式。这就使得 PPPoE 在宽带接入服务中比其他协议更具有优势,因此逐渐成为宽带上网的最佳选择。为了能够使得开发的嵌入式多媒体终端应用在更多的接入方式中(如ADSL) ,就要在嵌入式多媒体终端实现 PPPoE 接入认证协议,通过 PPPoE 协议软件连接 ISP(因特网服务提供商)

15、并取得通信。1.2课题的研究方案课题的研究方案本课题旨在搭建一个家庭智能网关软件平台,主要对如何构建基于OMAP3530 和嵌入式 Linux 操作系统的软件平台、并实现 PPPOE 的拨号上网,接入 ISP 中并获得公网 IP 地址,这样不仅可以实现家庭内部网络访问Internet,也可以在家庭网关的平台上搭建服务器,构建 B/S 结构供远程的 PC访问家庭内部网络,从而了解家庭内部情况。本文中将通过硬件设计和软件设计来阐述课题的研究方案,通过对硬件设计的框架图、软件设计的框架图以及对内核与应用程序之间的关系分析,通过对程序代码的分析与实现流程图来介绍实现的一个方案。1.3 课题的研究内容课

16、题的研究内容课题最终要在嵌入式 Linux 系统上实现 PPPoE 协议,因此,论文分以下几个方面进行:第一章:绪论。分析课题的研究背景。第二章:嵌入式系统。介绍了嵌入式系统以及嵌入式 Linux 系统的基本概念。第三章:PPP 协议的分析与研究。首先介绍了 PPP 协议的基本原理。第四章:PPPoE 协议的分析与研究。介绍了 PPPoE 协议的基本原理第五章:PPPoE 在嵌入式 Linux 系统上的实现方案。第六章:PPPoE 在嵌入式 Linux 系统上的实现步骤。3第二章第二章 嵌入式系统嵌入式系统随着 IT(信息)技术的飞速发展,特别是互联网的迅速普及,3C(计算机、通讯、消费电子)

17、合一的加速,数字化时代已经来临。嵌入式系统是数字化时代的一大主流产品,世界各国在此领域开始了激烈竞争,以争取获得主导地位。嵌入式系统是数字化产品的核心,为适应嵌入式分布处理结构和应用上网需求,面向 21 世纪的嵌入式系统要求配备标准的一种或多种网络通信接口。针对外部互联网要求,嵌入设备必需配有通信接口,相应需要 TCP/IP 协议族软件支持。2.1 什么是嵌入式系统什么是嵌入式系统2.1.1 嵌入式系统定义嵌入式系统定义嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、

18、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。2.1.2 嵌入式系统的体系结构嵌入式系统的体系结构简单的说,嵌入式系统是一个集系统的应用软件与硬件与一体,具有软件代码小、高度自动化、响应速度等特点,特别适用于要求实时和多任务的体系。嵌入式系统的硬件部分,包括处理器/微处理器、存储器及外设器件和 I/O 端口、图形控制器。嵌入式系统有别于一般的计算机处理系统,它不具备像硬盘那样大容量的存储介质,而大多使用 EPROM(可擦可编程只读存储器) 、EEPROM(电可擦可编程只读存储器)或闪存(Flash Memory)作为存储介质。软件部分包括操作系统软

19、件(要求实时和多任务操作)和应用程序编程。应用程序控制着系统的运作和行为;而操作系统控制着应用程序编程与硬件的交互作用。2.2 嵌入式操作系统嵌入式操作系统嵌入式操作系统是一种支持嵌入式系统应用的操作系统软件,它是嵌入式系统(包括硬、软件系统)极为重要的组成部分,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。嵌入式操作系统具有通用操作系统的基本特点。如能够有效管理越来越复杂的系统资源;能够把硬件虚拟化,使得开发人员从繁忙的驱动程序移植和维护中解脱出来;能够提供库函数、驱动程序、工具集以及应用程序。与通用操作系统相比较,嵌入式操作系统在系统实时高效

20、性、硬件的相关依赖性、软件固态化以及应用的专用性等方面具有较为突出的特点。嵌入式操作系统有功能丰富和稳定性好等优点,每个具体的嵌入式系统都会有自己独特的地方,在嵌入式系统中使用操作系统,能够对嵌入式系统的开发产生极大的推动作用。2.2.1 常见的嵌入式操作系统常见的嵌入式操作系统随着对于嵌入式操作系统需求的不断扩大,各种各样的嵌入式操作系统不4断孕育而生,目前应用范围比较广泛的嵌入式操作系统有以下几种:1)Microsoft Windows CEMicrosoft Windows CE 是一个高效率的多平台操作系统。它是从整体上为有限资源的平台设计的多线程、完整优先权、多任务的操作系统。它的模

21、板化设计允许它对从掌上电脑到专用的工业控制器的用户设备进行定制。2)pSOSpSOS 是 ISI(Integrated Systems Inc.)公司研发的产品。pSOS 是一个模块化,高性能的实时操作系统,专为嵌入式微处理器设计,提供一个完全多任务环境,在定制的或是商业化的硬件上提供高性能和高可靠性,可以让开发者将操作系统的功能和内存需求按每个应用的需要定制成专门的系统。3)VxWorksVxWorks 操作系统是美国 WindRiver 公司于 1983 年设计开发的一种实时操作系统。VxWorks 是一个嵌入式实时操作系统,采用微内核的结构,具有支持处理器多,网络协议丰富,兼容性和裁剪性

22、好等特点,同时具有程序动态连接和下载的功能。它具有功能强大的应用程序接口(API) ,但大多数的 VxWorks API 是专用的,使用的是和 UNIX 不兼容得环境。4)PalmOSPalmOS 是 3Com 公司的产品,在掌上电脑和 PDA 市场上占有很大的市场份额。它有开放的操作系统应用程序接口(API) ,开发商可以根据需要自行开发所需的应用程序。它拥有一个提供基本任务管理的抢占式的多任务管理内核,在存储器管理方面引入了虚拟文件系统。5)嵌入式 Linux嵌入式 Linux 是将日益流行的 Linux 操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种操作系统。嵌入式 Linu

23、x 既继承了 Internet 上无限开放的源代码资源,又具有嵌入式操作系统的特性。随着 Linux 的迅速发展,嵌入式 Linux 现在已经有许多版本,包括强实时的嵌入式 Linux(如新墨西哥工学院的 RT-Linux 和堪萨斯大学的 KURT-Linux)和一般的嵌入式 Linux(如 Clinux 和 Pocket Linux 等) 。其中,RT-Linux 通过把通常的 Linux 任务优先级设为最低,而所有的实时任务的优先级都高于它,以达到既兼容通常的 Linux 任务,又保证强实时性能的目的。另一种常用的嵌入式 Linux 是 Clinux,它是针对没有 MMU 的处理器而设计的

24、。它不能使用处理器的虚拟内存管理技术,对内存的访问是直接的,所有程序中访问的地址都是实际的物理地址。它专为嵌入式系统做了许多小型化的工作。本课题的开发就是基于这个操作系统下进行的。嵌入式操作系统还有 QNX、Delta OS、Hopen OS、C/OS 等,这里就不一一赘述了。嵌入式操作系统往往都具有实时性,下面就解释什么叫实时操作系统。2.3 实时操作系统实时操作系统2.3.1 实时性实时性实时性是指能够在限定时间内执行完规定的功能,并对外部的异步事件做出反应的能力。比较复杂的应用需要嵌入式软件能及时、并行、协调地对外部事件做出正确的响应,并能有效地利用系统资源,避免竞争资源造成的系统崩5溃

25、。2.3.2 实时操作系统概括实时操作系统概括实时操作系统(RTOS)是具有实时性且能支持实时控制系统工作的操作系统。其首要任务是调度一切可利用的资源来完成实时控制任务,其次才着眼于提高计算机系统的使用效率,其重要的特点是能满足对时间的限制和要求。在任何时刻,它总是保证优先级最高的任务占用 CPU。系统对现场不停机地监测,一旦有事件发生,系统能即刻做出相应的处理。这除了由硬件质量作为基本保证外,主要由实时操作系统内部的时间驱动方式及任务调度来决定。实时操作系统是实时系统在启动之后运行的一段背景程序,应用程序是运行在这个基础之上的多个任务。实时操作系统根据各个任务的要求,进行资源管理、消息管理、

26、任务调度和异常处理等工作。在实时操作系统支持的系统红,每个任务第一具有不同的优先级别,他将根据各个任务的优先级来动态地切换各个任务,以保证对实时性的要求。从性能上讲,实时操作系统与普通操作系统存在的区别主要体现在“实时”二字上。在实时计算中,系统的正确性不仅依赖于计算的逻辑结果,而且依赖于结果产生的时间。RTOS 与通用计算机 OS 的区别:1)实时性。响应速度快,只有几微妙;执行时间确定,可预测。2)代码尺寸小。10100KB,节省内存空间,降低成本。3)应用程序开发较难。4)需要专用开发工具:仿真器、编译器和调试器。2.4 嵌入式嵌入式 LinuxLinux 操作系统操作系统随着 Moto

27、lola、三星、Monta Vista、飞利浦、Nokia、IBM、SUN 等众多国际顶级巨头的加入,嵌入式 Linux 的队伍越来越庞大,在通信、信息、数字家庭、工业控制等领域,随处都能见到嵌入式 Linux 的身影。根据美国VDC(Venture Development Co.)统计数据显示,嵌入式 Linux 的市场规模从2001 年的 5520 万美元,到 2006 年增长至 3.46 亿美元,是什么让嵌入式 Linux发展如此迅速,这一切都要归功于 Linux,可以说嵌入式 Linux 正是继承和发展了 Linux 的诱人之处才走到今天的,下面就从 Linux 开始简单地介绍一下嵌入

28、式 Linux。2.4.1 Linux 发展概述发展概述Linux 操作系统是 Unix 操作系统的一个克隆版本。人们通常说的 Linux 是指由芬兰人 Linus Torvalds 所写的 Linux 操作系统内核。在 Linux 诞生之前,为了教学和研究的需要,阿姆斯特丹 Vrije 大学的计算机科学家 Andrew S.Tanwnbaum 以 Unix 为蓝本开发了 Minix 作为一个教育工具。1991 年初,Linus 开始在一台 386sx 兼容微机上学习 Minix 操作系统。通过学习,他逐渐不能满足 Minix 系统的现有性能,并开始酝酿开发一个新的免费操作系统,很快就在 Mi

29、nxi 新闻组得到了响应。Linus 从一开始就决定自由传播 Linux,他把源代码发布在网上,于是,众多的爱好者和程序员也都通过互联网加入到 Linux 内核开发工作中,1993 年,Linux 的第一个正式版本 1.0 版发布,并遵从 GPL(GNU General Public 6License)版权协议。事实上,Linux 系统是世界各地成千上万志愿者设计和实现的。其目的是建立不受任何商品化软件版权制约的、全世界都能自由使用的类 Unix 操作系统。在 Linux 操作系统的设计过程中,借鉴了很多 Unix 的思想,但源代码是全部重写的。目前 Linux 操作系统可以运行在 x86,A

30、lpha,MIPS,Power Mac,Mach等类型的计算机上。从功能来看,它既可以作为普通的桌面操作系统,也可以作为中小型的网络操作系统,甚至作为大型网络的操作系统。2.4.2 Linux 作为嵌入式操作系统的优势作为嵌入式操作系统的优势从 Linux 系统的发展过程可以看出,Linux 从最早开始就是一个开放的系统,并且它始终遵循源代码开放的原则,它是一个成熟而稳定的网络操作系统,作为嵌入式操作系统有如下优势。1低成本开发系统Linux 的源码开放性允许任何人可以获取并修改 Linux 的源码。这样一方面大大降低了开发成本,另一方面又可以提高开发产品的效率。并且还可以在Linux 社区中

31、获得支持,用户只需向邮件列表发一封邮件,即可获得作者的支持。2. 可应用于多种应用平台Linux 可支持X86、PowerPC、ARM、XSCALE、MIPS、SH、68K、Alpha、SPARC 等多种体系结构,并且已经被移植到多种硬件平台。这对于经费、时间受限制的研究与开发项目是很有吸引力的。Linux 采用一个统一的框架对硬件进行管理,同时从一个硬件平台到另一个硬件平台的改动与上层应用无关。3. 可定制的内核Linux 具有独特的内核模块机制,它可以根据用户的需要,实时地将某些模块插入到内核中或者从内核中移走,并能根据嵌入式设备的个性需要量体裁衣。经裁减的 Linux 内核最小可达 15

32、0KB 以下,尤其适合嵌入式领域中资源受限的实际情况。4. 性能优异Linux 系统内核精简、高效、稳定,能够充分发挥硬件的功能,因此它比其他操作系统的运行效率更高。在个人计算机上使用 Linux,可以将它作为工作站。它也非常适合在嵌入式领域中应用,对比其他操作系统,它占用的资源更少,运行更稳定,速度更快。5. 良好的网络支持Linux 是首先实现 TCP/IP 协议栈的操作系统,它的内核结构在网络方面是非常完整的,并提供了对包括十兆位、百兆位及千兆位的以太网,还有无线网络、Toking ring(令牌环)和光纤甚至卫星的支持,这对现在依赖于网络的嵌入式设备来说无疑是很好的选择。72.4.3

33、Linux 的版本的版本任何一个软件都有版本号,Linux 也不例外。Linux 的版本号分为两部分:内核(kernel)与发行套件(distribution)版本。Linux 的内核是系统的心脏,内核包括了 700 多万行代码,是运行程序和管理硬件设备的核心程序。没有内核,就不能运行程序。实际上内核版本指的是在 Linus 领导下的开发小组开发出的系统内核的版本号。一般而言,一个基本的 Linux 只是包含了 Linux 核心(kernel)和 GNU 软件的一些基层系统软件和实用工具(utilities) ,这样一个操作系统仅仅能够让那些 Linux 专家完成一些很基本的系统管理任务,如果

34、要满足普通用户的办公室或基于视窗的应用开发等需要,则还需要再系统中加入 XFree86 视窗系统、GNOME 和 KDE 桌面环境以及相应的办公应用软件等。因此一些组织或厂家将Linux 系统内核与 GNU 软件(系统软件和工具)整合起来,并提供一些安装界面和系统设定与管理工具,这样就构成了一个发行套件,例如最常见的Slackware、Red Hat、Debian、Ubuntu 等。下面就对有代表性的发行套件版本进行介绍。1. Red Hat国内,乃至是全世界的 Linux 用户最熟悉的发行版本想必就是 Red Hat 了。Red Hat 最早是由 Bob Young 和 Marc Ewing

35、 在 1995 年创建的。目前 Red Hat 分为两个系列:由 Red Hat 公司提供收费技术支持和更新的 Red Hat Enterprise Linux(RHEL, Red Hat 的企业版),以及由社区开发的免费的桌面版 Fedora Core。Red Hat 企业版有三个版本AS、ES 和 WS。AS 是其中功能最为强大和完善的版本。2. DebianDebian 是一个致力于创建一个自由操作系统的合作组织,由 Ian Murdock于 1993 年创建。该组织创建的操作系统为 Debian GNU/Linux,简称为Debian。这是一个免费的 Linux 系统,拥有许多用户。D

36、ebian 系统分为三个版本,分别为稳定版(Stable) ,测试版(Testing)和不稳定版(Unstable) 。并且每次发布的版本都是稳定版,而测试版在经过一段时间的测试证明没有问题后会成为新的稳定版。3. UbuntuUbuntu 基于 Debian,包括了大量来自 Debian 发行版的软件包,保留了Debian 强大的软件包管理系统,以便简易地安装或彻底地删除程序。与大多数发行版附带数量巨大的可用可不用的软件不同,Ubuntu 的软件包清单只包含那些高质量的重要应用程序。Ubuntu 使用 GNOME 桌面环境,并且十分注重系统的安全性,采用 Sudo工具,所有系统相关的任务均需

37、使用此指令,并输入密码,比起传统以登入系统管理员账号进行管理工作有更加的安全性。Ubuntu 设计成为标准安装完成即可用让使用者投入使用的操作系统,用户不需要另外安装一些额外的软件。本文开发环境中将使用 Ubuntu。8第三章第三章 PPP 协议分析与研究协议分析与研究3.1 PPP 协议概述协议概述PPP 协议全称是 Point to Point Protocol,是目前应用范围最广的数据链路层协议之一,它提供了同步和异步线路上的通信连接,在点对点连接上实现一个传输多协议数据报的标准方法。在 TCP/IP 协议集中,它是一种用来封装和传输IP 数据报的数据链路层协议,可以替代 SLIP(Se

38、rial Line IP,串行线路 IP) 。除了 IP 协议以外,PPP 还可以封装和传输其他协议,包括 DECnet、AppleTalk和 IPX 等。PPP 可以为基于各种主机、网桥和路由器的简单连接提供一种互联的解决方案,与 PPP 协议推出前广泛应用的 SLIP 协议相比,PPP 协议具有 SLIP 所没有的多项功能:支持多协议、具有帧检错能力、支持 IP 地址的动态分配、支持身份验证方式的网络安全等。3.2 PPP 的层次结构的层次结构PPP 是一个多层协议,如图 3-1 所示。PPP 首先由 LCP 建立和配置通信链路,再通过 NCP(Network Control Protoc

39、ol,网络控制协议)传送特定协议族(如 IP、IPX、AppleTalk 和 OSI 等)的数据。PPP 主要由如下三大部分组成。HDLC:用于封装和传输上层数据,并进行差错检测工作。LCP:用于建立、配置和终止点对点数据链路。LCP 能让 PPP 适用于大多数环境。LCP 能自动协调配置,如协调数据帧的封装格式、处理数据报大小限制、探测环路链路和其他普通的配置错误以及终止链路。LCP 提供的可选功能包括对建立链路的呼叫方进行身份验证;对数据帧进行压缩以提高吞吐率;设置错误检测以实现可靠无环路的通信链路;设置多链路捆绑以实现负载均衡;设置PPP 回拨(PPP Callback)以提高安全性。N

40、CP:一种扩展链路控制协议,用于支持网络层协议的通信。PPP 可以在同一条通信链路上运行多种不同的网络层协议。对每一种网络层协议,PPP 提供对应的 NCP。例如,IP 对应 IPCP(IP Control Protocol,IP 控制协议) 、IPX 对应 IPXCP(IPX PPP Control Protocol,PPP 的 IPX 控制协议)网络层协议(IP、IPX、OSI)网络层9网络层控制协议 NCP(如 IPCP)链路控制协议 LCP高级数据链路控制数据链路层EIA/TIA-232、V.24、V.35物理层图 3-1 PPP 的协议层次3.3 PPP 的链路建立过程的链路建立过程

41、为了建立点对点链路通信,PPP 链路的每一端必须首先发送 LCP 包以便设定和测试数据链路。在链路建立之后,PPP 必须发送 NCP 包以便选择和设定一个或更多的网络层协议。一旦配置后每个被选择的网络层协议,就能在链路上发送这些网络层协议的数据报。链路将保持通信设定不变,直到有 LCP 和 NCP数据包关闭链路,或者是发生一些外部事件(如网络管理员的干涉)导致链路中断。简化的 PPP 链路建立过程如图 3-2 所示。消亡DeadUP确立连接Establish认证Authentication联网Networking打开开成功终止Terminate关闭失败DOWNN失败图 3-2 PPP 的链路建

42、立过程一个典型的链路建立过程分为三个阶段;创建阶段、认证阶段和网络协商阶段。阶段 1:创建 PPP 链路LCP 负责创建链路。在这个阶段,将对基本的通讯方式进行选择。链路两端设备通过 LCP 向对方发送配置信息报文(Configure Packets) 。一旦一个配置成功信息包(Configure-Ack Packets)被发送且被接收,就完成了交换,进入了LCP 开启状态。应当注意,在链路建立阶段,只是对验证协议进行选择,用户验证将在第二阶段实现。阶段 2:用户验证在这个阶段,客户端会将自己的身份发送给远端的接入服务器。该阶段使用一种安全验证方式避免第三方窃取数据或冒充远程客户接管与客户端的

43、连接。在认证完成之前,禁止从认证阶段前进到网络层协议阶段。如果认证失败,认证者应该跃迁到链路终止阶段。在这一阶段里,只有链路控制协议、认证协议,和链路质量监视协议的packets 是被允许的。在该阶段里接收到的其他的 packets 必须被静静的丢弃。10最常用的认证协议有口令验证协议(PAP)和挑战握手验证协议(CHAP) 。阶段 3:调用网络层协议认证阶段完成之后,PPP 将调用在链路创建阶段选定的各种网络控制协议(NCP) 。选定的 NCP 解决 PPP 链路之上的高层协议问题,例如,在该阶段 IP控制协议(IPCP)可以向拨入用户分配动态地址。这样,经过三个阶段以后,一条完整的 PPP

44、 链路就建立起来了。PPP 通信阶段图如图 3-3 所示。LCP 协商认证网络阶段协商建立链路拆除链路PEERPEER图 3-3 PPP 通信阶段图3.4 PPP 的帧结构的帧结构PPP 可以封装上层多种协议的数据包,使之成为互相独立的串行数据帧。PPP 采用 HDLC 的帧格式,但它是面向字符的。在完整的 PPP 帧中。帧头由帧开始标记(F) 、地址域(A) 、控制域(C)和协议域(P)组成,帧尾由校验域(FCS) 、帧结束标记(F)构成,如图 3-4 所示。图 3-4 PPP 的帧结构F:标志序列。指示帧的开始和结束,长度为 1 个字节,其内容为 0 x7E。A:地址字段。这是一个标准的广

45、播地址,长度为 1 个字节,其内容为0 xFF。在非平衡结构传输数据时,地址字段写入次站的地址;采用平衡结构传输数据时,地址字段写入确认站的地址。C:控制字段。表示用户数据采用无序帧方式传输,它提供无连接链路服务,长度为 1 个字节,其内容为 0 x03。F0 x7EA0 xFFC0 x03PIFCSF0 x7E标志1B地址1B控制1B协议2B信息nB(n)0校验码2 或 4B标志1B11P:协议字段。用于标示被封装在帧中数据字段里的协议类型,长度为 2 个字节。I:信息字段。长度为 0 或多个字节,它包含符合协议字段中制定协议的数据包。最大长度默认为 1500 字节。在数据链路层的建立和拆除

46、阶段,其内容可能是 LCP、PAP、CHAP 或某一种 NCP 的包。FCS:效验码。对 A、C、P、I 字段进行 CRC 校验,有 16 位的 CRC-CCITT和 32 位的 CRC-32 两种校验方式,长度为 2 个字节或 4 个字节。3.5 PPP 的身份验证的身份验证对于一个 PPP 会话,身份验证是可选的。当链路已经建立并且身份验证协议被选择以后,通信双方就可以互相鉴别,如果启用了验证功能,当验证过程通过之后,才能开始网络层协议配置阶段。身份验证功能需要呼叫发起方输入验证信息,此信息用来确定用户拥有网络管理员赋予的呼叫许可。对等的路由器之间可以相互交换身份验证消息。PPP 提供 P

47、AP 和 CHAP 两种协议进行验证。PAP(Password Authentication Protocol,密码验证协议)使用两次握手机制,为建立远程节点的验证提供一个简单的方法。当 PPP 链路建立阶段完成后,远程节点将不断地在链路上发送用户名和密码,直到身份验证通过或者连接被终止。如图 3-5 所示。接受或拒绝Router1 mypwdPAP 两次握手机制远程路由器本地路由器主机名:Router1密码:mypwd主机名:Router1密码:mypwd图 3-5 PAP 的身份验证PAP 在进行身份验证时,密码以明文的方式在链路上发送,这使得 PAP 的安全性存在缺陷。由于验证重试的频率

48、和次数由远程节点来控制,因此 PAP 不能防止重放攻击和重复的尝试攻击。CHAP(Challenge Handshake Authentication Protocol,挑战握手认证协议)使用三次握手机制启动一条链路和周期性地验证远程节点。CHAP 可以在初始链路建立之后立即开始验证工作,也可以在链路建立后的任何时间进行重复验证。在 PPP 链路建立阶段完成之后,本地路由器发送一个“挑战”(Challenge)消息到远程节点。挑战消息中包含本地路由器的名称和一个随机12数。本地路由器将挑战报文发给远程节点,要求进行身份认证。远程节点使用对应该路由器的账号和密码组织回应消息,但是密码并不直接包含

49、在回应消息中,而是使用散列函数(如 MD5)对挑战消息中的随机数和密码进行处理,将处理得到的摘要值放在回应消息中。本地路由器接收到回应消息后,根据自己保存的用户账号、密码和挑战消息中的随机数计算出摘要,将其与回应消息中的摘要进行对比,如果匹配,则验证通过。CHAP 的验证过程如图 3-6 所示。CHAP 在进行身份验证时密码本身并不在链路上发送,它通过使用唯一的、不可预知的、可变的挑战消息来防止重放攻击。因为挑战消息和作为结果的摘要值是唯一且随机的。在通信的过程中为了提高安全性,可以多次进行挑战验证。CHAP 由本地路由器或者一台第三方的验证服务器来控制挑战的频率和次数。远程路由器本地路由器主

50、机名:Router1密码:Mypwd主机名:Router1密码:Mypwd接受或拒绝回应挑战CHAP 三次握手机制图 3-6 CHAP 的身份验证13第四章第四章 PPPoE 协议分析与研究协议分析与研究4.1 PPPoE 协议概述协议概述PPPoE(PPP over Ethernet,基于以太网的 PPP 协议)继承了 PPP 拨号的用户验证和动态 IP 地址分配功能。PPPoE 操作方便,网络管理商基本上不需要改造网络系统就可以实现宽带网络用户的入网身份验证和计费。PPPoE 使得一个共享的以太网上的多个主机,可以通过一个或多个简单的桥接入设备,与远程接入集中器进行多个 PPP 会话。通过

51、这种方式,每个主机使用它自己的 PPP 协议栈,并且提供给用户一个熟悉的用户接口。接入控制、计费和服务类型能够基于每个用户,而不是每个站点来处理。PPPoE 具有以下技术特点。1)PPPoE 利用了已被广泛接受的 PPP 协议个以太网协议,继承了以太网的快速和 PPP 拨号简单的特点。2)由于 PPPoE 会话是真正的 PPP 会话,能够实现 IP 地址的完全动态分配,即每次连接都能获得不同的 IP 地址。3)PPPoE 上的 PPP 要求用户认证,因此可以根据用户名计费,而不论用户是从何处接入的。4)PPPoE 建立了基于 Ethernet 的会话,因此服务提供商能够根据连接时间进行计费。4

52、.2 PPPoE 协议原理协议原理PPPoE 协议分为 2 个具体阶段:发现(Discovery)阶段和 PPP 会话阶段。当某个主机希望发起一个 PPPoE 会话时,它必须首先执行 Discovery 阶段来识别对方的以太网 MAC 地址,并建立一个 PPPoE 会话标识符(Session ID) 。在 Discovery 阶段,基于网络的拓扑,主机可以发现多个 AC(Access Concentrator,接入集中器,即 PPPoE 服务器) 。Discovery 阶段允许主机发现所有的 AC,然后选择一个。当 Discovery 阶段成功完成,主机和选择的 AC 都有了它们在以太网上建立

53、 PPP 连接的信息。Discovery 阶段将一直保持无状态(Stataless)的状态直到建立起一个 PPP 会话。一旦 PPP 会话建立,主机和 AC都必须为 PPP 虚接口分配资源。通过发现阶段知道通信双方的 MAC 地址和 Session ID 后,就进入了 PPP会话阶段,可以进行 PPP 通信。PPPoE 会话过程中,始终使用 Discovery 阶段分配的 Session ID。整个流程图如图 4-1 所示。发现阶段的过程实际上就是寻找 ISP 的过程,整个发现阶段的过程又可以14分为 5 个阶段。第一阶段是 PADI(PPPoE Active Discovery Initia

54、tion)的过程,就是 PPPoE 的初始化过程。在此过程中用户主机通过广播 PADI 数据报向可能的 ISP 提出接入请求,并在 PADI 数据报中填入所需服务的名称。第二阶段是PADO(PPPoE Active Discovery offer)的过程,就是当某个 ISP 接收到 PADI包后,若他能满足 PADI 包中所提要求的服务项,就可以发送 PADO 包来回应发出PADI 用户主机的要求。在 PADO 包中一定含有 ISP 的名称(MAC 地址)和PADI 包中提出的服务项名称。第三阶段是 PADR(PPPoE Active Discovery Request )的过程,就是当用户主

55、机广播了 PADI 数据报后,可能会接收到一个或多个 PADO客户机发现阶段会话阶段会话终止PPPPADTPADIPADRPADSPADO客户机和接入服务器获得彼此的 MAC地址且服务器分配唯一的会话号图 4-1 PPPoE 协议流程图数据报,这时候用户主机可以根据所希望的 ISP 和所需服务的名称,来选择其中一个 ISP 进行连接。第四个阶段是 PADS(PPPoE Active Discovery Session-confirmation)的过程,就是当满足条件的 ISP 接收到 PADR 数据报后,它向要求建立连接的用户主机发出 PADS 数据包,从而完成了 PPPoE 的Discove

56、ry(发送)阶段中建立连接的过程。第五阶段是 PADT(PPPoE Active Discovery Terminate)的过程,PADT 数据报可以由用户主机或 ISP 来发出,表示整个 PPPoE 过程的结束。会话阶段过程实际上就是实现 PPP 协议的过程,整个会话阶段的过程主要可以分为 3 个阶段。第一个阶段是 LCP(Link Control Protocol) ,完成了有关链路控制协商的过程,主要是建立、配置、测试数据链路,根据双方的需求,进行链路的协商和配置。第二个阶段是 NCP(Network Control Protocol) ,就是针对不同的网络层协议的网络控制阶段。第三个阶

57、段就是 IP 数据的传输阶段。4.3 PPPoE 协议分析协议分析在 RFC2516 中的 PPPoE 主要描述了从建立连接(Discovery)到会话(Session)的两个步骤,以及 PADI、PADO、PADR、PADS、PADT 四种消息服务器15和会话阶段数据包的 PPPoE 帧格式。PPPoE 处于协议栈中的位置如图 4-2 所示。TCP/IPPPPPPPoEEthernet图 4-2 PPPoE 在以太网协议栈的位置4.3.1 PPPoE 的包格式的包格式PPPoE 包分为发现阶段包(协商包)和会话阶段包(数据包)两种,图 4-3 和图 4-4 分别给出协商和数据包两种包格式结构

58、图,由这两种结构图可以看出两者的区别并不大,它们的包头结构是一样的,下面介绍结构域中每一个域的含义。AC 端 MAC 地址(前 4 个字节)AC 端 MAC 地址(后 2 个字节)PPPoE 客户端 MAC 地址(前 2 个字节)PPPoE 客户端 MAC 地址(后 4 个字节)以太帧类型(0 x8863)版本类型代码域会话号数据长度标签类型标签长度标签值其它标签其它标签图 4-3 PPPoE 协商包结构AC 端 MAC 地址(前 4 个字节)AC 端 MAC 地址(后 2 个字节)PPPoE 客户端 MAC 地址(前 2 个字节)PPPoE 客户端 MAC 地址(后 4 个字节)以太帧类型(

59、0 x8864)版本类型代码域会话号数据长度081632240816322416PPP 协议号PPP 数据图 4-4 PPPoE 数据包结构AC(Access Concentrator,即 PPPoE 服务器)MAC 就是服务器端的 MAC地址,占 6 个字节;PPPoE 客户端 MAC 地址就是拨号客户端的 MAC 地址,占 6 个字节;以太帧类型有两种,在发现阶段是 0 x8863,在会话阶段是 0 x8864,2 个字节;版本号指此 PPPoE 协议是哪个版本,目前的 PPPoE 版本号是 0 x01,占 4比特位;类型域也占 4 个比特位,目前必须设置为 0 x01;代码域是表明 PP

60、PoE 处于哪个阶段,如果是在发现阶段,它具有 5 种不同的值表示 5 个消息类型,即 0 x09(PADI) 、0 x07(PADO) 、0 x19(PADR) 、0 x65(PADS) 、0 xa7(PADT) ,如果是在会话阶段,则设置为 0 x00,表示处于会话阶段占一个字节;会话号是由 AC 分配给客户端的会话 ID 号,由 PADS 消息携带给客户端,在 PADI、PADO、PADR 阶段(协商阶段)设置为 0 x00,在会话阶段则设置成AC 分配的会话号直到会话结束,占两个字节;数据长度表明了数据部分的长度,注意这个长度不包括以太头和 PPPoE 头的长度,占两个字节;标签部分是

61、在协商阶段供双方协商配置用的属性对,由标签类型、标签长度、标签值组成一组完整的属性对,标签类型由 RFC2516 定义,标签长度只包括标签值的长度,标签值表明此属性的取值;一个协商报文中有可能包含若干个标签对,有些标签在某个协商阶段是必须的,而有些则是可选的。4.3.2 PPPoE 的消息类型和协商过程的消息类型和协商过程PPPoE 有 5 个消息:PADI:PPPoE Active Discovery Initiation(由客户端发出)PADO:PPPoE Active Discovery Offer(由 AC 发出)PADR:PPPoE Active Discovery Request(

62、由客户端发出)PADS:PPPoE Active Discovery Session-confirmation(由 AC 发出)PADT:PPPoE Active Discovery Terminate(AC/客户端均可发出)下面详细介绍每一个消息内容,同时也介绍了协商过程:1.客户端发送 PADI 消息客户端发送 PADI 广播包,代码域设置为 0 x09,会话号设置为 0 x0000,目标地址为广播地址,源地址为本地机的 MAC 地址,在这个阶段 Service-Name标签是必须的,该标签表明了主机所请求的服务类型,当然数据域部分也可以包括一些其它标签,如主机唯一标签等,一个完整的 PA

63、DI 包其数据部分不能超过 1484 个字节,是为了便于在有中继存在的情况下,添加标签 Relay-Session-Id 标签,该标签需留 12 个字节的长度。172.AC 回应 PADO 消息AC 在收到 PADI 消息后,如果还有会话资源就需要回应 PADO 包,其目的地址为客户端 MAC 地址,代码域为 0 x07,会话号仍须设置为 0 x0000,在数据标签部分必须有 AC-Name 和 Service-Name 标签,AC-Name 用来唯一标识一个 AC,所以极为重要,而此处的 Service-Name 表明了 AC 能够提供的服务类型,一般应和主机请求的一样。如果 AC 服务器不

64、能接收 PADI 帧,则无需回应 PADO 包。3.客户端发送 PADR 消息在客户端发送出去广播包 PADI 后,有可能收到多个 PADO 回应包,这里就需要一定的选择策略,在商业应用中一般可根据 AC-Name 或服务来选择。主机对选择的 AC 服务器发送 PADR 帧,PADR 包中的目的地址就是客户端选择的 AC 的 MAC 地址了,代码域为 0 x19,会话为 0 x0000,数据部分需包括所请求的服务标签以及其它标签。4.AC 回应 PADS 消息AC 收到客户端合法的 PADR 包后会产生一个唯一的会话号,并在 PADS包中发送给客户端,目标地址为客户端的 MAC 地址,代码域为

65、 0 x65,会话号就需要设置为 AC 分配的那个会话 ID 号,PADS 消息中必须携带 Service-Name标签,以表明可以提供给客户端所要求的服务。该服务是 PADR 帧中请求的服务,如果不能提供该种服务,必须回应一个带有服务名错误标签的 PADS 帧,但该帧会话号的值必须为 0 x0000。5.PADT 消息在客户端收到 PADS 消息后,就建立了一个会话,当需要中断这个会话时双方可以随时发送 PADT 消息,当发送或收到这个消息时无条件的终止 PPP 连接,即使正常的 PPP 分组数据,这个消息不必携带任何标签,只需将代码域的值置为 0 xa7。6.PPPoE 会话阶段在客户端收

66、到 AC 端发送的 PADS 消息就意味着得到了会话号,也就是说AC 端可以为该客户端分配会话资源,于是就开始了 PPPoE 的会话阶段也就是说下一个报文就是 PPP 报文了,PPP 数据就可以封装在以太帧中进行发送。所有的以太网帧都是单播的。此时以太协议类型置为 0 x8864,代码域必须置为0 x00,会话号是 PADS 中的会话 ID 号且不能更改,此时的数据包格式就是图4-4 所示的 PPPoE 数据包结构。4.4 PPPoE 协议的相关问题协议的相关问题4.4.1 超时重传机制超时重传机制当主机在指定的时间内没有接收到 PADO,它应该重新发送它的 PADI 分组,并且加倍等待时间,这个过程会被重复到的设定的最大次数。如果主机正在等待接收 PADS,应该使用具有主机重新发送 PADI 的相似超时机制。在重试指定的次数后,主机应该重新发送 PADR 分组。设定传输的最大次数以及延18迟时间需考虑到多方面的问题来设定,如线路质量问题等。4.4.2 PPPoE 的的 MTU 设置设置以太帧的最大长度为 1518 个字节长。其中 14 个字节是帧头的长度,4 个字节是校验和的长度,其

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!