当前位置:文档之家› PPP协议

PPP协议

PPP(Point-to-Point Protocol)

PPP(Point-to-Point Protocol)协议是一个点到点的数据链路层协议,目前是TCP/ IP网络中最重要的点到点数据链路层协议。PPP协议由IETF(Internet Engineerin g Task Force)开发,目前已被广泛使用并成为国际标准。PPP协议作为一种提供在点到点链路上传输、封装网络层数据包的数据链路层协议,处在TCP/IP协议栈的第二层,主要被设计用来在支持全双工的同异步链路上进行点到点之间的数据传输。PPP是一个适用于通过调制解调器、点到点专线、HDLC比特串行线路和其它物理层的多协议帧机制。它支持错误检测、选项商定、头部压缩等机制,在当今的网络中得到普遍的应用。例如同学们所熟悉的利用MODEM进行拨号上网(163、169、165等)就是使用PPP实现主机到网络连接的典型例子。如图4.8所示。

4.4.1 PPP的特性

PPP协议是目前使用得最广泛的广域网协议,这是因为它具有以下特性:

●能够控制数据链路的建立;

●能够对IP地址进行分配和使用;

●允许同时采用多种网络层协议;

●能够配置和测试数据链路;

●能够进行错误检测。

●有协商选项,能够对网络层的地址和数据压缩等进行协商。

PPP是现在主流的一种国际标准WAN封装协议,可支持如下连接类型:

●同步串行连接;

●异步串行连接;

●ISDN连接;

●HSSI连接。

4.4.2 PPP的组成

PPP作为数据链路层的协议,在物理上可使用各种不同的传输介质,包括双绞线、光纤及无线传输介质,在数据链路层提供了一套解决链路建立、维护、拆除和上层协议协商、认证等问题的方案;在帧的封装格式上,PPP采用的是一种HDLC的变化形式;其对网络层协议的支持则包括了多种不同的主流协议,如IP 和IPX等。图4.9给出了PPP的体系结构,从图4.9中可以看出,PPP协议主要由两类协议组成:

1. 链路控制协议族(LCP)

链路控制协议 (Link Control Protocol,LCP)主要用于数据链路连接的建立、拆除和监控;LCP主要完成MTU(最大传输单元)、质量协议、验证协议、魔术字、协议域压缩、地址和控制域压缩协商等参数的协商。

2. 网络层控制协议族(NCP)

网络层控制协议族 (Network Control Protocol,NCP)主要用于协商在该链路上所传输的数据包的格式与类型,建立和配置不同网络层协议;

目前,NCP有IPCP和IPXCP两种。IPCP用于在LCP上运行IP协议;IPXCP 用于在LCP上运行IPX协议。在这里只介绍IPCP。IPCP主要有两个功能:其一是协商IP地址(用于PPP通信的双方中一侧给另一侧分配IP地址),其二是协商IP压缩协议(即是否采用VAN Jacobson压缩协议)。

同时,PPP还提供了用于安全方面的验证协议族(PAP和CHAP)。

4.4.3 PPP的帧格式

PPP的帧格式如图4.10所示。

●所有的PPP帧是以标准的HDLC标志字节(01111110)开始的,如果是用在信息字段上,就是所填充的字符。

●地址字段(A):总是设成二进制值11111111,表明主从端的状态都为接收状态。

●控制字段(C):其缺省值为00000011,此值表明是一个无序号帧。换言之,缺省情况下,PPP没有采用序列号和确认来进行可靠传输。在有噪声的环境中,如无线网络,则使用编号方式进行可靠的传输,

●协议字段(P):是告知在信息字段中使用的是哪类分组,针对LCP、N CP、IP、IPX、AppleTalk及其它协议,定义了相应的代码。

●信息字段(I):是变长的,最多可达到所商定的最大值。缺省长度15 00字节。如果需要的话,在有效内容后面增加填充字段。

4.4.4 PPP的协商过程

PPP链路的建立是通过一些列的协商完成的。其中,链路控制协议除了用于建立、拆除和监控PPP数据链路,还主要进行数据链路层特性的协商,如MTU、验证方式等;网络层控制协议族主要用于协商在该数据链路上所传输的数据的格式和类型,如IP地址。

PPP在建立链路之前要进行一些列的协商过程。PPP协议大致可以分为如下几个阶段:Dead (链路不可行)阶段、Establish(链路建立)阶段、Authentic ate(验证)阶段、Network(网络层协议)阶段、Terminate(链路终止)阶段。如图4.11所示。

(1)链路不可用阶段(Dead):链路必须从这个阶段开始和结束。当一个外部事件(比如一个载波信号或网络管理员配置)检测到物理层可用,PPP就会进入到Establish阶段。在Dead阶段,LCP状态机有两个状态:Initial和Starting。从这个状态迁移到Establish状态会给LCP状态机送一个Up事件。当断开连接

后,链路会自动的回到这个状态。在一般情况下这个阶段是很短的,仅仅只是检测到设备在位。

(2)链路建立阶段(Establish):LCP协议用来建立一个传输配置数据包的连接,一旦发送一个Configure-Ack数据包并被对端正确的接收,LCP进入O pened状态,就停止配置数据包的发送了。LCP只配置与网络层协议无关的配置,各个网络层协议的配置通过各自的网络控制协议(NCP)在网络层协议(Networ k-Layer Protocol)阶段配置。在链路建立阶段接收到的非LCP数据包会直接丢弃。在网络层协议阶段或验证阶段一旦收到一个Configure -Request就会回到链路建立阶段。

(3)验证阶段(Authenticate):某些链路可能要求对端验证自己之后才允许网络层协议数据包在链路上传输,在缺省值中验证是不要求的。如果某个应用要求对端采用特定的验证协议进行验证,则必须在链路建立阶段发出使用这种协议的请求。只有当验证通过时才可以进入网络层协议阶段,如果验证不通过,则应继续验证而不是转到链路终止阶段。在这个阶段只允许链路控制协议、验证协议和链路质量检测的数据包进行传输,其他的数据报都应丢弃。

(4)网络层协议阶段(Network-Layer Protocol):当PPP结束前面的几个阶段,每个网络层协议(如IP、IPX)就要通过适当的网络控制协议独立的进行配置。每个NCP随时都可能是打开或关闭状态。当某个网络控制协议达到Opene d状态,PPP将运送相应的网络层协议的数据包。在某个网络控制协议到达Open ed状态之前,收到的与之对应的网络层协议数据包将被丢弃。在这个阶段,链路上传输的有任何可能的LCP、NCP和网络层协议的数据包组合。

(5)链路终止阶段(Link Terminate):PPP可以在任何时候终止链路,这可能是由于载波信号的丢失、验证不通过、链路质量不好、定时器超时或管理员关闭链路。PPP通过交换终止链路的数据包来关闭链路,当交换结束时,应用就告诉物理层拆除连接从而强行终止链路。但验证失败时,发出终止请求的一方必须等到收到终止应答或者重起计数器超过最大终止计数次数才断开连接。收到终止请求的一方必须等对方先断开连接,而且在发送终止应答之后必须等至少一次重起计数器超时之后才能断开连接,之后PPP回到链路不可用状态。

相关主题