PPlcp协议详解的LCP链路包中的校验位怎么计算出来的

下次自动登录
现在的位置:
& 综合 & 正文
PPP协议链路操作的软件实现
PPP协议链路操作的软件实现
摘 要:PPP协议是广域网最常用的数据链路层协议之一,链路建立协商是PPP协议的重要组成部分。而网络协议的软件实现一直是计算机网络应用的一个重点,PPP协议的软件实现具有很大的应用价值。本文重点探讨LCP建立协商原理的软件实现,并给出了具体的实现方法和详细流程。    关键词:LCP;链路建立;有限状态机;PPP协议     1 PPP协议简介  PPP(Point-to-Point Protocol,点到点协议)是为在同等单元之间传输数据包这样的简单链路设计的链路层协议。这种链路提供全双工操作,并按照顺序传递数据包。设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共同的解决方案。    PPP协议分为3个组成部分:  (1)一个将IP数据报封装到串行链路的方法。  PPP封装提供了不同网络层协议同时通过统一链路的多路技术,使其保有对常用支持硬件的兼容性。  (2)一个用来建立、配置和测试数据链路连接的链路控制协议LCP(Link ControlProtocol)。通信的双方可通过LCP包协商一些选项。  (3)一套网络控制协议(Network ControlProtocol)。NCP是一族协议,负责解决物理连接上运行什么网络协议,以及解决上层网络协议发生的问题。他支持不同的网络层协议,如IP,OSI的网络层,DECCnet,以及AppleTalk等。  PPP帧封装格式如下:          PPP帧以标志字符开始和结束,地址字段长度为1 B,内容为标准广播地址,控制字段为。协议字段长度为2 B,其值代表其后的数据字段所属的网络层协议。数据字段包含协议字段中指定的协议的数据报,长度为0~1 500 B。CRC字段为整个帧的循环冗余校验码,用来检测传输中可能出现的数据错误。  对应PPP协议的3个部分,PPP数据帧封装也分为:IP数据报封装、LCP控制数据封装、NCP控制数据封装。当PPP帧的协议字段为0x0021时,信息字段就是IP数据报;当协议字段为0xC021时,信息字段是LCP控制数据;当协议字段为0x8021,信息字段是NCP控制数据。    2 链路建立和状态机  2.1 PPP链路建立的概述  一次完整的PPP回话过程包括4个阶段:链路建立阶段、认证阶段、网络层控制协议阶段和链路终止阶段。本文讨论和实现的是链路建立阶段。  链路建立过程如下:请求建立链接的一端用LCP配置信息包(Configure packets)建立连接。对端收到配置信息包以后,如果认为收到的配置请求及协商选项可以接受,将发送配置成功信息包(Configure-Ack packet),当一个配置成功信息包被发送且被接收,就完成了链路建立。在LCP建立完成以后,如果收到LCP配置请求包(LCP Configure-Request)链路将从网络层协议阶段或者认证阶段返回到链路建立阶段。  通常线路两端要对如下的内容进行协商,这些内容包含在LCP配置请求包中:  (1)Maximum-Receive-Unit最大-接收-单元)  (2)Authentication-Protocol(鉴定-协议)  (3)Quality-Protocol(质量-协议)  (4)Magic-Number  (5)Protocol-Field-Compression(协议-域-压缩)  (6)Address-and-Control-Field-Compression(地址-和-控制域-压缩)    2.2 有限状态机模型  PPP协议的LCP层的连接及协商过程比较复杂,通常使用状态机模型来解释PPP状态的详细变迁情况。  状态机是一种记录下给定时刻状态的设备,并根据输入,对每个给定的改变,改变其状态或引发一个动作。有限态自动机由事件、动作和状态转换定义,通过状态机可以详细解释PPP协议中LCP链路建立的状态转换过程。LCP操作的状态机可以分为以下的要素:  状态 状态(当前状态和下一状态)以及状态转换,是状态机的基本概念。他指明状态机当前时刻在做什么,处于什么情况。在LCP的链路连接状态机中,共有10种状态:Initial,Starting,Closed,Stopped,Closing,Stopping,Rdq-Sent,Ack-Received,Ack-Sent,Opened。  事件 自动机里的状态转换是由事件引起的。在链路连接协商时,本端从线路的对端发送过来的LCP包和自己的状态,判断将要发生的事件,并结合当前的状态判断系统的下一状态。在LCP的链路建立过程中,事件种类较多,大概可以分为以下几类:  ①网络状态事件,表明LCP或者NCP的状态变化,包括Up,Down,Open,Close。  ②超时计时器事件,与超时计时器有关的事件,包括TO+,TO-。  ③S/T数据包事件,包括RCR+,RCR-,RCA,RCN,RTR。RTA,RUC,RXJ+,RXJ-,RXR。动作 自动机中的动作由事件引起,所以,每个  事件都对应了相应的动作。例如,有些动作表明了不同类型的LCP包的传输和(或)Restart timer的启动和停止。  状态跳转表 在PPP的链路操作中,每个状态,在经过特定的事件后,会转变成新的状态,并有可能有相应的事件。这些关系比较复杂,可以用状态跳转表[1]来表示。    3 软件实现  3.1 软件原理  PPP链路的建立、协商和握手的过程是需要建立连接的双方来完成的。每一方根据对端发送的LCP包的类型,做出相应的判断并响应。软件的原理就是用软件来模拟PPP链路中的一端,完全实现协议栈的功能。更重要的是,本文所讨论的实现方法可以实现检测、诊断的目的,这是一般的软件不能做到的。  在实现过程中,软件接收对端的LCP包,然后根据LCP的状态跳转表来决定自己下一步的状态,并产生相应的事件和动作,将响应包通过软件发向对端,达到软件实现链路连接的目的。  软件可以将链路活动的状况,接收和发送的数据包、链路的当前状态一一显示出来。用户可以通过软件详细了解到网络的活动情况和状态。    3.2 实现方法  软件实现的开发工具为Borland C++Builder可视化开发环境,运行的环境是简体中文Windows 98。软件具有信息回显界面,便于用户测试和分析。以下详细说明软件实现的方法。    3.2.1 总体流程  软件的实现部分用到2个子线程,这2个线程分别负责接收和处理数据,并对数据缓冲区进行操作。总体流程如图1所示。    3.2.2 线程结构  软件上采用多线程的技术实现。除了主线程,有2个子线程用于实现链路操作:一个作为数据包接收线程,一个作为数据包处理线程。  当开始时,主线程初始化,将自己的状态置为Initial,同时启动数据接收线程。因为这时PPP连接双方这时开始进行连接和协商,所以会收到对端设备的LCP包,接收线程接收LCP包,并交给处理线程处理。处理线程对接收的数据进行解包,解出LCP包的内容,结合当前的情况,得到产生的事件,并根据当前的状态和状态跳转表,决定要模拟的下一个状态,如果必要,将相应的响应发给对端。          处理线程是整个程序的重点,这个线程的流程如图2所示。          可以分为以下几步:  (1)得到接收线程交给的对端数据包。  (2)分析数据包中的内容,根据数据包的类型和当前本端的状态,查找状态跳转表,决定本端下一步的状态。  (3)通过状态-事件的对应,本端执行相应的事件。  (4)将产生的事件,系统的情况通过界面显示。  (5)根据状态跳转表确定是否应该给对端发送LCP包。如果需要,则按照LCP包标准封装数据并发送。    3.2.3 数据结构  在数据结构上,程序使用一个缓冲区,共有10个元素,每个元素有1 500 B左右大小,用来存储每次送 上来的数据以备分析。2个线程分别对缓冲区进行读写。设有一个头指针和一个尾指针以免访问冲突,接收线程从底层读上数据,简单判断后保存在头指针所指向的那个缓冲区元素中,设置其未用标志,头指针加1;处理线程从尾指针指向的缓冲区元素中读出数据,然后进行处理,设置其已用标志,尾指针加1。具体的数据结构如下:         3.2.4 链路情况回显  链路状况和状态转换的情况可以通过LCP包处理子线程来完成。处理子线程每处理一次对端发来的LCP包,就把状态的变化和链路的情况显示在界面上,同时对于超时异常、计时器重启这类事件也能显示出来。用户可以实时的监视线路连接的情况,这对于分析线路有着重要的作用。    3.3 软件实现的应用前景  PPP协议LCP操作的软件实现有重要的实际意义。用户可以通过实现软件的界面显示来判断线路的情况和定位故障的发生地点。一些厂家已经根据本文所说的原理和实现方法做出产品,现在正在推广应用中。
&&&&推荐文章:
【上篇】【下篇】ppp 协议怎么在实际中设置应用啊?_百度知道
ppp 协议怎么在实际中设置应用啊?
具体应该怎么设置呢?这个协议的应用范围与主要功能又是什么呢?
我有更好的答案
PPP协议(Point-to-Point Protocol)提供了在串行点对点链路上传输数据报的方法,支持异步8位数据及位导向的同步连接(如ISDN)。它提供了一种管理两点间会话的有效方法,正在取代SLIP(Serial Line Interface Protocol)协议成为点对点网络的标准。 嵌入式单片机PPP协议是在单片机中嵌入PPP协议,以实现单片机与计算机之间的PPP数据传输,使它既可以作为PPP连接的客户端,也可以作为独立的PPP服务器端来使用。它在家电控制和小型数据传输系统中具有非常广阔的应用前景,并且具有成本低、传输稳定等特点,是当前单片机研究的热门话题之一。 1 PPP的工作原理 PPP采用高级数据链路控制(HDLC)协议作为在对点链路上分装数据报的基本方法。使用可扩展的链路控制协议(LCP)来建立、配置和测试数据链路。用网络控制协议簇(N...
其他类似问题
为您推荐:
您可能关注的推广
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁PPP协议是那一层的协议,数据链路层吗?_百度知道
PPP协议是那一层的协议,数据链路层吗?
PPP协议:1. 即点对点协议n位于OSI参考模型的第二层数据链路层协议,主要是用来通过拨号或专线方式建立点对点连接发送数据。2. PPP协议主要由链路控制协议(LCP)、网络控制协议族 (NCPs)和用于网络安全方面的验证协议族(PAP和CHAP)组成。NCP 主要负责与上层的协议进行协商,LCP用于创建和维护链路。PAP是两次握手验证协议,口令以明文传递,被验证方首先发起验证请求。CHAP是三次握手验证协议,不发送口令,验证方首先发起验证请求(也就是挑战信息),安全性比PAP高。3.PPP会话建立可归纳为三个阶段:链路建立阶段、验证阶段、网络层协议获得阶段。
其他类似问题
为您推荐:
提问者采纳
废话那么多 是就是不是就不是 真是的是链路层的
数据链路层的相关知识
其他1条回答
数据链路层
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁第七章 PPP协议_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
第七章 PPP协议
上传于||暂无简介
大小:1.32MB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢}

我要回帖

更多关于 lcp协议详解 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信