为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

ppp拨号

2011-12-27 6页 pdf 83KB 43阅读

用户头像

is_338482

暂无简介

举报
ppp拨号 应用天地 APPLICATION 53Mi crocont rol lers & Emb edded Systems2001.11 基于PPP协议单片机拨号上网的设计与实现 河海大学 谢林枫 摘 要 关键词 通过对 TCP/IP协议簇进行简化,讨论数据包的配置,设计并实现单片机拨号上网的系统。 单片机 协议 TCP/IP PPP 数据包 引 言 20世纪 90年代,以因特网为代表的计算机网络 通信技术的发展和应用取得了前所未有的突破和成 功,单片机上网技术在生活和现代化...
ppp拨号
应用天地 APPLICATION 53Mi crocont rol lers & Emb edded Systems2001.11 基于PPP单片机拨号上网的与实现 河海大学 谢林枫 摘 要 关键词 通过对 TCP/IP协议簇进行简化,讨论数据包的配置,设计并实现单片机拨号上网的系统。 单片机 协议 TCP/IP PPP 数据包 引 言 20世纪 90年代,以因特网为代表的计算机网络 通信技术的发展和应用取得了前所未有的突破和成 功,单片机上网技术在生活和现代化建设的各方面 的应用和研究随之成为当今一个热门话题。8位、16 位单片机因为其较好的性价比,在测控领域仍然占 据着重要地位。这些单片机的 RAM、ROM一般都 很小,而网络协议通常嵌入在操作系统中,无法把 庞大的操作系统直接安装在这样的单片机中。所 以,要实现上述单片机通过拨号直接连上因特网, 需要考虑的主要技术就是如何在单片机 上嵌入能符合需要的经过简化的网络协 议。这就是本文所要讨论的主题。 本文着重分析所用数据包的类型和 选项,给出几个典型数据包的格式。 一、 PPP协议简介 IETF成立了一个小组,推出了点到 点线路的数据链路层协议,并成为正式 的因特网。这项工作定义为 PPP (Poin t-to-Poin t Protocol),即点到点 协议,并以 RFC文件 RFC1661,后来以 RFCl662和 RFC1663进一步明确下来。PPP处理错误检测,支持 多种协议,在连接时期允许商议 IP地址,允许身份 验证,以及在SLIP上所做的许多其他改进。虽然许 多因特网服务提供者仍支持SLIP和PPP,但未来显然 属于PPP,不管是拨号线路,还是租用路由器与路由 器的线路都是如此。 PPP成就了 3件事: (1)明确地划分出一帧的尾部和下一帧的头部 的成帧方式。这种帧格式也处理错误检测工作。 (2)当线路不再需要时,跳出这些线路,测 试它们,商议选择,并仔细地再次释放链路控制协 议。这个协议被称为链路控制协议LCP(Link Control Protocol)。 (3)用独立于所使用的网络层协议的方法来商 议使用网络层的哪些选项;对于每个所支持的网络层 来说,所选择的方法有不同的网络控制协议 NCP (Network Control Protocol)。NCP在因特网中(TCP/ IP协议)为 IPCP。 PPP数据帧的格式如图 1所示。 二、基于PPP协议单片机拨号上网 的设计与实现 1. 概 述 本选用的单片机是 ADAM5510。它是台湾 ADVANTECH公司推出的一种功能较强、价位适中的 单片机,具有 80188-40、 16-bi t 单片机,RS-232、 RS-485口各一个,还有一个编程口(ADAVA NTECH 图1 PPP数据帧格式 标志 地址 控制 标志 7E FF 03 协议 信 息 CRC 7E 1 1 1 2 最多 1500字节 2 1 协议 0021 IP数据报 协议 C021 链路控制数据 协议 8021 网络控制协议 应用天地 APPLICATION 54 2001.11 公司为5510系列单片机开发了同普通的Turbo C界面 很相似的集成开发环境,这种IDE能灵活地编辑、编 译、仿真、开发和调试适用于 5510系列的软件)。 ADAM5510的功能模块如图2所示。这种单片机在硬 件构成上已比较完善,使我们可以集中精力于TCP/IP 协议的分析和软件的实现。 在本方案中,物理层接口采用的是:单片机通过 RS-232与 Modem通信,电话线与 Modem相连。单 片机直接从RS-232端口收发数据。 2.原理及程序流程 系统原理如图3所示,测试程序流程如图4所示。 3. 简化PPP协议——配置各种数据包 (1) LCP包的配置 LCP包的配置如图 5所示。 a. LCP包概述 LCP包有 3类:a链路配置包,用 于建立和配置链路,包括 Con figu re Ack、Configu re Nak、Configu re Requ es t、Config - ure Re ject;b链路结束包,用于结束一个链路,包 括 Termin ate Reques t、Terminate Ack;c链路维修 包,用于管理和调试一个链路,包括 Code Reject、 Protocol Reject、Echo Requ es t、Echo Reply、Dis - card Request。LCP包的选项最常见的有:1 Maximum Rece iv e Un it、 2 A sy nc Cont rol Ch aract er M ap、 3 A u t h en t i ca t io n Pr o to c ol、 7 Pr o to c o l F i e l d Compr es s i on、 8 A dd re ss a n d Co n t ro l Fi e l d Compression。 b. LCP包种类的取舍 本文中,只用了Configure -Request、Reject、Ack 三种LCP数据包,这是实现应答所必需的最低限度。 单片机发出的Request选项是我们预先设定的,而ISP 发出的选项若有我们不接受的内容,则单片机回答一 个Reject,任何一方接受请求时发Ack,因此未处理NAK 图2 ADAM 5510功能模块 RS-485 收发 ⋯⋯ UART COM2 80188-40 UART COM1 RS-232 收发 SRAM ROM RTC 电池 局部总线 计算机 WDT & Reset P.S. +5V GND 电源 转换器 +10~80V 隔离电源 整流和 滤波 接地正电压 图3 系统原理图 ADAM5510 拨号 PPP 调制 解调器 RS-232 调制 解调器 LCP PAP IPCP 河海大学 网管接入 服务器 (dial 51409) IPInternet IP 信宿PC机(网络节点的IP地址为 202.119.116.248),存放采集数据 电话线 图4 测试程序流程图 开始 初始化调制解调器(Modem) Modem准备好? Y 向校网管拨号服务器拨号(51409) 连上网络? Y 失败!N 发送PPP数据包,通过PPP协议中的 LCP、PAP协商PPP数据包服务选项; 通过IPCP向拨号服务器获取IP地址 开始利用PPP协议进行数据传输 N 图5 一个LCP请求数据包 02 06 00 0A 00 00 类型 长度 值 7E FF 03 C0 21 01 05 2 3 5 7 CRC校验 7E PPP帧头 协议 (LCP) 代码 (REQ) 序号 (ID) 长度 选 项 校验和 PPP帧尾 应用天地 APPLICATION 55Mi crocont rol lers & Emb edded Systems2001.11 数据包。本文也未处理剩余的七类数据包,因任何 原因造成的链路终止问题都由单片机在程序的控制下 重新拨号来解决。 c. LCP选项的取舍 由于我们每次发送(接收)的数据较少(由于 单片机 RA M 的限制,设定的缓冲区很小),MRU 选项默认值为 1500字节,最小值为 576字节,所以 测试程序不支持选项 1;选项 2是必须支持的;选项 3提供了发送 password 的方法,它的参数可以是 0xc023或 0xc223。为简单起见,本文的测试程序选择 了 0xc023作为选项 3的参数,这样,程序将以明文 的形式在一个数据包中发出用户名和密码。测试程序 不请求选项 7和 8的服务,也就是根据默认的规定, 发送的数据包含有PPP协议域和控制域。 (2)PA P包的配置 由于LCP包中选项 3的使用情况,PAP包是必需 的。简单起见,程序中只交换了一个 PAP包,但已 完成了用户的身份鉴定,如图 6所示。 (3) IPCP包的配置 IPCP选项是关于 IP地址和 IP压缩的,测试选择 了选项 3(IP-address)。本程序通过发出一个无效 的地址请求(0.0.0.0),等待服务器回答一个 NA K (选项为 3),从这个NAK包中得到自己的正确地址。 IPCP包的配置如图 7所示。 (4)CCP包的处理 有些服务器试图协商压缩,但由于我们关心的是 程序的大小(越小越好)而不是数据传送的速度, 所以 CCP请求被拒绝。 (5) IP 包的处理 在协商好PPP协议的各选项后,即可进行数据传 输了。同样,为了简单起见,采用了 UDP协议而不 是 TCP协议。数据的正确性由应用程序控制。 ( 6 )验证 在(202.119.116.248)端,安装了 NetxRay 3.0 版网络嗅探器。利用该软件可以很方便地查看进出该 机器的数据包的功能,我们验证出源端发送数据的测 试程序是可行的。 结束语 本文针对实际应用情况,对庞大的TCP/IP网络协 议组进行了简化,具体分析了简化后的协议组中各种 数据包,同时给出了测试程序对所需发送数据的具体 打包过程。完整的TCP/IP协议很大,只能嵌入到 32 位以上的单片机上运行。我们的软件只需要3K B(字 节)的 ROM 即可运行。在接收数据的目的端,PC 机上安装了Netxray 3.0软件,对测试程序的结果进行 测试,验证出最终在目的端接收到的数据就是我们在 源端所发送的数据,而且所有的数据包都符合TCP/IP 。 参考文献 1 李艺,李新明.机顶盒系统中 PPP协商机制的 设计和实现 .计算机科学,2000,27(6) 2 Richard Stevens W.The Protocols. TCP/IP Illus- trated Volume 1 3 Simpson W.The Poin t-to- Point Protocol(PPP).RFC1661,Ju ly 1994 4 McGregor G.The PPP Internet Protocol Con trol Protocol (IPCP). RFC1332,May 1992 5 ADVANTECH.ADA M5510 User Man ual, 3rd Edi tion 图6 PAP数据包 7E FF 03 C0 23 01 05 06 75 73 65 72 69 64 0 8 7 0 6 1 7 3 7 3 7 7 6 F 7 2 6 4 CRC校验 7E PPP帧头 协议 (PAP) 代码 序号 (ID) 长度 用户名长度 +用户名 密码长度 +密码 校验和 PPP帧尾 图7 IPCP数据包 04 06 CA 77 76 A6 类型 长度 值(动态 IP地址) 7E FF 03 80 21 03 05 3 CRC校验 7E PPP帧头 协议 (IPCP) 代码 (NAK) 序号 (ID) 长度 选项 校验和 PPP帧尾 应用天地 APPLICATION 53Mi crocont rol lers & Emb edded Systems2001.11 基于PPP协议单片机拨号上网的设计与实现 河海大学 谢林枫 摘 要 关键词 通过对 TCP/IP协议簇进行简化,讨论数据包的配置,设计并实现单片机拨号上网的系统。 单片机 协议 TCP/IP PPP 数据包 引 言 20世纪 90年代,以因特网为代表的计算机网络 通信技术的发展和应用取得了前所未有的突破和成 功,单片机上网技术在生活和现代化建设的各方面 的应用和研究随之成为当今一个热门话题。8位、16 位单片机因为其较好的性价比,在测控领域仍然占 据着重要地位。这些单片机的 RAM、ROM一般都 很小,而网络协议通常嵌入在操作系统中,无法把 庞大的操作系统直接安装在这样的单片机中。所 以,要实现上述单片机通过拨号直接连上因特网, 需要考虑的主要技术就是如何在单片机 上嵌入能符合需要的经过简化的网络协 议。这就是本文所要讨论的主题。 本文着重分析所用数据包的类型和 选项,给出几个典型数据包的格式。 一、 PPP协议简介 IETF成立了一个小组,推出了点到 点线路的数据链路层协议,并成为正式 的因特网标准。这项工作定义为 PPP (Poin t-to-Poin t Protocol),即点到点 协议,并以 RFC文件 RFC1661,后来以 RFCl662和 RFC1663进一步明确下来。PPP处理错误检测,支持 多种协议,在连接时期允许商议 IP地址,允许身份 验证,以及在SLIP上所做的许多其他改进。虽然许 多因特网服务提供者仍支持SLIP和PPP,但未来显然 属于PPP,不管是拨号线路,还是租用路由器与路由 器的线路都是如此。 PPP成就了 3件事: (1)明确地划分出一帧的尾部和下一帧的头部 的成帧方式。这种帧格式也处理错误检测工作。 (2)当线路不再需要时,跳出这些线路,测 试它们,商议选择,并仔细地再次释放链路控制协 议。这个协议被称为链路控制协议LCP(Link Control Protocol)。 (3)用独立于所使用的网络层协议的方法来商 议使用网络层的哪些选项;对于每个所支持的网络层 来说,所选择的方法有不同的网络控制协议 NCP (Network Control Protocol)。NCP在因特网中(TCP/ IP协议)为 IPCP。 PPP数据帧的格式如图 1所示。 二、基于PPP协议单片机拨号上网 的设计与实现 1. 概 述 本方案选用的单片机是 ADAM5510。它是台湾 ADVANTECH公司推出的一种功能较强、价位适中的 单片机,具有 80188-40、 16-bi t 单片机,RS-232、 RS-485口各一个,还有一个编程口(ADAVA NTECH 图1 PPP数据帧格式 标志 地址 控制 标志 7E FF 03 协议 信 息 CRC 7E 1 1 1 2 最多 1500字节 2 1 协议 0021 IP数据报 协议 C021 链路控制数据 协议 8021 网络控制协议 应用天地 APPLICATION 54 2001.11 公司为5510系列单片机开发了同普通的Turbo C界面 很相似的集成开发环境,这种IDE能灵活地编辑、编 译、仿真、开发和调试适用于 5510系列的软件)。 ADAM5510的功能模块如图2所示。这种单片机在硬 件构成上已比较完善,使我们可以集中精力于TCP/IP 协议的分析和软件的实现。 在本方案中,物理层接口采用的是:单片机通过 RS-232与 Modem通信,电话线与 Modem相连。单 片机直接从RS-232端口收发数据。 2.原理及程序流程 系统原理如图3所示,测试程序流程如图4所示。 3. 简化PPP协议——配置各种数据包 (1) LCP包的配置 LCP包的配置如图 5所示。 a. LCP包概述 LCP包有 3类:a链路配置包,用 于建立和配置链路,包括 Con figu re Ack、Configu re Nak、Configu re Requ es t、Config - ure Re ject;b链路结束包,用于结束一个链路,包 括 Termin ate Reques t、Terminate Ack;c链路维修 包,用于管理和调试一个链路,包括 Code Reject、 Protocol Reject、Echo Requ es t、Echo Reply、Dis - card Request。LCP包的选项最常见的有:1 Maximum Rece iv e Un it、 2 A sy nc Cont rol Ch aract er M ap、 3 A u t h en t i ca t io n Pr o to c ol、 7 Pr o to c o l F i e l d Compr es s i on、 8 A dd re ss a n d Co n t ro l Fi e l d Compression。 b. LCP包种类的取舍 本文中,只用了Configure -Request、Reject、Ack 三种LCP数据包,这是实现应答所必需的最低限度。 单片机发出的Request选项是我们预先设定的,而ISP 发出的选项若有我们不接受的内容,则单片机回答一 个Reject,任何一方接受请求时发Ack,因此未处理NAK 图2 ADAM 5510功能模块 RS-485 收发 ⋯⋯ UART COM2 80188-40 UART COM1 RS-232 收发 SRAM ROM RTC 电池 局部总线 计算机 WDT & Reset P.S. +5V GND 电源 转换器 +10~80V 隔离电源 整流和 滤波 接地正电压 图3 系统原理图 ADAM5510 拨号 PPP 调制 解调器 RS-232 调制 解调器 LCP PAP IPCP 河海大学 网管接入 服务器 (dial 51409) IPInternet IP 信宿PC机(网络节点的IP地址为 202.119.116.248),存放采集数据 电话线 图4 测试程序流程图 开始 初始化调制解调器(Modem) Modem准备好? Y 向校网管拨号服务器拨号(51409) 连上网络? Y 失败!N 发送PPP数据包,通过PPP协议中的 LCP、PAP协商PPP数据包服务选项; 通过IPCP向拨号服务器获取IP地址 开始利用PPP协议进行数据传输 N 图5 一个LCP请求数据包 02 06 00 0A 00 00 类型 长度 值 7E FF 03 C0 21 01 05 2 3 5 7 CRC校验 7E PPP帧头 协议 (LCP) 代码 (REQ) 序号 (ID) 长度 选 项 校验和 PPP帧尾 应用天地 APPLICATION 55Mi crocont rol lers & Emb edded Systems2001.11 数据包。本文也未处理剩余的七类数据包,因任何 原因造成的链路终止问题都由单片机在程序的控制下 重新拨号来解决。 c. LCP选项的取舍 由于我们每次发送(接收)的数据较少(由于 单片机 RA M 的限制,设定的缓冲区很小),MRU 选项默认值为 1500字节,最小值为 576字节,所以 测试程序不支持选项 1;选项 2是必须支持的;选项 3提供了发送 password 的方法,它的参数可以是 0xc023或 0xc223。为简单起见,本文的测试程序选择 了 0xc023作为选项 3的参数,这样,程序将以明文 的形式在一个数据包中发出用户名和密码。测试程序 不请求选项 7和 8的服务,也就是根据默认的规定, 发送的数据包含有PPP协议域和控制域。 (2)PA P包的配置 由于LCP包中选项 3的使用情况,PAP包是必需 的。简单起见,程序中只交换了一个 PAP包,但已 完成了用户的身份鉴定,如图 6所示。 (3) IPCP包的配置 IPCP选项是关于 IP地址和 IP压缩的,测试选择 了选项 3(IP-address)。本程序通过发出一个无效 的地址请求(0.0.0.0),等待服务器回答一个 NA K (选项为 3),从这个NAK包中得到自己的正确地址。 IPCP包的配置如图 7所示。 (4)CCP包的处理 有些服务器试图协商压缩,但由于我们关心的是 程序的大小(越小越好)而不是数据传送的速度, 所以 CCP请求被拒绝。 (5) IP 包的处理 在协商好PPP协议的各选项后,即可进行数据传 输了。同样,为了简单起见,采用了 UDP协议而不 是 TCP协议。数据的正确性由应用程序控制。 ( 6 )验证 在(202.119.116.248)端,安装了 NetxRay 3.0 版网络嗅探器。利用该软件可以很方便地查看进出该 机器的数据包的功能,我们验证出源端发送数据的测 试程序是可行的。 结束语 本文针对实际应用情况,对庞大的TCP/IP网络协 议组进行了简化,具体分析了简化后的协议组中各种 数据包,同时给出了测试程序对所需发送数据的具体 打包过程。完整的TCP/IP协议很大,只能嵌入到 32 位以上的单片机上运行。我们的软件只需要3K B(字 节)的 ROM 即可运行。在接收数据的目的端,PC 机上安装了Netxray 3.0软件,对测试程序的结果进行 测试,验证出最终在目的端接收到的数据就是我们在 源端所发送的数据,而且所有的数据包都符合TCP/IP 规范。 参考文献 1 李艺,李新明.机顶盒系统中 PPP协商机制的 设计和实现 .计算机科学,2000,27(6) 2 Richard Stevens W.The Protocols. TCP/IP Illus- trated Volume 1 3 Simpson W.The Poin t-to- Point Protocol(PPP).RFC1661,Ju ly 1994 4 McGregor G.The PPP Internet Protocol Con trol Protocol (IPCP). RFC1332,May 1992 5 ADVANTECH.ADA M5510 User Man ual, 3rd Edi tion 图6 PAP数据包 7E FF 03 C0 23 01 05 06 75 73 65 72 69 64 0 8 7 0 6 1 7 3 7 3 7 7 6 F 7 2 6 4 CRC校验 7E PPP帧头 协议 (PAP) 代码 序号 (ID) 长度 用户名长度 +用户名 密码长度 +密码 校验和 PPP帧尾 图7 IPCP数据包 04 06 CA 77 76 A6 类型 长度 值(动态 IP地址) 7E FF 03 80 21 03 05 3 CRC校验 7E PPP帧头 协议 (IPCP) 代码 (NAK) 序号 (ID) 长度 选项 校验和 PPP帧尾
/
本文档为【ppp拨号】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索