PPP协议

17 Mar 2025 | 6 分钟阅读

PPP 的英文全称是 Point-to-Point protocol(点对点协议)。它是点对点连接中最常用的协议。假设用户想从家里访问互联网,则会使用 PPP 协议。

它是一个数据链路层协议,位于 OSI 模型 的第二层。它用于封装第三层协议以及有效载荷中的所有信息,以便在串行链路上进行传输。PPP 协议可以用于同步链路(如 ISDN)和异步链路(如拨号连接)。它主要用于两个设备之间的通信。

它可以用于多种物理网络,如串行电缆、电话线、干线、蜂窝电话、光纤链路(如 SONET)。由于数据链路层协议用于识别传输的起点和终点,因此 ISP(互联网服务提供商)使用 PPP 协议来提供拨号接入 互联网

PPP 提供的服务

  • 它定义了传输发生的帧的格式。
  • 它定义了链路建立过程。如果用户与服务器建立链路,那么“如何建立此链路”是由 PPP 协议完成的。
  • 它定义了数据交换过程,即如何交换数据,交换的速度。
  • PPP 协议的主要特点是封装。它定义了网络层数据和有效载荷中的信息如何封装到数据链路帧中。
  • 它定义了两个设备之间的认证过程。两个设备之间的认证、握手以及密码如何在两个设备之间交换,都由 PPP 协议决定。

PPP 协议未提供的服务

  • 它不支持流量控制机制。
  • 它有一个非常简单的错误控制机制。
  • 由于 PPP 提供点对点通信,因此它缺乏用于在多点配置中处理帧的寻址机制。

它是一个面向字节的协议,因为它将帧作为字节或字符的集合来提供。它是一个 WAN(广域网)协议,因为它运行在 互联网 链路上,这意味着在两个路由器之间,互联网被广泛使用。

PPP 有两个主要用途,如下所示:

  • 它广泛用于负载大、速度快的高宽带通信。例如,互联网运行在高负载和高速率下。
  • 它用于在两个连接的(点对点)计算机之间传输多协议数据。它主要用于点对点设备,例如,路由器是点对点设备,PPP 协议在那里被广泛使用,因为它是一个 WAN 协议,而不是简单的 LAN 以太网协议。

PPP 协议的帧格式

PPP 协议的帧格式包含以下字段:

PPP Protocol
  • 标志 (Flag): 标志字段用于指示帧的开始和结束。标志字段是一个 1 字节的字段,出现在帧的开头和结尾。标志的位模式与 HDLC 中的位模式相似,即 01111110。
  • 地址 (Address): 这是一个 1 字节的字段,包含常量值 11111111。这 8 个 1 表示广播消息。
  • 控制 (Control): 这是一个 1 字节的字段,通过常量值 11000000 设置。这不是一个必需的字段,因为 PPP 不支持流量控制和非常有限的错误控制机制。控制字段是协议支持流量和错误控制机制的强制字段。
  • 协议 (Protocol): 这是一个 1 或 2 字节的字段,定义了数据字段中要携带的内容。数据可以是用户数据或其他信息。
  • 有效载荷 (Payload): 有效载荷字段携带用户数据或其他信息。有效载荷字段的最大长度为 1500 字节。
  • 校验和 (Checksum): 这是一个 16 位字段,通常用于错误检测。

PPP 协议的转换阶段

以下是 PPP 协议的转换阶段:

PPP Protocol
  • Dead(死亡): Dead 是一个转换阶段,意味着链路未被使用,或者物理层没有活动载波。
  • Establish(建立): 如果其中一个节点开始工作,则阶段进入 Establish 阶段。简而言之,当节点开始通信或检测到载波时,它就从 Dead 阶段移到 Establish 阶段。
  • Authenticate(认证): 这是一个可选阶段,意味着通信也可以移到 Authenticate 阶段。只有当通信的两个节点同意进行身份验证通信时,阶段才会从 Establish 移到 Authenticate 阶段。
  • Network(网络): 一旦认证成功,网络就建立起来,即进入 Network 阶段。在此阶段,将协商网络层协议。
  • Open(开放): 在网络阶段建立后,它移到 Open 阶段。这里的 Open 阶段意味着数据交换发生。或者说,在网络层配置完成后,它就达到了 Open 阶段。
  • Terminate(终止): 当所有工作完成后,连接将终止,并移到 Terminate 阶段。

到达 Terminate 阶段后,链路会移回 Dead 阶段,这表示先前建立的载波已断开。

转换阶段还有另外两种可能的情况:

  • 当认证失败时,链路会从 Authenticate 阶段移到 Terminate 阶段。
  • 当载波失败时,链路也可能从 Establish 阶段移到 Dead 状态。

PPP 堆栈

在 PPP 堆栈中,有三组协议:

  • 链路控制协议 (LCP)

LCP 的作用是建立、维护、配置和终止链路。它还提供协商机制。

  • 认证协议

有两种类型的认证协议,即 PAP(密码认证协议)和 CHAP(质询握手认证协议)。

1. PAP(密码认证协议)

PPP Protocol

与 CHAP 相比,PAP 的安全性较低,因为在 PAP 协议中,密码以明文形式发送。这是一个两步过程。假设有两个路由器,即路由器 1 和路由器 2。在第一步中,路由器 1 需要进行认证,因此它会发送用户名和密码进行认证。在第二步中,如果用户名和密码匹配,则路由器 2 会对路由器 1 进行认证,否则认证失败。

2. CHAP(质询握手认证协议)

CHAP 是一个三步过程。让我们来了解 CHAP 的三个步骤。

PPP Protocol

步骤 1: 假设有两个路由器,即路由器 1 和路由器 2。在此步骤中,路由器 1 会向路由器 2 发送用户名,但不发送密码。

步骤 2: 路由器 2 维护一个数据库,其中包含已允许主机的列表及其登录凭据。如果没有找到数据,则表示路由器 1 不是一个有效主机,连接将终止。如果找到匹配项,则会传递一个随机密钥。此随机密钥与密码一起通过 MD5 散列函数,散列函数会从密码和随机密钥(密码 + 随机密钥)生成散列值。散列值也称为质询。质询以及随机密钥将被发送到路由器 1。

步骤 3: 路由器 1 接收来自路由器 2 的散列值和随机密钥。然后,路由器 1 将随机密钥和本地存储的密码传递给 MD5 散列函数。MD5 散列函数根据随机密钥和密码的组合生成散列值。如果生成的散列值与接收到的散列值不匹配,则连接将终止。如果匹配,则授予连接。根据上述认证结果,将发送认证信号(可能是接受或拒绝)到路由器 2。

  • 网络控制协议 (NCP)

在链路建立和认证之后,下一步是连接到网络层。因此,PPP 使用另一个称为网络控制协议 (NCP) 的协议。NCP 是一组协议,用于促进从网络层到 PPP 帧的数据封装。