3.2 点对点协议PPP

news2024/10/5 18:24:02

思维导图:

 3.2.1 点对点协议PPP

### 3.2 点对点协议(PPP)

在数据传输的早期阶段,通信线路质量常常不稳定,这时在数据链路层使用可靠的传输协议是一个明智的选择。高级数据链路控制HDLC是当时的流行选择。但在当前的场景下,HDLC已逐渐被取代。现如今,点对点协议PPP是数据链路层中最广泛使用的协议。

#### 3.2.1 PPP协议的特点

PPP协议充当了用户计算机与ISP之间的桥梁,使用户能够接入互联网。此协议由IETF于1992年制定,经过数次修订后,至1994年成为互联网的标准。

##### 1. PPP协议需满足的需求:

- **简单性**:互联网体系结构的设计理念是将复杂性主要集中在TCP协议中,而IP相对简单,因此在数据链路层,不需要进行纠错、设置序号或进行流量控制。

- **封装成帧**:必须有明确的字符作为帧的开始和结束标识,确保帧的准确传输。

- **透明性**:数据传输中可能会有与帧定界符相同的字符组合,PPP协议必须能够处理这种情况。

- **支持多种网络层协议**:PPP应该支持多种网络协议同时在一个物理链路上运行。

- **支持多种类型链路**:PPP应能在各种类型的链路上运行,无论是电的还是光的,同步或异步,低速或高速。

- **差错检测**:PPP必须能对接收到的帧进行检查,并立即丢弃有误的帧。

- **连接状态检测**:PPP应能及时自动检测链路的工作状态。

- **设置最大传输单元MTU**:为了增强实现之间的互操作性,PPP对每种类型的点对点链路都应设定一个标准的默认MTU值。

- **网络层地址协商**:PPP必须有一种机制让通信双方的网络层实体能够协商并知道彼此的网络地址。

- **数据压缩协商**:PPP应提供一种协商数据压缩算法的方法。

##### 2. PPP协议的组成:

PPP协议由三部分组成:

1. **封装方法**:将IP数据报封装到串行链路,既支持异步链路也支持同步链路。
2. **链路控制协议LCP**:用于建立、配置和测试数据链路连接。
3. **网络控制协议NCP**:每个协议支持不同的网络层协议,如IP、OSI网络层、DECnet等。

这部分主要介绍了PPP协议的历史背景、特点、需求和组成部分。PPP协议是数据链路层中的关键元素,确保点对点的通信链路在各种条件下都能稳定工作。

 3.2.2 PPP协议的帧格式

**3.2.2 PPP协议的帧格式**

**1. 各字段的章义**

- PPP帧由首部、信息部分、尾部组成。
- **首部和尾部**
  - 标志字段F(Flag):首部的第一个字段和尾部的第二个字段。规定为Ox7E,二进制表示是01111110,用作PPP帧的定界符。连续两帧之间只需要一个标志字段。连续两个标志字段表示空帧,应丢弃。
  - 地址字段A:规定为OxFF(即11111111)。
  - 控制字段C:规定为0x03(即00000011)。这两个字段并没有实际信息传输用途。
  - 协议字段:2字节。例如0x0021表示信息字段为IP数据报,0xC021表示LCP数据,0x8021表示网络层控制数据。
  
- **信息部分**:长度可变,不超过1500字节。
  
- **尾部**:包括2字节的使用CRC的帧检验序列FCS。

**2. 字节填充**

- 目的:当信息字段中出现与标志字段相同的比特组合Ox7E时,要确保这种组合不出现在信息字段中。
- 填充方法(异步传输时):
  - 信息字段中的0x7E转为2字节序列(0x7D,0x5E)。
  - 0x7D转为2字节序列(Ox7D,0x5D)。
  - 数值小于0x20的ASCII码的控制字符,例如0x03,转为2字节序列(0x7D,0x23)。

