Point-to-Point Protocol (PPP)
点对点协议(PPP)是一种用于在两个直接连接的(点对点)计算机之间传输多协议数据的数据链路层通信协议。它是一种面向字节的协议,在具有重负载和高速度的宽带通信中广泛使用。由于它是一种数据链路层协议,数据以帧的形式传输。它也被称为RFC 1661。
PPP提供的服务
点对点协议提供的主要服务包括:
- 定义要传输的数据的帧格式。
-
定义建立两点之间连接和数据交换的过程。
-
定义网络层数据在帧中的封装方法。
-
规定通信设备的认证规则。
-
为网络通信提供地址。
-
在多个链路上提供连接。
-
通过提供一系列服务来支持各种网络层协议。
PPP的组成部分
点对点协议是一种分层协议,由三个组成部分组成:
- 封装组件 - 它将数据报封装起来,以便可以通过指定的物理层进行传输。
-
链路控制协议(LCP) - 负责建立、配置、测试、维护和终止传输链路。它还通过链路的两个端点进行选项设置和功能使用的协商。
-
认证协议(AP) - 这些协议用于对使用服务的端点进行身份验证。PPP的两种认证协议是:
- 密码认证协议(PAP)
-
挑战-握手认证协议(CHAP)
-
网络控制协议(NCP) - 这些协议用于协商网络层的参数和功能。对于PPP支持的每个更高层协议,都有一个NCP。PPP的一些NCP包括:
- 互联网协议控制协议(IPCP)
-
OSI网络层控制协议(OSINLCP)
-
互联网数据包交换控制协议(IPXCP)
-
DECnet Phase IV控制协议(DNCP)
-
NetBIOS帧控制协议(NBFCP)
-
IPv6控制协议(IPV6CP)
PPP帧
PPP是一种面向字节的协议,帧的每个字段由一个或多个字节组成。PPP帧的字段包括:
- Flag(标志) − 1个字节,用于标记帧的开始和结束。标志的位模式为01111110。
-
Address(地址) − 1个字节,在广播时设置为11111111。
-
Control(控制) − 1个字节,固定为11000000。
-
Protocol(协议) − 1个或2个字节,定义了负载字段中包含的数据类型。
-
Payload(负载) − 这携带来自网络层的数据。负载字段的最大长度为1500个字节。然而,这可以在通信双方之间进行协商。
-
FCS(帧校验序列) − 它是用于错误检测的2个字节或4个字节的帧校验序列。常用编码为CRC(循环冗余校验码)。
PPP帧中的字节填充 − 每当消息中出现标志序列时,PPP负载字段中使用字节填充,以防接收方将其视为帧的结束。转义字节01111101在包含与标志字节或转义字节相同的字节的每个字节之前被填充。接收方在收到消息后,在传递到网络层之前移除转义字节。