ppp协议是哪一层的协议.docx
- 文档编号:23141441
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:11
- 大小:21.98KB
ppp协议是哪一层的协议.docx
《ppp协议是哪一层的协议.docx》由会员分享,可在线阅读,更多相关《ppp协议是哪一层的协议.docx(11页珍藏版)》请在冰豆网上搜索。
ppp协议是哪一层的协议
竭诚为您提供优质文档/双击可除
ppp协议是哪一层的协议
篇一:
ppp协议格式分析
ppp数据包格式分析
ppp简介
点对点协议(ppp)为在点对点连接上传输多协议数据包提供了一个标准方法。
ppp最初设计是为两个对等节点之间的ip流量传输提供一种封装协议。
在tcp-ip协议集中它是一种用来同步调制连接的数据链路层协议(osi模式中的第二层),替代了原来非标准的第二层协议,即slip。
除了ip以外ppp还可以携带其它协议,包括decnet和novell的internet网包交换(ipx)。
ppp是一种数据链路层协议,遵循hdlc(高级数据链路控制协议)族的一般报文格式。
ppp是为了在点对点物理链路(例如Rs232串口链路、电话isdn线路等)上传输osi模型中的网络层报文而设计的,它改进了之前的一个点对点协议–slip协议–只能同时运行一个网络协议、无容错控制、无授权等许多缺陷,ppp是现在最流行的点对点链路控制协议。
ppp的帧格式
图1
ppp的帧格式解释
Fcs:
帧校验
标志flag:
字段恒为0×7f
地址(adress):
字段恒为0xff
控制(control)字段恒为0×03
协议(protocol):
字段表示ppp报文中封装的payload(data字段)的类型,如果为0×0021,则表示ppp封装的ip报文,0×002b表示ipx报文,0×0029表示appletalk报文,这几种都属于ppp的数据报文;如果为0×8021则表示ppp的lcp报文(用来协商连接),如果为0xc021则属于ppp的ncp报文(用来协商封装的三层协议),这些属于ppp的控制报文。
lcp
链路控制协议(lcp)lcp建立点对点链路,是ppp中实际工作的部分。
lcp位于物理层的上方,负责建立、配置和测试数据链路连接。
lcp还负责协商和设置wan数据链路上的控制选项,这些选项由ncp处理。
ncp
ppp允许多个网络协议共用一个链路,网络控制协议(ncp)负责连接ppp(第二层)和网络协议(第三层)。
对于所使用的每个网络层协议,ppp都分别使用独立的ncp来连接。
例如,ip使用ip控制协议(ipcp),ipx使用novellipx控制协议(ipxcp)。
ppp主要由以下几部分组成
封装:
一种封装多协议数据报的方法。
ppp封装提供了不同网络层协议同时在同一链路传输的多路复用技术。
ppp封装精心设计,能保持对大多数常用硬件的兼容性,克服了slip不足之处的一种多用途、点到点协议,它提供的wan数据链接封装服务类似于lan所提供的封闭服务。
所以,ppp不仅仅提供帧定界,而且提供协议标识和位级完整性检查服务。
链路控制协议:
一种扩展链路控制协议,用于建立、配置、测试和管理数据链路连接。
网络控制协议:
协商该链路上所传输的数据包格式与类型,建立、配置不同的网络层协议;
配置:
使用链路控制协议的简单和自制机制。
该机制也应用于其它控制协议,例如:
网络控制协议(ncp)。
为了建立点对点链路通信,ppp链路的每一端,必须首先发送lcp包以便设定和测试数据链路。
在链路建立,lcp所需的可选功能被选定之后,ppp必须发送ncp包以便选择和设定一个或更多的网络层协议。
一旦每个被选择的网络层协议都被设定好了,来自每个网络层协议的数据报就能在链路上发送了。
链路将保持通信设定不变,直到有lcp和ncp数据包关闭链路,或者是发生一些外部事件的时候(如,
休止状态的定时器期满或者网络管理员干涉)。
应用:
假设同样是在windows98,并且已经创建好“拨号连接”。
那么可以通过下面的方法来设置ppp协议:
首先,打开“拨号连接”属性,同样选择“服务器类型”选项卡;然后,选择默认的“ppp:
internet,windowsntserver,windows98”,在高级选项中可以设置该协议其它功能选项;最后,单击“确定”按钮即可。
密码认证协议(pap)
pap是ppp协议集中的一种链路控制协议,主要是通过使用2次握手提供一种对等结点的建立认证的简单方法,这是建立在初始链路确定的基础上的。
完成链路建立阶段之后,对等结点持续重复发送id/密码给验证者,直至认证得到响应或连接终止。
pap并不是一种强有效的认证方法,其密码以文本格式在电路上进行发送,对于窃听、重放或重复尝试和错误攻击没有任何保护。
对等结点控制尝试的时间和频度。
所以即使是更高效的认证方法(如chap),其实现都必须在pap之前提供有效的协商机制。
该认证方法适用于可以使用明文密码模仿登录远程主机的环境。
在这种情况下,该方法提供了与常规用户登录远程主机相似的安全性。
(如图2)
图2
pap帧格式
密码认证协议的配置选项格式:
81632bit
typelengthauthentication-protocoltype―3length―4authentication-protocol―c023(hex)
pap数据包格式
81632bitvariable
codeidentifierlengthdata
code―code字段为8字节,用于识别pap数据包类型。
papcode字段分配如下:
1、authenticate-Request;2、authenticate-ack;3、authenticate-nak。
identifier―identifier字段为8字节,用于匹配Request和Reply。
length―length字段为16字节,表示pap数据包的长,包括code、identifier、length
和data字段。
length字段外的八位位组用作数据链路层间隙,且在接收方忽略。
data―data字段为0或更多字节。
data字段格式取决于code字段。
ppp挑战握手认证协议(chap)
挑战握手认证协议(chap)通过三次握手周期性的校验对端的身份,在初始链路建立时完成,可以在链路建立之后的任何时候重复进行。
1.链路建立阶段结束之后,认证者向对端点发送“challenge”消息。
2.对端点用经过单向哈希函数计算出来的值做应答。
3.认证者根据它自己计算的哈希值来检查应答,如果值匹配,认证得到承认;否则,连接应该终止。
4.经过一定的随机间隔,认证者发送一个新的challenge给端点,重复步骤1到3。
通过递增改变的标识符和可变的询问值,chap防止了来自端点的重放攻击,使用重复校验可以限制暴露于单个攻击的时间。
认证者控制验证频度和时间。
(如图3)
图3
chap帧格式
chap的配置选项格式如下:
8163240bit
typelengthauthentication-protocolalgorithm
type―3
length―5authentication-protocol―对于chap,为c223(hex)。
algorithm―algorithm字段为八位字节,表示使用的认证方法。
chap数据包结构如下所示:
81632bitVariable
code>identifierlengthdata...
code―识别chap数据包类型。
chap代码具有以下几种:
1、challenge;2、Response;
3、success;4、Failure。
identifier―用于匹配challenges、Responses和Replies信息。
length―chap数据包的长度,包括code、identifier、length和data字段。
data―0或更多八位字节。
该字段格式取决于code字段。
对于success和Failure,
data字段包括一个独立执行的可变信息字段
篇二:
ppp协议
第一章:
ppp协议简介
ppp协议是数据链路层协议,因此我们应该对数据链路层有简单的了解。
数据链路层在osi七层模型中位于最底层物理层之上,网络层之下(如图1.1)。
它一方面从物理层的sap(服务访问点)得到物理层的服务,主要是信号的编码和译码、为进行同步用的前同步码的产生和去除、比特的传输和接收等;另一方面也通过本层的sap向网络层提供服务,主要是数据链路的建立和释放帧的封装与拆卸、差错控制等。
数据路层主要讨论在数据链路上帧流的传输问题。
这一层协议的内容包括:
帧的格式,帧的类型,比特填充技术,数据链路的建立和终止信息流量控制,差错控制,向物理层报告一个不可恢复的错误等。
这一层协议的目的是保障在相邻的站与节点或节点与节点之间正确地、有次序、有节奏地传输数据帧。
常见的数据链路协议有两类:
一是面向字符的传输控制规程,如基本型传输控制规程(bsc);另一类是面向比特的传输控制规程,如高级数据链路控制规程(hdlc)。
主要是后一类。
用户接入internet,在传送数据时都需要有数据链路层协议,其中最为广泛的是串行线路网际协议(slip)和点对点协议(ppp)。
slip(seriallineinternetprotocol)意为串行线路internet协议。
它是通过直接连接和用调制解调器连接的tcp/ip。
由于slip具有仅支持ip等缺点,主要用于低速(不超过19.2kbit/s)的交互性业务,它并未成为internet的标准协议。
为了改进slip,人们制订了点对点ppp(point-to-pointprotocol)协议。
ppp协议用于实现与slip一样的目的和作用,它在实现其作用的方式上比slip要优越得多。
ppp连接协议包括出错检测和纠正,以及分组验证,这是一个安全性特征,它能确保接收的数据分组确实来自于发送者。
这些特性合起来使得通过电话线可以建立更为安全的连接。
ppp是一种被认可的internet标准协议,所以目前得到最广泛的开发支持。
ppp点到点协议是为在同等单元之间传输数据包这样的简单链路设计的链路层协议。
这种链路提供全双工操作,并按照顺序传递数据包。
设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。
其功能有以下几点:
(1)ppp具有动态分配ip地址的能力;
(2)ppp支持多种网络协议,比如tcp/ip、netbeui、nwlink等;
(3)ppp具有错误检测以及纠错能力,支持数据压缩;
(4)ppp具有身份验证功能。
ppp协议中提供了一整套方案来解决链路建立、维护、拆除、上层协议协商、认证等问题。
ppp协议包含这样几个部分:
链路控制协议lcp(linkcontrolprotocol);网络控制协议ncp(networkcontrolprotocol);认证协议,最常用的包括口令验证协议pap(passwordauthenticationprotocol)和挑战握手验证协议chap(challenge-handshakeauthenticationprotocol)。
lcp负责创建,维护或终止一次物理连接。
ncp是一族协议,负责解决物理连接上运行什么网络协议,以及解决上层网络协议发生的问题。
第二章:
ppp封装
ppp协议为串行链路上传输的数据报定义了一种封装方法,它基于高层数据链路控制(hdlc)标准。
ppp数据帧的格式如表格所示:
(1)ppp的帧格式前3个字段固定为:
0x7e、0xFF和0x03。
(2)ppp帧的长度都是整数个字节。
(3)若封装在ppp帧中的数据出现字节0x7e,则用2字节序列0x7d、0x5e取代;若出现字节0x7d,则用2字节序列0x7d、0x5d取代;
(4)若信息字段中出现ascii码的控制字符(即小于0x20的字符),则在该字符前面要加入一个0x7d字节,并且要将该字符转为与0x20进行与操作后的结果。
这样做的目的是防止这些表面上的ascii码控制符(在这里实际上已不是控制符了)被错误地解释为控制符。
(5)协议字段由两个字节组成。
字段中第八位必须是0,最后一位必须为1。
链路若收到不符合这些规则的帧,必须被视为带有不被承认的协议。
在范围"0x0***"到"0x3***"内的协议字段,标志着特殊数据包的网络层协议。
在范围"0x8***"到"0xb***"内的协议字段,标志着数据包属于网络控制协议(ncp)。
在范围"0x4***"到"0x7***"内的协议字段,用于没有相关ncp的低通信量协议。
在范围"0xc***"到"0xf***"内的协议字段,标志着使用链路层控制协议(lcp)的包。
以下的值作为保留:
0xc021链路控制协议lcp(linkcontrolprotocol)
0xc023密码认证协议pap(passwordauthenticationprotocol)
0xc025链路品质报告linkqualityReport
0xc223挑战握手验证协议chap(challengehandshakeauthenticationprotocol)0x8021ip控制协议ipcp(internetprotocolcontrolprotocol)
0x0021internetprotocol(ip)
0x0001填料协议(paddingprotocol)
0x0003~0x001Freserved(transparencyinefficient)保留(透明度效率低的)0x007dreserved(controlescape)保留(控制逃逸)
0x00cFreserved(pppnlpid)保留(pppnlpid)0x00FFreserved(compressioninefficient)保留(压缩效率低的)0x8001~0x801F未使用0x807d未使用0x80cF未使用
0x80FF未使用
(6)Fcs字段为整个帧的循环冗余校验码,用来检测传输中可能出现的数据错误。
(计算范围为ppp帧扣去帧头尾标志-7e两个字节的范围)
(7)数据字段是零或更多的字节。
数据字段的最大长度,包含填料但不包含协议字段,术语叫做最大接收单元(mRu),默认值是1500字节。
若经过协商同意,也可以使用其它的值作为mRu。
在传输的时候,信息字段会被填充若干字节以达到mRu。
每个协议负责根据实际信息的大小确定填料的字节数。
(8)即使使用所有的帧头字段,ppp协议帧也只需要8个字节就可以形成封装。
如果在低速链路上或者带宽需要付费的情况下,ppp协议允许只使用最基本的字段,将帧头的开销压缩到2或4个字节的长度,这就是所谓的ppp帧头压缩。
为了加深认识,我们看一下下面这段截取的ppp报文:
7eFF7d23c0217d217d237d207d3db12c7e
根据以上规则,首先要将报文段中转意的字符转化回来。
即将7d后的5d、5e转为7d、7e,其余的字符都减去一个0x20。
例如以上报文就转为:
7e
FF
030103001d7e
标志地址控制标志
这个数据包就是下一章我们要说的lcp链路控制协议包。
第三章:
lcp协议
3-1:
lcp数据包
lcp链路控制协议,用于hdlc的上层,用于协商适合于数据链路的选项,如指出链路的一边同意接收的最大数据报大小即最大接收单元(mRu)。
探测链路回路和其它普通的配置错误,以及终止链路。
一个lcp包被封装在ppp数据域中,该ppp协议域表示为0xc021(链路控制协议)。
lcp包的格式如下:
(1)代码
代码域确定lcp包的种类,不同的包有不同的格式。
(2)标识符
标识符域在匹配请求和回复中有用。
当带有无效标识符域的包被接收时候,该包将不影响lcp自动机制,将被静静的丢弃。
(3)长度
长度域指出lcp包的长度,包括代码,标识符,长度和数据域。
该长度必须不超过链路的mRu。
长度域以外的字节被当作填料而忽略处理。
(4)数据
数据域是零或多个八位字节,由长度域声明。
数据域的格式由代码域决定。
lcp包有3类:
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包的格式:
configure-Request(匹配请求)
一个操作想要打开一个连接必须传送一个configure-Request包,configure-Request包的格式如下:
标识符
用来标志不同的configure-Request包。
只要选项域的内容改变,并且只要收到先前有效的configure-Request
包,标识符域必须被改变,以保证其唯一性,仅仅在重发时,标识符域可以保持不变。
选项
选项域是长度的变量,并包含零个或多个发送方需要协商的配置选项的列表。
列出的全部配置选项总是被同时协商。
选项域的格式如下:
类型
类型域用于指出配置选项的类型,不同的值代表不同的配置项目。
以下值保留:
0x00ReseRVed(保留)
0x01maximum-Receive-unit(最大-接收-单元)
0x02async-control-character-map(异步-控制-字符-映射)
0x03authentication-protocol(鉴定-协议)
0x04quality-protocol(质量-协议)
0x05magic-number
0x07protocol-Field-compression(协议-域-压缩)
0x08address-and-control-Field-compression(地址-和-控制-域-压缩)
长度
长度域指出该配置选项(包括类型、长度和数据域)的长度。
数据
数据域是零个或者更多的八位字节,并且包含配置选项的特定详细信息,不同的配置项目含有不同的信息。
当数据域长度超过长度域所指出的长度时,整个配置包将被静静的丢弃。
以下介绍不同的配置选项的格式:
·maximum-Receive-unit(最大-接收-单元)
该配置选项通知链路另一端可以接收多大的包。
默认值是1500个字节。
该选项用于指出一个最大的容量,而不一定使用这个最大容量。
例如,当一个2048个字节的maximum-Receive-unit(mRu)被协商,一端不需要用2048个字节发送每个包,而可以发送较小的包。
mRu配置选项格式如下:
·async-control-character-map(异步-控制-字符-映射)
该配置选项用于协商在异步链路中透明传输控制字符的方法。
异步链路的每端支持两个异步控制字符映射。
接收accm是32位的,而发送accm可以多达256位,也就是说,链路两端有四个不同的accm,每端两个。
对于异步链路,默认的接收accm是0xffffffff。
默认的发送accm是0xffffffff加上控制逃逸字符和标记序列本身,再加上将要异步发出的而被标记的字符。
对于其它类型的连接,默认值是0,因为对其它类型的连接而言,没有必要进行映射。
默认的字符(除了0x20外)都能够在所有已知的通信设备上透明传送。
然而,通常不需要映射所有的控制字符,甚至不需要映射任何控制字符。
配置选项用来通知双方哪些控制字符在发送时需要映射。
一方可能仍然在映射的格式中传送其它字符。
此时发送方应该采取措施使接收方在接收时忽略这些字符。
篇三:
ppp协议
ppp
(point-to-pointprotocol点到点协议)
一、简介:
为了提高安全性,外部路由器将信息传入到内网边缘路由器时,需要验证外部路由器的身份,一端称为验证方(也称服务器),另一端称为被验证方(客户端)。
ppp使用两种验证方法,pap和chap。
二、配置方法:
pap验证
1、验证方设置:
已经配置了端口的ip地址。
1)进入端口
RsR20a(config)#interfaces1/2
2)下面配置封装协议
RsR20a(config-if)#encapsulationppp
3)设定ppp的认证方式
RsR20a(config-if)#pppauthenticationpap
4)设置被验证方用户名以及验证密码
RsR20a(config)#usernameRsR20bpassword123456
2、被验证方
已经配置了端口的ip地址。
1)进入端口
RsR20b(config)#interfaces1/2
2)下面配置封装协议
RsR20b(config-if)#encapsulationppp
3)设置被验证方用户名以及验证密码
RsR20b(config-if)#ppppapsent-usernameRsR20bpassword123456
chap验证
1、验证方设置:
已经配置了端口的ip地址。
1)进入端口
RsR20a(config)#interfaces1/2
2)下面配置封装协议
RsR20a(config-if)#encapsulationppp
3)设定ppp的认证方式
RsR20a(config-if)#pppauthenticationchap
4)设置被验证方用户名以及验证密码
RsR20a(config)#usernameRsR20bpassword123456
2、被验证方
已经配置了端口的ip地址。
1)设置验证方用户名以及验证密码
RsR20b(config-if)#usernameRsR20apassword123456
2)进入端口
RsR20b(config)#interfaces1/2
3)下面配置封装协议
RsR20b(config-if)#encapsulationppp
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ppp 协议 哪一
![提示](https://static.bdocx.com/images/bang_tan.gif)