位置:51电子网 » 技术资料 » 其它综合

PPP协议链路操作的软件实现

发布时间:2008/6/5 0:00:00 访问次数:1475

1 ppp协议简介

ppp(point-to-point protocol,点到点协议)是为在同等单元之间传输数据包这样的简单链路设计的链路层协议。这种链路提供全双工操作,并按照顺序传递数据包。设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共同的解决方案。

ppp协议分为3个组成部分:

(1)一个将ip数据报封装到串行链路的方法。ppp封装提供了不同网络层协议同时通过统一链路的多路技术,使其保有对常用支持硬件的兼容性。

(2)一个用来建立、配置和测试数据链路连接的链路控制协议lcp(link control protoco1)。通信的双方可通过lcp包协商一些选项。

(3)一套网络控制协议(network control protoco1)。ncp是一族协议,负责解决物理连接上运行什么网络协议,以及解决上层网络协议发生的问题。他支持不同的网络层协议,如ip,osi的网络层,deccnet,以及appletalk等。

ppp帧封装格式如下:

ppp帧以标志字符01111110开始和结束,地址字段长度为1b,内容为标准广播地址1111111l,控制字段为00000011。协议字段长度为2b,其值代表其后的数据字段所属的网络层协议。数据字段包含协议字段中指定的协议的数据报,长度为0~1 500b。crc字段为整个帧的循环冗余校验码,用来检测传输中可能出现的数据错误。

对应ppp协议的3个部分,ppp数据帧封装也分为:ip数据报封装、lcp控制数据封装、ncp控制数据封装。当ppp帧的协议字段为0x0021时,信息字段就是ip数据报;当协议字段为0xc021时,信息字段是lcp控制数据;当协议字段为0x8021,信息字段是ncp控制数据。

2 链路建立和状态机

2.1 ppp链路建立的概述

一次完整的ppp回话过程包括4个阶段:链路建立阶段、认证阶段、网络层控制协议阶段和链路终止阶段。本文讨论和实现的是链路建立阶段。

链路建立过程如下:请求建立链接的一端用i。cp配置信息包(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,req-sent,ack-received,ack--sent,opened。

事件 自动机里的状态转换是由事件引起的。在链路连接协商时,本端从线路的对端发送过来的lcp包和自己的状态,判断将要发生的事件,并结合当前的状态判断系统的下一状态。在i.cp的链路建立过程中,事件种类较多,大概可以分为以下几类:

①网络状态事件,表明i.cp或者ncp的状态变化,包括up,down,open,close。

②超时计时器事件,与超时计时器有关的事件,包括to+,to一。

③s/t数据包事件,包括rcr+,rcr一,rca,rcn,rtr。rta,ruc,rxj+,rxj一,rxr。

动作 自动机中的动作由事件引起,所以,每个事件都对应了相应的动作。例如,有些动作表明了不同类型的lcp包的传输和(或)restar timer的启动和停止。

状态跳转表 在ppp的链路操作中,每个状态,在经过特定的事件后,会转变成新的状态,并有可能有相应的事件。这些关系比较复杂,可以用状态跳转表来表示。

3 软件实现

3.1 软件原理

ppp链路的建立、协商和握手的过程是需要建立连接的双方来完成的。每一方根据对端发送的lcp包的类型,做出相

1 ppp协议简介

ppp(point-to-point protocol,点到点协议)是为在同等单元之间传输数据包这样的简单链路设计的链路层协议。这种链路提供全双工操作,并按照顺序传递数据包。设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共同的解决方案。

ppp协议分为3个组成部分:

(1)一个将ip数据报封装到串行链路的方法。ppp封装提供了不同网络层协议同时通过统一链路的多路技术,使其保有对常用支持硬件的兼容性。

(2)一个用来建立、配置和测试数据链路连接的链路控制协议lcp(link control protoco1)。通信的双方可通过lcp包协商一些选项。

(3)一套网络控制协议(network control protoco1)。ncp是一族协议,负责解决物理连接上运行什么网络协议,以及解决上层网络协议发生的问题。他支持不同的网络层协议,如ip,osi的网络层,deccnet,以及appletalk等。

ppp帧封装格式如下:

ppp帧以标志字符01111110开始和结束,地址字段长度为1b,内容为标准广播地址1111111l,控制字段为00000011。协议字段长度为2b,其值代表其后的数据字段所属的网络层协议。数据字段包含协议字段中指定的协议的数据报,长度为0~1 500b。crc字段为整个帧的循环冗余校验码,用来检测传输中可能出现的数据错误。

对应ppp协议的3个部分,ppp数据帧封装也分为:ip数据报封装、lcp控制数据封装、ncp控制数据封装。当ppp帧的协议字段为0x0021时,信息字段就是ip数据报;当协议字段为0xc021时,信息字段是lcp控制数据;当协议字段为0x8021,信息字段是ncp控制数据。

2 链路建立和状态机

2.1 ppp链路建立的概述

一次完整的ppp回话过程包括4个阶段:链路建立阶段、认证阶段、网络层控制协议阶段和链路终止阶段。本文讨论和实现的是链路建立阶段。

链路建立过程如下:请求建立链接的一端用i。cp配置信息包(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,req-sent,ack-received,ack--sent,opened。

事件 自动机里的状态转换是由事件引起的。在链路连接协商时,本端从线路的对端发送过来的lcp包和自己的状态,判断将要发生的事件,并结合当前的状态判断系统的下一状态。在i.cp的链路建立过程中,事件种类较多,大概可以分为以下几类:

①网络状态事件,表明i.cp或者ncp的状态变化,包括up,down,open,close。

②超时计时器事件,与超时计时器有关的事件,包括to+,to一。

③s/t数据包事件,包括rcr+,rcr一,rca,rcn,rtr。rta,ruc,rxj+,rxj一,rxr。

动作 自动机中的动作由事件引起,所以,每个事件都对应了相应的动作。例如,有些动作表明了不同类型的lcp包的传输和(或)restar timer的启动和停止。

状态跳转表 在ppp的链路操作中,每个状态,在经过特定的事件后,会转变成新的状态,并有可能有相应的事件。这些关系比较复杂,可以用状态跳转表来表示。

3 软件实现

3.1 软件原理

ppp链路的建立、协商和握手的过程是需要建立连接的双方来完成的。每一方根据对端发送的lcp包的类型,做出相

相关IC型号

热门点击

 

推荐技术资料

罗盘误差及补偿
    造成罗盘误差的主要因素有传感器误差、其他磁材料干扰等。... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!