[ 复习笔记 ] 网络协议与分析 第二章 PPP协议

第二章 PPP协议

2.1 概述

PPP ( Point to Point Protocol )属于TCP/IP 模型中的网络接口层,是一个数据链路层协议,主要用于在全双工的同异步链路上进行点到点的数据传输。

PPP协议的通信双方是客户ISP( Internet Service Provider ),他们通过Modem1和电话网络连接。当客户拨通ISP 后,它们之间就建立了一条虚拟的直连链路。

当用户对带宽的要求较高时,单个的PPP链路无法提供足够的带宽,这时将多个PPP链路进行捆绑形成MP链路,旨在增加链路的带宽并增强链路可靠性。

2.1.1 PPP协议内容

PPP 规定了以下内容:

  1. 帧格式及成帧方法。
  2. 用于建立、配置和测试PPP 链路的LCP
  3. 用于建立和配置网络层协议的NCP

在PPP 链路上可以传输不同网络协议的数据, NCP 用于对这些网络协议相关的参数进行配置。但NCP 只是一个统称,如果传输的是IP 数据,则NCP 是指IPCP ;如果传输的是DECnet数据,则NCP 对应的是DNCP 。最新的NCP 是2011 年8 月发布的TNCP ,而TRILL用于路由网桥的连接。不同类型的NCP充分说明了PPP 具有良好的通用性。

2.1.2 PPP协议优点

PPP协议是在串行线IP协议**SLIP(Serial Line IP)2**的基础上发展起来的。由于SLIP协议具有只支持异步传输方式、无协商过程(尤其不能协商如双方IP地址等网络层属性)、只能承载IP一种网络层报文等缺陷,在发展过程中,逐步被PPP协议所替代。

PPP协议有如下优点:

  1. 对物理层而言,PPP既支持同步链路又支持异步链路,而X.25等数据链路层协议仅支持同步链路,SLIP仅支持异步链路。
  2. PPP协议具有良好的扩展性。
  3. 提供LCP(Link Control Protocol)协议,用于各种链路层参数的协商。
  4. 提供各种NCP(Network Control Protocol)协议,用于各网络层参数的协商,更好地支持了网络层协议。
  5. 无重传机制,网络开销小,速度快。

另外,PPP还提供了用于网络安全方面的验证协议口令鉴别协议PAP(Password Authentication Protocol)和挑战握手鉴别协议CHAP(Challenge Handshake Authentication Protocol),用于网络安全方面的验证。

2.2 PPP协议流程

在建立PPP 链路前,发起方必须通过电话网络呼叫回应方。呼叫成功后双方建立了一条物理连接。之后,发起方向回应方发送一系列的链路控制协议LCP 分组(封装成多个PPP 帧),以便建立LCP 连接。
在LCP配置协商阶段链路的回应方可以发送以下几种响应中的一种:

1.配置确认帧(Configure-Ack) 所有选项都接受。
2.配置否认帧(Configure-Nak) 所有选项都理解但不能接受。
3.配置拒绝帧(Configure-Reject) 选项有的无法识别或不能接受,需要协商。

建立LCP 连接后,用PAP或CHAP验证身份。

在这一状态,只允许传送LCP 协议的分组验证协议的分组以及监测链路质量的分组。若使用口令鉴别协议PAP ,则需要发起通信的一方发送身份标识符和口令。系统可允许用户重试若干次。如果需要有更好的安全性,则可使用更加复杂的口令握手鉴别协议CHAP 。若鉴别身份失败,则转到“链路终止”。若鉴别成功,则进入“网络层协议”状态。

最后用NCP配置IP 层参数(主要是配置IP 地址)。在“网络层协议”状态, PPP 链路的两端的网络控制协议NCP根据网络层的不同协议互相交换网络层特定的网络控制分组。这个步骤是很重要的,因为现在的路由器都能够同时支持多种网络层协议。总之, PPP 协议两端的网络层可以运行不同的网络层协议,但仍然可使用同一个PPP 协议进行通信。

