2.2 点对点协议PPP

2.2 点对点协议PPP

欢迎大家订阅【计算机网络】学习专栏,开启你的计算机网络学习之旅!

文章目录

前言1 定义2 特点3 组成4 帧格式5 透明传输问题5.1 字节填充5.2 零比特填充

6 工作状态

前言

在现代网络通信中,点对点协议(PPP,Point-to-Point Protocol)是广泛应用于点对点链路的关键数据链路层协议。本文将详细介绍 PPP 协议的特点、组成、帧格式、透明传输处理方式,以及其在链路建立和管理过程中的工作状态。

1 定义

点对点协议(PPP,Point-to-Point Protocol) 是一种用于数据链路层的通信协议,专门用于在两点之间建立直接连接,以实现网络数据的可靠传输。

PPP 最早于 1994 年成为互联网标准 [RFC 1661],主要用于串行链路(如拨号连接)和其他点对点的网络连接(如 DSL、VPN 和移动网络)。

PPP 的主要目标是通过灵活、高效的方式,将网络层数据报(如 IP 包)封装并传输于各种类型的链路上。它不仅支持多种网络层协议,还能够对链路的状态、数据压缩、错误检测等进行控制和管理。

2 特点

简单:协议设计应尽量简化,以便于实现和部署。封装成帧:需要使用特殊字符作为帧定界符,以明确数据的边界。透明性:应保证数据传输的透明性,无论数据内容为何,都能准确无误传输。多种网络层协议支持:在一条物理链路上,PPP 能同时支持多个网络层协议。多类型链路兼容:可在异步、同步等不同链路类型上运行。差错检测:具备检测错误帧的能力,并自动丢弃有差错的帧。链路状态检测:能够及时判断链路的正常工作状态,并进行处理。最大传输单元(MTU)设置:为不同链路类型设置标准默认值,确保互操作性。网络层地址协商:允许通信双方通过协商,了解和配置彼此的网络层地址。数据压缩协商:支持协商使用数据压缩算法,提高传输效率。

3 组成

PPP 协议由以下三部分组成:

IP 数据报封装:定义了将 IP 数据报封装到串行链路中的方法。链路控制协议(LCP):负责建立、配置和管理链路的逻辑连接。网络控制协议(NCP):负责为不同的网络层协议(如 IP)进行配置和控制。

4 帧格式

PPP 的帧结构包括首部和尾部,共包含以下字段:

①首部字段

标志字段 (F):每帧以 0x7E 标志开始和结束。连续两帧之间只需用一个标志字段隔开。地址字段 (A):固定为 0xFF,一般没有实际作用。控制字段(C):通常设置为 0x03。协议字段:标识信息字段的数据类型。例如:

0x0021:IP 数据报0x8021:网络控制数据0xC021:PPP 链路控制数据0xC023:鉴别数据

②信息字段 此字段封装具体的数据,如 IP 数据报或 LCP/NCP 控制信息。

③尾部字段

帧校验序列 (FCS):用于检测帧的传输错误。标志字段 (F):与首部标志字段一致,用于结束当前帧。

注意:PPP 是面向字节的协议,所有的帧长度均为整数个字节。

5 透明传输问题

在 PPP 传输过程中,数据中的某些内容可能与帧的定界符(如 0x7E)冲突,导致边界误判。因此,PPP 使用不同的方法保证透明性:

5.1 字节填充

当 PPP 用在异步传输时,使用字节填充法。字节填充法是 PPP 协议中的一种透明传输机制,用于解决数据内容与帧定界符冲突的问题。 【解析】 从图中可以看到,PPP 帧使用 0x7E 作为帧的起始和结束标志。如果原始数据中包含与 0x7E 相同的字节,可能会造成接收方误认为帧结束,导致传输错误。 字节填充具体步骤:

①检测冲突字符 在原始数据中发现了需要特殊处理的字节,如 0x7E 和 0x7D。

②字节填充的处理规则

当原始数据中出现 0x7E(标志符),就会在该字节前插入一个 0x7D(转义符),并将原来的 0x7E 改为 0x5E。当数据中出现 0x7D(转义符)时,同样会在该字节前插入另一个 0x7D,并将原来的 0x7D 改为 0x5D。

③填充后的数据变化

原始数据: 7E → 填充后: 7D 5E原始数据: 7D → 填充后: 7D 5D

④数据的透明传输

在发送时,这些填充字节确保数据传输过程中不会出现与标志符冲突的情况。接收端收到填充后的数据时,会识别并去除这些填充字节,还原原始数据。

那原始数据 03 为何变为 7D 23?

在 PPP 协议中,字节填充法(Byte Stuffing)不仅针对标志符 0x7E 和转义符 0x7D,还会处理一些特定的控制字符。这些字符如果不加处理,可能会对接收方的协议解析产生干扰。

①控制字符的转义规则 PPP 协议中,一些常用的低值控制字符(如 0x00、0x03 等)在某些网络设备或链路上传输时,可能会被误认为控制命令。为了避免这些数据干扰协议的正常运行,这些字节会通过字节填充法进行转义。

②字节填充规则

在特殊字符 0x03 前插入一个 转义符 0x7D。将原始字节 0x03 与 0x20 进行异或运算(XOR):0x03 ⊕ 0x20 = 0x23。

③填充后的数据变化 原始数据: 03 → 填充后: 7D 23

5.2 零比特填充

当 PPP 用在同步传输链路时,采用零比特填充法。在信息字段中每当检测到连续的五个 1,就会自动插入一个 0,防止与标志字段 0x7E 冲突。

6 工作状态

PPP 链路的初始化、管理和关闭分为多个阶段: ① 链路初始化阶段 当用户拨号接入 ISP(互联网服务提供商)后,用户电脑与 ISP 之间建立物理连接。此时,用户电脑会发送一系列 LCP 数据包(封装成 PPP 帧)以建立逻辑链路。

②网络层配置阶段 成功建立链路后,NCP 协议开始为用户电脑分配临时 IP 地址等网络配置。

③数据通信阶段 链路建立后,用户可以通过 PPP 传输数据报,如 IP 数据报。

④链路关闭阶段 当用户结束通信时,NCP 会释放 IP 地址等网络资源,LCP 释放数据链路连接,最终断开物理连接。

相关资讯

6种Win10关闭自动更新方法介绍!
28365365tw五大联赛

6种Win10关闭自动更新方法介绍!

⌚ 08-05 👁️ 5875