接收端会进行相反的变换以恢复原始信息。

**3. 零比特填充**

- 使用场景:PPP用于SONET/SDH链路,使用同步传输。
- 填充方法:
  - 发送端扫描信息字段。当发现有5个连续的1时,插入一个0。
  - 接收端在收到一个帧时,找到标志字段确定帧边界,然后每当发现5个连续的1时,就删除后面的0。

这种方法确保透明传输,避免对帧边界的错误判断。

**3.2.3 PPP协议的工作状态**

- PPP链路初始化:用户通过调制解调器拨号连接到ISP建立物理连接。之后,用户PC向ISP发送LCP分组(封装成PPP帧)来建立LCP连接。这些分组选择PPP参数。接下来是网络层配置,NCP为新接入的用户PC分配一个临时的IP地址。
- PPP链路终止:用户结束通信时,NCP释放网络层连接并回收IP地址。然后,LCP释放数据链路层连接。最后释放的是物理层连接。
  
整个PPP链路的状态可以通过状态图来描述,从“链路静止”到“链路建立”,再到通信和最终释放连接。

 3.2.3 PPP协议的工作状态

**3.2.3 PPP协议的工作状态笔记**

- **PPP链路初始化:**
  1. 用户拨号接入ISP后,建立从用户个人电脑到ISP的物理连接。
  2. 用户向ISP发送链路控制协议LCP分组(封装成PPP帧),建立LCP连接。
  3. 选择PPP参数。
  4. 进行网络层配置:网络控制协议NCP为新接入的用户分配一个临时IP地址。

- **PPP链路终止:**
  1. NCP释放网络层连接,回收IP地址。
  2. LCP释放数据链路层连接。
  3. 释放物理层连接。

- **PPP工作状态(参照图3-12):**
  1. **链路静止 (Link Dead)**: 不存在物理层连接。
  2. **链路建立 (Link Establish)**: 建立物理层连接,并协商LCP连接。
      - LCP配置请求帧(Configure-Request)。
      - 响应有三种:配置确认帧、配置否认帧、配置拒绝帧。
  3. **鉴别 (Authenticate)**: 
      - 传送LCP分组、鉴别分组、监测链路质量分组。
      - 口令鉴别PAP或复杂的CHAP。
  4. **网络层协议 (Network-LayerProtocol)**: NCP交换网络层特定的网络控制分组。PPP的两端可以运行不同的网络层协议。
  5. **链路打开 (Link Open)**: 
      - 链路两端可以彼此发送分组。
      - 发送回送请求LCP分组和回送回答LCP分组检查链路状态。
  6. **链路终止 (Link Terminate)**: 
      - 由链路一端发出终止请求LCP分组。
      - 收到终止确认LCP分组或链路出现故障后转到此状态。

- **LCP配置选项:**
  - 链路最大帧长。
  - 使用的鉴别协议。
  - 是否省略PPP帧中的地址和控制字段。

- **总结:**
  PPP协议不仅仅是数据链路层的协议,还包括物理层和网络层内容。

 

 

 

 

总结:

1. **定义与应用**:PPP 是用于在点对点连接上传输网络层数据报的数据链路层协议。
2. **组成**:主要包括三部分,即链路控制协议 (LCP)、认证协议 (如PAP和CHAP) 和网络控制协议 (NCP)。
3. **工作过程**:包括链路建立、认证、网络层协议配置、数据传输和链路终止。
4. **PPP帧格式**:特定的封装格式用于在连接上发送数据。

**难点:**

1. **状态转换与管理**:理解PPP的工作状态,如链路静止、链路建立、鉴别、网络层协议、链路打开和链路终止等,并知道它们之间如何转换。
2. **认证过程**:理解PAP(口令鉴别协议)与CHAP(挑战握手鉴别协议)的工作原理及其区别。
3. **配置与选项协商**:如何通过LCP来协商和配置连接的各种参数。

**易错点:**