当网络层配置完毕后,链路就进入可进行数据通信的状态。两个PPP 端点除可以发送数据分组外,还可发送回送请求LCP 分组(Echo-Request)回送回答LCP 分组(Echo-Reply),以检查链路的状态。

通信完成后,NCP 释放网络层连接,收回原来分配出去的IP地址。接着, LCP释放数据链路层连接。最后释放的是物理层的连接。

[ 复习笔记 ] 网络协议与分析 第二章 PPP协议_第1张图片

整个PPP协议的通信过程分为5个阶段;

[ 复习笔记 ] 网络协议与分析 第二章 PPP协议_第2张图片

  1. 链路不可用阶段( Dead ):这是链路状态的起始和终止点。当检测到载波信号时(用户发送请求,链路上即出现载波信号),说明物理层可用,将进入“链路建立”阶段。
  2. 链路建立阶段( Establish ):在Establish阶段,PPP链路进行LCP协商。协商内容包括工作方式是SP(Single-linkPPP)还是MP(Multilink PPP)、最大接收单元MRU、验证方式和魔术字(magic number)等选项。当完成配置报文的交换后,则会继续向下一个阶段跃迁。
  3. 认证阶段( Authenticate ):见下文 2.6 认证协议PAP和2.7 认证协议CHAP。
  4. 网络层协议阶段( Network ):每种网络层协议(IP、IPX和AppleTalk)会通过各自相应的网络控制协议进行配置。每个NCP协议可在任何时间打开和关闭。当一个NCP的状态机变成Open状态时,则PPP就可以开始在链路上承载网络层数据传输。
  5. 链路终止阶段( Terminate ):PPP能在任何时候终止链路。当载波丢失、认证失败或管理员人为关闭链路等情况均会导致链路终止。

2.3 PPP帧格式

2.3.1 各字段的意义

[ 复习笔记 ] 网络协议与分析 第二章 PPP协议_第3张图片PPP协议的首部和尾部分别为四个字段和两个字段。

  1. 标志字段 F (Flag),规定为0x7E。标志宇段表示一个帧的开始或结束。需要注意的是连续两帧之间只需要用一个标志宇段。如果出现连续两个标志宇段,就表示这是一个空帧,应当丢弃。
  2. 地址字段 A 规定为0xFF,不携带PPP 帧的信息。
  3. 控制字段 C 规定为Ox03,不携带PPP 帧的信息。
  4. 协议字段 为0x0021 时, PPP 帧的信息字段就是IP 数据报。若为0xC021 ,则信息字段是PPP 链路控制协议LCP 的数据,而0x8021 表示这是网络层的控制数据。
    [ 复习笔记 ] 网络协议与分析 第二章 PPP协议_第4张图片
  5. 信息字段的长度是可变的,不超过1500 字节。
  6. 使用CRC 的帧检验序列FCS
2.3.2 字节填充

当PPP 使用异步传输时,它把转义符定义为0x7D

1.把信息字段中出现的每一个Ox7E 字节转变成为2个字节序列(Ox7D, Ox5E)2.若信息字段中出现一个Ox7D 的字节(即出现了和转义宇符一样的比特组合),则
把Ox7D 转变成为2 字节序列(Ox7D, Ox5D)。
3.若信息字段中出现ASCII 码的控制字符(即数值小于Ox20 的字符),则在该字符前
面要加入一个Ox7D 字节,同时将该字符的编码加以改变。
2.3.3 零比特填充

PPP 协议用在SONET/SDH 链路时,使用同步传输(一连串的比特连续传送)而不是异
步传输(逐个字符地传送)。在这种情况下, PPP 协议采用零比特填充方法来实现透明传输。

1.在发送端,先扫描整个信息字段。只要发现有5个连续1,则立即填入一个02.接收端在收到-个帧时,先找到标志字段F以确定一个帧的边界,接着再用硬件对其中的比特流进行扫描。每
当发现5个连续1时,就把这5个连续1后的-个0 删除,以还原成原来的信息比特流。

2.4 LCP

2.4.1 链路配置

