PPP协议

PPP(Point-to-Point Protocol)
PPP(Point-to-Point Protocol)协议是一个点到点的数据链路层协议,目前是TCP/IP网络中最重要的点到点数据链路层协议。PPP协议由IETF(Internet Engineering 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):是告知在信息字段中使用的是哪类分组,针对LCPNCPIPIPXAppleTalk及其它协议,定义了相应的代码。
        信息字段(I):是变长的,最多可达到所商定的最大值。缺省长度1500字节。如果需要的话,在有效内容后面增加填充字段。
4.4.4  PPP的协商过程
PPP链路的建立是通过一些列的协商完成的。其中,链路控制协议除了用于建立、拆除和监控PPP数据链路,还主要进行数据链路层特性的协商,如MTU、验证方式等;网络层控制协议族主要用于协商在该数据链路上所传输的数据的格式和类型,如IP地址。
PPP在建立链路之前要进行一些列的协商过程。PPP协议大致可以分为如下几个阶段:Dead (链路不可行)阶段、Establish(链路建立)阶段、Authenticate(验证)阶段、Network(网络层协议)阶段、Terminate(链路终止)阶段。如图4.11所示。
 
1)链路不可用阶段(Dead):链路必须从这个阶段开始和结束。当一个外部事件(比如一个载波信号或网络管理员配置)检测到物理层可用,PPP就会进入到Establish阶段。在Dead阶段,LCP状态机有两个状态:InitialStarting。从这个状态迁移到Establish状态会给LCP状态机送一个Up事件。当断开连接后,链路会自动的回到这个状态。在一般情况下这个阶段是很短的,仅仅只是检测到设备在位。
2)链路建立阶段(Establish):LCP协议用来建立一个传输配置数据包的连接,一旦发送一个Configure-Ack数据包并被对端正确的接收,LCP进入Opened状态,就停止配置数据包的发送了。LCP只配置与网络层协议无关的配置,各个网络层协议的配置通过各自的网络控制协议(NCP)在网络层协议(Network-Layer Protocol)阶段配置。在链路建立阶段接收到的非LCP数据包会直接丢弃。在网络层协议阶段或验证阶段一旦收到一个Configure -Request就会回到链路建立阶段。
3)验证阶段(Authenticate):某些链路可能要求对端验证自己之后才允许网络层协议数据包在链路上传输,在缺省值中验证是不要求的。如果某个应用要求对端采用特定的验证协
议进行验证,则必须在链路建立阶段发出使用这种协议的请求。只有当验证通过时才可以进入网络层协议阶段,如果验证不通过,则应继续验证而不是转到链路终止阶段。在这个阶段只允许链路控制协议、验证协议和链路质量检测的数据包进行传输,其他的数据报都应丢弃。

本文发布于:2024-09-20 12:21:49,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/808547.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:协议   链路   阶段   传输   网络层   建立   配置
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议