ppp数据包格式分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 。

相关文档
最新文档