在链路建立阶段,PPP协议通过LCP报文进行链路的建立和协商。此时LCP报文作为PPP的净载荷被封装在PPP数据帧的Information域中,PPP数据帧的协议域的值固定填充0xC021(代表PPP 帧的信息字段就是IP 数据报)。

在链路建立阶段的整个过程中信息域的内容是变化的*(因为通信双方可以开展多次配置协商。如果对方不识别某些选项,则随后的协商将不包含它们。此外,回应方返回的否认或拒绝报文中可能包含其接受的配置选项值,以便发起方以此为依据修正配置项)*,它包括很多种类型的报文,所以这些报文也要通过相应的字段来区分。
[ 复习笔记 ] 网络协议与分析 第二章 PPP协议_第5张图片

  • Code域:Code域的长度为一个字节,主要是用来标识LCP数据报文的类型(对应关系如下图)。
    在链路建立阶段,接收方接收到LCP数据报文。当其Code域的值无效时,就会向对端发送一个LCP的代码拒绝报文(Code-Reject报文)。
    [ 复习笔记 ] 网络协议与分析 第二章 PPP协议_第6张图片

  • Identifier域
    Identifier域为1个字节,用来匹配请求和响应。当Identifier域值为非法时,该报文将被丢弃。通常一个配置请求报文的ID是从0x01开始逐步加1的。当对端接收到该配置请求报文后,无论使用何种报文回应对方,但必须要求回应报文中的ID要与接收报文中的ID一致。

  • Length域
    Length域的值就是该LCP报文的总字节数据。它是Code域、Identifier域、Length域和Data域四个域长度的总和。Length域所指示字节数之外的字节将被当作填充字节而忽略掉,而且该域的内容不能超过MRU的值。

  • Data域
    Data域所包含的是协商报文的内容,这个内容包含以下字段。

– Type为协商选项类型。
– Length为协商选项长度,它是指Data域的总长度,也就是包含Type、Length和Data。
– Data为协商选项的详细信息。

常见的Type中的类型值:

0x01 最大接收单元(Maximum-Receive-Unit)用以向对方通告可以接收的最大报文长度。
0x02 Async-Control-Character-Map
0x03 认证协议(Authentication-Protocol)认证协议用以向对方通告使用的认证协议。PAP 用C023表示, CHAP 用C223 表示。
0x04 质量协议(Quality-Protocol)质量协议用以向对方通告使用的链路质量监控协议。LQR 用C025表示。
0x05 魔术字 (Magic-Number)魔术字用以防止环路。
0x06 RESERVED
0x07 协议域压缩 (Protocol-Field-Compression) )用以通知对方可以接收“协议”字段经过压缩的PPP帧。
0x08 地址及控制域压缩(Address-and-Control-Field-Compression)用以通知对方可以接收“地址”和“控制”字段经过压缩的PPP 帧。

2.4.2 链路终止

当通信一方欲终止链路时, 应向对方发送Terminate-Request 报文,对方则以Terminate-Ack 响应。这两种报文的首部与Configure-Request 首部相同,其数据区可以为空,也可以是发送方自定义的数值,比
如:发送方可以在其中包含对终止原因的描述。

2.4.3 链路维护

链路维护报文用于错误通告及链路状态检测。LCP 规定了5 种维护报文。

  • Code-Reject
  • Protocol-Reject
  • Echo-Request 和 Echo-Reply
  • Discard-Request

参考文档 网络协议与分析(第二版)——寇晓蕤,罗军勇,蔡延荣编著
参考文档 计算机网络自顶向下方法(第七版)——James F.Kurose
参考文档 HUAWEI NetEngine40E 全业务路由器 V800R011C00特性描述 - 广域网接入


  1. Modem(调制解调器)是Modutor(调制器)和Demodulator(解调器)的简称。 ↩︎

  2. SLIP协议是指串行线路网际协议(Serial Line Internet Protocol),是最早的、也是仅有的两个串行IP协议之一,属于异型IP协议。 ↩︎

你可能感兴趣的:(计算机网络,网络协议,网络)