1. **状态混淆**:可能会混淆PPP的不同状态及其之间的转换条件。
2. **认证细节**:在描述PAP与CHAP时,可能会忽略它们之间的主要差异,或者混淆它们的工作流程。
3. **NCP的作用**:可能会忽视或混淆NCP在PPP中的作用,即用于为不同的网络层协议进行特定的配置。
4. **PPP帧格式**:可能会混淆PPP帧的各个字段及其意义。

当学习或应用PPP时,应特别注意这些重点、难点和易错点,确保对PPP的理解既全面又准确。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1077416.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Typora-Drake主题

关于Typora-Drake主题的小调整 下载安装 下载地址:Drake (typora.io) 点击下载跳转GitHub,下载该主题 下载完成安装主题 打开主题文件夹,把下载的zip全部加压丢进去重启Typora Drake主题样式小调整 打开主题文件夹,找到Drake.css文件&am…

Web(2) 信息收集

一.子域名收集各工具的使用: 子域名(或子域,英语:subdomain)是在域名系统等级中,属于更高一层域的域。比如mail.example.com和calendar.example.com是example.com的两个子域,而example.com是顶…

腾讯云秒杀活动入口及活动攻略整理分享

腾讯云是国内领先的云计算服务提供商之一,其提供的云服务器、云数据库、云存储等产品备受用户青睐。为了回馈广大用户,腾讯云经常推出各种优惠活动,其中最受关注的就是秒杀活动。本文将为大家整理分享腾讯云秒杀活动的入口及活动攻略&#xf…

基于YOLOv8的施工安全帽及安全背心检测

目标检测是一项基本的计算机视觉任务。 另一方面,YOLO(You Only Look Once)是一种流行的目标检测模型,以其速度和准确性而闻名。 涉及对象检测的用例非常多样化。 其中之一是建筑工地安全。 建筑工地经理、安全官员或监管机构可以…

变量提升的常见情况总结

什么叫变量提升? 把当前上下文中带有var(提升声明)/function(提升声明定义)进行提升的声明或者定义。变量提升是将变量声明提升到它所在作用域的最开始的部分。 全局上下文中:基于var/function声明的变量,也相当于给window设置了对应的属性。 实例 1 var t 1;…

基于若依ruoyi-nbcio支持flowable流程增加自定义业务表单(三)

