链路层协议

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

链路层协议(DATALINK)简介以下链路层协议:PPPMPHDLCPPPoEVLANX.25/FR/ATMPPP协议概述PPP协议即点对点协议,在TCP/IP协议族中PPP协议属于链路层的协议。PPP是为在同等单元之间传输数据包这样的简单的链路而设计的。这种链路提供全双工操作,并按照顺序传递数据包。它提供的服务远远超过早期的SLIP(串行线路因特网协议)。PPP有能力为现有的任何网络协议提供传输功能,包括当前最常用的TCP/IP。这些协议能同时在同一个链路上运行,而彼此互不干扰。PPP服务器能够在单个连接上同时传送TCP/IP和其他协议,而且所有流行的PPP客户软件几乎都支持TCP/IP协议。另外,PPP的配置也设计得相当容易。PPP主要由三类协议组成:链路控制协议(LCP),网络层控制协议(NCP)和PPP扩展协议。其中,链路控制协议主要用于建立,拆除和监控PPP数据链路;网络层控制协议主要用于协商在链路上所传输数据包的网络层协议参数;PPP扩展协议主要用于提供对PPP功能的进一步支持。同时,PPP还提供了用于网络安全方面的验证协议(PAP和CHAP)。PPP由于能够提供验证协议扩充,支持同异步而获得较广泛的应用。Con…PPP运行过程总的说来,PPP运行过程可以分成以下几个阶段,如下图所示:下面分别说明各个阶段的详细过程:链路死亡阶段(物理层还没有被使用时)。链路必须从这个阶段开始和结束。当载波检测或链路管理的配置信息,会指示物理层可用,PPP链路就会进入到链路建立阶段。链路建立阶段。该阶段使用链路控制协议LCP(LinkControlProtocol)来建立一个连接。建立连接时需要进行协商,协商内容包括工作方式、验证方式和最大传输单元等。两端相互发送配置信息包(Configure-Req、Configure-Ack)被发送且被接收,就完成了交换,进入了LCP开启状态,底层链路已经建立。Con…若配置了验证,则进入Authenticate阶段,开始CHAP或PAP验证,进入认证流程;若未配置验证,则进入网络控制协商阶段(NCP),此时LCP状态仍为开启状态,而NCP状态从Initial转到Request-sent,进入网络的协商流程.链路认证阶段。认证并不是强制性的,必须的,它不过是LCP的一个选项。如果你的实现需要有某一认证协议进行对等的认证,那末必须在前一阶段(链路建立阶段)通过协商请求使用该协议。如果验证由于某种原因而失败进入终止阶段,拆除链路;如果验证成功就进入网络协商阶段(NCP),此时LCP状态仍为开启状态,而NCP状态从Initial转到Request-sent。Con…网络层协商阶段。在这阶段,将进行特定的网络控制协议(NetworkControlProtocol,即NCP)配置,部分NCP将会进行协商(如IPCP),协商主要包括双方的IP地址。通过NCP协商来选择和配置网络层协议。只有选中的网络层协议配置成功后,这就意味着链路已经建立起来,并且点到点的通信现在可以进行了。链路终止阶段。能引起链路终止的原因包括:载波丢失,认证失败,链路质量太差以及空闲时钟超时。就像LCP被用于建立链路一样,它同样被用于终止链路,它通过终止报文的交换进行该过程。当终止进程发生时,PPP将通知网络层协议,使得它们可以做适当的工作。接下来物理层将被告知断开连接并终止链路,PPP过程将返回到链路死亡阶段。Con…PPP的帧格式PPP的帧格式如下图所示:在PPP帧格式中,Flag域标识了一物理帧的起始及结束,FCS(CRC)域为帧校验域。而真正属于PPP报文内容的为Address,Control,Protocol,Information域所包含的内容。Address域表示此为PPP广播地址,Address和Control域一起表示了此报文为PPP报文,即PPP报文头为FF03。Protocol为协议域。紧接着的Code域表明了此报文为哪种PPP协商报文,如为IP报文,则不存在此域,而取而代之的直接为IP报文数据内容。Identifier域用于进行协商报文的匹配。Length域为此协商报文长度(包含Code和Identifier域)。Data域所包含的为协商报文的内容。Type域为协商选项类型,其后的Length为协商选项长度(包含Type域),紧接着的Data域为协商选项的具体内容。Con…Con…常用Protocol代码:0021InternetProtocol(IP)8021InternetProtocolControlProtocol(IPCP)c021LinkControlProtocol(LCP)c023PasswordAuthenticationProtocol(PAP)c223ChallengeHandshakeAuthenticationProtocol(CHAP)常用Code值:0x01Configure-Request(配置请求)0x02Configure-Ack(配置应答)0x03Configure-Nak(配置无应答)0x04Configure-Reject(配置拒绝)0x05Terminate-Request(终止请求)0x06Terminate-Ack(终止应答)0x07Code-Reject(代码拒绝)0x08Protocol-Reject(协议拒绝)0x09Echo-Request(回应请求)0x010Echo-Reply(回应答复)0x011Discard-Request(丢弃请求)Con…常用协商Type值0x01Maximum-Receive-Unit(最大接收单元)0x03Authentication-Protocol(鉴定协议)0x04Quality-Protocol(质量协议)0x05Magic-Number(魔术字)0x07Protocol-Field-Compression(协议域压缩)0x08Address-and-Control-Field-Compression(地址和控制域压缩)Con…LCP的协商过程:PPP在建立链路之前要进行一系列的协商过程。过程如下:PPP首先进行LCP协商,协商内容包括:最大接收单元(Maximum–Receive-Unit,MRU),魔术字(Magic-number),验证方式(Authentication-Protocol)等选项。LCP协商成功后,进入链路建立阶段。如配置了PAP或CHAP验证,便进入了PAP或CHAP验证阶段,验证通过后才会进入网络控制协议(NCP)阶段协商,如TCP/IP所对应的IPCP。任何阶段的协商失败都将导致链路的拆除。最大接收单元用以说通知对等体设备可以接收更大的包,或请求对等体发送小一些的包。如果请求的包较小,设备必须在丢失链路同步的情况下仍然能够接收完整的1500个字节的信息字段,默认值是1500个字节。LCP协商的过程及数据包的格式魔术字主要用于检测链路自环,PPP靠发送Echo-Request,EchoReply报文来检测自环和维护链路状态。如连续发现有超过最大自环允许数目,EchoRequest报文中魔术字与上次发送的魔术字相同,则判定网络发生自环现象。如链路发生自环,则就需采取相应措施对链路复位。验证方式用于设置本链路是否需要验证,如果需要验证,采用PAP验证还是CHAP验证进行选择。Con…LCP数据包可分为三类:1)链路配置包:用于建立和配置一条链路(Configure-Request,Configure-ACK,Configure-Nak和Configure-Reject)。2)链路终止包:用于终止一条链路(Terminate-Request和Terminate-Ack)。3)链路维护包:用于对一条链路的管理和故障排除(Code-Reject,Protocol-Reject,Echo-Request,Echo-Reply和Discard-Request)。LCP数据包的格式如下,字段自左往右传输:Con…Code:Code字段占一个八位字节,用于识别LCP包的类型,当收到包的代码不可识别时,发送一个Code-Reject包。所涉及的值如下:0x01Configure-Request0x07Code-Reject0x02Configure-Ack0x08Protocol-Reject0x03Configure-Nak0x09Echo-Request0x04Configure-Reject0x010Echo-Reply0x05Terminate-Request0x011Discard-Request0x06Terminate-AckCon…Identifier:Identifier字段占一个八位字节,用于帮助请求和应答的匹配。当接收到包的标识符为无效值时,此包会被默默丢弃。Length:Length字段占两个八位字节,用于指示LCP包的长度(包括四个字段)。此长度不能超过MRU所规定的值。超越字段长度的字节被当作填充符,并在接收时被忽略。当接收到包的长度无效时,此包也会被默默丢弃。Data:Data字段可以包含0个或0个以上的八位字节,其长度由长度字段决定。数据字段的格式由代码字段确定。Con…Configure-Request执行想要打开一个连接就必须传送一个Configure-Request。Configure-Ack在Configure-Request中收到的每一个配置选项和全部的值都是能接受的,那么该执行必须传送一个Configure-Ack。Configure-Nak如果每一个收到的配置选项要求是可认知的,但是一些值不能被接受,那么该执行必须传送一个Configure-Nak。Configure-Reject如果Configure-Request中收到的一些配置选项是不可辨认的或者不被商议所接受,则该执行必须传送一个Configure-Reject。描述LCP代码域中各个值的用途:Con…Terminate-Request&Terminate-Ack一个执行想要关闭一个连接应该传送一个Terminate-Request。Terminate-Request包应该继续发送,直到收到Terminate-Ack。Code-Reject接收到一个带有未知代码的LCP包显示对端由一个不同的版本操作。这必须传送一个Code-Reject报告回给未知代码的发送方。Protocol-Reject接收一个带有未知协议域的LCP包显示对端试图使用一个不支持的协议。这通常发生在对端试图配置一个新的协议时。如果LCP自动处理处于Opened(打开)状态,那么必须通过传送一个Protocol-Reject报告回该对端。Echo-Request&Echo-replyLCP包含Echo-Request和Echo-Reply代码来供给一个数据链路层回送机制来演习链路双方的使用。这对调试、链路质量检测、执行测试等其他功能有帮助。一个在LCP的Opened(打开)状态接收Echo-Request时,必须传送一个Echo-Reply。Con…Discard-RequestLCP包含一个Discard-Request代码为了供给一个用于演习本地到遥远的链路方向的数据链路层接收器机制。有助于调试、执行测试、和众多的其他功能。Discard-Request包必须仅在LCP的Opened(打开)状态被发送。接收中,接收器必须静静的丢弃任何收到的Discard-Request。LCP的配置选项:LCP配置选项允许对一条点对点链路对默认的特性进行修改协商。如果Configure-Request包中有一个配置项未包括,则假定使用配置选项的默认值。配置选项表示请求的附加功能或需求,一个不能理解任何选项的设备应该与实现了每一个选项的设备交互操作。每个选项都指定了默认值,使链路不经选项的协商便可正确的运行,尽管性能可能不是最优。对于选项的默认值,没有必要在Configure-Request包中指定。所有配置选项应用于半

1 / 71
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功