ppp数据包格式分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 使用Novell IPX 控制协议(IPXCP)。
PPP 主要由以下几部分组成
封装:一种封装多协议数据报的方法。PPP 封装提供了不同网络层协议同时在同一链路传输的多路复用技术。PPP 封装精心设计,能保持对大多数常用硬件的兼容性,克服了SLIP不足之处的一种多用途、点到点协议,它提供的WAN数据链接封装服务类似于LAN所提供的封闭服务。所以,PPP不仅仅提供帧定界,而且提供协议标识和位级完整性检查服务。
链路控制协议:一种扩展链路控制协议,用于建立、配置、测试和管理数据链路连接。
网络控制协议:协商该链路上所传输的数据包格式与类型,建立、配置不同的网络层协议;
配置:使用链路控制协议的简单和自制机制。该机制也应用于其它控制协议,例如:网络控制协议(NCP)。
为了建立点对点链路通信,PPP 链路的每一端,必须首先发送LCP 包以便设定和测试数据链路。在链路建立,LCP 所需的可选功能被选定之后,PPP 必须发送NCP 包以便选择和设定一个或更多的网络层协议。一旦每个被选择的网络层协议都被设定好了,来自每个网络层协议的数据报就能在链路上发送了。
链路将保持通信设定不变,直到有LCP 和NCP 数据包关闭链路,或者是发生一些外部事件的时候(如,休止状态的定时器期满或者网络管理员干涉)。
应用:假设同样是在Windows 98,并且已经创建好“拨号连接”。那么可以通过下面的方法来设置PPP协议:首先,打开“拨号连接”属性,同样选择“服务器类型”选项卡;然后,选择默认的“PPP:Internet,Windows NT Server,Windows 98”,在高级选项中可以设置该协议其它功能选项;最后,单击“确定”按钮即可。
密码认证协议(PAP)
PAP是PPP 协议集中的一种链路控制协议,主要是通过使用2 次握手提供一种对等结点的建立认证的简单方法,这是建立在初始链路确定的基础上的。
完成链路建立阶段之后,对等结点持续重复发送ID/ 密码给验证者,直至认证得到响应或连接终止。
PAP 并不是一种强有效的认证方法,其密码以文本格式在电路上进行发送,对于窃听、重放或重复尝试和错误攻击没有任何保护。对等结点控制尝试的时间和频度。所以即使是更高效的认证方法(如CHAP),其实现都必须在PAP 之前提供有效的协商机制。
该认证方法适用于可以使用明文密码模仿登录远程主机的环境。在这种情况下,该方法提供了与常规用户登录远程主机相似的安全性。(如图2)
图2
PAP帧格式
密码认证协议的配置选项格式:
8 16 32 bit
Type Length Authentication-Protocol
Type ―3
Length ―4
Authentication-Protocol ―C023(Hex)
PAP 数据包格式
8 16 32 bit variable
Code Identifier Length Data
Code ―Code 字段为8字节,用于识别PAP 数据包类型。PAP Code 字段分配如下:
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 。