之前自定义业务表单只能关联自定义业务的流程应用类型,所以需要根据这个进行选择与显示 1、ProcessQuery 参数增加appType public class ProcessQuery {/*** 流程标识*/private String processKey;/*** 流程名称*/private String processName;/*** 流程分类*/priv…

2023年司钻(钻井)证模拟考试题库及司钻(钻井)理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2023年司钻(钻井)证模拟考试题库及司钻(钻井)理论考试试题是由安全生产模拟考试一点通提供,司钻(钻井)证模拟考试题库是根据司钻&…

ES知识点全面整理

● 我们从很多年前就知道 ES6, 也就是官方发布的 ES2015 ● 从 2015 年开始, 官方觉得大家命名太乱了, 所以决定以年份命名 ● 但是大家还是习惯了叫做 ES6, 不过这不重要 ● 重要的是, ES6 关注的人非常多, 大家也会主动去关注 ● 但是从 2016 年以后, 每年官方都会出现新…

Mac电脑交互式原型设计 Axure RP 8汉化最新 for mac

Axure RP 8是一款专业且快速的原型设计工具,主要用于定义需求、规格、设计功能和界面。这款工具主要适用于用户体验设计师、交互设计师、业务分析师、信息架构师、可用性专家和产品经理等职业。 Axure RP 8的主要特性包括能够快速设计出应用软件或Web网站的线框图、…

linux_三剑客(grep,sed,awk)

前言: Bash:是一个命令处理器,运行在文本窗口中,并能执行用户直接输入的命令。 Bash还能从文件中读取Linux命令,称之为脚本。 Bash支持通配符,管道,命令替换,条件判断等逻辑控制语句。 快捷…

使用gpio子系统实现按键驱动(二)

一,gpio_keys.c介绍 Linux内核下的drivers/input/keyboard/gpio_keys.c实现了一个体系无关的GPIO按键驱动,使用此按键驱动,只需要在设备树gpio-key节点添加需要的按键子节点即可,适合于实现独立式按键驱动。 gpio-keys是基于inp…

gma 2 教程(三)坐标参考系统:1.坐标系和坐标参考系统模块简介

安装 gma:pip install gma 坐标参考系统是地理空间数据表示和位置定位的基础,它是一种用于描述和测量地球表面位置的标准化框架。其定义了坐标系统、基准面和坐标单位等要素,以确保地球上不同地方的位置可以一致、准确地表示和比较。 本章以g…

开源协议介绍

文章目录 一、简介二、常见开源协议介绍2.1 BSD (Berkeley Software Distribution license)2.2 MIT(Massachusetts Institute of Technology)2.3 Apache Licence 2.02.4 GPL(General Public License)2.5 LG…

微电网单台并网逆变器PQ控制matlab仿真模型

微❤关注“电气仔推送”获得资料(专享优惠) 微电网运行在并网模式下且公共电网供应正常时,因为公共电网给定了电 压和频率的参考值,所有的逆变器可以使用PQ控制方式。 当系统频率为额定频率f0时,系统稳定在A点&#x…

【C语言进阶(13)】文件操作

文章目录 Ⅰ 什么是文件1. 文件分类2. 文件名 Ⅱ 文本文件和二进制文件Ⅲ 文件缓冲区Ⅳ 文件的打开和关闭1. 文件指针2. 文件的打开和关闭3. 文件打开方式 Ⅴ 文件的顺序读写1. fputc 写入一个字符2. fgetc 读取一个字符3. fputs 覆盖并写入一行数据4. fgets 读取指定长度的数据…

CTR特征建模:ContextNet MaskNet(Twitter在用的排序模型)

在之前的文章中 FiBiNet&FiBiNet模型,阐述了微博在CTR特征(Embedding)重要性建模方面的一些实践方向,今天再来学习下这个方面的两个相关研究:致力于特征和特征交互精炼(refine)的ContextNet和MaskNet,其中MaskNet也是Twitter(…

STM32 PA15/JTDI 用作普通IO,烧录口不能使用问题解决

我们一般用SW调试接口 所以DEBUG选择Serial Wire 这样PA15可以用作普通IO使用。 工程中默认加上: PA13(JTMS/SWDIO).ModeSerial_Wire PA13(JTMS/SWDIO).SignalDEBUG_JTMS-SWDIO PA14(JTCK/SWCLK).ModeSerial_Wire PA14(JTCK/SWCLK).SignalDEBUG_JTCK-SWCLK

Apple 推出全球开发者资源 —— 人人能编程

近日,Apple 宣布推出 Meet with Apple Experts 开发者资源,帮助全球 Apple 开发者社区发现并参与课程、研讨会、实验室、一对一咨询等体验。 Meet with Apple Experts 初期提供超过 50 个课程、研讨会和咨询项目,并将持续提供线上和线下活动&…

深入理解强化学习——强化学习的例子

分类目录:《深入理解强化学习》总目录 为什么我们关注强化学习,其中非常重要的一个原因就是强化学习得到的模型可以有超人类的表现。 有监督学习获取的监督数据,其实是人来标注的,比如ImageNet的图片的标签都是人类标注的。因此我…

JavaScript入门——(6)对象

1、什么是对象 对象(object):JavaScript里的一种数据类型 可以理解为是一种无序的数据集合,注意数组是有序的数据集合 用来详细的描述某个事物,例如描述一个人 人有姓名、年龄、性别等信息、还有 吃饭睡觉打代码等…